This commit is contained in:
cinap_lenrek 2011-07-17 18:17:06 +02:00
commit bd24f31a4e
9 changed files with 1878 additions and 813 deletions

261
LICENSE
View file

@ -1,261 +0,0 @@
The Plan 9 software is provided under the terms of the
Lucent Public License, Version 1.02, reproduced below,
with the following notable exceptions:
1. No right is granted to create derivative works of or
to redistribute (other than with the Plan 9 Operating System)
the screen imprinter fonts identified in subdirectory
/lib/font/bit/lucida and printer fonts (Lucida Sans Unicode, Lucida
Sans Italic, Lucida Sans Demibold, Lucida Typewriter, Lucida Sans
Typewriter83), identified in subdirectory /sys/lib/postscript/font.
These directories contain material copyrights by B&H Inc. and Y&Y Inc.
2. The printer fonts identified in subdirectory /sys/lib/ghostscript/font
are subject to the GNU GPL, reproduced in the file /LICENSE.gpl.
3. The ghostscript program in the subdirectory /sys/src/cmd/gs is
covered by the Aladdin Free Public License, reproduced in the file
/LICENSE.afpl.
Other, less notable exceptions are marked in the file tree with
COPYING, COPYRIGHT, or LICENSE files.
===================================================================
Lucent Public License Version 1.02
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS PUBLIC
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE
PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a. in the case of Lucent Technologies Inc. ("LUCENT"), the Original
Program, and
b. in the case of each Contributor,
i. changes to the Program, and
ii. additions to the Program;
where such changes and/or additions to the Program were added to the
Program by such Contributor itself or anyone acting on such
Contributor's behalf, and the Contributor explicitly consents, in
accordance with Section 3C, to characterization of the changes and/or
additions as Contributions.
"Contributor" means LUCENT and any other entity that has Contributed a
Contribution to the Program.
"Distributor" means a Recipient that distributes the Program,
modifications to the Program, or any part thereof.
"Licensed Patents" mean patent claims licensable by a Contributor
which are necessarily infringed by the use or sale of its Contribution
alone or when combined with the Program.
"Original Program" means the original version of the software
accompanying this Agreement as released by LUCENT, including source
code, object code and documentation, if any.
"Program" means the Original Program and Contributions or any part
thereof
"Recipient" means anyone who receives the Program under this
Agreement, including all Contributors.
2. GRANT OF RIGHTS
a. Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare derivative works of, publicly display,
publicly perform, distribute and sublicense the Contribution of such
Contributor, if any, and such derivative works, in source code and
object code form.
b. Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor, if
any, in source code and object code form. The patent license granted
by a Contributor shall also apply to the combination of the
Contribution of that Contributor and the Program if, at the time the
Contribution is added by the Contributor, such addition of the
Contribution causes such combination to be covered by the Licensed
Patents. The patent license granted by a Contributor shall not apply
to (i) any other combinations which include the Contribution, nor to
(ii) Contributions of other Contributors. No hardware per se is
licensed hereunder.
c. Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity. Each
Contributor disclaims any liability to Recipient for claims brought by
any other entity based on infringement of intellectual property rights
or otherwise. As a condition to exercising the rights and licenses
granted hereunder, each Recipient hereby assumes sole responsibility
to secure any other intellectual property rights needed, if any. For
example, if a third party patent license is required to allow
Recipient to distribute the Program, it is Recipient's responsibility
to acquire that license before distributing the Program.
d. Each Contributor represents that to its knowledge it has sufficient
copyright rights in its Contribution, if any, to grant the copyright
license set forth in this Agreement.
3. REQUIREMENTS
A. Distributor may choose to distribute the Program in any form under
this Agreement or under its own license agreement, provided that:
a. it complies with the terms and conditions of this Agreement;
b. if the Program is distributed in source code or other tangible
form, a copy of this Agreement or Distributor's own license agreement
is included with each copy of the Program; and
c. if distributed under Distributor's own license agreement, such
license agreement:
i. effectively disclaims on behalf of all Contributors all warranties
and conditions, express and implied, including warranties or
conditions of title and non-infringement, and implied warranties or
conditions of merchantability and fitness for a particular purpose;
ii. effectively excludes on behalf of all Contributors all liability
for damages, including direct, indirect, special, incidental and
consequential damages, such as lost profits; and
iii. states that any provisions which differ from this Agreement are
offered by that Contributor alone and not by any other party.
B. Each Distributor must include the following in a conspicuous
location in the Program:
Copyright (C) 2003, Lucent Technologies Inc. and others. All Rights
Reserved.
C. In addition, each Contributor must identify itself as the
originator of its Contribution in a manner that reasonably allows
subsequent Recipients to identify the originator of the Contribution.
Also, each Contributor must agree that the additions and/or changes
are intended to be a Contribution. Once a Contribution is contributed,
it may not thereafter be revoked.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain
responsibilities with respect to end users, business partners and the
like. While this license is intended to facilitate the commercial use
of the Program, the Distributor who includes the Program in a
commercial product offering should do so in a manner which does not
create potential liability for Contributors. Therefore, if a
Distributor includes the Program in a commercial product offering,
such Distributor ("Commercial Distributor") hereby agrees to defend
and indemnify every Contributor ("Indemnified Contributor") against
any losses, damages and costs (collectively"Losses") arising from
claims, lawsuits and other legal actions brought by a third party
against the Indemnified Contributor to the extent caused by the acts
or omissions of such Commercial Distributor in connection with its
distribution of the Program in a commercial product offering. The
obligations in this section do not apply to any claims or Losses
relating to any actual or alleged intellectual property infringement.
In order to qualify, an Indemnified Contributor must: a) promptly
notify the Commercial Distributor in writing of such claim, and b)
allow the Commercial Distributor to control, and cooperate with the
Commercial Distributor in, the defense and any related settlement
negotiations. The Indemnified Contributor may participate in any such
claim at its own expense.
For example, a Distributor might include the Program in a commercial
product offering, Product X. That Distributor is then a Commercial
Distributor. If that Commercial Distributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Distributor's responsibility
alone. Under this section, the Commercial Distributor would have to
defend claims against the Contributors related to those performance
claims and warranties, and if a court requires any Contributor to pay
any damages as a result, the Commercial Distributor must pay those
damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
PROVIDED ON AN"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
responsible for determining the appropriateness of using and
distributing the Program and assumes all risks associated with its
exercise of rights under this Agreement, including but not limited to
the risks and costs of program errors, compliance with applicable
laws, damage to or loss of data, programs or equipment, and
unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. EXPORT CONTROL
Recipient agrees that Recipient alone is responsible for compliance
with the United States export administration regulations (and the
export control laws and regulation of any other countries).
8. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against a Contributor with
respect to a patent applicable to software (including a cross-claim or
counterclaim in a lawsuit), then any patent licenses granted by that
Contributor to such Recipient under this Agreement shall terminate as
of the date such litigation is filed. In addition, if Recipient
institutes patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Program
itself (excluding combinations of the Program with other software or
hardware) infringes such Recipient's patent(s), then such Recipient's
rights granted under Section 2(b) shall terminate as of the date such
litigation is filed.
All Recipient's rights under this Agreement shall terminate if it
fails to comply with any of the material terms or conditions of this
Agreement and does not cure such failure in a reasonable period of
time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use
and distribution of the Program as soon as reasonably practicable.
However, Recipient's obligations under this Agreement and any licenses
granted by Recipient relating to the Program shall continue and
survive.
LUCENT may publish new versions (including revisions) of this
Agreement from time to time. Each new version of the Agreement will be
given a distinguishing version number. The Program (including
Contributions) may always be distributed subject to the version of the
Agreement under which it was received. In addition, after a new
version of the Agreement is published, Contributor may elect to
distribute the Program (including its Contributions) under the new
version. No one other than LUCENT has the right to modify this
Agreement. Except as expressly stated in Sections 2(a) and 2(b) above,
Recipient receives no rights or licenses to the intellectual property
of any Contributor under this Agreement, whether expressly, by
implication, estoppel or otherwise. All rights in the Program not
expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and
the intellectual property laws of the United States of America. No
party to this Agreement will bring a legal action under this Agreement
more than one year after the cause of action arose. Each party waives
its rights to a jury trial in any resulting litigation.

View file

@ -1,258 +0,0 @@
Aladdin Free Public License
(Version 9, September 18, 2000)
Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000 Aladdin Enterprises,
Menlo Park, California, U.S.A. All rights reserved.
NOTE: This License is not the same as any of the GNU Licenses
published by the Free Software Foundation. Its terms are
substantially different from those of the GNU Licenses. If you are
familiar with the GNU Licenses, please read this license with extra
care.
Aladdin Enterprises hereby grants to anyone the permission to apply
this License to their own work, as long as the entire License
(including the above notices and this paragraph) is copied with no
changes, additions, or deletions except for changing the first
paragraph of Section 0 to include a suitable description of the work
to which the license is being applied and of the person or entity that
holds the copyright in the work, and, if the License is being applied
to a work created in a country other than the United States, replacing
the first paragraph of Section 6 with an appropriate reference to the
laws of the appropriate country.
This License is not an Open Source license: among other things, it
places restrictions on distribution of the Program, specifically
including sale of the Program. While Aladdin Enterprises respects and
supports the philosophy of the Open Source Definition, and shares the
desire of the GNU project to keep licensed software freely
redistributable in both source and object form, we feel that Open
Source licenses unfairly prevent developers of useful software from
being compensated proportionately when others profit financially from
their work. This License attempts to ensure that those who receive,
redistribute, and contribute to the licensed Program according to the
Open Source and Free Software philosophies have the right to do so,
while retaining for the developer(s) of the Program the power to make
those who use the Program to enhance the value of commercial products
pay for the privilege of doing so.
0. Subject Matter
This License applies to the computer program known as "AFPL
Ghostscript." The "Program", below, refers to such program. The
Program is a copyrighted work whose copyright is held by artofcode
LLC, located in Benicia, California (the "Licensor"). Please note that
AFPL Ghostscript is neither the program known as "GNU Ghostscript" nor
the version of Ghostscript available for commercial licensing from
Artifex Software Inc.
A "work based on the Program" means either the Program or any
derivative work of the Program, as defined in the United States
Copyright Act of 1976, such as a translation or a modification.
BY MODIFYING OR DISTRIBUTING THE PROGRAM (OR ANY WORK BASED ON THE
PROGRAM), YOU INDICATE YOUR ACCEPTANCE OF THIS LICENSE TO DO SO, AND
ALL ITS TERMS AND CONDITIONS FOR COPYING, DISTRIBUTING OR MODIFYING
THE PROGRAM OR WORKS BASED ON IT. NOTHING OTHER THAN THIS LICENSE
GRANTS YOU PERMISSION TO MODIFY OR DISTRIBUTE THE PROGRAM OR ITS
DERIVATIVE WORKS. THESE ACTIONS ARE PROHIBITED BY LAW. IF YOU DO NOT
ACCEPT THESE TERMS AND CONDITIONS, DO NOT MODIFY OR DISTRIBUTE THE
PROGRAM.
1. Licenses.
Licensor hereby grants you the following rights, provided that you
comply with all of the restrictions set forth in this License and
provided, further, that you distribute an unmodified copy of this
License with the Program:
(a)
You may copy and distribute literal (i.e., verbatim) copies of
the Program's source code as you receive it throughout the
world, in any medium.
(b)
You may modify the Program, create works based on the Program
and distribute copies of such throughout the world, in any
medium.
2. Restrictions.
This license is subject to the following restrictions:
(a)
Distribution of the Program or any work based on the Program by
a commercial organization to any third party is prohibited if
any payment is made in connection with such distribution,
whether directly (as in payment for a copy of the Program) or
indirectly (as in payment for some service related to the
Program, or payment for some product or service that includes a
copy of the Program "without charge"; these are only examples,
and not an exhaustive enumeration of prohibited activities).
The following methods of distribution involving payment shall
not in and of themselves be a violation of this restriction:
(i)
Posting the Program on a public access information storage
and retrieval service for which a fee is received for
retrieving information (such as an on-line service),
provided that the fee is not content-dependent (i.e., the
fee would be the same for retrieving the same volume of
information consisting of random data) and that access to
the service and to the Program is available independent of
any other product or service. An example of a service that
does not fall under this section is an on-line service
that is operated by a company and that is only available
to customers of that company. (This is not an exhaustive
enumeration.)
(ii)
Distributing the Program on removable computer-readable
media, provided that the files containing the Program are
reproduced entirely and verbatim on such media, that all
information on such media be redistributable for
non-commercial purposes without charge, and that such
media are distributed by themselves (except for
accompanying documentation) independent of any other
product or service. Examples of such media include CD-ROM,
magnetic tape, and optical storage media. (This is not
intended to be an exhaustive list.) An example of a
distribution that does not fall under this section is a
CD-ROM included in a book or magazine. (This is not an
exhaustive enumeration.)
(b)
Activities other than copying, distribution and modification of
the Program are not subject to this License and they are
outside its scope. Functional use (running) of the Program is
not restricted, and any output produced through the use of the
Program is subject to this license only if its contents
constitute a work based on the Program (independent of having
been made by running the Program).
(c)
You must meet all of the following conditions with respect to
any work that you distribute or publish that in whole or in
part contains or is derived from the Program or any part
thereof ("the Work"):
(i)
If you have modified the Program, you must cause the Work
to carry prominent notices stating that you have modified
the Program's files and the date of any change. In each
source file that you have modified, you must include a
prominent notice that you have modified the file,
including your name, your e-mail address (if any), and the
date and purpose of the change;
(ii)
You must cause the Work to be licensed as a whole and at
no charge to all third parties under the terms of this
License;
(iii)
If the Work normally reads commands interactively when
run, you must cause it, at each time the Work commences
operation, to print or display an announcement including
an appropriate copyright notice and a notice that there is
no warranty (or else, saying that you provide a warranty).
Such notice must also state that users may redistribute
the Work only under the conditions of this License and
tell the user how to view the copy of this License
included with the Work. (Exceptions: if the Program is
interactive but normally prints or displays such an
announcement only at the request of a user, such as in an
"About box", the Work is required to print or display the
notice only under the same circumstances; if the Program
itself is interactive but does not normally print such an
announcement, the Work is not required to print an
announcement.);
(iv)
You must accompany the Work with the complete
corresponding machine-readable source code, delivered on a
medium customarily used for software interchange. The
source code for a work means the preferred form of the
work for making modifications to it. For an executable
work, complete source code means all the source code for
all modules it contains, plus any associated interface
definition files, plus the scripts used to control
compilation and installation of the executable code. If
you distribute with the Work any component that is
normally distributed (in either source or binary form)
with the major components (compiler, kernel, and so on) of
the operating system on which the executable runs, you
must also distribute the source code of that component if
you have it and are allowed to do so;
(v)
If you distribute any written or printed material at all
with the Work, such material must include either a written
copy of this License, or a prominent written indication
that the Work is covered by this License and written
instructions for printing and/or displaying the copy of
the License on the distribution medium;
(vi)
You may not impose any further restrictions on the
recipient's exercise of the rights granted herein.
If distribution of executable or object code is made by offering the
equivalent ability to copy from a designated place, then offering
equivalent ability to copy the source code from the same place counts
as distribution of the source code, even though third parties are not
compelled to copy the source code along with the object code.
3. Reservation of Rights.
No rights are granted to the Program except as expressly set forth
herein. You may not copy, modify, sublicense, or distribute the
Program except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
4. Other Restrictions.
If the distribution and/or use of the Program is restricted in certain
countries for any reason, Licensor may add an explicit geographical
distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
5. Limitations.
THE PROGRAM IS PROVIDED TO YOU "AS IS," WITHOUT WARRANTY. THERE IS NO
WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL LICENSOR, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
6. General.
This License is governed by the laws of the State of California,
U.S.A., excluding choice of law rules.
If any part of this License is found to be in conflict with the law,
that part shall be interpreted in its broadest meaning consistent with
the law, and no other parts of the License shall be affected.
For United States Government users, the Program is provided with
RESTRICTED RIGHTS. If you are a unit or agency of the United States
Government or are acquiring the Program for any such unit or agency,
the following apply:
If the unit or agency is the Department of Defense ("DOD"), the
Program and its documentation are classified as "commercial
computer software" and "commercial computer software documentation"
respectively and, pursuant to DFAR Section 227.7202, the Government
is acquiring the Program and its documentation in accordance with
the terms of this License. If the unit or agency is other than DOD,
the Program and its documentation are classified as "commercial
computer software" and "commercial computer software documentation"
respectively and, pursuant to FAR Section 12.212, the Government is
acquiring the Program and its documentation in accordance with the
terms of this License.

View file

@ -1,290 +0,0 @@
!! This license applies only to the printer fonts identified in
!! subdirectory /sys/lib/ghostscript/font.
===================================================================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave,
Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute
verbatim copies of this license document, but changing it is not
allowed.
Preamble
The licenses for most software are designed to take away your freedom
to share and change it. By contrast, the GNU General Public License
is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on,
we want its recipients to know that what they have is not the
original, so that any problems introduced by others will not reflect
on the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at
all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a
notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the Program
(independent of having been made by running the Program). Whether
that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third parties
under the terms of this License.
c) If the modified program normally reads commands interactively when
run, you must cause it, when started running for such interactive use
in the most ordinary way, to print or display an announcement
including an appropriate copyright notice and a notice that there is
no warranty (or else, saying that you provide a warranty) and that
users may redistribute the program under these conditions, and telling
the user how to view a copy of this License. (Exception: if the
Program itself is interactive but does not normally print such an
announcement, your work based on the Program is not required to print
an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years,
to give any third party, for a charge no more than your cost of
physically performing source distribution, a complete machine-readable
copy of the corresponding source code, to be distributed under the
terms of Sections 1 and 2 above on a medium customarily used for
software interchange; or,
c) Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed
only for noncommercial distribution and only if you received the
program in object code or executable form with such an offer, in
accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new
versions of the General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Program does not specify a
version number of this License, you may choose any version ever
published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the
author to ask for permission. For software which is copyrighted by
the Free Software Foundation, write to the Free Software Foundation;
we sometimes make exceptions for this. Our decision will be guided by
the two goals of preserving the free status of all derivatives of our
free software and of promoting the sharing and reuse of software
generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS

2
NOTICE
View file

@ -1,2 +0,0 @@
Copyright © 2002 Lucent Technologies Inc.
All Rights Reserved

1310
lib/human Normal file

File diff suppressed because one or more lines are too long

7
rc/bin/nietzsche Normal file
View file

@ -0,0 +1,7 @@
#!/bin/rc
if(~ $#* 0)
n=`{seq 1 638 | fortune /fd/0}
if not
n=$*
for(i in $n)
cat /lib/human | sed -n '/^'$i'\./,/^$/p' | nroff | grep .

16
sys/man/1/nietzsche Normal file
View file

@ -0,0 +1,16 @@
.TH NIETZSCHE 1
.SH NAME
nietzsche \- print out Nietzsche quote
.SH SYNOPSIS
.B nietzsche
[
.I numbers
]
.SH DESCRIPTION
.I Nietzsche
cites ``Human, all too human'' by Friedrich Nietzsche.
It prints the aphorisms with the numbers given as arguments, or a random one, if no argument is supplied.
.SH FILES
.B /lib/human
.SH SOURCE
.B /rc/bin/nietzsche

View file

@ -1,6 +1,6 @@
.TH BIO 2 .TH BIO 2
.SH NAME .SH NAME
Bopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered \- buffered input/output Bopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered, Blethal \- buffered input/output
.SH SYNOPSIS .SH SYNOPSIS
.ta \w'Biobuf* 'u .ta \w'Biobuf* 'u
.B #include <u.h> .B #include <u.h>
@ -79,7 +79,7 @@ int Bflush(Biobufhdr *bp)
int Bbuffered(Biobufhdr *bp) int Bbuffered(Biobufhdr *bp)
.PP .PP
.B .B
void Blethal(Biobufhdr *bp, void (*errorf)(char *)); void Blethal(Biobufhdr *bp, void (*errorf)(char *))
.PP .PP
.SH DESCRIPTION .SH DESCRIPTION
These routines implement fast buffered I/O. These routines implement fast buffered I/O.

543
sys/src/cmd/fplot.c Normal file
View file

@ -0,0 +1,543 @@
#include <u.h>
#include <libc.h>
#include <ctype.h>
#include <draw.h>
#include <event.h>
typedef struct Op Op;
typedef struct Operator Operator;
typedef struct Token Token;
typedef struct Constant Constant;
typedef struct Code Code;
enum {
ONONE,
ONUMBER,
OVAR,
OUNARY,
OBINARY,
};
struct Op {
int type;
union {
void (*f)(void);
double val;
};
};
enum {
TNONE,
TNUMBER,
TVAR,
TOP,
TPARENL,
TPARENR,
};
struct Token {
int type;
union {
Operator *op;
double val;
};
Token *next;
};
double *stack, *sp;
void add(void) { sp--; *sp += *(sp+1); }
void sub(void) { sp--; *sp -= *(sp+1); }
void mul(void) { sp--; *sp *= *(sp+1); }
void div(void) { sp--; *sp /= *(sp+1); }
void pot(void) { sp--; *sp = pow(*sp, *(sp+1)); }
void osin(void) { *sp = sin(*sp); }
void ocos(void) { *sp = cos(*sp); }
void otan(void) { *sp = tan(*sp); }
void oasin(void) { *sp = asin(*sp); }
void oacos(void) { *sp = acos(*sp); }
void oatan(void) { *sp = atan(*sp); }
void osqrt(void) { *sp = sqrt(*sp); }
void olog(void) { *sp = log10(*sp); }
void oln(void) { *sp = log(*sp); }
struct Operator {
char *s;
char type;
char rassoc;
short prec;
void (*f)(void);
} ops[] = {
"+", OBINARY, 0, 0, add,
"-", OBINARY, 0, 0, sub,
"*", OBINARY, 0, 100, mul,
"/", OBINARY, 0, 100, div,
"^", OBINARY, 1, 200, pot,
"sin", OUNARY, 0, 50, osin,
"cos", OUNARY, 0, 50, ocos,
"tan", OUNARY, 0, 50, otan,
"asin", OUNARY, 0, 50, oasin,
"acos", OUNARY, 0, 50, oacos,
"atan", OUNARY, 0, 50, oatan,
"sqrt", OUNARY, 0, 50, osqrt,
"log", OUNARY, 0, 50, olog,
"ln", OUNARY, 0, 50, oln,
};
struct Constant {
char *s;
double val;
} consts[] = {
"pi", 3.14159265359,
"π", 3.14159265359,
"e", 2.71828182846,
};
struct Code {
Op* p;
int len, cap;
} *fns;
int nfns;
Token *opstackbot;
double xmin = -10, xmax = 10;
double ymin = -10, ymax = 10;
Image *color;
int cflag;
char *imagedata;
int picx = 640, picy = 480;
void *
emalloc(int size)
{
void *v;
v = mallocz(size, 1);
if(v == nil)
sysfatal("emalloc: %r");
setmalloctag(v, getcallerpc(&size));
return v;
}
void
addop(Code *c, Op o)
{
if(c->len >= c->cap) {
c->cap += 32;
c->p = realloc(c->p, sizeof(Op) * c->cap);
if(c->p == nil)
sysfatal("realloc: %r");
}
c->p[c->len++] = o;
}
void
push(Token *t)
{
t->next = opstackbot;
opstackbot = t;
}
void
pop(Code *c)
{
Token *t;
Op o;
t = opstackbot;
if(t == nil)
sysfatal("stack underflow");
opstackbot = t->next;
if(t->type != TOP)
sysfatal("non-operator pop");
o.type = t->op->type;
o.f = t->op->f;
addop(c, o);
free(t);
}
void
popdel(void)
{
Token *t;
t = opstackbot;
opstackbot = t->next;
free(t);
}
Token *
lex(char **s)
{
Token *t;
Operator *o;
Constant *c;
while(isspace(**s))
(*s)++;
if(**s == 0)
return nil;
t = emalloc(sizeof(*t));
if(isdigit(**s)) {
t->type = TNUMBER;
t->val = strtod(*s, s);
return t;
}
if(**s == '(') {
t->type = TPARENL;
(*s)++;
return t;
}
if(**s == ')') {
t->type = TPARENR;
(*s)++;
return t;
}
if(**s == 'x') {
t->type = TVAR;
(*s)++;
return t;
}
for(o = ops; o < ops + nelem(ops); o++)
if(strncmp(*s, o->s, strlen(o->s)) == 0) {
t->type = TOP;
t->op = o;
*s += strlen(o->s);
return t;
}
for(c = consts; c < consts + nelem(consts); c++)
if(strncmp(*s, c->s, strlen(c->s)) == 0) {
t->type = TNUMBER;
t->val = c->val;
*s += strlen(c->s);
return t;
}
sysfatal("syntax error at %s", *s);
return nil;
}
void
parse(Code *c, char *s)
{
Token *t;
Op o;
while(t = lex(&s)) {
switch(t->type) {
case TNUMBER:
o.type = ONUMBER;
o.val = t->val;
addop(c, o);
free(t);
break;
case TVAR:
o.type = OVAR;
addop(c, o);
free(t);
break;
case TOP:
if(t->op->type == OBINARY)
while(opstackbot != nil && opstackbot->type == TOP &&
(opstackbot->op->prec > t->op->prec ||
t->op->rassoc && opstackbot->op->prec == t->op->prec))
pop(c);
push(t);
break;
case TPARENL:
push(t);
break;
case TPARENR:
while(opstackbot != nil && opstackbot->type == TOP)
pop(c);
if(opstackbot == nil)
sysfatal("mismatched parentheses");
popdel();
free(t);
break;
default:
sysfatal("unknown token type %d", t->type);
}
}
while(opstackbot != nil)
switch(opstackbot->type) {
case TOP:
pop(c);
break;
case TPARENL:
sysfatal("mismatched parentheses");
default:
sysfatal("syntax error");
}
}
int
calcstack(Code *c)
{
int cur, max;
Op *o;
cur = 0;
max = 0;
for(o = c->p; o < c->p + c->len; o++)
switch(o->type) {
case ONUMBER: case OVAR:
if(++cur > max)
max = cur;
break;
case OUNARY:
if(cur == 0)
sysfatal("syntax error");
break;
case OBINARY:
if(cur <= 1)
sysfatal("syntax error");
cur--;
break;
}
if(cur != 1)
sysfatal("syntax error");
return max;
}
double
calc(Code *c, double x)
{
Op *o;
sp = stack - 1;
for(o = c->p; o < c->p + c->len; o++)
switch(o->type) {
case ONUMBER:
*++sp = o->val;
break;
case OVAR:
*++sp = x;
break;
case OUNARY: case OBINARY:
o->f();
}
return *sp;
}
double
convx(Rectangle *r, int x)
{
return (xmax - xmin) * (x - r->min.x) / (r->max.x - r->min.x) + xmin;
}
int
deconvx(Rectangle *r, double dx)
{
return (dx - xmin) * (r->max.x - r->min.x) / (xmax - xmin) + r->min.x + 0.5;
}
double
convy(Rectangle *r, int y)
{
return (ymax - ymin) * (r->max.y - y) / (r->max.y - r->min.y) + ymin;
}
int
deconvy(Rectangle *r, double dy)
{
return (ymax - dy) * (r->max.y - r->min.y) / (ymax - ymin) + r->min.y + 0.5;
}
void
pixel(int x, int y)
{
char *p;
if(cflag) {
if(x >= picx || y >= picy || x < 0 || y < 0)
return;
p = imagedata + (picx * y + x) * 3;
p[0] = p[1] = p[2] = 0;
} else
draw(screen, Rect(x, y, x + 1, y + 1), color, nil, ZP);
}
void
drawinter(Code *co, Rectangle *r, double x1, double x2, int n)
{
double y1, y2;
int iy1, iy2;
int ix1, ix2;
ix1 = deconvx(r, x1);
ix2 = deconvx(r, x2);
iy1 = iy2 = 0;
y1 = calc(co, x1);
if(!isNaN(y1)) {
iy1 = deconvy(r, y1);
pixel(ix1, iy1);
}
y2 = calc(co, x2);
if(!isNaN(y2)) {
iy2 = deconvy(r, y2);
pixel(ix2, iy2);
}
if(isNaN(y1) || isNaN(y2))
return;
if(n >= 10)
return;
if(iy2 >= iy1 - 1 && iy2 <= iy1 + 1)
return;
if(iy1 > r->max.y && iy2 > r->max.y)
return;
if(iy1 < r->min.y && iy2 < r->min.y)
return;
drawinter(co, r, x1, (x1 + x2) / 2, n + 1);
drawinter(co, r, (x1 + x2) / 2, x2, n + 1);
}
void
drawgraph(Code *co, Rectangle *r)
{
int x;
for(x = r->min.x; x < r->max.x; x++)
drawinter(co, r, convx(r, x), convx(r, x + 1), 0);
}
void
drawgraphs(void)
{
int i;
color = display->black;
for(i = 0; i < nfns; i++)
drawgraph(&fns[i], &screen->r);
flushimage(display, 1);
}
void
usage(void)
{
fprint(2, "usage: fplot [-c [-s size]] [-r range] functions ...\n");
exits("usage");
}
void
zoom(void)
{
Mouse m;
Rectangle r;
double xmin_, xmax_, ymin_, ymax_;
m.buttons = 7;
r = egetrect(1, &m);
if(r.min.x == 0 && r.min.y == 0 && r.max.x == 0 && r.max.y == 0)
return;
xmin_ = convx(&screen->r, r.min.x);
xmax_ = convx(&screen->r, r.max.x);
ymin_ = convy(&screen->r, r.max.y);
ymax_ = convy(&screen->r, r.min.y);
xmin = xmin_;
xmax = xmax_;
ymin = ymin_;
ymax = ymax_;
draw(screen, screen->r, display->white, nil, ZP);
drawgraphs();
}
void
parsefns(int n, char **s)
{
int i, max, cur;
max = 0;
nfns = n;
fns = emalloc(sizeof(*fns) * n);
for(i = 0; i < nfns; i++) {
parse(&fns[i], s[i]);
cur = calcstack(&fns[i]);
if(cur > max)
max = cur;
}
stack = emalloc(sizeof(*stack) * max);
}
void
parserange(char *s)
{
while(*s && !isdigit(*s)) s++;
if(*s == 0) return;
xmin = strtod(s, &s);
while(*s && !isdigit(*s)) s++;
if(*s == 0) return;
xmax = strtod(s, &s);
while(*s && !isdigit(*s)) s++;
if(*s == 0) return;
ymin = strtod(s, &s);
while(*s && !isdigit(*s)) s++;
if(*s == 0) return;
ymax = strtod(s, &s);
}
void
parsesize(char *s)
{
while(*s && !isdigit(*s)) s++;
if(*s == 0) return;
picx = strtol(s, &s, 0);
while(*s && !isdigit(*s)) s++;
if(*s == 0) return;
picy = strtol(s, &s, 0);
}
void
main(int argc, char **argv)
{
Event e;
Rectangle r;
int i;
ARGBEGIN {
case 'r': parserange(EARGF(usage())); break;
case 's': parsesize(EARGF(usage())); break;
case 'c': cflag++; break;
default: usage();
} ARGEND;
if(argc < 1)
usage();
setfcr(getfcr() & ~(FPZDIV | FPINVAL));
parsefns(argc, argv);
if(cflag) {
imagedata = emalloc(picx * picy * 3);
memset(imagedata, 0xFF, picx * picy * 3);
print("%11s %11d %11d %11d %11d ", "r8g8b8", 0, 0, picx, picy);
r.min.x = r.min.y = 0;
r.max.x = picx;
r.max.y = picy;
for(i = 0; i < nfns; i++)
drawgraph(&fns[i], &r);
if(write(1, imagedata, picx * picy * 3) < picx * picy * 3)
sysfatal("write: %r");
} else {
if(initdraw(nil, nil, "fplot") < 0)
sysfatal("initdraw: %r");
einit(Emouse | Ekeyboard);
drawgraphs();
for(;;) {
switch(event(&e)) {
case Ekeyboard:
switch(e.kbdc) {
case 'q': exits(nil);
case 'z': zoom();
}
}
}
}
}
void
eresized(int new)
{
if(new) {
if(getwindow(display, Refnone) < 0)
sysfatal("getwindow: %r");
drawgraphs();
}
}