| @@ -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 |
8095 | possibility. That compiler cannot handle the following code:</p> | | 8095 | possibility. That compiler cannot handle the following code:</p> |
8096 | <pre class="programlisting"> | | 8096 | <pre class="programlisting"> |
8097 | extern int extern_func(int); | | 8097 | extern int extern_func(int); |
8098 | | | 8098 | |
8099 | static inline int | | 8099 | static inline int |
8100 | inline_func(int x) | | 8100 | inline_func(int x) |
8101 | { | | 8101 | { |
8102 | return extern_func(x); | | 8102 | return extern_func(x); |
8103 | } | | 8103 | } |
8104 | | | 8104 | |
8105 | int main(void) | | 8105 | int 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 |
8111 | that function is never used. This code then refers to | | 8111 | that 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 |
8113 | solve this problem you can try to tell the package to disable inlining | | 8113 | solve this problem you can try to tell the package to disable inlining |
8114 | of functions.</p> | | 8114 | of 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">“<span class="quote">cputime</span>”</span>, <span class="quote">“<span class="quote">datasize</span>”</span>, | | 8124 | <span class="quote">“<span class="quote">cputime</span>”</span>, <span class="quote">“<span class="quote">datasize</span>”</span>, |
8125 | <span class="quote">“<span class="quote">memorysize</span>”</span>, and <span class="quote">“<span class="quote">stacksize</span>”</span>. | | 8125 | <span class="quote">“<span class="quote">memorysize</span>”</span>, and <span class="quote">“<span class="quote">stacksize</span>”</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">“<span class="quote"><code class="literal">dir1 | | 8146 | <p>You can also just append <span class="quote">“<span class="quote"><code class="literal">dir1 |
8147 | dir2</code></span>”</span> to the | | 8147 | dir2</code></span>”</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">“<span class="quote">--with-html-dir</span>”</span> option. Sometimes using this flag | | 8160 | <span class="quote">“<span class="quote">--with-html-dir</span>”</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">“<span class="quote">--with-html-dir=${PREFIX}/share/doc</span>”</span>. | | 8176 | <span class="quote">“<span class="quote">--with-html-dir=${PREFIX}/share/doc</span>”</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"> |
8205 | USE_GAMESGROUP= yes | | 8205 | USE_GAMESGROUP= yes |
8206 | | | 8206 | |
8207 | BUILD_DEFS+= VARBASE | | 8207 | BUILD_DEFS+= VARBASE |
8208 | | | 8208 | |
8209 | OWN_DIRS_PERMS+= ${VARBASE}/games/moon-buggy ${GAMEDIR_PERMS} | | 8209 | OWN_DIRS_PERMS+= ${VARBASE}/games/moon-buggy ${GAMEDIR_PERMS} |
8210 | REQD_FILES_PERMS+= /dev/null ${VARBASE}/games/moon-buggy/mbscore ${GAMEDATA_PERMS} | | 8210 | REQD_FILES_PERMS+= /dev/null ${VARBASE}/games/moon-buggy/mbscore ${GAMEDATA_PERMS} |
8211 | SPECIAL_PERMS+= ${PREFIX}/bin/moon-buggy ${SETGID_GAMES_PERMS} | | 8211 | SPECIAL_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">“<span class="quote">destdir</span>”</span>) or the package can | | 8231 | install as root (<span class="quote">“<span class="quote">destdir</span>”</span>) or the package can |
8232 | install as non-root user (<span class="quote">“<span class="quote">user-destdir</span>”</span>).</p> | | 8232 | install as non-root user (<span class="quote">“<span class="quote">user-destdir</span>”</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">“<span class="quote">destdir</span>”</span> or <span class="quote">“<span class="quote">user-destdir</span>”</span>. | | 8235 | set to <span class="quote">“<span class="quote">destdir</span>”</span> or <span class="quote">“<span class="quote">user-destdir</span>”</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">“<span class="quote">user-destdir</span>”</span> to help catching more | | 8237 | is set to <span class="quote">“<span class="quote">user-destdir</span>”</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"> |
8262 | REPLACE_INTERPRETER+= tcl | | 8262 | REPLACE_INTERPRETER+= tcl |
8263 | REPLACE.tcl.old= .*/bin/tclsh | | 8263 | REPLACE.tcl.old= .*/bin/tclsh |
8264 | REPLACE.tcl.new= ${PREFIX}/bin/tclsh | | 8264 | REPLACE.tcl.new= ${PREFIX}/bin/tclsh |
8265 | REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed, | | 8265 | REPLACE_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"> |
8296 | PERL5_PACKLIST= auto/Pg/.packlist | | 8296 | PERL5_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">“<span class="quote">makeinfo</span>”</span> or <span class="quote">“<span class="quote">install-info</span>”</span> | | 8319 | <span class="quote">“<span class="quote">makeinfo</span>”</span> or <span class="quote">“<span class="quote">install-info</span>”</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">“<span class="quote">install-info</span>”</span> command used for the info | | 8324 | file. The <span class="quote">“<span class="quote">install-info</span>”</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">“<span class="quote">info</span>”</span> and can be overridden by the user.</p> | | 8331 | <span class="quote">“<span class="quote">info</span>”</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">“<span class="quote">makeinfo</span>”</span> command | | 8335 | <p>A package which needs the <span class="quote">“<span class="quote">makeinfo</span>”</span> command |
8336 | at build time must add <span class="quote">“<span class="quote">makeinfo</span>”</span> to | | 8336 | at build time must add <span class="quote">“<span class="quote">makeinfo</span>”</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">“<span class="quote">makeinfo</span>”</span> command is needed it | | 8338 | version of the <span class="quote">“<span class="quote">makeinfo</span>”</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">“<span class="quote"><code class="filename">man</code></span>”</span>. Another often-used value | | 8371 | <span class="quote">“<span class="quote"><code class="filename">man</code></span>”</span>. Another often-used value |
8372 | is <span class="quote">“<span class="quote"><code class="filename">share/man</code></span>”</span>.</p> | | 8372 | is <span class="quote">“<span class="quote"><code class="filename">share/man</code></span>”</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">“<span class="quote">yes</span>”</span>, by default will use the | | 8385 | <span class="quote">“<span class="quote">yes</span>”</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">“<span class="quote">no</span>”</span>. | | 8392 | to <span class="quote">“<span class="quote">no</span>”</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, “Man page compression”</a> for | | 8396 | <p>See <a class="xref" href="#manpage-compression" title="15.5. Man page compression">Section 15.5, “Man page compression”</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, “How do I change the location of configuration files?”</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, “How do I change the location of configuration files?”</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">“<span class="quote">ttf</span>”</span>, <span class="quote">“<span class="quote">type1</span>”</span> or <span class="quote">“<span class="quote">x11</span>”</span>. | | 8464 | <span class="quote">“<span class="quote">ttf</span>”</span>, <span class="quote">“<span class="quote">type1</span>”</span> or <span class="quote">“<span class="quote">x11</span>”</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, “<code class="filename">Makefile</code>”</a>.</p></li> | | 8730 | necessary; see <a class="xref" href="#components.Makefile" title="13.1. Makefile">Section 13.1, “<code class="filename">Makefile</code>”</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 >PLIST</code></strong> | | 8734 | <code class="prompt">#</code> <strong class="userinput"><code>make print-PLIST >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 |
8798 | builds)</i></a>.</p> | | 8798 | builds)</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">“<span class="quote">pkg</span>”</span>, the synopsis should include the package name | | 8817 | <span class="quote">“<span class="quote">pkg</span>”</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">“<span class="quote">fix</span>”</span> field.</p> | | 8821 | go into the <span class="quote">“<span class="quote">fix</span>”</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">“<span class="quote">pkgsrc work-in-progress</span>”</span>); see the | | 8826 | pkgsrc-wip (<span class="quote">“<span class="quote">pkgsrc work-in-progress</span>”</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">“<span class="quote">cvs admin</span>”</span> is | | 8907 | <p>Commit messages are final: no <span class="quote">“<span class="quote">cvs admin</span>”</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">“<span class="quote">cvs add</span>”</span> the files. | | 8915 | <p>When the package is finished, <span class="quote">“<span class="quote">cvs add</span>”</span> the files. |
8916 | Start by adding the directory and then files in the directory. Don't | | 8916 | Start by adding the directory and then files in the directory. Don't |
8917 | forget to add the new package to the category's | | 8917 | forget 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; |
8919 | you can check by running <span class="quote">“<span class="quote">cvs status</span>”</span>. An example:</p> | | 8919 | you can check by running <span class="quote">“<span class="quote">cvs status</span>”</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">“<span class="quote">cvs import</span>”</span> was suggested, but it was | | 8939 | <p>Previously, <span class="quote">“<span class="quote">cvs import</span>”</span> was suggested, but it was |
8940 | much easier to get wrong than <span class="quote">“<span class="quote">cvs add</span>”</span>.</p> | | 8940 | much easier to get wrong than <span class="quote">“<span class="quote">cvs add</span>”</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"> |
8981 | SUPERSEDES+= p5-IO-Compress-Zlib<2.017 | | 8981 | SUPERSEDES+= p5-IO-Compress-Zlib<2.017 |
8982 | SUPERSEDES+= optcomp-[0-9]* | | 8982 | SUPERSEDES+= optcomp-[0-9]* |
8983 | </pre> | | 8983 | </pre> |
8984 | <p>Note that <span class="quote">“<span class="quote">successor</span>”</span> in the | | 8984 | <p>Note that <span class="quote">“<span class="quote">successor</span>”</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">“<span class="quote">../package</span>”</span> | | 9005 | <code class="varname">DEPENDS</code> paths that just did <span class="quote">“<span class="quote">../package</span>”</span> |
9006 | instead of <span class="quote">“<span class="quote">../../category/package</span>”</span>.</p></li> | | 9006 | instead of <span class="quote">“<span class="quote">../../category/package</span>”</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 |
9009 | pathname. The <code class="varname">PREV_PKGPATH</code> can be used by tools | | 9009 | pathname. The <code class="varname">PREV_PKGPATH</code> can be used by tools |
9010 | for doing an update using pkgsrc building; for example, it can | | 9010 | for doing an update using pkgsrc building; for example, it can |
9011 | search 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> | | 9011 | search 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 |
9013 | new <code class="varname">PKGPATH</code> for that moved package. Note that | | 9013 | new <code class="varname">PKGPATH</code> for that moved package. Note that |
9014 | it may have multiple matches, so the tool should also check on the | | 9014 | it 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> |
9016 | probably has no value unless <code class="varname">SUPERSEDES</code> is not | | 9016 | probably has no value unless <code class="varname">SUPERSEDES</code> is not |
9017 | set, i.e. <code class="varname">PKGBASE</code> stays the same. </p></li> | | 9017 | set, 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 |
9019 | place.</p></li> | | 9019 | place.</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 |
9081 | do?</a> | | 9081 | do?</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">“<span class="quote">wrapper</span>”</span> phase and later. To | | 9166 | available in the <span class="quote">“<span class="quote">wrapper</span>”</span> phase and later. To |
9167 | <span class="quote">“<span class="quote">simulate</span>”</span> the wrapper phase, append | | 9167 | <span class="quote">“<span class="quote">simulate</span>”</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">“<span class="quote">implicitly | | 9256 | <li class="listitem"><p>Some parts of pkgsrc are only <span class="quote">“<span class="quote">implicitly |
9257 | documented</span>”</span>, that is the documentation exists only in the | | 9257 | documented</span>”</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 |
9273 | do?</p></td> | | 9273 | do?</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 |
9279 | anyway.</p> | | 9279 | anyway.</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 | — it contains a list of suggested new packages and a list of | | 9286 | — 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 |
9312 | site</a>:</p> | | 9312 | site</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 |
9318 | a complete GNOME environment <span class="emphasis"><em>under many different | | 9318 | a complete GNOME environment <span class="emphasis"><em>under many different |
9319 | platforms</em></span>. We can say with confidence that pkgsrc is one of | | 9319 | platforms</em></span>. We can say with confidence that pkgsrc is one of |
9320 | the most advanced build and packaging systems for GNOME due to its | | 9320 | the most advanced build and packaging systems for GNOME due to its |
9321 | included technologies buildlink3, the wrappers and tools framework and | | 9321 | included technologies buildlink3, the wrappers and tools framework and |
9322 | automatic configuration file management. Lots of efforts are put into | | 9322 | automatic configuration file management. Lots of efforts are put into |
9323 | achieving a completely clean deinstallation of installed software | | 9323 | achieving a completely clean deinstallation of installed software |
9324 | components.</p> | | 9324 | components.</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, |
9326 | the above also means that great efforts are put into making GNOME work | | 9326 | the above also means that great efforts are put into making GNOME work |
9327 | under this operating system. Recently, <a class="ulink" href="http://www.dragonflybsd.org/" target="_top">DragonFly BSD</a> also adopted | | 9327 | under this operating system. Recently, <a class="ulink" href="http://www.dragonflybsd.org/" target="_top">DragonFly BSD</a> also adopted |
9328 | pkgsrc as its preferred packaging system, contributing lots of | | 9328 | pkgsrc as its preferred packaging system, contributing lots of |
9329 | portability fixes to make GNOME build and install under it.</p> | | 9329 | portability 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 |
9331 | interested in helping our GNOME porting and packaging efforts. It | | 9331 | interested in helping our GNOME porting and packaging efforts. It |
9332 | provides instructions on how to manage the existing packages and some | | 9332 | provides instructions on how to manage the existing packages and some |
9333 | important information regarding their internals.</p> | | 9333 | important 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 |
9372 | sorted in a way that eases updates: a package may depend on other | | 9372 | sorted in a way that eases updates: a package may depend on other |
9373 | packages listed before it but not on any listed after it. It is very | | 9373 | packages listed before it but not on any listed after it. It is very |
9374 | important to keep this order to ease updates so... <span class="emphasis"><em>do not | | 9374 | important to keep this order to ease updates so... <span class="emphasis"><em>do not |
9375 | change it to alphabetical sorting!</em></span></p> | | 9375 | change 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 |
9381 | set of tools as their build system. Things get different with the new | | 9381 | set of tools as their build system. Things get different with the new |
9382 | bindings to other languages (such as Python), but the following will | | 9382 | bindings to other languages (such as Python), but the following will |
9383 | give you a general idea on the minimum required tools:</p> | | 9383 | give 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"> |
9390 | GNU_CONFIGURE=yes | | 9390 | GNU_CONFIGURE=yes |
9391 | USE_LIBTOOL=yes | | 9391 | USE_LIBTOOL=yes |
9392 | USE_TOOLS+=gmake | | 9392 | USE_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"> |
9399 | USE_TOOLS+=pkg-config | | 9399 | USE_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"> |
9418 | CONFIGURE_ARGS+=--disable-gtk-doc | | 9418 | CONFIGURE_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/<package-name></code>) is correct | | 9421 | (<code class="filename">share/gtk-doc/<package-name></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"> |
9427 | CONFIGURE_ARGS+=--with-html-dir=${PREFIX}/share/gtk-doc/... | | 9427 | CONFIGURE_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 |
9432 | files under the installation prefix to maintain databases. In this | | 9432 | files under the installation prefix to maintain databases. In this |
9433 | context, shared means that those exact same directories and files are | | 9433 | context, shared means that those exact same directories and files are |
9434 | used among several different packages, leading to conflicts in the | | 9434 | used 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 |
9436 | handle the most common cases, so you have to forget about using | | 9436 | handle 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 |
9438 | omitting shared files from them. If you find yourself doing those, | | 9438 | omitting 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 |
9441 | using shared directories or files. For each of them, the appropriate | | 9441 | using shared directories or files. For each of them, the appropriate |
9442 | solution is given. After applying the solution be sure to | | 9442 | solution 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, “Packages installing scrollkeeper/rarian data files”</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, “Packages installing scrollkeeper/rarian data files”</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, “Packages installing hicolor theme icons”</a>.</td> | | 9465 | <td>See <a class="xref" href="#hicolor-theme" title="21.6.19. Packages installing hicolor theme icons">Section 21.6.19, “Packages installing hicolor theme icons”</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, “Packages installing extensions to the MIME database”</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, “Packages installing extensions to the MIME database”</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, “Packages installing desktop files”</a>.</td> | | 9476 | <td>See <a class="xref" href="#desktop-files" title="21.6.20. Packages installing desktop files">Section 21.6.20, “Packages installing desktop files”</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 |
9487 | updates:</p> | | 9487 | updates:</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 |
9517 | release (either major or minor), the following steps should be | | 9517 | release (either major or minor), the following steps should be |
9518 | followed:</p> | | 9518 | followed:</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 }' >list.txt</code></strong> | | 9527 | awk '{ print $9 }' >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 }' >>list.txt</code></strong></pre> | | 9530 | awk '{ print $9 }' >>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' >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' >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-<YEAR></code> and | | 9568 | changes to the <code class="filename">doc/CHANGES-<YEAR></code> and |
9569 | <a href="http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/doc/TODO?rev=HEAD&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&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 |
9576 | packages. Please, it is very important that you always, always, | | 9576 | packages. 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 |
9578 | fixes 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, “Feedback to the author”</a>). This is the only way to get | | 9578 | fixes 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, “Feedback to the author”</a>). This is the only way to get |
9579 | their attention on portability issues and to ensure that future versions | | 9579 | their attention on portability issues and to ensure that future versions |
9580 | can be built out-of-the box on NetBSD. The less custom patches in | | 9580 | can be built out-of-the box on NetBSD. The less custom patches in |
9581 | pkgsrc, the easier further updates are. Those developers in charge of | | 9581 | pkgsrc, the easier further updates are. Those developers in charge of |
9582 | issuing major GNOME updates will be grateful if you do that.</p> | | 9582 | issuing 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 |
9584 | Bugzilla</a>. Not all components use these to track bugs, but most | | 9584 | Bugzilla</a>. Not all components use these to track bugs, but most |
9585 | of them do. Do not be short on your reports: always provide detailed | | 9585 | of them do. Do not be short on your reports: always provide detailed |
9586 | explanations of the current failure, how it can be improved to achieve | | 9586 | explanations of the current failure, how it can be improved to achieve |
9587 | maximum portability and, if at all possible, provide a patch against CVS | | 9587 | maximum portability and, if at all possible, provide a patch against CVS |
9588 | head. The more verbose you are, the higher chances of your patch being | | 9588 | head. The more verbose you are, the higher chances of your patch being |
9589 | accepted.</p> | | 9589 | accepted.</p> |
9590 | <p>Also, please avoid using preprocessor magic to fix portability | | 9590 | <p>Also, please avoid using preprocessor magic to fix portability |
9591 | issues. While the FreeBSD GNOME people are doing a great job in porting | | 9591 | issues. While the FreeBSD GNOME people are doing a great job in porting |
9592 | GNOME to their operating system, the official GNOME sources are now | | 9592 | GNOME to their operating system, the official GNOME sources are now |
9593 | plagued by conditionals that check for <code class="varname">__FreeBSD__</code> | | 9593 | plagued by conditionals that check for <code class="varname">__FreeBSD__</code> |
9594 | and similar macros. This hurts portability. Please see our patching | | 9594 | and similar macros. This hurts portability. Please see our patching |
9595 | guidelines (<a class="xref" href="#components.patches.guidelines" title="13.3.4. Patching guidelines">Section 13.3.4, “Patching guidelines”</a>) for more | | 9595 | guidelines (<a class="xref" href="#components.patches.guidelines" title="13.3.4. Patching guidelines">Section 13.3.4, “Patching guidelines”</a>) for more |
9596 | details.</p> | | 9596 | details.</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">“<span class="quote">yes</span>”</span>. All these variables may be | | 9690 | effectively mean <span class="quote">“<span class="quote">yes</span>”</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">“<span class="quote">know</span>”</span> | | 9719 | <code class="varname">DISTFILES</code>, the packages <span class="quote">“<span class="quote">know</span>”</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"> |
9723 | DISTFILES= ${DISTNAME}${EXTRACT_SUFX} additional-files.tar.gz | | 9723 | DISTFILES= ${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">“<span class="quote"><code class="literal">c</code></span>”</span>) is so short that it | | 9728 | value (<span class="quote">“<span class="quote"><code class="literal">c</code></span>”</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"> |
9758 | CONFIGURE_ARGS= # none | | 9758 | CONFIGURE_ARGS= # none |
9759 | CFLAGS= -O | | 9759 | CFLAGS= -O |
9760 | CONFIGURE_ARGS+= CFLAGS=${CFLAGS:Q} | | 9760 | CONFIGURE_ARGS+= CFLAGS=${CFLAGS:Q} |
9761 | | | 9761 | |
9762 | CONFIGURE_ARGS:= ${CONFIGURE_ARGS} | | 9762 | CONFIGURE_ARGS:= ${CONFIGURE_ARGS} |
9763 | | | 9763 | |
9764 | CFLAGS+= -Wall | | 9764 | CFLAGS+= -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—after | | 9806 | procedures. They take some input parameters and—after |
9807 | inclusion—provide a result in output parameters. Since all | | 9807 | inclusion—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">“<span class="quote">set -e</span>”</span> mode, they don't stop at the | | 9963 | are called in <span class="quote">“<span class="quote">set -e</span>”</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"> |
9981 | do_test() { | | 9981 | do_test() { |
9982 | echo "Example output" | | 9982 | echo "Example output" |
9983 | } 1>$TEST_OUTFILE 2>&1 | | 9983 | } 1>$TEST_OUTFILE 2>&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"> |
9993 | check_result() { | | 9993 | check_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"> |
10024 | output_require "looks fine" | | 10024 | output_require "looks fine" |
10025 | output_require "^[[:alpha:]+[[:space:]][[:alpha:]]{6}$" | | 10025 | output_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 | |
10115 | DISTNAME= bison-1.25 | | 10115 | DISTNAME= bison-1.25 |
10116 | CATEGORIES= devel | | 10116 | CATEGORIES= devel |
10117 | MASTER_SITES= ${MASTER_SITE_GNU} | | 10117 | MASTER_SITES= ${MASTER_SITE_GNU:=bison/} |
10118 | | | 10118 | |
10119 | MAINTAINER= pkgsrc-users@NetBSD.org | | 10119 | MAINTAINER= pkgsrc-users@NetBSD.org |
10120 | HOMEPAGE= http://www.gnu.org/software/bison/bison.html | | 10120 | HOMEPAGE= http://www.gnu.org/software/bison/bison.html |
10121 | COMMENT= GNU yacc clone | | 10121 | COMMENT= GNU yacc clone |
10122 | | | 10122 | |
10123 | GNU_CONFIGURE= yes | | 10123 | GNU_CONFIGURE= yes |
10124 | INFO_FILES= yes | | 10124 | INFO_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"> |
10133 | GNU version of yacc. Can make re-entrant parsers, and numerous other | | 10133 | GNU version of yacc. Can make re-entrant parsers, and numerous other |
10134 | improvements. 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 | | 10134 | improvements. 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 |
10135 | of the NetBSD source tree is beyond me. | | 10135 | of 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$ |
10143 | bin/bison | | 10143 | bin/bison |
10144 | man/man1/bison.1.gz | | 10144 | man/man1/bison.1.gz |
10145 | share/bison.simple | | 10145 | share/bison.simple |
10146 | share/bison.hairy | | 10146 | share/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> |
10160 | looks fine.</pre> | | 10160 | ERROR: Makefile: Each package must define its LICENSE. |
| | | 10161 | WARN: Makefile:9: HOMEPAGE should migrate from http to https. |
| | | 10162 | NOTE: PLIST:3: The .gz extension is unnecessary for manual pages. |
| | | 10163 | WARN: PLIST:5: "share/bison.hairy" should be sorted before "share/bison.simple". |
| | | 10164 | 1 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 | >> bison-1.25.tar.gz doesn't seem to exist on this system. | | 10186 | >> bison-1.25.tar.gz doesn't seem to exist on this system. |
10180 | >> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//. | | 10187 | >> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//. |
10181 | Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) | | 10188 | Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) |
10182 | ftp: Error retrieving file: 500 Internal error | | 10189 | ftp: Error retrieving file: 500 Internal error |
10183 | | | 10190 | |
10184 | >> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//. | | 10191 | >> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//. |
10185 | Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) | | 10192 | Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) |
10186 | ftp: Error retrieving file: 500 Internal error | | 10193 | ftp: Error retrieving file: 500 Internal error |
10187 | | | 10194 | |
10188 | >> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//. | | 10195 | >> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//. |
10189 | Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) | | 10196 | Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) |
10190 | Successfully retrieved file.</pre> | | 10197 | Successfully 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 | >> Checksum OK for bison-1.25.tar.gz. | | 10203 | >> Checksum OK for bison-1.25.tar.gz. |
10197 | ===> Extracting for bison-1.25 | | 10204 | ===> Extracting for bison-1.25 |
10198 | ===> Patching for bison-1.25 | | 10205 | ===> Patching for bison-1.25 |
10199 | ===> Ignoring empty patch directory | | 10206 | ===> Ignoring empty patch directory |
10200 | ===> Configuring for bison-1.25 | | 10207 | ===> Configuring for bison-1.25 |
10201 | creating cache ./config.cache | | 10208 | creating cache ./config.cache |
10202 | checking for gcc... cc | | 10209 | checking for gcc... cc |
10203 | checking whether we are using GNU C... yes | | 10210 | checking whether we are using GNU C... yes |
10204 | checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin | | 10211 | checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin |
10205 | checking how to run the C preprocessor... cc -E | | 10212 | checking how to run the C preprocessor... cc -E |
10206 | checking for minix/config.h... no | | 10213 | checking for minix/config.h... no |
10207 | checking for POSIXized ISC... no | | 10214 | checking for POSIXized ISC... no |
10208 | checking whether cross-compiling... no | | 10215 | checking whether cross-compiling... no |
10209 | checking for ANSI C header files... yes | | 10216 | checking for ANSI C header files... yes |
10210 | checking for string.h... yes | | 10217 | checking for string.h... yes |
10211 | checking for stdlib.h... yes | | 10218 | checking for stdlib.h... yes |
10212 | checking for memory.h... yes | | 10219 | checking for memory.h... yes |
10213 | checking for working const... yes | | 10220 | checking for working const... yes |
10214 | checking for working alloca.h... no | | 10221 | checking for working alloca.h... no |
10215 | checking for alloca... yes | | 10222 | checking for alloca... yes |
10216 | checking for strerror... yes | | 10223 | checking for strerror... yes |
10217 | updating cache ./config.cache | | 10224 | updating cache ./config.cache |
10218 | creating ./config.status | | 10225 | creating ./config.status |
10219 | creating Makefile | | 10226 | creating Makefile |
10220 | ===> Building for bison-1.25 | | 10227 | ===> Building for bison-1.25 |
10221 | cc -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 | | 10228 | cc -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 |
10222 | cc -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 | | 10229 | cc -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 |
10223 | cc -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 | | 10230 | cc -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 |
10224 | cc -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 | | 10231 | cc -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 |
10225 | cc -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 | | 10232 | cc -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 |
10226 | cc -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 | | 10233 | cc -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 |
10227 | cc -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 | | 10234 | cc -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 |
10228 | cc -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 | | 10235 | cc -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 |
10229 | cc -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 | | 10236 | cc -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 |
10230 | cc -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 | | 10237 | cc -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 |
10231 | cc -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 | | 10238 | cc -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 |
10232 | cc -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 | | 10239 | cc -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 |
10233 | cc -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 | | 10240 | cc -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 |
10234 | cc -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 | | 10241 | cc -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 |
10235 | cc -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 | | 10242 | cc -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 |
10236 | cc -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 | | 10243 | cc -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 |
10237 | cc -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 | | 10244 | cc -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 |
10238 | cc -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 | | 10245 | cc -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 |
10239 | cc -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 | | 10246 | cc -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 |
10240 | cc -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 | | 10247 | cc -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 |
10241 | cc -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 | | 10248 | cc -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 |
10242 | cc -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 | | 10249 | cc -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() |
10244 | rm -f bison.s1 | | 10251 | rm -f bison.s1 |
10245 | sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > bison.s1</pre> | | 10252 | sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > 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 | >> Checksum OK for bison-1.25.tar.gz. | | 10255 | >> Checksum OK for bison-1.25.tar.gz. |
10249 | ===> Installing for bison-1.25 | | 10256 | ===> Installing for bison-1.25 |
10250 | sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1 | | 10257 | sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1 |
10251 | rm -f /usr/pkg/bin/bison | | 10258 | rm -f /usr/pkg/bin/bison |
10252 | cd /usr/pkg/share; rm -f bison.simple bison.hairy | | 10259 | cd /usr/pkg/share; rm -f bison.simple bison.hairy |
10253 | rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info* | | 10260 | rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info* |
10254 | install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison | | 10261 | install -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 |
10257 | cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done | | 10264 | cd .; 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 | ===> Registering installation for bison-1.25</pre> | | 10266 | ===> 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 | >> Checksum OK for bison-1.25.tar.gz. | | 10271 | >> Checksum OK for bison-1.25.tar.gz. |
10265 | ===> Building package for bison-1.25 | | 10272 | ===> Building package for bison-1.25 |
10266 | Creating package bison-1.25.tgz | | 10273 | Creating package bison-1.25.tgz |
10267 | Registering depends:. | | 10274 | Registering depends:. |
10268 | Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'</pre> | | 10275 | Creating 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 | ===> Cleaning for bison-1.25</pre> | | 10279 | ===> 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 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 | | 10296 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 |
10290 | => figlet221.tar.gz doesn't seem to exist on this system. | | 10297 | => figlet221.tar.gz doesn't seem to exist on this system. |
10291 | => Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/. | | 10298 | => Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/. |
10292 | => [172219 bytes] | | 10299 | => [172219 bytes] |
10293 | Connected to ftp.plig.net. | | 10300 | Connected to ftp.plig.net. |
10294 | 220 ftp.plig.org NcFTPd Server (licensed copy) ready. | | 10301 | 220 ftp.plig.org NcFTPd Server (licensed copy) ready. |
10295 | 331 Guest login ok, send your complete e-mail address as password. | | 10302 | 331 Guest login ok, send your complete e-mail address as password. |
10296 | 230-You are user #5 of 500 simultaneous users allowed. | | 10303 | 230-You are user #5 of 500 simultaneous users allowed. |
10297 | 230- | | 10304 | 230- |
10298 | 230- ___ _ _ _ | | 10305 | 230- ___ _ _ _ |
10299 | 230- | _| |_ ___ ___| |_|___ ___ ___ ___ | | 10306 | 230- | _| |_ ___ ___| |_|___ ___ ___ ___ |
10300 | 230- | _| _| . |_| . | | | . |_| . | _| . | | | 10307 | 230- | _| _| . |_| . | | | . |_| . | _| . | |
10301 | 230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ | | | 10308 | 230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ | |
10302 | 230- |_| |_| |___| |___| | | 10309 | 230- |_| |_| |___| |___| |
10303 | 230- | | 10310 | 230- |
10304 | 230-** Welcome to ftp.plig.org ** | | 10311 | 230-** Welcome to ftp.plig.org ** |
10305 | 230- | | 10312 | 230- |
10306 | 230-Please note that all transfers from this FTP site are logged. If you | | 10313 | 230-Please note that all transfers from this FTP site are logged. If you |
10307 | 230-do not like this, please disconnect now. | | 10314 | 230-do not like this, please disconnect now. |
10308 | 230- | | 10315 | 230- |
10309 | 230-This archive is available via | | 10316 | 230-This archive is available via |
10310 | 230- | | 10317 | 230- |
10311 | 230-HTTP: http://ftp.plig.org/ | | 10318 | 230-HTTP: http://ftp.plig.org/ |
10312 | 230-FTP: ftp://ftp.plig.org/ (max 500 connections) | | 10319 | 230-FTP: ftp://ftp.plig.org/ (max 500 connections) |
10313 | 230-RSYNC: rsync://ftp.plig.org/ (max 30 connections) | | 10320 | 230-RSYNC: rsync://ftp.plig.org/ (max 30 connections) |
10314 | 230- | | 10321 | 230- |
10315 | 230-Please email comments, bug reports and requests for packages to be | | 10322 | 230-Please email comments, bug reports and requests for packages to be |
10316 | 230-mirrored to ftp-admin@plig.org. | | 10323 | 230-mirrored to ftp-admin@plig.org. |
10317 | 230- | | 10324 | 230- |
10318 | 230- | | 10325 | 230- |
10319 | 230 Logged in anonymously. | | 10326 | 230 Logged in anonymously. |
10320 | Remote system type is UNIX. | | 10327 | Remote system type is UNIX. |
10321 | Using binary mode to transfer files. | | 10328 | Using binary mode to transfer files. |
10322 | 200 Type okay. | | 10329 | 200 Type okay. |
10323 | 250 "/pub" is new cwd. | | 10330 | 250 "/pub" is new cwd. |
10324 | 250-"/pub/figlet" is new cwd. | | 10331 | 250-"/pub/figlet" is new cwd. |
10325 | 250- | | 10332 | 250- |
10326 | 250-Welcome to the figlet archive at ftp.figlet.org | | 10333 | 250-Welcome to the figlet archive at ftp.figlet.org |
10327 | 250- | | 10334 | 250- |
10328 | 250- ftp://ftp.figlet.org/pub/figlet/ | | 10335 | 250- ftp://ftp.figlet.org/pub/figlet/ |
10329 | 250- | | 10336 | 250- |
10330 | 250-The official FIGlet web page is: | | 10337 | 250-The official FIGlet web page is: |
10331 | 250- http://www.figlet.org/ | | 10338 | 250- http://www.figlet.org/ |
10332 | 250- | | 10339 | 250- |
10333 | 250-If you have questions, please mailto:info@figlet.org. If you want to | | 10340 | 250-If you have questions, please mailto:info@figlet.org. If you want to |
10334 | 250-contribute a font or something else, you can email us. | | 10341 | 250-contribute a font or something else, you can email us. |
10335 | 250 | | 10342 | 250 |
10336 | 250 "/pub/figlet/program" is new cwd. | | 10343 | 250 "/pub/figlet/program" is new cwd. |
10337 | 250 "/pub/figlet/program/unix" is new cwd. | | 10344 | 250 "/pub/figlet/program/unix" is new cwd. |
10338 | local: figlet221.tar.gz remote: figlet221.tar.gz | | 10345 | local: figlet221.tar.gz remote: figlet221.tar.gz |
10339 | 502 Unimplemented command. | | 10346 | 502 Unimplemented command. |
10340 | 227 Entering Passive Mode (195,40,6,41,246,104) | | 10347 | 227 Entering Passive Mode (195,40,6,41,246,104) |
10341 | 150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes). | | 10348 | 150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes). |
10342 | 38% |************** | 65800 64.16 KB/s 00:01 ETA | | 10349 | 38% |************** | 65800 64.16 KB/s 00:01 ETA |
10343 | 226 Transfer completed. | | 10350 | 226 Transfer completed. |
10344 | 172219 bytes received in 00:02 (75.99 KB/s) | | 10351 | 172219 bytes received in 00:02 (75.99 KB/s) |
10345 | 221 Goodbye. | | 10352 | 221 Goodbye. |
10346 | => Checksum OK for figlet221.tar.gz. | | 10353 | => Checksum OK for figlet221.tar.gz. |
10347 | ===> Extracting for figlet-2.2.1nb2 | | 10354 | ===> Extracting for figlet-2.2.1nb2 |
10348 | ===> Required installed package ccache-[0-9]*: ccache-2.3nb1 found | | 10355 | ===> Required installed package ccache-[0-9]*: ccache-2.3nb1 found |
10349 | ===> Patching for figlet-2.2.1nb2 | | 10356 | ===> Patching for figlet-2.2.1nb2 |
10350 | ===> Applying pkgsrc patches for figlet-2.2.1nb2 | | 10357 | ===> Applying pkgsrc patches for figlet-2.2.1nb2 |
10351 | ===> Overriding tools for figlet-2.2.1nb2 | | 10358 | ===> Overriding tools for figlet-2.2.1nb2 |
10352 | ===> Creating toolchain wrappers for figlet-2.2.1nb2 | | 10359 | ===> Creating toolchain wrappers for figlet-2.2.1nb2 |
10353 | ===> Configuring for figlet-2.2.1nb2 | | 10360 | ===> Configuring for figlet-2.2.1nb2 |
10354 | ===> Building for figlet-2.2.1nb2 | | 10361 | ===> Building for figlet-2.2.1nb2 |
10355 | gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet | | 10362 | gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet |
10356 | chmod a+x figlet | | 10363 | chmod a+x figlet |
10357 | gcc -O2 -o chkfont chkfont.c | | 10364 | gcc -O2 -o chkfont chkfont.c |
10358 | => Unwrapping files-to-be-installed. | | 10365 | => 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 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 | | 10368 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 |
10362 | ===> Installing for figlet-2.2.1nb2 | | 10369 | ===> Installing for figlet-2.2.1nb2 |
10363 | install -d -o root -g wheel -m 755 /usr/pkg/bin | | 10370 | install -d -o root -g wheel -m 755 /usr/pkg/bin |
10364 | install -d -o root -g wheel -m 755 /usr/pkg/man/man6 | | 10371 | install -d -o root -g wheel -m 755 /usr/pkg/man/man6 |
10365 | mkdir -p /usr/pkg/share/figlet | | 10372 | mkdir -p /usr/pkg/share/figlet |
10366 | cp figlet /usr/pkg/bin | | 10373 | cp figlet /usr/pkg/bin |
10367 | cp chkfont /usr/pkg/bin | | 10374 | cp chkfont /usr/pkg/bin |
10368 | chmod 555 figlist showfigfonts | | 10375 | chmod 555 figlist showfigfonts |
10369 | cp figlist /usr/pkg/bin | | 10376 | cp figlist /usr/pkg/bin |
10370 | cp showfigfonts /usr/pkg/bin | | 10377 | cp showfigfonts /usr/pkg/bin |
10371 | cp fonts/*.flf /usr/pkg/share/figlet | | 10378 | cp fonts/*.flf /usr/pkg/share/figlet |
10372 | cp fonts/*.flc /usr/pkg/share/figlet | | 10379 | cp fonts/*.flc /usr/pkg/share/figlet |
10373 | cp figlet.6 /usr/pkg/man/man6 | | 10380 | cp figlet.6 /usr/pkg/man/man6 |
10374 | ===> Registering installation for figlet-2.2.1nb2 | | 10381 | ===> 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 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 | | 10388 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 |
10382 | ===> Packaging figlet-2.2.1nb2 | | 10389 | ===> Packaging figlet-2.2.1nb2 |
10383 | ===> Building binary package for figlet-2.2.1nb2 | | 10390 | ===> Building binary package for figlet-2.2.1nb2 |
10384 | Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz | | 10391 | Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz |
10385 | Using SrcDir value of /usr/pkg | | 10392 | Using SrcDir value of /usr/pkg |
10386 | Registering depends:. | | 10393 | Registering 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>: |
10403 | source packages</a></span></dt> | | 10410 | source 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, “<code class="filename">packages</code>: Binary packages”</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, “<code class="filename">packages</code>: Binary packages”</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>: |
10486 | source packages</h2></div></div></div> | | 10493 | source packages</h2></div></div></div> |
10487 | <p>These directories contain the <span class="quote">“<span class="quote">real</span>”</span> pkgsrc, | | 10494 | <p>These directories contain the <span class="quote">“<span class="quote">real</span>”</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> |