diff options
author | weinem <weinem> | 2008-02-19 00:05:33 +0000 |
---|---|---|
committer | weinem <weinem> | 2008-02-19 00:05:33 +0000 |
commit | 59fecaf92bd38dd99d98fa4d457f0ca8d73952f2 (patch) | |
tree | 35e1ec6ace06182bd7acc2a316cd5ca63d3f81f9 /doc/pkgsrc.html | |
parent | c568c847fa743e7e9cbd4fcb4a94bb839fbd79f8 (diff) | |
download | pkgsrc-59fecaf92bd38dd99d98fa4d457f0ca8d73952f2.tar.gz |
regen
Diffstat (limited to 'doc/pkgsrc.html')
-rw-r--r-- | doc/pkgsrc.html | 105 |
1 files changed, 58 insertions, 47 deletions
diff --git a/doc/pkgsrc.html b/doc/pkgsrc.html index d2ee784868c..0756904f938 100644 --- a/doc/pkgsrc.html +++ b/doc/pkgsrc.html @@ -562,14 +562,14 @@ pkgsrc provides the following key features: <p>The following principles are basic to pkgsrc:</p> <div class="itemizedlist"><ul type="disc"> <li><p>“<span class="quote">It should only work if it's right.</span>” -— That means, if a package contains bugs, it's better to find +— That means, if a package contains bugs, it's better to find them and to complain about them rather than to just install the package and hope that it works. There are numerous checks in pkgsrc that try to find such bugs: Static analysis tools (<a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a>), build-time checks (portability of shell scripts), and post-installation checks (installed files, references to shared libraries, script interpreters).</p></li> <li><p>“<span class="quote">If it works, it should work everywhere</span>” -— Like NetBSD has been ported to many hardware architectures, +— Like NetBSD has been ported to many hardware architectures, pkgsrc has been ported to many operating systems. Care is taken that packages behave the same on all platforms.</p></li> </ul></div> @@ -924,7 +924,7 @@ and dashes.</p> 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 - <code class="literal">2007Q1</code>.</p> + <code class="literal">2007Q4</code>.</p> <p>The second step is to decide <span class="emphasis"><em>how</em></span> you want to download pkgsrc. You can get it as a tar file, via SUP, or via CVS. All three ways are described here.</p> @@ -938,12 +938,21 @@ and dashes.</p> <p>The tar file for the current branch is in the directory <code class="filename">current</code> and is called <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz" target="_top"><code class="filename">pkgsrc.tar.gz</code></a>. It is autogenerated daily.</p> -<p>The tar file for the stable branch 2007Q1 is in the - directory <code class="filename">pkgsrc-2007Q1</code> and is also called <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/pkgsrc-2007Q1/pkgsrc-2007Q1.tar.gz" target="_top"><code class="filename">pkgsrc-2007Q1.tar.gz</code></a>.</p> -<p>After downloading the tar file, change to the directory - where you want to have pkgsrc. This is usually - <code class="filename">/usr</code>. Then, run <span class="command"><strong>gzcat - pkgsrc.tar.gz | tar xf -</strong></span> to extract the files.</p> +<p>The tar file for the stable branch 2007Q4 is in the + directory <code class="filename">pkgsrc-2007Q4</code> and is also called <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/pkgsrc-2007Q4/pkgsrc-2007Q4.tar.gz" target="_top"><code class="filename">pkgsrc-2007Q4.tar.gz</code></a>.</p> +<p>To download a pkgsrc stable tarball, run:</p> +<pre class="screen"> +<code class="prompt">$</code> <strong class="userinput"><code>ftp ftp://ftp.NetBSD.org/pub/pkgsrc/<em class="replaceable"><code>pkgsrc-200xQy</code></em>/<em class="replaceable"><code>pkgsrc-200xQy</code></em>.tar.gz</code></strong></pre> +<p>Where <em class="replaceable"><code>pkgsrc-200xQy</code></em> is the + stable branch to be downloaded, for example, + “<span class="quote">pkgsrc-2007Q4</span>”.</p> +<p>Then, extract it with:</p> +<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf <em class="replaceable"><code>pkgsrc-200xQy</code></em>.tar.gz -C /usr</code></strong></pre> +<p>This will create the directory <code class="filename">pkgsrc/</code> + in <code class="filename">/usr/</code> and all the package source will be + stored under <code class="filename">/usr/pkgsrc/</code>.</p> +<p>To download pkgsrc-current, run:</p> +<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz</code></strong></pre> </div> <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> @@ -967,8 +976,7 @@ release=pkgsrc <div class="sect2" lang="en"> <div class="titlepage"><div><div><h3 class="title"> <a name="getting-via-cvs"></a>2.1.3. Via anonymous CVS</h3></div></div></div> -<p>To get pkgsrc via CVS, make sure you have <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?cvs+1+NetBSD-current"><span class="citerefentry"><span class="refentrytitle">cvs</span>(1)</span></a> - installed. To do an initial (full) checkout of pkgsrc, you first +<p>To do an initial (full) checkout of pkgsrc, you first have to set some environment variables. For the C-Shell, type:</p> <pre class="screen"> @@ -977,12 +985,11 @@ release=pkgsrc </pre> <p>Or, the same for the bourne shell:</p> <pre class="screen"> - <code class="prompt">$</code> <strong class="userinput"><code>CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"</code></strong> - <code class="prompt">$</code> <strong class="userinput"><code>CVS_RSH="ssh"</code></strong> - <code class="prompt">$</code> <strong class="userinput"><code>export CVSROOT CVS_RSH</code></strong> + <code class="prompt">$</code> <strong class="userinput"><code>export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"</code></strong> + <code class="prompt">$</code> <strong class="userinput"><code>export CVS_RSH="ssh"</code></strong> </pre> <p>By default, cvs doesn't do things like most people would - expect it to do, and this is unlikely to change. But there is a + expect it to do. But there is a way to convince cvs, by creating a file called <code class="filename">.cvsrc</code> in your home directory and saving the following lines to it. This file will save you lots of @@ -998,15 +1005,17 @@ diff -upN cvs -q -z3 rdiff -u </pre> -<p>Then, you change to the directory where you want to have - your copy of pkgsrc. In most cases this is - <code class="filename">/usr</code>. In that directory you run the - checkout command, which is <span class="command"><strong>cvs -q checkout -P - pkgsrc</strong></span> for the current branch and <span class="command"><strong>cvs -q - checkout -rpkgsrc-2007Q1 -P pkgsrc</strong></span> for the stable - branch. This command will create a directory called - <code class="filename">pkgsrc</code> with all the pkgsrc files in - it.</p> +<p>To fetch a specific pkgsrc stable branch from scratch, run:</p> +<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd /usr</code></strong> + <code class="prompt">$</code> <strong class="userinput"><code>cvs checkout -r <em class="replaceable"><code>pkgsrc-200xQy</code></em> -P pkgsrc</code></strong></pre> +<p>Where <em class="replaceable"><code>pkgsrc-200xQy</code></em> is the stable + branch to be checked out, for example, “<span class="quote">pkgsrc-2007Q4</span>”</p> +<p>This will create the directory <code class="filename">pkgsrc/</code> + in your <code class="filename">/usr/</code> directory and all the package source + will be stored under <code class="filename">/usr/pkgsrc/</code>.</p> +<p>To fetch the pkgsrc current branch, run:</p> +<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd /usr</code></strong> +<code class="prompt">$</code> <strong class="userinput"><code>cvs checkout -r -P pkgsrc</code></strong></pre> </div> </div> <div class="sect1" lang="en"> @@ -1045,8 +1054,8 @@ rdiff -u <a name="uptodate-cvs"></a>2.2.2. Via CVS</h3></div></div></div> <p>To update pkgsrc via CVS, make sure the environment variable <code class="varname">CVS_RSH</code> is set as above. Then, - change to the pkgsrc directory and run <span class="command"><strong>cvs -q update - -dP</strong></span>.</p> + change to the pkgsrc directory and run:</p> +<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cvs update -dP</code></strong></pre> <div class="sect3" lang="en"> <div class="titlepage"><div><div><h4 class="title"> <a name="uptodate-cvs-switch"></a>2.2.2.1. Switching between different pkgsrc branches</h4></div></div></div> @@ -1821,7 +1830,7 @@ and you can still use binary packages from someone else.</p> <div class="titlepage"><div><div><h3 class="title"> <a name="pkg_versions"></a>4.1.6. Finding if newer versions of your installed packages are in pkgsrc</h3></div></div></div> <p> - Install <a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a> and run + Install <a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/lintpkgsrc/README.html" target="_top"><code class="filename">pkgtools/lintpkgsrc</code></a> and run <span class="command"><strong>lintpkgsrc</strong></span> with the “<span class="quote">-i</span>” argument to check if your packages are up-to-date, e.g. </p> @@ -2169,7 +2178,7 @@ works.</p> can be NFS-mounted while <code class="filename">${WRKOBJDIR}</code> is local to every architecture. (It should be noted that <code class="varname">PKGSRCDIR</code> should not be set by the user - — it is an internal definition which refers to the + — it is an internal definition which refers to the root of the pkgsrc tree. It is possible to have many pkgsrc tree instances.)</p></li> <li><p><code class="varname">LOCALPATCHES</code>: @@ -2790,7 +2799,7 @@ fi </li> <li> <p><code class="filename">/usr/src</code> (system sources, - e. g. for <a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/sysutils/aperture/README.html" target="_top"><code class="filename">sysutils/aperture</code></a>):</p> + e. g. for <a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/sysutils/aperture/README.html" target="_top"><code class="filename">sysutils/aperture</code></a>):</p> <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ln -s ../disk1/cvs .</code></strong> <code class="prompt">#</code> <strong class="userinput"><code>ln -s cvs/src-2.0 src</code></strong></pre> </li> @@ -3246,7 +3255,8 @@ etc:</p> <li><p><a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdepgraph/README.html" target="_top"><code class="filename">pkgtools/pkgdepgraph</code></a>: Makes graphs from the output of <a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdep/README.html" target="_top"><code class="filename">pkgtools/pkgdep</code></a> (uses graphviz).</p></li> <li><p><a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a>: The - pkglint(1) program checks a pkgsrc entry for errors, lintpkgsrc(1) + pkglint(1) program checks a pkgsrc entry for errors.</p></li> +<li><p><a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/lintpkgsrc/README.html" target="_top"><code class="filename">pkgtools/lintpkgsrc</code></a>: The lintpkgsrc(1) program does various checks on the complete pkgsrc system.</p></li> <li><p><a href="ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgsurvey/README.html" target="_top"><code class="filename">pkgtools/pkgsurvey</code></a>: Report what packages you have installed.</p></li> @@ -4428,7 +4438,7 @@ PATCHDIR= ${.CURDIR}/../xemacs/patches specific <span class="emphasis"><em>features</em></span> you need. For example, instead of assuming that kqueue is available under NetBSD and using the <code class="varname">__NetBSD__</code> macro to conditionalize - kqueue support, add a check that detects kqueue itself — + kqueue support, add a check that detects kqueue itself — yes, this generally involves patching the <span class="command"><strong>configure</strong></span> script. There is absolutely nothing that prevents some OSes from adopting interfaces from other OSes @@ -4799,7 +4809,7 @@ correct: operate on the words, others operate on the string as a whole. When a string is split into words, it is split as you would expect it from <a class="citerefentry" href="http://netbsd.gw.com/cgi-bin/man-cgi?sh+1+NetBSD-current"><span class="citerefentry"><span class="refentrytitle">sh</span>(1)</span></a>.</p> -<p>No rule without exception—the <span class="command"><strong>.for</strong></span> +<p>No rule without exception—the <span class="command"><strong>.for</strong></span> loop does not follow the shell quoting rules but splits at sequences of whitespace.</p> <p>There are several types of variables that should be handled @@ -7464,7 +7474,7 @@ TOOLS_PLATFORM.true?= true # shell builtin <tbody> <tr class="question"> <td align="left" valign="top"> -<a name="tools.new"></a><a name="id2727593"></a><p><b>18.4.1.</b></p> +<a name="tools.new"></a><a name="id2727789"></a><p><b>18.4.1.</b></p> </td> <td align="left" valign="top"><p>How do I add a new tool?</p></td> </tr> @@ -7474,7 +7484,7 @@ TOOLS_PLATFORM.true?= true # shell builtin </tr> <tr class="question"> <td align="left" valign="top"> -<a name="tools.listall"></a><a name="id2727671"></a><p><b>18.4.2.</b></p> +<a name="tools.listall"></a><a name="id2727799"></a><p><b>18.4.2.</b></p> </td> <td align="left" valign="top"><p>How do I get a list of all available tools?</p></td> @@ -7485,7 +7495,7 @@ TOOLS_PLATFORM.true?= true # shell builtin </tr> <tr class="question"> <td align="left" valign="top"> -<a name="tools.used"></a><a name="id2727682"></a><p><b>18.4.3.</b></p> +<a name="tools.used"></a><a name="id2727810"></a><p><b>18.4.3.</b></p> </td> <td align="left" valign="top"><p>How can I get a list of all the tools that a package is using while being built? I want to know whether it @@ -8068,6 +8078,7 @@ DISTNAME= foo-17.43 Changes or additions to a patch file</p></li> <li><p> Changes to the <code class="filename">PLIST</code></p></li> +<li><p>A dependency is changed or renamed.</p></li> </ul></div> <p>PKGREVISION must also be incremented when dependencies have ABI changes.</p> @@ -9486,7 +9497,7 @@ do?</a> <tbody> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.makeflags"></a><a name="id2733489"></a><p><b>22.1.</b></p> +<a name="devfaq.makeflags"></a><a name="id2733553"></a><p><b>22.1.</b></p> </td> <td align="left" valign="top"><p>What is the difference between <code class="varname">MAKEFLAGS</code>, <code class="varname">.MAKEFLAGS</code> and @@ -9502,7 +9513,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.make"></a><a name="id2733527"></a><p><b>22.2.</b></p> +<a name="devfaq.make"></a><a name="id2733591"></a><p><b>22.2.</b></p> </td> <td align="left" valign="top"><p>What is the difference between <code class="varname">MAKE</code>, <code class="varname">GMAKE</code> and @@ -9520,7 +9531,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.cc"></a><a name="id2733568"></a><p><b>22.3.</b></p> +<a name="devfaq.cc"></a><a name="id2733632"></a><p><b>22.3.</b></p> </td> <td align="left" valign="top"><p>What is the difference between <code class="varname">CC</code>, <code class="varname">PKG_CC</code> and @@ -9538,7 +9549,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.bl3flags"></a><a name="id2733607"></a><p><b>22.4.</b></p> +<a name="devfaq.bl3flags"></a><a name="id2733671"></a><p><b>22.4.</b></p> </td> <td align="left" valign="top"><p>What is the difference between <code class="varname">BUILDLINK_LDFLAGS</code>, @@ -9551,7 +9562,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.bl3prefix"></a><a name="id2733627"></a><p><b>22.5.</b></p> +<a name="devfaq.bl3prefix"></a><a name="id2733691"></a><p><b>22.5.</b></p> </td> <td align="left" valign="top"><p>Why does <span class="command"><strong>make show-var VARNAME=BUILDLINK_PREFIX.<em class="replaceable"><code>foo</code></em></strong></span> @@ -9567,7 +9578,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.master_sites"></a><a name="id2733657"></a><p><b>22.6.</b></p> +<a name="devfaq.master_sites"></a><a name="id2733721"></a><p><b>22.6.</b></p> </td> <td align="left" valign="top"><p>What does <code class="literal">${MASTER_SITE_SOURCEFORGE:=package/}</code> mean? I @@ -9591,7 +9602,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.mailinglists"></a><a name="id2733734"></a><p><b>22.7.</b></p> +<a name="devfaq.mailinglists"></a><a name="id2733866"></a><p><b>22.7.</b></p> </td> <td align="left" valign="top"><p>Which mailing lists are there for package developers?</p></td> @@ -9616,7 +9627,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.documentation"></a><a name="id2733772"></a><p><b>22.8.</b></p> +<a name="devfaq.documentation"></a><a name="id2733905"></a><p><b>22.8.</b></p> </td> <td align="left" valign="top"><p>Where is the pkgsrc documentation?</p></td> @@ -9664,7 +9675,7 @@ do?</a> </tr> <tr class="question"> <td align="left" valign="top"> -<a name="devfaq.too-much-time"></a><a name="id2733902"></a><p><b>22.9.</b></p> +<a name="devfaq.too-much-time"></a><a name="id2734035"></a><p><b>22.9.</b></p> </td> <td align="left" valign="top"><p>I have a little time to kill. What shall I do?</p></td> @@ -9680,7 +9691,7 @@ anyway.</p> will tell you about newer versions of installed packages that are available, but not yet updated in pkgsrc.</p></li> <li><p>Browse <code class="filename">pkgsrc/doc/TODO</code> - — it contains a list of suggested new packages and a list of + — it contains a list of suggested new packages and a list of cleanups and enhancements for pkgsrc that would be nice to have.</p></li> <li><p>Review packages for which review was requested on @@ -10198,8 +10209,8 @@ CFLAGS+= -Wall <a name="infr.design.intf.proc"></a>24.5.1. Procedures with parameters</h3></div></div></div> <p>In a traditional imperative programming language some of the <code class="filename">.mk</code> files could be described as - procedures. They take some input parameters and—after - inclusion—provide a result in output parameters. Since all + procedures. They take some input parameters and—after + inclusion—provide a result in output parameters. Since all variables in <code class="filename">Makefile</code>s have global scope care must be taken not to use parameter names that have already another meaning. For example, <code class="varname">PKGNAME</code> is a |