summaryrefslogtreecommitdiff
path: root/doc/pkgsrc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/pkgsrc.txt')
-rw-r--r--doc/pkgsrc.txt147
1 files changed, 93 insertions, 54 deletions
diff --git a/doc/pkgsrc.txt b/doc/pkgsrc.txt
index 819c7b60602..b7707e20c06 100644
--- a/doc/pkgsrc.txt
+++ b/doc/pkgsrc.txt
@@ -571,6 +571,8 @@ Table 1.1. Platforms supported by pkgsrc
|DragonFlyBSD | Oct 2004 |
|---------------------------------------------+------------------|
|OSF/1 | Nov 2004 |
+|---------------------------------------------+------------------|
+|HP-UX | Apr 2007 |
+----------------------------------------------------------------+
@@ -806,7 +808,7 @@ Before you download any pkgsrc files, you should decide whether you want the
current branch or the stable branch. The latter is forked on a quarterly basis
from the current branch and only gets modified for security updates. The names
of the stable branches are built from the year and the quarter, for example
-2006Q4.
+2007Q1.
The second step is to decide how you want to download pkgsrc. You can get it as
a tar file, via SUP, or via CVS. All three ways are described here.
@@ -820,8 +822,8 @@ described in detail in Appendix C, Directory layout of the pkgsrc FTP server.
The tar file for the current branch is in the directory current and is called
pkgsrc.tar.gz. It is autogenerated daily.
-The tar file for the stable branch 2006Q4 is in the directory pkgsrc-2006Q4 and
-is also called pkgsrc-2006Q4.tar.gz.
+The tar file for the stable branch 2007Q1 is in the directory pkgsrc-2007Q1 and
+is also called pkgsrc-2007Q1.tar.gz.
After downloading the tar file, change to the directory where you want to have
pkgsrc. This is usually /usr. Then, run gzcat pkgsrc.tar.gz | tar xf - to
@@ -855,7 +857,7 @@ Or, the same for the bourne shell:
Then, you change to the directory where you want to have your copy of pkgsrc.
In most cases this is /usr. In that directory you run the checkout command,
which is cvs -q checkout -P pkgsrc for the current branch and cvs -q checkout
--rpkgsrc-2006Q4 -P pkgsrc for the stable branch. This command will create a
+-rpkgsrc-2007Q1 -P pkgsrc for the stable branch. This command will create a
directory called pkgsrc with all the pkgsrc files in it.
2.2. Keeping pkgsrc up-to-date
@@ -896,7 +898,7 @@ When updating pkgsrc, the CVS program keeps track of the branch you selected.
But if you, for whatever reason, want to switch from the stable branch to the
current one, you can do it by adding the option "-A" after the "update"
keyword. To switch from the current branch back to the stable branch, add the
-"-rpkgsrc-2006Q4" option.
+"-rpkgsrc-2007Q1" option.
2.2.2.2. What happens to my changes when updating?
@@ -971,6 +973,8 @@ Table 3.1. Binary kits and available packages
|-----------------------------------+---------------+----------+---------------|
|FreeBSD 5.3/i386 |20050119 |binary kit| |
|-----------------------------------+---------------+----------+---------------|
+|HP-UX 11.11/hppa |20070421 |binary kit| |
+|-----------------------------------+---------------+----------+---------------|
|Interix 3.5 |20061106 |binary kit| |
|-----------------------------------+---------------+----------+---------------|
|IRIX 6.5 n32-bit ABI |20040911 |binary kit|binary packages|
@@ -983,6 +987,8 @@ Table 3.1. Binary kits and available packages
|-----------------------------------+---------------+----------+---------------|
|OpenBSD 3.5/i386 |20040703 |binary kit| |
|-----------------------------------+---------------+----------+---------------|
+|OSF1 5.1/alpha |20070420 |binary kit| |
+|-----------------------------------+---------------+----------+---------------|
|Slackware Linux 8.1/i386 |20030417 |binary kit| |
|-----------------------------------+---------------+----------+---------------|
|Slackware Linux 9/i386 |20040703 |binary kit| |
@@ -2956,7 +2962,7 @@ feature of pkgsrc, it can become annoying to type in the root password for each
required package installed. To avoid this, the sudo package can be used, which
does password caching over a limited time. To use it, install sudo (either as
binary package or from security/sudo) and then put the following into your /etc
-/mk.conf:
+/mk.conf, somewhere after the definition of the LOCALBASE variable:
.if exists(${LOCALBASE}/bin/sudo)
SU_CMD= ${LOCALBASE}/bin/sudo /bin/sh -c
@@ -5835,12 +5841,9 @@ Some other variables are:
INSTALLATION_DIRS
A list of directories relative to PREFIX that are created by pkgsrc at the
- beginning of the install phase. If this variable is set, NO_MTREE="yes" is
- assumed, which means that the package claims to create all needed
- directories itself before installing files to it. Therefore this variable
- should only be set in Makefiles that are under control of the package's
- author. The directories are created with the correct ownership, depending
- on their name.
+ beginning of the install phase. The package is supposed to create all
+ needed directories itself before installing files to it and list all other
+ directories here.
In the rare cases that a package shouldn't install anything, set NO_INSTALL to
"yes". This is mostly relevant for packages in the regress category.
@@ -6366,33 +6369,48 @@ The user can then decide to skip this package by setting the BATCH variable.
18.1.4. Handling licenses
-A package may be covered by a license which the user has or has not agreed to
-accept. For these cases, pkgsrc contains a mechanism to note that a package is
-covered by a particular license, and the package cannot be built unless the
-user has accepted the license. (Installation of binary packages are not
-currently subject to this mechanism.) Packages with licenses that are either
-Open Source according to the Open Source Initiative or Free according to the
-Free Software Foundation will not be marked with a license tag. Packages with
-licenses that have not been determined to meet either definition will be marked
-with a license tag referring to the license. This will prevent building unless
-pkgsrc is informed that the license is acceptable, and enables displaying the
-license.
+Authors of software can choose the licence under which software can be copied.
+This is due to copyright law, and reasons for license choices are outside the
+scope of pkgsrc. The pkgsrc system recognizes that there are a number of
+licenses which some users may find objectionable or difficult or impossible to
+comply with. The Free Software Foundation has declared some licenses "Free",
+and the Open Source Initiative has a definition of "Open Source". The pkgsrc
+system, as a policy choice, does not label packages which have licenses that
+are Free or Open Source. However, packages without a license meeting either of
+those tests are labeled with a license tag denoting the license. Note that a
+package with no license to copy trivially does not meet either the Free or Open
+Source test.
+
+For packages which are not Free or Open Source, pkgsrc will not build the
+package unless the user has indicated to pkgsrc that packages with that
+particular license may be built. Note that this documentation avoids the term
+"accepted the license". The pkgsrc system is merely providing a mechanism to
+avoid accidentially building a package with a non-free license; judgement and
+responsibility remain with the user. (Installation of binary packages are not
+currently subject to this mechanism; this is a bug.)
+
+One might want to only install packages with a BSD license, or the GPL, and not
+the other. The pkgsrc license tag mechanism does not provide a way to do this.
+It might be possible to put in tags for free licenses, and have a default
+ACCEPTABLE_LICENSES variable value, but this is widely viewed as having a very
+poor ratio of benefit to work.
The license tag mechanism is intended to address copyright-related issues
surrounding building, installing and using a package, and not to address
redistribution issues (see RESTRICTED and NO_SRC_ON_FTP, etc.). However, the
above definition of licenses for which tags are not needed implies that
-packages with redistribution restrictions should have tags.
+packages with redistribution restrictions should have tags, because Free or
+Open Source programs do not have redistribution restrictions.
-Denoting that a package is covered by a particular license is done by placing
-the license in pkgsrc/licenses and setting the LICENSE variable to a string
-identifying the license, e.g. in graphics/xv:
+Denoting that a package may be copied according to a particular license is done
+by placing the license in pkgsrc/licenses and setting the LICENSE variable to a
+string identifying the license, e.g. in graphics/xv:
LICENSE= xv-license
When trying to build, the user will get a notice that the package is covered by
-a license which has not been accepted:
+a license which has not been placed in the ACCEPTABLE_LICENSES variable:
% make
===> xv-3.10anb9 has an unacceptable license: xv-license.
@@ -6402,9 +6420,9 @@ a license which has not been accepted:
*** Error code 1
-The license can be viewed with make show-license, and if it is considered
-appropriate, the line printed above can be added to /etc/mk.conf to indicate
-acceptance of the particular license:
+The license can be viewed with make show-license, and if the user so chooses,
+the line printed above can be added to /etc/mk.conf to convey to pkgsrc that it
+should not in the future fail because of that license:
ACCEPTABLE_LICENSES+=xv-license
@@ -6413,49 +6431,71 @@ When adding a package with a new license, the license text should be added to
pkgsrc/licenses for displaying. A list of known licenses can be seen in this
directory.
+When the license changes (in a way other than formatting), please make sure
+that the new license has a different name (e.g., append the version number if
+it exists, or the date). Just because a user told pkgsrc to build programs
+under a previous version of a license does not mean that pkgsrc should build
+programs under the new licenes. The higher-level point is that pkgsrc does not
+evaluate licenses for reasonableness; the only test is a mechanistic test of
+whether a particular text has been approved by either of two bodies.
+
The use of LICENSE=shareware, LICENSE=no-commercial-use, and similar language
is deprecated because it does not crisply refer to a particular license text.
-Another problem with such usage is that it does not enable a user to denote
-acceptance of the license for a single package without accepting the same
-license text for another package. In particular, this can be inappropriate when
-e.g. one accepts a particular license to indicate to pkgsrc that a fee has been
-paid.
+Another problem with such usage is that it does not enable a user to tell
+pkgsrc to proceed for a single package without also telling pkgsrc to proceed
+for all packages with that tag.
18.1.5. Restricted packages
-Some licenses restrict how software may be re-distributed. In order to satisfy
-these restrictions, the package system defines five make variables that can be
-set to note these restrictions:
+Some licenses restrict how software may be re-distributed. Because a license
+tag is required unless the package is Free or Open Source, all packages with
+restrictions should have license tags. By declaring the restrictions, package
+tools can automatically refrain from e.g. placing binary packages on FTP sites.
+
+There are four restrictions that may be encoded, which are the cross product of
+sources (distfiles) and binaries not being placed on FTP sites and CD-ROMs.
+Because this is rarely the exact language in any license, and because non-Free
+licenses tend to be different from each other, pkgsrc adopts a definition of
+FTP and CD-ROM. Pkgsrc uses "FTP" to mean that the source or binary file should
+not be made available over the Internet at no charge. Pkgsrc uses "CD-ROM" to
+mean that the source or binary may not be made available on some kind of media,
+together with other source and binary packages, and which is sold for a
+distribution charge.
+
+In order to encode these restrictions, the package system defines five make
+variables that can be set to note these restrictions:
* RESTRICTED
This variable should be set whenever a restriction exists (regardless of
its kind). Set this variable to a string containing the reason for the
- restriction.
+ restriction. It should be understood that those wanting to understand the
+ restriction will have to read the license, and perhaps seek advice of
+ counsel.
* NO_BIN_ON_CDROM
- Binaries may not be placed on CD-ROM. Set this variable to ${RESTRICTED}
- whenever a binary package may not be included on a CD-ROM.
+ Binaries may not be placed on CD-ROM containing other binary packages, for
+ which a distribution charge may be made. In this case, set this variable to
+ ${RESTRICTED}.
* NO_BIN_ON_FTP
- Binaries may not be placed on an FTP server. Set this variable to $
- {RESTRICTED} whenever a binary package may not be made available on the
- Internet.
+ Binaries may not made available on the Internet without charge. In this
+ case, set this variable to ${RESTRICTED}. If this variable is set, binary
+ packages will not be included on ftp.NetBSD.org.
* NO_SRC_ON_CDROM
- Distfiles may not be placed on CD-ROM. Set this variable to ${RESTRICTED}
- if re-distribution of the source code or other distfile(s) is not allowed
- on CD-ROMs.
+ Distfiles may not be placed on CD-ROM, together with other distfiles, for
+ which a fee may be charged. In this case, set this variable to $
+ {RESTRICTED}.
* NO_SRC_ON_FTP
- Distfiles may not be placed on FTP. Set this variable to ${RESTRICTED} if
- re-distribution of the source code or other distfile(s) via the Internet is
- not allowed. If this variable is not set, the distfile(s) will be mirrored
- on ftp.NetBSD.org.
+ Distfiles may not made available via FTP at no charge. In this case, set
+ this variable to ${RESTRICTED}. If this variable is set, the distfile(s)
+ will not be mirrored on ftp.NetBSD.org.
Please note that the use of NO_PACKAGE, IGNORE, NO_CDROM, or other generic make
variables to denote restrictions is deprecated, because they unconditionally
@@ -8518,8 +8558,7 @@ mk/platform/MyOS.pkg.dist
This file contains a list of directories, together with their permission
bits and ownership. These directories will be created automatically with
- every package that does not explicitly set NO_MTREE. There have been some
- discussions about whether this file is needed at all, but with no result.
+ every package that explicitly sets USE_MTREE. This feature will be removed.
mk/platform/MyOS.x11.dist