105
The licenses for most software are designed to take away your freedom to
106
share and change it. By contrast, the GNU General Public Licenses are
107
intended to guarantee your freedom to share and change free software--to
108
make sure the software is free for all its users.
105
The licenses for most software are designed to take away your freedom
106
to share and change it. By contrast, the GNU General Public Licenses
107
are intended to guarantee your freedom to share and change free
108
software--to make sure the software is free for all its users.
110
110
This license, the Library General Public License, applies to some
111
specially designated Free Software Foundation software, and to any other
112
libraries whose authors decide to use it. You can use it for your
115
When we speak of free software, we are referring to freedom, not price.
116
Our General Public Licenses are designed to make sure that you have the
117
freedom to distribute copies of free software (and charge for this
118
service if you wish), that you receive source code or can get it if you
119
want it, that you can change the software or use pieces of it in new
120
free programs; and that you know you can do these things.
122
To protect your rights, we need to make restrictions that forbid anyone
123
to deny you these rights or to ask you to surrender the rights. These
124
restrictions translate to certain responsibilities for you if you
125
distribute copies of the library, or if you modify it.
127
For example, if you distribute copies of the library, whether gratis or
128
for a fee, you must give the recipients all the rights that we gave you.
129
You must make sure that they, too, receive or can get the source code.
130
If you link a program with the library, you must provide complete object
131
files to the recipients so that they can relink them with the library,
132
after making changes to the library and recompiling it. And you must
133
show them these terms so they know their rights.
111
specially designated Free Software Foundation software, and to any
112
other libraries whose authors decide to use it. You can use it for
115
When we speak of free software, we are referring to freedom, not
116
price. Our General Public Licenses are designed to make sure that you
117
have the freedom to distribute copies of free software (and charge for
118
this service if you wish), that you receive source code or can get it
119
if you want it, that you can change the software or use pieces of it
120
in new free programs; and that you know you can do these things.
122
To protect your rights, we need to make restrictions that forbid
123
anyone to deny you these rights or to ask you to surrender the rights.
124
These restrictions translate to certain responsibilities for you if
125
you distribute copies of the library, or if you modify it.
127
For example, if you distribute copies of the library, whether gratis
128
or for a fee, you must give the recipients all the rights that we gave
129
you. You must make sure that they, too, receive or can get the source
130
code. If you link a program with the library, you must provide
131
complete object files to the recipients so that they can relink them
132
with the library, after making changes to the library and recompiling
133
it. And you must show them these terms so they know their rights.
135
135
Our method of protecting your rights has two steps: (1) copyright the
136
library, and (2) offer you this license which gives you legal permission
137
to copy, distribute and/or modify the library.
136
library, and (2) offer you this license which gives you legal
137
permission to copy, distribute and/or modify the library.
139
139
Also, for each distributor's protection, we want to make certain that
140
140
everyone understands that there is no warranty for this free library.
141
141
If the library is modified by someone else and passed on, we want its
142
142
recipients to know that what they have is not the original version, so
143
that any problems introduced by others will not reflect on the original
144
authors' reputations.
146
Finally, any free program is threatened constantly by software patents.
147
We wish to avoid the danger that companies distributing free software
148
will individually obtain patent licenses, thus in effect transforming
149
the program into proprietary software. To prevent this, we have made it
150
clear that any patent must be licensed for everyone's free use or not
153
Most GNU software, including some libraries, is covered by the ordinary
154
GNU General Public License, which was designed for utility programs.
155
This license, the GNU Library General Public License, applies to certain
156
designated libraries. This license is quite different from the ordinary
157
one; be sure to read it in full, and don't assume that anything in it is
158
the same as in the ordinary license.
160
The reason we have a separate public license for some libraries is that
161
they blur the distinction we usually make between modifying or adding to
162
a program and simply using it. Linking a program with a library,
163
without changing the library, is in some sense simply using the library,
164
and is analogous to running a utility program or application program.
165
However, in a textual and legal sense, the linked executable is a
166
combined work, a derivative of the original library, and the ordinary
167
General Public License treats it as such.
143
that any problems introduced by others will not reflect on the
144
original authors' reputations.
146
Finally, any free program is threatened constantly by software
147
patents. We wish to avoid the danger that companies distributing free
148
software will individually obtain patent licenses, thus in effect
149
transforming the program into proprietary software. To prevent this,
150
we have made it clear that any patent must be licensed for everyone's
151
free use or not licensed at all.
153
Most GNU software, including some libraries, is covered by the
154
ordinary GNU General Public License, which was designed for utility
155
programs. This license, the GNU Library General Public License,
156
applies to certain designated libraries. This license is quite
157
different from the ordinary one; be sure to read it in full, and don't
158
assume that anything in it is the same as in the ordinary license.
160
The reason we have a separate public license for some libraries is
161
that they blur the distinction we usually make between modifying or
162
adding to a program and simply using it. Linking a program with a
163
library, without changing the library, is in some sense simply using
164
the library, and is analogous to running a utility program or
165
application program. However, in a textual and legal sense, the
166
linked executable is a combined work, a derivative of the original
167
library, and the ordinary General Public License treats it as such.
169
169
Because of this blurred distinction, using the ordinary General Public
170
170
License for libraries did not effectively promote software sharing,
201
201
this Library General Public License (also called "this License").
202
202
Each licensee is addressed as "you".
204
A "library" means a collection of software functions and/or data
205
prepared so as to be conveniently linked with application programs
206
(which use some of those functions and data) to form executables.
208
The "Library", below, refers to any such software library or work
209
which has been distributed under these terms. A "work based on the
210
Library" means either the Library or any derivative work under
211
copyright law: that is to say, a work containing the Library or a
212
portion of it, either verbatim or with modifications and/or
213
translated straightforwardly into another language. (Hereinafter,
214
translation is included without limitation in the term
217
"Source code" for a work means the preferred form of the work for
218
making modifications to it. For a library, complete source code
219
means all the source code for all modules it contains, plus any
220
associated interface definition files, plus the scripts used to
221
control compilation and installation of the library.
223
Activities other than copying, distribution and modification are
224
not covered by this License; they are outside its scope. The act
225
of running a program using the Library is not restricted, and
204
A "library" means a collection of software functions and/or
205
data prepared so as to be conveniently linked with application
206
programs (which use some of those functions and data) to form
209
The "Library", below, refers to any such software library or
210
work which has been distributed under these terms. A "work based
211
on the Library" means either the Library or any derivative work
212
under copyright law: that is to say, a work containing the
213
Library or a portion of it, either verbatim or with modifications
214
and/or translated straightforwardly into another language.
215
(Hereinafter, translation is included without limitation in the
216
term "modification".)
218
"Source code" for a work means the preferred form of the work
219
for making modifications to it. For a library, complete source
220
code means all the source code for all modules it contains, plus
221
any associated interface definition files, plus the scripts used
222
to control compilation and installation of the library.
224
Activities other than copying, distribution and modification
225
are not covered by this License; they are outside its scope. The
226
act of running a program using the Library is not restricted, and
226
227
output from such a program is covered only if its contents
227
228
constitute a work based on the Library (independent of the use of
228
229
the Library in a tool for writing it). Whether that is true
229
depends on what the Library does and what the program that uses the
230
depends on what the Library does and what the program that uses
232
233
2. You may copy and distribute verbatim copies of the Library's
233
234
complete source code as you receive it, in any medium, provided
237
238
absence of any warranty; and distribute a copy of this License
238
239
along with the Library.
240
You may charge a fee for the physical act of transferring a copy,
241
and you may at your option offer warranty protection in exchange
241
You may charge a fee for the physical act of transferring a
242
copy, and you may at your option offer warranty protection in
244
3. You may modify your copy or copies of the Library or any portion of
245
it, thus forming a work based on the Library, and copy and
246
distribute such modifications or work under the terms of Section 1
247
above, provided that you also meet all of these conditions:
245
3. You may modify your copy or copies of the Library or any portion
246
of it, thus forming a work based on the Library, and copy and
247
distribute such modifications or work under the terms of Section
248
1 above, provided that you also meet all of these conditions:
249
250
a. The modified work must itself be a software library.
251
252
b. You must cause the files modified to carry prominent
252
notices stating that you changed the files and the date of any
255
c. You must cause the whole of the work to be licensed at no
256
charge to all third parties under the terms of this License.
258
d. If a facility in the modified Library refers to a function
259
or a table of data to be supplied by an application program
260
that uses the facility, other than as an argument passed when
261
the facility is invoked, then you must make a good faith
262
effort to ensure that, in the event an application does not
263
supply such function or table, the facility still operates,
264
and performs whatever part of its purpose remains meaningful.
253
notices stating that you changed the files and the date of
256
c. You must cause the whole of the work to be licensed at
257
no charge to all third parties under the terms of this
260
d. If a facility in the modified Library refers to a
261
function or a table of data to be supplied by an application
262
program that uses the facility, other than as an argument
263
passed when the facility is invoked, then you must make a
264
good faith effort to ensure that, in the event an
265
application does not supply such function or table, the
266
facility still operates, and performs whatever part of its
267
purpose remains meaningful.
266
269
(For example, a function in a library to compute square
267
roots has a purpose that is entirely well-defined independent
268
of the application. Therefore, Subsection 2d requires that
269
any application-supplied function or table used by this
270
function must be optional: if the application does not supply
271
it, the square root function must still compute square roots.)
270
roots has a purpose that is entirely well-defined
271
independent of the application. Therefore, Subsection 2d
272
requires that any application-supplied function or table
273
used by this function must be optional: if the application
274
does not supply it, the square root function must still
275
compute square roots.)
273
277
These requirements apply to the modified work as a whole. If
274
278
identifiable sections of that work are not derived from the
275
Library, and can be reasonably considered independent and separate
276
works in themselves, then this License, and its terms, do not apply
277
to those sections when you distribute them as separate works. But
278
when you distribute the same sections as part of a whole which is a
279
work based on the Library, the distribution of the whole must be on
280
the terms of this License, whose permissions for other licensees
281
extend to the entire whole, and thus to each and every part
282
regardless of who wrote it.
279
Library, and can be reasonably considered independent and
280
separate works in themselves, then this License, and its terms,
281
do not apply to those sections when you distribute them as
282
separate works. But when you distribute the same sections as
283
part of a whole which is a work based on the Library, the
284
distribution of the whole must be on the terms of this License,
285
whose permissions for other licensees extend to the entire whole,
286
and thus to each and every part regardless of who wrote it.
284
288
Thus, it is not the intent of this section to claim rights or
285
289
contest your rights to work written entirely by you; rather, the
287
291
derivative or collective works based on the Library.
289
293
In addition, mere aggregation of another work not based on the
290
Library with the Library (or with a work based on the Library) on a
291
volume of a storage or distribution medium does not bring the other
292
work under the scope of this License.
294
Library with the Library (or with a work based on the Library) on
295
a volume of a storage or distribution medium does not bring the
296
other work under the scope of this License.
294
298
4. You may opt to apply the terms of the ordinary GNU General Public
295
License instead of this License to a given copy of the Library. To
296
do this, you must alter all the notices that refer to this License,
297
so that they refer to the ordinary GNU General Public License,
298
version 2, instead of to this License. (If a newer version than
299
version 2 of the ordinary GNU General Public License has appeared,
300
then you can specify that version instead if you wish.) Do not
301
make any other change in these notices.
299
License instead of this License to a given copy of the Library.
300
To do this, you must alter all the notices that refer to this
301
License, so that they refer to the ordinary GNU General Public
302
License, version 2, instead of to this License. (If a newer
303
version than version 2 of the ordinary GNU General Public License
304
has appeared, then you can specify that version instead if you
305
wish.) Do not make any other change in these notices.
303
Once this change is made in a given copy, it is irreversible for
304
that copy, so the ordinary GNU General Public License applies to
305
all subsequent copies and derivative works made from that copy.
307
Once this change is made in a given copy, it is irreversible
308
for that copy, so the ordinary GNU General Public License applies
309
to all subsequent copies and derivative works made from that
307
312
This option is useful when you wish to copy part of the code of
308
313
the Library into a program that is not a library.
310
5. You may copy and distribute the Library (or a portion or derivative
311
of it, under Section 2) in object code or executable form under the
312
terms of Sections 1 and 2 above provided that you accompany it with
313
the complete corresponding machine-readable source code, which must
314
be distributed under the terms of Sections 1 and 2 above on a
315
medium customarily used for software interchange.
315
5. You may copy and distribute the Library (or a portion or
316
derivative of it, under Section 2) in object code or executable
317
form under the terms of Sections 1 and 2 above provided that you
318
accompany it with the complete corresponding machine-readable
319
source code, which must be distributed under the terms of
320
Sections 1 and 2 above on a medium customarily used for software
317
If distribution of object code is made by offering access to copy
318
from a designated place, then offering equivalent access to copy
319
the source code from the same place satisfies the requirement to
320
distribute the source code, even though third parties are not
321
compelled to copy the source along with the object code.
323
If distribution of object code is made by offering access to
324
copy from a designated place, then offering equivalent access to
325
copy the source code from the same place satisfies the
326
requirement to distribute the source code, even though third
327
parties are not compelled to copy the source along with the
323
330
6. A program that contains no derivative of any portion of the
324
Library, but is designed to work with the Library by being compiled
325
or linked with it, is called a "work that uses the Library". Such
326
a work, in isolation, is not a derivative work of the Library, and
327
therefore falls outside the scope of this License.
331
Library, but is designed to work with the Library by being
332
compiled or linked with it, is called a "work that uses the
333
Library". Such a work, in isolation, is not a derivative work of
334
the Library, and therefore falls outside the scope of this
329
However, linking a "work that uses the Library" with the Library
330
creates an executable that is a derivative of the Library (because
331
it contains portions of the Library), rather than a "work that uses
332
the library". The executable is therefore covered by this License.
333
Section 6 states terms for distribution of such executables.
337
However, linking a "work that uses the Library" with the
338
Library creates an executable that is a derivative of the Library
339
(because it contains portions of the Library), rather than a
340
"work that uses the library". The executable is therefore
341
covered by this License. Section 6 states terms for distribution
335
344
When a "work that uses the Library" uses material from a header
336
file that is part of the Library, the object code for the work may
337
be a derivative work of the Library even though the source code is
338
not. Whether this is true is especially significant if the work
339
can be linked without the Library, or if the work is itself a
340
library. The threshold for this to be true is not precisely
345
file that is part of the Library, the object code for the work
346
may be a derivative work of the Library even though the source
347
code is not. Whether this is true is especially significant if
348
the work can be linked without the Library, or if the work is
349
itself a library. The threshold for this to be true is not
350
precisely defined by law.
343
352
If such an object file uses only numerical parameters, data
344
structure layouts and accessors, and small macros and small inline
345
functions (ten lines or less in length), then the use of the object
346
file is unrestricted, regardless of whether it is legally a
347
derivative work. (Executables containing this object code plus
348
portions of the Library will still fall under Section 6.)
353
structure layouts and accessors, and small macros and small
354
inline functions (ten lines or less in length), then the use of
355
the object file is unrestricted, regardless of whether it is
356
legally a derivative work. (Executables containing this object
357
code plus portions of the Library will still fall under Section
350
360
Otherwise, if the work is a derivative of the Library, you may
351
distribute the object code for the work under the terms of Section
352
6. Any executables containing that work also fall under Section 6,
353
whether or not they are linked directly with the Library itself.
361
distribute the object code for the work under the terms of
362
Section 6. Any executables containing that work also fall under
363
Section 6, whether or not they are linked directly with the
355
7. As an exception to the Sections above, you may also compile or link
356
a "work that uses the Library" with the Library to produce a work
357
containing portions of the Library, and distribute that work under
358
terms of your choice, provided that the terms permit modification
359
of the work for the customer's own use and reverse engineering for
360
debugging such modifications.
366
7. As an exception to the Sections above, you may also compile or
367
link a "work that uses the Library" with the Library to produce a
368
work containing portions of the Library, and distribute that work
369
under terms of your choice, provided that the terms permit
370
modification of the work for the customer's own use and reverse
371
engineering for debugging such modifications.
362
373
You must give prominent notice with each copy of the work that
363
374
the Library is used in it and that the Library and its use are
364
375
covered by this License. You must supply a copy of this License.
365
376
If the work during execution displays copyright notices, you must
366
include the copyright notice for the Library among them, as well as
367
a reference directing the user to the copy of this License. Also,
368
you must do one of these things:
377
include the copyright notice for the Library among them, as well
378
as a reference directing the user to the copy of this License.
379
Also, you must do one of these things:
370
381
a. Accompany the work with the complete corresponding
371
382
machine-readable source code for the Library including
372
383
whatever changes were used in the work (which must be
373
distributed under Sections 1 and 2 above); and, if the work is
374
an executable linked with the Library, with the complete
375
machine-readable "work that uses the Library", as object code
376
and/or source code, so that the user can modify the Library
377
and then relink to produce a modified executable containing
378
the modified Library. (It is understood that the user who
379
changes the contents of definitions files in the Library will
380
not necessarily be able to recompile the application to use
381
the modified definitions.)
384
distributed under Sections 1 and 2 above); and, if the work
385
is an executable linked with the Library, with the complete
386
machine-readable "work that uses the Library", as object
387
code and/or source code, so that the user can modify the
388
Library and then relink to produce a modified executable
389
containing the modified Library. (It is understood that the
390
user who changes the contents of definitions files in the
391
Library will not necessarily be able to recompile the
392
application to use the modified definitions.)
383
394
b. Accompany the work with a written offer, valid for at
384
395
least three years, to give the same user the materials
385
396
specified in Subsection 6a, above, for a charge no more than
386
397
the cost of performing this distribution.
388
c. If distribution of the work is made by offering access to
389
copy from a designated place, offer equivalent access to copy
390
the above specified materials from the same place.
399
c. If distribution of the work is made by offering access
400
to copy from a designated place, offer equivalent access to
401
copy the above specified materials from the same place.
392
d. Verify that the user has already received a copy of these
393
materials or that you have already sent this user a copy.
403
d. Verify that the user has already received a copy of
404
these materials or that you have already sent this user a
395
407
For an executable, the required form of the "work that uses the
396
408
Library" must include any data and utility programs needed for
397
409
reproducing the executable from it. However, as a special
398
410
exception, the source code distributed need not include anything
399
that is normally distributed (in either source or binary form) with
400
the major components (compiler, kernel, and so on) of the operating
401
system on which the executable runs, unless that component itself
402
accompanies the executable.
411
that is normally distributed (in either source or binary form)
412
with the major components (compiler, kernel, and so on) of the
413
operating system on which the executable runs, unless that
414
component itself accompanies the executable.
404
416
It may happen that this requirement contradicts the license
405
417
restrictions of other proprietary libraries that do not normally
406
418
accompany the operating system. Such a contradiction means you
407
cannot use both them and the Library together in an executable that
419
cannot use both them and the Library together in an executable
410
422
8. You may place library facilities that are a work based on the
411
423
Library side-by-side in a single library together with other
412
library facilities not covered by this License, and distribute such
413
a combined library, provided that the separate distribution of the
414
work based on the Library and of the other library facilities is
415
otherwise permitted, and provided that you do these two things:
424
library facilities not covered by this License, and distribute
425
such a combined library, provided that the separate distribution
426
of the work based on the Library and of the other library
427
facilities is otherwise permitted, and provided that you do these
417
430
1. Accompany the combined library with a copy of the same
418
431
work based on the Library, uncombined with any other library
424
437
explaining where to find the accompanying uncombined form of
427
9. You may not copy, modify, sublicense, link with, or distribute the
428
Library except as expressly provided under this License. Any
440
9. You may not copy, modify, sublicense, link with, or distribute
441
the Library except as expressly provided under this License. Any
429
442
attempt otherwise to copy, modify, sublicense, link with, or
430
443
distribute the Library is void, and will automatically terminate
431
your rights under this License. However, parties who have received
432
copies, or rights, from you under this License will not have their
433
licenses terminated so long as such parties remain in full
444
your rights under this License. However, parties who have
445
received copies, or rights, from you under this License will not
446
have their licenses terminated so long as such parties remain in
436
449
10. You are not required to accept this License, since you have not
437
450
signed it. However, nothing else grants you permission to modify
438
451
or distribute the Library or its derivative works. These actions
439
452
are prohibited by law if you do not accept this License.
440
453
Therefore, by modifying or distributing the Library (or any work
441
based on the Library), you indicate your acceptance of this License
442
to do so, and all its terms and conditions for copying,
454
based on the Library), you indicate your acceptance of this
455
License to do so, and all its terms and conditions for copying,
443
456
distributing or modifying the Library or works based on it.
445
458
11. Each time you redistribute the Library (or any work based on the
446
459
Library), the recipient automatically receives a license from the
447
460
original licensor to copy, distribute, link with or modify the
448
Library subject to these terms and conditions. You may not impose
449
any further restrictions on the recipients' exercise of the rights
450
granted herein. You are not responsible for enforcing compliance
451
by third parties to this License.
461
Library subject to these terms and conditions. You may not
462
impose any further restrictions on the recipients' exercise of
463
the rights granted herein. You are not responsible for enforcing
464
compliance by third parties to this License.
453
466
12. If, as a consequence of a court judgment or allegation of patent
454
467
infringement or for any other reason (not limited to patent
455
468
issues), conditions are imposed on you (whether by court order,
456
469
agreement or otherwise) that contradict the conditions of this
457
470
License, they do not excuse you from the conditions of this
458
License. If you cannot distribute so as to satisfy simultaneously
459
your obligations under this License and any other pertinent
460
obligations, then as a consequence you may not distribute the
461
Library at all. For example, if a patent license would not permit
462
royalty-free redistribution of the Library by all those who receive
463
copies directly or indirectly through you, then the only way you
464
could satisfy both it and this License would be to refrain entirely
465
from distribution of the Library.
471
License. If you cannot distribute so as to satisfy
472
simultaneously your obligations under this License and any other
473
pertinent obligations, then as a consequence you may not
474
distribute the Library at all. For example, if a patent license
475
would not permit royalty-free redistribution of the Library by
476
all those who receive copies directly or indirectly through you,
477
then the only way you could satisfy both it and this License
478
would be to refrain entirely from distribution of the Library.
467
480
If any portion of this section is held invalid or unenforceable
468
481
under any particular circumstance, the balance of the section is
469
intended to apply, and the section as a whole is intended to apply
470
in other circumstances.
472
It is not the purpose of this section to induce you to infringe any
473
patents or other property right claims or to contest validity of
474
any such claims; this section has the sole purpose of protecting
475
the integrity of the free software distribution system which is
476
implemented by public license practices. Many people have made
477
generous contributions to the wide range of software distributed
478
through that system in reliance on consistent application of that
479
system; it is up to the author/donor to decide if he or she is
480
willing to distribute software through any other system and a
481
licensee cannot impose that choice.
483
This section is intended to make thoroughly clear what is believed
484
to be a consequence of the rest of this License.
482
intended to apply, and the section as a whole is intended to
483
apply in other circumstances.
485
It is not the purpose of this section to induce you to infringe
486
any patents or other property right claims or to contest validity
487
of any such claims; this section has the sole purpose of
488
protecting the integrity of the free software distribution system
489
which is implemented by public license practices. Many people
490
have made generous contributions to the wide range of software
491
distributed through that system in reliance on consistent
492
application of that system; it is up to the author/donor to
493
decide if he or she is willing to distribute software through any
494
other system and a licensee cannot impose that choice.
496
This section is intended to make thoroughly clear what is
497
believed to be a consequence of the rest of this License.
486
499
13. If the distribution and/or use of the Library is restricted in
487
500
certain countries either by patents or by copyrighted interfaces,
495
508
14. The Free Software Foundation may publish revised and/or new
496
509
versions of the Library General Public License from time to time.
497
Such new versions will be similar in spirit to the present version,
498
but may differ in detail to address new problems or concerns.
510
Such new versions will be similar in spirit to the present
511
version, but may differ in detail to address new problems or
500
514
Each version is given a distinguishing version number. If the
501
Library specifies a version number of this License which applies to
502
it and "any later version", you have the option of following the
503
terms and conditions either of that version or of any later version
504
published by the Free Software Foundation. If the Library does not
505
specify a license version number, you may choose any version ever
506
published by the Free Software Foundation.
515
Library specifies a version number of this License which applies
516
to it and "any later version", you have the option of following
517
the terms and conditions either of that version or of any later
518
version published by the Free Software Foundation. If the
519
Library does not specify a license version number, you may choose
520
any version ever published by the Free Software Foundation.
508
522
15. If you wish to incorporate parts of the Library into other free
509
programs whose distribution conditions are incompatible with these,
510
write to the author to ask for permission. For software which is
511
copyrighted by the Free Software Foundation, write to the Free
512
Software Foundation; we sometimes make exceptions for this. Our
513
decision will be guided by the two goals of preserving the free
514
status of all derivatives of our free software and of promoting the
515
sharing and reuse of software generally.
523
programs whose distribution conditions are incompatible with
524
these, write to the author to ask for permission. For software
525
which is copyrighted by the Free Software Foundation, write to
526
the Free Software Foundation; we sometimes make exceptions for
527
this. Our decision will be guided by the two goals of preserving
528
the free status of all derivatives of our free software and of
529
promoting the sharing and reuse of software generally.
519
533
16. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
520
534
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE
521
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
522
AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY
523
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
524
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
525
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
526
PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE
527
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
535
LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
536
HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT
537
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
538
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
539
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
540
QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
541
LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
542
SERVICING, REPAIR OR CORRECTION.
530
544
17. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
531
545
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
532
546
MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
533
547
LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
534
548
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
535
INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
536
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
537
OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY
538
OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
549
INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS
550
OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
551
YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH
552
ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
539
553
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
542
END OF TERMS AND CONDITIONS
556
END OF TERMS AND CONDITIONS
545
559
Appendix: How to Apply These Terms to Your New Libraries
648
664
Font Classes and Font Drivers
650
666
VFlib can handle multiple font file formats. Reading a font file
651
according to its font file format is done by an internal module in
652
VFlib corresponding to its font file format. This internal module
653
is called a *font driver*. Service units provided by a font driver
654
is called *font class*. From an end-user's point of view, various
655
font formats are distinguished by various names of font classes.
656
Font drivers themselves are internal of VFlib and invisible for
667
according to its font file format is done by an internal module
668
in VFlib corresponding to its font file format. This internal
669
module is called a *font driver*. Service units provided by a
670
font driver is called *font class*. From an end-user's point of
671
view, various font formats are distinguished by various names of
672
font classes. Font drivers themselves are internal of VFlib and
673
invisible for end-users.
659
675
Some font drivers may not read font files on disk; they may
660
676
generate glyph and outlines by internal computation only. In
661
addition, some font drivers may return glyph which are obtained as
662
glyph by another font class (hence the name `Virtual Font
677
addition, some font drivers may return glyph which are obtained
678
as glyph by another font class (hence the name `Virtual Font
665
681
A View of VFlib Font From The End-User
667
Each (virtual) font by VFlib has its inherent information of point
668
size, pixel size, and resolution of the target device. In addition
669
to these font metrics are defined for each glyph.
683
Each (virtual) font by VFlib has its inherent information of
684
point size, pixel size, and resolution of the target device. In
685
addition to these font metrics are defined for each glyph.
671
Some font file formats does not have such concepts; in such case,
672
(1) lacking information is given in a font database file `vflibcap'
673
or (2) the specific font driver gives such information as default
674
values. For instance, a TrueType font file is a vector font file
675
and does not has information on point size and resolution of the
676
target device (such information is unnecessary since vector fonts
677
can be scaled at any size). SyotaiKurabu font format (a vector
678
font for Japanese Kanji) does not have font metric information at
679
all. A font driver for this font format virtually generates font
680
metrics by information given in a vflibcap file.
687
Some font file formats does not have such concepts; in such
688
case, (1) lacking information is given in a font database file
689
`vflibcap' or (2) the specific font driver gives such information
690
as default values. For instance, a TrueType font file is a
691
vector font file and does not has information on point size and
692
resolution of the target device (such information is unnecessary
693
since vector fonts can be scaled at any size). SyotaiKurabu font
694
format (a vector font for Japanese Kanji) does not have font
695
metric information at all. A font driver for this font format
696
virtually generates font metrics by information given in a
682
699
Font Names and Font Searching Mechanism
684
701
In VFlib, a font is specified by a font name when a font is
685
702
requested to open. First, VFlib checks whether the font name is
686
703
given in vflibcap or not. If the font name is found, VFlib reads
687
the description for the font in vflibcap. The description contains
688
a font class name; VFlib then invokes a font driver corresponding
689
to the font class name. Finally the font driver opens the font
692
If the font name is not given in a vflibcap file, a font searching
693
mechanism is invoked. Since there are many font files for X Window
694
and TeX, this feature is introduced to avoid writing an entry for
695
each font file. Various font drivers will be called to see whether
696
the font can be opened. If a font driver succeeds in opening the
697
font, font searching finishes and the VFlib font opening function
698
returns successfully. Otherwise, font open fails.
700
Fonts described in a vflibcap file are called *explicit fonts* and
701
fonts that are searched for by the font search feature are called
702
*implicit fonts*. Support for explicit and implicit fonts depends
704
the description for the font in vflibcap. The description
705
contains a font class name; VFlib then invokes a font driver
706
corresponding to the font class name. Finally the font driver
707
opens the font file (if necessary).
709
If the font name is not given in a vflibcap file, a font
710
searching mechanism is invoked. Since there are many font files
711
for X Window and TeX, this feature is introduced to avoid writing
712
an entry for each font file. Various font drivers will be called
713
to see whether the font can be opened. If a font driver succeeds
714
in opening the font, font searching finishes and the VFlib font
715
opening function returns successfully. Otherwise, font open
718
Fonts described in a vflibcap file are called *explicit fonts*
719
and fonts that are searched for by the font search feature are
720
called *implicit fonts*. Support for explicit and implicit fonts
721
depends on font driver.
706
724
Obtaining Bitmaps (Glyph)
936
958
Installation directories are as follows:
939
`/usr/local/share/VFlib/3.6.12/' (= `$prefix/share/VFlib/3.6.12/')
961
`/usr/local/share/VFlib/3.6.14/' (= `$prefix/share/VFlib/3.6.14/')
940
962
Runtime files such as vflibcap are installed here.
942
964
This runtime root directory can be changed on runtime by an
943
965
environment variable `VFLIB_RUNTIME_DIRECTORY'. If this
944
966
environment variable is not set, the default directory
945
(`/usr/local/share/VFlib/3.6.12/') is used.
967
(`/usr/local/share/VFlib/3.6.14/') is used.
947
969
Under this directory, there are following subdirectories:
950
In this directory, code conversion files are installed. This
951
directory can be changed on runtime by setting an environment
952
variable `VFLIB_CCV_DIRECTORY'. If this variable is set,
953
default runtime directory and the value by
972
In this directory, code conversion files are installed.
973
This directory can be changed on runtime by setting an
974
environment variable `VFLIB_CCV_DIRECTORY'. If this
975
variable is set, default runtime directory and the value by
954
976
`VFLIB_RUNTIME_DIRECTORY' variable are ignored.
957
Encoding vector files for T1Lib (for Type 1 fonts) are stored
958
in this directory. Note that the file format for encoding
959
vector files used by T1Lib is different from those used by
960
standard PostScript. To convert standard PostScript encoding
961
vector files into T1Lib format, use `mkt1enc.sh' program in
962
this directory. By default, this directory contains files
963
converted from encoding vector files in the `dvips'
979
Encoding vector files for T1Lib (for Type 1 fonts) are
980
stored in this directory. Note that the file format for
981
encoding vector files used by T1Lib is different from those
982
used by standard PostScript. To convert standard PostScript
983
encoding vector files into T1Lib format, use `mkt1enc.sh'
984
program in this directory. By default, this directory
985
contains files converted from encoding vector files in the
986
`dvips' distribution.
967
989
In this directory, runtime files for Japanese TeX by ASCII
968
Coop. are installed. This directory can be changed on runtime
969
by setting an environment variable
990
Coop. are installed. This directory can be changed on
991
runtime by setting an environment variable
970
992
`VFLIB_ASCII_JTEX_DIRECTORY'. If this variable is set,
971
993
default runtime directory and the value by
972
994
`VFLIB_RUNTIME_DIRECTORY' variable are ignored.