Tue Jan 28 03:34:03 2020 UTC ()
doc/pkgsrc.*: regen


(rillig)
diff -r1.285 -r1.286 pkgsrc/doc/pkgsrc.html
diff -r1.283 -r1.284 pkgsrc/doc/pkgsrc.txt

cvs diff -r1.285 -r1.286 pkgsrc/doc/pkgsrc.html (switch to unified diff)

--- pkgsrc/doc/pkgsrc.html 2020/01/28 03:18:14 1.285
+++ pkgsrc/doc/pkgsrc.html 2020/01/28 03:34:03 1.286
@@ -8048,3112 +8048,3119 @@ SunPro C++ __SUNPRO_CC (0x580 for Sun C @@ -8048,3112 +8048,3119 @@ SunPro C++ __SUNPRO_CC (0x580 for Sun C
8048<tr> 8048<tr>
8049<td>accept, bind, connect</td> 8049<td>accept, bind, connect</td>
8050<td>-lsocket</td> 8050<td>-lsocket</td>
8051<td>Solaris</td> 8051<td>Solaris</td>
8052</tr> 8052</tr>
8053<tr> 8053<tr>
8054<td>crypt</td> 8054<td>crypt</td>
8055<td>-lcrypt</td> 8055<td>-lcrypt</td>
8056<td>DragonFly, NetBSD</td> 8056<td>DragonFly, NetBSD</td>
8057</tr> 8057</tr>
8058<tr> 8058<tr>
8059<td>dlopen, dlsym</td> 8059<td>dlopen, dlsym</td>
8060<td>-ldl</td> 8060<td>-ldl</td>
8061<td>Linux</td> 8061<td>Linux</td>
8062</tr> 8062</tr>
8063<tr> 8063<tr>
8064<td>gethost*</td> 8064<td>gethost*</td>
8065<td>-lnsl</td> 8065<td>-lnsl</td>
8066<td>Solaris</td> 8066<td>Solaris</td>
8067</tr> 8067</tr>
8068<tr> 8068<tr>
8069<td>inet_aton</td> 8069<td>inet_aton</td>
8070<td>-lresolv</td> 8070<td>-lresolv</td>
8071<td>Solaris</td> 8071<td>Solaris</td>
8072</tr> 8072</tr>
8073<tr> 8073<tr>
8074<td>nanosleep, sem_*, timer_*</td> 8074<td>nanosleep, sem_*, timer_*</td>
8075<td>-lrt</td> 8075<td>-lrt</td>
8076<td>Solaris</td> 8076<td>Solaris</td>
8077</tr> 8077</tr>
8078<tr> 8078<tr>
8079<td>openpty</td> 8079<td>openpty</td>
8080<td>-lutil</td> 8080<td>-lutil</td>
8081<td>Linux</td> 8081<td>Linux</td>
8082</tr> 8082</tr>
8083</tbody> 8083</tbody>
8084</table> 8084</table>
8085</div> 8085</div>
8086<p>To fix these linker errors, it is often sufficient to say 8086<p>To fix these linker errors, it is often sufficient to say
8087 <code class="literal">LIBS.<em class="replaceable"><code>OperatingSystem</code></em>+= 8087 <code class="literal">LIBS.<em class="replaceable"><code>OperatingSystem</code></em>+=
8088 -l<em class="replaceable"><code>foo</code></em></code> to the package 8088 -l<em class="replaceable"><code>foo</code></em></code> to the package
8089 <code class="filename">Makefile</code> and then say <span class="command"><strong>bmake clean; 8089 <code class="filename">Makefile</code> and then say <span class="command"><strong>bmake clean;
8090 bmake</strong></span>.</p> 8090 bmake</strong></span>.</p>
8091<div class="sect3"> 8091<div class="sect3">
8092<div class="titlepage"><div><div><h4 class="title"> 8092<div class="titlepage"><div><div><h4 class="title">
8093<a name="undefined-reference-sunpro"></a>21.5.3.1. Special issue: The SunPro compiler</h4></div></div></div> 8093<a name="undefined-reference-sunpro"></a>21.5.3.1. Special issue: The SunPro compiler</h4></div></div></div>
8094<p>When you are using the SunPro compiler, there is another 8094<p>When you are using the SunPro compiler, there is another
8095possibility. That compiler cannot handle the following code:</p> 8095possibility. That compiler cannot handle the following code:</p>
8096<pre class="programlisting"> 8096<pre class="programlisting">
8097extern int extern_func(int); 8097extern int extern_func(int);
8098 8098
8099static inline int 8099static inline int
8100inline_func(int x) 8100inline_func(int x)
8101{ 8101{
8102 return extern_func(x); 8102 return extern_func(x);
8103} 8103}
8104 8104
8105int main(void) 8105int main(void)
8106{ 8106{
8107 return 0; 8107 return 0;
8108} 8108}
8109</pre> 8109</pre>
8110<p>It generates the code for <code class="function">inline_func</code> even if 8110<p>It generates the code for <code class="function">inline_func</code> even if
8111that function is never used. This code then refers to 8111that function is never used. This code then refers to
8112<code class="function">extern_func</code>, which can usually not be resolved. To 8112<code class="function">extern_func</code>, which can usually not be resolved. To
8113solve this problem you can try to tell the package to disable inlining 8113solve this problem you can try to tell the package to disable inlining
8114of functions.</p> 8114of functions.</p>
8115</div> 8115</div>
8116</div> 8116</div>
8117<div class="sect2"> 8117<div class="sect2">
8118<div class="titlepage"><div><div><h3 class="title"> 8118<div class="titlepage"><div><div><h3 class="title">
8119<a name="out-of-memory"></a>21.5.4. Running out of memory</h3></div></div></div> 8119<a name="out-of-memory"></a>21.5.4. Running out of memory</h3></div></div></div>
8120<p>Sometimes packages fail to build because the compiler runs 8120<p>Sometimes packages fail to build because the compiler runs
8121 into an operating system specific soft limit. With the 8121 into an operating system specific soft limit. With the
8122 <code class="varname">UNLIMIT_RESOURCES</code> variable pkgsrc can be told 8122 <code class="varname">UNLIMIT_RESOURCES</code> variable pkgsrc can be told
8123 to unlimit the resources. Currently, the allowed values are any combination of 8123 to unlimit the resources. Currently, the allowed values are any combination of
8124 <span class="quote">&#8220;<span class="quote">cputime</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">datasize</span>&#8221;</span>, 8124 <span class="quote">&#8220;<span class="quote">cputime</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">datasize</span>&#8221;</span>,
8125 <span class="quote">&#8220;<span class="quote">memorysize</span>&#8221;</span>, and <span class="quote">&#8220;<span class="quote">stacksize</span>&#8221;</span>. 8125 <span class="quote">&#8220;<span class="quote">memorysize</span>&#8221;</span>, and <span class="quote">&#8220;<span class="quote">stacksize</span>&#8221;</span>.
8126 Setting this variable is similar to running the shell builtin 8126 Setting this variable is similar to running the shell builtin
8127 <span class="command"><strong>ulimit</strong></span> command to raise the maximum data 8127 <span class="command"><strong>ulimit</strong></span> command to raise the maximum data
8128 segment size or maximum stack size of a process, respectively, to 8128 segment size or maximum stack size of a process, respectively, to
8129 their hard limits.</p> 8129 their hard limits.</p>
8130</div> 8130</div>
8131</div> 8131</div>
8132<div class="sect1"> 8132<div class="sect1">
8133<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8133<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8134<a name="fixes.install"></a>21.6. The <span class="emphasis"><em>install</em></span> phase</h2></div></div></div> 8134<a name="fixes.install"></a>21.6. The <span class="emphasis"><em>install</em></span> phase</h2></div></div></div>
8135<div class="sect2"> 8135<div class="sect2">
8136<div class="titlepage"><div><div><h3 class="title"> 8136<div class="titlepage"><div><div><h3 class="title">
8137<a name="install-scripts"></a>21.6.1. Creating needed directories</h3></div></div></div> 8137<a name="install-scripts"></a>21.6.1. Creating needed directories</h3></div></div></div>
8138<p>The BSD-compatible <span class="command"><strong>install</strong></span> supplied 8138<p>The BSD-compatible <span class="command"><strong>install</strong></span> supplied
8139 with some operating systems cannot create more than one 8139 with some operating systems cannot create more than one
8140 directory at a time. As such, you should call 8140 directory at a time. As such, you should call
8141 <code class="literal">${INSTALL_*_DIR}</code> like this:</p> 8141 <code class="literal">${INSTALL_*_DIR}</code> like this:</p>
8142<pre class="programlisting"> 8142<pre class="programlisting">
8143${INSTALL_DATA_DIR} ${PREFIX}/dir1 8143${INSTALL_DATA_DIR} ${PREFIX}/dir1
8144${INSTALL_DATA_DIR} ${PREFIX}/dir2 8144${INSTALL_DATA_DIR} ${PREFIX}/dir2
8145</pre> 8145</pre>
8146<p>You can also just append <span class="quote">&#8220;<span class="quote"><code class="literal">dir1 8146<p>You can also just append <span class="quote">&#8220;<span class="quote"><code class="literal">dir1
8147 dir2</code></span>&#8221;</span> to the 8147 dir2</code></span>&#8221;</span> to the
8148 <code class="varname">INSTALLATION_DIRS</code> variable, which will 8148 <code class="varname">INSTALLATION_DIRS</code> variable, which will
8149 automatically do the right thing.</p> 8149 automatically do the right thing.</p>
8150</div> 8150</div>
8151<div class="sect2"> 8151<div class="sect2">
8152<div class="titlepage"><div><div><h3 class="title"> 8152<div class="titlepage"><div><div><h3 class="title">
8153<a name="where-to-install-documentation"></a>21.6.2. Where to install documentation</h3></div></div></div> 8153<a name="where-to-install-documentation"></a>21.6.2. Where to install documentation</h3></div></div></div>
8154<p>In general, documentation should be installed into 8154<p>In general, documentation should be installed into
8155 <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or 8155 <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or
8156 <code class="filename">${PREFIX}/share/doc/${PKGNAME}</code> (the latter 8156 <code class="filename">${PREFIX}/share/doc/${PKGNAME}</code> (the latter
8157 includes the version number of the package).</p> 8157 includes the version number of the package).</p>
8158<p>Many modern packages using GNU autoconf allow to set the 8158<p>Many modern packages using GNU autoconf allow to set the
8159 directory where HTML documentation is installed with the 8159 directory where HTML documentation is installed with the
8160 <span class="quote">&#8220;<span class="quote">--with-html-dir</span>&#8221;</span> option. Sometimes using this flag 8160 <span class="quote">&#8220;<span class="quote">--with-html-dir</span>&#8221;</span> option. Sometimes using this flag
8161 is needed because otherwise the documentation ends up in 8161 is needed because otherwise the documentation ends up in
8162 <code class="filename">${PREFIX}/share/doc/html</code> or other 8162 <code class="filename">${PREFIX}/share/doc/html</code> or other
8163 places.</p> 8163 places.</p>
8164<p>An exception to the above is that library API documentation 8164<p>An exception to the above is that library API documentation
8165 generated with the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/textproc/gtk-doc/README.html" target="_top"><code class="filename">textproc/gtk-doc</code></a> tools, for use by special 8165 generated with the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/textproc/gtk-doc/README.html" target="_top"><code class="filename">textproc/gtk-doc</code></a> tools, for use by special
8166 browsers (devhelp) should be left at their default location, which 8166 browsers (devhelp) should be left at their default location, which
8167 is <code class="filename">${PREFIX}/share/gtk-doc</code>. Such 8167 is <code class="filename">${PREFIX}/share/gtk-doc</code>. Such
8168 documentation can be recognized from files ending in 8168 documentation can be recognized from files ending in
8169 <code class="filename">.devhelp</code> or <code class="filename">.devhelp2</code>. 8169 <code class="filename">.devhelp</code> or <code class="filename">.devhelp2</code>.
8170 (It is also acceptable to install such files in 8170 (It is also acceptable to install such files in
8171 <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or 8171 <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or
8172 <code class="filename">${PREFIX}/share/doc/${PKGNAME}</code>; the 8172 <code class="filename">${PREFIX}/share/doc/${PKGNAME}</code>; the
8173 <code class="filename">.devhelp*</code> file must be directly in that 8173 <code class="filename">.devhelp*</code> file must be directly in that
8174 directory then, no additional subdirectory level is allowed in 8174 directory then, no additional subdirectory level is allowed in
8175 this case. This is usually achieved by using 8175 this case. This is usually achieved by using
8176 <span class="quote">&#8220;<span class="quote">--with-html-dir=${PREFIX}/share/doc</span>&#8221;</span>. 8176 <span class="quote">&#8220;<span class="quote">--with-html-dir=${PREFIX}/share/doc</span>&#8221;</span>.
8177 <code class="filename">${PREFIX}/share/gtk-doc</code> is preferred 8177 <code class="filename">${PREFIX}/share/gtk-doc</code> is preferred
8178 though.)</p> 8178 though.)</p>
8179</div> 8179</div>
8180<div class="sect2"> 8180<div class="sect2">
8181<div class="titlepage"><div><div><h3 class="title"> 8181<div class="titlepage"><div><div><h3 class="title">
8182<a name="installing-score-files"></a>21.6.3. Installing highscore files</h3></div></div></div> 8182<a name="installing-score-files"></a>21.6.3. Installing highscore files</h3></div></div></div>
8183<p>Certain packages, most of them in the games category, install 8183<p>Certain packages, most of them in the games category, install
8184 a score file that allows all users on the system to record their 8184 a score file that allows all users on the system to record their
8185 highscores. In order for this to work, the binaries need to be 8185 highscores. In order for this to work, the binaries need to be
8186 installed setgid and the score files owned by the appropriate 8186 installed setgid and the score files owned by the appropriate
8187 group and/or owner (traditionally the "games" user/group). Set 8187 group and/or owner (traditionally the "games" user/group). Set
8188 <code class="varname">USE_GAMESGROUP</code> to yes to support this. The 8188 <code class="varname">USE_GAMESGROUP</code> to yes to support this. The
8189 following variables, documented in more detail in 8189 following variables, documented in more detail in
8190 <code class="filename">mk/defaults/mk.conf</code>, control this 8190 <code class="filename">mk/defaults/mk.conf</code>, control this
8191 behaviour: <code class="varname">GAMEDATAMODE</code>, 8191 behaviour: <code class="varname">GAMEDATAMODE</code>,
8192 <code class="varname">GAMEDIRMODE</code>, <code class="varname">GAMES_GROUP</code>, 8192 <code class="varname">GAMEDIRMODE</code>, <code class="varname">GAMES_GROUP</code>,
8193 <code class="varname">GAMEMODE</code>, <code class="varname">GAME_USER</code>. 8193 <code class="varname">GAMEMODE</code>, <code class="varname">GAME_USER</code>.
8194 Other useful variables are: <code class="varname">GAMEDIR_PERMS</code>, 8194 Other useful variables are: <code class="varname">GAMEDIR_PERMS</code>,
8195 <code class="varname">GAMEDATA_PERMS</code> and 8195 <code class="varname">GAMEDATA_PERMS</code> and
8196 <code class="varname">SETGID_GAMES_PERMS</code>.</p> 8196 <code class="varname">SETGID_GAMES_PERMS</code>.</p>
8197<p>An example that illustrates some of the variables described above is 8197<p>An example that illustrates some of the variables described above is
8198 <code class="filename">games/moon-buggy</code>. <code class="varname">OWN_DIRS_PERMS</code> is 8198 <code class="filename">games/moon-buggy</code>. <code class="varname">OWN_DIRS_PERMS</code> is
8199 used to properly set directory permissions of the directory where the 8199 used to properly set directory permissions of the directory where the
8200 scorefile is saved, <code class="varname">REQD_FILES_PERMS</code> is used to create a 8200 scorefile is saved, <code class="varname">REQD_FILES_PERMS</code> is used to create a
8201 dummy scorefile (<code class="filename">mbscore</code>) with the proper permissions 8201 dummy scorefile (<code class="filename">mbscore</code>) with the proper permissions
8202 and <code class="varname">SPECIAL_PERMS</code> is used to install setgid the game 8202 and <code class="varname">SPECIAL_PERMS</code> is used to install setgid the game
8203 binary:</p> 8203 binary:</p>
8204<pre class="programlisting"> 8204<pre class="programlisting">
8205USE_GAMESGROUP= yes 8205USE_GAMESGROUP= yes
8206 8206
8207BUILD_DEFS+= VARBASE 8207BUILD_DEFS+= VARBASE
8208 8208
8209OWN_DIRS_PERMS+= ${VARBASE}/games/moon-buggy ${GAMEDIR_PERMS} 8209OWN_DIRS_PERMS+= ${VARBASE}/games/moon-buggy ${GAMEDIR_PERMS}
8210REQD_FILES_PERMS+= /dev/null ${VARBASE}/games/moon-buggy/mbscore ${GAMEDATA_PERMS} 8210REQD_FILES_PERMS+= /dev/null ${VARBASE}/games/moon-buggy/mbscore ${GAMEDATA_PERMS}
8211SPECIAL_PERMS+= ${PREFIX}/bin/moon-buggy ${SETGID_GAMES_PERMS} 8211SPECIAL_PERMS+= ${PREFIX}/bin/moon-buggy ${SETGID_GAMES_PERMS}
8212</pre> 8212</pre>
8213<p>Various <code class="varname">INSTALL_*</code> variables are also available: 8213<p>Various <code class="varname">INSTALL_*</code> variables are also available:
8214 <code class="varname">INSTALL_GAME</code> to install setgid game binaries, 8214 <code class="varname">INSTALL_GAME</code> to install setgid game binaries,
8215 <code class="varname">INSTALL_GAME_DIR</code> to install game directories that are 8215 <code class="varname">INSTALL_GAME_DIR</code> to install game directories that are
8216 needed to be accessed by setgid games and 8216 needed to be accessed by setgid games and
8217 <code class="varname">INSTALL_GAME_DATA</code> to install scorefiles.</p> 8217 <code class="varname">INSTALL_GAME_DATA</code> to install scorefiles.</p>
8218<p>A package should therefore never hard code file ownership or 8218<p>A package should therefore never hard code file ownership or
8219 access permissions but rely on <code class="varname">*_PERMS</code> as described above 8219 access permissions but rely on <code class="varname">*_PERMS</code> as described above
8220 or alternatively on <code class="varname">INSTALL_GAME</code>, 8220 or alternatively on <code class="varname">INSTALL_GAME</code>,
8221 <code class="varname">INSTALL_GAME_DATA</code> and 8221 <code class="varname">INSTALL_GAME_DATA</code> and
8222 <code class="varname">INSTALL_GAME_DIR</code> to set these correctly.</p> 8222 <code class="varname">INSTALL_GAME_DIR</code> to set these correctly.</p>
8223</div> 8223</div>
8224<div class="sect2"> 8224<div class="sect2">
8225<div class="titlepage"><div><div><h3 class="title"> 8225<div class="titlepage"><div><div><h3 class="title">
8226<a name="destdir-support"></a>21.6.4. Adding DESTDIR support to packages</h3></div></div></div> 8226<a name="destdir-support"></a>21.6.4. Adding DESTDIR support to packages</h3></div></div></div>
8227<p><code class="varname">DESTDIR</code> support means that a package 8227<p><code class="varname">DESTDIR</code> support means that a package
8228 installs into a staging directory, not the final location of the 8228 installs into a staging directory, not the final location of the
8229 files. Then a binary package is created which can be used for 8229 files. Then a binary package is created which can be used for
8230 installation as usual. There are two ways: Either the package must 8230 installation as usual. There are two ways: Either the package must
8231 install as root (<span class="quote">&#8220;<span class="quote">destdir</span>&#8221;</span>) or the package can 8231 install as root (<span class="quote">&#8220;<span class="quote">destdir</span>&#8221;</span>) or the package can
8232 install as non-root user (<span class="quote">&#8220;<span class="quote">user-destdir</span>&#8221;</span>).</p> 8232 install as non-root user (<span class="quote">&#8220;<span class="quote">user-destdir</span>&#8221;</span>).</p>
8233<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 8233<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
8234<li class="listitem"><p><code class="varname">PKG_DESTDIR_SUPPORT</code> has to be 8234<li class="listitem"><p><code class="varname">PKG_DESTDIR_SUPPORT</code> has to be
8235 set to <span class="quote">&#8220;<span class="quote">destdir</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">user-destdir</span>&#8221;</span>. 8235 set to <span class="quote">&#8220;<span class="quote">destdir</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">user-destdir</span>&#8221;</span>.
8236 By default <code class="varname">PKG_DESTDIR_SUPPORT</code> 8236 By default <code class="varname">PKG_DESTDIR_SUPPORT</code>
8237 is set to <span class="quote">&#8220;<span class="quote">user-destdir</span>&#8221;</span> to help catching more 8237 is set to <span class="quote">&#8220;<span class="quote">user-destdir</span>&#8221;</span> to help catching more
8238 potential packaging problems. If bsd.prefs.mk is included in the Makefile, 8238 potential packaging problems. If bsd.prefs.mk is included in the Makefile,
8239 <code class="varname">PKG_DESTDIR_SUPPORT</code> needs to be set before 8239 <code class="varname">PKG_DESTDIR_SUPPORT</code> needs to be set before
8240 the inclusion.</p></li> 8240 the inclusion.</p></li>
8241<li class="listitem"><p>All installation operations have to be prefixed with 8241<li class="listitem"><p>All installation operations have to be prefixed with
8242 <code class="filename">${DESTDIR}</code>.</p></li> 8242 <code class="filename">${DESTDIR}</code>.</p></li>
8243<li class="listitem"><p>automake gets this DESTDIR mostly right 8243<li class="listitem"><p>automake gets this DESTDIR mostly right
8244 automatically. Many manual rules and pre/post-install often are 8244 automatically. Many manual rules and pre/post-install often are
8245 incorrect; fix them.</p></li> 8245 incorrect; fix them.</p></li>
8246<li class="listitem"><p>If files are installed with special owner/group 8246<li class="listitem"><p>If files are installed with special owner/group
8247 use <code class="varname">SPECIAL_PERMS</code>.</p></li> 8247 use <code class="varname">SPECIAL_PERMS</code>.</p></li>
8248<li class="listitem"><p>In general, packages should support 8248<li class="listitem"><p>In general, packages should support
8249 <code class="varname">UNPRIVILEGED</code> to be able to use 8249 <code class="varname">UNPRIVILEGED</code> to be able to use
8250 DESTDIR.</p></li> 8250 DESTDIR.</p></li>
8251</ul></div> 8251</ul></div>
8252</div> 8252</div>
8253<div class="sect2"> 8253<div class="sect2">
8254<div class="titlepage"><div><div><h3 class="title"> 8254<div class="titlepage"><div><div><h3 class="title">
8255<a name="hardcoded-paths"></a>21.6.5. Packages with hardcoded paths to other interpreters</h3></div></div></div> 8255<a name="hardcoded-paths"></a>21.6.5. Packages with hardcoded paths to other interpreters</h3></div></div></div>
8256<p>Your package may also contain scripts with hardcoded paths to 8256<p>Your package may also contain scripts with hardcoded paths to
8257 other interpreters besides (or as well as) perl. To correct the 8257 other interpreters besides (or as well as) perl. To correct the
8258 full pathname to the script interpreter, you need to set the 8258 full pathname to the script interpreter, you need to set the
8259 following definitions in your <code class="filename">Makefile</code> (we 8259 following definitions in your <code class="filename">Makefile</code> (we
8260 shall use <span class="command"><strong>tclsh</strong></span> in this example):</p> 8260 shall use <span class="command"><strong>tclsh</strong></span> in this example):</p>
8261<pre class="programlisting"> 8261<pre class="programlisting">
8262REPLACE_INTERPRETER+= tcl 8262REPLACE_INTERPRETER+= tcl
8263REPLACE.tcl.old= .*/bin/tclsh 8263REPLACE.tcl.old= .*/bin/tclsh
8264REPLACE.tcl.new= ${PREFIX}/bin/tclsh 8264REPLACE.tcl.new= ${PREFIX}/bin/tclsh
8265REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed, 8265REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed,
8266# relative to ${WRKSRC}, just as in REPLACE_PERL 8266# relative to ${WRKSRC}, just as in REPLACE_PERL
8267</pre> 8267</pre>
8268<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> 8268<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
8269<h3 class="title">Note</h3> 8269<h3 class="title">Note</h3>
8270<p>Before March 2006, these variables were called 8270<p>Before March 2006, these variables were called
8271 <code class="varname">_REPLACE.*</code> and 8271 <code class="varname">_REPLACE.*</code> and
8272 <code class="varname">_REPLACE_FILES.*</code>.</p> 8272 <code class="varname">_REPLACE_FILES.*</code>.</p>
8273</div> 8273</div>
8274</div> 8274</div>
8275<div class="sect2"> 8275<div class="sect2">
8276<div class="titlepage"><div><div><h3 class="title"> 8276<div class="titlepage"><div><div><h3 class="title">
8277<a name="perl-modules"></a>21.6.6. Packages installing perl modules</h3></div></div></div> 8277<a name="perl-modules"></a>21.6.6. Packages installing perl modules</h3></div></div></div>
8278<p>Makefiles of packages providing perl5 modules should include 8278<p>Makefiles of packages providing perl5 modules should include
8279 the Makefile fragment 8279 the Makefile fragment
8280 <code class="filename">../../lang/perl5/module.mk</code>. It provides a 8280 <code class="filename">../../lang/perl5/module.mk</code>. It provides a
8281 <span class="command"><strong>do-configure</strong></span> target for the standard perl 8281 <span class="command"><strong>do-configure</strong></span> target for the standard perl
8282 configuration for such modules as well as various hooks to tune 8282 configuration for such modules as well as various hooks to tune
8283 this configuration. See comments in this file for 8283 this configuration. See comments in this file for
8284 details.</p> 8284 details.</p>
8285<p>Perl5 modules will install into different places depending 8285<p>Perl5 modules will install into different places depending
8286 on the version of perl used during the build process. To 8286 on the version of perl used during the build process. To
8287 address this, pkgsrc will append lines to the 8287 address this, pkgsrc will append lines to the
8288 <code class="filename">PLIST</code> corresponding to the files listed in 8288 <code class="filename">PLIST</code> corresponding to the files listed in
8289 the installed <code class="filename">.packlist</code> file generated by 8289 the installed <code class="filename">.packlist</code> file generated by
8290 most perl5 modules. This is invoked by defining 8290 most perl5 modules. This is invoked by defining
8291 <code class="varname">PERL5_PACKLIST</code> to a space-separated list of 8291 <code class="varname">PERL5_PACKLIST</code> to a space-separated list of
8292 packlist files relative to <code class="varname">PERL5_PACKLIST_DIR</code> 8292 packlist files relative to <code class="varname">PERL5_PACKLIST_DIR</code>
8293 (<code class="varname">PERL5_INSTALLVENDORARCH</code> by default), 8293 (<code class="varname">PERL5_INSTALLVENDORARCH</code> by default),
8294 e.g.:</p> 8294 e.g.:</p>
8295<pre class="programlisting"> 8295<pre class="programlisting">
8296PERL5_PACKLIST= auto/Pg/.packlist 8296PERL5_PACKLIST= auto/Pg/.packlist
8297</pre> 8297</pre>
8298<p>The perl5 config variables 8298<p>The perl5 config variables
8299 <code class="varname">installarchlib</code>, 8299 <code class="varname">installarchlib</code>,
8300 <code class="varname">installscript</code>, 8300 <code class="varname">installscript</code>,
8301 <code class="varname">installvendorbin</code>, 8301 <code class="varname">installvendorbin</code>,
8302 <code class="varname">installvendorscript</code>, 8302 <code class="varname">installvendorscript</code>,
8303 <code class="varname">installvendorarch</code>, 8303 <code class="varname">installvendorarch</code>,
8304 <code class="varname">installvendorlib</code>, 8304 <code class="varname">installvendorlib</code>,
8305 <code class="varname">installvendorman1dir</code>, and 8305 <code class="varname">installvendorman1dir</code>, and
8306 <code class="varname">installvendorman3dir</code> represent those 8306 <code class="varname">installvendorman3dir</code> represent those
8307 locations in which components of perl5 modules may be installed, 8307 locations in which components of perl5 modules may be installed,
8308 provided as variable with uppercase and prefixed with 8308 provided as variable with uppercase and prefixed with
8309 <code class="varname">PERL5_</code>, e.g. <code class="varname">PERL5_INSTALLARCHLIB</code> 8309 <code class="varname">PERL5_</code>, e.g. <code class="varname">PERL5_INSTALLARCHLIB</code>
8310 and may be used by perl5 packages that don't have a packlist. 8310 and may be used by perl5 packages that don't have a packlist.
8311 These variables are also substituted for in the 8311 These variables are also substituted for in the
8312 <code class="filename">PLIST</code> as uppercase prefixed with 8312 <code class="filename">PLIST</code> as uppercase prefixed with
8313 <code class="varname">PERL5_SUB_</code>.</p> 8313 <code class="varname">PERL5_SUB_</code>.</p>
8314</div> 8314</div>
8315<div class="sect2"> 8315<div class="sect2">
8316<div class="titlepage"><div><div><h3 class="title"> 8316<div class="titlepage"><div><div><h3 class="title">
8317<a name="faq.info-files"></a>21.6.7. Packages installing info files</h3></div></div></div> 8317<a name="faq.info-files"></a>21.6.7. Packages installing info files</h3></div></div></div>
8318<p>Some packages install info files or use the 8318<p>Some packages install info files or use the
8319 <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">install-info</span>&#8221;</span> 8319 <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">install-info</span>&#8221;</span>
8320 commands. <code class="varname">INFO_FILES</code> should be defined in 8320 commands. <code class="varname">INFO_FILES</code> should be defined in
8321 the package Makefile so that <code class="filename">INSTALL</code> and 8321 the package Makefile so that <code class="filename">INSTALL</code> and
8322 <code class="filename">DEINSTALL</code> scripts will be generated to 8322 <code class="filename">DEINSTALL</code> scripts will be generated to
8323 handle registration of the info files in the Info directory 8323 handle registration of the info files in the Info directory
8324 file. The <span class="quote">&#8220;<span class="quote">install-info</span>&#8221;</span> command used for the info 8324 file. The <span class="quote">&#8220;<span class="quote">install-info</span>&#8221;</span> command used for the info
8325 files registration is either provided by the system, or by a 8325 files registration is either provided by the system, or by a
8326 special purpose package automatically added as dependency if 8326 special purpose package automatically added as dependency if
8327 needed.</p> 8327 needed.</p>
8328<p><code class="varname">PKGINFODIR</code> is the directory under 8328<p><code class="varname">PKGINFODIR</code> is the directory under
8329 <code class="filename">${PREFIX}</code> where info files are primarily 8329 <code class="filename">${PREFIX}</code> where info files are primarily
8330 located. <code class="varname">PKGINFODIR</code> defaults to 8330 located. <code class="varname">PKGINFODIR</code> defaults to
8331 <span class="quote">&#8220;<span class="quote">info</span>&#8221;</span> and can be overridden by the user.</p> 8331 <span class="quote">&#8220;<span class="quote">info</span>&#8221;</span> and can be overridden by the user.</p>
8332<p>The info files for the package should be listed in the 8332<p>The info files for the package should be listed in the
8333 package <code class="filename">PLIST</code>; however any split info files 8333 package <code class="filename">PLIST</code>; however any split info files
8334 need not be listed.</p> 8334 need not be listed.</p>
8335<p>A package which needs the <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> command 8335<p>A package which needs the <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> command
8336 at build time must add <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> to 8336 at build time must add <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> to
8337 <code class="varname">USE_TOOLS</code> in its Makefile. If a minimum 8337 <code class="varname">USE_TOOLS</code> in its Makefile. If a minimum
8338 version of the <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> command is needed it 8338 version of the <span class="quote">&#8220;<span class="quote">makeinfo</span>&#8221;</span> command is needed it
8339 should be noted with the <code class="varname">TEXINFO_REQD</code> 8339 should be noted with the <code class="varname">TEXINFO_REQD</code>
8340 variable in the package <code class="filename">Makefile</code>. By 8340 variable in the package <code class="filename">Makefile</code>. By
8341 default, a minimum version of 3.12 is required. If the system 8341 default, a minimum version of 3.12 is required. If the system
8342 does not provide a <span class="command"><strong>makeinfo</strong></span> command or if it 8342 does not provide a <span class="command"><strong>makeinfo</strong></span> command or if it
8343 does not match the required minimum, a build dependency on the 8343 does not match the required minimum, a build dependency on the
8344 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/devel/gtexinfo/README.html" target="_top"><code class="filename">devel/gtexinfo</code></a> package will 8344 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/devel/gtexinfo/README.html" target="_top"><code class="filename">devel/gtexinfo</code></a> package will
8345 be added automatically.</p> 8345 be added automatically.</p>
8346<p>The build and installation process of the software provided 8346<p>The build and installation process of the software provided
8347 by the package should not use the 8347 by the package should not use the
8348 <span class="command"><strong>install-info</strong></span> command as the registration of 8348 <span class="command"><strong>install-info</strong></span> command as the registration of
8349 info files is the task of the package 8349 info files is the task of the package
8350 <code class="filename">INSTALL</code> script, and it must use the 8350 <code class="filename">INSTALL</code> script, and it must use the
8351 appropriate <span class="command"><strong>makeinfo</strong></span> command.</p> 8351 appropriate <span class="command"><strong>makeinfo</strong></span> command.</p>
8352<p>To achieve this goal, the pkgsrc infrastructure creates 8352<p>To achieve this goal, the pkgsrc infrastructure creates
8353 overriding scripts for the <span class="command"><strong>install-info</strong></span> and 8353 overriding scripts for the <span class="command"><strong>install-info</strong></span> and
8354 <span class="command"><strong>makeinfo</strong></span> commands in a directory listed early 8354 <span class="command"><strong>makeinfo</strong></span> commands in a directory listed early
8355 in <code class="varname">PATH</code>.</p> 8355 in <code class="varname">PATH</code>.</p>
8356<p>The script overriding <span class="command"><strong>install-info</strong></span> has 8356<p>The script overriding <span class="command"><strong>install-info</strong></span> has
8357 no effect except the logging of a message. The script overriding 8357 no effect except the logging of a message. The script overriding
8358 <span class="command"><strong>makeinfo</strong></span> logs a message and according to the 8358 <span class="command"><strong>makeinfo</strong></span> logs a message and according to the
8359 value of <code class="varname">TEXINFO_REQD</code> either runs the appropriate 8359 value of <code class="varname">TEXINFO_REQD</code> either runs the appropriate
8360 <span class="command"><strong>makeinfo</strong></span> command or exit on error.</p> 8360 <span class="command"><strong>makeinfo</strong></span> command or exit on error.</p>
8361</div> 8361</div>
8362<div class="sect2"> 8362<div class="sect2">
8363<div class="titlepage"><div><div><h3 class="title"> 8363<div class="titlepage"><div><div><h3 class="title">
8364<a name="manpages"></a>21.6.8. Packages installing man pages</h3></div></div></div> 8364<a name="manpages"></a>21.6.8. Packages installing man pages</h3></div></div></div>
8365<p>All packages that install manual pages should install them 8365<p>All packages that install manual pages should install them
8366 into the same directory, so that there is one common place to look 8366 into the same directory, so that there is one common place to look
8367 for them. In pkgsrc, this place is 8367 for them. In pkgsrc, this place is
8368 <code class="literal">${PREFIX}/${PKGMANDIR}</code>, and this expression 8368 <code class="literal">${PREFIX}/${PKGMANDIR}</code>, and this expression
8369 should be used in packages. The default for 8369 should be used in packages. The default for
8370 <code class="varname">PKGMANDIR</code> is 8370 <code class="varname">PKGMANDIR</code> is
8371 <span class="quote">&#8220;<span class="quote"><code class="filename">man</code></span>&#8221;</span>. Another often-used value 8371 <span class="quote">&#8220;<span class="quote"><code class="filename">man</code></span>&#8221;</span>. Another often-used value
8372 is <span class="quote">&#8220;<span class="quote"><code class="filename">share/man</code></span>&#8221;</span>.</p> 8372 is <span class="quote">&#8220;<span class="quote"><code class="filename">share/man</code></span>&#8221;</span>.</p>
8373<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> 8373<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
8374<h3 class="title">Note</h3> 8374<h3 class="title">Note</h3>
8375<p>The support for a custom <code class="varname">PKGMANDIR</code> 8375<p>The support for a custom <code class="varname">PKGMANDIR</code>
8376 is far from complete.</p> 8376 is far from complete.</p>
8377</div> 8377</div>
8378<p>The <code class="filename">PLIST</code> files can just use 8378<p>The <code class="filename">PLIST</code> files can just use
8379 <code class="filename">man/</code> as the top level directory for the man 8379 <code class="filename">man/</code> as the top level directory for the man
8380 page file entries, and the pkgsrc framework will convert as 8380 page file entries, and the pkgsrc framework will convert as
8381 needed. In all other places, the correct 8381 needed. In all other places, the correct
8382 <code class="varname">PKGMANDIR</code> must be used.</p> 8382 <code class="varname">PKGMANDIR</code> must be used.</p>
8383<p>Packages that are 8383<p>Packages that are
8384 configured with <code class="varname">GNU_CONFIGURE</code> set as 8384 configured with <code class="varname">GNU_CONFIGURE</code> set as
8385 <span class="quote">&#8220;<span class="quote">yes</span>&#8221;</span>, by default will use the 8385 <span class="quote">&#8220;<span class="quote">yes</span>&#8221;</span>, by default will use the
8386 <code class="filename">./configure</code> 8386 <code class="filename">./configure</code>
8387 --mandir switch to set where the man pages should be installed. 8387 --mandir switch to set where the man pages should be installed.
8388 The path is <code class="varname">GNU_CONFIGURE_MANDIR</code> which defaults 8388 The path is <code class="varname">GNU_CONFIGURE_MANDIR</code> which defaults
8389 to <code class="varname">${PREFIX}/${PKGMANDIR}</code>.</p> 8389 to <code class="varname">${PREFIX}/${PKGMANDIR}</code>.</p>
8390<p>Packages that use <code class="varname">GNU_CONFIGURE</code> but do not 8390<p>Packages that use <code class="varname">GNU_CONFIGURE</code> but do not
8391 use --mandir, can set <code class="varname">CONFIGURE_HAS_MANDIR</code> 8391 use --mandir, can set <code class="varname">CONFIGURE_HAS_MANDIR</code>
8392 to <span class="quote">&#8220;<span class="quote">no</span>&#8221;</span>. 8392 to <span class="quote">&#8220;<span class="quote">no</span>&#8221;</span>.
8393 Or if the <code class="filename">./configure</code> script uses 8393 Or if the <code class="filename">./configure</code> script uses
8394 a non-standard use of --mandir, you can set 8394 a non-standard use of --mandir, you can set
8395 <code class="varname">GNU_CONFIGURE_MANDIR</code> as needed.</p> 8395 <code class="varname">GNU_CONFIGURE_MANDIR</code> as needed.</p>
8396<p>See <a class="xref" href="#manpage-compression" title="15.5. Man page compression">Section 15.5, &#8220;Man page compression&#8221;</a> for 8396<p>See <a class="xref" href="#manpage-compression" title="15.5. Man page compression">Section 15.5, &#8220;Man page compression&#8221;</a> for
8397 information on installation of compressed manual pages.</p> 8397 information on installation of compressed manual pages.</p>
8398</div> 8398</div>
8399<div class="sect2"> 8399<div class="sect2">
8400<div class="titlepage"><div><div><h3 class="title"> 8400<div class="titlepage"><div><div><h3 class="title">
8401<a name="gconf-data-files"></a>21.6.9. Packages installing GConf data files</h3></div></div></div> 8401<a name="gconf-data-files"></a>21.6.9. Packages installing GConf data files</h3></div></div></div>
8402<p>If a package installs <code class="filename">.schemas</code> or 8402<p>If a package installs <code class="filename">.schemas</code> or
8403 <code class="filename">.entries</code> files, used by GConf, 8403 <code class="filename">.entries</code> files, used by GConf,
8404 you need to take some extra steps to make sure they get registered 8404 you need to take some extra steps to make sure they get registered
8405 in the database:</p> 8405 in the database:</p>
8406<div class="orderedlist"><ol class="orderedlist" type="1"> 8406<div class="orderedlist"><ol class="orderedlist" type="1">
8407<li class="listitem"><p>Include <code class="filename">../../devel/GConf/schemas.mk</code> 8407<li class="listitem"><p>Include <code class="filename">../../devel/GConf/schemas.mk</code>
8408 instead of its <code class="filename">buildlink3.mk</code> file. This 8408 instead of its <code class="filename">buildlink3.mk</code> file. This
8409 takes care of rebuilding the GConf database at installation and 8409 takes care of rebuilding the GConf database at installation and
8410 deinstallation time, and tells the package where to install 8410 deinstallation time, and tells the package where to install
8411 GConf data files using some standard configure arguments. It 8411 GConf data files using some standard configure arguments. It
8412 also disallows any access to the database directly from the 8412 also disallows any access to the database directly from the
8413 package.</p></li> 8413 package.</p></li>
8414<li class="listitem"><p>Ensure that the package installs its 8414<li class="listitem"><p>Ensure that the package installs its
8415 <code class="filename">.schemas</code> files under 8415 <code class="filename">.schemas</code> files under
8416 <code class="filename">${PREFIX}/share/gconf/schemas</code>. If they get 8416 <code class="filename">${PREFIX}/share/gconf/schemas</code>. If they get
8417 installed under <code class="filename">${PREFIX}/etc</code>, you will 8417 installed under <code class="filename">${PREFIX}/etc</code>, you will
8418 need to manually patch the package.</p></li> 8418 need to manually patch the package.</p></li>
8419<li class="listitem"><p>Check the PLIST and remove any entries under the etc/gconf 8419<li class="listitem"><p>Check the PLIST and remove any entries under the etc/gconf
8420 directory, as they will be handled automatically. See 8420 directory, as they will be handled automatically. See
8421 <a class="xref" href="#faq.conf" title="10.13. How do I change the location of configuration files?">Section 10.13, &#8220;How do I change the location of configuration files?&#8221;</a> for more information.</p></li> 8421 <a class="xref" href="#faq.conf" title="10.13. How do I change the location of configuration files?">Section 10.13, &#8220;How do I change the location of configuration files?&#8221;</a> for more information.</p></li>
8422<li class="listitem"><p>Define the <code class="varname">GCONF_SCHEMAS</code> variable in 8422<li class="listitem"><p>Define the <code class="varname">GCONF_SCHEMAS</code> variable in
8423 your <code class="filename">Makefile</code> with a list of all 8423 your <code class="filename">Makefile</code> with a list of all
8424 <code class="filename">.schemas</code> files installed by the package, if 8424 <code class="filename">.schemas</code> files installed by the package, if
8425 any. Names must not contain any directories in them.</p></li> 8425 any. Names must not contain any directories in them.</p></li>
8426<li class="listitem"><p>Define the <code class="varname">GCONF_ENTRIES</code> variable in 8426<li class="listitem"><p>Define the <code class="varname">GCONF_ENTRIES</code> variable in
8427 your <code class="filename">Makefile</code> with a 8427 your <code class="filename">Makefile</code> with a
8428 list of all <code class="filename">.entries</code> files installed by the 8428 list of all <code class="filename">.entries</code> files installed by the
8429 package, if any. Names must not contain any directories in 8429 package, if any. Names must not contain any directories in
8430 them.</p></li> 8430 them.</p></li>
8431</ol></div> 8431</ol></div>
8432</div> 8432</div>
8433<div class="sect2"> 8433<div class="sect2">
8434<div class="titlepage"><div><div><h3 class="title"> 8434<div class="titlepage"><div><div><h3 class="title">
8435<a name="scrollkeeper-data-files"></a>21.6.10. Packages installing scrollkeeper/rarian data files</h3></div></div></div> 8435<a name="scrollkeeper-data-files"></a>21.6.10. Packages installing scrollkeeper/rarian data files</h3></div></div></div>
8436<p>If a package installs <code class="filename">.omf</code> files, used by 8436<p>If a package installs <code class="filename">.omf</code> files, used by
8437 scrollkeeper/rarian, you need to take some extra steps to make sure they 8437 scrollkeeper/rarian, you need to take some extra steps to make sure they
8438 get registered in the database:</p> 8438 get registered in the database:</p>
8439<div class="orderedlist"><ol class="orderedlist" type="1"> 8439<div class="orderedlist"><ol class="orderedlist" type="1">
8440<li class="listitem"><p>Include 8440<li class="listitem"><p>Include
8441 <code class="filename">../../mk/omf-scrollkeeper.mk</code> 8441 <code class="filename">../../mk/omf-scrollkeeper.mk</code>
8442 instead of rarian's <code class="filename">buildlink3.mk</code> file. This 8442 instead of rarian's <code class="filename">buildlink3.mk</code> file. This
8443 takes care of rebuilding the scrollkeeper database at 8443 takes care of rebuilding the scrollkeeper database at
8444 installation and deinstallation time, and disallows any access 8444 installation and deinstallation time, and disallows any access
8445 to it directly from the package.</p></li> 8445 to it directly from the package.</p></li>
8446<li class="listitem"><p>Check the PLIST and remove any entries under the 8446<li class="listitem"><p>Check the PLIST and remove any entries under the
8447 <code class="filename">libdata/scrollkeeper</code> directory, as they 8447 <code class="filename">libdata/scrollkeeper</code> directory, as they
8448 will be handled automatically.</p></li> 8448 will be handled automatically.</p></li>
8449<li class="listitem"><p>Remove the <code class="filename">share/omf</code> directory from 8449<li class="listitem"><p>Remove the <code class="filename">share/omf</code> directory from
8450 the PLIST. It will be handled by rarian. (<span class="command"><strong>make 8450 the PLIST. It will be handled by rarian. (<span class="command"><strong>make
8451 print-PLIST</strong></span> does this automatically.)</p></li> 8451 print-PLIST</strong></span> does this automatically.)</p></li>
8452</ol></div> 8452</ol></div>
8453</div> 8453</div>
8454<div class="sect2"> 8454<div class="sect2">
8455<div class="titlepage"><div><div><h3 class="title"> 8455<div class="titlepage"><div><div><h3 class="title">
8456<a name="x11-fonts"></a>21.6.11. Packages installing X11 fonts</h3></div></div></div> 8456<a name="x11-fonts"></a>21.6.11. Packages installing X11 fonts</h3></div></div></div>
8457<p>If a package installs font files, you will need to rebuild 8457<p>If a package installs font files, you will need to rebuild
8458 the fonts database in the directory where they get installed at 8458 the fonts database in the directory where they get installed at
8459 installation and deinstallation time. This can be automatically 8459 installation and deinstallation time. This can be automatically
8460 done by using the pkginstall framework.</p> 8460 done by using the pkginstall framework.</p>
8461<p>You can list the directories where fonts are installed in the 8461<p>You can list the directories where fonts are installed in the
8462 <code class="varname">FONTS_DIRS.<em class="replaceable"><code>type</code></em></code> 8462 <code class="varname">FONTS_DIRS.<em class="replaceable"><code>type</code></em></code>
8463 variables, where <em class="replaceable"><code>type</code></em> can be one of 8463 variables, where <em class="replaceable"><code>type</code></em> can be one of
8464 <span class="quote">&#8220;<span class="quote">ttf</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">type1</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">x11</span>&#8221;</span>. 8464 <span class="quote">&#8220;<span class="quote">ttf</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">type1</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">x11</span>&#8221;</span>.
8465 Also make sure that the database file 8465 Also make sure that the database file
8466 <code class="filename">fonts.dir</code> is not listed in the PLIST.</p> 8466 <code class="filename">fonts.dir</code> is not listed in the PLIST.</p>
8467<p>Note that you should not create new directories for fonts; 8467<p>Note that you should not create new directories for fonts;
8468 instead use the standard ones to avoid that the user needs to 8468 instead use the standard ones to avoid that the user needs to
8469 manually configure his X server to find them.</p> 8469 manually configure his X server to find them.</p>
8470</div> 8470</div>
8471<div class="sect2"> 8471<div class="sect2">
8472<div class="titlepage"><div><div><h3 class="title"> 8472<div class="titlepage"><div><div><h3 class="title">
8473<a name="gtk2-modules"></a>21.6.12. Packages installing GTK2 modules</h3></div></div></div> 8473<a name="gtk2-modules"></a>21.6.12. Packages installing GTK2 modules</h3></div></div></div>
8474<p>If a package installs GTK2 immodules or loaders, you need to 8474<p>If a package installs GTK2 immodules or loaders, you need to
8475 take some extra steps to get them registered in the GTK2 database 8475 take some extra steps to get them registered in the GTK2 database
8476 properly:</p> 8476 properly:</p>
8477<div class="orderedlist"><ol class="orderedlist" type="1"> 8477<div class="orderedlist"><ol class="orderedlist" type="1">
8478<li class="listitem"><p>Include 8478<li class="listitem"><p>Include
8479 <code class="filename">../../x11/gtk2/modules.mk</code> instead of its 8479 <code class="filename">../../x11/gtk2/modules.mk</code> instead of its
8480 <code class="filename">buildlink3.mk</code> file. This takes care of 8480 <code class="filename">buildlink3.mk</code> file. This takes care of
8481 rebuilding the database at installation and deinstallation time.</p></li> 8481 rebuilding the database at installation and deinstallation time.</p></li>
8482<li class="listitem"><p>Set <code class="varname">GTK2_IMMODULES=YES</code> if 8482<li class="listitem"><p>Set <code class="varname">GTK2_IMMODULES=YES</code> if
8483 your package installs GTK2 immodules.</p></li> 8483 your package installs GTK2 immodules.</p></li>
8484<li class="listitem"><p>Set <code class="varname">GTK2_LOADERS=YES</code> if your package installs 8484<li class="listitem"><p>Set <code class="varname">GTK2_LOADERS=YES</code> if your package installs
8485 GTK2 loaders.</p></li> 8485 GTK2 loaders.</p></li>
8486<li class="listitem"> 8486<li class="listitem">
8487<p>Patch the package to not touch any of the GTK2 8487<p>Patch the package to not touch any of the GTK2
8488 databases directly. These are:</p> 8488 databases directly. These are:</p>
8489<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 8489<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
8490<li class="listitem"><p><code class="filename">libdata/gtk-2.0/gdk-pixbuf.loaders</code></p></li> 8490<li class="listitem"><p><code class="filename">libdata/gtk-2.0/gdk-pixbuf.loaders</code></p></li>
8491<li class="listitem"><p><code class="filename">libdata/gtk-2.0/gtk.immodules</code></p></li> 8491<li class="listitem"><p><code class="filename">libdata/gtk-2.0/gtk.immodules</code></p></li>
8492</ul></div> 8492</ul></div>
8493</li> 8493</li>
8494<li class="listitem"><p>Check the <code class="filename">PLIST</code> and remove 8494<li class="listitem"><p>Check the <code class="filename">PLIST</code> and remove
8495 any entries under the <code class="filename">libdata/gtk-2.0</code> 8495 any entries under the <code class="filename">libdata/gtk-2.0</code>
8496 directory, as they will be handled automatically.</p></li> 8496 directory, as they will be handled automatically.</p></li>
8497</ol></div> 8497</ol></div>
8498</div> 8498</div>
8499<div class="sect2"> 8499<div class="sect2">
8500<div class="titlepage"><div><div><h3 class="title"> 8500<div class="titlepage"><div><div><h3 class="title">
8501<a name="sgml-xml-data"></a>21.6.13. Packages installing SGML or XML data</h3></div></div></div> 8501<a name="sgml-xml-data"></a>21.6.13. Packages installing SGML or XML data</h3></div></div></div>
8502<p>If a package installs SGML or XML data files that need to be 8502<p>If a package installs SGML or XML data files that need to be
8503 registered in system-wide catalogs (like DTDs, sub-catalogs, 8503 registered in system-wide catalogs (like DTDs, sub-catalogs,
8504 etc.), you need to take some extra steps:</p> 8504 etc.), you need to take some extra steps:</p>
8505<div class="orderedlist"><ol class="orderedlist" type="1"> 8505<div class="orderedlist"><ol class="orderedlist" type="1">
8506<li class="listitem"><p>Include 8506<li class="listitem"><p>Include
8507 <code class="filename">../../textproc/xmlcatmgr/catalogs.mk</code> in 8507 <code class="filename">../../textproc/xmlcatmgr/catalogs.mk</code> in
8508 your <code class="filename">Makefile</code>, which takes care of 8508 your <code class="filename">Makefile</code>, which takes care of
8509 registering those files in system-wide catalogs at 8509 registering those files in system-wide catalogs at
8510 installation and deinstallation time.</p></li> 8510 installation and deinstallation time.</p></li>
8511<li class="listitem"><p>Set <code class="varname">SGML_CATALOGS</code> to the full path of 8511<li class="listitem"><p>Set <code class="varname">SGML_CATALOGS</code> to the full path of
8512 any SGML catalogs installed by the package.</p></li> 8512 any SGML catalogs installed by the package.</p></li>
8513<li class="listitem"><p>Set <code class="varname">XML_CATALOGS</code> to the full path of 8513<li class="listitem"><p>Set <code class="varname">XML_CATALOGS</code> to the full path of
8514 any XML catalogs installed by the package.</p></li> 8514 any XML catalogs installed by the package.</p></li>
8515<li class="listitem"><p>Set <code class="varname">SGML_ENTRIES</code> to individual entries 8515<li class="listitem"><p>Set <code class="varname">SGML_ENTRIES</code> to individual entries
8516 to be added to the SGML catalog. These come in groups of 8516 to be added to the SGML catalog. These come in groups of
8517 three strings; see xmlcatmgr(1) for more information 8517 three strings; see xmlcatmgr(1) for more information
8518 (specifically, arguments recognized by the 'add' action). 8518 (specifically, arguments recognized by the 'add' action).
8519 Note that you will normally not use this variable.</p></li> 8519 Note that you will normally not use this variable.</p></li>
8520<li class="listitem"><p>Set <code class="varname">XML_ENTRIES</code> to individual entries 8520<li class="listitem"><p>Set <code class="varname">XML_ENTRIES</code> to individual entries
8521 to be added to the XML catalog. These come in groups of three 8521 to be added to the XML catalog. These come in groups of three
8522 strings; see xmlcatmgr(1) for more information (specifically, 8522 strings; see xmlcatmgr(1) for more information (specifically,
8523 arguments recognized by the 'add' action). Note that you will 8523 arguments recognized by the 'add' action). Note that you will
8524 normally not use this variable.</p></li> 8524 normally not use this variable.</p></li>
8525</ol></div> 8525</ol></div>
8526</div> 8526</div>
8527<div class="sect2"> 8527<div class="sect2">
8528<div class="titlepage"><div><div><h3 class="title"> 8528<div class="titlepage"><div><div><h3 class="title">
8529<a name="mime-database"></a>21.6.14. Packages installing extensions to the MIME database</h3></div></div></div> 8529<a name="mime-database"></a>21.6.14. Packages installing extensions to the MIME database</h3></div></div></div>
8530<p>If a package provides extensions to the MIME database by 8530<p>If a package provides extensions to the MIME database by
8531 installing <code class="filename">.xml</code> files inside 8531 installing <code class="filename">.xml</code> files inside
8532 <code class="filename">${PREFIX}/share/mime/packages</code>, you 8532 <code class="filename">${PREFIX}/share/mime/packages</code>, you
8533 need to take some extra steps to ensure that the database is kept 8533 need to take some extra steps to ensure that the database is kept
8534 consistent with respect to these new files:</p> 8534 consistent with respect to these new files:</p>
8535<div class="orderedlist"><ol class="orderedlist" type="1"> 8535<div class="orderedlist"><ol class="orderedlist" type="1">
8536<li class="listitem"><p>Include 8536<li class="listitem"><p>Include
8537 <code class="filename">../../databases/shared-mime-info/mimedb.mk</code> 8537 <code class="filename">../../databases/shared-mime-info/mimedb.mk</code>
8538 (avoid using the <code class="filename">buildlink3.mk</code> file from 8538 (avoid using the <code class="filename">buildlink3.mk</code> file from
8539 this same directory, which is reserved for inclusion from 8539 this same directory, which is reserved for inclusion from
8540 other <code class="filename">buildlink3.mk</code> files). It takes 8540 other <code class="filename">buildlink3.mk</code> files). It takes
8541 care of rebuilding the MIME database at installation and 8541 care of rebuilding the MIME database at installation and
8542 deinstallation time, and disallows any access to it directly 8542 deinstallation time, and disallows any access to it directly
8543 from the package.</p></li> 8543 from the package.</p></li>
8544<li class="listitem"><p>Check the PLIST and remove any entries under the 8544<li class="listitem"><p>Check the PLIST and remove any entries under the
8545 <code class="filename">share/mime</code> directory, 8545 <code class="filename">share/mime</code> directory,
8546 <span class="emphasis"><em>except</em></span> for files saved under 8546 <span class="emphasis"><em>except</em></span> for files saved under
8547 <code class="filename">share/mime/packages</code>. The former are 8547 <code class="filename">share/mime/packages</code>. The former are
8548 handled automatically by 8548 handled automatically by
8549 the update-mime-database program, but the latter are 8549 the update-mime-database program, but the latter are
8550 package-dependent and must be removed by the package that 8550 package-dependent and must be removed by the package that
8551 installed them in the first place.</p></li> 8551 installed them in the first place.</p></li>
8552<li class="listitem"><p>Remove any <code class="filename">share/mime/*</code> directories 8552<li class="listitem"><p>Remove any <code class="filename">share/mime/*</code> directories
8553 from the PLIST. They will be handled by the shared-mime-info 8553 from the PLIST. They will be handled by the shared-mime-info
8554 package.</p></li> 8554 package.</p></li>
8555</ol></div> 8555</ol></div>
8556</div> 8556</div>
8557<div class="sect2"> 8557<div class="sect2">
8558<div class="titlepage"><div><div><h3 class="title"> 8558<div class="titlepage"><div><div><h3 class="title">
8559<a name="intltool"></a>21.6.15. Packages using intltool</h3></div></div></div> 8559<a name="intltool"></a>21.6.15. Packages using intltool</h3></div></div></div>
8560<p>If a package uses intltool during its build, add 8560<p>If a package uses intltool during its build, add
8561 <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code>, 8561 <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code>,
8562 which forces it to use the intltool package provided by pkgsrc, 8562 which forces it to use the intltool package provided by pkgsrc,
8563 instead of the one bundled with the distribution file.</p> 8563 instead of the one bundled with the distribution file.</p>
8564<p>This tracks intltool's build-time dependencies and uses the 8564<p>This tracks intltool's build-time dependencies and uses the
8565 latest available version; this way, the package benefits of any 8565 latest available version; this way, the package benefits of any
8566 bug fixes that may have appeared since it was released.</p> 8566 bug fixes that may have appeared since it was released.</p>
8567</div> 8567</div>
8568<div class="sect2"> 8568<div class="sect2">
8569<div class="titlepage"><div><div><h3 class="title"> 8569<div class="titlepage"><div><div><h3 class="title">
8570<a name="startup-scripts"></a>21.6.16. Packages installing startup scripts</h3></div></div></div> 8570<a name="startup-scripts"></a>21.6.16. Packages installing startup scripts</h3></div></div></div>
8571<p>If a package contains a rc.d script, it won't be copied into 8571<p>If a package contains a rc.d script, it won't be copied into
8572 the startup directory by default, but you can enable it, by adding 8572 the startup directory by default, but you can enable it, by adding
8573 the option <code class="varname">PKG_RCD_SCRIPTS=YES</code> in 8573 the option <code class="varname">PKG_RCD_SCRIPTS=YES</code> in
8574 <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>. This option will copy the scripts 8574 <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>. This option will copy the scripts
8575 into <code class="filename">/etc/rc.d</code> when a package is installed, and 8575 into <code class="filename">/etc/rc.d</code> when a package is installed, and
8576 it will automatically remove the scripts when the package is 8576 it will automatically remove the scripts when the package is
8577 deinstalled.</p> 8577 deinstalled.</p>
8578</div> 8578</div>
8579<div class="sect2"> 8579<div class="sect2">
8580<div class="titlepage"><div><div><h3 class="title"> 8580<div class="titlepage"><div><div><h3 class="title">
8581<a name="tex-packages"></a>21.6.17. Packages installing TeX modules</h3></div></div></div> 8581<a name="tex-packages"></a>21.6.17. Packages installing TeX modules</h3></div></div></div>
8582<p>If a package installs TeX packages into the texmf tree, 8582<p>If a package installs TeX packages into the texmf tree,
8583 the <code class="filename">ls-R</code> database of the tree needs to be 8583 the <code class="filename">ls-R</code> database of the tree needs to be
8584 updated.</p> 8584 updated.</p>
8585<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> 8585<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
8586<h3 class="title">Note</h3> 8586<h3 class="title">Note</h3>
8587<p>Except the main TeX packages such as kpathsea, 8587<p>Except the main TeX packages such as kpathsea,
8588 packages should install files 8588 packages should install files
8589 into <code class="filename">${PREFIX}/share/texmf-dist</code>, 8589 into <code class="filename">${PREFIX}/share/texmf-dist</code>,
8590 not <code class="filename">${PREFIX}/share/texmf</code>.</p> 8590 not <code class="filename">${PREFIX}/share/texmf</code>.</p>
8591</div> 8591</div>
8592<div class="orderedlist"><ol class="orderedlist" type="1"> 8592<div class="orderedlist"><ol class="orderedlist" type="1">
8593<li class="listitem"><p>Include 8593<li class="listitem"><p>Include
8594 <code class="filename">../../print/kpathsea/texmf.mk</code>. This 8594 <code class="filename">../../print/kpathsea/texmf.mk</code>. This
8595 takes care of rebuilding the <code class="filename">ls-R</code> 8595 takes care of rebuilding the <code class="filename">ls-R</code>
8596 database at installation and deinstallation time.</p></li> 8596 database at installation and deinstallation time.</p></li>
8597<li class="listitem"> 8597<li class="listitem">
8598<p>If your package installs files into a texmf 8598<p>If your package installs files into a texmf
8599 tree other than the one 8599 tree other than the one
8600 at <code class="filename">${PREFIX}/share/texmf-dist</code>, 8600 at <code class="filename">${PREFIX}/share/texmf-dist</code>,
8601 set <code class="varname">TEX_TEXMF_DIRS</code> to the list of all texmf 8601 set <code class="varname">TEX_TEXMF_DIRS</code> to the list of all texmf
8602 trees that need database update.</p> 8602 trees that need database update.</p>
8603<p>If your package also installs font map files that need 8603<p>If your package also installs font map files that need
8604 to be registered using <span class="command"><strong>updmap</strong></span>, 8604 to be registered using <span class="command"><strong>updmap</strong></span>,
8605 include <code class="filename">../../print/tex-tetex/map.mk</code> and 8605 include <code class="filename">../../print/tex-tetex/map.mk</code> and
8606 set <code class="varname">TEX_MAP_FILES</code> and/or 8606 set <code class="varname">TEX_MAP_FILES</code> and/or
8607 <code class="varname">TEX_MIXEDMAP_FILES</code> to the list of all 8607 <code class="varname">TEX_MIXEDMAP_FILES</code> to the list of all
8608 such font map files. Then <span class="command"><strong>updmap</strong></span> will 8608 such font map files. Then <span class="command"><strong>updmap</strong></span> will
8609 be run automatically at installation/deinstallation to 8609 be run automatically at installation/deinstallation to
8610 enable/disable font map files for TeX output 8610 enable/disable font map files for TeX output
8611 drivers.</p> 8611 drivers.</p>
8612</li> 8612</li>
8613<li class="listitem"><p>Make sure that none of <code class="filename">ls-R</code> 8613<li class="listitem"><p>Make sure that none of <code class="filename">ls-R</code>
8614 databases are included in <code class="filename">PLIST</code>, as 8614 databases are included in <code class="filename">PLIST</code>, as
8615 they will be removed only by the kpathsea package.</p></li> 8615 they will be removed only by the kpathsea package.</p></li>
8616</ol></div> 8616</ol></div>
8617</div> 8617</div>
8618<div class="sect2"> 8618<div class="sect2">
8619<div class="titlepage"><div><div><h3 class="title"> 8619<div class="titlepage"><div><div><h3 class="title">
8620<a name="emulation-packages"></a>21.6.18. Packages supporting running binaries in 8620<a name="emulation-packages"></a>21.6.18. Packages supporting running binaries in
8621 emulation</h3></div></div></div> 8621 emulation</h3></div></div></div>
8622<p>There are some packages that provide libraries and 8622<p>There are some packages that provide libraries and
8623 executables for running binaries from a one operating system 8623 executables for running binaries from a one operating system
8624 on a different one (if the latter supports it). One example 8624 on a different one (if the latter supports it). One example
8625 is running Linux binaries on NetBSD.</p> 8625 is running Linux binaries on NetBSD.</p>
8626<p>The <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/rpm2pkg/README.html" target="_top"><code class="filename">pkgtools/rpm2pkg</code></a> 8626<p>The <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/rpm2pkg/README.html" target="_top"><code class="filename">pkgtools/rpm2pkg</code></a>
8627 helps in extracting and packaging Linux rpm packages.</p> 8627 helps in extracting and packaging Linux rpm packages.</p>
8628<p>The <code class="varname">CHECK_SHLIBS</code> can be set to no to 8628<p>The <code class="varname">CHECK_SHLIBS</code> can be set to no to
8629 avoid the <span class="command"><strong>check-shlibs</strong></span> target, which tests 8629 avoid the <span class="command"><strong>check-shlibs</strong></span> target, which tests
8630 if all libraries for each installed executable can be found by 8630 if all libraries for each installed executable can be found by
8631 the dynamic linker. Since the standard dynamic linker is run, 8631 the dynamic linker. Since the standard dynamic linker is run,
8632 this fails for emulation packages, because the libraries used 8632 this fails for emulation packages, because the libraries used
8633 by the emulation are not in the standard directories.</p> 8633 by the emulation are not in the standard directories.</p>
8634</div> 8634</div>
8635<div class="sect2"> 8635<div class="sect2">
8636<div class="titlepage"><div><div><h3 class="title"> 8636<div class="titlepage"><div><div><h3 class="title">
8637<a name="hicolor-theme"></a>21.6.19. Packages installing hicolor theme icons</h3></div></div></div> 8637<a name="hicolor-theme"></a>21.6.19. Packages installing hicolor theme icons</h3></div></div></div>
8638<p>If a package installs images under the 8638<p>If a package installs images under the
8639 <code class="filename">share/icons/hicolor</code> and/or updates the 8639 <code class="filename">share/icons/hicolor</code> and/or updates the
8640 <code class="filename">share/icons/hicolor/icon-theme.cache</code> 8640 <code class="filename">share/icons/hicolor/icon-theme.cache</code>
8641 database, you need to take some extra steps to make sure that the 8641 database, you need to take some extra steps to make sure that the
8642 shared theme directory is handled appropriately and that the cache 8642 shared theme directory is handled appropriately and that the cache
8643 database is rebuilt:</p> 8643 database is rebuilt:</p>
8644<div class="orderedlist"><ol class="orderedlist" type="1"> 8644<div class="orderedlist"><ol class="orderedlist" type="1">
8645<li class="listitem"><p>Include 8645<li class="listitem"><p>Include
8646 <code class="filename">../../graphics/hicolor-icon-theme/buildlink3.mk</code>.</p></li> 8646 <code class="filename">../../graphics/hicolor-icon-theme/buildlink3.mk</code>.</p></li>
8647<li class="listitem"><p>Check the <code class="filename">PLIST</code> and remove the 8647<li class="listitem"><p>Check the <code class="filename">PLIST</code> and remove the
8648 entry that refers to the theme cache.</p></li> 8648 entry that refers to the theme cache.</p></li>
8649<li class="listitem"><p>Ensure that the PLIST does not remove the shared icon 8649<li class="listitem"><p>Ensure that the PLIST does not remove the shared icon
8650 directories from the <code class="filename">share/icons/hicolor</code> 8650 directories from the <code class="filename">share/icons/hicolor</code>
8651 hierarchy because they will be handled automatically.</p></li> 8651 hierarchy because they will be handled automatically.</p></li>
8652</ol></div> 8652</ol></div>
8653<p>The best way to verify that the PLIST is correct with 8653<p>The best way to verify that the PLIST is correct with
8654 respect to the last two points is to regenerate it using 8654 respect to the last two points is to regenerate it using
8655 <span class="command"><strong>make print-PLIST</strong></span>.</p> 8655 <span class="command"><strong>make print-PLIST</strong></span>.</p>
8656</div> 8656</div>
8657<div class="sect2"> 8657<div class="sect2">
8658<div class="titlepage"><div><div><h3 class="title"> 8658<div class="titlepage"><div><div><h3 class="title">
8659<a name="desktop-files"></a>21.6.20. Packages installing desktop files</h3></div></div></div> 8659<a name="desktop-files"></a>21.6.20. Packages installing desktop files</h3></div></div></div>
8660<p>If a package installs <code class="filename">.desktop</code> files 8660<p>If a package installs <code class="filename">.desktop</code> files
8661 under <code class="filename">share/applications</code> and these include 8661 under <code class="filename">share/applications</code> and these include
8662 MIME information (MimeType key), you need to take extra steps to 8662 MIME information (MimeType key), you need to take extra steps to
8663 ensure that they are registered into the MIME database:</p> 8663 ensure that they are registered into the MIME database:</p>
8664<div class="orderedlist"><ol class="orderedlist" type="1"> 8664<div class="orderedlist"><ol class="orderedlist" type="1">
8665<li class="listitem"><p>Include 8665<li class="listitem"><p>Include
8666 <code class="filename">../../sysutils/desktop-file-utils/desktopdb.mk</code>.</p></li> 8666 <code class="filename">../../sysutils/desktop-file-utils/desktopdb.mk</code>.</p></li>
8667<li class="listitem"><p>Check the PLIST and remove the entry that refers to the 8667<li class="listitem"><p>Check the PLIST and remove the entry that refers to the
8668 <code class="filename">share/applications/mimeinfo.cache</code> file. 8668 <code class="filename">share/applications/mimeinfo.cache</code> file.
8669 It will be handled automatically.</p></li> 8669 It will be handled automatically.</p></li>
8670</ol></div> 8670</ol></div>
8671<p>The best way to verify that the PLIST is correct with 8671<p>The best way to verify that the PLIST is correct with
8672 respect to the last point is to regenerate it using <span class="command"><strong>make 8672 respect to the last point is to regenerate it using <span class="command"><strong>make
8673 print-PLIST</strong></span>.</p> 8673 print-PLIST</strong></span>.</p>
8674</div> 8674</div>
8675</div> 8675</div>
8676<div class="sect1"> 8676<div class="sect1">
8677<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8677<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8678<a name="punting"></a>21.7. Marking packages as having problems</h2></div></div></div> 8678<a name="punting"></a>21.7. Marking packages as having problems</h2></div></div></div>
8679<p>In some cases one does not have the time to solve a problem 8679<p>In some cases one does not have the time to solve a problem
8680 immediately. In this case, one can plainly mark a package as broken. For 8680 immediately. In this case, one can plainly mark a package as broken. For
8681 this, one just sets the variable <code class="varname">BROKEN</code> to the 8681 this, one just sets the variable <code class="varname">BROKEN</code> to the
8682 reason why the package is broken (similar to the 8682 reason why the package is broken (similar to the
8683 <code class="varname">PKG_FAIL_REASON</code> variable). A user trying to build 8683 <code class="varname">PKG_FAIL_REASON</code> variable). A user trying to build
8684 the package will immediately be shown this message, and the build 8684 the package will immediately be shown this message, and the build
8685 will not be even tried.</p> 8685 will not be even tried.</p>
8686<p><code class="varname">BROKEN</code> packages are removed from pkgsrc in irregular 8686<p><code class="varname">BROKEN</code> packages are removed from pkgsrc in irregular
8687 intervals.</p> 8687 intervals.</p>
8688</div> 8688</div>
8689</div> 8689</div>
8690<div class="chapter"> 8690<div class="chapter">
8691<div class="titlepage"><div><div><h2 class="title"> 8691<div class="titlepage"><div><div><h2 class="title">
8692<a name="debug"></a>Chapter 22. Debugging</h2></div></div></div> 8692<a name="debug"></a>Chapter 22. Debugging</h2></div></div></div>
8693<p>To check out all the gotchas when building a package, here are 8693<p>To check out all the gotchas when building a package, here are
8694 the steps that I do in order to get a package working. Please note 8694 the steps that I do in order to get a package working. Please note
8695 this is basically the same as what was explained in the previous 8695 this is basically the same as what was explained in the previous
8696 sections, only with some debugging aids.</p> 8696 sections, only with some debugging aids.</p>
8697<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 8697<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
8698<li class="listitem"><p>Be sure to set <code class="varname">PKG_DEVELOPER=yes</code> in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>.</p></li> 8698<li class="listitem"><p>Be sure to set <code class="varname">PKG_DEVELOPER=yes</code> in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>.</p></li>
8699<li class="listitem"> 8699<li class="listitem">
8700<p>Install <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/url2pkg/README.html" target="_top"><code class="filename">pkgtools/url2pkg</code></a>, 8700<p>Install <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/url2pkg/README.html" target="_top"><code class="filename">pkgtools/url2pkg</code></a>,
8701 create a directory for a new package, change into it, then run 8701 create a directory for a new package, change into it, then run
8702 <span class="command"><strong>url2pkg</strong></span>:</p> 8702 <span class="command"><strong>url2pkg</strong></span>:</p>
8703<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>mkdir /usr/pkgsrc/<em class="replaceable"><code>category</code></em>/<em class="replaceable"><code>examplepkg</code></em></code></strong> 8703<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>mkdir /usr/pkgsrc/<em class="replaceable"><code>category</code></em>/<em class="replaceable"><code>examplepkg</code></em></code></strong>
8704<code class="prompt">%</code> <strong class="userinput"><code>cd /usr/pkgsrc/<em class="replaceable"><code>category</code></em>/<em class="replaceable"><code>examplepkg</code></em></code></strong> 8704<code class="prompt">%</code> <strong class="userinput"><code>cd /usr/pkgsrc/<em class="replaceable"><code>category</code></em>/<em class="replaceable"><code>examplepkg</code></em></code></strong>
8705<code class="prompt">%</code> <strong class="userinput"><code>url2pkg http://www.example.com/path/to/distfile.tar.gz</code></strong></pre> 8705<code class="prompt">%</code> <strong class="userinput"><code>url2pkg http://www.example.com/path/to/distfile.tar.gz</code></strong></pre>
8706</li> 8706</li>
8707<li class="listitem"><p>Edit the <code class="filename">Makefile</code> as requested.</p></li> 8707<li class="listitem"><p>Edit the <code class="filename">Makefile</code> as requested.</p></li>
8708<li class="listitem"><p>Fill in the <code class="filename">DESCR</code> file</p></li> 8708<li class="listitem"><p>Fill in the <code class="filename">DESCR</code> file</p></li>
8709<li class="listitem"><p>Run <span class="command"><strong>make configure</strong></span></p></li> 8709<li class="listitem"><p>Run <span class="command"><strong>make configure</strong></span></p></li>
8710<li class="listitem"><p>Add any dependencies glimpsed from documentation and the 8710<li class="listitem"><p>Add any dependencies glimpsed from documentation and the
8711 configure step to the package's 8711 configure step to the package's
8712 <code class="filename">Makefile</code>.</p></li> 8712 <code class="filename">Makefile</code>.</p></li>
8713<li class="listitem"> 8713<li class="listitem">
8714<p>Make the package compile, doing multiple rounds of</p> 8714<p>Make the package compile, doing multiple rounds of</p>
8715<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>make</code></strong> 8715<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>make</code></strong>
8716<code class="prompt">%</code> <strong class="userinput"><code>pkgvi ${WRKSRC}/some/file/that/does/not/compile</code></strong> 8716<code class="prompt">%</code> <strong class="userinput"><code>pkgvi ${WRKSRC}/some/file/that/does/not/compile</code></strong>
8717<code class="prompt">%</code> <strong class="userinput"><code>mkpatches</code></strong> 8717<code class="prompt">%</code> <strong class="userinput"><code>mkpatches</code></strong>
8718<code class="prompt">%</code> <strong class="userinput"><code>patchdiff</code></strong> 8718<code class="prompt">%</code> <strong class="userinput"><code>patchdiff</code></strong>
8719<code class="prompt">%</code> <strong class="userinput"><code>mv ${WRKDIR}/.newpatches/* patches</code></strong> 8719<code class="prompt">%</code> <strong class="userinput"><code>mv ${WRKDIR}/.newpatches/* patches</code></strong>
8720<code class="prompt">%</code> <strong class="userinput"><code>make mps</code></strong> 8720<code class="prompt">%</code> <strong class="userinput"><code>make mps</code></strong>
8721<code class="prompt">%</code> <strong class="userinput"><code>make clean</code></strong></pre> 8721<code class="prompt">%</code> <strong class="userinput"><code>make clean</code></strong></pre>
8722<p>Doing this step as non-root user will ensure that no files 8722<p>Doing this step as non-root user will ensure that no files
8723 are modified that shouldn't be, especially during the build 8723 are modified that shouldn't be, especially during the build
8724 phase. <span class="command"><strong>mkpatches</strong></span>, 8724 phase. <span class="command"><strong>mkpatches</strong></span>,
8725 <span class="command"><strong>patchdiff</strong></span> and <span class="command"><strong>pkgvi</strong></span> are 8725 <span class="command"><strong>patchdiff</strong></span> and <span class="command"><strong>pkgvi</strong></span> are
8726 from the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/README.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> 8726 from the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/README.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a>
8727 package.</p> 8727 package.</p>
8728</li> 8728</li>
8729<li class="listitem"><p>Look at the <code class="filename">Makefile</code>, fix if 8729<li class="listitem"><p>Look at the <code class="filename">Makefile</code>, fix if
8730 necessary; see <a class="xref" href="#components.Makefile" title="13.1. Makefile">Section 13.1, &#8220;<code class="filename">Makefile</code>&#8221;</a>.</p></li> 8730 necessary; see <a class="xref" href="#components.Makefile" title="13.1. Makefile">Section 13.1, &#8220;<code class="filename">Makefile</code>&#8221;</a>.</p></li>
8731<li class="listitem"> 8731<li class="listitem">
8732<p>Generate a <code class="filename">PLIST</code>:</p> 8732<p>Generate a <code class="filename">PLIST</code>:</p>
8733<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> 8733<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
8734<code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST &gt;PLIST</code></strong> 8734<code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST &gt;PLIST</code></strong>
8735<code class="prompt">#</code> <strong class="userinput"><code>make deinstall</code></strong> 8735<code class="prompt">#</code> <strong class="userinput"><code>make deinstall</code></strong>
8736<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> 8736<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
8737<code class="prompt">#</code> <strong class="userinput"><code>make deinstall</code></strong></pre> 8737<code class="prompt">#</code> <strong class="userinput"><code>make deinstall</code></strong></pre>
8738<p>You usually need to be <code class="username">root</code> to do 8738<p>You usually need to be <code class="username">root</code> to do
8739 this. Look if there are any files left:</p> 8739 this. Look if there are any files left:</p>
8740<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST</code></strong></pre> 8740<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST</code></strong></pre>
8741<p>If this reveals any files that are missing in 8741<p>If this reveals any files that are missing in
8742 <code class="filename">PLIST</code>, add them.</p> 8742 <code class="filename">PLIST</code>, add them.</p>
8743</li> 8743</li>
8744<li class="listitem"> 8744<li class="listitem">
8745<p>Now that the <code class="filename">PLIST</code> is OK, install the 8745<p>Now that the <code class="filename">PLIST</code> is OK, install the
8746 package again and make a binary package:</p> 8746 package again and make a binary package:</p>
8747<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make reinstall</code></strong> 8747<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make reinstall</code></strong>
8748<code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong></pre> 8748<code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong></pre>
8749</li> 8749</li>
8750<li class="listitem"> 8750<li class="listitem">
8751<p>Delete the installed package:</p> 8751<p>Delete the installed package:</p>
8752<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>pkg_delete <em class="replaceable"><code>examplepkg</code></em></code></strong></pre> 8752<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>pkg_delete <em class="replaceable"><code>examplepkg</code></em></code></strong></pre>
8753</li> 8753</li>
8754<li class="listitem"> 8754<li class="listitem">
8755<p>Repeat the above <span class="command"><strong>make print-PLIST</strong></span> 8755<p>Repeat the above <span class="command"><strong>make print-PLIST</strong></span>
8756 command, which shouldn't find anything now:</p> 8756 command, which shouldn't find anything now:</p>
8757<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST</code></strong></pre> 8757<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST</code></strong></pre>
8758</li> 8758</li>
8759<li class="listitem"> 8759<li class="listitem">
8760<p>Reinstall the binary package:</p> 8760<p>Reinstall the binary package:</p>
8761<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>pkg_add .../<em class="replaceable"><code>examplepkg</code></em>.tgz</code></strong></pre> 8761<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>pkg_add .../<em class="replaceable"><code>examplepkg</code></em>.tgz</code></strong></pre>
8762</li> 8762</li>
8763<li class="listitem"><p>Play with it. Make sure everything works.</p></li> 8763<li class="listitem"><p>Play with it. Make sure everything works.</p></li>
8764<li class="listitem"> 8764<li class="listitem">
8765<p>Run <span class="command"><strong>pkglint</strong></span> from <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a>, and fix the problems it 8765<p>Run <span class="command"><strong>pkglint</strong></span> from <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a>, and fix the problems it
8766 reports:</p> 8766 reports:</p>
8767<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>pkglint</code></strong></pre> 8767<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>pkglint</code></strong></pre>
8768</li> 8768</li>
8769<li class="listitem"><p>Submit (or commit, if you have cvs access); see <a class="xref" href="#submit" title="Chapter 23. Submitting and Committing">Chapter 23, <i>Submitting and Committing</i></a>.</p></li> 8769<li class="listitem"><p>Submit (or commit, if you have cvs access); see <a class="xref" href="#submit" title="Chapter 23. Submitting and Committing">Chapter 23, <i>Submitting and Committing</i></a>.</p></li>
8770</ul></div> 8770</ul></div>
8771</div> 8771</div>
8772<div class="chapter"> 8772<div class="chapter">
8773<div class="titlepage"><div><div><h2 class="title"> 8773<div class="titlepage"><div><div><h2 class="title">
8774<a name="submit"></a>Chapter 23. Submitting and Committing</h2></div></div></div> 8774<a name="submit"></a>Chapter 23. Submitting and Committing</h2></div></div></div>
8775<div class="toc"> 8775<div class="toc">
8776<p><b>Table of Contents</b></p> 8776<p><b>Table of Contents</b></p>
8777<dl class="toc"> 8777<dl class="toc">
8778<dt><span class="sect1"><a href="#submitting-binary-packages">23.1. Submitting binary packages</a></span></dt> 8778<dt><span class="sect1"><a href="#submitting-binary-packages">23.1. Submitting binary packages</a></span></dt>
8779<dt><span class="sect1"><a href="#submitting-your-package">23.2. Submitting source packages (for non-NetBSD-developers)</a></span></dt> 8779<dt><span class="sect1"><a href="#submitting-your-package">23.2. Submitting source packages (for non-NetBSD-developers)</a></span></dt>
8780<dt><span class="sect1"><a href="#general-notes-for-changes">23.3. General notes when adding, updating, or removing packages</a></span></dt> 8780<dt><span class="sect1"><a href="#general-notes-for-changes">23.3. General notes when adding, updating, or removing packages</a></span></dt>
8781<dt><span class="sect1"><a href="#commit-messages">23.4. Commit Messages</a></span></dt> 8781<dt><span class="sect1"><a href="#commit-messages">23.4. Commit Messages</a></span></dt>
8782<dt><span class="sect1"><a href="#committing-importing">23.5. Committing: Adding a package to CVS</a></span></dt> 8782<dt><span class="sect1"><a href="#committing-importing">23.5. Committing: Adding a package to CVS</a></span></dt>
8783<dt><span class="sect1"><a href="#updating-package">23.6. Updating a package to a newer version</a></span></dt> 8783<dt><span class="sect1"><a href="#updating-package">23.6. Updating a package to a newer version</a></span></dt>
8784<dt><span class="sect1"><a href="#renaming-package">23.7. Renaming a package in pkgsrc</a></span></dt> 8784<dt><span class="sect1"><a href="#renaming-package">23.7. Renaming a package in pkgsrc</a></span></dt>
8785<dt><span class="sect1"><a href="#moving-package">23.8. Moving a package in pkgsrc</a></span></dt> 8785<dt><span class="sect1"><a href="#moving-package">23.8. Moving a package in pkgsrc</a></span></dt>
8786</dl> 8786</dl>
8787</div> 8787</div>
8788<div class="sect1"> 8788<div class="sect1">
8789<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8789<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8790<a name="submitting-binary-packages"></a>23.1. Submitting binary packages</h2></div></div></div> 8790<a name="submitting-binary-packages"></a>23.1. Submitting binary packages</h2></div></div></div>
8791<p>Our policy is that we accept binaries only from pkgsrc 8791<p>Our policy is that we accept binaries only from pkgsrc
8792 developers to guarantee that the packages don't contain any 8792 developers to guarantee that the packages don't contain any
8793 trojan horses etc. This is not to annoy anyone but rather to 8793 trojan horses etc. This is not to annoy anyone but rather to
8794 protect our users! You're still free to put up your home-made 8794 protect our users! You're still free to put up your home-made
8795 binary packages and tell the world where to get them. NetBSD 8795 binary packages and tell the world where to get them. NetBSD
8796 developers doing bulk builds and wanting to upload them please 8796 developers doing bulk builds and wanting to upload them please
8797 see <a class="xref" href="#bulk" title="Chapter 8. Creating binary packages for everything in pkgsrc (bulk builds)">Chapter 8, <i>Creating binary packages for everything in pkgsrc (bulk 8797 see <a class="xref" href="#bulk" title="Chapter 8. Creating binary packages for everything in pkgsrc (bulk builds)">Chapter 8, <i>Creating binary packages for everything in pkgsrc (bulk
8798builds)</i></a>.</p> 8798builds)</i></a>.</p>
8799</div> 8799</div>
8800<div class="sect1"> 8800<div class="sect1">
8801<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8801<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8802<a name="submitting-your-package"></a>23.2. Submitting source packages (for non-NetBSD-developers)</h2></div></div></div> 8802<a name="submitting-your-package"></a>23.2. Submitting source packages (for non-NetBSD-developers)</h2></div></div></div>
8803<p>First, check that your package is complete, compiles and 8803<p>First, check that your package is complete, compiles and
8804 runs well; see <a class="xref" href="#debug" title="Chapter 22. Debugging">Chapter 22, <i>Debugging</i></a> and the rest of this 8804 runs well; see <a class="xref" href="#debug" title="Chapter 22. Debugging">Chapter 22, <i>Debugging</i></a> and the rest of this
8805 document. Next, generate an uuencoded gzipped <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?tar+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">tar</span>(1)</span></a> 8805 document. Next, generate an uuencoded gzipped <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?tar+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">tar</span>(1)</span></a>
8806 archive that contains all files that make up the package. 8806 archive that contains all files that make up the package.
8807 Finally, send this package to the pkgsrc bug tracking system, 8807 Finally, send this package to the pkgsrc bug tracking system,
8808 either with the <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?send-pr+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">send-pr</span>(1)</span></a> command, or if you don't have 8808 either with the <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?send-pr+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">send-pr</span>(1)</span></a> command, or if you don't have
8809 that, go to the web page 8809 that, go to the web page
8810 <a class="ulink" href="http://www.NetBSD.org/support/send-pr.html" target="_top">http://www.NetBSD.org/support/send-pr.html</a>, 8810 <a class="ulink" href="http://www.NetBSD.org/support/send-pr.html" target="_top">http://www.NetBSD.org/support/send-pr.html</a>,
8811 which contains some instructions and a link to a form where you 8811 which contains some instructions and a link to a form where you
8812 can submit packages. The 8812 can submit packages. The
8813 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/sysutils/gtk-send-pr/README.html" target="_top"><code class="filename">sysutils/gtk-send-pr</code></a> package is 8813 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/sysutils/gtk-send-pr/README.html" target="_top"><code class="filename">sysutils/gtk-send-pr</code></a> package is
8814 also available as a substitute for either of the above two tools. 8814 also available as a substitute for either of the above two tools.
8815 </p> 8815 </p>
8816<p>In the form of the problem report, the category should be 8816<p>In the form of the problem report, the category should be
8817 <span class="quote">&#8220;<span class="quote">pkg</span>&#8221;</span>, the synopsis should include the package name 8817 <span class="quote">&#8220;<span class="quote">pkg</span>&#8221;</span>, the synopsis should include the package name
8818 and version number, and the description field should contain a 8818 and version number, and the description field should contain a
8819 short description of your package (contents of the COMMENT 8819 short description of your package (contents of the COMMENT
8820 variable or DESCR file are OK). The uuencoded package data should 8820 variable or DESCR file are OK). The uuencoded package data should
8821 go into the <span class="quote">&#8220;<span class="quote">fix</span>&#8221;</span> field.</p> 8821 go into the <span class="quote">&#8220;<span class="quote">fix</span>&#8221;</span> field.</p>
8822<p>If you want to submit several packages, please send a 8822<p>If you want to submit several packages, please send a
8823 separate PR for each one, it's easier for us to track things 8823 separate PR for each one, it's easier for us to track things
8824 that way.</p> 8824 that way.</p>
8825<p>Alternatively, you can also import new packages into 8825<p>Alternatively, you can also import new packages into
8826 pkgsrc-wip (<span class="quote">&#8220;<span class="quote">pkgsrc work-in-progress</span>&#8221;</span>); see the 8826 pkgsrc-wip (<span class="quote">&#8220;<span class="quote">pkgsrc work-in-progress</span>&#8221;</span>); see the
8827 homepage at <a class="ulink" href="http://pkgsrc.org/wip/" target="_top">http://pkgsrc.org/wip/</a> 8827 homepage at <a class="ulink" href="http://pkgsrc.org/wip/" target="_top">http://pkgsrc.org/wip/</a>
8828 for details.</p> 8828 for details.</p>
8829</div> 8829</div>
8830<div class="sect1"> 8830<div class="sect1">
8831<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8831<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8832<a name="general-notes-for-changes"></a>23.3. General notes when adding, updating, or removing packages</h2></div></div></div> 8832<a name="general-notes-for-changes"></a>23.3. General notes when adding, updating, or removing packages</h2></div></div></div>
8833<p>Please note all package additions, updates, moves, and 8833<p>Please note all package additions, updates, moves, and
8834 removals in <code class="filename">pkgsrc/doc/CHANGES-<em class="replaceable"><code>YYYY</code></em></code>. It's very 8834 removals in <code class="filename">pkgsrc/doc/CHANGES-<em class="replaceable"><code>YYYY</code></em></code>. It's very
8835 important to keep this file up to date and conforming to the 8835 important to keep this file up to date and conforming to the
8836 existing format, because it will be used by scripts to 8836 existing format, because it will be used by scripts to
8837 automatically update pages on <a class="ulink" href="http://www.NetBSD.org/" target="_top">www.NetBSD.org</a> and other 8837 automatically update pages on <a class="ulink" href="http://www.NetBSD.org/" target="_top">www.NetBSD.org</a> and other
8838 sites. Additionally, check the 8838 sites. Additionally, check the
8839 <code class="filename">pkgsrc/doc/TODO</code> file and remove the entry 8839 <code class="filename">pkgsrc/doc/TODO</code> file and remove the entry
8840 for the package you updated or removed, in case it was mentioned 8840 for the package you updated or removed, in case it was mentioned
8841 there.</p> 8841 there.</p>
8842<p>When the <code class="varname">PKGREVISION</code> of a package is 8842<p>When the <code class="varname">PKGREVISION</code> of a package is
8843 bumped, the change should appear in 8843 bumped, the change should appear in
8844 <code class="filename">pkgsrc/doc/CHANGES-<em class="replaceable"><code>YYYY</code></em></code> if it is security 8844 <code class="filename">pkgsrc/doc/CHANGES-<em class="replaceable"><code>YYYY</code></em></code> if it is security
8845 related or otherwise relevant. Mass bumps that result from a 8845 related or otherwise relevant. Mass bumps that result from a
8846 dependency being updated should not be mentioned. In all other 8846 dependency being updated should not be mentioned. In all other
8847 cases it's the developer's decision.</p> 8847 cases it's the developer's decision.</p>
8848<p>There is a make target that helps in creating proper 8848<p>There is a make target that helps in creating proper
8849 <code class="filename">CHANGES-<em class="replaceable"><code>YYYY</code></em></code> entries: <span class="command"><strong>make 8849 <code class="filename">CHANGES-<em class="replaceable"><code>YYYY</code></em></code> entries: <span class="command"><strong>make
8850 changes-entry</strong></span>. It uses the optional <code class="varname">CTYPE</code> 8850 changes-entry</strong></span>. It uses the optional <code class="varname">CTYPE</code>
8851 and <code class="varname">NETBSD_LOGIN_NAME</code> variables. The general 8851 and <code class="varname">NETBSD_LOGIN_NAME</code> variables. The general
8852 usage is to first make sure that your <code class="filename">CHANGES-<em class="replaceable"><code>YYYY</code></em></code> 8852 usage is to first make sure that your <code class="filename">CHANGES-<em class="replaceable"><code>YYYY</code></em></code>
8853 file is up-to-date (to avoid having to resolve conflicts later-on) 8853 file is up-to-date (to avoid having to resolve conflicts later-on)
8854 and then to <span class="command"><strong>cd</strong></span> to the package directory. For 8854 and then to <span class="command"><strong>cd</strong></span> to the package directory. For
8855 package updates, <span class="command"><strong>make changes-entry</strong></span> is enough. 8855 package updates, <span class="command"><strong>make changes-entry</strong></span> is enough.
8856 For new packages, or package moves or removals, set the 8856 For new packages, or package moves or removals, set the
8857 <code class="varname">CTYPE</code> variable on the command line to "Added", 8857 <code class="varname">CTYPE</code> variable on the command line to "Added",
8858 "Moved", or "Removed". You can set <code class="varname">NETBSD_LOGIN_NAME</code> 8858 "Moved", or "Removed". You can set <code class="varname">NETBSD_LOGIN_NAME</code>
8859 in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> if your local login name is 8859 in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> if your local login name is
8860 not the same as your NetBSD login name. The target also automatically 8860 not the same as your NetBSD login name. The target also automatically
8861 removes possibly existing entries for the package in the 8861 removes possibly existing entries for the package in the
8862 <code class="filename">TODO</code> file. Don't forget to commit 8862 <code class="filename">TODO</code> file. Don't forget to commit
8863 the changes, e.g. by using <span class="command"><strong>make commit-changes-entry</strong></span>! 8863 the changes, e.g. by using <span class="command"><strong>make commit-changes-entry</strong></span>!
8864 If you are not using a checkout directly from cvs.NetBSD.org, but e.g. 8864 If you are not using a checkout directly from cvs.NetBSD.org, but e.g.
8865 a local copy of the repository, you can set USE_NETBSD_REPO=yes. This 8865 a local copy of the repository, you can set USE_NETBSD_REPO=yes. This
8866 makes the cvs commands use the main repository. 8866 makes the cvs commands use the main repository.
8867 </p> 8867 </p>
8868</div> 8868</div>
8869<div class="sect1"> 8869<div class="sect1">
8870<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8870<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8871<a name="commit-messages"></a>23.4. Commit Messages</h2></div></div></div> 8871<a name="commit-messages"></a>23.4. Commit Messages</h2></div></div></div>
8872<p>For several years, there have been mirrors of pkgsrc in 8872<p>For several years, there have been mirrors of pkgsrc in
8873 fossil, git, and hg. Standard practise when using these tools is to 8873 fossil, git, and hg. Standard practise when using these tools is to
8874 make the first line of a commit message function as a summary that 8874 make the first line of a commit message function as a summary that
8875 can be read without the rest, such as is commonly done with "git log 8875 can be read without the rest, such as is commonly done with "git log
8876 --oneline". For this reason, we have the following guidelines for 8876 --oneline". For this reason, we have the following guidelines for
8877 pkgsrc commit messages:</p> 8877 pkgsrc commit messages:</p>
8878<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 8878<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
8879<li class="listitem"><p>Start the commit message with a line that explains the 8879<li class="listitem"><p>Start the commit message with a line that explains the
8880 big picture in 65 characters or less. When a commit is for one 8880 big picture in 65 characters or less. When a commit is for one
8881 package, include the name of the package. For updates, include the 8881 package, include the name of the package. For updates, include the
8882 version to which it is updated.</p></li> 8882 version to which it is updated.</p></li>
8883<li class="listitem"><p>Leave the next line empty.</p></li> 8883<li class="listitem"><p>Leave the next line empty.</p></li>
8884<li class="listitem"><p>Then come the details for the commit (changes in that 8884<li class="listitem"><p>Then come the details for the commit (changes in that
8885 package, reason for a change) and any relevant PRs. Wrap this 8885 package, reason for a change) and any relevant PRs. Wrap this
8886 section.</p></li> 8886 section.</p></li>
8887</ul></div> 8887</ul></div>
8888<p>Here is an example: 8888<p>Here is an example:
8889 </p> 8889 </p>
8890<pre class="programlisting"> 8890<pre class="programlisting">
8891 libxslt: update to 1.0.30 8891 libxslt: update to 1.0.30
8892 8892
8893 Changes since 1.0.29: 8893 Changes since 1.0.29:
8894 ... 8894 ...
8895 </pre> 8895 </pre>
8896<p> 8896<p>
8897 </p> 8897 </p>
8898<p>Here is another example: 8898<p>Here is another example:
8899 </p> 8899 </p>
8900<pre class="programlisting"> 8900<pre class="programlisting">
8901 mk/bsd.pkg.mk: enable SSP by default on NetBSD 8901 mk/bsd.pkg.mk: enable SSP by default on NetBSD
8902 8902
8903 (rationale) 8903 (rationale)
8904 </pre> 8904 </pre>
8905<p> 8905<p>
8906 </p> 8906 </p>
8907<p>Commit messages are final: no <span class="quote">&#8220;<span class="quote">cvs admin</span>&#8221;</span> is 8907<p>Commit messages are final: no <span class="quote">&#8220;<span class="quote">cvs admin</span>&#8221;</span> is
8908 allowed on the pkgsrc repository to change commit messages.</p> 8908 allowed on the pkgsrc repository to change commit messages.</p>
8909</div> 8909</div>
8910<div class="sect1"> 8910<div class="sect1">
8911<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8911<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8912<a name="committing-importing"></a>23.5. Committing: Adding a package to CVS</h2></div></div></div> 8912<a name="committing-importing"></a>23.5. Committing: Adding a package to CVS</h2></div></div></div>
8913<p>This section is only of interest for pkgsrc developers with write 8913<p>This section is only of interest for pkgsrc developers with write
8914 access to the pkgsrc repository.</p> 8914 access to the pkgsrc repository.</p>
8915<p>When the package is finished, <span class="quote">&#8220;<span class="quote">cvs add</span>&#8221;</span> the files. 8915<p>When the package is finished, <span class="quote">&#8220;<span class="quote">cvs add</span>&#8221;</span> the files.
8916Start by adding the directory and then files in the directory. Don't 8916Start by adding the directory and then files in the directory. Don't
8917forget to add the new package to the category's 8917forget to add the new package to the category's
8918<code class="filename">Makefile</code>. Make sure you don't forget any files; 8918<code class="filename">Makefile</code>. Make sure you don't forget any files;
8919you can check by running <span class="quote">&#8220;<span class="quote">cvs status</span>&#8221;</span>. An example:</p> 8919you can check by running <span class="quote">&#8220;<span class="quote">cvs status</span>&#8221;</span>. An example:</p>
8920<pre class="programlisting"> 8920<pre class="programlisting">
8921<code class="prompt">$</code> cd .../pkgsrc/category 8921<code class="prompt">$</code> cd .../pkgsrc/category
8922<code class="prompt">$</code> cvs add pkgname 8922<code class="prompt">$</code> cvs add pkgname
8923<code class="prompt">$</code> cd pkgname 8923<code class="prompt">$</code> cd pkgname
8924<code class="prompt">$</code> cvs add DESCR Makefile PLIST distinfo buildlink3.mk patches 8924<code class="prompt">$</code> cvs add DESCR Makefile PLIST distinfo buildlink3.mk patches
8925<code class="prompt">$</code> cvs add patches/p* 8925<code class="prompt">$</code> cvs add patches/p*
8926<code class="prompt">$</code> cvs status | less 8926<code class="prompt">$</code> cvs status | less
8927<code class="prompt">$</code> cvs commit 8927<code class="prompt">$</code> cvs commit
8928<code class="prompt">$</code> cd .. 8928<code class="prompt">$</code> cd ..
8929<code class="prompt">$</code> vi Makefile # add SUBDIRS+=pkgname line 8929<code class="prompt">$</code> vi Makefile # add SUBDIRS+=pkgname line
8930<code class="prompt">$</code> cvs commit Makefile 8930<code class="prompt">$</code> cvs commit Makefile
8931<code class="prompt">$</code> cd pkgname 8931<code class="prompt">$</code> cd pkgname
8932<code class="prompt">$</code> make CTYPE=Added commit-changes-entry 8932<code class="prompt">$</code> make CTYPE=Added commit-changes-entry
8933</pre> 8933</pre>
8934<p>The commit message of the initial import should include part of the 8934<p>The commit message of the initial import should include part of the
8935 <code class="filename">DESCR</code> file, so people reading the mailing lists know 8935 <code class="filename">DESCR</code> file, so people reading the mailing lists know
8936 what the package is/does.</p> 8936 what the package is/does.</p>
8937<p>Also mention the new package in 8937<p>Also mention the new package in
8938<code class="filename">pkgsrc/doc/CHANGES-20xx</code>.</p> 8938<code class="filename">pkgsrc/doc/CHANGES-20xx</code>.</p>
8939<p>Previously, <span class="quote">&#8220;<span class="quote">cvs import</span>&#8221;</span> was suggested, but it was 8939<p>Previously, <span class="quote">&#8220;<span class="quote">cvs import</span>&#8221;</span> was suggested, but it was
8940much easier to get wrong than <span class="quote">&#8220;<span class="quote">cvs add</span>&#8221;</span>.</p> 8940much easier to get wrong than <span class="quote">&#8220;<span class="quote">cvs add</span>&#8221;</span>.</p>
8941</div> 8941</div>
8942<div class="sect1"> 8942<div class="sect1">
8943<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8943<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8944<a name="updating-package"></a>23.6. Updating a package to a newer version</h2></div></div></div> 8944<a name="updating-package"></a>23.6. Updating a package to a newer version</h2></div></div></div>
8945<p>Please always put a concise, appropriate and relevant summary of the 8945<p>Please always put a concise, appropriate and relevant summary of the
8946 changes between old and new versions into the commit log when updating 8946 changes between old and new versions into the commit log when updating
8947 a package. There are various reasons for this:</p> 8947 a package. There are various reasons for this:</p>
8948<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 8948<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
8949<li class="listitem"><p>A URL is volatile, and can change over time. It may go away completely 8949<li class="listitem"><p>A URL is volatile, and can change over time. It may go away completely
8950 or its information may be overwritten by newer information.</p></li> 8950 or its information may be overwritten by newer information.</p></li>
8951<li class="listitem"><p>Having the change information between old and new versions in our CVS 8951<li class="listitem"><p>Having the change information between old and new versions in our CVS
8952 repository is very useful for people who use either cvs or anoncvs.</p></li> 8952 repository is very useful for people who use either cvs or anoncvs.</p></li>
8953<li class="listitem"><p>Having the change information between old and new versions in our CVS 8953<li class="listitem"><p>Having the change information between old and new versions in our CVS
8954 repository is very useful for people who read the pkgsrc-changes mailing 8954 repository is very useful for people who read the pkgsrc-changes mailing
8955 list, so that they can make tactical decisions about when to upgrade 8955 list, so that they can make tactical decisions about when to upgrade
8956 the package.</p></li> 8956 the package.</p></li>
8957</ul></div> 8957</ul></div>
8958<p>Please also recognize that, just because a new version of a package 8958<p>Please also recognize that, just because a new version of a package
8959 has been released, it should not automatically be upgraded in the CVS 8959 has been released, it should not automatically be upgraded in the CVS
8960 repository. We prefer to be conservative in the packages that are 8960 repository. We prefer to be conservative in the packages that are
8961 included in pkgsrc - development or beta packages are not really the 8961 included in pkgsrc - development or beta packages are not really the
8962 best thing for most places in which pkgsrc is used. Please use your 8962 best thing for most places in which pkgsrc is used. Please use your
8963 judgement about what should go into pkgsrc, and bear in mind that 8963 judgement about what should go into pkgsrc, and bear in mind that
8964 stability is to be preferred above new and possibly untested features.</p> 8964 stability is to be preferred above new and possibly untested features.</p>
8965</div> 8965</div>
8966<div class="sect1"> 8966<div class="sect1">
8967<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8967<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8968<a name="renaming-package"></a>23.7. Renaming a package in pkgsrc</h2></div></div></div> 8968<a name="renaming-package"></a>23.7. Renaming a package in pkgsrc</h2></div></div></div>
8969<p>Renaming packages is not recommended.</p> 8969<p>Renaming packages is not recommended.</p>
8970<p>When renaming packages, be sure to fix any references to old name 8970<p>When renaming packages, be sure to fix any references to old name
8971 in other Makefiles, options, buildlink files, etc.</p> 8971 in other Makefiles, options, buildlink files, etc.</p>
8972<p> 8972<p>
8973 Also when renaming a package, please add 8973 Also when renaming a package, please add
8974 the package name and version pattern(s) of the previous package 8974 the package name and version pattern(s) of the previous package
8975 to <code class="varname">SUPERSEDES</code>. 8975 to <code class="varname">SUPERSEDES</code>.
8976 This may be repeated for multiple renames. 8976 This may be repeated for multiple renames.
8977 The new package would be an exact replacement. 8977 The new package would be an exact replacement.
8978 Example: 8978 Example:
8979</p> 8979</p>
8980<pre class="programlisting"> 8980<pre class="programlisting">
8981SUPERSEDES+= p5-IO-Compress-Zlib&lt;2.017 8981SUPERSEDES+= p5-IO-Compress-Zlib&lt;2.017
8982SUPERSEDES+= optcomp-[0-9]* 8982SUPERSEDES+= optcomp-[0-9]*
8983</pre> 8983</pre>
8984<p>Note that <span class="quote">&#8220;<span class="quote">successor</span>&#8221;</span> in the 8984<p>Note that <span class="quote">&#8220;<span class="quote">successor</span>&#8221;</span> in the
8985 CHANGES-<em class="replaceable"><code>YYYY</code></em> file doesn't necessarily 8985 CHANGES-<em class="replaceable"><code>YYYY</code></em> file doesn't necessarily
8986 mean that it <span class="emphasis"><em>supersedes</em></span>, as that successor may 8986 mean that it <span class="emphasis"><em>supersedes</em></span>, as that successor may
8987 not be an exact replacement but is a suggestion for the replaced 8987 not be an exact replacement but is a suggestion for the replaced
8988 functionality.</p> 8988 functionality.</p>
8989</div> 8989</div>
8990<div class="sect1"> 8990<div class="sect1">
8991<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 8991<div class="titlepage"><div><div><h2 class="title" style="clear: both">
8992<a name="moving-package"></a>23.8. Moving a package in pkgsrc</h2></div></div></div> 8992<a name="moving-package"></a>23.8. Moving a package in pkgsrc</h2></div></div></div>
8993<p>It is preferred that packages are not renamed or moved, but if needed 8993<p>It is preferred that packages are not renamed or moved, but if needed
8994 please follow these steps. 8994 please follow these steps.
8995</p> 8995</p>
8996<div class="orderedlist"><ol class="orderedlist" type="1"> 8996<div class="orderedlist"><ol class="orderedlist" type="1">
8997<li class="listitem"><p>Make a copy of the directory somewhere else.</p></li> 8997<li class="listitem"><p>Make a copy of the directory somewhere else.</p></li>
8998<li class="listitem"> 8998<li class="listitem">
8999<p>Remove all CVS dirs.</p> 8999<p>Remove all CVS dirs.</p>
9000<p>Alternatively to the first two steps you can also do:</p> 9000<p>Alternatively to the first two steps you can also do:</p>
9001<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cvs -d user@cvs.NetBSD.org:/cvsroot export -D today pkgsrc/category/package</code></strong></pre> 9001<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cvs -d user@cvs.NetBSD.org:/cvsroot export -D today pkgsrc/category/package</code></strong></pre>
9002<p>and use that for further work.</p> 9002<p>and use that for further work.</p>
9003</li> 9003</li>
9004<li class="listitem"><p>Fix <code class="varname">CATEGORIES</code> and any 9004<li class="listitem"><p>Fix <code class="varname">CATEGORIES</code> and any
9005<code class="varname">DEPENDS</code> paths that just did <span class="quote">&#8220;<span class="quote">../package</span>&#8221;</span> 9005<code class="varname">DEPENDS</code> paths that just did <span class="quote">&#8220;<span class="quote">../package</span>&#8221;</span>
9006instead of <span class="quote">&#8220;<span class="quote">../../category/package</span>&#8221;</span>.</p></li> 9006instead of <span class="quote">&#8220;<span class="quote">../../category/package</span>&#8221;</span>.</p></li>
9007<li class="listitem"><p>In the modified package's Makefile, consider setting 9007<li class="listitem"><p>In the modified package's Makefile, consider setting
9008<code class="varname">PREV_PKGPATH</code> to the previous category/package 9008<code class="varname">PREV_PKGPATH</code> to the previous category/package
9009pathname. The <code class="varname">PREV_PKGPATH</code> can be used by tools 9009pathname. The <code class="varname">PREV_PKGPATH</code> can be used by tools
9010for doing an update using pkgsrc building; for example, it can 9010for doing an update using pkgsrc building; for example, it can
9011search the <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?pkg_summary+5.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">pkg_summary</span>(5)</span></a> database for <code class="varname">PREV_PKGPATH</code> 9011search the <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?pkg_summary+5.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">pkg_summary</span>(5)</span></a> database for <code class="varname">PREV_PKGPATH</code>
9012(if no <code class="varname">SUPERSEDES</code>) and then use the corresponding 9012(if no <code class="varname">SUPERSEDES</code>) and then use the corresponding
9013new <code class="varname">PKGPATH</code> for that moved package. Note that 9013new <code class="varname">PKGPATH</code> for that moved package. Note that
9014it may have multiple matches, so the tool should also check on the 9014it may have multiple matches, so the tool should also check on the
9015<code class="varname">PKGBASE</code> too. The <code class="varname">PREV_PKGPATH</code> 9015<code class="varname">PKGBASE</code> too. The <code class="varname">PREV_PKGPATH</code>
9016probably has no value unless <code class="varname">SUPERSEDES</code> is not 9016probably has no value unless <code class="varname">SUPERSEDES</code> is not
9017set, i.e. <code class="varname">PKGBASE</code> stays the same. </p></li> 9017set, i.e. <code class="varname">PKGBASE</code> stays the same. </p></li>
9018<li class="listitem"><p><span class="command"><strong>cvs import</strong></span> the modified package in the new 9018<li class="listitem"><p><span class="command"><strong>cvs import</strong></span> the modified package in the new
9019place.</p></li> 9019place.</p></li>
9020<li class="listitem"> 9020<li class="listitem">
9021<p>Check if any package depends on it: 9021<p>Check if any package depends on it:
9022</p> 9022</p>
9023<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cd /usr/pkgsrc</code></strong> 9023<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cd /usr/pkgsrc</code></strong>
9024<code class="prompt">%</code> <strong class="userinput"><code>grep /package */*/Makefile* */*/buildlink*</code></strong></pre> 9024<code class="prompt">%</code> <strong class="userinput"><code>grep /package */*/Makefile* */*/buildlink*</code></strong></pre>
9025</li> 9025</li>
9026<li class="listitem"><p>Fix paths in packages from step 5 to point to new location.</p></li> 9026<li class="listitem"><p>Fix paths in packages from step 5 to point to new location.</p></li>
9027<li class="listitem"><p><span class="command"><strong>cvs rm (-f)</strong></span> the package at the old location.</p></li> 9027<li class="listitem"><p><span class="command"><strong>cvs rm (-f)</strong></span> the package at the old location.</p></li>
9028<li class="listitem"><p>Remove from <code class="filename">oldcategory/Makefile</code>.</p></li> 9028<li class="listitem"><p>Remove from <code class="filename">oldcategory/Makefile</code>.</p></li>
9029<li class="listitem"><p>Add to <code class="filename">newcategory/Makefile</code>.</p></li> 9029<li class="listitem"><p>Add to <code class="filename">newcategory/Makefile</code>.</p></li>
9030<li class="listitem"> 9030<li class="listitem">
9031<p>Commit the changed and removed files:</p> 9031<p>Commit the changed and removed files:</p>
9032<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cvs commit oldcategory/package oldcategory/Makefile newcategory/Makefile</code></strong></pre> 9032<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cvs commit oldcategory/package oldcategory/Makefile newcategory/Makefile</code></strong></pre>
9033<p>(and any packages from step 5, of course).</p> 9033<p>(and any packages from step 5, of course).</p>
9034</li> 9034</li>
9035</ol></div> 9035</ol></div>
9036</div> 9036</div>
9037</div> 9037</div>
9038<div class="chapter"> 9038<div class="chapter">
9039<div class="titlepage"><div><div><h2 class="title"> 9039<div class="titlepage"><div><div><h2 class="title">
9040<a name="devfaq"></a>Chapter 24. Frequently Asked Questions</h2></div></div></div> 9040<a name="devfaq"></a>Chapter 24. Frequently Asked Questions</h2></div></div></div>
9041<p>This section contains the answers to questions that may 9041<p>This section contains the answers to questions that may
9042 arise when you are writing a package. If you don't find your 9042 arise when you are writing a package. If you don't find your
9043 question answered here, first have a look in the other chapters, 9043 question answered here, first have a look in the other chapters,
9044 and if you still don't have the answer, ask on the 9044 and if you still don't have the answer, ask on the
9045 <code class="literal">pkgsrc-users</code> mailing list.</p> 9045 <code class="literal">pkgsrc-users</code> mailing list.</p>
9046<div class="qandaset"> 9046<div class="qandaset">
9047<a name="idm81678864"></a><dl> 9047<a name="idm79478288"></a><dl>
9048<dt>24.1. <a href="#devfaq.makeflags">What is the difference between 9048<dt>24.1. <a href="#devfaq.makeflags">What is the difference between
9049 MAKEFLAGS, .MAKEFLAGS and 9049 MAKEFLAGS, .MAKEFLAGS and
9050 MAKE_FLAGS?</a> 9050 MAKE_FLAGS?</a>
9051</dt> 9051</dt>
9052<dt>24.2. <a href="#devfaq.make">What is the difference between 9052<dt>24.2. <a href="#devfaq.make">What is the difference between
9053 MAKE, GMAKE and 9053 MAKE, GMAKE and
9054 MAKE_PROGRAM?</a> 9054 MAKE_PROGRAM?</a>
9055</dt> 9055</dt>
9056<dt>24.3. <a href="#devfaq.cc">What is the difference between 9056<dt>24.3. <a href="#devfaq.cc">What is the difference between
9057 CC, PKG_CC and 9057 CC, PKG_CC and
9058 PKGSRC_COMPILER?</a> 9058 PKGSRC_COMPILER?</a>
9059</dt> 9059</dt>
9060<dt>24.4. <a href="#devfaq.bl3flags">What is the difference between 9060<dt>24.4. <a href="#devfaq.bl3flags">What is the difference between
9061 BUILDLINK_LDFLAGS, 9061 BUILDLINK_LDFLAGS,
9062 BUILDLINK_LDADD and 9062 BUILDLINK_LDADD and
9063 BUILDLINK_LIBS?</a> 9063 BUILDLINK_LIBS?</a>
9064</dt> 9064</dt>
9065<dt>24.5. <a href="#devfaq.bl3prefix">Why does make show-var 9065<dt>24.5. <a href="#devfaq.bl3prefix">Why does make show-var
9066 VARNAME=BUILDLINK_PREFIX.foo 9066 VARNAME=BUILDLINK_PREFIX.foo
9067 say it's empty?</a> 9067 say it's empty?</a>
9068</dt> 9068</dt>
9069<dt>24.6. <a href="#devfaq.master_sites">What does 9069<dt>24.6. <a href="#devfaq.master_sites">What does
9070 ${MASTER_SITE_SOURCEFORGE:=package/} mean? I 9070 ${MASTER_SITE_SOURCEFORGE:=package/} mean? I
9071 don't understand the := inside 9071 don't understand the := inside
9072 it.</a> 9072 it.</a>
9073</dt> 9073</dt>
9074<dt>24.7. <a href="#devfaq.mailinglists">Which mailing lists are there for package 9074<dt>24.7. <a href="#devfaq.mailinglists">Which mailing lists are there for package
9075 developers?</a> 9075 developers?</a>
9076</dt> 9076</dt>
9077<dt>24.8. <a href="#devfaq.documentation">Where is the pkgsrc 9077<dt>24.8. <a href="#devfaq.documentation">Where is the pkgsrc
9078 documentation?</a> 9078 documentation?</a>
9079</dt> 9079</dt>
9080<dt>24.9. <a href="#devfaq.too-much-time">I have a little time to kill. What shall I 9080<dt>24.9. <a href="#devfaq.too-much-time">I have a little time to kill. What shall I
9081do?</a> 9081do?</a>
9082</dt> 9082</dt>
9083</dl> 9083</dl>
9084<table border="0" style="width: 100%;"> 9084<table border="0" style="width: 100%;">
9085<colgroup> 9085<colgroup>
9086<col align="left" width="1%"> 9086<col align="left" width="1%">
9087<col> 9087<col>
9088</colgroup> 9088</colgroup>
9089<tbody> 9089<tbody>
9090<tr class="question"> 9090<tr class="question">
9091<td align="left" valign="top"> 9091<td align="left" valign="top">
9092<a name="devfaq.makeflags"></a><a name="idm81678480"></a><p><b>24.1.</b></p> 9092<a name="devfaq.makeflags"></a><a name="idm79477904"></a><p><b>24.1.</b></p>
9093</td> 9093</td>
9094<td align="left" valign="top"><p>What is the difference between 9094<td align="left" valign="top"><p>What is the difference between
9095 <code class="varname">MAKEFLAGS</code>, <code class="varname">.MAKEFLAGS</code> and 9095 <code class="varname">MAKEFLAGS</code>, <code class="varname">.MAKEFLAGS</code> and
9096 <code class="varname">MAKE_FLAGS</code>?</p></td> 9096 <code class="varname">MAKE_FLAGS</code>?</p></td>
9097</tr> 9097</tr>
9098<tr class="answer"> 9098<tr class="answer">
9099<td align="left" valign="top"></td> 9099<td align="left" valign="top"></td>
9100<td align="left" valign="top"><p><code class="varname">MAKEFLAGS</code> are the flags passed 9100<td align="left" valign="top"><p><code class="varname">MAKEFLAGS</code> are the flags passed
9101 to the pkgsrc-internal invocations of <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?make+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">make</span>(1)</span></a>, while 9101 to the pkgsrc-internal invocations of <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?make+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">make</span>(1)</span></a>, while
9102 <code class="varname">MAKE_FLAGS</code> are the flags that are passed to 9102 <code class="varname">MAKE_FLAGS</code> are the flags that are passed to
9103 the <code class="varname">MAKE_PROGRAM</code> when building the 9103 the <code class="varname">MAKE_PROGRAM</code> when building the
9104 package. [FIXME: What is .MAKEFLAGS for?]</p></td> 9104 package. [FIXME: What is .MAKEFLAGS for?]</p></td>
9105</tr> 9105</tr>
9106<tr class="question"> 9106<tr class="question">
9107<td align="left" valign="top"> 9107<td align="left" valign="top">
9108<a name="devfaq.make"></a><a name="idm81674512"></a><p><b>24.2.</b></p> 9108<a name="devfaq.make"></a><a name="idm79473936"></a><p><b>24.2.</b></p>
9109</td> 9109</td>
9110<td align="left" valign="top"><p>What is the difference between 9110<td align="left" valign="top"><p>What is the difference between
9111 <code class="varname">MAKE</code>, <code class="varname">GMAKE</code> and 9111 <code class="varname">MAKE</code>, <code class="varname">GMAKE</code> and
9112 <code class="varname">MAKE_PROGRAM</code>?</p></td> 9112 <code class="varname">MAKE_PROGRAM</code>?</p></td>
9113</tr> 9113</tr>
9114<tr class="answer"> 9114<tr class="answer">
9115<td align="left" valign="top"></td> 9115<td align="left" valign="top"></td>
9116<td align="left" valign="top"><p><code class="varname">MAKE</code> is the path to the 9116<td align="left" valign="top"><p><code class="varname">MAKE</code> is the path to the
9117 <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?make+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">make</span>(1)</span></a> program that is used in the pkgsrc 9117 <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?make+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">make</span>(1)</span></a> program that is used in the pkgsrc
9118 infrastructure. <code class="varname">GMAKE</code> is the path to GNU 9118 infrastructure. <code class="varname">GMAKE</code> is the path to GNU
9119 Make, but you need to say <code class="varname">USE_TOOLS+=gmake</code> to 9119 Make, but you need to say <code class="varname">USE_TOOLS+=gmake</code> to
9120 use that. <code class="varname">MAKE_PROGRAM</code> is the path to the 9120 use that. <code class="varname">MAKE_PROGRAM</code> is the path to the
9121 Make program that is used for building the 9121 Make program that is used for building the
9122 package.</p></td> 9122 package.</p></td>
9123</tr> 9123</tr>
9124<tr class="question"> 9124<tr class="question">
9125<td align="left" valign="top"> 9125<td align="left" valign="top">
9126<a name="devfaq.cc"></a><a name="idm81670032"></a><p><b>24.3.</b></p> 9126<a name="devfaq.cc"></a><a name="idm79469456"></a><p><b>24.3.</b></p>
9127</td> 9127</td>
9128<td align="left" valign="top"><p>What is the difference between 9128<td align="left" valign="top"><p>What is the difference between
9129 <code class="varname">CC</code>, <code class="varname">PKG_CC</code> and 9129 <code class="varname">CC</code>, <code class="varname">PKG_CC</code> and
9130 <code class="varname">PKGSRC_COMPILER</code>?</p></td> 9130 <code class="varname">PKGSRC_COMPILER</code>?</p></td>
9131</tr> 9131</tr>
9132<tr class="answer"> 9132<tr class="answer">
9133<td align="left" valign="top"></td> 9133<td align="left" valign="top"></td>
9134<td align="left" valign="top"><p><code class="varname">CC</code> is the path to the real C 9134<td align="left" valign="top"><p><code class="varname">CC</code> is the path to the real C
9135 compiler, which can be configured by the pkgsrc user. 9135 compiler, which can be configured by the pkgsrc user.
9136 <code class="varname">PKG_CC</code> is the path to the compiler wrapper. 9136 <code class="varname">PKG_CC</code> is the path to the compiler wrapper.
9137 <code class="varname">PKGSRC_COMPILER</code> is <span class="emphasis"><em>not</em></span> a 9137 <code class="varname">PKGSRC_COMPILER</code> is <span class="emphasis"><em>not</em></span> a
9138 path to a compiler, but the type of compiler that should be 9138 path to a compiler, but the type of compiler that should be
9139 used. See <code class="filename">mk/compiler.mk</code> for more 9139 used. See <code class="filename">mk/compiler.mk</code> for more
9140 information about the latter variable.</p></td> 9140 information about the latter variable.</p></td>
9141</tr> 9141</tr>
9142<tr class="question"> 9142<tr class="question">
9143<td align="left" valign="top"> 9143<td align="left" valign="top">
9144<a name="devfaq.bl3flags"></a><a name="idm81665936"></a><p><b>24.4.</b></p> 9144<a name="devfaq.bl3flags"></a><a name="idm79465360"></a><p><b>24.4.</b></p>
9145</td> 9145</td>
9146<td align="left" valign="top"><p>What is the difference between 9146<td align="left" valign="top"><p>What is the difference between
9147 <code class="varname">BUILDLINK_LDFLAGS</code>, 9147 <code class="varname">BUILDLINK_LDFLAGS</code>,
9148 <code class="varname">BUILDLINK_LDADD</code> and 9148 <code class="varname">BUILDLINK_LDADD</code> and
9149 <code class="varname">BUILDLINK_LIBS</code>?</p></td> 9149 <code class="varname">BUILDLINK_LIBS</code>?</p></td>
9150</tr> 9150</tr>
9151<tr class="answer"> 9151<tr class="answer">
9152<td align="left" valign="top"></td> 9152<td align="left" valign="top"></td>
9153<td align="left" valign="top"><p>[FIXME]</p></td> 9153<td align="left" valign="top"><p>[FIXME]</p></td>
9154</tr> 9154</tr>
9155<tr class="question"> 9155<tr class="question">
9156<td align="left" valign="top"> 9156<td align="left" valign="top">
9157<a name="devfaq.bl3prefix"></a><a name="idm81663632"></a><p><b>24.5.</b></p> 9157<a name="devfaq.bl3prefix"></a><a name="idm79463184"></a><p><b>24.5.</b></p>
9158</td> 9158</td>
9159<td align="left" valign="top"><p>Why does <span class="command"><strong>make show-var 9159<td align="left" valign="top"><p>Why does <span class="command"><strong>make show-var
9160 VARNAME=BUILDLINK_PREFIX.<em class="replaceable"><code>foo</code></em></strong></span> 9160 VARNAME=BUILDLINK_PREFIX.<em class="replaceable"><code>foo</code></em></strong></span>
9161 say it's empty?</p></td> 9161 say it's empty?</p></td>
9162</tr> 9162</tr>
9163<tr class="answer"> 9163<tr class="answer">
9164<td align="left" valign="top"></td> 9164<td align="left" valign="top"></td>
9165<td align="left" valign="top"><p>For optimization reasons, some variables are only 9165<td align="left" valign="top"><p>For optimization reasons, some variables are only
9166 available in the <span class="quote">&#8220;<span class="quote">wrapper</span>&#8221;</span> phase and later. To 9166 available in the <span class="quote">&#8220;<span class="quote">wrapper</span>&#8221;</span> phase and later. To
9167 <span class="quote">&#8220;<span class="quote">simulate</span>&#8221;</span> the wrapper phase, append 9167 <span class="quote">&#8220;<span class="quote">simulate</span>&#8221;</span> the wrapper phase, append
9168 <span class="command"><strong>PKG_PHASE=wrapper</strong></span> to the above 9168 <span class="command"><strong>PKG_PHASE=wrapper</strong></span> to the above
9169 command.</p></td> 9169 command.</p></td>
9170</tr> 9170</tr>
9171<tr class="question"> 9171<tr class="question">
9172<td align="left" valign="top"> 9172<td align="left" valign="top">
9173<a name="devfaq.master_sites"></a><a name="idm81660560"></a><p><b>24.6.</b></p> 9173<a name="devfaq.master_sites"></a><a name="idm79451792"></a><p><b>24.6.</b></p>
9174</td> 9174</td>
9175<td align="left" valign="top"><p>What does 9175<td align="left" valign="top"><p>What does
9176 <code class="code">${MASTER_SITE_SOURCEFORGE:=package/}</code> mean? I 9176 <code class="code">${MASTER_SITE_SOURCEFORGE:=package/}</code> mean? I
9177 don't understand the <code class="code">:=</code> inside 9177 don't understand the <code class="code">:=</code> inside
9178 it.</p></td> 9178 it.</p></td>
9179</tr> 9179</tr>
9180<tr class="answer"> 9180<tr class="answer">
9181<td align="left" valign="top"></td> 9181<td align="left" valign="top"></td>
9182<td align="left" valign="top"><p>The <code class="code">:=</code> is not really an 9182<td align="left" valign="top"><p>The <code class="code">:=</code> is not really an
9183 assignment operator, although it looks like it. 9183 assignment operator, although it looks like it.
9184 Instead, it is a degenerate form of 9184 Instead, it is a degenerate form of
9185 <code class="code">${LIST:<em class="replaceable"><code>old_string</code></em>=<em class="replaceable"><code>new_string</code></em>}</code>, 9185 <code class="code">${LIST:<em class="replaceable"><code>old_string</code></em>=<em class="replaceable"><code>new_string</code></em>}</code>,
9186 which is documented in the <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?make+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">make</span>(1)</span></a> man page and which is 9186 which is documented in the <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?make+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">make</span>(1)</span></a> man page and which is
9187 commonly used in the form <code class="code">${SRCS:.c=.o}</code>. In the 9187 commonly used in the form <code class="code">${SRCS:.c=.o}</code>. In the
9188 case of <code class="varname">MASTER_SITE_*</code>, 9188 case of <code class="varname">MASTER_SITE_*</code>,
9189 <em class="replaceable"><code>old_string</code></em> is the empty string and 9189 <em class="replaceable"><code>old_string</code></em> is the empty string and
9190 <em class="replaceable"><code>new_string</code></em> is 9190 <em class="replaceable"><code>new_string</code></em> is
9191 <code class="code">package/</code>. That's where the 9191 <code class="code">package/</code>. That's where the
9192 <code class="code">:</code> and the <code class="code">=</code> fall 9192 <code class="code">:</code> and the <code class="code">=</code> fall
9193 together.</p></td> 9193 together.</p></td>
9194</tr> 9194</tr>
9195<tr class="question"> 9195<tr class="question">
9196<td align="left" valign="top"> 9196<td align="left" valign="top">
9197<a name="devfaq.mailinglists"></a><a name="idm81653648"></a><p><b>24.7.</b></p> 9197<a name="devfaq.mailinglists"></a><a name="idm79444880"></a><p><b>24.7.</b></p>
9198</td> 9198</td>
9199<td align="left" valign="top"><p>Which mailing lists are there for package 9199<td align="left" valign="top"><p>Which mailing lists are there for package
9200 developers?</p></td> 9200 developers?</p></td>
9201</tr> 9201</tr>
9202<tr class="answer"> 9202<tr class="answer">
9203<td align="left" valign="top"></td> 9203<td align="left" valign="top"></td>
9204<td align="left" valign="top"><div class="variablelist"><dl class="variablelist"> 9204<td align="left" valign="top"><div class="variablelist"><dl class="variablelist">
9205<dt><span class="term"><a class="ulink" href="http://www.NetBSD.org/mailinglists/index.html#tech-pkg" target="_top">tech-pkg</a></span></dt> 9205<dt><span class="term"><a class="ulink" href="http://www.NetBSD.org/mailinglists/index.html#tech-pkg" target="_top">tech-pkg</a></span></dt>
9206<dd><p>This is a list for technical discussions related 9206<dd><p>This is a list for technical discussions related
9207 to pkgsrc development, e.g. soliciting feedback for changes to 9207 to pkgsrc development, e.g. soliciting feedback for changes to
9208 pkgsrc infrastructure, proposed new features, questions related 9208 pkgsrc infrastructure, proposed new features, questions related
9209 to porting pkgsrc to a new platform, advice for maintaining a 9209 to porting pkgsrc to a new platform, advice for maintaining a
9210 package, patches that affect many packages, help requests moved 9210 package, patches that affect many packages, help requests moved
9211 from pkgsrc-users when an infrastructure bug is found, 9211 from pkgsrc-users when an infrastructure bug is found,
9212 etc.</p></dd> 9212 etc.</p></dd>
9213<dt><span class="term"><a class="ulink" href="http://www.NetBSD.org/mailinglists/index.html#pkgsrc-bugs" target="_top">pkgsrc-bugs</a></span></dt> 9213<dt><span class="term"><a class="ulink" href="http://www.NetBSD.org/mailinglists/index.html#pkgsrc-bugs" target="_top">pkgsrc-bugs</a></span></dt>
9214<dd><p>All bug reports in category "pkg" sent with 9214<dd><p>All bug reports in category "pkg" sent with
9215 <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?send-pr+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">send-pr</span>(1)</span></a> appear here. Please do not report your bugs here 9215 <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?send-pr+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">send-pr</span>(1)</span></a> appear here. Please do not report your bugs here
9216 directly; use one of the other mailing 9216 directly; use one of the other mailing
9217 lists.</p></dd> 9217 lists.</p></dd>
9218</dl></div></td> 9218</dl></div></td>
9219</tr> 9219</tr>
9220<tr class="question"> 9220<tr class="question">
9221<td align="left" valign="top"> 9221<td align="left" valign="top">
9222<a name="devfaq.documentation"></a><a name="idm81649936"></a><p><b>24.8.</b></p> 9222<a name="devfaq.documentation"></a><a name="idm79441168"></a><p><b>24.8.</b></p>
9223</td> 9223</td>
9224<td align="left" valign="top"><p>Where is the pkgsrc 9224<td align="left" valign="top"><p>Where is the pkgsrc
9225 documentation?</p></td> 9225 documentation?</p></td>
9226</tr> 9226</tr>
9227<tr class="answer"> 9227<tr class="answer">
9228<td align="left" valign="top"></td> 9228<td align="left" valign="top"></td>
9229<td align="left" valign="top"> 9229<td align="left" valign="top">
9230<p>There are many places where you can find 9230<p>There are many places where you can find
9231 documentation about pkgsrc:</p> 9231 documentation about pkgsrc:</p>
9232<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 9232<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
9233<li class="listitem"><p>The pkgsrc guide (this document) is a collection 9233<li class="listitem"><p>The pkgsrc guide (this document) is a collection
9234 of chapters that explain large parts of pkgsrc, but some 9234 of chapters that explain large parts of pkgsrc, but some
9235 chapters tend to be outdated. Which ones they are is hard to 9235 chapters tend to be outdated. Which ones they are is hard to
9236 say.</p></li> 9236 say.</p></li>
9237<li class="listitem"><p>On the mailing list archives (see <a class="ulink" href="http://mail-index.NetBSD.org/" target="_top">http://mail-index.NetBSD.org/</a>), you can find discussions 9237<li class="listitem"><p>On the mailing list archives (see <a class="ulink" href="http://mail-index.NetBSD.org/" target="_top">http://mail-index.NetBSD.org/</a>), you can find discussions
9238 about certain features, announcements of new parts of the pkgsrc 9238 about certain features, announcements of new parts of the pkgsrc
9239 infrastructure and sometimes even announcements that a certain 9239 infrastructure and sometimes even announcements that a certain
9240 feature has been marked as obsolete. The benefit here is that 9240 feature has been marked as obsolete. The benefit here is that
9241 each message has a date appended to it.</p></li> 9241 each message has a date appended to it.</p></li>
9242<li class="listitem"><p>Many of the files in the 9242<li class="listitem"><p>Many of the files in the
9243 <code class="filename">mk/</code> directory start with a comment that 9243 <code class="filename">mk/</code> directory start with a comment that
9244 describes the purpose of the file and how it can be used by the 9244 describes the purpose of the file and how it can be used by the
9245 pkgsrc user and package authors. An easy way to find this 9245 pkgsrc user and package authors. An easy way to find this
9246 documentation is to run <span class="command"><strong>bmake 9246 documentation is to run <span class="command"><strong>bmake
9247 help</strong></span>.</p></li> 9247 help</strong></span>.</p></li>
9248<li class="listitem"><p>The CVS log messages are a rich source of 9248<li class="listitem"><p>The CVS log messages are a rich source of
9249 information, but they tend to be highly abbreviated, especially 9249 information, but they tend to be highly abbreviated, especially
9250 for actions that occur often. Some contain a detailed 9250 for actions that occur often. Some contain a detailed
9251 description of what has changed, but they are geared towards the 9251 description of what has changed, but they are geared towards the
9252 other pkgsrc developers, not towards an average pkgsrc user. 9252 other pkgsrc developers, not towards an average pkgsrc user.
9253 They also only document <span class="emphasis"><em>changes</em></span>, so if you 9253 They also only document <span class="emphasis"><em>changes</em></span>, so if you
9254 don't know what has been before, these messages may not be worth 9254 don't know what has been before, these messages may not be worth
9255 too much to you.</p></li> 9255 too much to you.</p></li>
9256<li class="listitem"><p>Some parts of pkgsrc are only <span class="quote">&#8220;<span class="quote">implicitly 9256<li class="listitem"><p>Some parts of pkgsrc are only <span class="quote">&#8220;<span class="quote">implicitly
9257 documented</span>&#8221;</span>, that is the documentation exists only in the 9257 documented</span>&#8221;</span>, that is the documentation exists only in the
9258 mind of the developer who wrote the code. To get this 9258 mind of the developer who wrote the code. To get this
9259 information, use the <span class="command"><strong>cvs annotate</strong></span> command 9259 information, use the <span class="command"><strong>cvs annotate</strong></span> command
9260 to see who has written it and ask on the 9260 to see who has written it and ask on the
9261 <code class="literal">tech-pkg</code> mailing list, so that others can 9261 <code class="literal">tech-pkg</code> mailing list, so that others can
9262 find your questions later (see above). To be sure that the 9262 find your questions later (see above). To be sure that the
9263 developer in charge reads the mail, you may CC him or 9263 developer in charge reads the mail, you may CC him or
9264 her.</p></li> 9264 her.</p></li>
9265</ul></div> 9265</ul></div>
9266</td> 9266</td>
9267</tr> 9267</tr>
9268<tr class="question"> 9268<tr class="question">
9269<td align="left" valign="top"> 9269<td align="left" valign="top">
9270<a name="devfaq.too-much-time"></a><a name="idm81635216"></a><p><b>24.9.</b></p> 9270<a name="devfaq.too-much-time"></a><a name="idm79434640"></a><p><b>24.9.</b></p>
9271</td> 9271</td>
9272<td align="left" valign="top"><p>I have a little time to kill. What shall I 9272<td align="left" valign="top"><p>I have a little time to kill. What shall I
9273do?</p></td> 9273do?</p></td>
9274</tr> 9274</tr>
9275<tr class="answer"> 9275<tr class="answer">
9276<td align="left" valign="top"></td> 9276<td align="left" valign="top"></td>
9277<td align="left" valign="top"> 9277<td align="left" valign="top">
9278<p>This is not really an FAQ yet, but here's the answer 9278<p>This is not really an FAQ yet, but here's the answer
9279anyway.</p> 9279anyway.</p>
9280<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 9280<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
9281<li class="listitem"><p>Run <span class="command"><strong>pkg_chk -N</strong></span> (from the 9281<li class="listitem"><p>Run <span class="command"><strong>pkg_chk -N</strong></span> (from the
9282 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkg_chk/README.html" target="_top"><code class="filename">pkgtools/pkg_chk</code></a> package). It 9282 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkg_chk/README.html" target="_top"><code class="filename">pkgtools/pkg_chk</code></a> package). It
9283 will tell you about newer versions of installed packages that are 9283 will tell you about newer versions of installed packages that are
9284 available, but not yet updated in pkgsrc.</p></li> 9284 available, but not yet updated in pkgsrc.</p></li>
9285<li class="listitem"><p>Browse <code class="filename">pkgsrc/doc/TODO</code> 9285<li class="listitem"><p>Browse <code class="filename">pkgsrc/doc/TODO</code>
9286 &mdash; it contains a list of suggested new packages and a list of 9286 &mdash; it contains a list of suggested new packages and a list of
9287 cleanups and enhancements for pkgsrc that would be nice to 9287 cleanups and enhancements for pkgsrc that would be nice to
9288 have.</p></li> 9288 have.</p></li>
9289<li class="listitem"><p>Review packages for which review was requested on 9289<li class="listitem"><p>Review packages for which review was requested on
9290 the <a class="ulink" href="http://www.NetBSD.org/mailinglists/index.html#tech-pkg" target="_top">tech-pkg</a> 9290 the <a class="ulink" href="http://www.NetBSD.org/mailinglists/index.html#tech-pkg" target="_top">tech-pkg</a>
9291 mailing list.</p></li> 9291 mailing list.</p></li>
9292</ul></div> 9292</ul></div>
9293</td> 9293</td>
9294</tr> 9294</tr>
9295</tbody> 9295</tbody>
9296</table> 9296</table>
9297</div> 9297</div>
9298</div> 9298</div>
9299<div class="chapter"> 9299<div class="chapter">
9300<div class="titlepage"><div><div><h2 class="title"> 9300<div class="titlepage"><div><div><h2 class="title">
9301<a name="gnome"></a>Chapter 25. GNOME packaging and porting</h2></div></div></div> 9301<a name="gnome"></a>Chapter 25. GNOME packaging and porting</h2></div></div></div>
9302<div class="toc"> 9302<div class="toc">
9303<p><b>Table of Contents</b></p> 9303<p><b>Table of Contents</b></p>
9304<dl class="toc"> 9304<dl class="toc">
9305<dt><span class="sect1"><a href="#meta-packages">25.1. Meta packages</a></span></dt> 9305<dt><span class="sect1"><a href="#meta-packages">25.1. Meta packages</a></span></dt>
9306<dt><span class="sect1"><a href="#new-package">25.2. Packaging a GNOME application</a></span></dt> 9306<dt><span class="sect1"><a href="#new-package">25.2. Packaging a GNOME application</a></span></dt>
9307<dt><span class="sect1"><a href="#full-update">25.3. Updating GNOME to a newer version</a></span></dt> 9307<dt><span class="sect1"><a href="#full-update">25.3. Updating GNOME to a newer version</a></span></dt>
9308<dt><span class="sect1"><a href="#patching">25.4. Patching guidelines</a></span></dt> 9308<dt><span class="sect1"><a href="#patching">25.4. Patching guidelines</a></span></dt>
9309</dl> 9309</dl>
9310</div> 9310</div>
9311<p>Quoting <a class="ulink" href="http://www.gnome.org/" target="_top">GNOME's web 9311<p>Quoting <a class="ulink" href="http://www.gnome.org/" target="_top">GNOME's web
9312site</a>:</p> 9312site</a>:</p>
9313<div class="blockquote"><blockquote class="blockquote"><p>The GNOME project provides two things: The GNOME desktop 9313<div class="blockquote"><blockquote class="blockquote"><p>The GNOME project provides two things: The GNOME desktop
9314 environment, an intuitive and attractive desktop for users, and the 9314 environment, an intuitive and attractive desktop for users, and the
9315 GNOME development platform, an extensive framework for building 9315 GNOME development platform, an extensive framework for building
9316 applications that integrate into the rest of the desktop.</p></blockquote></div> 9316 applications that integrate into the rest of the desktop.</p></blockquote></div>
9317<p>pkgsrc provides a seamless way to automatically build and install 9317<p>pkgsrc provides a seamless way to automatically build and install
9318a complete GNOME environment <span class="emphasis"><em>under many different 9318a complete GNOME environment <span class="emphasis"><em>under many different
9319platforms</em></span>. We can say with confidence that pkgsrc is one of 9319platforms</em></span>. We can say with confidence that pkgsrc is one of
9320the most advanced build and packaging systems for GNOME due to its 9320the most advanced build and packaging systems for GNOME due to its
9321included technologies buildlink3, the wrappers and tools framework and 9321included technologies buildlink3, the wrappers and tools framework and
9322automatic configuration file management. Lots of efforts are put into 9322automatic configuration file management. Lots of efforts are put into
9323achieving a completely clean deinstallation of installed software 9323achieving a completely clean deinstallation of installed software
9324components.</p> 9324components.</p>
9325<p>Given that pkgsrc is <a class="ulink" href="http://www.NetBSD.org/" target="_top">NetBSD</a>'s official packaging system, 9325<p>Given that pkgsrc is <a class="ulink" href="http://www.NetBSD.org/" target="_top">NetBSD</a>'s official packaging system,
9326the above also means that great efforts are put into making GNOME work 9326the above also means that great efforts are put into making GNOME work
9327under this operating system. Recently, <a class="ulink" href="http://www.dragonflybsd.org/" target="_top">DragonFly BSD</a> also adopted 9327under this operating system. Recently, <a class="ulink" href="http://www.dragonflybsd.org/" target="_top">DragonFly BSD</a> also adopted
9328pkgsrc as its preferred packaging system, contributing lots of 9328pkgsrc as its preferred packaging system, contributing lots of
9329portability fixes to make GNOME build and install under it.</p> 9329portability fixes to make GNOME build and install under it.</p>
9330<p>This chapter is aimed at pkgsrc developers and other people 9330<p>This chapter is aimed at pkgsrc developers and other people
9331interested in helping our GNOME porting and packaging efforts. It 9331interested in helping our GNOME porting and packaging efforts. It
9332provides instructions on how to manage the existing packages and some 9332provides instructions on how to manage the existing packages and some
9333important information regarding their internals.</p> 9333important information regarding their internals.</p>
9334<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> 9334<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
9335<h3 class="title">We need your help!</h3> 9335<h3 class="title">We need your help!</h3>
9336<p>Should you have some spare cycles to devote to NetBSD, pkgsrc 9336<p>Should you have some spare cycles to devote to NetBSD, pkgsrc
9337 and GNOME and are willing to learn new exciting stuff, please jump 9337 and GNOME and are willing to learn new exciting stuff, please jump
9338 straight to the <a class="ulink" href="http://www.NetBSD.org/contrib/projects.html#gnome" target="_top">pending 9338 straight to the <a class="ulink" href="http://www.NetBSD.org/contrib/projects.html#gnome" target="_top">pending
9339 work</a> list! There is still a long way to go to get a 9339 work</a> list! There is still a long way to go to get a
9340 fully-functional GNOME desktop under NetBSD and we need your help to 9340 fully-functional GNOME desktop under NetBSD and we need your help to
9341 achieve it!</p> 9341 achieve it!</p>
9342</div> 9342</div>
9343<div class="sect1"> 9343<div class="sect1">
9344<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9344<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9345<a name="meta-packages"></a>25.1. Meta packages</h2></div></div></div> 9345<a name="meta-packages"></a>25.1. Meta packages</h2></div></div></div>
9346<p>pkgsrc includes three GNOME-related meta packages:</p> 9346<p>pkgsrc includes three GNOME-related meta packages:</p>
9347<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 9347<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
9348<li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/README.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>: Provides 9348<li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/README.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>: Provides
9349 the core GNOME desktop environment. It only includes the necessary 9349 the core GNOME desktop environment. It only includes the necessary
9350 bits to get it to boot correctly, although it may lack important 9350 bits to get it to boot correctly, although it may lack important
9351 functionality for daily operation. The idea behind this package is 9351 functionality for daily operation. The idea behind this package is
9352 to let end users build their own configurations on top of this one, 9352 to let end users build their own configurations on top of this one,
9353 first installing this meta package to achieve a functional setup and 9353 first installing this meta package to achieve a functional setup and
9354 then adding individual applications.</p></li> 9354 then adding individual applications.</p></li>
9355<li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome/README.html" target="_top"><code class="filename">meta-pkgs/gnome</code></a>: Provides a 9355<li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome/README.html" target="_top"><code class="filename">meta-pkgs/gnome</code></a>: Provides a
9356 complete installation of the GNOME platform and desktop as defined 9356 complete installation of the GNOME platform and desktop as defined
9357 by the GNOME project; this is based on the components distributed in 9357 by the GNOME project; this is based on the components distributed in
9358 the <code class="filename">platform/x.y/x.y.z/sources</code> and 9358 the <code class="filename">platform/x.y/x.y.z/sources</code> and
9359 <code class="filename">desktop/x.y/x.y.z/sources</code> directories of the 9359 <code class="filename">desktop/x.y/x.y.z/sources</code> directories of the
9360 official FTP server. Developer-only tools found in those 9360 official FTP server. Developer-only tools found in those
9361 directories are not installed unless required by some other 9361 directories are not installed unless required by some other
9362 component to work properly. Similarly, packages from the bindings 9362 component to work properly. Similarly, packages from the bindings
9363 set (<code class="filename">bindings/x.y/x.y.z/sources</code>) are not pulled 9363 set (<code class="filename">bindings/x.y/x.y.z/sources</code>) are not pulled
9364 in unless required as a dependency for an end-user component. This 9364 in unless required as a dependency for an end-user component. This
9365 package "extends" <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/README.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>.</p></li> 9365 package "extends" <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/README.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>.</p></li>
9366<li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-devel/README.html" target="_top"><code class="filename">meta-pkgs/gnome-devel</code></a>: 9366<li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-devel/README.html" target="_top"><code class="filename">meta-pkgs/gnome-devel</code></a>:
9367 Installs all the tools required to build a GNOME component when 9367 Installs all the tools required to build a GNOME component when
9368 fetched from the CVS repository. These are required to let the 9368 fetched from the CVS repository. These are required to let the
9369 <span class="command"><strong>autogen.sh</strong></span> scripts work appropriately.</p></li> 9369 <span class="command"><strong>autogen.sh</strong></span> scripts work appropriately.</p></li>
9370</ul></div> 9370</ul></div>
9371<p>In all these packages, the <code class="varname">DEPENDS</code> lines are 9371<p>In all these packages, the <code class="varname">DEPENDS</code> lines are
9372sorted in a way that eases updates: a package may depend on other 9372sorted in a way that eases updates: a package may depend on other
9373packages listed before it but not on any listed after it. It is very 9373packages listed before it but not on any listed after it. It is very
9374important to keep this order to ease updates so... <span class="emphasis"><em>do not 9374important to keep this order to ease updates so... <span class="emphasis"><em>do not
9375change it to alphabetical sorting!</em></span></p> 9375change it to alphabetical sorting!</em></span></p>
9376</div> 9376</div>
9377<div class="sect1"> 9377<div class="sect1">
9378<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9378<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9379<a name="new-package"></a>25.2. Packaging a GNOME application</h2></div></div></div> 9379<a name="new-package"></a>25.2. Packaging a GNOME application</h2></div></div></div>
9380<p>Almost all GNOME applications are written in C and use a common 9380<p>Almost all GNOME applications are written in C and use a common
9381set of tools as their build system. Things get different with the new 9381set of tools as their build system. Things get different with the new
9382bindings to other languages (such as Python), but the following will 9382bindings to other languages (such as Python), but the following will
9383give you a general idea on the minimum required tools:</p> 9383give you a general idea on the minimum required tools:</p>
9384<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 9384<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
9385<li class="listitem"> 9385<li class="listitem">
9386<p>Almost all GNOME applications use the GNU Autotools as their 9386<p>Almost all GNOME applications use the GNU Autotools as their
9387 build system. As a general rule you will need to tell this to your 9387 build system. As a general rule you will need to tell this to your
9388 package:</p> 9388 package:</p>
9389<pre class="programlisting"> 9389<pre class="programlisting">
9390GNU_CONFIGURE=yes 9390GNU_CONFIGURE=yes
9391USE_LIBTOOL=yes 9391USE_LIBTOOL=yes
9392USE_TOOLS+=gmake 9392USE_TOOLS+=gmake
9393</pre> 9393</pre>
9394</li> 9394</li>
9395<li class="listitem"> 9395<li class="listitem">
9396<p>If the package uses pkg-config to detect dependencies, add this 9396<p>If the package uses pkg-config to detect dependencies, add this
9397 tool to the list of required utilities:</p> 9397 tool to the list of required utilities:</p>
9398<pre class="programlisting"> 9398<pre class="programlisting">
9399USE_TOOLS+=pkg-config 9399USE_TOOLS+=pkg-config
9400</pre> 9400</pre>
9401<p>Also use <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/verifypc/README.html" target="_top"><code class="filename">pkgtools/verifypc</code></a> at 9401<p>Also use <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/verifypc/README.html" target="_top"><code class="filename">pkgtools/verifypc</code></a> at
9402 the end of the build process to ensure that you did not miss to 9402 the end of the build process to ensure that you did not miss to
9403 specify any dependency in your package and that the version 9403 specify any dependency in your package and that the version
9404 requirements are all correct.</p> 9404 requirements are all correct.</p>
9405</li> 9405</li>
9406<li class="listitem"><p>If the package uses intltool, be sure to add 9406<li class="listitem"><p>If the package uses intltool, be sure to add
9407 <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code> 9407 <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code>
9408 to handle dependencies and to force the package to use the latest 9408 to handle dependencies and to force the package to use the latest
9409 available version.</p></li> 9409 available version.</p></li>
9410<li class="listitem"> 9410<li class="listitem">
9411<p>If the package uses gtk-doc (a documentation generation 9411<p>If the package uses gtk-doc (a documentation generation
9412 utility), do <span class="emphasis"><em>not</em></span> add a dependency on it. The 9412 utility), do <span class="emphasis"><em>not</em></span> add a dependency on it. The
9413 tool is rather big and the distfile should come with pregenerated 9413 tool is rather big and the distfile should come with pregenerated
9414 documentation anyway; if it does not, it is a bug that you ought to 9414 documentation anyway; if it does not, it is a bug that you ought to
9415 report. For such packages you should disable gtk-doc (unless it is 9415 report. For such packages you should disable gtk-doc (unless it is
9416 the default):</p> 9416 the default):</p>
9417<pre class="programlisting"> 9417<pre class="programlisting">
9418CONFIGURE_ARGS+=--disable-gtk-doc 9418CONFIGURE_ARGS+=--disable-gtk-doc
9419</pre> 9419</pre>
9420<p>The default location of installed HTML files 9420<p>The default location of installed HTML files
9421 (<code class="filename">share/gtk-doc/&lt;package-name&gt;</code>) is correct 9421 (<code class="filename">share/gtk-doc/&lt;package-name&gt;</code>) is correct
9422 and should not be changed unless the package insists on installing 9422 and should not be changed unless the package insists on installing
9423 them somewhere else. Otherwise programs as 9423 them somewhere else. Otherwise programs as
9424 <span class="command"><strong>devhelp</strong></span> will not be able to open them. You can 9424 <span class="command"><strong>devhelp</strong></span> will not be able to open them. You can
9425 do that with an entry similar to:</p> 9425 do that with an entry similar to:</p>
9426<pre class="programlisting"> 9426<pre class="programlisting">
9427CONFIGURE_ARGS+=--with-html-dir=${PREFIX}/share/gtk-doc/... 9427CONFIGURE_ARGS+=--with-html-dir=${PREFIX}/share/gtk-doc/...
9428</pre> 9428</pre>
9429</li> 9429</li>
9430</ul></div> 9430</ul></div>
9431<p>GNOME uses multiple <span class="emphasis"><em>shared</em></span> directories and 9431<p>GNOME uses multiple <span class="emphasis"><em>shared</em></span> directories and
9432files under the installation prefix to maintain databases. In this 9432files under the installation prefix to maintain databases. In this
9433context, shared means that those exact same directories and files are 9433context, shared means that those exact same directories and files are
9434used among several different packages, leading to conflicts in the 9434used among several different packages, leading to conflicts in the
9435<code class="filename">PLIST</code>. pkgsrc currently includes functionality to 9435<code class="filename">PLIST</code>. pkgsrc currently includes functionality to
9436handle the most common cases, so you have to forget about using 9436handle the most common cases, so you have to forget about using
9437<code class="literal">@unexec ${RMDIR}</code> lines in your file lists and 9437<code class="literal">@unexec ${RMDIR}</code> lines in your file lists and
9438omitting shared files from them. If you find yourself doing those, 9438omitting shared files from them. If you find yourself doing those,
9439<span class="emphasis"><em>your package is most likely incorrect</em></span>.</p> 9439<span class="emphasis"><em>your package is most likely incorrect</em></span>.</p>
9440<p>The following table lists the common situations that result in 9440<p>The following table lists the common situations that result in
9441using shared directories or files. For each of them, the appropriate 9441using shared directories or files. For each of them, the appropriate
9442solution is given. After applying the solution be sure to 9442solution is given. After applying the solution be sure to
9443<span class="emphasis"><em>regenerate the package's file list</em></span> with 9443<span class="emphasis"><em>regenerate the package's file list</em></span> with
9444<span class="command"><strong>make print-PLIST</strong></span> and ensure it is correct.</p> 9444<span class="command"><strong>make print-PLIST</strong></span> and ensure it is correct.</p>
9445<div class="table"> 9445<div class="table">
9446<a name="plist-handling"></a><p class="title"><b>Table 25.1. PLIST handling for GNOME packages</b></p> 9446<a name="plist-handling"></a><p class="title"><b>Table 25.1. PLIST handling for GNOME packages</b></p>
9447<div class="table-contents"><table class="table" summary="PLIST handling for GNOME packages" border="1"> 9447<div class="table-contents"><table class="table" summary="PLIST handling for GNOME packages" border="1">
9448<colgroup> 9448<colgroup>
9449<col> 9449<col>
9450<col> 9450<col>
9451</colgroup> 9451</colgroup>
9452<thead><tr> 9452<thead><tr>
9453<th>If the package...</th> 9453<th>If the package...</th>
9454<th>Then...</th> 9454<th>Then...</th>
9455</tr></thead> 9455</tr></thead>
9456<tbody> 9456<tbody>
9457<tr> 9457<tr>
9458<td>Installs OMF files under <code class="filename">share/omf</code>.</td> 9458<td>Installs OMF files under <code class="filename">share/omf</code>.</td>
9459<td>See <a class="xref" href="#scrollkeeper-data-files" title="21.6.10. Packages installing scrollkeeper/rarian data files">Section 21.6.10, &#8220;Packages installing scrollkeeper/rarian data files&#8221;</a>.</td> 9459<td>See <a class="xref" href="#scrollkeeper-data-files" title="21.6.10. Packages installing scrollkeeper/rarian data files">Section 21.6.10, &#8220;Packages installing scrollkeeper/rarian data files&#8221;</a>.</td>
9460</tr> 9460</tr>
9461<tr> 9461<tr>
9462<td>Installs icons under the 9462<td>Installs icons under the
9463 <code class="filename">share/icons/hicolor</code> hierarchy or updates 9463 <code class="filename">share/icons/hicolor</code> hierarchy or updates
9464 <code class="filename">share/icons/hicolor/icon-theme.cache</code>.</td> 9464 <code class="filename">share/icons/hicolor/icon-theme.cache</code>.</td>
9465<td>See <a class="xref" href="#hicolor-theme" title="21.6.19. Packages installing hicolor theme icons">Section 21.6.19, &#8220;Packages installing hicolor theme icons&#8221;</a>.</td> 9465<td>See <a class="xref" href="#hicolor-theme" title="21.6.19. Packages installing hicolor theme icons">Section 21.6.19, &#8220;Packages installing hicolor theme icons&#8221;</a>.</td>
9466</tr> 9466</tr>
9467<tr> 9467<tr>
9468<td>Installs files under 9468<td>Installs files under
9469 <code class="filename">share/mime/packages</code>.</td> 9469 <code class="filename">share/mime/packages</code>.</td>
9470<td>See <a class="xref" href="#mime-database" title="21.6.14. Packages installing extensions to the MIME database">Section 21.6.14, &#8220;Packages installing extensions to the MIME database&#8221;</a>.</td> 9470<td>See <a class="xref" href="#mime-database" title="21.6.14. Packages installing extensions to the MIME database">Section 21.6.14, &#8220;Packages installing extensions to the MIME database&#8221;</a>.</td>
9471</tr> 9471</tr>
9472<tr> 9472<tr>
9473<td>Installs <code class="filename">.desktop</code> files under 9473<td>Installs <code class="filename">.desktop</code> files under
9474 <code class="filename">share/applications</code> and these include MIME 9474 <code class="filename">share/applications</code> and these include MIME
9475 information.</td> 9475 information.</td>
9476<td>See <a class="xref" href="#desktop-files" title="21.6.20. Packages installing desktop files">Section 21.6.20, &#8220;Packages installing desktop files&#8221;</a>.</td> 9476<td>See <a class="xref" href="#desktop-files" title="21.6.20. Packages installing desktop files">Section 21.6.20, &#8220;Packages installing desktop files&#8221;</a>.</td>
9477</tr> 9477</tr>
9478</tbody> 9478</tbody>
9479</table></div> 9479</table></div>
9480</div> 9480</div>
9481<br class="table-break"> 9481<br class="table-break">
9482</div> 9482</div>
9483<div class="sect1"> 9483<div class="sect1">
9484<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9484<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9485<a name="full-update"></a>25.3. Updating GNOME to a newer version</h2></div></div></div> 9485<a name="full-update"></a>25.3. Updating GNOME to a newer version</h2></div></div></div>
9486<p>When seeing GNOME as a whole, there are two kinds of 9486<p>When seeing GNOME as a whole, there are two kinds of
9487updates:</p> 9487updates:</p>
9488<div class="variablelist"><dl class="variablelist"> 9488<div class="variablelist"><dl class="variablelist">
9489<dt><span class="term">Major update</span></dt> 9489<dt><span class="term">Major update</span></dt>
9490<dd> 9490<dd>
9491<p>Given that there is still a very long way for GNOME 3 (if it 9491<p>Given that there is still a very long way for GNOME 3 (if it
9492 ever appears), we consider a major update one that goes from a 9492 ever appears), we consider a major update one that goes from a
9493 <code class="literal">2.X</code> version to a <code class="literal">2.Y</code> one, 9493 <code class="literal">2.X</code> version to a <code class="literal">2.Y</code> one,
9494 where <code class="literal">Y</code> is even and greater than 9494 where <code class="literal">Y</code> is even and greater than
9495 <code class="literal">X</code>. These are hard to achieve because they 9495 <code class="literal">X</code>. These are hard to achieve because they
9496 introduce lots of changes in the components' code and almost all 9496 introduce lots of changes in the components' code and almost all
9497 GNOME distfiles are updated to newer versions. Some of them can 9497 GNOME distfiles are updated to newer versions. Some of them can
9498 even break API and ABI compatibility with the previous major 9498 even break API and ABI compatibility with the previous major
9499 version series. As a result, the update needs to be done all at 9499 version series. As a result, the update needs to be done all at
9500 once to minimize breakage.</p> 9500 once to minimize breakage.</p>
9501<p>A major update typically consists of around 80 package 9501<p>A major update typically consists of around 80 package
9502 updates and the addition of some new ones.</p> 9502 updates and the addition of some new ones.</p>
9503</dd> 9503</dd>
9504<dt><span class="term">Minor update</span></dt> 9504<dt><span class="term">Minor update</span></dt>
9505<dd> 9505<dd>
9506<p>We consider a minor update one that goes from a 9506<p>We consider a minor update one that goes from a
9507 <code class="literal">2.A.X</code> version to a <code class="literal">2.A.Y</code> 9507 <code class="literal">2.A.X</code> version to a <code class="literal">2.A.Y</code>
9508 one where <code class="literal">Y</code> is greater than 9508 one where <code class="literal">Y</code> is greater than
9509 <code class="literal">X</code>. These are easy to achieve because they do 9509 <code class="literal">X</code>. These are easy to achieve because they do
9510 not update all GNOME components, can be done in an incremental way 9510 not update all GNOME components, can be done in an incremental way
9511 and do not break API nor ABI compatibility.</p> 9511 and do not break API nor ABI compatibility.</p>
9512<p>A minor update typically consists of around 50 package 9512<p>A minor update typically consists of around 50 package
9513 updates, although the numbers here may vary a lot.</p> 9513 updates, although the numbers here may vary a lot.</p>
9514</dd> 9514</dd>
9515</dl></div> 9515</dl></div>
9516<p>In order to update the GNOME components in pkgsrc to a new stable 9516<p>In order to update the GNOME components in pkgsrc to a new stable
9517release (either major or minor), the following steps should be 9517release (either major or minor), the following steps should be
9518followed:</p> 9518followed:</p>
9519<div class="orderedlist"><ol class="orderedlist" type="1"> 9519<div class="orderedlist"><ol class="orderedlist" type="1">
9520<li class="listitem"> 9520<li class="listitem">
9521<p>Get a list of all the tarballs that form the new release by 9521<p>Get a list of all the tarballs that form the new release by
9522 using the following commands. These will leave the full list of the 9522 using the following commands. These will leave the full list of the
9523 components' distfiles into the <code class="filename">list.txt</code> 9523 components' distfiles into the <code class="filename">list.txt</code>
9524 file:</p> 9524 file:</p>
9525<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>echo ls "*.tar.bz2" | \ 9525<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>echo ls "*.tar.bz2" | \
9526 ftp -V ftp://ftp.gnome.org/pub/gnome/platform/x.y/x.y.z/sources/ | \ 9526 ftp -V ftp://ftp.gnome.org/pub/gnome/platform/x.y/x.y.z/sources/ | \
9527 awk '{ print $9 }' &gt;list.txt</code></strong> 9527 awk '{ print $9 }' &gt;list.txt</code></strong>
9528<code class="prompt">%</code> <strong class="userinput"><code>echo ls "*.tar.bz2" | \ 9528<code class="prompt">%</code> <strong class="userinput"><code>echo ls "*.tar.bz2" | \
9529 ftp -V ftp://ftp.gnome.org/pub/gnome/desktop/x.y/x.y.z/sources/ | \ 9529 ftp -V ftp://ftp.gnome.org/pub/gnome/desktop/x.y/x.y.z/sources/ | \
9530 awk '{ print $9 }' &gt;&gt;list.txt</code></strong></pre> 9530 awk '{ print $9 }' &gt;&gt;list.txt</code></strong></pre>
9531</li> 9531</li>
9532<li class="listitem"><p>Open each meta package's <code class="filename">Makefile</code> and 9532<li class="listitem"><p>Open each meta package's <code class="filename">Makefile</code> and
9533 bump their version to the release you are updating them to. The 9533 bump their version to the release you are updating them to. The
9534 three meta packages should be always consistent with versioning. 9534 three meta packages should be always consistent with versioning.
9535 Obviously remove any <code class="varname">PKGREVISION</code>s that might be 9535 Obviously remove any <code class="varname">PKGREVISION</code>s that might be
9536 in them.</p></li> 9536 in them.</p></li>
9537<li class="listitem"> 9537<li class="listitem">
9538<p>For each meta package, update all its 9538<p>For each meta package, update all its
9539 <code class="varname">DEPENDS</code> lines to match the latest versions as 9539 <code class="varname">DEPENDS</code> lines to match the latest versions as
9540 shown by the above commands. Do <span class="emphasis"><em>not</em></span> list any 9540 shown by the above commands. Do <span class="emphasis"><em>not</em></span> list any
9541 newer version (even if found in the FTP) because the meta packages 9541 newer version (even if found in the FTP) because the meta packages
9542 are supposed to list the exact versions that form a specific GNOME 9542 are supposed to list the exact versions that form a specific GNOME
9543 release. Exceptions are permitted here if a newer version solves a 9543 release. Exceptions are permitted here if a newer version solves a
9544 serious issue in the overall desktop experience; these typically 9544 serious issue in the overall desktop experience; these typically
9545 come in the form of a revision bump in pkgsrc, not in newer versions 9545 come in the form of a revision bump in pkgsrc, not in newer versions
9546 from the developers.</p> 9546 from the developers.</p>
9547<p>Packages not listed in the <code class="filename">list.txt</code> file 9547<p>Packages not listed in the <code class="filename">list.txt</code> file
9548 should be updated to the latest version available (if found in 9548 should be updated to the latest version available (if found in
9549 pkgsrc). This is the case, for example, of the dependencies on the 9549 pkgsrc). This is the case, for example, of the dependencies on the
9550 GNU Autotools in the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-devel/README.html" target="_top"><code class="filename">meta-pkgs/gnome-devel</code></a> meta package.</p> 9550 GNU Autotools in the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-devel/README.html" target="_top"><code class="filename">meta-pkgs/gnome-devel</code></a> meta package.</p>
9551</li> 9551</li>
9552<li class="listitem"> 9552<li class="listitem">
9553<p>Generate a patch from the modified meta packages and extract the 9553<p>Generate a patch from the modified meta packages and extract the
9554 list of "new" lines. This will provide you an outline on what 9554 list of "new" lines. This will provide you an outline on what
9555 packages need to be updated in pkgsrc and in what order:</p> 9555 packages need to be updated in pkgsrc and in what order:</p>
9556<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cvs diff -u gnome-devel gnome-base gnome | grep '^+D' &gt;todo.txt</code></strong></pre> 9556<pre class="screen"><code class="prompt">%</code> <strong class="userinput"><code>cvs diff -u gnome-devel gnome-base gnome | grep '^+D' &gt;todo.txt</code></strong></pre>
9557</li> 9557</li>
9558<li class="listitem"><p>For major desktop updates it is recommended to zap all your 9558<li class="listitem"><p>For major desktop updates it is recommended to zap all your
9559 installed packages and start over from scratch at this point.</p></li> 9559 installed packages and start over from scratch at this point.</p></li>
9560<li class="listitem"><p>Now comes the longest step by far: iterate over the contents 9560<li class="listitem"><p>Now comes the longest step by far: iterate over the contents
9561 of <code class="filename">todo.txt</code> and update the packages listed in 9561 of <code class="filename">todo.txt</code> and update the packages listed in
9562 it in order. For major desktop updates none of these should be 9562 it in order. For major desktop updates none of these should be
9563 committed until the entire set is completed because there are chances 9563 committed until the entire set is completed because there are chances
9564 of breaking not-yet-updated packages.</p></li> 9564 of breaking not-yet-updated packages.</p></li>
9565<li class="listitem"><p>Once the packages are up to date and working, commit them to 9565<li class="listitem"><p>Once the packages are up to date and working, commit them to
9566 the tree one by one with appropriate log messages. At the end, 9566 the tree one by one with appropriate log messages. At the end,
9567 commit the three meta package updates and all the corresponding 9567 commit the three meta package updates and all the corresponding
9568 changes to the <code class="filename">doc/CHANGES-&lt;YEAR&gt;</code> and 9568 changes to the <code class="filename">doc/CHANGES-&lt;YEAR&gt;</code> and
9569 <a href="http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/doc/TODO?rev=HEAD&amp;content-type=text/x-cvsweb-markup" target="_top"><code class="filename">pkgsrc/doc/TODO</code></a> files.</p></li> 9569 <a href="http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/doc/TODO?rev=HEAD&amp;content-type=text/x-cvsweb-markup" target="_top"><code class="filename">pkgsrc/doc/TODO</code></a> files.</p></li>
9570</ol></div> 9570</ol></div>
9571</div> 9571</div>
9572<div class="sect1"> 9572<div class="sect1">
9573<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9573<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9574<a name="patching"></a>25.4. Patching guidelines</h2></div></div></div> 9574<a name="patching"></a>25.4. Patching guidelines</h2></div></div></div>
9575<p>GNOME is a very big component in pkgsrc which approaches 100 9575<p>GNOME is a very big component in pkgsrc which approaches 100
9576packages. Please, it is very important that you always, always, 9576packages. Please, it is very important that you always, always,
9577<span class="strong"><strong>always</strong></span> feed back any portability 9577<span class="strong"><strong>always</strong></span> feed back any portability
9578fixes you do to a GNOME package to the mainstream developers (see <a class="xref" href="#components.patches.feedback" title="13.3.5. Feedback to the author">Section 13.3.5, &#8220;Feedback to the author&#8221;</a>). This is the only way to get 9578fixes you do to a GNOME package to the mainstream developers (see <a class="xref" href="#components.patches.feedback" title="13.3.5. Feedback to the author">Section 13.3.5, &#8220;Feedback to the author&#8221;</a>). This is the only way to get
9579their attention on portability issues and to ensure that future versions 9579their attention on portability issues and to ensure that future versions
9580can be built out-of-the box on NetBSD. The less custom patches in 9580can be built out-of-the box on NetBSD. The less custom patches in
9581pkgsrc, the easier further updates are. Those developers in charge of 9581pkgsrc, the easier further updates are. Those developers in charge of
9582issuing major GNOME updates will be grateful if you do that.</p> 9582issuing major GNOME updates will be grateful if you do that.</p>
9583<p>The most common places to report bugs are the <a class="ulink" href="http://bugzilla.gnome.org/" target="_top">GNOME's Bugzilla</a> and the <a class="ulink" href="http://bugzilla.freedesktop.org/" target="_top">freedesktop.org's 9583<p>The most common places to report bugs are the <a class="ulink" href="http://bugzilla.gnome.org/" target="_top">GNOME's Bugzilla</a> and the <a class="ulink" href="http://bugzilla.freedesktop.org/" target="_top">freedesktop.org's
9584Bugzilla</a>. Not all components use these to track bugs, but most 9584Bugzilla</a>. Not all components use these to track bugs, but most
9585of them do. Do not be short on your reports: always provide detailed 9585of them do. Do not be short on your reports: always provide detailed
9586explanations of the current failure, how it can be improved to achieve 9586explanations of the current failure, how it can be improved to achieve
9587maximum portability and, if at all possible, provide a patch against CVS 9587maximum portability and, if at all possible, provide a patch against CVS
9588head. The more verbose you are, the higher chances of your patch being 9588head. The more verbose you are, the higher chances of your patch being
9589accepted.</p> 9589accepted.</p>
9590<p>Also, please avoid using preprocessor magic to fix portability 9590<p>Also, please avoid using preprocessor magic to fix portability
9591issues. While the FreeBSD GNOME people are doing a great job in porting 9591issues. While the FreeBSD GNOME people are doing a great job in porting
9592GNOME to their operating system, the official GNOME sources are now 9592GNOME to their operating system, the official GNOME sources are now
9593plagued by conditionals that check for <code class="varname">__FreeBSD__</code> 9593plagued by conditionals that check for <code class="varname">__FreeBSD__</code>
9594and similar macros. This hurts portability. Please see our patching 9594and similar macros. This hurts portability. Please see our patching
9595guidelines (<a class="xref" href="#components.patches.guidelines" title="13.3.4. Patching guidelines">Section 13.3.4, &#8220;Patching guidelines&#8221;</a>) for more 9595guidelines (<a class="xref" href="#components.patches.guidelines" title="13.3.4. Patching guidelines">Section 13.3.4, &#8220;Patching guidelines&#8221;</a>) for more
9596details.</p> 9596details.</p>
9597</div> 9597</div>
9598</div> 9598</div>
9599</div> 9599</div>
9600<div class="part"> 9600<div class="part">
9601<div class="titlepage"><div><div><h1 class="title"> 9601<div class="titlepage"><div><div><h1 class="title">
9602<a name="infrastructure"></a>Part III. The pkgsrc infrastructure internals</h1></div></div></div> 9602<a name="infrastructure"></a>Part III. The pkgsrc infrastructure internals</h1></div></div></div>
9603<div class="partintro"> 9603<div class="partintro">
9604<div></div> 9604<div></div>
9605<p>This part of the guide deals with everything 9605<p>This part of the guide deals with everything
9606 from the infrastructure that is behind the interfaces described 9606 from the infrastructure that is behind the interfaces described
9607 in the developer's guide. A casual package maintainer should not 9607 in the developer's guide. A casual package maintainer should not
9608 need anything from this part.</p> 9608 need anything from this part.</p>
9609<div class="toc"> 9609<div class="toc">
9610<p><b>Table of Contents</b></p> 9610<p><b>Table of Contents</b></p>
9611<dl class="toc"> 9611<dl class="toc">
9612<dt><span class="chapter"><a href="#infr.design">26. Design of the pkgsrc infrastructure</a></span></dt> 9612<dt><span class="chapter"><a href="#infr.design">26. Design of the pkgsrc infrastructure</a></span></dt>
9613<dd><dl> 9613<dd><dl>
9614<dt><span class="sect1"><a href="#infr.vardef">26.1. The meaning of variable definitions</a></span></dt> 9614<dt><span class="sect1"><a href="#infr.vardef">26.1. The meaning of variable definitions</a></span></dt>
9615<dt><span class="sect1"><a href="#infr.vardef.problems">26.2. Avoiding problems before they arise</a></span></dt> 9615<dt><span class="sect1"><a href="#infr.vardef.problems">26.2. Avoiding problems before they arise</a></span></dt>
9616<dt><span class="sect1"><a href="#infr.var">26.3. Variable evaluation</a></span></dt> 9616<dt><span class="sect1"><a href="#infr.var">26.3. Variable evaluation</a></span></dt>
9617<dd><dl> 9617<dd><dl>
9618<dt><span class="sect2"><a href="#infr.var.load">26.3.1. At load time</a></span></dt> 9618<dt><span class="sect2"><a href="#infr.var.load">26.3.1. At load time</a></span></dt>
9619<dt><span class="sect2"><a href="#infr.var.run">26.3.2. At runtime</a></span></dt> 9619<dt><span class="sect2"><a href="#infr.var.run">26.3.2. At runtime</a></span></dt>
9620</dl></dd> 9620</dl></dd>
9621<dt><span class="sect1"><a href="#infr.varspec">26.4. How can variables be specified?</a></span></dt> 9621<dt><span class="sect1"><a href="#infr.varspec">26.4. How can variables be specified?</a></span></dt>
9622<dt><span class="sect1"><a href="#infr.design.intf">26.5. Designing interfaces for Makefile fragments</a></span></dt> 9622<dt><span class="sect1"><a href="#infr.design.intf">26.5. Designing interfaces for Makefile fragments</a></span></dt>
9623<dd><dl> 9623<dd><dl>
9624<dt><span class="sect2"><a href="#infr.design.intf.proc">26.5.1. Procedures with parameters</a></span></dt> 9624<dt><span class="sect2"><a href="#infr.design.intf.proc">26.5.1. Procedures with parameters</a></span></dt>
9625<dt><span class="sect2"><a href="#infr.design.intf.action">26.5.2. Actions taken on behalf of parameters</a></span></dt> 9625<dt><span class="sect2"><a href="#infr.design.intf.action">26.5.2. Actions taken on behalf of parameters</a></span></dt>
9626</dl></dd> 9626</dl></dd>
9627<dt><span class="sect1"><a href="#infr.order">26.6. The order in which files are loaded</a></span></dt> 9627<dt><span class="sect1"><a href="#infr.order">26.6. The order in which files are loaded</a></span></dt>
9628<dd><dl> 9628<dd><dl>
9629<dt><span class="sect2"><a href="#infr.order.prefs">26.6.1. The order in <code class="filename">bsd.prefs.mk</code></a></span></dt> 9629<dt><span class="sect2"><a href="#infr.order.prefs">26.6.1. The order in <code class="filename">bsd.prefs.mk</code></a></span></dt>
9630<dt><span class="sect2"><a href="#infr.order.pkg">26.6.2. The order in <code class="filename">bsd.pkg.mk</code></a></span></dt> 9630<dt><span class="sect2"><a href="#infr.order.pkg">26.6.2. The order in <code class="filename">bsd.pkg.mk</code></a></span></dt>
9631</dl></dd> 9631</dl></dd>
9632</dl></dd> 9632</dl></dd>
9633<dt><span class="chapter"><a href="#regression">27. Regression tests</a></span></dt> 9633<dt><span class="chapter"><a href="#regression">27. Regression tests</a></span></dt>
9634<dd><dl> 9634<dd><dl>
9635<dt><span class="sect1"><a href="#regression.run">27.1. Running the regression tests</a></span></dt> 9635<dt><span class="sect1"><a href="#regression.run">27.1. Running the regression tests</a></span></dt>
9636<dt><span class="sect1"><a href="#regression.new">27.2. Adding a new regression test</a></span></dt> 9636<dt><span class="sect1"><a href="#regression.new">27.2. Adding a new regression test</a></span></dt>
9637<dd><dl> 9637<dd><dl>
9638<dt><span class="sect2"><a href="#regression.fun.override">27.2.1. Overridable functions</a></span></dt> 9638<dt><span class="sect2"><a href="#regression.fun.override">27.2.1. Overridable functions</a></span></dt>
9639<dt><span class="sect2"><a href="#regression.fun.helper">27.2.2. Helper functions</a></span></dt> 9639<dt><span class="sect2"><a href="#regression.fun.helper">27.2.2. Helper functions</a></span></dt>
9640</dl></dd> 9640</dl></dd>
9641</dl></dd> 9641</dl></dd>
9642<dt><span class="chapter"><a href="#porting">28. Porting pkgsrc</a></span></dt> 9642<dt><span class="chapter"><a href="#porting">28. Porting pkgsrc</a></span></dt>
9643<dd><dl><dt><span class="sect1"><a href="#porting.opsys">28.1. Porting pkgsrc to a new operating system</a></span></dt></dl></dd> 9643<dd><dl><dt><span class="sect1"><a href="#porting.opsys">28.1. Porting pkgsrc to a new operating system</a></span></dt></dl></dd>
9644</dl> 9644</dl>
9645</div> 9645</div>
9646</div> 9646</div>
9647<div class="chapter"> 9647<div class="chapter">
9648<div class="titlepage"><div><div><h2 class="title"> 9648<div class="titlepage"><div><div><h2 class="title">
9649<a name="infr.design"></a>Chapter 26. Design of the pkgsrc infrastructure</h2></div></div></div> 9649<a name="infr.design"></a>Chapter 26. Design of the pkgsrc infrastructure</h2></div></div></div>
9650<div class="toc"> 9650<div class="toc">
9651<p><b>Table of Contents</b></p> 9651<p><b>Table of Contents</b></p>
9652<dl class="toc"> 9652<dl class="toc">
9653<dt><span class="sect1"><a href="#infr.vardef">26.1. The meaning of variable definitions</a></span></dt> 9653<dt><span class="sect1"><a href="#infr.vardef">26.1. The meaning of variable definitions</a></span></dt>
9654<dt><span class="sect1"><a href="#infr.vardef.problems">26.2. Avoiding problems before they arise</a></span></dt> 9654<dt><span class="sect1"><a href="#infr.vardef.problems">26.2. Avoiding problems before they arise</a></span></dt>
9655<dt><span class="sect1"><a href="#infr.var">26.3. Variable evaluation</a></span></dt> 9655<dt><span class="sect1"><a href="#infr.var">26.3. Variable evaluation</a></span></dt>
9656<dd><dl> 9656<dd><dl>
9657<dt><span class="sect2"><a href="#infr.var.load">26.3.1. At load time</a></span></dt> 9657<dt><span class="sect2"><a href="#infr.var.load">26.3.1. At load time</a></span></dt>
9658<dt><span class="sect2"><a href="#infr.var.run">26.3.2. At runtime</a></span></dt> 9658<dt><span class="sect2"><a href="#infr.var.run">26.3.2. At runtime</a></span></dt>
9659</dl></dd> 9659</dl></dd>
9660<dt><span class="sect1"><a href="#infr.varspec">26.4. How can variables be specified?</a></span></dt> 9660<dt><span class="sect1"><a href="#infr.varspec">26.4. How can variables be specified?</a></span></dt>
9661<dt><span class="sect1"><a href="#infr.design.intf">26.5. Designing interfaces for Makefile fragments</a></span></dt> 9661<dt><span class="sect1"><a href="#infr.design.intf">26.5. Designing interfaces for Makefile fragments</a></span></dt>
9662<dd><dl> 9662<dd><dl>
9663<dt><span class="sect2"><a href="#infr.design.intf.proc">26.5.1. Procedures with parameters</a></span></dt> 9663<dt><span class="sect2"><a href="#infr.design.intf.proc">26.5.1. Procedures with parameters</a></span></dt>
9664<dt><span class="sect2"><a href="#infr.design.intf.action">26.5.2. Actions taken on behalf of parameters</a></span></dt> 9664<dt><span class="sect2"><a href="#infr.design.intf.action">26.5.2. Actions taken on behalf of parameters</a></span></dt>
9665</dl></dd> 9665</dl></dd>
9666<dt><span class="sect1"><a href="#infr.order">26.6. The order in which files are loaded</a></span></dt> 9666<dt><span class="sect1"><a href="#infr.order">26.6. The order in which files are loaded</a></span></dt>
9667<dd><dl> 9667<dd><dl>
9668<dt><span class="sect2"><a href="#infr.order.prefs">26.6.1. The order in <code class="filename">bsd.prefs.mk</code></a></span></dt> 9668<dt><span class="sect2"><a href="#infr.order.prefs">26.6.1. The order in <code class="filename">bsd.prefs.mk</code></a></span></dt>
9669<dt><span class="sect2"><a href="#infr.order.pkg">26.6.2. The order in <code class="filename">bsd.pkg.mk</code></a></span></dt> 9669<dt><span class="sect2"><a href="#infr.order.pkg">26.6.2. The order in <code class="filename">bsd.pkg.mk</code></a></span></dt>
9670</dl></dd> 9670</dl></dd>
9671</dl> 9671</dl>
9672</div> 9672</div>
9673<p>The pkgsrc infrastructure consists of many small Makefile 9673<p>The pkgsrc infrastructure consists of many small Makefile
9674 fragments. Each such fragment needs a properly specified 9674 fragments. Each such fragment needs a properly specified
9675 interface. This chapter explains how such an interface looks 9675 interface. This chapter explains how such an interface looks
9676 like.</p> 9676 like.</p>
9677<div class="sect1"> 9677<div class="sect1">
9678<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9678<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9679<a name="infr.vardef"></a>26.1. The meaning of variable definitions</h2></div></div></div> 9679<a name="infr.vardef"></a>26.1. The meaning of variable definitions</h2></div></div></div>
9680<p>Whenever a variable is defined in the pkgsrc 9680<p>Whenever a variable is defined in the pkgsrc
9681 infrastructure, the location and the way of definition provide 9681 infrastructure, the location and the way of definition provide
9682 much information about the intended use of that variable. 9682 much information about the intended use of that variable.
9683 Additionally, more documentation may be found in a header 9683 Additionally, more documentation may be found in a header
9684 comment or in this pkgsrc guide.</p> 9684 comment or in this pkgsrc guide.</p>
9685<p>A special file is 9685<p>A special file is
9686 <code class="filename">mk/defaults/mk.conf</code>, which lists all 9686 <code class="filename">mk/defaults/mk.conf</code>, which lists all
9687 variables that are intended to be user-defined. They are either 9687 variables that are intended to be user-defined. They are either
9688 defined using the <code class="literal">?=</code> operator or they are 9688 defined using the <code class="literal">?=</code> operator or they are
9689 left undefined because defining them to anything would 9689 left undefined because defining them to anything would
9690 effectively mean <span class="quote">&#8220;<span class="quote">yes</span>&#8221;</span>. All these variables may be 9690 effectively mean <span class="quote">&#8220;<span class="quote">yes</span>&#8221;</span>. All these variables may be
9691 overridden by the pkgsrc user in the <code class="varname">MAKECONF</code> 9691 overridden by the pkgsrc user in the <code class="varname">MAKECONF</code>
9692 file.</p> 9692 file.</p>
9693<p>Outside this file, the following conventions apply: 9693<p>Outside this file, the following conventions apply:
9694 Variables that are defined using the <code class="literal">?=</code> 9694 Variables that are defined using the <code class="literal">?=</code>
9695 operator may be overridden by a package.</p> 9695 operator may be overridden by a package.</p>
9696<p>Variables that are defined using the <code class="literal">=</code> 9696<p>Variables that are defined using the <code class="literal">=</code>
9697 operator may be used read-only at run-time.</p> 9697 operator may be used read-only at run-time.</p>
9698<p>Variables whose name starts with an underscore must not be 9698<p>Variables whose name starts with an underscore must not be
9699 accessed outside the pkgsrc infrastructure at all. They may 9699 accessed outside the pkgsrc infrastructure at all. They may
9700 change without further notice.</p> 9700 change without further notice.</p>
9701<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> 9701<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
9702<h3 class="title">Note</h3> 9702<h3 class="title">Note</h3>
9703<p>These conventions are currently not applied 9703<p>These conventions are currently not applied
9704 consistently to the complete pkgsrc 9704 consistently to the complete pkgsrc
9705 infrastructure.</p> 9705 infrastructure.</p>
9706</div> 9706</div>
9707</div> 9707</div>
9708<div class="sect1"> 9708<div class="sect1">
9709<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9709<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9710<a name="infr.vardef.problems"></a>26.2. Avoiding problems before they arise</h2></div></div></div> 9710<a name="infr.vardef.problems"></a>26.2. Avoiding problems before they arise</h2></div></div></div>
9711<p>All variables that contain lists of things should default 9711<p>All variables that contain lists of things should default
9712 to being empty. Two examples that do not follow this rule are 9712 to being empty. Two examples that do not follow this rule are
9713 <code class="varname">USE_LANGUAGES</code> and 9713 <code class="varname">USE_LANGUAGES</code> and
9714 <code class="varname">DISTFILES</code>. These variables cannot simply be 9714 <code class="varname">DISTFILES</code>. These variables cannot simply be
9715 modified using the <code class="literal">+=</code> operator in package 9715 modified using the <code class="literal">+=</code> operator in package
9716 <code class="filename">Makefile</code>s (or other files included by 9716 <code class="filename">Makefile</code>s (or other files included by
9717 them), since there is no guarantee whether the variable is 9717 them), since there is no guarantee whether the variable is
9718 already set or not, and what its value is. In the case of 9718 already set or not, and what its value is. In the case of
9719 <code class="varname">DISTFILES</code>, the packages <span class="quote">&#8220;<span class="quote">know</span>&#8221;</span> 9719 <code class="varname">DISTFILES</code>, the packages <span class="quote">&#8220;<span class="quote">know</span>&#8221;</span>
9720 the default value and just define it as in the following 9720 the default value and just define it as in the following
9721 example.</p> 9721 example.</p>
9722<pre class="programlisting"> 9722<pre class="programlisting">
9723DISTFILES= ${DISTNAME}${EXTRACT_SUFX} additional-files.tar.gz 9723DISTFILES= ${DISTNAME}${EXTRACT_SUFX} additional-files.tar.gz
9724</pre> 9724</pre>
9725<p>Because of the selection of this default value, the same 9725<p>Because of the selection of this default value, the same
9726 value appears in many package Makefiles. Similarly for 9726 value appears in many package Makefiles. Similarly for
9727 <code class="varname">USE_LANGUAGES</code>, but in this case the default 9727 <code class="varname">USE_LANGUAGES</code>, but in this case the default
9728 value (<span class="quote">&#8220;<span class="quote"><code class="literal">c</code></span>&#8221;</span>) is so short that it 9728 value (<span class="quote">&#8220;<span class="quote"><code class="literal">c</code></span>&#8221;</span>) is so short that it
9729 doesn't stand out. Nevertheless it is mentioned in many 9729 doesn't stand out. Nevertheless it is mentioned in many
9730 files.</p> 9730 files.</p>
9731</div> 9731</div>
9732<div class="sect1"> 9732<div class="sect1">
9733<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9733<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9734<a name="infr.var"></a>26.3. Variable evaluation</h2></div></div></div> 9734<a name="infr.var"></a>26.3. Variable evaluation</h2></div></div></div>
9735<div class="sect2"> 9735<div class="sect2">
9736<div class="titlepage"><div><div><h3 class="title"> 9736<div class="titlepage"><div><div><h3 class="title">
9737<a name="infr.var.load"></a>26.3.1. At load time</h3></div></div></div> 9737<a name="infr.var.load"></a>26.3.1. At load time</h3></div></div></div>
9738<p>Variable evaluation takes place either at load time or at 9738<p>Variable evaluation takes place either at load time or at
9739 runtime, depending on the context in which they occur. The 9739 runtime, depending on the context in which they occur. The
9740 contexts where variables are evaluated at load time are:</p> 9740 contexts where variables are evaluated at load time are:</p>
9741<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 9741<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
9742<li class="listitem"><p>The right hand side of the <code class="literal">:=</code> 9742<li class="listitem"><p>The right hand side of the <code class="literal">:=</code>
9743 and <code class="literal">!=</code> operators,</p></li> 9743 and <code class="literal">!=</code> operators,</p></li>
9744<li class="listitem"><p>Make directives like <code class="literal">.if</code> or 9744<li class="listitem"><p>Make directives like <code class="literal">.if</code> or
9745 <code class="literal">.for</code>,</p></li> 9745 <code class="literal">.for</code>,</p></li>
9746<li class="listitem"><p>Dependency lines.</p></li> 9746<li class="listitem"><p>Dependency lines.</p></li>
9747</ul></div> 9747</ul></div>
9748<p>A special exception are references to the iteration 9748<p>A special exception are references to the iteration
9749 variables of <code class="literal">.for</code> loops, which are expanded 9749 variables of <code class="literal">.for</code> loops, which are expanded
9750 inline, no matter in which context they appear.</p> 9750 inline, no matter in which context they appear.</p>
9751<p>As the values of variables may change during load time, 9751<p>As the values of variables may change during load time,
9752 care must be taken not to evaluate them by accident. Typical 9752 care must be taken not to evaluate them by accident. Typical
9753 examples for variables that should not be evaluated at load time 9753 examples for variables that should not be evaluated at load time
9754 are <code class="varname">DEPENDS</code> and 9754 are <code class="varname">DEPENDS</code> and
9755 <code class="varname">CONFIGURE_ARGS</code>. To make the effect more 9755 <code class="varname">CONFIGURE_ARGS</code>. To make the effect more
9756 clear, here is an example:</p> 9756 clear, here is an example:</p>
9757<pre class="programlisting"> 9757<pre class="programlisting">
9758CONFIGURE_ARGS= # none 9758CONFIGURE_ARGS= # none
9759CFLAGS= -O 9759CFLAGS= -O
9760CONFIGURE_ARGS+= CFLAGS=${CFLAGS:Q} 9760CONFIGURE_ARGS+= CFLAGS=${CFLAGS:Q}
9761 9761
9762CONFIGURE_ARGS:= ${CONFIGURE_ARGS} 9762CONFIGURE_ARGS:= ${CONFIGURE_ARGS}
9763 9763
9764CFLAGS+= -Wall 9764CFLAGS+= -Wall
9765</pre> 9765</pre>
9766<p>This code shows how the use of the <code class="literal">:=</code> 9766<p>This code shows how the use of the <code class="literal">:=</code>
9767 operator can quickly lead to unexpected results. The first 9767 operator can quickly lead to unexpected results. The first
9768 paragraph is fairly common code. The second paragraph evaluates 9768 paragraph is fairly common code. The second paragraph evaluates
9769 the <code class="varname">CONFIGURE_ARGS</code> variable, which results in 9769 the <code class="varname">CONFIGURE_ARGS</code> variable, which results in
9770 <code class="literal">CFLAGS=-O</code>. In the third paragraph, the 9770 <code class="literal">CFLAGS=-O</code>. In the third paragraph, the
9771 <code class="literal">-Wall</code> is appended to the 9771 <code class="literal">-Wall</code> is appended to the
9772 <code class="varname">CFLAGS</code>, but this addition will not appear in 9772 <code class="varname">CFLAGS</code>, but this addition will not appear in
9773 <code class="varname">CONFIGURE_ARGS</code>. In actual code, the three 9773 <code class="varname">CONFIGURE_ARGS</code>. In actual code, the three
9774 paragraphs from above typically occur in completely unrelated 9774 paragraphs from above typically occur in completely unrelated
9775 files.</p> 9775 files.</p>
9776</div> 9776</div>
9777<div class="sect2"> 9777<div class="sect2">
9778<div class="titlepage"><div><div><h3 class="title"> 9778<div class="titlepage"><div><div><h3 class="title">
9779<a name="infr.var.run"></a>26.3.2. At runtime</h3></div></div></div> 9779<a name="infr.var.run"></a>26.3.2. At runtime</h3></div></div></div>
9780<p>After all the files have been loaded, the values of the 9780<p>After all the files have been loaded, the values of the
9781 variables cannot be changed anymore. Variables that are used in 9781 variables cannot be changed anymore. Variables that are used in
9782 the shell commands are expanded at this point.</p> 9782 the shell commands are expanded at this point.</p>
9783</div> 9783</div>
9784</div> 9784</div>
9785<div class="sect1"> 9785<div class="sect1">
9786<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9786<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9787<a name="infr.varspec"></a>26.4. How can variables be specified?</h2></div></div></div> 9787<a name="infr.varspec"></a>26.4. How can variables be specified?</h2></div></div></div>
9788<p>There are many ways in which the definition and use of a 9788<p>There are many ways in which the definition and use of a
9789 variable can be restricted in order to detect bugs and violations 9789 variable can be restricted in order to detect bugs and violations
9790 of the (mostly unwritten) policies. A package can be checked with 9790 of the (mostly unwritten) policies. A package can be checked with
9791 <code class="literal">pkglint -Wall</code> to see whether it meets these 9791 <code class="literal">pkglint -Wall</code> to see whether it meets these
9792 rules.</p> 9792 rules.</p>
9793</div> 9793</div>
9794<div class="sect1"> 9794<div class="sect1">
9795<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9795<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9796<a name="infr.design.intf"></a>26.5. Designing interfaces for Makefile fragments</h2></div></div></div> 9796<a name="infr.design.intf"></a>26.5. Designing interfaces for Makefile fragments</h2></div></div></div>
9797<p>Most of the <code class="filename">.mk</code> files fall into one 9797<p>Most of the <code class="filename">.mk</code> files fall into one
9798 of the following classes. Cases where a file falls into more 9798 of the following classes. Cases where a file falls into more
9799 than one class should be avoided as it often leads to subtle 9799 than one class should be avoided as it often leads to subtle
9800 bugs.</p> 9800 bugs.</p>
9801<div class="sect2"> 9801<div class="sect2">
9802<div class="titlepage"><div><div><h3 class="title"> 9802<div class="titlepage"><div><div><h3 class="title">
9803<a name="infr.design.intf.proc"></a>26.5.1. Procedures with parameters</h3></div></div></div> 9803<a name="infr.design.intf.proc"></a>26.5.1. Procedures with parameters</h3></div></div></div>
9804<p>In a traditional imperative programming language some of 9804<p>In a traditional imperative programming language some of
9805 the <code class="filename">.mk</code> files could be described as 9805 the <code class="filename">.mk</code> files could be described as
9806 procedures. They take some input parameters and&mdash;after 9806 procedures. They take some input parameters and&mdash;after
9807 inclusion&mdash;provide a result in output parameters. Since all 9807 inclusion&mdash;provide a result in output parameters. Since all
9808 variables in <code class="filename">Makefile</code>s have global scope 9808 variables in <code class="filename">Makefile</code>s have global scope
9809 care must be taken not to use parameter names that have already 9809 care must be taken not to use parameter names that have already
9810 another meaning. For example, <code class="varname">PKGNAME</code> is a 9810 another meaning. For example, <code class="varname">PKGNAME</code> is a
9811 bad choice for a parameter name.</p> 9811 bad choice for a parameter name.</p>
9812<p>Procedures are completely evaluated at preprocessing time. 9812<p>Procedures are completely evaluated at preprocessing time.
9813 That is, when calling a procedure all input parameters must be 9813 That is, when calling a procedure all input parameters must be
9814 completely resolvable. For example, 9814 completely resolvable. For example,
9815 <code class="varname">CONFIGURE_ARGS</code> should never be an input 9815 <code class="varname">CONFIGURE_ARGS</code> should never be an input
9816 parameter since it is very likely that further text will be 9816 parameter since it is very likely that further text will be
9817 added after calling the procedure, which would effectively apply 9817 added after calling the procedure, which would effectively apply
9818 the procedure to only a part of the variable. Also, references 9818 the procedure to only a part of the variable. Also, references
9819 to other variables will be modified after calling the 9819 to other variables will be modified after calling the
9820 procedure.</p> 9820 procedure.</p>
9821<p>A procedure can declare its output parameters either as 9821<p>A procedure can declare its output parameters either as
9822 suitable for use in preprocessing directives or as only 9822 suitable for use in preprocessing directives or as only
9823 available at runtime. The latter alternative is for variables 9823 available at runtime. The latter alternative is for variables
9824 that contain references to other runtime variables.</p> 9824 that contain references to other runtime variables.</p>
9825<p>Procedures shall be written such that it is possible to 9825<p>Procedures shall be written such that it is possible to
9826 call the procedure more than once. That is, the file must not 9826 call the procedure more than once. That is, the file must not
9827 contain multiple-inclusion guards.</p> 9827 contain multiple-inclusion guards.</p>
9828<p>Examples for procedures are 9828<p>Examples for procedures are
9829 <code class="filename">mk/bsd.options.mk</code> and 9829 <code class="filename">mk/bsd.options.mk</code> and
9830 <code class="filename">mk/buildlink3/bsd.builtin.mk</code>. To express 9830 <code class="filename">mk/buildlink3/bsd.builtin.mk</code>. To express
9831 that the parameters are evaluated at load time, they should be 9831 that the parameters are evaluated at load time, they should be
9832 assigned using the <code class="literal">:=</code> operator, which should 9832 assigned using the <code class="literal">:=</code> operator, which should
9833 be used only for this purpose.</p> 9833 be used only for this purpose.</p>
9834</div> 9834</div>
9835<div class="sect2"> 9835<div class="sect2">
9836<div class="titlepage"><div><div><h3 class="title"> 9836<div class="titlepage"><div><div><h3 class="title">
9837<a name="infr.design.intf.action"></a>26.5.2. Actions taken on behalf of parameters</h3></div></div></div> 9837<a name="infr.design.intf.action"></a>26.5.2. Actions taken on behalf of parameters</h3></div></div></div>
9838<p>Action files take some input parameters and may define 9838<p>Action files take some input parameters and may define
9839 runtime variables. They shall not define loadtime variables. 9839 runtime variables. They shall not define loadtime variables.
9840 There are action files that are included implicitly by the 9840 There are action files that are included implicitly by the
9841 pkgsrc infrastructure, while other must be included 9841 pkgsrc infrastructure, while other must be included
9842 explicitly.</p> 9842 explicitly.</p>
9843<p>An example for action files is 9843<p>An example for action files is
9844 <code class="filename">mk/subst.mk</code>.</p> 9844 <code class="filename">mk/subst.mk</code>.</p>
9845</div> 9845</div>
9846</div> 9846</div>
9847<div class="sect1"> 9847<div class="sect1">
9848<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9848<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9849<a name="infr.order"></a>26.6. The order in which files are loaded</h2></div></div></div> 9849<a name="infr.order"></a>26.6. The order in which files are loaded</h2></div></div></div>
9850<p>Package <code class="filename">Makefile</code>s usually consist of 9850<p>Package <code class="filename">Makefile</code>s usually consist of
9851 a set of variable definitions, and include the file 9851 a set of variable definitions, and include the file
9852 <code class="filename">../../mk/bsd.pkg.mk</code> in the very last line. 9852 <code class="filename">../../mk/bsd.pkg.mk</code> in the very last line.
9853 Before that, they may also include various other 9853 Before that, they may also include various other
9854 <code class="filename">*.mk</code> files if they need to query the 9854 <code class="filename">*.mk</code> files if they need to query the
9855 availability of certain features like the type of compiler or 9855 availability of certain features like the type of compiler or
9856 the X11 implementation. Due to the heavy use of preprocessor 9856 the X11 implementation. Due to the heavy use of preprocessor
9857 directives like <code class="literal">.if</code> and 9857 directives like <code class="literal">.if</code> and
9858 <code class="literal">.for</code>, the order in which the files are loaded 9858 <code class="literal">.for</code>, the order in which the files are loaded
9859 matters.</p> 9859 matters.</p>
9860<p>This section describes at which point the various files 9860<p>This section describes at which point the various files
9861 are loaded and gives reasons for that order.</p> 9861 are loaded and gives reasons for that order.</p>
9862<div class="sect2"> 9862<div class="sect2">
9863<div class="titlepage"><div><div><h3 class="title"> 9863<div class="titlepage"><div><div><h3 class="title">
9864<a name="infr.order.prefs"></a>26.6.1. The order in <code class="filename">bsd.prefs.mk</code> 9864<a name="infr.order.prefs"></a>26.6.1. The order in <code class="filename">bsd.prefs.mk</code>
9865</h3></div></div></div> 9865</h3></div></div></div>
9866<p>The very first action in <code class="filename">bsd.prefs.mk</code> 9866<p>The very first action in <code class="filename">bsd.prefs.mk</code>
9867 is to define some essential variables like 9867 is to define some essential variables like
9868 <code class="varname">OPSYS</code>, <code class="varname">OS_VERSION</code> and 9868 <code class="varname">OPSYS</code>, <code class="varname">OS_VERSION</code> and
9869 <code class="varname">MACHINE_ARCH</code>.</p> 9869 <code class="varname">MACHINE_ARCH</code>.</p>
9870<p>Then, the user settings are loaded from the file specified 9870<p>Then, the user settings are loaded from the file specified
9871 in <code class="varname">MAKECONF</code>, which is usually <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>. 9871 in <code class="varname">MAKECONF</code>, which is usually <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>.
9872 After that, those variables 9872 After that, those variables
9873 that have not been overridden by the user are loaded from 9873 that have not been overridden by the user are loaded from
9874 <code class="filename">mk/defaults/mk.conf</code>.</p> 9874 <code class="filename">mk/defaults/mk.conf</code>.</p>
9875<p>After the user settings, the system settings and platform 9875<p>After the user settings, the system settings and platform
9876 settings are loaded, which may override the user 9876 settings are loaded, which may override the user
9877 settings.</p> 9877 settings.</p>
9878<p>Then, the tool definitions are loaded. The tool wrappers 9878<p>Then, the tool definitions are loaded. The tool wrappers
9879 are not yet in effect. This only happens when building a 9879 are not yet in effect. This only happens when building a
9880 package, so the proper variables must be used instead of the 9880 package, so the proper variables must be used instead of the
9881 direct tool names.</p> 9881 direct tool names.</p>
9882<p>As the last steps, some essential variables from the 9882<p>As the last steps, some essential variables from the
9883 wrapper and the package system flavor are loaded, as well as the 9883 wrapper and the package system flavor are loaded, as well as the
9884 variables that have been cached in earlier phases of a package 9884 variables that have been cached in earlier phases of a package
9885 build.</p> 9885 build.</p>
9886</div> 9886</div>
9887<div class="sect2"> 9887<div class="sect2">
9888<div class="titlepage"><div><div><h3 class="title"> 9888<div class="titlepage"><div><div><h3 class="title">
9889<a name="infr.order.pkg"></a>26.6.2. The order in <code class="filename">bsd.pkg.mk</code> 9889<a name="infr.order.pkg"></a>26.6.2. The order in <code class="filename">bsd.pkg.mk</code>
9890</h3></div></div></div> 9890</h3></div></div></div>
9891<p>First, <code class="filename">bsd.prefs.mk</code> is loaded.</p> 9891<p>First, <code class="filename">bsd.prefs.mk</code> is loaded.</p>
9892<p>Then, the various <code class="filename">*-vars.mk</code> files are 9892<p>Then, the various <code class="filename">*-vars.mk</code> files are
9893 loaded, which fill default values for those variables that have 9893 loaded, which fill default values for those variables that have
9894 not been defined by the package. These variables may later 9894 not been defined by the package. These variables may later
9895 be used even in unrelated files.</p> 9895 be used even in unrelated files.</p>
9896<p>Then, the file <code class="filename">bsd.pkg.error.mk</code> 9896<p>Then, the file <code class="filename">bsd.pkg.error.mk</code>
9897 provides the target <code class="literal">error-check</code> that is added 9897 provides the target <code class="literal">error-check</code> that is added
9898 as a special dependency to all other targets that use 9898 as a special dependency to all other targets that use
9899 <code class="varname">DELAYED_ERROR_MSG</code> or 9899 <code class="varname">DELAYED_ERROR_MSG</code> or
9900 <code class="varname">DELAYED_WARNING_MSG</code>.</p> 9900 <code class="varname">DELAYED_WARNING_MSG</code>.</p>
9901<p>Then, the package-specific hacks from 9901<p>Then, the package-specific hacks from
9902 <code class="filename">hacks.mk</code> are included.</p> 9902 <code class="filename">hacks.mk</code> are included.</p>
9903<p>Then, various other files follow. Most of them don't have 9903<p>Then, various other files follow. Most of them don't have
9904 any dependencies on what they need to have included before or 9904 any dependencies on what they need to have included before or
9905 after them, though some do.</p> 9905 after them, though some do.</p>
9906<p>The code to check <code class="varname">PKG_FAIL_REASON</code> and 9906<p>The code to check <code class="varname">PKG_FAIL_REASON</code> and
9907 <code class="varname">PKG_SKIP_REASON</code> is then executed, which 9907 <code class="varname">PKG_SKIP_REASON</code> is then executed, which
9908 restricts the use of these variables to all the files that have 9908 restricts the use of these variables to all the files that have
9909 been included before. Appearances in later files will be 9909 been included before. Appearances in later files will be
9910 silently ignored.</p> 9910 silently ignored.</p>
9911<p>Then, the files for the main targets are included, in the 9911<p>Then, the files for the main targets are included, in the
9912 order of later execution, though the actual order should not 9912 order of later execution, though the actual order should not
9913 matter.</p> 9913 matter.</p>
9914<p>At last, some more files are included that don't set any 9914<p>At last, some more files are included that don't set any
9915 interesting variables but rather just define make targets to be 9915 interesting variables but rather just define make targets to be
9916 executed.</p> 9916 executed.</p>
9917</div> 9917</div>
9918</div> 9918</div>
9919</div> 9919</div>
9920<div class="chapter"> 9920<div class="chapter">
9921<div class="titlepage"><div><div><h2 class="title"> 9921<div class="titlepage"><div><div><h2 class="title">
9922<a name="regression"></a>Chapter 27. Regression tests</h2></div></div></div> 9922<a name="regression"></a>Chapter 27. Regression tests</h2></div></div></div>
9923<div class="toc"> 9923<div class="toc">
9924<p><b>Table of Contents</b></p> 9924<p><b>Table of Contents</b></p>
9925<dl class="toc"> 9925<dl class="toc">
9926<dt><span class="sect1"><a href="#regression.run">27.1. Running the regression tests</a></span></dt> 9926<dt><span class="sect1"><a href="#regression.run">27.1. Running the regression tests</a></span></dt>
9927<dt><span class="sect1"><a href="#regression.new">27.2. Adding a new regression test</a></span></dt> 9927<dt><span class="sect1"><a href="#regression.new">27.2. Adding a new regression test</a></span></dt>
9928<dd><dl> 9928<dd><dl>
9929<dt><span class="sect2"><a href="#regression.fun.override">27.2.1. Overridable functions</a></span></dt> 9929<dt><span class="sect2"><a href="#regression.fun.override">27.2.1. Overridable functions</a></span></dt>
9930<dt><span class="sect2"><a href="#regression.fun.helper">27.2.2. Helper functions</a></span></dt> 9930<dt><span class="sect2"><a href="#regression.fun.helper">27.2.2. Helper functions</a></span></dt>
9931</dl></dd> 9931</dl></dd>
9932</dl> 9932</dl>
9933</div> 9933</div>
9934<p>The pkgsrc infrastructure consists of a large codebase, 9934<p>The pkgsrc infrastructure consists of a large codebase,
9935 and there are many corners where every little bit of a file is 9935 and there are many corners where every little bit of a file is
9936 well thought out, making pkgsrc likely to fail as soon as 9936 well thought out, making pkgsrc likely to fail as soon as
9937 anything is changed near those parts. To prevent most changes 9937 anything is changed near those parts. To prevent most changes
9938 from breaking anything, a suite of regression tests should go 9938 from breaking anything, a suite of regression tests should go
9939 along with every important part of the pkgsrc infrastructure. 9939 along with every important part of the pkgsrc infrastructure.
9940 This chapter describes how regression tests work in pkgsrc and 9940 This chapter describes how regression tests work in pkgsrc and
9941 how you can add new tests.</p> 9941 how you can add new tests.</p>
9942<div class="sect1"> 9942<div class="sect1">
9943<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9943<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9944<a name="regression.run"></a>27.1. Running the regression tests</h2></div></div></div> 9944<a name="regression.run"></a>27.1. Running the regression tests</h2></div></div></div>
9945<p>You first need to install the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkg_regress/README.html" target="_top"><code class="filename">pkgtools/pkg_regress</code></a> package, which 9945<p>You first need to install the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkg_regress/README.html" target="_top"><code class="filename">pkgtools/pkg_regress</code></a> package, which
9946 provides the <span class="command"><strong>pkg_regress</strong></span> command. Then you 9946 provides the <span class="command"><strong>pkg_regress</strong></span> command. Then you
9947 can simply run that command, which will run all tests in the 9947 can simply run that command, which will run all tests in the
9948 <code class="filename">regress/</code> directory.</p> 9948 <code class="filename">regress/</code> directory.</p>
9949</div> 9949</div>
9950<div class="sect1"> 9950<div class="sect1">
9951<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 9951<div class="titlepage"><div><div><h2 class="title" style="clear: both">
9952<a name="regression.new"></a>27.2. Adding a new regression test</h2></div></div></div> 9952<a name="regression.new"></a>27.2. Adding a new regression test</h2></div></div></div>
9953<p>Every directory in the <code class="filename">regress/</code> 9953<p>Every directory in the <code class="filename">regress/</code>
9954 directory that contains a file called <code class="filename">spec</code> 9954 directory that contains a file called <code class="filename">spec</code>
9955 is considered a regression test. This file is a shell program 9955 is considered a regression test. This file is a shell program
9956 that is included by the <span class="command"><strong>pkg_regress</strong></span> command. 9956 that is included by the <span class="command"><strong>pkg_regress</strong></span> command.
9957 The following functions can be overridden to suit your 9957 The following functions can be overridden to suit your
9958 needs.</p> 9958 needs.</p>
9959<div class="sect2"> 9959<div class="sect2">
9960<div class="titlepage"><div><div><h3 class="title"> 9960<div class="titlepage"><div><div><h3 class="title">
9961<a name="regression.fun.override"></a>27.2.1. Overridable functions</h3></div></div></div> 9961<a name="regression.fun.override"></a>27.2.1. Overridable functions</h3></div></div></div>
9962<p>These functions do not take any parameters. Although they 9962<p>These functions do not take any parameters. Although they
9963 are called in <span class="quote">&#8220;<span class="quote">set -e</span>&#8221;</span> mode, they don't stop at the 9963 are called in <span class="quote">&#8220;<span class="quote">set -e</span>&#8221;</span> mode, they don't stop at the
9964 first failing command. See <a class="ulink" href="http://stackoverflow.com/q/4072984" target="_top">this Stack Overflow 9964 first failing command. See <a class="ulink" href="http://stackoverflow.com/q/4072984" target="_top">this Stack Overflow
9965 question</a> for details.</p> 9965 question</a> for details.</p>
9966<div class="variablelist"><dl class="variablelist"> 9966<div class="variablelist"><dl class="variablelist">
9967<dt><span class="term"><code class="varname">do_setup</code></span></dt> 9967<dt><span class="term"><code class="varname">do_setup</code></span></dt>
9968<dd><p>This function prepares the environment for the 9968<dd><p>This function prepares the environment for the
9969 test. By default it does nothing.</p></dd> 9969 test. By default it does nothing.</p></dd>
9970<dt><span class="term"><code class="varname">do_test</code></span></dt> 9970<dt><span class="term"><code class="varname">do_test</code></span></dt>
9971<dd> 9971<dd>
9972<p>This function runs the actual test. By default, 9972<p>This function runs the actual test. By default,
9973 it calls <code class="varname">TEST_MAKE</code> with the arguments 9973 it calls <code class="varname">TEST_MAKE</code> with the arguments
9974 <code class="varname">MAKEARGS_TEST</code> and writes its output including 9974 <code class="varname">MAKEARGS_TEST</code> and writes its output including
9975 error messages into the file 9975 error messages into the file
9976 <code class="varname">TEST_OUTFILE</code>.</p> 9976 <code class="varname">TEST_OUTFILE</code>.</p>
9977<p>When defining this function, make sure that all output that 9977<p>When defining this function, make sure that all output that
9978 needs to be checked is written to the correct output file. 9978 needs to be checked is written to the correct output file.
9979 Example:</p> 9979 Example:</p>
9980<pre class="programlisting"> 9980<pre class="programlisting">
9981do_test() { 9981do_test() {
9982 echo "Example output" 9982 echo "Example output"
9983} 1&gt;$TEST_OUTFILE 2&gt;&amp;1 9983} 1&gt;$TEST_OUTFILE 2&gt;&amp;1
9984</pre> 9984</pre>
9985</dd> 9985</dd>
9986<dt><span class="term"><code class="varname">check_result</code></span></dt> 9986<dt><span class="term"><code class="varname">check_result</code></span></dt>
9987<dd> 9987<dd>
9988<p>This function is run after the test and is 9988<p>This function is run after the test and is
9989 typically used to compare the actual output from the one that is 9989 typically used to compare the actual output from the one that is
9990 expected. It can make use of the various helper functions from 9990 expected. It can make use of the various helper functions from
9991 the next section. Example:</p> 9991 the next section. Example:</p>
9992<pre class="programlisting"> 9992<pre class="programlisting">
9993check_result() { 9993check_result() {
9994 exit_status 0 9994 exit_status 0
9995 output_require "Example" 9995 output_require "Example"
9996 output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$" 9996 output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$"
9997 output_prohibit "no such file or directory" 9997 output_prohibit "no such file or directory"
9998 regress_fail "expected $expected but got $actual for input $input" 9998 regress_fail "expected $expected but got $actual for input $input"
9999} 9999}
10000</pre> 10000</pre>
10001</dd> 10001</dd>
10002<dt><span class="term"><code class="varname">do_cleanup</code></span></dt> 10002<dt><span class="term"><code class="varname">do_cleanup</code></span></dt>
10003<dd><p>This function cleans everything up after the 10003<dd><p>This function cleans everything up after the
10004 test has been run. By default it does nothing.</p></dd> 10004 test has been run. By default it does nothing.</p></dd>
10005</dl></div> 10005</dl></div>
10006</div> 10006</div>
10007<div class="sect2"> 10007<div class="sect2">
10008<div class="titlepage"><div><div><h3 class="title"> 10008<div class="titlepage"><div><div><h3 class="title">
10009<a name="regression.fun.helper"></a>27.2.2. Helper functions</h3></div></div></div> 10009<a name="regression.fun.helper"></a>27.2.2. Helper functions</h3></div></div></div>
10010<div class="variablelist"><dl class="variablelist"> 10010<div class="variablelist"><dl class="variablelist">
10011<dt><span class="term"><code class="varname">regress_fail <em class="replaceable"><code>message...</code></em></code></span></dt> 10011<dt><span class="term"><code class="varname">regress_fail <em class="replaceable"><code>message...</code></em></code></span></dt>
10012<dd><p>This function makes the test fail with the given error message.</p></dd> 10012<dd><p>This function makes the test fail with the given error message.</p></dd>
10013<dt><span class="term"><code class="varname">exit_status expected</code></span></dt> 10013<dt><span class="term"><code class="varname">exit_status expected</code></span></dt>
10014<dd><p>This function compares the exitcode of the 10014<dd><p>This function compares the exitcode of the
10015 <span class="command"><strong>do_test</strong></span> function with its first parameter. 10015 <span class="command"><strong>do_test</strong></span> function with its first parameter.
10016 If they differ, the test will fail.</p></dd> 10016 If they differ, the test will fail.</p></dd>
10017<dt><span class="term"><code class="varname">output_require regex...</code></span></dt> 10017<dt><span class="term"><code class="varname">output_require regex...</code></span></dt>
10018<dd> 10018<dd>
10019<p>This function checks for each of its parameters 10019<p>This function checks for each of its parameters
10020 if the output from <span class="command"><strong>do_test</strong></span> matches the 10020 if the output from <span class="command"><strong>do_test</strong></span> matches the
10021 extended regular expression. If it does not, the test will 10021 extended regular expression. If it does not, the test will
10022 fail. Example:</p> 10022 fail. Example:</p>
10023<pre class="programlisting"> 10023<pre class="programlisting">
10024output_require "looks fine" 10024output_require "looks fine"
10025output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$" 10025output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$"
10026</pre> 10026</pre>
10027</dd> 10027</dd>
10028<dt><span class="term"><code class="varname">output_prohibit(regex...)</code></span></dt> 10028<dt><span class="term"><code class="varname">output_prohibit(regex...)</code></span></dt>
10029<dd><p>This function checks for each of its parameters 10029<dd><p>This function checks for each of its parameters
10030 if the output from <span class="command"><strong>do_test()</strong></span> does 10030 if the output from <span class="command"><strong>do_test()</strong></span> does
10031 <span class="emphasis"><em>not</em></span> match the extended regular expression. 10031 <span class="emphasis"><em>not</em></span> match the extended regular expression.
10032 If any of the regular expressions matches, the test will 10032 If any of the regular expressions matches, the test will
10033 fail.</p></dd> 10033 fail.</p></dd>
10034</dl></div> 10034</dl></div>
10035</div> 10035</div>
10036</div> 10036</div>
10037</div> 10037</div>
10038<div class="chapter"> 10038<div class="chapter">
10039<div class="titlepage"><div><div><h2 class="title"> 10039<div class="titlepage"><div><div><h2 class="title">
10040<a name="porting"></a>Chapter 28. Porting pkgsrc</h2></div></div></div> 10040<a name="porting"></a>Chapter 28. Porting pkgsrc</h2></div></div></div>
10041<div class="toc"> 10041<div class="toc">
10042<p><b>Table of Contents</b></p> 10042<p><b>Table of Contents</b></p>
10043<dl class="toc"><dt><span class="sect1"><a href="#porting.opsys">28.1. Porting pkgsrc to a new operating system</a></span></dt></dl> 10043<dl class="toc"><dt><span class="sect1"><a href="#porting.opsys">28.1. Porting pkgsrc to a new operating system</a></span></dt></dl>
10044</div> 10044</div>
10045<p>The pkgsrc system has already been ported to many 10045<p>The pkgsrc system has already been ported to many
10046 operating systems, hardware architectures and compilers. This 10046 operating systems, hardware architectures and compilers. This
10047 chapter explains the necessary steps to make pkgsrc even more 10047 chapter explains the necessary steps to make pkgsrc even more
10048 portable.</p> 10048 portable.</p>
10049<div class="sect1"> 10049<div class="sect1">
10050<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10050<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10051<a name="porting.opsys"></a>28.1. Porting pkgsrc to a new operating system</h2></div></div></div> 10051<a name="porting.opsys"></a>28.1. Porting pkgsrc to a new operating system</h2></div></div></div>
10052<p>To port pkgsrc to a new operating system (called 10052<p>To port pkgsrc to a new operating system (called
10053 <code class="literal">MyOS</code> in this example), you need to touch the 10053 <code class="literal">MyOS</code> in this example), you need to touch the
10054 following files:</p> 10054 following files:</p>
10055<div class="variablelist"><dl class="variablelist"> 10055<div class="variablelist"><dl class="variablelist">
10056<dt><span class="term"><code class="filename">pkgtools/bootstrap-mk-files/files/mods/<em class="replaceable"><code>MyOS</code></em>.sys.mk</code></span></dt> 10056<dt><span class="term"><code class="filename">pkgtools/bootstrap-mk-files/files/mods/<em class="replaceable"><code>MyOS</code></em>.sys.mk</code></span></dt>
10057<dd><p>This file contains some basic definitions, for 10057<dd><p>This file contains some basic definitions, for
10058 example the name of the C 10058 example the name of the C
10059 compiler.</p></dd> 10059 compiler.</p></dd>
10060<dt><span class="term"><code class="filename">mk/bsd.prefs.mk</code></span></dt> 10060<dt><span class="term"><code class="filename">mk/bsd.prefs.mk</code></span></dt>
10061<dd><p>Insert code that defines the variables 10061<dd><p>Insert code that defines the variables
10062 <code class="varname">OPSYS</code>, <code class="varname">OS_VERSION</code>, 10062 <code class="varname">OPSYS</code>, <code class="varname">OS_VERSION</code>,
10063 <code class="varname">LOWER_OS_VERSION</code>, 10063 <code class="varname">LOWER_OS_VERSION</code>,
10064 <code class="varname">LOWER_VENDOR</code>, 10064 <code class="varname">LOWER_VENDOR</code>,
10065 <code class="varname">MACHINE_ARCH</code>, <code class="varname">OBJECT_FMT</code>, 10065 <code class="varname">MACHINE_ARCH</code>, <code class="varname">OBJECT_FMT</code>,
10066 <code class="varname">APPEND_ELF</code>, and the other variables that 10066 <code class="varname">APPEND_ELF</code>, and the other variables that
10067 appear in this file.</p></dd> 10067 appear in this file.</p></dd>
10068<dt><span class="term"><code class="filename">mk/platform/<em class="replaceable"><code>MyOS</code></em>.mk</code></span></dt> 10068<dt><span class="term"><code class="filename">mk/platform/<em class="replaceable"><code>MyOS</code></em>.mk</code></span></dt>
10069<dd><p>This file contains the platform-specific 10069<dd><p>This file contains the platform-specific
10070 definitions that are used by pkgsrc. Start by copying one of the 10070 definitions that are used by pkgsrc. Start by copying one of the
10071 other files and edit it to your 10071 other files and edit it to your
10072 needs.</p></dd> 10072 needs.</p></dd>
10073<dt><span class="term"><code class="filename">mk/tools/tools.<em class="replaceable"><code>MyOS</code></em>.mk</code></span></dt> 10073<dt><span class="term"><code class="filename">mk/tools/tools.<em class="replaceable"><code>MyOS</code></em>.mk</code></span></dt>
10074<dd><p>This file defines the paths to all the tools 10074<dd><p>This file defines the paths to all the tools
10075 that are needed by one or the other package in pkgsrc, as well 10075 that are needed by one or the other package in pkgsrc, as well
10076 as by pkgsrc itself. Find out where these tools are on your 10076 as by pkgsrc itself. Find out where these tools are on your
10077 platform and add them.</p></dd> 10077 platform and add them.</p></dd>
10078</dl></div> 10078</dl></div>
10079<p>Now, you should be able to build some basic packages, like 10079<p>Now, you should be able to build some basic packages, like
10080 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/lang/perl5/README.html" target="_top"><code class="filename">lang/perl5</code></a>, <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/shells/bash/README.html" target="_top"><code class="filename">shells/bash</code></a>.</p> 10080 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/lang/perl5/README.html" target="_top"><code class="filename">lang/perl5</code></a>, <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/shells/bash/README.html" target="_top"><code class="filename">shells/bash</code></a>.</p>
10081</div> 10081</div>
10082</div> 10082</div>
10083</div> 10083</div>
10084<div class="appendix"> 10084<div class="appendix">
10085<div class="titlepage"><div><div><h1 class="title"> 10085<div class="titlepage"><div><div><h1 class="title">
10086<a name="examples"></a>Appendix A. A simple example package: bison</h1></div></div></div> 10086<a name="examples"></a>Appendix A. A simple example package: bison</h1></div></div></div>
10087<div class="toc"> 10087<div class="toc">
10088<p><b>Table of Contents</b></p> 10088<p><b>Table of Contents</b></p>
10089<dl class="toc"> 10089<dl class="toc">
10090<dt><span class="sect1"><a href="#example-files">A.1. files</a></span></dt> 10090<dt><span class="sect1"><a href="#example-files">A.1. files</a></span></dt>
10091<dd><dl> 10091<dd><dl>
10092<dt><span class="sect2"><a href="#example-Makefile">A.1.1. Makefile</a></span></dt> 10092<dt><span class="sect2"><a href="#example-Makefile">A.1.1. Makefile</a></span></dt>
10093<dt><span class="sect2"><a href="#example-descr">A.1.2. DESCR</a></span></dt> 10093<dt><span class="sect2"><a href="#example-descr">A.1.2. DESCR</a></span></dt>
10094<dt><span class="sect2"><a href="#example-plist">A.1.3. PLIST</a></span></dt> 10094<dt><span class="sect2"><a href="#example-plist">A.1.3. PLIST</a></span></dt>
10095<dt><span class="sect2"><a href="#checking-package-with-pkglint">A.1.4. Checking a package with <span class="command"><strong>pkglint</strong></span></a></span></dt> 10095<dt><span class="sect2"><a href="#checking-package-with-pkglint">A.1.4. Checking a package with <span class="command"><strong>pkglint</strong></span></a></span></dt>
10096</dl></dd> 10096</dl></dd>
10097<dt><span class="sect1"><a href="#steps-for-b-i-p">A.2. Steps for building, installing, packaging</a></span></dt> 10097<dt><span class="sect1"><a href="#steps-for-b-i-p">A.2. Steps for building, installing, packaging</a></span></dt>
10098</dl> 10098</dl>
10099</div> 10099</div>
10100<p>We checked to find a piece of software that wasn't in the packages 10100<p>We checked to find a piece of software that wasn't in the packages
10101 collection, and picked GNU bison. Quite why someone would want to have 10101 collection, and picked GNU bison. Quite why someone would want to have
10102 <span class="command"><strong>bison</strong></span> when Berkeley <span class="command"><strong>yacc</strong></span> is already 10102 <span class="command"><strong>bison</strong></span> when Berkeley <span class="command"><strong>yacc</strong></span> is already
10103 present in the tree is beyond us, but it's useful for the purposes of 10103 present in the tree is beyond us, but it's useful for the purposes of
10104 this exercise.</p> 10104 this exercise.</p>
10105<div class="sect1"> 10105<div class="sect1">
10106<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10106<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10107<a name="example-files"></a>A.1. files</h2></div></div></div> 10107<a name="example-files"></a>A.1. files</h2></div></div></div>
10108<div class="sect2"> 10108<div class="sect2">
10109<div class="titlepage"><div><div><h3 class="title"> 10109<div class="titlepage"><div><div><h3 class="title">
10110<a name="example-Makefile"></a>A.1.1. Makefile</h3></div></div></div> 10110<a name="example-Makefile"></a>A.1.1. Makefile</h3></div></div></div>
10111<pre class="programlisting"> 10111<pre class="programlisting">
10112# $NetBSD$ 10112# $NetBSD$
10113# 10113#
10114 10114
10115DISTNAME= bison-1.25 10115DISTNAME= bison-1.25
10116CATEGORIES= devel 10116CATEGORIES= devel
10117MASTER_SITES= ${MASTER_SITE_GNU} 10117MASTER_SITES= ${MASTER_SITE_GNU:=bison/}
10118 10118
10119MAINTAINER= pkgsrc-users@NetBSD.org 10119MAINTAINER= pkgsrc-users@NetBSD.org
10120HOMEPAGE= http://www.gnu.org/software/bison/bison.html 10120HOMEPAGE= http://www.gnu.org/software/bison/bison.html
10121COMMENT= GNU yacc clone 10121COMMENT= GNU yacc clone
10122 10122
10123GNU_CONFIGURE= yes 10123GNU_CONFIGURE= yes
10124INFO_FILES= yes 10124INFO_FILES= yes
10125 10125
10126.include "../../mk/bsd.pkg.mk" 10126.include "../../mk/bsd.pkg.mk"
10127</pre> 10127</pre>
10128</div> 10128</div>
10129<div class="sect2"> 10129<div class="sect2">
10130<div class="titlepage"><div><div><h3 class="title"> 10130<div class="titlepage"><div><div><h3 class="title">
10131<a name="example-descr"></a>A.1.2. DESCR</h3></div></div></div> 10131<a name="example-descr"></a>A.1.2. DESCR</h3></div></div></div>
10132<pre class="programlisting"> 10132<pre class="programlisting">
10133GNU version of yacc. Can make re-entrant parsers, and numerous other 10133GNU version of yacc. Can make re-entrant parsers, and numerous other
10134improvements. Why you would want this when Berkeley <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?yacc+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">yacc</span>(1)</span></a> is part 10134improvements. Why you would want this when Berkeley <a class="citerefentry" href="https://netbsd.gw.com/cgi-bin/man-cgi?yacc+1.i386+NetBSD-8.1"><span class="citerefentry"><span class="refentrytitle">yacc</span>(1)</span></a> is part
10135of the NetBSD source tree is beyond me. 10135of the NetBSD source tree is beyond me.
10136</pre> 10136</pre>
10137</div> 10137</div>
10138<div class="sect2"> 10138<div class="sect2">
10139<div class="titlepage"><div><div><h3 class="title"> 10139<div class="titlepage"><div><div><h3 class="title">
10140<a name="example-plist"></a>A.1.3. PLIST</h3></div></div></div> 10140<a name="example-plist"></a>A.1.3. PLIST</h3></div></div></div>
10141<pre class="programlisting"> 10141<pre class="programlisting">
10142@comment $NetBSD$ 10142@comment $NetBSD$
10143bin/bison 10143bin/bison
10144man/man1/bison.1.gz 10144man/man1/bison.1.gz
10145share/bison.simple 10145share/bison.simple
10146share/bison.hairy 10146share/bison.hairy
10147</pre> 10147</pre>
10148</div> 10148</div>
10149<div class="sect2"> 10149<div class="sect2">
10150<div class="titlepage"><div><div><h3 class="title"> 10150<div class="titlepage"><div><div><h3 class="title">
10151<a name="checking-package-with-pkglint"></a>A.1.4. Checking a package with <span class="command"><strong>pkglint</strong></span> 10151<a name="checking-package-with-pkglint"></a>A.1.4. Checking a package with <span class="command"><strong>pkglint</strong></span>
10152</h3></div></div></div> 10152</h3></div></div></div>
10153<p>The NetBSD package system comes with 10153<p>The NetBSD package system comes with
10154 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a> 10154 <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/README.html" target="_top"><code class="filename">pkgtools/pkglint</code></a>
10155 which helps to check the contents of these 10155 which helps to check the contents of these
10156 files. After installation it is quite easy to use, just change to the 10156 files. After installation it is quite easy to use, just change to the
10157 directory of the package you wish to examine and execute 10157 directory of the package you wish to examine and run
10158 <span class="command"><strong>pkglint</strong></span>:</p> 10158 <span class="command"><strong>pkglint</strong></span>:</p>
10159<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pkglint</code></strong> 10159<pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pkglint</code></strong>
10160looks fine.</pre> 10160ERROR: Makefile: Each package must define its LICENSE.
 10161WARN: Makefile:9: HOMEPAGE should migrate from http to https.
 10162NOTE: PLIST:3: The .gz extension is unnecessary for manual pages.
 10163WARN: PLIST:5: "share/bison.hairy" should be sorted before "share/bison.simple".
 101641 error, 2 warnings and 1 note found.
 10165(Run "pkglint -e" to show explanations.)
 10166(Run "pkglint -fs" to show what can be fixed automatically.)
 10167(Run "pkglint.exe -F" to automatically fix some issues.)</pre>
10161<p>Depending on the supplied command line arguments (see pkglint(1)), 10168<p>Depending on the supplied command line arguments (see pkglint(1)),
10162 more checks will be performed. Use e.g. <span class="command"><strong>pkglint 10169 more checks will be performed. Use e.g. <span class="command"><strong>pkglint
10163 -Wall</strong></span> for a very thorough check.</p> 10170 -Wall</strong></span> for a very thorough check.</p>
10164</div> 10171</div>
10165</div> 10172</div>
10166<div class="sect1"> 10173<div class="sect1">
10167<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10174<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10168<a name="steps-for-b-i-p"></a>A.2. Steps for building, installing, packaging</h2></div></div></div> 10175<a name="steps-for-b-i-p"></a>A.2. Steps for building, installing, packaging</h2></div></div></div>
10169<p>Create the directory where the package lives, 10176<p>Create the directory where the package lives,
10170 plus any auxiliary directories:</p> 10177 plus any auxiliary directories:</p>
10171<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cd /usr/pkgsrc/lang</code></strong> 10178<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cd /usr/pkgsrc/lang</code></strong>
10172<code class="prompt">#</code> <strong class="userinput"><code>mkdir bison</code></strong> 10179<code class="prompt">#</code> <strong class="userinput"><code>mkdir bison</code></strong>
10173<code class="prompt">#</code> <strong class="userinput"><code>cd bison</code></strong> 10180<code class="prompt">#</code> <strong class="userinput"><code>cd bison</code></strong>
10174<code class="prompt">#</code> <strong class="userinput"><code>mkdir patches</code></strong></pre> 10181<code class="prompt">#</code> <strong class="userinput"><code>mkdir patches</code></strong></pre>
10175<p>Create <code class="filename">Makefile</code>, <code class="filename">DESCR</code> and 10182<p>Create <code class="filename">Makefile</code>, <code class="filename">DESCR</code> and
10176 <code class="filename">PLIST</code> (see <a class="xref" href="#components" title="Chapter 13. Package components - files, directories and contents">Chapter 13, <i>Package components - files, directories and contents</i></a>) 10183 <code class="filename">PLIST</code> (see <a class="xref" href="#components" title="Chapter 13. Package components - files, directories and contents">Chapter 13, <i>Package components - files, directories and contents</i></a>)
10177 then continue with fetching the distfile:</p> 10184 then continue with fetching the distfile:</p>
10178<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make fetch</code></strong> 10185<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make fetch</code></strong>
10179&gt;&gt; bison-1.25.tar.gz doesn't seem to exist on this system. 10186&gt;&gt; bison-1.25.tar.gz doesn't seem to exist on this system.
10180&gt;&gt; Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//. 10187&gt;&gt; Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//.
10181Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) 10188Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
10182ftp: Error retrieving file: 500 Internal error 10189ftp: Error retrieving file: 500 Internal error
10183 10190
10184&gt;&gt; Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//. 10191&gt;&gt; Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//.
10185Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) 10192Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
10186ftp: Error retrieving file: 500 Internal error 10193ftp: Error retrieving file: 500 Internal error
10187 10194
10188&gt;&gt; Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//. 10195&gt;&gt; Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//.
10189Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) 10196Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
10190Successfully retrieved file.</pre> 10197Successfully retrieved file.</pre>
10191<p>Generate the checksum of the distfile into 10198<p>Generate the checksum of the distfile into
10192 <code class="filename">distinfo</code>:</p> 10199 <code class="filename">distinfo</code>:</p>
10193<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make makedistinfo</code></strong></pre> 10200<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make makedistinfo</code></strong></pre>
10194<p>Now compile:</p> 10201<p>Now compile:</p>
10195<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong> 10202<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong>
10196&gt;&gt; Checksum OK for bison-1.25.tar.gz. 10203&gt;&gt; Checksum OK for bison-1.25.tar.gz.
10197===&gt; Extracting for bison-1.25 10204===&gt; Extracting for bison-1.25
10198===&gt; Patching for bison-1.25 10205===&gt; Patching for bison-1.25
10199===&gt; Ignoring empty patch directory 10206===&gt; Ignoring empty patch directory
10200===&gt; Configuring for bison-1.25 10207===&gt; Configuring for bison-1.25
10201creating cache ./config.cache 10208creating cache ./config.cache
10202checking for gcc... cc 10209checking for gcc... cc
10203checking whether we are using GNU C... yes 10210checking whether we are using GNU C... yes
10204checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin 10211checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin
10205checking how to run the C preprocessor... cc -E 10212checking how to run the C preprocessor... cc -E
10206checking for minix/config.h... no 10213checking for minix/config.h... no
10207checking for POSIXized ISC... no 10214checking for POSIXized ISC... no
10208checking whether cross-compiling... no 10215checking whether cross-compiling... no
10209checking for ANSI C header files... yes 10216checking for ANSI C header files... yes
10210checking for string.h... yes 10217checking for string.h... yes
10211checking for stdlib.h... yes 10218checking for stdlib.h... yes
10212checking for memory.h... yes 10219checking for memory.h... yes
10213checking for working const... yes 10220checking for working const... yes
10214checking for working alloca.h... no 10221checking for working alloca.h... no
10215checking for alloca... yes 10222checking for alloca... yes
10216checking for strerror... yes 10223checking for strerror... yes
10217updating cache ./config.cache 10224updating cache ./config.cache
10218creating ./config.status 10225creating ./config.status
10219creating Makefile 10226creating Makefile
10220===&gt; Building for bison-1.25 10227===&gt; Building for bison-1.25
10221cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g LR0.c 10228cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g LR0.c
10222cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g allocate.c 10229cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g allocate.c
10223cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g closure.c 10230cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g closure.c
10224cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g conflicts.c 10231cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g conflicts.c
10225cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g derives.c 10232cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g derives.c
10226cc -c -DXPFILE=\"/usr/pkg/share/bison.simple\" -DXPFILE1=\"/usr/pkg/share/bison.hairy\" -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -g ./files.c 10233cc -c -DXPFILE=\"/usr/pkg/share/bison.simple\" -DXPFILE1=\"/usr/pkg/share/bison.hairy\" -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -g ./files.c
10227cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getargs.c 10234cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getargs.c
10228cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g gram.c 10235cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g gram.c
10229cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lalr.c 10236cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lalr.c
10230cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lex.c 10237cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lex.c
10231cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g main.c 10238cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g main.c
10232cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g nullable.c 10239cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g nullable.c
10233cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g output.c 10240cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g output.c
10234cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g print.c 10241cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g print.c
10235cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reader.c 10242cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reader.c
10236cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reduce.c 10243cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reduce.c
10237cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g symtab.c 10244cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g symtab.c
10238cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g warshall.c 10245cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g warshall.c
10239cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g version.c 10246cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g version.c
10240cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt.c 10247cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt.c
10241cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt1.c 10248cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt1.c
10242cc -g -o bison LR0.o allocate.o closure.o conflicts.o derives.o files.o getargs.o gram.o lalr.o lex.o main.o nullable.o output.o print.o reader.o reduce.o symtab.o warshall.o version.o getopt.o getopt1.o 10249cc -g -o bison LR0.o allocate.o closure.o conflicts.o derives.o files.o getargs.o gram.o lalr.o lex.o main.o nullable.o output.o print.o reader.o reduce.o symtab.o warshall.o version.o getopt.o getopt1.o
10243./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp() 10250./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp()
10244rm -f bison.s1 10251rm -f bison.s1
10245sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" &lt; ./bison.simple &gt; bison.s1</pre> 10252sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" &lt; ./bison.simple &gt; bison.s1</pre>
10246<p>Everything seems OK, so install the files:</p> 10253<p>Everything seems OK, so install the files:</p>
10247<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> 10254<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
10248&gt;&gt; Checksum OK for bison-1.25.tar.gz. 10255&gt;&gt; Checksum OK for bison-1.25.tar.gz.
10249===&gt; Installing for bison-1.25 10256===&gt; Installing for bison-1.25
10250sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1 10257sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1
10251rm -f /usr/pkg/bin/bison 10258rm -f /usr/pkg/bin/bison
10252cd /usr/pkg/share; rm -f bison.simple bison.hairy 10259cd /usr/pkg/share; rm -f bison.simple bison.hairy
10253rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info* 10260rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info*
10254install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison 10261install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison
10255/usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple 10262/usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple
10256/usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy 10263/usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy
10257cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done 10264cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done
10258/usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1 10265/usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1
10259===&gt; Registering installation for bison-1.25</pre> 10266===&gt; Registering installation for bison-1.25</pre>
10260<p>You can now use bison, and also - if you decide so - remove it with 10267<p>You can now use bison, and also - if you decide so - remove it with
10261 <span class="command"><strong>pkg_delete bison</strong></span>. Should you decide that you want a 10268 <span class="command"><strong>pkg_delete bison</strong></span>. Should you decide that you want a
10262 binary package, do this now:</p> 10269 binary package, do this now:</p>
10263<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong> 10270<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong>
10264&gt;&gt; Checksum OK for bison-1.25.tar.gz. 10271&gt;&gt; Checksum OK for bison-1.25.tar.gz.
10265===&gt; Building package for bison-1.25 10272===&gt; Building package for bison-1.25
10266Creating package bison-1.25.tgz 10273Creating package bison-1.25.tgz
10267Registering depends:. 10274Registering depends:.
10268Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'</pre> 10275Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'</pre>
10269<p>Now that you don't need the source and object files 10276<p>Now that you don't need the source and object files
10270 any more, clean up:</p> 10277 any more, clean up:</p>
10271<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make clean</code></strong> 10278<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make clean</code></strong>
10272===&gt; Cleaning for bison-1.25</pre> 10279===&gt; Cleaning for bison-1.25</pre>
10273</div> 10280</div>
10274</div> 10281</div>
10275<div class="appendix"> 10282<div class="appendix">
10276<div class="titlepage"><div><div><h1 class="title"> 10283<div class="titlepage"><div><div><h1 class="title">
10277<a name="logs"></a>Appendix B. Build logs</h1></div></div></div> 10284<a name="logs"></a>Appendix B. Build logs</h1></div></div></div>
10278<div class="toc"> 10285<div class="toc">
10279<p><b>Table of Contents</b></p> 10286<p><b>Table of Contents</b></p>
10280<dl class="toc"> 10287<dl class="toc">
10281<dt><span class="sect1"><a href="#logs.building">B.1. Building figlet</a></span></dt> 10288<dt><span class="sect1"><a href="#logs.building">B.1. Building figlet</a></span></dt>
10282<dt><span class="sect1"><a href="#logs.package">B.2. Packaging figlet</a></span></dt> 10289<dt><span class="sect1"><a href="#logs.package">B.2. Packaging figlet</a></span></dt>
10283</dl> 10290</dl>
10284</div> 10291</div>
10285<div class="sect1"> 10292<div class="sect1">
10286<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10293<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10287<a name="logs.building"></a>B.1. Building figlet</h2></div></div></div> 10294<a name="logs.building"></a>B.1. Building figlet</h2></div></div></div>
10288<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong> 10295<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong>
10289===&gt; Checking for vulnerabilities in figlet-2.2.1nb2 10296===&gt; Checking for vulnerabilities in figlet-2.2.1nb2
10290=&gt; figlet221.tar.gz doesn't seem to exist on this system. 10297=&gt; figlet221.tar.gz doesn't seem to exist on this system.
10291=&gt; Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/. 10298=&gt; Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/.
10292=&gt; [172219 bytes] 10299=&gt; [172219 bytes]
10293Connected to ftp.plig.net. 10300Connected to ftp.plig.net.
10294220 ftp.plig.org NcFTPd Server (licensed copy) ready. 10301220 ftp.plig.org NcFTPd Server (licensed copy) ready.
10295331 Guest login ok, send your complete e-mail address as password. 10302331 Guest login ok, send your complete e-mail address as password.
10296230-You are user #5 of 500 simultaneous users allowed. 10303230-You are user #5 of 500 simultaneous users allowed.
10297230- 10304230-
10298230- ___ _ _ _ 10305230- ___ _ _ _
10299230- | _| |_ ___ ___| |_|___ ___ ___ ___ 10306230- | _| |_ ___ ___| |_|___ ___ ___ ___
10300230- | _| _| . |_| . | | | . |_| . | _| . | 10307230- | _| _| . |_| . | | | . |_| . | _| . |
10301230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ | 10308230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ |
10302230- |_| |_| |___| |___| 10309230- |_| |_| |___| |___|
10303230- 10310230-
10304230-** Welcome to ftp.plig.org ** 10311230-** Welcome to ftp.plig.org **
10305230- 10312230-
10306230-Please note that all transfers from this FTP site are logged. If you 10313230-Please note that all transfers from this FTP site are logged. If you
10307230-do not like this, please disconnect now. 10314230-do not like this, please disconnect now.
10308230- 10315230-
10309230-This archive is available via 10316230-This archive is available via
10310230- 10317230-
10311230-HTTP: http://ftp.plig.org/ 10318230-HTTP: http://ftp.plig.org/
10312230-FTP: ftp://ftp.plig.org/ (max 500 connections) 10319230-FTP: ftp://ftp.plig.org/ (max 500 connections)
10313230-RSYNC: rsync://ftp.plig.org/ (max 30 connections) 10320230-RSYNC: rsync://ftp.plig.org/ (max 30 connections)
10314230- 10321230-
10315230-Please email comments, bug reports and requests for packages to be 10322230-Please email comments, bug reports and requests for packages to be
10316230-mirrored to ftp-admin@plig.org. 10323230-mirrored to ftp-admin@plig.org.
10317230- 10324230-
10318230- 10325230-
10319230 Logged in anonymously. 10326230 Logged in anonymously.
10320Remote system type is UNIX. 10327Remote system type is UNIX.
10321Using binary mode to transfer files. 10328Using binary mode to transfer files.
10322200 Type okay. 10329200 Type okay.
10323250 "/pub" is new cwd. 10330250 "/pub" is new cwd.
10324250-"/pub/figlet" is new cwd. 10331250-"/pub/figlet" is new cwd.
10325250- 10332250-
10326250-Welcome to the figlet archive at ftp.figlet.org 10333250-Welcome to the figlet archive at ftp.figlet.org
10327250- 10334250-
10328250- ftp://ftp.figlet.org/pub/figlet/ 10335250- ftp://ftp.figlet.org/pub/figlet/
10329250- 10336250-
10330250-The official FIGlet web page is: 10337250-The official FIGlet web page is:
10331250- http://www.figlet.org/ 10338250- http://www.figlet.org/
10332250- 10339250-
10333250-If you have questions, please mailto:info@figlet.org. If you want to 10340250-If you have questions, please mailto:info@figlet.org. If you want to
10334250-contribute a font or something else, you can email us. 10341250-contribute a font or something else, you can email us.
10335250 10342250
10336250 "/pub/figlet/program" is new cwd. 10343250 "/pub/figlet/program" is new cwd.
10337250 "/pub/figlet/program/unix" is new cwd. 10344250 "/pub/figlet/program/unix" is new cwd.
10338local: figlet221.tar.gz remote: figlet221.tar.gz 10345local: figlet221.tar.gz remote: figlet221.tar.gz
10339502 Unimplemented command. 10346502 Unimplemented command.
10340227 Entering Passive Mode (195,40,6,41,246,104) 10347227 Entering Passive Mode (195,40,6,41,246,104)
10341150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes). 10348150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes).
1034238% |************** | 65800 64.16 KB/s 00:01 ETA 1034938% |************** | 65800 64.16 KB/s 00:01 ETA
10343226 Transfer completed. 10350226 Transfer completed.
10344172219 bytes received in 00:02 (75.99 KB/s) 10351172219 bytes received in 00:02 (75.99 KB/s)
10345221 Goodbye. 10352221 Goodbye.
10346=&gt; Checksum OK for figlet221.tar.gz. 10353=&gt; Checksum OK for figlet221.tar.gz.
10347===&gt; Extracting for figlet-2.2.1nb2 10354===&gt; Extracting for figlet-2.2.1nb2
10348===&gt; Required installed package ccache-[0-9]*: ccache-2.3nb1 found 10355===&gt; Required installed package ccache-[0-9]*: ccache-2.3nb1 found
10349===&gt; Patching for figlet-2.2.1nb2 10356===&gt; Patching for figlet-2.2.1nb2
10350===&gt; Applying pkgsrc patches for figlet-2.2.1nb2 10357===&gt; Applying pkgsrc patches for figlet-2.2.1nb2
10351===&gt; Overriding tools for figlet-2.2.1nb2 10358===&gt; Overriding tools for figlet-2.2.1nb2
10352===&gt; Creating toolchain wrappers for figlet-2.2.1nb2 10359===&gt; Creating toolchain wrappers for figlet-2.2.1nb2
10353===&gt; Configuring for figlet-2.2.1nb2 10360===&gt; Configuring for figlet-2.2.1nb2
10354===&gt; Building for figlet-2.2.1nb2 10361===&gt; Building for figlet-2.2.1nb2
10355gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet 10362gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet
10356chmod a+x figlet 10363chmod a+x figlet
10357gcc -O2 -o chkfont chkfont.c 10364gcc -O2 -o chkfont chkfont.c
10358=&gt; Unwrapping files-to-be-installed. 10365=&gt; Unwrapping files-to-be-installed.
10359<code class="prompt">#</code> 10366<code class="prompt">#</code>
10360<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> 10367<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
10361===&gt; Checking for vulnerabilities in figlet-2.2.1nb2 10368===&gt; Checking for vulnerabilities in figlet-2.2.1nb2
10362===&gt; Installing for figlet-2.2.1nb2 10369===&gt; Installing for figlet-2.2.1nb2
10363install -d -o root -g wheel -m 755 /usr/pkg/bin 10370install -d -o root -g wheel -m 755 /usr/pkg/bin
10364install -d -o root -g wheel -m 755 /usr/pkg/man/man6 10371install -d -o root -g wheel -m 755 /usr/pkg/man/man6
10365mkdir -p /usr/pkg/share/figlet 10372mkdir -p /usr/pkg/share/figlet
10366cp figlet /usr/pkg/bin 10373cp figlet /usr/pkg/bin
10367cp chkfont /usr/pkg/bin 10374cp chkfont /usr/pkg/bin
10368chmod 555 figlist showfigfonts 10375chmod 555 figlist showfigfonts
10369cp figlist /usr/pkg/bin 10376cp figlist /usr/pkg/bin
10370cp showfigfonts /usr/pkg/bin 10377cp showfigfonts /usr/pkg/bin
10371cp fonts/*.flf /usr/pkg/share/figlet 10378cp fonts/*.flf /usr/pkg/share/figlet
10372cp fonts/*.flc /usr/pkg/share/figlet 10379cp fonts/*.flc /usr/pkg/share/figlet
10373cp figlet.6 /usr/pkg/man/man6 10380cp figlet.6 /usr/pkg/man/man6
10374===&gt; Registering installation for figlet-2.2.1nb2 10381===&gt; Registering installation for figlet-2.2.1nb2
10375<code class="prompt">#</code></pre> 10382<code class="prompt">#</code></pre>
10376</div> 10383</div>
10377<div class="sect1"> 10384<div class="sect1">
10378<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10385<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10379<a name="logs.package"></a>B.2. Packaging figlet</h2></div></div></div> 10386<a name="logs.package"></a>B.2. Packaging figlet</h2></div></div></div>
10380<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong> 10387<pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong>
10381===&gt; Checking for vulnerabilities in figlet-2.2.1nb2 10388===&gt; Checking for vulnerabilities in figlet-2.2.1nb2
10382===&gt; Packaging figlet-2.2.1nb2 10389===&gt; Packaging figlet-2.2.1nb2
10383===&gt; Building binary package for figlet-2.2.1nb2 10390===&gt; Building binary package for figlet-2.2.1nb2
10384Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz 10391Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz
10385Using SrcDir value of /usr/pkg 10392Using SrcDir value of /usr/pkg
10386Registering depends:. 10393Registering depends:.
10387<code class="prompt">#</code></pre> 10394<code class="prompt">#</code></pre>
10388</div> 10395</div>
10389</div> 10396</div>
10390<div class="appendix"> 10397<div class="appendix">
10391<div class="titlepage"><div><div><h1 class="title"> 10398<div class="titlepage"><div><div><h1 class="title">
10392<a name="ftp-layout"></a>Appendix C. Directory layout of the pkgsrc FTP server</h1></div></div></div> 10399<a name="ftp-layout"></a>Appendix C. Directory layout of the pkgsrc FTP server</h1></div></div></div>
10393<div class="toc"> 10400<div class="toc">
10394<p><b>Table of Contents</b></p> 10401<p><b>Table of Contents</b></p>
10395<dl class="toc"> 10402<dl class="toc">
10396<dt><span class="sect1"><a href="#ftp-distfiles">C.1. <code class="filename">distfiles</code>: The distributed source files</a></span></dt> 10403<dt><span class="sect1"><a href="#ftp-distfiles">C.1. <code class="filename">distfiles</code>: The distributed source files</a></span></dt>
10397<dt><span class="sect1"><a href="#ftp-misc">C.2. <code class="filename">misc</code>: Miscellaneous things</a></span></dt> 10404<dt><span class="sect1"><a href="#ftp-misc">C.2. <code class="filename">misc</code>: Miscellaneous things</a></span></dt>
10398<dt><span class="sect1"><a href="#ftp-packages">C.3. <code class="filename">packages</code>: Binary packages</a></span></dt> 10405<dt><span class="sect1"><a href="#ftp-packages">C.3. <code class="filename">packages</code>: Binary packages</a></span></dt>
10399<dt><span class="sect1"><a href="#ftp-reports">C.4. <code class="filename">reports</code>: Bulk build reports</a></span></dt> 10406<dt><span class="sect1"><a href="#ftp-reports">C.4. <code class="filename">reports</code>: Bulk build reports</a></span></dt>
10400<dt><span class="sect1"><a href="#ftp-source">C.5. <code class="filename">current</code>, 10407<dt><span class="sect1"><a href="#ftp-source">C.5. <code class="filename">current</code>,
10401<code class="filename">stable</code>, 10408<code class="filename">stable</code>,
10402<code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>: 10409<code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>:
10403source packages</a></span></dt> 10410source packages</a></span></dt>
10404</dl> 10411</dl>
10405</div> 10412</div>
10406<p>As in other big projects, the directory layout of pkgsrc 10413<p>As in other big projects, the directory layout of pkgsrc
10407 is quite complex for newbies. This chapter explains where you 10414 is quite complex for newbies. This chapter explains where you
10408 find things on the FTP server. The base directory on 10415 find things on the FTP server. The base directory on
10409 <code class="filename">ftp.NetBSD.org</code> is <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/" target="_top"><code class="filename">/pub/pkgsrc/</code></a>. 10416 <code class="filename">ftp.NetBSD.org</code> is <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/" target="_top"><code class="filename">/pub/pkgsrc/</code></a>.
10410 On other servers it may be different, but inside this directory, 10417 On other servers it may be different, but inside this directory,
10411 everything should look the same, no matter on which server you 10418 everything should look the same, no matter on which server you
10412 are. This directory contains some subdirectories, which are 10419 are. This directory contains some subdirectories, which are
10413 explained below.</p> 10420 explained below.</p>
10414<div class="sect1"> 10421<div class="sect1">
10415<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10422<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10416<a name="ftp-distfiles"></a>C.1. <code class="filename">distfiles</code>: The distributed source files</h2></div></div></div> 10423<a name="ftp-distfiles"></a>C.1. <code class="filename">distfiles</code>: The distributed source files</h2></div></div></div>
10417<p>The directory <code class="filename">distfiles</code> contains lots 10424<p>The directory <code class="filename">distfiles</code> contains lots
10418 of archive files from all pkgsrc packages, which are mirrored 10425 of archive files from all pkgsrc packages, which are mirrored
10419 here. The subdirectories are called after their package names 10426 here. The subdirectories are called after their package names
10420 and are used when the distributed files have names that don't 10427 and are used when the distributed files have names that don't
10421 explicitly contain a version number or are otherwise too generic 10428 explicitly contain a version number or are otherwise too generic
10422 (for example <code class="filename">release.tar.gz</code>).</p> 10429 (for example <code class="filename">release.tar.gz</code>).</p>
10423</div> 10430</div>
10424<div class="sect1"> 10431<div class="sect1">
10425<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10432<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10426<a name="ftp-misc"></a>C.2. <code class="filename">misc</code>: Miscellaneous things</h2></div></div></div> 10433<a name="ftp-misc"></a>C.2. <code class="filename">misc</code>: Miscellaneous things</h2></div></div></div>
10427<p>This directory contains things that individual pkgsrc 10434<p>This directory contains things that individual pkgsrc
10428 developers find worth publishing.</p> 10435 developers find worth publishing.</p>
10429</div> 10436</div>
10430<div class="sect1"> 10437<div class="sect1">
10431<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10438<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10432<a name="ftp-packages"></a>C.3. <code class="filename">packages</code>: Binary packages</h2></div></div></div> 10439<a name="ftp-packages"></a>C.3. <code class="filename">packages</code>: Binary packages</h2></div></div></div>
10433<p>This directory contains binary packages for the various 10440<p>This directory contains binary packages for the various
10434 platforms that are supported by pkgsrc. 10441 platforms that are supported by pkgsrc.
10435 Each subdirectory is of the form <em class="replaceable"><code>OPSYS</code></em>/<em class="replaceable"><code>ARCH</code></em>/<em class="replaceable"><code>OSVERSION_TAG</code></em>. The meaning of these variables is:</p> 10442 Each subdirectory is of the form <em class="replaceable"><code>OPSYS</code></em>/<em class="replaceable"><code>ARCH</code></em>/<em class="replaceable"><code>OSVERSION_TAG</code></em>. The meaning of these variables is:</p>
10436<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 10443<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
10437<li class="listitem"><p><code class="varname">OPSYS</code> is the name of the 10444<li class="listitem"><p><code class="varname">OPSYS</code> is the name of the
10438 operating system for which the packages have been built. The 10445 operating system for which the packages have been built. The
10439 name is taken from the output of the <span class="command"><strong>uname</strong></span> 10446 name is taken from the output of the <span class="command"><strong>uname</strong></span>
10440 command, so it may differ from the one you are used to 10447 command, so it may differ from the one you are used to
10441 hear.</p></li> 10448 hear.</p></li>
10442<li class="listitem"><p><code class="varname">ARCH</code> is the hardware 10449<li class="listitem"><p><code class="varname">ARCH</code> is the hardware
10443 architecture of the platform for which the packages have been 10450 architecture of the platform for which the packages have been
10444 built. It also includes the <code class="varname">ABI</code> (Application 10451 built. It also includes the <code class="varname">ABI</code> (Application
10445 Binary Interface) for platforms that have several of 10452 Binary Interface) for platforms that have several of
10446 them.</p></li> 10453 them.</p></li>
10447<li class="listitem"><p><code class="varname">OSVERSION</code> is the version of 10454<li class="listitem"><p><code class="varname">OSVERSION</code> is the version of
10448 the operating system. For version numbers that change often (for 10455 the operating system. For version numbers that change often (for
10449 example NetBSD-current), the often-changing part should be 10456 example NetBSD-current), the often-changing part should be
10450 replaced with an <code class="literal">x</code>, for example 10457 replaced with an <code class="literal">x</code>, for example
10451 <code class="literal">4.99.x</code>.</p></li> 10458 <code class="literal">4.99.x</code>.</p></li>
10452<li class="listitem"><p><code class="varname">TAG</code> is either 10459<li class="listitem"><p><code class="varname">TAG</code> is either
10453 <code class="literal">20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> 10460 <code class="literal">20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>
10454 for a stable branch, or <code class="literal">head</code> for packages 10461 for a stable branch, or <code class="literal">head</code> for packages
10455 built from the HEAD branch. The latter should only be used when 10462 built from the HEAD branch. The latter should only be used when
10456 the packages are updated on a regular basis. Otherwise the date 10463 the packages are updated on a regular basis. Otherwise the date
10457 from checking out pkgsrc should be appended, for example 10464 from checking out pkgsrc should be appended, for example
10458 <code class="literal">head_20071015</code>.</p></li> 10465 <code class="literal">head_20071015</code>.</p></li>
10459</ul></div> 10466</ul></div>
10460<p>The rationale for exactly this scheme is that the pkgsrc users looking for binary packages 10467<p>The rationale for exactly this scheme is that the pkgsrc users looking for binary packages
10461 can quickly click through the directories on the 10468 can quickly click through the directories on the
10462 server and find the best binary packages for their machines. Since they 10469 server and find the best binary packages for their machines. Since they
10463 usually know the operating system and the hardware architecture, OPSYS 10470 usually know the operating system and the hardware architecture, OPSYS
10464 and ARCH are placed first. After these choices, they can select the 10471 and ARCH are placed first. After these choices, they can select the
10465 best combination of OSVERSION and TAG together, since it is usually the 10472 best combination of OSVERSION and TAG together, since it is usually the
10466 case that packages stay compatible between different version of the 10473 case that packages stay compatible between different version of the
10467 operating system.</p> 10474 operating system.</p>
10468<p>In each of these directories, there is a 10475<p>In each of these directories, there is a
10469 whole binary packages collection for a specific platform. It has a directory called 10476 whole binary packages collection for a specific platform. It has a directory called
10470 <code class="filename">All</code> which contains all binary packages. 10477 <code class="filename">All</code> which contains all binary packages.
10471 Besides that, there are various category directories that 10478 Besides that, there are various category directories that
10472 contain symbolic links to the real binary packages.</p> 10479 contain symbolic links to the real binary packages.</p>
10473</div> 10480</div>
10474<div class="sect1"> 10481<div class="sect1">
10475<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10482<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10476<a name="ftp-reports"></a>C.4. <code class="filename">reports</code>: Bulk build reports</h2></div></div></div> 10483<a name="ftp-reports"></a>C.4. <code class="filename">reports</code>: Bulk build reports</h2></div></div></div>
10477<p>Here are the reports from bulk builds, for those who want 10484<p>Here are the reports from bulk builds, for those who want
10478 to fix packages that didn't build on some of the platforms. The 10485 to fix packages that didn't build on some of the platforms. The
10479 structure of subdirectories should look like the one in <a class="xref" href="#ftp-packages" title="C.3. packages: Binary packages">Section C.3, &#8220;<code class="filename">packages</code>: Binary packages&#8221;</a>.</p> 10486 structure of subdirectories should look like the one in <a class="xref" href="#ftp-packages" title="C.3. packages: Binary packages">Section C.3, &#8220;<code class="filename">packages</code>: Binary packages&#8221;</a>.</p>
10480</div> 10487</div>
10481<div class="sect1"> 10488<div class="sect1">
10482<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 10489<div class="titlepage"><div><div><h2 class="title" style="clear: both">
10483<a name="ftp-source"></a>C.5. <code class="filename">current</code>, 10490<a name="ftp-source"></a>C.5. <code class="filename">current</code>,
10484<code class="filename">stable</code>, 10491<code class="filename">stable</code>,
10485<code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>: 10492<code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>:
10486source packages</h2></div></div></div> 10493source packages</h2></div></div></div>
10487<p>These directories contain the <span class="quote">&#8220;<span class="quote">real</span>&#8221;</span> pkgsrc, 10494<p>These directories contain the <span class="quote">&#8220;<span class="quote">real</span>&#8221;</span> pkgsrc,
10488 that is the files that define how to create binary packages from 10495 that is the files that define how to create binary packages from
10489 source archives.</p> 10496 source archives.</p>
10490<p>Each of the <code class="filename">current</code>, 10497<p>Each of the <code class="filename">current</code>,
10491 <code class="filename">stable</code> and 10498 <code class="filename">stable</code> and
10492 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> 10499 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>
10493 directories share the same structure. They each contain a 10500 directories share the same structure. They each contain a
10494 <code class="filename">pkgsrc</code> directory and 10501 <code class="filename">pkgsrc</code> directory and
10495 <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> file.</p> 10502 <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> file.</p>
10496<p>The directory <code class="filename">pkgsrc</code> contains a 10503<p>The directory <code class="filename">pkgsrc</code> contains a
10497 snapshot of the CVS repository, which is updated regularly. The 10504 snapshot of the CVS repository, which is updated regularly. The
10498 file <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> contains the same 10505 file <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> contains the same
10499 as the directory, ready to be downloaded as a whole.</p> 10506 as the directory, ready to be downloaded as a whole.</p>
10500<p>The <code class="filename">current</code> directory contains files 10507<p>The <code class="filename">current</code> directory contains files
10501 related to the HEAD branch of the CVS repository. 10508 related to the HEAD branch of the CVS repository.
10502 In this directory there is an additional file called 10509 In this directory there is an additional file called
10503 <code class="filename">pkgsrc-readmes.tar.{bz,gz,xz}</code> that contains 10510 <code class="filename">pkgsrc-readmes.tar.{bz,gz,xz}</code> that contains
10504 all pkgsrc <code class="filename">README</code>s with information about 10511 all pkgsrc <code class="filename">README</code>s with information about
10505 categories and packages. 10512 categories and packages.
10506 </p> 10513 </p>
10507<p>The <code class="filename">stable</code> directory is a symlink to 10514<p>The <code class="filename">stable</code> directory is a symlink to
10508 the latest  10515 the latest
10509 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>. 10516 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>.
10510 </p> 10517 </p>
10511<p>The 10518<p>The
10512 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>. 10519 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>.
10513 directories contain files related to the  10520 directories contain files related to the
10514 <code class="filename">-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> 10521 <code class="filename">-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>
10515 stable branch of the CVS repository. In these directories there is 10522 stable branch of the CVS repository. In these directories there is
10516 an additional file called 10523 an additional file called
10517 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em>.tar.{bz,gz,xz}</code>, 10524 <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em>.tar.{bz,gz,xz}</code>,
10518 which contains the state of pkgsrc when it was branched.</p> 10525 which contains the state of pkgsrc when it was branched.</p>
10519</div> 10526</div>
10520</div> 10527</div>
10521<div class="appendix"> 10528<div class="appendix">
10522<div class="titlepage"><div><div><h1 class="title"> 10529<div class="titlepage"><div><div><h1 class="title">
10523<a name="help-topics"></a>Appendix D. Help topics</h1></div></div></div> 10530<a name="help-topics"></a>Appendix D. Help topics</h1></div></div></div>
10524<p> 10531<p>
10525 The following list contains all help topics that are available 10532 The following list contains all help topics that are available
10526 when running <span class="command"><strong>bmake help topic=:index</strong></span>. 10533 when running <span class="command"><strong>bmake help topic=:index</strong></span>.
10527</p> 10534</p>
10528<table border="0" summary="Simple list" class="simplelist"> 10535<table border="0" summary="Simple list" class="simplelist">
10529<tr> 10536<tr>
10530<td>#!</td> 10537<td>#!</td>
10531<td>-lintl</td> 10538<td>-lintl</td>
10532</tr> 10539</tr>
10533<tr> 10540<tr>
10534<td>64bit</td> 10541<td>64bit</td>
10535<td>ABI</td> 10542<td>ABI</td>
10536</tr> 10543</tr>
10537<tr> 10544<tr>
10538<td>ACCEPTABLE_LICENSES</td> 10545<td>ACCEPTABLE_LICENSES</td>
10539<td>ACROREAD_FONTPATH</td> 10546<td>ACROREAD_FONTPATH</td>
10540</tr> 10547</tr>
10541<tr> 10548<tr>
10542<td>ADDITIONAL</td> 10549<td>ADDITIONAL</td>
10543<td>AFAIK</td> 10550<td>AFAIK</td>
10544</tr> 10551</tr>
10545<tr> 10552<tr>
10546<td>AIX</td> 10553<td>AIX</td>
10547<td>ALLOW_VULNERABLE_PACKAGES</td> 10554<td>ALLOW_VULNERABLE_PACKAGES</td>
10548</tr> 10555</tr>
10549<tr> 10556<tr>
10550<td>ALL_ENV</td> 10557<td>ALL_ENV</td>
10551<td>ALSA_PC</td> 10558<td>ALSA_PC</td>
10552</tr> 10559</tr>
10553<tr> 10560<tr>
10554<td>ALTERNATIVES_SRC</td> 10561<td>ALTERNATIVES_SRC</td>
10555<td>AMANDA_TMP</td> 10562<td>AMANDA_TMP</td>
10556</tr> 10563</tr>
10557<tr> 10564<tr>
10558<td>AMANDA_USER</td> 10565<td>AMANDA_USER</td>
10559<td>AMANDA_VAR</td> 10566<td>AMANDA_VAR</td>
10560</tr> 10567</tr>
10561<tr> 10568<tr>
10562<td>APACHE_GROUP</td> 10569<td>APACHE_GROUP</td>
10563<td>APACHE_MODULE_NAME</td> 10570<td>APACHE_MODULE_NAME</td>
10564</tr> 10571</tr>
10565<tr> 10572<tr>
10566<td>APACHE_MODULE_SRC</td> 10573<td>APACHE_MODULE_SRC</td>
10567<td>APACHE_MODULE_SRCDIR</td> 10574<td>APACHE_MODULE_SRCDIR</td>
10568</tr> 10575</tr>
10569<tr> 10576<tr>
10570<td>APACHE_PKG_PREFIX</td> 10577<td>APACHE_PKG_PREFIX</td>
10571<td>APACHE_SUEXEC_CONFIGURE_ARGS</td> 10578<td>APACHE_SUEXEC_CONFIGURE_ARGS</td>
10572</tr> 10579</tr>
10573<tr> 10580<tr>
10574<td>APACHE_SUEXEC_DOCROOT</td> 10581<td>APACHE_SUEXEC_DOCROOT</td>
10575<td>APACHE_USER</td> 10582<td>APACHE_USER</td>
10576</tr> 10583</tr>
10577<tr> 10584<tr>
10578<td>APPEND_ABI</td> 10585<td>APPEND_ABI</td>
10579<td>APPEND_ELF</td> 10586<td>APPEND_ELF</td>
10580</tr> 10587</tr>
10581<tr> 10588<tr>
10582<td>ARLA_CACHE</td> 10589<td>ARLA_CACHE</td>
10583<td>AUDIT_PACKAGES_FLAGS</td> 10590<td>AUDIT_PACKAGES_FLAGS</td>
10584</tr> 10591</tr>
10585<tr> 10592<tr>
10586<td>AUTOCONF_REQD</td> 10593<td>AUTOCONF_REQD</td>
10587<td>AUTOMAKE_OVERRIDE</td> 10594<td>AUTOMAKE_OVERRIDE</td>
10588</tr> 10595</tr>
10589<tr> 10596<tr>
10590<td>AUTOMAKE_REQD</td> 10597<td>AUTOMAKE_REQD</td>
10591<td>AUTO_MKDIRS</td> 10598<td>AUTO_MKDIRS</td>
10592</tr> 10599</tr>
10593<tr> 10600<tr>
10594<td>BDB185_DEFAULT</td> 10601<td>BDB185_DEFAULT</td>
10595<td>BDBBASE</td> 10602<td>BDBBASE</td>
10596</tr> 10603</tr>
10597<tr> 10604<tr>
10598<td>BDB_ACCEPTED</td> 10605<td>BDB_ACCEPTED</td>
10599<td>BDB_DEFAULT</td> 10606<td>BDB_DEFAULT</td>
10600</tr> 10607</tr>
10601<tr> 10608<tr>
10602<td>BDB_LIBS</td> 10609<td>BDB_LIBS</td>
10603<td>BDB_TYPE</td> 10610<td>BDB_TYPE</td>
10604</tr> 10611</tr>
10605<tr> 10612<tr>
10606<td>BIND_DIR</td> 10613<td>BIND_DIR</td>
10607<td>BIND_GROUP</td> 10614<td>BIND_GROUP</td>
10608</tr> 10615</tr>
10609<tr> 10616<tr>
10610<td>BIND_USER</td> 10617<td>BIND_USER</td>
10611<td>BINPKG_SITES</td> 10618<td>BINPKG_SITES</td>
10612</tr> 10619</tr>
10613<tr> 10620<tr>
10614<td>BIN_INSTALL_FLAGS</td> 10621<td>BIN_INSTALL_FLAGS</td>
10615<td>BISON_PKGDATADIR</td> 10622<td>BISON_PKGDATADIR</td>
10616</tr> 10623</tr>
10617<tr> 10624<tr>
10618<td>BLAS_ACCEPTED</td> 10625<td>BLAS_ACCEPTED</td>
10619<td>BLAS_LIBS</td> 10626<td>BLAS_LIBS</td>
10620</tr> 10627</tr>
10621<tr> 10628<tr>
10622<td>BLAS_TYPE</td> 10629<td>BLAS_TYPE</td>
10623<td>BOOTSTRAP_DEPENDS</td> 10630<td>BOOTSTRAP_DEPENDS</td>
10624</tr> 10631</tr>
10625<tr> 10632<tr>
10626<td>BOOTSTRAP_SETUPTOOLS</td> 10633<td>BOOTSTRAP_SETUPTOOLS</td>
10627<td>BROKEN</td> 10634<td>BROKEN</td>
10628</tr> 10635</tr>
10629<tr> 10636<tr>
10630<td>BROKEN_EXCEPT_ON_PLATFORM</td> 10637<td>BROKEN_EXCEPT_ON_PLATFORM</td>
10631<td>BROKEN_ON_PLATFORM</td> 10638<td>BROKEN_ON_PLATFORM</td>
10632</tr> 10639</tr>
10633<tr> 10640<tr>
10634<td>BSDSRCDIR</td> 10641<td>BSDSRCDIR</td>
10635<td>BSDXSRCDIR</td> 10642<td>BSDXSRCDIR</td>
10636</tr> 10643</tr>
10637<tr> 10644<tr>
10638<td>BSD_MAKE_ENV</td> 10645<td>BSD_MAKE_ENV</td>
10639<td>BUILDLINK_AUTO_DIRS</td> 10646<td>BUILDLINK_AUTO_DIRS</td>
10640</tr> 10647</tr>
10641<tr> 10648<tr>
10642<td>BUILDLINK_AUTO_VARS</td> 10649<td>BUILDLINK_AUTO_VARS</td>
10643<td>BUILDLINK_CFLAGS</td> 10650<td>BUILDLINK_CFLAGS</td>
10644</tr> 10651</tr>
10645<tr> 10652<tr>
10646<td>BUILDLINK_CONTENTS_FILTER</td> 10653<td>BUILDLINK_CONTENTS_FILTER</td>
10647<td>BUILDLINK_CPPFLAGS</td> 10654<td>BUILDLINK_CPPFLAGS</td>
10648</tr> 10655</tr>
10649<tr> 10656<tr>
10650<td>BUILDLINK_DEPMETHOD</td> 10657<td>BUILDLINK_DEPMETHOD</td>
10651<td>BUILDLINK_FILES</td> 10658<td>BUILDLINK_FILES</td>
10652</tr> 10659</tr>
10653<tr> 10660<tr>
10654<td>BUILDLINK_FILES_CMD</td> 10661<td>BUILDLINK_FILES_CMD</td>
10655<td>BUILDLINK_FNAME_TRANSFORM</td> 10662<td>BUILDLINK_FNAME_TRANSFORM</td>
10656</tr> 10663</tr>
10657<tr> 10664<tr>
10658<td>BUILDLINK_LDFLAGS</td> 10665<td>BUILDLINK_LDFLAGS</td>
10659<td>BUILDLINK_LIBS</td> 10666<td>BUILDLINK_LIBS</td>
10660</tr> 10667</tr>
10661<tr> 10668<tr>
10662<td>BUILDLINK_OPSYS_SUPPORT_PTHREAD</td> 10669<td>BUILDLINK_OPSYS_SUPPORT_PTHREAD</td>
10663<td>BUILDLINK_PKGNAME</td> 10670<td>BUILDLINK_PKGNAME</td>
10664</tr> 10671</tr>
10665<tr> 10672<tr>
10666<td>BUILDLINK_PREFIX</td> 10673<td>BUILDLINK_PREFIX</td>
10667<td>BUILDLINK_RPATHDIRS</td> 10674<td>BUILDLINK_RPATHDIRS</td>
10668</tr> 10675</tr>
10669<tr> 10676<tr>
10670<td>BUILDLINK_TREE</td> 10677<td>BUILDLINK_TREE</td>
10671<td>BUILD_DEFS</td> 10678<td>BUILD_DEFS</td>
10672</tr> 10679</tr>
10673<tr> 10680<tr>
10674<td>BUILD_DEFS_EFFECTS</td> 10681<td>BUILD_DEFS_EFFECTS</td>
10675<td>BUILD_DEPENDS</td> 10682<td>BUILD_DEPENDS</td>
10676</tr> 10683</tr>
10677<tr> 10684<tr>
10678<td>BUILD_DIRS</td> 10685<td>BUILD_DIRS</td>
10679<td>BUILD_ENV_SHELL</td> 10686<td>BUILD_ENV_SHELL</td>
10680</tr> 10687</tr>
10681<tr> 10688<tr>
10682<td>BUILD_MAKE_CMD</td> 10689<td>BUILD_MAKE_CMD</td>
10683<td>BUILD_MAKE_FLAGS</td> 10690<td>BUILD_MAKE_FLAGS</td>
10684</tr> 10691</tr>
10685<tr> 10692<tr>
10686<td>BUILD_TARGET</td> 10693<td>BUILD_TARGET</td>
10687<td>BUILTIN_FIND_FILES</td> 10694<td>BUILTIN_FIND_FILES</td>
10688</tr> 10695</tr>
10689<tr> 10696<tr>
10690<td>BUILTIN_FIND_FILES_VAR</td> 10697<td>BUILTIN_FIND_FILES_VAR</td>
10691<td>BUILTIN_FIND_GREP</td> 10698<td>BUILTIN_FIND_GREP</td>
10692</tr> 10699</tr>
10693<tr> 10700<tr>
10694<td>BUILTIN_FIND_HEADERS</td> 10701<td>BUILTIN_FIND_HEADERS</td>
10695<td>BUILTIN_FIND_HEADERS_VAR</td> 10702<td>BUILTIN_FIND_HEADERS_VAR</td>
10696</tr> 10703</tr>
10697<tr> 10704<tr>
10698<td>BUILTIN_PKG</td> 10705<td>BUILTIN_PKG</td>
10699<td>BUILTIN_TEST_CURSES_DEFINES</td> 10706<td>BUILTIN_TEST_CURSES_DEFINES</td>
10700</tr> 10707</tr>
10701<tr> 10708<tr>
10702<td>BUILTIN_TEST_CURSES_FUNCS</td> 10709<td>BUILTIN_TEST_CURSES_FUNCS</td>
10703<td>BUILTIN_VERSION_SCRIPT</td> 10710<td>BUILTIN_VERSION_SCRIPT</td>
10704</tr> 10711</tr>
10705<tr> 10712<tr>
10706<td>BUILTIN_X11_TYPE</td> 10713<td>BUILTIN_X11_TYPE</td>
10707<td>BUILTIN_X11_VERSION</td> 10714<td>BUILTIN_X11_VERSION</td>
10708</tr> 10715</tr>
10709<tr> 10716<tr>
10710<td>CACTI_GROUP</td> 10717<td>CACTI_GROUP</td>
10711<td>CACTI_USER</td> 10718<td>CACTI_USER</td>
10712</tr> 10719</tr>
10713<tr> 10720<tr>
10714<td>CANNA_GROUP</td> 10721<td>CANNA_GROUP</td>
10715<td>CANNA_USER</td> 10722<td>CANNA_USER</td>
10716</tr> 10723</tr>
10717<tr> 10724<tr>
10718<td>CAT</td> 10725<td>CAT</td>
10719<td>CCACHE_BASE</td> 10726<td>CCACHE_BASE</td>
10720</tr> 10727</tr>
10721<tr> 10728<tr>
10722<td>CCACHE_DIR</td> 10729<td>CCACHE_DIR</td>
10723<td>CCACHE_LOGFILE</td> 10730<td>CCACHE_LOGFILE</td>
10724</tr> 10731</tr>
10725<tr> 10732<tr>
10726<td>CC_VERSION</td> 10733<td>CC_VERSION</td>
10727<td>CC_VERSION_STRING</td> 10734<td>CC_VERSION_STRING</td>
10728</tr> 10735</tr>
10729<tr> 10736<tr>
10730<td>CDRECORD_CONF</td> 10737<td>CDRECORD_CONF</td>
10731<td>CDROM_PKG_URL_DIR</td> 10738<td>CDROM_PKG_URL_DIR</td>
10732</tr> 10739</tr>
10733<tr> 10740<tr>
10734<td>CDROM_PKG_URL_HOST</td> 10741<td>CDROM_PKG_URL_HOST</td>
10735<td>CHECKOUT_DATE</td> 10742<td>CHECKOUT_DATE</td>
10736</tr> 10743</tr>
10737<tr> 10744<tr>
10738<td>CHECK_FAKEHOME</td> 10745<td>CHECK_FAKEHOME</td>
10739<td>CHECK_FILES</td> 10746<td>CHECK_FILES</td>
10740</tr> 10747</tr>
10741<tr> 10748<tr>
10742<td>CHECK_FILES_SKIP</td> 10749<td>CHECK_FILES_SKIP</td>
10743<td>CHECK_FILES_STRICT</td> 10750<td>CHECK_FILES_STRICT</td>
10744</tr> 10751</tr>
10745<tr> 10752<tr>
10746<td>CHECK_HEADERS</td> 10753<td>CHECK_HEADERS</td>
10747<td>CHECK_HEADERS_SKIP</td> 10754<td>CHECK_HEADERS_SKIP</td>
10748</tr> 10755</tr>
10749<tr> 10756<tr>
10750<td>CHECK_INTERPRETER</td> 10757<td>CHECK_INTERPRETER</td>
10751<td>CHECK_INTERPRETER_SKIP</td> 10758<td>CHECK_INTERPRETER_SKIP</td>
10752</tr> 10759</tr>
10753<tr> 10760<tr>
10754<td>CHECK_PERMS</td> 10761<td>CHECK_PERMS</td>
10755<td>CHECK_PERMS_AUTOFIX</td> 10762<td>CHECK_PERMS_AUTOFIX</td>
10756</tr> 10763</tr>
10757<tr> 10764<tr>
10758<td>CHECK_PERMS_SKIP</td> 10765<td>CHECK_PERMS_SKIP</td>
10759<td>CHECK_PORTABILITY</td> 10766<td>CHECK_PORTABILITY</td>
10760</tr> 10767</tr>
10761<tr> 10768<tr>
10762<td>CHECK_PORTABILITY_SKIP</td> 10769<td>CHECK_PORTABILITY_SKIP</td>
10763<td>CHECK_RELRO</td> 10770<td>CHECK_RELRO</td>
10764</tr> 10771</tr>
10765<tr> 10772<tr>
10766<td>CHECK_RELRO_SKIP</td> 10773<td>CHECK_RELRO_SKIP</td>
10767<td>CHECK_RELRO_SUPPORTED</td> 10774<td>CHECK_RELRO_SUPPORTED</td>
10768</tr> 10775</tr>
10769<tr> 10776<tr>
10770<td>CHECK_SHLIBS</td> 10777<td>CHECK_SHLIBS</td>
10771<td>CHECK_SHLIBS_BLACKLIST</td> 10778<td>CHECK_SHLIBS_BLACKLIST</td>
10772</tr> 10779</tr>
10773<tr> 10780<tr>
10774<td>CHECK_SHLIBS_SKIP</td> 10781<td>CHECK_SHLIBS_SKIP</td>
10775<td>CHECK_SHLIBS_SUPPORTED</td> 10782<td>CHECK_SHLIBS_SUPPORTED</td>
10776</tr> 10783</tr>
10777<tr> 10784<tr>
10778<td>CHECK_SSP</td> 10785<td>CHECK_SSP</td>
10779<td>CHECK_SSP_SKIP</td> 10786<td>CHECK_SSP_SKIP</td>
10780</tr> 10787</tr>
10781<tr> 10788<tr>
10782<td>CHECK_SSP_SUPPORTED</td> 10789<td>CHECK_SSP_SUPPORTED</td>
10783<td>CHECK_STRIPPED</td> 10790<td>CHECK_STRIPPED</td>
10784</tr> 10791</tr>
10785<tr> 10792<tr>
10786<td>CHECK_STRIPPED_SKIP</td> 10793<td>CHECK_STRIPPED_SKIP</td>
10787<td>CHECK_WRKREF</td> 10794<td>CHECK_WRKREF</td>
10788</tr> 10795</tr>
10789<tr> 10796<tr>
10790<td>CHECK_WRKREF_EXTRA_DIRS</td> 10797<td>CHECK_WRKREF_EXTRA_DIRS</td>
10791<td>CHECK_WRKREF_SKIP</td> 10798<td>CHECK_WRKREF_SKIP</td>
10792</tr> 10799</tr>
10793<tr> 10800<tr>
10794<td>CLAMAV_DBDIR</td> 10801<td>CLAMAV_DBDIR</td>
10795<td>CLAMAV_GROUP</td> 10802<td>CLAMAV_GROUP</td>
10796</tr> 10803</tr>
10797<tr> 10804<tr>
10798<td>CLAMAV_USER</td> 10805<td>CLAMAV_USER</td>
10799<td>CLANGBASE</td> 10806<td>CLANGBASE</td>
10800</tr> 10807</tr>
10801<tr> 10808<tr>
10802<td>CLEANDEPENDS</td> 10809<td>CLEANDEPENDS</td>
10803<td>CMAKE_DEPENDENCIES_REWRITE</td> 10810<td>CMAKE_DEPENDENCIES_REWRITE</td>
10804</tr> 10811</tr>
10805<tr> 10812<tr>
10806<td>CMAKE_INSTALL_PREFIX</td> 10813<td>CMAKE_INSTALL_PREFIX</td>
10807<td>CMAKE_MODULE_PATH_OVERRIDE</td> 10814<td>CMAKE_MODULE_PATH_OVERRIDE</td>
10808</tr> 10815</tr>
10809<tr> 10816<tr>
10810<td>CMAKE_PKGSRC_BUILD_FLAGS</td> 10817<td>CMAKE_PKGSRC_BUILD_FLAGS</td>
10811<td>CMAKE_PREFIX_PATH</td> 10818<td>CMAKE_PREFIX_PATH</td>
10812</tr> 10819</tr>
10813<tr> 10820<tr>
10814<td>CMAKE_USE_GNU_INSTALL_DIRS</td> 10821<td>CMAKE_USE_GNU_INSTALL_DIRS</td>
10815<td>COMMON_LISP_DOCFILES</td> 10822<td>COMMON_LISP_DOCFILES</td>
10816</tr> 10823</tr>
10817<tr> 10824<tr>
10818<td>COMMON_LISP_EXAMPLES</td> 10825<td>COMMON_LISP_EXAMPLES</td>
10819<td>COMMON_LISP_EXTRAFILES</td> 10826<td>COMMON_LISP_EXTRAFILES</td>
10820</tr> 10827</tr>
10821<tr> 10828<tr>
10822<td>COMMON_LISP_PACKAGES</td> 10829<td>COMMON_LISP_PACKAGES</td>
10823<td>COMMON_LISP_SYSTEM</td> 10830<td>COMMON_LISP_SYSTEM</td>
10824</tr> 10831</tr>
10825<tr> 10832<tr>
10826<td>COMPILER_RPATH_FLAG</td> 10833<td>COMPILER_RPATH_FLAG</td>
10827<td>COMPILER_USE_SYMLINKS</td> 10834<td>COMPILER_USE_SYMLINKS</td>
10828</tr> 10835</tr>
10829<tr> 10836<tr>
10830<td>CONFIGURE_ARGS</td> 10837<td>CONFIGURE_ARGS</td>
10831<td>CONFIGURE_DIRS</td> 10838<td>CONFIGURE_DIRS</td>
10832</tr> 10839</tr>
10833<tr> 10840<tr>
10834<td>CONFIGURE_ENV</td> 10841<td>CONFIGURE_ENV</td>
10835<td>CONFIGURE_HAS_INFODIR</td> 10842<td>CONFIGURE_HAS_INFODIR</td>
10836</tr> 10843</tr>
10837<tr> 10844<tr>
10838<td>CONFIGURE_HAS_MANDIR</td> 10845<td>CONFIGURE_HAS_MANDIR</td>
10839<td>CONFIGURE_SCRIPT</td> 10846<td>CONFIGURE_SCRIPT</td>
10840</tr> 10847</tr>
10841<tr> 10848<tr>
10842<td>CONFIG_SHELL</td> 10849<td>CONFIG_SHELL</td>
10843<td>CONFIG_SHELL_FLAGS</td> 10850<td>CONFIG_SHELL_FLAGS</td>
10844</tr> 10851</tr>
10845<tr> 10852<tr>
10846<td>CONF_FILES</td> 10853<td>CONF_FILES</td>
10847<td>CONF_FILES_MODE</td> 10854<td>CONF_FILES_MODE</td>
10848</tr> 10855</tr>
10849<tr> 10856<tr>
10850<td>CONF_FILES_PERMS</td> 10857<td>CONF_FILES_PERMS</td>
10851<td>CONSERVER_DEFAULTHOST</td> 10858<td>CONSERVER_DEFAULTHOST</td>
10852</tr> 10859</tr>
10853<tr> 10860<tr>
10854<td>CONSERVER_DEFAULTPORT</td> 10861<td>CONSERVER_DEFAULTPORT</td>
10855<td>CP</td> 10862<td>CP</td>
10856</tr> 10863</tr>
10857<tr> 10864<tr>
10858<td>CPP</td> 10865<td>CPP</td>
10859<td>CPP_PRECOMP_FLAGS</td> 10866<td>CPP_PRECOMP_FLAGS</td>
10860</tr> 10867</tr>
10861<tr> 10868<tr>
10862<td>CREATE_WRKDIR_SYMLINK</td> 10869<td>CREATE_WRKDIR_SYMLINK</td>
10863<td>CROSSBASE</td> 10870<td>CROSSBASE</td>
10864</tr> 10871</tr>
10865<tr> 10872<tr>
10866<td>CTFCONVERT</td> 10873<td>CTFCONVERT</td>
10867<td>CTF_FILES_SKIP</td> 10874<td>CTF_FILES_SKIP</td>
10868</tr> 10875</tr>
10869<tr> 10876<tr>
10870<td>CTF_SUPPORTED</td> 10877<td>CTF_SUPPORTED</td>
10871<td>CTYPE</td> 10878<td>CTYPE</td>
10872</tr> 10879</tr>
10873<tr> 10880<tr>
10874<td>CUPS_GROUP</td> 10881<td>CUPS_GROUP</td>
10875<td>CUPS_SYSTEM_GROUPS</td> 10882<td>CUPS_SYSTEM_GROUPS</td>
10876</tr> 10883</tr>
10877<tr> 10884<tr>
10878<td>CUPS_USER</td> 10885<td>CUPS_USER</td>
10879<td>CURSES_DEFAULT</td> 10886<td>CURSES_DEFAULT</td>
10880</tr> 10887</tr>
10881<tr> 10888<tr>
10882<td>CURSES_TYPE</td> 10889<td>CURSES_TYPE</td>
10883<td>CVS_EXTRACTDIR</td> 10890<td>CVS_EXTRACTDIR</td>
10884</tr> 10891</tr>
10885<tr> 10892<tr>
10886<td>CVS_MODULE</td> 10893<td>CVS_MODULE</td>
10887<td>CVS_PROJECT</td> 10894<td>CVS_PROJECT</td>
10888</tr> 10895</tr>
10889<tr> 10896<tr>
10890<td>CVS_REPOSITORIES</td> 10897<td>CVS_REPOSITORIES</td>
10891<td>CVS_ROOT</td> 10898<td>CVS_ROOT</td>
10892</tr> 10899</tr>
10893<tr> 10900<tr>
10894<td>CVS_ROOT_GNU</td> 10901<td>CVS_ROOT_GNU</td>
10895<td>CVS_ROOT_NONGNU</td> 10902<td>CVS_ROOT_NONGNU</td>
10896</tr> 10903</tr>
10897<tr> 10904<tr>
10898<td>CVS_ROOT_SOURCEFORGE</td> 10905<td>CVS_ROOT_SOURCEFORGE</td>
10899<td>CVS_TAG</td> 10906<td>CVS_TAG</td>
10900</tr> 10907</tr>
10901<tr> 10908<tr>
10902<td>CXX</td> 10909<td>CXX</td>
10903<td>CYRUS_GROUP</td> 10910<td>CYRUS_GROUP</td>
10904</tr> 10911</tr>
10905<tr> 10912<tr>
10906<td>CYRUS_IDLE</td> 10913<td>CYRUS_IDLE</td>
10907<td>CYRUS_USER</td> 10914<td>CYRUS_USER</td>
10908</tr> 10915</tr>
10909<tr> 10916<tr>
10910<td>DAEMONTOOLS_GROUP</td> 10917<td>DAEMONTOOLS_GROUP</td>
10911<td>DAEMONTOOLS_LOG_USER</td> 10918<td>DAEMONTOOLS_LOG_USER</td>
10912</tr> 10919</tr>
10913<tr> 10920<tr>
10914<td>DBUS_GROUP</td> 10921<td>DBUS_GROUP</td>
10915<td>DBUS_USER</td> 10922<td>DBUS_USER</td>
10916</tr> 10923</tr>
10917<tr> 10924<tr>
10918<td>DEFANG_GROUP</td> 10925<td>DEFANG_GROUP</td>
10919<td>DEFANG_USER</td> 10926<td>DEFANG_USER</td>
10920</tr> 10927</tr>
10921<tr> 10928<tr>
10922<td>DEFAULT_ACCEPTABLE_LICENSES</td> 10929<td>DEFAULT_ACCEPTABLE_LICENSES</td>
10923<td>DEFAULT_DISTFILES</td> 10930<td>DEFAULT_DISTFILES</td>
10924</tr> 10931</tr>
10925<tr> 10932<tr>
10926<td>DEFAULT_IRC_SERVER</td> 10933<td>DEFAULT_IRC_SERVER</td>
10927<td>DEFAULT_SERIAL_DEVICE</td> 10934<td>DEFAULT_SERIAL_DEVICE</td>
10928</tr> 10935</tr>
10929<tr> 10936<tr>
10930<td>DEF_UMASK</td> 10937<td>DEF_UMASK</td>
10931<td>DEINSTALLDEPENDS</td> 10938<td>DEINSTALLDEPENDS</td>
10932</tr> 10939</tr>
10933<tr> 10940<tr>
10934<td>DEINSTALL_SRC</td> 10941<td>DEINSTALL_SRC</td>
10935<td>DEINSTALL_TEMPLATES</td> 10942<td>DEINSTALL_TEMPLATES</td>
10936</tr> 10943</tr>
10937<tr> 10944<tr>
10938<td>DELAYED_ERROR_MSG</td> 10945<td>DELAYED_ERROR_MSG</td>
10939<td>DELAYED_WARNING_MSG</td> 10946<td>DELAYED_WARNING_MSG</td>
10940</tr> 10947</tr>
10941<tr> 10948<tr>
10942<td>DEPENDS</td> 10949<td>DEPENDS</td>
10943<td>DEPENDS_TARGET</td> 10950<td>DEPENDS_TARGET</td>
10944</tr> 10951</tr>
10945<tr> 10952<tr>
10946<td>DEPENDS_TYPE</td> 10953<td>DEPENDS_TYPE</td>
10947<td>DESTDIR</td> 10954<td>DESTDIR</td>
10948</tr> 10955</tr>
10949<tr> 10956<tr>
10950<td>DESTDIR_VARNAME</td> 10957<td>DESTDIR_VARNAME</td>
10951<td>DIALER_GROUP</td> 10958<td>DIALER_GROUP</td>
10952</tr> 10959</tr>
10953<tr> 10960<tr>
10954<td>DIGEST_REQD</td> 10961<td>DIGEST_REQD</td>
10955<td>DISTDIR</td> 10962<td>DISTDIR</td>
10956</tr> 10963</tr>
10957<tr> 10964<tr>
10958<td>DISTFILES</td> 10965<td>DISTFILES</td>
10959<td>DISTINFO_FILE</td> 10966<td>DISTINFO_FILE</td>
10960</tr> 10967</tr>
10961<tr> 10968<tr>
10962<td>DISTNAME</td> 10969<td>DISTNAME</td>
10963<td>DIST_PATH</td> 10970<td>DIST_PATH</td>
10964</tr> 10971</tr>
10965<tr> 10972<tr>
10966<td>DIST_SUBDIR</td> 10973<td>DIST_SUBDIR</td>
10967<td>DJBDNS_AXFR_USER</td> 10974<td>DJBDNS_AXFR_USER</td>
10968</tr> 10975</tr>
10969<tr> 10976<tr>
10970<td>DJBDNS_CACHE_USER</td> 10977<td>DJBDNS_CACHE_USER</td>
10971<td>DJBDNS_DJBDNS_GROUP</td> 10978<td>DJBDNS_DJBDNS_GROUP</td>
10972</tr> 10979</tr>
10973<tr> 10980<tr>
10974<td>DJBDNS_LOG_USER</td> 10981<td>DJBDNS_LOG_USER</td>
10975<td>DJBDNS_RBL_USER</td> 10982<td>DJBDNS_RBL_USER</td>
10976</tr> 10983</tr>
10977<tr> 10984<tr>
10978<td>DJBDNS_TINY_USER</td> 10985<td>DJBDNS_TINY_USER</td>
10979<td>DLOPEN_REQUIRE_PTHREADS</td> 10986<td>DLOPEN_REQUIRE_PTHREADS</td>
10980</tr> 10987</tr>
10981<tr> 10988<tr>
10982<td>DL_AUTO_VARS</td> 10989<td>DL_AUTO_VARS</td>
10983<td>DL_CFLAGS</td> 10990<td>DL_CFLAGS</td>
10984</tr> 10991</tr>
10985<tr> 10992<tr>
10986<td>DL_LDFLAGS</td> 10993<td>DL_LDFLAGS</td>
10987<td>DL_LIBS</td> 10994<td>DL_LIBS</td>
10988</tr> 10995</tr>
10989<tr> 10996<tr>
10990<td>DNS</td> 10997<td>DNS</td>
10991<td>DOWNLOADED_DISTFILE</td> 10998<td>DOWNLOADED_DISTFILE</td>
10992</tr> 10999</tr>
10993<tr> 11000<tr>
10994<td>DT_LAYOUT</td> 11001<td>DT_LAYOUT</td>
10995<td>DYNAMIC_SITES_CMD</td> 11002<td>DYNAMIC_SITES_CMD</td>
10996</tr> 11003</tr>
10997<tr> 11004<tr>
10998<td>DYNAMIC_SITES_SCRIPT</td> 11005<td>DYNAMIC_SITES_SCRIPT</td>
10999<td>ECHO</td> 11006<td>ECHO</td>
11000</tr> 11007</tr>
11001<tr> 11008<tr>
11002<td>ECHO_N</td> 11009<td>ECHO_N</td>
11003<td>ELK_GUI</td> 11010<td>ELK_GUI</td>
11004</tr> 11011</tr>
11005<tr> 11012<tr>
11006<td>EMACS_TYPE</td> 11013<td>EMACS_TYPE</td>
11007<td>EMULDIR</td> 11014<td>EMULDIR</td>
11008</tr> 11015</tr>
11009<tr> 11016<tr>
11010<td>EMULSUBDIR</td> 11017<td>EMULSUBDIR</td>
11011<td>EMULSUBDIRSLASH</td> 11018<td>EMULSUBDIRSLASH</td>
11012</tr> 11019</tr>
11013<tr> 11020<tr>
11014<td>EMUL_ARCH</td> 11021<td>EMUL_ARCH</td>
11015<td>EMUL_DISTRO</td> 11022<td>EMUL_DISTRO</td>
11016</tr> 11023</tr>
11017<tr> 11024<tr>
11018<td>EMUL_EXEC_FMT</td> 11025<td>EMUL_EXEC_FMT</td>
11019<td>EMUL_IS_NATIVE</td> 11026<td>EMUL_IS_NATIVE</td>
11020</tr> 11027</tr>
11021<tr> 11028<tr>
11022<td>EMUL_MODULES</td> 11029<td>EMUL_MODULES</td>
11023<td>EMUL_OPSYS</td> 11030<td>EMUL_OPSYS</td>
11024</tr> 11031</tr>
11025<tr> 11032<tr>
11026<td>EMUL_PKG_FMT</td> 11033<td>EMUL_PKG_FMT</td>
11027<td>EMUL_PLATFORM</td> 11034<td>EMUL_PLATFORM</td>
11028</tr> 11035</tr>
11029<tr> 11036<tr>
11030<td>EMUL_PLATFORMS</td> 11037<td>EMUL_PLATFORMS</td>
11031<td>EMUL_PREFER</td> 11038<td>EMUL_PREFER</td>
11032</tr> 11039</tr>
11033<tr> 11040<tr>
11034<td>EMUL_REQD</td> 11041<td>EMUL_REQD</td>
11035<td>EMUL_TYPE</td> 11042<td>EMUL_TYPE</td>
11036</tr> 11043</tr>
11037<tr> 11044<tr>
11038<td>ERROR_MSG</td> 11045<td>ERROR_MSG</td>
11039<td>EXIM_GROUP</td> 11046<td>EXIM_GROUP</td>
11040</tr> 11047</tr>
11041<tr> 11048<tr>
11042<td>EXIM_USER</td> 11049<td>EXIM_USER</td>
11043<td>EXPORT_SYMBOLS_LDFLAGS</td> 11050<td>EXPORT_SYMBOLS_LDFLAGS</td>
11044</tr> 11051</tr>
11045<tr> 11052<tr>
11046<td>EXTRACTOR</td> 11053<td>EXTRACTOR</td>
11047<td>EXTRACT_CMD</td> 11054<td>EXTRACT_CMD</td>
11048</tr> 11055</tr>
11049<tr> 11056<tr>
11050<td>EXTRACT_CMD_DEFAULT</td> 11057<td>EXTRACT_CMD_DEFAULT</td>
11051<td>EXTRACT_DIR</td> 11058<td>EXTRACT_DIR</td>
11052</tr> 11059</tr>
11053<tr> 11060<tr>
11054<td>EXTRACT_ELEMENTS</td> 11061<td>EXTRACT_ELEMENTS</td>
11055<td>EXTRACT_ENV</td> 11062<td>EXTRACT_ENV</td>
11056</tr> 11063</tr>
11057<tr> 11064<tr>
11058<td>EXTRACT_ONLY</td> 11065<td>EXTRACT_ONLY</td>
11059<td>EXTRACT_OPTS</td> 11066<td>EXTRACT_OPTS</td>
11060</tr> 11067</tr>
11061<tr> 11068<tr>
11062<td>EXTRACT_SUFX</td> 11069<td>EXTRACT_SUFX</td>
11063<td>EXTRACT_USING</td> 11070<td>EXTRACT_USING</td>
11064</tr> 11071</tr>
11065<tr> 11072<tr>
11066<td>FAILOVER_FETCH</td> 11073<td>FAILOVER_FETCH</td>
11067<td>FAIL_MSG</td> 11074<td>FAIL_MSG</td>
11068</tr> 11075</tr>
11069<tr> 11076<tr>
11070<td>FAKE_NCURSES</td> 11077<td>FAKE_NCURSES</td>
11071<td>FAM</td> 11078<td>FAM</td>
11072</tr> 11079</tr>
11073<tr> 11080<tr>
11074<td>FAM_ACCEPTED</td> 11081<td>FAM_ACCEPTED</td>
11075<td>FAM_DEFAULT</td> 11082<td>FAM_DEFAULT</td>
11076</tr> 11083</tr>
11077<tr> 11084<tr>
11078<td>FAM_SERVER</td> 11085<td>FAM_SERVER</td>
11079<td>FCPATH</td> 11086<td>FCPATH</td>
11080</tr> 11087</tr>
11081<tr> 11088<tr>
11082<td>FEATURE_CPPFLAGS</td> 11089<td>FEATURE_CPPFLAGS</td>
11083<td>FEATURE_LDFLAGS</td> 11090<td>FEATURE_LDFLAGS</td>
11084</tr> 11091</tr>
11085<tr> 11092<tr>
11086<td>FEATURE_LIBS</td> 11093<td>FEATURE_LIBS</td>
11087<td>FETCH_AFTER_ARGS</td> 11094<td>FETCH_AFTER_ARGS</td>
11088</tr> 11095</tr>
11089<tr> 11096<tr>
11090<td>FETCH_BEFORE_ARGS</td> 11097<td>FETCH_BEFORE_ARGS</td>
11091<td>FETCH_CMD</td> 11098<td>FETCH_CMD</td>
11092</tr> 11099</tr>
11093<tr> 11100<tr>
11094<td>FETCH_OUTPUT_ARGS</td> 11101<td>FETCH_OUTPUT_ARGS</td>
11095<td>FETCH_PROXY</td> 11102<td>FETCH_PROXY</td>
11096</tr> 11103</tr>
11097<tr> 11104<tr>
11098<td>FETCH_RESUME_ARGS</td> 11105<td>FETCH_RESUME_ARGS</td>
11099<td>FETCH_USING</td> 11106<td>FETCH_USING</td>
11100</tr> 11107</tr>
11101<tr> 11108<tr>
11102<td>FILES_SUBST</td> 11109<td>FILES_SUBST</td>
11103<td>FILES_SUBST_SED</td> 11110<td>FILES_SUBST_SED</td>
11104</tr> 11111</tr>
11105<tr> 11112<tr>
11106<td>FIX_SYSTEM_HEADERS</td> 11113<td>FIX_SYSTEM_HEADERS</td>
11107<td>FLUXBOX_USE_GNOME</td> 11114<td>FLUXBOX_USE_GNOME</td>
11108</tr> 11115</tr>
11109<tr> 11116<tr>
11110<td>FLUXBOX_USE_KDE</td> 11117<td>FLUXBOX_USE_KDE</td>
11111<td>FLUXBOX_USE_XFT</td> 11118<td>FLUXBOX_USE_XFT</td>
11112</tr> 11119</tr>
11113<tr> 11120<tr>
11114<td>FLUXBOX_USE_XINERAMA</td> 11121<td>FLUXBOX_USE_XINERAMA</td>
11115<td>FONTDIR</td> 11122<td>FONTDIR</td>
11116</tr> 11123</tr>
11117<tr> 11124<tr>
11118<td>FONTS_DIRS</td> 11125<td>FONTS_DIRS</td>
11119<td>FONTS_VERBOSE</td> 11126<td>FONTS_VERBOSE</td>
11120</tr> 11127</tr>
11121<tr> 11128<tr>
11122<td>FOO_HACKS_MK</td> 11129<td>FOO_HACKS_MK</td>
11123<td>FOSSIL_EXTRACTDIR</td> 11130<td>FOSSIL_EXTRACTDIR</td>
11124</tr> 11131</tr>
11125<tr> 11132<tr>
11126<td>FOSSIL_REPO</td> 11133<td>FOSSIL_REPO</td>
11127<td>FOSSIL_REPOSITORIES</td> 11134<td>FOSSIL_REPOSITORIES</td>
11128</tr> 11135</tr>
11129<tr> 11136<tr>
11130<td>FOSSIL_VERSION</td> 11137<td>FOSSIL_VERSION</td>
11131<td>FOX_USE_XUNICODE</td> 11138<td>FOX_USE_XUNICODE</td>
11132</tr> 11139</tr>
11133<tr> 11140<tr>
11134<td>FREEWNN_GROUP</td> 11141<td>FREEWNN_GROUP</td>
11135<td>FREEWNN_USER</td> 11142<td>FREEWNN_USER</td>
11136</tr> 11143</tr>
11137<tr> 11144<tr>
11138<td>FTP_PKG_URL_DIR</td> 11145<td>FTP_PKG_URL_DIR</td>
11139<td>FTP_PKG_URL_HOST</td> 11146<td>FTP_PKG_URL_HOST</td>
11140</tr> 11147</tr>
11141<tr> 11148<tr>
11142<td>GAMEDATAMODE</td> 11149<td>GAMEDATAMODE</td>
11143<td>GAMEDATA_PERMS</td> 11150<td>GAMEDATA_PERMS</td>
11144</tr> 11151</tr>
11145<tr> 11152<tr>
11146<td>GAMEDIRMODE</td> 11153<td>GAMEDIRMODE</td>
11147<td>GAMEDIR_PERMS</td> 11154<td>GAMEDIR_PERMS</td>
11148</tr> 11155</tr>
11149<tr> 11156<tr>
11150<td>GAMEGRP</td> 11157<td>GAMEGRP</td>
11151<td>GAMEMODE</td> 11158<td>GAMEMODE</td>
11152</tr> 11159</tr>
11153<tr> 11160<tr>
11154<td>GAMEOWN</td> 11161<td>GAMEOWN</td>
11155<td>GAMES_GROUP</td> 11162<td>GAMES_GROUP</td>
11156</tr> 11163</tr>
11157<tr> 11164<tr>
11158<td>GAMES_USER</td> 11165<td>GAMES_USER</td>
11159<td>GCC</td> 11166<td>GCC</td>

cvs diff -r1.283 -r1.284 pkgsrc/doc/pkgsrc.txt (switch to unified diff)

--- pkgsrc/doc/pkgsrc.txt 2020/01/28 03:18:14 1.283
+++ pkgsrc/doc/pkgsrc.txt 2020/01/28 03:34:03 1.284
@@ -7196,2031 +7196,2038 @@ should include the package name and vers @@ -7196,2031 +7196,2038 @@ should include the package name and vers
7196should contain a short description of your package (contents of the COMMENT 7196should contain a short description of your package (contents of the COMMENT
7197variable or DESCR file are OK). The uuencoded package data should go into the " 7197variable or DESCR file are OK). The uuencoded package data should go into the "
7198fix" field. 7198fix" field.
7199 7199
7200If you want to submit several packages, please send a separate PR for each one, 7200If you want to submit several packages, please send a separate PR for each one,
7201it's easier for us to track things that way. 7201it's easier for us to track things that way.
7202 7202
7203Alternatively, you can also import new packages into pkgsrc-wip ("pkgsrc 7203Alternatively, you can also import new packages into pkgsrc-wip ("pkgsrc
7204work-in-progress"); see the homepage at http://pkgsrc.org/wip/ for details. 7204work-in-progress"); see the homepage at http://pkgsrc.org/wip/ for details.
7205 7205
720623.3. General notes when adding, updating, or removing packages 720623.3. General notes when adding, updating, or removing packages
7207 7207
7208Please note all package additions, updates, moves, and removals in pkgsrc/doc/ 7208Please note all package additions, updates, moves, and removals in pkgsrc/doc/
7209CHANGES-YYYY. It's very important to keep this file up to date and conforming 7209CHANGES-YYYY. It's very important to keep this file up to date and conforming
7210to the existing format, because it will be used by scripts to automatically 7210to the existing format, because it will be used by scripts to automatically
7211update pages on www.NetBSD.org and other sites. Additionally, check the pkgsrc/ 7211update pages on www.NetBSD.org and other sites. Additionally, check the pkgsrc/
7212doc/TODO file and remove the entry for the package you updated or removed, in 7212doc/TODO file and remove the entry for the package you updated or removed, in
7213case it was mentioned there. 7213case it was mentioned there.
7214 7214
7215When the PKGREVISION of a package is bumped, the change should appear in pkgsrc 7215When the PKGREVISION of a package is bumped, the change should appear in pkgsrc
7216/doc/CHANGES-YYYY if it is security related or otherwise relevant. Mass bumps 7216/doc/CHANGES-YYYY if it is security related or otherwise relevant. Mass bumps
7217that result from a dependency being updated should not be mentioned. In all 7217that result from a dependency being updated should not be mentioned. In all
7218other cases it's the developer's decision. 7218other cases it's the developer's decision.
7219 7219
7220There is a make target that helps in creating proper CHANGES-YYYY entries: make 7220There is a make target that helps in creating proper CHANGES-YYYY entries: make
7221changes-entry. It uses the optional CTYPE and NETBSD_LOGIN_NAME variables. The 7221changes-entry. It uses the optional CTYPE and NETBSD_LOGIN_NAME variables. The
7222general usage is to first make sure that your CHANGES-YYYY file is up-to-date 7222general usage is to first make sure that your CHANGES-YYYY file is up-to-date
7223(to avoid having to resolve conflicts later-on) and then to cd to the package 7223(to avoid having to resolve conflicts later-on) and then to cd to the package
7224directory. For package updates, make changes-entry is enough. For new packages, 7224directory. For package updates, make changes-entry is enough. For new packages,
7225or package moves or removals, set the CTYPE variable on the command line to 7225or package moves or removals, set the CTYPE variable on the command line to
7226"Added", "Moved", or "Removed". You can set NETBSD_LOGIN_NAME in mk.conf if 7226"Added", "Moved", or "Removed". You can set NETBSD_LOGIN_NAME in mk.conf if
7227your local login name is not the same as your NetBSD login name. The target 7227your local login name is not the same as your NetBSD login name. The target
7228also automatically removes possibly existing entries for the package in the 7228also automatically removes possibly existing entries for the package in the
7229TODO file. Don't forget to commit the changes, e.g. by using make 7229TODO file. Don't forget to commit the changes, e.g. by using make
7230commit-changes-entry! If you are not using a checkout directly from 7230commit-changes-entry! If you are not using a checkout directly from
7231cvs.NetBSD.org, but e.g. a local copy of the repository, you can set 7231cvs.NetBSD.org, but e.g. a local copy of the repository, you can set
7232USE_NETBSD_REPO=yes. This makes the cvs commands use the main repository. 7232USE_NETBSD_REPO=yes. This makes the cvs commands use the main repository.
7233 7233
723423.4. Commit Messages 723423.4. Commit Messages
7235 7235
7236For several years, there have been mirrors of pkgsrc in fossil, git, and hg. 7236For several years, there have been mirrors of pkgsrc in fossil, git, and hg.
7237Standard practise when using these tools is to make the first line of a commit 7237Standard practise when using these tools is to make the first line of a commit
7238message function as a summary that can be read without the rest, such as is 7238message function as a summary that can be read without the rest, such as is
7239commonly done with "git log --oneline". For this reason, we have the following 7239commonly done with "git log --oneline". For this reason, we have the following
7240guidelines for pkgsrc commit messages: 7240guidelines for pkgsrc commit messages:
7241 7241
7242 * Start the commit message with a line that explains the big picture in 65 7242 * Start the commit message with a line that explains the big picture in 65
7243 characters or less. When a commit is for one package, include the name of 7243 characters or less. When a commit is for one package, include the name of
7244 the package. For updates, include the version to which it is updated. 7244 the package. For updates, include the version to which it is updated.
7245 7245
7246 * Leave the next line empty. 7246 * Leave the next line empty.
7247 7247
7248 * Then come the details for the commit (changes in that package, reason for a 7248 * Then come the details for the commit (changes in that package, reason for a
7249 change) and any relevant PRs. Wrap this section. 7249 change) and any relevant PRs. Wrap this section.
7250 7250
7251Here is an example: 7251Here is an example:
7252 7252
7253 libxslt: update to 1.0.30 7253 libxslt: update to 1.0.30
7254 7254
7255 Changes since 1.0.29: 7255 Changes since 1.0.29:
7256 ... 7256 ...
7257 7257
7258 7258
7259Here is another example: 7259Here is another example:
7260 7260
7261 mk/bsd.pkg.mk: enable SSP by default on NetBSD 7261 mk/bsd.pkg.mk: enable SSP by default on NetBSD
7262 7262
7263 (rationale) 7263 (rationale)
7264 7264
7265 7265
7266Commit messages are final: no "cvs admin" is allowed on the pkgsrc repository 7266Commit messages are final: no "cvs admin" is allowed on the pkgsrc repository
7267to change commit messages. 7267to change commit messages.
7268 7268
726923.5. Committing: Adding a package to CVS 726923.5. Committing: Adding a package to CVS
7270 7270
7271This section is only of interest for pkgsrc developers with write access to the 7271This section is only of interest for pkgsrc developers with write access to the
7272pkgsrc repository. 7272pkgsrc repository.
7273 7273
7274When the package is finished, "cvs add" the files. Start by adding the 7274When the package is finished, "cvs add" the files. Start by adding the
7275directory and then files in the directory. Don't forget to add the new package 7275directory and then files in the directory. Don't forget to add the new package
7276to the category's Makefile. Make sure you don't forget any files; you can check 7276to the category's Makefile. Make sure you don't forget any files; you can check
7277by running "cvs status". An example: 7277by running "cvs status". An example:
7278 7278
7279$ cd .../pkgsrc/category 7279$ cd .../pkgsrc/category
7280$ cvs add pkgname 7280$ cvs add pkgname
7281$ cd pkgname 7281$ cd pkgname
7282$ cvs add DESCR Makefile PLIST distinfo buildlink3.mk patches 7282$ cvs add DESCR Makefile PLIST distinfo buildlink3.mk patches
7283$ cvs add patches/p* 7283$ cvs add patches/p*
7284$ cvs status | less 7284$ cvs status | less
7285$ cvs commit 7285$ cvs commit
7286$ cd .. 7286$ cd ..
7287$ vi Makefile # add SUBDIRS+=pkgname line 7287$ vi Makefile # add SUBDIRS+=pkgname line
7288$ cvs commit Makefile 7288$ cvs commit Makefile
7289$ cd pkgname 7289$ cd pkgname
7290$ make CTYPE=Added commit-changes-entry 7290$ make CTYPE=Added commit-changes-entry
7291 7291
7292The commit message of the initial import should include part of the DESCR file, 7292The commit message of the initial import should include part of the DESCR file,
7293so people reading the mailing lists know what the package is/does. 7293so people reading the mailing lists know what the package is/does.
7294 7294
7295Also mention the new package in pkgsrc/doc/CHANGES-20xx. 7295Also mention the new package in pkgsrc/doc/CHANGES-20xx.
7296 7296
7297Previously, "cvs import" was suggested, but it was much easier to get wrong 7297Previously, "cvs import" was suggested, but it was much easier to get wrong
7298than "cvs add". 7298than "cvs add".
7299 7299
730023.6. Updating a package to a newer version 730023.6. Updating a package to a newer version
7301 7301
7302Please always put a concise, appropriate and relevant summary of the changes 7302Please always put a concise, appropriate and relevant summary of the changes
7303between old and new versions into the commit log when updating a package. There 7303between old and new versions into the commit log when updating a package. There
7304are various reasons for this: 7304are various reasons for this:
7305 7305
7306 * A URL is volatile, and can change over time. It may go away completely or 7306 * A URL is volatile, and can change over time. It may go away completely or
7307 its information may be overwritten by newer information. 7307 its information may be overwritten by newer information.
7308 7308
7309 * Having the change information between old and new versions in our CVS 7309 * Having the change information between old and new versions in our CVS
7310 repository is very useful for people who use either cvs or anoncvs. 7310 repository is very useful for people who use either cvs or anoncvs.
7311 7311
7312 * Having the change information between old and new versions in our CVS 7312 * Having the change information between old and new versions in our CVS
7313 repository is very useful for people who read the pkgsrc-changes mailing 7313 repository is very useful for people who read the pkgsrc-changes mailing
7314 list, so that they can make tactical decisions about when to upgrade the 7314 list, so that they can make tactical decisions about when to upgrade the
7315 package. 7315 package.
7316 7316
7317Please also recognize that, just because a new version of a package has been 7317Please also recognize that, just because a new version of a package has been
7318released, it should not automatically be upgraded in the CVS repository. We 7318released, it should not automatically be upgraded in the CVS repository. We
7319prefer to be conservative in the packages that are included in pkgsrc - 7319prefer to be conservative in the packages that are included in pkgsrc -
7320development or beta packages are not really the best thing for most places in 7320development or beta packages are not really the best thing for most places in
7321which pkgsrc is used. Please use your judgement about what should go into 7321which pkgsrc is used. Please use your judgement about what should go into
7322pkgsrc, and bear in mind that stability is to be preferred above new and 7322pkgsrc, and bear in mind that stability is to be preferred above new and
7323possibly untested features. 7323possibly untested features.
7324 7324
732523.7. Renaming a package in pkgsrc 732523.7. Renaming a package in pkgsrc
7326 7326
7327Renaming packages is not recommended. 7327Renaming packages is not recommended.
7328 7328
7329When renaming packages, be sure to fix any references to old name in other 7329When renaming packages, be sure to fix any references to old name in other
7330Makefiles, options, buildlink files, etc. 7330Makefiles, options, buildlink files, etc.
7331 7331
7332Also when renaming a package, please add the package name and version pattern 7332Also when renaming a package, please add the package name and version pattern
7333(s) of the previous package to SUPERSEDES. This may be repeated for multiple 7333(s) of the previous package to SUPERSEDES. This may be repeated for multiple
7334renames. The new package would be an exact replacement. Example: 7334renames. The new package would be an exact replacement. Example:
7335 7335
7336SUPERSEDES+= p5-IO-Compress-Zlib<2.017 7336SUPERSEDES+= p5-IO-Compress-Zlib<2.017
7337SUPERSEDES+= optcomp-[0-9]* 7337SUPERSEDES+= optcomp-[0-9]*
7338 7338
7339Note that "successor" in the CHANGES-YYYY file doesn't necessarily mean that it 7339Note that "successor" in the CHANGES-YYYY file doesn't necessarily mean that it
7340supersedes, as that successor may not be an exact replacement but is a 7340supersedes, as that successor may not be an exact replacement but is a
7341suggestion for the replaced functionality. 7341suggestion for the replaced functionality.
7342 7342
734323.8. Moving a package in pkgsrc 734323.8. Moving a package in pkgsrc
7344 7344
7345It is preferred that packages are not renamed or moved, but if needed please 7345It is preferred that packages are not renamed or moved, but if needed please
7346follow these steps. 7346follow these steps.
7347 7347
7348 1. Make a copy of the directory somewhere else. 7348 1. Make a copy of the directory somewhere else.
7349 7349
7350 2. Remove all CVS dirs. 7350 2. Remove all CVS dirs.
7351 7351
7352 Alternatively to the first two steps you can also do: 7352 Alternatively to the first two steps you can also do:
7353 7353
7354 % cvs -d user@cvs.NetBSD.org:/cvsroot export -D today pkgsrc/category/package 7354 % cvs -d user@cvs.NetBSD.org:/cvsroot export -D today pkgsrc/category/package
7355 7355
7356 and use that for further work. 7356 and use that for further work.
7357 7357
7358 3. Fix CATEGORIES and any DEPENDS paths that just did "../package" instead of  7358 3. Fix CATEGORIES and any DEPENDS paths that just did "../package" instead of
7359 "../../category/package". 7359 "../../category/package".
7360 7360
7361 4. In the modified package's Makefile, consider setting PREV_PKGPATH to the 7361 4. In the modified package's Makefile, consider setting PREV_PKGPATH to the
7362 previous category/package pathname. The PREV_PKGPATH can be used by tools 7362 previous category/package pathname. The PREV_PKGPATH can be used by tools
7363 for doing an update using pkgsrc building; for example, it can search the 7363 for doing an update using pkgsrc building; for example, it can search the
7364 pkg_summary(5) database for PREV_PKGPATH (if no SUPERSEDES) and then use 7364 pkg_summary(5) database for PREV_PKGPATH (if no SUPERSEDES) and then use
7365 the corresponding new PKGPATH for that moved package. Note that it may have 7365 the corresponding new PKGPATH for that moved package. Note that it may have
7366 multiple matches, so the tool should also check on the PKGBASE too. The 7366 multiple matches, so the tool should also check on the PKGBASE too. The
7367 PREV_PKGPATH probably has no value unless SUPERSEDES is not set, i.e. 7367 PREV_PKGPATH probably has no value unless SUPERSEDES is not set, i.e.
7368 PKGBASE stays the same. 7368 PKGBASE stays the same.
7369 7369
7370 5. cvs import the modified package in the new place. 7370 5. cvs import the modified package in the new place.
7371 7371
7372 6. Check if any package depends on it: 7372 6. Check if any package depends on it:
7373 7373
7374 % cd /usr/pkgsrc 7374 % cd /usr/pkgsrc
7375 % grep /package */*/Makefile* */*/buildlink* 7375 % grep /package */*/Makefile* */*/buildlink*
7376 7376
7377 7. Fix paths in packages from step 5 to point to new location. 7377 7. Fix paths in packages from step 5 to point to new location.
7378 7378
7379 8. cvs rm (-f) the package at the old location. 7379 8. cvs rm (-f) the package at the old location.
7380 7380
7381 9. Remove from oldcategory/Makefile. 7381 9. Remove from oldcategory/Makefile.
7382 7382
738310. Add to newcategory/Makefile. 738310. Add to newcategory/Makefile.
7384 7384
738511. Commit the changed and removed files: 738511. Commit the changed and removed files:
7386 7386
7387 % cvs commit oldcategory/package oldcategory/Makefile newcategory/Makefile 7387 % cvs commit oldcategory/package oldcategory/Makefile newcategory/Makefile
7388 7388
7389 (and any packages from step 5, of course). 7389 (and any packages from step 5, of course).
7390 7390
7391Chapter 24. Frequently Asked Questions 7391Chapter 24. Frequently Asked Questions
7392 7392
7393This section contains the answers to questions that may arise when you are 7393This section contains the answers to questions that may arise when you are
7394writing a package. If you don't find your question answered here, first have a 7394writing a package. If you don't find your question answered here, first have a
7395look in the other chapters, and if you still don't have the answer, ask on the 7395look in the other chapters, and if you still don't have the answer, ask on the
7396pkgsrc-users mailing list. 7396pkgsrc-users mailing list.
7397 7397
739824.1. What is the difference between MAKEFLAGS, .MAKEFLAGS and MAKE_FLAGS? 739824.1. What is the difference between MAKEFLAGS, .MAKEFLAGS and MAKE_FLAGS?
739924.2. What is the difference between MAKE, GMAKE and MAKE_PROGRAM? 739924.2. What is the difference between MAKE, GMAKE and MAKE_PROGRAM?
740024.3. What is the difference between CC, PKG_CC and PKGSRC_COMPILER? 740024.3. What is the difference between CC, PKG_CC and PKGSRC_COMPILER?
740124.4. What is the difference between BUILDLINK_LDFLAGS, BUILDLINK_LDADD and 740124.4. What is the difference between BUILDLINK_LDFLAGS, BUILDLINK_LDADD and
7402 BUILDLINK_LIBS? 7402 BUILDLINK_LIBS?
740324.5. Why does make show-var VARNAME=BUILDLINK_PREFIX.foo say it's empty? 740324.5. Why does make show-var VARNAME=BUILDLINK_PREFIX.foo say it's empty?
740424.6. What does ${MASTER_SITE_SOURCEFORGE:=package/} mean? I don't understand 740424.6. What does ${MASTER_SITE_SOURCEFORGE:=package/} mean? I don't understand
7405 the := inside it. 7405 the := inside it.
740624.7. Which mailing lists are there for package developers? 740624.7. Which mailing lists are there for package developers?
740724.8. Where is the pkgsrc documentation? 740724.8. Where is the pkgsrc documentation?
740824.9. I have a little time to kill. What shall I do? 740824.9. I have a little time to kill. What shall I do?
7409 7409
741024.1. What is the difference between MAKEFLAGS, .MAKEFLAGS and MAKE_FLAGS? 741024.1. What is the difference between MAKEFLAGS, .MAKEFLAGS and MAKE_FLAGS?
7411 7411
7412 MAKEFLAGS are the flags passed to the pkgsrc-internal invocations of make 7412 MAKEFLAGS are the flags passed to the pkgsrc-internal invocations of make
7413 (1), while MAKE_FLAGS are the flags that are passed to the MAKE_PROGRAM 7413 (1), while MAKE_FLAGS are the flags that are passed to the MAKE_PROGRAM
7414 when building the package. [FIXME: What is .MAKEFLAGS for?] 7414 when building the package. [FIXME: What is .MAKEFLAGS for?]
7415 7415
741624.2. What is the difference between MAKE, GMAKE and MAKE_PROGRAM? 741624.2. What is the difference between MAKE, GMAKE and MAKE_PROGRAM?
7417 7417
7418 MAKE is the path to the make(1) program that is used in the pkgsrc 7418 MAKE is the path to the make(1) program that is used in the pkgsrc
7419 infrastructure. GMAKE is the path to GNU Make, but you need to say 7419 infrastructure. GMAKE is the path to GNU Make, but you need to say
7420 USE_TOOLS+=gmake to use that. MAKE_PROGRAM is the path to the Make 7420 USE_TOOLS+=gmake to use that. MAKE_PROGRAM is the path to the Make
7421 program that is used for building the package. 7421 program that is used for building the package.
7422 7422
742324.3. What is the difference between CC, PKG_CC and PKGSRC_COMPILER? 742324.3. What is the difference between CC, PKG_CC and PKGSRC_COMPILER?
7424 7424
7425 CC is the path to the real C compiler, which can be configured by the 7425 CC is the path to the real C compiler, which can be configured by the
7426 pkgsrc user. PKG_CC is the path to the compiler wrapper. PKGSRC_COMPILER 7426 pkgsrc user. PKG_CC is the path to the compiler wrapper. PKGSRC_COMPILER
7427 is not a path to a compiler, but the type of compiler that should be 7427 is not a path to a compiler, but the type of compiler that should be
7428 used. See mk/compiler.mk for more information about the latter variable. 7428 used. See mk/compiler.mk for more information about the latter variable.
7429 7429
743024.4. What is the difference between BUILDLINK_LDFLAGS, BUILDLINK_LDADD and 743024.4. What is the difference between BUILDLINK_LDFLAGS, BUILDLINK_LDADD and
7431 BUILDLINK_LIBS? 7431 BUILDLINK_LIBS?
7432 7432
7433 [FIXME] 7433 [FIXME]
7434 7434
743524.5. Why does make show-var VARNAME=BUILDLINK_PREFIX.foo say it's empty? 743524.5. Why does make show-var VARNAME=BUILDLINK_PREFIX.foo say it's empty?
7436 7436
7437 For optimization reasons, some variables are only available in the " 7437 For optimization reasons, some variables are only available in the "
7438 wrapper" phase and later. To "simulate" the wrapper phase, append  7438 wrapper" phase and later. To "simulate" the wrapper phase, append
7439 PKG_PHASE=wrapper to the above command. 7439 PKG_PHASE=wrapper to the above command.
7440 7440
744124.6. What does ${MASTER_SITE_SOURCEFORGE:=package/} mean? I don't understand 744124.6. What does ${MASTER_SITE_SOURCEFORGE:=package/} mean? I don't understand
7442 the := inside it. 7442 the := inside it.
7443 7443
7444 The := is not really an assignment operator, although it looks like it. 7444 The := is not really an assignment operator, although it looks like it.
7445 Instead, it is a degenerate form of ${LIST:old_string=new_string}, which 7445 Instead, it is a degenerate form of ${LIST:old_string=new_string}, which
7446 is documented in the make(1) man page and which is commonly used in the 7446 is documented in the make(1) man page and which is commonly used in the
7447 form ${SRCS:.c=.o}. In the case of MASTER_SITE_*, old_string is the empty 7447 form ${SRCS:.c=.o}. In the case of MASTER_SITE_*, old_string is the empty
7448 string and new_string is package/. That's where the : and the = fall 7448 string and new_string is package/. That's where the : and the = fall
7449 together. 7449 together.
7450 7450
745124.7. Which mailing lists are there for package developers? 745124.7. Which mailing lists are there for package developers?
7452 7452
7453 tech-pkg 7453 tech-pkg
7454 7454
7455 This is a list for technical discussions related to pkgsrc 7455 This is a list for technical discussions related to pkgsrc
7456 development, e.g. soliciting feedback for changes to pkgsrc 7456 development, e.g. soliciting feedback for changes to pkgsrc
7457 infrastructure, proposed new features, questions related to porting 7457 infrastructure, proposed new features, questions related to porting
7458 pkgsrc to a new platform, advice for maintaining a package, patches 7458 pkgsrc to a new platform, advice for maintaining a package, patches
7459 that affect many packages, help requests moved from pkgsrc-users when 7459 that affect many packages, help requests moved from pkgsrc-users when
7460 an infrastructure bug is found, etc. 7460 an infrastructure bug is found, etc.
7461 7461
7462 pkgsrc-bugs 7462 pkgsrc-bugs
7463 7463
7464 All bug reports in category "pkg" sent with send-pr(1) appear here. 7464 All bug reports in category "pkg" sent with send-pr(1) appear here.
7465 Please do not report your bugs here directly; use one of the other 7465 Please do not report your bugs here directly; use one of the other
7466 mailing lists. 7466 mailing lists.
7467 7467
746824.8. Where is the pkgsrc documentation? 746824.8. Where is the pkgsrc documentation?
7469 7469
7470 There are many places where you can find documentation about pkgsrc: 7470 There are many places where you can find documentation about pkgsrc:
7471 7471
7472 * The pkgsrc guide (this document) is a collection of chapters that 7472 * The pkgsrc guide (this document) is a collection of chapters that
7473 explain large parts of pkgsrc, but some chapters tend to be outdated. 7473 explain large parts of pkgsrc, but some chapters tend to be outdated.
7474 Which ones they are is hard to say. 7474 Which ones they are is hard to say.
7475 7475
7476 * On the mailing list archives (see http://mail-index.NetBSD.org/), you 7476 * On the mailing list archives (see http://mail-index.NetBSD.org/), you
7477 can find discussions about certain features, announcements of new 7477 can find discussions about certain features, announcements of new
7478 parts of the pkgsrc infrastructure and sometimes even announcements 7478 parts of the pkgsrc infrastructure and sometimes even announcements
7479 that a certain feature has been marked as obsolete. The benefit here 7479 that a certain feature has been marked as obsolete. The benefit here
7480 is that each message has a date appended to it. 7480 is that each message has a date appended to it.
7481 7481
7482 * Many of the files in the mk/ directory start with a comment that 7482 * Many of the files in the mk/ directory start with a comment that
7483 describes the purpose of the file and how it can be used by the 7483 describes the purpose of the file and how it can be used by the
7484 pkgsrc user and package authors. An easy way to find this 7484 pkgsrc user and package authors. An easy way to find this
7485 documentation is to run bmake help. 7485 documentation is to run bmake help.
7486 7486
7487 * The CVS log messages are a rich source of information, but they tend 7487 * The CVS log messages are a rich source of information, but they tend
7488 to be highly abbreviated, especially for actions that occur often. 7488 to be highly abbreviated, especially for actions that occur often.
7489 Some contain a detailed description of what has changed, but they are 7489 Some contain a detailed description of what has changed, but they are
7490 geared towards the other pkgsrc developers, not towards an average 7490 geared towards the other pkgsrc developers, not towards an average
7491 pkgsrc user. They also only document changes, so if you don't know 7491 pkgsrc user. They also only document changes, so if you don't know
7492 what has been before, these messages may not be worth too much to 7492 what has been before, these messages may not be worth too much to
7493 you. 7493 you.
7494 7494
7495 * Some parts of pkgsrc are only "implicitly documented", that is the 7495 * Some parts of pkgsrc are only "implicitly documented", that is the
7496 documentation exists only in the mind of the developer who wrote the 7496 documentation exists only in the mind of the developer who wrote the
7497 code. To get this information, use the cvs annotate command to see 7497 code. To get this information, use the cvs annotate command to see
7498 who has written it and ask on the tech-pkg mailing list, so that 7498 who has written it and ask on the tech-pkg mailing list, so that
7499 others can find your questions later (see above). To be sure that the 7499 others can find your questions later (see above). To be sure that the
7500 developer in charge reads the mail, you may CC him or her. 7500 developer in charge reads the mail, you may CC him or her.
7501 7501
750224.9. I have a little time to kill. What shall I do? 750224.9. I have a little time to kill. What shall I do?
7503 7503
7504 This is not really an FAQ yet, but here's the answer anyway. 7504 This is not really an FAQ yet, but here's the answer anyway.
7505 7505
7506 * Run pkg_chk -N (from the pkgtools/pkg_chk package). It will tell you 7506 * Run pkg_chk -N (from the pkgtools/pkg_chk package). It will tell you
7507 about newer versions of installed packages that are available, but 7507 about newer versions of installed packages that are available, but
7508 not yet updated in pkgsrc. 7508 not yet updated in pkgsrc.
7509 7509
7510 * Browse pkgsrc/doc/TODO ? it contains a list of suggested new packages 7510 * Browse pkgsrc/doc/TODO ? it contains a list of suggested new packages
7511 and a list of cleanups and enhancements for pkgsrc that would be nice 7511 and a list of cleanups and enhancements for pkgsrc that would be nice
7512 to have. 7512 to have.
7513 7513
7514 * Review packages for which review was requested on the tech-pkg 7514 * Review packages for which review was requested on the tech-pkg
7515 mailing list. 7515 mailing list.
7516 7516
7517Chapter 25. GNOME packaging and porting 7517Chapter 25. GNOME packaging and porting
7518 7518
7519Table of Contents 7519Table of Contents
7520 7520
752125.1. Meta packages 752125.1. Meta packages
752225.2. Packaging a GNOME application 752225.2. Packaging a GNOME application
752325.3. Updating GNOME to a newer version 752325.3. Updating GNOME to a newer version
752425.4. Patching guidelines 752425.4. Patching guidelines
7525 7525
7526Quoting GNOME's web site: 7526Quoting GNOME's web site:
7527 7527
7528 The GNOME project provides two things: The GNOME desktop environment, an 7528 The GNOME project provides two things: The GNOME desktop environment, an
7529 intuitive and attractive desktop for users, and the GNOME development 7529 intuitive and attractive desktop for users, and the GNOME development
7530 platform, an extensive framework for building applications that integrate 7530 platform, an extensive framework for building applications that integrate
7531 into the rest of the desktop. 7531 into the rest of the desktop.
7532 7532
7533pkgsrc provides a seamless way to automatically build and install a complete 7533pkgsrc provides a seamless way to automatically build and install a complete
7534GNOME environment under many different platforms. We can say with confidence 7534GNOME environment under many different platforms. We can say with confidence
7535that pkgsrc is one of the most advanced build and packaging systems for GNOME 7535that pkgsrc is one of the most advanced build and packaging systems for GNOME
7536due to its included technologies buildlink3, the wrappers and tools framework 7536due to its included technologies buildlink3, the wrappers and tools framework
7537and automatic configuration file management. Lots of efforts are put into 7537and automatic configuration file management. Lots of efforts are put into
7538achieving a completely clean deinstallation of installed software components. 7538achieving a completely clean deinstallation of installed software components.
7539 7539
7540Given that pkgsrc is NetBSD's official packaging system, the above also means 7540Given that pkgsrc is NetBSD's official packaging system, the above also means
7541that great efforts are put into making GNOME work under this operating system. 7541that great efforts are put into making GNOME work under this operating system.
7542Recently, DragonFly BSD also adopted pkgsrc as its preferred packaging system, 7542Recently, DragonFly BSD also adopted pkgsrc as its preferred packaging system,
7543contributing lots of portability fixes to make GNOME build and install under 7543contributing lots of portability fixes to make GNOME build and install under
7544it. 7544it.
7545 7545
7546This chapter is aimed at pkgsrc developers and other people interested in 7546This chapter is aimed at pkgsrc developers and other people interested in
7547helping our GNOME porting and packaging efforts. It provides instructions on 7547helping our GNOME porting and packaging efforts. It provides instructions on
7548how to manage the existing packages and some important information regarding 7548how to manage the existing packages and some important information regarding
7549their internals. 7549their internals.
7550 7550
7551We need your help! 7551We need your help!
7552 7552
7553Should you have some spare cycles to devote to NetBSD, pkgsrc and GNOME and are 7553Should you have some spare cycles to devote to NetBSD, pkgsrc and GNOME and are
7554willing to learn new exciting stuff, please jump straight to the pending work 7554willing to learn new exciting stuff, please jump straight to the pending work
7555list! There is still a long way to go to get a fully-functional GNOME desktop 7555list! There is still a long way to go to get a fully-functional GNOME desktop
7556under NetBSD and we need your help to achieve it! 7556under NetBSD and we need your help to achieve it!
7557 7557
755825.1. Meta packages 755825.1. Meta packages
7559 7559
7560pkgsrc includes three GNOME-related meta packages: 7560pkgsrc includes three GNOME-related meta packages:
7561 7561
7562 * meta-pkgs/gnome-base: Provides the core GNOME desktop environment. It only 7562 * meta-pkgs/gnome-base: Provides the core GNOME desktop environment. It only
7563 includes the necessary bits to get it to boot correctly, although it may 7563 includes the necessary bits to get it to boot correctly, although it may
7564 lack important functionality for daily operation. The idea behind this 7564 lack important functionality for daily operation. The idea behind this
7565 package is to let end users build their own configurations on top of this 7565 package is to let end users build their own configurations on top of this
7566 one, first installing this meta package to achieve a functional setup and 7566 one, first installing this meta package to achieve a functional setup and
7567 then adding individual applications. 7567 then adding individual applications.
7568 7568
7569 * meta-pkgs/gnome: Provides a complete installation of the GNOME platform and 7569 * meta-pkgs/gnome: Provides a complete installation of the GNOME platform and
7570 desktop as defined by the GNOME project; this is based on the components 7570 desktop as defined by the GNOME project; this is based on the components
7571 distributed in the platform/x.y/x.y.z/sources and desktop/x.y/x.y.z/sources 7571 distributed in the platform/x.y/x.y.z/sources and desktop/x.y/x.y.z/sources
7572 directories of the official FTP server. Developer-only tools found in those 7572 directories of the official FTP server. Developer-only tools found in those
7573 directories are not installed unless required by some other component to 7573 directories are not installed unless required by some other component to
7574 work properly. Similarly, packages from the bindings set (bindings/x.y/ 7574 work properly. Similarly, packages from the bindings set (bindings/x.y/
7575 x.y.z/sources) are not pulled in unless required as a dependency for an 7575 x.y.z/sources) are not pulled in unless required as a dependency for an
7576 end-user component. This package "extends" meta-pkgs/gnome-base. 7576 end-user component. This package "extends" meta-pkgs/gnome-base.
7577 7577
7578 * meta-pkgs/gnome-devel: Installs all the tools required to build a GNOME 7578 * meta-pkgs/gnome-devel: Installs all the tools required to build a GNOME
7579 component when fetched from the CVS repository. These are required to let 7579 component when fetched from the CVS repository. These are required to let
7580 the autogen.sh scripts work appropriately. 7580 the autogen.sh scripts work appropriately.
7581 7581
7582In all these packages, the DEPENDS lines are sorted in a way that eases 7582In all these packages, the DEPENDS lines are sorted in a way that eases
7583updates: a package may depend on other packages listed before it but not on any 7583updates: a package may depend on other packages listed before it but not on any
7584listed after it. It is very important to keep this order to ease updates so...  7584listed after it. It is very important to keep this order to ease updates so...
7585do not change it to alphabetical sorting! 7585do not change it to alphabetical sorting!
7586 7586
758725.2. Packaging a GNOME application 758725.2. Packaging a GNOME application
7588 7588
7589Almost all GNOME applications are written in C and use a common set of tools as 7589Almost all GNOME applications are written in C and use a common set of tools as
7590their build system. Things get different with the new bindings to other 7590their build system. Things get different with the new bindings to other
7591languages (such as Python), but the following will give you a general idea on 7591languages (such as Python), but the following will give you a general idea on
7592the minimum required tools: 7592the minimum required tools:
7593 7593
7594 * Almost all GNOME applications use the GNU Autotools as their build system. 7594 * Almost all GNOME applications use the GNU Autotools as their build system.
7595 As a general rule you will need to tell this to your package: 7595 As a general rule you will need to tell this to your package:
7596 7596
7597 GNU_CONFIGURE=yes 7597 GNU_CONFIGURE=yes
7598 USE_LIBTOOL=yes 7598 USE_LIBTOOL=yes
7599 USE_TOOLS+=gmake 7599 USE_TOOLS+=gmake
7600 7600
7601 * If the package uses pkg-config to detect dependencies, add this tool to the 7601 * If the package uses pkg-config to detect dependencies, add this tool to the
7602 list of required utilities: 7602 list of required utilities:
7603 7603
7604 USE_TOOLS+=pkg-config 7604 USE_TOOLS+=pkg-config
7605 7605
7606 Also use pkgtools/verifypc at the end of the build process to ensure that 7606 Also use pkgtools/verifypc at the end of the build process to ensure that
7607 you did not miss to specify any dependency in your package and that the 7607 you did not miss to specify any dependency in your package and that the
7608 version requirements are all correct. 7608 version requirements are all correct.
7609 7609
7610 * If the package uses intltool, be sure to add intltool to the USE_TOOLS to 7610 * If the package uses intltool, be sure to add intltool to the USE_TOOLS to
7611 handle dependencies and to force the package to use the latest available 7611 handle dependencies and to force the package to use the latest available
7612 version. 7612 version.
7613 7613
7614 * If the package uses gtk-doc (a documentation generation utility), do not 7614 * If the package uses gtk-doc (a documentation generation utility), do not
7615 add a dependency on it. The tool is rather big and the distfile should come 7615 add a dependency on it. The tool is rather big and the distfile should come
7616 with pregenerated documentation anyway; if it does not, it is a bug that 7616 with pregenerated documentation anyway; if it does not, it is a bug that
7617 you ought to report. For such packages you should disable gtk-doc (unless 7617 you ought to report. For such packages you should disable gtk-doc (unless
7618 it is the default): 7618 it is the default):
7619 7619
7620 CONFIGURE_ARGS+=--disable-gtk-doc 7620 CONFIGURE_ARGS+=--disable-gtk-doc
7621 7621
7622 The default location of installed HTML files (share/gtk-doc/<package-name>) 7622 The default location of installed HTML files (share/gtk-doc/<package-name>)
7623 is correct and should not be changed unless the package insists on 7623 is correct and should not be changed unless the package insists on
7624 installing them somewhere else. Otherwise programs as devhelp will not be 7624 installing them somewhere else. Otherwise programs as devhelp will not be
7625 able to open them. You can do that with an entry similar to: 7625 able to open them. You can do that with an entry similar to:
7626 7626
7627 CONFIGURE_ARGS+=--with-html-dir=${PREFIX}/share/gtk-doc/... 7627 CONFIGURE_ARGS+=--with-html-dir=${PREFIX}/share/gtk-doc/...
7628 7628
7629GNOME uses multiple shared directories and files under the installation prefix 7629GNOME uses multiple shared directories and files under the installation prefix
7630to maintain databases. In this context, shared means that those exact same 7630to maintain databases. In this context, shared means that those exact same
7631directories and files are used among several different packages, leading to 7631directories and files are used among several different packages, leading to
7632conflicts in the PLIST. pkgsrc currently includes functionality to handle the 7632conflicts in the PLIST. pkgsrc currently includes functionality to handle the
7633most common cases, so you have to forget about using @unexec ${RMDIR} lines in 7633most common cases, so you have to forget about using @unexec ${RMDIR} lines in
7634your file lists and omitting shared files from them. If you find yourself doing 7634your file lists and omitting shared files from them. If you find yourself doing
7635those, your package is most likely incorrect. 7635those, your package is most likely incorrect.
7636 7636
7637The following table lists the common situations that result in using shared 7637The following table lists the common situations that result in using shared
7638directories or files. For each of them, the appropriate solution is given. 7638directories or files. For each of them, the appropriate solution is given.
7639After applying the solution be sure to regenerate the package's file list with  7639After applying the solution be sure to regenerate the package's file list with
7640make print-PLIST and ensure it is correct. 7640make print-PLIST and ensure it is correct.
7641 7641
7642Table 25.1. PLIST handling for GNOME packages 7642Table 25.1. PLIST handling for GNOME packages
7643 7643
7644+-----------------------------------------------------------------------------+ 7644+-----------------------------------------------------------------------------+
7645| If the package... | Then... | 7645| If the package... | Then... |
7646|-------------------------------------------+---------------------------------| 7646|-------------------------------------------+---------------------------------|
7647| |See Section 21.6.10, "Packages | 7647| |See Section 21.6.10, "Packages |
7648|Installs OMF files under share/omf. |installing scrollkeeper/rarian | 7648|Installs OMF files under share/omf. |installing scrollkeeper/rarian |
7649| |data files". | 7649| |data files". |
7650|-------------------------------------------+---------------------------------| 7650|-------------------------------------------+---------------------------------|
7651|Installs icons under the share/icons/ |See Section 21.6.19, "Packages | 7651|Installs icons under the share/icons/ |See Section 21.6.19, "Packages |
7652|hicolor hierarchy or updates share/icons/ |installing hicolor theme icons". | 7652|hicolor hierarchy or updates share/icons/ |installing hicolor theme icons". |
7653|hicolor/icon-theme.cache. | | 7653|hicolor/icon-theme.cache. | |
7654|-------------------------------------------+---------------------------------| 7654|-------------------------------------------+---------------------------------|
7655| |See Section 21.6.14, "Packages | 7655| |See Section 21.6.14, "Packages |
7656|Installs files under share/mime/packages. |installing extensions to the MIME| 7656|Installs files under share/mime/packages. |installing extensions to the MIME|
7657| |database". | 7657| |database". |
7658|-------------------------------------------+---------------------------------| 7658|-------------------------------------------+---------------------------------|
7659|Installs .desktop files under share/ |See Section 21.6.20, "Packages | 7659|Installs .desktop files under share/ |See Section 21.6.20, "Packages |
7660|applications and these include MIME |installing desktop files". | 7660|applications and these include MIME |installing desktop files". |
7661|information. | | 7661|information. | |
7662+-----------------------------------------------------------------------------+ 7662+-----------------------------------------------------------------------------+
7663 7663
7664 7664
766525.3. Updating GNOME to a newer version 766525.3. Updating GNOME to a newer version
7666 7666
7667When seeing GNOME as a whole, there are two kinds of updates: 7667When seeing GNOME as a whole, there are two kinds of updates:
7668 7668
7669Major update 7669Major update
7670 7670
7671 Given that there is still a very long way for GNOME 3 (if it ever appears), 7671 Given that there is still a very long way for GNOME 3 (if it ever appears),
7672 we consider a major update one that goes from a 2.X version to a 2.Y one, 7672 we consider a major update one that goes from a 2.X version to a 2.Y one,
7673 where Y is even and greater than X. These are hard to achieve because they 7673 where Y is even and greater than X. These are hard to achieve because they
7674 introduce lots of changes in the components' code and almost all GNOME 7674 introduce lots of changes in the components' code and almost all GNOME
7675 distfiles are updated to newer versions. Some of them can even break API 7675 distfiles are updated to newer versions. Some of them can even break API
7676 and ABI compatibility with the previous major version series. As a result, 7676 and ABI compatibility with the previous major version series. As a result,
7677 the update needs to be done all at once to minimize breakage. 7677 the update needs to be done all at once to minimize breakage.
7678 7678
7679 A major update typically consists of around 80 package updates and the 7679 A major update typically consists of around 80 package updates and the
7680 addition of some new ones. 7680 addition of some new ones.
7681 7681
7682Minor update 7682Minor update
7683 7683
7684 We consider a minor update one that goes from a 2.A.X version to a 2.A.Y 7684 We consider a minor update one that goes from a 2.A.X version to a 2.A.Y
7685 one where Y is greater than X. These are easy to achieve because they do 7685 one where Y is greater than X. These are easy to achieve because they do
7686 not update all GNOME components, can be done in an incremental way and do 7686 not update all GNOME components, can be done in an incremental way and do
7687 not break API nor ABI compatibility. 7687 not break API nor ABI compatibility.
7688 7688
7689 A minor update typically consists of around 50 package updates, although 7689 A minor update typically consists of around 50 package updates, although
7690 the numbers here may vary a lot. 7690 the numbers here may vary a lot.
7691 7691
7692In order to update the GNOME components in pkgsrc to a new stable release 7692In order to update the GNOME components in pkgsrc to a new stable release
7693(either major or minor), the following steps should be followed: 7693(either major or minor), the following steps should be followed:
7694 7694
7695 1. Get a list of all the tarballs that form the new release by using the 7695 1. Get a list of all the tarballs that form the new release by using the
7696 following commands. These will leave the full list of the components' 7696 following commands. These will leave the full list of the components'
7697 distfiles into the list.txt file: 7697 distfiles into the list.txt file:
7698 7698
7699 % echo ls "*.tar.bz2" | \ 7699 % echo ls "*.tar.bz2" | \
7700 ftp -V ftp://ftp.gnome.org/pub/gnome/platform/x.y/x.y.z/sources/ | \ 7700 ftp -V ftp://ftp.gnome.org/pub/gnome/platform/x.y/x.y.z/sources/ | \
7701 awk '{ print $9 }' >list.txt 7701 awk '{ print $9 }' >list.txt
7702 % echo ls "*.tar.bz2" | \ 7702 % echo ls "*.tar.bz2" | \
7703 ftp -V ftp://ftp.gnome.org/pub/gnome/desktop/x.y/x.y.z/sources/ | \ 7703 ftp -V ftp://ftp.gnome.org/pub/gnome/desktop/x.y/x.y.z/sources/ | \
7704 awk '{ print $9 }' >>list.txt 7704 awk '{ print $9 }' >>list.txt
7705 7705
7706 2. Open each meta package's Makefile and bump their version to the release you 7706 2. Open each meta package's Makefile and bump their version to the release you
7707 are updating them to. The three meta packages should be always consistent 7707 are updating them to. The three meta packages should be always consistent
7708 with versioning. Obviously remove any PKGREVISIONs that might be in them. 7708 with versioning. Obviously remove any PKGREVISIONs that might be in them.
7709 7709
7710 3. For each meta package, update all its DEPENDS lines to match the latest 7710 3. For each meta package, update all its DEPENDS lines to match the latest
7711 versions as shown by the above commands. Do not list any newer version 7711 versions as shown by the above commands. Do not list any newer version
7712 (even if found in the FTP) because the meta packages are supposed to list 7712 (even if found in the FTP) because the meta packages are supposed to list
7713 the exact versions that form a specific GNOME release. Exceptions are 7713 the exact versions that form a specific GNOME release. Exceptions are
7714 permitted here if a newer version solves a serious issue in the overall 7714 permitted here if a newer version solves a serious issue in the overall
7715 desktop experience; these typically come in the form of a revision bump in 7715 desktop experience; these typically come in the form of a revision bump in
7716 pkgsrc, not in newer versions from the developers. 7716 pkgsrc, not in newer versions from the developers.
7717 7717
7718 Packages not listed in the list.txt file should be updated to the latest 7718 Packages not listed in the list.txt file should be updated to the latest
7719 version available (if found in pkgsrc). This is the case, for example, of 7719 version available (if found in pkgsrc). This is the case, for example, of
7720 the dependencies on the GNU Autotools in the meta-pkgs/gnome-devel meta 7720 the dependencies on the GNU Autotools in the meta-pkgs/gnome-devel meta
7721 package. 7721 package.
7722 7722
7723 4. Generate a patch from the modified meta packages and extract the list of 7723 4. Generate a patch from the modified meta packages and extract the list of
7724 "new" lines. This will provide you an outline on what packages need to be 7724 "new" lines. This will provide you an outline on what packages need to be
7725 updated in pkgsrc and in what order: 7725 updated in pkgsrc and in what order:
7726 7726
7727 % cvs diff -u gnome-devel gnome-base gnome | grep '^+D' >todo.txt 7727 % cvs diff -u gnome-devel gnome-base gnome | grep '^+D' >todo.txt
7728 7728
7729 5. For major desktop updates it is recommended to zap all your installed 7729 5. For major desktop updates it is recommended to zap all your installed
7730 packages and start over from scratch at this point. 7730 packages and start over from scratch at this point.
7731 7731
7732 6. Now comes the longest step by far: iterate over the contents of todo.txt 7732 6. Now comes the longest step by far: iterate over the contents of todo.txt
7733 and update the packages listed in it in order. For major desktop updates 7733 and update the packages listed in it in order. For major desktop updates
7734 none of these should be committed until the entire set is completed because 7734 none of these should be committed until the entire set is completed because
7735 there are chances of breaking not-yet-updated packages. 7735 there are chances of breaking not-yet-updated packages.
7736 7736
7737 7. Once the packages are up to date and working, commit them to the tree one 7737 7. Once the packages are up to date and working, commit them to the tree one
7738 by one with appropriate log messages. At the end, commit the three meta 7738 by one with appropriate log messages. At the end, commit the three meta
7739 package updates and all the corresponding changes to the doc/CHANGES-<YEAR> 7739 package updates and all the corresponding changes to the doc/CHANGES-<YEAR>
7740 and pkgsrc/doc/TODO files. 7740 and pkgsrc/doc/TODO files.
7741 7741
774225.4. Patching guidelines 774225.4. Patching guidelines
7743 7743
7744GNOME is a very big component in pkgsrc which approaches 100 packages. Please, 7744GNOME is a very big component in pkgsrc which approaches 100 packages. Please,
7745it is very important that you always, always, always feed back any portability 7745it is very important that you always, always, always feed back any portability
7746fixes you do to a GNOME package to the mainstream developers (see 7746fixes you do to a GNOME package to the mainstream developers (see
7747Section 13.3.5, "Feedback to the author"). This is the only way to get their 7747Section 13.3.5, "Feedback to the author"). This is the only way to get their
7748attention on portability issues and to ensure that future versions can be built 7748attention on portability issues and to ensure that future versions can be built
7749out-of-the box on NetBSD. The less custom patches in pkgsrc, the easier further 7749out-of-the box on NetBSD. The less custom patches in pkgsrc, the easier further
7750updates are. Those developers in charge of issuing major GNOME updates will be 7750updates are. Those developers in charge of issuing major GNOME updates will be
7751grateful if you do that. 7751grateful if you do that.
7752 7752
7753The most common places to report bugs are the GNOME's Bugzilla and the 7753The most common places to report bugs are the GNOME's Bugzilla and the
7754freedesktop.org's Bugzilla. Not all components use these to track bugs, but 7754freedesktop.org's Bugzilla. Not all components use these to track bugs, but
7755most of them do. Do not be short on your reports: always provide detailed 7755most of them do. Do not be short on your reports: always provide detailed
7756explanations of the current failure, how it can be improved to achieve maximum 7756explanations of the current failure, how it can be improved to achieve maximum
7757portability and, if at all possible, provide a patch against CVS head. The more 7757portability and, if at all possible, provide a patch against CVS head. The more
7758verbose you are, the higher chances of your patch being accepted. 7758verbose you are, the higher chances of your patch being accepted.
7759 7759
7760Also, please avoid using preprocessor magic to fix portability issues. While 7760Also, please avoid using preprocessor magic to fix portability issues. While
7761the FreeBSD GNOME people are doing a great job in porting GNOME to their 7761the FreeBSD GNOME people are doing a great job in porting GNOME to their
7762operating system, the official GNOME sources are now plagued by conditionals 7762operating system, the official GNOME sources are now plagued by conditionals
7763that check for __FreeBSD__ and similar macros. This hurts portability. Please 7763that check for __FreeBSD__ and similar macros. This hurts portability. Please
7764see our patching guidelines (Section 13.3.4, "Patching guidelines") for more 7764see our patching guidelines (Section 13.3.4, "Patching guidelines") for more
7765details. 7765details.
7766 7766
7767Part III. The pkgsrc infrastructure internals 7767Part III. The pkgsrc infrastructure internals
7768 7768
7769This part of the guide deals with everything from the infrastructure that is 7769This part of the guide deals with everything from the infrastructure that is
7770behind the interfaces described in the developer's guide. A casual package 7770behind the interfaces described in the developer's guide. A casual package
7771maintainer should not need anything from this part. 7771maintainer should not need anything from this part.
7772 7772
7773Table of Contents 7773Table of Contents
7774 7774
777526. Design of the pkgsrc infrastructure 777526. Design of the pkgsrc infrastructure
7776 7776
7777 26.1. The meaning of variable definitions 7777 26.1. The meaning of variable definitions
7778 26.2. Avoiding problems before they arise 7778 26.2. Avoiding problems before they arise
7779 26.3. Variable evaluation 7779 26.3. Variable evaluation
7780 7780
7781 26.3.1. At load time 7781 26.3.1. At load time
7782 26.3.2. At runtime 7782 26.3.2. At runtime
7783 7783
7784 26.4. How can variables be specified? 7784 26.4. How can variables be specified?
7785 26.5. Designing interfaces for Makefile fragments 7785 26.5. Designing interfaces for Makefile fragments
7786 7786
7787 26.5.1. Procedures with parameters 7787 26.5.1. Procedures with parameters
7788 26.5.2. Actions taken on behalf of parameters 7788 26.5.2. Actions taken on behalf of parameters
7789 7789
7790 26.6. The order in which files are loaded 7790 26.6. The order in which files are loaded
7791 7791
7792 26.6.1. The order in bsd.prefs.mk 7792 26.6.1. The order in bsd.prefs.mk
7793 26.6.2. The order in bsd.pkg.mk 7793 26.6.2. The order in bsd.pkg.mk
7794 7794
779527. Regression tests 779527. Regression tests
7796 7796
7797 27.1. Running the regression tests 7797 27.1. Running the regression tests
7798 27.2. Adding a new regression test 7798 27.2. Adding a new regression test
7799 7799
7800 27.2.1. Overridable functions 7800 27.2.1. Overridable functions
7801 27.2.2. Helper functions 7801 27.2.2. Helper functions
7802 7802
780328. Porting pkgsrc 780328. Porting pkgsrc
7804 7804
7805 28.1. Porting pkgsrc to a new operating system 7805 28.1. Porting pkgsrc to a new operating system
7806 7806
7807Chapter 26. Design of the pkgsrc infrastructure 7807Chapter 26. Design of the pkgsrc infrastructure
7808 7808
7809Table of Contents 7809Table of Contents
7810 7810
781126.1. The meaning of variable definitions 781126.1. The meaning of variable definitions
781226.2. Avoiding problems before they arise 781226.2. Avoiding problems before they arise
781326.3. Variable evaluation 781326.3. Variable evaluation
7814 7814
7815 26.3.1. At load time 7815 26.3.1. At load time
7816 26.3.2. At runtime 7816 26.3.2. At runtime
7817 7817
781826.4. How can variables be specified? 781826.4. How can variables be specified?
781926.5. Designing interfaces for Makefile fragments 781926.5. Designing interfaces for Makefile fragments
7820 7820
7821 26.5.1. Procedures with parameters 7821 26.5.1. Procedures with parameters
7822 26.5.2. Actions taken on behalf of parameters 7822 26.5.2. Actions taken on behalf of parameters
7823 7823
782426.6. The order in which files are loaded 782426.6. The order in which files are loaded
7825 7825
7826 26.6.1. The order in bsd.prefs.mk 7826 26.6.1. The order in bsd.prefs.mk
7827 26.6.2. The order in bsd.pkg.mk 7827 26.6.2. The order in bsd.pkg.mk
7828 7828
7829The pkgsrc infrastructure consists of many small Makefile fragments. Each such 7829The pkgsrc infrastructure consists of many small Makefile fragments. Each such
7830fragment needs a properly specified interface. This chapter explains how such 7830fragment needs a properly specified interface. This chapter explains how such
7831an interface looks like. 7831an interface looks like.
7832 7832
783326.1. The meaning of variable definitions 783326.1. The meaning of variable definitions
7834 7834
7835Whenever a variable is defined in the pkgsrc infrastructure, the location and 7835Whenever a variable is defined in the pkgsrc infrastructure, the location and
7836the way of definition provide much information about the intended use of that 7836the way of definition provide much information about the intended use of that
7837variable. Additionally, more documentation may be found in a header comment or 7837variable. Additionally, more documentation may be found in a header comment or
7838in this pkgsrc guide. 7838in this pkgsrc guide.
7839 7839
7840A special file is mk/defaults/mk.conf, which lists all variables that are 7840A special file is mk/defaults/mk.conf, which lists all variables that are
7841intended to be user-defined. They are either defined using the ?= operator or 7841intended to be user-defined. They are either defined using the ?= operator or
7842they are left undefined because defining them to anything would effectively 7842they are left undefined because defining them to anything would effectively
7843mean "yes". All these variables may be overridden by the pkgsrc user in the 7843mean "yes". All these variables may be overridden by the pkgsrc user in the
7844MAKECONF file. 7844MAKECONF file.
7845 7845
7846Outside this file, the following conventions apply: Variables that are defined 7846Outside this file, the following conventions apply: Variables that are defined
7847using the ?= operator may be overridden by a package. 7847using the ?= operator may be overridden by a package.
7848 7848
7849Variables that are defined using the = operator may be used read-only at 7849Variables that are defined using the = operator may be used read-only at
7850run-time. 7850run-time.
7851 7851
7852Variables whose name starts with an underscore must not be accessed outside the 7852Variables whose name starts with an underscore must not be accessed outside the
7853pkgsrc infrastructure at all. They may change without further notice. 7853pkgsrc infrastructure at all. They may change without further notice.
7854 7854
7855Note 7855Note
7856 7856
7857These conventions are currently not applied consistently to the complete pkgsrc 7857These conventions are currently not applied consistently to the complete pkgsrc
7858infrastructure. 7858infrastructure.
7859 7859
786026.2. Avoiding problems before they arise 786026.2. Avoiding problems before they arise
7861 7861
7862All variables that contain lists of things should default to being empty. Two 7862All variables that contain lists of things should default to being empty. Two
7863examples that do not follow this rule are USE_LANGUAGES and DISTFILES. These 7863examples that do not follow this rule are USE_LANGUAGES and DISTFILES. These
7864variables cannot simply be modified using the += operator in package Makefiles 7864variables cannot simply be modified using the += operator in package Makefiles
7865(or other files included by them), since there is no guarantee whether the 7865(or other files included by them), since there is no guarantee whether the
7866variable is already set or not, and what its value is. In the case of 7866variable is already set or not, and what its value is. In the case of
7867DISTFILES, the packages "know" the default value and just define it as in the 7867DISTFILES, the packages "know" the default value and just define it as in the
7868following example. 7868following example.
7869 7869
7870DISTFILES= ${DISTNAME}${EXTRACT_SUFX} additional-files.tar.gz 7870DISTFILES= ${DISTNAME}${EXTRACT_SUFX} additional-files.tar.gz
7871 7871
7872Because of the selection of this default value, the same value appears in many 7872Because of the selection of this default value, the same value appears in many
7873package Makefiles. Similarly for USE_LANGUAGES, but in this case the default 7873package Makefiles. Similarly for USE_LANGUAGES, but in this case the default
7874value ("c") is so short that it doesn't stand out. Nevertheless it is mentioned 7874value ("c") is so short that it doesn't stand out. Nevertheless it is mentioned
7875in many files. 7875in many files.
7876 7876
787726.3. Variable evaluation 787726.3. Variable evaluation
7878 7878
787926.3.1. At load time 787926.3.1. At load time
7880 7880
7881Variable evaluation takes place either at load time or at runtime, depending on 7881Variable evaluation takes place either at load time or at runtime, depending on
7882the context in which they occur. The contexts where variables are evaluated at 7882the context in which they occur. The contexts where variables are evaluated at
7883load time are: 7883load time are:
7884 7884
7885 * The right hand side of the := and != operators, 7885 * The right hand side of the := and != operators,
7886 7886
7887 * Make directives like .if or .for, 7887 * Make directives like .if or .for,
7888 7888
7889 * Dependency lines. 7889 * Dependency lines.
7890 7890
7891A special exception are references to the iteration variables of .for loops, 7891A special exception are references to the iteration variables of .for loops,
7892which are expanded inline, no matter in which context they appear. 7892which are expanded inline, no matter in which context they appear.
7893 7893
7894As the values of variables may change during load time, care must be taken not 7894As the values of variables may change during load time, care must be taken not
7895to evaluate them by accident. Typical examples for variables that should not be 7895to evaluate them by accident. Typical examples for variables that should not be
7896evaluated at load time are DEPENDS and CONFIGURE_ARGS. To make the effect more 7896evaluated at load time are DEPENDS and CONFIGURE_ARGS. To make the effect more
7897clear, here is an example: 7897clear, here is an example:
7898 7898
7899CONFIGURE_ARGS= # none 7899CONFIGURE_ARGS= # none
7900CFLAGS= -O 7900CFLAGS= -O
7901CONFIGURE_ARGS+= CFLAGS=${CFLAGS:Q} 7901CONFIGURE_ARGS+= CFLAGS=${CFLAGS:Q}
7902 7902
7903CONFIGURE_ARGS:= ${CONFIGURE_ARGS} 7903CONFIGURE_ARGS:= ${CONFIGURE_ARGS}
7904 7904
7905CFLAGS+= -Wall 7905CFLAGS+= -Wall
7906 7906
7907This code shows how the use of the := operator can quickly lead to unexpected 7907This code shows how the use of the := operator can quickly lead to unexpected
7908results. The first paragraph is fairly common code. The second paragraph 7908results. The first paragraph is fairly common code. The second paragraph
7909evaluates the CONFIGURE_ARGS variable, which results in CFLAGS=-O. In the third 7909evaluates the CONFIGURE_ARGS variable, which results in CFLAGS=-O. In the third
7910paragraph, the -Wall is appended to the CFLAGS, but this addition will not 7910paragraph, the -Wall is appended to the CFLAGS, but this addition will not
7911appear in CONFIGURE_ARGS. In actual code, the three paragraphs from above 7911appear in CONFIGURE_ARGS. In actual code, the three paragraphs from above
7912typically occur in completely unrelated files. 7912typically occur in completely unrelated files.
7913 7913
791426.3.2. At runtime 791426.3.2. At runtime
7915 7915
7916After all the files have been loaded, the values of the variables cannot be 7916After all the files have been loaded, the values of the variables cannot be
7917changed anymore. Variables that are used in the shell commands are expanded at 7917changed anymore. Variables that are used in the shell commands are expanded at
7918this point. 7918this point.
7919 7919
792026.4. How can variables be specified? 792026.4. How can variables be specified?
7921 7921
7922There are many ways in which the definition and use of a variable can be 7922There are many ways in which the definition and use of a variable can be
7923restricted in order to detect bugs and violations of the (mostly unwritten) 7923restricted in order to detect bugs and violations of the (mostly unwritten)
7924policies. A package can be checked with pkglint -Wall to see whether it meets 7924policies. A package can be checked with pkglint -Wall to see whether it meets
7925these rules. 7925these rules.
7926 7926
792726.5. Designing interfaces for Makefile fragments 792726.5. Designing interfaces for Makefile fragments
7928 7928
7929Most of the .mk files fall into one of the following classes. Cases where a 7929Most of the .mk files fall into one of the following classes. Cases where a
7930file falls into more than one class should be avoided as it often leads to 7930file falls into more than one class should be avoided as it often leads to
7931subtle bugs. 7931subtle bugs.
7932 7932
793326.5.1. Procedures with parameters 793326.5.1. Procedures with parameters
7934 7934
7935In a traditional imperative programming language some of the .mk files could be 7935In a traditional imperative programming language some of the .mk files could be
7936described as procedures. They take some input parameters and?after 7936described as procedures. They take some input parameters and?after
7937inclusion?provide a result in output parameters. Since all variables in 7937inclusion?provide a result in output parameters. Since all variables in
7938Makefiles have global scope care must be taken not to use parameter names that 7938Makefiles have global scope care must be taken not to use parameter names that
7939have already another meaning. For example, PKGNAME is a bad choice for a 7939have already another meaning. For example, PKGNAME is a bad choice for a
7940parameter name. 7940parameter name.
7941 7941
7942Procedures are completely evaluated at preprocessing time. That is, when 7942Procedures are completely evaluated at preprocessing time. That is, when
7943calling a procedure all input parameters must be completely resolvable. For 7943calling a procedure all input parameters must be completely resolvable. For
7944example, CONFIGURE_ARGS should never be an input parameter since it is very 7944example, CONFIGURE_ARGS should never be an input parameter since it is very
7945likely that further text will be added after calling the procedure, which would 7945likely that further text will be added after calling the procedure, which would
7946effectively apply the procedure to only a part of the variable. Also, 7946effectively apply the procedure to only a part of the variable. Also,
7947references to other variables will be modified after calling the procedure. 7947references to other variables will be modified after calling the procedure.
7948 7948
7949A procedure can declare its output parameters either as suitable for use in 7949A procedure can declare its output parameters either as suitable for use in
7950preprocessing directives or as only available at runtime. The latter 7950preprocessing directives or as only available at runtime. The latter
7951alternative is for variables that contain references to other runtime 7951alternative is for variables that contain references to other runtime
7952variables. 7952variables.
7953 7953
7954Procedures shall be written such that it is possible to call the procedure more 7954Procedures shall be written such that it is possible to call the procedure more
7955than once. That is, the file must not contain multiple-inclusion guards. 7955than once. That is, the file must not contain multiple-inclusion guards.
7956 7956
7957Examples for procedures are mk/bsd.options.mk and mk/buildlink3/bsd.builtin.mk. 7957Examples for procedures are mk/bsd.options.mk and mk/buildlink3/bsd.builtin.mk.
7958To express that the parameters are evaluated at load time, they should be 7958To express that the parameters are evaluated at load time, they should be
7959assigned using the := operator, which should be used only for this purpose. 7959assigned using the := operator, which should be used only for this purpose.
7960 7960
796126.5.2. Actions taken on behalf of parameters 796126.5.2. Actions taken on behalf of parameters
7962 7962
7963Action files take some input parameters and may define runtime variables. They 7963Action files take some input parameters and may define runtime variables. They
7964shall not define loadtime variables. There are action files that are included 7964shall not define loadtime variables. There are action files that are included
7965implicitly by the pkgsrc infrastructure, while other must be included 7965implicitly by the pkgsrc infrastructure, while other must be included
7966explicitly. 7966explicitly.
7967 7967
7968An example for action files is mk/subst.mk. 7968An example for action files is mk/subst.mk.
7969 7969
797026.6. The order in which files are loaded 797026.6. The order in which files are loaded
7971 7971
7972Package Makefiles usually consist of a set of variable definitions, and include 7972Package Makefiles usually consist of a set of variable definitions, and include
7973the file ../../mk/bsd.pkg.mk in the very last line. Before that, they may also 7973the file ../../mk/bsd.pkg.mk in the very last line. Before that, they may also
7974include various other *.mk files if they need to query the availability of 7974include various other *.mk files if they need to query the availability of
7975certain features like the type of compiler or the X11 implementation. Due to 7975certain features like the type of compiler or the X11 implementation. Due to
7976the heavy use of preprocessor directives like .if and .for, the order in which 7976the heavy use of preprocessor directives like .if and .for, the order in which
7977the files are loaded matters. 7977the files are loaded matters.
7978 7978
7979This section describes at which point the various files are loaded and gives 7979This section describes at which point the various files are loaded and gives
7980reasons for that order. 7980reasons for that order.
7981 7981
798226.6.1. The order in bsd.prefs.mk 798226.6.1. The order in bsd.prefs.mk
7983 7983
7984The very first action in bsd.prefs.mk is to define some essential variables 7984The very first action in bsd.prefs.mk is to define some essential variables
7985like OPSYS, OS_VERSION and MACHINE_ARCH. 7985like OPSYS, OS_VERSION and MACHINE_ARCH.
7986 7986
7987Then, the user settings are loaded from the file specified in MAKECONF, which 7987Then, the user settings are loaded from the file specified in MAKECONF, which
7988is usually mk.conf. After that, those variables that have not been overridden 7988is usually mk.conf. After that, those variables that have not been overridden
7989by the user are loaded from mk/defaults/mk.conf. 7989by the user are loaded from mk/defaults/mk.conf.
7990 7990
7991After the user settings, the system settings and platform settings are loaded, 7991After the user settings, the system settings and platform settings are loaded,
7992which may override the user settings. 7992which may override the user settings.
7993 7993
7994Then, the tool definitions are loaded. The tool wrappers are not yet in effect. 7994Then, the tool definitions are loaded. The tool wrappers are not yet in effect.
7995This only happens when building a package, so the proper variables must be used 7995This only happens when building a package, so the proper variables must be used
7996instead of the direct tool names. 7996instead of the direct tool names.
7997 7997
7998As the last steps, some essential variables from the wrapper and the package 7998As the last steps, some essential variables from the wrapper and the package
7999system flavor are loaded, as well as the variables that have been cached in 7999system flavor are loaded, as well as the variables that have been cached in
8000earlier phases of a package build. 8000earlier phases of a package build.
8001 8001
800226.6.2. The order in bsd.pkg.mk 800226.6.2. The order in bsd.pkg.mk
8003 8003
8004First, bsd.prefs.mk is loaded. 8004First, bsd.prefs.mk is loaded.
8005 8005
8006Then, the various *-vars.mk files are loaded, which fill default values for 8006Then, the various *-vars.mk files are loaded, which fill default values for
8007those variables that have not been defined by the package. These variables may 8007those variables that have not been defined by the package. These variables may
8008later be used even in unrelated files. 8008later be used even in unrelated files.
8009 8009
8010Then, the file bsd.pkg.error.mk provides the target error-check that is added 8010Then, the file bsd.pkg.error.mk provides the target error-check that is added
8011as a special dependency to all other targets that use DELAYED_ERROR_MSG or 8011as a special dependency to all other targets that use DELAYED_ERROR_MSG or
8012DELAYED_WARNING_MSG. 8012DELAYED_WARNING_MSG.
8013 8013
8014Then, the package-specific hacks from hacks.mk are included. 8014Then, the package-specific hacks from hacks.mk are included.
8015 8015
8016Then, various other files follow. Most of them don't have any dependencies on 8016Then, various other files follow. Most of them don't have any dependencies on
8017what they need to have included before or after them, though some do. 8017what they need to have included before or after them, though some do.
8018 8018
8019The code to check PKG_FAIL_REASON and PKG_SKIP_REASON is then executed, which 8019The code to check PKG_FAIL_REASON and PKG_SKIP_REASON is then executed, which
8020restricts the use of these variables to all the files that have been included 8020restricts the use of these variables to all the files that have been included
8021before. Appearances in later files will be silently ignored. 8021before. Appearances in later files will be silently ignored.
8022 8022
8023Then, the files for the main targets are included, in the order of later 8023Then, the files for the main targets are included, in the order of later
8024execution, though the actual order should not matter. 8024execution, though the actual order should not matter.
8025 8025
8026At last, some more files are included that don't set any interesting variables 8026At last, some more files are included that don't set any interesting variables
8027but rather just define make targets to be executed. 8027but rather just define make targets to be executed.
8028 8028
8029Chapter 27. Regression tests 8029Chapter 27. Regression tests
8030 8030
8031Table of Contents 8031Table of Contents
8032 8032
803327.1. Running the regression tests 803327.1. Running the regression tests
803427.2. Adding a new regression test 803427.2. Adding a new regression test
8035 8035
8036 27.2.1. Overridable functions 8036 27.2.1. Overridable functions
8037 27.2.2. Helper functions 8037 27.2.2. Helper functions
8038 8038
8039The pkgsrc infrastructure consists of a large codebase, and there are many 8039The pkgsrc infrastructure consists of a large codebase, and there are many
8040corners where every little bit of a file is well thought out, making pkgsrc 8040corners where every little bit of a file is well thought out, making pkgsrc
8041likely to fail as soon as anything is changed near those parts. To prevent most 8041likely to fail as soon as anything is changed near those parts. To prevent most
8042changes from breaking anything, a suite of regression tests should go along 8042changes from breaking anything, a suite of regression tests should go along
8043with every important part of the pkgsrc infrastructure. This chapter describes 8043with every important part of the pkgsrc infrastructure. This chapter describes
8044how regression tests work in pkgsrc and how you can add new tests. 8044how regression tests work in pkgsrc and how you can add new tests.
8045 8045
804627.1. Running the regression tests 804627.1. Running the regression tests
8047 8047
8048You first need to install the pkgtools/pkg_regress package, which provides the  8048You first need to install the pkgtools/pkg_regress package, which provides the
8049pkg_regress command. Then you can simply run that command, which will run all 8049pkg_regress command. Then you can simply run that command, which will run all
8050tests in the regress/ directory. 8050tests in the regress/ directory.
8051 8051
805227.2. Adding a new regression test 805227.2. Adding a new regression test
8053 8053
8054Every directory in the regress/ directory that contains a file called spec is 8054Every directory in the regress/ directory that contains a file called spec is
8055considered a regression test. This file is a shell program that is included by 8055considered a regression test. This file is a shell program that is included by
8056the pkg_regress command. The following functions can be overridden to suit your 8056the pkg_regress command. The following functions can be overridden to suit your
8057needs. 8057needs.
8058 8058
805927.2.1. Overridable functions 805927.2.1. Overridable functions
8060 8060
8061These functions do not take any parameters. Although they are called in "set -e 8061These functions do not take any parameters. Although they are called in "set -e
8062" mode, they don't stop at the first failing command. See this Stack Overflow 8062" mode, they don't stop at the first failing command. See this Stack Overflow
8063question for details. 8063question for details.
8064 8064
8065do_setup 8065do_setup
8066 8066
8067 This function prepares the environment for the test. By default it does 8067 This function prepares the environment for the test. By default it does
8068 nothing. 8068 nothing.
8069 8069
8070do_test 8070do_test
8071 8071
8072 This function runs the actual test. By default, it calls TEST_MAKE with the 8072 This function runs the actual test. By default, it calls TEST_MAKE with the
8073 arguments MAKEARGS_TEST and writes its output including error messages into 8073 arguments MAKEARGS_TEST and writes its output including error messages into
8074 the file TEST_OUTFILE. 8074 the file TEST_OUTFILE.
8075 8075
8076 When defining this function, make sure that all output that needs to be 8076 When defining this function, make sure that all output that needs to be
8077 checked is written to the correct output file. Example: 8077 checked is written to the correct output file. Example:
8078 8078
8079 do_test() { 8079 do_test() {
8080 echo "Example output" 8080 echo "Example output"
8081 } 1>$TEST_OUTFILE 2>&1 8081 } 1>$TEST_OUTFILE 2>&1
8082 8082
8083check_result 8083check_result
8084 8084
8085 This function is run after the test and is typically used to compare the 8085 This function is run after the test and is typically used to compare the
8086 actual output from the one that is expected. It can make use of the various 8086 actual output from the one that is expected. It can make use of the various
8087 helper functions from the next section. Example: 8087 helper functions from the next section. Example:
8088 8088
8089 check_result() { 8089 check_result() {
8090 exit_status 0 8090 exit_status 0
8091 output_require "Example" 8091 output_require "Example"
8092 output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$" 8092 output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$"
8093 output_prohibit "no such file or directory" 8093 output_prohibit "no such file or directory"
8094 regress_fail "expected $expected but got $actual for input $input" 8094 regress_fail "expected $expected but got $actual for input $input"
8095 } 8095 }
8096 8096
8097do_cleanup 8097do_cleanup
8098 8098
8099 This function cleans everything up after the test has been run. By default 8099 This function cleans everything up after the test has been run. By default
8100 it does nothing. 8100 it does nothing.
8101 8101
810227.2.2. Helper functions 810227.2.2. Helper functions
8103 8103
8104regress_fail message... 8104regress_fail message...
8105 8105
8106 This function makes the test fail with the given error message. 8106 This function makes the test fail with the given error message.
8107 8107
8108exit_status expected 8108exit_status expected
8109 8109
8110 This function compares the exitcode of the do_test function with its first 8110 This function compares the exitcode of the do_test function with its first
8111 parameter. If they differ, the test will fail. 8111 parameter. If they differ, the test will fail.
8112 8112
8113output_require regex... 8113output_require regex...
8114 8114
8115 This function checks for each of its parameters if the output from do_test 8115 This function checks for each of its parameters if the output from do_test
8116 matches the extended regular expression. If it does not, the test will 8116 matches the extended regular expression. If it does not, the test will
8117 fail. Example: 8117 fail. Example:
8118 8118
8119 output_require "looks fine" 8119 output_require "looks fine"
8120 output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$" 8120 output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$"
8121 8121
8122output_prohibit(regex...) 8122output_prohibit(regex...)
8123 8123
8124 This function checks for each of its parameters if the output from do_test 8124 This function checks for each of its parameters if the output from do_test
8125 () does not match the extended regular expression. If any of the regular 8125 () does not match the extended regular expression. If any of the regular
8126 expressions matches, the test will fail. 8126 expressions matches, the test will fail.
8127 8127
8128Chapter 28. Porting pkgsrc 8128Chapter 28. Porting pkgsrc
8129 8129
8130Table of Contents 8130Table of Contents
8131 8131
813228.1. Porting pkgsrc to a new operating system 813228.1. Porting pkgsrc to a new operating system
8133 8133
8134The pkgsrc system has already been ported to many operating systems, hardware 8134The pkgsrc system has already been ported to many operating systems, hardware
8135architectures and compilers. This chapter explains the necessary steps to make 8135architectures and compilers. This chapter explains the necessary steps to make
8136pkgsrc even more portable. 8136pkgsrc even more portable.
8137 8137
813828.1. Porting pkgsrc to a new operating system 813828.1. Porting pkgsrc to a new operating system
8139 8139
8140To port pkgsrc to a new operating system (called MyOS in this example), you 8140To port pkgsrc to a new operating system (called MyOS in this example), you
8141need to touch the following files: 8141need to touch the following files:
8142 8142
8143pkgtools/bootstrap-mk-files/files/mods/MyOS.sys.mk 8143pkgtools/bootstrap-mk-files/files/mods/MyOS.sys.mk
8144 8144
8145 This file contains some basic definitions, for example the name of the C 8145 This file contains some basic definitions, for example the name of the C
8146 compiler. 8146 compiler.
8147 8147
8148mk/bsd.prefs.mk 8148mk/bsd.prefs.mk
8149 8149
8150 Insert code that defines the variables OPSYS, OS_VERSION, LOWER_OS_VERSION, 8150 Insert code that defines the variables OPSYS, OS_VERSION, LOWER_OS_VERSION,
8151 LOWER_VENDOR, MACHINE_ARCH, OBJECT_FMT, APPEND_ELF, and the other variables 8151 LOWER_VENDOR, MACHINE_ARCH, OBJECT_FMT, APPEND_ELF, and the other variables
8152 that appear in this file. 8152 that appear in this file.
8153 8153
8154mk/platform/MyOS.mk 8154mk/platform/MyOS.mk
8155 8155
8156 This file contains the platform-specific definitions that are used by 8156 This file contains the platform-specific definitions that are used by
8157 pkgsrc. Start by copying one of the other files and edit it to your needs. 8157 pkgsrc. Start by copying one of the other files and edit it to your needs.
8158 8158
8159mk/tools/tools.MyOS.mk 8159mk/tools/tools.MyOS.mk
8160 8160
8161 This file defines the paths to all the tools that are needed by one or the 8161 This file defines the paths to all the tools that are needed by one or the
8162 other package in pkgsrc, as well as by pkgsrc itself. Find out where these 8162 other package in pkgsrc, as well as by pkgsrc itself. Find out where these
8163 tools are on your platform and add them. 8163 tools are on your platform and add them.
8164 8164
8165Now, you should be able to build some basic packages, like lang/perl5, shells/ 8165Now, you should be able to build some basic packages, like lang/perl5, shells/
8166bash. 8166bash.
8167 8167
8168Appendix A. A simple example package: bison 8168Appendix A. A simple example package: bison
8169 8169
8170Table of Contents 8170Table of Contents
8171 8171
8172A.1. files 8172A.1. files
8173 8173
8174 A.1.1. Makefile 8174 A.1.1. Makefile
8175 A.1.2. DESCR 8175 A.1.2. DESCR
8176 A.1.3. PLIST 8176 A.1.3. PLIST
8177 A.1.4. Checking a package with pkglint 8177 A.1.4. Checking a package with pkglint
8178 8178
8179A.2. Steps for building, installing, packaging 8179A.2. Steps for building, installing, packaging
8180 8180
8181We checked to find a piece of software that wasn't in the packages collection, 8181We checked to find a piece of software that wasn't in the packages collection,
8182and picked GNU bison. Quite why someone would want to have bison when Berkeley  8182and picked GNU bison. Quite why someone would want to have bison when Berkeley
8183yacc is already present in the tree is beyond us, but it's useful for the 8183yacc is already present in the tree is beyond us, but it's useful for the
8184purposes of this exercise. 8184purposes of this exercise.
8185 8185
8186A.1. files 8186A.1. files
8187 8187
8188A.1.1. Makefile 8188A.1.1. Makefile
8189 8189
8190# $NetBSD$ 8190# $NetBSD$
8191# 8191#
8192 8192
8193DISTNAME= bison-1.25 8193DISTNAME= bison-1.25
8194CATEGORIES= devel 8194CATEGORIES= devel
8195MASTER_SITES= ${MASTER_SITE_GNU} 8195MASTER_SITES= ${MASTER_SITE_GNU:=bison/}
8196 8196
8197MAINTAINER= pkgsrc-users@NetBSD.org 8197MAINTAINER= pkgsrc-users@NetBSD.org
8198HOMEPAGE= http://www.gnu.org/software/bison/bison.html 8198HOMEPAGE= http://www.gnu.org/software/bison/bison.html
8199COMMENT= GNU yacc clone 8199COMMENT= GNU yacc clone
8200 8200
8201GNU_CONFIGURE= yes 8201GNU_CONFIGURE= yes
8202INFO_FILES= yes 8202INFO_FILES= yes
8203 8203
8204.include "../../mk/bsd.pkg.mk" 8204.include "../../mk/bsd.pkg.mk"
8205 8205
8206A.1.2. DESCR 8206A.1.2. DESCR
8207 8207
8208GNU version of yacc. Can make re-entrant parsers, and numerous other 8208GNU version of yacc. Can make re-entrant parsers, and numerous other
8209improvements. Why you would want this when Berkeley yacc(1) is part 8209improvements. Why you would want this when Berkeley yacc(1) is part
8210of the NetBSD source tree is beyond me. 8210of the NetBSD source tree is beyond me.
8211 8211
8212A.1.3. PLIST 8212A.1.3. PLIST
8213 8213
8214@comment $NetBSD$ 8214@comment $NetBSD$
8215bin/bison 8215bin/bison
8216man/man1/bison.1.gz 8216man/man1/bison.1.gz
8217share/bison.simple 8217share/bison.simple
8218share/bison.hairy 8218share/bison.hairy
8219 8219
8220A.1.4. Checking a package with pkglint 8220A.1.4. Checking a package with pkglint
8221 8221
8222The NetBSD package system comes with pkgtools/pkglint which helps to check the 8222The NetBSD package system comes with pkgtools/pkglint which helps to check the
8223contents of these files. After installation it is quite easy to use, just 8223contents of these files. After installation it is quite easy to use, just
8224change to the directory of the package you wish to examine and execute pkglint: 8224change to the directory of the package you wish to examine and run pkglint:
8225 8225
8226$ pkglint 8226$ pkglint
8227looks fine. 8227ERROR: Makefile: Each package must define its LICENSE.
 8228WARN: Makefile:9: HOMEPAGE should migrate from http to https.
 8229NOTE: PLIST:3: The .gz extension is unnecessary for manual pages.
 8230WARN: PLIST:5: "share/bison.hairy" should be sorted before "share/bison.simple".
 82311 error, 2 warnings and 1 note found.
 8232(Run "pkglint -e" to show explanations.)
 8233(Run "pkglint -fs" to show what can be fixed automatically.)
 8234(Run "pkglint.exe -F" to automatically fix some issues.)
8228 8235
8229Depending on the supplied command line arguments (see pkglint(1)), more checks 8236Depending on the supplied command line arguments (see pkglint(1)), more checks
8230will be performed. Use e.g. pkglint -Wall for a very thorough check. 8237will be performed. Use e.g. pkglint -Wall for a very thorough check.
8231 8238
8232A.2. Steps for building, installing, packaging 8239A.2. Steps for building, installing, packaging
8233 8240
8234Create the directory where the package lives, plus any auxiliary directories: 8241Create the directory where the package lives, plus any auxiliary directories:
8235 8242
8236# cd /usr/pkgsrc/lang 8243# cd /usr/pkgsrc/lang
8237# mkdir bison 8244# mkdir bison
8238# cd bison 8245# cd bison
8239# mkdir patches 8246# mkdir patches
8240 8247
8241Create Makefile, DESCR and PLIST (see Chapter 13, Package components - files, 8248Create Makefile, DESCR and PLIST (see Chapter 13, Package components - files,
8242directories and contents) then continue with fetching the distfile: 8249directories and contents) then continue with fetching the distfile:
8243 8250
8244# make fetch 8251# make fetch
8245>> bison-1.25.tar.gz doesn't seem to exist on this system. 8252>> bison-1.25.tar.gz doesn't seem to exist on this system.
8246>> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//. 8253>> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//.
8247Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) 8254Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
8248ftp: Error retrieving file: 500 Internal error 8255ftp: Error retrieving file: 500 Internal error
8249 8256
8250>> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//. 8257>> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//.
8251Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) 8258Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
8252ftp: Error retrieving file: 500 Internal error 8259ftp: Error retrieving file: 500 Internal error
8253 8260
8254>> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//. 8261>> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//.
8255Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) 8262Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/)
8256Successfully retrieved file. 8263Successfully retrieved file.
8257 8264
8258Generate the checksum of the distfile into distinfo: 8265Generate the checksum of the distfile into distinfo:
8259 8266
8260# make makedistinfo 8267# make makedistinfo
8261 8268
8262Now compile: 8269Now compile:
8263 8270
8264# make 8271# make
8265>> Checksum OK for bison-1.25.tar.gz. 8272>> Checksum OK for bison-1.25.tar.gz.
8266===> Extracting for bison-1.25 8273===> Extracting for bison-1.25
8267===> Patching for bison-1.25 8274===> Patching for bison-1.25
8268===> Ignoring empty patch directory 8275===> Ignoring empty patch directory
8269===> Configuring for bison-1.25 8276===> Configuring for bison-1.25
8270creating cache ./config.cache 8277creating cache ./config.cache
8271checking for gcc... cc 8278checking for gcc... cc
8272checking whether we are using GNU C... yes 8279checking whether we are using GNU C... yes
8273checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin 8280checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin
8274checking how to run the C preprocessor... cc -E 8281checking how to run the C preprocessor... cc -E
8275checking for minix/config.h... no 8282checking for minix/config.h... no
8276checking for POSIXized ISC... no 8283checking for POSIXized ISC... no
8277checking whether cross-compiling... no 8284checking whether cross-compiling... no
8278checking for ANSI C header files... yes 8285checking for ANSI C header files... yes
8279checking for string.h... yes 8286checking for string.h... yes
8280checking for stdlib.h... yes 8287checking for stdlib.h... yes
8281checking for memory.h... yes 8288checking for memory.h... yes
8282checking for working const... yes 8289checking for working const... yes
8283checking for working alloca.h... no 8290checking for working alloca.h... no
8284checking for alloca... yes 8291checking for alloca... yes
8285checking for strerror... yes 8292checking for strerror... yes
8286updating cache ./config.cache 8293updating cache ./config.cache
8287creating ./config.status 8294creating ./config.status
8288creating Makefile 8295creating Makefile
8289===> Building for bison-1.25 8296===> Building for bison-1.25
8290cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g LR0.c 8297cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g LR0.c
8291cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g allocate.c 8298cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g allocate.c
8292cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g closure.c 8299cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g closure.c
8293cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g conflicts.c 8300cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g conflicts.c
8294cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g derives.c 8301cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g derives.c
8295cc -c -DXPFILE=\"/usr/pkg/share/bison.simple\" -DXPFILE1=\"/usr/pkg/share/bison.hairy\" -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -g ./files.c 8302cc -c -DXPFILE=\"/usr/pkg/share/bison.simple\" -DXPFILE1=\"/usr/pkg/share/bison.hairy\" -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -g ./files.c
8296cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getargs.c 8303cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getargs.c
8297cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g gram.c 8304cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g gram.c
8298cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lalr.c 8305cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lalr.c
8299cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lex.c 8306cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g lex.c
8300cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g main.c 8307cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g main.c
8301cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g nullable.c 8308cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g nullable.c
8302cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g output.c 8309cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g output.c
8303cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g print.c 8310cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g print.c
8304cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reader.c 8311cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reader.c
8305cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reduce.c 8312cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g reduce.c
8306cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g symtab.c 8313cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g symtab.c
8307cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g warshall.c 8314cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g warshall.c
8308cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g version.c 8315cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g version.c
8309cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt.c 8316cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt.c
8310cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt1.c 8317cc -c -DSTDC_HEADERS=1 -DHAVE_STRING_H=1 -DHAVE_STDLIB_H=1 -DHAVE_MEMORY_H=1 -DHAVE_ALLOCA=1 -DHAVE_STRERROR=1 -I./../include -g getopt1.c
8311cc -g -o bison LR0.o allocate.o closure.o conflicts.o derives.o files.o getargs.o gram.o lalr.o lex.o main.o nullable.o output.o print.o reader.o reduce.o symtab.o warshall.o version.o getopt.o getopt1.o 8318cc -g -o bison LR0.o allocate.o closure.o conflicts.o derives.o files.o getargs.o gram.o lalr.o lex.o main.o nullable.o output.o print.o reader.o reduce.o symtab.o warshall.o version.o getopt.o getopt1.o
8312./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp() 8319./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp()
8313rm -f bison.s1 8320rm -f bison.s1
8314sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > bison.s1 8321sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > bison.s1
8315 8322
8316Everything seems OK, so install the files: 8323Everything seems OK, so install the files:
8317 8324
8318# make install 8325# make install
8319>> Checksum OK for bison-1.25.tar.gz. 8326>> Checksum OK for bison-1.25.tar.gz.
8320===> Installing for bison-1.25 8327===> Installing for bison-1.25
8321sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1 8328sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1
8322rm -f /usr/pkg/bin/bison 8329rm -f /usr/pkg/bin/bison
8323cd /usr/pkg/share; rm -f bison.simple bison.hairy 8330cd /usr/pkg/share; rm -f bison.simple bison.hairy
8324rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info* 8331rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info*
8325install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison 8332install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison
8326/usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple 8333/usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple
8327/usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy 8334/usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy
8328cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done 8335cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done
8329/usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1 8336/usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1
8330===> Registering installation for bison-1.25 8337===> Registering installation for bison-1.25
8331 8338
8332You can now use bison, and also - if you decide so - remove it with pkg_delete 8339You can now use bison, and also - if you decide so - remove it with pkg_delete
8333bison. Should you decide that you want a binary package, do this now: 8340bison. Should you decide that you want a binary package, do this now:
8334 8341
8335# make package 8342# make package
8336>> Checksum OK for bison-1.25.tar.gz. 8343>> Checksum OK for bison-1.25.tar.gz.
8337===> Building package for bison-1.25 8344===> Building package for bison-1.25
8338Creating package bison-1.25.tgz 8345Creating package bison-1.25.tgz
8339Registering depends:. 8346Registering depends:.
8340Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz' 8347Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'
8341 8348
8342Now that you don't need the source and object files any more, clean up: 8349Now that you don't need the source and object files any more, clean up:
8343 8350
8344# make clean 8351# make clean
8345===> Cleaning for bison-1.25 8352===> Cleaning for bison-1.25
8346 8353
8347Appendix B. Build logs 8354Appendix B. Build logs
8348 8355
8349Table of Contents 8356Table of Contents
8350 8357
8351B.1. Building figlet 8358B.1. Building figlet
8352B.2. Packaging figlet 8359B.2. Packaging figlet
8353 8360
8354B.1. Building figlet 8361B.1. Building figlet
8355 8362
8356# make 8363# make
8357===> Checking for vulnerabilities in figlet-2.2.1nb2 8364===> Checking for vulnerabilities in figlet-2.2.1nb2
8358=> figlet221.tar.gz doesn't seem to exist on this system. 8365=> figlet221.tar.gz doesn't seem to exist on this system.
8359=> Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/. 8366=> Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/.
8360=> [172219 bytes] 8367=> [172219 bytes]
8361Connected to ftp.plig.net. 8368Connected to ftp.plig.net.
8362220 ftp.plig.org NcFTPd Server (licensed copy) ready. 8369220 ftp.plig.org NcFTPd Server (licensed copy) ready.
8363331 Guest login ok, send your complete e-mail address as password. 8370331 Guest login ok, send your complete e-mail address as password.
8364230-You are user #5 of 500 simultaneous users allowed. 8371230-You are user #5 of 500 simultaneous users allowed.
8365230- 8372230-
8366230- ___ _ _ _ 8373230- ___ _ _ _
8367230- | _| |_ ___ ___| |_|___ ___ ___ ___ 8374230- | _| |_ ___ ___| |_|___ ___ ___ ___
8368230- | _| _| . |_| . | | | . |_| . | _| . | 8375230- | _| _| . |_| . | | | . |_| . | _| . |
8369230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ | 8376230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ |
8370230- |_| |_| |___| |___| 8377230- |_| |_| |___| |___|
8371230- 8378230-
8372230-** Welcome to ftp.plig.org ** 8379230-** Welcome to ftp.plig.org **
8373230- 8380230-
8374230-Please note that all transfers from this FTP site are logged. If you 8381230-Please note that all transfers from this FTP site are logged. If you
8375230-do not like this, please disconnect now. 8382230-do not like this, please disconnect now.
8376230- 8383230-
8377230-This archive is available via 8384230-This archive is available via
8378230- 8385230-
8379230-HTTP: http://ftp.plig.org/ 8386230-HTTP: http://ftp.plig.org/
8380230-FTP: ftp://ftp.plig.org/ (max 500 connections) 8387230-FTP: ftp://ftp.plig.org/ (max 500 connections)
8381230-RSYNC: rsync://ftp.plig.org/ (max 30 connections) 8388230-RSYNC: rsync://ftp.plig.org/ (max 30 connections)
8382230- 8389230-
8383230-Please email comments, bug reports and requests for packages to be 8390230-Please email comments, bug reports and requests for packages to be
8384230-mirrored to ftp-admin@plig.org. 8391230-mirrored to ftp-admin@plig.org.
8385230- 8392230-
8386230- 8393230-
8387230 Logged in anonymously. 8394230 Logged in anonymously.
8388Remote system type is UNIX. 8395Remote system type is UNIX.
8389Using binary mode to transfer files. 8396Using binary mode to transfer files.
8390200 Type okay. 8397200 Type okay.
8391250 "/pub" is new cwd. 8398250 "/pub" is new cwd.
8392250-"/pub/figlet" is new cwd. 8399250-"/pub/figlet" is new cwd.
8393250- 8400250-
8394250-Welcome to the figlet archive at ftp.figlet.org 8401250-Welcome to the figlet archive at ftp.figlet.org
8395250- 8402250-
8396250- ftp://ftp.figlet.org/pub/figlet/ 8403250- ftp://ftp.figlet.org/pub/figlet/
8397250- 8404250-
8398250-The official FIGlet web page is: 8405250-The official FIGlet web page is:
8399250- http://www.figlet.org/ 8406250- http://www.figlet.org/
8400250- 8407250-
8401250-If you have questions, please mailto:info@figlet.org. If you want to 8408250-If you have questions, please mailto:info@figlet.org. If you want to
8402250-contribute a font or something else, you can email us. 8409250-contribute a font or something else, you can email us.
8403250 8410250
8404250 "/pub/figlet/program" is new cwd. 8411250 "/pub/figlet/program" is new cwd.
8405250 "/pub/figlet/program/unix" is new cwd. 8412250 "/pub/figlet/program/unix" is new cwd.
8406local: figlet221.tar.gz remote: figlet221.tar.gz 8413local: figlet221.tar.gz remote: figlet221.tar.gz
8407502 Unimplemented command. 8414502 Unimplemented command.
8408227 Entering Passive Mode (195,40,6,41,246,104) 8415227 Entering Passive Mode (195,40,6,41,246,104)
8409150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes). 8416150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes).
841038% |************** | 65800 64.16 KB/s 00:01 ETA 841738% |************** | 65800 64.16 KB/s 00:01 ETA
8411226 Transfer completed. 8418226 Transfer completed.
8412172219 bytes received in 00:02 (75.99 KB/s) 8419172219 bytes received in 00:02 (75.99 KB/s)
8413221 Goodbye. 8420221 Goodbye.
8414=> Checksum OK for figlet221.tar.gz. 8421=> Checksum OK for figlet221.tar.gz.
8415===> Extracting for figlet-2.2.1nb2 8422===> Extracting for figlet-2.2.1nb2
8416===> Required installed package ccache-[0-9]*: ccache-2.3nb1 found 8423===> Required installed package ccache-[0-9]*: ccache-2.3nb1 found
8417===> Patching for figlet-2.2.1nb2 8424===> Patching for figlet-2.2.1nb2
8418===> Applying pkgsrc patches for figlet-2.2.1nb2 8425===> Applying pkgsrc patches for figlet-2.2.1nb2
8419===> Overriding tools for figlet-2.2.1nb2 8426===> Overriding tools for figlet-2.2.1nb2
8420===> Creating toolchain wrappers for figlet-2.2.1nb2 8427===> Creating toolchain wrappers for figlet-2.2.1nb2
8421===> Configuring for figlet-2.2.1nb2 8428===> Configuring for figlet-2.2.1nb2
8422===> Building for figlet-2.2.1nb2 8429===> Building for figlet-2.2.1nb2
8423gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet 8430gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet
8424chmod a+x figlet 8431chmod a+x figlet
8425gcc -O2 -o chkfont chkfont.c 8432gcc -O2 -o chkfont chkfont.c
8426=> Unwrapping files-to-be-installed. 8433=> Unwrapping files-to-be-installed.
8427# 8434#
8428# make install 8435# make install
8429===> Checking for vulnerabilities in figlet-2.2.1nb2 8436===> Checking for vulnerabilities in figlet-2.2.1nb2
8430===> Installing for figlet-2.2.1nb2 8437===> Installing for figlet-2.2.1nb2
8431install -d -o root -g wheel -m 755 /usr/pkg/bin 8438install -d -o root -g wheel -m 755 /usr/pkg/bin
8432install -d -o root -g wheel -m 755 /usr/pkg/man/man6 8439install -d -o root -g wheel -m 755 /usr/pkg/man/man6
8433mkdir -p /usr/pkg/share/figlet 8440mkdir -p /usr/pkg/share/figlet
8434cp figlet /usr/pkg/bin 8441cp figlet /usr/pkg/bin
8435cp chkfont /usr/pkg/bin 8442cp chkfont /usr/pkg/bin
8436chmod 555 figlist showfigfonts 8443chmod 555 figlist showfigfonts
8437cp figlist /usr/pkg/bin 8444cp figlist /usr/pkg/bin
8438cp showfigfonts /usr/pkg/bin 8445cp showfigfonts /usr/pkg/bin
8439cp fonts/*.flf /usr/pkg/share/figlet 8446cp fonts/*.flf /usr/pkg/share/figlet
8440cp fonts/*.flc /usr/pkg/share/figlet 8447cp fonts/*.flc /usr/pkg/share/figlet
8441cp figlet.6 /usr/pkg/man/man6 8448cp figlet.6 /usr/pkg/man/man6
8442===> Registering installation for figlet-2.2.1nb2 8449===> Registering installation for figlet-2.2.1nb2
8443# 8450#
8444 8451
8445B.2. Packaging figlet 8452B.2. Packaging figlet
8446 8453
8447# make package 8454# make package
8448===> Checking for vulnerabilities in figlet-2.2.1nb2 8455===> Checking for vulnerabilities in figlet-2.2.1nb2
8449===> Packaging figlet-2.2.1nb2 8456===> Packaging figlet-2.2.1nb2
8450===> Building binary package for figlet-2.2.1nb2 8457===> Building binary package for figlet-2.2.1nb2
8451Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz 8458Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz
8452Using SrcDir value of /usr/pkg 8459Using SrcDir value of /usr/pkg
8453Registering depends:. 8460Registering depends:.
8454# 8461#
8455 8462
8456Appendix C. Directory layout of the pkgsrc FTP server 8463Appendix C. Directory layout of the pkgsrc FTP server
8457 8464
8458Table of Contents 8465Table of Contents
8459 8466
8460C.1. distfiles: The distributed source files 8467C.1. distfiles: The distributed source files
8461C.2. misc: Miscellaneous things 8468C.2. misc: Miscellaneous things
8462C.3. packages: Binary packages 8469C.3. packages: Binary packages
8463C.4. reports: Bulk build reports 8470C.4. reports: Bulk build reports
8464C.5. current, stable, pkgsrc-20xxQy: source packages 8471C.5. current, stable, pkgsrc-20xxQy: source packages
8465 8472
8466As in other big projects, the directory layout of pkgsrc is quite complex for 8473As in other big projects, the directory layout of pkgsrc is quite complex for
8467newbies. This chapter explains where you find things on the FTP server. The 8474newbies. This chapter explains where you find things on the FTP server. The
8468base directory on ftp.NetBSD.org is /pub/pkgsrc/. On other servers it may be 8475base directory on ftp.NetBSD.org is /pub/pkgsrc/. On other servers it may be
8469different, but inside this directory, everything should look the same, no 8476different, but inside this directory, everything should look the same, no
8470matter on which server you are. This directory contains some subdirectories, 8477matter on which server you are. This directory contains some subdirectories,
8471which are explained below. 8478which are explained below.
8472 8479
8473C.1. distfiles: The distributed source files 8480C.1. distfiles: The distributed source files
8474 8481
8475The directory distfiles contains lots of archive files from all pkgsrc 8482The directory distfiles contains lots of archive files from all pkgsrc
8476packages, which are mirrored here. The subdirectories are called after their 8483packages, which are mirrored here. The subdirectories are called after their
8477package names and are used when the distributed files have names that don't 8484package names and are used when the distributed files have names that don't
8478explicitly contain a version number or are otherwise too generic (for example 8485explicitly contain a version number or are otherwise too generic (for example
8479release.tar.gz). 8486release.tar.gz).
8480 8487
8481C.2. misc: Miscellaneous things 8488C.2. misc: Miscellaneous things
8482 8489
8483This directory contains things that individual pkgsrc developers find worth 8490This directory contains things that individual pkgsrc developers find worth
8484publishing. 8491publishing.
8485 8492
8486C.3. packages: Binary packages 8493C.3. packages: Binary packages
8487 8494
8488This directory contains binary packages for the various platforms that are 8495This directory contains binary packages for the various platforms that are
8489supported by pkgsrc. Each subdirectory is of the form OPSYS/ARCH/OSVERSION_TAG. 8496supported by pkgsrc. Each subdirectory is of the form OPSYS/ARCH/OSVERSION_TAG.
8490The meaning of these variables is: 8497The meaning of these variables is:
8491 8498
8492 * OPSYS is the name of the operating system for which the packages have been 8499 * OPSYS is the name of the operating system for which the packages have been
8493 built. The name is taken from the output of the uname command, so it may 8500 built. The name is taken from the output of the uname command, so it may
8494 differ from the one you are used to hear. 8501 differ from the one you are used to hear.
8495 8502
8496 * ARCH is the hardware architecture of the platform for which the packages 8503 * ARCH is the hardware architecture of the platform for which the packages
8497 have been built. It also includes the ABI (Application Binary Interface) 8504 have been built. It also includes the ABI (Application Binary Interface)
8498 for platforms that have several of them. 8505 for platforms that have several of them.
8499 8506
8500 * OSVERSION is the version of the operating system. For version numbers that 8507 * OSVERSION is the version of the operating system. For version numbers that
8501 change often (for example NetBSD-current), the often-changing part should 8508 change often (for example NetBSD-current), the often-changing part should
8502 be replaced with an x, for example 4.99.x. 8509 be replaced with an x, for example 4.99.x.
8503 8510
8504 * TAG is either 20xxQy for a stable branch, or head for packages built from 8511 * TAG is either 20xxQy for a stable branch, or head for packages built from
8505 the HEAD branch. The latter should only be used when the packages are 8512 the HEAD branch. The latter should only be used when the packages are
8506 updated on a regular basis. Otherwise the date from checking out pkgsrc 8513 updated on a regular basis. Otherwise the date from checking out pkgsrc
8507 should be appended, for example head_20071015. 8514 should be appended, for example head_20071015.
8508 8515
8509The rationale for exactly this scheme is that the pkgsrc users looking for 8516The rationale for exactly this scheme is that the pkgsrc users looking for
8510binary packages can quickly click through the directories on the server and 8517binary packages can quickly click through the directories on the server and
8511find the best binary packages for their machines. Since they usually know the 8518find the best binary packages for their machines. Since they usually know the
8512operating system and the hardware architecture, OPSYS and ARCH are placed 8519operating system and the hardware architecture, OPSYS and ARCH are placed
8513first. After these choices, they can select the best combination of OSVERSION 8520first. After these choices, they can select the best combination of OSVERSION
8514and TAG together, since it is usually the case that packages stay compatible 8521and TAG together, since it is usually the case that packages stay compatible
8515between different version of the operating system. 8522between different version of the operating system.
8516 8523
8517In each of these directories, there is a whole binary packages collection for a 8524In each of these directories, there is a whole binary packages collection for a
8518specific platform. It has a directory called All which contains all binary 8525specific platform. It has a directory called All which contains all binary
8519packages. Besides that, there are various category directories that contain 8526packages. Besides that, there are various category directories that contain
8520symbolic links to the real binary packages. 8527symbolic links to the real binary packages.
8521 8528
8522C.4. reports: Bulk build reports 8529C.4. reports: Bulk build reports
8523 8530
8524Here are the reports from bulk builds, for those who want to fix packages that 8531Here are the reports from bulk builds, for those who want to fix packages that
8525didn't build on some of the platforms. The structure of subdirectories should 8532didn't build on some of the platforms. The structure of subdirectories should
8526look like the one in Section C.3, "packages: Binary packages". 8533look like the one in Section C.3, "packages: Binary packages".
8527 8534
8528C.5. current, stable, pkgsrc-20xxQy: source packages 8535C.5. current, stable, pkgsrc-20xxQy: source packages
8529 8536
8530These directories contain the "real" pkgsrc, that is the files that define how 8537These directories contain the "real" pkgsrc, that is the files that define how
8531to create binary packages from source archives. 8538to create binary packages from source archives.
8532 8539
8533Each of the current, stable and pkgsrc-20xxQy directories share the same 8540Each of the current, stable and pkgsrc-20xxQy directories share the same
8534structure. They each contain a pkgsrc directory and pkgsrc.tar.{bz,gz,xz} file. 8541structure. They each contain a pkgsrc directory and pkgsrc.tar.{bz,gz,xz} file.
8535 8542
8536The directory pkgsrc contains a snapshot of the CVS repository, which is 8543The directory pkgsrc contains a snapshot of the CVS repository, which is
8537updated regularly. The file pkgsrc.tar.{bz,gz,xz} contains the same as the 8544updated regularly. The file pkgsrc.tar.{bz,gz,xz} contains the same as the
8538directory, ready to be downloaded as a whole. 8545directory, ready to be downloaded as a whole.
8539 8546
8540The current directory contains files related to the HEAD branch of the CVS 8547The current directory contains files related to the HEAD branch of the CVS
8541repository. In this directory there is an additional file called 8548repository. In this directory there is an additional file called
8542pkgsrc-readmes.tar.{bz,gz,xz} that contains all pkgsrc READMEs with information 8549pkgsrc-readmes.tar.{bz,gz,xz} that contains all pkgsrc READMEs with information
8543about categories and packages. 8550about categories and packages.
8544 8551
8545The stable directory is a symlink to the latest pkgsrc-20xxQy. 8552The stable directory is a symlink to the latest pkgsrc-20xxQy.
8546 8553
8547The pkgsrc-20xxQy. directories contain files related to the -20xxQy stable 8554The pkgsrc-20xxQy. directories contain files related to the -20xxQy stable
8548branch of the CVS repository. In these directories there is an additional file 8555branch of the CVS repository. In these directories there is an additional file
8549called pkgsrc-20xxQy.tar.{bz,gz,xz}, which contains the state of pkgsrc when it 8556called pkgsrc-20xxQy.tar.{bz,gz,xz}, which contains the state of pkgsrc when it
8550was branched. 8557was branched.
8551 8558
8552Appendix D. Help topics 8559Appendix D. Help topics
8553 8560
8554The following list contains all help topics that are available when running  8561The following list contains all help topics that are available when running
8555bmake help topic=:index. 8562bmake help topic=:index.
8556 8563
8557#! -lintl 8564#! -lintl
855864bit ABI 856564bit ABI
8559ACCEPTABLE_LICENSES ACROREAD_FONTPATH 8566ACCEPTABLE_LICENSES ACROREAD_FONTPATH
8560ADDITIONAL AFAIK 8567ADDITIONAL AFAIK
8561AIX ALLOW_VULNERABLE_PACKAGES 8568AIX ALLOW_VULNERABLE_PACKAGES
8562ALL_ENV ALSA_PC 8569ALL_ENV ALSA_PC
8563ALTERNATIVES_SRC AMANDA_TMP 8570ALTERNATIVES_SRC AMANDA_TMP
8564AMANDA_USER AMANDA_VAR 8571AMANDA_USER AMANDA_VAR
8565APACHE_GROUP APACHE_MODULE_NAME 8572APACHE_GROUP APACHE_MODULE_NAME
8566APACHE_MODULE_SRC APACHE_MODULE_SRCDIR 8573APACHE_MODULE_SRC APACHE_MODULE_SRCDIR
8567APACHE_PKG_PREFIX APACHE_SUEXEC_CONFIGURE_ARGS 8574APACHE_PKG_PREFIX APACHE_SUEXEC_CONFIGURE_ARGS
8568APACHE_SUEXEC_DOCROOT APACHE_USER 8575APACHE_SUEXEC_DOCROOT APACHE_USER
8569APPEND_ABI APPEND_ELF 8576APPEND_ABI APPEND_ELF
8570ARLA_CACHE AUDIT_PACKAGES_FLAGS 8577ARLA_CACHE AUDIT_PACKAGES_FLAGS
8571AUTOCONF_REQD AUTOMAKE_OVERRIDE 8578AUTOCONF_REQD AUTOMAKE_OVERRIDE
8572AUTOMAKE_REQD AUTO_MKDIRS 8579AUTOMAKE_REQD AUTO_MKDIRS
8573BDB185_DEFAULT BDBBASE 8580BDB185_DEFAULT BDBBASE
8574BDB_ACCEPTED BDB_DEFAULT 8581BDB_ACCEPTED BDB_DEFAULT
8575BDB_LIBS BDB_TYPE 8582BDB_LIBS BDB_TYPE
8576BIND_DIR BIND_GROUP 8583BIND_DIR BIND_GROUP
8577BIND_USER BINPKG_SITES 8584BIND_USER BINPKG_SITES
8578BIN_INSTALL_FLAGS BISON_PKGDATADIR 8585BIN_INSTALL_FLAGS BISON_PKGDATADIR
8579BLAS_ACCEPTED BLAS_LIBS 8586BLAS_ACCEPTED BLAS_LIBS
8580BLAS_TYPE BOOTSTRAP_DEPENDS 8587BLAS_TYPE BOOTSTRAP_DEPENDS
8581BOOTSTRAP_SETUPTOOLS BROKEN 8588BOOTSTRAP_SETUPTOOLS BROKEN
8582BROKEN_EXCEPT_ON_PLATFORM BROKEN_ON_PLATFORM 8589BROKEN_EXCEPT_ON_PLATFORM BROKEN_ON_PLATFORM
8583BSDSRCDIR BSDXSRCDIR 8590BSDSRCDIR BSDXSRCDIR
8584BSD_MAKE_ENV BUILDLINK_AUTO_DIRS 8591BSD_MAKE_ENV BUILDLINK_AUTO_DIRS
8585BUILDLINK_AUTO_VARS BUILDLINK_CFLAGS 8592BUILDLINK_AUTO_VARS BUILDLINK_CFLAGS
8586BUILDLINK_CONTENTS_FILTER BUILDLINK_CPPFLAGS 8593BUILDLINK_CONTENTS_FILTER BUILDLINK_CPPFLAGS
8587BUILDLINK_DEPMETHOD BUILDLINK_FILES 8594BUILDLINK_DEPMETHOD BUILDLINK_FILES
8588BUILDLINK_FILES_CMD BUILDLINK_FNAME_TRANSFORM 8595BUILDLINK_FILES_CMD BUILDLINK_FNAME_TRANSFORM
8589BUILDLINK_LDFLAGS BUILDLINK_LIBS 8596BUILDLINK_LDFLAGS BUILDLINK_LIBS
8590BUILDLINK_OPSYS_SUPPORT_PTHREAD BUILDLINK_PKGNAME 8597BUILDLINK_OPSYS_SUPPORT_PTHREAD BUILDLINK_PKGNAME
8591BUILDLINK_PREFIX BUILDLINK_RPATHDIRS 8598BUILDLINK_PREFIX BUILDLINK_RPATHDIRS
8592BUILDLINK_TREE BUILD_DEFS 8599BUILDLINK_TREE BUILD_DEFS
8593BUILD_DEFS_EFFECTS BUILD_DEPENDS 8600BUILD_DEFS_EFFECTS BUILD_DEPENDS
8594BUILD_DIRS BUILD_ENV_SHELL 8601BUILD_DIRS BUILD_ENV_SHELL
8595BUILD_MAKE_CMD BUILD_MAKE_FLAGS 8602BUILD_MAKE_CMD BUILD_MAKE_FLAGS
8596BUILD_TARGET BUILTIN_FIND_FILES 8603BUILD_TARGET BUILTIN_FIND_FILES
8597BUILTIN_FIND_FILES_VAR BUILTIN_FIND_GREP 8604BUILTIN_FIND_FILES_VAR BUILTIN_FIND_GREP
8598BUILTIN_FIND_HEADERS BUILTIN_FIND_HEADERS_VAR 8605BUILTIN_FIND_HEADERS BUILTIN_FIND_HEADERS_VAR
8599BUILTIN_PKG BUILTIN_TEST_CURSES_DEFINES 8606BUILTIN_PKG BUILTIN_TEST_CURSES_DEFINES
8600BUILTIN_TEST_CURSES_FUNCS BUILTIN_VERSION_SCRIPT 8607BUILTIN_TEST_CURSES_FUNCS BUILTIN_VERSION_SCRIPT
8601BUILTIN_X11_TYPE BUILTIN_X11_VERSION 8608BUILTIN_X11_TYPE BUILTIN_X11_VERSION
8602CACTI_GROUP CACTI_USER 8609CACTI_GROUP CACTI_USER
8603CANNA_GROUP CANNA_USER 8610CANNA_GROUP CANNA_USER
8604CAT CCACHE_BASE 8611CAT CCACHE_BASE
8605CCACHE_DIR CCACHE_LOGFILE 8612CCACHE_DIR CCACHE_LOGFILE
8606CC_VERSION CC_VERSION_STRING 8613CC_VERSION CC_VERSION_STRING
8607CDRECORD_CONF CDROM_PKG_URL_DIR 8614CDRECORD_CONF CDROM_PKG_URL_DIR
8608CDROM_PKG_URL_HOST CHECKOUT_DATE 8615CDROM_PKG_URL_HOST CHECKOUT_DATE
8609CHECK_FAKEHOME CHECK_FILES 8616CHECK_FAKEHOME CHECK_FILES
8610CHECK_FILES_SKIP CHECK_FILES_STRICT 8617CHECK_FILES_SKIP CHECK_FILES_STRICT
8611CHECK_HEADERS CHECK_HEADERS_SKIP 8618CHECK_HEADERS CHECK_HEADERS_SKIP
8612CHECK_INTERPRETER CHECK_INTERPRETER_SKIP 8619CHECK_INTERPRETER CHECK_INTERPRETER_SKIP
8613CHECK_PERMS CHECK_PERMS_AUTOFIX 8620CHECK_PERMS CHECK_PERMS_AUTOFIX
8614CHECK_PERMS_SKIP CHECK_PORTABILITY 8621CHECK_PERMS_SKIP CHECK_PORTABILITY
8615CHECK_PORTABILITY_SKIP CHECK_RELRO 8622CHECK_PORTABILITY_SKIP CHECK_RELRO
8616CHECK_RELRO_SKIP CHECK_RELRO_SUPPORTED 8623CHECK_RELRO_SKIP CHECK_RELRO_SUPPORTED
8617CHECK_SHLIBS CHECK_SHLIBS_BLACKLIST 8624CHECK_SHLIBS CHECK_SHLIBS_BLACKLIST
8618CHECK_SHLIBS_SKIP CHECK_SHLIBS_SUPPORTED 8625CHECK_SHLIBS_SKIP CHECK_SHLIBS_SUPPORTED
8619CHECK_SSP CHECK_SSP_SKIP 8626CHECK_SSP CHECK_SSP_SKIP
8620CHECK_SSP_SUPPORTED CHECK_STRIPPED 8627CHECK_SSP_SUPPORTED CHECK_STRIPPED
8621CHECK_STRIPPED_SKIP CHECK_WRKREF 8628CHECK_STRIPPED_SKIP CHECK_WRKREF
8622CHECK_WRKREF_EXTRA_DIRS CHECK_WRKREF_SKIP 8629CHECK_WRKREF_EXTRA_DIRS CHECK_WRKREF_SKIP
8623CLAMAV_DBDIR CLAMAV_GROUP 8630CLAMAV_DBDIR CLAMAV_GROUP
8624CLAMAV_USER CLANGBASE 8631CLAMAV_USER CLANGBASE
8625CLEANDEPENDS CMAKE_DEPENDENCIES_REWRITE 8632CLEANDEPENDS CMAKE_DEPENDENCIES_REWRITE
8626CMAKE_INSTALL_PREFIX CMAKE_MODULE_PATH_OVERRIDE 8633CMAKE_INSTALL_PREFIX CMAKE_MODULE_PATH_OVERRIDE
8627CMAKE_PKGSRC_BUILD_FLAGS CMAKE_PREFIX_PATH 8634CMAKE_PKGSRC_BUILD_FLAGS CMAKE_PREFIX_PATH
8628CMAKE_USE_GNU_INSTALL_DIRS COMMON_LISP_DOCFILES 8635CMAKE_USE_GNU_INSTALL_DIRS COMMON_LISP_DOCFILES
8629COMMON_LISP_EXAMPLES COMMON_LISP_EXTRAFILES 8636COMMON_LISP_EXAMPLES COMMON_LISP_EXTRAFILES
8630COMMON_LISP_PACKAGES COMMON_LISP_SYSTEM 8637COMMON_LISP_PACKAGES COMMON_LISP_SYSTEM
8631COMPILER_RPATH_FLAG COMPILER_USE_SYMLINKS 8638COMPILER_RPATH_FLAG COMPILER_USE_SYMLINKS
8632CONFIGURE_ARGS CONFIGURE_DIRS 8639CONFIGURE_ARGS CONFIGURE_DIRS
8633CONFIGURE_ENV CONFIGURE_HAS_INFODIR 8640CONFIGURE_ENV CONFIGURE_HAS_INFODIR
8634CONFIGURE_HAS_MANDIR CONFIGURE_SCRIPT 8641CONFIGURE_HAS_MANDIR CONFIGURE_SCRIPT
8635CONFIG_SHELL CONFIG_SHELL_FLAGS 8642CONFIG_SHELL CONFIG_SHELL_FLAGS
8636CONF_FILES CONF_FILES_MODE 8643CONF_FILES CONF_FILES_MODE
8637CONF_FILES_PERMS CONSERVER_DEFAULTHOST 8644CONF_FILES_PERMS CONSERVER_DEFAULTHOST
8638CONSERVER_DEFAULTPORT CP 8645CONSERVER_DEFAULTPORT CP
8639CPP CPP_PRECOMP_FLAGS 8646CPP CPP_PRECOMP_FLAGS
8640CREATE_WRKDIR_SYMLINK CROSSBASE 8647CREATE_WRKDIR_SYMLINK CROSSBASE
8641CTFCONVERT CTF_FILES_SKIP 8648CTFCONVERT CTF_FILES_SKIP
8642CTF_SUPPORTED CTYPE 8649CTF_SUPPORTED CTYPE
8643CUPS_GROUP CUPS_SYSTEM_GROUPS 8650CUPS_GROUP CUPS_SYSTEM_GROUPS
8644CUPS_USER CURSES_DEFAULT 8651CUPS_USER CURSES_DEFAULT
8645CURSES_TYPE CVS_EXTRACTDIR 8652CURSES_TYPE CVS_EXTRACTDIR
8646CVS_MODULE CVS_PROJECT 8653CVS_MODULE CVS_PROJECT
8647CVS_REPOSITORIES CVS_ROOT 8654CVS_REPOSITORIES CVS_ROOT
8648CVS_ROOT_GNU CVS_ROOT_NONGNU 8655CVS_ROOT_GNU CVS_ROOT_NONGNU
8649CVS_ROOT_SOURCEFORGE CVS_TAG 8656CVS_ROOT_SOURCEFORGE CVS_TAG
8650CXX CYRUS_GROUP 8657CXX CYRUS_GROUP
8651CYRUS_IDLE CYRUS_USER 8658CYRUS_IDLE CYRUS_USER
8652DAEMONTOOLS_GROUP DAEMONTOOLS_LOG_USER 8659DAEMONTOOLS_GROUP DAEMONTOOLS_LOG_USER
8653DBUS_GROUP DBUS_USER 8660DBUS_GROUP DBUS_USER
8654DEFANG_GROUP DEFANG_USER 8661DEFANG_GROUP DEFANG_USER
8655DEFAULT_ACCEPTABLE_LICENSES DEFAULT_DISTFILES 8662DEFAULT_ACCEPTABLE_LICENSES DEFAULT_DISTFILES
8656DEFAULT_IRC_SERVER DEFAULT_SERIAL_DEVICE 8663DEFAULT_IRC_SERVER DEFAULT_SERIAL_DEVICE
8657DEF_UMASK DEINSTALLDEPENDS 8664DEF_UMASK DEINSTALLDEPENDS
8658DEINSTALL_SRC DEINSTALL_TEMPLATES 8665DEINSTALL_SRC DEINSTALL_TEMPLATES
8659DELAYED_ERROR_MSG DELAYED_WARNING_MSG 8666DELAYED_ERROR_MSG DELAYED_WARNING_MSG
8660DEPENDS DEPENDS_TARGET 8667DEPENDS DEPENDS_TARGET
8661DEPENDS_TYPE DESTDIR 8668DEPENDS_TYPE DESTDIR
8662DESTDIR_VARNAME DIALER_GROUP 8669DESTDIR_VARNAME DIALER_GROUP
8663DIGEST_REQD DISTDIR 8670DIGEST_REQD DISTDIR
8664DISTFILES DISTINFO_FILE 8671DISTFILES DISTINFO_FILE
8665DISTNAME DIST_PATH 8672DISTNAME DIST_PATH
8666DIST_SUBDIR DJBDNS_AXFR_USER 8673DIST_SUBDIR DJBDNS_AXFR_USER
8667DJBDNS_CACHE_USER DJBDNS_DJBDNS_GROUP 8674DJBDNS_CACHE_USER DJBDNS_DJBDNS_GROUP
8668DJBDNS_LOG_USER DJBDNS_RBL_USER 8675DJBDNS_LOG_USER DJBDNS_RBL_USER
8669DJBDNS_TINY_USER DLOPEN_REQUIRE_PTHREADS 8676DJBDNS_TINY_USER DLOPEN_REQUIRE_PTHREADS
8670DL_AUTO_VARS DL_CFLAGS 8677DL_AUTO_VARS DL_CFLAGS
8671DL_LDFLAGS DL_LIBS 8678DL_LDFLAGS DL_LIBS
8672DNS DOWNLOADED_DISTFILE 8679DNS DOWNLOADED_DISTFILE
8673DT_LAYOUT DYNAMIC_SITES_CMD 8680DT_LAYOUT DYNAMIC_SITES_CMD
8674DYNAMIC_SITES_SCRIPT ECHO 8681DYNAMIC_SITES_SCRIPT ECHO
8675ECHO_N ELK_GUI 8682ECHO_N ELK_GUI
8676EMACS_TYPE EMULDIR 8683EMACS_TYPE EMULDIR
8677EMULSUBDIR EMULSUBDIRSLASH 8684EMULSUBDIR EMULSUBDIRSLASH
8678EMUL_ARCH EMUL_DISTRO 8685EMUL_ARCH EMUL_DISTRO
8679EMUL_EXEC_FMT EMUL_IS_NATIVE 8686EMUL_EXEC_FMT EMUL_IS_NATIVE
8680EMUL_MODULES EMUL_OPSYS 8687EMUL_MODULES EMUL_OPSYS
8681EMUL_PKG_FMT EMUL_PLATFORM 8688EMUL_PKG_FMT EMUL_PLATFORM
8682EMUL_PLATFORMS EMUL_PREFER 8689EMUL_PLATFORMS EMUL_PREFER
8683EMUL_REQD EMUL_TYPE 8690EMUL_REQD EMUL_TYPE
8684ERROR_MSG EXIM_GROUP 8691ERROR_MSG EXIM_GROUP
8685EXIM_USER EXPORT_SYMBOLS_LDFLAGS 8692EXIM_USER EXPORT_SYMBOLS_LDFLAGS
8686EXTRACTOR EXTRACT_CMD 8693EXTRACTOR EXTRACT_CMD
8687EXTRACT_CMD_DEFAULT EXTRACT_DIR 8694EXTRACT_CMD_DEFAULT EXTRACT_DIR
8688EXTRACT_ELEMENTS EXTRACT_ENV 8695EXTRACT_ELEMENTS EXTRACT_ENV
8689EXTRACT_ONLY EXTRACT_OPTS 8696EXTRACT_ONLY EXTRACT_OPTS
8690EXTRACT_SUFX EXTRACT_USING 8697EXTRACT_SUFX EXTRACT_USING
8691FAILOVER_FETCH FAIL_MSG 8698FAILOVER_FETCH FAIL_MSG
8692FAKE_NCURSES FAM 8699FAKE_NCURSES FAM
8693FAM_ACCEPTED FAM_DEFAULT 8700FAM_ACCEPTED FAM_DEFAULT
8694FAM_SERVER FCPATH 8701FAM_SERVER FCPATH
8695FEATURE_CPPFLAGS FEATURE_LDFLAGS 8702FEATURE_CPPFLAGS FEATURE_LDFLAGS
8696FEATURE_LIBS FETCH_AFTER_ARGS 8703FEATURE_LIBS FETCH_AFTER_ARGS
8697FETCH_BEFORE_ARGS FETCH_CMD 8704FETCH_BEFORE_ARGS FETCH_CMD
8698FETCH_OUTPUT_ARGS FETCH_PROXY 8705FETCH_OUTPUT_ARGS FETCH_PROXY
8699FETCH_RESUME_ARGS FETCH_USING 8706FETCH_RESUME_ARGS FETCH_USING
8700FILES_SUBST FILES_SUBST_SED 8707FILES_SUBST FILES_SUBST_SED
8701FIX_SYSTEM_HEADERS FLUXBOX_USE_GNOME 8708FIX_SYSTEM_HEADERS FLUXBOX_USE_GNOME
8702FLUXBOX_USE_KDE FLUXBOX_USE_XFT 8709FLUXBOX_USE_KDE FLUXBOX_USE_XFT
8703FLUXBOX_USE_XINERAMA FONTDIR 8710FLUXBOX_USE_XINERAMA FONTDIR
8704FONTS_DIRS FONTS_VERBOSE 8711FONTS_DIRS FONTS_VERBOSE
8705FOO_HACKS_MK FOSSIL_EXTRACTDIR 8712FOO_HACKS_MK FOSSIL_EXTRACTDIR
8706FOSSIL_REPO FOSSIL_REPOSITORIES 8713FOSSIL_REPO FOSSIL_REPOSITORIES
8707FOSSIL_VERSION FOX_USE_XUNICODE 8714FOSSIL_VERSION FOX_USE_XUNICODE
8708FREEWNN_GROUP FREEWNN_USER 8715FREEWNN_GROUP FREEWNN_USER
8709FTP_PKG_URL_DIR FTP_PKG_URL_HOST 8716FTP_PKG_URL_DIR FTP_PKG_URL_HOST
8710GAMEDATAMODE GAMEDATA_PERMS 8717GAMEDATAMODE GAMEDATA_PERMS
8711GAMEDIRMODE GAMEDIR_PERMS 8718GAMEDIRMODE GAMEDIR_PERMS
8712GAMEGRP GAMEMODE 8719GAMEGRP GAMEMODE
8713GAMEOWN GAMES_GROUP 8720GAMEOWN GAMES_GROUP
8714GAMES_USER GCC 8721GAMES_USER GCC
8715GCCBASE GCC_REQD 8722GCCBASE GCC_REQD
8716GCC_VERSION_SUFFIX GEM_BUILD 8723GCC_VERSION_SUFFIX GEM_BUILD
8717GEM_CLEANBUILD GEM_CLEANBUILD_EXTENSIONS 8724GEM_CLEANBUILD GEM_CLEANBUILD_EXTENSIONS
8718GEM_DOCDIR GEM_EXTSDIR 8725GEM_DOCDIR GEM_EXTSDIR
8719GEM_HOME GEM_LIBDIR 8726GEM_HOME GEM_LIBDIR
8720GEM_NAME GEM_PATH 8727GEM_NAME GEM_PATH
8721GEM_SPECFILE GENERATE_PLIST 8728GEM_SPECFILE GENERATE_PLIST
8722GHOSTSCRIPT_REQD GITHUB_PROJECT 8729GHOSTSCRIPT_REQD GITHUB_PROJECT
8723GITHUB_RELEASE GITHUB_TAG 8730GITHUB_RELEASE GITHUB_TAG
8724GITHUB_TYPE GIT_BRANCH 8731GITHUB_TYPE GIT_BRANCH
8725GIT_ENV GIT_EXTRACTDIR 8732GIT_ENV GIT_EXTRACTDIR
8726GIT_REPO GIT_REPOSITORIES 8733GIT_REPO GIT_REPOSITORIES
8727GIT_REVISION GIT_TAG 8734GIT_REVISION GIT_TAG
8728GNU GNU_CONFIGURE 8735GNU GNU_CONFIGURE
8729GNU_CONFIGURE_INFODIR GNU_CONFIGURE_MANDIR 8736GNU_CONFIGURE_INFODIR GNU_CONFIGURE_MANDIR
8730GNU_CONFIGURE_STRICT GODEP_REDIRECTS 8737GNU_CONFIGURE_STRICT GODEP_REDIRECTS
8731GO_BUILD_PATTERN GO_DEPS 8738GO_BUILD_PATTERN GO_DEPS
8732GO_DIST_BASE GO_SRCPATH 8739GO_DIST_BASE GO_SRCPATH
8733GO_VERSION_DEFAULT GROUP_SPECIFIC_PKGS 8740GO_VERSION_DEFAULT GROUP_SPECIFIC_PKGS
8734GRUB_NETWORK_CARDS GRUB_PRESET_COMMAND 8741GRUB_NETWORK_CARDS GRUB_PRESET_COMMAND
8735GRUB_SCAN_ARGS GZIP 8742GRUB_SCAN_ARGS GZIP
8736HASKELL_COMPILER HASKELL_ENABLE_HADDOCK_DOCUMENTATION 8743HASKELL_COMPILER HASKELL_ENABLE_HADDOCK_DOCUMENTATION
8737HASKELL_ENABLE_LIBRARY_PROFILING HASKELL_ENABLE_SHARED_LIBRARY 8744HASKELL_ENABLE_LIBRARY_PROFILING HASKELL_ENABLE_SHARED_LIBRARY
8738HASKELL_OPTIMIZATION_LEVEL HAS_CONFIGURE 8745HASKELL_OPTIMIZATION_LEVEL HAS_CONFIGURE
8739HEADER_TEMPLATES HG_REPO 8746HEADER_TEMPLATES HG_REPO
8740HG_REPOSITORIES HG_TAG 8747HG_REPOSITORIES HG_TAG
8741HOST_PKGTOOLS_ARGS HOST_SPECIFIC_PKGS 8748HOST_PKGTOOLS_ARGS HOST_SPECIFIC_PKGS
8742HOWL_GROUP HOWL_USER 8749HOWL_GROUP HOWL_USER
8743ICCBASE ICECAST_CHROOTDIR 8750ICCBASE ICECAST_CHROOTDIR
8744ICON_THEMES IDOBASE 8751ICON_THEMES IDOBASE
8745IGNORE_CCACHE IGNORE_INFO_DIRS 8752IGNORE_CCACHE IGNORE_INFO_DIRS
8746IGNORE_INTERACTIVE_FETCH IMAKE 8753IGNORE_INTERACTIVE_FETCH IMAKE
8747IMAKEOPTS IMAKE_MAKE 8754IMAKEOPTS IMAKE_MAKE
8748IMAKE_MANINSTALL IMAP_UW_CCLIENT_MBOX_FMT 8755IMAKE_MANINSTALL IMAP_UW_CCLIENT_MBOX_FMT
8749IMDICTDIR INCOMPAT_CURSES 8756IMDICTDIR INCOMPAT_CURSES
8750INFO_DIR INFO_FILES 8757INFO_DIR INFO_FILES
8751INFO_FILES_VERBOSE INFO_MSG 8758INFO_FILES_VERBOSE INFO_MSG
8752INIT_SYSTEM INN_DATA_DIR 8759INIT_SYSTEM INN_DATA_DIR
8753INN_GROUP INN_USER 8760INN_GROUP INN_USER
8754INSTALLATION_DIRS INSTALLATION_DIRS_FROM_PLIST 8761INSTALLATION_DIRS INSTALLATION_DIRS_FROM_PLIST
8755INSTALL_ENV INSTALL_SH_OVERRIDE 8762INSTALL_ENV INSTALL_SH_OVERRIDE
8756INSTALL_SRC INSTALL_TEMPLATES 8763INSTALL_SRC INSTALL_TEMPLATES
8757INSTALL_UNSTRIPPED IRCD_HYBRID_IRC_GROUP 8764INSTALL_UNSTRIPPED IRCD_HYBRID_IRC_GROUP
8758IRCD_HYBRID_IRC_USER IRCD_HYBRID_MAXCONN 8765IRCD_HYBRID_IRC_USER IRCD_HYBRID_MAXCONN
8759IRCD_HYBRID_NICLEN IRCD_HYBRID_SYSLOG_EVENTS 8766IRCD_HYBRID_NICLEN IRCD_HYBRID_SYSLOG_EVENTS
8760IRCD_HYBRID_SYSLOG_FACILITY IRCD_HYBRID_TOPICLEN 8767IRCD_HYBRID_SYSLOG_FACILITY IRCD_HYBRID_TOPICLEN
8761IRIX IRRD_USE_PGP 8768IRIX IRRD_USE_PGP
8762JABBERD_GROUP JABBERD_LOGDIR 8769JABBERD_GROUP JABBERD_LOGDIR
8763JABBERD_PIDDIR JABBERD_SPOOLDIR 8770JABBERD_PIDDIR JABBERD_SPOOLDIR
8764JABBERD_USER JAKARTA_HOME 8771JABBERD_USER JAKARTA_HOME
8765JAVA_APP_PATH JAVA_APP_TARGETS 8772JAVA_APP_PATH JAVA_APP_TARGETS
8766JAVA_BINPREFIX JAVA_CLASSPATH 8773JAVA_BINPREFIX JAVA_CLASSPATH
8767JAVA_HOME JAVA_LD_LIBRARY_PATH 8774JAVA_HOME JAVA_LD_LIBRARY_PATH
8768JAVA_NAME JAVA_UNLIMIT 8775JAVA_NAME JAVA_UNLIMIT
8769JAVA_WRAPPERS JPEG_ACCEPTED 8776JAVA_WRAPPERS JPEG_ACCEPTED
8770JPEG_DEFAULT KERBEROS 8777JPEG_DEFAULT KERBEROS
8771KERMIT_SUID_UUCP KJS_USE_PCRE 8778KERMIT_SUID_UUCP KJS_USE_PCRE
8772KNEWS_DOMAIN_FILE KNEWS_DOMAIN_NAME 8779KNEWS_DOMAIN_FILE KNEWS_DOMAIN_NAME
8773KRB5_ACCEPTED KRB5_DEFAULT 8780KRB5_ACCEPTED KRB5_DEFAULT
8774LANGUAGES LAPACK_LIBS 8781LANGUAGES LAPACK_LIBS
8775LATEX2HTML_ICONPATH LDCONFIG_ADD_CMD 8782LATEX2HTML_ICONPATH LDCONFIG_ADD_CMD
8776LDCONFIG_REMOVE_CMD LEAFNODE_DATA_DIR 8783LDCONFIG_REMOVE_CMD LEAFNODE_DATA_DIR
8777LEAFNODE_GROUP LEAFNODE_USER 8784LEAFNODE_GROUP LEAFNODE_USER
8778LIBDVDCSS_HOMEPAGE LIBDVDCSS_MASTER_SITES 8785LIBDVDCSS_HOMEPAGE LIBDVDCSS_MASTER_SITES
8779LIBRSVG_TYPE LIBTOOL 8786LIBRSVG_TYPE LIBTOOL
8780LIBTOOLIZE_PLIST LIBTOOL_M4_OVERRIDE 8787LIBTOOLIZE_PLIST LIBTOOL_M4_OVERRIDE
8781LIBUSB_TYPE LICENSE 8788LIBUSB_TYPE LICENSE
8782LINKER_RPATH_FLAG LINK_RPATH_FLAG 8789LINKER_RPATH_FLAG LINK_RPATH_FLAG
8783LINUX_BASE_NODEPS LINUX_BASE_PREFERRED 8790LINUX_BASE_NODEPS LINUX_BASE_PREFERRED
8784LINUX_BASE_REQUIRED LINUX_LOCALES 8791LINUX_BASE_REQUIRED LINUX_LOCALES
8785LOCALBASE LOCALBASE_LOCKTYPE 8792LOCALBASE LOCALBASE_LOCKTYPE
8786LOCALPATCHES LOVE_DATA 8793LOCALPATCHES LOVE_DATA
8787LOVE_GAME LOVE_VERSION 8794LOVE_GAME LOVE_VERSION
8788LP64PLATFORMS MACHINE_PLATFORM 8795LP64PLATFORMS MACHINE_PLATFORM
8789MAILAGENT_DOMAIN MAILAGENT_EMAIL 8796MAILAGENT_DOMAIN MAILAGENT_EMAIL
8790MAILAGENT_FQDN MAILAGENT_ORGANIZATION 8797MAILAGENT_FQDN MAILAGENT_ORGANIZATION
8791MAJORDOMO_HOMEDIR MAJOR_OS_VERSION 8798MAJORDOMO_HOMEDIR MAJOR_OS_VERSION
8792MAKEINFO_ARGS MAKE_DIRS 8799MAKEINFO_ARGS MAKE_DIRS
8793MAKE_DIRS_PERMS MAKE_ENV 8800MAKE_DIRS_PERMS MAKE_ENV
8794MAKE_FILE MAKE_FLAGS 8801MAKE_FILE MAKE_FLAGS
8795MAKE_JOBS MAKE_JOBS_SAFE 8802MAKE_JOBS MAKE_JOBS_SAFE
8796MAKE_PROGRAM MANINSTALL 8803MAKE_PROGRAM MANINSTALL
8797MANZ MASTER_SITES 8804MANZ MASTER_SITES
8798MASTER_SITE_BACKUP MASTER_SITE_CYGWIN 8805MASTER_SITE_BACKUP MASTER_SITE_CYGWIN
8799MASTER_SITE_GNOME MASTER_SITE_GNU 8806MASTER_SITE_GNOME MASTER_SITE_GNU
8800MASTER_SITE_LOCAL MASTER_SITE_MOZILLA 8807MASTER_SITE_LOCAL MASTER_SITE_MOZILLA
8801MASTER_SITE_OPENOFFICE MASTER_SITE_OVERRIDE 8808MASTER_SITE_OPENOFFICE MASTER_SITE_OVERRIDE
8802MASTER_SITE_PERL_CPAN MASTER_SITE_SUNSITE 8809MASTER_SITE_PERL_CPAN MASTER_SITE_SUNSITE
8803MASTER_SITE_SUSE MASTER_SITE_TEX_CTAN 8810MASTER_SITE_SUSE MASTER_SITE_TEX_CTAN
8804MASTER_SITE_XCONTRIB MASTER_SITE_XEMACS 8811MASTER_SITE_XCONTRIB MASTER_SITE_XEMACS
8805MASTER_SORT MASTER_SORT_RANDOM 8812MASTER_SORT MASTER_SORT_RANDOM
8806MASTER_SORT_REGEX MECAB_CHARSET 8813MASTER_SORT_REGEX MECAB_CHARSET
8807MEDIATOMB_GROUP MEDIATOMB_USER 8814MEDIATOMB_GROUP MEDIATOMB_USER
8808MIPSPROBASE MIREDO_GROUP 8815MIPSPROBASE MIREDO_GROUP
8809MIREDO_USER MISSING_FEATURES 8816MIREDO_USER MISSING_FEATURES
8810MKDIR MLDONKEY_GROUP 8817MKDIR MLDONKEY_GROUP
8811MLDONKEY_HOME MLDONKEY_USER 8818MLDONKEY_HOME MLDONKEY_USER
8812MONOTONE_GROUP MONOTONE_USER 8819MONOTONE_GROUP MONOTONE_USER
8813MOTIFBASE MOTIF_TYPE 8820MOTIFBASE MOTIF_TYPE
8814MOTIF_TYPE_DEFAULT MPI_TYPE 8821MOTIF_TYPE_DEFAULT MPI_TYPE
8815MSGFMT_STRIP_MSGCTXT MSGFMT_STRIP_MSGID_PLURAL 8822MSGFMT_STRIP_MSGCTXT MSGFMT_STRIP_MSGID_PLURAL
8816MTOOLS_ENABLE_FLOPPYD MUST 8823MTOOLS_ENABLE_FLOPPYD MUST
8817MV MYSQL_CHARSET 8824MV MYSQL_CHARSET
8818MYSQL_DATADIR MYSQL_EXTRA_CHARSET 8825MYSQL_DATADIR MYSQL_EXTRA_CHARSET
8819MYSQL_GROUP MYSQL_PKGSRCDIR 8826MYSQL_GROUP MYSQL_PKGSRCDIR
8820MYSQL_USER MYSQL_VERSIONS_ACCEPTED 8827MYSQL_USER MYSQL_VERSIONS_ACCEPTED
8821MYSQL_VERSION_DEFAULT NAGIOSCMD_GROUP 8828MYSQL_VERSION_DEFAULT NAGIOSCMD_GROUP
8822NAGIOSDIR NAGIOS_GROUP 8829NAGIOSDIR NAGIOS_GROUP
8823NAGIOS_USER NATIVE_APPEND_ABI 8830NAGIOS_USER NATIVE_APPEND_ABI
8824NATIVE_APPEND_ELF NATIVE_EXEC_FMT 8831NATIVE_APPEND_ELF NATIVE_EXEC_FMT
8825NATIVE_MACHINE_PLATFORM NATIVE_OBJECT_FMT 8832NATIVE_MACHINE_PLATFORM NATIVE_OBJECT_FMT
8826NBPAX_PROGRAM_PREFIX NETBSD_LOGIN_NAME 8833NBPAX_PROGRAM_PREFIX NETBSD_LOGIN_NAME
8827NMH_EDITOR NMH_MTA 8834NMH_EDITOR NMH_MTA
8828NMH_PAGER NOLOGIN 8835NMH_PAGER NOLOGIN
8829NONZERO_FILESIZE_P NOTE 8836NONZERO_FILESIZE_P NOTE
8830NOT_FOR_PLATFORM NOT_PAX_ASLR_SAFE 8837NOT_FOR_PLATFORM NOT_PAX_ASLR_SAFE
8831NOT_PAX_MPROTECT_SAFE NO_BUILD 8838NOT_PAX_MPROTECT_SAFE NO_BUILD
8832NO_CHECKSUM NO_CONFIGURE 8839NO_CHECKSUM NO_CONFIGURE
8833NO_SKIP NS_PREFERRED 8840NO_SKIP NS_PREFERRED
8834NULLMAILER_GROUP NULLMAILER_USER 8841NULLMAILER_GROUP NULLMAILER_USER
8835OASIS OASIS_BUILD_ARGS 8842OASIS OASIS_BUILD_ARGS
8836OBJHOSTNAME OBJMACHINE 8843OBJHOSTNAME OBJMACHINE
8837OCAML_FINDLIB_DIRS OCAML_FINDLIB_REGISTER 8844OCAML_FINDLIB_DIRS OCAML_FINDLIB_REGISTER
8838OCAML_FINDLIB_REGISTER_VERBOSE OCAML_SITELIBDIR 8845OCAML_FINDLIB_REGISTER_VERBOSE OCAML_SITELIBDIR
8839OCAML_TOPKG_DOCDIR OCAML_USE_DUNE 8846OCAML_TOPKG_DOCDIR OCAML_USE_DUNE
8840OCAML_USE_FINDLIB OCAML_USE_JBUILDER 8847OCAML_USE_FINDLIB OCAML_USE_JBUILDER
8841OCAML_USE_OASIS OCAML_USE_OASIS_DYNRUN 8848OCAML_USE_OASIS OCAML_USE_OASIS_DYNRUN
8842OCAML_USE_OPAM OCAML_USE_OPT_COMPILER 8849OCAML_USE_OPAM OCAML_USE_OPT_COMPILER
8843OCAML_USE_TOPKG OMF 8850OCAML_USE_TOPKG OMF
8844ONLY_FOR_COMPILER ONLY_FOR_PLATFORM 8851ONLY_FOR_COMPILER ONLY_FOR_PLATFORM
8845OPENSSH_CHROOT OPENSSH_GROUP 8852OPENSSH_CHROOT OPENSSH_GROUP
8846OPENSSH_USER OPSYS 8853OPENSSH_USER OPSYS
8847OPSYS_EMULDIR OSS_TYPE 8854OPSYS_EMULDIR OSS_TYPE
8848OSX OSX_TOLERATE_SDK_SKEW 8855OSX OSX_TOLERATE_SDK_SKEW
8849OS_HAVE_ALSA OS_HAVE_RCD 8856OS_HAVE_ALSA OS_HAVE_RCD
8850OS_VARIANT OS_VERSION 8857OS_VARIANT OS_VERSION
8851OTF_FONTS_DIR OVERRIDE_DIRDEPTH 8858OTF_FONTS_DIR OVERRIDE_DIRDEPTH
8852OVERRIDE_GEMSPEC OVERRIDE_GNU_CONFIG_SCRIPTS 8859OVERRIDE_GEMSPEC OVERRIDE_GNU_CONFIG_SCRIPTS
8853OVERRIDE_ROCKSPEC OWN_DIRS 8860OVERRIDE_ROCKSPEC OWN_DIRS
8854OWN_DIRS_PERMS P4GROUP 8861OWN_DIRS_PERMS P4GROUP
8855P4PORT P4ROOT 8862P4PORT P4ROOT
8856P4USER PACKAGES 8863P4USER PACKAGES
8857PALMOS_DEFAULT_SDK PAMBASE 8864PALMOS_DEFAULT_SDK PAMBASE
8858PAM_DEFAULT PAPERSIZE 8865PAM_DEFAULT PAPERSIZE
8859PASSIVE_FETCH PATCHDIR 8866PASSIVE_FETCH PATCHDIR
8860PATCHFILES PATCH_ARGS 8867PATCHFILES PATCH_ARGS
8861PATCH_DEBUG PATCH_DIST_ARGS 8868PATCH_DEBUG PATCH_DIST_ARGS
8862PATCH_DIST_CAT PATCH_DIST_STRIP 8869PATCH_DIST_CAT PATCH_DIST_STRIP
8863PATCH_FUZZ_FACTOR PATCH_STRIP 8870PATCH_FUZZ_FACTOR PATCH_STRIP
8864PATH PCCBASE 8871PATH PCCBASE
8865PEAR PEAR_CHANNEL 8872PEAR PEAR_CHANNEL
8866PEAR_CHANNEL_ALIAS PEAR_CHANNEL_VERSION 8873PEAR_CHANNEL_ALIAS PEAR_CHANNEL_VERSION
8867PEAR_CMD PEAR_LIB 8874PEAR_CMD PEAR_LIB
8868PEAR_PACKAGE_XML PERL5 8875PEAR_PACKAGE_XML PERL5
8869PERL5_CONFIGURE PERL5_CONFIGURE_DIRS 8876PERL5_CONFIGURE PERL5_CONFIGURE_DIRS
8870PERL5_LDFLAGS PERL5_LICENSE 8877PERL5_LDFLAGS PERL5_LICENSE
8871PERL5_MODULE_TYPE PERL5_PACKLIST 8878PERL5_MODULE_TYPE PERL5_PACKLIST
8872PERL5_PACKLIST_DIR PERL5_PERLBASE 8879PERL5_PACKLIST_DIR PERL5_PERLBASE
8873PERL5_SITEBASE PERL5_USE_PACKLIST 8880PERL5_SITEBASE PERL5_USE_PACKLIST
8874PERL5_VENDORBASE PFCTL 8881PERL5_VENDORBASE PFCTL
8875PFVAR_H PF_VERSION 8882PFVAR_H PF_VERSION
8876PGGROUP PGHOME 8883PGGROUP PGHOME
8877PGPKGSRCDIR PGSQL_TYPE 8884PGPKGSRCDIR PGSQL_TYPE
8878PGSQL_VERSIONS_ACCEPTED PGSQL_VERSION_DEFAULT 8885PGSQL_VERSIONS_ACCEPTED PGSQL_VERSION_DEFAULT
8879PGUSER PG_LIB_EXT 8886PGUSER PG_LIB_EXT
8880PHP PHPCOMMON_MK 8887PHP PHPCOMMON_MK
8881PHPPKGSRCDIR PHP_BASE_VERS 8888PHPPKGSRCDIR PHP_BASE_VERS
8882PHP_CHECK_INSTALLED PHP_EXTENSION_DIR 8889PHP_CHECK_INSTALLED PHP_EXTENSION_DIR
8883PHP_INITIAL_TEENY PHP_PKG_PREFIX 8890PHP_INITIAL_TEENY PHP_PKG_PREFIX
8884PHP_VERSION PHP_VERSIONS_ACCEPTED 8891PHP_VERSION PHP_VERSIONS_ACCEPTED
8885PHP_VERSIONS_INCOMPATIBLE PHP_VERSION_DEFAULT 8892PHP_VERSIONS_INCOMPATIBLE PHP_VERSION_DEFAULT
8886PHP_VERSION_REQD PILRC_USE_GTK 8893PHP_VERSION_REQD PILRC_USE_GTK
8887PKGCONFIG_BASE PKGCONFIG_FILE 8894PKGCONFIG_BASE PKGCONFIG_FILE
8888PKGCONFIG_OVERRIDE PKGCONFIG_OVERRIDE_STAGE 8895PKGCONFIG_OVERRIDE PKGCONFIG_OVERRIDE_STAGE
8889PKGDIR PKGGNUDIR 8896PKGDIR PKGGNUDIR
8890PKGINFODIR PKGLOCALEDIR 8897PKGINFODIR PKGLOCALEDIR
8891PKGMANDIR PKGNAME 8898PKGMANDIR PKGNAME
8892PKGNAME_REQD PKGPATH 8899PKGNAME_REQD PKGPATH
8893PKGREVISION PKGSRC_BLAS_TYPES 8900PKGREVISION PKGSRC_BLAS_TYPES
8894PKGSRC_CHANGES PKGSRC_COMPILER 8901PKGSRC_CHANGES PKGSRC_COMPILER
8895PKGSRC_KEEP_BIN_PKGS PKGSRC_LOCKTYPE 8902PKGSRC_KEEP_BIN_PKGS PKGSRC_LOCKTYPE
8896PKGSRC_MAKE_ENV PKGSRC_MESSAGE_RECIPIENTS 8903PKGSRC_MAKE_ENV PKGSRC_MESSAGE_RECIPIENTS
8897PKGSRC_MKPIE PKGSRC_MKREPRO 8904PKGSRC_MKPIE PKGSRC_MKREPRO
8898PKGSRC_RUN_TEST PKGSRC_SETENV 8905PKGSRC_RUN_TEST PKGSRC_SETENV
8899PKGSRC_SLEEPSECS PKGSRC_TODO 8906PKGSRC_SLEEPSECS PKGSRC_TODO
8900PKGSRC_USE_CTF PKGSRC_USE_FORTIFY 8907PKGSRC_USE_CTF PKGSRC_USE_FORTIFY
8901PKGSRC_USE_RELRO PKGSRC_USE_SSP 8908PKGSRC_USE_RELRO PKGSRC_USE_SSP
8902PKGSRC_USE_STACK_CHECK PKGTASKS_DATAFILE 8909PKGSRC_USE_STACK_CHECK PKGTASKS_DATAFILE
8903PKGTOOLS_ARGS PKGTOOLS_ENV 8910PKGTOOLS_ARGS PKGTOOLS_ENV
8904PKG_ALTERNATIVES PKG_APACHE 8911PKG_ALTERNATIVES PKG_APACHE
8905PKG_APACHE_ACCEPTED PKG_APACHE_DEFAULT 8912PKG_APACHE_ACCEPTED PKG_APACHE_DEFAULT
8906PKG_BEST_EXISTS PKG_BUILD_OPTIONS 8913PKG_BEST_EXISTS PKG_BUILD_OPTIONS
8907PKG_COMPRESSION PKG_CONFIG 8914PKG_COMPRESSION PKG_CONFIG
8908PKG_CONFIG_PERMS PKG_CREATE_USERGROUP 8915PKG_CONFIG_PERMS PKG_CREATE_USERGROUP
8909PKG_DB_TMPDIR PKG_DEBUG_LEVEL 8916PKG_DB_TMPDIR PKG_DEBUG_LEVEL
8910PKG_DEFAULT_OPTIONS PKG_DESTDIR_SUPPORT 8917PKG_DEFAULT_OPTIONS PKG_DESTDIR_SUPPORT
8911PKG_DEVELOPER PKG_DISABLED_OPTIONS 8918PKG_DEVELOPER PKG_DISABLED_OPTIONS
8912PKG_FATAL_ERRORS PKG_FC 8919PKG_FATAL_ERRORS PKG_FC
8913PKG_FILELIST_CMD PKG_GECOS 8920PKG_FILELIST_CMD PKG_GECOS
8914PKG_GID PKG_GROUPS 8921PKG_GID PKG_GROUPS
8915PKG_GROUPS_VARS PKG_HOME 8922PKG_GROUPS_VARS PKG_HOME
8916PKG_INIT_SCRIPTS PKG_JAVA_HOME 8923PKG_INIT_SCRIPTS PKG_JAVA_HOME
8917PKG_JVM PKG_JVMS_ACCEPTED 8924PKG_JVM PKG_JVMS_ACCEPTED
8918PKG_JVM_DEFAULT PKG_LEGACY_OPTIONS 8925PKG_JVM_DEFAULT PKG_LEGACY_OPTIONS
8919PKG_LIBTOOL PKG_OPTIONS 8926PKG_LIBTOOL PKG_OPTIONS
8920PKG_OPTIONS_DEPRECATED_WARNINGS PKG_OPTIONS_LEGACY_OPTS 8927PKG_OPTIONS_DEPRECATED_WARNINGS PKG_OPTIONS_LEGACY_OPTS
8921PKG_OPTIONS_LEGACY_VARS PKG_OPTIONS_NONEMPTY_SETS 8928PKG_OPTIONS_LEGACY_VARS PKG_OPTIONS_NONEMPTY_SETS
8922PKG_OPTIONS_OPTIONAL_GROUPS PKG_OPTIONS_REQUIRED_GROUPS 8929PKG_OPTIONS_OPTIONAL_GROUPS PKG_OPTIONS_REQUIRED_GROUPS
8923PKG_OPTIONS_VAR PKG_PHP 8930PKG_OPTIONS_VAR PKG_PHP
8924PKG_PHP_MAJOR_VERS PKG_PHP_VERSION 8931PKG_PHP_MAJOR_VERS PKG_PHP_VERSION
8925PKG_RCD_SCRIPTS PKG_REFCOUNT_DBDIR 8932PKG_RCD_SCRIPTS PKG_REFCOUNT_DBDIR
8926PKG_REGISTER_SHELLS PKG_RESUME_TRANSFERS 8933PKG_REGISTER_SHELLS PKG_RESUME_TRANSFERS
8927PKG_SHELL PKG_SUGGESTED_OPTIONS 8934PKG_SHELL PKG_SUGGESTED_OPTIONS
8928PKG_SUPPORTED_OPTIONS PKG_SYSCONFBASE 8935PKG_SUPPORTED_OPTIONS PKG_SYSCONFBASE
8929PKG_SYSCONFBASEDIR PKG_SYSCONFDIR 8936PKG_SYSCONFBASEDIR PKG_SYSCONFDIR
8930PKG_SYSCONFDIR_PERMS PKG_SYSCONFSUBDIR 8937PKG_SYSCONFDIR_PERMS PKG_SYSCONFSUBDIR
8931PKG_SYSCONFVAR PKG_TOOLS_BIN 8938PKG_SYSCONFVAR PKG_TOOLS_BIN
8932PKG_UID PKG_UPDATE_FONTS_DB 8939PKG_UID PKG_UPDATE_FONTS_DB
8933PKG_USERS PKG_USERS_VARS 8940PKG_USERS PKG_USERS_VARS
8934PKG_VERBOSE PLIST 8941PKG_VERBOSE PLIST
8935PLIST_AWK PLIST_AWK_ENV 8942PLIST_AWK PLIST_AWK_ENV
8936PLIST_SRC PLIST_SUBST 8943PLIST_SRC PLIST_SUBST
8937PLIST_TYPE PLIST_VARS 8944PLIST_TYPE PLIST_VARS
8938POPTOP_USE_MPPE POST_FETCH_HOOK 8945POPTOP_USE_MPPE POST_FETCH_HOOK
8939PREFER PREFER_NATIVE 8946PREFER PREFER_NATIVE
8940PREFER_NATIVE_PTHREADS PREFER_PKGSRC 8947PREFER_NATIVE_PTHREADS PREFER_PKGSRC
8941PREFIX PREPEND_PATH 8948PREFIX PREPEND_PATH
8942PRE_ROOT_CMD PRIVILEGED_STAGES 8949PRE_ROOT_CMD PRIVILEGED_STAGES
8943PS PTHREAD_AUTO_VARS 8950PS PTHREAD_AUTO_VARS
8944PTHREAD_CFLAGS PTHREAD_LDFLAGS 8951PTHREAD_CFLAGS PTHREAD_LDFLAGS
8945PTHREAD_LIBS PTHREAD_OPTS 8952PTHREAD_LIBS PTHREAD_OPTS
8946PTHREAD_TYPE PVM_SSH 8953PTHREAD_TYPE PVM_SSH
8947PYPKGPREFIX PYTHON_FOR_BUILD_ONLY 8954PYPKGPREFIX PYTHON_FOR_BUILD_ONLY
8948PYTHON_SELF_CONFLICT PYTHON_VERSIONED_DEPENDENCIES 8955PYTHON_SELF_CONFLICT PYTHON_VERSIONED_DEPENDENCIES
8949PYTHON_VERSIONS_ACCEPTED PYTHON_VERSIONS_INCOMPATIBLE 8956PYTHON_VERSIONS_ACCEPTED PYTHON_VERSIONS_INCOMPATIBLE
8950PYTHON_VERSION_DEFAULT PYTHON_VERSION_REQD 8957PYTHON_VERSION_DEFAULT PYTHON_VERSION_REQD
8951PYVERSSUFFIX PY_NO_EGG 8958PYVERSSUFFIX PY_NO_EGG
8952QMAILDIR QMAIL_ALIAS_USER 8959QMAILDIR QMAIL_ALIAS_USER
8953QMAIL_DAEMON_USER QMAIL_LOG_USER 8960QMAIL_DAEMON_USER QMAIL_LOG_USER
8954QMAIL_NOFILES_GROUP QMAIL_PASSWD_USER 8961QMAIL_NOFILES_GROUP QMAIL_PASSWD_USER
8955QMAIL_QMAIL_GROUP QMAIL_QUEUE_DIR 8962QMAIL_QMAIL_GROUP QMAIL_QUEUE_DIR
8956QMAIL_QUEUE_EXTRA QMAIL_QUEUE_USER 8963QMAIL_QUEUE_EXTRA QMAIL_QUEUE_USER
8957QMAIL_REMOTE_USER QMAIL_ROOT_USER 8964QMAIL_REMOTE_USER QMAIL_ROOT_USER
8958QMAIL_SEND_USER QPOPPER_FAC 8965QMAIL_SEND_USER QPOPPER_FAC
8959QPOPPER_SPOOL_DIR QPOPPER_USER 8966QPOPPER_SPOOL_DIR QPOPPER_USER
8960RAKE_NAME RASMOL_DEPTH 8967RAKE_NAME RASMOL_DEPTH
8961RCD_DIR RCD_ORDER 8968RCD_DIR RCD_ORDER
8962RCD_SCRIPTS RCD_SCRIPTS_DIR 8969RCD_SCRIPTS RCD_SCRIPTS_DIR
8963RCD_SCRIPTS_EXAMPLEDIR RCD_SCRIPTS_MODE 8970RCD_SCRIPTS_EXAMPLEDIR RCD_SCRIPTS_MODE
8964RCD_SCRIPTS_SHELL RCD_SCRIPT_SRC 8971RCD_SCRIPTS_SHELL RCD_SCRIPT_SRC
8965RCD_SUBR RDOC 8972RCD_SUBR RDOC
8966READLINE_DEFAULT READLINE_TYPE 8973READLINE_DEFAULT READLINE_TYPE
8967REAL_ROOT_GROUP REAL_ROOT_USER 8974REAL_ROOT_GROUP REAL_ROOT_USER
8968RECURSIVE_MAKE RELAY_CTRL_DIR 8975RECURSIVE_MAKE RELAY_CTRL_DIR
8969REPLACE_AWK REPLACE_BASH 8976REPLACE_AWK REPLACE_BASH
8970REPLACE_CSH REPLACE_KSH 8977REPLACE_CSH REPLACE_KSH
8971REPLACE_PERL REPLACE_PERL6 8978REPLACE_PERL REPLACE_PERL6
8972REPLACE_PHP REPLACE_PYTHON 8979REPLACE_PHP REPLACE_PYTHON
8973REPLACE_RUBY REPLACE_RUBY_DIRS 8980REPLACE_RUBY REPLACE_RUBY_DIRS
8974REPLACE_RUBY_PAT REPLACE_SH 8981REPLACE_RUBY_PAT REPLACE_SH
8975REPLACE_TEXLUA REQD_DIRS 8982REPLACE_TEXLUA REQD_DIRS
8976REQD_DIRS_PERMS REQD_FILES 8983REQD_DIRS_PERMS REQD_FILES
8977REQD_FILES_MODE REQD_FILES_PERMS 8984REQD_FILES_MODE REQD_FILES_PERMS
8978RESOLV_AUTO_VARS RESOLV_LDFLAGS 8985RESOLV_AUTO_VARS RESOLV_LDFLAGS
8979RESOLV_LIBS RM 8986RESOLV_LIBS RM
8980ROCKSPEC_NAME ROCKSPEC_SPECFILE 8987ROCKSPEC_NAME ROCKSPEC_SPECFILE
8981ROOT_CMD ROOT_GROUP 8988ROOT_CMD ROOT_GROUP
8982ROOT_USER RPCGEN 8989ROOT_USER RPCGEN
8983RPM RPM2PKG_PLIST 8990RPM RPM2PKG_PLIST
8984RPM2PKG_PREFIX RPM2PKG_STAGE 8991RPM2PKG_PREFIX RPM2PKG_STAGE
8985RPM2PKG_STRIP RPM2PKG_SUBPREFIX 8992RPM2PKG_STRIP RPM2PKG_SUBPREFIX
8986RPMFILES RPMIGNOREPATH 8993RPMFILES RPMIGNOREPATH
8987RPM_DB_PREFIX RSSH_CVS_PATH 8994RPM_DB_PREFIX RSSH_CVS_PATH
8988RSSH_RDIST_PATH RSSH_RSYNC_PATH 8995RSSH_RDIST_PATH RSSH_RSYNC_PATH
8989RSSH_SCP_PATH RSSH_SFTP_SERVER_PATH 8996RSSH_SCP_PATH RSSH_SFTP_SERVER_PATH
8990RUBY RUBYGEM 8997RUBY RUBYGEM
8991RUBYGEM_NAME RUBYGEM_OPTIONS 8998RUBYGEM_NAME RUBYGEM_OPTIONS
8992RUBY_ABI_VERSION RUBY_ARCH 8999RUBY_ABI_VERSION RUBY_ARCH
8993RUBY_ARCHINC RUBY_ARCHLIB 9000RUBY_ARCHINC RUBY_ARCHLIB
8994RUBY_BASE RUBY_BASERIDIR 9001RUBY_BASE RUBY_BASERIDIR
8995RUBY_BUILD_DOCUMENT RUBY_DLEXT 9002RUBY_BUILD_DOCUMENT RUBY_DLEXT
8996RUBY_DOC RUBY_DYNAMIC_DIRS 9003RUBY_DOC RUBY_DYNAMIC_DIRS
8997RUBY_EG RUBY_ENCODING_ARG 9004RUBY_EG RUBY_ENCODING_ARG
8998RUBY_EXTCONF RUBY_EXTCONF_CHECK 9005RUBY_EXTCONF RUBY_EXTCONF_CHECK
8999RUBY_EXTCONF_DEBUG RUBY_EXTCONF_MAKEFILE 9006RUBY_EXTCONF_DEBUG RUBY_EXTCONF_MAKEFILE
9000RUBY_GEM_BASE RUBY_INC 9007RUBY_GEM_BASE RUBY_INC
9001RUBY_LIB RUBY_LIB_BASE 9008RUBY_LIB RUBY_LIB_BASE
9002RUBY_NAME RUBY_NOVERSION 9009RUBY_NAME RUBY_NOVERSION
9003RUBY_PKGPREFIX RUBY_RAILS 9010RUBY_PKGPREFIX RUBY_RAILS
9004RUBY_RAILS42_VERSION RUBY_RAILS51_VERSION 9011RUBY_RAILS42_VERSION RUBY_RAILS51_VERSION
9005RUBY_RAILS52_VERSION RUBY_RAILS_ACCEPTED 9012RUBY_RAILS52_VERSION RUBY_RAILS_ACCEPTED
9006RUBY_RAILS_DEFAULT RUBY_RAILS_REQD 9013RUBY_RAILS_DEFAULT RUBY_RAILS_REQD
9007RUBY_RAILS_STRICT_DEP RUBY_RIDIR 9014RUBY_RAILS_STRICT_DEP RUBY_RIDIR
9008RUBY_SETUP RUBY_SHLIB 9015RUBY_SETUP RUBY_SHLIB
9009RUBY_SHLIBALIAS RUBY_SHLIBVER 9016RUBY_SHLIBALIAS RUBY_SHLIBVER
9010RUBY_SIMPLE_INSTALL RUBY_SITEARCHLIB 9017RUBY_SIMPLE_INSTALL RUBY_SITEARCHLIB
9011RUBY_SITELIB RUBY_SITELIB_BASE 9018RUBY_SITELIB RUBY_SITELIB_BASE
9012RUBY_SITERIDIR RUBY_SLEXT 9019RUBY_SITERIDIR RUBY_SLEXT
9013RUBY_SRCDIR RUBY_STATICLIB 9020RUBY_SRCDIR RUBY_STATICLIB
9014RUBY_SUFFIX RUBY_SYSRIDIR 9021RUBY_SUFFIX RUBY_SYSRIDIR
9015RUBY_USE_PTHREAD RUBY_VENDORARCHLIB 9022RUBY_USE_PTHREAD RUBY_VENDORARCHLIB
9016RUBY_VENDORLIB RUBY_VENDORLIB_BASE 9023RUBY_VENDORLIB RUBY_VENDORLIB_BASE
9017RUBY_VER RUBY_VERSION 9024RUBY_VER RUBY_VERSION
9018RUBY_VERSIONS_ACCEPTED RUBY_VERSION_DEFAULT 9025RUBY_VERSIONS_ACCEPTED RUBY_VERSION_DEFAULT
9019RUBY_VERSION_REQD RUBY_VER_DIR 9026RUBY_VERSION_REQD RUBY_VER_DIR
9020RUN RUN_LDCONFIG 9027RUN RUN_LDCONFIG
9021SAWFISH_THEMES SCO 9028SAWFISH_THEMES SCO
9022SCREWS_GROUP SCREWS_USER 9029SCREWS_GROUP SCREWS_USER
9023SCRIPTS_ENV SCROLLKEEPER_DATADIR 9030SCRIPTS_ENV SCROLLKEEPER_DATADIR
9024SCROLLKEEPER_REBUILDDB SCROLLKEEPER_UPDATEDB 9031SCROLLKEEPER_REBUILDDB SCROLLKEEPER_UPDATEDB
9025SDIST_PAWD SERIAL_DEVICES 9032SDIST_PAWD SERIAL_DEVICES
9026SETGIDGAME SETGID_GAMES_PERMS 9033SETGIDGAME SETGID_GAMES_PERMS
9027SETUID_ROOT_PERMS SH 9034SETUID_ROOT_PERMS SH
9028SHLIB SHORTNAME 9035SHLIB SHORTNAME
9029SIGN_PACKAGES SILC_CLIENT_WITH_PERL 9036SIGN_PACKAGES SILC_CLIENT_WITH_PERL
9030SITE_SPECIFIC_PKGS SKIP_DEPENDS 9037SITE_SPECIFIC_PKGS SKIP_DEPENDS
9031SMF_INSTANCES SMF_MANIFEST 9038SMF_INSTANCES SMF_MANIFEST
9032SMF_METHODS SMF_METHOD_SHELL 9039SMF_METHODS SMF_METHOD_SHELL
9033SMF_METHOD_SRC SMF_NAME 9040SMF_METHOD_SRC SMF_NAME
9034SMF_PREFIX SMF_SRCDIR 9041SMF_PREFIX SMF_SRCDIR
9035SNIPROXY_GROUP SNIPROXY_USER 9042SNIPROXY_GROUP SNIPROXY_USER
9036SOURCE_BUFFSIZE SPECIAL_PERMS 9043SOURCE_BUFFSIZE SPECIAL_PERMS
9037SPECIFIC_PKGS SSH_SUID 9044SPECIFIC_PKGS SSH_SUID
9038SSP_SUPPORTED SSYNC_PAWD 9045SSP_SUPPORTED SSYNC_PAWD
9039STEP_MSG STRIP 9046STEP_MSG STRIP
9040STRIP_DBG STRIP_DEBUG 9047STRIP_DBG STRIP_DEBUG
9041STRIP_DEBUG_SUPPORTED STRIP_FILES_SKIP 9048STRIP_DEBUG_SUPPORTED STRIP_FILES_SKIP
9042SU SUBDIR 9049SU SUBDIR
9043SUBST_CLASSES SUBST_FILES 9050SUBST_CLASSES SUBST_FILES
9044SUBST_FILTER_CMD SUBST_MESSAGE 9051SUBST_FILTER_CMD SUBST_MESSAGE
9045SUBST_SED SUBST_SHOW_DIFF 9052SUBST_SED SUBST_SHOW_DIFF
9046SUBST_SKIP_TEXT_CHECK SUBST_STAGE 9053SUBST_SKIP_TEXT_CHECK SUBST_STAGE
9047SUBST_VARS SUNWSPROBASE 9054SUBST_VARS SUNWSPROBASE
9048SUSE_PREFER SU_CMD 9055SUSE_PREFER SU_CMD
9049SVN_EXTRACTDIR SVN_REPO 9056SVN_EXTRACTDIR SVN_REPO
9050SVN_REPOSITORIES SVN_REVISION 9057SVN_REPOSITORIES SVN_REVISION
9051TERMCAP_TYPE TERMINFO_DEFAULT 9058TERMCAP_TYPE TERMINFO_DEFAULT
9052TERMINFO_TYPE TEST 9059TERMINFO_TYPE TEST
9053TEST_DEPENDS TEST_DIRS 9060TEST_DEPENDS TEST_DIRS
9054TEST_ENV TEST_MAKE_CMD 9061TEST_ENV TEST_MAKE_CMD
9055TEST_MAKE_FLAGS TEST_TARGET 9062TEST_MAKE_FLAGS TEST_TARGET
9056TEXLIVE_IGNORE_PATTERNS TEXLIVE_REV 9063TEXLIVE_IGNORE_PATTERNS TEXLIVE_REV
9057TEXLIVE_UNVERSIONED TEXMFSITE 9064TEXLIVE_UNVERSIONED TEXMFSITE
9058TEX_FORMATS TEX_HYPHEN_DAT 9065TEX_FORMATS TEX_HYPHEN_DAT
9059TEX_HYPHEN_DEF TEX_TEXMF_DIRS 9066TEX_HYPHEN_DEF TEX_TEXMF_DIRS
9060THTTPD_LOG_FACILITY TO 9067THTTPD_LOG_FACILITY TO
9061TOOLS_ALIASES TOOLS_ARGS 9068TOOLS_ALIASES TOOLS_ARGS
9062TOOLS_BROKEN TOOLS_CMD 9069TOOLS_BROKEN TOOLS_CMD
9063TOOLS_CREATE TOOLS_DIR 9070TOOLS_CREATE TOOLS_DIR
9064TOOLS_FAIL TOOLS_GNU_MISSING 9071TOOLS_FAIL TOOLS_GNU_MISSING
9065TOOLS_LDCONFIG TOOLS_NOOP 9072TOOLS_LDCONFIG TOOLS_NOOP
9066TOOLS_PATH TOOLS_SCRIPT 9073TOOLS_PATH TOOLS_SCRIPT
9067TOOL_DEPENDS TTF_FONTDIR 9074TOOL_DEPENDS TTF_FONTDIR
9068TTF_FONTS_DIR TYPE 9075TTF_FONTS_DIR TYPE
9069UAC_REQD_EXECS UCSPI_SSL_GROUP 9076UAC_REQD_EXECS UCSPI_SSL_GROUP
9070UCSPI_SSL_USER UNLIMIT_RESOURCES 9077UCSPI_SSL_USER UNLIMIT_RESOURCES
9071UNPRIVILEGED UNPRIVILEGED_GROUP 9078UNPRIVILEGED UNPRIVILEGED_GROUP
9072UNPRIVILEGED_GROUPS UNPRIVILEGED_USER 9079UNPRIVILEGED_GROUPS UNPRIVILEGED_USER
9073UNWRAP_FILES UNWRAP_PATTERNS 9080UNWRAP_FILES UNWRAP_PATTERNS
9074UPDATE_GEMSPEC UPDATE_TARGET 9081UPDATE_GEMSPEC UPDATE_TARGET
9075URI USA 9082URI USA
9076USERGROUP_PHASE USERPPP_GROUP 9083USERGROUP_PHASE USERPPP_GROUP
9077USER_SPECIFIC_PKGS USE_ABI_DEPENDS 9084USER_SPECIFIC_PKGS USE_ABI_DEPENDS
9078USE_APR USE_BSD_MAKEFILE 9085USE_APR USE_BSD_MAKEFILE
9079USE_BUILTIN USE_CROSS_COMPILE 9086USE_BUILTIN USE_CROSS_COMPILE
9080USE_CURSES USE_CWRAPPERS 9087USE_CURSES USE_CWRAPPERS
9081USE_DB185 USE_FEATURES 9088USE_DB185 USE_FEATURES
9082USE_GAMESGROUP USE_GCC_RUNTIME 9089USE_GAMESGROUP USE_GCC_RUNTIME
9083USE_IMAKE USE_JAVA 9090USE_IMAKE USE_JAVA
9084USE_JAVA2 USE_LANGUAGES 9091USE_JAVA2 USE_LANGUAGES
9085USE_LIBTOOL USE_NATIVE_GCC 9092USE_LIBTOOL USE_NATIVE_GCC
9086USE_NETBSD_REPO USE_PKGSRC_GCC 9093USE_NETBSD_REPO USE_PKGSRC_GCC
9087USE_PKGSRC_GCC_RUNTIME USE_PKGTASKS 9094USE_PKGSRC_GCC_RUNTIME USE_PKGTASKS
9088USE_PKG_ADMIN_DIGEST USE_RUBY_EXTCONF 9095USE_PKG_ADMIN_DIGEST USE_RUBY_EXTCONF
9089USE_RUBY_INSTALL USE_RUBY_SETUP 9096USE_RUBY_INSTALL USE_RUBY_SETUP
9090USE_RUBY_SETUP_PKG USE_TOOLS 9097USE_RUBY_SETUP_PKG USE_TOOLS
9091UUCP_GROUP UUCP_USER 9098UUCP_GROUP UUCP_USER
9092VARBASE VARNAME 9099VARBASE VARNAME
9093VIM_EXTRA_OPTS WARNING_MSG 9100VIM_EXTRA_OPTS WARNING_MSG
9094WCALC_CGIDIR WCALC_CGIPATH 9101WCALC_CGIDIR WCALC_CGIPATH
9095WCALC_HTMLDIR WCALC_HTMLPATH 9102WCALC_HTMLDIR WCALC_HTMLPATH
9096WDM_MANAGERS WRAPPER_REORDER_CMDS 9103WDM_MANAGERS WRAPPER_REORDER_CMDS
9097WRKDIR WRKDIR_BASENAME 9104WRKDIR WRKDIR_BASENAME
9098WRKDIR_LOCKTYPE WRKLOG 9105WRKDIR_LOCKTYPE WRKLOG
9099WRKOBJDIR WRKSRC 9106WRKOBJDIR WRKSRC
9100WXGTK_ACCEPTED WXGTK_DEFAULT 9107WXGTK_ACCEPTED WXGTK_DEFAULT
9101X10_PORT X11 9108X10_PORT X11
9102X11BASE X11_PKGSRCDIR 9109X11BASE X11_PKGSRCDIR
9103X11_TYPE X509_CERTIFICATE 9110X11_TYPE X509_CERTIFICATE
9104X509_KEY XAW_TYPE 9111X509_KEY XAW_TYPE
9105XLOCK_DEFAULT_MODE XMKMF_FLAGS 9112XLOCK_DEFAULT_MODE XMKMF_FLAGS
9106XXX XXXX 9113XXX XXXX
9107YES ZERO_FILESIZE_P 9114YES ZERO_FILESIZE_P
9108ZSH_STATIC __stdc__ 9115ZSH_STATIC __stdc__
9109_vargroups add 9116_vargroups add
9110all alternatives 9117all alternatives
9111aslr asprintf 9118aslr asprintf
9112atlas autoconf 9119atlas autoconf
9113automake autoreconf 9120automake autoreconf
9114awk bash 9121awk bash
9115big-endian bin-install 9122big-endian bin-install
9116binpkg-list blas 9123binpkg-list blas
9117bootstrap-depends broken 9124bootstrap-depends broken
9118broken_on_platform build 9125broken_on_platform build
9119build-env buildlink-directories 9126build-env buildlink-directories
9120buildlink-oss-soundcard-h c 9127buildlink-oss-soundcard-h c
9121c++ ccache 9128c++ ccache
9122cce cdefs 9129cce cdefs
9123changes changes-entry 9130changes changes-entry
9124changes-entry-noupdate check 9131changes-entry-noupdate check
9125check-clean check-files 9132check-clean check-files
9126check-files-clean check-vulnerable 9133check-files-clean check-vulnerable
9127checksum checksum-phase 9134checksum checksum-phase
9128clean clean-depends 9135clean clean-depends
9129cleandir commit 9136cleandir commit
9130commit-changes-entry compact 9137commit-changes-entry compact
9131compiler conf 9138compiler conf
9132config.guess config.sub 9139config.guess config.sub
9133configuration configure 9140configuration configure
9134configure-help configure_args 9141configure-help configure_args
9135cputime create-usergroup 9142cputime create-usergroup
9136csh ctf 9143csh ctf
9137cvs debug 9144cvs debug
9138declaration declare 9145declaration declare
9139defined depend 9146defined depend
9140dependencies depends 9147dependencies depends
9141depends-checksum depends-fetch 9148depends-checksum depends-fetch
9142deps describe 9149deps describe
9143destdir disable 9150destdir disable
9144distclean distinfo 9151distclean distinfo
9145dl dlopen 9152dl dlopen
9146do-build do-buildlink 9153do-build do-buildlink
9147do-clean do-configure 9154do-clean do-configure
9148do-configure-post-hook do-extract 9155do-configure-post-hook do-extract
9149do-fetch do-install 9156do-fetch do-install
9150emul emulation 9157emul emulation
9151emulator enable 9158emulator enable
9152endian enomem 9159endian enomem
9153err errx 9160err errx
9154etc feature 9161etc feature
9155features fetch 9162features fetch
9156fetch-list follows 9163fetch-list follows
9157forbids form 9164forbids form
9158format fortify 9165format fortify
9159fortify_source fossil 9166fortify_source fossil
9160friend from 9167friend from
9161fts fts_close 9168fts fts_close
9162fts_open fts_read 9169fts_open fts_read
9163fts_set full 9170fts_set full
9164gcc getopt_long 9171gcc getopt_long
9165getprogname gettext 9172getprogname gettext
9166git github 9173git github
9167glob gnu 9174glob gnu
9168gnu_configure_strict go 9175gnu_configure_strict go
9169go-deps golang 9176go-deps golang
9170guess-license hashbang 9177guess-license hashbang
9171heimdal help 9178heimdal help
9172hg imake 9179hg imake
9173increment interp 9180increment interp
9174interpreter intl 9181interpreter intl
9175iso kerberos 9182iso kerberos
9176krb krb5 9183krb krb5
9177ksh lapack 9184ksh lapack
9178latex libnbcompat 9185latex libnbcompat
9179libs libtool 9186libs libtool
9180licence license 9187licence license
9181lintl little-endian 9188lintl little-endian
9182lock locking 9189lock locking
9183lvalue make 9190lvalue make
9184makesum memory 9191makesum memory
9185mercurial meta 9192mercurial meta
9186meta-package meta_package 9193meta-package meta_package
9187mit-krb5 mk.conf 9194mit-krb5 mk.conf
9188mkl mount 9195mkl mount
9189mprotect mremap 9196mprotect mremap
9190nb nbcompat 9197nb nbcompat
9191no obstack 9198no obstack
9192obstack_ptr_grow occurs 9199obstack_ptr_grow occurs
9193only openblas 9200only openblas
9194options options.mk 9201options options.mk
9195order override 9202order override
9196override-intltool override-message-intltool 9203override-intltool override-message-intltool
9197package parallel 9204package parallel
9198partial path 9205partial path
9199pax paxctl 9206pax paxctl
9200pbulk-index pc 9207pbulk-index pc
9201perl perl5 9208perl perl5
9202perms php 9209perms php
9203pkg-build-options pkg-config 9210pkg-build-options pkg-config
9204pkg_build_options platform 9211pkg_build_options platform
9205plist post-extract 9212plist post-extract
9206post-fetch post-wrapper 9213post-fetch post-wrapper
9207pre-configure pre-extract 9214pre-configure pre-extract
9208pre-fetch print-go-deps 9215pre-fetch print-go-deps
9209print-plist print-summary-data 9216print-plist print-summary-data
9210privileged-install-hook pypi 9217privileged-install-hook pypi
9211python readme-all 9218python readme-all
9212regcomp relro 9219regcomp relro
9213rename reorder 9220rename reorder
9214replace replace_interpreter 9221replace replace_interpreter
9215reproducible resolv 9222reproducible resolv
9216root ruby 9223root ruby
9217setenv setgid 9224setenv setgid
9218setprogname setuid 9225setprogname setuid
9219sh show 9226sh show
9220show-all show-build-defs 9227show-all show-build-defs
9221show-depends show-deps 9228show-depends show-deps
9222show-distfiles show-downlevel 9229show-distfiles show-downlevel
9223show-subdir-var show-tools 9230show-subdir-var show-tools
9224show-var show-vars 9231show-var show-vars
9225snprintf ssp 9232snprintf ssp
9226st_mode stage-install 9233st_mode stage-install