| @@ -3299,2047 +3299,2051 @@ anymore, you can remove that file and ru | | | @@ -3299,2047 +3299,2051 @@ anymore, you can remove that file and ru |
3299 | <dt><span class="sect2"><a href="#modified-distfiles-same-name">21.2.2. How to handle modified distfiles with the 'old' name</a></span></dt> | | 3299 | <dt><span class="sect2"><a href="#modified-distfiles-same-name">21.2.2. How to handle modified distfiles with the 'old' name</a></span></dt> |
3300 | <dt><span class="sect2"><a href="#build.fetch.github">21.2.3. Packages hosted on github.com</a></span></dt> | | 3300 | <dt><span class="sect2"><a href="#build.fetch.github">21.2.3. Packages hosted on github.com</a></span></dt> |
3301 | </dl></dd> | | 3301 | </dl></dd> |
3302 | <dt><span class="sect1"><a href="#fixes.configure">21.3. The <span class="emphasis"><em>configure</em></span> phase</a></span></dt> | | 3302 | <dt><span class="sect1"><a href="#fixes.configure">21.3. The <span class="emphasis"><em>configure</em></span> phase</a></span></dt> |
3303 | <dd><dl> | | 3303 | <dd><dl> |
3304 | <dt><span class="sect2"><a href="#fixes.libtool">21.3.1. Shared libraries - libtool</a></span></dt> | | 3304 | <dt><span class="sect2"><a href="#fixes.libtool">21.3.1. Shared libraries - libtool</a></span></dt> |
3305 | <dt><span class="sect2"><a href="#using-libtool">21.3.2. Using libtool on GNU packages that already support libtool</a></span></dt> | | 3305 | <dt><span class="sect2"><a href="#using-libtool">21.3.2. Using libtool on GNU packages that already support libtool</a></span></dt> |
3306 | <dt><span class="sect2"><a href="#autoconf-automake">21.3.3. GNU Autoconf/Automake</a></span></dt> | | 3306 | <dt><span class="sect2"><a href="#autoconf-automake">21.3.3. GNU Autoconf/Automake</a></span></dt> |
3307 | <dt><span class="sect2"><a href="#meson">21.3.4. Meson / ninja</a></span></dt> | | 3307 | <dt><span class="sect2"><a href="#meson">21.3.4. Meson / ninja</a></span></dt> |
3308 | </dl></dd> | | 3308 | </dl></dd> |
3309 | <dt><span class="sect1"><a href="#programming-languages">21.4. Programming languages</a></span></dt> | | 3309 | <dt><span class="sect1"><a href="#programming-languages">21.4. Programming languages</a></span></dt> |
3310 | <dd><dl> | | 3310 | <dd><dl> |
3311 | <dt><span class="sect2"><a href="#basic-programming-languages">21.4.1. C, C++, and Fortran</a></span></dt> | | 3311 | <dt><span class="sect2"><a href="#basic-programming-languages">21.4.1. C, C++, and Fortran</a></span></dt> |
3312 | <dt><span class="sect2"><a href="#java-programming-language">21.4.2. Java</a></span></dt> | | 3312 | <dt><span class="sect2"><a href="#java-programming-language">21.4.2. Java</a></span></dt> |
3313 | <dt><span class="sect2"><a href="#go-programming-language">21.4.3. Go</a></span></dt> | | 3313 | <dt><span class="sect2"><a href="#go-programming-language">21.4.3. Go</a></span></dt> |
3314 | <dt><span class="sect2"><a href="#rust-programming-language">21.4.4. Rust</a></span></dt> | | 3314 | <dt><span class="sect2"><a href="#rust-programming-language">21.4.4. Rust</a></span></dt> |
3315 | <dt><span class="sect2"><a href="#perl-scripts">21.4.5. Packages containing Perl scripts</a></span></dt> | | 3315 | <dt><span class="sect2"><a href="#perl-scripts">21.4.5. Packages containing Perl scripts</a></span></dt> |
3316 | <dt><span class="sect2"><a href="#shell-scripts">21.4.6. Packages containing shell scripts</a></span></dt> | | 3316 | <dt><span class="sect2"><a href="#shell-scripts">21.4.6. Packages containing shell scripts</a></span></dt> |
3317 | <dt><span class="sect2"><a href="#other-programming-languages">21.4.7. Other programming languages</a></span></dt> | | 3317 | <dt><span class="sect2"><a href="#other-programming-languages">21.4.7. Other programming languages</a></span></dt> |
3318 | </dl></dd> | | 3318 | </dl></dd> |
3319 | <dt><span class="sect1"><a href="#fixes.build">21.5. The <span class="emphasis"><em>build</em></span> phase</a></span></dt> | | 3319 | <dt><span class="sect1"><a href="#fixes.build">21.5. The <span class="emphasis"><em>build</em></span> phase</a></span></dt> |
3320 | <dd><dl> | | 3320 | <dd><dl> |
3321 | <dt><span class="sect2"><a href="#fixes.build.cpp">21.5.1. Compiling C and C++ code conditionally</a></span></dt> | | 3321 | <dt><span class="sect2"><a href="#fixes.build.cpp">21.5.1. Compiling C and C++ code conditionally</a></span></dt> |
3322 | <dt><span class="sect2"><a href="#compiler-bugs">21.5.2. How to handle compiler bugs</a></span></dt> | | 3322 | <dt><span class="sect2"><a href="#compiler-bugs">21.5.2. How to handle compiler bugs</a></span></dt> |
3323 | <dt><span class="sect2"><a href="#fixes.build.header">21.5.3. No such file or directory</a></span></dt> | | 3323 | <dt><span class="sect2"><a href="#fixes.build.header">21.5.3. No such file or directory</a></span></dt> |
3324 | <dt><span class="sect2"><a href="#undefined-reference">21.5.4. Undefined reference to <span class="quote">“<span class="quote">...</span>”</span></a></span></dt> | | 3324 | <dt><span class="sect2"><a href="#undefined-reference">21.5.4. Undefined reference to <span class="quote">“<span class="quote">...</span>”</span></a></span></dt> |
3325 | <dt><span class="sect2"><a href="#out-of-memory">21.5.5. Running out of memory</a></span></dt> | | 3325 | <dt><span class="sect2"><a href="#out-of-memory">21.5.5. Running out of memory</a></span></dt> |
3326 | </dl></dd> | | 3326 | </dl></dd> |
3327 | <dt><span class="sect1"><a href="#fixes.install">21.6. The <span class="emphasis"><em>install</em></span> phase</a></span></dt> | | 3327 | <dt><span class="sect1"><a href="#fixes.install">21.6. The <span class="emphasis"><em>install</em></span> phase</a></span></dt> |
3328 | <dd><dl> | | 3328 | <dd><dl> |
3329 | <dt><span class="sect2"><a href="#install-scripts">21.6.1. Creating needed directories</a></span></dt> | | 3329 | <dt><span class="sect2"><a href="#install-scripts">21.6.1. Creating needed directories</a></span></dt> |
3330 | <dt><span class="sect2"><a href="#where-to-install-documentation">21.6.2. Where to install documentation</a></span></dt> | | 3330 | <dt><span class="sect2"><a href="#where-to-install-documentation">21.6.2. Where to install documentation</a></span></dt> |
3331 | <dt><span class="sect2"><a href="#installing-score-files">21.6.3. Installing highscore files</a></span></dt> | | 3331 | <dt><span class="sect2"><a href="#installing-score-files">21.6.3. Installing highscore files</a></span></dt> |
3332 | <dt><span class="sect2"><a href="#destdir-support">21.6.4. Adding DESTDIR support to packages</a></span></dt> | | 3332 | <dt><span class="sect2"><a href="#destdir-support">21.6.4. Adding DESTDIR support to packages</a></span></dt> |
3333 | <dt><span class="sect2"><a href="#hardcoded-paths">21.6.5. Packages with hardcoded paths to other interpreters</a></span></dt> | | 3333 | <dt><span class="sect2"><a href="#hardcoded-paths">21.6.5. Packages with hardcoded paths to other interpreters</a></span></dt> |
3334 | <dt><span class="sect2"><a href="#perl-modules">21.6.6. Packages installing Perl modules</a></span></dt> | | 3334 | <dt><span class="sect2"><a href="#perl-modules">21.6.6. Packages installing Perl modules</a></span></dt> |
3335 | <dt><span class="sect2"><a href="#faq.info-files">21.6.7. Packages installing info files</a></span></dt> | | 3335 | <dt><span class="sect2"><a href="#faq.info-files">21.6.7. Packages installing info files</a></span></dt> |
3336 | <dt><span class="sect2"><a href="#manpages">21.6.8. Packages installing man pages</a></span></dt> | | 3336 | <dt><span class="sect2"><a href="#manpages">21.6.8. Packages installing man pages</a></span></dt> |
3337 | <dt><span class="sect2"><a href="#x11-fonts">21.6.9. Packages installing X11 fonts</a></span></dt> | | 3337 | <dt><span class="sect2"><a href="#x11-fonts">21.6.9. Packages installing X11 fonts</a></span></dt> |
3338 | <dt><span class="sect2"><a href="#sgml-xml-data">21.6.10. Packages installing SGML or XML data</a></span></dt> | | 3338 | <dt><span class="sect2"><a href="#sgml-xml-data">21.6.10. Packages installing SGML or XML data</a></span></dt> |
3339 | <dt><span class="sect2"><a href="#mime-database">21.6.11. Packages installing extensions to the MIME database</a></span></dt> | | 3339 | <dt><span class="sect2"><a href="#mime-database">21.6.11. Packages installing extensions to the MIME database</a></span></dt> |
3340 | <dt><span class="sect2"><a href="#intltool">21.6.12. Packages using intltool</a></span></dt> | | 3340 | <dt><span class="sect2"><a href="#intltool">21.6.12. Packages using intltool</a></span></dt> |
3341 | <dt><span class="sect2"><a href="#startup-scripts">21.6.13. Packages installing startup scripts</a></span></dt> | | 3341 | <dt><span class="sect2"><a href="#startup-scripts">21.6.13. Packages installing startup scripts</a></span></dt> |
3342 | <dt><span class="sect2"><a href="#tex-packages">21.6.14. Packages installing TeX modules</a></span></dt> | | 3342 | <dt><span class="sect2"><a href="#tex-packages">21.6.14. Packages installing TeX modules</a></span></dt> |
3343 | <dt><span class="sect2"><a href="#emulation-packages">21.6.15. Packages supporting running binaries in | | 3343 | <dt><span class="sect2"><a href="#emulation-packages">21.6.15. Packages supporting running binaries in |
3344 | emulation</a></span></dt> | | 3344 | emulation</a></span></dt> |
3345 | <dt><span class="sect2"><a href="#hicolor-theme">21.6.16. Packages installing hicolor icons</a></span></dt> | | 3345 | <dt><span class="sect2"><a href="#hicolor-theme">21.6.16. Packages installing hicolor icons</a></span></dt> |
3346 | <dt><span class="sect2"><a href="#desktop-files">21.6.17. Packages installing desktop files</a></span></dt> | | 3346 | <dt><span class="sect2"><a href="#desktop-files">21.6.17. Packages installing desktop files</a></span></dt> |
3347 | </dl></dd> | | 3347 | </dl></dd> |
3348 | <dt><span class="sect1"><a href="#punting">21.7. Marking packages as having problems</a></span></dt> | | 3348 | <dt><span class="sect1"><a href="#punting">21.7. Marking packages as having problems</a></span></dt> |
3349 | </dl></dd> | | 3349 | </dl></dd> |
3350 | <dt><span class="chapter"><a href="#gnome">22. GNOME packaging and porting</a></span></dt> | | 3350 | <dt><span class="chapter"><a href="#gnome">22. GNOME packaging and porting</a></span></dt> |
3351 | <dd><dl> | | 3351 | <dd><dl> |
3352 | <dt><span class="sect1"><a href="#meta-packages">22.1. Meta packages</a></span></dt> | | 3352 | <dt><span class="sect1"><a href="#meta-packages">22.1. Meta packages</a></span></dt> |
3353 | <dt><span class="sect1"><a href="#new-package">22.2. Packaging a GNOME application</a></span></dt> | | 3353 | <dt><span class="sect1"><a href="#new-package">22.2. Packaging a GNOME application</a></span></dt> |
3354 | <dt><span class="sect1"><a href="#full-update">22.3. Updating GNOME to a newer version</a></span></dt> | | 3354 | <dt><span class="sect1"><a href="#full-update">22.3. Updating GNOME to a newer version</a></span></dt> |
3355 | <dt><span class="sect1"><a href="#patching">22.4. Patching guidelines</a></span></dt> | | 3355 | <dt><span class="sect1"><a href="#patching">22.4. Patching guidelines</a></span></dt> |
3356 | </dl></dd> | | 3356 | </dl></dd> |
3357 | <dt><span class="chapter"><a href="#submit">23. Submitting and Committing</a></span></dt> | | 3357 | <dt><span class="chapter"><a href="#submit">23. Submitting and Committing</a></span></dt> |
3358 | <dd><dl> | | 3358 | <dd><dl> |
3359 | <dt><span class="sect1"><a href="#submitting-binary-packages">23.1. Submitting binary packages</a></span></dt> | | 3359 | <dt><span class="sect1"><a href="#submitting-binary-packages">23.1. Submitting binary packages</a></span></dt> |
3360 | <dt><span class="sect1"><a href="#submitting-your-package">23.2. Submitting source packages (for non-NetBSD-developers)</a></span></dt> | | 3360 | <dt><span class="sect1"><a href="#submitting-your-package">23.2. Submitting source packages (for non-NetBSD-developers)</a></span></dt> |
3361 | <dt><span class="sect1"><a href="#general-notes-for-changes">23.3. General notes when adding, updating, or removing packages</a></span></dt> | | 3361 | <dt><span class="sect1"><a href="#general-notes-for-changes">23.3. General notes when adding, updating, or removing packages</a></span></dt> |
3362 | <dt><span class="sect1"><a href="#commit-messages">23.4. Commit Messages</a></span></dt> | | 3362 | <dt><span class="sect1"><a href="#commit-messages">23.4. Commit Messages</a></span></dt> |
3363 | <dt><span class="sect1"><a href="#committing-importing">23.5. Committing: Adding a package to CVS</a></span></dt> | | 3363 | <dt><span class="sect1"><a href="#committing-importing">23.5. Committing: Adding a package to CVS</a></span></dt> |
3364 | <dt><span class="sect1"><a href="#updating-package">23.6. Updating a package to a newer version</a></span></dt> | | 3364 | <dt><span class="sect1"><a href="#updating-package">23.6. Updating a package to a newer version</a></span></dt> |
3365 | <dt><span class="sect1"><a href="#renaming-package">23.7. Renaming a package in pkgsrc</a></span></dt> | | 3365 | <dt><span class="sect1"><a href="#renaming-package">23.7. Renaming a package in pkgsrc</a></span></dt> |
3366 | <dt><span class="sect1"><a href="#moving-package">23.8. Moving a package in pkgsrc</a></span></dt> | | 3366 | <dt><span class="sect1"><a href="#moving-package">23.8. Moving a package in pkgsrc</a></span></dt> |
3367 | </dl></dd> | | 3367 | </dl></dd> |
3368 | <dt><span class="chapter"><a href="#devfaq">24. Frequently Asked Questions</a></span></dt> | | 3368 | <dt><span class="chapter"><a href="#devfaq">24. Frequently Asked Questions</a></span></dt> |
3369 | </dl> | | 3369 | </dl> |
3370 | </div> | | 3370 | </div> |
3371 | </div> | | 3371 | </div> |
3372 | <div class="chapter"> | | 3372 | <div class="chapter"> |
3373 | <div class="titlepage"><div><div><h2 class="title"> | | 3373 | <div class="titlepage"><div><div><h2 class="title"> |
3374 | <a name="help-devel"></a>Chapter 11. Getting help</h2></div></div></div> | | 3374 | <a name="help-devel"></a>Chapter 11. Getting help</h2></div></div></div> |
3375 | <p> | | 3375 | <p> |
3376 | To get help when developing pkgsrc, the definitive source is this | | 3376 | To get help when developing pkgsrc, the definitive source is this |
3377 | document, the pkgsrc guide. If you don't find anything here, | | 3377 | document, the pkgsrc guide. If you don't find anything here, |
3378 | there are alternatives: | | 3378 | there are alternatives: |
3379 | </p> | | 3379 | </p> |
3380 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3380 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3381 | <li class="listitem"> | | 3381 | <li class="listitem"> |
3382 | <p> | | 3382 | <p> |
3383 | The built-in pkgsrc help, which is available after bootstrapping | | 3383 | The built-in pkgsrc help, which is available after bootstrapping |
3384 | pkgsrc. Run <span class="command"><strong>bmake help topic=…</strong></span> to get | | 3384 | pkgsrc. Run <span class="command"><strong>bmake help topic=…</strong></span> to get |
3385 | help for any topic, such as a variable name like | | 3385 | help for any topic, such as a variable name like |
3386 | <code class="varname">BUILD_DEFS</code>, a make target like | | 3386 | <code class="varname">BUILD_DEFS</code>, a make target like |
3387 | <span class="command"><strong>do-build</strong></span>, a missing C or C++ function like | | 3387 | <span class="command"><strong>do-build</strong></span>, a missing C or C++ function like |
3388 | <span class="command"><strong>strcasecmp</strong></span> or any other topic.</p> | | 3388 | <span class="command"><strong>strcasecmp</strong></span> or any other topic.</p> |
3389 | <p>The available help topics are listed in <a class="xref" href="#help-topics" title="Appendix E. Help topics">Appendix E, <i>Help topics</i></a>.</p> | | 3389 | <p>The available help topics are listed in <a class="xref" href="#help-topics" title="Appendix E. Help topics">Appendix E, <i>Help topics</i></a>.</p> |
3390 | </li> | | 3390 | </li> |
3391 | <li class="listitem"><p> | | 3391 | <li class="listitem"><p> |
3392 | To see the value of a single variable, run <span class="command"><strong>bmake | | 3392 | To see the value of a single variable, run <span class="command"><strong>bmake |
3393 | show-var VARNAME=<em class="replaceable"><code>X</code></em></strong></span>. | | 3393 | show-var VARNAME=<em class="replaceable"><code>X</code></em></strong></span>. |
3394 | </p></li> | | 3394 | </p></li> |
3395 | <li class="listitem"><p> | | 3395 | <li class="listitem"><p> |
3396 | To see the values of the most common variables, run | | 3396 | To see the values of the most common variables, run |
3397 | <span class="command"><strong>bmake show-all</strong></span>. These variables are grouped by | | 3397 | <span class="command"><strong>bmake show-all</strong></span>. These variables are grouped by |
3398 | topic. To see the variables for a single topic, run | | 3398 | topic. To see the variables for a single topic, run |
3399 | <span class="command"><strong>bmake | | 3399 | <span class="command"><strong>bmake |
3400 | show-all-<em class="replaceable"><code>topic</code></em></strong></span>, for example | | 3400 | show-all-<em class="replaceable"><code>topic</code></em></strong></span>, for example |
3401 | <span class="command"><strong>bmake show-all-fetch</strong></span>. | | 3401 | <span class="command"><strong>bmake show-all-fetch</strong></span>. |
3402 | </p></li> | | 3402 | </p></li> |
3403 | <li class="listitem"><p> | | 3403 | <li class="listitem"><p> |
3404 | The tech-pkg mailing list, to which | | 3404 | The tech-pkg mailing list, to which |
3405 | <a class="ulink" href="https://www.NetBSD.org/mailinglists/#tech-pkg" target="_top">you | | 3405 | <a class="ulink" href="https://www.NetBSD.org/mailinglists/#tech-pkg" target="_top">you |
3406 | can subscribe</a> and then <a class="ulink" href="mailto:tech-pkg@NetBSD.org" target="_top">ask your | | 3406 | can subscribe</a> and then <a class="ulink" href="mailto:tech-pkg@NetBSD.org" target="_top">ask your |
3407 | questions</a>.</p></li> | | 3407 | questions</a>.</p></li> |
3408 | <li class="listitem"><p>The #pkgsrc IRC channel, which is accessible | | 3408 | <li class="listitem"><p>The #pkgsrc IRC channel, which is accessible |
3409 | <a class="ulink" href="https://webchat.freenode.net/" target="_top">via a web browser</a> | | 3409 | <a class="ulink" href="https://webchat.freenode.net/" target="_top">via a web browser</a> |
3410 | or by using a specialized chat program such as | | 3410 | or by using a specialized chat program such as |
3411 | <a class="ulink" href="http://xchat.org/" target="_top">XChat</a>. | | 3411 | <a class="ulink" href="http://xchat.org/" target="_top">XChat</a>. |
3412 | Pick any user name and join the channel #pkgsrc.</p></li> | | 3412 | Pick any user name and join the channel #pkgsrc.</p></li> |
3413 | </ul></div> | | 3413 | </ul></div> |
3414 | </div> | | 3414 | </div> |
3415 | <div class="chapter"> | | 3415 | <div class="chapter"> |
3416 | <div class="titlepage"><div><div><h2 class="title"> | | 3416 | <div class="titlepage"><div><div><h2 class="title"> |
3417 | <a name="components"></a>Chapter 12. Package components - files, directories and contents</h2></div></div></div> | | 3417 | <a name="components"></a>Chapter 12. Package components - files, directories and contents</h2></div></div></div> |
3418 | <div class="toc"> | | 3418 | <div class="toc"> |
3419 | <p><b>Table of Contents</b></p> | | 3419 | <p><b>Table of Contents</b></p> |
3420 | <dl class="toc"> | | 3420 | <dl class="toc"> |
3421 | <dt><span class="sect1"><a href="#components.Makefile">12.1. <code class="filename">Makefile</code></a></span></dt> | | 3421 | <dt><span class="sect1"><a href="#components.Makefile">12.1. <code class="filename">Makefile</code></a></span></dt> |
3422 | <dt><span class="sect1"><a href="#components.distinfo">12.2. <code class="filename">distinfo</code></a></span></dt> | | 3422 | <dt><span class="sect1"><a href="#components.distinfo">12.2. <code class="filename">distinfo</code></a></span></dt> |
3423 | <dt><span class="sect1"><a href="#components.patches">12.3. <code class="filename">patches/*</code></a></span></dt> | | 3423 | <dt><span class="sect1"><a href="#components.patches">12.3. <code class="filename">patches/*</code></a></span></dt> |
3424 | <dd><dl> | | 3424 | <dd><dl> |
3425 | <dt><span class="sect2"><a href="#components.patch.structure">12.3.1. Structure of a single patch file</a></span></dt> | | 3425 | <dt><span class="sect2"><a href="#components.patch.structure">12.3.1. Structure of a single patch file</a></span></dt> |
3426 | <dt><span class="sect2"><a href="#components.patches.caveats">12.3.2. Creating patch files</a></span></dt> | | 3426 | <dt><span class="sect2"><a href="#components.patches.caveats">12.3.2. Creating patch files</a></span></dt> |
3427 | <dt><span class="sect2"><a href="#components.patches.sources">12.3.3. Sources where the patch files come from</a></span></dt> | | 3427 | <dt><span class="sect2"><a href="#components.patches.sources">12.3.3. Sources where the patch files come from</a></span></dt> |
3428 | <dt><span class="sect2"><a href="#components.patches.guidelines">12.3.4. Patching guidelines</a></span></dt> | | 3428 | <dt><span class="sect2"><a href="#components.patches.guidelines">12.3.4. Patching guidelines</a></span></dt> |
3429 | <dt><span class="sect2"><a href="#components.patches.feedback">12.3.5. Feedback to the author</a></span></dt> | | 3429 | <dt><span class="sect2"><a href="#components.patches.feedback">12.3.5. Feedback to the author</a></span></dt> |
3430 | </dl></dd> | | 3430 | </dl></dd> |
3431 | <dt><span class="sect1"><a href="#other-mandatory-files">12.4. Other mandatory files</a></span></dt> | | 3431 | <dt><span class="sect1"><a href="#other-mandatory-files">12.4. Other mandatory files</a></span></dt> |
3432 | <dt><span class="sect1"><a href="#components.optional">12.5. Optional files</a></span></dt> | | 3432 | <dt><span class="sect1"><a href="#components.optional">12.5. Optional files</a></span></dt> |
3433 | <dd><dl> | | 3433 | <dd><dl> |
3434 | <dt><span class="sect2"><a href="#components.optional.bin">12.5.1. Files affecting the binary package</a></span></dt> | | 3434 | <dt><span class="sect2"><a href="#components.optional.bin">12.5.1. Files affecting the binary package</a></span></dt> |
3435 | <dt><span class="sect2"><a href="#components.optional.build">12.5.2. Files affecting the build process</a></span></dt> | | 3435 | <dt><span class="sect2"><a href="#components.optional.build">12.5.2. Files affecting the build process</a></span></dt> |
3436 | <dt><span class="sect2"><a href="#components.optional.none">12.5.3. Files affecting nothing at all</a></span></dt> | | 3436 | <dt><span class="sect2"><a href="#components.optional.none">12.5.3. Files affecting nothing at all</a></span></dt> |
3437 | </dl></dd> | | 3437 | </dl></dd> |
3438 | <dt><span class="sect1"><a href="#work-dir">12.6. <code class="filename">work*</code></a></span></dt> | | 3438 | <dt><span class="sect1"><a href="#work-dir">12.6. <code class="filename">work*</code></a></span></dt> |
3439 | <dt><span class="sect1"><a href="#files-dir">12.7. <code class="filename">files/*</code></a></span></dt> | | 3439 | <dt><span class="sect1"><a href="#files-dir">12.7. <code class="filename">files/*</code></a></span></dt> |
3440 | </dl> | | 3440 | </dl> |
3441 | </div> | | 3441 | </div> |
3442 | <p>Whenever you're preparing a package, there are a number of | | 3442 | <p>Whenever you're preparing a package, there are a number of |
3443 | files involved which are described in the following | | 3443 | files involved which are described in the following |
3444 | sections.</p> | | 3444 | sections.</p> |
3445 | <div class="sect1"> | | 3445 | <div class="sect1"> |
3446 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 3446 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
3447 | <a name="components.Makefile"></a>12.1. <code class="filename">Makefile</code> | | 3447 | <a name="components.Makefile"></a>12.1. <code class="filename">Makefile</code> |
3448 | </h2></div></div></div> | | 3448 | </h2></div></div></div> |
3449 | <p>Building, installation and creation of a binary package are all | | 3449 | <p>Building, installation and creation of a binary package are all |
3450 | controlled by the package's <code class="filename">Makefile</code>. | | 3450 | controlled by the package's <code class="filename">Makefile</code>. |
3451 | The <code class="filename">Makefile</code> describes various things about | | 3451 | The <code class="filename">Makefile</code> describes various things about |
3452 | a package, for example from where to get it, how to configure, | | 3452 | a package, for example from where to get it, how to configure, |
3453 | build, and install it.</p> | | 3453 | build, and install it.</p> |
3454 | <p>A package <code class="filename">Makefile</code> contains several | | 3454 | <p>A package <code class="filename">Makefile</code> contains several |
3455 | sections that describe the package.</p> | | 3455 | sections that describe the package.</p> |
3456 | <p>In the first section there are the following variables, which | | 3456 | <p>In the first section there are the following variables, which |
3457 | should appear exactly in the order given here. The order and | | 3457 | should appear exactly in the order given here. The order and |
3458 | grouping of the variables is mostly historical and has no further | | 3458 | grouping of the variables is mostly historical and has no further |
3459 | meaning.</p> | | 3459 | meaning.</p> |
3460 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3460 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3461 | <li class="listitem"><p><code class="varname">DISTNAME</code> is the basename of the | | 3461 | <li class="listitem"><p><code class="varname">DISTNAME</code> is the basename of the |
3462 | distribution file to be downloaded from the package's | | 3462 | distribution file to be downloaded from the package's |
3463 | website.</p></li> | | 3463 | website.</p></li> |
3464 | <li class="listitem"><p><code class="varname">PKGNAME</code> is the name of the | | 3464 | <li class="listitem"><p><code class="varname">PKGNAME</code> is the name of the |
3465 | package, as used by pkgsrc. You need to provide it if | | 3465 | package, as used by pkgsrc. You need to provide it if |
3466 | <code class="varname">DISTNAME</code> (which is the default) is not a good | | 3466 | <code class="varname">DISTNAME</code> (which is the default) is not a good |
3467 | name for the package in pkgsrc or <code class="varname">DISTNAME</code> is not | | 3467 | name for the package in pkgsrc or <code class="varname">DISTNAME</code> is not |
3468 | provided (no distribution file is required). Usually it is the pkgsrc | | 3468 | provided (no distribution file is required). Usually it is the pkgsrc |
3469 | directory name together with the version number. It must match the | | 3469 | directory name together with the version number. It must match the |
3470 | regular expression | | 3470 | regular expression |
3471 | <code class="varname">^[A-Za-z0-9][A-Za-z0-9-_.+]*$</code>, that is, it | | 3471 | <code class="varname">^[A-Za-z0-9][A-Za-z0-9-_.+]*$</code>, that is, it |
3472 | starts with a letter or digit, and contains only letters, digits, | | 3472 | starts with a letter or digit, and contains only letters, digits, |
3473 | dashes, underscores, dots and plus signs. | | 3473 | dashes, underscores, dots and plus signs. |
3474 | New packages should have entirely lower-case names, with the exception | | 3474 | New packages should have entirely lower-case names, with the exception |
3475 | of some that must follow pre-existing conventions | | 3475 | of some that must follow pre-existing conventions |
3476 | (e.g. R packages begin with <code class="varname">R-</code>). | | 3476 | (e.g. R packages begin with <code class="varname">R-</code>). |
3477 | You can use the <code class="code">:tl</code> variable modifier to lower-case | | 3477 | You can use the <code class="code">:tl</code> variable modifier to lower-case |
3478 | the package name.</p></li> | | 3478 | the package name.</p></li> |
3479 | <li class="listitem"> | | 3479 | <li class="listitem"> |
3480 | <p><code class="varname">CATEGORIES</code> is a list of categories | | 3480 | <p><code class="varname">CATEGORIES</code> is a list of categories |
3481 | which the package fits in. You can choose any of the top-level | | 3481 | which the package fits in. You can choose any of the top-level |
3482 | directories of pkgsrc for it.</p> | | 3482 | directories of pkgsrc for it.</p> |
3483 | <p>Currently the following values are available for | | 3483 | <p>Currently the following values are available for |
3484 | <code class="varname">CATEGORIES</code>. If more than | | 3484 | <code class="varname">CATEGORIES</code>. If more than |
3485 | one is used, they need to be separated by spaces:</p> | | 3485 | one is used, they need to be separated by spaces:</p> |
3486 | <pre class="programlisting"> | | 3486 | <pre class="programlisting"> |
3487 | archivers cross geography meta-pkgs security | | 3487 | archivers cross geography meta-pkgs security |
3488 | audio databases graphics misc shells | | 3488 | audio databases graphics misc shells |
3489 | benchmarks devel ham multimedia sysutils | | 3489 | benchmarks devel ham multimedia sysutils |
3490 | biology editors inputmethod net textproc | | 3490 | biology editors inputmethod net textproc |
3491 | cad emulators lang news time | | 3491 | cad emulators lang news time |
3492 | chat finance mail parallel wm | | 3492 | chat finance mail parallel wm |
3493 | comms fonts math pkgtools www | | 3493 | comms fonts math pkgtools www |
3494 | converters games mbone print x11 | | 3494 | converters games mbone print x11 |
3495 | </pre> | | 3495 | </pre> |
3496 | </li> | | 3496 | </li> |
3497 | <li class="listitem"><p><code class="varname">MASTER_SITES</code>, | | 3497 | <li class="listitem"><p><code class="varname">MASTER_SITES</code>, |
3498 | <code class="varname">DYNAMIC_MASTER_SITES</code>, | | 3498 | <code class="varname">DYNAMIC_MASTER_SITES</code>, |
3499 | <code class="varname">DIST_SUBDIR</code>, <code class="varname">EXTRACT_SUFX</code> | | 3499 | <code class="varname">DIST_SUBDIR</code>, <code class="varname">EXTRACT_SUFX</code> |
3500 | and <code class="varname">DISTFILES</code> are discussed in detail in | | 3500 | and <code class="varname">DISTFILES</code> are discussed in detail in |
3501 | <a class="xref" href="#build.fetch" title="13.5. The fetch phase">Section 13.5, “The <span class="emphasis"><em>fetch</em></span> phase”</a>.</p></li> | | 3501 | <a class="xref" href="#build.fetch" title="13.5. The fetch phase">Section 13.5, “The <span class="emphasis"><em>fetch</em></span> phase”</a>.</p></li> |
3502 | </ul></div> | | 3502 | </ul></div> |
3503 | <p>The second section contains information about separately | | 3503 | <p>The second section contains information about separately |
3504 | downloaded patches, if any. | | 3504 | downloaded patches, if any. |
3505 | </p> | | 3505 | </p> |
3506 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3506 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3507 | <li class="listitem"><p><code class="varname">PATCHFILES</code>: | | 3507 | <li class="listitem"><p><code class="varname">PATCHFILES</code>: |
3508 | Name(s) of additional files that contain distribution patches. | | 3508 | Name(s) of additional files that contain distribution patches. |
3509 | There is no default. pkgsrc will look for them at | | 3509 | There is no default. pkgsrc will look for them at |
3510 | <code class="varname">PATCH_SITES</code>. | | 3510 | <code class="varname">PATCH_SITES</code>. |
3511 | They will automatically be uncompressed before patching if | | 3511 | They will automatically be uncompressed before patching if |
3512 | the names end with <code class="filename">.gz</code> or | | 3512 | the names end with <code class="filename">.gz</code> or |
3513 | <code class="filename">.Z</code>.</p></li> | | 3513 | <code class="filename">.Z</code>.</p></li> |
3514 | <li class="listitem"><p><code class="varname">PATCH_SITES</code>: | | 3514 | <li class="listitem"><p><code class="varname">PATCH_SITES</code>: |
3515 | Primary location(s) for distribution patch files (see | | 3515 | Primary location(s) for distribution patch files (see |
3516 | <code class="varname">PATCHFILES</code> above) if not found locally.</p></li> | | 3516 | <code class="varname">PATCHFILES</code> above) if not found locally.</p></li> |
3517 | <li class="listitem"><p><code class="varname">PATCH_DIST_STRIP</code>: | | 3517 | <li class="listitem"><p><code class="varname">PATCH_DIST_STRIP</code>: |
3518 | an argument to <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/patch.1"><span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span></a> that sets the pathname strip count to | | 3518 | an argument to <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/patch.1"><span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span></a> that sets the pathname strip count to |
3519 | help find the correct files to patch. It defaults to | | 3519 | help find the correct files to patch. It defaults to |
3520 | <span class="command"><strong>-p0</strong></span>.</p></li> | | 3520 | <span class="command"><strong>-p0</strong></span>.</p></li> |
3521 | </ul></div> | | 3521 | </ul></div> |
3522 | <p>The third section contains the following variables. | | 3522 | <p>The third section contains the following variables. |
3523 | </p> | | 3523 | </p> |
3524 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3524 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3525 | <li class="listitem"><p><code class="varname">MAINTAINER</code> is the email | | 3525 | <li class="listitem"><p><code class="varname">MAINTAINER</code> is the email |
3526 | address of the person who feels responsible for this package, | | 3526 | address of the person who feels responsible for this package, |
3527 | and who is most likely to look at problems or questions regarding | | 3527 | and who is most likely to look at problems or questions regarding |
3528 | this package which have been reported with <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/send-pr.1"><span class="citerefentry"><span class="refentrytitle">send-pr</span>(1)</span></a>. | | 3528 | this package which have been reported with <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/send-pr.1"><span class="citerefentry"><span class="refentrytitle">send-pr</span>(1)</span></a>. |
3529 | Other developers may contact the <code class="varname">MAINTAINER</code> | | 3529 | Other developers may contact the <code class="varname">MAINTAINER</code> |
3530 | before making changes to the package, but are not required to | | 3530 | before making changes to the package, but are not required to |
3531 | do so. When packaging a new program, set <code class="varname">MAINTAINER</code> | | 3531 | do so. When packaging a new program, set <code class="varname">MAINTAINER</code> |
3532 | to yourself. If you really can't maintain the package for future | | 3532 | to yourself. If you really can't maintain the package for future |
3533 | updates, set it to | | 3533 | updates, set it to |
3534 | <code class="email"><<a class="email" href="mailto:pkgsrc-users@NetBSD.org">pkgsrc-users@NetBSD.org</a>></code>.</p></li> | | 3534 | <code class="email"><<a class="email" href="mailto:pkgsrc-users@NetBSD.org">pkgsrc-users@NetBSD.org</a>></code>.</p></li> |
3535 | <li class="listitem"><p><code class="varname">OWNER</code> should be used instead | | 3535 | <li class="listitem"><p><code class="varname">OWNER</code> should be used instead |
3536 | of <code class="varname">MAINTAINER</code> when you do not want other | | 3536 | of <code class="varname">MAINTAINER</code> when you do not want other |
3537 | developers to update or change the package without contacting | | 3537 | developers to update or change the package without contacting |
3538 | you first. A package Makefile should contain one of | | 3538 | you first. A package Makefile should contain one of |
3539 | <code class="varname">MAINTAINER</code> or <code class="varname">OWNER</code>, but | | 3539 | <code class="varname">MAINTAINER</code> or <code class="varname">OWNER</code>, but |
3540 | not both. </p></li> | | 3540 | not both. </p></li> |
3541 | <li class="listitem"><p><code class="varname">HOMEPAGE</code> is a URL where users can | | 3541 | <li class="listitem"><p><code class="varname">HOMEPAGE</code> is a URL where users can |
3542 | find more information about the package.</p></li> | | 3542 | find more information about the package.</p></li> |
3543 | <li class="listitem"><p><code class="varname">COMMENT</code> is a one-line | | 3543 | <li class="listitem"><p><code class="varname">COMMENT</code> is a one-line |
3544 | description of the package (should not include the package | | 3544 | description of the package (should not include the package |
3545 | name).</p></li> | | 3545 | name).</p></li> |
3546 | <li class="listitem"><p><code class="varname">LICENSE</code> indicates the license(s) | | 3546 | <li class="listitem"><p><code class="varname">LICENSE</code> indicates the license(s) |
3547 | applicable for the package. See <a class="xref" href="#handling-licenses" title="21.1.3. Handling licenses">Section 21.1.3, “Handling licenses”</a> for further details.</p></li> | | 3547 | applicable for the package. See <a class="xref" href="#handling-licenses" title="21.1.3. Handling licenses">Section 21.1.3, “Handling licenses”</a> for further details.</p></li> |
3548 | </ul></div> | | 3548 | </ul></div> |
3549 | <p>Other variables that affect the build: | | 3549 | <p>Other variables that affect the build: |
3550 | </p> | | 3550 | </p> |
3551 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> | | 3551 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> |
3552 | <p><code class="varname">WRKSRC</code>: The directory where the | | 3552 | <p><code class="varname">WRKSRC</code>: The directory where the |
3553 | interesting distribution files of the package are found. The | | 3553 | interesting distribution files of the package are found. The |
3554 | default is <code class="filename">${WRKDIR}/${DISTNAME}</code>, which | | 3554 | default is <code class="filename">${WRKDIR}/${DISTNAME}</code>, which |
3555 | works for most packages.</p> | | 3555 | works for most packages.</p> |
3556 | <p>If a package doesn't create a subdirectory for itself | | 3556 | <p>If a package doesn't create a subdirectory for itself |
3557 | (most GNU software does, for instance), but extracts itself in | | 3557 | (most GNU software does, for instance), but extracts itself in |
3558 | the current directory, you should set | | 3558 | the current directory, you should set |
3559 | <code class="varname">WRKSRC=${WRKDIR}</code>.</p> | | 3559 | <code class="varname">WRKSRC=${WRKDIR}</code>.</p> |
3560 | <p>If a package doesn't create a subdirectory with the | | 3560 | <p>If a package doesn't create a subdirectory with the |
3561 | name of <code class="varname">DISTNAME</code> but some different name, | | 3561 | name of <code class="varname">DISTNAME</code> but some different name, |
3562 | set <code class="varname">WRKSRC</code> to point to the proper name in | | 3562 | set <code class="varname">WRKSRC</code> to point to the proper name in |
3563 | <code class="filename">${WRKDIR}</code>, for example | | 3563 | <code class="filename">${WRKDIR}</code>, for example |
3564 | <code class="varname">WRKSRC=${WRKDIR}/${DISTNAME}/unix</code>. See | | 3564 | <code class="varname">WRKSRC=${WRKDIR}/${DISTNAME}/unix</code>. See |
3565 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/lang/tcl/index.html" target="_top"><code class="filename">lang/tcl</code></a> and <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/x11/tk/index.html" target="_top"><code class="filename">x11/tk</code></a> for other examples.</p> | | 3565 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/lang/tcl/index.html" target="_top"><code class="filename">lang/tcl</code></a> and <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/x11/tk/index.html" target="_top"><code class="filename">x11/tk</code></a> for other examples.</p> |
3566 | <p>The name of the working directory created by pkgsrc is | | 3566 | <p>The name of the working directory created by pkgsrc is |
3567 | taken from the <code class="varname">WRKDIR_BASENAME</code> | | 3567 | taken from the <code class="varname">WRKDIR_BASENAME</code> |
3568 | variable. By default, its value is | | 3568 | variable. By default, its value is |
3569 | <code class="filename">work</code>. If you want to use the same | | 3569 | <code class="filename">work</code>. If you want to use the same |
3570 | pkgsrc tree for building different kinds of binary packages, | | 3570 | pkgsrc tree for building different kinds of binary packages, |
3571 | you can change the variable according to your needs. Two | | 3571 | you can change the variable according to your needs. Two |
3572 | other variables handle common cases of setting | | 3572 | other variables handle common cases of setting |
3573 | <code class="varname">WRKDIR_BASENAME</code> individually. If | | 3573 | <code class="varname">WRKDIR_BASENAME</code> individually. If |
3574 | <code class="varname">OBJHOSTNAME</code> is defined in | | 3574 | <code class="varname">OBJHOSTNAME</code> is defined in |
3575 | <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>, the first component of | | 3575 | <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>, the first component of |
3576 | the host's name is attached to the directory name. If | | 3576 | the host's name is attached to the directory name. If |
3577 | <code class="varname">OBJMACHINE</code> is defined, the platform name | | 3577 | <code class="varname">OBJMACHINE</code> is defined, the platform name |
3578 | is attached, which might look like | | 3578 | is attached, which might look like |
3579 | <code class="filename">work.i386</code> or | | 3579 | <code class="filename">work.i386</code> or |
3580 | <code class="filename">work.sparc</code>.</p> | | 3580 | <code class="filename">work.sparc</code>.</p> |
3581 | </li></ul></div> | | 3581 | </li></ul></div> |
3582 | <p>Please pay attention to the following gotchas:</p> | | 3582 | <p>Please pay attention to the following gotchas:</p> |
3583 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3583 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3584 | <li class="listitem"><p>Add <code class="varname">MANCOMPRESSED</code> if man pages are | | 3584 | <li class="listitem"><p>Add <code class="varname">MANCOMPRESSED</code> if man pages are |
3585 | installed in compressed form by the package. For packages using | | 3585 | installed in compressed form by the package. For packages using |
3586 | BSD-style makefiles which honor MANZ, there is | | 3586 | BSD-style makefiles which honor MANZ, there is |
3587 | <code class="varname">MANCOMPRESSED_IF_MANZ</code>.</p></li> | | 3587 | <code class="varname">MANCOMPRESSED_IF_MANZ</code>.</p></li> |
3588 | <li class="listitem"><p>Replace <code class="filename">/usr/local</code> with | | 3588 | <li class="listitem"><p>Replace <code class="filename">/usr/local</code> with |
3589 | <span class="quote">“<span class="quote">${PREFIX}</span>”</span> in all files (see patches, | | 3589 | <span class="quote">“<span class="quote">${PREFIX}</span>”</span> in all files (see patches, |
3590 | below).</p></li> | | 3590 | below).</p></li> |
3591 | <li class="listitem"><p>If the package installs any info files, see <a class="xref" href="#faq.info-files" title="21.6.7. Packages installing info files">Section 21.6.7, “Packages installing info files”</a>.</p></li> | | 3591 | <li class="listitem"><p>If the package installs any info files, see <a class="xref" href="#faq.info-files" title="21.6.7. Packages installing info files">Section 21.6.7, “Packages installing info files”</a>.</p></li> |
3592 | </ul></div> | | 3592 | </ul></div> |
3593 | </div> | | 3593 | </div> |
3594 | <div class="sect1"> | | 3594 | <div class="sect1"> |
3595 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 3595 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
3596 | <a name="components.distinfo"></a>12.2. <code class="filename">distinfo</code> | | 3596 | <a name="components.distinfo"></a>12.2. <code class="filename">distinfo</code> |
3597 | </h2></div></div></div> | | 3597 | </h2></div></div></div> |
3598 | <p>The <code class="filename">distinfo</code> file contains the message | | 3598 | <p>The <code class="filename">distinfo</code> file contains the message |
3599 | digest, or checksum, of each distfile needed for the package. This | | 3599 | digest, or checksum, of each distfile needed for the package. This |
3600 | ensures that the distfiles retrieved from the Internet have not been | | 3600 | ensures that the distfiles retrieved from the Internet have not been |
3601 | corrupted during transfer or altered by a malign force to introduce | | 3601 | corrupted during transfer or altered by a malign force to introduce |
3602 | a security hole. To provide maximum security, all distfiles are | | 3602 | a security hole. To provide maximum security, all distfiles are |
3603 | protected using three different message digest algorithms (SHA1, | | 3603 | protected using three different message digest algorithms (SHA1, |
3604 | RMD160, SHA512), as well as the file size.</p> | | 3604 | RMD160, SHA512), as well as the file size.</p> |
3605 | <p>The <code class="filename">distinfo</code> file also contains the | | 3605 | <p>The <code class="filename">distinfo</code> file also contains the |
3606 | checksums for all the patches found in the | | 3606 | checksums for all the patches found in the |
3607 | <code class="filename">patches</code> directory (see <a class="xref" href="#components.patches" title="12.3. patches/*">Section 12.3, “<code class="filename">patches/*</code>”</a>). These checksums ensure that patches | | 3607 | <code class="filename">patches</code> directory (see <a class="xref" href="#components.patches" title="12.3. patches/*">Section 12.3, “<code class="filename">patches/*</code>”</a>). These checksums ensure that patches |
3608 | are only applied intentionally and that they don't accidentally change, | | 3608 | are only applied intentionally and that they don't accidentally change, |
3609 | e.g. when merging different changes together. They also make sure that | | 3609 | e.g. when merging different changes together. They also make sure that |
3610 | new patches are actually added to CVS and old ones are removed. | | 3610 | new patches are actually added to CVS and old ones are removed. |
3611 | Too see whether the patches and the <code class="filename">distinfo</code> file | | 3611 | Too see whether the patches and the <code class="filename">distinfo</code> file |
3612 | match, run <span class="command"><strong>pkglint</strong></span> after changing the patches.</p> | | 3612 | match, run <span class="command"><strong>pkglint</strong></span> after changing the patches.</p> |
3613 | <p>To regenerate the <code class="filename">distinfo</code> file, use the | | 3613 | <p>To regenerate the <code class="filename">distinfo</code> file, use the |
3614 | <span class="command"><strong>make distinfo</strong></span> command.</p> | | 3614 | <span class="command"><strong>make distinfo</strong></span> command.</p> |
3615 | <p>Some packages have different sets of distfiles depending on | | 3615 | <p>Some packages have different sets of distfiles depending on |
3616 | the platform, for example <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/lang/openjdk8/index.html" target="_top"><code class="filename">lang/openjdk8</code></a>. These are kept in the same | | 3616 | the platform, for example <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/lang/openjdk8/index.html" target="_top"><code class="filename">lang/openjdk8</code></a>. These are kept in the same |
3617 | <code class="filename">distinfo</code> file and care should be taken when | | 3617 | <code class="filename">distinfo</code> file and care should be taken when |
3618 | upgrading such a package to ensure distfile information is not | | 3618 | upgrading such a package to ensure distfile information is not |
3619 | lost.</p> | | 3619 | lost.</p> |
3620 | </div> | | 3620 | </div> |
3621 | <div class="sect1"> | | 3621 | <div class="sect1"> |
3622 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 3622 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
3623 | <a name="components.patches"></a>12.3. <code class="filename">patches/*</code> | | 3623 | <a name="components.patches"></a>12.3. <code class="filename">patches/*</code> |
3624 | </h2></div></div></div> | | 3624 | </h2></div></div></div> |
3625 | <p>Some packages don't work out-of-the box on the various | | 3625 | <p>Some packages don't work out-of-the box on the various |
3626 | platforms that are supported by pkgsrc. These packages need | | 3626 | platforms that are supported by pkgsrc. These packages need |
3627 | to be patched to make them work. The patch files can be | | 3627 | to be patched to make them work. The patch files can be |
3628 | found in the <code class="filename">patches/</code> directory.</p> | | 3628 | found in the <code class="filename">patches/</code> directory.</p> |
3629 | <p>In the <span class="emphasis"><em>patch</em></span> phase, these patches are | | 3629 | <p>In the <span class="emphasis"><em>patch</em></span> phase, these patches are |
3630 | applied to the files in <code class="varname">WRKSRC</code> directory after | | 3630 | applied to the files in <code class="varname">WRKSRC</code> directory after |
3631 | extracting them, in alphabetic order.</p> | | 3631 | extracting them, in alphabetic order.</p> |
3632 | <div class="sect2"> | | 3632 | <div class="sect2"> |
3633 | <div class="titlepage"><div><div><h3 class="title"> | | 3633 | <div class="titlepage"><div><div><h3 class="title"> |
3634 | <a name="components.patch.structure"></a>12.3.1. Structure of a single patch file</h3></div></div></div> | | 3634 | <a name="components.patch.structure"></a>12.3.1. Structure of a single patch file</h3></div></div></div> |
3635 | <p>The <code class="filename">patch-*</code> files should be in | | 3635 | <p>The <code class="filename">patch-*</code> files should be in |
3636 | <span class="command"><strong>diff -bu</strong></span> format, and apply without a fuzz to avoid | | 3636 | <span class="command"><strong>diff -bu</strong></span> format, and apply without a fuzz to avoid |
3637 | problems. (To force patches to apply with fuzz you can set | | 3637 | problems. (To force patches to apply with fuzz you can set |
3638 | <code class="varname">PATCH_FUZZ_FACTOR=-F2</code>). Furthermore, each patch | | 3638 | <code class="varname">PATCH_FUZZ_FACTOR=-F2</code>). Furthermore, each patch |
3639 | should contain only changes for a single file, and no file should be | | 3639 | should contain only changes for a single file, and no file should be |
3640 | patched by more than one patch file. This helps to keep future | | 3640 | patched by more than one patch file. This helps to keep future |
3641 | modifications simple.</p> | | 3641 | modifications simple.</p> |
3642 | <p>Each patch file is structured as follows: In the first line, | | 3642 | <p>Each patch file is structured as follows: In the first line, |
3643 | there is the RCS Id of the patch itself. The second line should be | | 3643 | there is the RCS Id of the patch itself. The second line should be |
3644 | empty for aesthetic reasons. After that, there should be a comment for | | 3644 | empty for aesthetic reasons. After that, there should be a comment for |
3645 | each change that the patch does. There are a number of standard | | 3645 | each change that the patch does. There are a number of standard |
3646 | cases:</p> | | 3646 | cases:</p> |
3647 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3647 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3648 | <li class="listitem"><p>Patches for commonly known vulnerabilities should | | 3648 | <li class="listitem"><p>Patches for commonly known vulnerabilities should |
3649 | mention the vulnerability ID (CAN, CVE).</p></li> | | 3649 | mention the vulnerability ID (CAN, CVE).</p></li> |
3650 | <li class="listitem"><p>Patches that change source code should mention the | | 3650 | <li class="listitem"><p>Patches that change source code should mention the |
3651 | platform and other environment (for example, the compiler) that the | | 3651 | platform and other environment (for example, the compiler) that the |
3652 | patch is needed for.</p></li> | | 3652 | patch is needed for.</p></li> |
3653 | </ul></div> | | 3653 | </ul></div> |
3654 | <p>The patch should be commented so that any | | 3654 | <p>The patch should be commented so that any |
3655 | developer who knows the code of the application can make some use of | | 3655 | developer who knows the code of the application can make some use of |
3656 | the patch. Special care should be taken for the upstream developers, | | 3656 | the patch. Special care should be taken for the upstream developers, |
3657 | since we generally want that they accept our patches, so we have less | | 3657 | since we generally want that they accept our patches, so we have less |
3658 | work in the future.</p> | | 3658 | work in the future.</p> |
3659 | </div> | | 3659 | </div> |
3660 | <div class="sect2"> | | 3660 | <div class="sect2"> |
3661 | <div class="titlepage"><div><div><h3 class="title"> | | 3661 | <div class="titlepage"><div><div><h3 class="title"> |
3662 | <a name="components.patches.caveats"></a>12.3.2. Creating patch files</h3></div></div></div> | | 3662 | <a name="components.patches.caveats"></a>12.3.2. Creating patch files</h3></div></div></div> |
3663 | <p>One important thing to mention is to pay attention that no RCS | | 3663 | <p>One important thing to mention is to pay attention that no RCS |
3664 | IDs get stored in the patch files, as these will cause problems when | | 3664 | IDs get stored in the patch files, as these will cause problems when |
3665 | later checked into the NetBSD CVS tree. Use the | | 3665 | later checked into the NetBSD CVS tree. Use the |
3666 | <span class="command"><strong>pkgdiff</strong></span> command from the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/index.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> package to avoid these | | 3666 | <span class="command"><strong>pkgdiff</strong></span> command from the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/index.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> package to avoid these |
3667 | problems.</p> | | 3667 | problems.</p> |
3668 | <p>For even more automation, we recommend using | | 3668 | <p>For even more automation, we recommend using |
3669 | <span class="command"><strong>mkpatches</strong></span> from the same package to make a | | 3669 | <span class="command"><strong>mkpatches</strong></span> from the same package to make a |
3670 | whole set of patches. You just have to back up files before you | | 3670 | whole set of patches. You just have to back up files before you |
3671 | edit them to <code class="filename">filename.orig</code>, e.g., with | | 3671 | edit them to <code class="filename">filename.orig</code>, e.g., with |
3672 | <span class="command"><strong>cp -p filename filename.orig</strong></span> or, easier, by | | 3672 | <span class="command"><strong>cp -p filename filename.orig</strong></span> or, easier, by |
3673 | using <span class="command"><strong>pkgvi</strong></span> again from the same package. If | | 3673 | using <span class="command"><strong>pkgvi</strong></span> again from the same package. If |
3674 | you upgrade a package this way, you can easily compare the new | | 3674 | you upgrade a package this way, you can easily compare the new |
3675 | set of patches with the previously existing one with | | 3675 | set of patches with the previously existing one with |
3676 | <span class="command"><strong>patchdiff</strong></span>. The files in <code class="filename">patches</code> | | 3676 | <span class="command"><strong>patchdiff</strong></span>. The files in <code class="filename">patches</code> |
3677 | are replaced by new files, so carefully check if you want to take all | | 3677 | are replaced by new files, so carefully check if you want to take all |
3678 | the changes.</p> | | 3678 | the changes.</p> |
3679 | <p>When you have finished a package, remember to generate | | 3679 | <p>When you have finished a package, remember to generate |
3680 | the checksums for the patch files by using the <span class="command"><strong>make | | 3680 | the checksums for the patch files by using the <span class="command"><strong>make |
3681 | makepatchsum</strong></span> command, see <a class="xref" href="#components.distinfo" title="12.2. distinfo">Section 12.2, “<code class="filename">distinfo</code>”</a>.</p> | | 3681 | makepatchsum</strong></span> command, see <a class="xref" href="#components.distinfo" title="12.2. distinfo">Section 12.2, “<code class="filename">distinfo</code>”</a>.</p> |
3682 | <p>When adding a patch that corrects a problem in the | | 3682 | <p>When adding a patch that corrects a problem in the |
3683 | distfile (rather than e.g. enforcing pkgsrc's view of where | | 3683 | distfile (rather than e.g. enforcing pkgsrc's view of where |
3684 | man pages should go), send the patch as a bug report to the | | 3684 | man pages should go), send the patch as a bug report to the |
3685 | maintainer. This benefits non-pkgsrc users of the package, | | 3685 | maintainer. This benefits non-pkgsrc users of the package, |
3686 | and usually makes it possible to remove the patch in future | | 3686 | and usually makes it possible to remove the patch in future |
3687 | version.</p> | | 3687 | version.</p> |
3688 | <p>The file names of the patch files are usually of the form | | 3688 | <p>The file names of the patch files are usually of the form |
3689 | <code class="filename">patch-<em class="replaceable"><code>path_to_file__with__underscores.c</code></em></code>. | | 3689 | <code class="filename">patch-<em class="replaceable"><code>path_to_file__with__underscores.c</code></em></code>. |
3690 | Many packages still use the previous convention | | 3690 | Many packages still use the previous convention |
3691 | <code class="filename">patch-<em class="replaceable"><code>[a-z][a-z]</code></em></code>, | | 3691 | <code class="filename">patch-<em class="replaceable"><code>[a-z][a-z]</code></em></code>, |
3692 | but new patches should be of the form containing the filename. | | 3692 | but new patches should be of the form containing the filename. |
3693 | <span class="command"><strong>mkpatches</strong></span> included in <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/index.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> takes care of the name | | 3693 | <span class="command"><strong>mkpatches</strong></span> included in <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/index.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> takes care of the name |
3694 | automatically.</p> | | 3694 | automatically.</p> |
3695 | <p>When updating pre-existing patch files, if a file uses the old | | 3695 | <p>When updating pre-existing patch files, if a file uses the old |
3696 | <code class="filename">patch-<em class="replaceable"><code>[a-z][a-z]</code></em></code> | | 3696 | <code class="filename">patch-<em class="replaceable"><code>[a-z][a-z]</code></em></code> |
3697 | convention, it's best not to change it to the new form, as that will | | 3697 | convention, it's best not to change it to the new form, as that will |
3698 | just cause churn that makes it harder to track changes to patching | | 3698 | just cause churn that makes it harder to track changes to patching |
3699 | over time. Similarly, if a patch now applies at different line offsets, | | 3699 | over time. Similarly, if a patch now applies at different line offsets, |
3700 | but still applies cleanly as-is, there's no need to update it, as that | | 3700 | but still applies cleanly as-is, there's no need to update it, as that |
3701 | also unnecessarily complicates the patch history.</p> | | 3701 | also unnecessarily complicates the patch history.</p> |
3702 | </div> | | 3702 | </div> |
3703 | <div class="sect2"> | | 3703 | <div class="sect2"> |
3704 | <div class="titlepage"><div><div><h3 class="title"> | | 3704 | <div class="titlepage"><div><div><h3 class="title"> |
3705 | <a name="components.patches.sources"></a>12.3.3. Sources where the patch files come from</h3></div></div></div> | | 3705 | <a name="components.patches.sources"></a>12.3.3. Sources where the patch files come from</h3></div></div></div> |
3706 | <p>If you want to share patches between multiple packages | | 3706 | <p>If you want to share patches between multiple packages |
3707 | in pkgsrc, e.g. because they use the same distfiles, set | | 3707 | in pkgsrc, e.g. because they use the same distfiles, set |
3708 | <code class="varname">PATCHDIR</code> to the path where the patch files | | 3708 | <code class="varname">PATCHDIR</code> to the path where the patch files |
3709 | can be found, e.g.:</p> | | 3709 | can be found, e.g.:</p> |
3710 | <pre class="programlisting"> | | 3710 | <pre class="programlisting"> |
3711 | PATCHDIR= ../../editors/xemacs/patches | | 3711 | PATCHDIR= ../../editors/xemacs/patches |
3712 | </pre> | | 3712 | </pre> |
3713 | <p>Patch files that are distributed by the author or other | | 3713 | <p>Patch files that are distributed by the author or other |
3714 | maintainers can be listed in | | 3714 | maintainers can be listed in |
3715 | <code class="varname">PATCHFILES</code>.</p> | | 3715 | <code class="varname">PATCHFILES</code>.</p> |
3716 | <p>If it is desired to store any patches that should not be | | 3716 | <p>If it is desired to store any patches that should not be |
3717 | committed into pkgsrc, they can be kept outside the pkgsrc | | 3717 | committed into pkgsrc, they can be kept outside the pkgsrc |
3718 | tree in the <code class="filename">$LOCALPATCHES</code> directory. The | | 3718 | tree in the <code class="filename">$LOCALPATCHES</code> directory. The |
3719 | directory tree there is expected to have the same | | 3719 | directory tree there is expected to have the same |
3720 | <span class="quote">“<span class="quote">category/package</span>”</span> structure as pkgsrc, and | | 3720 | <span class="quote">“<span class="quote">category/package</span>”</span> structure as pkgsrc, and |
3721 | patches are expected to be stored inside these dirs (also | | 3721 | patches are expected to be stored inside these dirs (also |
3722 | known as <code class="filename">$LOCALPATCHES/$PKGPATH</code>). For | | 3722 | known as <code class="filename">$LOCALPATCHES/$PKGPATH</code>). For |
3723 | example, if you want to keep a private patch for | | 3723 | example, if you want to keep a private patch for |
3724 | <code class="filename">pkgsrc/graphics/png</code>, keep it in | | 3724 | <code class="filename">pkgsrc/graphics/png</code>, keep it in |
3725 | <code class="filename">$LOCALPATCHES/graphics/png/mypatch</code>. All | | 3725 | <code class="filename">$LOCALPATCHES/graphics/png/mypatch</code>. All |
3726 | files in the named directory are expected to be patch files, | | 3726 | files in the named directory are expected to be patch files, |
3727 | and <span class="emphasis"><em>they are applied after pkgsrc patches are | | 3727 | and <span class="emphasis"><em>they are applied after pkgsrc patches are |
3728 | applied</em></span>.</p> | | 3728 | applied</em></span>.</p> |
3729 | </div> | | 3729 | </div> |
3730 | <div class="sect2"> | | 3730 | <div class="sect2"> |
3731 | <div class="titlepage"><div><div><h3 class="title"> | | 3731 | <div class="titlepage"><div><div><h3 class="title"> |
3732 | <a name="components.patches.guidelines"></a>12.3.4. Patching guidelines</h3></div></div></div> | | 3732 | <a name="components.patches.guidelines"></a>12.3.4. Patching guidelines</h3></div></div></div> |
3733 | <p>When fixing a portability issue in the code do not use | | 3733 | <p>When fixing a portability issue in the code do not use |
3734 | preprocessor magic to check for the current operating system nor | | 3734 | preprocessor magic to check for the current operating system nor |
3735 | platform. Doing so hurts portability to other platforms because | | 3735 | platform. Doing so hurts portability to other platforms because |
3736 | the OS-specific details are not abstracted appropriately.</p> | | 3736 | the OS-specific details are not abstracted appropriately.</p> |
3737 | <p>The general rule to follow is: instead of checking for the | | 3737 | <p>The general rule to follow is: instead of checking for the |
3738 | operating system the application is being built on, check for the | | 3738 | operating system the application is being built on, check for the |
3739 | specific <span class="emphasis"><em>features</em></span> you need. For example, | | 3739 | specific <span class="emphasis"><em>features</em></span> you need. For example, |
3740 | instead of assuming that kqueue is available under NetBSD and | | 3740 | instead of assuming that kqueue is available under NetBSD and |
3741 | using the <code class="varname">__NetBSD__</code> macro to conditionalize | | 3741 | using the <code class="varname">__NetBSD__</code> macro to conditionalize |
3742 | kqueue support, add a check that detects kqueue itself — | | 3742 | kqueue support, add a check that detects kqueue itself — |
3743 | yes, this generally involves patching the | | 3743 | yes, this generally involves patching the |
3744 | <span class="command"><strong>configure</strong></span> script. There is absolutely nothing | | 3744 | <span class="command"><strong>configure</strong></span> script. There is absolutely nothing |
3745 | that prevents some OSes from adopting interfaces from other OSes | | 3745 | that prevents some OSes from adopting interfaces from other OSes |
3746 | (e.g. Linux implementing kqueue), something that the above checks | | 3746 | (e.g. Linux implementing kqueue), something that the above checks |
3747 | cannot take into account.</p> | | 3747 | cannot take into account.</p> |
3748 | <p>Of course, checking for features generally involves more | | 3748 | <p>Of course, checking for features generally involves more |
3749 | work on the developer's side, but the resulting changes are | | 3749 | work on the developer's side, but the resulting changes are |
3750 | cleaner and there are chances they will work on many other | | 3750 | cleaner and there are chances they will work on many other |
3751 | platforms. Not to mention that there are higher chances of being | | 3751 | platforms. Not to mention that there are higher chances of being |
3752 | later integrated into the mainstream sources. Remember: | | 3752 | later integrated into the mainstream sources. Remember: |
3753 | <span class="emphasis"><em>It doesn't work unless it is right!</em></span></p> | | 3753 | <span class="emphasis"><em>It doesn't work unless it is right!</em></span></p> |
3754 | <p>Some typical examples:</p> | | 3754 | <p>Some typical examples:</p> |
3755 | <div class="table"> | | 3755 | <div class="table"> |
3756 | <a name="patch-examples"></a><p class="title"><b>Table 12.1. Patching examples</b></p> | | 3756 | <a name="patch-examples"></a><p class="title"><b>Table 12.1. Patching examples</b></p> |
3757 | <div class="table-contents"><table class="table" summary="Patching examples" border="1"> | | 3757 | <div class="table-contents"><table class="table" summary="Patching examples" border="1"> |
3758 | <colgroup> | | 3758 | <colgroup> |
3759 | <col> | | 3759 | <col> |
3760 | <col> | | 3760 | <col> |
3761 | <col> | | 3761 | <col> |
3762 | </colgroup> | | 3762 | </colgroup> |
3763 | <thead><tr> | | 3763 | <thead><tr> |
3764 | <th>Where</th> | | 3764 | <th>Where</th> |
3765 | <th>Incorrect</th> | | 3765 | <th>Incorrect</th> |
3766 | <th>Correct</th> | | 3766 | <th>Correct</th> |
3767 | </tr></thead> | | 3767 | </tr></thead> |
3768 | <tbody> | | 3768 | <tbody> |
3769 | <tr> | | 3769 | <tr> |
3770 | <td>configure script</td> | | 3770 | <td>configure script</td> |
3771 | <td> | | 3771 | <td> |
3772 | <pre class="programlisting"> | | 3772 | <pre class="programlisting"> |
3773 | case ${target_os} in | | 3773 | case ${target_os} in |
3774 | netbsd*) have_kvm=yes ;; | | 3774 | netbsd*) have_kvm=yes ;; |
3775 | *) have_kvm=no ;; | | 3775 | *) have_kvm=no ;; |
3776 | esac | | 3776 | esac |
3777 | </pre> | | 3777 | </pre> |
3778 | </td> | | 3778 | </td> |
3779 | <td> | | 3779 | <td> |
3780 | <pre class="programlisting"> | | 3780 | <pre class="programlisting"> |
3781 | AC_CHECK_LIB(kvm, kvm_open, have_kvm=yes, have_kvm=no) | | 3781 | AC_CHECK_LIB(kvm, kvm_open, have_kvm=yes, have_kvm=no) |
3782 | </pre> | | 3782 | </pre> |
3783 | </td> | | 3783 | </td> |
3784 | </tr> | | 3784 | </tr> |
3785 | <tr> | | 3785 | <tr> |
3786 | <td>C source file</td> | | 3786 | <td>C source file</td> |
3787 | <td> | | 3787 | <td> |
3788 | <pre class="programlisting"> | | 3788 | <pre class="programlisting"> |
3789 | #if defined(__NetBSD__) | | 3789 | #if defined(__NetBSD__) |
3790 | # include <sys/event.h> | | 3790 | # include <sys/event.h> |
3791 | #endif | | 3791 | #endif |
3792 | </pre> | | 3792 | </pre> |
3793 | </td> | | 3793 | </td> |
3794 | <td> | | 3794 | <td> |
3795 | <pre class="programlisting"> | | 3795 | <pre class="programlisting"> |
3796 | #if defined(HAVE_SYS_EVENT_H) | | 3796 | #if defined(HAVE_SYS_EVENT_H) |
3797 | # include <sys/event.h> | | 3797 | # include <sys/event.h> |
3798 | #endif | | 3798 | #endif |
3799 | </pre> | | 3799 | </pre> |
3800 | </td> | | 3800 | </td> |
3801 | </tr> | | 3801 | </tr> |
3802 | <tr> | | 3802 | <tr> |
3803 | <td>C source file</td> | | 3803 | <td>C source file</td> |
3804 | <td> | | 3804 | <td> |
3805 | <pre class="programlisting"> | | 3805 | <pre class="programlisting"> |
3806 | int | | 3806 | int |
3807 | monitor_file(...) | | 3807 | monitor_file(...) |
3808 | { | | 3808 | { |
3809 | #if defined(__NetBSD__) | | 3809 | #if defined(__NetBSD__) |
3810 | int fd = kqueue(); | | 3810 | int fd = kqueue(); |
3811 | ... | | 3811 | ... |
3812 | #else | | 3812 | #else |
3813 | ... | | 3813 | ... |
3814 | #endif | | 3814 | #endif |
3815 | } | | 3815 | } |
3816 | </pre> | | 3816 | </pre> |
3817 | </td> | | 3817 | </td> |
3818 | <td> | | 3818 | <td> |
3819 | <pre class="programlisting"> | | 3819 | <pre class="programlisting"> |
3820 | int | | 3820 | int |
3821 | monitor_file(...) | | 3821 | monitor_file(...) |
3822 | { | | 3822 | { |
3823 | #if defined(HAVE_KQUEUE) | | 3823 | #if defined(HAVE_KQUEUE) |
3824 | int fd = kqueue(); | | 3824 | int fd = kqueue(); |
3825 | ... | | 3825 | ... |
3826 | #else | | 3826 | #else |
3827 | ... | | 3827 | ... |
3828 | #endif | | 3828 | #endif |
3829 | } | | 3829 | } |
3830 | </pre> | | 3830 | </pre> |
3831 | </td> | | 3831 | </td> |
3832 | </tr> | | 3832 | </tr> |
3833 | </tbody> | | 3833 | </tbody> |
3834 | </table></div> | | 3834 | </table></div> |
3835 | </div> | | 3835 | </div> |
3836 | <br class="table-break"> | | 3836 | <br class="table-break"> |
3837 | </div> | | 3837 | </div> |
3838 | <div class="sect2"> | | 3838 | <div class="sect2"> |
3839 | <div class="titlepage"><div><div><h3 class="title"> | | 3839 | <div class="titlepage"><div><div><h3 class="title"> |
3840 | <a name="components.patches.feedback"></a>12.3.5. Feedback to the author</h3></div></div></div> | | 3840 | <a name="components.patches.feedback"></a>12.3.5. Feedback to the author</h3></div></div></div> |
3841 | <p>Always, always, <span class="strong"><strong>always</strong></span> | | 3841 | <p>Always, always, <span class="strong"><strong>always</strong></span> |
3842 | feed back any <span class="emphasis"><em>portability fixes</em></span> or | | 3842 | feed back any <span class="emphasis"><em>portability fixes</em></span> or |
3843 | improvements you do to a package to the mainstream developers. | | 3843 | improvements you do to a package to the mainstream developers. |
3844 | This is the only way to get their attention on portability issues | | 3844 | This is the only way to get their attention on portability issues |
3845 | and to ensure that future versions can be built out-of-the box on | | 3845 | and to ensure that future versions can be built out-of-the box on |
3846 | NetBSD. Furthermore, any user that gets newer distfiles will get | | 3846 | NetBSD. Furthermore, any user that gets newer distfiles will get |
3847 | the fixes straight from the packaged code.</p> | | 3847 | the fixes straight from the packaged code.</p> |
3848 | <p>This generally involves cleaning up the patches | | 3848 | <p>This generally involves cleaning up the patches |
3849 | (because sometimes the patches that are | | 3849 | (because sometimes the patches that are |
3850 | added to pkgsrc are quick hacks), filing bug reports in the | | 3850 | added to pkgsrc are quick hacks), filing bug reports in the |
3851 | appropriate trackers for the projects and working with the | | 3851 | appropriate trackers for the projects and working with the |
3852 | mainstream authors to accept your changes. It is | | 3852 | mainstream authors to accept your changes. It is |
3853 | <span class="emphasis"><em>extremely important</em></span> that you do it so that | | 3853 | <span class="emphasis"><em>extremely important</em></span> that you do it so that |
3854 | the packages in pkgsrc are kept simple and thus further changes | | 3854 | the packages in pkgsrc are kept simple and thus further changes |
3855 | can be done without much hassle.</p> | | 3855 | can be done without much hassle.</p> |
3856 | <p>When you have done this, please add a URL to the upstream | | 3856 | <p>When you have done this, please add a URL to the upstream |
3857 | bug report to the patch comment.</p> | | 3857 | bug report to the patch comment.</p> |
3858 | <p>Support the idea of free software!</p> | | 3858 | <p>Support the idea of free software!</p> |
3859 | </div> | | 3859 | </div> |
3860 | </div> | | 3860 | </div> |
3861 | <div class="sect1"> | | 3861 | <div class="sect1"> |
3862 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 3862 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
3863 | <a name="other-mandatory-files"></a>12.4. Other mandatory files</h2></div></div></div> | | 3863 | <a name="other-mandatory-files"></a>12.4. Other mandatory files</h2></div></div></div> |
3864 | <div class="variablelist"><dl class="variablelist"> | | 3864 | <div class="variablelist"><dl class="variablelist"> |
3865 | <dt><span class="term"><code class="filename">DESCR</code></span></dt> | | 3865 | <dt><span class="term"><code class="filename">DESCR</code></span></dt> |
3866 | <dd><p>A multi-line description of the piece of software. This should include | | 3866 | <dd><p>A multi-line description of the piece of software. This should include |
3867 | any credits where they are due. Please bear in mind that others do not | | 3867 | any credits where they are due. Please bear in mind that others do not |
3868 | share your sense of humour (or spelling idiosyncrasies), and that others | | 3868 | share your sense of humour (or spelling idiosyncrasies), and that others |
3869 | will read everything that you write here.</p></dd> | | 3869 | will read everything that you write here.</p></dd> |
3870 | <dt><span class="term"><code class="filename">PLIST</code></span></dt> | | 3870 | <dt><span class="term"><code class="filename">PLIST</code></span></dt> |
3871 | <dd><p>This file governs the files that are installed on your | | 3871 | <dd><p>This file governs the files that are installed on your |
3872 | system: all the binaries, manual pages, etc. There are other | | 3872 | system: all the binaries, manual pages, etc. There are other |
3873 | directives which may be entered in this file, to control the | | 3873 | directives which may be entered in this file, to control the |
3874 | creation and deletion of directories, and the location of | | 3874 | creation and deletion of directories, and the location of |
3875 | inserted files. See <a class="xref" href="#plist" title="Chapter 19. PLIST issues">Chapter 19, <i>PLIST issues</i></a> for more | | 3875 | inserted files. See <a class="xref" href="#plist" title="Chapter 19. PLIST issues">Chapter 19, <i>PLIST issues</i></a> for more |
3876 | information.</p></dd> | | 3876 | information.</p></dd> |
3877 | </dl></div> | | 3877 | </dl></div> |
3878 | </div> | | 3878 | </div> |
3879 | <div class="sect1"> | | 3879 | <div class="sect1"> |
3880 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 3880 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
3881 | <a name="components.optional"></a>12.5. Optional files</h2></div></div></div> | | 3881 | <a name="components.optional"></a>12.5. Optional files</h2></div></div></div> |
3882 | <div class="sect2"> | | 3882 | <div class="sect2"> |
3883 | <div class="titlepage"><div><div><h3 class="title"> | | 3883 | <div class="titlepage"><div><div><h3 class="title"> |
3884 | <a name="components.optional.bin"></a>12.5.1. Files affecting the binary package</h3></div></div></div> | | 3884 | <a name="components.optional.bin"></a>12.5.1. Files affecting the binary package</h3></div></div></div> |
3885 | <div class="variablelist"><dl class="variablelist"> | | 3885 | <div class="variablelist"><dl class="variablelist"> |
3886 | <dt><span class="term"><code class="filename">INSTALL</code></span></dt> | | 3886 | <dt><span class="term"><code class="filename">INSTALL</code></span></dt> |
3887 | <dd> | | 3887 | <dd> |
3888 | <p>This shell script is invoked twice by <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_add.1"><span class="citerefentry"><span class="refentrytitle">pkg_add</span>(1)</span></a>. | | 3888 | <p>This shell script is invoked twice by <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_add.1"><span class="citerefentry"><span class="refentrytitle">pkg_add</span>(1)</span></a>. |
3889 | First time after package extraction and before files are | | 3889 | First time after package extraction and before files are |
3890 | moved in place, the second time after the files to install | | 3890 | moved in place, the second time after the files to install |
3891 | are moved in place. This can be used to do any custom | | 3891 | are moved in place. This can be used to do any custom |
3892 | procedures not possible with @exec commands in | | 3892 | procedures not possible with @exec commands in |
3893 | <code class="filename">PLIST</code>. See <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_add.1"><span class="citerefentry"><span class="refentrytitle">pkg_add</span>(1)</span></a> and | | 3893 | <code class="filename">PLIST</code>. See <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_add.1"><span class="citerefentry"><span class="refentrytitle">pkg_add</span>(1)</span></a> and |
3894 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_create.1"><span class="citerefentry"><span class="refentrytitle">pkg_create</span>(1)</span></a> for more information. See also <a class="xref" href="#files-and-dirs-outside-prefix" title="20.1. Files and directories outside the installation prefix">Section 20.1, “Files and directories outside the installation prefix”</a>. | | 3894 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_create.1"><span class="citerefentry"><span class="refentrytitle">pkg_create</span>(1)</span></a> for more information. See also <a class="xref" href="#files-and-dirs-outside-prefix" title="20.1. Files and directories outside the installation prefix">Section 20.1, “Files and directories outside the installation prefix”</a>. |
3895 | Please note that you can modify variables in it easily by using | | 3895 | Please note that you can modify variables in it easily by using |
3896 | <code class="varname">FILES_SUBST</code> in the package's | | 3896 | <code class="varname">FILES_SUBST</code> in the package's |
3897 | <code class="filename">Makefile</code>:</p> | | 3897 | <code class="filename">Makefile</code>:</p> |
3898 | <pre class="programlisting"> | | 3898 | <pre class="programlisting"> |
3899 | FILES_SUBST+= SOMEVAR="somevalue" | | 3899 | FILES_SUBST+= SOMEVAR="somevalue" |
3900 | </pre> | | 3900 | </pre> |
3901 | <p>replaces "@SOMEVAR@" with <span class="quote">“<span class="quote">somevalue</span>”</span> in the | | 3901 | <p>replaces "@SOMEVAR@" with <span class="quote">“<span class="quote">somevalue</span>”</span> in the |
3902 | <code class="filename">INSTALL</code>. By default, substitution is | | 3902 | <code class="filename">INSTALL</code>. By default, substitution is |
3903 | performed for <code class="varname">PREFIX</code>, | | 3903 | performed for <code class="varname">PREFIX</code>, |
3904 | <code class="varname">LOCALBASE</code>, <code class="varname">X11BASE</code>, | | 3904 | <code class="varname">LOCALBASE</code>, <code class="varname">X11BASE</code>, |
3905 | <code class="varname">VARBASE</code>, and a few others, type | | 3905 | <code class="varname">VARBASE</code>, and a few others, type |
3906 | <span class="command"><strong>make help topic=FILES_SUBST</strong></span> for a | | 3906 | <span class="command"><strong>make help topic=FILES_SUBST</strong></span> for a |
3907 | complete list.</p> | | 3907 | complete list.</p> |
3908 | </dd> | | 3908 | </dd> |
3909 | <dt><span class="term"><code class="filename">DEINSTALL</code></span></dt> | | 3909 | <dt><span class="term"><code class="filename">DEINSTALL</code></span></dt> |
3910 | <dd><p>This script is executed before and after any files are removed. It is | | 3910 | <dd><p>This script is executed before and after any files are removed. It is |
3911 | this script's responsibility to clean up any additional messy details | | 3911 | this script's responsibility to clean up any additional messy details |
3912 | around the package's installation, since all pkg_delete knows is how to | | 3912 | around the package's installation, since all pkg_delete knows is how to |
3913 | delete the files created in the original distribution. | | 3913 | delete the files created in the original distribution. |
3914 | See <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> | | 3914 | See <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> |
3915 | and <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_create.1"><span class="citerefentry"><span class="refentrytitle">pkg_create</span>(1)</span></a> for more information. | | 3915 | and <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_create.1"><span class="citerefentry"><span class="refentrytitle">pkg_create</span>(1)</span></a> for more information. |
3916 | The same methods to replace variables can be used as for | | 3916 | The same methods to replace variables can be used as for |
3917 | the <code class="filename">INSTALL</code> file.</p></dd> | | 3917 | the <code class="filename">INSTALL</code> file.</p></dd> |
3918 | <dt><span class="term"><code class="filename">MESSAGE</code></span></dt> | | 3918 | <dt><span class="term"><code class="filename">MESSAGE</code></span></dt> |
3919 | <dd> | | 3919 | <dd> |
3920 | <p>This file is displayed after installation of the package. | | 3920 | <p>This file is displayed after installation of the package. |
3921 | While this was used often in the past, it has two | | 3921 | While this was used often in the past, it has two |
3922 | problems: the display will be missed if many packages are | | 3922 | problems: the display will be missed if many packages are |
3923 | intalled at once, and the person installing the package | | 3923 | intalled at once, and the person installing the package |
3924 | and the one using or configuring it may be different. It | | 3924 | and the one using or configuring it may be different. It |
3925 | should therefore be used only in exceptional circumstances | | 3925 | should therefore be used only in exceptional circumstances |
3926 | where lasting negative consequences would result from | | 3926 | where lasting negative consequences would result from |
3927 | someone not reading it.</p> | | 3927 | someone not reading it.</p> |
3928 | <p>MESSAGE should not be used for:</p> | | 3928 | <p>MESSAGE should not be used for:</p> |
3929 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 3929 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
3930 | <li class="listitem"><p>exhortations to read the documentation</p></li> | | 3930 | <li class="listitem"><p>exhortations to read the documentation</p></li> |
3931 | <li class="listitem"><p>reminders to install rc.d files and set variables</p></li> | | 3931 | <li class="listitem"><p>reminders to install rc.d files and set variables</p></li> |
3932 | <li class="listitem"><p>anything that should be explained in the | | 3932 | <li class="listitem"><p>anything that should be explained in the |
3933 | installation/configuration documentation that should | | 3933 | installation/configuration documentation that should |
3934 | come with the package</p></li> | | 3934 | come with the package</p></li> |
3935 | </ul></div> | | 3935 | </ul></div> |
3936 | <p>If the documentation provided by upstream needs | | 3936 | <p>If the documentation provided by upstream needs |
3937 | enhancing, create e.g. files/README.pkgsrc and install it | | 3937 | enhancing, create e.g. files/README.pkgsrc and install it |
3938 | in the package's documentation directory. | | 3938 | in the package's documentation directory. |
3939 | </p> | | 3939 | </p> |
3940 | <p>Note that MESSAGE is shown for all operating | | 3940 | <p>Note that MESSAGE is shown for all operating |
3941 | systems and all init systems. If a MESSAGE is necessary, | | 3941 | systems and all init systems. If a MESSAGE is necessary, |
3942 | it should be narrowed to only those operating systems and | | 3942 | it should be narrowed to only those operating systems and |
3943 | init systems to which it applies.</p> | | 3943 | init systems to which it applies.</p> |
3944 | <p>Note that you can modify variables in it easily by using | | 3944 | <p>Note that you can modify variables in it easily by using |
3945 | <code class="varname">MESSAGE_SUBST</code> in the package's | | 3945 | <code class="varname">MESSAGE_SUBST</code> in the package's |
3946 | <code class="filename">Makefile</code>:</p> | | 3946 | <code class="filename">Makefile</code>:</p> |
3947 | <pre class="programlisting"> | | 3947 | <pre class="programlisting"> |
3948 | MESSAGE_SUBST+= SOMEVAR="somevalue" | | 3948 | MESSAGE_SUBST+= SOMEVAR="somevalue" |
3949 | </pre> | | 3949 | </pre> |
3950 | <p>replaces "${SOMEVAR}" with <span class="quote">“<span class="quote">somevalue</span>”</span> in | | 3950 | <p>replaces "${SOMEVAR}" with <span class="quote">“<span class="quote">somevalue</span>”</span> in |
3951 | <code class="filename">MESSAGE</code>. By default, substitution is | | 3951 | <code class="filename">MESSAGE</code>. By default, substitution is |
3952 | performed for <code class="varname">PKGNAME</code>, | | 3952 | performed for <code class="varname">PKGNAME</code>, |
3953 | <code class="varname">PKGBASE</code>, <code class="varname">PREFIX</code>, | | 3953 | <code class="varname">PKGBASE</code>, <code class="varname">PREFIX</code>, |
3954 | <code class="varname">LOCALBASE</code>, <code class="varname">X11BASE</code>, | | 3954 | <code class="varname">LOCALBASE</code>, <code class="varname">X11BASE</code>, |
3955 | <code class="varname">PKG_SYSCONFDIR</code>, | | 3955 | <code class="varname">PKG_SYSCONFDIR</code>, |
3956 | <code class="varname">ROOT_GROUP</code>, and | | 3956 | <code class="varname">ROOT_GROUP</code>, and |
3957 | <code class="varname">ROOT_USER</code>.</p> | | 3957 | <code class="varname">ROOT_USER</code>.</p> |
3958 | <p>You can display a different or additional files by | | 3958 | <p>You can display a different or additional files by |
3959 | setting the <code class="varname">MESSAGE_SRC</code> variable. Its | | 3959 | setting the <code class="varname">MESSAGE_SRC</code> variable. Its |
3960 | default is <code class="filename">MESSAGE</code>, if the file | | 3960 | default is <code class="filename">MESSAGE</code>, if the file |
3961 | exists.</p> | | 3961 | exists.</p> |
3962 | </dd> | | 3962 | </dd> |
3963 | <dt><span class="term"><code class="filename">ALTERNATIVES</code></span></dt> | | 3963 | <dt><span class="term"><code class="filename">ALTERNATIVES</code></span></dt> |
3964 | <dd> | | 3964 | <dd> |
3965 | <p>This file is used by the alternatives framework. | | 3965 | <p>This file is used by the alternatives framework. |
3966 | It creates, configures, and destroys generic wrappers used to | | 3966 | It creates, configures, and destroys generic wrappers used to |
3967 | run programs with similar interfaces. | | 3967 | run programs with similar interfaces. |
3968 | See pkg_alternatives(8) from pkgtools/pkg_alternatives | | 3968 | See pkg_alternatives(8) from pkgtools/pkg_alternatives |
3969 | for more information.</p> | | 3969 | for more information.</p> |
3970 | <p>Each line of the file contains two filenames, first | | 3970 | <p>Each line of the file contains two filenames, first |
3971 | the wrapper and then the alternative provided by the package. | | 3971 | the wrapper and then the alternative provided by the package. |
3972 | Both paths are relative to <code class="varname">PREFIX</code>.</p> | | 3972 | Both paths are relative to <code class="varname">PREFIX</code>.</p> |
3973 | </dd> | | 3973 | </dd> |
3974 | </dl></div> | | 3974 | </dl></div> |
3975 | </div> | | 3975 | </div> |
3976 | <div class="sect2"> | | 3976 | <div class="sect2"> |
3977 | <div class="titlepage"><div><div><h3 class="title"> | | 3977 | <div class="titlepage"><div><div><h3 class="title"> |
3978 | <a name="components.optional.build"></a>12.5.2. Files affecting the build process</h3></div></div></div> | | 3978 | <a name="components.optional.build"></a>12.5.2. Files affecting the build process</h3></div></div></div> |
3979 | <div class="variablelist"><dl class="variablelist"> | | 3979 | <div class="variablelist"><dl class="variablelist"> |
3980 | <dt><span class="term"><code class="filename">Makefile.common</code></span></dt> | | 3980 | <dt><span class="term"><code class="filename">Makefile.common</code></span></dt> |
3981 | <dd><p>This file contains arbitrary things that could | | 3981 | <dd><p>This file contains arbitrary things that could |
3982 | also go into a <code class="filename">Makefile</code>, but its purpose is | | 3982 | also go into a <code class="filename">Makefile</code>, but its purpose is |
3983 | to be used by more than one package. This file should only be | | 3983 | to be used by more than one package. This file should only be |
3984 | used when the packages that will use the file are known in | | 3984 | used when the packages that will use the file are known in |
3985 | advance. For other purposes it is often better to write a | | 3985 | advance. For other purposes it is often better to write a |
3986 | <code class="filename">*.mk</code> file and give it a good name that | | 3986 | <code class="filename">*.mk</code> file and give it a good name that |
3987 | describes what it does.</p></dd> | | 3987 | describes what it does.</p></dd> |
3988 | <dt><span class="term"><code class="filename">buildlink3.mk</code></span></dt> | | 3988 | <dt><span class="term"><code class="filename">buildlink3.mk</code></span></dt> |
3989 | <dd><p>This file contains the dependency information | | 3989 | <dd><p>This file contains the dependency information |
3990 | for the buildlink3 framework (see <a class="xref" href="#buildlink" title="Chapter 18. Buildlink methodology">Chapter 18, <i>Buildlink methodology</i></a>).</p></dd> | | 3990 | for the buildlink3 framework (see <a class="xref" href="#buildlink" title="Chapter 18. Buildlink methodology">Chapter 18, <i>Buildlink methodology</i></a>).</p></dd> |
3991 | <dt><span class="term"><code class="filename">hacks.mk</code></span></dt> | | 3991 | <dt><span class="term"><code class="filename">hacks.mk</code></span></dt> |
3992 | <dd><p>This file contains workarounds for compiler bugs | | 3992 | <dd><p>This file contains workarounds for compiler bugs |
3993 | and similar things. It is included automatically by the pkgsrc | | 3993 | and similar things. It is included automatically by the pkgsrc |
3994 | infrastructure, so you don't need an extra | | 3994 | infrastructure, so you don't need an extra |
3995 | <code class="literal">.include</code> line for | | 3995 | <code class="literal">.include</code> line for |
3996 | it.</p></dd> | | 3996 | it.</p></dd> |
3997 | <dt><span class="term"><code class="filename">options.mk</code></span></dt> | | 3997 | <dt><span class="term"><code class="filename">options.mk</code></span></dt> |
3998 | <dd><p>This file contains the code for the | | 3998 | <dd><p>This file contains the code for the |
3999 | package-specific options (see <a class="xref" href="#options" title="Chapter 16. Options handling">Chapter 16, <i>Options handling</i></a>) that can be | | 3999 | package-specific options (see <a class="xref" href="#options" title="Chapter 16. Options handling">Chapter 16, <i>Options handling</i></a>) that can be |
4000 | selected by the user. If a package has only one or two options, | | 4000 | selected by the user. If a package has only one or two options, |
4001 | it is equally acceptable to put the code directly into the | | 4001 | it is equally acceptable to put the code directly into the |
4002 | <code class="filename">Makefile</code>.</p></dd> | | 4002 | <code class="filename">Makefile</code>.</p></dd> |
4003 | </dl></div> | | 4003 | </dl></div> |
4004 | </div> | | 4004 | </div> |
4005 | <div class="sect2"> | | 4005 | <div class="sect2"> |
4006 | <div class="titlepage"><div><div><h3 class="title"> | | 4006 | <div class="titlepage"><div><div><h3 class="title"> |
4007 | <a name="components.optional.none"></a>12.5.3. Files affecting nothing at all</h3></div></div></div> | | 4007 | <a name="components.optional.none"></a>12.5.3. Files affecting nothing at all</h3></div></div></div> |
4008 | <div class="variablelist"><dl class="variablelist"> | | 4008 | <div class="variablelist"><dl class="variablelist"> |
4009 | <dt><span class="term"><code class="filename">README*</code></span></dt> | | 4009 | <dt><span class="term"><code class="filename">README*</code></span></dt> |
4010 | <dd><p>These files do not take place in the creation of | | 4010 | <dd><p>These files do not take place in the creation of |
4011 | a package and thus are purely informative to the package | | 4011 | a package and thus are purely informative to the package |
4012 | developer.</p></dd> | | 4012 | developer.</p></dd> |
4013 | <dt><span class="term"><code class="filename">TODO</code></span></dt> | | 4013 | <dt><span class="term"><code class="filename">TODO</code></span></dt> |
4014 | <dd><p>This file contains things that need to be done | | 4014 | <dd><p>This file contains things that need to be done |
4015 | to make the package even | | 4015 | to make the package even |
4016 | better.</p></dd> | | 4016 | better.</p></dd> |
4017 | </dl></div> | | 4017 | </dl></div> |
4018 | </div> | | 4018 | </div> |
4019 | </div> | | 4019 | </div> |
4020 | <div class="sect1"> | | 4020 | <div class="sect1"> |
4021 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4021 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4022 | <a name="work-dir"></a>12.6. <code class="filename">work*</code> | | 4022 | <a name="work-dir"></a>12.6. <code class="filename">work*</code> |
4023 | </h2></div></div></div> | | 4023 | </h2></div></div></div> |
4024 | <p>When you type <span class="command"><strong>make</strong></span>, the distribution files are | | 4024 | <p>When you type <span class="command"><strong>make</strong></span>, the distribution files are |
4025 | unpacked into the directory denoted by | | 4025 | unpacked into the directory denoted by |
4026 | <code class="varname">WRKDIR</code>. It can be removed by running | | 4026 | <code class="varname">WRKDIR</code>. It can be removed by running |
4027 | <span class="command"><strong>make clean</strong></span>. Besides the sources, this | | 4027 | <span class="command"><strong>make clean</strong></span>. Besides the sources, this |
4028 | directory is also used to keep various timestamp files. | | 4028 | directory is also used to keep various timestamp files. |
4029 | The directory gets <span class="emphasis"><em>removed completely</em></span> on clean. | | 4029 | The directory gets <span class="emphasis"><em>removed completely</em></span> on clean. |
4030 | The default is <code class="filename">${.CURDIR}/work</code> | | 4030 | The default is <code class="filename">${.CURDIR}/work</code> |
4031 | or <code class="filename">${.CURDIR}/work.${MACHINE_ARCH}</code> | | 4031 | or <code class="filename">${.CURDIR}/work.${MACHINE_ARCH}</code> |
4032 | if <code class="varname">OBJMACHINE</code> is set.</p> | | 4032 | if <code class="varname">OBJMACHINE</code> is set.</p> |
4033 | </div> | | 4033 | </div> |
4034 | <div class="sect1"> | | 4034 | <div class="sect1"> |
4035 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4035 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4036 | <a name="files-dir"></a>12.7. <code class="filename">files/*</code> | | 4036 | <a name="files-dir"></a>12.7. <code class="filename">files/*</code> |
4037 | </h2></div></div></div> | | 4037 | </h2></div></div></div> |
4038 | <p>If you have any files that you wish to be placed in the package | | 4038 | <p>If you have any files that you wish to be placed in the package |
4039 | prior to configuration or building, you can place these files here | | 4039 | prior to configuration or building, you can place these files here |
4040 | and use a <span class="command"><strong>${CP}</strong></span> command in the | | 4040 | and use a <span class="command"><strong>${CP}</strong></span> command in the |
4041 | <span class="quote">“<span class="quote">post-extract</span>”</span> target to achieve this.</p> | | 4041 | <span class="quote">“<span class="quote">post-extract</span>”</span> target to achieve this.</p> |
4042 | <p>If you want to share files in this way with other | | 4042 | <p>If you want to share files in this way with other |
4043 | packages, set the <code class="varname">FILESDIR</code> variable to point | | 4043 | packages, set the <code class="varname">FILESDIR</code> variable to point |
4044 | to the other package's <code class="filename">files</code> directory, | | 4044 | to the other package's <code class="filename">files</code> directory, |
4045 | e.g.:</p> | | 4045 | e.g.:</p> |
4046 | <pre class="programlisting"> | | 4046 | <pre class="programlisting"> |
4047 | FILESDIR= ../../editors/xemacs/files | | 4047 | FILESDIR= ../../editors/xemacs/files |
4048 | </pre> | | 4048 | </pre> |
4049 | </div> | | 4049 | </div> |
4050 | </div> | | 4050 | </div> |
4051 | <div class="chapter"> | | 4051 | <div class="chapter"> |
4052 | <div class="titlepage"><div><div><h2 class="title"> | | 4052 | <div class="titlepage"><div><div><h2 class="title"> |
4053 | <a name="build"></a>Chapter 13. The build process</h2></div></div></div> | | 4053 | <a name="build"></a>Chapter 13. The build process</h2></div></div></div> |
4054 | <div class="toc"> | | 4054 | <div class="toc"> |
4055 | <p><b>Table of Contents</b></p> | | 4055 | <p><b>Table of Contents</b></p> |
4056 | <dl class="toc"> | | 4056 | <dl class="toc"> |
4057 | <dt><span class="sect1"><a href="#build.intro">13.1. Introduction</a></span></dt> | | 4057 | <dt><span class="sect1"><a href="#build.intro">13.1. Introduction</a></span></dt> |
4058 | <dt><span class="sect1"><a href="#build.prefix">13.2. Program location</a></span></dt> | | 4058 | <dt><span class="sect1"><a href="#build.prefix">13.2. Program location</a></span></dt> |
4059 | <dt><span class="sect1"><a href="#build.builddirs">13.3. Directories used during the build process</a></span></dt> | | 4059 | <dt><span class="sect1"><a href="#build.builddirs">13.3. Directories used during the build process</a></span></dt> |
4060 | <dt><span class="sect1"><a href="#build.running">13.4. Running a phase</a></span></dt> | | 4060 | <dt><span class="sect1"><a href="#build.running">13.4. Running a phase</a></span></dt> |
4061 | <dt><span class="sect1"><a href="#build.fetch">13.5. The <span class="emphasis"><em>fetch</em></span> phase</a></span></dt> | | 4061 | <dt><span class="sect1"><a href="#build.fetch">13.5. The <span class="emphasis"><em>fetch</em></span> phase</a></span></dt> |
4062 | <dd><dl> | | 4062 | <dd><dl> |
4063 | <dt><span class="sect2"><a href="#build.fetch.what">13.5.1. What to fetch and where to get it from</a></span></dt> | | 4063 | <dt><span class="sect2"><a href="#build.fetch.what">13.5.1. What to fetch and where to get it from</a></span></dt> |
4064 | <dt><span class="sect2"><a href="#build.fetch.how">13.5.2. How are the files fetched?</a></span></dt> | | 4064 | <dt><span class="sect2"><a href="#build.fetch.how">13.5.2. How are the files fetched?</a></span></dt> |
4065 | </dl></dd> | | 4065 | </dl></dd> |
4066 | <dt><span class="sect1"><a href="#build.checksum">13.6. The <span class="emphasis"><em>checksum</em></span> phase</a></span></dt> | | 4066 | <dt><span class="sect1"><a href="#build.checksum">13.6. The <span class="emphasis"><em>checksum</em></span> phase</a></span></dt> |
4067 | <dt><span class="sect1"><a href="#build.extract">13.7. The <span class="emphasis"><em>extract</em></span> phase</a></span></dt> | | 4067 | <dt><span class="sect1"><a href="#build.extract">13.7. The <span class="emphasis"><em>extract</em></span> phase</a></span></dt> |
4068 | <dt><span class="sect1"><a href="#build.patch">13.8. The <span class="emphasis"><em>patch</em></span> phase</a></span></dt> | | 4068 | <dt><span class="sect1"><a href="#build.patch">13.8. The <span class="emphasis"><em>patch</em></span> phase</a></span></dt> |
4069 | <dt><span class="sect1"><a href="#build.tools">13.9. The <span class="emphasis"><em>tools</em></span> phase</a></span></dt> | | 4069 | <dt><span class="sect1"><a href="#build.tools">13.9. The <span class="emphasis"><em>tools</em></span> phase</a></span></dt> |
4070 | <dt><span class="sect1"><a href="#build.wrapper">13.10. The <span class="emphasis"><em>wrapper</em></span> phase</a></span></dt> | | 4070 | <dt><span class="sect1"><a href="#build.wrapper">13.10. The <span class="emphasis"><em>wrapper</em></span> phase</a></span></dt> |
4071 | <dt><span class="sect1"><a href="#build.configure">13.11. The <span class="emphasis"><em>configure</em></span> phase</a></span></dt> | | 4071 | <dt><span class="sect1"><a href="#build.configure">13.11. The <span class="emphasis"><em>configure</em></span> phase</a></span></dt> |
4072 | <dt><span class="sect1"><a href="#build.build">13.12. The <span class="emphasis"><em>build</em></span> phase</a></span></dt> | | 4072 | <dt><span class="sect1"><a href="#build.build">13.12. The <span class="emphasis"><em>build</em></span> phase</a></span></dt> |
4073 | <dt><span class="sect1"><a href="#build.test">13.13. The <span class="emphasis"><em>test</em></span> phase</a></span></dt> | | 4073 | <dt><span class="sect1"><a href="#build.test">13.13. The <span class="emphasis"><em>test</em></span> phase</a></span></dt> |
4074 | <dt><span class="sect1"><a href="#build.install">13.14. The <span class="emphasis"><em>install</em></span> phase</a></span></dt> | | 4074 | <dt><span class="sect1"><a href="#build.install">13.14. The <span class="emphasis"><em>install</em></span> phase</a></span></dt> |
4075 | <dt><span class="sect1"><a href="#build.package">13.15. The <span class="emphasis"><em>package</em></span> phase</a></span></dt> | | 4075 | <dt><span class="sect1"><a href="#build.package">13.15. The <span class="emphasis"><em>package</em></span> phase</a></span></dt> |
4076 | <dt><span class="sect1"><a href="#build.clean">13.16. Cleaning up</a></span></dt> | | 4076 | <dt><span class="sect1"><a href="#build.clean">13.16. Cleaning up</a></span></dt> |
4077 | <dt><span class="sect1"><a href="#build.helpful-targets">13.17. Other helpful targets</a></span></dt> | | 4077 | <dt><span class="sect1"><a href="#build.helpful-targets">13.17. Other helpful targets</a></span></dt> |
4078 | </dl> | | 4078 | </dl> |
4079 | </div> | | 4079 | </div> |
4080 | <div class="sect1"> | | 4080 | <div class="sect1"> |
4081 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4081 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4082 | <a name="build.intro"></a>13.1. Introduction</h2></div></div></div> | | 4082 | <a name="build.intro"></a>13.1. Introduction</h2></div></div></div> |
4083 | <p>This chapter gives a detailed description on how a package is | | 4083 | <p>This chapter gives a detailed description on how a package is |
4084 | built. Building a package is separated into different | | 4084 | built. Building a package is separated into different |
4085 | <span class="emphasis"><em>phases</em></span> (for example <code class="varname">fetch</code>, | | 4085 | <span class="emphasis"><em>phases</em></span> (for example <code class="varname">fetch</code>, |
4086 | <code class="varname">build</code>, <code class="varname">install</code>), all of which are | | 4086 | <code class="varname">build</code>, <code class="varname">install</code>), all of which are |
4087 | described in the following sections. Each phase is split into | | 4087 | described in the following sections. Each phase is split into |
4088 | so-called <span class="emphasis"><em>stages</em></span>, which take the name of the | | 4088 | so-called <span class="emphasis"><em>stages</em></span>, which take the name of the |
4089 | containing phase, prefixed by one of <code class="varname">pre-</code>, | | 4089 | containing phase, prefixed by one of <code class="varname">pre-</code>, |
4090 | <code class="varname">do-</code> or <code class="varname">post-</code>. (Examples are | | 4090 | <code class="varname">do-</code> or <code class="varname">post-</code>. (Examples are |
4091 | <code class="varname">pre-configure</code>, <code class="varname">post-build</code>.) Most | | 4091 | <code class="varname">pre-configure</code>, <code class="varname">post-build</code>.) Most |
4092 | of the actual work is done in the <code class="varname">do-*</code> stages.</p> | | 4092 | of the actual work is done in the <code class="varname">do-*</code> stages.</p> |
4093 | <p>Never override the regular targets (like | | 4093 | <p>Never override the regular targets (like |
4094 | <code class="varname">fetch</code>), if you have to, override the | | 4094 | <code class="varname">fetch</code>), if you have to, override the |
4095 | <code class="varname">do-*</code> ones instead.</p> | | 4095 | <code class="varname">do-*</code> ones instead.</p> |
4096 | <p>The basic steps for building a program are always the same. First | | 4096 | <p>The basic steps for building a program are always the same. First |
4097 | the program's source (<span class="emphasis"><em>distfile</em></span>) must be brought to | | 4097 | the program's source (<span class="emphasis"><em>distfile</em></span>) must be brought to |
4098 | the local system and then extracted. After any pkgsrc-specific patches | | 4098 | the local system and then extracted. After any pkgsrc-specific patches |
4099 | to compile properly are applied, the software can be configured, then | | 4099 | to compile properly are applied, the software can be configured, then |
4100 | built (usually by compiling), and finally the generated binaries, etc. | | 4100 | built (usually by compiling), and finally the generated binaries, etc. |
4101 | can be put into place on the system.</p> | | 4101 | can be put into place on the system.</p> |
4102 | <p>To get more details about what is happening at each step, | | 4102 | <p>To get more details about what is happening at each step, |
4103 | you can set the <code class="varname">PKG_VERBOSE</code> variable, or the | | 4103 | you can set the <code class="varname">PKG_VERBOSE</code> variable, or the |
4104 | <code class="varname">PATCH_DEBUG</code> variable if you are just interested | | 4104 | <code class="varname">PATCH_DEBUG</code> variable if you are just interested |
4105 | in more details about the <span class="emphasis"><em>patch</em></span> step.</p> | | 4105 | in more details about the <span class="emphasis"><em>patch</em></span> step.</p> |
4106 | </div> | | 4106 | </div> |
4107 | <div class="sect1"> | | 4107 | <div class="sect1"> |
4108 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4108 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4109 | <a name="build.prefix"></a>13.2. Program location</h2></div></div></div> | | 4109 | <a name="build.prefix"></a>13.2. Program location</h2></div></div></div> |
4110 | <p>Before outlining the process performed by the NetBSD package system in | | 4110 | <p>Before outlining the process performed by the NetBSD package system in |
4111 | the next section, here's a brief discussion on where programs are | | 4111 | the next section, here's a brief discussion on where programs are |
4112 | installed, and which variables influence this.</p> | | 4112 | installed, and which variables influence this.</p> |
4113 | <p>The automatic variable <code class="varname">PREFIX</code> indicates | | 4113 | <p>The automatic variable <code class="varname">PREFIX</code> indicates |
4114 | where all files of the final program shall be installed. It is | | 4114 | where all files of the final program shall be installed. It is |
4115 | usually set to <code class="varname">LOCALBASE</code> | | 4115 | usually set to <code class="varname">LOCALBASE</code> |
4116 | (<code class="filename">/usr/pkg</code>), or <code class="varname">CROSSBASE</code> | | 4116 | (<code class="filename">/usr/pkg</code>), or <code class="varname">CROSSBASE</code> |
4117 | for pkgs in the <code class="filename">cross</code> category. The value of | | 4117 | for pkgs in the <code class="filename">cross</code> category. The value of |
4118 | <code class="varname">PREFIX</code> needs to be put | | 4118 | <code class="varname">PREFIX</code> needs to be put |
4119 | into the various places in the program's source where paths to | | 4119 | into the various places in the program's source where paths to |
4120 | these files are encoded. See <a class="xref" href="#components.patches" title="12.3. patches/*">Section 12.3, “<code class="filename">patches/*</code>”</a> and <a class="xref" href="#fixes.libtool" title="21.3.1. Shared libraries - libtool">Section 21.3.1, “Shared libraries - libtool”</a> for more details.</p> | | 4120 | these files are encoded. See <a class="xref" href="#components.patches" title="12.3. patches/*">Section 12.3, “<code class="filename">patches/*</code>”</a> and <a class="xref" href="#fixes.libtool" title="21.3.1. Shared libraries - libtool">Section 21.3.1, “Shared libraries - libtool”</a> for more details.</p> |
4121 | <p>When choosing which of these variables to use, | | 4121 | <p>When choosing which of these variables to use, |
4122 | follow the following rules:</p> | | 4122 | follow the following rules:</p> |
4123 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 4123 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
4124 | <li class="listitem"><p><code class="varname">PREFIX</code> always points to the location | | 4124 | <li class="listitem"><p><code class="varname">PREFIX</code> always points to the location |
4125 | where the current pkg will be installed. When referring to a | | 4125 | where the current pkg will be installed. When referring to a |
4126 | pkg's own installation path, use | | 4126 | pkg's own installation path, use |
4127 | <span class="quote">“<span class="quote">${PREFIX}</span>”</span>.</p></li> | | 4127 | <span class="quote">“<span class="quote">${PREFIX}</span>”</span>.</p></li> |
4128 | <li class="listitem"><p><code class="varname">LOCALBASE</code> is where all pkgs | | 4128 | <li class="listitem"><p><code class="varname">LOCALBASE</code> is where all pkgs |
4129 | are installed. If you need to construct a -I or -L argument | | 4129 | are installed. If you need to construct a -I or -L argument |
4130 | to the compiler to find includes and libraries installed by | | 4130 | to the compiler to find includes and libraries installed by |
4131 | another pkg, use <span class="quote">“<span class="quote">${LOCALBASE}</span>”</span>. The name | | 4131 | another pkg, use <span class="quote">“<span class="quote">${LOCALBASE}</span>”</span>. The name |
4132 | <code class="varname">LOCALBASE</code> stems from FreeBSD, which | | 4132 | <code class="varname">LOCALBASE</code> stems from FreeBSD, which |
4133 | installed all packages in <code class="filename">/usr/local</code>. As | | 4133 | installed all packages in <code class="filename">/usr/local</code>. As |
4134 | pkgsrc leaves <code class="filename">/usr/local</code> for the system | | 4134 | pkgsrc leaves <code class="filename">/usr/local</code> for the system |
4135 | administrator, this variable is a misnomer.</p></li> | | 4135 | administrator, this variable is a misnomer.</p></li> |
4136 | <li class="listitem"><p><code class="varname">X11BASE</code> is where the actual X11 | | 4136 | <li class="listitem"><p><code class="varname">X11BASE</code> is where the actual X11 |
4137 | distribution (from xsrc, etc.) is installed. When looking for | | 4137 | distribution (from xsrc, etc.) is installed. When looking for |
4138 | <span class="emphasis"><em>standard</em></span> X11 includes (not those | | 4138 | <span class="emphasis"><em>standard</em></span> X11 includes (not those |
4139 | installed by a package), use <span class="quote">“<span class="quote">${X11BASE}</span>”</span>.</p></li> | | 4139 | installed by a package), use <span class="quote">“<span class="quote">${X11BASE}</span>”</span>.</p></li> |
4140 | <li class="listitem"><p>X11-based packages using imake must set | | 4140 | <li class="listitem"><p>X11-based packages using imake must set |
4141 | <code class="varname">USE_IMAKE</code> to be installed correctly under | | 4141 | <code class="varname">USE_IMAKE</code> to be installed correctly under |
4142 | <code class="varname">LOCALBASE</code>.</p></li> | | 4142 | <code class="varname">LOCALBASE</code>.</p></li> |
4143 | <li class="listitem"><p>Within <code class="filename">${PREFIX}</code>, packages should | | 4143 | <li class="listitem"><p>Within <code class="filename">${PREFIX}</code>, packages should |
4144 | install files according to <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/hier.7"><span class="citerefentry"><span class="refentrytitle">hier</span>(7)</span></a>, with the exception that | | 4144 | install files according to <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/hier.7"><span class="citerefentry"><span class="refentrytitle">hier</span>(7)</span></a>, with the exception that |
4145 | manual pages go into <code class="filename">${PREFIX}/man</code>, not | | 4145 | manual pages go into <code class="filename">${PREFIX}/man</code>, not |
4146 | <code class="filename">${PREFIX}/share/man</code>.</p></li> | | 4146 | <code class="filename">${PREFIX}/share/man</code>.</p></li> |
4147 | </ul></div> | | 4147 | </ul></div> |
4148 | </div> | | 4148 | </div> |
4149 | <div class="sect1"> | | 4149 | <div class="sect1"> |
4150 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4150 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4151 | <a name="build.builddirs"></a>13.3. Directories used during the build process</h2></div></div></div> | | 4151 | <a name="build.builddirs"></a>13.3. Directories used during the build process</h2></div></div></div> |
4152 | <p>When building a package, various directories are used to store | | 4152 | <p>When building a package, various directories are used to store |
4153 | source files, temporary files, pkgsrc-internal files, and so on. These | | 4153 | source files, temporary files, pkgsrc-internal files, and so on. These |
4154 | directories are explained here.</p> | | 4154 | directories are explained here.</p> |
4155 | <p>Some of the directory variables contain relative pathnames. There | | 4155 | <p>Some of the directory variables contain relative pathnames. There |
4156 | are two common base directories for these relative directories: | | 4156 | are two common base directories for these relative directories: |
4157 | <code class="varname">PKGSRCDIR/PKGPATH</code> is used for directories that are | | 4157 | <code class="varname">PKGSRCDIR/PKGPATH</code> is used for directories that are |
4158 | pkgsrc-specific. <code class="varname">WRKSRC</code> is used for directories | | 4158 | pkgsrc-specific. <code class="varname">WRKSRC</code> is used for directories |
4159 | inside the package itself.</p> | | 4159 | inside the package itself.</p> |
4160 | <div class="variablelist"><dl class="variablelist"> | | 4160 | <div class="variablelist"><dl class="variablelist"> |
4161 | <dt><span class="term"><code class="varname">PKGSRCDIR</code></span></dt> | | 4161 | <dt><span class="term"><code class="varname">PKGSRCDIR</code></span></dt> |
4162 | <dd><p>This is an absolute pathname that points to the pkgsrc | | 4162 | <dd><p>This is an absolute pathname that points to the pkgsrc |
4163 | root directory. Generally, you don't need | | 4163 | root directory. Generally, you don't need |
4164 | it.</p></dd> | | 4164 | it.</p></dd> |
4165 | <dt><span class="term"><code class="varname">PKGDIR</code></span></dt> | | 4165 | <dt><span class="term"><code class="varname">PKGDIR</code></span></dt> |
4166 | <dd><p>This is an absolute pathname that points to the | | 4166 | <dd><p>This is an absolute pathname that points to the |
4167 | current package.</p></dd> | | 4167 | current package.</p></dd> |
4168 | <dt><span class="term"><code class="varname">PKGPATH</code></span></dt> | | 4168 | <dt><span class="term"><code class="varname">PKGPATH</code></span></dt> |
4169 | <dd><p>This is a pathname relative to | | 4169 | <dd><p>This is a pathname relative to |
4170 | <code class="varname">PKGSRCDIR</code> that points to the current | | 4170 | <code class="varname">PKGSRCDIR</code> that points to the current |
4171 | package.</p></dd> | | 4171 | package.</p></dd> |
4172 | <dt><span class="term"><code class="varname">WRKDIR</code></span></dt> | | 4172 | <dt><span class="term"><code class="varname">WRKDIR</code></span></dt> |
4173 | <dd><p>This is an absolute pathname pointing to the directory | | 4173 | <dd><p>This is an absolute pathname pointing to the directory |
4174 | where all work takes place. The distfiles are extracted to this | | 4174 | where all work takes place. The distfiles are extracted to this |
4175 | directory. It also contains temporary directories and log files used by | | 4175 | directory. It also contains temporary directories and log files used by |
4176 | the various pkgsrc frameworks, like <span class="emphasis"><em>buildlink</em></span> or | | 4176 | the various pkgsrc frameworks, like <span class="emphasis"><em>buildlink</em></span> or |
4177 | the <span class="emphasis"><em>wrappers</em></span>.</p></dd> | | 4177 | the <span class="emphasis"><em>wrappers</em></span>.</p></dd> |
4178 | <dt><span class="term"><code class="varname">WRKSRC</code></span></dt> | | 4178 | <dt><span class="term"><code class="varname">WRKSRC</code></span></dt> |
4179 | <dd><p>This is an absolute pathname pointing to the directory | | 4179 | <dd><p>This is an absolute pathname pointing to the directory |
4180 | where the distfiles are extracted. It is usually a direct subdirectory | | 4180 | where the distfiles are extracted. It is usually a direct subdirectory |
4181 | of <code class="varname">WRKDIR</code>, and often it's the only directory entry | | 4181 | of <code class="varname">WRKDIR</code>, and often it's the only directory entry |
4182 | that isn't hidden. This variable may be changed by a package | | 4182 | that isn't hidden. This variable may be changed by a package |
4183 | <code class="filename">Makefile</code>.</p></dd> | | 4183 | <code class="filename">Makefile</code>.</p></dd> |
4184 | </dl></div> | | 4184 | </dl></div> |
4185 | <p>The <code class="varname">CREATE_WRKDIR_SYMLINK</code> definition takes either | | 4185 | <p>The <code class="varname">CREATE_WRKDIR_SYMLINK</code> definition takes either |
4186 | the value <span class="emphasis"><em>yes</em></span> or <span class="emphasis"><em>no</em></span> and defaults | | 4186 | the value <span class="emphasis"><em>yes</em></span> or <span class="emphasis"><em>no</em></span> and defaults |
4187 | to <span class="emphasis"><em>no</em></span>. It indicates whether a symbolic link to the | | 4187 | to <span class="emphasis"><em>no</em></span>. It indicates whether a symbolic link to the |
4188 | <code class="varname">WRKDIR</code> is to be created in the pkgsrc entry's directory. | | 4188 | <code class="varname">WRKDIR</code> is to be created in the pkgsrc entry's directory. |
4189 | If users would like to have their pkgsrc trees behave in a | | 4189 | If users would like to have their pkgsrc trees behave in a |
4190 | read-only manner, then the value of | | 4190 | read-only manner, then the value of |
4191 | <code class="varname">CREATE_WRKDIR_SYMLINK</code> should be set to | | 4191 | <code class="varname">CREATE_WRKDIR_SYMLINK</code> should be set to |
4192 | <span class="emphasis"><em>no</em></span>.</p> | | 4192 | <span class="emphasis"><em>no</em></span>.</p> |
4193 | </div> | | 4193 | </div> |
4194 | <div class="sect1"> | | 4194 | <div class="sect1"> |
4195 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4195 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4196 | <a name="build.running"></a>13.4. Running a phase</h2></div></div></div> | | 4196 | <a name="build.running"></a>13.4. Running a phase</h2></div></div></div> |
4197 | <p>You can run a particular phase by typing <span class="command"><strong>make | | 4197 | <p>You can run a particular phase by typing <span class="command"><strong>make |
4198 | phase</strong></span>, where <span class="emphasis"><em>phase</em></span> is the name of the | | 4198 | phase</strong></span>, where <span class="emphasis"><em>phase</em></span> is the name of the |
4199 | phase. This will automatically run all phases that are required for this | | 4199 | phase. This will automatically run all phases that are required for this |
4200 | phase. The default phase is <code class="varname">build</code>, that is, when you | | 4200 | phase. The default phase is <code class="varname">build</code>, that is, when you |
4201 | run <span class="command"><strong>make</strong></span> without parameters in a package directory, | | 4201 | run <span class="command"><strong>make</strong></span> without parameters in a package directory, |
4202 | the package will be built, but not installed.</p> | | 4202 | the package will be built, but not installed.</p> |
4203 | </div> | | 4203 | </div> |
4204 | <div class="sect1"> | | 4204 | <div class="sect1"> |
4205 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4205 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4206 | <a name="build.fetch"></a>13.5. The <span class="emphasis"><em>fetch</em></span> phase</h2></div></div></div> | | 4206 | <a name="build.fetch"></a>13.5. The <span class="emphasis"><em>fetch</em></span> phase</h2></div></div></div> |
4207 | <p>The first step in building a package is to fetch the | | 4207 | <p>The first step in building a package is to fetch the |
4208 | distribution files (distfiles) from the sites that are providing | | 4208 | distribution files (distfiles) from the sites that are providing |
4209 | them. This is the task of the <span class="emphasis"><em>fetch</em></span> | | 4209 | them. This is the task of the <span class="emphasis"><em>fetch</em></span> |
4210 | phase.</p> | | 4210 | phase.</p> |
4211 | <div class="sect2"> | | 4211 | <div class="sect2"> |
4212 | <div class="titlepage"><div><div><h3 class="title"> | | 4212 | <div class="titlepage"><div><div><h3 class="title"> |
4213 | <a name="build.fetch.what"></a>13.5.1. What to fetch and where to get it from</h3></div></div></div> | | 4213 | <a name="build.fetch.what"></a>13.5.1. What to fetch and where to get it from</h3></div></div></div> |
4214 | <p>In simple cases, <code class="varname">MASTER_SITES</code> | | 4214 | <p>In simple cases, <code class="varname">MASTER_SITES</code> |
4215 | defines all URLs from where the distfile, whose name is | | 4215 | defines all URLs from where the distfile, whose name is |
4216 | derived from the <code class="varname">DISTNAME</code> variable, is | | 4216 | derived from the <code class="varname">DISTNAME</code> variable, is |
4217 | fetched. The more complicated cases are described | | 4217 | fetched. The more complicated cases are described |
4218 | below.</p> | | 4218 | below.</p> |
4219 | <p>The variable <code class="varname">DISTFILES</code> specifies | | 4219 | <p>The variable <code class="varname">DISTFILES</code> specifies |
4220 | the list of distfiles that have to be fetched. Its value | | 4220 | the list of distfiles that have to be fetched. Its value |
4221 | defaults to <code class="literal">${DEFAULT_DISTFILES}</code> and | | 4221 | defaults to <code class="literal">${DEFAULT_DISTFILES}</code> and |
4222 | its value is <code class="literal">${DISTNAME}${EXTRACT_SUFX}</code>, | | 4222 | its value is <code class="literal">${DISTNAME}${EXTRACT_SUFX}</code>, |
4223 | so that most packages don't need to define it at all. | | 4223 | so that most packages don't need to define it at all. |
4224 | <code class="varname">EXTRACT_SUFX</code> is | | 4224 | <code class="varname">EXTRACT_SUFX</code> is |
4225 | <code class="literal">.tar.gz</code> by default, but can be changed | | 4225 | <code class="literal">.tar.gz</code> by default, but can be changed |
4226 | freely. Note that if your package requires additional | | 4226 | freely. Note that if your package requires additional |
4227 | distfiles to the default one, you cannot just append the | | 4227 | distfiles to the default one, you cannot just append the |
4228 | additional filenames using the <code class="literal">+=</code> | | 4228 | additional filenames using the <code class="literal">+=</code> |
4229 | operator, but you have write for example:</p> | | 4229 | operator, but you have write for example:</p> |
4230 | <pre class="programlisting"> | | 4230 | <pre class="programlisting"> |
4231 | DISTFILES= ${DEFAULT_DISTFILES} additional-files.tar.gz | | 4231 | DISTFILES= ${DEFAULT_DISTFILES} additional-files.tar.gz |
4232 | </pre> | | 4232 | </pre> |
4233 | <p>Each distfile is fetched from a list of sites, usually | | 4233 | <p>Each distfile is fetched from a list of sites, usually |
4234 | <code class="varname">MASTER_SITES</code>. If the package has multiple | | 4234 | <code class="varname">MASTER_SITES</code>. If the package has multiple |
4235 | <code class="varname">DISTFILES</code> or multiple | | 4235 | <code class="varname">DISTFILES</code> or multiple |
4236 | <code class="varname">PATCHFILES</code> from different sites, you can | | 4236 | <code class="varname">PATCHFILES</code> from different sites, you can |
4237 | set | | 4237 | set |
4238 | <code class="varname">SITES.<em class="replaceable"><code>distfile</code></em></code> | | 4238 | <code class="varname">SITES.<em class="replaceable"><code>distfile</code></em></code> |
4239 | to the list of URLs where the file | | 4239 | to the list of URLs where the file |
4240 | <code class="filename"><em class="replaceable"><code>distfile</code></em></code> | | 4240 | <code class="filename"><em class="replaceable"><code>distfile</code></em></code> |
4241 | (including the suffix) can be found.</p> | | 4241 | (including the suffix) can be found.</p> |
4242 | <pre class="programlisting"> | | 4242 | <pre class="programlisting"> |
4243 | DISTFILES= ${DISTNAME}${EXTRACT_SUFX} | | 4243 | DISTFILES= ${DISTNAME}${EXTRACT_SUFX} |
4244 | DISTFILES+= foo-file.tar.gz | | 4244 | DISTFILES+= foo-file.tar.gz |
4245 | SITES.foo-file.tar.gz= \ | | 4245 | SITES.foo-file.tar.gz= \ |
4246 | https://www.somewhere.com/somehow/ \ | | 4246 | https://www.somewhere.com/somehow/ \ |
4247 | https://www.somewhereelse.com/mirror/somehow/ | | 4247 | https://www.somewhereelse.com/mirror/somehow/ |
4248 | </pre> | | 4248 | </pre> |
4249 | <p>When actually fetching the distfiles, each item from | | 4249 | <p>When actually fetching the distfiles, each item from |
4250 | <code class="varname">MASTER_SITES</code> or | | 4250 | <code class="varname">MASTER_SITES</code> or |
4251 | <code class="varname">SITES.*</code> gets the name of each distfile | | 4251 | <code class="varname">SITES.*</code> gets the name of each distfile |
4252 | appended to it, without an intermediate slash. Therefore, | | 4252 | appended to it, without an intermediate slash. Therefore, |
4253 | all site values have to end with a slash or other separator | | 4253 | all site values have to end with a slash or other separator |
4254 | character. This allows for example to set | | 4254 | character. This allows for example to set |
4255 | <code class="varname">MASTER_SITES</code> to a URL of a CGI script | | 4255 | <code class="varname">MASTER_SITES</code> to a URL of a CGI script |
4256 | that gets the name of the distfile as a parameter. In this | | 4256 | that gets the name of the distfile as a parameter. In this |
4257 | case, the definition would look like:</p> | | 4257 | case, the definition would look like:</p> |
4258 | <pre class="programlisting"> | | 4258 | <pre class="programlisting"> |
4259 | MASTER_SITES= https://www.example.com/download.cgi?file= | | 4259 | MASTER_SITES= https://www.example.com/download.cgi?file= |
4260 | </pre> | | 4260 | </pre> |
4261 | <p> The exception to this rule are URLs starting with a dash. | | 4261 | <p> The exception to this rule are URLs starting with a dash. |
4262 | In that case the URL is taken as is, fetched and the result | | 4262 | In that case the URL is taken as is, fetched and the result |
4263 | stored under the name of the distfile. You can use this style | | 4263 | stored under the name of the distfile. You can use this style |
4264 | for the case when the download URL style does not match the | | 4264 | for the case when the download URL style does not match the |
4265 | above common case. For example, if permanent download URL is a | | 4265 | above common case. For example, if permanent download URL is a |
4266 | redirector to the real download URL, or the download file name | | 4266 | redirector to the real download URL, or the download file name |
4267 | is offered by an HTTP Content-Disposition header. In the | | 4267 | is offered by an HTTP Content-Disposition header. In the |
4268 | following example, <code class="filename">foo-1.0.0.tar.gz</code> will be | | 4268 | following example, <code class="filename">foo-1.0.0.tar.gz</code> will be |
4269 | created instead of the default | | 4269 | created instead of the default |
4270 | <code class="filename">v1.0.0.tar.gz</code>.</p> | | 4270 | <code class="filename">v1.0.0.tar.gz</code>.</p> |
4271 | <pre class="programlisting"> | | 4271 | <pre class="programlisting"> |
4272 | DISTNAME= foo-1.0.0 | | 4272 | DISTNAME= foo-1.0.0 |
4273 | MASTER_SITES= -https://www.example.com/archive/v1.0.0.tar.gz | | 4273 | MASTER_SITES= -https://www.example.com/archive/v1.0.0.tar.gz |
4274 | </pre> | | 4274 | </pre> |
4275 | <p>There are some predefined values for | | 4275 | <p>There are some predefined values for |
4276 | <code class="varname">MASTER_SITES</code>, which can be used in | | 4276 | <code class="varname">MASTER_SITES</code>, which can be used in |
4277 | packages. The names of the variables should speak for | | 4277 | packages. The names of the variables should speak for |
4278 | themselves.</p> | | 4278 | themselves.</p> |
4279 | <table border="0" summary="Simple list" class="simplelist"> | | 4279 | <table border="0" summary="Simple list" class="simplelist"> |
4280 | <tr> | | 4280 | <tr> |
4281 | <td>MASTER_SITE_APACHE</td> | | 4281 | <td>MASTER_SITE_APACHE</td> |
4282 | <td>MASTER_SITE_BACKUP</td> | | 4282 | <td>MASTER_SITE_BACKUP</td> |
4283 | </tr> | | 4283 | </tr> |
4284 | <tr> | | 4284 | <tr> |
4285 | <td>MASTER_SITE_CRATESIO</td> | | 4285 | <td>MASTER_SITE_CRATESIO</td> |
4286 | <td>MASTER_SITE_CYGWIN</td> | | 4286 | <td>MASTER_SITE_CYGWIN</td> |
4287 | </tr> | | 4287 | </tr> |
4288 | <tr> | | 4288 | <tr> |
4289 | <td>MASTER_SITE_DEBIAN</td> | | 4289 | <td>MASTER_SITE_DEBIAN</td> |
4290 | <td>MASTER_SITE_FREEBSD</td> | | 4290 | <td>MASTER_SITE_FREEBSD</td> |
4291 | </tr> | | 4291 | </tr> |
4292 | <tr> | | 4292 | <tr> |
4293 | <td>MASTER_SITE_FREEBSD_LOCAL</td> | | 4293 | <td>MASTER_SITE_FREEBSD_LOCAL</td> |
4294 | <td>MASTER_SITE_GENTOO</td> | | 4294 | <td>MASTER_SITE_GENTOO</td> |
4295 | </tr> | | 4295 | </tr> |
4296 | <tr> | | 4296 | <tr> |
4297 | <td>MASTER_SITE_GITHUB</td> | | 4297 | <td>MASTER_SITE_GITHUB</td> |
4298 | <td>MASTER_SITE_GNOME</td> | | 4298 | <td>MASTER_SITE_GITLAB</td> |
4299 | </tr> | | 4299 | </tr> |
4300 | <tr> | | 4300 | <tr> |
| | | 4301 | <td>MASTER_SITE_GNOME</td> |
4301 | <td>MASTER_SITE_GNU</td> | | 4302 | <td>MASTER_SITE_GNU</td> |
4302 | <td>MASTER_SITE_GNUSTEP</td> | | | |
4303 | </tr> | | 4303 | </tr> |
4304 | <tr> | | 4304 | <tr> |
| | | 4305 | <td>MASTER_SITE_GNUSTEP</td> |
4305 | <td>MASTER_SITE_HASKELL_HACKAGE</td> | | 4306 | <td>MASTER_SITE_HASKELL_HACKAGE</td> |
4306 | <td>MASTER_SITE_IFARCHIVE</td> | | | |
4307 | </tr> | | 4307 | </tr> |
4308 | <tr> | | 4308 | <tr> |
| | | 4309 | <td>MASTER_SITE_IFARCHIVE</td> |
4309 | <td>MASTER_SITE_KDE</td> | | 4310 | <td>MASTER_SITE_KDE</td> |
4310 | <td>MASTER_SITE_MOZILLA</td> | | | |
4311 | </tr> | | 4311 | </tr> |
4312 | <tr> | | 4312 | <tr> |
| | | 4313 | <td>MASTER_SITE_MOZILLA</td> |
4313 | <td>MASTER_SITE_MOZILLA_ALL</td> | | 4314 | <td>MASTER_SITE_MOZILLA_ALL</td> |
4314 | <td>MASTER_SITE_MYSQL</td> | | | |
4315 | </tr> | | 4315 | </tr> |
4316 | <tr> | | 4316 | <tr> |
| | | 4317 | <td>MASTER_SITE_MYSQL</td> |
4317 | <td>MASTER_SITE_NETLIB</td> | | 4318 | <td>MASTER_SITE_NETLIB</td> |
4318 | <td>MASTER_SITE_OPENBSD</td> | | | |
4319 | </tr> | | 4319 | </tr> |
4320 | <tr> | | 4320 | <tr> |
| | | 4321 | <td>MASTER_SITE_OPENBSD</td> |
4321 | <td>MASTER_SITE_OPENOFFICE</td> | | 4322 | <td>MASTER_SITE_OPENOFFICE</td> |
4322 | <td>MASTER_SITE_OSDN</td> | | | |
4323 | </tr> | | 4323 | </tr> |
4324 | <tr> | | 4324 | <tr> |
| | | 4325 | <td>MASTER_SITE_OSDN</td> |
4325 | <td>MASTER_SITE_PERL_CPAN</td> | | 4326 | <td>MASTER_SITE_PERL_CPAN</td> |
4326 | <td>MASTER_SITE_PGSQL</td> | | | |
4327 | </tr> | | 4327 | </tr> |
4328 | <tr> | | 4328 | <tr> |
| | | 4329 | <td>MASTER_SITE_PGSQL</td> |
4329 | <td>MASTER_SITE_PYPI</td> | | 4330 | <td>MASTER_SITE_PYPI</td> |
4330 | <td>MASTER_SITE_RUBYGEMS</td> | | | |
4331 | </tr> | | 4331 | </tr> |
4332 | <tr> | | 4332 | <tr> |
| | | 4333 | <td>MASTER_SITE_RUBYGEMS</td> |
4333 | <td>MASTER_SITE_R_CRAN</td> | | 4334 | <td>MASTER_SITE_R_CRAN</td> |
4334 | <td>MASTER_SITE_SOURCEFORGE</td> | | | |
4335 | </tr> | | 4335 | </tr> |
4336 | <tr> | | 4336 | <tr> |
| | | 4337 | <td>MASTER_SITE_SOURCEFORGE</td> |
4337 | <td>MASTER_SITE_SUNSITE</td> | | 4338 | <td>MASTER_SITE_SUNSITE</td> |
4338 | <td>MASTER_SITE_SUSE</td> | | | |
4339 | </tr> | | 4339 | </tr> |
4340 | <tr> | | 4340 | <tr> |
| | | 4341 | <td>MASTER_SITE_SUSE</td> |
4341 | <td>MASTER_SITE_TEX_CTAN</td> | | 4342 | <td>MASTER_SITE_TEX_CTAN</td> |
4342 | <td>MASTER_SITE_XCONTRIB</td> | | | |
4343 | </tr> | | 4343 | </tr> |
4344 | <tr> | | 4344 | <tr> |
| | | 4345 | <td>MASTER_SITE_XCONTRIB</td> |
4345 | <td>MASTER_SITE_XEMACS</td> | | 4346 | <td>MASTER_SITE_XEMACS</td> |
| | | 4347 | </tr> |
| | | 4348 | <tr> |
4346 | <td>MASTER_SITE_XORG</td> | | 4349 | <td>MASTER_SITE_XORG</td> |
| | | 4350 | <td> </td> |
4347 | </tr> | | 4351 | </tr> |
4348 | </table> | | 4352 | </table> |
4349 | <p>Some explanations for the less self-explaining ones: | | 4353 | <p>Some explanations for the less self-explaining ones: |
4350 | <code class="varname">MASTER_SITE_BACKUP</code> contains backup sites | | 4354 | <code class="varname">MASTER_SITE_BACKUP</code> contains backup sites |
4351 | for packages that are maintained in <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/%24%7BDIST_SUBDIR%7D" target="_top">ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/${DIST_SUBDIR}</a>. <code class="varname">MASTER_SITE_LOCAL</code> contains local | | 4355 | for packages that are maintained in <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/%24%7BDIST_SUBDIR%7D" target="_top">ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/${DIST_SUBDIR}</a>. <code class="varname">MASTER_SITE_LOCAL</code> contains local |
4352 | package source distributions that are maintained in <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/LOCAL_PORTS/" target="_top">ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/LOCAL_PORTS/</a>.</p> | | 4356 | package source distributions that are maintained in <a class="ulink" href="ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/LOCAL_PORTS/" target="_top">ftp://ftp.NetBSD.org/pub/pkgsrc/distfiles/LOCAL_PORTS/</a>.</p> |
4353 | <p>If you choose one of these predefined sites, you may | | 4357 | <p>If you choose one of these predefined sites, you may |
4354 | want to specify a subdirectory of that site. Since these | | 4358 | want to specify a subdirectory of that site. Since these |
4355 | macros may expand to more than one actual site, you | | 4359 | macros may expand to more than one actual site, you |
4356 | <span class="emphasis"><em>must</em></span> use the following construct to | | 4360 | <span class="emphasis"><em>must</em></span> use the following construct to |
4357 | specify a subdirectory:</p> | | 4361 | specify a subdirectory:</p> |
4358 | <pre class="programlisting"> | | 4362 | <pre class="programlisting"> |
4359 | MASTER_SITES= ${MASTER_SITE_GNU:=subdirectory/name/} | | 4363 | MASTER_SITES= ${MASTER_SITE_GNU:=subdirectory/name/} |
4360 | MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=project_name/} | | 4364 | MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=project_name/} |
4361 | </pre> | | 4365 | </pre> |
4362 | <p>Note the trailing slash after the subdirectory | | 4366 | <p>Note the trailing slash after the subdirectory |
4363 | name.</p> | | 4367 | name.</p> |
4364 | </div> | | 4368 | </div> |
4365 | <div class="sect2"> | | 4369 | <div class="sect2"> |
4366 | <div class="titlepage"><div><div><h3 class="title"> | | 4370 | <div class="titlepage"><div><div><h3 class="title"> |
4367 | <a name="build.fetch.how"></a>13.5.2. How are the files fetched?</h3></div></div></div> | | 4371 | <a name="build.fetch.how"></a>13.5.2. How are the files fetched?</h3></div></div></div> |
4368 | <p>The <span class="emphasis"><em>fetch</em></span> phase makes sure that | | 4372 | <p>The <span class="emphasis"><em>fetch</em></span> phase makes sure that |
4369 | all the distfiles exist in a local directory | | 4373 | all the distfiles exist in a local directory |
4370 | (<code class="varname">DISTDIR</code>, which can be set by the pkgsrc | | 4374 | (<code class="varname">DISTDIR</code>, which can be set by the pkgsrc |
4371 | user). If the files do not exist, they are fetched using | | 4375 | user). If the files do not exist, they are fetched using |
4372 | commands of the form</p> | | 4376 | commands of the form</p> |
4373 | <pre class="programlisting"> | | 4377 | <pre class="programlisting"> |
4374 | ${FETCH_CMD} ${FETCH_BEFORE_ARGS} ${site}${file} ${FETCH_AFTER_ARGS} | | 4378 | ${FETCH_CMD} ${FETCH_BEFORE_ARGS} ${site}${file} ${FETCH_AFTER_ARGS} |
4375 | </pre> | | 4379 | </pre> |
4376 | <p>where <code class="literal">${site}</code> varies through | | 4380 | <p>where <code class="literal">${site}</code> varies through |
4377 | several possibilities in turn: first, | | 4381 | several possibilities in turn: first, |
4378 | <code class="varname">MASTER_SITE_OVERRIDE</code> is tried, then the | | 4382 | <code class="varname">MASTER_SITE_OVERRIDE</code> is tried, then the |
4379 | sites specified in either <code class="varname">SITES.file</code> if | | 4383 | sites specified in either <code class="varname">SITES.file</code> if |
4380 | defined, else <code class="varname">MASTER_SITES</code> or | | 4384 | defined, else <code class="varname">MASTER_SITES</code> or |
4381 | <code class="varname">PATCH_SITES</code>, as applies, then finally the | | 4385 | <code class="varname">PATCH_SITES</code>, as applies, then finally the |
4382 | value of <code class="varname">MASTER_SITE_BACKUP</code>. The order of | | 4386 | value of <code class="varname">MASTER_SITE_BACKUP</code>. The order of |
4383 | all except the first and the last can be optionally sorted | | 4387 | all except the first and the last can be optionally sorted |
4384 | by the user, via setting either | | 4388 | by the user, via setting either |
4385 | <code class="varname">MASTER_SORT_RANDOM</code>, and | | 4389 | <code class="varname">MASTER_SORT_RANDOM</code>, and |
4386 | <code class="varname">MASTER_SORT_AWK</code> or | | 4390 | <code class="varname">MASTER_SORT_AWK</code> or |
4387 | <code class="varname">MASTER_SORT_REGEX</code>.</p> | | 4391 | <code class="varname">MASTER_SORT_REGEX</code>.</p> |
4388 | <p> The specific command and arguments used depend on the | | 4392 | <p> The specific command and arguments used depend on the |
4389 | <code class="varname">FETCH_USING</code> parameter. The example above is | | 4393 | <code class="varname">FETCH_USING</code> parameter. The example above is |
4390 | for <code class="literal">FETCH_USING=custom</code>.</p> | | 4394 | for <code class="literal">FETCH_USING=custom</code>.</p> |
4391 | <p>The distfiles mirror run by the NetBSD Foundation uses the | | 4395 | <p>The distfiles mirror run by the NetBSD Foundation uses the |
4392 | <span class="emphasis"><em>mirror-distfiles</em></span> target to mirror the | | 4396 | <span class="emphasis"><em>mirror-distfiles</em></span> target to mirror the |
4393 | distfiles, if they are freely distributable. Packages setting | | 4397 | distfiles, if they are freely distributable. Packages setting |
4394 | <code class="varname">NO_SRC_ON_FTP</code> (usually to | | 4398 | <code class="varname">NO_SRC_ON_FTP</code> (usually to |
4395 | <span class="quote">“<span class="quote">${RESTRICTED}</span>”</span>) will not have their distfiles | | 4399 | <span class="quote">“<span class="quote">${RESTRICTED}</span>”</span>) will not have their distfiles |
4396 | mirrored.</p> | | 4400 | mirrored.</p> |
4397 | </div> | | 4401 | </div> |
4398 | </div> | | 4402 | </div> |
4399 | <div class="sect1"> | | 4403 | <div class="sect1"> |
4400 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4404 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4401 | <a name="build.checksum"></a>13.6. The <span class="emphasis"><em>checksum</em></span> phase</h2></div></div></div> | | 4405 | <a name="build.checksum"></a>13.6. The <span class="emphasis"><em>checksum</em></span> phase</h2></div></div></div> |
4402 | <p>After the distfile(s) are fetched, their checksum is | | 4406 | <p>After the distfile(s) are fetched, their checksum is |
4403 | generated and compared with the checksums stored in the | | 4407 | generated and compared with the checksums stored in the |
4404 | distinfo file. If the checksums don't match, the build is | | 4408 | distinfo file. If the checksums don't match, the build is |
4405 | aborted. This is to ensure the same distfile is used for | | 4409 | aborted. This is to ensure the same distfile is used for |
4406 | building, and that the distfile wasn't changed, e.g. by some | | 4410 | building, and that the distfile wasn't changed, e.g. by some |
4407 | malign force, deliberately changed distfiles on the master | | 4411 | malign force, deliberately changed distfiles on the master |
4408 | distribution site or network lossage.</p> | | 4412 | distribution site or network lossage.</p> |
4409 | </div> | | 4413 | </div> |
4410 | <div class="sect1"> | | 4414 | <div class="sect1"> |
4411 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4415 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4412 | <a name="build.extract"></a>13.7. The <span class="emphasis"><em>extract</em></span> phase</h2></div></div></div> | | 4416 | <a name="build.extract"></a>13.7. The <span class="emphasis"><em>extract</em></span> phase</h2></div></div></div> |
4413 | <p>When the distfiles are present on the local system, they | | 4417 | <p>When the distfiles are present on the local system, they |
4414 | need to be extracted, as they usually come in the form of some | | 4418 | need to be extracted, as they usually come in the form of some |
4415 | compressed archive format.</p> | | 4419 | compressed archive format.</p> |
4416 | <p>By default, all <code class="varname">DISTFILES</code> are | | 4420 | <p>By default, all <code class="varname">DISTFILES</code> are |
4417 | extracted. If you only need some of them, you can set the | | 4421 | extracted. If you only need some of them, you can set the |
4418 | <code class="varname">EXTRACT_ONLY</code> variable to the list of those | | 4422 | <code class="varname">EXTRACT_ONLY</code> variable to the list of those |
4419 | files.</p> | | 4423 | files.</p> |
4420 | <p>Extracting the files is usually done by a little | | 4424 | <p>Extracting the files is usually done by a little |
4421 | program, <code class="filename">mk/extract/extract</code>, which | | 4425 | program, <code class="filename">mk/extract/extract</code>, which |
4422 | already knows how to extract various archive formats, so most | | 4426 | already knows how to extract various archive formats, so most |
4423 | likely you will not need to change anything here. But if you | | 4427 | likely you will not need to change anything here. But if you |
4424 | need, the following variables may help you:</p> | | 4428 | need, the following variables may help you:</p> |
4425 | <div class="variablelist"><dl class="variablelist"> | | 4429 | <div class="variablelist"><dl class="variablelist"> |
4426 | <dt><span class="term"><code class="varname">EXTRACT_OPTS_{BIN,LHA,PAX,RAR,TAR,ZIP,ZOO}</code></span></dt> | | 4430 | <dt><span class="term"><code class="varname">EXTRACT_OPTS_{BIN,LHA,PAX,RAR,TAR,ZIP,ZOO}</code></span></dt> |
4427 | <dd><p>Use these variables to override the default | | 4431 | <dd><p>Use these variables to override the default |
4428 | options for an extract command, which are defined in | | 4432 | options for an extract command, which are defined in |
4429 | <code class="filename">mk/extract/extract</code>.</p></dd> | | 4433 | <code class="filename">mk/extract/extract</code>.</p></dd> |
4430 | <dt><span class="term"><code class="varname">EXTRACT_USING</code></span></dt> | | 4434 | <dt><span class="term"><code class="varname">EXTRACT_USING</code></span></dt> |
4431 | <dd><p>This variable can be set to | | 4435 | <dd><p>This variable can be set to |
4432 | <code class="literal">bsdtar</code>, <code class="literal">gtar</code>, <code class="literal">nbtar</code> | | 4436 | <code class="literal">bsdtar</code>, <code class="literal">gtar</code>, <code class="literal">nbtar</code> |
4433 | (which is the default value), <code class="literal">pax</code>, or an | | 4437 | (which is the default value), <code class="literal">pax</code>, or an |
4434 | absolute pathname pointing to the command with which tar | | 4438 | absolute pathname pointing to the command with which tar |
4435 | archives should be extracted. It is preferred to choose bsdtar over gtar | | 4439 | archives should be extracted. It is preferred to choose bsdtar over gtar |
4436 | if NetBSD's pax-as-tar is not good enough.</p></dd> | | 4440 | if NetBSD's pax-as-tar is not good enough.</p></dd> |
4437 | </dl></div> | | 4441 | </dl></div> |
4438 | <p>If the <code class="filename">extract</code> program doesn't | | 4442 | <p>If the <code class="filename">extract</code> program doesn't |
4439 | serve your needs, you can also override the | | 4443 | serve your needs, you can also override the |
4440 | <code class="varname">EXTRACT_CMD</code> variable, which holds the | | 4444 | <code class="varname">EXTRACT_CMD</code> variable, which holds the |
4441 | command used for extracting the files. This command is | | 4445 | command used for extracting the files. This command is |
4442 | executed in the <code class="filename">${WRKSRC}</code> | | 4446 | executed in the <code class="filename">${WRKSRC}</code> |
4443 | directory. During execution of this command, the shell | | 4447 | directory. During execution of this command, the shell |
4444 | variable <code class="varname">extract_file</code> holds the absolute | | 4448 | variable <code class="varname">extract_file</code> holds the absolute |
4445 | pathname of the file that is going to be extracted.</p> | | 4449 | pathname of the file that is going to be extracted.</p> |
4446 | <p>And if that still does not suffice, you can override the | | 4450 | <p>And if that still does not suffice, you can override the |
4447 | <code class="varname">do-extract</code> target in the package | | 4451 | <code class="varname">do-extract</code> target in the package |
4448 | Makefile.</p> | | 4452 | Makefile.</p> |
4449 | </div> | | 4453 | </div> |
4450 | <div class="sect1"> | | 4454 | <div class="sect1"> |
4451 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4455 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4452 | <a name="build.patch"></a>13.8. The <span class="emphasis"><em>patch</em></span> phase</h2></div></div></div> | | 4456 | <a name="build.patch"></a>13.8. The <span class="emphasis"><em>patch</em></span> phase</h2></div></div></div> |
4453 | <p>After extraction, all the patches named by the | | 4457 | <p>After extraction, all the patches named by the |
4454 | <code class="varname">PATCHFILES</code>, those present in the patches | | 4458 | <code class="varname">PATCHFILES</code>, those present in the patches |
4455 | subdirectory of the package as well as in | | 4459 | subdirectory of the package as well as in |
4456 | $LOCALPATCHES/$PKGPATH (e.g. | | 4460 | $LOCALPATCHES/$PKGPATH (e.g. |
4457 | <code class="filename">/usr/local/patches/graphics/png</code>) are | | 4461 | <code class="filename">/usr/local/patches/graphics/png</code>) are |
4458 | applied. Patchfiles ending in <code class="filename">.Z</code> or | | 4462 | applied. Patchfiles ending in <code class="filename">.Z</code> or |
4459 | <code class="filename">.gz</code> are uncompressed before they are | | 4463 | <code class="filename">.gz</code> are uncompressed before they are |
4460 | applied, files ending in <code class="filename">.orig</code> or | | 4464 | applied, files ending in <code class="filename">.orig</code> or |
4461 | <code class="filename">.rej</code> are ignored. Any special options to | | 4465 | <code class="filename">.rej</code> are ignored. Any special options to |
4462 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/patch.1"><span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span></a> can be handed in | | 4466 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/patch.1"><span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span></a> can be handed in |
4463 | <code class="varname">PATCH_DIST_ARGS</code>. See <a class="xref" href="#components.patches" title="12.3. patches/*">Section 12.3, “<code class="filename">patches/*</code>”</a> for more details.</p> | | 4467 | <code class="varname">PATCH_DIST_ARGS</code>. See <a class="xref" href="#components.patches" title="12.3. patches/*">Section 12.3, “<code class="filename">patches/*</code>”</a> for more details.</p> |
4464 | <p>By default <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/patch.1"><span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span></a> is given special arguments to make it | | 4468 | <p>By default <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/patch.1"><span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span></a> is given special arguments to make it |
4465 | fail if the expected text from the patch context is not found in the | | 4469 | fail if the expected text from the patch context is not found in the |
4466 | patched file. If that happens, fix the patch file by comparing it | | 4470 | patched file. If that happens, fix the patch file by comparing it |
4467 | with the actual text in the file to be patched.</p> | | 4471 | with the actual text in the file to be patched.</p> |
4468 | </div> | | 4472 | </div> |
4469 | <div class="sect1"> | | 4473 | <div class="sect1"> |
4470 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4474 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4471 | <a name="build.tools"></a>13.9. The <span class="emphasis"><em>tools</em></span> phase</h2></div></div></div> | | 4475 | <a name="build.tools"></a>13.9. The <span class="emphasis"><em>tools</em></span> phase</h2></div></div></div> |
4472 | <p>This is covered in <a class="xref" href="#tools" title="Chapter 17. Tools needed for building or running">Chapter 17, <i>Tools needed for building or running</i></a>. | | 4476 | <p>This is covered in <a class="xref" href="#tools" title="Chapter 17. Tools needed for building or running">Chapter 17, <i>Tools needed for building or running</i></a>. |
4473 | </p> | | 4477 | </p> |
4474 | </div> | | 4478 | </div> |
4475 | <div class="sect1"> | | 4479 | <div class="sect1"> |
4476 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4480 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4477 | <a name="build.wrapper"></a>13.10. The <span class="emphasis"><em>wrapper</em></span> phase</h2></div></div></div> | | 4481 | <a name="build.wrapper"></a>13.10. The <span class="emphasis"><em>wrapper</em></span> phase</h2></div></div></div> |
4478 | <p>This phase creates wrapper programs for the compilers and | | 4482 | <p>This phase creates wrapper programs for the compilers and |
4479 | linkers. The following variables can be used to tweak the | | 4483 | linkers. The following variables can be used to tweak the |
4480 | wrappers.</p> | | 4484 | wrappers.</p> |
4481 | <div class="variablelist"><dl class="variablelist"> | | 4485 | <div class="variablelist"><dl class="variablelist"> |
4482 | <dt><span class="term"><code class="varname">ECHO_WRAPPER_MSG</code></span></dt> | | 4486 | <dt><span class="term"><code class="varname">ECHO_WRAPPER_MSG</code></span></dt> |
4483 | <dd><p>The command used to print progress | | 4487 | <dd><p>The command used to print progress |
4484 | messages. Does nothing by default. Set to | | 4488 | messages. Does nothing by default. Set to |
4485 | <code class="literal">${ECHO}</code> to see the progress | | 4489 | <code class="literal">${ECHO}</code> to see the progress |
4486 | messages.</p></dd> | | 4490 | messages.</p></dd> |
4487 | <dt><span class="term"><code class="varname">WRAPPER_DEBUG</code></span></dt> | | 4491 | <dt><span class="term"><code class="varname">WRAPPER_DEBUG</code></span></dt> |
4488 | <dd><p>This variable can be set to | | 4492 | <dd><p>This variable can be set to |
4489 | <code class="literal">yes</code> (default) or <code class="literal">no</code>, | | 4493 | <code class="literal">yes</code> (default) or <code class="literal">no</code>, |
4490 | depending on whether you want additional information in the | | 4494 | depending on whether you want additional information in the |
4491 | wrapper log file.</p></dd> | | 4495 | wrapper log file.</p></dd> |
4492 | <dt><span class="term"><code class="varname">WRAPPER_UPDATE_CACHE</code></span></dt> | | 4496 | <dt><span class="term"><code class="varname">WRAPPER_UPDATE_CACHE</code></span></dt> |
4493 | <dd><p>This variable can be set to | | 4497 | <dd><p>This variable can be set to |
4494 | <code class="literal">yes</code> or <code class="literal">no</code>, depending | | 4498 | <code class="literal">yes</code> or <code class="literal">no</code>, depending |
4495 | on whether the wrapper should use its cache, which will | | 4499 | on whether the wrapper should use its cache, which will |
4496 | improve the speed. The default value is | | 4500 | improve the speed. The default value is |
4497 | <code class="literal">yes</code>, but is forced to | | 4501 | <code class="literal">yes</code>, but is forced to |
4498 | <code class="literal">no</code> if the platform does not support | | 4502 | <code class="literal">no</code> if the platform does not support |
4499 | it.</p></dd> | | 4503 | it.</p></dd> |
4500 | <dt><span class="term"><code class="varname">WRAPPER_REORDER_CMDS</code></span></dt> | | 4504 | <dt><span class="term"><code class="varname">WRAPPER_REORDER_CMDS</code></span></dt> |
4501 | <dd><p>A list of reordering commands. A reordering | | 4505 | <dd><p>A list of reordering commands. A reordering |
4502 | command has the form | | 4506 | command has the form |
4503 | <code class="literal">reorder:l:<em class="replaceable"><code>lib1</code></em>:<em class="replaceable"><code>lib2</code></em></code>. | | 4507 | <code class="literal">reorder:l:<em class="replaceable"><code>lib1</code></em>:<em class="replaceable"><code>lib2</code></em></code>. |
4504 | It ensures that that | | 4508 | It ensures that that |
4505 | <code class="literal">-l<em class="replaceable"><code>lib1</code></em></code> occurs | | 4509 | <code class="literal">-l<em class="replaceable"><code>lib1</code></em></code> occurs |
4506 | before <code class="literal">-l<em class="replaceable"><code>lib2</code></em></code>. | | 4510 | before <code class="literal">-l<em class="replaceable"><code>lib2</code></em></code>. |
4507 | </p></dd> | | 4511 | </p></dd> |
4508 | </dl></div> | | 4512 | </dl></div> |
4509 | </div> | | 4513 | </div> |
4510 | <div class="sect1"> | | 4514 | <div class="sect1"> |
4511 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4515 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4512 | <a name="build.configure"></a>13.11. The <span class="emphasis"><em>configure</em></span> phase</h2></div></div></div> | | 4516 | <a name="build.configure"></a>13.11. The <span class="emphasis"><em>configure</em></span> phase</h2></div></div></div> |
4513 | <p>Most pieces of software need information on the header | | 4517 | <p>Most pieces of software need information on the header |
4514 | files, system calls, and library routines which are available | | 4518 | files, system calls, and library routines which are available |
4515 | on the platform they run on. The process of determining this | | 4519 | on the platform they run on. The process of determining this |
4516 | information is known as configuration, and is usually | | 4520 | information is known as configuration, and is usually |
4517 | automated. In most cases, a script is supplied with the | | 4521 | automated. In most cases, a script is supplied with the |
4518 | distfiles, and its invocation results in generation of header | | 4522 | distfiles, and its invocation results in generation of header |
4519 | files, Makefiles, etc.</p> | | 4523 | files, Makefiles, etc.</p> |
4520 | <p>If the package contains a configure script, this can be | | 4524 | <p>If the package contains a configure script, this can be |
4521 | invoked by setting <code class="varname">HAS_CONFIGURE</code> to | | 4525 | invoked by setting <code class="varname">HAS_CONFIGURE</code> to |
4522 | <span class="quote">“<span class="quote">yes</span>”</span>. If the configure script is a GNU autoconf | | 4526 | <span class="quote">“<span class="quote">yes</span>”</span>. If the configure script is a GNU autoconf |
4523 | script, you should set <code class="varname">GNU_CONFIGURE</code> to | | 4527 | script, you should set <code class="varname">GNU_CONFIGURE</code> to |
4524 | <span class="quote">“<span class="quote">yes</span>”</span> instead.</p> | | 4528 | <span class="quote">“<span class="quote">yes</span>”</span> instead.</p> |
4525 | <p>In the <code class="literal">do-configure</code> stage, a rough | | 4529 | <p>In the <code class="literal">do-configure</code> stage, a rough |
4526 | equivalent of the following command is run. See | | 4530 | equivalent of the following command is run. See |
4527 | <code class="filename">mk/configure/configure.mk</code>, target | | 4531 | <code class="filename">mk/configure/configure.mk</code>, target |
4528 | <code class="literal">do-configure-script</code> for the exact | | 4532 | <code class="literal">do-configure-script</code> for the exact |
4529 | definition.</p> | | 4533 | definition.</p> |
4530 | <pre class="programlisting"> | | 4534 | <pre class="programlisting"> |
4531 | .for dir in ${CONFIGURE_DIRS} | | 4535 | .for dir in ${CONFIGURE_DIRS} |
4532 | cd ${WRKSRC} && cd ${dir} \ | | 4536 | cd ${WRKSRC} && cd ${dir} \ |
4533 | && env ${CONFIGURE_ENV} \ | | 4537 | && env ${CONFIGURE_ENV} \ |
4534 | ${CONFIG_SHELL} ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} | | 4538 | ${CONFIG_SHELL} ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} |
4535 | .endfor | | 4539 | .endfor |
4536 | </pre> | | 4540 | </pre> |
4537 | <p><code class="varname">CONFIGURE_DIRS</code> (default: | | 4541 | <p><code class="varname">CONFIGURE_DIRS</code> (default: |
4538 | <span class="quote">“<span class="quote">.</span>”</span>) is a list of pathnames relative to | | 4542 | <span class="quote">“<span class="quote">.</span>”</span>) is a list of pathnames relative to |
4539 | <code class="varname">WRKSRC</code>. In each of these directories, the | | 4543 | <code class="varname">WRKSRC</code>. In each of these directories, the |
4540 | configure script is run with the environment | | 4544 | configure script is run with the environment |
4541 | <code class="varname">CONFIGURE_ENV</code> and arguments | | 4545 | <code class="varname">CONFIGURE_ENV</code> and arguments |
4542 | <code class="varname">CONFIGURE_ARGS</code>. The variables | | 4546 | <code class="varname">CONFIGURE_ARGS</code>. The variables |
4543 | <code class="varname">CONFIGURE_ENV</code>, | | 4547 | <code class="varname">CONFIGURE_ENV</code>, |
4544 | <code class="varname">CONFIGURE_SCRIPT</code> (default: | | 4548 | <code class="varname">CONFIGURE_SCRIPT</code> (default: |
4545 | <span class="quote">“<span class="quote">./configure</span>”</span>) and | | 4549 | <span class="quote">“<span class="quote">./configure</span>”</span>) and |
4546 | <code class="varname">CONFIGURE_ARGS</code> may all be changed by the | | 4550 | <code class="varname">CONFIGURE_ARGS</code> may all be changed by the |
4547 | package.</p> | | 4551 | package.</p> |
4548 | <p>If the program uses the Perl way of configuration (mainly Perl | | 4552 | <p>If the program uses the Perl way of configuration (mainly Perl |
4549 | modules, but not only), i.e. a file called | | 4553 | modules, but not only), i.e. a file called |
4550 | <code class="filename">Makefile.PL</code>, it should include | | 4554 | <code class="filename">Makefile.PL</code>, it should include |
4551 | <code class="filename">../../lang/perl5/module.mk</code>. To set any parameter for | | 4555 | <code class="filename">../../lang/perl5/module.mk</code>. To set any parameter for |
4552 | <code class="filename">Makefile.PL</code> use the <code class="varname">MAKE_PARAMS</code> | | 4556 | <code class="filename">Makefile.PL</code> use the <code class="varname">MAKE_PARAMS</code> |
4553 | variable (e.g., <code class="literal">MAKE_PARAMS+=foo=bar</code></p> | | 4557 | variable (e.g., <code class="literal">MAKE_PARAMS+=foo=bar</code></p> |
4554 | <p>If the program uses an <code class="filename">Imakefile</code> | | 4558 | <p>If the program uses an <code class="filename">Imakefile</code> |
4555 | for configuration, the appropriate steps can be invoked by | | 4559 | for configuration, the appropriate steps can be invoked by |
4556 | setting <code class="varname">USE_IMAKE</code> to | | 4560 | setting <code class="varname">USE_IMAKE</code> to |
4557 | <span class="quote">“<span class="quote">yes</span>”</span>. If you only need xmkmf, add it to <code class="varname">USE_TOOLS</code>. | | 4561 | <span class="quote">“<span class="quote">yes</span>”</span>. If you only need xmkmf, add it to <code class="varname">USE_TOOLS</code>. |
4558 | You can add variables to xmkmf's environment by adding them to the | | 4562 | You can add variables to xmkmf's environment by adding them to the |
4559 | <code class="varname">SCRIPTS_ENV</code> variable.</p> | | 4563 | <code class="varname">SCRIPTS_ENV</code> variable.</p> |
4560 | <p>If the program uses <code class="filename">cmake</code> | | 4564 | <p>If the program uses <code class="filename">cmake</code> |
4561 | for configuration, the appropriate steps can be invoked by | | 4565 | for configuration, the appropriate steps can be invoked by |
4562 | setting <code class="varname">USE_CMAKE</code> to <span class="quote">“<span class="quote">yes</span>”</span>. | | 4566 | setting <code class="varname">USE_CMAKE</code> to <span class="quote">“<span class="quote">yes</span>”</span>. |
4563 | You can add variables to cmake's environment by adding them to the | | 4567 | You can add variables to cmake's environment by adding them to the |
4564 | <code class="varname">CONFIGURE_ENV</code> variable and arguments to cmake | | 4568 | <code class="varname">CONFIGURE_ENV</code> variable and arguments to cmake |
4565 | by adding them to the <code class="varname">CMAKE_ARGS</code> variable. | | 4569 | by adding them to the <code class="varname">CMAKE_ARGS</code> variable. |
4566 | The top directory argument is given by the | | 4570 | The top directory argument is given by the |
4567 | <code class="varname">CMAKE_ARG_PATH</code> variable, that defaults to | | 4571 | <code class="varname">CMAKE_ARG_PATH</code> variable, that defaults to |
4568 | <span class="quote">“<span class="quote">.</span>”</span> (relative to <code class="varname">CONFIGURE_DIRS</code>)</p> | | 4572 | <span class="quote">“<span class="quote">.</span>”</span> (relative to <code class="varname">CONFIGURE_DIRS</code>)</p> |
4569 | <p>If there is no configure step at all, set | | 4573 | <p>If there is no configure step at all, set |
4570 | <code class="varname">NO_CONFIGURE</code> to <span class="quote">“<span class="quote">yes</span>”</span>.</p> | | 4574 | <code class="varname">NO_CONFIGURE</code> to <span class="quote">“<span class="quote">yes</span>”</span>.</p> |
4571 | </div> | | 4575 | </div> |
4572 | <div class="sect1"> | | 4576 | <div class="sect1"> |
4573 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4577 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4574 | <a name="build.build"></a>13.12. The <span class="emphasis"><em>build</em></span> phase</h2></div></div></div> | | 4578 | <a name="build.build"></a>13.12. The <span class="emphasis"><em>build</em></span> phase</h2></div></div></div> |
4575 | <p>For building a package, a rough equivalent of the following | | 4579 | <p>For building a package, a rough equivalent of the following |
4576 | code is executed; see <code class="filename">mk/build/build.mk</code>, target | | 4580 | code is executed; see <code class="filename">mk/build/build.mk</code>, target |
4577 | <code class="literal">do-build</code> for the exact definition.</p> | | 4581 | <code class="literal">do-build</code> for the exact definition.</p> |
4578 | <pre class="programlisting"> | | 4582 | <pre class="programlisting"> |
4579 | .for dir in ${BUILD_DIRS} | | 4583 | .for dir in ${BUILD_DIRS} |
4580 | cd ${WRKSRC} && cd ${dir} \ | | 4584 | cd ${WRKSRC} && cd ${dir} \ |
4581 | && env ${MAKE_ENV} \ | | 4585 | && env ${MAKE_ENV} \ |
4582 | ${MAKE_PROGRAM} ${MAKE_FLAGS} ${BUILD_MAKE_FLAGS} \ | | 4586 | ${MAKE_PROGRAM} ${MAKE_FLAGS} ${BUILD_MAKE_FLAGS} \ |
4583 | -f ${MAKE_FILE} \ | | 4587 | -f ${MAKE_FILE} \ |
4584 | ${BUILD_TARGET} | | 4588 | ${BUILD_TARGET} |
4585 | .endfor | | 4589 | .endfor |
4586 | </pre> | | 4590 | </pre> |
4587 | <p><code class="varname">BUILD_DIRS</code> (default: | | 4591 | <p><code class="varname">BUILD_DIRS</code> (default: |
4588 | <span class="quote">“<span class="quote">.</span>”</span>) is a list of pathnames relative to | | 4592 | <span class="quote">“<span class="quote">.</span>”</span>) is a list of pathnames relative to |
4589 | <code class="varname">WRKSRC</code>. In each of these directories, | | 4593 | <code class="varname">WRKSRC</code>. In each of these directories, |
4590 | <code class="varname">MAKE_PROGRAM</code> is run with the environment | | 4594 | <code class="varname">MAKE_PROGRAM</code> is run with the environment |
4591 | <code class="varname">MAKE_ENV</code> and arguments | | 4595 | <code class="varname">MAKE_ENV</code> and arguments |
4592 | <code class="varname">BUILD_MAKE_FLAGS</code>. The variables | | 4596 | <code class="varname">BUILD_MAKE_FLAGS</code>. The variables |
4593 | <code class="varname">MAKE_ENV</code>, | | 4597 | <code class="varname">MAKE_ENV</code>, |
4594 | <code class="varname">BUILD_MAKE_FLAGS</code>, | | 4598 | <code class="varname">BUILD_MAKE_FLAGS</code>, |
4595 | <code class="varname">MAKE_FILE</code> and | | 4599 | <code class="varname">MAKE_FILE</code> and |
4596 | <code class="varname">BUILD_TARGET</code> may all be changed by the | | 4600 | <code class="varname">BUILD_TARGET</code> may all be changed by the |
4597 | package.</p> | | 4601 | package.</p> |
4598 | <p>The default value of <code class="varname">MAKE_PROGRAM</code> is | | 4602 | <p>The default value of <code class="varname">MAKE_PROGRAM</code> is |
4599 | <span class="quote">“<span class="quote">gmake</span>”</span> if <code class="varname">USE_TOOLS</code> contains | | 4603 | <span class="quote">“<span class="quote">gmake</span>”</span> if <code class="varname">USE_TOOLS</code> contains |
4600 | <span class="quote">“<span class="quote">gmake</span>”</span>, <span class="quote">“<span class="quote">make</span>”</span> otherwise. The | | 4604 | <span class="quote">“<span class="quote">gmake</span>”</span>, <span class="quote">“<span class="quote">make</span>”</span> otherwise. The |
4601 | default value of <code class="varname">MAKE_FILE</code> is | | 4605 | default value of <code class="varname">MAKE_FILE</code> is |
4602 | <span class="quote">“<span class="quote">Makefile</span>”</span>, and <code class="varname">BUILD_TARGET</code> | | 4606 | <span class="quote">“<span class="quote">Makefile</span>”</span>, and <code class="varname">BUILD_TARGET</code> |
4603 | defaults to <span class="quote">“<span class="quote">all</span>”</span>.</p> | | 4607 | defaults to <span class="quote">“<span class="quote">all</span>”</span>.</p> |
4604 | <p>If there is no build step at all, set | | 4608 | <p>If there is no build step at all, set |
4605 | <code class="varname">NO_BUILD</code> to <span class="quote">“<span class="quote">yes</span>”</span>.</p> | | 4609 | <code class="varname">NO_BUILD</code> to <span class="quote">“<span class="quote">yes</span>”</span>.</p> |
4606 | </div> | | 4610 | </div> |
4607 | <div class="sect1"> | | 4611 | <div class="sect1"> |
4608 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4612 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4609 | <a name="build.test"></a>13.13. The <span class="emphasis"><em>test</em></span> phase</h2></div></div></div> | | 4613 | <a name="build.test"></a>13.13. The <span class="emphasis"><em>test</em></span> phase</h2></div></div></div> |
4610 | <p>[TODO]</p> | | 4614 | <p>[TODO]</p> |
4611 | </div> | | 4615 | </div> |
4612 | <div class="sect1"> | | 4616 | <div class="sect1"> |
4613 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4617 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4614 | <a name="build.install"></a>13.14. The <span class="emphasis"><em>install</em></span> phase</h2></div></div></div> | | 4618 | <a name="build.install"></a>13.14. The <span class="emphasis"><em>install</em></span> phase</h2></div></div></div> |
4615 | <p>Once the build stage has completed, the final step is to | | 4619 | <p>Once the build stage has completed, the final step is to |
4616 | install the software in public directories, so users can | | 4620 | install the software in public directories, so users can |
4617 | access the programs and files.</p> | | 4621 | access the programs and files.</p> |
4618 | <p>In the <span class="emphasis"><em>install</em></span> phase, a rough equivalent | | 4622 | <p>In the <span class="emphasis"><em>install</em></span> phase, a rough equivalent |
4619 | of the following code is executed; see | | 4623 | of the following code is executed; see |
4620 | <code class="filename">mk/install/install.mk</code>, target | | 4624 | <code class="filename">mk/install/install.mk</code>, target |
4621 | <code class="literal">do-install</code> for the exact definition. Additionally, | | 4625 | <code class="literal">do-install</code> for the exact definition. Additionally, |
4622 | before and after this code, several consistency checks are run | | 4626 | before and after this code, several consistency checks are run |
4623 | against the files-to-be-installed, see | | 4627 | against the files-to-be-installed, see |
4624 | <code class="filename">mk/check/*.mk</code> for details.</p> | | 4628 | <code class="filename">mk/check/*.mk</code> for details.</p> |
4625 | <pre class="programlisting"> | | 4629 | <pre class="programlisting"> |
4626 | .for dir in ${INSTALL_DIRS} | | 4630 | .for dir in ${INSTALL_DIRS} |
4627 | cd ${WRKSRC} && cd ${dir} \ | | 4631 | cd ${WRKSRC} && cd ${dir} \ |
4628 | && env ${INSTALL_ENV} ${MAKE_ENV} \ | | 4632 | && env ${INSTALL_ENV} ${MAKE_ENV} \ |
4629 | ${MAKE_PROGRAM} ${MAKE_FLAGS} ${INSTALL_MAKE_FLAGS} \ | | 4633 | ${MAKE_PROGRAM} ${MAKE_FLAGS} ${INSTALL_MAKE_FLAGS} \ |
4630 | -f ${MAKE_FILE} ${INSTALL_TARGET} | | 4634 | -f ${MAKE_FILE} ${INSTALL_TARGET} |
4631 | .endfor | | 4635 | .endfor |
4632 | </pre> | | 4636 | </pre> |
4633 | <p>The variable's meanings are analogous to the ones in the | | 4637 | <p>The variable's meanings are analogous to the ones in the |
4634 | <span class="emphasis"><em>build</em></span> phase. | | 4638 | <span class="emphasis"><em>build</em></span> phase. |
4635 | <code class="varname">INSTALL_DIRS</code> defaults to | | 4639 | <code class="varname">INSTALL_DIRS</code> defaults to |
4636 | <code class="varname">BUILD_DIRS</code>. <code class="varname">INSTALL_TARGET</code> | | 4640 | <code class="varname">BUILD_DIRS</code>. <code class="varname">INSTALL_TARGET</code> |
4637 | is <span class="quote">“<span class="quote">install</span>”</span> by default, plus | | 4641 | is <span class="quote">“<span class="quote">install</span>”</span> by default, plus |
4638 | <span class="quote">“<span class="quote">install.man</span>”</span> if <code class="varname">USE_IMAKE</code> is | | 4642 | <span class="quote">“<span class="quote">install.man</span>”</span> if <code class="varname">USE_IMAKE</code> is |
4639 | defined and <code class="varname">NO_INSTALL_MANPAGES</code> is not | | 4643 | defined and <code class="varname">NO_INSTALL_MANPAGES</code> is not |
4640 | defined.</p> | | 4644 | defined.</p> |
4641 | <p>In the <span class="emphasis"><em>install</em></span> phase, the following | | 4645 | <p>In the <span class="emphasis"><em>install</em></span> phase, the following |
4642 | variables are useful. They are all variations of the | | 4646 | variables are useful. They are all variations of the |
4643 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/install.1"><span class="citerefentry"><span class="refentrytitle">install</span>(1)</span></a> command that have the owner, group and | | 4647 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/install.1"><span class="citerefentry"><span class="refentrytitle">install</span>(1)</span></a> command that have the owner, group and |
4644 | permissions preset. <code class="varname">INSTALL</code> is the plain | | 4648 | permissions preset. <code class="varname">INSTALL</code> is the plain |
4645 | install command. The specialized variants, together with their | | 4649 | install command. The specialized variants, together with their |
4646 | intended use, are:</p> | | 4650 | intended use, are:</p> |
4647 | <div class="variablelist"><dl class="variablelist"> | | 4651 | <div class="variablelist"><dl class="variablelist"> |
4648 | <dt><span class="term"><code class="varname">INSTALL_PROGRAM_DIR</code></span></dt> | | 4652 | <dt><span class="term"><code class="varname">INSTALL_PROGRAM_DIR</code></span></dt> |
4649 | <dd><p>directories that contain | | 4653 | <dd><p>directories that contain |
4650 | binaries</p></dd> | | 4654 | binaries</p></dd> |
4651 | <dt><span class="term"><code class="varname">INSTALL_SCRIPT_DIR</code></span></dt> | | 4655 | <dt><span class="term"><code class="varname">INSTALL_SCRIPT_DIR</code></span></dt> |
4652 | <dd><p>directories that contain | | 4656 | <dd><p>directories that contain |
4653 | scripts</p></dd> | | 4657 | scripts</p></dd> |
4654 | <dt><span class="term"><code class="varname">INSTALL_LIB_DIR</code></span></dt> | | 4658 | <dt><span class="term"><code class="varname">INSTALL_LIB_DIR</code></span></dt> |
4655 | <dd><p>directories that contain shared and static | | 4659 | <dd><p>directories that contain shared and static |
4656 | libraries</p></dd> | | 4660 | libraries</p></dd> |
4657 | <dt><span class="term"><code class="varname">INSTALL_DATA_DIR</code></span></dt> | | 4661 | <dt><span class="term"><code class="varname">INSTALL_DATA_DIR</code></span></dt> |
4658 | <dd><p>directories that contain data | | 4662 | <dd><p>directories that contain data |
4659 | files</p></dd> | | 4663 | files</p></dd> |
4660 | <dt><span class="term"><code class="varname">INSTALL_MAN_DIR</code></span></dt> | | 4664 | <dt><span class="term"><code class="varname">INSTALL_MAN_DIR</code></span></dt> |
4661 | <dd><p>directories that contain man | | 4665 | <dd><p>directories that contain man |
4662 | pages</p></dd> | | 4666 | pages</p></dd> |
4663 | <dt><span class="term"><code class="varname">INSTALL_GAME_DIR</code></span></dt> | | 4667 | <dt><span class="term"><code class="varname">INSTALL_GAME_DIR</code></span></dt> |
4664 | <dd><p>directories that contain data files for games | | 4668 | <dd><p>directories that contain data files for games |
4665 | </p></dd> | | 4669 | </p></dd> |
4666 | <dt><span class="term"><code class="varname">INSTALL_PROGRAM</code></span></dt> | | 4670 | <dt><span class="term"><code class="varname">INSTALL_PROGRAM</code></span></dt> |
4667 | <dd><p>binaries that can be stripped from debugging | | 4671 | <dd><p>binaries that can be stripped from debugging |
4668 | symbols</p></dd> | | 4672 | symbols</p></dd> |
4669 | <dt><span class="term"><code class="varname">INSTALL_SCRIPT</code></span></dt> | | 4673 | <dt><span class="term"><code class="varname">INSTALL_SCRIPT</code></span></dt> |
4670 | <dd><p>binaries that cannot be | | 4674 | <dd><p>binaries that cannot be |
4671 | stripped</p></dd> | | 4675 | stripped</p></dd> |
4672 | <dt><span class="term"><code class="varname">INSTALL_GAME</code></span></dt> | | 4676 | <dt><span class="term"><code class="varname">INSTALL_GAME</code></span></dt> |
4673 | <dd><p>game | | 4677 | <dd><p>game |
4674 | binaries</p></dd> | | 4678 | binaries</p></dd> |
4675 | <dt><span class="term"><code class="varname">INSTALL_LIB</code></span></dt> | | 4679 | <dt><span class="term"><code class="varname">INSTALL_LIB</code></span></dt> |
4676 | <dd><p>shared and static | | 4680 | <dd><p>shared and static |
4677 | libraries</p></dd> | | 4681 | libraries</p></dd> |
4678 | <dt><span class="term"><code class="varname">INSTALL_DATA</code></span></dt> | | 4682 | <dt><span class="term"><code class="varname">INSTALL_DATA</code></span></dt> |
4679 | <dd><p>data files</p></dd> | | 4683 | <dd><p>data files</p></dd> |
4680 | <dt><span class="term"><code class="varname">INSTALL_GAME_DATA</code></span></dt> | | 4684 | <dt><span class="term"><code class="varname">INSTALL_GAME_DATA</code></span></dt> |
4681 | <dd><p>data files for | | 4685 | <dd><p>data files for |
4682 | games</p></dd> | | 4686 | games</p></dd> |
4683 | <dt><span class="term"><code class="varname">INSTALL_MAN</code></span></dt> | | 4687 | <dt><span class="term"><code class="varname">INSTALL_MAN</code></span></dt> |
4684 | <dd><p>man pages</p></dd> | | 4688 | <dd><p>man pages</p></dd> |
4685 | </dl></div> | | 4689 | </dl></div> |
4686 | <p>Some other variables are:</p> | | 4690 | <p>Some other variables are:</p> |
4687 | <div class="variablelist"><dl class="variablelist"> | | 4691 | <div class="variablelist"><dl class="variablelist"> |
4688 | <dt><span class="term"><code class="varname">INSTALL_UNSTRIPPED</code></span></dt> | | 4692 | <dt><span class="term"><code class="varname">INSTALL_UNSTRIPPED</code></span></dt> |
4689 | <dd><p>If set to <code class="literal">yes</code>, do not run <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/strip.1"><span class="citerefentry"><span class="refentrytitle">strip</span>(1)</span></a> | | 4693 | <dd><p>If set to <code class="literal">yes</code>, do not run <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/strip.1"><span class="citerefentry"><span class="refentrytitle">strip</span>(1)</span></a> |
4690 | when installing binaries. Any debugging sections and symbols present in | | 4694 | when installing binaries. Any debugging sections and symbols present in |
4691 | binaries will be preserved. | | 4695 | binaries will be preserved. |
4692 | </p></dd> | | 4696 | </p></dd> |
4693 | <dt><span class="term"><code class="varname">INSTALLATION_DIRS</code></span></dt> | | 4697 | <dt><span class="term"><code class="varname">INSTALLATION_DIRS</code></span></dt> |
4694 | <dd><p>A list of directories relative to | | 4698 | <dd><p>A list of directories relative to |
4695 | <code class="varname">PREFIX</code> that are created by pkgsrc at the | | 4699 | <code class="varname">PREFIX</code> that are created by pkgsrc at the |
4696 | beginning of the <span class="emphasis"><em>install</em></span> phase. | | 4700 | beginning of the <span class="emphasis"><em>install</em></span> phase. |
4697 | The package is supposed to create all needed directories itself | | 4701 | The package is supposed to create all needed directories itself |
4698 | before installing files to it and list all other directories here. | | 4702 | before installing files to it and list all other directories here. |
4699 | </p></dd> | | 4703 | </p></dd> |
4700 | </dl></div> | | 4704 | </dl></div> |
4701 | <p>In the rare cases that a package shouldn't install anything, | | 4705 | <p>In the rare cases that a package shouldn't install anything, |
4702 | set <code class="varname">NO_INSTALL</code> to <span class="quote">“<span class="quote">yes</span>”</span>. This is | | 4706 | set <code class="varname">NO_INSTALL</code> to <span class="quote">“<span class="quote">yes</span>”</span>. This is |
4703 | mostly relevant for packages in the <code class="filename">regress</code> | | 4707 | mostly relevant for packages in the <code class="filename">regress</code> |
4704 | category.</p> | | 4708 | category.</p> |
4705 | </div> | | 4709 | </div> |
4706 | <div class="sect1"> | | 4710 | <div class="sect1"> |
4707 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4711 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4708 | <a name="build.package"></a>13.15. The <span class="emphasis"><em>package</em></span> phase</h2></div></div></div> | | 4712 | <a name="build.package"></a>13.15. The <span class="emphasis"><em>package</em></span> phase</h2></div></div></div> |
4709 | <p>Once the install stage has completed, a binary package of | | 4713 | <p>Once the install stage has completed, a binary package of |
4710 | the installed files can be built. These binary packages can be | | 4714 | the installed files can be built. These binary packages can be |
4711 | used for quick installation without previous compilation, e.g. by | | 4715 | used for quick installation without previous compilation, e.g. by |
4712 | the <span class="command"><strong>make bin-install</strong></span> or by using | | 4716 | the <span class="command"><strong>make bin-install</strong></span> or by using |
4713 | <span class="command"><strong>pkg_add</strong></span>.</p> | | 4717 | <span class="command"><strong>pkg_add</strong></span>.</p> |
4714 | <p>By default, the binary packages are created in | | 4718 | <p>By default, the binary packages are created in |
4715 | <code class="filename">${PACKAGES}/All</code> and symlinks are created in | | 4719 | <code class="filename">${PACKAGES}/All</code> and symlinks are created in |
4716 | <code class="filename">${PACKAGES}/<em class="replaceable"><code>category</code></em></code>, | | 4720 | <code class="filename">${PACKAGES}/<em class="replaceable"><code>category</code></em></code>, |
4717 | one for each category in the <code class="varname">CATEGORIES</code> | | 4721 | one for each category in the <code class="varname">CATEGORIES</code> |
4718 | variable. <code class="varname">PACKAGES</code> defaults to | | 4722 | variable. <code class="varname">PACKAGES</code> defaults to |
4719 | <code class="filename">pkgsrc/packages</code>.</p> | | 4723 | <code class="filename">pkgsrc/packages</code>.</p> |
4720 | </div> | | 4724 | </div> |
4721 | <div class="sect1"> | | 4725 | <div class="sect1"> |
4722 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4726 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4723 | <a name="build.clean"></a>13.16. Cleaning up</h2></div></div></div> | | 4727 | <a name="build.clean"></a>13.16. Cleaning up</h2></div></div></div> |
4724 | <p>Once you're finished with a package, you can clean the work | | 4728 | <p>Once you're finished with a package, you can clean the work |
4725 | directory by running <span class="command"><strong>make clean</strong></span>. If you want | | 4729 | directory by running <span class="command"><strong>make clean</strong></span>. If you want |
4726 | to clean the work directories of all dependencies too, use | | 4730 | to clean the work directories of all dependencies too, use |
4727 | <span class="command"><strong>make clean-depends</strong></span>.</p> | | 4731 | <span class="command"><strong>make clean-depends</strong></span>.</p> |
4728 | </div> | | 4732 | </div> |
4729 | <div class="sect1"> | | 4733 | <div class="sect1"> |
4730 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 4734 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
4731 | <a name="build.helpful-targets"></a>13.17. Other helpful targets</h2></div></div></div> | | 4735 | <a name="build.helpful-targets"></a>13.17. Other helpful targets</h2></div></div></div> |
4732 | <div class="variablelist"><dl class="variablelist"> | | 4736 | <div class="variablelist"><dl class="variablelist"> |
4733 | <dt><span class="term">pre/post-*</span></dt> | | 4737 | <dt><span class="term">pre/post-*</span></dt> |
4734 | <dd> | | 4738 | <dd> |
4735 | <p>For any of the main targets described in the previous | | 4739 | <p>For any of the main targets described in the previous |
4736 | section (configure, build, install, etc.), two auxiliary | | 4740 | section (configure, build, install, etc.), two auxiliary |
4737 | targets exist with | | 4741 | targets exist with |
4738 | <span class="quote">“<span class="quote">pre-</span>”</span> and <span class="quote">“<span class="quote">post-</span>”</span> used as a | | 4742 | <span class="quote">“<span class="quote">pre-</span>”</span> and <span class="quote">“<span class="quote">post-</span>”</span> used as a |
4739 | prefix for the main target's name. These targets are | | 4743 | prefix for the main target's name. These targets are |
4740 | invoked before and after the main target is called, | | 4744 | invoked before and after the main target is called, |
4741 | allowing extra configuration or installation steps be | | 4745 | allowing extra configuration or installation steps be |
4742 | performed from a package's Makefile, for example, which | | 4746 | performed from a package's Makefile, for example, which |
4743 | a program's configure script or install target | | 4747 | a program's configure script or install target |
4744 | omitted.</p> | | 4748 | omitted.</p> |
4745 | <p>About 5% of the pkgsrc packages define their custom | | 4749 | <p>About 5% of the pkgsrc packages define their custom |
4746 | post-extract target, another 5% define pre-configure, and 10% | | 4750 | post-extract target, another 5% define pre-configure, and 10% |
4747 | define post-install. The other pre/post-* targets are defined | | 4751 | define post-install. The other pre/post-* targets are defined |
4748 | even less often.</p> | | 4752 | even less often.</p> |
4749 | </dd> | | 4753 | </dd> |
4750 | <dt><span class="term">do-*</span></dt> | | 4754 | <dt><span class="term">do-*</span></dt> |
4751 | <dd> | | 4755 | <dd> |
4752 | <p>Should one of the main targets do the wrong thing, | | 4756 | <p>Should one of the main targets do the wrong thing, |
4753 | and should there be no variable to fix this, you can | | 4757 | and should there be no variable to fix this, you can |
4754 | redefine it with the do-* target. (Note that redefining | | 4758 | redefine it with the do-* target. (Note that redefining |
4755 | the target itself instead of the do-* target is a bad | | 4759 | the target itself instead of the do-* target is a bad |
4756 | idea, as the pre-* and post-* targets won't be called | | 4760 | idea, as the pre-* and post-* targets won't be called |
4757 | anymore, etc.)</p> | | 4761 | anymore, etc.)</p> |
4758 | <p>About 15% of the pkgsrc packages override the default | | 4762 | <p>About 15% of the pkgsrc packages override the default |
4759 | do-install, the other do-* targets are overridden even less | | 4763 | do-install, the other do-* targets are overridden even less |
4760 | often.</p> | | 4764 | often.</p> |
4761 | </dd> | | 4765 | </dd> |
4762 | <dt><span class="term">reinstall</span></dt> | | 4766 | <dt><span class="term">reinstall</span></dt> |
4763 | <dd> | | 4767 | <dd> |
4764 | <p>If you did a <span class="command"><strong>make install</strong></span> and | | 4768 | <p>If you did a <span class="command"><strong>make install</strong></span> and |
4765 | you noticed some file was not installed properly, you | | 4769 | you noticed some file was not installed properly, you |
4766 | can repeat the installation with this target, which will | | 4770 | can repeat the installation with this target, which will |
4767 | ignore the <span class="quote">“<span class="quote">already installed</span>”</span> flag.</p> | | 4771 | ignore the <span class="quote">“<span class="quote">already installed</span>”</span> flag.</p> |
4768 | <p>This is the default value of | | 4772 | <p>This is the default value of |
4769 | <code class="varname">DEPENDS_TARGET</code> except in the case of | | 4773 | <code class="varname">DEPENDS_TARGET</code> except in the case of |
4770 | <span class="command"><strong>make update</strong></span> and <span class="command"><strong>make | | 4774 | <span class="command"><strong>make update</strong></span> and <span class="command"><strong>make |
4771 | package</strong></span>, where the defaults are | | 4775 | package</strong></span>, where the defaults are |
4772 | <span class="quote">“<span class="quote">package</span>”</span> and <span class="quote">“<span class="quote">update</span>”</span>, | | 4776 | <span class="quote">“<span class="quote">package</span>”</span> and <span class="quote">“<span class="quote">update</span>”</span>, |
4773 | respectively.</p> | | 4777 | respectively.</p> |
4774 | </dd> | | 4778 | </dd> |
4775 | <dt><span class="term">deinstall</span></dt> | | 4779 | <dt><span class="term">deinstall</span></dt> |
4776 | <dd> | | 4780 | <dd> |
4777 | <p>This target does a <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> in the | | 4781 | <p>This target does a <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> in the |
4778 | current directory, effectively de-installing the | | 4782 | current directory, effectively de-installing the |
4779 | package. The following variables can be used to tune the | | 4783 | package. The following variables can be used to tune the |
4780 | behaviour:</p> | | 4784 | behaviour:</p> |
4781 | <div class="variablelist"><dl class="variablelist"> | | 4785 | <div class="variablelist"><dl class="variablelist"> |
4782 | <dt><span class="term"><code class="varname">PKG_VERBOSE</code></span></dt> | | 4786 | <dt><span class="term"><code class="varname">PKG_VERBOSE</code></span></dt> |
4783 | <dd><p>Add a "-v" to the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> command.</p></dd> | | 4787 | <dd><p>Add a "-v" to the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> command.</p></dd> |
4784 | <dt><span class="term"><code class="varname">DEINSTALLDEPENDS</code></span></dt> | | 4788 | <dt><span class="term"><code class="varname">DEINSTALLDEPENDS</code></span></dt> |
4785 | <dd><p>Remove all packages that require (depend on) | | 4789 | <dd><p>Remove all packages that require (depend on) |
4786 | the given package. This can be used to remove any | | 4790 | the given package. This can be used to remove any |
4787 | packages that may have been pulled in by a given | | 4791 | packages that may have been pulled in by a given |
4788 | package, e.g. if <span class="command"><strong>make deinstall | | 4792 | package, e.g. if <span class="command"><strong>make deinstall |
4789 | DEINSTALLDEPENDS=1</strong></span> is done in | | 4793 | DEINSTALLDEPENDS=1</strong></span> is done in |
4790 | <code class="filename">pkgsrc/x11/kde</code>, this is | | 4794 | <code class="filename">pkgsrc/x11/kde</code>, this is |
4791 | likely to remove whole KDE. Works by adding | | 4795 | likely to remove whole KDE. Works by adding |
4792 | <span class="quote">“<span class="quote">-R</span>”</span> to the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> | | 4796 | <span class="quote">“<span class="quote">-R</span>”</span> to the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> |
4793 | command line.</p></dd> | | 4797 | command line.</p></dd> |
4794 | </dl></div> | | 4798 | </dl></div> |
4795 | </dd> | | 4799 | </dd> |
4796 | <dt><span class="term">bin-install</span></dt> | | 4800 | <dt><span class="term">bin-install</span></dt> |
4797 | <dd><p>Install a binary package from local disk and via FTP | | 4801 | <dd><p>Install a binary package from local disk and via FTP |
4798 | from a list of sites (see the | | 4802 | from a list of sites (see the |
4799 | <code class="varname">BINPKG_SITES</code> variable), and do a | | 4803 | <code class="varname">BINPKG_SITES</code> variable), and do a |
4800 | <span class="command"><strong>make package</strong></span> if no binary package is | | 4804 | <span class="command"><strong>make package</strong></span> if no binary package is |
4801 | available anywhere. The arguments given to | | 4805 | available anywhere. The arguments given to |
4802 | <span class="command"><strong>pkg_add</strong></span> can be set via | | 4806 | <span class="command"><strong>pkg_add</strong></span> can be set via |
4803 | <code class="varname">BIN_INSTALL_FLAGS</code> e.g., to do verbose | | 4807 | <code class="varname">BIN_INSTALL_FLAGS</code> e.g., to do verbose |
4804 | operation, etc.</p></dd> | | 4808 | operation, etc.</p></dd> |
4805 | <dt><span class="term">install-clean</span></dt> | | 4809 | <dt><span class="term">install-clean</span></dt> |
4806 | <dd><p>This target removes the state files for the "install" and later | | 4810 | <dd><p>This target removes the state files for the "install" and later |
4807 | phases so that the "install" target may be re-invoked. This can be | | 4811 | phases so that the "install" target may be re-invoked. This can be |
4808 | used after editing the PLIST to install the package without | | 4812 | used after editing the PLIST to install the package without |
4809 | rebuilding it.</p></dd> | | 4813 | rebuilding it.</p></dd> |
4810 | <dt><span class="term">build-clean</span></dt> | | 4814 | <dt><span class="term">build-clean</span></dt> |
4811 | <dd><p>This target removes the state files for the "build" and later | | 4815 | <dd><p>This target removes the state files for the "build" and later |
4812 | phases so that the "build" target may be re-invoked.</p></dd> | | 4816 | phases so that the "build" target may be re-invoked.</p></dd> |
4813 | <dt><span class="term">update</span></dt> | | 4817 | <dt><span class="term">update</span></dt> |
4814 | <dd> | | 4818 | <dd> |
4815 | <p>This target causes the current package to be | | 4819 | <p>This target causes the current package to be |
4816 | updated to the latest version. The package and all | | 4820 | updated to the latest version. The package and all |
4817 | depending packages first get de-installed, then current | | 4821 | depending packages first get de-installed, then current |
4818 | versions of the corresponding packages get compiled and | | 4822 | versions of the corresponding packages get compiled and |
4819 | installed. This is similar to manually noting which | | 4823 | installed. This is similar to manually noting which |
4820 | packages are currently installed, then performing a | | 4824 | packages are currently installed, then performing a |
4821 | series of <span class="command"><strong>make deinstall</strong></span> and | | 4825 | series of <span class="command"><strong>make deinstall</strong></span> and |
4822 | <span class="command"><strong>make install</strong></span> (or whatever | | 4826 | <span class="command"><strong>make install</strong></span> (or whatever |
4823 | <code class="varname">UPDATE_TARGET</code> is set to) for these | | 4827 | <code class="varname">UPDATE_TARGET</code> is set to) for these |
4824 | packages.</p> | | 4828 | packages.</p> |
4825 | <p>You can use the <span class="quote">“<span class="quote">update</span>”</span> target to | | 4829 | <p>You can use the <span class="quote">“<span class="quote">update</span>”</span> target to |
4826 | resume package updating in case a previous <span class="command"><strong>make | | 4830 | resume package updating in case a previous <span class="command"><strong>make |
4827 | update</strong></span> was interrupted for some reason. | | 4831 | update</strong></span> was interrupted for some reason. |
4828 | However, in this case, make sure you don't call | | 4832 | However, in this case, make sure you don't call |
4829 | <span class="command"><strong>make clean</strong></span> or otherwise remove the | | 4833 | <span class="command"><strong>make clean</strong></span> or otherwise remove the |
4830 | list of dependent packages in <code class="varname">WRKDIR</code>. | | 4834 | list of dependent packages in <code class="varname">WRKDIR</code>. |
4831 | Otherwise, you lose the ability to automatically update | | 4835 | Otherwise, you lose the ability to automatically update |
4832 | the current package along with the dependent packages | | 4836 | the current package along with the dependent packages |
4833 | you have installed.</p> | | 4837 | you have installed.</p> |
4834 | <p>Resuming an interrupted <span class="command"><strong>make | | 4838 | <p>Resuming an interrupted <span class="command"><strong>make |
4835 | update</strong></span> will only work as long as the package | | 4839 | update</strong></span> will only work as long as the package |
4836 | tree remains unchanged. If the source code for one of | | 4840 | tree remains unchanged. If the source code for one of |
4837 | the packages to be updated has been changed, resuming | | 4841 | the packages to be updated has been changed, resuming |
4838 | <span class="command"><strong>make update</strong></span> will most certainly | | 4842 | <span class="command"><strong>make update</strong></span> will most certainly |
4839 | fail!</p> | | 4843 | fail!</p> |
4840 | <p>The following variables can be used either on the | | 4844 | <p>The following variables can be used either on the |
4841 | command line or in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> to | | 4845 | command line or in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> to |
4842 | alter the behaviour of <span class="command"><strong>make | | 4846 | alter the behaviour of <span class="command"><strong>make |
4843 | update</strong></span>:</p> | | 4847 | update</strong></span>:</p> |
4844 | <div class="variablelist"><dl class="variablelist"> | | 4848 | <div class="variablelist"><dl class="variablelist"> |
4845 | <dt><span class="term"><code class="varname">UPDATE_TARGET</code></span></dt> | | 4849 | <dt><span class="term"><code class="varname">UPDATE_TARGET</code></span></dt> |
4846 | <dd><p>Install target to recursively use for the | | 4850 | <dd><p>Install target to recursively use for the |
4847 | updated package and the dependent packages. | | 4851 | updated package and the dependent packages. |
4848 | Defaults to <code class="varname">DEPENDS_TARGET</code> if | | 4852 | Defaults to <code class="varname">DEPENDS_TARGET</code> if |
4849 | set, <span class="quote">“<span class="quote">install</span>”</span> otherwise for | | 4853 | set, <span class="quote">“<span class="quote">install</span>”</span> otherwise for |
4850 | <span class="command"><strong>make update</strong></span>. Other good | | 4854 | <span class="command"><strong>make update</strong></span>. Other good |
4851 | targets are <span class="quote">“<span class="quote">package</span>”</span> or | | 4855 | targets are <span class="quote">“<span class="quote">package</span>”</span> or |
4852 | <span class="quote">“<span class="quote">bin-install</span>”</span>. Do not set this to | | 4856 | <span class="quote">“<span class="quote">bin-install</span>”</span>. Do not set this to |
4853 | <span class="quote">“<span class="quote">update</span>”</span> or you will get stuck in an | | 4857 | <span class="quote">“<span class="quote">update</span>”</span> or you will get stuck in an |
4854 | endless loop!</p></dd> | | 4858 | endless loop!</p></dd> |
4855 | <dt><span class="term"><code class="varname">NOCLEAN</code></span></dt> | | 4859 | <dt><span class="term"><code class="varname">NOCLEAN</code></span></dt> |
4856 | <dd><p>Don't clean up after updating. Useful if | | 4860 | <dd><p>Don't clean up after updating. Useful if |
4857 | you want to leave the work sources of the updated | | 4861 | you want to leave the work sources of the updated |
4858 | packages around for inspection or other purposes. | | 4862 | packages around for inspection or other purposes. |
4859 | Be sure you eventually clean up the source tree | | 4863 | Be sure you eventually clean up the source tree |
4860 | (see the <span class="quote">“<span class="quote">clean-update</span>”</span> target below) | | 4864 | (see the <span class="quote">“<span class="quote">clean-update</span>”</span> target below) |
4861 | or you may run into troubles with old source code | | 4865 | or you may run into troubles with old source code |
4862 | still lying around on your next | | 4866 | still lying around on your next |
4863 | <span class="command"><strong>make</strong></span> or <span class="command"><strong>make | | 4867 | <span class="command"><strong>make</strong></span> or <span class="command"><strong>make |
4864 | update</strong></span>.</p></dd> | | 4868 | update</strong></span>.</p></dd> |
4865 | <dt><span class="term"><code class="varname">REINSTALL</code></span></dt> | | 4869 | <dt><span class="term"><code class="varname">REINSTALL</code></span></dt> |
4866 | <dd><p>Deinstall each package before installing | | 4870 | <dd><p>Deinstall each package before installing |
4867 | (making <code class="varname">DEPENDS_TARGET</code>). This | | 4871 | (making <code class="varname">DEPENDS_TARGET</code>). This |
4868 | may be necessary if the | | 4872 | may be necessary if the |
4869 | <span class="quote">“<span class="quote">clean-update</span>”</span> target (see below) was | | 4873 | <span class="quote">“<span class="quote">clean-update</span>”</span> target (see below) was |
4870 | called after interrupting a running <span class="command"><strong>make | | 4874 | called after interrupting a running <span class="command"><strong>make |
4871 | update</strong></span>.</p></dd> | | 4875 | update</strong></span>.</p></dd> |
4872 | <dt><span class="term"><code class="varname">DEPENDS_TARGET</code></span></dt> | | 4876 | <dt><span class="term"><code class="varname">DEPENDS_TARGET</code></span></dt> |
4873 | <dd><p>Allows you to disable recursion and hardcode | | 4877 | <dd><p>Allows you to disable recursion and hardcode |
4874 | the target for packages. The default is | | 4878 | the target for packages. The default is |
4875 | <span class="quote">“<span class="quote">update</span>”</span> for the update target, | | 4879 | <span class="quote">“<span class="quote">update</span>”</span> for the update target, |
4876 | facilitating a recursive update of prerequisite | | 4880 | facilitating a recursive update of prerequisite |
4877 | packages. Only set | | 4881 | packages. Only set |
4878 | <code class="varname">DEPENDS_TARGET</code> if you want to | | 4882 | <code class="varname">DEPENDS_TARGET</code> if you want to |
4879 | disable recursive updates. Use | | 4883 | disable recursive updates. Use |
4880 | <code class="varname">UPDATE_TARGET</code> instead to just | | 4884 | <code class="varname">UPDATE_TARGET</code> instead to just |
4881 | set a specific target for each package to be | | 4885 | set a specific target for each package to be |
4882 | installed during <span class="command"><strong>make update</strong></span> | | 4886 | installed during <span class="command"><strong>make update</strong></span> |
4883 | (see above).</p></dd> | | 4887 | (see above).</p></dd> |
4884 | </dl></div> | | 4888 | </dl></div> |
4885 | </dd> | | 4889 | </dd> |
4886 | <dt><span class="term">clean-update</span></dt> | | 4890 | <dt><span class="term">clean-update</span></dt> |
4887 | <dd> | | 4891 | <dd> |
4888 | <p>Clean the source tree for all packages that would | | 4892 | <p>Clean the source tree for all packages that would |
4889 | get updated if <span class="command"><strong>make update</strong></span> was called | | 4893 | get updated if <span class="command"><strong>make update</strong></span> was called |
4890 | from the current directory. This target should not be | | 4894 | from the current directory. This target should not be |
4891 | used if the current package (or any of its depending | | 4895 | used if the current package (or any of its depending |
4892 | packages) have already been de-installed (e.g., after | | 4896 | packages) have already been de-installed (e.g., after |
4893 | calling <span class="command"><strong>make update</strong></span>) or you may lose | | 4897 | calling <span class="command"><strong>make update</strong></span>) or you may lose |
4894 | some packages you intended to update. As a rule of | | 4898 | some packages you intended to update. As a rule of |
4895 | thumb: only use this target <span class="emphasis"><em>before</em></span> | | 4899 | thumb: only use this target <span class="emphasis"><em>before</em></span> |
4896 | the first time you run <span class="command"><strong>make update</strong></span> | | 4900 | the first time you run <span class="command"><strong>make update</strong></span> |
4897 | and only if you have a dirty package tree (e.g., if you | | 4901 | and only if you have a dirty package tree (e.g., if you |
4898 | used <code class="varname">NOCLEAN</code>).</p> | | 4902 | used <code class="varname">NOCLEAN</code>).</p> |
4899 | <p>If you are unsure about whether your tree is | | 4903 | <p>If you are unsure about whether your tree is |
4900 | clean, you can either perform a <span class="command"><strong>make | | 4904 | clean, you can either perform a <span class="command"><strong>make |
4901 | clean</strong></span> at the top of the tree, or use the | | 4905 | clean</strong></span> at the top of the tree, or use the |
4902 | following sequence of commands from the directory of the | | 4906 | following sequence of commands from the directory of the |
4903 | package you want to update (<span class="emphasis"><em>before</em></span> | | 4907 | package you want to update (<span class="emphasis"><em>before</em></span> |
4904 | running <span class="command"><strong>make update</strong></span> for the first | | 4908 | running <span class="command"><strong>make update</strong></span> for the first |
4905 | time, otherwise you lose all the packages you wanted to | | 4909 | time, otherwise you lose all the packages you wanted to |
4906 | update!):</p> | | 4910 | update!):</p> |
4907 | <pre class="screen"> | | 4911 | <pre class="screen"> |
4908 | <code class="prompt">#</code> <strong class="userinput"><code>make clean-update</code></strong> | | 4912 | <code class="prompt">#</code> <strong class="userinput"><code>make clean-update</code></strong> |
4909 | <code class="prompt">#</code> <strong class="userinput"><code>make clean CLEANDEPENDS=YES</code></strong> | | 4913 | <code class="prompt">#</code> <strong class="userinput"><code>make clean CLEANDEPENDS=YES</code></strong> |
4910 | <code class="prompt">#</code> <strong class="userinput"><code>make update</code></strong> | | 4914 | <code class="prompt">#</code> <strong class="userinput"><code>make update</code></strong> |
4911 | </pre> | | 4915 | </pre> |
4912 | <p>The following variables can be used either on the | | 4916 | <p>The following variables can be used either on the |
4913 | command line or in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> to alter the behaviour of | | 4917 | command line or in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> to alter the behaviour of |
4914 | <span class="command"><strong>make clean-update</strong></span>:</p> | | 4918 | <span class="command"><strong>make clean-update</strong></span>:</p> |
4915 | <div class="variablelist"><dl class="variablelist"> | | 4919 | <div class="variablelist"><dl class="variablelist"> |
4916 | <dt><span class="term"><code class="varname">CLEAR_DIRLIST</code></span></dt> | | 4920 | <dt><span class="term"><code class="varname">CLEAR_DIRLIST</code></span></dt> |
4917 | <dd><p>After <span class="command"><strong>make clean</strong></span>, do not | | 4921 | <dd><p>After <span class="command"><strong>make clean</strong></span>, do not |
4918 | reconstruct the list of directories to update for | | 4922 | reconstruct the list of directories to update for |
4919 | this package. Only use this if <span class="command"><strong>make | | 4923 | this package. Only use this if <span class="command"><strong>make |
4920 | update</strong></span> successfully installed all | | 4924 | update</strong></span> successfully installed all |
4921 | packages you wanted to update. Normally, this is | | 4925 | packages you wanted to update. Normally, this is |
4922 | done automatically on <span class="command"><strong>make | | 4926 | done automatically on <span class="command"><strong>make |
4923 | update</strong></span>, but may have been suppressed by | | 4927 | update</strong></span>, but may have been suppressed by |
4924 | the <code class="varname">NOCLEAN</code> variable (see | | 4928 | the <code class="varname">NOCLEAN</code> variable (see |
4925 | above).</p></dd> | | 4929 | above).</p></dd> |
4926 | </dl></div> | | 4930 | </dl></div> |
4927 | </dd> | | 4931 | </dd> |
4928 | <dt><span class="term">replace</span></dt> | | 4932 | <dt><span class="term">replace</span></dt> |
4929 | <dd> | | 4933 | <dd> |
4930 | <p>Update the installation of the current package. This | | 4934 | <p>Update the installation of the current package. This |
4931 | differs from update in that it does not replace dependent | | 4935 | differs from update in that it does not replace dependent |
4932 | packages. You will need to install <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkg_tarup/index.html" target="_top"><code class="filename">pkgtools/pkg_tarup</code></a> for this | | 4936 | packages. You will need to install <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkg_tarup/index.html" target="_top"><code class="filename">pkgtools/pkg_tarup</code></a> for this |
4933 | target to work.</p> | | 4937 | target to work.</p> |
4934 | <p><span class="emphasis"><em>Be careful when using this | | 4938 | <p><span class="emphasis"><em>Be careful when using this |
4935 | target!</em></span> There are no guarantees that dependent | | 4939 | target!</em></span> There are no guarantees that dependent |
4936 | packages will still work, in particular they will most | | 4940 | packages will still work, in particular they will most |
4937 | certainly break if you <span class="command"><strong>make replace</strong></span> a | | 4941 | certainly break if you <span class="command"><strong>make replace</strong></span> a |
4938 | library package whose shared library major version changed | | 4942 | library package whose shared library major version changed |
4939 | between your installed version and the new one. For this | | 4943 | between your installed version and the new one. For this |
4940 | reason, this target is not officially supported and only | | 4944 | reason, this target is not officially supported and only |
4941 | recommended for advanced users.</p> | | 4945 | recommended for advanced users.</p> |
4942 | </dd> | | 4946 | </dd> |
4943 | <dt><span class="term">info</span></dt> | | 4947 | <dt><span class="term">info</span></dt> |
4944 | <dd><p>This target invokes <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_info.1"><span class="citerefentry"><span class="refentrytitle">pkg_info</span>(1)</span></a> for the current | | 4948 | <dd><p>This target invokes <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_info.1"><span class="citerefentry"><span class="refentrytitle">pkg_info</span>(1)</span></a> for the current |
4945 | package. You can use this to check which version of a | | 4949 | package. You can use this to check which version of a |
4946 | package is installed.</p></dd> | | 4950 | package is installed.</p></dd> |
4947 | <dt><span class="term">index</span></dt> | | 4951 | <dt><span class="term">index</span></dt> |
4948 | <dd> | | 4952 | <dd> |
4949 | <p>This is a top-level command, i.e. it should be used in | | 4953 | <p>This is a top-level command, i.e. it should be used in |
4950 | the <code class="filename">pkgsrc</code> directory. It creates a | | 4954 | the <code class="filename">pkgsrc</code> directory. It creates a |
4951 | database of all packages in the local pkgsrc tree, including | | 4955 | database of all packages in the local pkgsrc tree, including |
4952 | dependencies, comment, maintainer, and some other useful | | 4956 | dependencies, comment, maintainer, and some other useful |
4953 | information. Individual entries are created by running | | 4957 | information. Individual entries are created by running |
4954 | <span class="command"><strong>make describe</strong></span> in the packages' | | 4958 | <span class="command"><strong>make describe</strong></span> in the packages' |
4955 | directories. This index file is saved as | | 4959 | directories. This index file is saved as |
4956 | <code class="filename">pkgsrc/INDEX</code>. It can be displayed in | | 4960 | <code class="filename">pkgsrc/INDEX</code>. It can be displayed in |
4957 | verbose format by running <span class="command"><strong>make | | 4961 | verbose format by running <span class="command"><strong>make |
4958 | print-index</strong></span>. You can search in it with | | 4962 | print-index</strong></span>. You can search in it with |
4959 | <span class="command"><strong>make search | | 4963 | <span class="command"><strong>make search |
4960 | key=<em class="replaceable"><code>something</code></em></strong></span>. You can | | 4964 | key=<em class="replaceable"><code>something</code></em></strong></span>. You can |
4961 | extract a list of all packages that depend on a particular | | 4965 | extract a list of all packages that depend on a particular |
4962 | one by running <span class="command"><strong>make show-deps | | 4966 | one by running <span class="command"><strong>make show-deps |
4963 | PKG=<em class="replaceable"><code>somepackage</code></em></strong></span>.</p> | | 4967 | PKG=<em class="replaceable"><code>somepackage</code></em></strong></span>.</p> |
4964 | <p>Running this command takes a very long time, some | | 4968 | <p>Running this command takes a very long time, some |
4965 | hours even on fast machines!</p> | | 4969 | hours even on fast machines!</p> |
4966 | </dd> | | 4970 | </dd> |
4967 | <dt><span class="term">readme</span></dt> | | 4971 | <dt><span class="term">readme</span></dt> |
4968 | <dd> | | 4972 | <dd> |
4969 | <p>This target generates a | | 4973 | <p>This target generates a |
4970 | <code class="filename">index.html</code> file, which can be | | 4974 | <code class="filename">index.html</code> file, which can be |
4971 | viewed using a browser such as <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/www/firefox/index.html" target="_top"><code class="filename">www/firefox</code></a> or <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/www/links/index.html" target="_top"><code class="filename">www/links</code></a>. The generated files | | 4975 | viewed using a browser such as <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/www/firefox/index.html" target="_top"><code class="filename">www/firefox</code></a> or <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/www/links/index.html" target="_top"><code class="filename">www/links</code></a>. The generated files |
4972 | contain references to any packages which are in the | | 4976 | contain references to any packages which are in the |
4973 | <code class="varname">PACKAGES</code> directory on the local | | 4977 | <code class="varname">PACKAGES</code> directory on the local |
4974 | host. The generated files can be made to refer to URLs | | 4978 | host. The generated files can be made to refer to URLs |
4975 | based on <code class="varname">FTP_PKG_URL_HOST</code> and | | 4979 | based on <code class="varname">FTP_PKG_URL_HOST</code> and |
4976 | <code class="varname">FTP_PKG_URL_DIR</code>. For example, if I | | 4980 | <code class="varname">FTP_PKG_URL_DIR</code>. For example, if I |
4977 | wanted to generate <code class="filename">index.html</code> | | 4981 | wanted to generate <code class="filename">index.html</code> |
4978 | files which pointed to binary packages on the local | | 4982 | files which pointed to binary packages on the local |
4979 | machine, in the directory | | 4983 | machine, in the directory |
4980 | <code class="filename">/usr/packages</code>, set | | 4984 | <code class="filename">/usr/packages</code>, set |
4981 | <code class="varname">FTP_PKG_URL_HOST=file://localhost</code> and | | 4985 | <code class="varname">FTP_PKG_URL_HOST=file://localhost</code> and |
4982 | <code class="varname">FTP_PKG_URL_DIR=/usr/packages</code>. The | | 4986 | <code class="varname">FTP_PKG_URL_DIR=/usr/packages</code>. The |
4983 | <code class="varname">${PACKAGES}</code> directory and its | | 4987 | <code class="varname">${PACKAGES}</code> directory and its |
4984 | subdirectories will be searched for all the binary | | 4988 | subdirectories will be searched for all the binary |
4985 | packages.</p> | | 4989 | packages.</p> |
4986 | <p>The target can be run at the toplevel or in category | | 4990 | <p>The target can be run at the toplevel or in category |
4987 | directories, in which case it descends recursively.</p> | | 4991 | directories, in which case it descends recursively.</p> |
4988 | </dd> | | 4992 | </dd> |
4989 | <dt><span class="term">readme-all</span></dt> | | 4993 | <dt><span class="term">readme-all</span></dt> |
4990 | <dd><p>This is a top-level command, run it in | | 4994 | <dd><p>This is a top-level command, run it in |
4991 | <code class="filename">pkgsrc</code>. Use this target to create a | | 4995 | <code class="filename">pkgsrc</code>. Use this target to create a |
4992 | file <code class="filename">README-all.html</code> which contains a | | 4996 | file <code class="filename">README-all.html</code> which contains a |
4993 | list of all packages currently available in the NetBSD | | 4997 | list of all packages currently available in the NetBSD |
4994 | Packages Collection, together with the category they belong | | 4998 | Packages Collection, together with the category they belong |
4995 | to and a short description. This file is compiled from the | | 4999 | to and a short description. This file is compiled from the |
4996 | <code class="filename">pkgsrc/*/index.html</code> files, so be sure | | 5000 | <code class="filename">pkgsrc/*/index.html</code> files, so be sure |
4997 | to run this <span class="emphasis"><em>after</em></span> a <span class="command"><strong>make | | 5001 | to run this <span class="emphasis"><em>after</em></span> a <span class="command"><strong>make |
4998 | readme</strong></span>.</p></dd> | | 5002 | readme</strong></span>.</p></dd> |
4999 | <dt><span class="term">cdrom-readme</span></dt> | | 5003 | <dt><span class="term">cdrom-readme</span></dt> |
5000 | <dd><p>This is very much the same as the | | 5004 | <dd><p>This is very much the same as the |
5001 | <span class="quote">“<span class="quote">readme</span>”</span> target (see above), but is to be | | 5005 | <span class="quote">“<span class="quote">readme</span>”</span> target (see above), but is to be |
5002 | used when generating a pkgsrc tree to be written to a | | 5006 | used when generating a pkgsrc tree to be written to a |
5003 | CD-ROM. This target also produces | | 5007 | CD-ROM. This target also produces |
5004 | <code class="filename">index.html</code> files, and can be made | | 5008 | <code class="filename">index.html</code> files, and can be made |
5005 | to refer to URLs based on | | 5009 | to refer to URLs based on |
5006 | <code class="varname">CDROM_PKG_URL_HOST</code> and | | 5010 | <code class="varname">CDROM_PKG_URL_HOST</code> and |
5007 | <code class="varname">CDROM_PKG_URL_DIR</code>.</p></dd> | | 5011 | <code class="varname">CDROM_PKG_URL_DIR</code>.</p></dd> |
5008 | <dt><span class="term">show-distfiles</span></dt> | | 5012 | <dt><span class="term">show-distfiles</span></dt> |
5009 | <dd><p>This target shows which distfiles and patchfiles | | 5013 | <dd><p>This target shows which distfiles and patchfiles |
5010 | are needed to build the package | | 5014 | are needed to build the package |
5011 | (<code class="varname">ALLFILES</code>, which contains all | | 5015 | (<code class="varname">ALLFILES</code>, which contains all |
5012 | <code class="varname">DISTFILES</code> and | | 5016 | <code class="varname">DISTFILES</code> and |
5013 | <code class="varname">PATCHFILES</code>, but not | | 5017 | <code class="varname">PATCHFILES</code>, but not |
5014 | <code class="filename">patches/*</code>).</p></dd> | | 5018 | <code class="filename">patches/*</code>).</p></dd> |
5015 | <dt><span class="term">show-downlevel</span></dt> | | 5019 | <dt><span class="term">show-downlevel</span></dt> |
5016 | <dd><p>This target shows nothing if the package is not | | 5020 | <dd><p>This target shows nothing if the package is not |
5017 | installed. If a version of this package is installed, | | 5021 | installed. If a version of this package is installed, |
5018 | but is not the version provided in this version of | | 5022 | but is not the version provided in this version of |
5019 | pkgsrc, then a warning message is displayed. This target | | 5023 | pkgsrc, then a warning message is displayed. This target |
5020 | can be used to show which of your installed packages are | | 5024 | can be used to show which of your installed packages are |
5021 | downlevel, and so the old versions can be deleted, and | | 5025 | downlevel, and so the old versions can be deleted, and |
5022 | the current ones added.</p></dd> | | 5026 | the current ones added.</p></dd> |
5023 | <dt><span class="term">show-pkgsrc-dir</span></dt> | | 5027 | <dt><span class="term">show-pkgsrc-dir</span></dt> |
5024 | <dd><p>This target shows the directory in the pkgsrc | | 5028 | <dd><p>This target shows the directory in the pkgsrc |
5025 | hierarchy from which the package can be built and | | 5029 | hierarchy from which the package can be built and |
5026 | installed. This may not be the same directory as the one | | 5030 | installed. This may not be the same directory as the one |
5027 | from which the package was installed. This target is | | 5031 | from which the package was installed. This target is |
5028 | intended to be used by people who may wish to upgrade | | 5032 | intended to be used by people who may wish to upgrade |
5029 | many packages on a single host, and can be invoked from | | 5033 | many packages on a single host, and can be invoked from |
5030 | the top-level pkgsrc Makefile by using the | | 5034 | the top-level pkgsrc Makefile by using the |
5031 | <span class="quote">“<span class="quote">show-host-specific-pkgs</span>”</span> target.</p></dd> | | 5035 | <span class="quote">“<span class="quote">show-host-specific-pkgs</span>”</span> target.</p></dd> |
5032 | <dt><span class="term">show-installed-depends</span></dt> | | 5036 | <dt><span class="term">show-installed-depends</span></dt> |
5033 | <dd><p>This target shows which installed packages match | | 5037 | <dd><p>This target shows which installed packages match |
5034 | the current package's <code class="varname">DEPENDS</code>. Useful | | 5038 | the current package's <code class="varname">DEPENDS</code>. Useful |
5035 | if out of date dependencies are causing build | | 5039 | if out of date dependencies are causing build |
5036 | problems.</p></dd> | | 5040 | problems.</p></dd> |
5037 | <dt><span class="term">print-build-depends-list</span></dt> | | 5041 | <dt><span class="term">print-build-depends-list</span></dt> |
5038 | <dd><p>This target shows the list of packages that the current package | | 5042 | <dd><p>This target shows the list of packages that the current package |
5039 | depends on for building.</p></dd> | | 5043 | depends on for building.</p></dd> |
5040 | <dt><span class="term">print-run-depends-list</span></dt> | | 5044 | <dt><span class="term">print-run-depends-list</span></dt> |
5041 | <dd><p>This target shows the list of packages that the current package | | 5045 | <dd><p>This target shows the list of packages that the current package |
5042 | depends on for running.</p></dd> | | 5046 | depends on for running.</p></dd> |
5043 | <dt><span class="term">check-shlibs</span></dt> | | 5047 | <dt><span class="term">check-shlibs</span></dt> |
5044 | <dd><p>After a package is installed, check all its | | 5048 | <dd><p>After a package is installed, check all its |
5045 | binaries and (on ELF platforms) shared libraries to see | | 5049 | binaries and (on ELF platforms) shared libraries to see |
5046 | if they find the shared libs they need. Run by default | | 5050 | if they find the shared libs they need. Run by default |
5047 | if <code class="varname">PKG_DEVELOPER</code> is set in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>.</p></dd> | | 5051 | if <code class="varname">PKG_DEVELOPER</code> is set in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>.</p></dd> |
5048 | <dt><span class="term">print-PLIST</span></dt> | | 5052 | <dt><span class="term">print-PLIST</span></dt> |
5049 | <dd> | | 5053 | <dd> |
5050 | <p>After a <span class="quote">“<span class="quote">make install</span>”</span> from a new or | | 5054 | <p>After a <span class="quote">“<span class="quote">make install</span>”</span> from a new or |
5051 | upgraded pkg, this prints out an attempt to generate a | | 5055 | upgraded pkg, this prints out an attempt to generate a |
5052 | new <code class="filename">PLIST</code> from a <span class="command"><strong>find | | 5056 | new <code class="filename">PLIST</code> from a <span class="command"><strong>find |
5053 | -newer work/.extract_done</strong></span>. An attempt is made | | 5057 | -newer work/.extract_done</strong></span>. An attempt is made |
5054 | to care for shared libs etc., but it is | | 5058 | to care for shared libs etc., but it is |
5055 | <span class="emphasis"><em>strongly</em></span> recommended to review the | | 5059 | <span class="emphasis"><em>strongly</em></span> recommended to review the |
5056 | result before putting it into | | 5060 | result before putting it into |
5057 | <code class="filename">PLIST</code>. On upgrades, it's useful to | | 5061 | <code class="filename">PLIST</code>. On upgrades, it's useful to |
5058 | diff the output of this command against an already | | 5062 | diff the output of this command against an already |
5059 | existing <code class="filename">PLIST</code> file.</p> | | 5063 | existing <code class="filename">PLIST</code> file.</p> |
5060 | <p>If the package installs files via <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/tar.1"><span class="citerefentry"><span class="refentrytitle">tar</span>(1)</span></a> or | | 5064 | <p>If the package installs files via <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/tar.1"><span class="citerefentry"><span class="refentrytitle">tar</span>(1)</span></a> or |
5061 | other methods that don't update file access times, be | | 5065 | other methods that don't update file access times, be |
5062 | sure to add these files manually to your | | 5066 | sure to add these files manually to your |
5063 | <code class="filename">PLIST</code>, as the <span class="quote">“<span class="quote">find | | 5067 | <code class="filename">PLIST</code>, as the <span class="quote">“<span class="quote">find |
5064 | -newer</span>”</span> command used by this target won't catch | | 5068 | -newer</span>”</span> command used by this target won't catch |
5065 | them!</p> | | 5069 | them!</p> |
5066 | <p>See <a class="xref" href="#print-PLIST" title="19.3. Tweaking output of make print-PLIST">Section 19.3, “Tweaking output of <span class="command"><strong>make print-PLIST</strong></span>”</a> for more | | 5070 | <p>See <a class="xref" href="#print-PLIST" title="19.3. Tweaking output of make print-PLIST">Section 19.3, “Tweaking output of <span class="command"><strong>make print-PLIST</strong></span>”</a> for more |
5067 | information on this target.</p> | | 5071 | information on this target.</p> |
5068 | </dd> | | 5072 | </dd> |
5069 | </dl></div> | | 5073 | </dl></div> |
5070 | </div> | | 5074 | </div> |
5071 | </div> | | 5075 | </div> |
5072 | <div class="chapter"> | | 5076 | <div class="chapter"> |
5073 | <div class="titlepage"><div><div><h2 class="title"> | | 5077 | <div class="titlepage"><div><div><h2 class="title"> |
5074 | <a name="creating"></a>Chapter 14. Creating a new pkgsrc package from scratch</h2></div></div></div> | | 5078 | <a name="creating"></a>Chapter 14. Creating a new pkgsrc package from scratch</h2></div></div></div> |
5075 | <div class="toc"> | | 5079 | <div class="toc"> |
5076 | <p><b>Table of Contents</b></p> | | 5080 | <p><b>Table of Contents</b></p> |
5077 | <dl class="toc"> | | 5081 | <dl class="toc"> |
5078 | <dt><span class="sect1"><a href="#creating.common">14.1. Common types of packages</a></span></dt> | | 5082 | <dt><span class="sect1"><a href="#creating.common">14.1. Common types of packages</a></span></dt> |
5079 | <dd><dl> | | 5083 | <dd><dl> |
5080 | <dt><span class="sect2"><a href="#creating.python-module">14.1.1. Python modules and programs</a></span></dt> | | 5084 | <dt><span class="sect2"><a href="#creating.python-module">14.1.1. Python modules and programs</a></span></dt> |
5081 | <dt><span class="sect2"><a href="#creating.R-package">14.1.2. R packages</a></span></dt> | | 5085 | <dt><span class="sect2"><a href="#creating.R-package">14.1.2. R packages</a></span></dt> |
5082 | <dt><span class="sect2"><a href="#creating.TeX-package">14.1.3. TeXlive packages</a></span></dt> | | 5086 | <dt><span class="sect2"><a href="#creating.TeX-package">14.1.3. TeXlive packages</a></span></dt> |
5083 | </dl></dd> | | 5087 | </dl></dd> |
5084 | <dt><span class="sect1"><a href="#creating.examples">14.2. Examples</a></span></dt> | | 5088 | <dt><span class="sect1"><a href="#creating.examples">14.2. Examples</a></span></dt> |
5085 | <dd><dl><dt><span class="sect2"><a href="#creating.nvu">14.2.1. How the www/nvu package came into pkgsrc</a></span></dt></dl></dd> | | 5089 | <dd><dl><dt><span class="sect2"><a href="#creating.nvu">14.2.1. How the www/nvu package came into pkgsrc</a></span></dt></dl></dd> |
5086 | </dl> | | 5090 | </dl> |
5087 | </div> | | 5091 | </div> |
5088 | <p>When you find a package that is not yet in pkgsrc, you | | 5092 | <p>When you find a package that is not yet in pkgsrc, you |
5089 | most likely have a URL from where you can download the source | | 5093 | most likely have a URL from where you can download the source |
5090 | code. Starting with this URL, creating a package involves only a | | 5094 | code. Starting with this URL, creating a package involves only a |
5091 | few steps.</p> | | 5095 | few steps.</p> |
5092 | <div class="procedure"><ol class="procedure" type="1"> | | 5096 | <div class="procedure"><ol class="procedure" type="1"> |
5093 | <li class="step"><p>In your <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>, set <code class="code">PKG_DEVELOPER=yes</code> to | | 5097 | <li class="step"><p>In your <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>, set <code class="code">PKG_DEVELOPER=yes</code> to |
5094 | enable the basic quality checks.</p></li> | | 5098 | enable the basic quality checks.</p></li> |
5095 | <li class="step"> | | 5099 | <li class="step"> |
5096 | <p>Install the package <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/pkg_developer/index.html" target="_top"><code class="filename">meta-pkgs/pkg_developer</code></a>, which among others will | | 5100 | <p>Install the package <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/pkg_developer/index.html" target="_top"><code class="filename">meta-pkgs/pkg_developer</code></a>, which among others will |
5097 | install the utilities <span class="command"><strong>url2pkg</strong></span>, | | 5101 | install the utilities <span class="command"><strong>url2pkg</strong></span>, |
5098 | <span class="command"><strong>pkglint</strong></span>, <span class="command"><strong>pkgvi</strong></span> and | | 5102 | <span class="command"><strong>pkglint</strong></span>, <span class="command"><strong>pkgvi</strong></span> and |
5099 | <span class="command"><strong>mkpatches</strong></span>:</p> | | 5103 | <span class="command"><strong>mkpatches</strong></span>:</p> |
5100 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd /usr/pkgsrc</code></strong> | | 5104 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd /usr/pkgsrc</code></strong> |
5101 | <code class="prompt">$</code> <strong class="userinput"><code>(cd meta-pkgs/pkg_developer && bmake update)</code></strong></pre> | | 5105 | <code class="prompt">$</code> <strong class="userinput"><code>(cd meta-pkgs/pkg_developer && bmake update)</code></strong></pre> |
5102 | </li> | | 5106 | </li> |
5103 | <li class="step"> | | 5107 | <li class="step"> |
5104 | <p>Choose one of the top-level directories as the category in | | 5108 | <p>Choose one of the top-level directories as the category in |
5105 | which you want to place your package. You can also create a directory of | | 5109 | which you want to place your package. You can also create a directory of |
5106 | your own (maybe called <code class="filename">local</code>). Change into that | | 5110 | your own (maybe called <code class="filename">local</code>). Change into that |
5107 | category directory:</p> | | 5111 | category directory:</p> |
5108 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd <em class="replaceable"><code>category</code></em></code></strong></pre> | | 5112 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd <em class="replaceable"><code>category</code></em></code></strong></pre> |
5109 | </li> | | 5113 | </li> |
5110 | <li class="step"> | | 5114 | <li class="step"> |
5111 | <p>Run the program <span class="command"><strong>url2pkg</strong></span>, passing as | | 5115 | <p>Run the program <span class="command"><strong>url2pkg</strong></span>, passing as |
5112 | argument the URL of the distribution file (in most cases a | | 5116 | argument the URL of the distribution file (in most cases a |
5113 | <code class="filename">.tar.gz</code> file). This will download the distribution | | 5117 | <code class="filename">.tar.gz</code> file). This will download the distribution |
5114 | file and create the necessary files of the package, based on what's in | | 5118 | file and create the necessary files of the package, based on what's in |
5115 | the distribution file:</p> | | 5119 | the distribution file:</p> |
5116 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>url2pkg <em class="replaceable"><code>https://www.example.org/packages/package-1.0.tar.gz</code></em></code></strong></pre> | | 5120 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>url2pkg <em class="replaceable"><code>https://www.example.org/packages/package-1.0.tar.gz</code></em></code></strong></pre> |
5117 | </li> | | 5121 | </li> |
5118 | <li class="step"> | | 5122 | <li class="step"> |
5119 | <p>Examine the extracted files to determine the dependencies of | | 5123 | <p>Examine the extracted files to determine the dependencies of |
5120 | your package. Ideally, this is mentioned in some | | 5124 | your package. Ideally, this is mentioned in some |
5121 | <code class="filename">README</code> file, but things may differ. For each of | | 5125 | <code class="filename">README</code> file, but things may differ. For each of |
5122 | these dependencies, look where it exists in pkgsrc, and if there is a | | 5126 | these dependencies, look where it exists in pkgsrc, and if there is a |
5123 | file called <code class="filename">buildlink3.mk</code> in that directory, add a | | 5127 | file called <code class="filename">buildlink3.mk</code> in that directory, add a |
5124 | line to your package <code class="filename">Makefile</code> which includes that | | 5128 | line to your package <code class="filename">Makefile</code> which includes that |
5125 | file just before the last line. If the | | 5129 | file just before the last line. If the |
5126 | <code class="filename">buildlink3.mk</code> file does not exist, it must be | | 5130 | <code class="filename">buildlink3.mk</code> file does not exist, it must be |
5127 | created first. The <code class="filename">buildlink3.mk</code> file makes sure | | 5131 | created first. The <code class="filename">buildlink3.mk</code> file makes sure |
5128 | that the package's include files and libraries are provided.</p> | | 5132 | that the package's include files and libraries are provided.</p> |
5129 | <p>If you just need binaries from a dependent package, add a | | 5133 | <p>If you just need binaries from a dependent package, add a |
5130 | <code class="varname">DEPENDS</code> line to the Makefile, which specifies the | | 5134 | <code class="varname">DEPENDS</code> line to the Makefile, which specifies the |
5131 | version of the dependency and where it can be found in pkgsrc. This line | | 5135 | version of the dependency and where it can be found in pkgsrc. This line |
5132 | should be placed in the third paragraph. If the dependency is only | | 5136 | should be placed in the third paragraph. If the dependency is only |
5133 | needed for building the package, but not when using it, use | | 5137 | needed for building the package, but not when using it, use |
5134 | <code class="varname">TOOL_DEPENDS</code> or <code class="varname">BUILD_DEPENDS</code> | | 5138 | <code class="varname">TOOL_DEPENDS</code> or <code class="varname">BUILD_DEPENDS</code> |
5135 | instead of <code class="varname">DEPENDS</code>. | | 5139 | instead of <code class="varname">DEPENDS</code>. |
5136 | The difference between <code class="varname">TOOL_DEPENDS</code> and | | 5140 | The difference between <code class="varname">TOOL_DEPENDS</code> and |
5137 | <code class="varname">BUILD_DEPENDS</code> occurs when cross-compiling: | | 5141 | <code class="varname">BUILD_DEPENDS</code> occurs when cross-compiling: |
5138 | <code class="varname">TOOL_DEPENDS</code> are <span class="emphasis"><em>native</em></span> | | 5142 | <code class="varname">TOOL_DEPENDS</code> are <span class="emphasis"><em>native</em></span> |
5139 | packages, i.e. packages for the platform where the package is built; | | 5143 | packages, i.e. packages for the platform where the package is built; |
5140 | <code class="varname">BUILD_DEPENDS</code> are <span class="emphasis"><em>target</em></span> | | 5144 | <code class="varname">BUILD_DEPENDS</code> are <span class="emphasis"><em>target</em></span> |
5141 | packages, i.e. packages for the platform for which the package | | 5145 | packages, i.e. packages for the platform for which the package |
5142 | is built. There is also <code class="varname">TEST_DEPENDS</code>, which | | 5146 | is built. There is also <code class="varname">TEST_DEPENDS</code>, which |
5143 | specifies a dependency used only for testing the resulting package | | 5147 | specifies a dependency used only for testing the resulting package |
5144 | built, using the upstream project's included test suite, on the native | | 5148 | built, using the upstream project's included test suite, on the native |
5145 | platform. | | 5149 | platform. |
5146 | Your package may then look like this:</p> | | 5150 | Your package may then look like this:</p> |
5147 | <pre class="programlisting"> | | 5151 | <pre class="programlisting"> |
5148 | [...] | | 5152 | [...] |
5149 | | | 5153 | |
5150 | TOOL_DEPENDS+= libxslt-[0-9]*:../../textproc/libxslt | | 5154 | TOOL_DEPENDS+= libxslt-[0-9]*:../../textproc/libxslt |
5151 | DEPENDS+= screen-[0-9]*:../../misc/screen | | 5155 | DEPENDS+= screen-[0-9]*:../../misc/screen |
5152 | DEPENDS+= screen>=4.0:../../misc/screen | | 5156 | DEPENDS+= screen>=4.0:../../misc/screen |
5153 | | | 5157 | |
5154 | [...] | | 5158 | [...] |
5155 | | | 5159 | |
5156 | .include "../../<em class="replaceable"><code>category</code></em>/<em class="replaceable"><code>package</code></em>/buildlink3.mk" | | 5160 | .include "../../<em class="replaceable"><code>category</code></em>/<em class="replaceable"><code>package</code></em>/buildlink3.mk" |
5157 | .include "../../devel/glib2/buildlink3.mk" | | 5161 | .include "../../devel/glib2/buildlink3.mk" |
5158 | .include "../../mk/bsd.pkg.mk" | | 5162 | .include "../../mk/bsd.pkg.mk" |
5159 | </pre> | | 5163 | </pre> |
5160 | </li> | | 5164 | </li> |
5161 | <li class="step"><p>Run <span class="command"><strong>pkglint</strong></span> to see what things still need | | 5165 | <li class="step"><p>Run <span class="command"><strong>pkglint</strong></span> to see what things still need |
5162 | to be done to make your package a <span class="quote">“<span class="quote">good</span>”</span> one. If you don't | | 5166 | to be done to make your package a <span class="quote">“<span class="quote">good</span>”</span> one. If you don't |
5163 | know what pkglint's warnings want to tell you, try <span class="command"><strong>pkglint | | 5167 | know what pkglint's warnings want to tell you, try <span class="command"><strong>pkglint |
5164 | --explain</strong></span> or <span class="command"><strong>pkglint -e</strong></span>, which outputs | | 5168 | --explain</strong></span> or <span class="command"><strong>pkglint -e</strong></span>, which outputs |
5165 | additional explanations.</p></li> | | 5169 | additional explanations.</p></li> |
5166 | <li class="step"><p>In many cases the package is not yet ready to build. You can | | 5170 | <li class="step"><p>In many cases the package is not yet ready to build. You can |
5167 | find instructions for the most common cases in the next section, <a class="xref" href="#creating.common" title="14.1. Common types of packages">Section 14.1, “Common types of packages”</a>. After you have followed the instructions | | 5171 | find instructions for the most common cases in the next section, <a class="xref" href="#creating.common" title="14.1. Common types of packages">Section 14.1, “Common types of packages”</a>. After you have followed the instructions |
5168 | over there, you can hopefully continue here.</p></li> | | 5172 | over there, you can hopefully continue here.</p></li> |
5169 | <li class="step"><p>Run <span class="command"><strong>bmake clean</strong></span> to clean the working | | 5173 | <li class="step"><p>Run <span class="command"><strong>bmake clean</strong></span> to clean the working |
5170 | directory from the extracted files. Besides these files, a lot of cache | | 5174 | directory from the extracted files. Besides these files, a lot of cache |
5171 | files and other system information have been saved in the working | | 5175 | files and other system information have been saved in the working |
5172 | directory, which may have become outdated after you edited the | | 5176 | directory, which may have become outdated after you edited the |
5173 | <code class="filename">Makefile</code>.</p></li> | | 5177 | <code class="filename">Makefile</code>.</p></li> |
5174 | <li class="step"> | | 5178 | <li class="step"> |
5175 | <p>Now, run <span class="command"><strong>bmake</strong></span> to build the package. For | | 5179 | <p>Now, run <span class="command"><strong>bmake</strong></span> to build the package. For |
5176 | the various things that can go wrong in this phase, consult <a class="xref" href="#fixes" title="Chapter 21. Making your package work">Chapter 21, <i>Making your package work</i></a>.</p> | | 5180 | the various things that can go wrong in this phase, consult <a class="xref" href="#fixes" title="Chapter 21. Making your package work">Chapter 21, <i>Making your package work</i></a>.</p> |
5177 | <p>If the extracted files from the package need to be fixed, run | | 5181 | <p>If the extracted files from the package need to be fixed, run |
5178 | multiple rounds of these commands:</p> | | 5182 | multiple rounds of these commands:</p> |
5179 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>bmake</code></strong> | | 5183 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>bmake</code></strong> |
5180 | <code class="prompt">$</code> <strong class="userinput"><code>pkgvi ${WRKSRC}/some/file/that/does/not/compile</code></strong> | | 5184 | <code class="prompt">$</code> <strong class="userinput"><code>pkgvi ${WRKSRC}/some/file/that/does/not/compile</code></strong> |
5181 | <code class="prompt">$</code> <strong class="userinput"><code>mkpatches</code></strong> | | 5185 | <code class="prompt">$</code> <strong class="userinput"><code>mkpatches</code></strong> |
5182 | <code class="prompt">$</code> <strong class="userinput"><code>bmake mps</code></strong> | | 5186 | <code class="prompt">$</code> <strong class="userinput"><code>bmake mps</code></strong> |
5183 | <code class="prompt">$</code> <strong class="userinput"><code>bmake clean</code></strong></pre> | | 5187 | <code class="prompt">$</code> <strong class="userinput"><code>bmake clean</code></strong></pre> |
5184 | </li> | | 5188 | </li> |
5185 | <li class="step"><p>When the package builds fine, the next step is to install | | 5189 | <li class="step"><p>When the package builds fine, the next step is to install |
5186 | the package. Run <span class="command"><strong>bmake install</strong></span> and hope that | | 5190 | the package. Run <span class="command"><strong>bmake install</strong></span> and hope that |
5187 | everything works.</p></li> | | 5191 | everything works.</p></li> |
5188 | <li class="step"><p>Up to now, the file <code class="filename">PLIST</code>, which | | 5192 | <li class="step"><p>Up to now, the file <code class="filename">PLIST</code>, which |
5189 | contains a list of the files that are installed by the package, is | | 5193 | contains a list of the files that are installed by the package, is |
5190 | nearly empty. Run <span class="command"><strong>bmake print-PLIST | | 5194 | nearly empty. Run <span class="command"><strong>bmake print-PLIST |
5191 | >PLIST</strong></span> to generate a probably correct list. Check | | 5195 | >PLIST</strong></span> to generate a probably correct list. Check |
5192 | the file using your preferred text editor to see if the list of | | 5196 | the file using your preferred text editor to see if the list of |
5193 | files looks plausible.</p></li> | | 5197 | files looks plausible.</p></li> |
5194 | <li class="step"><p>Run <span class="command"><strong>pkglint</strong></span> again to see if the generated | | 5198 | <li class="step"><p>Run <span class="command"><strong>pkglint</strong></span> again to see if the generated |
5195 | <code class="filename">PLIST</code> contains garbage or not.</p></li> | | 5199 | <code class="filename">PLIST</code> contains garbage or not.</p></li> |
5196 | <li class="step"><p>When you ran <span class="command"><strong>bmake install</strong></span>, the package | | 5200 | <li class="step"><p>When you ran <span class="command"><strong>bmake install</strong></span>, the package |
5197 | had been registered in the database of installed files, but with an | | 5201 | had been registered in the database of installed files, but with an |
5198 | empty list of files. To fix this, run <span class="command"><strong>bmake deinstall</strong></span> | | 5202 | empty list of files. To fix this, run <span class="command"><strong>bmake deinstall</strong></span> |
5199 | and <span class="command"><strong>bmake install</strong></span> again. Now the package is | | 5203 | and <span class="command"><strong>bmake install</strong></span> again. Now the package is |
5200 | registered with the list of files from | | 5204 | registered with the list of files from |
5201 | <code class="filename">PLIST</code>.</p></li> | | 5205 | <code class="filename">PLIST</code>.</p></li> |
5202 | <li class="step"><p>Run <span class="command"><strong>bmake clean update</strong></span> to run everything | | 5206 | <li class="step"><p>Run <span class="command"><strong>bmake clean update</strong></span> to run everything |
5203 | from above again in a single step, making sure that the PLIST is correct | | 5207 | from above again in a single step, making sure that the PLIST is correct |
5204 | and the whole package is created as intended.</p></li> | | 5208 | and the whole package is created as intended.</p></li> |
5205 | <li class="step"><p>Run <span class="command"><strong>pkglint</strong></span> to see if there's anything | | 5209 | <li class="step"><p>Run <span class="command"><strong>pkglint</strong></span> to see if there's anything |
5206 | left to do.</p></li> | | 5210 | left to do.</p></li> |
5207 | <li class="step"><p>Commit the package to pkgsrc-wip or main pkgsrc; see <a class="xref" href="#submit" title="Chapter 23. Submitting and Committing">Chapter 23, <i>Submitting and Committing</i></a>.</p></li> | | 5211 | <li class="step"><p>Commit the package to pkgsrc-wip or main pkgsrc; see <a class="xref" href="#submit" title="Chapter 23. Submitting and Committing">Chapter 23, <i>Submitting and Committing</i></a>.</p></li> |
5208 | </ol></div> | | 5212 | </ol></div> |
5209 | <div class="sect1"> | | 5213 | <div class="sect1"> |
5210 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 5214 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
5211 | <a name="creating.common"></a>14.1. Common types of packages</h2></div></div></div> | | 5215 | <a name="creating.common"></a>14.1. Common types of packages</h2></div></div></div> |
5212 | <div class="sect2"> | | 5216 | <div class="sect2"> |
5213 | <div class="titlepage"><div><div><h3 class="title"> | | 5217 | <div class="titlepage"><div><div><h3 class="title"> |
5214 | <a name="creating.python-module"></a>14.1.1. Python modules and programs</h3></div></div></div> | | 5218 | <a name="creating.python-module"></a>14.1.1. Python modules and programs</h3></div></div></div> |
5215 | <p>Python modules and programs packages are easily created using a | | 5219 | <p>Python modules and programs packages are easily created using a |
5216 | set of predefined variables.</p> | | 5220 | set of predefined variables.</p> |
5217 | <p> | | 5221 | <p> |
5218 | If some Python versions are not supported by the software, set the | | 5222 | If some Python versions are not supported by the software, set the |
5219 | <code class="varname">PYTHON_VERSIONS_INCOMPATIBLE</code> variable to the Python versions | | 5223 | <code class="varname">PYTHON_VERSIONS_INCOMPATIBLE</code> variable to the Python versions |
5220 | that are not supported, e.g. | | 5224 | that are not supported, e.g. |
5221 | </p> | | 5225 | </p> |
5222 | <pre class="programlisting"> | | 5226 | <pre class="programlisting"> |
5223 | PYTHON_VERSIONS_INCOMPATIBLE= 27 | | 5227 | PYTHON_VERSIONS_INCOMPATIBLE= 27 |
5224 | </pre> | | 5228 | </pre> |
5225 | <p> | | 5229 | <p> |
5226 | If the packaged software is a Python module, include one of | | 5230 | If the packaged software is a Python module, include one of |
5227 | <code class="filename">../../lang/python/egg.mk</code> or | | 5231 | <code class="filename">../../lang/python/egg.mk</code> or |
5228 | <code class="filename">../../lang/python/extension.mk</code>.</p> | | 5232 | <code class="filename">../../lang/python/extension.mk</code>.</p> |
5229 | <p>Most Python packages use setuptools (<span class="quote">“<span class="quote">eggs</span>”</span>). | | 5233 | <p>Most Python packages use setuptools (<span class="quote">“<span class="quote">eggs</span>”</span>). |
5230 | If the packaged software is using setuptools, you only need | | 5234 | If the packaged software is using setuptools, you only need |
5231 | to include <span class="quote">“<span class="quote"><code class="filename">../../lang/python/egg.mk</code></span>”</span>. | | 5235 | to include <span class="quote">“<span class="quote"><code class="filename">../../lang/python/egg.mk</code></span>”</span>. |
5232 | </p> | | 5236 | </p> |
5233 | <p>Either way, the package directory should be called | | 5237 | <p>Either way, the package directory should be called |
5234 | <span class="quote">“<span class="quote">py-software</span>”</span> and <code class="varname">PKGNAME</code> should be set to | | 5238 | <span class="quote">“<span class="quote">py-software</span>”</span> and <code class="varname">PKGNAME</code> should be set to |
5235 | <span class="quote">“<span class="quote">${PYPKGPREFIX}-${DISTNAME}</span>”</span>, e.g. | | 5239 | <span class="quote">“<span class="quote">${PYPKGPREFIX}-${DISTNAME}</span>”</span>, e.g. |
5236 | </p> | | 5240 | </p> |
5237 | <pre class="programlisting"> | | 5241 | <pre class="programlisting"> |
5238 | DISTNAME= foopymodule-1.2.10 | | 5242 | DISTNAME= foopymodule-1.2.10 |
5239 | PKGNAME= ${PYPKGPREFIX}-${DISTNAME} | | 5243 | PKGNAME= ${PYPKGPREFIX}-${DISTNAME} |
5240 | </pre> | | 5244 | </pre> |
5241 | <p>If it is an application, include | | 5245 | <p>If it is an application, include |
5242 | <span class="quote">“<span class="quote"><code class="filename">../../lang/python/application.mk</code></span>”</span>. | | 5246 | <span class="quote">“<span class="quote"><code class="filename">../../lang/python/application.mk</code></span>”</span>. |
5243 | In order to correctly set the path to the Python interpreter, use the | | 5247 | In order to correctly set the path to the Python interpreter, use the |
5244 | <code class="varname">REPLACE_PYTHON</code> variable and set it to the list of files | | 5248 | <code class="varname">REPLACE_PYTHON</code> variable and set it to the list of files |
5245 | (paths relative to <code class="varname">WRKSRC</code>) that must be corrected. | | 5249 | (paths relative to <code class="varname">WRKSRC</code>) that must be corrected. |
5246 | For example: | | 5250 | For example: |
5247 | </p> | | 5251 | </p> |
5248 | <pre class="programlisting"> | | 5252 | <pre class="programlisting"> |
5249 | REPLACE_PYTHON= *.py | | 5253 | REPLACE_PYTHON= *.py |
5250 | </pre> | | 5254 | </pre> |
5251 | <p>Some Python modules have separate distributions for Python-2.x | | 5255 | <p>Some Python modules have separate distributions for Python-2.x |
5252 | and Python-3.x support. In pkgsrc this is handled by the | | 5256 | and Python-3.x support. In pkgsrc this is handled by the |
5253 | <code class="filename">versioned_dependencies.mk</code> file. Set | | 5257 | <code class="filename">versioned_dependencies.mk</code> file. Set |
5254 | <code class="varname">PYTHON_VERSIONED_DEPENDENCIES</code> to the list of | | 5258 | <code class="varname">PYTHON_VERSIONED_DEPENDENCIES</code> to the list of |
5255 | packages that should be depended upon and include | | 5259 | packages that should be depended upon and include |
5256 | <span class="quote">“<span class="quote"><code class="filename">../../lang/python/versioned_dependencies.mk</code></span>”</span>, | | 5260 | <span class="quote">“<span class="quote"><code class="filename">../../lang/python/versioned_dependencies.mk</code></span>”</span>, |
5257 | then the pkgsrc infrastructure will depend on the appropriate package | | 5261 | then the pkgsrc infrastructure will depend on the appropriate package |
5258 | version. For example: | | 5262 | version. For example: |
5259 | </p> | | 5263 | </p> |
5260 | <pre class="programlisting"> | | 5264 | <pre class="programlisting"> |
5261 | PYTHON_VERSIONED_DEPENDENCIES=dialog | | 5265 | PYTHON_VERSIONED_DEPENDENCIES=dialog |
5262 | </pre> | | 5266 | </pre> |
5263 | <p> | | 5267 | <p> |
5264 | Look inside <code class="filename">versioned_dependencies.mk</code> for a list | | 5268 | Look inside <code class="filename">versioned_dependencies.mk</code> for a list |
5265 | of supported packages.</p> | | 5269 | of supported packages.</p> |
5266 | </div> | | 5270 | </div> |
5267 | <div class="sect2"> | | 5271 | <div class="sect2"> |
5268 | <div class="titlepage"><div><div><h3 class="title"> | | 5272 | <div class="titlepage"><div><div><h3 class="title"> |
5269 | <a name="creating.R-package"></a>14.1.2. R packages</h3></div></div></div> | | 5273 | <a name="creating.R-package"></a>14.1.2. R packages</h3></div></div></div> |
5270 | <p>Simple R packages from <a class="ulink" href="https://cran.r-project.org/web/packages/available_packages_by_name.html" target="_top">CRAN</a> | | 5274 | <p>Simple R packages from <a class="ulink" href="https://cran.r-project.org/web/packages/available_packages_by_name.html" target="_top">CRAN</a> |
5271 | are handled automatically by <span class="command"><strong>R2pkg</strong></span>, which is | | 5275 | are handled automatically by <span class="command"><strong>R2pkg</strong></span>, which is |
5272 | available in <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/R2pkg/index.html" target="_top"><code class="filename">pkgtools/R2pkg</code></a>. | | 5276 | available in <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/R2pkg/index.html" target="_top"><code class="filename">pkgtools/R2pkg</code></a>. |
5273 | Individual packages (and optionally their dependencies) may be created | | 5277 | Individual packages (and optionally their dependencies) may be created |
5274 | and updated. R packages generally follow the same form, and most of | | 5278 | and updated. R packages generally follow the same form, and most of |
5275 | the relevant information needed is contained in a | | 5279 | the relevant information needed is contained in a |
5276 | <code class="filename">DESCRIPTION</code> file as part of each R package on | | 5280 | <code class="filename">DESCRIPTION</code> file as part of each R package on |
5277 | <a class="ulink" href="https://cran.r-project.org/web/packages/available_packages_by_name.html" target="_top">CRAN</a>. | | 5281 | <a class="ulink" href="https://cran.r-project.org/web/packages/available_packages_by_name.html" target="_top">CRAN</a>. |
5278 | Consequently, <span class="command"><strong>R2pkg</strong></span> downloads that information and | | 5282 | Consequently, <span class="command"><strong>R2pkg</strong></span> downloads that information and |
5279 | creates or updates a package in the canonical form. The resulting | | 5283 | creates or updates a package in the canonical form. The resulting |
5280 | package should be reviewed for correctness.</p> | | 5284 | package should be reviewed for correctness.</p> |
5281 | </div> | | 5285 | </div> |
5282 | <div class="sect2"> | | 5286 | <div class="sect2"> |
5283 | <div class="titlepage"><div><div><h3 class="title"> | | 5287 | <div class="titlepage"><div><div><h3 class="title"> |
5284 | <a name="creating.TeX-package"></a>14.1.3. TeXlive packages</h3></div></div></div> | | 5288 | <a name="creating.TeX-package"></a>14.1.3. TeXlive packages</h3></div></div></div> |
5285 | <p>TeXlive packages from <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a> are handled automatically by | | 5289 | <p>TeXlive packages from <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a> are handled automatically by |
5286 | <span class="command"><strong>texlive2pkg</strong></span>, which is available in <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/texlive2pkg/index.html" target="_top"><code class="filename">pkgtools/texlive2pkg</code></a>.</p> | | 5290 | <span class="command"><strong>texlive2pkg</strong></span>, which is available in <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/texlive2pkg/index.html" target="_top"><code class="filename">pkgtools/texlive2pkg</code></a>.</p> |
5287 | <p>If the TeXlive package name is not known, it may be useful to | | 5291 | <p>If the TeXlive package name is not known, it may be useful to |
5288 | search <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a>. A | | 5292 | search <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a>. A |
5289 | <span class="quote">“<span class="quote">Contained in</span>”</span> field on the package page typically | | 5293 | <span class="quote">“<span class="quote">Contained in</span>”</span> field on the package page typically |
5290 | identifies the basename of the package file in the <a class="ulink" href="https://www.ctan.org/tex-archive/systems/texlive/tlnet/archive" target="_top">TeXlive | | 5294 | identifies the basename of the package file in the <a class="ulink" href="https://www.ctan.org/tex-archive/systems/texlive/tlnet/archive" target="_top">TeXlive |
5291 | archive</a>.</p> | | 5295 | archive</a>.</p> |
5292 | <p>If the TeXlive package name is known, download the files from | | 5296 | <p>If the TeXlive package name is known, download the files from |
5293 | the <a class="ulink" href="https://www.ctan.org/tex-archive/systems/texlive/tlnet/archive" target="_top">TeXlive | | 5297 | the <a class="ulink" href="https://www.ctan.org/tex-archive/systems/texlive/tlnet/archive" target="_top">TeXlive |
5294 | archive</a>. For package <code class="filename">foo</code>, you will need | | 5298 | archive</a>. For package <code class="filename">foo</code>, you will need |
5295 | to download <code class="filename">foo.tar.xz</code>. Most TeXlive packages | | 5299 | to download <code class="filename">foo.tar.xz</code>. Most TeXlive packages |
5296 | also have associated documentation packages, so download | | 5300 | also have associated documentation packages, so download |
5297 | <code class="filename">foo.doc.tar.xz</code> at the same time. These files | | 5301 | <code class="filename">foo.doc.tar.xz</code> at the same time. These files |
5298 | should be placed in the appropriate category directory, which is often | | 5302 | should be placed in the appropriate category directory, which is often |
5299 | but not always <code class="filename">print</code>. Then run the following | | 5303 | but not always <code class="filename">print</code>. Then run the following |
5300 | command in the category directory.</p> | | 5304 | command in the category directory.</p> |
5301 | <pre class="programlisting"> | | 5305 | <pre class="programlisting"> |
5302 | texlive2pkg foo.tar.xz foo.doc.tar.xz | | 5306 | texlive2pkg foo.tar.xz foo.doc.tar.xz |
5303 | </pre> | | 5307 | </pre> |
5304 | <p>This will create two packages, <code class="filename">tex-foo</code> and | | 5308 | <p>This will create two packages, <code class="filename">tex-foo</code> and |
5305 | <code class="filename">tex-foo-doc</code>. Be sure to check that both packages | | 5309 | <code class="filename">tex-foo-doc</code>. Be sure to check that both packages |
5306 | are correct.</p> | | 5310 | are correct.</p> |
5307 | <p>Finally, <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a> | | 5311 | <p>Finally, <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a> |
5308 | currently does not include version information in package filenames | | 5312 | currently does not include version information in package filenames |
5309 | and changes their contents periodically when updates occur. | | 5313 | and changes their contents periodically when updates occur. |
5310 | Consequently, pkgsrc avoids downloading distfiles directly from <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a> and instead relies on the | | 5314 | Consequently, pkgsrc avoids downloading distfiles directly from <a class="ulink" href="https://www.ctan.org/" target="_top">CTAN</a> and instead relies on the |
5311 | pkgsrc archives. For each new or updated TeXlive package, e.g., the | | 5315 | pkgsrc archives. For each new or updated TeXlive package, e.g., the |
5312 | main one and the corresponding documentation, upload the distfiles | | 5316 | main one and the corresponding documentation, upload the distfiles |
5313 | with the following command in each package directory.</p> | | 5317 | with the following command in each package directory.</p> |
5314 | <pre class="programlisting"> | | 5318 | <pre class="programlisting"> |
5315 | make upload-distfiles | | 5319 | make upload-distfiles |
5316 | </pre> | | 5320 | </pre> |
5317 | </div> | | 5321 | </div> |
5318 | </div> | | 5322 | </div> |
5319 | <div class="sect1"> | | 5323 | <div class="sect1"> |
5320 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 5324 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
5321 | <a name="creating.examples"></a>14.2. Examples</h2></div></div></div> | | 5325 | <a name="creating.examples"></a>14.2. Examples</h2></div></div></div> |
5322 | <div class="sect2"> | | 5326 | <div class="sect2"> |
5323 | <div class="titlepage"><div><div><h3 class="title"> | | 5327 | <div class="titlepage"><div><div><h3 class="title"> |
5324 | <a name="creating.nvu"></a>14.2.1. How the www/nvu package came into pkgsrc</h3></div></div></div> | | 5328 | <a name="creating.nvu"></a>14.2.1. How the www/nvu package came into pkgsrc</h3></div></div></div> |
5325 | <div class="sect3"> | | 5329 | <div class="sect3"> |
5326 | <div class="titlepage"><div><div><h4 class="title"> | | 5330 | <div class="titlepage"><div><div><h4 class="title"> |
5327 | <a name="creating.nvu.init"></a>14.2.1.1. The initial package</h4></div></div></div> | | 5331 | <a name="creating.nvu.init"></a>14.2.1.1. The initial package</h4></div></div></div> |
5328 | <p>Looking at the file <code class="filename">pkgsrc/doc/TODO</code>, I saw | | 5332 | <p>Looking at the file <code class="filename">pkgsrc/doc/TODO</code>, I saw |
5329 | that the <span class="quote">“<span class="quote">nvu</span>”</span> package has not yet been imported into | | 5333 | that the <span class="quote">“<span class="quote">nvu</span>”</span> package has not yet been imported into |
5330 | pkgsrc. As the description says it has to do with the web, the obvious | | 5334 | pkgsrc. As the description says it has to do with the web, the obvious |
5331 | choice for the category is <span class="quote">“<span class="quote">www</span>”</span>.</p> | | 5335 | choice for the category is <span class="quote">“<span class="quote">www</span>”</span>.</p> |
5332 | <pre class="programlisting"> | | 5336 | <pre class="programlisting"> |
5333 | <code class="prompt">$</code> mkdir www/nvu | | 5337 | <code class="prompt">$</code> mkdir www/nvu |
5334 | <code class="prompt">$</code> cd www/nvu | | 5338 | <code class="prompt">$</code> cd www/nvu |
5335 | </pre> | | 5339 | </pre> |
5336 | <p>The web site says that the sources are available as a tar file, so | | 5340 | <p>The web site says that the sources are available as a tar file, so |
5337 | I fed that URL to the <span class="command"><strong>url2pkg</strong></span> program:</p> | | 5341 | I fed that URL to the <span class="command"><strong>url2pkg</strong></span> program:</p> |
5338 | <pre class="programlisting"> | | 5342 | <pre class="programlisting"> |
5339 | <code class="prompt">$</code> url2pkg http://cvs.nvu.com/download/nvu-1.0-sources.tar.bz2 | | 5343 | <code class="prompt">$</code> url2pkg http://cvs.nvu.com/download/nvu-1.0-sources.tar.bz2 |
5340 | </pre> | | 5344 | </pre> |
5341 | <p>My editor popped up, and I added a <code class="varname">PKGNAME</code> line | | 5345 | <p>My editor popped up, and I added a <code class="varname">PKGNAME</code> line |
5342 | below the <code class="varname">DISTNAME</code> line, as the package name should | | 5346 | below the <code class="varname">DISTNAME</code> line, as the package name should |
5343 | not have the word <span class="quote">“<span class="quote">sources</span>”</span> in it. I also filled in the | | 5347 | not have the word <span class="quote">“<span class="quote">sources</span>”</span> in it. I also filled in the |
5344 | <code class="varname">MAINTAINER</code>, <code class="varname">HOMEPAGE</code> and | | 5348 | <code class="varname">MAINTAINER</code>, <code class="varname">HOMEPAGE</code> and |
5345 | <code class="varname">COMMENT</code> fields. Then the package | | 5349 | <code class="varname">COMMENT</code> fields. Then the package |
| @@ -7624,2000 +7628,2000 @@ ACCEPTABLE_LICENSES+=xv-license | | | @@ -7624,2000 +7628,2000 @@ ACCEPTABLE_LICENSES+=xv-license |
7624 | <li class="listitem"> | | 7628 | <li class="listitem"> |
7625 | <p>If your package needs another package's binaries or | | 7629 | <p>If your package needs another package's binaries or |
7626 | libraries only for building, and if that package has a | | 7630 | libraries only for building, and if that package has a |
7627 | <code class="filename">buildlink3.mk</code> file available, use it:</p> | | 7631 | <code class="filename">buildlink3.mk</code> file available, use it:</p> |
7628 | <pre class="programlisting"> | | 7632 | <pre class="programlisting"> |
7629 | .include "../../graphics/jpeg/buildlink3.mk" | | 7633 | .include "../../graphics/jpeg/buildlink3.mk" |
7630 | </pre> | | 7634 | </pre> |
7631 | <p>but set | | 7635 | <p>but set |
7632 | <code class="varname">BUILDLINK_DEPMETHOD.<em class="replaceable"><code>jpeg</code></em>?=build</code> | | 7636 | <code class="varname">BUILDLINK_DEPMETHOD.<em class="replaceable"><code>jpeg</code></em>?=build</code> |
7633 | to make it a build dependency only. This case is rather | | 7637 | to make it a build dependency only. This case is rather |
7634 | rare.</p> | | 7638 | rare.</p> |
7635 | </li> | | 7639 | </li> |
7636 | <li class="listitem"> | | 7640 | <li class="listitem"> |
7637 | <p>If your package needs binaries from another package to build, | | 7641 | <p>If your package needs binaries from another package to build, |
7638 | use the <code class="varname">TOOL_DEPENDS</code> definition:</p> | | 7642 | use the <code class="varname">TOOL_DEPENDS</code> definition:</p> |
7639 | <pre class="programlisting"> | | 7643 | <pre class="programlisting"> |
7640 | TOOL_DEPENDS+= itstool-[0-9]*:../../textproc/itstool | | 7644 | TOOL_DEPENDS+= itstool-[0-9]*:../../textproc/itstool |
7641 | </pre> | | 7645 | </pre> |
7642 | </li> | | 7646 | </li> |
7643 | <li class="listitem"><p>If your package needs static libraries to link against, header | | 7647 | <li class="listitem"><p>If your package needs static libraries to link against, header |
7644 | files to include, etc. from another package to build, | | 7648 | files to include, etc. from another package to build, |
7645 | use the <code class="varname">BUILD_DEPENDS</code> definition.</p></li> | | 7649 | use the <code class="varname">BUILD_DEPENDS</code> definition.</p></li> |
7646 | <li class="listitem"><p>If your package needs a library with which to link and | | 7650 | <li class="listitem"><p>If your package needs a library with which to link and |
7647 | there is no <code class="filename">buildlink3.mk</code> file | | 7651 | there is no <code class="filename">buildlink3.mk</code> file |
7648 | available, create one. Using | | 7652 | available, create one. Using |
7649 | <code class="varname">DEPENDS</code> won't be sufficient because the | | 7653 | <code class="varname">DEPENDS</code> won't be sufficient because the |
7650 | include files and libraries will be hidden from the compiler.</p></li> | | 7654 | include files and libraries will be hidden from the compiler.</p></li> |
7651 | <li class="listitem"> | | 7655 | <li class="listitem"> |
7652 | <p>If your package needs some executable to be able to run | | 7656 | <p>If your package needs some executable to be able to run |
7653 | correctly and if there's no | | 7657 | correctly and if there's no |
7654 | <code class="filename">buildlink3.mk</code> file, this is specified | | 7658 | <code class="filename">buildlink3.mk</code> file, this is specified |
7655 | using the <code class="varname">DEPENDS</code> variable. The | | 7659 | using the <code class="varname">DEPENDS</code> variable. The |
7656 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/print/lyx/index.html" target="_top"><code class="filename">print/lyx</code></a> package needs to | | 7660 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/print/lyx/index.html" target="_top"><code class="filename">print/lyx</code></a> package needs to |
7657 | be able to execute the latex binary from the tex-latex-bin package | | 7661 | be able to execute the latex binary from the tex-latex-bin package |
7658 | when it runs, and that is specified:</p> | | 7662 | when it runs, and that is specified:</p> |
7659 | <pre class="programlisting"> | | 7663 | <pre class="programlisting"> |
7660 | DEPENDS+= tex-latex-bin-[0-9]*:../../print/tex-latex-bin | | 7664 | DEPENDS+= tex-latex-bin-[0-9]*:../../print/tex-latex-bin |
7661 | </pre> | | 7665 | </pre> |
7662 | </li> | | 7666 | </li> |
7663 | <li class="listitem"><p>If your package includes a test suite that has extra | | 7667 | <li class="listitem"><p>If your package includes a test suite that has extra |
7664 | dependencies only required for this purpose (frequently this | | 7668 | dependencies only required for this purpose (frequently this |
7665 | can be run as a <span class="quote">“<span class="quote">make test</span>”</span> target), use the | | 7669 | can be run as a <span class="quote">“<span class="quote">make test</span>”</span> target), use the |
7666 | <code class="varname">TEST_DEPENDS</code> variable.</p></li> | | 7670 | <code class="varname">TEST_DEPENDS</code> variable.</p></li> |
7667 | <li class="listitem"> | | 7671 | <li class="listitem"> |
7668 | <p>You can use wildcards in package dependencies. Note that | | 7672 | <p>You can use wildcards in package dependencies. Note that |
7669 | such wildcard dependencies are retained when creating binary | | 7673 | such wildcard dependencies are retained when creating binary |
7670 | packages. The dependency is checked when installing the binary | | 7674 | packages. The dependency is checked when installing the binary |
7671 | package and any package which matches the pattern will be | | 7675 | package and any package which matches the pattern will be |
7672 | used. Wildcard dependencies should be used with care.</p> | | 7676 | used. Wildcard dependencies should be used with care.</p> |
7673 | <p>The <span class="quote">“<span class="quote">-[0-9]*</span>”</span> should be used instead of | | 7677 | <p>The <span class="quote">“<span class="quote">-[0-9]*</span>”</span> should be used instead of |
7674 | <span class="quote">“<span class="quote">-*</span>”</span> to avoid potentially ambiguous matches | | 7678 | <span class="quote">“<span class="quote">-*</span>”</span> to avoid potentially ambiguous matches |
7675 | such as <span class="quote">“<span class="quote">tk-postgresql</span>”</span> matching a | | 7679 | such as <span class="quote">“<span class="quote">tk-postgresql</span>”</span> matching a |
7676 | <span class="quote">“<span class="quote">tk-*</span>”</span> <code class="varname">DEPENDS</code>.</p> | | 7680 | <span class="quote">“<span class="quote">tk-*</span>”</span> <code class="varname">DEPENDS</code>.</p> |
7677 | <p>Wildcards can also be used to specify that a package | | 7681 | <p>Wildcards can also be used to specify that a package |
7678 | will only build against a certain minimum version of a | | 7682 | will only build against a certain minimum version of a |
7679 | pre-requisite:</p> | | 7683 | pre-requisite:</p> |
7680 | <pre class="programlisting"> | | 7684 | <pre class="programlisting"> |
7681 | DEPENDS+= ImageMagick>=6.0:../../graphics/ImageMagick | | 7685 | DEPENDS+= ImageMagick>=6.0:../../graphics/ImageMagick |
7682 | </pre> | | 7686 | </pre> |
7683 | <p>This means that the package will build using version 6.0 | | 7687 | <p>This means that the package will build using version 6.0 |
7684 | of ImageMagick or newer. Such a dependency may be warranted | | 7688 | of ImageMagick or newer. Such a dependency may be warranted |
7685 | if, for example, the command line options of an executable | | 7689 | if, for example, the command line options of an executable |
7686 | have changed.</p> | | 7690 | have changed.</p> |
7687 | <p>If you need to depend on minimum versions of libraries, | | 7691 | <p>If you need to depend on minimum versions of libraries, |
7688 | set | | 7692 | set |
7689 | <code class="varname">BUILDLINK_API_DEPENDS.<em class="replaceable"><code>pkg</code></em></code> | | 7693 | <code class="varname">BUILDLINK_API_DEPENDS.<em class="replaceable"><code>pkg</code></em></code> |
7690 | to the appropriate pattern before including its | | 7694 | to the appropriate pattern before including its |
7691 | <code class="filename">buildlink3.mk</code> file, e.g.</p> | | 7695 | <code class="filename">buildlink3.mk</code> file, e.g.</p> |
7692 | <pre class="programlisting"> | | 7696 | <pre class="programlisting"> |
7693 | BUILDLINK_API_DEPENDS.jpeg+= jpeg>=9.0 | | 7697 | BUILDLINK_API_DEPENDS.jpeg+= jpeg>=9.0 |
7694 | .include "../../graphics/jpeg/buildlink3.mk" | | 7698 | .include "../../graphics/jpeg/buildlink3.mk" |
7695 | </pre> | | 7699 | </pre> |
7696 | <p>For security fixes, please update the package | | 7700 | <p>For security fixes, please update the package |
7697 | vulnerabilities file. See <a class="xref" href="#security-handling" title="21.1.9. Handling packages with security problems">Section 21.1.9, “Handling packages with security problems”</a> for more | | 7701 | vulnerabilities file. See <a class="xref" href="#security-handling" title="21.1.9. Handling packages with security problems">Section 21.1.9, “Handling packages with security problems”</a> for more |
7698 | information.</p> | | 7702 | information.</p> |
7699 | </li> | | 7703 | </li> |
7700 | </ol></div> | | 7704 | </ol></div> |
7701 | <p>If your package needs files from another package to build, | | 7705 | <p>If your package needs files from another package to build, |
7702 | add the relevant distribution files to | | 7706 | add the relevant distribution files to |
7703 | <code class="varname">DISTFILES</code>, so they will be extracted | | 7707 | <code class="varname">DISTFILES</code>, so they will be extracted |
7704 | automatically. See the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/print/ghostscript/index.html" target="_top"><code class="filename">print/ghostscript</code></a> package for an example. | | 7708 | automatically. See the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/print/ghostscript/index.html" target="_top"><code class="filename">print/ghostscript</code></a> package for an example. |
7705 | (It relies on the jpeg sources being present in source form | | 7709 | (It relies on the jpeg sources being present in source form |
7706 | during the build.)</p> | | 7710 | during the build.)</p> |
7707 | </div> | | 7711 | </div> |
7708 | <div class="sect2"> | | 7712 | <div class="sect2"> |
7709 | <div class="titlepage"><div><div><h3 class="title"> | | 7713 | <div class="titlepage"><div><div><h3 class="title"> |
7710 | <a name="conflicts"></a>21.1.6. Handling conflicts with other packages</h3></div></div></div> | | 7714 | <a name="conflicts"></a>21.1.6. Handling conflicts with other packages</h3></div></div></div> |
7711 | <p>Your package may conflict with other packages a user might | | 7715 | <p>Your package may conflict with other packages a user might |
7712 | already have installed on his system, e.g. if your package | | 7716 | already have installed on his system, e.g. if your package |
7713 | installs the same set of files as another package in the pkgsrc | | 7717 | installs the same set of files as another package in the pkgsrc |
7714 | tree or has the same <code class="varname">PKGNAME</code>.</p> | | 7718 | tree or has the same <code class="varname">PKGNAME</code>.</p> |
7715 | <p>For example, <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/x11/libXaw3d/index.html" target="_top"><code class="filename">x11/libXaw3d</code></a> | | 7719 | <p>For example, <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/x11/libXaw3d/index.html" target="_top"><code class="filename">x11/libXaw3d</code></a> |
7716 | and <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/x11/Xaw-Xpm/index.html" target="_top"><code class="filename">x11/Xaw-Xpm</code></a> | | 7720 | and <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/x11/Xaw-Xpm/index.html" target="_top"><code class="filename">x11/Xaw-Xpm</code></a> |
7717 | install the same shared library, thus you set in | | 7721 | install the same shared library, thus you set in |
7718 | <code class="filename">pkgsrc/x11/libXaw3d/Makefile</code>:</p> | | 7722 | <code class="filename">pkgsrc/x11/libXaw3d/Makefile</code>:</p> |
7719 | <pre class="programlisting"> | | 7723 | <pre class="programlisting"> |
7720 | CONFLICTS= Xaw-Xpm-[0-9]* | | 7724 | CONFLICTS= Xaw-Xpm-[0-9]* |
7721 | </pre> | | 7725 | </pre> |
7722 | <p>and in <code class="filename">pkgsrc/x11/Xaw-Xpm/Makefile</code>:</p> | | 7726 | <p>and in <code class="filename">pkgsrc/x11/Xaw-Xpm/Makefile</code>:</p> |
7723 | <pre class="programlisting"> | | 7727 | <pre class="programlisting"> |
7724 | CONFLICTS= libXaw3d-[0-9]* | | 7728 | CONFLICTS= libXaw3d-[0-9]* |
7725 | </pre> | | 7729 | </pre> |
7726 | <p><a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_add.1"><span class="citerefentry"><span class="refentrytitle">pkg_add</span>(1)</span></a> is able to detect attempts to install packages | | 7730 | <p><a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_add.1"><span class="citerefentry"><span class="refentrytitle">pkg_add</span>(1)</span></a> is able to detect attempts to install packages |
7727 | that conflict with existing packages and abort. However, in many | | 7731 | that conflict with existing packages and abort. However, in many |
7728 | situations this is too late in the process. Binary package managers | | 7732 | situations this is too late in the process. Binary package managers |
7729 | will not know about the conflict until they attempt to install the | | 7733 | will not know about the conflict until they attempt to install the |
7730 | package after already downloading it and all its dependencies. | | 7734 | package after already downloading it and all its dependencies. |
7731 | Users may also waste time building a package and its dependencies | | 7735 | Users may also waste time building a package and its dependencies |
7732 | only to find out at the end that it conflicts with another package | | 7736 | only to find out at the end that it conflicts with another package |
7733 | they have installed.</p> | | 7737 | they have installed.</p> |
7734 | <p>To avoid these issues <code class="varname">CONFLICTS</code> entries | | 7738 | <p>To avoid these issues <code class="varname">CONFLICTS</code> entries |
7735 | should be added in all cases where it is known that packages conflict | | 7739 | should be added in all cases where it is known that packages conflict |
7736 | with each other. These <code class="varname">CONFLICTS</code> entries are | | 7740 | with each other. These <code class="varname">CONFLICTS</code> entries are |
7737 | exported in <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_summary.5"><span class="citerefentry"><span class="refentrytitle">pkg_summary</span>(5)</span></a> files and consumed by binary package | | 7741 | exported in <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_summary.5"><span class="citerefentry"><span class="refentrytitle">pkg_summary</span>(5)</span></a> files and consumed by binary package |
7738 | managers to inform users that packages cannot be installed onto | | 7742 | managers to inform users that packages cannot be installed onto |
7739 | the target system.</p> | | 7743 | the target system.</p> |
7740 | </div> | | 7744 | </div> |
7741 | <div class="sect2"> | | 7745 | <div class="sect2"> |
7742 | <div class="titlepage"><div><div><h3 class="title"> | | 7746 | <div class="titlepage"><div><div><h3 class="title"> |
7743 | <a name="not-building-packages"></a>21.1.7. Packages that cannot or should not be built</h3></div></div></div> | | 7747 | <a name="not-building-packages"></a>21.1.7. Packages that cannot or should not be built</h3></div></div></div> |
7744 | <p>There are several reasons why a package might be | | 7748 | <p>There are several reasons why a package might be |
7745 | instructed to not build under certain circumstances. If the | | 7749 | instructed to not build under certain circumstances. If the |
7746 | package builds and runs on most platforms, the exceptions | | 7750 | package builds and runs on most platforms, the exceptions |
7747 | should be noted with <code class="varname">BROKEN_ON_PLATFORM</code>. If | | 7751 | should be noted with <code class="varname">BROKEN_ON_PLATFORM</code>. If |
7748 | the package builds and runs on a small handful of platforms, | | 7752 | the package builds and runs on a small handful of platforms, |
7749 | set <code class="varname">BROKEN_EXCEPT_ON_PLATFORM</code> instead. | | 7753 | set <code class="varname">BROKEN_EXCEPT_ON_PLATFORM</code> instead. |
7750 | Both <code class="varname">BROKEN_ON_PLATFORM</code> and | | 7754 | Both <code class="varname">BROKEN_ON_PLATFORM</code> and |
7751 | <code class="varname">BROKEN_EXCEPT_ON_PLATFORM</code> are OS triples | | 7755 | <code class="varname">BROKEN_EXCEPT_ON_PLATFORM</code> are OS triples |
7752 | (OS-version-platform) that can use glob-style | | 7756 | (OS-version-platform) that can use glob-style |
7753 | wildcards.</p> | | 7757 | wildcards.</p> |
7754 | <p>If a package is not appropriate for some platforms (as | | 7758 | <p>If a package is not appropriate for some platforms (as |
7755 | opposed to merely broken), a different set of variables should be | | 7759 | opposed to merely broken), a different set of variables should be |
7756 | used as this affects failure reporting and statistics. | | 7760 | used as this affects failure reporting and statistics. |
7757 | If the package is appropriate for most platforms, the exceptions | | 7761 | If the package is appropriate for most platforms, the exceptions |
7758 | should be noted with <code class="varname">NOT_FOR_PLATFORM</code>. If | | 7762 | should be noted with <code class="varname">NOT_FOR_PLATFORM</code>. If |
7759 | the package is appropriate for only a small handful of platforms | | 7763 | the package is appropriate for only a small handful of platforms |
7760 | (often exactly one), set <code class="varname">ONLY_FOR_PLATFORM</code> instead. | | 7764 | (often exactly one), set <code class="varname">ONLY_FOR_PLATFORM</code> instead. |
7761 | Both <code class="varname">ONLY_FOR_PLATFORM</code> and | | 7765 | Both <code class="varname">ONLY_FOR_PLATFORM</code> and |
7762 | <code class="varname">NOT_FOR_PLATFORM</code> are OS triples | | 7766 | <code class="varname">NOT_FOR_PLATFORM</code> are OS triples |
7763 | (OS-version-platform) that can use glob-style | | 7767 | (OS-version-platform) that can use glob-style |
7764 | wildcards.</p> | | 7768 | wildcards.</p> |
7765 | <p>Some packages are tightly bound to a specific version of an | | 7769 | <p>Some packages are tightly bound to a specific version of an |
7766 | operating system, e.g. LKMs or <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/sysutils/lsof/index.html" target="_top"><code class="filename">sysutils/lsof</code></a>. Such binary packages are not | | 7770 | operating system, e.g. LKMs or <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/sysutils/lsof/index.html" target="_top"><code class="filename">sysutils/lsof</code></a>. Such binary packages are not |
7767 | backwards compatible with other versions of the OS, and should be | | 7771 | backwards compatible with other versions of the OS, and should be |
7768 | uploaded to a version specific directory on the FTP server. Mark | | 7772 | uploaded to a version specific directory on the FTP server. Mark |
7769 | these packages by setting <code class="varname">OSVERSION_SPECIFIC</code> to | | 7773 | these packages by setting <code class="varname">OSVERSION_SPECIFIC</code> to |
7770 | <span class="quote">“<span class="quote">yes</span>”</span>. This variable is not currently used by any of | | 7774 | <span class="quote">“<span class="quote">yes</span>”</span>. This variable is not currently used by any of |
7771 | the package system internals, but may be used in the | | 7775 | the package system internals, but may be used in the |
7772 | future.</p> | | 7776 | future.</p> |
7773 | <p>If the package should be skipped (for example, because it | | 7777 | <p>If the package should be skipped (for example, because it |
7774 | provides functionality already provided by the system), set | | 7778 | provides functionality already provided by the system), set |
7775 | <code class="varname">PKG_SKIP_REASON</code> to a descriptive message. If | | 7779 | <code class="varname">PKG_SKIP_REASON</code> to a descriptive message. If |
7776 | the package should fail because some preconditions are not met, | | 7780 | the package should fail because some preconditions are not met, |
7777 | set <code class="varname">PKG_FAIL_REASON</code> to a descriptive | | 7781 | set <code class="varname">PKG_FAIL_REASON</code> to a descriptive |
7778 | message.</p> | | 7782 | message.</p> |
7779 | </div> | | 7783 | </div> |
7780 | <div class="sect2"> | | 7784 | <div class="sect2"> |
7781 | <div class="titlepage"><div><div><h3 class="title"> | | 7785 | <div class="titlepage"><div><div><h3 class="title"> |
7782 | <a name="undeletable-packages"></a>21.1.8. Packages which should not be deleted, once installed</h3></div></div></div> | | 7786 | <a name="undeletable-packages"></a>21.1.8. Packages which should not be deleted, once installed</h3></div></div></div> |
7783 | <p>To ensure that a package may not be deleted, once it has been | | 7787 | <p>To ensure that a package may not be deleted, once it has been |
7784 | installed, the <code class="varname">PKG_PRESERVE</code> definition should | | 7788 | installed, the <code class="varname">PKG_PRESERVE</code> definition should |
7785 | be set in the package Makefile. This will be carried into any | | 7789 | be set in the package Makefile. This will be carried into any |
7786 | binary package that is made from this pkgsrc entry. A | | 7790 | binary package that is made from this pkgsrc entry. A |
7787 | <span class="quote">“<span class="quote">preserved</span>”</span> package will | | 7791 | <span class="quote">“<span class="quote">preserved</span>”</span> package will |
7788 | not be deleted using <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> unless the | | 7792 | not be deleted using <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/pkg_delete.1"><span class="citerefentry"><span class="refentrytitle">pkg_delete</span>(1)</span></a> unless the |
7789 | <span class="quote">“<span class="quote">-f</span>”</span> option is used.</p> | | 7793 | <span class="quote">“<span class="quote">-f</span>”</span> option is used.</p> |
7790 | </div> | | 7794 | </div> |
7791 | <div class="sect2"> | | 7795 | <div class="sect2"> |
7792 | <div class="titlepage"><div><div><h3 class="title"> | | 7796 | <div class="titlepage"><div><div><h3 class="title"> |
7793 | <a name="security-handling"></a>21.1.9. Handling packages with security problems</h3></div></div></div> | | 7797 | <a name="security-handling"></a>21.1.9. Handling packages with security problems</h3></div></div></div> |
7794 | <p>When a vulnerability is found, this should be noted in | | 7798 | <p>When a vulnerability is found, this should be noted in |
7795 | <code class="filename">localsrc/security/advisories/pkg-vulnerabilities</code>. | | 7799 | <code class="filename">localsrc/security/advisories/pkg-vulnerabilities</code>. |
7796 | Entries in that file consist of three parts:</p> | | 7800 | Entries in that file consist of three parts:</p> |
7797 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 7801 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
7798 | <li class="listitem"><p>package version pattern</p></li> | | 7802 | <li class="listitem"><p>package version pattern</p></li> |
7799 | <li class="listitem"><p>type of vulnerability (please cut'n'paste an existing one where possible)</p></li> | | 7803 | <li class="listitem"><p>type of vulnerability (please cut'n'paste an existing one where possible)</p></li> |
7800 | <li class="listitem"><p>URL providing additional information about the issue</p></li> | | 7804 | <li class="listitem"><p>URL providing additional information about the issue</p></li> |
7801 | </ul></div> | | 7805 | </ul></div> |
7802 | <p>For the package version pattern please always use `<' to | | 7806 | <p>For the package version pattern please always use `<' to |
7803 | mark an upper bound (not `<='!). This will avoid possible | | 7807 | mark an upper bound (not `<='!). This will avoid possible |
7804 | problems due unrelated <code class="varname">PKGREVISION</code> bumps not | | 7808 | problems due unrelated <code class="varname">PKGREVISION</code> bumps not |
7805 | related to security fixes. Lower bounds can be added too, using | | 7809 | related to security fixes. Lower bounds can be added too, using |
7806 | '>' or '>='. For example, | | 7810 | '>' or '>='. For example, |
7807 | <span class="quote">“<span class="quote"><code class="literal">foo>=1<1.2</code></span>”</span> would mark | | 7811 | <span class="quote">“<span class="quote"><code class="literal">foo>=1<1.2</code></span>”</span> would mark |
7808 | versions 1.0 (included) to 1.2 (excluded) of | | 7812 | versions 1.0 (included) to 1.2 (excluded) of |
7809 | <span class="quote">“<span class="quote"><code class="literal">foo</code></span>”</span> as affected by the security | | 7813 | <span class="quote">“<span class="quote"><code class="literal">foo</code></span>”</span> as affected by the security |
7810 | issue.</p> | | 7814 | issue.</p> |
7811 | <p>Entries should always be added at the bottom of the file.</p> | | 7815 | <p>Entries should always be added at the bottom of the file.</p> |
7812 | <p>When fixing packages, please modify the upper bound of the | | 7816 | <p>When fixing packages, please modify the upper bound of the |
7813 | corresponding entry. To continue the previous example, if a fix | | 7817 | corresponding entry. To continue the previous example, if a fix |
7814 | was backported to version 1.1nb2, change the previous pattern to | | 7818 | was backported to version 1.1nb2, change the previous pattern to |
7815 | <span class="quote">“<span class="quote"><code class="literal">foo>=1<1.1nb2</code></span>”</span>.</p> | | 7819 | <span class="quote">“<span class="quote"><code class="literal">foo>=1<1.1nb2</code></span>”</span>.</p> |
7816 | <p>To locally test a package version pattern against a | | 7820 | <p>To locally test a package version pattern against a |
7817 | <code class="varname">PKGNAME</code> you can use the <span class="command"><strong>pkg_admin | | 7821 | <code class="varname">PKGNAME</code> you can use the <span class="command"><strong>pkg_admin |
7818 | pmatch</strong></span> command.</p> | | 7822 | pmatch</strong></span> command.</p> |
7819 | <p>The URL should be as permanent as possible and provide as | | 7823 | <p>The URL should be as permanent as possible and provide as |
7820 | much information about the issue as possible. CVE entries are | | 7824 | much information about the issue as possible. CVE entries are |
7821 | preferred.</p> | | 7825 | preferred.</p> |
7822 | <p>After committing that file, ask pkgsrc-security@NetBSD.org to | | 7826 | <p>After committing that file, ask pkgsrc-security@NetBSD.org to |
7823 | update the file on ftp.NetBSD.org.</p> | | 7827 | update the file on ftp.NetBSD.org.</p> |
7824 | <p>After fixing the vulnerability by a patch, its | | 7828 | <p>After fixing the vulnerability by a patch, its |
7825 | <code class="varname">PKGREVISION</code> should be increased (this is of | | 7829 | <code class="varname">PKGREVISION</code> should be increased (this is of |
7826 | course not necessary if the problem is fixed by using a newer | | 7830 | course not necessary if the problem is fixed by using a newer |
7827 | release of the software), and the pattern in the | | 7831 | release of the software), and the pattern in the |
7828 | pkg-vulnerabilities file must be updated.</p> | | 7832 | pkg-vulnerabilities file must be updated.</p> |
7829 | <p>Also, if the fix should be applied to the stable pkgsrc | | 7833 | <p>Also, if the fix should be applied to the stable pkgsrc |
7830 | branch, be sure to submit a pullup request!</p> | | 7834 | branch, be sure to submit a pullup request!</p> |
7831 | <p>Binary packages already on ftp.NetBSD.org will be handled | | 7835 | <p>Binary packages already on ftp.NetBSD.org will be handled |
7832 | semi-automatically by a weekly cron job.</p> | | 7836 | semi-automatically by a weekly cron job.</p> |
7833 | <p>In case a security issue is disputed, please contact | | 7837 | <p>In case a security issue is disputed, please contact |
7834 | pkgsrc-security@NetBSD.org.</p> | | 7838 | pkgsrc-security@NetBSD.org.</p> |
7835 | </div> | | 7839 | </div> |
7836 | <div class="sect2"> | | 7840 | <div class="sect2"> |
7837 | <div class="titlepage"><div><div><h3 class="title"> | | 7841 | <div class="titlepage"><div><div><h3 class="title"> |
7838 | <a name="bumping-pkgrevision"></a>21.1.10. How to handle incrementing versions when fixing an existing package</h3></div></div></div> | | 7842 | <a name="bumping-pkgrevision"></a>21.1.10. How to handle incrementing versions when fixing an existing package</h3></div></div></div> |
7839 | <p>When making fixes to an existing package it can be useful | | 7843 | <p>When making fixes to an existing package it can be useful |
7840 | to change the version number in <code class="varname">PKGNAME</code>. To | | 7844 | to change the version number in <code class="varname">PKGNAME</code>. To |
7841 | avoid conflicting with future versions by the original author, a | | 7845 | avoid conflicting with future versions by the original author, a |
7842 | <span class="quote">“<span class="quote">nb1</span>”</span>, <span class="quote">“<span class="quote">nb2</span>”</span>, ... suffix can be used | | 7846 | <span class="quote">“<span class="quote">nb1</span>”</span>, <span class="quote">“<span class="quote">nb2</span>”</span>, ... suffix can be used |
7843 | on package versions by setting <code class="varname">PKGREVISION=1</code> | | 7847 | on package versions by setting <code class="varname">PKGREVISION=1</code> |
7844 | (2, ...). The <span class="quote">“<span class="quote">nb</span>”</span> is treated like a | | 7848 | (2, ...). The <span class="quote">“<span class="quote">nb</span>”</span> is treated like a |
7845 | <span class="quote">“<span class="quote">.</span>”</span> by the package tools. e.g.</p> | | 7849 | <span class="quote">“<span class="quote">.</span>”</span> by the package tools. e.g.</p> |
7846 | <pre class="programlisting"> | | 7850 | <pre class="programlisting"> |
7847 | DISTNAME= foo-17.42 | | 7851 | DISTNAME= foo-17.42 |
7848 | PKGREVISION= 9 | | 7852 | PKGREVISION= 9 |
7849 | </pre> | | 7853 | </pre> |
7850 | <p>will result in a <code class="varname">PKGNAME</code> of | | 7854 | <p>will result in a <code class="varname">PKGNAME</code> of |
7851 | <span class="quote">“<span class="quote">foo-17.42nb9</span>”</span>. If you want to use the original | | 7855 | <span class="quote">“<span class="quote">foo-17.42nb9</span>”</span>. If you want to use the original |
7852 | value of <code class="varname">PKGNAME</code> without the <span class="quote">“<span class="quote">nbX</span>”</span> | | 7856 | value of <code class="varname">PKGNAME</code> without the <span class="quote">“<span class="quote">nbX</span>”</span> |
7853 | suffix, e.g. for setting <code class="varname">DIST_SUBDIR</code>, use | | 7857 | suffix, e.g. for setting <code class="varname">DIST_SUBDIR</code>, use |
7854 | <code class="varname">PKGNAME_NOREV</code>.</p> | | 7858 | <code class="varname">PKGNAME_NOREV</code>.</p> |
7855 | <p>When a new release of the package is released, the | | 7859 | <p>When a new release of the package is released, the |
7856 | <code class="varname">PKGREVISION</code> should be removed, e.g. on a new | | 7860 | <code class="varname">PKGREVISION</code> should be removed, e.g. on a new |
7857 | minor release of the above package, things should be like:</p> | | 7861 | minor release of the above package, things should be like:</p> |
7858 | <pre class="programlisting"> | | 7862 | <pre class="programlisting"> |
7859 | DISTNAME= foo-17.43 | | 7863 | DISTNAME= foo-17.43 |
7860 | </pre> | | 7864 | </pre> |
7861 | <p><code class="varname">PKGREVISION</code> should be incremented for any | | 7865 | <p><code class="varname">PKGREVISION</code> should be incremented for any |
7862 | non-trivial change in the resulting binary package. Without a | | 7866 | non-trivial change in the resulting binary package. Without a |
7863 | <code class="varname">PKGREVISION</code> bump, someone with the previous | | 7867 | <code class="varname">PKGREVISION</code> bump, someone with the previous |
7864 | version installed has no way of knowing that their package is out | | 7868 | version installed has no way of knowing that their package is out |
7865 | of date. Thus, changes without increasing | | 7869 | of date. Thus, changes without increasing |
7866 | <code class="varname">PKGREVISION</code> are essentially labeled "this is so | | 7870 | <code class="varname">PKGREVISION</code> are essentially labeled "this is so |
7867 | trivial that no reasonable person would want to upgrade", and this | | 7871 | trivial that no reasonable person would want to upgrade", and this |
7868 | is the rough test for when increasing | | 7872 | is the rough test for when increasing |
7869 | <code class="varname">PKGREVISION</code> is appropriate. Examples of | | 7873 | <code class="varname">PKGREVISION</code> is appropriate. Examples of |
7870 | changes that do not merit increasing | | 7874 | changes that do not merit increasing |
7871 | <code class="varname">PKGREVISION</code> are:</p> | | 7875 | <code class="varname">PKGREVISION</code> are:</p> |
7872 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 7876 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
7873 | <li class="listitem"><p>Changing <code class="varname">HOMEPAGE</code>, | | 7877 | <li class="listitem"><p>Changing <code class="varname">HOMEPAGE</code>, |
7874 | <code class="varname">MAINTAINER</code>, <code class="varname">OWNER</code>, or | | 7878 | <code class="varname">MAINTAINER</code>, <code class="varname">OWNER</code>, or |
7875 | comments in Makefile.</p></li> | | 7879 | comments in Makefile.</p></li> |
7876 | <li class="listitem"><p>Changing build variables if the resulting binary | | 7880 | <li class="listitem"><p>Changing build variables if the resulting binary |
7877 | package is the same.</p></li> | | 7881 | package is the same.</p></li> |
7878 | <li class="listitem"><p>Changing | | 7882 | <li class="listitem"><p>Changing |
7879 | <code class="filename">DESCR</code>.</p></li> | | 7883 | <code class="filename">DESCR</code>.</p></li> |
7880 | <li class="listitem"><p>Adding <code class="varname">PKG_OPTIONS</code> if the | | 7884 | <li class="listitem"><p>Adding <code class="varname">PKG_OPTIONS</code> if the |
7881 | default options don't change.</p></li> | | 7885 | default options don't change.</p></li> |
7882 | </ul></div> | | 7886 | </ul></div> |
7883 | <p>Examples of changes that do merit an increase to | | 7887 | <p>Examples of changes that do merit an increase to |
7884 | <code class="varname">PKGREVISION</code> include:</p> | | 7888 | <code class="varname">PKGREVISION</code> include:</p> |
7885 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 7889 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
7886 | <li class="listitem"><p>Security fixes</p></li> | | 7890 | <li class="listitem"><p>Security fixes</p></li> |
7887 | <li class="listitem"><p>Changes or additions to a patch | | 7891 | <li class="listitem"><p>Changes or additions to a patch |
7888 | file</p></li> | | 7892 | file</p></li> |
7889 | <li class="listitem"><p>Changes to the | | 7893 | <li class="listitem"><p>Changes to the |
7890 | <code class="filename">PLIST</code></p></li> | | 7894 | <code class="filename">PLIST</code></p></li> |
7891 | <li class="listitem"><p>A dependency is changed or | | 7895 | <li class="listitem"><p>A dependency is changed or |
7892 | renamed.</p></li> | | 7896 | renamed.</p></li> |
7893 | </ul></div> | | 7897 | </ul></div> |
7894 | <p>PKGREVISION must also be incremented when dependencies have ABI | | 7898 | <p>PKGREVISION must also be incremented when dependencies have ABI |
7895 | changes.</p> | | 7899 | changes.</p> |
7896 | </div> | | 7900 | </div> |
7897 | <div class="sect2"> | | 7901 | <div class="sect2"> |
7898 | <div class="titlepage"><div><div><h3 class="title"> | | 7902 | <div class="titlepage"><div><div><h3 class="title"> |
7899 | <a name="fixes.subst"></a>21.1.11. Substituting variable text in the package files (the SUBST framework)</h3></div></div></div> | | 7903 | <a name="fixes.subst"></a>21.1.11. Substituting variable text in the package files (the SUBST framework)</h3></div></div></div> |
7900 | <p>When you want to replace the same text in multiple files, or | | 7904 | <p>When you want to replace the same text in multiple files, or |
7901 | multiple times in the same file, it is cumbersome to maintain a patch | | 7905 | multiple times in the same file, it is cumbersome to maintain a patch |
7902 | file for this. This is where the SUBST framework steps in. It provides an | | 7906 | file for this. This is where the SUBST framework steps in. It provides an |
7903 | easy-to-use interface for replacing text in files. It just needs the | | 7907 | easy-to-use interface for replacing text in files. It just needs the |
7904 | following information:</p> | | 7908 | following information:</p> |
7905 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 7909 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
7906 | <li class="listitem"><p>In which phase of the package build cycle should the | | 7910 | <li class="listitem"><p>In which phase of the package build cycle should the |
7907 | replacement happen?</p></li> | | 7911 | replacement happen?</p></li> |
7908 | <li class="listitem"><p>In which files should the replacement | | 7912 | <li class="listitem"><p>In which files should the replacement |
7909 | happen?</p></li> | | 7913 | happen?</p></li> |
7910 | <li class="listitem"><p>Which text should be replaced with | | 7914 | <li class="listitem"><p>Which text should be replaced with |
7911 | what?</p></li> | | 7915 | what?</p></li> |
7912 | </ul></div> | | 7916 | </ul></div> |
7913 | <p>This information is encoded in a block of <code class="varname">SUBST</code> | | 7917 | <p>This information is encoded in a block of <code class="varname">SUBST</code> |
7914 | variables. A minimal example is:</p> | | 7918 | variables. A minimal example is:</p> |
7915 | <pre class="programlisting"> | | 7919 | <pre class="programlisting"> |
7916 | SUBST_CLASSES+= paths | | 7920 | SUBST_CLASSES+= paths |
7917 | SUBST_STAGE.paths= pre-configure | | 7921 | SUBST_STAGE.paths= pre-configure |
7918 | SUBST_FILES.paths= src/*.c | | 7922 | SUBST_FILES.paths= src/*.c |
7919 | SUBST_SED.paths= -e 's,/usr/local,${PREFIX},g' | | 7923 | SUBST_SED.paths= -e 's,/usr/local,${PREFIX},g' |
7920 | </pre> | | 7924 | </pre> |
7921 | <p>Translated into English, it means: In the pre-configure stage (that | | 7925 | <p>Translated into English, it means: In the pre-configure stage (that |
7922 | is, after applying the patches from the patches/ directory and before | | 7926 | is, after applying the patches from the patches/ directory and before |
7923 | running the configure script and the portability check), replace the text | | 7927 | running the configure script and the portability check), replace the text |
7924 | <code class="literal">/usr/local</code> with the content of the variable | | 7928 | <code class="literal">/usr/local</code> with the content of the variable |
7925 | <code class="varname">PREFIX</code>.</p> | | 7929 | <code class="varname">PREFIX</code>.</p> |
7926 | <p>Each SUBST block starts by appending an identifier to | | 7930 | <p>Each SUBST block starts by appending an identifier to |
7927 | <code class="varname">SUBST_CLASSES</code> (note the <code class="literal">+=</code>). This | | 7931 | <code class="varname">SUBST_CLASSES</code> (note the <code class="literal">+=</code>). This |
7928 | identifier can be chosen freely by the package. If there should ever be | | 7932 | identifier can be chosen freely by the package. If there should ever be |
7929 | duplicate identifiers, the pkgsrc infrastructure will catch this and fail | | 7933 | duplicate identifiers, the pkgsrc infrastructure will catch this and fail |
7930 | early, so don't worry about name collisions.</p> | | 7934 | early, so don't worry about name collisions.</p> |
7931 | <p>Except for <code class="varname">SUBST_CLASSES</code>, all variables in a | | 7935 | <p>Except for <code class="varname">SUBST_CLASSES</code>, all variables in a |
7932 | SUBST block are parameterized using this identifier. In the remainder of | | 7936 | SUBST block are parameterized using this identifier. In the remainder of |
7933 | this section, these parameterized variables are written as | | 7937 | this section, these parameterized variables are written as |
7934 | <code class="varname">SUBST_STAGE.*</code>.</p> | | 7938 | <code class="varname">SUBST_STAGE.*</code>.</p> |
7935 | <pre class="programlisting"> | | 7939 | <pre class="programlisting"> |
7936 | SUBST_CLASSES+= paths | | 7940 | SUBST_CLASSES+= paths |
7937 | SUBST_STAGE.paths= pre-configure | | 7941 | SUBST_STAGE.paths= pre-configure |
7938 | SUBST_MESSAGE.paths= Fixing absolute paths. | | 7942 | SUBST_MESSAGE.paths= Fixing absolute paths. |
7939 | SUBST_FILES.paths= src/*.c | | 7943 | SUBST_FILES.paths= src/*.c |
7940 | SUBST_FILES.paths+= scripts/*.sh | | 7944 | SUBST_FILES.paths+= scripts/*.sh |
7941 | SUBST_SED.paths= -e 's,"/usr/local,"${PREFIX},g' | | 7945 | SUBST_SED.paths= -e 's,"/usr/local,"${PREFIX},g' |
7942 | SUBST_SED.paths+= -e 's,"/var/log,"${VARBASE}/log,g' | | 7946 | SUBST_SED.paths+= -e 's,"/var/log,"${VARBASE}/log,g' |
7943 | SUBST_VARS.paths= LOCALBASE PREFIX PKGVERSION | | 7947 | SUBST_VARS.paths= LOCALBASE PREFIX PKGVERSION |
7944 | </pre> | | 7948 | </pre> |
7945 | <p>To get a complete picture about the SUBST substitutions, run | | 7949 | <p>To get a complete picture about the SUBST substitutions, run |
7946 | <span class="command"><strong>bmake show-all-subst</strong></span>. If something doesn't work as | | 7950 | <span class="command"><strong>bmake show-all-subst</strong></span>. If something doesn't work as |
7947 | expected, run pkglint on the package, which detects several typical | | 7951 | expected, run pkglint on the package, which detects several typical |
7948 | mistakes surrounding the SUBST blocks. For any questions that might | | 7952 | mistakes surrounding the SUBST blocks. For any questions that might |
7949 | remain after this, have a look at | | 7953 | remain after this, have a look at |
7950 | <code class="filename">mk/subst.mk</code>.</p> | | 7954 | <code class="filename">mk/subst.mk</code>.</p> |
7951 | <div class="sect3"> | | 7955 | <div class="sect3"> |
7952 | <div class="titlepage"><div><div><h4 class="title"> | | 7956 | <div class="titlepage"><div><div><h4 class="title"> |
7953 | <a name="fixes.subst.when"></a>21.1.11.1. Choosing the time where the substitutions happen</h4></div></div></div> | | 7957 | <a name="fixes.subst.when"></a>21.1.11.1. Choosing the time where the substitutions happen</h4></div></div></div> |
7954 | <p>The <code class="varname">SUBST_STAGE.*</code> is one of | | 7958 | <p>The <code class="varname">SUBST_STAGE.*</code> is one of |
7955 | {pre,do,post}-{extract,patch,configure,build,test,install}. Of these, | | 7959 | {pre,do,post}-{extract,patch,configure,build,test,install}. Of these, |
7956 | <code class="literal">pre-configure</code> is used most often, by far. The most | | 7960 | <code class="literal">pre-configure</code> is used most often, by far. The most |
7957 | popular stages are, in chronological order:</p> | | 7961 | popular stages are, in chronological order:</p> |
7958 | <div class="variablelist"><dl class="variablelist"> | | 7962 | <div class="variablelist"><dl class="variablelist"> |
7959 | <dt><span class="term"><code class="literal">post-extract</code></span></dt> | | 7963 | <dt><span class="term"><code class="literal">post-extract</code></span></dt> |
7960 | <dd> | | 7964 | <dd> |
7961 | <p>The substitutions are applied immediately after the | | 7965 | <p>The substitutions are applied immediately after the |
7962 | distfiles are extracted. Running <span class="command"><strong>bmake extract</strong></span> on the | | 7966 | distfiles are extracted. Running <span class="command"><strong>bmake extract</strong></span> on the |
7963 | package will leave no traces of the original files.</p> | | 7967 | package will leave no traces of the original files.</p> |
7964 | <p>When the substitution applies to files for which there is also a | | 7968 | <p>When the substitution applies to files for which there is also a |
7965 | patch in the <code class="filename">patches/</code> directory, this means that the | | 7969 | patch in the <code class="filename">patches/</code> directory, this means that the |
7966 | patches will be computed based on the result of the substitution. When | | 7970 | patches will be computed based on the result of the substitution. When |
7967 | these patches are sent to the upstream maintainer later, to be fixed in | | 7971 | these patches are sent to the upstream maintainer later, to be fixed in |
7968 | the upstream package, these patches may no longer match what the upstream | | 7972 | the upstream package, these patches may no longer match what the upstream |
7969 | author is used to. Because of this, <code class="literal">pre-configure</code> is | | 7973 | author is used to. Because of this, <code class="literal">pre-configure</code> is |
7970 | often a better choice.</p> | | 7974 | often a better choice.</p> |
7971 | </dd> | | 7975 | </dd> |
7972 | <dt><span class="term"><code class="literal">pre-configure</code></span></dt> | | 7976 | <dt><span class="term"><code class="literal">pre-configure</code></span></dt> |
7973 | <dd> | | 7977 | <dd> |
7974 | <p>The substitutions are applied after the patches from the | | 7978 | <p>The substitutions are applied after the patches from the |
7975 | <code class="filename">patches/</code> directory. This makes it possible to run | | 7979 | <code class="filename">patches/</code> directory. This makes it possible to run |
7976 | <span class="command"><strong>bmake patch</strong></span> on the package, after which the patches | | 7980 | <span class="command"><strong>bmake patch</strong></span> on the package, after which the patches |
7977 | can be edited using the tools pkgvi and mkpatches from the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/index.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> package.</p> | | 7981 | can be edited using the tools pkgvi and mkpatches from the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkgdiff/index.html" target="_top"><code class="filename">pkgtools/pkgdiff</code></a> package.</p> |
7978 | <p>When updating the patches, it is helpful to explicitly separate the | | 7982 | <p>When updating the patches, it is helpful to explicitly separate the |
7979 | <span class="command"><strong>bmake patch</strong></span> from the <span class="command"><strong>bmake | | 7983 | <span class="command"><strong>bmake patch</strong></span> from the <span class="command"><strong>bmake |
7980 | configure</strong></span>, and to only edit the patches between these commands. | | 7984 | configure</strong></span>, and to only edit the patches between these commands. |
7981 | Otherwise the substitutions from the SUBST block will end up in the patch | | 7985 | Otherwise the substitutions from the SUBST block will end up in the patch |
7982 | file. When this happens in really obvious ways, pkglint will complain | | 7986 | file. When this happens in really obvious ways, pkglint will complain |
7983 | about patches that contain a hard-coded <code class="literal">/usr/pkg</code> | | 7987 | about patches that contain a hard-coded <code class="literal">/usr/pkg</code> |
7984 | instead of the correct and intended <code class="literal">@PREFIX@</code>, but it | | 7988 | instead of the correct and intended <code class="literal">@PREFIX@</code>, but it |
7985 | can only detect these really obvious | | 7989 | can only detect these really obvious |
7986 | cases.</p> | | 7990 | cases.</p> |
7987 | </dd> | | 7991 | </dd> |
7988 | <dt><span class="term"><code class="literal">do-configure</code></span></dt> | | 7992 | <dt><span class="term"><code class="literal">do-configure</code></span></dt> |
7989 | <dd><p>This stage should only be used if the package defines a | | 7993 | <dd><p>This stage should only be used if the package defines a |
7990 | <code class="literal">pre-configure</code> action itself, and the substitution must | | 7994 | <code class="literal">pre-configure</code> action itself, and the substitution must |
7991 | happen after that. Typical examples are packages that use the | | 7995 | happen after that. Typical examples are packages that use the |
7992 | <code class="literal">pre-configure</code> stage to regenerate the GNU configure | | 7996 | <code class="literal">pre-configure</code> stage to regenerate the GNU configure |
7993 | script from | | 7997 | script from |
7994 | <code class="filename">configure.ac</code>.</p></dd> | | 7998 | <code class="filename">configure.ac</code>.</p></dd> |
7995 | <dt><span class="term"><code class="literal">post-configure</code></span></dt> | | 7999 | <dt><span class="term"><code class="literal">post-configure</code></span></dt> |
7996 | <dd><p>This stage is used to fix up any mistakes by the | | 8000 | <dd><p>This stage is used to fix up any mistakes by the |
7997 | configure stage.</p></dd> | | 8001 | configure stage.</p></dd> |
7998 | <dt><span class="term"><code class="literal">pre-build</code></span></dt> | | 8002 | <dt><span class="term"><code class="literal">pre-build</code></span></dt> |
7999 | <dd><p>This stage should only be used for substitutions that are | | 8003 | <dd><p>This stage should only be used for substitutions that are |
8000 | clearly related to building the package, not for fixing the | | 8004 | clearly related to building the package, not for fixing the |
8001 | configuration. Substitutions for pathnames (such as replacing | | 8005 | configuration. Substitutions for pathnames (such as replacing |
8002 | <code class="filename">/usr/local</code> with <code class="literal">${PREFIX}</code>) or | | 8006 | <code class="filename">/usr/local</code> with <code class="literal">${PREFIX}</code>) or |
8003 | user names (such as replacing <code class="literal">@MY_USER@</code> with the | | 8007 | user names (such as replacing <code class="literal">@MY_USER@</code> with the |
8004 | actual username) belong in pre-configure or post-configure | | 8008 | actual username) belong in pre-configure or post-configure |
8005 | instead.</p></dd> | | 8009 | instead.</p></dd> |
8006 | <dt><span class="term"><code class="literal">post-build</code></span></dt> | | 8010 | <dt><span class="term"><code class="literal">post-build</code></span></dt> |
8007 | <dd> | | 8011 | <dd> |
8008 | <p>Just as with pre-build, this stage should only be used | | 8012 | <p>Just as with pre-build, this stage should only be used |
8009 | for substitutions that are clearly related to building the package, not | | 8013 | for substitutions that are clearly related to building the package, not |
8010 | for fixing the configuration. Substitutions for pathnames (such as | | 8014 | for fixing the configuration. Substitutions for pathnames (such as |
8011 | replacing <code class="filename">/usr/local</code> with | | 8015 | replacing <code class="filename">/usr/local</code> with |
8012 | <code class="literal">${PREFIX}</code>) or user names (such as replacing | | 8016 | <code class="literal">${PREFIX}</code>) or user names (such as replacing |
8013 | <code class="literal">@MY_USER@</code> with the actual username) belong in | | 8017 | <code class="literal">@MY_USER@</code> with the actual username) belong in |
8014 | pre-configure or post-configure instead.</p> | | 8018 | pre-configure or post-configure instead.</p> |
8015 | <p>A typical use is to update pkg-config files to include the rpath | | 8019 | <p>A typical use is to update pkg-config files to include the rpath |
8016 | compiler options.</p> | | 8020 | compiler options.</p> |
8017 | </dd> | | 8021 | </dd> |
8018 | <dt><span class="term"><code class="literal">pre-install</code></span></dt> | | 8022 | <dt><span class="term"><code class="literal">pre-install</code></span></dt> |
8019 | <dd><p>In general, the install phase should be as simple as | | 8023 | <dd><p>In general, the install phase should be as simple as |
8020 | possible. As with the pre-build and post-build stages, it should not be | | 8024 | possible. As with the pre-build and post-build stages, it should not be |
8021 | used to fix pathnames or user names, these belong in pre-configure | | 8025 | used to fix pathnames or user names, these belong in pre-configure |
8022 | instead. There are only few legitimate use cases for applying | | 8026 | instead. There are only few legitimate use cases for applying |
8023 | substitutions in this stage.</p></dd> | | 8027 | substitutions in this stage.</p></dd> |
8024 | </dl></div> | | 8028 | </dl></div> |
8025 | </div> | | 8029 | </div> |
8026 | <div class="sect3"> | | 8030 | <div class="sect3"> |
8027 | <div class="titlepage"><div><div><h4 class="title"> | | 8031 | <div class="titlepage"><div><div><h4 class="title"> |
8028 | <a name="fixes.subst.where"></a>21.1.11.2. Choosing the files where the substitutions happen</h4></div></div></div> | | 8032 | <a name="fixes.subst.where"></a>21.1.11.2. Choosing the files where the substitutions happen</h4></div></div></div> |
8029 | <p>The <code class="varname">SUBST_FILES.*</code> variable contains a list of | | 8033 | <p>The <code class="varname">SUBST_FILES.*</code> variable contains a list of |
8030 | filename patterns. These patterns are relative to | | 8034 | filename patterns. These patterns are relative to |
8031 | <code class="varname">WRKSRC</code> since that is where most substitutions happen. | | 8035 | <code class="varname">WRKSRC</code> since that is where most substitutions happen. |
8032 | A typical example is:</p> | | 8036 | A typical example is:</p> |
8033 | <pre class="programlisting"> | | 8037 | <pre class="programlisting"> |
8034 | SUBST_FILES.path= Makefile */Makefile */*/Makefile *.[ch] | | 8038 | SUBST_FILES.path= Makefile */Makefile */*/Makefile *.[ch] |
8035 | </pre> | | 8039 | </pre> |
8036 | <p>The above patterns, especially the last, are quite broad. The SUBST | | 8040 | <p>The above patterns, especially the last, are quite broad. The SUBST |
8037 | implementation checks that each filename pattern that is mentioned here | | 8041 | implementation checks that each filename pattern that is mentioned here |
8038 | has an effect. For example, if none of the | | 8042 | has an effect. For example, if none of the |
8039 | <code class="filename">*/*/Makefile</code> files contains the patterns to be found | | 8043 | <code class="filename">*/*/Makefile</code> files contains the patterns to be found |
8040 | and substituted, that filename pattern is redundant and should be left | | 8044 | and substituted, that filename pattern is redundant and should be left |
8041 | out. By default, the SUBST framework will complain with an error message. | | 8045 | out. By default, the SUBST framework will complain with an error message. |
8042 | If the text to be substituted occurs in some of the files from a single | | 8046 | If the text to be substituted occurs in some of the files from a single |
8043 | pattern, but not in all of them, that is totally ok, and the SUBST | | 8047 | pattern, but not in all of them, that is totally ok, and the SUBST |
8044 | framework will only print an INFO message for those files.</p> | | 8048 | framework will only print an INFO message for those files.</p> |
8045 | <p>If there is a good reason for having redundant filename patterns, | | 8049 | <p>If there is a good reason for having redundant filename patterns, |
8046 | set <code class="varname">SUBST_NOOP_OK.*</code> to <code class="literal">yes</code>.</p> | | 8050 | set <code class="varname">SUBST_NOOP_OK.*</code> to <code class="literal">yes</code>.</p> |
8047 | <p>Another popular way of choosing the files for the substitutions is | | 8051 | <p>Another popular way of choosing the files for the substitutions is |
8048 | via a shell command, like this:</p> | | 8052 | via a shell command, like this:</p> |
8049 | <pre class="programlisting"> | | 8053 | <pre class="programlisting"> |
8050 | C_FILES_CMD= cd ${WRKSRC} && ${FIND} . -name '*.c' | | 8054 | C_FILES_CMD= cd ${WRKSRC} && ${FIND} . -name '*.c' |
8051 | SUBST_FILES.path= ${C_FILES_CMD:sh} | | 8055 | SUBST_FILES.path= ${C_FILES_CMD:sh} |
8052 | </pre> | | 8056 | </pre> |
8053 | <p>The variable name <code class="varname">C_FILES_CMD</code> in this example is | | 8057 | <p>The variable name <code class="varname">C_FILES_CMD</code> in this example is |
8054 | freely chosen and independent of the SUBST framework.</p> | | 8058 | freely chosen and independent of the SUBST framework.</p> |
8055 | <p>In this variant, the <code class="varname">SUBST_FILES.*</code> variable | | 8059 | <p>In this variant, the <code class="varname">SUBST_FILES.*</code> variable |
8056 | lists each file individually. Thereby chances are higher that there are | | 8060 | lists each file individually. Thereby chances are higher that there are |
8057 | filename patterns in which no substitution happens. Since the SUBST | | 8061 | filename patterns in which no substitution happens. Since the SUBST |
8058 | framework cannot know whether the filename patterns in | | 8062 | framework cannot know whether the filename patterns in |
8059 | <code class="varname">SUBST_FILES.*</code> have been explicitly listed in the | | 8063 | <code class="varname">SUBST_FILES.*</code> have been explicitly listed in the |
8060 | Makefile (where any redundant filename pattern would be suspicious) or | | 8064 | Makefile (where any redundant filename pattern would be suspicious) or |
8061 | been generated by a shell command (in which redundant filename patterns | | 8065 | been generated by a shell command (in which redundant filename patterns |
8062 | are more likely and to be expected), it will complain about these | | 8066 | are more likely and to be expected), it will complain about these |
8063 | redundant filename patterns. Therefore, SUBST blocks that use a shell | | 8067 | redundant filename patterns. Therefore, SUBST blocks that use a shell |
8064 | command to generate the list of filename patterns often need to set | | 8068 | command to generate the list of filename patterns often need to set |
8065 | <code class="varname">SUBST_NOOP_OK.*</code> to <code class="literal">yes</code>.</p> | | 8069 | <code class="varname">SUBST_NOOP_OK.*</code> to <code class="literal">yes</code>.</p> |
8066 | </div> | | 8070 | </div> |
8067 | <div class="sect3"> | | 8071 | <div class="sect3"> |
8068 | <div class="titlepage"><div><div><h4 class="title"> | | 8072 | <div class="titlepage"><div><div><h4 class="title"> |
8069 | <a name="fixes.subst.what"></a>21.1.11.3. Choosing what to substitute</h4></div></div></div> | | 8073 | <a name="fixes.subst.what"></a>21.1.11.3. Choosing what to substitute</h4></div></div></div> |
8070 | <p>In most cases, the substitutions are given using one or more | | 8074 | <p>In most cases, the substitutions are given using one or more |
8071 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/sed.1"><span class="citerefentry"><span class="refentrytitle">sed</span>(1)</span></a> commands, like this:</p> | | 8075 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/sed.1"><span class="citerefentry"><span class="refentrytitle">sed</span>(1)</span></a> commands, like this:</p> |
8072 | <pre class="programlisting"> | | 8076 | <pre class="programlisting"> |
8073 | SUBST_SED.path= -e 's|/usr/local|${PREFIX}|g' | | 8077 | SUBST_SED.path= -e 's|/usr/local|${PREFIX}|g' |
8074 | </pre> | | 8078 | </pre> |
8075 | <p>Each of the sed commands needs to be preceded by the | | 8079 | <p>Each of the sed commands needs to be preceded by the |
8076 | <code class="literal">-e</code> option and should be specified on a line of its | | 8080 | <code class="literal">-e</code> option and should be specified on a line of its |
8077 | own, to avoid hiding short sed commands at the end of a line.</p> | | 8081 | own, to avoid hiding short sed commands at the end of a line.</p> |
8078 | <p>Since the sed commands often contain shell metacharacters as the | | 8082 | <p>Since the sed commands often contain shell metacharacters as the |
8079 | separator (the <code class="literal">|</code> in the above example), it is common | | 8083 | separator (the <code class="literal">|</code> in the above example), it is common |
8080 | to enclose them in single quotes.</p> | | 8084 | to enclose them in single quotes.</p> |
8081 | <p>A common substitution is to replace placeholders of the form | | 8085 | <p>A common substitution is to replace placeholders of the form |
8082 | <code class="literal">@VARNAME@</code> with their pkgsrc counterpart variable | | 8086 | <code class="literal">@VARNAME@</code> with their pkgsrc counterpart variable |
8083 | <code class="literal">${VARNAME}</code>. A typical example is:</p> | | 8087 | <code class="literal">${VARNAME}</code>. A typical example is:</p> |
8084 | <pre class="programlisting"> | | 8088 | <pre class="programlisting"> |
8085 | SUBST_VARS.path= PREFIX | | 8089 | SUBST_VARS.path= PREFIX |
8086 | </pre> | | 8090 | </pre> |
8087 | <p>This type of substitutions is typically done by the GNU configure | | 8091 | <p>This type of substitutions is typically done by the GNU configure |
8088 | scripts during the do-configure stage, but in some cases these need to be | | 8092 | scripts during the do-configure stage, but in some cases these need to be |
8089 | overridden. The same pattern is also used when a package defines patches | | 8093 | overridden. The same pattern is also used when a package defines patches |
8090 | that replace previously hard-coded paths like | | 8094 | that replace previously hard-coded paths like |
8091 | <code class="literal">/usr/local</code> with a <code class="literal">@PREFIX@</code> | | 8095 | <code class="literal">/usr/local</code> with a <code class="literal">@PREFIX@</code> |
8092 | placeholder first, which then gets substituted by the actual | | 8096 | placeholder first, which then gets substituted by the actual |
8093 | <code class="literal">${PREFIX}</code> in the pre-configure stage. In many of these | | 8097 | <code class="literal">${PREFIX}</code> in the pre-configure stage. In many of these |
8094 | cases, it works equally well to just use the SUBST framework to directly | | 8098 | cases, it works equally well to just use the SUBST framework to directly |
8095 | replace <code class="literal">/usr/local</code> with <code class="literal">${PREFIX}</code>, | | 8099 | replace <code class="literal">/usr/local</code> with <code class="literal">${PREFIX}</code>, |
8096 | thereby omitting the intermediate patch file.</p> | | 8100 | thereby omitting the intermediate patch file.</p> |
8097 | <p>If the above is not flexible enough, it is possible to not use sed | | 8101 | <p>If the above is not flexible enough, it is possible to not use sed |
8098 | at all for the substitution but to specify an entirely different command, | | 8102 | at all for the substitution but to specify an entirely different command, |
8099 | like this:</p> | | 8103 | like this:</p> |
8100 | <pre class="programlisting"> | | 8104 | <pre class="programlisting"> |
8101 | SUBST_FILTER_CMD.path= LC_ALL=C ${TR} -d '\r' | | 8105 | SUBST_FILTER_CMD.path= LC_ALL=C ${TR} -d '\r' |
8102 | </pre> | | 8106 | </pre> |
8103 | <p>This is used for the few remaining packages in which the | | 8107 | <p>This is used for the few remaining packages in which the |
8104 | distributed files use Windows-style line endings that need to be | | 8108 | distributed files use Windows-style line endings that need to be |
8105 | converted to UNIX-style line endings.</p> | | 8109 | converted to UNIX-style line endings.</p> |
8106 | </div> | | 8110 | </div> |
8107 | <div class="sect3"> | | 8111 | <div class="sect3"> |
8108 | <div class="titlepage"><div><div><h4 class="title"> | | 8112 | <div class="titlepage"><div><div><h4 class="title"> |
8109 | <a name="fixes.subst.other"></a>21.1.11.4. Other SUBST variables</h4></div></div></div> | | 8113 | <a name="fixes.subst.other"></a>21.1.11.4. Other SUBST variables</h4></div></div></div> |
8110 | <p>When a SUBST block is applied during a package build, a message is | | 8114 | <p>When a SUBST block is applied during a package build, a message is |
8111 | logged. The default message is fine for most purposes but can be | | 8115 | logged. The default message is fine for most purposes but can be |
8112 | overridden by setting <code class="literal">SUBST_MESSAGE.*</code> to an individual | | 8116 | overridden by setting <code class="literal">SUBST_MESSAGE.*</code> to an individual |
8113 | message.</p> | | 8117 | message.</p> |
8114 | </div> | | 8118 | </div> |
8115 | </div> | | 8119 | </div> |
8116 | </div> | | 8120 | </div> |
8117 | <div class="sect1"> | | 8121 | <div class="sect1"> |
8118 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 8122 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
8119 | <a name="fixes.fetch"></a>21.2. The <span class="emphasis"><em>fetch</em></span> phase</h2></div></div></div> | | 8123 | <a name="fixes.fetch"></a>21.2. The <span class="emphasis"><em>fetch</em></span> phase</h2></div></div></div> |
8120 | <div class="sect2"> | | 8124 | <div class="sect2"> |
8121 | <div class="titlepage"><div><div><h3 class="title"> | | 8125 | <div class="titlepage"><div><div><h3 class="title"> |
8122 | <a name="no-plain-download"></a>21.2.1. Packages whose distfiles aren't available for plain downloading</h3></div></div></div> | | 8126 | <a name="no-plain-download"></a>21.2.1. Packages whose distfiles aren't available for plain downloading</h3></div></div></div> |
8123 | <p>If you need to download from a dynamic URL you can set | | 8127 | <p>If you need to download from a dynamic URL you can set |
8124 | <code class="varname">DYNAMIC_MASTER_SITES</code> and a <span class="command"><strong>make | | 8128 | <code class="varname">DYNAMIC_MASTER_SITES</code> and a <span class="command"><strong>make |
8125 | fetch</strong></span> will call <code class="filename">files/getsite.sh</code> | | 8129 | fetch</strong></span> will call <code class="filename">files/getsite.sh</code> |
8126 | with the name of each file to download as an argument, expecting | | 8130 | with the name of each file to download as an argument, expecting |
8127 | it to output the URL of the directory from which to download | | 8131 | it to output the URL of the directory from which to download |
8128 | it. <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/graphics/ns-cult3d/index.html" target="_top"><code class="filename">graphics/ns-cult3d</code></a> is an | | 8132 | it. <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/graphics/ns-cult3d/index.html" target="_top"><code class="filename">graphics/ns-cult3d</code></a> is an |
8129 | example of this usage.</p> | | 8133 | example of this usage.</p> |
8130 | <p>If the download can't be automated, because the user must | | 8134 | <p>If the download can't be automated, because the user must |
8131 | submit personal information to apply for a password, or must pay | | 8135 | submit personal information to apply for a password, or must pay |
8132 | for the source, or whatever, you can set | | 8136 | for the source, or whatever, you can set |
8133 | <code class="varname">FETCH_MESSAGE</code> to a list of lines that are | | 8137 | <code class="varname">FETCH_MESSAGE</code> to a list of lines that are |
8134 | displayed to the user before aborting the build. Example:</p> | | 8138 | displayed to the user before aborting the build. Example:</p> |
8135 | <pre class="programlisting"> | | 8139 | <pre class="programlisting"> |
8136 | FETCH_MESSAGE= "Please download the files" | | 8140 | FETCH_MESSAGE= "Please download the files" |
8137 | FETCH_MESSAGE+= " "${DISTFILES:Q} | | 8141 | FETCH_MESSAGE+= " "${DISTFILES:Q} |
8138 | FETCH_MESSAGE+= "manually from "${MASTER_SITES:Q}"." | | 8142 | FETCH_MESSAGE+= "manually from "${MASTER_SITES:Q}"." |
8139 | </pre> | | 8143 | </pre> |
8140 | </div> | | 8144 | </div> |
8141 | <div class="sect2"> | | 8145 | <div class="sect2"> |
8142 | <div class="titlepage"><div><div><h3 class="title"> | | 8146 | <div class="titlepage"><div><div><h3 class="title"> |
8143 | <a name="modified-distfiles-same-name"></a>21.2.2. How to handle modified distfiles with the 'old' name</h3></div></div></div> | | 8147 | <a name="modified-distfiles-same-name"></a>21.2.2. How to handle modified distfiles with the 'old' name</h3></div></div></div> |
8144 | <p>Sometimes authors of a software package make some | | 8148 | <p>Sometimes authors of a software package make some |
8145 | modifications after the software was released, and they put up a | | 8149 | modifications after the software was released, and they put up a |
8146 | new distfile without changing the package's version number. If a | | 8150 | new distfile without changing the package's version number. If a |
8147 | package is already in pkgsrc at that time, the checksum will | | 8151 | package is already in pkgsrc at that time, the checksum will |
8148 | no longer match. The contents of the new distfile should be | | 8152 | no longer match. The contents of the new distfile should be |
8149 | compared against the old one before changing anything, to make | | 8153 | compared against the old one before changing anything, to make |
8150 | sure the distfile was really updated on purpose, and that | | 8154 | sure the distfile was really updated on purpose, and that |
8151 | no trojan horse or so crept in. | | 8155 | no trojan horse or so crept in. |
8152 | Please mention that the distfiles were compared and what was found | | 8156 | Please mention that the distfiles were compared and what was found |
8153 | in your commit message.</p> | | 8157 | in your commit message.</p> |
8154 | <p>Then, the correct way to work around this is to set | | 8158 | <p>Then, the correct way to work around this is to set |
8155 | <code class="varname">DIST_SUBDIR</code> to a unique directory name, usually | | 8159 | <code class="varname">DIST_SUBDIR</code> to a unique directory name, usually |
8156 | based on <code class="varname">PKGNAME_NOREV</code> (but take care with | | 8160 | based on <code class="varname">PKGNAME_NOREV</code> (but take care with |
8157 | python or ruby packages, where <code class="varname">PKGNAME</code> includes | | 8161 | python or ruby packages, where <code class="varname">PKGNAME</code> includes |
8158 | a variable prefix). All <code class="varname">DISTFILES</code> and | | 8162 | a variable prefix). All <code class="varname">DISTFILES</code> and |
8159 | <code class="varname">PATCHFILES</code> for this package will be put in that | | 8163 | <code class="varname">PATCHFILES</code> for this package will be put in that |
8160 | subdirectory of the local distfiles directory. (See <a class="xref" href="#bumping-pkgrevision" title="21.1.10. How to handle incrementing versions when fixing an existing package">Section 21.1.10, “How to handle incrementing versions when fixing an existing package”</a> for more details.) In case this | | 8164 | subdirectory of the local distfiles directory. (See <a class="xref" href="#bumping-pkgrevision" title="21.1.10. How to handle incrementing versions when fixing an existing package">Section 21.1.10, “How to handle incrementing versions when fixing an existing package”</a> for more details.) In case this |
8161 | happens more often, <code class="varname">PKGNAME</code> can be used (thus | | 8165 | happens more often, <code class="varname">PKGNAME</code> can be used (thus |
8162 | including the <code class="filename">nbX</code> suffix) or a date stamp can | | 8166 | including the <code class="filename">nbX</code> suffix) or a date stamp can |
8163 | be appended, like | | 8167 | be appended, like |
8164 | <code class="varname">${PKGNAME_NOREV}-YYYYMMDD</code>.</p> | | 8168 | <code class="varname">${PKGNAME_NOREV}-YYYYMMDD</code>.</p> |
8165 | <p><code class="varname">DIST_SUBDIR</code> is also used when a distfile's | | 8169 | <p><code class="varname">DIST_SUBDIR</code> is also used when a distfile's |
8166 | name does not contain a version and the distfile is apt to change. In | | 8170 | name does not contain a version and the distfile is apt to change. In |
8167 | cases where the likelihood of this is very small, | | 8171 | cases where the likelihood of this is very small, |
8168 | <code class="varname">DIST_SUBDIR</code> might not be required. Additionally, | | 8172 | <code class="varname">DIST_SUBDIR</code> might not be required. Additionally, |
8169 | <code class="varname">DIST_SUBDIR</code> must not be removed unless the | | 8173 | <code class="varname">DIST_SUBDIR</code> must not be removed unless the |
8170 | distfile name changes, even if a package is being moved or | | 8174 | distfile name changes, even if a package is being moved or |
8171 | renamed.</p> | | 8175 | renamed.</p> |
8172 | <p>Do not forget regenerating the <code class="filename">distinfo</code> file | | 8176 | <p>Do not forget regenerating the <code class="filename">distinfo</code> file |
8173 | after that, since it contains the <code class="varname">DIST_SUBDIR</code> | | 8177 | after that, since it contains the <code class="varname">DIST_SUBDIR</code> |
8174 | path in the filenames. | | 8178 | path in the filenames. |
8175 | Also, increase the PKGREVISION if the installed package is different. | | 8179 | Also, increase the PKGREVISION if the installed package is different. |
8176 | Furthermore, a mail to the package's authors seems appropriate | | 8180 | Furthermore, a mail to the package's authors seems appropriate |
8177 | telling them that changing distfiles after releases without | | 8181 | telling them that changing distfiles after releases without |
8178 | changing the file names is not good practice.</p> | | 8182 | changing the file names is not good practice.</p> |
8179 | </div> | | 8183 | </div> |
8180 | <div class="sect2"> | | 8184 | <div class="sect2"> |
8181 | <div class="titlepage"><div><div><h3 class="title"> | | 8185 | <div class="titlepage"><div><div><h3 class="title"> |
8182 | <a name="build.fetch.github"></a>21.2.3. Packages hosted on github.com</h3></div></div></div> | | 8186 | <a name="build.fetch.github"></a>21.2.3. Packages hosted on github.com</h3></div></div></div> |
8183 | <p>Helper methods exist for packages hosted on github.com which | | 8187 | <p>Helper methods exist for packages hosted on github.com which |
8184 | will often have distfile names that clash with other packages, for | | 8188 | will often have distfile names that clash with other packages, for |
8185 | example <code class="filename">1.0.tar.gz</code>. Use one of the three recipes | | 8189 | example <code class="filename">1.0.tar.gz</code>. Use one of the three recipes |
8186 | from below:</p> | | 8190 | from below:</p> |
8187 | <div class="sect3"> | | 8191 | <div class="sect3"> |
8188 | <div class="titlepage"><div><div><h4 class="title"> | | 8192 | <div class="titlepage"><div><div><h4 class="title"> |
8189 | <a name="build.fetch.github.tag"></a>21.2.3.1. Fetch based on a tagged release</h4></div></div></div> | | 8193 | <a name="build.fetch.github.tag"></a>21.2.3.1. Fetch based on a tagged release</h4></div></div></div> |
8190 | <p>If your distfile URL looks similar to | | 8194 | <p>If your distfile URL looks similar to |
8191 | <code class="literal">https://github.com/username/example/archive/v1.0.zip</code>, | | 8195 | <code class="literal">https://github.com/username/example/archive/v1.0.zip</code>, |
8192 | then you are packaging a tagged release.</p> | | 8196 | then you are packaging a tagged release.</p> |
8193 | <pre class="programlisting"> | | 8197 | <pre class="programlisting"> |
8194 | DISTNAME= example-1.0 | | 8198 | DISTNAME= example-1.0 |
8195 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} | | 8199 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} |
8196 | #GITHUB_PROJECT= example # can be omitted if same as DISTNAME | | 8200 | #GITHUB_PROJECT= example # can be omitted if same as DISTNAME |
8197 | GITHUB_TAG= v${PKGVERSION_NOREV} | | 8201 | GITHUB_TAG= v${PKGVERSION_NOREV} |
8198 | EXTRACT_SUFX= .zip | | 8202 | EXTRACT_SUFX= .zip |
8199 | </pre> | | 8203 | </pre> |
8200 | </div> | | 8204 | </div> |
8201 | <div class="sect3"> | | 8205 | <div class="sect3"> |
8202 | <div class="titlepage"><div><div><h4 class="title"> | | 8206 | <div class="titlepage"><div><div><h4 class="title"> |
8203 | <a name="build.fetch.github.commit.prerelease"></a>21.2.3.2. Fetch based on a specific commit before the first release</h4></div></div></div> | | 8207 | <a name="build.fetch.github.commit.prerelease"></a>21.2.3.2. Fetch based on a specific commit before the first release</h4></div></div></div> |
8204 | <p>If your distfile looks similar to | | 8208 | <p>If your distfile looks similar to |
8205 | <code class="literal">https://github.com/username/example/archive/988881adc9fc3655077dc2d4d757d480b5ea0e11</code> and is from a commit before the first | | 8209 | <code class="literal">https://github.com/username/example/archive/988881adc9fc3655077dc2d4d757d480b5ea0e11</code> and is from a commit before the first |
8206 | release, then set the package version to 0.0.0.N, where N is the number | | 8210 | release, then set the package version to 0.0.0.N, where N is the number |
8207 | of commits to the repository, and set GITHUB_TAG to the commit hash. | | 8211 | of commits to the repository, and set GITHUB_TAG to the commit hash. |
8208 | This will (almost) ensure that the first tagged release will have a | | 8212 | This will (almost) ensure that the first tagged release will have a |
8209 | version greater than this one so that package upgrades will function | | 8213 | version greater than this one so that package upgrades will function |
8210 | properly.</p> | | 8214 | properly.</p> |
8211 | <pre class="programlisting"> | | 8215 | <pre class="programlisting"> |
8212 | DISTNAME= example-0.0.0.347 | | 8216 | DISTNAME= example-0.0.0.347 |
8213 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} | | 8217 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} |
8214 | #GITHUB_PROJECT= example # can be omitted if same as DISTNAME | | 8218 | #GITHUB_PROJECT= example # can be omitted if same as DISTNAME |
8215 | GITHUB_TAG= 988881adc9fc3655077dc2d4d757d480b5ea0e11 | | 8219 | GITHUB_TAG= 988881adc9fc3655077dc2d4d757d480b5ea0e11 |
8216 | </pre> | | 8220 | </pre> |
8217 | </div> | | 8221 | </div> |
8218 | <div class="sect3"> | | 8222 | <div class="sect3"> |
8219 | <div class="titlepage"><div><div><h4 class="title"> | | 8223 | <div class="titlepage"><div><div><h4 class="title"> |
8220 | <a name="build.fetch.github.commit.postrelease"></a>21.2.3.3. Fetch based on a specific commit after a release</h4></div></div></div> | | 8224 | <a name="build.fetch.github.commit.postrelease"></a>21.2.3.3. Fetch based on a specific commit after a release</h4></div></div></div> |
8221 | <p>If your distfile looks similar to | | 8225 | <p>If your distfile looks similar to |
8222 | <code class="literal">https://github.com/username/example/archive/988881adc9fc3655077dc2d4d757d480b5ea0e11</code> and is from a commit after a release, | | 8226 | <code class="literal">https://github.com/username/example/archive/988881adc9fc3655077dc2d4d757d480b5ea0e11</code> and is from a commit after a release, |
8223 | then include the last release version and the commit count since that | | 8227 | then include the last release version and the commit count since that |
8224 | release in the package version and set GITHUB_TAG to the commit hash. | | 8228 | release in the package version and set GITHUB_TAG to the commit hash. |
8225 | The latest release and commit count are shown in the output of | | 8229 | The latest release and commit count are shown in the output of |
8226 | "git describe --tags": | | 8230 | "git describe --tags": |
8227 | </p> | | 8231 | </p> |
8228 | <pre class="screen"> | | 8232 | <pre class="screen"> |
8229 | # git clone https://github.com/username/example | | 8233 | # git clone https://github.com/username/example |
8230 | # cd example | | 8234 | # cd example |
8231 | # git describe --tags | | 8235 | # git describe --tags |
8232 | 1.2.3-5-g988881a | | 8236 | 1.2.3-5-g988881a |
8233 | </pre> | | 8237 | </pre> |
8234 | <pre class="programlisting"> | | 8238 | <pre class="programlisting"> |
8235 | DISTNAME= example-1.2.3.5 | | 8239 | DISTNAME= example-1.2.3.5 |
8236 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} | | 8240 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} |
8237 | #GITHUB_PROJECT= example # can be omitted if same as DISTNAME | | 8241 | #GITHUB_PROJECT= example # can be omitted if same as DISTNAME |
8238 | GITHUB_TAG= 988881adc9fc3655077dc2d4d757d480b5ea0e11 | | 8242 | GITHUB_TAG= 988881adc9fc3655077dc2d4d757d480b5ea0e11 |
8239 | </pre> | | 8243 | </pre> |
8240 | </div> | | 8244 | </div> |
8241 | <div class="sect3"> | | 8245 | <div class="sect3"> |
8242 | <div class="titlepage"><div><div><h4 class="title"> | | 8246 | <div class="titlepage"><div><div><h4 class="title"> |
8243 | <a name="build.fetch.github.release"></a>21.2.3.4. Fetch based on release</h4></div></div></div> | | 8247 | <a name="build.fetch.github.release"></a>21.2.3.4. Fetch based on release</h4></div></div></div> |
8244 | <p>If your distfile URL looks similar to | | 8248 | <p>If your distfile URL looks similar to |
8245 | <code class="literal">https://github.com/username/example/releases/download/rel-1.6/offensive-1.6.zip</code>, | | 8249 | <code class="literal">https://github.com/username/example/releases/download/rel-1.6/offensive-1.6.zip</code>, |
8246 | then you are packaging a release.</p> | | 8250 | then you are packaging a release.</p> |
8247 | <pre class="programlisting"> | | 8251 | <pre class="programlisting"> |
8248 | DISTNAME= offensive-1.6 | | 8252 | DISTNAME= offensive-1.6 |
8249 | PKGNAME= ${DISTNAME:S/offensive/proper/} | | 8253 | PKGNAME= ${DISTNAME:S/offensive/proper/} |
8250 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} | | 8254 | MASTER_SITES= ${MASTER_SITE_GITHUB:=username/} |
8251 | GITHUB_PROJECT= example | | 8255 | GITHUB_PROJECT= example |
8252 | GITHUB_RELEASE= rel-${PKGVERSION_NOREV} # usually just set this to ${DISTNAME} | | 8256 | GITHUB_RELEASE= rel-${PKGVERSION_NOREV} # usually just set this to ${DISTNAME} |
8253 | EXTRACT_SUFX= .zip | | 8257 | EXTRACT_SUFX= .zip |
8254 | </pre> | | 8258 | </pre> |
8255 | </div> | | 8259 | </div> |
8256 | </div> | | 8260 | </div> |
8257 | </div> | | 8261 | </div> |
8258 | <div class="sect1"> | | 8262 | <div class="sect1"> |
8259 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 8263 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
8260 | <a name="fixes.configure"></a>21.3. The <span class="emphasis"><em>configure</em></span> phase</h2></div></div></div> | | 8264 | <a name="fixes.configure"></a>21.3. The <span class="emphasis"><em>configure</em></span> phase</h2></div></div></div> |
8261 | <div class="sect2"> | | 8265 | <div class="sect2"> |
8262 | <div class="titlepage"><div><div><h3 class="title"> | | 8266 | <div class="titlepage"><div><div><h3 class="title"> |
8263 | <a name="fixes.libtool"></a>21.3.1. Shared libraries - libtool</h3></div></div></div> | | 8267 | <a name="fixes.libtool"></a>21.3.1. Shared libraries - libtool</h3></div></div></div> |
8264 | <p>pkgsrc supports many different machines, with different | | 8268 | <p>pkgsrc supports many different machines, with different |
8265 | object formats like a.out and ELF, and varying abilities to do | | 8269 | object formats like a.out and ELF, and varying abilities to do |
8266 | shared library and dynamic loading at all. To accompany this, | | 8270 | shared library and dynamic loading at all. To accompany this, |
8267 | varying commands and options have to be passed to the | | 8271 | varying commands and options have to be passed to the |
8268 | compiler, linker, etc. to get the Right Thing, which can be | | 8272 | compiler, linker, etc. to get the Right Thing, which can be |
8269 | pretty annoying especially if you don't have all the machines | | 8273 | pretty annoying especially if you don't have all the machines |
8270 | at your hand to test things. The | | 8274 | at your hand to test things. The |
8271 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/devel/libtool/index.html" target="_top"><code class="filename">devel/libtool</code></a> pkg | | 8275 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/devel/libtool/index.html" target="_top"><code class="filename">devel/libtool</code></a> pkg |
8272 | can help here, as it just <span class="quote">“<span class="quote">knows</span>”</span> how to build | | 8276 | can help here, as it just <span class="quote">“<span class="quote">knows</span>”</span> how to build |
8273 | both static and dynamic libraries from a set of source files, | | 8277 | both static and dynamic libraries from a set of source files, |
8274 | thus being platform-independent.</p> | | 8278 | thus being platform-independent.</p> |
8275 | <p>Here's how to use libtool in a package in seven simple | | 8279 | <p>Here's how to use libtool in a package in seven simple |
8276 | steps:</p> | | 8280 | steps:</p> |
8277 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 8281 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
8278 | <li class="listitem"><p>Add <code class="varname">USE_LIBTOOL=yes</code> to the package | | 8282 | <li class="listitem"><p>Add <code class="varname">USE_LIBTOOL=yes</code> to the package |
8279 | Makefile.</p></li> | | 8283 | Makefile.</p></li> |
8280 | <li class="listitem"><p>For library objects, use <span class="quote">“<span class="quote">${LIBTOOL} --mode=compile | | 8284 | <li class="listitem"><p>For library objects, use <span class="quote">“<span class="quote">${LIBTOOL} --mode=compile |
8281 | ${CC}</span>”</span> in place of <span class="quote">“<span class="quote">${CC}</span>”</span>. You could even | | 8285 | ${CC}</span>”</span> in place of <span class="quote">“<span class="quote">${CC}</span>”</span>. You could even |
8282 | add it to the definition of <code class="varname">CC</code>, if only | | 8286 | add it to the definition of <code class="varname">CC</code>, if only |
8283 | libraries are being built in a given Makefile. This one command | | 8287 | libraries are being built in a given Makefile. This one command |
8284 | will build both PIC and non-PIC library objects, so you need not | | 8288 | will build both PIC and non-PIC library objects, so you need not |
8285 | have separate shared and non-shared library rules.</p></li> | | 8289 | have separate shared and non-shared library rules.</p></li> |
8286 | <li class="listitem"> | | 8290 | <li class="listitem"> |
8287 | <p>For the linking of the library, remove any | | 8291 | <p>For the linking of the library, remove any |
8288 | <span class="quote">“<span class="quote">ar</span>”</span>, <span class="quote">“<span class="quote">ranlib</span>”</span>, and <span class="quote">“<span class="quote">ld | | 8292 | <span class="quote">“<span class="quote">ar</span>”</span>, <span class="quote">“<span class="quote">ranlib</span>”</span>, and <span class="quote">“<span class="quote">ld |
8289 | -Bshareable</span>”</span> commands, and instead use:</p> | | 8293 | -Bshareable</span>”</span> commands, and instead use:</p> |
8290 | <pre class="programlisting"> | | 8294 | <pre class="programlisting"> |
8291 | ${LIBTOOL} --mode=link \ | | 8295 | ${LIBTOOL} --mode=link \ |
8292 | ${CC} -o ${.TARGET:.a=.la} \ | | 8296 | ${CC} -o ${.TARGET:.a=.la} \ |
8293 | ${OBJS:.o=.lo} \ | | 8297 | ${OBJS:.o=.lo} \ |
8294 | -rpath ${PREFIX}/lib \ | | 8298 | -rpath ${PREFIX}/lib \ |
8295 | -version-info major:minor | | 8299 | -version-info major:minor |
8296 | </pre> | | 8300 | </pre> |
8297 | <p>Note that the library is changed to have a | | 8301 | <p>Note that the library is changed to have a |
8298 | <code class="filename">.la</code> extension, and the objects are | | 8302 | <code class="filename">.la</code> extension, and the objects are |
8299 | changed to have a <code class="filename">.lo</code> | | 8303 | changed to have a <code class="filename">.lo</code> |
8300 | extension. Change <code class="varname">OBJS</code> as | | 8304 | extension. Change <code class="varname">OBJS</code> as |
8301 | necessary. This automatically creates all of the | | 8305 | necessary. This automatically creates all of the |
8302 | <code class="filename">.a</code>, | | 8306 | <code class="filename">.a</code>, |
8303 | <code class="filename">.so.major.minor</code>, and ELF symlinks (if | | 8307 | <code class="filename">.so.major.minor</code>, and ELF symlinks (if |
8304 | necessary) in the build directory. Be sure to include | | 8308 | necessary) in the build directory. Be sure to include |
8305 | <span class="quote">“<span class="quote">-version-info</span>”</span>, especially when major and | | 8309 | <span class="quote">“<span class="quote">-version-info</span>”</span>, especially when major and |
8306 | minor are zero, as libtool will otherwise strip off the | | 8310 | minor are zero, as libtool will otherwise strip off the |
8307 | shared library version.</p> | | 8311 | shared library version.</p> |
8308 | <p>From the libtool manual:</p> | | 8312 | <p>From the libtool manual:</p> |
8309 | <pre class="programlisting"> | | 8313 | <pre class="programlisting"> |
8310 | So, libtool library versions are described by three integers: | | 8314 | So, libtool library versions are described by three integers: |
8311 | | | 8315 | |
8312 | CURRENT | | 8316 | CURRENT |
8313 | The most recent interface number that this library implements. | | 8317 | The most recent interface number that this library implements. |
8314 | | | 8318 | |
8315 | REVISION | | 8319 | REVISION |
8316 | The implementation number of the CURRENT interface. | | 8320 | The implementation number of the CURRENT interface. |
8317 | | | 8321 | |
8318 | AGE | | 8322 | AGE |
8319 | The difference between the newest and oldest interfaces that | | 8323 | The difference between the newest and oldest interfaces that |
8320 | this library implements. In other words, the library implements | | 8324 | this library implements. In other words, the library implements |
8321 | all the interface numbers in the range from number `CURRENT - | | 8325 | all the interface numbers in the range from number `CURRENT - |
8322 | AGE' to `CURRENT'. | | 8326 | AGE' to `CURRENT'. |
8323 | | | 8327 | |
8324 | If two libraries have identical CURRENT and AGE numbers, then the | | 8328 | If two libraries have identical CURRENT and AGE numbers, then the |
8325 | dynamic linker chooses the library with the greater REVISION number. | | 8329 | dynamic linker chooses the library with the greater REVISION number. |
8326 | </pre> | | 8330 | </pre> |
8327 | <p>The <span class="quote">“<span class="quote">-release</span>”</span> option will produce | | 8331 | <p>The <span class="quote">“<span class="quote">-release</span>”</span> option will produce |
8328 | different results for a.out and ELF (excluding symlinks) | | 8332 | different results for a.out and ELF (excluding symlinks) |
8329 | in only one case. An ELF library of the form | | 8333 | in only one case. An ELF library of the form |
8330 | <span class="quote">“<span class="quote">libfoo-release.so.<span class="emphasis"><em>x</em></span>.<span class="emphasis"><em>y</em></span></span>”</span> | | 8334 | <span class="quote">“<span class="quote">libfoo-release.so.<span class="emphasis"><em>x</em></span>.<span class="emphasis"><em>y</em></span></span>”</span> |
8331 | will have a symlink of | | 8335 | will have a symlink of |
8332 | <span class="quote">“<span class="quote">libfoo.so.<span class="emphasis"><em>x</em></span>.<span class="emphasis"><em>y</em></span></span>”</span> | | 8336 | <span class="quote">“<span class="quote">libfoo.so.<span class="emphasis"><em>x</em></span>.<span class="emphasis"><em>y</em></span></span>”</span> |
8333 | on an a.out platform. This is handled | | 8337 | on an a.out platform. This is handled |
8334 | automatically.</p> | | 8338 | automatically.</p> |
8335 | <p>The <span class="quote">“<span class="quote">-rpath argument</span>”</span> is the install | | 8339 | <p>The <span class="quote">“<span class="quote">-rpath argument</span>”</span> is the install |
8336 | directory of the library being built.</p> | | 8340 | directory of the library being built.</p> |
8337 | <p>In the <code class="filename">PLIST</code>, include only the | | 8341 | <p>In the <code class="filename">PLIST</code>, include only the |
8338 | <code class="filename">.la</code> file, the other files will be | | 8342 | <code class="filename">.la</code> file, the other files will be |
8339 | added automatically.</p> | | 8343 | added automatically.</p> |
8340 | </li> | | 8344 | </li> |
8341 | <li class="listitem"> | | 8345 | <li class="listitem"> |
8342 | <p>When linking shared object (<code class="filename">.so</code>) | | 8346 | <p>When linking shared object (<code class="filename">.so</code>) |
8343 | files, i.e. files that are loaded via <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/dlopen.3"><span class="citerefentry"><span class="refentrytitle">dlopen</span>(3)</span></a>, NOT | | 8347 | files, i.e. files that are loaded via <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/dlopen.3"><span class="citerefentry"><span class="refentrytitle">dlopen</span>(3)</span></a>, NOT |
8344 | shared libraries, use <span class="quote">“<span class="quote">-module | | 8348 | shared libraries, use <span class="quote">“<span class="quote">-module |
8345 | -avoid-version</span>”</span> to prevent them getting version | | 8349 | -avoid-version</span>”</span> to prevent them getting version |
8346 | tacked on.</p> | | 8350 | tacked on.</p> |
8347 | <p>The <code class="filename">PLIST</code> file gets the | | 8351 | <p>The <code class="filename">PLIST</code> file gets the |
8348 | <code class="filename">foo.so</code> entry.</p> | | 8352 | <code class="filename">foo.so</code> entry.</p> |
8349 | </li> | | 8353 | </li> |
8350 | <li class="listitem"> | | 8354 | <li class="listitem"> |
8351 | <p>When linking programs that depend on these libraries | | 8355 | <p>When linking programs that depend on these libraries |
8352 | <span class="emphasis"><em>before</em></span> they are installed, preface | | 8356 | <span class="emphasis"><em>before</em></span> they are installed, preface |
8353 | the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/cc.1"><span class="citerefentry"><span class="refentrytitle">cc</span>(1)</span></a> or <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/ld.1"><span class="citerefentry"><span class="refentrytitle">ld</span>(1)</span></a> line with <span class="quote">“<span class="quote">${LIBTOOL} | | 8357 | the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/cc.1"><span class="citerefentry"><span class="refentrytitle">cc</span>(1)</span></a> or <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/ld.1"><span class="citerefentry"><span class="refentrytitle">ld</span>(1)</span></a> line with <span class="quote">“<span class="quote">${LIBTOOL} |
8354 | --mode=link</span>”</span>, and it will find the correct | | 8358 | --mode=link</span>”</span>, and it will find the correct |
8355 | libraries (static or shared), but please be aware that | | 8359 | libraries (static or shared), but please be aware that |
8356 | libtool will not allow you to specify a relative path in | | 8360 | libtool will not allow you to specify a relative path in |
8357 | -L (such as <span class="quote">“<span class="quote">-L../somelib</span>”</span>), because it | | 8361 | -L (such as <span class="quote">“<span class="quote">-L../somelib</span>”</span>), because it |
8358 | expects you to change that argument to be the | | 8362 | expects you to change that argument to be the |
8359 | <code class="filename">.la</code> file. e.g.</p> | | 8363 | <code class="filename">.la</code> file. e.g.</p> |
8360 | <pre class="programlisting"> | | 8364 | <pre class="programlisting"> |
8361 | ${LIBTOOL} --mode=link ${CC} -o someprog -L../somelib -lsomelib | | 8365 | ${LIBTOOL} --mode=link ${CC} -o someprog -L../somelib -lsomelib |
8362 | </pre> | | 8366 | </pre> |
8363 | <p>should be changed to:</p> | | 8367 | <p>should be changed to:</p> |
8364 | <pre class="programlisting"> | | 8368 | <pre class="programlisting"> |
8365 | ${LIBTOOL} --mode=link ${CC} -o <em class="replaceable"><code>someprog</code></em> <em class="replaceable"><code>../somelib/somelib.la</code></em> | | 8369 | ${LIBTOOL} --mode=link ${CC} -o <em class="replaceable"><code>someprog</code></em> <em class="replaceable"><code>../somelib/somelib.la</code></em> |
8366 | </pre> | | 8370 | </pre> |
8367 | <p>and it will do the right thing with the libraries.</p> | | 8371 | <p>and it will do the right thing with the libraries.</p> |
8368 | </li> | | 8372 | </li> |
8369 | <li class="listitem"> | | 8373 | <li class="listitem"> |
8370 | <p>When installing libraries, preface the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/install.1"><span class="citerefentry"><span class="refentrytitle">install</span>(1)</span></a> | | 8374 | <p>When installing libraries, preface the <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/install.1"><span class="citerefentry"><span class="refentrytitle">install</span>(1)</span></a> |
8371 | or <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/cp.1"><span class="citerefentry"><span class="refentrytitle">cp</span>(1)</span></a> command with <span class="quote">“<span class="quote">${LIBTOOL} | | 8375 | or <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/cp.1"><span class="citerefentry"><span class="refentrytitle">cp</span>(1)</span></a> command with <span class="quote">“<span class="quote">${LIBTOOL} |
8372 | --mode=install</span>”</span>, and change the library name to | | 8376 | --mode=install</span>”</span>, and change the library name to |
8373 | <code class="filename">.la</code>. e.g.</p> | | 8377 | <code class="filename">.la</code>. e.g.</p> |
8374 | <pre class="programlisting"> | | 8378 | <pre class="programlisting"> |
8375 | ${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} ${SOMELIB:.a=.la} ${PREFIX}/lib | | 8379 | ${LIBTOOL} --mode=install ${BSD_INSTALL_LIB} ${SOMELIB:.a=.la} ${PREFIX}/lib |
8376 | </pre> | | 8380 | </pre> |
8377 | <p>This will install the static <code class="filename">.a</code>, | | 8381 | <p>This will install the static <code class="filename">.a</code>, |
8378 | shared library, any needed symlinks, and run | | 8382 | shared library, any needed symlinks, and run |
8379 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/ldconfig.8"><span class="citerefentry"><span class="refentrytitle">ldconfig</span>(8)</span></a>.</p> | | 8383 | <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/ldconfig.8"><span class="citerefentry"><span class="refentrytitle">ldconfig</span>(8)</span></a>.</p> |
8380 | </li> | | 8384 | </li> |
8381 | <li class="listitem"><p>In your <code class="filename">PLIST</code>, include only | | 8385 | <li class="listitem"><p>In your <code class="filename">PLIST</code>, include only |
8382 | the <code class="filename">.la</code> | | 8386 | the <code class="filename">.la</code> |
8383 | file (this is a change from previous behaviour).</p></li> | | 8387 | file (this is a change from previous behaviour).</p></li> |
8384 | </ol></div> | | 8388 | </ol></div> |
8385 | </div> | | 8389 | </div> |
8386 | <div class="sect2"> | | 8390 | <div class="sect2"> |
8387 | <div class="titlepage"><div><div><h3 class="title"> | | 8391 | <div class="titlepage"><div><div><h3 class="title"> |
8388 | <a name="using-libtool"></a>21.3.2. Using libtool on GNU packages that already support libtool</h3></div></div></div> | | 8392 | <a name="using-libtool"></a>21.3.2. Using libtool on GNU packages that already support libtool</h3></div></div></div> |
8389 | <p>Add <code class="varname">USE_LIBTOOL=yes</code> to the | | 8393 | <p>Add <code class="varname">USE_LIBTOOL=yes</code> to the |
8390 | package Makefile. This will override the package's own libtool | | 8394 | package Makefile. This will override the package's own libtool |
8391 | in most cases. For older libtool using packages, libtool is | | 8395 | in most cases. For older libtool using packages, libtool is |
8392 | made by ltconfig script during the do-configure step; you can | | 8396 | made by ltconfig script during the do-configure step; you can |
8393 | check the libtool script location by doing <span class="command"><strong>make | | 8397 | check the libtool script location by doing <span class="command"><strong>make |
8394 | configure; find work*/ -name libtool</strong></span>.</p> | | 8398 | configure; find work*/ -name libtool</strong></span>.</p> |
8395 | <p><code class="varname">LIBTOOL_OVERRIDE</code> specifies which libtool | | 8399 | <p><code class="varname">LIBTOOL_OVERRIDE</code> specifies which libtool |
8396 | scripts, relative to <code class="varname">WRKSRC</code>, to override. By | | 8400 | scripts, relative to <code class="varname">WRKSRC</code>, to override. By |
8397 | default, it is set to <span class="quote">“<span class="quote">libtool */libtool | | 8401 | default, it is set to <span class="quote">“<span class="quote">libtool */libtool |
8398 | */*/libtool</span>”</span>. If this does not match the location of the | | 8402 | */*/libtool</span>”</span>. If this does not match the location of the |
8399 | package's libtool script(s), set it as appropriate.</p> | | 8403 | package's libtool script(s), set it as appropriate.</p> |
8400 | <p>If you do not need <code class="filename">*.a</code> static | | 8404 | <p>If you do not need <code class="filename">*.a</code> static |
8401 | libraries built and installed, then use | | 8405 | libraries built and installed, then use |
8402 | <code class="varname">SHLIBTOOL_OVERRIDE</code> instead.</p> | | 8406 | <code class="varname">SHLIBTOOL_OVERRIDE</code> instead.</p> |
8403 | <p>If your package makes use of the platform-independent library | | 8407 | <p>If your package makes use of the platform-independent library |
8404 | for loading dynamic shared objects, that comes with libtool | | 8408 | for loading dynamic shared objects, that comes with libtool |
8405 | (libltdl), you should include devel/libltdl/buildlink3.mk.</p> | | 8409 | (libltdl), you should include devel/libltdl/buildlink3.mk.</p> |
8406 | <p>Some packages use libtool incorrectly so that the package | | 8410 | <p>Some packages use libtool incorrectly so that the package |
8407 | may not work or build in some circumstances. Some of the more | | 8411 | may not work or build in some circumstances. Some of the more |
8408 | common errors are:</p> | | 8412 | common errors are:</p> |
8409 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 8413 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
8410 | <li class="listitem"> | | 8414 | <li class="listitem"> |
8411 | <p>The inclusion of a shared object (-module) as a dependent library in an | | 8415 | <p>The inclusion of a shared object (-module) as a dependent library in an |
8412 | executable or library. This in itself isn't a problem if one of two things | | 8416 | executable or library. This in itself isn't a problem if one of two things |
8413 | has been done:</p> | | 8417 | has been done:</p> |
8414 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 8418 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
8415 | <li class="listitem"><p>The shared object is named correctly, i.e. | | 8419 | <li class="listitem"><p>The shared object is named correctly, i.e. |
8416 | <code class="filename">libfoo.la</code>, not | | 8420 | <code class="filename">libfoo.la</code>, not |
8417 | <code class="filename">foo.la</code></p></li> | | 8421 | <code class="filename">foo.la</code></p></li> |
8418 | <li class="listitem"><p>The -dlopen option is used when linking an executable.</p></li> | | 8422 | <li class="listitem"><p>The -dlopen option is used when linking an executable.</p></li> |
8419 | </ol></div> | | 8423 | </ol></div> |
8420 | </li> | | 8424 | </li> |
8421 | <li class="listitem"><p>The use of libltdl without the correct calls to initialisation routines. | | 8425 | <li class="listitem"><p>The use of libltdl without the correct calls to initialisation routines. |
8422 | The function lt_dlinit() should be called and the macro | | 8426 | The function lt_dlinit() should be called and the macro |
8423 | <code class="varname">LTDL_SET_PRELOADED_SYMBOLS</code> included in | | 8427 | <code class="varname">LTDL_SET_PRELOADED_SYMBOLS</code> included in |
8424 | executables.</p></li> | | 8428 | executables.</p></li> |
8425 | </ul></div> | | 8429 | </ul></div> |
8426 | </div> | | 8430 | </div> |
8427 | <div class="sect2"> | | 8431 | <div class="sect2"> |
8428 | <div class="titlepage"><div><div><h3 class="title"> | | 8432 | <div class="titlepage"><div><div><h3 class="title"> |
8429 | <a name="autoconf-automake"></a>21.3.3. GNU Autoconf/Automake</h3></div></div></div> | | 8433 | <a name="autoconf-automake"></a>21.3.3. GNU Autoconf/Automake</h3></div></div></div> |
8430 | <p>If a package needs GNU autoconf or automake to be executed | | 8434 | <p>If a package needs GNU autoconf or automake to be executed |
8431 | to regenerate the | | 8435 | to regenerate the |
8432 | <code class="filename">configure</code> | | 8436 | <code class="filename">configure</code> |
8433 | script and <code class="filename">Makefile.in</code> makefile | | 8437 | script and <code class="filename">Makefile.in</code> makefile |
8434 | templates from <code class="filename">configure.ac</code> and | | 8438 | templates from <code class="filename">configure.ac</code> and |
8435 | <code class="filename">Makefile.am</code>, | | 8439 | <code class="filename">Makefile.am</code>, |
8436 | then they should be executed in a pre-configure target:</p> | | 8440 | then they should be executed in a pre-configure target:</p> |
8437 | <pre class="programlisting"> | | 8441 | <pre class="programlisting"> |
8438 | USE_TOOLS+= autoconf automake autoreconf | | 8442 | USE_TOOLS+= autoconf automake autoreconf |
8439 | GNU_CONFIGURE= yes | | 8443 | GNU_CONFIGURE= yes |
8440 | ... | | 8444 | ... |
8441 | | | 8445 | |
8442 | pre-configure: | | 8446 | pre-configure: |
8443 | set -e; cd ${WRKSRC} && autoreconf -fi | | 8447 | set -e; cd ${WRKSRC} && autoreconf -fi |
8444 | ... | | 8448 | ... |
8445 | </pre> | | 8449 | </pre> |
8446 | <p>Packages which use GNU Automake will sometimes | | 8450 | <p>Packages which use GNU Automake will sometimes |
8447 | require GNU Make (<code class="literal">gmake</code> in | | 8451 | require GNU Make (<code class="literal">gmake</code> in |
8448 | <code class="varname">USE_TOOLS</code>), | | 8452 | <code class="varname">USE_TOOLS</code>), |
8449 | but not always. Note that autoreconf | | 8453 | but not always. Note that autoreconf |
8450 | only needs to be executed if <code class="filename">configure.ac</code> | | 8454 | only needs to be executed if <code class="filename">configure.ac</code> |
8451 | or Makefiles are modified, or <code class="filename">configure</code> | | 8455 | or Makefiles are modified, or <code class="filename">configure</code> |
8452 | is not present.</p> | | 8456 | is not present.</p> |
8453 | <p>There are times when the configure process makes | | 8457 | <p>There are times when the configure process makes |
8454 | additional changes to the generated files, which then causes | | 8458 | additional changes to the generated files, which then causes |
8455 | the build process to try to re-execute the automake sequence. | | 8459 | the build process to try to re-execute the automake sequence. |
8456 | This is prevented by touching various files in the configure | | 8460 | This is prevented by touching various files in the configure |
8457 | stage. If this causes problems with your package you can set | | 8461 | stage. If this causes problems with your package you can set |
8458 | <code class="varname">AUTOMAKE_OVERRIDE=NO</code> in the package | | 8462 | <code class="varname">AUTOMAKE_OVERRIDE=NO</code> in the package |
8459 | Makefile.</p> | | 8463 | Makefile.</p> |
8460 | </div> | | 8464 | </div> |
8461 | <div class="sect2"> | | 8465 | <div class="sect2"> |
8462 | <div class="titlepage"><div><div><h3 class="title"> | | 8466 | <div class="titlepage"><div><div><h3 class="title"> |
8463 | <a name="meson"></a>21.3.4. Meson / ninja</h3></div></div></div> | | 8467 | <a name="meson"></a>21.3.4. Meson / ninja</h3></div></div></div> |
8464 | <p>Packages using Meson to configure need to include: | | 8468 | <p>Packages using Meson to configure need to include: |
8465 | | | 8469 | |
8466 | </p> | | 8470 | </p> |
8467 | <pre class="programlisting"> | | 8471 | <pre class="programlisting"> |
8468 | .include "../../devel/meson/build.mk" | | 8472 | .include "../../devel/meson/build.mk" |
8469 | </pre> | | 8473 | </pre> |
8470 | <p>In nearly all cases (any program with dependencies), | | 8474 | <p>In nearly all cases (any program with dependencies), |
8471 | pkg-config needs to be added to | | 8475 | pkg-config needs to be added to |
8472 | <code class="varname">USE_TOOLS</code>. If the package installs | | 8476 | <code class="varname">USE_TOOLS</code>. If the package installs |
8473 | translation files for non-English languages, also | | 8477 | translation files for non-English languages, also |
8474 | add msgfmt and xgettext: | | 8478 | add msgfmt and xgettext: |
8475 | | | 8479 | |
8476 | </p> | | 8480 | </p> |
8477 | <pre class="programlisting"> | | 8481 | <pre class="programlisting"> |
8478 | USE_TOOLS+= pkg-config msgfmt xgettext | | 8482 | USE_TOOLS+= pkg-config msgfmt xgettext |
8479 | </pre> | | 8483 | </pre> |
8480 | <p>If any options need to be passed to Meson, use | | 8484 | <p>If any options need to be passed to Meson, use |
8481 | <code class="varname">MESON_ARGS</code> instead of | | 8485 | <code class="varname">MESON_ARGS</code> instead of |
8482 | <code class="varname">CONFIGURE_ARGS</code>: | | 8486 | <code class="varname">CONFIGURE_ARGS</code>: |
8483 | | | 8487 | |
8484 | </p> | | 8488 | </p> |
8485 | <pre class="programlisting"> | | 8489 | <pre class="programlisting"> |
8486 | MESON_ARGS+= -Dx11=false | | 8490 | MESON_ARGS+= -Dx11=false |
8487 | </pre> | | 8491 | </pre> |
8488 | </div> | | 8492 | </div> |
8489 | </div> | | 8493 | </div> |
8490 | <div class="sect1"> | | 8494 | <div class="sect1"> |
8491 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 8495 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
8492 | <a name="programming-languages"></a>21.4. Programming languages</h2></div></div></div> | | 8496 | <a name="programming-languages"></a>21.4. Programming languages</h2></div></div></div> |
8493 | <div class="sect2"> | | 8497 | <div class="sect2"> |
8494 | <div class="titlepage"><div><div><h3 class="title"> | | 8498 | <div class="titlepage"><div><div><h3 class="title"> |
8495 | <a name="basic-programming-languages"></a>21.4.1. C, C++, and Fortran</h3></div></div></div> | | 8499 | <a name="basic-programming-languages"></a>21.4.1. C, C++, and Fortran</h3></div></div></div> |
8496 | <p>Compilers for the C and C++ languages comes with | | 8500 | <p>Compilers for the C and C++ languages comes with |
8497 | the NetBSD base system. By default, pkgsrc assumes that a package | | 8501 | the NetBSD base system. By default, pkgsrc assumes that a package |
8498 | is written in C and will hide all other compilers (via the wrapper | | 8502 | is written in C and will hide all other compilers (via the wrapper |
8499 | framework, see <a class="xref" href="#buildlink" title="Chapter 18. Buildlink methodology">Chapter 18, <i>Buildlink methodology</i></a>).</p> | | 8503 | framework, see <a class="xref" href="#buildlink" title="Chapter 18. Buildlink methodology">Chapter 18, <i>Buildlink methodology</i></a>).</p> |
8500 | <p>To declare which language's compiler a package needs, set | | 8504 | <p>To declare which language's compiler a package needs, set |
8501 | the <code class="varname">USE_LANGUAGES</code> variable. Allowed values | | 8505 | the <code class="varname">USE_LANGUAGES</code> variable. Allowed values |
8502 | currently are: | | 8506 | currently are: |
8503 | </p> | | 8507 | </p> |
8504 | <pre class="programlisting"> | | 8508 | <pre class="programlisting"> |
8505 | c99, c++, c++03, gnu++03, c++0x, gnu++0x, c++11, gnu++11, | | 8509 | c99, c++, c++03, gnu++03, c++0x, gnu++0x, c++11, gnu++11, |
8506 | c++14, gnu++14, c++17, gnu++17, c++20, gnu++20, fortran, | | 8510 | c++14, gnu++14, c++17, gnu++17, c++20, gnu++20, fortran, |
8507 | fortran77, java, objc, obj-c++, and ada. | | 8511 | fortran77, java, objc, obj-c++, and ada. |
8508 | </pre> | | 8512 | </pre> |
8509 | <p> | | 8513 | <p> |
8510 | (and any combination). The default is | | 8514 | (and any combination). The default is |
8511 | <span class="quote">“<span class="quote">c</span>”</span>. Packages using GNU configure scripts, even if | | 8515 | <span class="quote">“<span class="quote">c</span>”</span>. Packages using GNU configure scripts, even if |
8512 | written in C++, usually need a C compiler for the configure | | 8516 | written in C++, usually need a C compiler for the configure |
8513 | phase.</p> | | 8517 | phase.</p> |
8514 | <p>To express a general requirement on a specific C or C++ | | 8518 | <p>To express a general requirement on a specific C or C++ |
8515 | version, normally only <code class="varname">GCC_REQD</code> needs to be set. | | 8519 | version, normally only <code class="varname">GCC_REQD</code> needs to be set. |
8516 | For example, GCC 7 includes support for C++17, so if the package uses | | 8520 | For example, GCC 7 includes support for C++17, so if the package uses |
8517 | C++17 it should specify: | | 8521 | C++17 it should specify: |
8518 | | | 8522 | |
8519 | </p> | | 8523 | </p> |
8520 | <pre class="programlisting"> | | 8524 | <pre class="programlisting"> |
8521 | GCC_REQD+= 7 | | 8525 | GCC_REQD+= 7 |
8522 | </pre> | | 8526 | </pre> |
8523 | <p>Language variants like <code class="literal">c++11</code> for | | 8527 | <p>Language variants like <code class="literal">c++11</code> for |
8524 | <code class="varname">USE_LANGUAGES</code> should only be specified | | 8528 | <code class="varname">USE_LANGUAGES</code> should only be specified |
8525 | if the package does not explicitly set <code class="literal">-std=...</code> | | 8529 | if the package does not explicitly set <code class="literal">-std=...</code> |
8526 | when compiling (i.e. the package assumes the compiler defaults to | | 8530 | when compiling (i.e. the package assumes the compiler defaults to |
8527 | C++11 or some other standard). This is usually a bug in the | | 8531 | C++11 or some other standard). This is usually a bug in the |
8528 | upstream build system.</p> | | 8532 | upstream build system.</p> |
8529 | <p>GCC version 5 includes support for C++14, while GCC 4.7 includes | | 8533 | <p>GCC version 5 includes support for C++14, while GCC 4.7 includes |
8530 | more-or-less complete support for C++11. For more information, consult | | 8534 | more-or-less complete support for C++11. For more information, consult |
8531 | <a class="ulink" href="https://gcc.gnu.org/projects/cxx-status.html" target="_top">GCC's own documentation on programming language support.</a></p> | | 8535 | <a class="ulink" href="https://gcc.gnu.org/projects/cxx-status.html" target="_top">GCC's own documentation on programming language support.</a></p> |
8532 | </div> | | 8536 | </div> |
8533 | <div class="sect2"> | | 8537 | <div class="sect2"> |
8534 | <div class="titlepage"><div><div><h3 class="title"> | | 8538 | <div class="titlepage"><div><div><h3 class="title"> |
8535 | <a name="java-programming-language"></a>21.4.2. Java</h3></div></div></div> | | 8539 | <a name="java-programming-language"></a>21.4.2. Java</h3></div></div></div> |
8536 | <p>If a program is written in Java, use the Java framework in | | 8540 | <p>If a program is written in Java, use the Java framework in |
8537 | pkgsrc. The package must include | | 8541 | pkgsrc. The package must include |
8538 | <code class="filename">../../mk/java-vm.mk</code>. This Makefile fragment | | 8542 | <code class="filename">../../mk/java-vm.mk</code>. This Makefile fragment |
8539 | provides the following variables:</p> | | 8543 | provides the following variables:</p> |
8540 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 8544 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
8541 | <li class="listitem"><p><code class="varname">USE_JAVA</code> defines if a build | | 8545 | <li class="listitem"><p><code class="varname">USE_JAVA</code> defines if a build |
8542 | dependency on the JDK is added. If | | 8546 | dependency on the JDK is added. If |
8543 | <code class="varname">USE_JAVA</code> is set to <span class="quote">“<span class="quote">run</span>”</span>, then | | 8547 | <code class="varname">USE_JAVA</code> is set to <span class="quote">“<span class="quote">run</span>”</span>, then |
8544 | there is only a runtime dependency on the JDK. The default is | | 8548 | there is only a runtime dependency on the JDK. The default is |
8545 | <span class="quote">“<span class="quote">yes</span>”</span>, which also adds a build dependency on the | | 8549 | <span class="quote">“<span class="quote">yes</span>”</span>, which also adds a build dependency on the |
8546 | JDK.</p></li> | | 8550 | JDK.</p></li> |
8547 | <li class="listitem"><p>Set <code class="varname">USE_JAVA2</code> to declare that | | 8551 | <li class="listitem"><p>Set <code class="varname">USE_JAVA2</code> to declare that |
8548 | a package needs a Java2 implementation. The supported values | | 8552 | a package needs a Java2 implementation. The supported values |
8549 | are <span class="quote">“<span class="quote">yes</span>”</span>, <span class="quote">“<span class="quote">1.4</span>”</span>, and | | 8553 | are <span class="quote">“<span class="quote">yes</span>”</span>, <span class="quote">“<span class="quote">1.4</span>”</span>, and |
8550 | <span class="quote">“<span class="quote">1.5</span>”</span>. <span class="quote">“<span class="quote">yes</span>”</span> accepts any Java2 | | 8554 | <span class="quote">“<span class="quote">1.5</span>”</span>. <span class="quote">“<span class="quote">yes</span>”</span> accepts any Java2 |
8551 | implementation, <span class="quote">“<span class="quote">1.4</span>”</span> insists on versions 1.4 or | | 8555 | implementation, <span class="quote">“<span class="quote">1.4</span>”</span> insists on versions 1.4 or |
8552 | above, and <span class="quote">“<span class="quote">1.5</span>”</span> only accepts versions 1.5 or | | 8556 | above, and <span class="quote">“<span class="quote">1.5</span>”</span> only accepts versions 1.5 or |
8553 | above. This variable is not set by default.</p></li> | | 8557 | above. This variable is not set by default.</p></li> |
8554 | <li class="listitem"><p><code class="varname">PKG_JAVA_HOME</code> is | | 8558 | <li class="listitem"><p><code class="varname">PKG_JAVA_HOME</code> is |
8555 | automatically set to the runtime location of the used Java | | 8559 | automatically set to the runtime location of the used Java |
8556 | implementation dependency. It may be used to set | | 8560 | implementation dependency. It may be used to set |
8557 | <code class="varname">JAVA_HOME</code> to a good value if the program | | 8561 | <code class="varname">JAVA_HOME</code> to a good value if the program |
8558 | needs this variable to be defined. | | 8562 | needs this variable to be defined. |
8559 | </p></li> | | 8563 | </p></li> |
8560 | </ul></div> | | 8564 | </ul></div> |
8561 | </div> | | 8565 | </div> |
8562 | <div class="sect2"> | | 8566 | <div class="sect2"> |
8563 | <div class="titlepage"><div><div><h3 class="title"> | | 8567 | <div class="titlepage"><div><div><h3 class="title"> |
8564 | <a name="go-programming-language"></a>21.4.3. Go</h3></div></div></div> | | 8568 | <a name="go-programming-language"></a>21.4.3. Go</h3></div></div></div> |
8565 | <p>If a program is written in Go and has any dependencies on | | 8569 | <p>If a program is written in Go and has any dependencies on |
8566 | other Go modules, have the package include | | 8570 | other Go modules, have the package include |
8567 | <code class="filename">../../lang/go/go-module.mk</code>.</p> | | 8571 | <code class="filename">../../lang/go/go-module.mk</code>.</p> |
8568 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 8572 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
8569 | <li class="listitem"><p>Generate a list of those dependencies with | | 8573 | <li class="listitem"><p>Generate a list of those dependencies with |
8570 | <span class="command"><strong>make clean && make patch && make show-go-modules > | | 8574 | <span class="command"><strong>make clean && make patch && make show-go-modules > |
8571 | go-modules.mk</strong></span>.</p></li> | | 8575 | go-modules.mk</strong></span>.</p></li> |
8572 | <li class="listitem"><p>Prepend | | 8576 | <li class="listitem"><p>Prepend |
8573 | <code class="literal">.include "go-modules.mk"</code> to any other | | 8577 | <code class="literal">.include "go-modules.mk"</code> to any other |
8574 | <code class="literal">.include</code>s.</p></li> | | 8578 | <code class="literal">.include</code>s.</p></li> |
8575 | <li class="listitem"><p>Incorporate these modules in | | 8579 | <li class="listitem"><p>Incorporate these modules in |
8576 | <code class="filename">distinfo</code> with <span class="command"><strong>make | | 8580 | <code class="filename">distinfo</code> with <span class="command"><strong>make |
8577 | makesum</strong></span>.</p></li> | | 8581 | makesum</strong></span>.</p></li> |
8578 | </ol></div> | | 8582 | </ol></div> |
8579 | </div> | | 8583 | </div> |
8580 | <div class="sect2"> | | 8584 | <div class="sect2"> |
8581 | <div class="titlepage"><div><div><h3 class="title"> | | 8585 | <div class="titlepage"><div><div><h3 class="title"> |
8582 | <a name="rust-programming-language"></a>21.4.4. Rust</h3></div></div></div> | | 8586 | <a name="rust-programming-language"></a>21.4.4. Rust</h3></div></div></div> |
8583 | <p>If a program is written in Rust and uses Cargo to build, | | 8587 | <p>If a program is written in Rust and uses Cargo to build, |
8584 | have the package include | | 8588 | have the package include |
8585 | <code class="filename">../../lang/rust/cargo.mk</code>.</p> | | 8589 | <code class="filename">../../lang/rust/cargo.mk</code>.</p> |
8586 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 8590 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
8587 | <li class="listitem"><p>Generate a list of those dependencies with | | 8591 | <li class="listitem"><p>Generate a list of those dependencies with |
8588 | <span class="command"><strong>make CARGO_ARGS="build --release" build && | | 8592 | <span class="command"><strong>make CARGO_ARGS="build --release" build && |
8589 | make print-cargo-depends > cargo-depends.mk</strong></span>.</p></li> | | 8593 | make print-cargo-depends > cargo-depends.mk</strong></span>.</p></li> |
8590 | <li class="listitem"><p>Prepend | | 8594 | <li class="listitem"><p>Prepend |
8591 | <code class="literal">.include "cargo-depends.mk"</code> to any other | | 8595 | <code class="literal">.include "cargo-depends.mk"</code> to any other |
8592 | <code class="literal">.include</code>s.</p></li> | | 8596 | <code class="literal">.include</code>s.</p></li> |
8593 | <li class="listitem"><p>Incorporate these modules in | | 8597 | <li class="listitem"><p>Incorporate these modules in |
8594 | <code class="filename">distinfo</code> with <span class="command"><strong>make | | 8598 | <code class="filename">distinfo</code> with <span class="command"><strong>make |
8595 | makesum</strong></span>.</p></li> | | 8599 | makesum</strong></span>.</p></li> |
8596 | </ol></div> | | 8600 | </ol></div> |
8597 | </div> | | 8601 | </div> |
8598 | <div class="sect2"> | | 8602 | <div class="sect2"> |
8599 | <div class="titlepage"><div><div><h3 class="title"> | | 8603 | <div class="titlepage"><div><div><h3 class="title"> |
8600 | <a name="perl-scripts"></a>21.4.5. Packages containing Perl scripts</h3></div></div></div> | | 8604 | <a name="perl-scripts"></a>21.4.5. Packages containing Perl scripts</h3></div></div></div> |
8601 | <p>If your package contains interpreted Perl scripts, add | | 8605 | <p>If your package contains interpreted Perl scripts, add |
8602 | <span class="quote">“<span class="quote">perl</span>”</span> to the <code class="varname">USE_TOOLS</code> variable | | 8606 | <span class="quote">“<span class="quote">perl</span>”</span> to the <code class="varname">USE_TOOLS</code> variable |
8603 | and set <code class="varname">REPLACE_PERL</code> to ensure that the proper | | 8607 | and set <code class="varname">REPLACE_PERL</code> to ensure that the proper |
8604 | interpreter path is set. <code class="varname">REPLACE_PERL</code> should | | 8608 | interpreter path is set. <code class="varname">REPLACE_PERL</code> should |
8605 | contain a list of scripts, relative to <code class="varname">WRKSRC</code>, | | 8609 | contain a list of scripts, relative to <code class="varname">WRKSRC</code>, |
8606 | that you want adjusted. Every occurrence of | | 8610 | that you want adjusted. Every occurrence of |
8607 | <code class="filename">*/bin/perl</code> in a she-bang line will be | | 8611 | <code class="filename">*/bin/perl</code> in a she-bang line will be |
8608 | replaced with the full path to the Perl executable.</p> | | 8612 | replaced with the full path to the Perl executable.</p> |
8609 | <p>If a particular version of Perl is needed, set the | | 8613 | <p>If a particular version of Perl is needed, set the |
8610 | <code class="varname">PERL5_REQD</code> variable to the version number. The | | 8614 | <code class="varname">PERL5_REQD</code> variable to the version number. The |
8611 | default is <span class="quote">“<span class="quote">5.0</span>”</span>.</p> | | 8615 | default is <span class="quote">“<span class="quote">5.0</span>”</span>.</p> |
8612 | <p>See <a class="xref" href="#perl-modules" title="21.6.6. Packages installing Perl modules">Section 21.6.6, “Packages installing Perl modules”</a> for information | | 8616 | <p>See <a class="xref" href="#perl-modules" title="21.6.6. Packages installing Perl modules">Section 21.6.6, “Packages installing Perl modules”</a> for information |
8613 | about handling Perl modules.</p> | | 8617 | about handling Perl modules.</p> |
8614 | <p>There is also the <code class="varname">REPLACE_PERL6</code> variable | | 8618 | <p>There is also the <code class="varname">REPLACE_PERL6</code> variable |
8615 | for the language now known as Raku.</p> | | 8619 | for the language now known as Raku.</p> |
8616 | </div> | | 8620 | </div> |
8617 | <div class="sect2"> | | 8621 | <div class="sect2"> |
8618 | <div class="titlepage"><div><div><h3 class="title"> | | 8622 | <div class="titlepage"><div><div><h3 class="title"> |
8619 | <a name="shell-scripts"></a>21.4.6. Packages containing shell scripts</h3></div></div></div> | | 8623 | <a name="shell-scripts"></a>21.4.6. Packages containing shell scripts</h3></div></div></div> |
8620 | <p><code class="varname">REPLACE_SH</code>, | | 8624 | <p><code class="varname">REPLACE_SH</code>, |
8621 | <code class="varname">REPLACE_BASH</code>, <code class="varname">REPLACE_CSH</code>, | | 8625 | <code class="varname">REPLACE_BASH</code>, <code class="varname">REPLACE_CSH</code>, |
8622 | and <code class="varname">REPLACE_KSH</code> can be used to replace shell | | 8626 | and <code class="varname">REPLACE_KSH</code> can be used to replace shell |
8623 | hash bangs in files. Please use the appropriate one, preferring | | 8627 | she-bangs in files. Please use the appropriate one, preferring |
8624 | <code class="varname">REPLACE_SH</code> in case this shell is sufficient. | | 8628 | <code class="varname">REPLACE_SH</code> when this shell is sufficient. |
8625 | Each should contain a list of scripts, relative to | | 8629 | Each should contain a list of scripts, relative to |
8626 | <code class="varname">WRKSRC</code>, that you want adjusted. Every | | 8630 | <code class="varname">WRKSRC</code>, that you want adjusted. Every |
8627 | occurrence of the matching shell in a she-bang line will be | | 8631 | occurrence of the matching shell in a she-bang line will be |
8628 | replaced with the full path to the shell executable. | | 8632 | replaced with the full path to the shell executable. |
8629 | When using <code class="varname">REPLACE_BASH</code>, don't forget to add | | 8633 | When using <code class="varname">REPLACE_BASH</code>, don't forget to add |
8630 | <code class="filename">bash</code> to <code class="varname">USE_TOOLS</code>.</p> | | 8634 | <code class="filename">bash</code> to <code class="varname">USE_TOOLS</code>.</p> |
8631 | </div> | | 8635 | </div> |
8632 | <div class="sect2"> | | 8636 | <div class="sect2"> |
8633 | <div class="titlepage"><div><div><h3 class="title"> | | 8637 | <div class="titlepage"><div><div><h3 class="title"> |
8634 | <a name="other-programming-languages"></a>21.4.7. Other programming languages</h3></div></div></div> | | 8638 | <a name="other-programming-languages"></a>21.4.7. Other programming languages</h3></div></div></div> |
8635 | <p>There are further similar REPLACE variables available, e.g., | | 8639 | <p>There are further similar REPLACE variables available, e.g., |
8636 | <code class="varname">REPLACE_AWK</code> for packages containing awk scripts, | | 8640 | <code class="varname">REPLACE_AWK</code> for packages containing awk scripts, |
8637 | and <code class="varname">REPLACE_R</code> for R. These two, like the others | | 8641 | and <code class="varname">REPLACE_R</code> for R. These two, like the others |
8638 | noted above, have their actions defined centrally in | | 8642 | noted above, have their actions defined centrally in |
8639 | <code class="filename">mk/configure/replace-interpreter.mk</code>. Other | | 8643 | <code class="filename">mk/configure/replace-interpreter.mk</code>. Other |
8640 | languages define the actions of these variables within their own | | 8644 | languages define the actions of these variables within their own |
8641 | dedicated part of the tree, e.g., <code class="varname">REPLACE_PHP</code> is | | 8645 | dedicated part of the tree, e.g., <code class="varname">REPLACE_PHP</code> is |
8642 | actioned in <code class="filename">lang/php/phpversion.mk</code>, and | | 8646 | actioned in <code class="filename">lang/php/phpversion.mk</code>, and |
8643 | <code class="varname">REPLACE_PYTHON</code> is actioned in | | 8647 | <code class="varname">REPLACE_PYTHON</code> is actioned in |
8644 | <code class="filename">lang/python/application.mk</code>. For other languages, | | 8648 | <code class="filename">lang/python/application.mk</code>. For other languages, |
8645 | consult the mk files found within their specific directories (the | | 8649 | consult the mk files found within their specific directories (the |
8646 | naming convention varies), or check the list found in | | 8650 | naming convention varies), or check the list found in |
8647 | <a class="xref" href="#help-topics" title="Appendix E. Help topics">Appendix E, <i>Help topics</i></a>.</p> | | 8651 | <a class="xref" href="#help-topics" title="Appendix E. Help topics">Appendix E, <i>Help topics</i></a>.</p> |
8648 | <p>Currently, special handling for other languages varies | | 8652 | <p>Currently, special handling for other languages varies |
8649 | in pkgsrc. If a compiler package provides a | | 8653 | in pkgsrc. If a compiler package provides a |
8650 | <code class="filename">buildlink3.mk</code> file, include that, otherwise | | 8654 | <code class="filename">buildlink3.mk</code> file, include that, otherwise |
8651 | just add a (build) dependency on the appropriate compiler | | 8655 | just add a (build) dependency on the appropriate compiler |
8652 | package.</p> | | 8656 | package.</p> |
8653 | </div> | | 8657 | </div> |
8654 | </div> | | 8658 | </div> |
8655 | <div class="sect1"> | | 8659 | <div class="sect1"> |
8656 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 8660 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
8657 | <a name="fixes.build"></a>21.5. The <span class="emphasis"><em>build</em></span> phase</h2></div></div></div> | | 8661 | <a name="fixes.build"></a>21.5. The <span class="emphasis"><em>build</em></span> phase</h2></div></div></div> |
8658 | <p>The most common failures when building a package are that | | 8662 | <p>The most common failures when building a package are that |
8659 | some platforms do not provide certain header files, functions or | | 8663 | some platforms do not provide certain header files, functions or |
8660 | libraries, or they provide the functions in a library that the | | 8664 | libraries, or they provide the functions in a library that the |
8661 | original package author didn't know. To work around this, you | | 8665 | original package author didn't know. To work around this, you |
8662 | can rewrite the source code in most cases so that it does not | | 8666 | can rewrite the source code in most cases so that it does not |
8663 | use the missing functions or provides a replacement function.</p> | | 8667 | use the missing functions or provides a replacement function.</p> |
8664 | <div class="sect2"> | | 8668 | <div class="sect2"> |
8665 | <div class="titlepage"><div><div><h3 class="title"> | | 8669 | <div class="titlepage"><div><div><h3 class="title"> |
8666 | <a name="fixes.build.cpp"></a>21.5.1. Compiling C and C++ code conditionally</h3></div></div></div> | | 8670 | <a name="fixes.build.cpp"></a>21.5.1. Compiling C and C++ code conditionally</h3></div></div></div> |
8667 | <p>If a package already comes with a GNU configure script, the | | 8671 | <p>If a package already comes with a GNU configure script, the |
8668 | preferred way to fix the build failure is to change the | | 8672 | preferred way to fix the build failure is to change the |
8669 | configure script, not the code. In the other cases, you can | | 8673 | configure script, not the code. In the other cases, you can |
8670 | utilize the C preprocessor, which defines certain macros | | 8674 | utilize the C preprocessor, which defines certain macros |
8671 | depending on the operating system and hardware architecture it | | 8675 | depending on the operating system and hardware architecture it |
8672 | compiles for. These macros can be queried using for example | | 8676 | compiles for. These macros can be queried using for example |
8673 | <code class="varname">#if defined(__i386)</code>. Almost every operating | | 8677 | <code class="varname">#if defined(__i386)</code>. Almost every operating |
8674 | system, hardware architecture and compiler has its own macro. | | 8678 | system, hardware architecture and compiler has its own macro. |
8675 | For example, if the macros <code class="varname">__GNUC__</code>, | | 8679 | For example, if the macros <code class="varname">__GNUC__</code>, |
8676 | <code class="varname">__i386__</code> and <code class="varname">__NetBSD__</code> | | 8680 | <code class="varname">__i386__</code> and <code class="varname">__NetBSD__</code> |
8677 | are all defined, you know that you are using NetBSD on an i386 | | 8681 | are all defined, you know that you are using NetBSD on an i386 |
8678 | compatible CPU, and your compiler is GCC.</p> | | 8682 | compatible CPU, and your compiler is GCC.</p> |
8679 | <p>The list of the following macros for hardware and | | 8683 | <p>The list of the following macros for hardware and |
8680 | operating system depends on the compiler that is used. For | | 8684 | operating system depends on the compiler that is used. For |
8681 | example, if you want to conditionally compile code on Solaris, | | 8685 | example, if you want to conditionally compile code on Solaris, |
8682 | don't use <code class="varname">__sun__</code>, as the SunPro compiler | | 8686 | don't use <code class="varname">__sun__</code>, as the SunPro compiler |
8683 | does not define it. Use <code class="varname">__sun</code> instead.</p> | | 8687 | does not define it. Use <code class="varname">__sun</code> instead.</p> |
8684 | <div class="sect3"> | | 8688 | <div class="sect3"> |
8685 | <div class="titlepage"><div><div><h4 class="title"> | | 8689 | <div class="titlepage"><div><div><h4 class="title"> |
8686 | <a name="fixes.build.cpp.os"></a>21.5.1.1. C preprocessor macros to identify the operating system</h4></div></div></div> | | 8690 | <a name="fixes.build.cpp.os"></a>21.5.1.1. C preprocessor macros to identify the operating system</h4></div></div></div> |
8687 | <p>To distinguish between specific NetBSD versions, | | 8691 | <p>To distinguish between specific NetBSD versions, |
8688 | you should use the following code.</p> | | 8692 | you should use the following code.</p> |
8689 | <pre class="programlisting"> | | 8693 | <pre class="programlisting"> |
8690 | #ifdef __NetBSD__ | | 8694 | #ifdef __NetBSD__ |
8691 | #include <sys/param.h> | | 8695 | #include <sys/param.h> |
8692 | #if __NetBSD_Prereq__(9,99,17) | | 8696 | #if __NetBSD_Prereq__(9,99,17) |
8693 | /* use a newer feature */ | | 8697 | /* use a newer feature */ |
8694 | #else | | 8698 | #else |
8695 | /* older code */ | | 8699 | /* older code */ |
8696 | #endif | | 8700 | #endif |
8697 | #endif | | 8701 | #endif |
8698 | | | 8702 | |
8699 | #ifndef _WIN32 | | 8703 | #ifndef _WIN32 |
8700 | /* Unix-like specific code */ | | 8704 | /* Unix-like specific code */ |
8701 | #endif | | 8705 | #endif |
8702 | </pre> | | 8706 | </pre> |
8703 | <p>To distinguish between 4.4 BSD-derived systems and the | | 8707 | <p>To distinguish between 4.4 BSD-derived systems and the |
8704 | rest of the world, you should use the following code.</p> | | 8708 | rest of the world, you should use the following code.</p> |
8705 | <pre class="programlisting"> | | 8709 | <pre class="programlisting"> |
8706 | #include <sys/param.h> | | 8710 | #include <sys/param.h> |
8707 | #if (defined(BSD) && BSD >= 199306) | | 8711 | #if (defined(BSD) && BSD >= 199306) |
8708 | /* BSD-specific code goes here */ | | 8712 | /* BSD-specific code goes here */ |
8709 | #else | | 8713 | #else |
8710 | /* non-BSD-specific code goes here */ | | 8714 | /* non-BSD-specific code goes here */ |
8711 | #endif | | 8715 | #endif |
8712 | </pre> | | 8716 | </pre> |
8713 | <p>You can also test for the following macros:</p> | | 8717 | <p>You can also test for the following macros:</p> |
8714 | <pre class="programlisting"> | | 8718 | <pre class="programlisting"> |
8715 | Cygwin __CYGWIN__ | | 8719 | Cygwin __CYGWIN__ |
8716 | DragonFly __DragonFly__ | | 8720 | DragonFly __DragonFly__ |
8717 | FreeBSD __FreeBSD__ | | 8721 | FreeBSD __FreeBSD__ |
8718 | Haiku __HAIKU__ | | 8722 | Haiku __HAIKU__ |
8719 | Interix __INTERIX | | 8723 | Interix __INTERIX |
8720 | IRIX __sgi (TODO: get a definite source for this) | | 8724 | IRIX __sgi (TODO: get a definite source for this) |
8721 | Linux __linux | | 8725 | Linux __linux |
8722 | Mac OS X __APPLE__ | | 8726 | Mac OS X __APPLE__ |
8723 | MirBSD __MirBSD__ (__OpenBSD__ is also defined) | | 8727 | MirBSD __MirBSD__ (__OpenBSD__ is also defined) |
8724 | Minix3 __minix | | 8728 | Minix3 __minix |
8725 | NetBSD __NetBSD__ | | 8729 | NetBSD __NetBSD__ |
8726 | OpenBSD __OpenBSD__ | | 8730 | OpenBSD __OpenBSD__ |
8727 | Solaris sun, __sun | | 8731 | Solaris sun, __sun |
8728 | </pre> | | 8732 | </pre> |
8729 | </div> | | 8733 | </div> |
8730 | <div class="sect3"> | | 8734 | <div class="sect3"> |
8731 | <div class="titlepage"><div><div><h4 class="title"> | | 8735 | <div class="titlepage"><div><div><h4 class="title"> |
8732 | <a name="fixes.build.cpp.arch"></a>21.5.1.2. C preprocessor macros to identify the hardware architecture</h4></div></div></div> | | 8736 | <a name="fixes.build.cpp.arch"></a>21.5.1.2. C preprocessor macros to identify the hardware architecture</h4></div></div></div> |
8733 | <pre class="programlisting"> | | 8737 | <pre class="programlisting"> |
8734 | i386 i386, __i386, __i386__ | | 8738 | i386 i386, __i386, __i386__ |
8735 | x86-64 __amd64__, __x86_64__ | | 8739 | x86-64 __amd64__, __x86_64__ |
8736 | ARM __arm__ | | 8740 | ARM __arm__ |
8737 | MIPS __mips | | 8741 | MIPS __mips |
8738 | SPARC sparc, __sparc | | 8742 | SPARC sparc, __sparc |
8739 | PowerPC __powerpc | | 8743 | PowerPC __powerpc |
8740 | </pre> | | 8744 | </pre> |
8741 | </div> | | 8745 | </div> |
8742 | <div class="sect3"> | | 8746 | <div class="sect3"> |
8743 | <div class="titlepage"><div><div><h4 class="title"> | | 8747 | <div class="titlepage"><div><div><h4 class="title"> |
8744 | <a name="fixes.build.cpp.compiler"></a>21.5.1.3. C preprocessor macros to identify the compiler</h4></div></div></div> | | 8748 | <a name="fixes.build.cpp.compiler"></a>21.5.1.3. C preprocessor macros to identify the compiler</h4></div></div></div> |
8745 | <pre class="programlisting"> | | 8749 | <pre class="programlisting"> |
8746 | GCC __GNUC__ (major version), __GNUC_MINOR__ | | 8750 | GCC __GNUC__ (major version), __GNUC_MINOR__ |
8747 | MIPSpro _COMPILER_VERSION (0x741 for MIPSpro 7.41) | | 8751 | MIPSpro _COMPILER_VERSION (0x741 for MIPSpro 7.41) |
8748 | SunPro __SUNPRO_C (0x570 for Sun C 5.7) | | 8752 | SunPro __SUNPRO_C (0x570 for Sun C 5.7) |
8749 | SunPro C++ __SUNPRO_CC (0x580 for Sun C++ 5.8) | | 8753 | SunPro C++ __SUNPRO_CC (0x580 for Sun C++ 5.8) |
8750 | </pre> | | 8754 | </pre> |
8751 | </div> | | 8755 | </div> |
8752 | </div> | | 8756 | </div> |
8753 | <div class="sect2"> | | 8757 | <div class="sect2"> |
8754 | <div class="titlepage"><div><div><h3 class="title"> | | 8758 | <div class="titlepage"><div><div><h3 class="title"> |
8755 | <a name="compiler-bugs"></a>21.5.2. How to handle compiler bugs</h3></div></div></div> | | 8759 | <a name="compiler-bugs"></a>21.5.2. How to handle compiler bugs</h3></div></div></div> |
8756 | <p>Some source files trigger bugs in the compiler, based on | | 8760 | <p>Some source files trigger bugs in the compiler, based on |
8757 | combinations of compiler version and architecture and almost | | 8761 | combinations of compiler version and architecture and almost |
8758 | always relation to optimisation being enabled. Common symptoms | | 8762 | always relation to optimisation being enabled. Common symptoms |
8759 | are gcc internal errors or never finishing compiling a | | 8763 | are gcc internal errors or never finishing compiling a |
8760 | file.</p> | | 8764 | file.</p> |
8761 | <p>Typically, a workaround involves testing the | | 8765 | <p>Typically, a workaround involves testing the |
8762 | <code class="varname">MACHINE_ARCH</code> and compiler version, disabling | | 8766 | <code class="varname">MACHINE_ARCH</code> and compiler version, disabling |
8763 | optimisation for that combination of file, | | 8767 | optimisation for that combination of file, |
8764 | <code class="varname">MACHINE_ARCH</code> and compiler.</p> | | 8768 | <code class="varname">MACHINE_ARCH</code> and compiler.</p> |
8765 | <p>This used to be a big problem in the past, but is rarely | | 8769 | <p>This used to be a big problem in the past, but is rarely |
8766 | needed now as compiler technology has matured. If you still need | | 8770 | needed now as compiler technology has matured. If you still need |
8767 | to add a compiler specific workaround, please do so in the file | | 8771 | to add a compiler specific workaround, please do so in the file |
8768 | <code class="filename">hacks.mk</code> and describe the symptom and | | 8772 | <code class="filename">hacks.mk</code> and describe the symptom and |
8769 | compiler version as detailed as possible.</p> | | 8773 | compiler version as detailed as possible.</p> |
8770 | </div> | | 8774 | </div> |
8771 | <div class="sect2"> | | 8775 | <div class="sect2"> |
8772 | <div class="titlepage"><div><div><h3 class="title"> | | 8776 | <div class="titlepage"><div><div><h3 class="title"> |
8773 | <a name="fixes.build.header"></a>21.5.3. No such file or directory</h3></div></div></div> | | 8777 | <a name="fixes.build.header"></a>21.5.3. No such file or directory</h3></div></div></div> |
8774 | <p>Compilation sometimes fails with an error message like this:</p> | | 8778 | <p>Compilation sometimes fails with an error message like this:</p> |
8775 | <pre class="programlisting"> | | 8779 | <pre class="programlisting"> |
8776 | .../x11/gtk3/work/gtk+-3.24.12/gdk/gdktypes.h:35:10: | | 8780 | .../x11/gtk3/work/gtk+-3.24.12/gdk/gdktypes.h:35:10: |
8777 | fatal error: pango/pango.h: No such file or directory | | 8781 | fatal error: pango/pango.h: No such file or directory |
8778 | </pre> | | 8782 | </pre> |
8779 | <p>The proper way to fix this problem depends on the type of the | | 8783 | <p>The proper way to fix this problem depends on the type of the |
8780 | header, which is described in the following sections.</p> | | 8784 | header, which is described in the following sections.</p> |
8781 | <div class="sect3"> | | 8785 | <div class="sect3"> |
8782 | <div class="titlepage"><div><div><h4 class="title"> | | 8786 | <div class="titlepage"><div><div><h4 class="title"> |
8783 | <a name="fixes.build.header.bl3"></a>21.5.3.1. Headers from other packages</h4></div></div></div> | | 8787 | <a name="fixes.build.header.bl3"></a>21.5.3.1. Headers from other packages</h4></div></div></div> |
8784 | <p>If the header name looks like it comes from a different package, | | 8788 | <p>If the header name looks like it comes from a different package, |
8785 | that other package should be included via the buildlink3 | | 8789 | that other package should be included via the buildlink3 |
8786 | framework.</p> | | 8790 | framework.</p> |
8787 | <p>First, look whether the header is somewhere in the buildlink3 | | 8791 | <p>First, look whether the header is somewhere in the buildlink3 |
8788 | directory below <code class="varname">WRKDIR</code>. In the above case of | | 8792 | directory below <code class="varname">WRKDIR</code>. In the above case of |
8789 | the missing Pango header:</p> | | 8793 | the missing Pango header:</p> |
8790 | <pre class="programlisting"> | | 8794 | <pre class="programlisting"> |
8791 | <code class="prompt">$</code> find work/.buildlink/ -print | grep -F pango/pango.h | | 8795 | <code class="prompt">$</code> find work/.buildlink/ -print | grep -F pango/pango.h |
8792 | </pre> | | 8796 | </pre> |
8793 | <p>In the case of Pango, the output is:</p> | | 8797 | <p>In the case of Pango, the output is:</p> |
8794 | <pre class="programlisting"> | | 8798 | <pre class="programlisting"> |
8795 | work/.buildlink/include/pango-1.0/pango/pango.h | | 8799 | work/.buildlink/include/pango-1.0/pango/pango.h |
8796 | </pre> | | 8800 | </pre> |
8797 | <p>If the <code class="filename">pango/pango.h</code> file were placed directly | | 8801 | <p>If the <code class="filename">pango/pango.h</code> file were placed directly |
8798 | in the <code class="filename">.buildlink</code> directory, it would have been | | 8802 | in the <code class="filename">.buildlink</code> directory, it would have been |
8799 | found automatically. There is an extra <code class="filename">pango-1.0</code> | | 8803 | found automatically. There is an extra <code class="filename">pango-1.0</code> |
8800 | path component though, which means that the compiler command line must | | 8804 | path component though, which means that the compiler command line must |
8801 | contain an option of the form | | 8805 | contain an option of the form |
8802 | <code class="literal">-I${BUILDLINK3_PREFIX.pango}/include/pango-1.0</code>. In | | 8806 | <code class="literal">-I${BUILDLINK3_PREFIX.pango}/include/pango-1.0</code>. In |
8803 | most cases this option is generated by the configure script, which can be examined using:</p> | | 8807 | most cases this option is generated by the configure script, which can be examined using:</p> |
8804 | <pre class="programlisting"> | | 8808 | <pre class="programlisting"> |
8805 | <code class="prompt">$</code> $ grep -o '[-]I[^[:space:]]*/pango[^[:space:]]*' work/*/Makefile | | 8809 | <code class="prompt">$</code> $ grep -o '[-]I[^[:space:]]*/pango[^[:space:]]*' work/*/Makefile |
8806 | -I/usr/pkg/include/pango-1.0 | | 8810 | -I/usr/pkg/include/pango-1.0 |
8807 | -I/usr/pkg/include/pango-1.0 | | 8811 | -I/usr/pkg/include/pango-1.0 |
8808 | -I/usr/pkg/include/pango-1.0 | | 8812 | -I/usr/pkg/include/pango-1.0 |
8809 | -I/usr/pkg/include/pango-1.0 | | 8813 | -I/usr/pkg/include/pango-1.0 |
8810 | -I/usr/pkg/include/pango-1.0 | | 8814 | -I/usr/pkg/include/pango-1.0 |
8811 | </pre> | | 8815 | </pre> |
8812 | <p>This looks good. These options are transformed by the buildlink | | 8816 | <p>This looks good. These options are transformed by the buildlink |
8813 | wrapper to refer to the correct path inside | | 8817 | wrapper to refer to the correct path inside |
8814 | <code class="filename">work/.buildlink</code>.</p> | | 8818 | <code class="filename">work/.buildlink</code>.</p> |
8815 | <p>Since the compilation fails though, examine the compiler command | | 8819 | <p>Since the compilation fails though, examine the compiler command |
8816 | lines in <code class="filename">work/.work.log</code> to see whether the | | 8820 | lines in <code class="filename">work/.work.log</code> to see whether the |
8817 | <code class="literal">-I</code> option is included in the particular command | | 8821 | <code class="literal">-I</code> option is included in the particular command |
8818 | line.</p> | | 8822 | line.</p> |
8819 | <p>To further analyze the situation, run <span class="command"><strong>bmake | | 8823 | <p>To further analyze the situation, run <span class="command"><strong>bmake |
8820 | build-env</strong></span>, which sets up an interactive, realistic environment | | 8824 | build-env</strong></span>, which sets up an interactive, realistic environment |
8821 | including all the pkgsrc wrapper commands and environment variables. From | | 8825 | including all the pkgsrc wrapper commands and environment variables. From |
8822 | there, try to compile some simple example programs that use the | | 8826 | there, try to compile some simple example programs that use the |
8823 | header.</p> | | 8827 | header.</p> |
8824 | </div> | | 8828 | </div> |
8825 | <div class="sect3"> | | 8829 | <div class="sect3"> |
8826 | <div class="titlepage"><div><div><h4 class="title"> | | 8830 | <div class="titlepage"><div><div><h4 class="title"> |
8827 | <a name="fixes.build.header.gen"></a>21.5.3.2. Headers generated during the build</h4></div></div></div> | | 8831 | <a name="fixes.build.header.gen"></a>21.5.3.2. Headers generated during the build</h4></div></div></div> |
8828 | <p>If the name of the header seems to come from the package itself, | | 8832 | <p>If the name of the header seems to come from the package itself, |
8829 | and if the build is run with parallel jobs, the package may have some | | 8833 | and if the build is run with parallel jobs, the package may have some |
8830 | undeclared dependencies between the <code class="filename">.c</code> and the | | 8834 | undeclared dependencies between the <code class="filename">.c</code> and the |
8831 | <code class="filename">.h</code> files, and a C file is compiled before its | | 8835 | <code class="filename">.h</code> files, and a C file is compiled before its |
8832 | required header is generated.</p> | | 8836 | required header is generated.</p> |
8833 | <p>To see whether the build runs with parallel jobs, run | | 8837 | <p>To see whether the build runs with parallel jobs, run |
8834 | <span class="command"><strong>bmake show-all-build | grep JOBS</strong></span>. Its output looks | | 8838 | <span class="command"><strong>bmake show-all-build | grep JOBS</strong></span>. Its output looks |
8835 | like this:</p> | | 8839 | like this:</p> |
8836 | <pre class="programlisting"> | | 8840 | <pre class="programlisting"> |
8837 | usr MAKE_JOBS= 7 | | 8841 | usr MAKE_JOBS= 7 |
8838 | pkg MAKE_JOBS_SAFE # undefined | | 8842 | pkg MAKE_JOBS_SAFE # undefined |
8839 | def _MAKE_JOBS_N= 7 | | 8843 | def _MAKE_JOBS_N= 7 |
8840 | </pre> | | 8844 | </pre> |
8841 | <p>In this case the pkgsrc user has asked pkgsrc to build packages | | 8845 | <p>In this case the pkgsrc user has asked pkgsrc to build packages |
8842 | with 7 jobs in parallel (<code class="varname">MAKE_JOBS</code>). The | | 8846 | with 7 jobs in parallel (<code class="varname">MAKE_JOBS</code>). The |
8843 | package could have disabled parallel builds by setting | | 8847 | package could have disabled parallel builds by setting |
8844 | <code class="varname">MAKE_JOBS_SAFE</code> to <code class="literal">no</code>, but | | 8848 | <code class="varname">MAKE_JOBS_SAFE</code> to <code class="literal">no</code>, but |
8845 | in this case it hasn't.</p> | | 8849 | in this case it hasn't.</p> |
8846 | <p>To see whether the build failure is caused by parallel builds, | | 8850 | <p>To see whether the build failure is caused by parallel builds, |
8847 | first save the exact error message and a bit of context, maybe you need | | 8851 | first save the exact error message and a bit of context, maybe you need |
8848 | it later for reporting a bug. Next, run:</p> | | 8852 | it later for reporting a bug. Next, run:</p> |
8849 | <pre class="programlisting"> | | 8853 | <pre class="programlisting"> |
8850 | MAKE_JOBS_SAFE=no bmake clean build | | 8854 | MAKE_JOBS_SAFE=no bmake clean build |
8851 | </pre> | | 8855 | </pre> |
8852 | <p>If that succeeds, <a class="ulink" href="https://www.NetBSD.org/cgi-bin/sendpr.cgi?gndb=netbsd" target="_top">file a bug | | 8856 | <p>If that succeeds, <a class="ulink" href="https://www.NetBSD.org/cgi-bin/sendpr.cgi?gndb=netbsd" target="_top">file a bug |
8853 | report</a> against the pkgsrc package, including the exact error | | 8857 | report</a> against the pkgsrc package, including the exact error |
8854 | message and the contents of your <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> file.</p> | | 8858 | message and the contents of your <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a> file.</p> |
8855 | </div> | | 8859 | </div> |
8856 | <div class="sect3"> | | 8860 | <div class="sect3"> |
8857 | <div class="titlepage"><div><div><h4 class="title"> | | 8861 | <div class="titlepage"><div><div><h4 class="title"> |
8858 | <a name="fixes.build.header.symlink"></a>21.5.3.3. Symlinks</h4></div></div></div> | | 8862 | <a name="fixes.build.header.symlink"></a>21.5.3.3. Symlinks</h4></div></div></div> |
8859 | <p>Pkgsrc does not work reliably if any of | | 8863 | <p>Pkgsrc does not work reliably if any of |
8860 | <code class="varname">LOCALBASE</code>, <code class="varname">VARBASE</code> or | | 8864 | <code class="varname">LOCALBASE</code>, <code class="varname">VARBASE</code> or |
8861 | <code class="varname">WRKDIR</code> contains a symlink. Since 2019Q2, the pkgsrc | | 8865 | <code class="varname">WRKDIR</code> contains a symlink. Since 2019Q2, the pkgsrc |
8862 | bootstrap program prevents installing pkgsrc in symlink-based | | 8866 | bootstrap program prevents installing pkgsrc in symlink-based |
8863 | directories. Existing pkgsrc installations are not checked for symlinks | | 8867 | directories. Existing pkgsrc installations are not checked for symlinks |
8864 | though.</p> | | 8868 | though.</p> |
8865 | <p>The "No such file or directory" error messages are a typical | | 8869 | <p>The "No such file or directory" error messages are a typical |
8866 | symptom of symlinks, and it's quite difficult to find out that this is | | 8870 | symptom of symlinks, and it's quite difficult to find out that this is |
8867 | the actual cause.</p> | | 8871 | the actual cause.</p> |
8868 | </div> | | 8872 | </div> |
8869 | <div class="sect3"> | | 8873 | <div class="sect3"> |
8870 | <div class="titlepage"><div><div><h4 class="title"> | | 8874 | <div class="titlepage"><div><div><h4 class="title"> |
8871 | <a name="fixes.build.header.stale"></a>21.5.3.4. Stale working directories</h4></div></div></div> | | 8875 | <a name="fixes.build.header.stale"></a>21.5.3.4. Stale working directories</h4></div></div></div> |
8872 | <p>When building a hierarchy of packages, it may happen that one | | 8876 | <p>When building a hierarchy of packages, it may happen that one |
8873 | package is built and then pkgsrc is updated. This situation can provoke | | 8877 | package is built and then pkgsrc is updated. This situation can provoke |
8874 | various hard to diagnose build errors. To clean up the situation:</p> | | 8878 | various hard to diagnose build errors. To clean up the situation:</p> |
8875 | <pre class="programlisting"> | | 8879 | <pre class="programlisting"> |
8876 | <code class="prompt">$</code> (cd ../../ && cat mk/bsd.pkg.mk >/dev/null && rm -rf */*/work) | | 8880 | <code class="prompt">$</code> (cd ../../ && cat mk/bsd.pkg.mk >/dev/null && rm -rf */*/work) |
8877 | </pre> | | 8881 | </pre> |
8878 | <p>(The only purpose of the <code class="filename">bsd.pkg.mk</code> is to | | 8882 | <p>(The only purpose of the <code class="filename">bsd.pkg.mk</code> is to |
8879 | prevent running this command in the wrong directory.)</p> | | 8883 | prevent running this command in the wrong directory.)</p> |
8880 | <p>If you have set <code class="varname">WRKOBJDIR</code> in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>, remove | | 8884 | <p>If you have set <code class="varname">WRKOBJDIR</code> in <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>, remove |
8881 | that directory as well.</p> | | 8885 | that directory as well.</p> |
8882 | </div> | | 8886 | </div> |
8883 | <div class="sect3"> | | 8887 | <div class="sect3"> |
8884 | <div class="titlepage"><div><div><h4 class="title"> | | 8888 | <div class="titlepage"><div><div><h4 class="title"> |
8885 | <a name="fixes.build.header.misc"></a>21.5.3.5. Other possible reasons</h4></div></div></div> | | 8889 | <a name="fixes.build.header.misc"></a>21.5.3.5. Other possible reasons</h4></div></div></div> |
8886 | <p>On platforms other than BSD, third-party packages are installed in | | 8890 | <p>On platforms other than BSD, third-party packages are installed in |
8887 | <code class="filename">/usr/include</code>, together with the base system. This | | 8891 | <code class="filename">/usr/include</code>, together with the base system. This |
8888 | means that pkgsrc cannot distinguish between headers provided by the base | | 8892 | means that pkgsrc cannot distinguish between headers provided by the base |
8889 | system (which it needs) and headers from third-party packages (which are | | 8893 | system (which it needs) and headers from third-party packages (which are |
8890 | often included in pkgsrc as well). This can lead to subtle version | | 8894 | often included in pkgsrc as well). This can lead to subtle version |
8891 | mismatches.</p> | | 8895 | mismatches.</p> |
8892 | <p>In pkgsrc installations that have been active for several years, it | | 8896 | <p>In pkgsrc installations that have been active for several years, it |
8893 | may happen that some files are manually deleted. To exclude this unlikely | | 8897 | may happen that some files are manually deleted. To exclude this unlikely |
8894 | reason, run <span class="command"><strong>pkg_admin check</strong></span>.</p> | | 8898 | reason, run <span class="command"><strong>pkg_admin check</strong></span>.</p> |
8895 | <p>It may help to run <span class="command"><strong>pkg_admin rebuild-tree</strong></span> to | | 8899 | <p>It may help to run <span class="command"><strong>pkg_admin rebuild-tree</strong></span> to |
8896 | check/fix dependencies.</p> | | 8900 | check/fix dependencies.</p> |
8897 | <p>If all of the above doesn't help, see <a class="xref" href="#help-user" title="Chapter 2. Getting help">Chapter 2, <i>Getting help</i></a> | | 8901 | <p>If all of the above doesn't help, see <a class="xref" href="#help-user" title="Chapter 2. Getting help">Chapter 2, <i>Getting help</i></a> |
8898 | for contact information. Be prepared to describe what you have tried so | | 8902 | for contact information. Be prepared to describe what you have tried so |
8899 | far and what any error messages were.</p> | | 8903 | far and what any error messages were.</p> |
8900 | </div> | | 8904 | </div> |
8901 | </div> | | 8905 | </div> |
8902 | <div class="sect2"> | | 8906 | <div class="sect2"> |
8903 | <div class="titlepage"><div><div><h3 class="title"> | | 8907 | <div class="titlepage"><div><div><h3 class="title"> |
8904 | <a name="undefined-reference"></a>21.5.4. Undefined reference to <span class="quote">“<span class="quote">...</span>”</span> | | 8908 | <a name="undefined-reference"></a>21.5.4. Undefined reference to <span class="quote">“<span class="quote">...</span>”</span> |
8905 | </h3></div></div></div> | | 8909 | </h3></div></div></div> |
8906 | <p>This error message often means that a package did not | | 8910 | <p>This error message often means that a package did not |
8907 | link to a shared library it needs. The following functions are | | 8911 | link to a shared library it needs. The following functions are |
8908 | known to cause this error message over and over.</p> | | 8912 | known to cause this error message over and over.</p> |
8909 | <div class="informaltable"> | | 8913 | <div class="informaltable"> |
8910 | <a name="undefined-reference-functions"></a><table class="informaltable" border="1"> | | 8914 | <a name="undefined-reference-functions"></a><table class="informaltable" border="1"> |
8911 | <colgroup> | | 8915 | <colgroup> |
8912 | <col> | | 8916 | <col> |
8913 | <col> | | 8917 | <col> |
8914 | <col> | | 8918 | <col> |
8915 | </colgroup> | | 8919 | </colgroup> |
8916 | <thead><tr> | | 8920 | <thead><tr> |
8917 | <th>Function</th> | | 8921 | <th>Function</th> |
8918 | <th>Library</th> | | 8922 | <th>Library</th> |
8919 | <th>Affected platforms</th> | | 8923 | <th>Affected platforms</th> |
8920 | </tr></thead> | | 8924 | </tr></thead> |
8921 | <tbody> | | 8925 | <tbody> |
8922 | <tr> | | 8926 | <tr> |
8923 | <td>accept, bind, connect</td> | | 8927 | <td>accept, bind, connect</td> |
8924 | <td>-lsocket</td> | | 8928 | <td>-lsocket</td> |
8925 | <td>Solaris</td> | | 8929 | <td>Solaris</td> |
8926 | </tr> | | 8930 | </tr> |
8927 | <tr> | | 8931 | <tr> |
8928 | <td>crypt</td> | | 8932 | <td>crypt</td> |
8929 | <td>-lcrypt</td> | | 8933 | <td>-lcrypt</td> |
8930 | <td>DragonFly, NetBSD</td> | | 8934 | <td>DragonFly, NetBSD</td> |
8931 | </tr> | | 8935 | </tr> |
8932 | <tr> | | 8936 | <tr> |
8933 | <td>dlopen, dlsym</td> | | 8937 | <td>dlopen, dlsym</td> |
8934 | <td>-ldl</td> | | 8938 | <td>-ldl</td> |
8935 | <td>Linux</td> | | 8939 | <td>Linux</td> |
8936 | </tr> | | 8940 | </tr> |
8937 | <tr> | | 8941 | <tr> |
8938 | <td>gethost*</td> | | 8942 | <td>gethost*</td> |
8939 | <td>-lnsl</td> | | 8943 | <td>-lnsl</td> |
8940 | <td>Solaris</td> | | 8944 | <td>Solaris</td> |
8941 | </tr> | | 8945 | </tr> |
8942 | <tr> | | 8946 | <tr> |
8943 | <td>inet_aton</td> | | 8947 | <td>inet_aton</td> |
8944 | <td>-lresolv</td> | | 8948 | <td>-lresolv</td> |
8945 | <td>Solaris</td> | | 8949 | <td>Solaris</td> |
8946 | </tr> | | 8950 | </tr> |
8947 | <tr> | | 8951 | <tr> |
8948 | <td>nanosleep, sem_*, timer_*</td> | | 8952 | <td>nanosleep, sem_*, timer_*</td> |
8949 | <td>-lrt</td> | | 8953 | <td>-lrt</td> |
8950 | <td>Solaris</td> | | 8954 | <td>Solaris</td> |
8951 | </tr> | | 8955 | </tr> |
8952 | <tr> | | 8956 | <tr> |
8953 | <td>openpty</td> | | 8957 | <td>openpty</td> |
8954 | <td>-lutil</td> | | 8958 | <td>-lutil</td> |
8955 | <td>Linux</td> | | 8959 | <td>Linux</td> |
8956 | </tr> | | 8960 | </tr> |
8957 | </tbody> | | 8961 | </tbody> |
8958 | </table> | | 8962 | </table> |
8959 | </div> | | 8963 | </div> |
8960 | <p>To fix these linker errors, it is often sufficient to add | | 8964 | <p>To fix these linker errors, it is often sufficient to add |
8961 | <code class="literal">LIBS.<em class="replaceable"><code>OperatingSystem</code></em>+= | | 8965 | <code class="literal">LIBS.<em class="replaceable"><code>OperatingSystem</code></em>+= |
8962 | -l<em class="replaceable"><code>foo</code></em></code> to the package | | 8966 | -l<em class="replaceable"><code>foo</code></em></code> to the package |
8963 | <code class="filename">Makefile</code> and then run <span class="command"><strong>bmake clean; | | 8967 | <code class="filename">Makefile</code> and then run <span class="command"><strong>bmake clean; |
8964 | bmake</strong></span>.</p> | | 8968 | bmake</strong></span>.</p> |
8965 | <div class="sect3"> | | 8969 | <div class="sect3"> |
8966 | <div class="titlepage"><div><div><h4 class="title"> | | 8970 | <div class="titlepage"><div><div><h4 class="title"> |
8967 | <a name="undefined-reference-sunpro"></a>21.5.4.1. The SunPro compiler and inline functions</h4></div></div></div> | | 8971 | <a name="undefined-reference-sunpro"></a>21.5.4.1. The SunPro compiler and inline functions</h4></div></div></div> |
8968 | <p>When you are using the SunPro compiler, there is another | | 8972 | <p>When you are using the SunPro compiler, there is another |
8969 | possibility. That compiler cannot handle the following code:</p> | | 8973 | possibility. That compiler cannot handle the following code:</p> |
8970 | <pre class="programlisting"> | | 8974 | <pre class="programlisting"> |
8971 | extern int extern_func(int); | | 8975 | extern int extern_func(int); |
8972 | | | 8976 | |
8973 | static inline int | | 8977 | static inline int |
8974 | inline_func(int x) | | 8978 | inline_func(int x) |
8975 | { | | 8979 | { |
8976 | return extern_func(x); | | 8980 | return extern_func(x); |
8977 | } | | 8981 | } |
8978 | | | 8982 | |
8979 | int main(void) | | 8983 | int main(void) |
8980 | { | | 8984 | { |
8981 | return 0; | | 8985 | return 0; |
8982 | } | | 8986 | } |
8983 | </pre> | | 8987 | </pre> |
8984 | <p>It generates the code for <code class="function">inline_func</code> even if | | 8988 | <p>It generates the code for <code class="function">inline_func</code> even if |
8985 | that function is never used. This code then refers to | | 8989 | that function is never used. This code then refers to |
8986 | <code class="function">extern_func</code>, which can usually not be resolved. To | | 8990 | <code class="function">extern_func</code>, which can usually not be resolved. To |
8987 | solve this problem you can try to tell the package to disable inlining | | 8991 | solve this problem you can try to tell the package to disable inlining |
8988 | of functions.</p> | | 8992 | of functions.</p> |
8989 | </div> | | 8993 | </div> |
8990 | </div> | | 8994 | </div> |
8991 | <div class="sect2"> | | 8995 | <div class="sect2"> |
8992 | <div class="titlepage"><div><div><h3 class="title"> | | 8996 | <div class="titlepage"><div><div><h3 class="title"> |
8993 | <a name="out-of-memory"></a>21.5.5. Running out of memory</h3></div></div></div> | | 8997 | <a name="out-of-memory"></a>21.5.5. Running out of memory</h3></div></div></div> |
8994 | <p>Sometimes packages fail to build because the compiler runs | | 8998 | <p>Sometimes packages fail to build because the compiler runs |
8995 | into an operating system specific soft limit. With the | | 8999 | into an operating system specific soft limit. With the |
8996 | <code class="varname">UNLIMIT_RESOURCES</code> variable pkgsrc can be told | | 9000 | <code class="varname">UNLIMIT_RESOURCES</code> variable pkgsrc can be told |
8997 | to unlimit the resources. The allowed values are any combination of | | 9001 | to unlimit the resources. The allowed values are any combination of |
8998 | <span class="quote">“<span class="quote">cputime</span>”</span>, | | 9002 | <span class="quote">“<span class="quote">cputime</span>”</span>, |
8999 | <span class="quote">“<span class="quote">datasize</span>”</span>, | | 9003 | <span class="quote">“<span class="quote">datasize</span>”</span>, |
9000 | <span class="quote">“<span class="quote">memorysize</span>”</span>, | | 9004 | <span class="quote">“<span class="quote">memorysize</span>”</span>, |
9001 | <span class="quote">“<span class="quote">stacksize</span>”</span> and | | 9005 | <span class="quote">“<span class="quote">stacksize</span>”</span> and |
9002 | <span class="quote">“<span class="quote">virtualsize</span>”</span>. | | 9006 | <span class="quote">“<span class="quote">virtualsize</span>”</span>. |
9003 | Setting this variable is similar to running the shell builtin | | 9007 | Setting this variable is similar to running the shell builtin |
9004 | <span class="command"><strong>ulimit</strong></span> command to raise the maximum data | | 9008 | <span class="command"><strong>ulimit</strong></span> command to raise the maximum data |
9005 | segment size or maximum stack size of a process, respectively, to | | 9009 | segment size or maximum stack size of a process, respectively, to |
9006 | their hard limits.</p> | | 9010 | their hard limits.</p> |
9007 | </div> | | 9011 | </div> |
9008 | </div> | | 9012 | </div> |
9009 | <div class="sect1"> | | 9013 | <div class="sect1"> |
9010 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 9014 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
9011 | <a name="fixes.install"></a>21.6. The <span class="emphasis"><em>install</em></span> phase</h2></div></div></div> | | 9015 | <a name="fixes.install"></a>21.6. The <span class="emphasis"><em>install</em></span> phase</h2></div></div></div> |
9012 | <div class="sect2"> | | 9016 | <div class="sect2"> |
9013 | <div class="titlepage"><div><div><h3 class="title"> | | 9017 | <div class="titlepage"><div><div><h3 class="title"> |
9014 | <a name="install-scripts"></a>21.6.1. Creating needed directories</h3></div></div></div> | | 9018 | <a name="install-scripts"></a>21.6.1. Creating needed directories</h3></div></div></div> |
9015 | <p>The BSD-compatible <span class="command"><strong>install</strong></span> supplied | | 9019 | <p>The BSD-compatible <span class="command"><strong>install</strong></span> supplied |
9016 | with some operating systems cannot create more than one | | 9020 | with some operating systems cannot create more than one |
9017 | directory at a time. As such, you should call | | 9021 | directory at a time. As such, you should call |
9018 | <code class="literal">${INSTALL_*_DIR}</code> like this:</p> | | 9022 | <code class="literal">${INSTALL_*_DIR}</code> like this:</p> |
9019 | <pre class="programlisting"> | | 9023 | <pre class="programlisting"> |
9020 | ${INSTALL_DATA_DIR} ${PREFIX}/dir1 | | 9024 | ${INSTALL_DATA_DIR} ${PREFIX}/dir1 |
9021 | ${INSTALL_DATA_DIR} ${PREFIX}/dir2 | | 9025 | ${INSTALL_DATA_DIR} ${PREFIX}/dir2 |
9022 | </pre> | | 9026 | </pre> |
9023 | <p>Instead of running the <span class="command"><strong>install</strong></span> commands | | 9027 | <p>Instead of running the <span class="command"><strong>install</strong></span> commands |
9024 | directly, you can also append <span class="quote">“<span class="quote"><code class="literal">dir1 | | 9028 | directly, you can also append <span class="quote">“<span class="quote"><code class="literal">dir1 |
9025 | dir2</code></span>”</span> to the <code class="varname">INSTALLATION_DIRS</code> | | 9029 | dir2</code></span>”</span> to the <code class="varname">INSTALLATION_DIRS</code> |
9026 | variable, which will automatically do the right thing.</p> | | 9030 | variable, which will automatically do the right thing.</p> |
9027 | </div> | | 9031 | </div> |
9028 | <div class="sect2"> | | 9032 | <div class="sect2"> |
9029 | <div class="titlepage"><div><div><h3 class="title"> | | 9033 | <div class="titlepage"><div><div><h3 class="title"> |
9030 | <a name="where-to-install-documentation"></a>21.6.2. Where to install documentation</h3></div></div></div> | | 9034 | <a name="where-to-install-documentation"></a>21.6.2. Where to install documentation</h3></div></div></div> |
9031 | <p>In general, documentation should be installed into | | 9035 | <p>In general, documentation should be installed into |
9032 | <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or | | 9036 | <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or |
9033 | <code class="filename">${PREFIX}/share/doc/${PKGNAME_NOREV}</code> (the latter | | 9037 | <code class="filename">${PREFIX}/share/doc/${PKGNAME_NOREV}</code> (the latter |
9034 | includes the version number of the package).</p> | | 9038 | includes the version number of the package).</p> |
9035 | <p>Many modern packages using GNU autoconf allow to set the | | 9039 | <p>Many modern packages using GNU autoconf allow to set the |
9036 | directory where HTML documentation is installed with the | | 9040 | directory where HTML documentation is installed with the |
9037 | <span class="quote">“<span class="quote">--with-html-dir</span>”</span> option. Sometimes using this flag is | | 9041 | <span class="quote">“<span class="quote">--with-html-dir</span>”</span> option. Sometimes using this flag is |
9038 | needed because otherwise the documentation ends up in | | 9042 | needed because otherwise the documentation ends up in |
9039 | <code class="filename">${PREFIX}/share/doc/html</code> or other places. In | | 9043 | <code class="filename">${PREFIX}/share/doc/html</code> or other places. In |
9040 | pkgsrc, the HTML documentation should go into the package-specific | | 9044 | pkgsrc, the HTML documentation should go into the package-specific |
9041 | directory, just like any other documentation.</p> | | 9045 | directory, just like any other documentation.</p> |
9042 | <p>An exception to the above is that library API documentation | | 9046 | <p>An exception to the above is that library API documentation |
9043 | generated with the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/textproc/gtk-doc/index.html" target="_top"><code class="filename">textproc/gtk-doc</code></a> tools, for use by special | | 9047 | generated with the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/textproc/gtk-doc/index.html" target="_top"><code class="filename">textproc/gtk-doc</code></a> tools, for use by special |
9044 | browsers (devhelp) should be left at their default location, which | | 9048 | browsers (devhelp) should be left at their default location, which |
9045 | is <code class="filename">${PREFIX}/share/gtk-doc</code>. Such | | 9049 | is <code class="filename">${PREFIX}/share/gtk-doc</code>. Such |
9046 | documentation can be recognized from files ending in | | 9050 | documentation can be recognized from files ending in |
9047 | <code class="filename">.devhelp</code> or <code class="filename">.devhelp2</code>. | | 9051 | <code class="filename">.devhelp</code> or <code class="filename">.devhelp2</code>. |
9048 | (It is also acceptable to install such files in | | 9052 | (It is also acceptable to install such files in |
9049 | <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or | | 9053 | <code class="filename">${PREFIX}/share/doc/${PKGBASE}</code> or |
9050 | <code class="filename">${PREFIX}/share/doc/${PKGNAME}</code>; the | | 9054 | <code class="filename">${PREFIX}/share/doc/${PKGNAME}</code>; the |
9051 | <code class="filename">.devhelp*</code> file must be directly in that | | 9055 | <code class="filename">.devhelp*</code> file must be directly in that |
9052 | directory then, no additional subdirectory level is allowed in | | 9056 | directory then, no additional subdirectory level is allowed in |
9053 | this case. This is usually achieved by using | | 9057 | this case. This is usually achieved by using |
9054 | <span class="quote">“<span class="quote">--with-html-dir=${PREFIX}/share/doc</span>”</span>. | | 9058 | <span class="quote">“<span class="quote">--with-html-dir=${PREFIX}/share/doc</span>”</span>. |
9055 | <code class="filename">${PREFIX}/share/gtk-doc</code> is preferred | | 9059 | <code class="filename">${PREFIX}/share/gtk-doc</code> is preferred |
9056 | though.)</p> | | 9060 | though.)</p> |
9057 | </div> | | 9061 | </div> |
9058 | <div class="sect2"> | | 9062 | <div class="sect2"> |
9059 | <div class="titlepage"><div><div><h3 class="title"> | | 9063 | <div class="titlepage"><div><div><h3 class="title"> |
9060 | <a name="installing-score-files"></a>21.6.3. Installing highscore files</h3></div></div></div> | | 9064 | <a name="installing-score-files"></a>21.6.3. Installing highscore files</h3></div></div></div> |
9061 | <p>Certain packages, most of them in the games category, install | | 9065 | <p>Certain packages, most of them in the games category, install |
9062 | a score file that allows all users on the system to record their | | 9066 | a score file that allows all users on the system to record their |
9063 | highscores. In order for this to work, the binaries need to be | | 9067 | highscores. In order for this to work, the binaries need to be |
9064 | installed setgid and the score files owned by the appropriate | | 9068 | installed setgid and the score files owned by the appropriate |
9065 | group and/or owner (traditionally the "games" user/group). Set | | 9069 | group and/or owner (traditionally the "games" user/group). Set |
9066 | <code class="varname">USE_GAMESGROUP</code> to yes to support this. The | | 9070 | <code class="varname">USE_GAMESGROUP</code> to yes to support this. The |
9067 | following variables, documented in more detail in | | 9071 | following variables, documented in more detail in |
9068 | <code class="filename">mk/defaults/mk.conf</code>, control this | | 9072 | <code class="filename">mk/defaults/mk.conf</code>, control this |
9069 | behaviour: <code class="varname">GAMEDATAMODE</code>, | | 9073 | behaviour: <code class="varname">GAMEDATAMODE</code>, |
9070 | <code class="varname">GAMEDIRMODE</code>, <code class="varname">GAMES_GROUP</code>, | | 9074 | <code class="varname">GAMEDIRMODE</code>, <code class="varname">GAMES_GROUP</code>, |
9071 | <code class="varname">GAMEMODE</code>, <code class="varname">GAME_USER</code>. | | 9075 | <code class="varname">GAMEMODE</code>, <code class="varname">GAME_USER</code>. |
9072 | Other useful variables are: <code class="varname">GAMEDIR_PERMS</code>, | | 9076 | Other useful variables are: <code class="varname">GAMEDIR_PERMS</code>, |
9073 | <code class="varname">GAMEDATA_PERMS</code> and | | 9077 | <code class="varname">GAMEDATA_PERMS</code> and |
9074 | <code class="varname">SETGID_GAMES_PERMS</code>.</p> | | 9078 | <code class="varname">SETGID_GAMES_PERMS</code>.</p> |
9075 | <p>An example that illustrates some of the variables described above is | | 9079 | <p>An example that illustrates some of the variables described above is |
9076 | <code class="filename">games/moon-buggy</code>. <code class="varname">OWN_DIRS_PERMS</code> is | | 9080 | <code class="filename">games/moon-buggy</code>. <code class="varname">OWN_DIRS_PERMS</code> is |
9077 | used to properly set directory permissions of the directory where the | | 9081 | used to properly set directory permissions of the directory where the |
9078 | scorefile is saved, <code class="varname">REQD_FILES_PERMS</code> is used to create a | | 9082 | scorefile is saved, <code class="varname">REQD_FILES_PERMS</code> is used to create a |
9079 | dummy scorefile (<code class="filename">mbscore</code>) with the proper permissions | | 9083 | dummy scorefile (<code class="filename">mbscore</code>) with the proper permissions |
9080 | and <code class="varname">SPECIAL_PERMS</code> is used to install setgid the game | | 9084 | and <code class="varname">SPECIAL_PERMS</code> is used to install setgid the game |
9081 | binary:</p> | | 9085 | binary:</p> |
9082 | <pre class="programlisting"> | | 9086 | <pre class="programlisting"> |
9083 | USE_GAMESGROUP= yes | | 9087 | USE_GAMESGROUP= yes |
9084 | | | 9088 | |
9085 | BUILD_DEFS+= VARBASE | | 9089 | BUILD_DEFS+= VARBASE |
9086 | | | 9090 | |
9087 | OWN_DIRS_PERMS+= ${VARBASE}/games/moon-buggy ${GAMEDIR_PERMS} | | 9091 | OWN_DIRS_PERMS+= ${VARBASE}/games/moon-buggy ${GAMEDIR_PERMS} |
9088 | REQD_FILES_PERMS+= /dev/null ${VARBASE}/games/moon-buggy/mbscore ${GAMEDATA_PERMS} | | 9092 | REQD_FILES_PERMS+= /dev/null ${VARBASE}/games/moon-buggy/mbscore ${GAMEDATA_PERMS} |
9089 | SPECIAL_PERMS+= ${PREFIX}/bin/moon-buggy ${SETGID_GAMES_PERMS} | | 9093 | SPECIAL_PERMS+= ${PREFIX}/bin/moon-buggy ${SETGID_GAMES_PERMS} |
9090 | </pre> | | 9094 | </pre> |
9091 | <p>Various <code class="varname">INSTALL_*</code> variables are also available: | | 9095 | <p>Various <code class="varname">INSTALL_*</code> variables are also available: |
9092 | <code class="varname">INSTALL_GAME</code> to install setgid game binaries, | | 9096 | <code class="varname">INSTALL_GAME</code> to install setgid game binaries, |
9093 | <code class="varname">INSTALL_GAME_DIR</code> to install game directories that are | | 9097 | <code class="varname">INSTALL_GAME_DIR</code> to install game directories that are |
9094 | needed to be accessed by setgid games and | | 9098 | needed to be accessed by setgid games and |
9095 | <code class="varname">INSTALL_GAME_DATA</code> to install scorefiles.</p> | | 9099 | <code class="varname">INSTALL_GAME_DATA</code> to install scorefiles.</p> |
9096 | <p>A package should therefore never hard code file ownership or | | 9100 | <p>A package should therefore never hard code file ownership or |
9097 | access permissions but rely on <code class="varname">*_PERMS</code> as described above | | 9101 | access permissions but rely on <code class="varname">*_PERMS</code> as described above |
9098 | or alternatively on <code class="varname">INSTALL_GAME</code>, | | 9102 | or alternatively on <code class="varname">INSTALL_GAME</code>, |
9099 | <code class="varname">INSTALL_GAME_DATA</code> and | | 9103 | <code class="varname">INSTALL_GAME_DATA</code> and |
9100 | <code class="varname">INSTALL_GAME_DIR</code> to set these correctly.</p> | | 9104 | <code class="varname">INSTALL_GAME_DIR</code> to set these correctly.</p> |
9101 | </div> | | 9105 | </div> |
9102 | <div class="sect2"> | | 9106 | <div class="sect2"> |
9103 | <div class="titlepage"><div><div><h3 class="title"> | | 9107 | <div class="titlepage"><div><div><h3 class="title"> |
9104 | <a name="destdir-support"></a>21.6.4. Adding DESTDIR support to packages</h3></div></div></div> | | 9108 | <a name="destdir-support"></a>21.6.4. Adding DESTDIR support to packages</h3></div></div></div> |
9105 | <p><code class="varname">DESTDIR</code> support means that a package | | 9109 | <p><code class="varname">DESTDIR</code> support means that a package |
9106 | installs into a staging directory, not the final location of the | | 9110 | installs into a staging directory, not the final location of the |
9107 | files. Then a binary package is created which can be used for | | 9111 | files. Then a binary package is created which can be used for |
9108 | installation as usual. There are two ways: Either the package must | | 9112 | installation as usual. There are two ways: Either the package must |
9109 | install as root (<span class="quote">“<span class="quote">destdir</span>”</span>) or the package can | | 9113 | install as root (<span class="quote">“<span class="quote">destdir</span>”</span>) or the package can |
9110 | install as non-root user (<span class="quote">“<span class="quote">user-destdir</span>”</span>).</p> | | 9114 | install as non-root user (<span class="quote">“<span class="quote">user-destdir</span>”</span>).</p> |
9111 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 9115 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
9112 | <li class="listitem"><p><code class="varname">PKG_DESTDIR_SUPPORT</code> has to be | | 9116 | <li class="listitem"><p><code class="varname">PKG_DESTDIR_SUPPORT</code> has to be |
9113 | set to <span class="quote">“<span class="quote">destdir</span>”</span> or <span class="quote">“<span class="quote">user-destdir</span>”</span>. | | 9117 | set to <span class="quote">“<span class="quote">destdir</span>”</span> or <span class="quote">“<span class="quote">user-destdir</span>”</span>. |
9114 | By default <code class="varname">PKG_DESTDIR_SUPPORT</code> | | 9118 | By default <code class="varname">PKG_DESTDIR_SUPPORT</code> |
9115 | is set to <span class="quote">“<span class="quote">user-destdir</span>”</span> to help catching more | | 9119 | is set to <span class="quote">“<span class="quote">user-destdir</span>”</span> to help catching more |
9116 | potential packaging problems. If bsd.prefs.mk is included in the Makefile, | | 9120 | potential packaging problems. If bsd.prefs.mk is included in the Makefile, |
9117 | <code class="varname">PKG_DESTDIR_SUPPORT</code> needs to be set before | | 9121 | <code class="varname">PKG_DESTDIR_SUPPORT</code> needs to be set before |
9118 | the inclusion.</p></li> | | 9122 | the inclusion.</p></li> |
9119 | <li class="listitem"><p>All installation operations have to be prefixed with | | 9123 | <li class="listitem"><p>All installation operations have to be prefixed with |
9120 | <code class="filename">${DESTDIR}</code>.</p></li> | | 9124 | <code class="filename">${DESTDIR}</code>.</p></li> |
9121 | <li class="listitem"><p>automake gets this DESTDIR mostly right | | 9125 | <li class="listitem"><p>automake gets this DESTDIR mostly right |
9122 | automatically. Many manual rules and pre/post-install often are | | 9126 | automatically. Many manual rules and pre/post-install often are |
9123 | incorrect; fix them.</p></li> | | 9127 | incorrect; fix them.</p></li> |
9124 | <li class="listitem"><p>If files are installed with special owner/group | | 9128 | <li class="listitem"><p>If files are installed with special owner/group |
9125 | use <code class="varname">SPECIAL_PERMS</code>.</p></li> | | 9129 | use <code class="varname">SPECIAL_PERMS</code>.</p></li> |
9126 | <li class="listitem"><p>In general, packages should support | | 9130 | <li class="listitem"><p>In general, packages should support |
9127 | <code class="varname">UNPRIVILEGED</code> to be able to use | | 9131 | <code class="varname">UNPRIVILEGED</code> to be able to use |
9128 | DESTDIR.</p></li> | | 9132 | DESTDIR.</p></li> |
9129 | </ul></div> | | 9133 | </ul></div> |
9130 | </div> | | 9134 | </div> |
9131 | <div class="sect2"> | | 9135 | <div class="sect2"> |
9132 | <div class="titlepage"><div><div><h3 class="title"> | | 9136 | <div class="titlepage"><div><div><h3 class="title"> |
9133 | <a name="hardcoded-paths"></a>21.6.5. Packages with hardcoded paths to other interpreters</h3></div></div></div> | | 9137 | <a name="hardcoded-paths"></a>21.6.5. Packages with hardcoded paths to other interpreters</h3></div></div></div> |
9134 | <p>Your package may also contain scripts with hardcoded paths to | | 9138 | <p>Your package may also contain scripts with hardcoded paths to |
9135 | other interpreters besides (or as well as) Perl. To correct the | | 9139 | other interpreters besides (or as well as) Perl. To correct the |
9136 | full pathname to the script interpreter, you need to set the | | 9140 | full pathname to the script interpreter, you need to set the |
9137 | following definitions in your <code class="filename">Makefile</code> (we | | 9141 | following definitions in your <code class="filename">Makefile</code> (we |
9138 | shall use <span class="command"><strong>tclsh</strong></span> in this example):</p> | | 9142 | shall use <span class="command"><strong>tclsh</strong></span> in this example):</p> |
9139 | <pre class="programlisting"> | | 9143 | <pre class="programlisting"> |
9140 | REPLACE_INTERPRETER+= tcl | | 9144 | REPLACE_INTERPRETER+= tcl |
9141 | REPLACE.tcl.old= .*/bin/tclsh | | 9145 | REPLACE.tcl.old= .*/bin/tclsh |
9142 | REPLACE.tcl.new= ${PREFIX}/bin/tclsh | | 9146 | REPLACE.tcl.new= ${PREFIX}/bin/tclsh |
9143 | REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed, | | 9147 | REPLACE_FILES.tcl= # list of tcl scripts which need to be fixed, |
9144 | # relative to ${WRKSRC}, just as in REPLACE_PERL | | 9148 | # relative to ${WRKSRC}, just as in REPLACE_PERL |
9145 | </pre> | | 9149 | </pre> |
9146 | </div> | | 9150 | </div> |
9147 | <div class="sect2"> | | 9151 | <div class="sect2"> |
9148 | <div class="titlepage"><div><div><h3 class="title"> | | 9152 | <div class="titlepage"><div><div><h3 class="title"> |
9149 | <a name="perl-modules"></a>21.6.6. Packages installing Perl modules</h3></div></div></div> | | 9153 | <a name="perl-modules"></a>21.6.6. Packages installing Perl modules</h3></div></div></div> |
9150 | <p>Makefiles of packages providing perl5 modules should include | | 9154 | <p>Makefiles of packages providing perl5 modules should include |
9151 | the Makefile fragment | | 9155 | the Makefile fragment |
9152 | <code class="filename">../../lang/perl5/module.mk</code>. It provides a | | 9156 | <code class="filename">../../lang/perl5/module.mk</code>. It provides a |
9153 | <span class="command"><strong>do-configure</strong></span> target for the standard perl | | 9157 | <span class="command"><strong>do-configure</strong></span> target for the standard perl |
9154 | configuration for such modules as well as various hooks to tune | | 9158 | configuration for such modules as well as various hooks to tune |
9155 | this configuration. See comments in this file for | | 9159 | this configuration. See comments in this file for |
9156 | details.</p> | | 9160 | details.</p> |
9157 | <p>Perl5 modules will install into different places depending | | 9161 | <p>Perl5 modules will install into different places depending |
9158 | on the version of perl used during the build process. To | | 9162 | on the version of perl used during the build process. To |
9159 | address this, pkgsrc will append lines to the | | 9163 | address this, pkgsrc will append lines to the |
9160 | <code class="filename">PLIST</code> corresponding to the files listed in | | 9164 | <code class="filename">PLIST</code> corresponding to the files listed in |
9161 | the installed <code class="filename">.packlist</code> file generated by | | 9165 | the installed <code class="filename">.packlist</code> file generated by |
9162 | most perl5 modules. This is invoked by defining | | 9166 | most perl5 modules. This is invoked by defining |
9163 | <code class="varname">PERL5_PACKLIST</code> to a space-separated list of | | 9167 | <code class="varname">PERL5_PACKLIST</code> to a space-separated list of |
9164 | packlist files relative to <code class="varname">PERL5_PACKLIST_DIR</code> | | 9168 | packlist files relative to <code class="varname">PERL5_PACKLIST_DIR</code> |
9165 | (<code class="varname">PERL5_INSTALLVENDORARCH</code> by default), | | 9169 | (<code class="varname">PERL5_INSTALLVENDORARCH</code> by default), |
9166 | e.g.:</p> | | 9170 | e.g.:</p> |
9167 | <pre class="programlisting"> | | 9171 | <pre class="programlisting"> |
9168 | PERL5_PACKLIST= auto/Pg/.packlist | | 9172 | PERL5_PACKLIST= auto/Pg/.packlist |
9169 | </pre> | | 9173 | </pre> |
9170 | <p>The perl5 config variables | | 9174 | <p>The perl5 config variables |
9171 | <code class="varname">installarchlib</code>, | | 9175 | <code class="varname">installarchlib</code>, |
9172 | <code class="varname">installscript</code>, | | 9176 | <code class="varname">installscript</code>, |
9173 | <code class="varname">installvendorbin</code>, | | 9177 | <code class="varname">installvendorbin</code>, |
9174 | <code class="varname">installvendorscript</code>, | | 9178 | <code class="varname">installvendorscript</code>, |
9175 | <code class="varname">installvendorarch</code>, | | 9179 | <code class="varname">installvendorarch</code>, |
9176 | <code class="varname">installvendorlib</code>, | | 9180 | <code class="varname">installvendorlib</code>, |
9177 | <code class="varname">installvendorman1dir</code>, and | | 9181 | <code class="varname">installvendorman1dir</code>, and |
9178 | <code class="varname">installvendorman3dir</code> represent those | | 9182 | <code class="varname">installvendorman3dir</code> represent those |
9179 | locations in which components of perl5 modules may be installed, | | 9183 | locations in which components of perl5 modules may be installed, |
9180 | provided as variable with uppercase and prefixed with | | 9184 | provided as variable with uppercase and prefixed with |
9181 | <code class="varname">PERL5_</code>, e.g. <code class="varname">PERL5_INSTALLARCHLIB</code> | | 9185 | <code class="varname">PERL5_</code>, e.g. <code class="varname">PERL5_INSTALLARCHLIB</code> |
9182 | and may be used by perl5 packages that don't have a packlist. | | 9186 | and may be used by perl5 packages that don't have a packlist. |
9183 | These variables are also substituted for in the | | 9187 | These variables are also substituted for in the |
9184 | <code class="filename">PLIST</code> as uppercase prefixed with | | 9188 | <code class="filename">PLIST</code> as uppercase prefixed with |
9185 | <code class="varname">PERL5_SUB_</code>.</p> | | 9189 | <code class="varname">PERL5_SUB_</code>.</p> |
9186 | </div> | | 9190 | </div> |
9187 | <div class="sect2"> | | 9191 | <div class="sect2"> |
9188 | <div class="titlepage"><div><div><h3 class="title"> | | 9192 | <div class="titlepage"><div><div><h3 class="title"> |
9189 | <a name="faq.info-files"></a>21.6.7. Packages installing info files</h3></div></div></div> | | 9193 | <a name="faq.info-files"></a>21.6.7. Packages installing info files</h3></div></div></div> |
9190 | <p>Some packages install info files or use the | | 9194 | <p>Some packages install info files or use the |
9191 | <span class="quote">“<span class="quote">makeinfo</span>”</span> or <span class="quote">“<span class="quote">install-info</span>”</span> | | 9195 | <span class="quote">“<span class="quote">makeinfo</span>”</span> or <span class="quote">“<span class="quote">install-info</span>”</span> |
9192 | commands. <code class="varname">INFO_FILES</code> should be defined in | | 9196 | commands. <code class="varname">INFO_FILES</code> should be defined in |
9193 | the package Makefile so that <code class="filename">INSTALL</code> and | | 9197 | the package Makefile so that <code class="filename">INSTALL</code> and |
9194 | <code class="filename">DEINSTALL</code> scripts will be generated to | | 9198 | <code class="filename">DEINSTALL</code> scripts will be generated to |
9195 | handle registration of the info files in the Info directory | | 9199 | handle registration of the info files in the Info directory |
9196 | file. The <span class="quote">“<span class="quote">install-info</span>”</span> command used for the info | | 9200 | file. The <span class="quote">“<span class="quote">install-info</span>”</span> command used for the info |
9197 | files registration is either provided by the system, or by a | | 9201 | files registration is either provided by the system, or by a |
9198 | special purpose package automatically added as dependency if | | 9202 | special purpose package automatically added as dependency if |
9199 | needed.</p> | | 9203 | needed.</p> |
9200 | <p><code class="varname">PKGINFODIR</code> is the directory under | | 9204 | <p><code class="varname">PKGINFODIR</code> is the directory under |
9201 | <code class="filename">${PREFIX}</code> where info files are primarily | | 9205 | <code class="filename">${PREFIX}</code> where info files are primarily |
9202 | located. <code class="varname">PKGINFODIR</code> defaults to | | 9206 | located. <code class="varname">PKGINFODIR</code> defaults to |
9203 | <span class="quote">“<span class="quote">info</span>”</span> and can be overridden by the user.</p> | | 9207 | <span class="quote">“<span class="quote">info</span>”</span> and can be overridden by the user.</p> |
9204 | <p>The info files for the package should be listed in the | | 9208 | <p>The info files for the package should be listed in the |
9205 | package <code class="filename">PLIST</code>; however any split info files | | 9209 | package <code class="filename">PLIST</code>; however any split info files |
9206 | need not be listed.</p> | | 9210 | need not be listed.</p> |
9207 | <p>A package which needs the <span class="quote">“<span class="quote">makeinfo</span>”</span> command | | 9211 | <p>A package which needs the <span class="quote">“<span class="quote">makeinfo</span>”</span> command |
9208 | at build time must add <span class="quote">“<span class="quote">makeinfo</span>”</span> to | | 9212 | at build time must add <span class="quote">“<span class="quote">makeinfo</span>”</span> to |
9209 | <code class="varname">USE_TOOLS</code> in its Makefile. If a minimum | | 9213 | <code class="varname">USE_TOOLS</code> in its Makefile. If a minimum |
9210 | version of the <span class="quote">“<span class="quote">makeinfo</span>”</span> command is needed it | | 9214 | version of the <span class="quote">“<span class="quote">makeinfo</span>”</span> command is needed it |
9211 | should be noted with the <code class="varname">TEXINFO_REQD</code> | | 9215 | should be noted with the <code class="varname">TEXINFO_REQD</code> |
9212 | variable in the package <code class="filename">Makefile</code>. By | | 9216 | variable in the package <code class="filename">Makefile</code>. By |
9213 | default, a minimum version of 3.12 is required. If the system | | 9217 | default, a minimum version of 3.12 is required. If the system |
9214 | does not provide a <span class="command"><strong>makeinfo</strong></span> command or if it | | 9218 | does not provide a <span class="command"><strong>makeinfo</strong></span> command or if it |
9215 | does not match the required minimum, a build dependency on the | | 9219 | does not match the required minimum, a build dependency on the |
9216 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/devel/gtexinfo/index.html" target="_top"><code class="filename">devel/gtexinfo</code></a> package will | | 9220 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/devel/gtexinfo/index.html" target="_top"><code class="filename">devel/gtexinfo</code></a> package will |
9217 | be added automatically.</p> | | 9221 | be added automatically.</p> |
9218 | <p>The build and installation process of the software provided | | 9222 | <p>The build and installation process of the software provided |
9219 | by the package should not use the | | 9223 | by the package should not use the |
9220 | <span class="command"><strong>install-info</strong></span> command as the registration of | | 9224 | <span class="command"><strong>install-info</strong></span> command as the registration of |
9221 | info files is the task of the package | | 9225 | info files is the task of the package |
9222 | <code class="filename">INSTALL</code> script, and it must use the | | 9226 | <code class="filename">INSTALL</code> script, and it must use the |
9223 | appropriate <span class="command"><strong>makeinfo</strong></span> command.</p> | | 9227 | appropriate <span class="command"><strong>makeinfo</strong></span> command.</p> |
9224 | <p>To achieve this goal, the pkgsrc infrastructure creates | | 9228 | <p>To achieve this goal, the pkgsrc infrastructure creates |
9225 | overriding scripts for the <span class="command"><strong>install-info</strong></span> and | | 9229 | overriding scripts for the <span class="command"><strong>install-info</strong></span> and |
9226 | <span class="command"><strong>makeinfo</strong></span> commands in a directory listed early | | 9230 | <span class="command"><strong>makeinfo</strong></span> commands in a directory listed early |
9227 | in <code class="varname">PATH</code>.</p> | | 9231 | in <code class="varname">PATH</code>.</p> |
9228 | <p>The script overriding <span class="command"><strong>install-info</strong></span> has | | 9232 | <p>The script overriding <span class="command"><strong>install-info</strong></span> has |
9229 | no effect except the logging of a message. The script overriding | | 9233 | no effect except the logging of a message. The script overriding |
9230 | <span class="command"><strong>makeinfo</strong></span> logs a message and according to the | | 9234 | <span class="command"><strong>makeinfo</strong></span> logs a message and according to the |
9231 | value of <code class="varname">TEXINFO_REQD</code> either runs the appropriate | | 9235 | value of <code class="varname">TEXINFO_REQD</code> either runs the appropriate |
9232 | <span class="command"><strong>makeinfo</strong></span> command or exit on error.</p> | | 9236 | <span class="command"><strong>makeinfo</strong></span> command or exit on error.</p> |
9233 | </div> | | 9237 | </div> |
9234 | <div class="sect2"> | | 9238 | <div class="sect2"> |
9235 | <div class="titlepage"><div><div><h3 class="title"> | | 9239 | <div class="titlepage"><div><div><h3 class="title"> |
9236 | <a name="manpages"></a>21.6.8. Packages installing man pages</h3></div></div></div> | | 9240 | <a name="manpages"></a>21.6.8. Packages installing man pages</h3></div></div></div> |
9237 | <p>All packages that install manual pages should install them | | 9241 | <p>All packages that install manual pages should install them |
9238 | into the same directory, so that there is one common place to look | | 9242 | into the same directory, so that there is one common place to look |
9239 | for them. In pkgsrc, this place is | | 9243 | for them. In pkgsrc, this place is |
9240 | <code class="literal">${PREFIX}/${PKGMANDIR}</code>, and this expression | | 9244 | <code class="literal">${PREFIX}/${PKGMANDIR}</code>, and this expression |
9241 | should be used in packages. The default for | | 9245 | should be used in packages. The default for |
9242 | <code class="varname">PKGMANDIR</code> is | | 9246 | <code class="varname">PKGMANDIR</code> is |
9243 | <span class="quote">“<span class="quote"><code class="filename">man</code></span>”</span>. Another often-used value | | 9247 | <span class="quote">“<span class="quote"><code class="filename">man</code></span>”</span>. Another often-used value |
9244 | is <span class="quote">“<span class="quote"><code class="filename">share/man</code></span>”</span>.</p> | | 9248 | is <span class="quote">“<span class="quote"><code class="filename">share/man</code></span>”</span>.</p> |
9245 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> | | 9249 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
9246 | <h3 class="title">Note</h3> | | 9250 | <h3 class="title">Note</h3> |
9247 | <p>The support for a custom <code class="varname">PKGMANDIR</code> | | 9251 | <p>The support for a custom <code class="varname">PKGMANDIR</code> |
9248 | is far from complete.</p> | | 9252 | is far from complete.</p> |
9249 | </div> | | 9253 | </div> |
9250 | <p>The <code class="filename">PLIST</code> files can just use | | 9254 | <p>The <code class="filename">PLIST</code> files can just use |
9251 | <code class="filename">man/</code> as the top level directory for the man | | 9255 | <code class="filename">man/</code> as the top level directory for the man |
9252 | page file entries, and the pkgsrc framework will convert as | | 9256 | page file entries, and the pkgsrc framework will convert as |
9253 | needed. In all other places, the correct | | 9257 | needed. In all other places, the correct |
9254 | <code class="varname">PKGMANDIR</code> must be used.</p> | | 9258 | <code class="varname">PKGMANDIR</code> must be used.</p> |
9255 | <p>Packages that are | | 9259 | <p>Packages that are |
9256 | configured with <code class="varname">GNU_CONFIGURE</code> set as | | 9260 | configured with <code class="varname">GNU_CONFIGURE</code> set as |
9257 | <span class="quote">“<span class="quote">yes</span>”</span>, by default will use the | | 9261 | <span class="quote">“<span class="quote">yes</span>”</span>, by default will use the |
9258 | <code class="filename">./configure</code> | | 9262 | <code class="filename">./configure</code> |
9259 | --mandir switch to set where the man pages should be installed. | | 9263 | --mandir switch to set where the man pages should be installed. |
9260 | The path is <code class="varname">GNU_CONFIGURE_MANDIR</code> which defaults | | 9264 | The path is <code class="varname">GNU_CONFIGURE_MANDIR</code> which defaults |
9261 | to <code class="varname">${PREFIX}/${PKGMANDIR}</code>.</p> | | 9265 | to <code class="varname">${PREFIX}/${PKGMANDIR}</code>.</p> |
9262 | <p>Packages that use <code class="varname">GNU_CONFIGURE</code> but do not | | 9266 | <p>Packages that use <code class="varname">GNU_CONFIGURE</code> but do not |
9263 | use --mandir, can set <code class="varname">CONFIGURE_HAS_MANDIR</code> | | 9267 | use --mandir, can set <code class="varname">CONFIGURE_HAS_MANDIR</code> |
9264 | to <span class="quote">“<span class="quote">no</span>”</span>. | | 9268 | to <span class="quote">“<span class="quote">no</span>”</span>. |
9265 | Or if the <code class="filename">./configure</code> script uses | | 9269 | Or if the <code class="filename">./configure</code> script uses |
9266 | a non-standard use of --mandir, you can set | | 9270 | a non-standard use of --mandir, you can set |
9267 | <code class="varname">GNU_CONFIGURE_MANDIR</code> as needed.</p> | | 9271 | <code class="varname">GNU_CONFIGURE_MANDIR</code> as needed.</p> |
9268 | <p>See <a class="xref" href="#manpage-compression" title="19.5. Man page compression">Section 19.5, “Man page compression”</a> for | | 9272 | <p>See <a class="xref" href="#manpage-compression" title="19.5. Man page compression">Section 19.5, “Man page compression”</a> for |
9269 | information on installation of compressed manual pages.</p> | | 9273 | information on installation of compressed manual pages.</p> |
9270 | </div> | | 9274 | </div> |
9271 | <div class="sect2"> | | 9275 | <div class="sect2"> |
9272 | <div class="titlepage"><div><div><h3 class="title"> | | 9276 | <div class="titlepage"><div><div><h3 class="title"> |
9273 | <a name="x11-fonts"></a>21.6.9. Packages installing X11 fonts</h3></div></div></div> | | 9277 | <a name="x11-fonts"></a>21.6.9. Packages installing X11 fonts</h3></div></div></div> |
9274 | <p>If a package installs font files, you will need to rebuild | | 9278 | <p>If a package installs font files, you will need to rebuild |
9275 | the fonts database in the directory where they get installed at | | 9279 | the fonts database in the directory where they get installed at |
9276 | installation and deinstallation time. This can be automatically | | 9280 | installation and deinstallation time. This can be automatically |
9277 | done by using the pkginstall framework.</p> | | 9281 | done by using the pkginstall framework.</p> |
9278 | <p>You can list the directories where fonts are installed in the | | 9282 | <p>You can list the directories where fonts are installed in the |
9279 | <code class="varname">FONTS_DIRS.<em class="replaceable"><code>type</code></em></code> | | 9283 | <code class="varname">FONTS_DIRS.<em class="replaceable"><code>type</code></em></code> |
9280 | variables, where <em class="replaceable"><code>type</code></em> can be one of | | 9284 | variables, where <em class="replaceable"><code>type</code></em> can be one of |
9281 | <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>. | | 9285 | <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>. |
9282 | Also make sure that the database file | | 9286 | Also make sure that the database file |
9283 | <code class="filename">fonts.dir</code> is not listed in the PLIST.</p> | | 9287 | <code class="filename">fonts.dir</code> is not listed in the PLIST.</p> |
9284 | <p>Note that you should not create new directories for fonts; | | 9288 | <p>Note that you should not create new directories for fonts; |
9285 | instead use the standard ones to avoid that the user needs to | | 9289 | instead use the standard ones to avoid that the user needs to |
9286 | manually configure his X server to find them.</p> | | 9290 | manually configure his X server to find them.</p> |
9287 | </div> | | 9291 | </div> |
9288 | <div class="sect2"> | | 9292 | <div class="sect2"> |
9289 | <div class="titlepage"><div><div><h3 class="title"> | | 9293 | <div class="titlepage"><div><div><h3 class="title"> |
9290 | <a name="sgml-xml-data"></a>21.6.10. Packages installing SGML or XML data</h3></div></div></div> | | 9294 | <a name="sgml-xml-data"></a>21.6.10. Packages installing SGML or XML data</h3></div></div></div> |
9291 | <p>If a package installs SGML or XML data files that need to be | | 9295 | <p>If a package installs SGML or XML data files that need to be |
9292 | registered in system-wide catalogs (like DTDs, sub-catalogs, | | 9296 | registered in system-wide catalogs (like DTDs, sub-catalogs, |
9293 | etc.), you need to take some extra steps:</p> | | 9297 | etc.), you need to take some extra steps:</p> |
9294 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 9298 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
9295 | <li class="listitem"><p>Include | | 9299 | <li class="listitem"><p>Include |
9296 | <code class="filename">../../textproc/xmlcatmgr/catalogs.mk</code> in | | 9300 | <code class="filename">../../textproc/xmlcatmgr/catalogs.mk</code> in |
9297 | your <code class="filename">Makefile</code>, which takes care of | | 9301 | your <code class="filename">Makefile</code>, which takes care of |
9298 | registering those files in system-wide catalogs at | | 9302 | registering those files in system-wide catalogs at |
9299 | installation and deinstallation time.</p></li> | | 9303 | installation and deinstallation time.</p></li> |
9300 | <li class="listitem"><p>Set <code class="varname">SGML_CATALOGS</code> to the full path of | | 9304 | <li class="listitem"><p>Set <code class="varname">SGML_CATALOGS</code> to the full path of |
9301 | any SGML catalogs installed by the package.</p></li> | | 9305 | any SGML catalogs installed by the package.</p></li> |
9302 | <li class="listitem"><p>Set <code class="varname">XML_CATALOGS</code> to the full path of | | 9306 | <li class="listitem"><p>Set <code class="varname">XML_CATALOGS</code> to the full path of |
9303 | any XML catalogs installed by the package.</p></li> | | 9307 | any XML catalogs installed by the package.</p></li> |
9304 | <li class="listitem"><p>Set <code class="varname">SGML_ENTRIES</code> to individual entries | | 9308 | <li class="listitem"><p>Set <code class="varname">SGML_ENTRIES</code> to individual entries |
9305 | to be added to the SGML catalog. These come in groups of | | 9309 | to be added to the SGML catalog. These come in groups of |
9306 | three strings; see xmlcatmgr(1) for more information | | 9310 | three strings; see xmlcatmgr(1) for more information |
9307 | (specifically, arguments recognized by the 'add' action). | | 9311 | (specifically, arguments recognized by the 'add' action). |
9308 | Note that you will normally not use this variable.</p></li> | | 9312 | Note that you will normally not use this variable.</p></li> |
9309 | <li class="listitem"><p>Set <code class="varname">XML_ENTRIES</code> to individual entries | | 9313 | <li class="listitem"><p>Set <code class="varname">XML_ENTRIES</code> to individual entries |
9310 | to be added to the XML catalog. These come in groups of three | | 9314 | to be added to the XML catalog. These come in groups of three |
9311 | strings; see xmlcatmgr(1) for more information (specifically, | | 9315 | strings; see xmlcatmgr(1) for more information (specifically, |
9312 | arguments recognized by the 'add' action). Note that you will | | 9316 | arguments recognized by the 'add' action). Note that you will |
9313 | normally not use this variable.</p></li> | | 9317 | normally not use this variable.</p></li> |
9314 | </ol></div> | | 9318 | </ol></div> |
9315 | </div> | | 9319 | </div> |
9316 | <div class="sect2"> | | 9320 | <div class="sect2"> |
9317 | <div class="titlepage"><div><div><h3 class="title"> | | 9321 | <div class="titlepage"><div><div><h3 class="title"> |
9318 | <a name="mime-database"></a>21.6.11. Packages installing extensions to the MIME database</h3></div></div></div> | | 9322 | <a name="mime-database"></a>21.6.11. Packages installing extensions to the MIME database</h3></div></div></div> |
9319 | <p>If a package provides extensions to the MIME database by | | 9323 | <p>If a package provides extensions to the MIME database by |
9320 | installing <code class="filename">.xml</code> files inside | | 9324 | installing <code class="filename">.xml</code> files inside |
9321 | <code class="filename">${PREFIX}/share/mime/packages</code>, you | | 9325 | <code class="filename">${PREFIX}/share/mime/packages</code>, you |
9322 | need to take some extra steps to ensure that the database is kept | | 9326 | need to take some extra steps to ensure that the database is kept |
9323 | consistent with respect to these new files:</p> | | 9327 | consistent with respect to these new files:</p> |
9324 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 9328 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
9325 | <li class="listitem"><p>Include | | 9329 | <li class="listitem"><p>Include |
9326 | <code class="filename">../../databases/shared-mime-info/mimedb.mk</code> | | 9330 | <code class="filename">../../databases/shared-mime-info/mimedb.mk</code> |
9327 | (avoid using the <code class="filename">buildlink3.mk</code> file from | | 9331 | (avoid using the <code class="filename">buildlink3.mk</code> file from |
9328 | this same directory, which is reserved for inclusion from | | 9332 | this same directory, which is reserved for inclusion from |
9329 | other <code class="filename">buildlink3.mk</code> files). It takes | | 9333 | other <code class="filename">buildlink3.mk</code> files). It takes |
9330 | care of rebuilding the MIME database at installation and | | 9334 | care of rebuilding the MIME database at installation and |
9331 | deinstallation time, and disallows any access to it directly | | 9335 | deinstallation time, and disallows any access to it directly |
9332 | from the package.</p></li> | | 9336 | from the package.</p></li> |
9333 | <li class="listitem"><p>Check the PLIST and remove any entries under the | | 9337 | <li class="listitem"><p>Check the PLIST and remove any entries under the |
9334 | <code class="filename">share/mime</code> directory, | | 9338 | <code class="filename">share/mime</code> directory, |
9335 | <span class="emphasis"><em>except</em></span> for files saved under | | 9339 | <span class="emphasis"><em>except</em></span> for files saved under |
9336 | <code class="filename">share/mime/packages</code>. The former are | | 9340 | <code class="filename">share/mime/packages</code>. The former are |
9337 | handled automatically by | | 9341 | handled automatically by |
9338 | the update-mime-database program, but the latter are | | 9342 | the update-mime-database program, but the latter are |
9339 | package-dependent and must be removed by the package that | | 9343 | package-dependent and must be removed by the package that |
9340 | installed them in the first place.</p></li> | | 9344 | installed them in the first place.</p></li> |
9341 | <li class="listitem"><p>Remove any <code class="filename">share/mime/*</code> directories | | 9345 | <li class="listitem"><p>Remove any <code class="filename">share/mime/*</code> directories |
9342 | from the PLIST. They will be handled by the shared-mime-info | | 9346 | from the PLIST. They will be handled by the shared-mime-info |
9343 | package.</p></li> | | 9347 | package.</p></li> |
9344 | </ol></div> | | 9348 | </ol></div> |
9345 | </div> | | 9349 | </div> |
9346 | <div class="sect2"> | | 9350 | <div class="sect2"> |
9347 | <div class="titlepage"><div><div><h3 class="title"> | | 9351 | <div class="titlepage"><div><div><h3 class="title"> |
9348 | <a name="intltool"></a>21.6.12. Packages using intltool</h3></div></div></div> | | 9352 | <a name="intltool"></a>21.6.12. Packages using intltool</h3></div></div></div> |
9349 | <p>If a package uses intltool during its build, add | | 9353 | <p>If a package uses intltool during its build, add |
9350 | <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code>, | | 9354 | <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code>, |
9351 | which forces it to use the intltool package provided by pkgsrc, | | 9355 | which forces it to use the intltool package provided by pkgsrc, |
9352 | instead of the one bundled with the distribution file.</p> | | 9356 | instead of the one bundled with the distribution file.</p> |
9353 | <p>This tracks intltool's build-time dependencies and uses the | | 9357 | <p>This tracks intltool's build-time dependencies and uses the |
9354 | latest available version; this way, the package benefits of any | | 9358 | latest available version; this way, the package benefits of any |
9355 | bug fixes that may have appeared since it was released.</p> | | 9359 | bug fixes that may have appeared since it was released.</p> |
9356 | </div> | | 9360 | </div> |
9357 | <div class="sect2"> | | 9361 | <div class="sect2"> |
9358 | <div class="titlepage"><div><div><h3 class="title"> | | 9362 | <div class="titlepage"><div><div><h3 class="title"> |
9359 | <a name="startup-scripts"></a>21.6.13. Packages installing startup scripts</h3></div></div></div> | | 9363 | <a name="startup-scripts"></a>21.6.13. Packages installing startup scripts</h3></div></div></div> |
9360 | <p>If a package contains a rc.d script, it won't be copied into | | 9364 | <p>If a package contains a rc.d script, it won't be copied into |
9361 | the startup directory by default, but you can enable it, by adding | | 9365 | the startup directory by default, but you can enable it, by adding |
9362 | the option <code class="varname">PKG_RCD_SCRIPTS=YES</code> in | | 9366 | the option <code class="varname">PKG_RCD_SCRIPTS=YES</code> in |
9363 | <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>. This option will copy the scripts | | 9367 | <a class="link" href="#mk.conf"><code class="filename">mk.conf</code></a>. This option will copy the scripts |
9364 | into <code class="filename">/etc/rc.d</code> when a package is installed, and | | 9368 | into <code class="filename">/etc/rc.d</code> when a package is installed, and |
9365 | it will automatically remove the scripts when the package is | | 9369 | it will automatically remove the scripts when the package is |
9366 | deinstalled.</p> | | 9370 | deinstalled.</p> |
9367 | </div> | | 9371 | </div> |
9368 | <div class="sect2"> | | 9372 | <div class="sect2"> |
9369 | <div class="titlepage"><div><div><h3 class="title"> | | 9373 | <div class="titlepage"><div><div><h3 class="title"> |
9370 | <a name="tex-packages"></a>21.6.14. Packages installing TeX modules</h3></div></div></div> | | 9374 | <a name="tex-packages"></a>21.6.14. Packages installing TeX modules</h3></div></div></div> |
9371 | <p>If a package installs TeX packages into the texmf tree, | | 9375 | <p>If a package installs TeX packages into the texmf tree, |
9372 | the <code class="filename">ls-R</code> database of the tree needs to be | | 9376 | the <code class="filename">ls-R</code> database of the tree needs to be |
9373 | updated.</p> | | 9377 | updated.</p> |
9374 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> | | 9378 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
9375 | <h3 class="title">Note</h3> | | 9379 | <h3 class="title">Note</h3> |
9376 | <p>Except the main TeX packages such as kpathsea, | | 9380 | <p>Except the main TeX packages such as kpathsea, |
9377 | packages should install files | | 9381 | packages should install files |
9378 | into <code class="filename">${PREFIX}/share/texmf-dist</code>, | | 9382 | into <code class="filename">${PREFIX}/share/texmf-dist</code>, |
9379 | not <code class="filename">${PREFIX}/share/texmf</code>.</p> | | 9383 | not <code class="filename">${PREFIX}/share/texmf</code>.</p> |
9380 | </div> | | 9384 | </div> |
9381 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 9385 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
9382 | <li class="listitem"><p>Include | | 9386 | <li class="listitem"><p>Include |
9383 | <code class="filename">../../print/kpathsea/texmf.mk</code>. This | | 9387 | <code class="filename">../../print/kpathsea/texmf.mk</code>. This |
9384 | takes care of rebuilding the <code class="filename">ls-R</code> | | 9388 | takes care of rebuilding the <code class="filename">ls-R</code> |
9385 | database at installation and deinstallation time.</p></li> | | 9389 | database at installation and deinstallation time.</p></li> |
9386 | <li class="listitem"> | | 9390 | <li class="listitem"> |
9387 | <p>If your package installs files into a texmf | | 9391 | <p>If your package installs files into a texmf |
9388 | tree other than the one | | 9392 | tree other than the one |
9389 | at <code class="filename">${PREFIX}/share/texmf-dist</code>, | | 9393 | at <code class="filename">${PREFIX}/share/texmf-dist</code>, |
9390 | set <code class="varname">TEX_TEXMF_DIRS</code> to the list of all texmf | | 9394 | set <code class="varname">TEX_TEXMF_DIRS</code> to the list of all texmf |
9391 | trees that need database update.</p> | | 9395 | trees that need database update.</p> |
9392 | <p>If your package also installs font map files that need | | 9396 | <p>If your package also installs font map files that need |
9393 | to be registered using <span class="command"><strong>updmap</strong></span>, | | 9397 | to be registered using <span class="command"><strong>updmap</strong></span>, |
9394 | include <code class="filename">../../print/tex-tetex/map.mk</code> and | | 9398 | include <code class="filename">../../print/tex-tetex/map.mk</code> and |
9395 | set <code class="varname">TEX_MAP_FILES</code> and/or | | 9399 | set <code class="varname">TEX_MAP_FILES</code> and/or |
9396 | <code class="varname">TEX_MIXEDMAP_FILES</code> to the list of all | | 9400 | <code class="varname">TEX_MIXEDMAP_FILES</code> to the list of all |
9397 | such font map files. Then <span class="command"><strong>updmap</strong></span> will | | 9401 | such font map files. Then <span class="command"><strong>updmap</strong></span> will |
9398 | be run automatically at installation/deinstallation to | | 9402 | be run automatically at installation/deinstallation to |
9399 | enable/disable font map files for TeX output | | 9403 | enable/disable font map files for TeX output |
9400 | drivers.</p> | | 9404 | drivers.</p> |
9401 | </li> | | 9405 | </li> |
9402 | <li class="listitem"><p>Make sure that none of <code class="filename">ls-R</code> | | 9406 | <li class="listitem"><p>Make sure that none of <code class="filename">ls-R</code> |
9403 | databases are included in <code class="filename">PLIST</code>, as | | 9407 | databases are included in <code class="filename">PLIST</code>, as |
9404 | they will be removed only by the kpathsea package.</p></li> | | 9408 | they will be removed only by the kpathsea package.</p></li> |
9405 | </ol></div> | | 9409 | </ol></div> |
9406 | </div> | | 9410 | </div> |
9407 | <div class="sect2"> | | 9411 | <div class="sect2"> |
9408 | <div class="titlepage"><div><div><h3 class="title"> | | 9412 | <div class="titlepage"><div><div><h3 class="title"> |
9409 | <a name="emulation-packages"></a>21.6.15. Packages supporting running binaries in | | 9413 | <a name="emulation-packages"></a>21.6.15. Packages supporting running binaries in |
9410 | emulation</h3></div></div></div> | | 9414 | emulation</h3></div></div></div> |
9411 | <p>There are some packages that provide libraries and | | 9415 | <p>There are some packages that provide libraries and |
9412 | executables for running binaries from a one operating system | | 9416 | executables for running binaries from a one operating system |
9413 | on a different one (if the latter supports it). One example | | 9417 | on a different one (if the latter supports it). One example |
9414 | is running Linux binaries on NetBSD.</p> | | 9418 | is running Linux binaries on NetBSD.</p> |
9415 | <p>The <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/rpm2pkg/index.html" target="_top"><code class="filename">pkgtools/rpm2pkg</code></a> | | 9419 | <p>The <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/rpm2pkg/index.html" target="_top"><code class="filename">pkgtools/rpm2pkg</code></a> |
9416 | helps in extracting and packaging Linux rpm packages.</p> | | 9420 | helps in extracting and packaging Linux rpm packages.</p> |
9417 | <p>The <code class="varname">CHECK_SHLIBS</code> can be set to no to | | 9421 | <p>The <code class="varname">CHECK_SHLIBS</code> can be set to no to |
9418 | avoid the <span class="command"><strong>check-shlibs</strong></span> target, which tests | | 9422 | avoid the <span class="command"><strong>check-shlibs</strong></span> target, which tests |
9419 | if all libraries for each installed executable can be found by | | 9423 | if all libraries for each installed executable can be found by |
9420 | the dynamic linker. Since the standard dynamic linker is run, | | 9424 | the dynamic linker. Since the standard dynamic linker is run, |
9421 | this fails for emulation packages, because the libraries used | | 9425 | this fails for emulation packages, because the libraries used |
9422 | by the emulation are not in the standard directories.</p> | | 9426 | by the emulation are not in the standard directories.</p> |
9423 | </div> | | 9427 | </div> |
9424 | <div class="sect2"> | | 9428 | <div class="sect2"> |
9425 | <div class="titlepage"><div><div><h3 class="title"> | | 9429 | <div class="titlepage"><div><div><h3 class="title"> |
9426 | <a name="hicolor-theme"></a>21.6.16. Packages installing hicolor icons</h3></div></div></div> | | 9430 | <a name="hicolor-theme"></a>21.6.16. Packages installing hicolor icons</h3></div></div></div> |
9427 | <p>If a package installs images under the | | 9431 | <p>If a package installs images under the |
9428 | <code class="filename">share/icons/hicolor</code> and/or updates the | | 9432 | <code class="filename">share/icons/hicolor</code> and/or updates the |
9429 | <code class="filename">share/icons/hicolor/icon-theme.cache</code> | | 9433 | <code class="filename">share/icons/hicolor/icon-theme.cache</code> |
9430 | database, you need to take some extra steps to make sure that the | | 9434 | database, you need to take some extra steps to make sure that the |
9431 | shared theme directory is handled appropriately and that the cache | | 9435 | shared theme directory is handled appropriately and that the cache |
9432 | database is rebuilt:</p> | | 9436 | database is rebuilt:</p> |
9433 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 9437 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
9434 | <li class="listitem"><p>Include | | 9438 | <li class="listitem"><p>Include |
9435 | <code class="filename">../../graphics/hicolor-icon-theme/buildlink3.mk</code>.</p></li> | | 9439 | <code class="filename">../../graphics/hicolor-icon-theme/buildlink3.mk</code>.</p></li> |
9436 | <li class="listitem"><p>Check the <code class="filename">PLIST</code> and remove the | | 9440 | <li class="listitem"><p>Check the <code class="filename">PLIST</code> and remove the |
9437 | entry that refers to the theme cache.</p></li> | | 9441 | entry that refers to the theme cache.</p></li> |
9438 | <li class="listitem"><p>Ensure that the PLIST does not remove the shared icon | | 9442 | <li class="listitem"><p>Ensure that the PLIST does not remove the shared icon |
9439 | directories from the <code class="filename">share/icons/hicolor</code> | | 9443 | directories from the <code class="filename">share/icons/hicolor</code> |
9440 | hierarchy because they will be handled automatically.</p></li> | | 9444 | hierarchy because they will be handled automatically.</p></li> |
9441 | </ol></div> | | 9445 | </ol></div> |
9442 | <p>The best way to verify that the PLIST is correct with | | 9446 | <p>The best way to verify that the PLIST is correct with |
9443 | respect to the last two points is to regenerate it using | | 9447 | respect to the last two points is to regenerate it using |
9444 | <span class="command"><strong>make print-PLIST</strong></span>.</p> | | 9448 | <span class="command"><strong>make print-PLIST</strong></span>.</p> |
9445 | </div> | | 9449 | </div> |
9446 | <div class="sect2"> | | 9450 | <div class="sect2"> |
9447 | <div class="titlepage"><div><div><h3 class="title"> | | 9451 | <div class="titlepage"><div><div><h3 class="title"> |
9448 | <a name="desktop-files"></a>21.6.17. Packages installing desktop files</h3></div></div></div> | | 9452 | <a name="desktop-files"></a>21.6.17. Packages installing desktop files</h3></div></div></div> |
9449 | <p>If a package installs <code class="filename">.desktop</code> files | | 9453 | <p>If a package installs <code class="filename">.desktop</code> files |
9450 | under <code class="filename">share/applications</code> and these include | | 9454 | under <code class="filename">share/applications</code> and these include |
9451 | MIME information (MimeType key), you need to take extra steps to | | 9455 | MIME information (MimeType key), you need to take extra steps to |
9452 | ensure that they are registered into the MIME database:</p> | | 9456 | ensure that they are registered into the MIME database:</p> |
9453 | <div class="orderedlist"><ol class="orderedlist" type="1"> | | 9457 | <div class="orderedlist"><ol class="orderedlist" type="1"> |
9454 | <li class="listitem"><p>Include | | 9458 | <li class="listitem"><p>Include |
9455 | <code class="filename">../../sysutils/desktop-file-utils/desktopdb.mk</code>.</p></li> | | 9459 | <code class="filename">../../sysutils/desktop-file-utils/desktopdb.mk</code>.</p></li> |
9456 | <li class="listitem"><p>Check the PLIST and remove the entry that refers to the | | 9460 | <li class="listitem"><p>Check the PLIST and remove the entry that refers to the |
9457 | <code class="filename">share/applications/mimeinfo.cache</code> file. | | 9461 | <code class="filename">share/applications/mimeinfo.cache</code> file. |
9458 | It will be handled automatically.</p></li> | | 9462 | It will be handled automatically.</p></li> |
9459 | </ol></div> | | 9463 | </ol></div> |
9460 | <p>The best way to verify that the PLIST is correct with | | 9464 | <p>The best way to verify that the PLIST is correct with |
9461 | respect to the last point is to regenerate it using <span class="command"><strong>make | | 9465 | respect to the last point is to regenerate it using <span class="command"><strong>make |
9462 | print-PLIST</strong></span>.</p> | | 9466 | print-PLIST</strong></span>.</p> |
9463 | </div> | | 9467 | </div> |
9464 | </div> | | 9468 | </div> |
9465 | <div class="sect1"> | | 9469 | <div class="sect1"> |
9466 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 9470 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
9467 | <a name="punting"></a>21.7. Marking packages as having problems</h2></div></div></div> | | 9471 | <a name="punting"></a>21.7. Marking packages as having problems</h2></div></div></div> |
9468 | <p>In some cases one does not have the time to solve a problem | | 9472 | <p>In some cases one does not have the time to solve a problem |
9469 | immediately. In this case, one can plainly mark a package as broken. For | | 9473 | immediately. In this case, one can plainly mark a package as broken. For |
9470 | this, one just sets the variable <code class="varname">BROKEN</code> to the | | 9474 | this, one just sets the variable <code class="varname">BROKEN</code> to the |
9471 | reason why the package is broken (similar to the | | 9475 | reason why the package is broken (similar to the |
9472 | <code class="varname">PKG_FAIL_REASON</code> variable). A user trying to build | | 9476 | <code class="varname">PKG_FAIL_REASON</code> variable). A user trying to build |
9473 | the package will immediately be shown this message, and the build | | 9477 | the package will immediately be shown this message, and the build |
9474 | will not be even tried.</p> | | 9478 | will not be even tried.</p> |
9475 | <p><code class="varname">BROKEN</code> packages are removed from pkgsrc in irregular | | 9479 | <p><code class="varname">BROKEN</code> packages are removed from pkgsrc in irregular |
9476 | intervals.</p> | | 9480 | intervals.</p> |
9477 | </div> | | 9481 | </div> |
9478 | </div> | | 9482 | </div> |
9479 | <div class="chapter"> | | 9483 | <div class="chapter"> |
9480 | <div class="titlepage"><div><div><h2 class="title"> | | 9484 | <div class="titlepage"><div><div><h2 class="title"> |
9481 | <a name="gnome"></a>Chapter 22. GNOME packaging and porting</h2></div></div></div> | | 9485 | <a name="gnome"></a>Chapter 22. GNOME packaging and porting</h2></div></div></div> |
9482 | <div class="toc"> | | 9486 | <div class="toc"> |
9483 | <p><b>Table of Contents</b></p> | | 9487 | <p><b>Table of Contents</b></p> |
9484 | <dl class="toc"> | | 9488 | <dl class="toc"> |
9485 | <dt><span class="sect1"><a href="#meta-packages">22.1. Meta packages</a></span></dt> | | 9489 | <dt><span class="sect1"><a href="#meta-packages">22.1. Meta packages</a></span></dt> |
9486 | <dt><span class="sect1"><a href="#new-package">22.2. Packaging a GNOME application</a></span></dt> | | 9490 | <dt><span class="sect1"><a href="#new-package">22.2. Packaging a GNOME application</a></span></dt> |
9487 | <dt><span class="sect1"><a href="#full-update">22.3. Updating GNOME to a newer version</a></span></dt> | | 9491 | <dt><span class="sect1"><a href="#full-update">22.3. Updating GNOME to a newer version</a></span></dt> |
9488 | <dt><span class="sect1"><a href="#patching">22.4. Patching guidelines</a></span></dt> | | 9492 | <dt><span class="sect1"><a href="#patching">22.4. Patching guidelines</a></span></dt> |
9489 | </dl> | | 9493 | </dl> |
9490 | </div> | | 9494 | </div> |
9491 | <p>Quoting <a class="ulink" href="https://www.gnome.org/" target="_top">GNOME's web | | 9495 | <p>Quoting <a class="ulink" href="https://www.gnome.org/" target="_top">GNOME's web |
9492 | site</a>:</p> | | 9496 | site</a>:</p> |
9493 | <div class="blockquote"><blockquote class="blockquote"><p>The GNOME project provides two things: The GNOME desktop | | 9497 | <div class="blockquote"><blockquote class="blockquote"><p>The GNOME project provides two things: The GNOME desktop |
9494 | environment, an intuitive and attractive desktop for users, and the | | 9498 | environment, an intuitive and attractive desktop for users, and the |
9495 | GNOME development platform, an extensive framework for building | | 9499 | GNOME development platform, an extensive framework for building |
9496 | applications that integrate into the rest of the desktop.</p></blockquote></div> | | 9500 | applications that integrate into the rest of the desktop.</p></blockquote></div> |
9497 | <p>pkgsrc provides a seamless way to automatically build and install | | 9501 | <p>pkgsrc provides a seamless way to automatically build and install |
9498 | a complete GNOME environment <span class="emphasis"><em>under many different | | 9502 | a complete GNOME environment <span class="emphasis"><em>under many different |
9499 | platforms</em></span>. We can say with confidence that pkgsrc is one of | | 9503 | platforms</em></span>. We can say with confidence that pkgsrc is one of |
9500 | the most advanced build and packaging systems for GNOME due to its | | 9504 | the most advanced build and packaging systems for GNOME due to its |
9501 | included technologies buildlink3, the wrappers and tools framework and | | 9505 | included technologies buildlink3, the wrappers and tools framework and |
9502 | automatic configuration file management. Lots of efforts are put into | | 9506 | automatic configuration file management. Lots of efforts are put into |
9503 | achieving a completely clean deinstallation of installed software | | 9507 | achieving a completely clean deinstallation of installed software |
9504 | components.</p> | | 9508 | components.</p> |
9505 | <p>Given that pkgsrc is <a class="ulink" href="https://www.NetBSD.org/" target="_top">NetBSD</a>'s official packaging system, | | 9509 | <p>Given that pkgsrc is <a class="ulink" href="https://www.NetBSD.org/" target="_top">NetBSD</a>'s official packaging system, |
9506 | the above also means that great efforts are put into making GNOME work | | 9510 | the above also means that great efforts are put into making GNOME work |
9507 | under this operating system.</p> | | 9511 | under this operating system.</p> |
9508 | <p>This chapter is aimed at pkgsrc developers and other people | | 9512 | <p>This chapter is aimed at pkgsrc developers and other people |
9509 | interested in helping our GNOME porting and packaging efforts. It | | 9513 | interested in helping our GNOME porting and packaging efforts. It |
9510 | provides instructions on how to manage the existing packages and some | | 9514 | provides instructions on how to manage the existing packages and some |
9511 | important information regarding their internals.</p> | | 9515 | important information regarding their internals.</p> |
9512 | <div class="sect1"> | | 9516 | <div class="sect1"> |
9513 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 9517 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
9514 | <a name="meta-packages"></a>22.1. Meta packages</h2></div></div></div> | | 9518 | <a name="meta-packages"></a>22.1. Meta packages</h2></div></div></div> |
9515 | <p>pkgsrc includes three GNOME-related meta packages:</p> | | 9519 | <p>pkgsrc includes three GNOME-related meta packages:</p> |
9516 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 9520 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
9517 | <li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/index.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>: Provides | | 9521 | <li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/index.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>: Provides |
9518 | the core GNOME desktop environment. It only includes the necessary | | 9522 | the core GNOME desktop environment. It only includes the necessary |
9519 | bits to get it to boot correctly, although it may lack important | | 9523 | bits to get it to boot correctly, although it may lack important |
9520 | functionality for daily operation. The idea behind this package is | | 9524 | functionality for daily operation. The idea behind this package is |
9521 | to let end users build their own configurations on top of this one, | | 9525 | to let end users build their own configurations on top of this one, |
9522 | first installing this meta package to achieve a functional setup and | | 9526 | first installing this meta package to achieve a functional setup and |
9523 | then adding individual applications.</p></li> | | 9527 | then adding individual applications.</p></li> |
9524 | <li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome/index.html" target="_top"><code class="filename">meta-pkgs/gnome</code></a>: Provides a | | 9528 | <li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome/index.html" target="_top"><code class="filename">meta-pkgs/gnome</code></a>: Provides a |
9525 | complete installation of the GNOME platform and desktop as defined | | 9529 | complete installation of the GNOME platform and desktop as defined |
9526 | by the GNOME project; this is based on the components distributed in | | 9530 | by the GNOME project; this is based on the components distributed in |
9527 | the <code class="filename">platform/x.y/x.y.z/sources</code> and | | 9531 | the <code class="filename">platform/x.y/x.y.z/sources</code> and |
9528 | <code class="filename">desktop/x.y/x.y.z/sources</code> directories of the | | 9532 | <code class="filename">desktop/x.y/x.y.z/sources</code> directories of the |
9529 | official FTP server. Developer-only tools found in those | | 9533 | official FTP server. Developer-only tools found in those |
9530 | directories are not installed unless required by some other | | 9534 | directories are not installed unless required by some other |
9531 | component to work properly. Similarly, packages from the bindings | | 9535 | component to work properly. Similarly, packages from the bindings |
9532 | set (<code class="filename">bindings/x.y/x.y.z/sources</code>) are not pulled | | 9536 | set (<code class="filename">bindings/x.y/x.y.z/sources</code>) are not pulled |
9533 | in unless required as a dependency for an end-user component. This | | 9537 | in unless required as a dependency for an end-user component. This |
9534 | package "extends" <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/index.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>.</p></li> | | 9538 | package "extends" <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-base/index.html" target="_top"><code class="filename">meta-pkgs/gnome-base</code></a>.</p></li> |
9535 | <li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-devel/index.html" target="_top"><code class="filename">meta-pkgs/gnome-devel</code></a>: | | 9539 | <li class="listitem"><p><a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/gnome-devel/index.html" target="_top"><code class="filename">meta-pkgs/gnome-devel</code></a>: |
9536 | Installs all the tools required to build a GNOME component when | | 9540 | Installs all the tools required to build a GNOME component when |
9537 | fetched from the CVS repository. These are required to let the | | 9541 | fetched from the CVS repository. These are required to let the |
9538 | <span class="command"><strong>autogen.sh</strong></span> scripts work appropriately.</p></li> | | 9542 | <span class="command"><strong>autogen.sh</strong></span> scripts work appropriately.</p></li> |
9539 | </ul></div> | | 9543 | </ul></div> |
9540 | <p>In all these packages, the <code class="varname">DEPENDS</code> lines are | | 9544 | <p>In all these packages, the <code class="varname">DEPENDS</code> lines are |
9541 | sorted in a way that eases updates: a package may depend on other | | 9545 | sorted in a way that eases updates: a package may depend on other |
9542 | packages listed before it but not on any listed after it. It is very | | 9546 | packages listed before it but not on any listed after it. It is very |
9543 | important to keep this order to ease updates so... <span class="emphasis"><em>do not | | 9547 | important to keep this order to ease updates so... <span class="emphasis"><em>do not |
9544 | change it to alphabetical sorting!</em></span></p> | | 9548 | change it to alphabetical sorting!</em></span></p> |
9545 | </div> | | 9549 | </div> |
9546 | <div class="sect1"> | | 9550 | <div class="sect1"> |
9547 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 9551 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
9548 | <a name="new-package"></a>22.2. Packaging a GNOME application</h2></div></div></div> | | 9552 | <a name="new-package"></a>22.2. Packaging a GNOME application</h2></div></div></div> |
9549 | <p>Almost all GNOME applications are written in C and use a common | | 9553 | <p>Almost all GNOME applications are written in C and use a common |
9550 | set of tools as their build system. Things get different with the new | | 9554 | set of tools as their build system. Things get different with the new |
9551 | bindings to other languages (such as Python), but the following will | | 9555 | bindings to other languages (such as Python), but the following will |
9552 | give you a general idea on the minimum required tools:</p> | | 9556 | give you a general idea on the minimum required tools:</p> |
9553 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 9557 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
9554 | <li class="listitem"> | | 9558 | <li class="listitem"> |
9555 | <p>Almost all GNOME applications use the GNU Autotools as their | | 9559 | <p>Almost all GNOME applications use the GNU Autotools as their |
9556 | build system. As a general rule you will need to tell this to your | | 9560 | build system. As a general rule you will need to tell this to your |
9557 | package:</p> | | 9561 | package:</p> |
9558 | <pre class="programlisting"> | | 9562 | <pre class="programlisting"> |
9559 | GNU_CONFIGURE= yes | | 9563 | GNU_CONFIGURE= yes |
9560 | USE_LIBTOOL= yes | | 9564 | USE_LIBTOOL= yes |
9561 | USE_TOOLS+= gmake | | 9565 | USE_TOOLS+= gmake |
9562 | </pre> | | 9566 | </pre> |
9563 | </li> | | 9567 | </li> |
9564 | <li class="listitem"> | | 9568 | <li class="listitem"> |
9565 | <p>If the package uses pkg-config to detect dependencies, add this | | 9569 | <p>If the package uses pkg-config to detect dependencies, add this |
9566 | tool to the list of required utilities:</p> | | 9570 | tool to the list of required utilities:</p> |
9567 | <pre class="programlisting"> | | 9571 | <pre class="programlisting"> |
9568 | USE_TOOLS+= pkg-config | | 9572 | USE_TOOLS+= pkg-config |
9569 | </pre> | | 9573 | </pre> |
9570 | <p>Also use <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/verifypc/index.html" target="_top"><code class="filename">pkgtools/verifypc</code></a> at | | 9574 | <p>Also use <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/verifypc/index.html" target="_top"><code class="filename">pkgtools/verifypc</code></a> at |
9571 | the end of the build process to ensure that you did not miss to | | 9575 | the end of the build process to ensure that you did not miss to |
9572 | specify any dependency in your package and that the version | | 9576 | specify any dependency in your package and that the version |
9573 | requirements are all correct.</p> | | 9577 | requirements are all correct.</p> |
9574 | </li> | | 9578 | </li> |
9575 | <li class="listitem"><p>If the package uses intltool, be sure to add | | 9579 | <li class="listitem"><p>If the package uses intltool, be sure to add |
9576 | <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code> | | 9580 | <code class="literal">intltool</code> to the <code class="varname">USE_TOOLS</code> |
9577 | to handle dependencies and to force the package to use the latest | | 9581 | to handle dependencies and to force the package to use the latest |
9578 | available version.</p></li> | | 9582 | available version.</p></li> |
9579 | <li class="listitem"> | | 9583 | <li class="listitem"> |
9580 | <p>If the package uses gtk-doc (a documentation generation | | 9584 | <p>If the package uses gtk-doc (a documentation generation |
9581 | utility), do <span class="emphasis"><em>not</em></span> add a dependency on it. The | | 9585 | utility), do <span class="emphasis"><em>not</em></span> add a dependency on it. The |
9582 | tool is rather big and the distfile should come with pregenerated | | 9586 | tool is rather big and the distfile should come with pregenerated |
9583 | documentation anyway; if it does not, it is a bug that you ought to | | 9587 | documentation anyway; if it does not, it is a bug that you ought to |
9584 | report. For such packages you should disable gtk-doc (unless it is | | 9588 | report. For such packages you should disable gtk-doc (unless it is |
9585 | the default):</p> | | 9589 | the default):</p> |
9586 | <pre class="programlisting"> | | 9590 | <pre class="programlisting"> |
9587 | CONFIGURE_ARGS+= --disable-gtk-doc | | 9591 | CONFIGURE_ARGS+= --disable-gtk-doc |
9588 | </pre> | | 9592 | </pre> |
9589 | <p>The default location of installed HTML files | | 9593 | <p>The default location of installed HTML files |
9590 | (<code class="filename">share/gtk-doc/<package-name></code>) is correct | | 9594 | (<code class="filename">share/gtk-doc/<package-name></code>) is correct |
9591 | and should not be changed unless the package insists on installing | | 9595 | and should not be changed unless the package insists on installing |
9592 | them somewhere else. Otherwise programs as | | 9596 | them somewhere else. Otherwise programs as |
9593 | <span class="command"><strong>devhelp</strong></span> will not be able to open them. You can | | 9597 | <span class="command"><strong>devhelp</strong></span> will not be able to open them. You can |
9594 | do that with an entry similar to:</p> | | 9598 | do that with an entry similar to:</p> |
9595 | <pre class="programlisting"> | | 9599 | <pre class="programlisting"> |
9596 | CONFIGURE_ARGS+= --with-html-dir=${PREFIX}/share/gtk-doc/... | | 9600 | CONFIGURE_ARGS+= --with-html-dir=${PREFIX}/share/gtk-doc/... |
9597 | </pre> | | 9601 | </pre> |
9598 | </li> | | 9602 | </li> |
9599 | </ul></div> | | 9603 | </ul></div> |
9600 | <p>GNOME uses multiple <span class="emphasis"><em>shared</em></span> directories and | | 9604 | <p>GNOME uses multiple <span class="emphasis"><em>shared</em></span> directories and |
9601 | files under the installation prefix to maintain databases. In this | | 9605 | files under the installation prefix to maintain databases. In this |
9602 | context, shared means that those exact same directories and files are | | 9606 | context, shared means that those exact same directories and files are |
9603 | used among several different packages, leading to conflicts in the | | 9607 | used among several different packages, leading to conflicts in the |
9604 | <code class="filename">PLIST</code>. pkgsrc currently includes functionality to | | 9608 | <code class="filename">PLIST</code>. pkgsrc currently includes functionality to |
9605 | handle the most common cases, so you have to forget about using | | 9609 | handle the most common cases, so you have to forget about using |
9606 | <code class="literal">@unexec ${RMDIR}</code> lines in your file lists and | | 9610 | <code class="literal">@unexec ${RMDIR}</code> lines in your file lists and |
9607 | omitting shared files from them. If you find yourself doing those, | | 9611 | omitting shared files from them. If you find yourself doing those, |
9608 | <span class="emphasis"><em>your package is most likely incorrect</em></span>.</p> | | 9612 | <span class="emphasis"><em>your package is most likely incorrect</em></span>.</p> |
9609 | <p>The following table lists the common situations that result in | | 9613 | <p>The following table lists the common situations that result in |
9610 | using shared directories or files. For each of them, the appropriate | | 9614 | using shared directories or files. For each of them, the appropriate |
9611 | solution is given. After applying the solution be sure to | | 9615 | solution is given. After applying the solution be sure to |
9612 | <span class="emphasis"><em>regenerate the package's file list</em></span> with | | 9616 | <span class="emphasis"><em>regenerate the package's file list</em></span> with |
9613 | <span class="command"><strong>make print-PLIST</strong></span> and ensure it is correct.</p> | | 9617 | <span class="command"><strong>make print-PLIST</strong></span> and ensure it is correct.</p> |
9614 | <div class="table"> | | 9618 | <div class="table"> |
9615 | <a name="plist-handling"></a><p class="title"><b>Table 22.1. PLIST handling for GNOME packages</b></p> | | 9619 | <a name="plist-handling"></a><p class="title"><b>Table 22.1. PLIST handling for GNOME packages</b></p> |
9616 | <div class="table-contents"><table class="table" summary="PLIST handling for GNOME packages" border="1"> | | 9620 | <div class="table-contents"><table class="table" summary="PLIST handling for GNOME packages" border="1"> |
9617 | <colgroup> | | 9621 | <colgroup> |
9618 | <col> | | 9622 | <col> |
9619 | <col> | | 9623 | <col> |
9620 | </colgroup> | | 9624 | </colgroup> |
9621 | <thead><tr> | | 9625 | <thead><tr> |
9622 | <th>If the package...</th> | | 9626 | <th>If the package...</th> |
9623 | <th>Then...</th> | | 9627 | <th>Then...</th> |
| @@ -10796,4088 +10800,3956 @@ output_require "^[[:alpha:]+[[:space:]][ | | | @@ -10796,4088 +10800,3956 @@ output_require "^[[:alpha:]+[[:space:]][ |
10796 | DISTNAME= bison-1.25 | | 10800 | DISTNAME= bison-1.25 |
10797 | CATEGORIES= devel | | 10801 | CATEGORIES= devel |
10798 | MASTER_SITES= ${MASTER_SITE_GNU:=bison/} | | 10802 | MASTER_SITES= ${MASTER_SITE_GNU:=bison/} |
10799 | | | 10803 | |
10800 | MAINTAINER= pkgsrc-users@NetBSD.org | | 10804 | MAINTAINER= pkgsrc-users@NetBSD.org |
10801 | HOMEPAGE= https://www.gnu.org/software/bison/bison.html | | 10805 | HOMEPAGE= https://www.gnu.org/software/bison/bison.html |
10802 | COMMENT= GNU yacc clone | | 10806 | COMMENT= GNU yacc clone |
10803 | | | 10807 | |
10804 | GNU_CONFIGURE= yes | | 10808 | GNU_CONFIGURE= yes |
10805 | INFO_FILES= yes | | 10809 | INFO_FILES= yes |
10806 | | | 10810 | |
10807 | .include "../../mk/bsd.pkg.mk" | | 10811 | .include "../../mk/bsd.pkg.mk" |
10808 | </pre> | | 10812 | </pre> |
10809 | </div> | | 10813 | </div> |
10810 | <div class="sect2"> | | 10814 | <div class="sect2"> |
10811 | <div class="titlepage"><div><div><h3 class="title"> | | 10815 | <div class="titlepage"><div><div><h3 class="title"> |
10812 | <a name="example-descr"></a>A.1.2. DESCR</h3></div></div></div> | | 10816 | <a name="example-descr"></a>A.1.2. DESCR</h3></div></div></div> |
10813 | <pre class="programlisting"> | | 10817 | <pre class="programlisting"> |
10814 | GNU version of yacc. Can make re-entrant parsers, and numerous other | | 10818 | GNU version of yacc. Can make re-entrant parsers, and numerous other |
10815 | improvements. Why you would want this when Berkeley <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/yacc.1"><span class="citerefentry"><span class="refentrytitle">yacc</span>(1)</span></a> is part | | 10819 | improvements. Why you would want this when Berkeley <a class="citerefentry" href="https://man.NetBSD.org/NetBSD-9.2/i386/yacc.1"><span class="citerefentry"><span class="refentrytitle">yacc</span>(1)</span></a> is part |
10816 | of the NetBSD source tree is beyond me. | | 10820 | of the NetBSD source tree is beyond me. |
10817 | </pre> | | 10821 | </pre> |
10818 | </div> | | 10822 | </div> |
10819 | <div class="sect2"> | | 10823 | <div class="sect2"> |
10820 | <div class="titlepage"><div><div><h3 class="title"> | | 10824 | <div class="titlepage"><div><div><h3 class="title"> |
10821 | <a name="example-plist"></a>A.1.3. PLIST</h3></div></div></div> | | 10825 | <a name="example-plist"></a>A.1.3. PLIST</h3></div></div></div> |
10822 | <pre class="programlisting"> | | 10826 | <pre class="programlisting"> |
10823 | @comment $NetBSD$ | | 10827 | @comment $NetBSD$ |
10824 | bin/bison | | 10828 | bin/bison |
10825 | man/man1/bison.1.gz | | 10829 | man/man1/bison.1.gz |
10826 | share/bison.simple | | 10830 | share/bison.simple |
10827 | share/bison.hairy | | 10831 | share/bison.hairy |
10828 | </pre> | | 10832 | </pre> |
10829 | </div> | | 10833 | </div> |
10830 | <div class="sect2"> | | 10834 | <div class="sect2"> |
10831 | <div class="titlepage"><div><div><h3 class="title"> | | 10835 | <div class="titlepage"><div><div><h3 class="title"> |
10832 | <a name="checking-package-with-pkglint"></a>A.1.4. Checking a package with pkglint</h3></div></div></div> | | 10836 | <a name="checking-package-with-pkglint"></a>A.1.4. Checking a package with pkglint</h3></div></div></div> |
10833 | <p>The NetBSD package system comes with | | 10837 | <p>The NetBSD package system comes with |
10834 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/index.html" target="_top"><code class="filename">pkgtools/pkglint</code></a> | | 10838 | <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/pkgtools/pkglint/index.html" target="_top"><code class="filename">pkgtools/pkglint</code></a> |
10835 | which helps to check the contents of these | | 10839 | which helps to check the contents of these |
10836 | files. After installation it is quite easy to use, just change to the | | 10840 | files. After installation it is quite easy to use, just change to the |
10837 | directory of the package you wish to examine and run | | 10841 | directory of the package you wish to examine and run |
10838 | <span class="command"><strong>pkglint</strong></span>:</p> | | 10842 | <span class="command"><strong>pkglint</strong></span>:</p> |
10839 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pkglint</code></strong> | | 10843 | <pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pkglint</code></strong> |
10840 | ERROR: Makefile: Each package must define its LICENSE. | | 10844 | ERROR: Makefile: Each package must define its LICENSE. |
10841 | WARN: Makefile:9: HOMEPAGE should migrate from http to https. | | 10845 | WARN: Makefile:9: HOMEPAGE should migrate from http to https. |
10842 | NOTE: PLIST:3: The .gz extension is unnecessary for manual pages. | | 10846 | NOTE: PLIST:3: The .gz extension is unnecessary for manual pages. |
10843 | WARN: PLIST:5: "share/bison.hairy" should be sorted before "share/bison.simple". | | 10847 | WARN: PLIST:5: "share/bison.hairy" should be sorted before "share/bison.simple". |
10844 | 1 error, 2 warnings and 1 note found. | | 10848 | 1 error, 2 warnings and 1 note found. |
10845 | (Run "pkglint -e" to show explanations.) | | 10849 | (Run "pkglint -e" to show explanations.) |
10846 | (Run "pkglint -fs" to show what can be fixed automatically.) | | 10850 | (Run "pkglint -fs" to show what can be fixed automatically.) |
10847 | (Run "pkglint -F" to automatically fix some issues.)</pre> | | 10851 | (Run "pkglint -F" to automatically fix some issues.)</pre> |
10848 | <p>Depending on the supplied command line arguments (see pkglint(1)), | | 10852 | <p>Depending on the supplied command line arguments (see pkglint(1)), |
10849 | more checks will be performed. Use e.g. <span class="command"><strong>pkglint | | 10853 | more checks will be performed. Use e.g. <span class="command"><strong>pkglint |
10850 | -Wall</strong></span> for a very thorough check.</p> | | 10854 | -Wall</strong></span> for a very thorough check.</p> |
10851 | </div> | | 10855 | </div> |
10852 | </div> | | 10856 | </div> |
10853 | <div class="sect1"> | | 10857 | <div class="sect1"> |
10854 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 10858 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
10855 | <a name="steps-for-b-i-p"></a>A.2. Steps for building, installing, packaging</h2></div></div></div> | | 10859 | <a name="steps-for-b-i-p"></a>A.2. Steps for building, installing, packaging</h2></div></div></div> |
10856 | <p>Create the directory where the package lives, | | 10860 | <p>Create the directory where the package lives, |
10857 | plus any auxiliary directories:</p> | | 10861 | plus any auxiliary directories:</p> |
10858 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cd /usr/pkgsrc/lang</code></strong> | | 10862 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cd /usr/pkgsrc/lang</code></strong> |
10859 | <code class="prompt">#</code> <strong class="userinput"><code>mkdir bison</code></strong> | | 10863 | <code class="prompt">#</code> <strong class="userinput"><code>mkdir bison</code></strong> |
10860 | <code class="prompt">#</code> <strong class="userinput"><code>cd bison</code></strong> | | 10864 | <code class="prompt">#</code> <strong class="userinput"><code>cd bison</code></strong> |
10861 | <code class="prompt">#</code> <strong class="userinput"><code>mkdir patches</code></strong></pre> | | 10865 | <code class="prompt">#</code> <strong class="userinput"><code>mkdir patches</code></strong></pre> |
10862 | <p>Create <code class="filename">Makefile</code>, <code class="filename">DESCR</code> and | | 10866 | <p>Create <code class="filename">Makefile</code>, <code class="filename">DESCR</code> and |
10863 | <code class="filename">PLIST</code> (see <a class="xref" href="#components" title="Chapter 12. Package components - files, directories and contents">Chapter 12, <i>Package components - files, directories and contents</i></a>) | | 10867 | <code class="filename">PLIST</code> (see <a class="xref" href="#components" title="Chapter 12. Package components - files, directories and contents">Chapter 12, <i>Package components - files, directories and contents</i></a>) |
10864 | then continue with fetching the distfile:</p> | | 10868 | then continue with fetching the distfile:</p> |
10865 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make fetch</code></strong> | | 10869 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make fetch</code></strong> |
10866 | >> bison-1.25.tar.gz doesn't seem to exist on this system. | | 10870 | >> bison-1.25.tar.gz doesn't seem to exist on this system. |
10867 | >> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//. | | 10871 | >> Attempting to fetch from ftp://prep.ai.mit.edu/pub/gnu//. |
10868 | Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) | | 10872 | Requesting ftp://prep.ai.mit.edu/pub/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) |
10869 | ftp: Error retrieving file: 500 Internal error | | 10873 | ftp: Error retrieving file: 500 Internal error |
10870 | | | 10874 | |
10871 | >> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//. | | 10875 | >> Attempting to fetch from ftp://wuarchive.wustl.edu/systems/gnu//. |
10872 | Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) | | 10876 | Requesting ftp://wuarchive.wustl.edu/systems/gnu//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) |
10873 | ftp: Error retrieving file: 500 Internal error | | 10877 | ftp: Error retrieving file: 500 Internal error |
10874 | | | 10878 | |
10875 | >> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//. | | 10879 | >> Attempting to fetch from ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//. |
10876 | Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) | | 10880 | Requesting ftp://ftp.freebsd.org/pub/FreeBSD/distfiles//bison-1.25.tar.gz (via ftp://orpheus.amdahl.com:80/) |
10877 | Successfully retrieved file.</pre> | | 10881 | Successfully retrieved file.</pre> |
10878 | <p>Generate the checksum of the distfile into | | 10882 | <p>Generate the checksum of the distfile into |
10879 | <code class="filename">distinfo</code>:</p> | | 10883 | <code class="filename">distinfo</code>:</p> |
10880 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make makedistinfo</code></strong></pre> | | 10884 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make makedistinfo</code></strong></pre> |
10881 | <p>Now compile:</p> | | 10885 | <p>Now compile:</p> |
10882 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong> | | 10886 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong> |
10883 | >> Checksum OK for bison-1.25.tar.gz. | | 10887 | >> Checksum OK for bison-1.25.tar.gz. |
10884 | ===> Extracting for bison-1.25 | | 10888 | ===> Extracting for bison-1.25 |
10885 | ===> Patching for bison-1.25 | | 10889 | ===> Patching for bison-1.25 |
10886 | ===> Ignoring empty patch directory | | 10890 | ===> Ignoring empty patch directory |
10887 | ===> Configuring for bison-1.25 | | 10891 | ===> Configuring for bison-1.25 |
10888 | creating cache ./config.cache | | 10892 | creating cache ./config.cache |
10889 | checking for gcc... cc | | 10893 | checking for gcc... cc |
10890 | checking whether we are using GNU C... yes | | 10894 | checking whether we are using GNU C... yes |
10891 | checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin | | 10895 | checking for a BSD compatible install... /usr/bin/install -c -o bin -g bin |
10892 | checking how to run the C preprocessor... cc -E | | 10896 | checking how to run the C preprocessor... cc -E |
10893 | checking for minix/config.h... no | | 10897 | checking for minix/config.h... no |
10894 | checking for POSIXized ISC... no | | 10898 | checking for POSIXized ISC... no |
10895 | checking whether cross-compiling... no | | 10899 | checking whether cross-compiling... no |
10896 | checking for ANSI C header files... yes | | 10900 | checking for ANSI C header files... yes |
10897 | checking for string.h... yes | | 10901 | checking for string.h... yes |
10898 | checking for stdlib.h... yes | | 10902 | checking for stdlib.h... yes |
10899 | checking for memory.h... yes | | 10903 | checking for memory.h... yes |
10900 | checking for working const... yes | | 10904 | checking for working const... yes |
10901 | checking for working alloca.h... no | | 10905 | checking for working alloca.h... no |
10902 | checking for alloca... yes | | 10906 | checking for alloca... yes |
10903 | checking for strerror... yes | | 10907 | checking for strerror... yes |
10904 | updating cache ./config.cache | | 10908 | updating cache ./config.cache |
10905 | creating ./config.status | | 10909 | creating ./config.status |
10906 | creating Makefile | | 10910 | creating Makefile |
10907 | ===> Building for bison-1.25 | | 10911 | ===> Building for bison-1.25 |
10908 | 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 | | 10912 | 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 |
10909 | 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 | | 10913 | 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 |
10910 | 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 | | 10914 | 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 |
10911 | 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 | | 10915 | 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 |
10912 | 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 | | 10916 | 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 |
10913 | 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 | | 10917 | 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 |
10914 | 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 | | 10918 | 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 |
10915 | 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 | | 10919 | 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 |
10916 | 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 | | 10920 | 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 |
10917 | 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 | | 10921 | 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 |
10918 | 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 | | 10922 | 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 |
10919 | 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 | | 10923 | 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 |
10920 | 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 | | 10924 | 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 |
10921 | 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 | | 10925 | 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 |
10922 | 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 | | 10926 | 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 |
10923 | 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 | | 10927 | 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 |
10924 | 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 | | 10928 | 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 |
10925 | 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 | | 10929 | 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 |
10926 | 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 | | 10930 | 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 |
10927 | 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 | | 10931 | 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 |
10928 | 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 | | 10932 | 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 |
10929 | 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 | | 10933 | 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 |
10930 | ./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp() | | 10934 | ./files.c:240: warning: mktemp() possibly used unsafely, consider using mkstemp() |
10931 | rm -f bison.s1 | | 10935 | rm -f bison.s1 |
10932 | sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > bison.s1</pre> | | 10936 | sed -e "/^#line/ s|bison|/usr/pkg/share/bison|" < ./bison.simple > bison.s1</pre> |
10933 | <p>Everything seems OK, so install the files:</p> | | 10937 | <p>Everything seems OK, so install the files:</p> |
10934 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> | | 10938 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> |
10935 | >> Checksum OK for bison-1.25.tar.gz. | | 10939 | >> Checksum OK for bison-1.25.tar.gz. |
10936 | ===> Installing for bison-1.25 | | 10940 | ===> Installing for bison-1.25 |
10937 | sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1 | | 10941 | sh ./mkinstalldirs /usr/pkg/bin /usr/pkg/share /usr/pkg/info /usr/pkg/man/man1 |
10938 | rm -f /usr/pkg/bin/bison | | 10942 | rm -f /usr/pkg/bin/bison |
10939 | cd /usr/pkg/share; rm -f bison.simple bison.hairy | | 10943 | cd /usr/pkg/share; rm -f bison.simple bison.hairy |
10940 | rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info* | | 10944 | rm -f /usr/pkg/man/man1/bison.1 /usr/pkg/info/bison.info* |
10941 | install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison | | 10945 | install -c -o bin -g bin -m 555 bison /usr/pkg/bin/bison |
10942 | /usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple | | 10946 | /usr/bin/install -c -o bin -g bin -m 644 bison.s1 /usr/pkg/share/bison.simple |
10943 | /usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy | | 10947 | /usr/bin/install -c -o bin -g bin -m 644 ./bison.hairy /usr/pkg/share/bison.hairy |
10944 | cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done | | 10948 | cd .; for f in bison.info*; do /usr/bin/install -c -o bin -g bin -m 644 $f /usr/pkg/info/$f; done |
10945 | /usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1 | | 10949 | /usr/bin/install -c -o bin -g bin -m 644 ./bison.1 /usr/pkg/man/man1/bison.1 |
10946 | ===> Registering installation for bison-1.25</pre> | | 10950 | ===> Registering installation for bison-1.25</pre> |
10947 | <p>You can now use bison, and also - if you decide so - remove it with | | 10951 | <p>You can now use bison, and also - if you decide so - remove it with |
10948 | <span class="command"><strong>pkg_delete bison</strong></span>. Should you decide that you want a | | 10952 | <span class="command"><strong>pkg_delete bison</strong></span>. Should you decide that you want a |
10949 | binary package, do this now:</p> | | 10953 | binary package, do this now:</p> |
10950 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong> | | 10954 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong> |
10951 | >> Checksum OK for bison-1.25.tar.gz. | | 10955 | >> Checksum OK for bison-1.25.tar.gz. |
10952 | ===> Building package for bison-1.25 | | 10956 | ===> Building package for bison-1.25 |
10953 | Creating package bison-1.25.tgz | | 10957 | Creating package bison-1.25.tgz |
10954 | Registering depends:. | | 10958 | Registering depends:. |
10955 | Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'</pre> | | 10959 | Creating gzip'd tar ball in '/u/pkgsrc/lang/bison/bison-1.25.tgz'</pre> |
10956 | <p>Now that you don't need the source and object files | | 10960 | <p>Now that you don't need the source and object files |
10957 | any more, clean up:</p> | | 10961 | any more, clean up:</p> |
10958 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make clean</code></strong> | | 10962 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make clean</code></strong> |
10959 | ===> Cleaning for bison-1.25</pre> | | 10963 | ===> Cleaning for bison-1.25</pre> |
10960 | </div> | | 10964 | </div> |
10961 | </div> | | 10965 | </div> |
10962 | <div class="appendix"> | | 10966 | <div class="appendix"> |
10963 | <div class="titlepage"><div><div><h1 class="title"> | | 10967 | <div class="titlepage"><div><div><h1 class="title"> |
10964 | <a name="hardening"></a>Appendix B. Security hardening</h1></div></div></div> | | 10968 | <a name="hardening"></a>Appendix B. Security hardening</h1></div></div></div> |
10965 | <div class="toc"> | | 10969 | <div class="toc"> |
10966 | <p><b>Table of Contents</b></p> | | 10970 | <p><b>Table of Contents</b></p> |
10967 | <dl class="toc"> | | 10971 | <dl class="toc"> |
10968 | <dt><span class="sect1"><a href="#hardening.mechanisms">B.1. Mechanisms</a></span></dt> | | 10972 | <dt><span class="sect1"><a href="#hardening.mechanisms">B.1. Mechanisms</a></span></dt> |
10969 | <dd><dl> | | 10973 | <dd><dl> |
10970 | <dt><span class="sect2"><a href="#hardening.mechanisms.enabled">B.1.1. Enabled by default</a></span></dt> | | 10974 | <dt><span class="sect2"><a href="#hardening.mechanisms.enabled">B.1.1. Enabled by default</a></span></dt> |
10971 | <dt><span class="sect2"><a href="#hardening.mechanisms.disabled">B.1.2. Not enabled by default</a></span></dt> | | 10975 | <dt><span class="sect2"><a href="#hardening.mechanisms.disabled">B.1.2. Not enabled by default</a></span></dt> |
10972 | </dl></dd> | | 10976 | </dl></dd> |
10973 | <dt><span class="sect1"><a href="#hardening.caveats">B.2. Caveats</a></span></dt> | | 10977 | <dt><span class="sect1"><a href="#hardening.caveats">B.2. Caveats</a></span></dt> |
10974 | <dd><dl> | | 10978 | <dd><dl> |
10975 | <dt><span class="sect2"><a href="#hardening.caveats.pie">B.2.1. Problems with PKGSRC_MKPIE</a></span></dt> | | 10979 | <dt><span class="sect2"><a href="#hardening.caveats.pie">B.2.1. Problems with PKGSRC_MKPIE</a></span></dt> |
10976 | <dt><span class="sect2"><a href="#hardening.caveats.fortify">B.2.2. Problems with PKGSRC_USE_FORTIFY</a></span></dt> | | 10980 | <dt><span class="sect2"><a href="#hardening.caveats.fortify">B.2.2. Problems with PKGSRC_USE_FORTIFY</a></span></dt> |
10977 | <dt><span class="sect2"><a href="#hardening.caveats.relro">B.2.3. Problems with PKGSRC_USE_RELRO</a></span></dt> | | 10981 | <dt><span class="sect2"><a href="#hardening.caveats.relro">B.2.3. Problems with PKGSRC_USE_RELRO</a></span></dt> |
10978 | <dt><span class="sect2"><a href="#hardening.caveats.ssp">B.2.4. Problems with PKGSRC_USE_SSP</a></span></dt> | | 10982 | <dt><span class="sect2"><a href="#hardening.caveats.ssp">B.2.4. Problems with PKGSRC_USE_SSP</a></span></dt> |
10979 | </dl></dd> | | 10983 | </dl></dd> |
10980 | <dt><span class="sect1"><a href="#hardening.audit">B.3. Auditing the system</a></span></dt> | | 10984 | <dt><span class="sect1"><a href="#hardening.audit">B.3. Auditing the system</a></span></dt> |
10981 | <dd><dl> | | 10985 | <dd><dl> |
10982 | <dt><span class="sect2"><a href="#hardening.audit.pie">B.3.1. Checking for PIE</a></span></dt> | | 10986 | <dt><span class="sect2"><a href="#hardening.audit.pie">B.3.1. Checking for PIE</a></span></dt> |
10983 | <dt><span class="sect2"><a href="#hardening.audit.relropartial">B.3.2. Checking for partial RELRO</a></span></dt> | | 10987 | <dt><span class="sect2"><a href="#hardening.audit.relropartial">B.3.2. Checking for partial RELRO</a></span></dt> |
10984 | <dt><span class="sect2"><a href="#hardening.audit.relrofull">B.3.3. Checking for full RELRO</a></span></dt> | | 10988 | <dt><span class="sect2"><a href="#hardening.audit.relrofull">B.3.3. Checking for full RELRO</a></span></dt> |
10985 | <dt><span class="sect2"><a href="#hardening.audit.ssp">B.3.4. Checking for SSP</a></span></dt> | | 10989 | <dt><span class="sect2"><a href="#hardening.audit.ssp">B.3.4. Checking for SSP</a></span></dt> |
10986 | </dl></dd> | | 10990 | </dl></dd> |
10987 | </dl> | | 10991 | </dl> |
10988 | </div> | | 10992 | </div> |
10989 | <p> | | 10993 | <p> |
10990 | A number of mechanisms are available in pkgsrc to improve the security of the | | 10994 | A number of mechanisms are available in pkgsrc to improve the security of the |
10991 | resulting system. This page describes the mechanisms, and gives hints | | 10995 | resulting system. This page describes the mechanisms, and gives hints |
10992 | about detecting and fixing problems. | | 10996 | about detecting and fixing problems. |
10993 | </p> | | 10997 | </p> |
10994 | <p> | | 10998 | <p> |
10995 | Mechanisms can be enabled individually in | | 10999 | Mechanisms can be enabled individually in |
10996 | <code class="filename">mk.conf</code>, and are | | 11000 | <code class="filename">mk.conf</code>, and are |
10997 | individually described below. | | 11001 | individually described below. |
10998 | </p> | | 11002 | </p> |
10999 | <p> | | 11003 | <p> |
11000 | Typically, a feature will cause some programs to fail to build or work | | 11004 | Typically, a feature will cause some programs to fail to build or work |
11001 | when first enabled. This can be due to latent problems in the | | 11005 | when first enabled. This can be due to latent problems in the |
11002 | program, and can be due to other reasons. After enough testing to | | 11006 | program, and can be due to other reasons. After enough testing to |
11003 | have confidence that user problems will be quite rare, individual | | 11007 | have confidence that user problems will be quite rare, individual |
11004 | mechanisms will be enabled by default. | | 11008 | mechanisms will be enabled by default. |
11005 | </p> | | 11009 | </p> |
11006 | <p> | | 11010 | <p> |
11007 | For each mechanism, see the Caveats section below for an explanation | | 11011 | For each mechanism, see the Caveats section below for an explanation |
11008 | of what might go wrong at compile time and at run time, and how to | | 11012 | of what might go wrong at compile time and at run time, and how to |
11009 | notice and address these problems. | | 11013 | notice and address these problems. |
11010 | </p> | | 11014 | </p> |
11011 | <div class="sect1"> | | 11015 | <div class="sect1"> |
11012 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11016 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11013 | <a name="hardening.mechanisms"></a>B.1. Mechanisms</h2></div></div></div> | | 11017 | <a name="hardening.mechanisms"></a>B.1. Mechanisms</h2></div></div></div> |
11014 | <div class="sect2"> | | 11018 | <div class="sect2"> |
11015 | <div class="titlepage"><div><div><h3 class="title"> | | 11019 | <div class="titlepage"><div><div><h3 class="title"> |
11016 | <a name="hardening.mechanisms.enabled"></a>B.1.1. Enabled by default</h3></div></div></div> | | 11020 | <a name="hardening.mechanisms.enabled"></a>B.1.1. Enabled by default</h3></div></div></div> |
11017 | <div class="sect3"> | | 11021 | <div class="sect3"> |
11018 | <div class="titlepage"><div><div><h4 class="title"> | | 11022 | <div class="titlepage"><div><div><h4 class="title"> |
11019 | <a name="hardening.mechanisms.enabled.fortify"></a>B.1.1.1. PKGSRC_USE_FORTIFY</h4></div></div></div> | | 11023 | <a name="hardening.mechanisms.enabled.fortify"></a>B.1.1.1. PKGSRC_USE_FORTIFY</h4></div></div></div> |
11020 | <p> | | 11024 | <p> |
11021 | This allows substitute wrappers to be used for some commonly used | | 11025 | This allows substitute wrappers to be used for some commonly used |
11022 | library functions that do not have built-in bounds checking - but | | 11026 | library functions that do not have built-in bounds checking - but |
11023 | could in some cases. | | 11027 | could in some cases. |
11024 | </p> | | 11028 | </p> |
11025 | <p> | | 11029 | <p> |
11026 | Two mitigation levels are available: | | 11030 | Two mitigation levels are available: |
11027 | </p> | | 11031 | </p> |
11028 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 11032 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
11029 | <li class="listitem"><p>"weak" only enables checks at compile-time.</p></li> | | 11033 | <li class="listitem"><p>"weak" only enables checks at compile-time.</p></li> |
11030 | <li class="listitem"><p>"strong" enables checks at compile-time and runtime.</p></li> | | 11034 | <li class="listitem"><p>"strong" enables checks at compile-time and runtime.</p></li> |
11031 | </ul></div> | | 11035 | </ul></div> |
11032 | <p> | | 11036 | <p> |
11033 | "strong" has been enabled by default since pkgsrc-2017Q3. | | 11037 | "strong" has been enabled by default since pkgsrc-2017Q3. |
11034 | </p> | | 11038 | </p> |
11035 | </div> | | 11039 | </div> |
11036 | <div class="sect3"> | | 11040 | <div class="sect3"> |
11037 | <div class="titlepage"><div><div><h4 class="title"> | | 11041 | <div class="titlepage"><div><div><h4 class="title"> |
11038 | <a name="hardening.mechanisms.enabled.ssp"></a>B.1.1.2. PKGSRC_USE_SSP</h4></div></div></div> | | 11042 | <a name="hardening.mechanisms.enabled.ssp"></a>B.1.1.2. PKGSRC_USE_SSP</h4></div></div></div> |
11039 | <p> | | 11043 | <p> |
11040 | This enables a stack-smashing protection mitigation. It is done by adding a | | 11044 | This enables a stack-smashing protection mitigation. It is done by adding a |
11041 | guard variable to functions with vulnerable objects. The guards are initialized | | 11045 | guard variable to functions with vulnerable objects. The guards are initialized |
11042 | when a function is entered and then checked when the function exits. The guard | | 11046 | when a function is entered and then checked when the function exits. The guard |
11043 | check will fail and the program forcibly exited if the variable was modified in | | 11047 | check will fail and the program forcibly exited if the variable was modified in |
11044 | the meantime. This can happen in case of buffer overflows or memory corruption, | | 11048 | the meantime. This can happen in case of buffer overflows or memory corruption, |
11045 | and therefore exposing these bugs. | | 11049 | and therefore exposing these bugs. |
11046 | </p> | | 11050 | </p> |
11047 | <p> | | 11051 | <p> |
11048 | Different mitigation levels are available: | | 11052 | Different mitigation levels are available: |
11049 | </p> | | 11053 | </p> |
11050 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 11054 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
11051 | <li class="listitem"><p>"yes", which will only protect functions considered vulnerable | | 11055 | <li class="listitem"><p>"yes", which will only protect functions considered vulnerable |
11052 | by the compiler;</p></li> | | 11056 | by the compiler;</p></li> |
11053 | <li class="listitem"><p>"all", which will protect every function;</p></li> | | 11057 | <li class="listitem"><p>"all", which will protect every function;</p></li> |
11054 | <li class="listitem"><p>"strong", the default, which will apply a better balance between the | | 11058 | <li class="listitem"><p>"strong", the default, which will apply a better balance between the |
11055 | two settings above.</p></li> | | 11059 | two settings above.</p></li> |
11056 | </ul></div> | | 11060 | </ul></div> |
11057 | <p> | | 11061 | <p> |
11058 | This mitigation is supported by both GCC and clang. It may be supported in | | 11062 | This mitigation is supported by both GCC and clang. It may be supported in |
11059 | additional compilers, possibly under a different name. It is particularly useful | | 11063 | additional compilers, possibly under a different name. It is particularly useful |
11060 | for unsafe programming languages, such as C/C++. | | 11064 | for unsafe programming languages, such as C/C++. |
11061 | </p> | | 11065 | </p> |
11062 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 11066 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
11063 | <li class="listitem"><p>"yes" is enabled by default where known supported since pkgsrc-2017Q3.</p></li> | | 11067 | <li class="listitem"><p>"yes" is enabled by default where known supported since pkgsrc-2017Q3.</p></li> |
11064 | <li class="listitem"><p>"strong" is enabled by default where known supported since pkgsrc-2021Q4.</p></li> | | 11068 | <li class="listitem"><p>"strong" is enabled by default where known supported since pkgsrc-2021Q4.</p></li> |
11065 | </ul></div> | | 11069 | </ul></div> |
11066 | <p>More details can be found here:</p> | | 11070 | <p>More details can be found here:</p> |
11067 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> | | 11071 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> |
11068 | <a class="ulink" href="https://en.wikipedia.org/wiki/Buffer_overflow_protection" target="_top">Buffer overflow protection on Wikipedia</a> | | 11072 | <a class="ulink" href="https://en.wikipedia.org/wiki/Buffer_overflow_protection" target="_top">Buffer overflow protection on Wikipedia</a> |
11069 | </p></li></ul></div> | | 11073 | </p></li></ul></div> |
11070 | </div> | | 11074 | </div> |
11071 | <div class="sect3"> | | 11075 | <div class="sect3"> |
11072 | <div class="titlepage"><div><div><h4 class="title"> | | 11076 | <div class="titlepage"><div><div><h4 class="title"> |
11073 | <a name="hardening.mechanisms.enabled.pie"></a>B.1.1.3. PKGSRC_MKPIE</h4></div></div></div> | | 11077 | <a name="hardening.mechanisms.enabled.pie"></a>B.1.1.3. PKGSRC_MKPIE</h4></div></div></div> |
11074 | <p> | | 11078 | <p> |
11075 | This requests the creation of PIE (Position Independent Executables) for all | | 11079 | This requests the creation of PIE (Position Independent Executables) for all |
11076 | executables. The PIE mechanism is normally used for shared libraries, so that | | 11080 | executables. The PIE mechanism is normally used for shared libraries, so that |
11077 | they can be loaded at differing addresses at runtime. PIE itself does not have | | 11081 | they can be loaded at differing addresses at runtime. PIE itself does not have |
11078 | useful security properties; however, it is necessary to fully leverage some, | | 11082 | useful security properties; however, it is necessary to fully leverage some, |
11079 | such as ASLR. Some operating systems support Address Space Layout Randomization | | 11083 | such as ASLR. Some operating systems support Address Space Layout Randomization |
11080 | (ASLR), which causes different addresses to be used each time a program is run. | | 11084 | (ASLR), which causes different addresses to be used each time a program is run. |
11081 | This makes it more difficult for an attacker to guess addresses and thus makes | | 11085 | This makes it more difficult for an attacker to guess addresses and thus makes |
11082 | exploits harder to construct. With PIE, ASLR can really be applied to the entire | | 11086 | exploits harder to construct. With PIE, ASLR can really be applied to the entire |
11083 | program, instead of the stack and heap only. | | 11087 | program, instead of the stack and heap only. |
11084 | </p> | | 11088 | </p> |
11085 | <p> | | 11089 | <p> |
11086 | PIE executables will only be built for toolchains that are known to support PIE. | | 11090 | PIE executables will only be built for toolchains that are known to support PIE. |
11087 | Currently, this means NetBSD on x86, ARM, SPARC64, m68k, and MIPS. | | 11091 | Currently, this means NetBSD on x86, ARM, SPARC64, m68k, and MIPS. |
11088 | </p> | | 11092 | </p> |
11089 | <p> | | 11093 | <p> |
11090 | <code class="varname">PKGSRC_MKPIE</code> was enabled by default after the pkgsrc-2021Q3 branch. | | 11094 | <code class="varname">PKGSRC_MKPIE</code> was enabled by default after the pkgsrc-2021Q3 branch. |
11091 | </p> | | 11095 | </p> |
11092 | </div> | | 11096 | </div> |
11093 | <div class="sect3"> | | 11097 | <div class="sect3"> |
11094 | <div class="titlepage"><div><div><h4 class="title"> | | 11098 | <div class="titlepage"><div><div><h4 class="title"> |
11095 | <a name="hardening.mechanisms.enabled.relro"></a>B.1.1.4. PKGSRC_USE_RELRO</h4></div></div></div> | | 11099 | <a name="hardening.mechanisms.enabled.relro"></a>B.1.1.4. PKGSRC_USE_RELRO</h4></div></div></div> |
11096 | <p> | | 11100 | <p> |
11097 | This also makes the exploitation of some security vulnerabilities more | | 11101 | This also makes the exploitation of some security vulnerabilities more |
11098 | difficult in some cases. | | 11102 | difficult in some cases. |
11099 | </p> | | 11103 | </p> |
11100 | <p>Two different mitigation levels are available:</p> | | 11104 | <p>Two different mitigation levels are available:</p> |
11101 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 11105 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
11102 | <li class="listitem"><p> | | 11106 | <li class="listitem"><p> |
11103 | partial (the default): the ELF sections are reordered so that internal data sections | | 11107 | partial (the default): the ELF sections are reordered so that internal data sections |
11104 | precede the program's own data sections, and non-PLT GOT is read-only; | | 11108 | precede the program's own data sections, and non-PLT GOT is read-only; |
11105 | </p></li> | | 11109 | </p></li> |
11106 | <li class="listitem"><p> | | 11110 | <li class="listitem"><p> |
11107 | full: in addition to partial RELRO, every relocation is performed immediately | | 11111 | full: in addition to partial RELRO, every relocation is performed immediately |
11108 | when starting the program, allowing the entire GOT to be read-only. This | | 11112 | when starting the program, allowing the entire GOT to be read-only. This |
11109 | can greatly slow down startup of large programs. | | 11113 | can greatly slow down startup of large programs. |
11110 | </p></li> | | 11114 | </p></li> |
11111 | </ul></div> | | 11115 | </ul></div> |
11112 | <p> | | 11116 | <p> |
11113 | This is currently supported by GCC. Many software distributions now enable this | | 11117 | This is currently supported by GCC. Many software distributions now enable this |
11114 | feature by default, at the "partial" level. | | 11118 | feature by default, at the "partial" level. |
11115 | </p> | | 11119 | </p> |
11116 | <p> | | 11120 | <p> |
11117 | More details can be found here: | | 11121 | More details can be found here: |
11118 | </p> | | 11122 | </p> |
11119 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> | | 11123 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> |
11120 | <a class="ulink" href="https://www.redhat.com/en/blog/hardening-elf-binaries-using-relocation-read-only-relro" target="_top">Hardening ELF binaries using Relocation Read-Only (RELRO)</a> | | 11124 | <a class="ulink" href="https://www.redhat.com/en/blog/hardening-elf-binaries-using-relocation-read-only-relro" target="_top">Hardening ELF binaries using Relocation Read-Only (RELRO)</a> |
11121 | </p></li></ul></div> | | 11125 | </p></li></ul></div> |
11122 | </div> | | 11126 | </div> |
11123 | </div> | | 11127 | </div> |
11124 | <div class="sect2"> | | 11128 | <div class="sect2"> |
11125 | <div class="titlepage"><div><div><h3 class="title"> | | 11129 | <div class="titlepage"><div><div><h3 class="title"> |
11126 | <a name="hardening.mechanisms.disabled"></a>B.1.2. Not enabled by default</h3></div></div></div> | | 11130 | <a name="hardening.mechanisms.disabled"></a>B.1.2. Not enabled by default</h3></div></div></div> |
11127 | <div class="sect3"> | | 11131 | <div class="sect3"> |
11128 | <div class="titlepage"><div><div><h4 class="title"> | | 11132 | <div class="titlepage"><div><div><h4 class="title"> |
11129 | <a name="hardening.mechanisms.disabled.repro"></a>B.1.2.1. PKGSRC_MKREPRO</h4></div></div></div> | | 11133 | <a name="hardening.mechanisms.disabled.repro"></a>B.1.2.1. PKGSRC_MKREPRO</h4></div></div></div> |
11130 | <p> | | 11134 | <p> |
11131 | With this option, pkgsrc will try to build packages reproducibly. This allows | | 11135 | With this option, pkgsrc will try to build packages reproducibly. This allows |
11132 | packages built from the same tree and with the same options, to produce | | 11136 | packages built from the same tree and with the same options, to produce |
11133 | identical results bit by bit. This option should be combined with ASLR and | | 11137 | identical results bit by bit. This option should be combined with ASLR and |
11134 | <code class="varname">PKGSRC_MKPIE</code> to avoid predictable address offsets for | | 11138 | <code class="varname">PKGSRC_MKPIE</code> to avoid predictable address offsets for |
11135 | attackers attempting to exploit security vulnerabilities. | | 11139 | attackers attempting to exploit security vulnerabilities. |
11136 | </p> | | 11140 | </p> |
11137 | <p> | | 11141 | <p> |
11138 | More details can be found here: | | 11142 | More details can be found here: |
11139 | </p> | | 11143 | </p> |
11140 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> | | 11144 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> |
11141 | <a class="ulink" href="https://reproducible-builds.org/" target="_top">Reproducible Builds - a set of software development practices that create an independently-verifiable path from source to binary code</a> | | 11145 | <a class="ulink" href="https://reproducible-builds.org/" target="_top">Reproducible Builds - a set of software development practices that create an independently-verifiable path from source to binary code</a> |
11142 | </p></li></ul></div> | | 11146 | </p></li></ul></div> |
11143 | <p> | | 11147 | <p> |
11144 | More work likely needs to be done before pkgsrc is fully reproducible. | | 11148 | More work likely needs to be done before pkgsrc is fully reproducible. |
11145 | </p> | | 11149 | </p> |
11146 | </div> | | 11150 | </div> |
11147 | <div class="sect3"> | | 11151 | <div class="sect3"> |
11148 | <div class="titlepage"><div><div><h4 class="title"> | | 11152 | <div class="titlepage"><div><div><h4 class="title"> |
11149 | <a name="hardening.mechanisms.disabled.stackcheck"></a>B.1.2.2. PKGSRC_USE_STACK_CHECK</h4></div></div></div> | | 11153 | <a name="hardening.mechanisms.disabled.stackcheck"></a>B.1.2.2. PKGSRC_USE_STACK_CHECK</h4></div></div></div> |
11150 | <p> | | 11154 | <p> |
11151 | This uses <code class="literal">-fstack-check</code> with GCC for | | 11155 | This uses <code class="literal">-fstack-check</code> with GCC for |
11152 | another stack protection mitigation. | | 11156 | another stack protection mitigation. |
11153 | </p> | | 11157 | </p> |
11154 | <p> | | 11158 | <p> |
11155 | It asks the compiler to generate code verifying that it does not corrupt the | | 11159 | It asks the compiler to generate code verifying that it does not corrupt the |
11156 | stack. According to GCC's manual page, this is really only useful for | | 11160 | stack. According to GCC's manual page, this is really only useful for |
11157 | multi-threaded programs. | | 11161 | multi-threaded programs. |
11158 | </p> | | 11162 | </p> |
11159 | </div> | | 11163 | </div> |
11160 | </div> | | 11164 | </div> |
11161 | </div> | | 11165 | </div> |
11162 | <div class="sect1"> | | 11166 | <div class="sect1"> |
11163 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11167 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11164 | <a name="hardening.caveats"></a>B.2. Caveats</h2></div></div></div> | | 11168 | <a name="hardening.caveats"></a>B.2. Caveats</h2></div></div></div> |
11165 | <div class="sect2"> | | 11169 | <div class="sect2"> |
11166 | <div class="titlepage"><div><div><h3 class="title"> | | 11170 | <div class="titlepage"><div><div><h3 class="title"> |
11167 | <a name="hardening.caveats.pie"></a>B.2.1. Problems with PKGSRC_MKPIE</h3></div></div></div> | | 11171 | <a name="hardening.caveats.pie"></a>B.2.1. Problems with PKGSRC_MKPIE</h3></div></div></div> |
11168 | <div class="sect3"> | | 11172 | <div class="sect3"> |
11169 | <div class="titlepage"><div><div><h4 class="title"> | | 11173 | <div class="titlepage"><div><div><h4 class="title"> |
11170 | <a name="hardening.caveats.pie.build"></a>B.2.1.1. Packages failing to build</h4></div></div></div> | | 11174 | <a name="hardening.caveats.pie.build"></a>B.2.1.1. Packages failing to build</h4></div></div></div> |
11171 | <p> | | 11175 | <p> |
11172 | A number of packages may fail to build with this option enabled. The | | 11176 | A number of packages may fail to build with this option enabled. The |
11173 | failures are often related to the absence of the <code class="literal">-fPIC</code> | | 11177 | failures are often related to the absence of the <code class="literal">-fPIC</code> |
11174 | compilation flag when building libraries or executables (or ideally | | 11178 | compilation flag when building libraries or executables (or ideally |
11175 | <code class="literal">-fPIE</code> in the latter case). This flag is added to the | | 11179 | <code class="literal">-fPIE</code> in the latter case). This flag is added to the |
11176 | <code class="varname">CFLAGS</code> already, but requires the package to | | 11180 | <code class="varname">CFLAGS</code> already, but requires the package to |
11177 | actually support it. | | 11181 | actually support it. |
11178 | </p> | | 11182 | </p> |
11179 | <div class="sect4"> | | 11183 | <div class="sect4"> |
11180 | <div class="titlepage"><div><div><h5 class="title"> | | 11184 | <div class="titlepage"><div><div><h5 class="title"> |
11181 | <a name="hardening.caveats.pie.build.fix"></a>B.2.1.1.1. How to fix</h5></div></div></div> | | 11185 | <a name="hardening.caveats.pie.build.fix"></a>B.2.1.1.1. How to fix</h5></div></div></div> |
11182 | <p> | | 11186 | <p> |
11183 | These instructions are meant as a reference only; they likely need to be adapted | | 11187 | These instructions are meant as a reference only; they likely need to be adapted |
11184 | for many packages individually. | | 11188 | for many packages individually. |
11185 | </p> | | 11189 | </p> |
11186 | <p> | | 11190 | <p> |
11187 | For packages using <code class="filename">Makefiles</code>: | | 11191 | For packages using <code class="filename">Makefiles</code>: |
11188 | </p> | | 11192 | </p> |
11189 | <pre class="programlisting"> | | 11193 | <pre class="programlisting"> |
11190 | MAKE_FLAGS+= CFLAGS=${CFLAGS:Q} | | 11194 | MAKE_FLAGS+= CFLAGS=${CFLAGS:Q} |
11191 | MAKE_FLAGS+= LDFLAGS=${LDFLAGS:Q} | | 11195 | MAKE_FLAGS+= LDFLAGS=${LDFLAGS:Q} |
11192 | </pre> | | 11196 | </pre> |
11193 | <p> | | 11197 | <p> |
11194 | For packages using <code class="filename">Imakefiles</code>: | | 11198 | For packages using <code class="filename">Imakefiles</code>: |
11195 | </p> | | 11199 | </p> |
11196 | <pre class="programlisting"> | | 11200 | <pre class="programlisting"> |
11197 | MAKE_FLAGS+= CCOPTIONS=${CFLAGS:Q} | | 11201 | MAKE_FLAGS+= CCOPTIONS=${CFLAGS:Q} |
11198 | MAKE_FLAGS+= LOCAL_LDFLAGS=${LDFLAGS:Q} | | 11202 | MAKE_FLAGS+= LOCAL_LDFLAGS=${LDFLAGS:Q} |
11199 | </pre> | | 11203 | </pre> |
11200 | </div> | | 11204 | </div> |
11201 | </div> | | 11205 | </div> |
11202 | <div class="sect3"> | | 11206 | <div class="sect3"> |
11203 | <div class="titlepage"><div><div><h4 class="title"> | | 11207 | <div class="titlepage"><div><div><h4 class="title"> |
11204 | <a name="hardening.caveats.pie.crash"></a>B.2.1.2. Run-time crashes</h4></div></div></div> | | 11208 | <a name="hardening.caveats.pie.crash"></a>B.2.1.2. Run-time crashes</h4></div></div></div> |
11205 | <p> | | 11209 | <p> |
11206 | Some programs may fail to run, or crash at random times once built as PIE. Two | | 11210 | Some programs may fail to run, or crash at random times once built as PIE. Two |
11207 | scenarios are essentially possible. This is nearly always due to a bug in | | 11211 | scenarios are essentially possible. This is nearly always due to a bug in |
11208 | the program being exposed due to ASLR. | | 11212 | the program being exposed due to ASLR. |
11209 | </p> | | 11213 | </p> |
11210 | </div> | | 11214 | </div> |
11211 | <div class="sect3"> | | 11215 | <div class="sect3"> |
11212 | <div class="titlepage"><div><div><h4 class="title"> | | 11216 | <div class="titlepage"><div><div><h4 class="title"> |
11213 | <a name="hardening.caveats.pie.disable"></a>B.2.1.3. Disabling PKGSRC_MKPIE on a per-package basis</h4></div></div></div> | | 11217 | <a name="hardening.caveats.pie.disable"></a>B.2.1.3. Disabling PKGSRC_MKPIE on a per-package basis</h4></div></div></div> |
11214 | <p> | | 11218 | <p> |
11215 | Ideally, packages should be fixed for compatibility with MKPIE. | | 11219 | Ideally, packages should be fixed for compatibility with MKPIE. |
11216 | However, in some cases this is very difficult, due to complex build systems, | | 11220 | However, in some cases this is very difficult, due to complex build systems, |
11217 | packages using non-standard toolchains, or programming languages with odd | | 11221 | packages using non-standard toolchains, or programming languages with odd |
11218 | bootstrapping mechanisms. | | 11222 | bootstrapping mechanisms. |
11219 | </p> | | 11223 | </p> |
11220 | <p> | | 11224 | <p> |
11221 | To disable <code class="varname">PKGSRC_MKPIE</code> on a per-package basis, set | | 11225 | To disable <code class="varname">PKGSRC_MKPIE</code> on a per-package basis, set |
11222 | <code class="varname">MKPIE_SUPPORTED= no</code> in the package's Makefile before | | 11226 | <code class="varname">MKPIE_SUPPORTED= no</code> in the package's Makefile before |
11223 | <code class="filename">bsd.prefs.mk</code> is included. | | 11227 | <code class="filename">bsd.prefs.mk</code> is included. |
11224 | </p> | | 11228 | </p> |
11225 | </div> | | 11229 | </div> |
11226 | </div> | | 11230 | </div> |
11227 | <div class="sect2"> | | 11231 | <div class="sect2"> |
11228 | <div class="titlepage"><div><div><h3 class="title"> | | 11232 | <div class="titlepage"><div><div><h3 class="title"> |
11229 | <a name="hardening.caveats.fortify"></a>B.2.2. Problems with PKGSRC_USE_FORTIFY</h3></div></div></div> | | 11233 | <a name="hardening.caveats.fortify"></a>B.2.2. Problems with PKGSRC_USE_FORTIFY</h3></div></div></div> |
11230 | <div class="sect3"> | | 11234 | <div class="sect3"> |
11231 | <div class="titlepage"><div><div><h4 class="title"> | | 11235 | <div class="titlepage"><div><div><h4 class="title"> |
11232 | <a name="hardening.caveats.fortify.build"></a>B.2.2.1. Packages failing to build</h4></div></div></div> | | 11236 | <a name="hardening.caveats.fortify.build"></a>B.2.2.1. Packages failing to build</h4></div></div></div> |
11233 | <p> | | 11237 | <p> |
11234 | This feature makes use of pre-processing directives to look for hardened, | | 11238 | This feature makes use of pre-processing directives to look for hardened, |
11235 | alternative implementations of essential library calls. Some programs may fail | | 11239 | alternative implementations of essential library calls. Some programs may fail |
11236 | to build as a result; this usually happens for those trying too hard to be | | 11240 | to build as a result; this usually happens for those trying too hard to be |
11237 | portable, or otherwise abusing definitions in the standard library. | | 11241 | portable, or otherwise abusing definitions in the standard library. |
11238 | </p> | | 11242 | </p> |
11239 | </div> | | 11243 | </div> |
11240 | <div class="sect3"> | | 11244 | <div class="sect3"> |
11241 | <div class="titlepage"><div><div><h4 class="title"> | | 11245 | <div class="titlepage"><div><div><h4 class="title"> |
11242 | <a name="hardening.caveats.fortify.crash"></a>B.2.2.2. Run-time crashes</h4></div></div></div> | | 11246 | <a name="hardening.caveats.fortify.crash"></a>B.2.2.2. Run-time crashes</h4></div></div></div> |
11243 | <p> | | 11247 | <p> |
11244 | This feature may cause some programs to crash, usually indicating an | | 11248 | This feature may cause some programs to crash, usually indicating an |
11245 | actual bug in the program. The fix will typically involve patching the | | 11249 | actual bug in the program. The fix will typically involve patching the |
11246 | original program's source code. | | 11250 | original program's source code. |
11247 | </p> | | 11251 | </p> |
11248 | </div> | | 11252 | </div> |
11249 | <div class="sect3"> | | 11253 | <div class="sect3"> |
11250 | <div class="titlepage"><div><div><h4 class="title"> | | 11254 | <div class="titlepage"><div><div><h4 class="title"> |
11251 | <a name="hardening.caveats.fortify.opt"></a>B.2.2.3. Optimization is required</h4></div></div></div> | | 11255 | <a name="hardening.caveats.fortify.opt"></a>B.2.2.3. Optimization is required</h4></div></div></div> |
11252 | <p> | | 11256 | <p> |
11253 | At least in the case of GCC, FORTIFY will only be applied if optimization is | | 11257 | At least in the case of GCC, FORTIFY will only be applied if optimization is |
11254 | applied while compiling. This means that the <code class="varname">CFLAGS</code> should | | 11258 | applied while compiling. This means that the <code class="varname">CFLAGS</code> should |
11255 | also contain <code class="literal">-O</code>, <code class="literal">-O2</code> or another | | 11259 | also contain <code class="literal">-O</code>, <code class="literal">-O2</code> or another |
11256 | optimization level. This cannot easily be applied globally, as some packages | | 11260 | optimization level. This cannot easily be applied globally, as some packages |
11257 | may require specific optimization levels. | | 11261 | may require specific optimization levels. |
11258 | </p> | | 11262 | </p> |
11259 | </div> | | 11263 | </div> |
11260 | <div class="sect3"> | | 11264 | <div class="sect3"> |
11261 | <div class="titlepage"><div><div><h4 class="title"> | | 11265 | <div class="titlepage"><div><div><h4 class="title"> |
11262 | <a name="hardening.caveats.fortify.disable"></a>B.2.2.4. Disabling FORTIFY on a per-package basis</h4></div></div></div> | | 11266 | <a name="hardening.caveats.fortify.disable"></a>B.2.2.4. Disabling FORTIFY on a per-package basis</h4></div></div></div> |
11263 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> | | 11267 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
11264 | <h3 class="title">Note</h3> | | 11268 | <h3 class="title">Note</h3> |
11265 | <p>FORTIFY should not be disabled to work around runtime crashes in | | 11269 | <p>FORTIFY should not be disabled to work around runtime crashes in |
11266 | the program! This is a very bad idea and will expose you to security | | 11270 | the program! This is a very bad idea and will expose you to security |
11267 | vulnerabilities. | | 11271 | vulnerabilities. |
11268 | </p> | | 11272 | </p> |
11269 | </div> | | 11273 | </div> |
11270 | <p> | | 11274 | <p> |
11271 | To disable FORTIFY on a per-package basis, set the following | | 11275 | To disable FORTIFY on a per-package basis, set the following |
11272 | in the package's <code class="filename">Makefile</code> | | 11276 | in the package's <code class="filename">Makefile</code> |
11273 | before <code class="filename">bsd.prefs.mk</code> is included: | | 11277 | before <code class="filename">bsd.prefs.mk</code> is included: |
11274 | </p> | | 11278 | </p> |
11275 | <pre class="programlisting"> | | 11279 | <pre class="programlisting"> |
11276 | FORTIFY_SUPPORTED= no | | 11280 | FORTIFY_SUPPORTED= no |
11277 | </pre> | | 11281 | </pre> |
11278 | </div> | | 11282 | </div> |
11279 | </div> | | 11283 | </div> |
11280 | <div class="sect2"> | | 11284 | <div class="sect2"> |
11281 | <div class="titlepage"><div><div><h3 class="title"> | | 11285 | <div class="titlepage"><div><div><h3 class="title"> |
11282 | <a name="hardening.caveats.relro"></a>B.2.3. Problems with PKGSRC_USE_RELRO</h3></div></div></div> | | 11286 | <a name="hardening.caveats.relro"></a>B.2.3. Problems with PKGSRC_USE_RELRO</h3></div></div></div> |
11283 | <div class="sect3"> | | 11287 | <div class="sect3"> |
11284 | <div class="titlepage"><div><div><h4 class="title"> | | 11288 | <div class="titlepage"><div><div><h4 class="title"> |
11285 | <a name="hardening.caveats.relro.performance"></a>B.2.3.1. Performance impact</h4></div></div></div> | | 11289 | <a name="hardening.caveats.relro.performance"></a>B.2.3.1. Performance impact</h4></div></div></div> |
11286 | <p> | | 11290 | <p> |
11287 | For better protection, full RELRO requires every symbol to be resolved when the | | 11291 | For better protection, full RELRO requires every symbol to be resolved when the |
11288 | program starts, rather than simply when required at run-time. This will have | | 11292 | program starts, rather than simply when required at run-time. This will have |
11289 | more impact on programs using a lot of symbols, or linked to libraries exposing | | 11293 | more impact on programs using a lot of symbols, or linked to libraries exposing |
11290 | a lot of symbols. Therefore, daemons or programs otherwise running in | | 11294 | a lot of symbols. Therefore, daemons or programs otherwise running in |
11291 | background are affected only when started. Programs loading plug-ins at | | 11295 | background are affected only when started. Programs loading plug-ins at |
11292 | run-time are affected when loading the plug-ins. | | 11296 | run-time are affected when loading the plug-ins. |
11293 | </p> | | 11297 | </p> |
11294 | <p> | | 11298 | <p> |
11295 | The impact is not expected to be noticeable on modern hardware, except in some | | 11299 | The impact is not expected to be noticeable on modern hardware, except in some |
11296 | cases for big programs. | | 11300 | cases for big programs. |
11297 | </p> | | 11301 | </p> |
11298 | </div> | | 11302 | </div> |
11299 | <div class="sect3"> | | 11303 | <div class="sect3"> |
11300 | <div class="titlepage"><div><div><h4 class="title"> | | 11304 | <div class="titlepage"><div><div><h4 class="title"> |
11301 | <a name="hardening.caveats.relro.crash"></a>B.2.3.2. Run-time crashes</h4></div></div></div> | | 11305 | <a name="hardening.caveats.relro.crash"></a>B.2.3.2. Run-time crashes</h4></div></div></div> |
11302 | <p> | | 11306 | <p> |
11303 | Some programs handle plug-ins and dependencies in a way that conflicts with | | 11307 | Some programs handle plug-ins and dependencies in a way that conflicts with |
11304 | RELRO: for instance, with an initialization routine listing any other plug-in | | 11308 | RELRO: for instance, with an initialization routine listing any other plug-in |
11305 | required. With full RELRO, the missing symbols are resolved before the | | 11309 | required. With full RELRO, the missing symbols are resolved before the |
11306 | initialization routine can run, and the dynamic loader will not be able to find | | 11310 | initialization routine can run, and the dynamic loader will not be able to find |
11307 | them directly and abort as a result. Unfortunately, this is how Xorg loads its | | 11311 | them directly and abort as a result. Unfortunately, this is how Xorg loads its |
11308 | drivers. Partial RELRO can be applied instead in this case. | | 11312 | drivers. Partial RELRO can be applied instead in this case. |
11309 | </p> | | 11313 | </p> |
11310 | </div> | | 11314 | </div> |
11311 | <div class="sect3"> | | 11315 | <div class="sect3"> |
11312 | <div class="titlepage"><div><div><h4 class="title"> | | 11316 | <div class="titlepage"><div><div><h4 class="title"> |
11313 | <a name="hardening.caveats.relro.disable"></a>B.2.3.3. Disabling RELRO on a per-package basis</h4></div></div></div> | | 11317 | <a name="hardening.caveats.relro.disable"></a>B.2.3.3. Disabling RELRO on a per-package basis</h4></div></div></div> |
11314 | <p> | | 11318 | <p> |
11315 | To disable RELRO on a per-package basis, set the following | | 11319 | To disable RELRO on a per-package basis, set the following |
11316 | in the package's <code class="filename">Makefile</code> | | 11320 | in the package's <code class="filename">Makefile</code> |
11317 | before <code class="filename">bsd.prefs.mk</code> is included: | | 11321 | before <code class="filename">bsd.prefs.mk</code> is included: |
11318 | </p> | | 11322 | </p> |
11319 | <pre class="programlisting"> | | 11323 | <pre class="programlisting"> |
11320 | RELRO_SUPPORTED= no | | 11324 | RELRO_SUPPORTED= no |
11321 | </pre> | | 11325 | </pre> |
11322 | <p> | | 11326 | <p> |
11323 | It is also possible to at most enable partial RELRO, by | | 11327 | It is also possible to at most enable partial RELRO, by |
11324 | setting <code class="varname">RELRO_SUPPORTED</code> to <code class="literal">partial</code>. | | 11328 | setting <code class="varname">RELRO_SUPPORTED</code> to <code class="literal">partial</code>. |
11325 | </p> | | 11329 | </p> |
11326 | </div> | | 11330 | </div> |
11327 | </div> | | 11331 | </div> |
11328 | <div class="sect2"> | | 11332 | <div class="sect2"> |
11329 | <div class="titlepage"><div><div><h3 class="title"> | | 11333 | <div class="titlepage"><div><div><h3 class="title"> |
11330 | <a name="hardening.caveats.ssp"></a>B.2.4. Problems with PKGSRC_USE_SSP</h3></div></div></div> | | 11334 | <a name="hardening.caveats.ssp"></a>B.2.4. Problems with PKGSRC_USE_SSP</h3></div></div></div> |
11331 | <div class="sect3"> | | 11335 | <div class="sect3"> |
11332 | <div class="titlepage"><div><div><h4 class="title"> | | 11336 | <div class="titlepage"><div><div><h4 class="title"> |
11333 | <a name="hardening.caveats.ssp.build"></a>B.2.4.1. Packages failing to build</h4></div></div></div> | | 11337 | <a name="hardening.caveats.ssp.build"></a>B.2.4.1. Packages failing to build</h4></div></div></div> |
11334 | <p> | | 11338 | <p> |
11335 | The stack-smashing protection provided by this option does not work for some | | 11339 | The stack-smashing protection provided by this option does not work for some |
11336 | programs. The most common situation in which this happens is when the program | | 11340 | programs. The most common situation in which this happens is when the program |
11337 | allocates variables on the stack, with the size determined at run-time. | | 11341 | allocates variables on the stack, with the size determined at run-time. |
11338 | </p> | | 11342 | </p> |
11339 | </div> | | 11343 | </div> |
11340 | <div class="sect3"> | | 11344 | <div class="sect3"> |
11341 | <div class="titlepage"><div><div><h4 class="title"> | | 11345 | <div class="titlepage"><div><div><h4 class="title"> |
11342 | <a name="hardening.caveats.ssp.crash"></a>B.2.4.2. Run-time crashes</h4></div></div></div> | | 11346 | <a name="hardening.caveats.ssp.crash"></a>B.2.4.2. Run-time crashes</h4></div></div></div> |
11343 | <p> | | 11347 | <p> |
11344 | Again, this feature may cause some programs to crash via a | | 11348 | Again, this feature may cause some programs to crash via a |
11345 | <code class="varname">SIGABRT</code>, usually indicating an actual bug in the program. | | 11349 | <code class="varname">SIGABRT</code>, usually indicating an actual bug in the program. |
11346 | </p> | | 11350 | </p> |
11347 | <p> | | 11351 | <p> |
11348 | On NetBSD <code class="varname">LOG_CRIT</code> level syslog | | 11352 | On NetBSD <code class="varname">LOG_CRIT</code> level syslog |
11349 | messages are sent and - by default - | | 11353 | messages are sent and - by default - |
11350 | appended to <code class="filename">/var/log/messages</code>, e.g.: | | 11354 | appended to <code class="filename">/var/log/messages</code>, e.g.: |
11351 | </p> | | 11355 | </p> |
11352 | <pre class="programlisting"> | | 11356 | <pre class="programlisting"> |
11353 | Jan 6 15:42:51 hostname -: hostname program - - - buffer overflow detected; terminated | | 11357 | Jan 6 15:42:51 hostname -: hostname program - - - buffer overflow detected; terminated |
11354 | </pre> | | 11358 | </pre> |
11355 | <p> | | 11359 | <p> |
11356 | (where <code class="literal">hostname</code> is the hostname(1) and | | 11360 | (where <code class="literal">hostname</code> is the hostname(1) and |
11357 | <code class="literal">program</code> is the basename(1) of the program crashed). | | 11361 | <code class="literal">program</code> is the basename(1) of the program crashed). |
11358 | </p> | | 11362 | </p> |
11359 | <p> | | 11363 | <p> |
11360 | Patching the original program is then required. | | 11364 | Patching the original program is then required. |
11361 | </p> | | 11365 | </p> |
11362 | <p> | | 11366 | <p> |
11363 | Rebuilding the package via: | | 11367 | Rebuilding the package via: |
11364 | </p> | | 11368 | </p> |
11365 | <pre class="programlisting"> | | 11369 | <pre class="programlisting"> |
11366 | <strong class="userinput"><code>% env CFLAGS=-g INSTALL_UNSTRIPPED=yes make replace</code></strong> | | 11370 | <strong class="userinput"><code>% env CFLAGS=-g INSTALL_UNSTRIPPED=yes make replace</code></strong> |
11367 | </pre> | | 11371 | </pre> |
11368 | <p> | | 11372 | <p> |
11369 | and inspecting the backtrace of the coredump via the debugger | | 11373 | and inspecting the backtrace of the coredump via the debugger |
11370 | should point out the problematic call by inspecting the frame | | 11374 | should point out the problematic call by inspecting the frame |
11371 | calling the _chk() (SSP) function. | | 11375 | calling the _chk() (SSP) function. |
11372 | </p> | | 11376 | </p> |
11373 | </div> | | 11377 | </div> |
11374 | <div class="sect3"> | | 11378 | <div class="sect3"> |
11375 | <div class="titlepage"><div><div><h4 class="title"> | | 11379 | <div class="titlepage"><div><div><h4 class="title"> |
11376 | <a name="hardening.caveats.ssp.performance"></a>B.2.4.3. Performance impact</h4></div></div></div> | | 11380 | <a name="hardening.caveats.ssp.performance"></a>B.2.4.3. Performance impact</h4></div></div></div> |
11377 | <p> | | 11381 | <p> |
11378 | The compiler emits extra code when using this feature: a check for buffer | | 11382 | The compiler emits extra code when using this feature: a check for buffer |
11379 | overflows is performed when entering and exiting functions, requiring an extra | | 11383 | overflows is performed when entering and exiting functions, requiring an extra |
11380 | variable on the stack. The level of protection can otherwise be adjusted to | | 11384 | variable on the stack. The level of protection can otherwise be adjusted to |
11381 | affect only those functions considered more sensitive by the compiler (with | | 11385 | affect only those functions considered more sensitive by the compiler (with |
11382 | -fstack-protector instead of -fstack-protector-all). | | 11386 | -fstack-protector instead of -fstack-protector-all). |
11383 | </p> | | 11387 | </p> |
11384 | <p> | | 11388 | <p> |
11385 | The impact is not expected to be noticeable on modern hardware. However, | | 11389 | The impact is not expected to be noticeable on modern hardware. However, |
11386 | programs with a hard requirement to run at the fastest possible speed should | | 11390 | programs with a hard requirement to run at the fastest possible speed should |
11387 | avoid using this feature, or using libraries built with this feature. | | 11391 | avoid using this feature, or using libraries built with this feature. |
11388 | </p> | | 11392 | </p> |
11389 | </div> | | 11393 | </div> |
11390 | <div class="sect3"> | | 11394 | <div class="sect3"> |
11391 | <div class="titlepage"><div><div><h4 class="title"> | | 11395 | <div class="titlepage"><div><div><h4 class="title"> |
11392 | <a name="hardening.caveats.ssp.disable"></a>B.2.4.4. Disabling SSP on a per-package basis</h4></div></div></div> | | 11396 | <a name="hardening.caveats.ssp.disable"></a>B.2.4.4. Disabling SSP on a per-package basis</h4></div></div></div> |
11393 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> | | 11397 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
11394 | <h3 class="title">Note</h3> | | 11398 | <h3 class="title">Note</h3> |
11395 | <p>SSP should not be disabled to work around runtime crashes in | | 11399 | <p>SSP should not be disabled to work around runtime crashes in |
11396 | the program! This is a very bad idea and will expose you to security | | 11400 | the program! This is a very bad idea and will expose you to security |
11397 | vulnerabilities.</p> | | 11401 | vulnerabilities.</p> |
11398 | </div> | | 11402 | </div> |
11399 | <p> | | 11403 | <p> |
11400 | To disable SSP on a per-package basis, set the following | | 11404 | To disable SSP on a per-package basis, set the following |
11401 | in the package's <code class="filename">Makefile</code> | | 11405 | in the package's <code class="filename">Makefile</code> |
11402 | before <code class="filename">bsd.prefs.mk</code> is included: | | 11406 | before <code class="filename">bsd.prefs.mk</code> is included: |
11403 | </p> | | 11407 | </p> |
11404 | <pre class="programlisting"> | | 11408 | <pre class="programlisting"> |
11405 | SSP_SUPPORTED= no | | 11409 | SSP_SUPPORTED= no |
11406 | </pre> | | 11410 | </pre> |
11407 | </div> | | 11411 | </div> |
11408 | </div> | | 11412 | </div> |
11409 | </div> | | 11413 | </div> |
11410 | <div class="sect1"> | | 11414 | <div class="sect1"> |
11411 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11415 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11412 | <a name="hardening.audit"></a>B.3. Auditing the system</h2></div></div></div> | | 11416 | <a name="hardening.audit"></a>B.3. Auditing the system</h2></div></div></div> |
11413 | <p> | | 11417 | <p> |
11414 | The illusion of security is worse than having no security at all. This section | | 11418 | The illusion of security is worse than having no security at all. This section |
11415 | lists a number of ways to ensure the security features requested are actually | | 11419 | lists a number of ways to ensure the security features requested are actually |
11416 | effective. | | 11420 | effective. |
11417 | </p> | | 11421 | </p> |
11418 | <p> | | 11422 | <p> |
11419 | These instructions were obtained and tested on a system derived from NetBSD 7 | | 11423 | These instructions were obtained and tested on a system derived from NetBSD 7 |
11420 | (amd64). YMMV. | | 11424 | (amd64). YMMV. |
11421 | </p> | | 11425 | </p> |
11422 | <div class="sect2"> | | 11426 | <div class="sect2"> |
11423 | <div class="titlepage"><div><div><h3 class="title"> | | 11427 | <div class="titlepage"><div><div><h3 class="title"> |
11424 | <a name="hardening.audit.pie"></a>B.3.1. Checking for PIE</h3></div></div></div> | | 11428 | <a name="hardening.audit.pie"></a>B.3.1. Checking for PIE</h3></div></div></div> |
11425 | <p> | | 11429 | <p> |
11426 | The ELF executable type in use changes for binaries built as PIE; without: | | 11430 | The ELF executable type in use changes for binaries built as PIE; without: |
11427 | </p> | | 11431 | </p> |
11428 | <pre class="programlisting"> | | 11432 | <pre class="programlisting"> |
11429 | <strong class="userinput"><code>$ file /path/to/bin/ary</code></strong> | | 11433 | <strong class="userinput"><code>$ file /path/to/bin/ary</code></strong> |
11430 | /path/to/bin/ary: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for NetBSD 7.0, not stripped | | 11434 | /path/to/bin/ary: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for NetBSD 7.0, not stripped |
11431 | </pre> | | 11435 | </pre> |
11432 | <p>as opposed to the following binary, built as PIE:</p> | | 11436 | <p>as opposed to the following binary, built as PIE:</p> |
11433 | <pre class="programlisting"> | | 11437 | <pre class="programlisting"> |
11434 | <strong class="userinput"><code>$ file /path/to/pie/bin/ary</code></strong> | | 11438 | <strong class="userinput"><code>$ file /path/to/pie/bin/ary</code></strong> |
11435 | /path/to/pie/bin/ary: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for NetBSD 7.0, not stripped | | 11439 | /path/to/pie/bin/ary: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for NetBSD 7.0, not stripped |
11436 | </pre> | | 11440 | </pre> |
11437 | <p> | | 11441 | <p> |
11438 | The latter result is then what is expected. | | 11442 | The latter result is then what is expected. |
11439 | </p> | | 11443 | </p> |
11440 | </div> | | 11444 | </div> |
11441 | <div class="sect2"> | | 11445 | <div class="sect2"> |
11442 | <div class="titlepage"><div><div><h3 class="title"> | | 11446 | <div class="titlepage"><div><div><h3 class="title"> |
11443 | <a name="hardening.audit.relropartial"></a>B.3.2. Checking for partial RELRO</h3></div></div></div> | | 11447 | <a name="hardening.audit.relropartial"></a>B.3.2. Checking for partial RELRO</h3></div></div></div> |
11444 | <p> | | 11448 | <p> |
11445 | The following command should list a section called RELRO: | | 11449 | The following command should list a section called RELRO: |
11446 | </p> | | 11450 | </p> |
11447 | <pre class="programlisting"> | | 11451 | <pre class="programlisting"> |
11448 | <strong class="userinput"><code>$ objdump -p /path/to/bin/ary</code></strong> | | 11452 | <strong class="userinput"><code>$ objdump -p /path/to/bin/ary</code></strong> |
11449 | | | 11453 | |
11450 | /path/to/bin/ary: file format elf64-x86-64 | | 11454 | /path/to/bin/ary: file format elf64-x86-64 |
11451 | | | 11455 | |
11452 | Program Header: | | 11456 | Program Header: |
11453 | [...] | | 11457 | [...] |
11454 | RELRO off 0x0000000000000d78 vaddr 0x0000000000600d78 paddr 0x0000000000600d78 align 2**0 | | 11458 | RELRO off 0x0000000000000d78 vaddr 0x0000000000600d78 paddr 0x0000000000600d78 align 2**0 |
11455 | </pre> | | 11459 | </pre> |
11456 | <p> | | 11460 | <p> |
11457 | This check is now performed automatically if | | 11461 | This check is now performed automatically if |
11458 | <code class="varname">PKG_DEVELOPER</code> is set and RELRO is enabled. | | 11462 | <code class="varname">PKG_DEVELOPER</code> is set and RELRO is enabled. |
11459 | </p> | | 11463 | </p> |
11460 | </div> | | 11464 | </div> |
11461 | <div class="sect2"> | | 11465 | <div class="sect2"> |
11462 | <div class="titlepage"><div><div><h3 class="title"> | | 11466 | <div class="titlepage"><div><div><h3 class="title"> |
11463 | <a name="hardening.audit.relrofull"></a>B.3.3. Checking for full RELRO</h3></div></div></div> | | 11467 | <a name="hardening.audit.relrofull"></a>B.3.3. Checking for full RELRO</h3></div></div></div> |
11464 | <p> | | 11468 | <p> |
11465 | The dynamic loader will apply RELRO immediately when detecting the presence of | | 11469 | The dynamic loader will apply RELRO immediately when detecting the presence of |
11466 | the <code class="varname">BIND_NOW</code> flag: | | 11470 | the <code class="varname">BIND_NOW</code> flag: |
11467 | </p> | | 11471 | </p> |
11468 | <pre class="programlisting"> | | 11472 | <pre class="programlisting"> |
11469 | <strong class="userinput"><code>$ objdump -x /path/to/bin/ary</code></strong> | | 11473 | <strong class="userinput"><code>$ objdump -x /path/to/bin/ary</code></strong> |
11470 | | | 11474 | |
11471 | /path/to/bin/ary: file format elf64-x86-64 | | 11475 | /path/to/bin/ary: file format elf64-x86-64 |
11472 | | | 11476 | |
11473 | Dynamic Section: | | 11477 | Dynamic Section: |
11474 | [...] | | 11478 | [...] |
11475 | BIND_NOW 0x0000000000000000 | | 11479 | BIND_NOW 0x0000000000000000 |
11476 | </pre> | | 11480 | </pre> |
11477 | <p> | | 11481 | <p> |
11478 | This has to be combined with partial RELRO (see above) to be fully efficient. | | 11482 | This has to be combined with partial RELRO (see above) to be fully efficient. |
11479 | </p> | | 11483 | </p> |
11480 | <p> | | 11484 | <p> |
11481 | This check is now performed automatically (where supported) if | | 11485 | This check is now performed automatically (where supported) if |
11482 | <code class="varname">PKG_DEVELOPER</code> is set. | | 11486 | <code class="varname">PKG_DEVELOPER</code> is set. |
11483 | </p> | | 11487 | </p> |
11484 | </div> | | 11488 | </div> |
11485 | <div class="sect2"> | | 11489 | <div class="sect2"> |
11486 | <div class="titlepage"><div><div><h3 class="title"> | | 11490 | <div class="titlepage"><div><div><h3 class="title"> |
11487 | <a name="hardening.audit.ssp"></a>B.3.4. Checking for SSP</h3></div></div></div> | | 11491 | <a name="hardening.audit.ssp"></a>B.3.4. Checking for SSP</h3></div></div></div> |
11488 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> | | 11492 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
11489 | <h3 class="title">Note</h3> | | 11493 | <h3 class="title">Note</h3> |
11490 | <p> | | 11494 | <p> |
11491 | Checking for SSP using this method only works where the operating system | | 11495 | Checking for SSP using this method only works where the operating system |
11492 | uses <code class="literal">libssp</code>. <code class="literal">libssp</code> is not used | | 11496 | uses <code class="literal">libssp</code>. <code class="literal">libssp</code> is not used |
11493 | on recent NetBSD/FreeBSD/Linux versions. | | 11497 | on recent NetBSD/FreeBSD/Linux versions. |
11494 | </p> | | 11498 | </p> |
11495 | </div> | | 11499 | </div> |
11496 | <p> | | 11500 | <p> |
11497 | Building objects, binaries and libraries with SSP will affect the presence of | | 11501 | Building objects, binaries and libraries with SSP will affect the presence of |
11498 | additional symbols in the resulting file: | | 11502 | additional symbols in the resulting file: |
11499 | </p> | | 11503 | </p> |
11500 | <pre class="programlisting"> | | 11504 | <pre class="programlisting"> |
11501 | <strong class="userinput"><code>$ nm /path/to/bin/ary</code></strong> | | 11505 | <strong class="userinput"><code>$ nm /path/to/bin/ary</code></strong> |
11502 | [...] | | 11506 | [...] |
11503 | U __stack_chk_fail | | 11507 | U __stack_chk_fail |
11504 | 0000000000600ea0 B __stack_chk_guard | | 11508 | 0000000000600ea0 B __stack_chk_guard |
11505 | </pre> | | 11509 | </pre> |
11506 | <p> | | 11510 | <p> |
11507 | This is an indicator that the program was indeed built with support for SSP. | | 11511 | This is an indicator that the program was indeed built with support for SSP. |
11508 | </p> | | 11512 | </p> |
11509 | <p> | | 11513 | <p> |
11510 | This check is now performed automatically (where supported) if | | 11514 | This check is now performed automatically (where supported) if |
11511 | <code class="varname">PKG_DEVELOPER</code> is set and SSP is enabled. | | 11515 | <code class="varname">PKG_DEVELOPER</code> is set and SSP is enabled. |
11512 | </p> | | 11516 | </p> |
11513 | </div> | | 11517 | </div> |
11514 | </div> | | 11518 | </div> |
11515 | </div> | | 11519 | </div> |
11516 | <div class="appendix"> | | 11520 | <div class="appendix"> |
11517 | <div class="titlepage"><div><div><h1 class="title"> | | 11521 | <div class="titlepage"><div><div><h1 class="title"> |
11518 | <a name="logs"></a>Appendix C. Build logs</h1></div></div></div> | | 11522 | <a name="logs"></a>Appendix C. Build logs</h1></div></div></div> |
11519 | <div class="toc"> | | 11523 | <div class="toc"> |
11520 | <p><b>Table of Contents</b></p> | | 11524 | <p><b>Table of Contents</b></p> |
11521 | <dl class="toc"> | | 11525 | <dl class="toc"> |
11522 | <dt><span class="sect1"><a href="#logs.building">C.1. Building figlet</a></span></dt> | | 11526 | <dt><span class="sect1"><a href="#logs.building">C.1. Building figlet</a></span></dt> |
11523 | <dt><span class="sect1"><a href="#logs.package">C.2. Packaging figlet</a></span></dt> | | 11527 | <dt><span class="sect1"><a href="#logs.package">C.2. Packaging figlet</a></span></dt> |
11524 | </dl> | | 11528 | </dl> |
11525 | </div> | | 11529 | </div> |
11526 | <div class="sect1"> | | 11530 | <div class="sect1"> |
11527 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11531 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11528 | <a name="logs.building"></a>C.1. Building figlet</h2></div></div></div> | | 11532 | <a name="logs.building"></a>C.1. Building figlet</h2></div></div></div> |
11529 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong> | | 11533 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make</code></strong> |
11530 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 | | 11534 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 |
11531 | => figlet221.tar.gz doesn't seem to exist on this system. | | 11535 | => figlet221.tar.gz doesn't seem to exist on this system. |
11532 | => Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/. | | 11536 | => Attempting to fetch figlet221.tar.gz from ftp://ftp.figlet.org/pub/figlet/program/unix/. |
11533 | => [172219 bytes] | | 11537 | => [172219 bytes] |
11534 | Connected to ftp.plig.net. | | 11538 | Connected to ftp.plig.net. |
11535 | 220 ftp.plig.org NcFTPd Server (licensed copy) ready. | | 11539 | 220 ftp.plig.org NcFTPd Server (licensed copy) ready. |
11536 | 331 Guest login ok, send your complete e-mail address as password. | | 11540 | 331 Guest login ok, send your complete e-mail address as password. |
11537 | 230-You are user #5 of 500 simultaneous users allowed. | | 11541 | 230-You are user #5 of 500 simultaneous users allowed. |
11538 | 230- | | 11542 | 230- |
11539 | 230- ___ _ _ _ | | 11543 | 230- ___ _ _ _ |
11540 | 230- | _| |_ ___ ___| |_|___ ___ ___ ___ | | 11544 | 230- | _| |_ ___ ___| |_|___ ___ ___ ___ |
11541 | 230- | _| _| . |_| . | | | . |_| . | _| . | | | 11545 | 230- | _| _| . |_| . | | | . |_| . | _| . | |
11542 | 230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ | | | 11546 | 230- |_| |_| | _|_| _|_|_|_ |_|___|_| |_ | |
11543 | 230- |_| |_| |___| |___| | | 11547 | 230- |_| |_| |___| |___| |
11544 | 230- | | 11548 | 230- |
11545 | 230-** Welcome to ftp.plig.org ** | | 11549 | 230-** Welcome to ftp.plig.org ** |
11546 | 230- | | 11550 | 230- |
11547 | 230-Please note that all transfers from this FTP site are logged. If you | | 11551 | 230-Please note that all transfers from this FTP site are logged. If you |
11548 | 230-do not like this, please disconnect now. | | 11552 | 230-do not like this, please disconnect now. |
11549 | 230- | | 11553 | 230- |
11550 | 230-This archive is available via | | 11554 | 230-This archive is available via |
11551 | 230- | | 11555 | 230- |
11552 | 230-HTTP: http://ftp.plig.org/ | | 11556 | 230-HTTP: http://ftp.plig.org/ |
11553 | 230-FTP: ftp://ftp.plig.org/ (max 500 connections) | | 11557 | 230-FTP: ftp://ftp.plig.org/ (max 500 connections) |
11554 | 230-RSYNC: rsync://ftp.plig.org/ (max 30 connections) | | 11558 | 230-RSYNC: rsync://ftp.plig.org/ (max 30 connections) |
11555 | 230- | | 11559 | 230- |
11556 | 230-Please email comments, bug reports and requests for packages to be | | 11560 | 230-Please email comments, bug reports and requests for packages to be |
11557 | 230-mirrored to ftp-admin@plig.org. | | 11561 | 230-mirrored to ftp-admin@plig.org. |
11558 | 230- | | 11562 | 230- |
11559 | 230- | | 11563 | 230- |
11560 | 230 Logged in anonymously. | | 11564 | 230 Logged in anonymously. |
11561 | Remote system type is UNIX. | | 11565 | Remote system type is UNIX. |
11562 | Using binary mode to transfer files. | | 11566 | Using binary mode to transfer files. |
11563 | 200 Type okay. | | 11567 | 200 Type okay. |
11564 | 250 "/pub" is new cwd. | | 11568 | 250 "/pub" is new cwd. |
11565 | 250-"/pub/figlet" is new cwd. | | 11569 | 250-"/pub/figlet" is new cwd. |
11566 | 250- | | 11570 | 250- |
11567 | 250-Welcome to the figlet archive at ftp.figlet.org | | 11571 | 250-Welcome to the figlet archive at ftp.figlet.org |
11568 | 250- | | 11572 | 250- |
11569 | 250- ftp://ftp.figlet.org/pub/figlet/ | | 11573 | 250- ftp://ftp.figlet.org/pub/figlet/ |
11570 | 250- | | 11574 | 250- |
11571 | 250-The official FIGlet web page is: | | 11575 | 250-The official FIGlet web page is: |
11572 | 250- http://www.figlet.org/ | | 11576 | 250- http://www.figlet.org/ |
11573 | 250- | | 11577 | 250- |
11574 | 250-If you have questions, please mailto:info@figlet.org. If you want to | | 11578 | 250-If you have questions, please mailto:info@figlet.org. If you want to |
11575 | 250-contribute a font or something else, you can email us. | | 11579 | 250-contribute a font or something else, you can email us. |
11576 | 250 | | 11580 | 250 |
11577 | 250 "/pub/figlet/program" is new cwd. | | 11581 | 250 "/pub/figlet/program" is new cwd. |
11578 | 250 "/pub/figlet/program/unix" is new cwd. | | 11582 | 250 "/pub/figlet/program/unix" is new cwd. |
11579 | local: figlet221.tar.gz remote: figlet221.tar.gz | | 11583 | local: figlet221.tar.gz remote: figlet221.tar.gz |
11580 | 502 Unimplemented command. | | 11584 | 502 Unimplemented command. |
11581 | 227 Entering Passive Mode (195,40,6,41,246,104) | | 11585 | 227 Entering Passive Mode (195,40,6,41,246,104) |
11582 | 150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes). | | 11586 | 150 Data connection accepted from 84.128.86.72:65131; transfer starting for figlet221.tar.gz (172219 bytes). |
11583 | 38% |************** | 65800 64.16 KB/s 00:01 ETA | | 11587 | 38% |************** | 65800 64.16 KB/s 00:01 ETA |
11584 | 226 Transfer completed. | | 11588 | 226 Transfer completed. |
11585 | 172219 bytes received in 00:02 (75.99 KB/s) | | 11589 | 172219 bytes received in 00:02 (75.99 KB/s) |
11586 | 221 Goodbye. | | 11590 | 221 Goodbye. |
11587 | => Checksum OK for figlet221.tar.gz. | | 11591 | => Checksum OK for figlet221.tar.gz. |
11588 | ===> Extracting for figlet-2.2.1nb2 | | 11592 | ===> Extracting for figlet-2.2.1nb2 |
11589 | ===> Required installed package ccache-[0-9]*: ccache-2.3nb1 found | | 11593 | ===> Required installed package ccache-[0-9]*: ccache-2.3nb1 found |
11590 | ===> Patching for figlet-2.2.1nb2 | | 11594 | ===> Patching for figlet-2.2.1nb2 |
11591 | ===> Applying pkgsrc patches for figlet-2.2.1nb2 | | 11595 | ===> Applying pkgsrc patches for figlet-2.2.1nb2 |
11592 | ===> Overriding tools for figlet-2.2.1nb2 | | 11596 | ===> Overriding tools for figlet-2.2.1nb2 |
11593 | ===> Creating toolchain wrappers for figlet-2.2.1nb2 | | 11597 | ===> Creating toolchain wrappers for figlet-2.2.1nb2 |
11594 | ===> Configuring for figlet-2.2.1nb2 | | 11598 | ===> Configuring for figlet-2.2.1nb2 |
11595 | ===> Building for figlet-2.2.1nb2 | | 11599 | ===> Building for figlet-2.2.1nb2 |
11596 | gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet | | 11600 | gcc -O2 -DDEFAULTFONTDIR=\"/usr/pkg/share/figlet\" -DDEFAULTFONTFILE=\"standard.flf\" figlet.c zipio.c crc.c inflate.c -o figlet |
11597 | chmod a+x figlet | | 11601 | chmod a+x figlet |
11598 | gcc -O2 -o chkfont chkfont.c | | 11602 | gcc -O2 -o chkfont chkfont.c |
11599 | => Unwrapping files-to-be-installed. | | 11603 | => Unwrapping files-to-be-installed. |
11600 | <code class="prompt">#</code> | | 11604 | <code class="prompt">#</code> |
11601 | <code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> | | 11605 | <code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong> |
11602 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 | | 11606 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 |
11603 | ===> Installing for figlet-2.2.1nb2 | | 11607 | ===> Installing for figlet-2.2.1nb2 |
11604 | install -d -o root -g wheel -m 755 /usr/pkg/bin | | 11608 | install -d -o root -g wheel -m 755 /usr/pkg/bin |
11605 | install -d -o root -g wheel -m 755 /usr/pkg/man/man6 | | 11609 | install -d -o root -g wheel -m 755 /usr/pkg/man/man6 |
11606 | mkdir -p /usr/pkg/share/figlet | | 11610 | mkdir -p /usr/pkg/share/figlet |
11607 | cp figlet /usr/pkg/bin | | 11611 | cp figlet /usr/pkg/bin |
11608 | cp chkfont /usr/pkg/bin | | 11612 | cp chkfont /usr/pkg/bin |
11609 | chmod 555 figlist showfigfonts | | 11613 | chmod 555 figlist showfigfonts |
11610 | cp figlist /usr/pkg/bin | | 11614 | cp figlist /usr/pkg/bin |
11611 | cp showfigfonts /usr/pkg/bin | | 11615 | cp showfigfonts /usr/pkg/bin |
11612 | cp fonts/*.flf /usr/pkg/share/figlet | | 11616 | cp fonts/*.flf /usr/pkg/share/figlet |
11613 | cp fonts/*.flc /usr/pkg/share/figlet | | 11617 | cp fonts/*.flc /usr/pkg/share/figlet |
11614 | cp figlet.6 /usr/pkg/man/man6 | | 11618 | cp figlet.6 /usr/pkg/man/man6 |
11615 | ===> Registering installation for figlet-2.2.1nb2 | | 11619 | ===> Registering installation for figlet-2.2.1nb2 |
11616 | <code class="prompt">#</code></pre> | | 11620 | <code class="prompt">#</code></pre> |
11617 | </div> | | 11621 | </div> |
11618 | <div class="sect1"> | | 11622 | <div class="sect1"> |
11619 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11623 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11620 | <a name="logs.package"></a>C.2. Packaging figlet</h2></div></div></div> | | 11624 | <a name="logs.package"></a>C.2. Packaging figlet</h2></div></div></div> |
11621 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong> | | 11625 | <pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make package</code></strong> |
11622 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 | | 11626 | ===> Checking for vulnerabilities in figlet-2.2.1nb2 |
11623 | ===> Packaging figlet-2.2.1nb2 | | 11627 | ===> Packaging figlet-2.2.1nb2 |
11624 | ===> Building binary package for figlet-2.2.1nb2 | | 11628 | ===> Building binary package for figlet-2.2.1nb2 |
11625 | Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz | | 11629 | Creating package /home/cvs/pkgsrc/packages/i386/All/figlet-2.2.1nb2.tgz |
11626 | Using SrcDir value of /usr/pkg | | 11630 | Using SrcDir value of /usr/pkg |
11627 | Registering depends:. | | 11631 | Registering depends:. |
11628 | <code class="prompt">#</code></pre> | | 11632 | <code class="prompt">#</code></pre> |
11629 | </div> | | 11633 | </div> |
11630 | </div> | | 11634 | </div> |
11631 | <div class="appendix"> | | 11635 | <div class="appendix"> |
11632 | <div class="titlepage"><div><div><h1 class="title"> | | 11636 | <div class="titlepage"><div><div><h1 class="title"> |
11633 | <a name="ftp-layout"></a>Appendix D. Directory layout of the pkgsrc FTP server</h1></div></div></div> | | 11637 | <a name="ftp-layout"></a>Appendix D. Directory layout of the pkgsrc FTP server</h1></div></div></div> |
11634 | <div class="toc"> | | 11638 | <div class="toc"> |
11635 | <p><b>Table of Contents</b></p> | | 11639 | <p><b>Table of Contents</b></p> |
11636 | <dl class="toc"> | | 11640 | <dl class="toc"> |
11637 | <dt><span class="sect1"><a href="#ftp-distfiles">D.1. <code class="filename">distfiles</code>: The distributed source files</a></span></dt> | | 11641 | <dt><span class="sect1"><a href="#ftp-distfiles">D.1. <code class="filename">distfiles</code>: The distributed source files</a></span></dt> |
11638 | <dt><span class="sect1"><a href="#ftp-misc">D.2. <code class="filename">misc</code>: Miscellaneous things</a></span></dt> | | 11642 | <dt><span class="sect1"><a href="#ftp-misc">D.2. <code class="filename">misc</code>: Miscellaneous things</a></span></dt> |
11639 | <dt><span class="sect1"><a href="#ftp-packages">D.3. <code class="filename">packages</code>: Binary packages</a></span></dt> | | 11643 | <dt><span class="sect1"><a href="#ftp-packages">D.3. <code class="filename">packages</code>: Binary packages</a></span></dt> |
11640 | <dt><span class="sect1"><a href="#ftp-reports">D.4. <code class="filename">reports</code>: Bulk build reports</a></span></dt> | | 11644 | <dt><span class="sect1"><a href="#ftp-reports">D.4. <code class="filename">reports</code>: Bulk build reports</a></span></dt> |
11641 | <dt><span class="sect1"><a href="#ftp-source">D.5. <code class="filename">current</code>, | | 11645 | <dt><span class="sect1"><a href="#ftp-source">D.5. <code class="filename">current</code>, |
11642 | <code class="filename">stable</code>, | | 11646 | <code class="filename">stable</code>, |
11643 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>: | | 11647 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>: |
11644 | source packages</a></span></dt> | | 11648 | source packages</a></span></dt> |
11645 | </dl> | | 11649 | </dl> |
11646 | </div> | | 11650 | </div> |
11647 | <p>As in other big projects, the directory layout of pkgsrc | | 11651 | <p>As in other big projects, the directory layout of pkgsrc |
11648 | is quite complex for newbies. This chapter explains where you | | 11652 | is quite complex for newbies. This chapter explains where you |
11649 | find things on the FTP server. The base directory on | | 11653 | find things on the FTP server. The base directory on |
11650 | <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>. | | 11654 | <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>. |
11651 | On other servers it may be different, but inside this directory, | | 11655 | On other servers it may be different, but inside this directory, |
11652 | everything should look the same, no matter on which server you | | 11656 | everything should look the same, no matter on which server you |
11653 | are. This directory contains some subdirectories, which are | | 11657 | are. This directory contains some subdirectories, which are |
11654 | explained below.</p> | | 11658 | explained below.</p> |
11655 | <div class="sect1"> | | 11659 | <div class="sect1"> |
11656 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11660 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11657 | <a name="ftp-distfiles"></a>D.1. <code class="filename">distfiles</code>: The distributed source files</h2></div></div></div> | | 11661 | <a name="ftp-distfiles"></a>D.1. <code class="filename">distfiles</code>: The distributed source files</h2></div></div></div> |
11658 | <p>The directory <code class="filename">distfiles</code> contains lots | | 11662 | <p>The directory <code class="filename">distfiles</code> contains lots |
11659 | of archive files from all pkgsrc packages, which are mirrored | | 11663 | of archive files from all pkgsrc packages, which are mirrored |
11660 | here. The subdirectories are called after their package names | | 11664 | here. The subdirectories are called after their package names |
11661 | and are used when the distributed files have names that don't | | 11665 | and are used when the distributed files have names that don't |
11662 | explicitly contain a version number or are otherwise too generic | | 11666 | explicitly contain a version number or are otherwise too generic |
11663 | (for example <code class="filename">release.tar.gz</code>).</p> | | 11667 | (for example <code class="filename">release.tar.gz</code>).</p> |
11664 | </div> | | 11668 | </div> |
11665 | <div class="sect1"> | | 11669 | <div class="sect1"> |
11666 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11670 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11667 | <a name="ftp-misc"></a>D.2. <code class="filename">misc</code>: Miscellaneous things</h2></div></div></div> | | 11671 | <a name="ftp-misc"></a>D.2. <code class="filename">misc</code>: Miscellaneous things</h2></div></div></div> |
11668 | <p>This directory contains things that individual pkgsrc | | 11672 | <p>This directory contains things that individual pkgsrc |
11669 | developers find worth publishing.</p> | | 11673 | developers find worth publishing.</p> |
11670 | </div> | | 11674 | </div> |
11671 | <div class="sect1"> | | 11675 | <div class="sect1"> |
11672 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11676 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11673 | <a name="ftp-packages"></a>D.3. <code class="filename">packages</code>: Binary packages</h2></div></div></div> | | 11677 | <a name="ftp-packages"></a>D.3. <code class="filename">packages</code>: Binary packages</h2></div></div></div> |
11674 | <p>This directory contains binary packages for the various | | 11678 | <p>This directory contains binary packages for the various |
11675 | platforms that are supported by pkgsrc. | | 11679 | platforms that are supported by pkgsrc. |
11676 | 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> | | 11680 | 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> |
11677 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 11681 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
11678 | <li class="listitem"><p><code class="varname">OPSYS</code> is the name of the | | 11682 | <li class="listitem"><p><code class="varname">OPSYS</code> is the name of the |
11679 | operating system for which the packages have been built. The | | 11683 | operating system for which the packages have been built. The |
11680 | name is taken from the output of the <span class="command"><strong>uname</strong></span> | | 11684 | name is taken from the output of the <span class="command"><strong>uname</strong></span> |
11681 | command, so it may differ from the one you are used to | | 11685 | command, so it may differ from the one you are used to |
11682 | hear.</p></li> | | 11686 | hear.</p></li> |
11683 | <li class="listitem"><p><code class="varname">ARCH</code> is the hardware | | 11687 | <li class="listitem"><p><code class="varname">ARCH</code> is the hardware |
11684 | architecture of the platform for which the packages have been | | 11688 | architecture of the platform for which the packages have been |
11685 | built. It also includes the <code class="varname">ABI</code> (Application | | 11689 | built. It also includes the <code class="varname">ABI</code> (Application |
11686 | Binary Interface) for platforms that have several of | | 11690 | Binary Interface) for platforms that have several of |
11687 | them.</p></li> | | 11691 | them.</p></li> |
11688 | <li class="listitem"><p><code class="varname">OSVERSION</code> is the version of | | 11692 | <li class="listitem"><p><code class="varname">OSVERSION</code> is the version of |
11689 | the operating system. For version numbers that change often (for | | 11693 | the operating system. For version numbers that change often (for |
11690 | example NetBSD-current), the often-changing part should be | | 11694 | example NetBSD-current), the often-changing part should be |
11691 | replaced with an <code class="literal">x</code>, for example | | 11695 | replaced with an <code class="literal">x</code>, for example |
11692 | <code class="literal">4.99.x</code>.</p></li> | | 11696 | <code class="literal">4.99.x</code>.</p></li> |
11693 | <li class="listitem"><p><code class="varname">TAG</code> is either | | 11697 | <li class="listitem"><p><code class="varname">TAG</code> is either |
11694 | <code class="literal">20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> | | 11698 | <code class="literal">20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> |
11695 | for a stable branch, or <code class="literal">head</code> for packages | | 11699 | for a stable branch, or <code class="literal">head</code> for packages |
11696 | built from the HEAD branch. The latter should only be used when | | 11700 | built from the HEAD branch. The latter should only be used when |
11697 | the packages are updated on a regular basis. Otherwise the date | | 11701 | the packages are updated on a regular basis. Otherwise the date |
11698 | from checking out pkgsrc should be appended, for example | | 11702 | from checking out pkgsrc should be appended, for example |
11699 | <code class="literal">head_20071015</code>.</p></li> | | 11703 | <code class="literal">head_20071015</code>.</p></li> |
11700 | </ul></div> | | 11704 | </ul></div> |
11701 | <p>The rationale for exactly this scheme is that the pkgsrc users looking for binary packages | | 11705 | <p>The rationale for exactly this scheme is that the pkgsrc users looking for binary packages |
11702 | can quickly click through the directories on the | | 11706 | can quickly click through the directories on the |
11703 | server and find the best binary packages for their machines. Since they | | 11707 | server and find the best binary packages for their machines. Since they |
11704 | usually know the operating system and the hardware architecture, OPSYS | | 11708 | usually know the operating system and the hardware architecture, OPSYS |
11705 | and ARCH are placed first. After these choices, they can select the | | 11709 | and ARCH are placed first. After these choices, they can select the |
11706 | best combination of OSVERSION and TAG together, since it is usually the | | 11710 | best combination of OSVERSION and TAG together, since it is usually the |
11707 | case that packages stay compatible between different version of the | | 11711 | case that packages stay compatible between different version of the |
11708 | operating system.</p> | | 11712 | operating system.</p> |
11709 | <p>In each of these directories, there is a | | 11713 | <p>In each of these directories, there is a |
11710 | whole binary packages collection for a specific platform. It has a directory called | | 11714 | whole binary packages collection for a specific platform. It has a directory called |
11711 | <code class="filename">All</code> which contains all binary packages. | | 11715 | <code class="filename">All</code> which contains all binary packages. |
11712 | Besides that, there are various category directories that | | 11716 | Besides that, there are various category directories that |
11713 | contain symbolic links to the real binary packages.</p> | | 11717 | contain symbolic links to the real binary packages.</p> |
11714 | </div> | | 11718 | </div> |
11715 | <div class="sect1"> | | 11719 | <div class="sect1"> |
11716 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11720 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11717 | <a name="ftp-reports"></a>D.4. <code class="filename">reports</code>: Bulk build reports</h2></div></div></div> | | 11721 | <a name="ftp-reports"></a>D.4. <code class="filename">reports</code>: Bulk build reports</h2></div></div></div> |
11718 | <p>Here are the reports from bulk builds, for those who want | | 11722 | <p>Here are the reports from bulk builds, for those who want |
11719 | to fix packages that didn't build on some of the platforms. The | | 11723 | to fix packages that didn't build on some of the platforms. The |
11720 | structure of subdirectories should look like the one in <a class="xref" href="#ftp-packages" title="D.3. packages: Binary packages">Section D.3, “<code class="filename">packages</code>: Binary packages”</a>.</p> | | 11724 | structure of subdirectories should look like the one in <a class="xref" href="#ftp-packages" title="D.3. packages: Binary packages">Section D.3, “<code class="filename">packages</code>: Binary packages”</a>.</p> |
11721 | </div> | | 11725 | </div> |
11722 | <div class="sect1"> | | 11726 | <div class="sect1"> |
11723 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 11727 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
11724 | <a name="ftp-source"></a>D.5. <code class="filename">current</code>, | | 11728 | <a name="ftp-source"></a>D.5. <code class="filename">current</code>, |
11725 | <code class="filename">stable</code>, | | 11729 | <code class="filename">stable</code>, |
11726 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>: | | 11730 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>: |
11727 | source packages</h2></div></div></div> | | 11731 | source packages</h2></div></div></div> |
11728 | <p>These directories contain the <span class="quote">“<span class="quote">real</span>”</span> pkgsrc, | | 11732 | <p>These directories contain the <span class="quote">“<span class="quote">real</span>”</span> pkgsrc, |
11729 | that is the files that define how to create binary packages from | | 11733 | that is the files that define how to create binary packages from |
11730 | source archives.</p> | | 11734 | source archives.</p> |
11731 | <p>Each of the <code class="filename">current</code>, | | 11735 | <p>Each of the <code class="filename">current</code>, |
11732 | <code class="filename">stable</code> and | | 11736 | <code class="filename">stable</code> and |
11733 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> | | 11737 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> |
11734 | directories share the same structure. They each contain a | | 11738 | directories share the same structure. They each contain a |
11735 | <code class="filename">pkgsrc</code> directory and | | 11739 | <code class="filename">pkgsrc</code> directory and |
11736 | <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> file.</p> | | 11740 | <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> file.</p> |
11737 | <p>The directory <code class="filename">pkgsrc</code> contains a | | 11741 | <p>The directory <code class="filename">pkgsrc</code> contains a |
11738 | snapshot of the CVS repository, which is updated regularly. The | | 11742 | snapshot of the CVS repository, which is updated regularly. The |
11739 | file <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> contains the same | | 11743 | file <code class="filename">pkgsrc.tar.{bz,gz,xz}</code> contains the same |
11740 | as the directory, ready to be downloaded as a whole.</p> | | 11744 | as the directory, ready to be downloaded as a whole.</p> |
11741 | <p>The <code class="filename">current</code> directory contains files | | 11745 | <p>The <code class="filename">current</code> directory contains files |
11742 | related to the HEAD branch of the CVS repository. | | 11746 | related to the HEAD branch of the CVS repository. |
11743 | In this directory there is an additional file called | | 11747 | In this directory there is an additional file called |
11744 | <code class="filename">pkgsrc-readmes.tar.{bz,gz,xz}</code> that contains | | 11748 | <code class="filename">pkgsrc-readmes.tar.{bz,gz,xz}</code> that contains |
11745 | all pkgsrc <code class="filename">README</code>s with information about | | 11749 | all pkgsrc <code class="filename">README</code>s with information about |
11746 | categories and packages. | | 11750 | categories and packages. |
11747 | </p> | | 11751 | </p> |
11748 | <p>The <code class="filename">stable</code> directory is a symlink to | | 11752 | <p>The <code class="filename">stable</code> directory is a symlink to |
11749 | the latest | | 11753 | the latest |
11750 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>. | | 11754 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>. |
11751 | </p> | | 11755 | </p> |
11752 | <p>The | | 11756 | <p>The |
11753 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>. | | 11757 | <code class="filename">pkgsrc-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code>. |
11754 | directories contain files related to the | | 11758 | directories contain files related to the |
11755 | <code class="filename">-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> | | 11759 | <code class="filename">-20<em class="replaceable"><code>xx</code></em>Q<em class="replaceable"><code>y</code></em></code> |
11756 | stable branch of the CVS repository. In these directories there is | | 11760 | stable branch of the CVS repository. In these directories there is |
11757 | an additional file called | | 11761 | an additional file called |
11758 | <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>, | | 11762 | <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>, |
11759 | which contains the state of pkgsrc when it was branched.</p> | | 11763 | which contains the state of pkgsrc when it was branched.</p> |
11760 | </div> | | 11764 | </div> |
11761 | </div> | | 11765 | </div> |
11762 | <div class="appendix"> | | 11766 | <div class="appendix"> |
11763 | <div class="titlepage"><div><div><h1 class="title"> | | 11767 | <div class="titlepage"><div><div><h1 class="title"> |
11764 | <a name="help-topics"></a>Appendix E. Help topics</h1></div></div></div> | | 11768 | <a name="help-topics"></a>Appendix E. Help topics</h1></div></div></div> |
11765 | <p> | | 11769 | <p> |
11766 | The following list contains all help topics that are available | | 11770 | The following list contains all help topics that are available |
11767 | when running <span class="command"><strong>bmake help topic=:index</strong></span>. | | 11771 | when running <span class="command"><strong>bmake help topic=:index</strong></span>. |
11768 | </p> | | 11772 | </p> |
11769 | <table border="0" summary="Simple list" class="simplelist"> | | 11773 | <table border="0" summary="Simple list" class="simplelist"> |
11770 | <tr> | | 11774 | <tr> |
11771 | <td>#!</td> | | 11775 | <td>#!</td> |
11772 | <td>-lintl</td> | | 11776 | <td>-lintl</td> |
11773 | </tr> | | 11777 | </tr> |
11774 | <tr> | | 11778 | <tr> |
11775 | <td>32bit</td> | | 11779 | <td>32bit</td> |
11776 | <td>64bit</td> | | 11780 | <td>64bit</td> |
11777 | </tr> | | 11781 | </tr> |
11778 | <tr> | | 11782 | <tr> |
11779 | <td>ABI</td> | | 11783 | <td>ABI</td> |
11780 | <td>ACCEPTABLE_LICENSES</td> | | 11784 | <td>ACCEPTABLE_LICENSES</td> |
11781 | </tr> | | 11785 | </tr> |
11782 | <tr> | | 11786 | <tr> |
11783 | <td>ACROREAD_FONTPATH</td> | | 11787 | <td>ACROREAD_FONTPATH</td> |
11784 | <td>ADDITIONAL</td> | | 11788 | <td>ADDITIONAL</td> |
11785 | </tr> | | 11789 | </tr> |
11786 | <tr> | | 11790 | <tr> |
11787 | <td>AFAIK</td> | | 11791 | <td>AFAIK</td> |
11788 | <td>AIX</td> | | 11792 | <td>AIX</td> |
11789 | </tr> | | 11793 | </tr> |
11790 | <tr> | | 11794 | <tr> |
11791 | <td>ALLOW_VULNERABLE_PACKAGES</td> | | 11795 | <td>ALLOW_VULNERABLE_PACKAGES</td> |
11792 | <td>ALL_ENV</td> | | 11796 | <td>ALL_ENV</td> |
11793 | </tr> | | 11797 | </tr> |
11794 | <tr> | | 11798 | <tr> |
11795 | <td>ALSA_PC</td> | | | |
11796 | <td>ALTERNATIVES_SRC</td> | | 11799 | <td>ALTERNATIVES_SRC</td> |
11797 | </tr> | | | |
11798 | <tr> | | | |
11799 | <td>AMANDA_TMP</td> | | 11800 | <td>AMANDA_TMP</td> |
11800 | <td>AMANDA_USER</td> | | | |
11801 | </tr> | | 11801 | </tr> |
11802 | <tr> | | 11802 | <tr> |
| | | 11803 | <td>AMANDA_USER</td> |
11803 | <td>AMANDA_VAR</td> | | 11804 | <td>AMANDA_VAR</td> |
11804 | <td>APACHE_GROUP</td> | | | |
11805 | </tr> | | 11805 | </tr> |
11806 | <tr> | | 11806 | <tr> |
| | | 11807 | <td>APACHE_GROUP</td> |
11807 | <td>APACHE_MODULE_NAME</td> | | 11808 | <td>APACHE_MODULE_NAME</td> |
11808 | <td>APACHE_MODULE_SRC</td> | | | |
11809 | </tr> | | 11809 | </tr> |
11810 | <tr> | | 11810 | <tr> |
| | | 11811 | <td>APACHE_MODULE_SRC</td> |
11811 | <td>APACHE_MODULE_SRCDIR</td> | | 11812 | <td>APACHE_MODULE_SRCDIR</td> |
11812 | <td>APACHE_PKG_PREFIX</td> | | | |
11813 | </tr> | | 11813 | </tr> |
11814 | <tr> | | 11814 | <tr> |
| | | 11815 | <td>APACHE_PKG_PREFIX</td> |
11815 | <td>APACHE_SUEXEC_CONFIGURE_ARGS</td> | | 11816 | <td>APACHE_SUEXEC_CONFIGURE_ARGS</td> |
11816 | <td>APACHE_SUEXEC_DOCROOT</td> | | | |
11817 | </tr> | | 11817 | </tr> |
11818 | <tr> | | 11818 | <tr> |
| | | 11819 | <td>APACHE_SUEXEC_DOCROOT</td> |
11819 | <td>APACHE_USER</td> | | 11820 | <td>APACHE_USER</td> |
11820 | <td>APPEND_ABI</td> | | | |
11821 | </tr> | | 11821 | </tr> |
11822 | <tr> | | 11822 | <tr> |
| | | 11823 | <td>APPEND_ABI</td> |
11823 | <td>APPEND_ELF</td> | | 11824 | <td>APPEND_ELF</td> |
11824 | <td>ARLA_CACHE</td> | | | |
11825 | </tr> | | 11825 | </tr> |
11826 | <tr> | | 11826 | <tr> |
| | | 11827 | <td>ARLA_CACHE</td> |
11827 | <td>AUDIT_PACKAGES_FLAGS</td> | | 11828 | <td>AUDIT_PACKAGES_FLAGS</td> |
11828 | <td>AUTOCONF_REQD</td> | | | |
11829 | </tr> | | 11829 | </tr> |
11830 | <tr> | | 11830 | <tr> |
| | | 11831 | <td>AUTOCONF_REQD</td> |
11831 | <td>AUTOMAKE_OVERRIDE</td> | | 11832 | <td>AUTOMAKE_OVERRIDE</td> |
11832 | <td>AUTOMAKE_REQD</td> | | | |
11833 | </tr> | | 11833 | </tr> |
11834 | <tr> | | 11834 | <tr> |
| | | 11835 | <td>AUTOMAKE_REQD</td> |
11835 | <td>AUTO_MKDIRS</td> | | 11836 | <td>AUTO_MKDIRS</td> |
11836 | <td>BDB185_DEFAULT</td> | | | |
11837 | </tr> | | 11837 | </tr> |
11838 | <tr> | | 11838 | <tr> |
| | | 11839 | <td>BDB185_DEFAULT</td> |
11839 | <td>BDBBASE</td> | | 11840 | <td>BDBBASE</td> |
11840 | <td>BDB_ACCEPTED</td> | | | |
11841 | </tr> | | 11841 | </tr> |
11842 | <tr> | | 11842 | <tr> |
| | | 11843 | <td>BDB_ACCEPTED</td> |
11843 | <td>BDB_DEFAULT</td> | | 11844 | <td>BDB_DEFAULT</td> |
11844 | <td>BDB_LIBS</td> | | | |
11845 | </tr> | | 11845 | </tr> |
11846 | <tr> | | 11846 | <tr> |
| | | 11847 | <td>BDB_LIBS</td> |
11847 | <td>BDB_TYPE</td> | | 11848 | <td>BDB_TYPE</td> |
11848 | <td>BINCIMAP_GROUP</td> | | | |
11849 | </tr> | | 11849 | </tr> |
11850 | <tr> | | 11850 | <tr> |
| | | 11851 | <td>BINCIMAP_GROUP</td> |
11851 | <td>BINCIMAP_USER</td> | | 11852 | <td>BINCIMAP_USER</td> |
11852 | <td>BIND_DIR</td> | | | |
11853 | </tr> | | 11853 | </tr> |
11854 | <tr> | | 11854 | <tr> |
| | | 11855 | <td>BIND_DIR</td> |
11855 | <td>BIND_GROUP</td> | | 11856 | <td>BIND_GROUP</td> |
11856 | <td>BIND_USER</td> | | | |
11857 | </tr> | | 11857 | </tr> |
11858 | <tr> | | 11858 | <tr> |
| | | 11859 | <td>BIND_USER</td> |
11859 | <td>BINOWN</td> | | 11860 | <td>BINOWN</td> |
11860 | <td>BINPKG_SITES</td> | | | |
11861 | </tr> | | 11861 | </tr> |
11862 | <tr> | | 11862 | <tr> |
| | | 11863 | <td>BINPKG_SITES</td> |
11863 | <td>BIN_INSTALL_FLAGS</td> | | 11864 | <td>BIN_INSTALL_FLAGS</td> |
11864 | <td>BISON_PKGDATADIR</td> | | | |
11865 | </tr> | | 11865 | </tr> |
11866 | <tr> | | 11866 | <tr> |
| | | 11867 | <td>BISON_PKGDATADIR</td> |
11867 | <td>BLAS</td> | | 11868 | <td>BLAS</td> |
11868 | <td>BLAS_ACCEPTED</td> | | | |
11869 | </tr> | | 11869 | </tr> |
11870 | <tr> | | 11870 | <tr> |
| | | 11871 | <td>BLAS_ACCEPTED</td> |
11871 | <td>BLAS_C_INTERFACE</td> | | 11872 | <td>BLAS_C_INTERFACE</td> |
11872 | <td>BLAS_INCLUDES</td> | | | |
11873 | </tr> | | 11873 | </tr> |
11874 | <tr> | | 11874 | <tr> |
| | | 11875 | <td>BLAS_INCLUDES</td> |
11875 | <td>BLAS_INDEX64</td> | | 11876 | <td>BLAS_INDEX64</td> |
11876 | <td>BLAS_LIBS</td> | | | |
11877 | </tr> | | 11877 | </tr> |
11878 | <tr> | | 11878 | <tr> |
| | | 11879 | <td>BLAS_LIBS</td> |
11879 | <td>BLAS_TYPE</td> | | 11880 | <td>BLAS_TYPE</td> |
11880 | <td>BOOTSTRAP_DEPENDS</td> | | | |
11881 | </tr> | | 11881 | </tr> |
11882 | <tr> | | 11882 | <tr> |
| | | 11883 | <td>BOOTSTRAP_DEPENDS</td> |
11883 | <td>BROKEN</td> | | 11884 | <td>BROKEN</td> |
11884 | <td>BROKEN_EXCEPT_ON_PLATFORM</td> | | | |
11885 | </tr> | | 11885 | </tr> |
11886 | <tr> | | 11886 | <tr> |
| | | 11887 | <td>BROKEN_EXCEPT_ON_PLATFORM</td> |
11887 | <td>BROKEN_ON_PLATFORM</td> | | 11888 | <td>BROKEN_ON_PLATFORM</td> |
11888 | <td>BSDSRCDIR</td> | | | |
11889 | </tr> | | 11889 | </tr> |
11890 | <tr> | | 11890 | <tr> |
| | | 11891 | <td>BSDSRCDIR</td> |
11891 | <td>BSDXSRCDIR</td> | | 11892 | <td>BSDXSRCDIR</td> |
11892 | <td>BSD_MAKE_ENV</td> | | | |
11893 | </tr> | | 11893 | </tr> |
11894 | <tr> | | 11894 | <tr> |
| | | 11895 | <td>BSD_MAKE_ENV</td> |
11895 | <td>BUILDLINK_AUTO_DIRS</td> | | 11896 | <td>BUILDLINK_AUTO_DIRS</td> |
11896 | <td>BUILDLINK_AUTO_VARS</td> | | | |
11897 | </tr> | | 11897 | </tr> |
11898 | <tr> | | 11898 | <tr> |
| | | 11899 | <td>BUILDLINK_AUTO_VARS</td> |
11899 | <td>BUILDLINK_CFLAGS</td> | | 11900 | <td>BUILDLINK_CFLAGS</td> |
11900 | <td>BUILDLINK_CONTENTS_FILTER</td> | | | |
11901 | </tr> | | 11901 | </tr> |
11902 | <tr> | | 11902 | <tr> |
| | | 11903 | <td>BUILDLINK_CONTENTS_FILTER</td> |
11903 | <td>BUILDLINK_CPPFLAGS</td> | | 11904 | <td>BUILDLINK_CPPFLAGS</td> |
11904 | <td>BUILDLINK_DEPMETHOD</td> | | | |
11905 | </tr> | | 11905 | </tr> |
11906 | <tr> | | 11906 | <tr> |
11907 | <td>BUILDLINK_FILES</td> | | 11907 | <td>BUILDLINK_FILES</td> |
11908 | <td>BUILDLINK_FILES_CMD</td> | | 11908 | <td>BUILDLINK_FILES_CMD</td> |
11909 | </tr> | | 11909 | </tr> |
11910 | <tr> | | 11910 | <tr> |
11911 | <td>BUILDLINK_FNAME_TRANSFORM</td> | | 11911 | <td>BUILDLINK_FNAME_TRANSFORM</td> |
11912 | <td>BUILDLINK_LDFLAGS</td> | | 11912 | <td>BUILDLINK_LDFLAGS</td> |
11913 | </tr> | | 11913 | </tr> |
11914 | <tr> | | 11914 | <tr> |
11915 | <td>BUILDLINK_LIBS</td> | | 11915 | <td>BUILDLINK_LIBS</td> |
11916 | <td>BUILDLINK_OPSYS_SUPPORT_PTHREAD</td> | | 11916 | <td>BUILDLINK_OPSYS_SUPPORT_PTHREAD</td> |
11917 | </tr> | | 11917 | </tr> |
11918 | <tr> | | 11918 | <tr> |
11919 | <td>BUILDLINK_PKGNAME</td> | | 11919 | <td>BUILDLINK_PKGNAME</td> |
11920 | <td>BUILDLINK_PREFIX</td> | | 11920 | <td>BUILDLINK_PREFIX</td> |
11921 | </tr> | | 11921 | </tr> |
11922 | <tr> | | 11922 | <tr> |
11923 | <td>BUILDLINK_RPATHDIRS</td> | | 11923 | <td>BUILDLINK_RPATHDIRS</td> |
11924 | <td>BUILDLINK_TREE</td> | | 11924 | <td>BUILDLINK_TREE</td> |
11925 | </tr> | | 11925 | </tr> |
11926 | <tr> | | 11926 | <tr> |
11927 | <td>BUILD_DEFS</td> | | 11927 | <td>BUILD_DEFS</td> |
11928 | <td>BUILD_DEFS_EFFECTS</td> | | 11928 | <td>BUILD_DEFS_EFFECTS</td> |
11929 | </tr> | | 11929 | </tr> |
11930 | <tr> | | 11930 | <tr> |
11931 | <td>BUILD_DEPENDS</td> | | 11931 | <td>BUILD_DEPENDS</td> |
11932 | <td>BUILD_DIRS</td> | | 11932 | <td>BUILD_DIRS</td> |
11933 | </tr> | | 11933 | </tr> |
11934 | <tr> | | 11934 | <tr> |
11935 | <td>BUILD_ENV_SHELL</td> | | 11935 | <td>BUILD_ENV_SHELL</td> |
11936 | <td>BUILD_MAKE_CMD</td> | | 11936 | <td>BUILD_MAKE_CMD</td> |
11937 | </tr> | | 11937 | </tr> |
11938 | <tr> | | 11938 | <tr> |
11939 | <td>BUILD_MAKE_FLAGS</td> | | 11939 | <td>BUILD_MAKE_FLAGS</td> |
11940 | <td>BUILD_TARGET</td> | | 11940 | <td>BUILD_TARGET</td> |
11941 | </tr> | | 11941 | </tr> |
11942 | <tr> | | 11942 | <tr> |
11943 | <td>BUILTIN_FIND_FILES</td> | | 11943 | <td>BUILTIN_FIND_FILES</td> |
11944 | <td>BUILTIN_FIND_FILES_VAR</td> | | 11944 | <td>BUILTIN_FIND_FILES_VAR</td> |
11945 | </tr> | | 11945 | </tr> |
11946 | <tr> | | 11946 | <tr> |
11947 | <td>BUILTIN_FIND_GREP</td> | | 11947 | <td>BUILTIN_FIND_GREP</td> |
11948 | <td>BUILTIN_FIND_HEADERS</td> | | 11948 | <td>BUILTIN_FIND_HEADERS</td> |
11949 | </tr> | | 11949 | </tr> |
11950 | <tr> | | 11950 | <tr> |
11951 | <td>BUILTIN_FIND_HEADERS_VAR</td> | | 11951 | <td>BUILTIN_FIND_HEADERS_VAR</td> |
11952 | <td>BUILTIN_FIND_PKGCONFIG</td> | | 11952 | <td>BUILTIN_FIND_PKGCONFIG</td> |
11953 | </tr> | | 11953 | </tr> |
11954 | <tr> | | 11954 | <tr> |
11955 | <td>BUILTIN_FIND_PKGCONFIG_VAR</td> | | 11955 | <td>BUILTIN_FIND_PKGCONFIG_VAR</td> |
11956 | <td>BUILTIN_PKG</td> | | 11956 | <td>BUILTIN_PKG</td> |
11957 | </tr> | | 11957 | </tr> |
11958 | <tr> | | 11958 | <tr> |
11959 | <td>BUILTIN_TEST_CURSES_DEFINES</td> | | 11959 | <td>BUILTIN_TEST_CURSES_DEFINES</td> |
11960 | <td>BUILTIN_TEST_CURSES_FUNCS</td> | | 11960 | <td>BUILTIN_TEST_CURSES_FUNCS</td> |
11961 | </tr> | | 11961 | </tr> |
11962 | <tr> | | 11962 | <tr> |
11963 | <td>BUILTIN_VERSION_SCRIPT</td> | | 11963 | <td>BUILTIN_VERSION_SCRIPT</td> |
11964 | <td>BUILTIN_X11_TYPE</td> | | 11964 | <td>BUILTIN_X11_TYPE</td> |
11965 | </tr> | | 11965 | </tr> |
11966 | <tr> | | 11966 | <tr> |
11967 | <td>BUILTIN_X11_VERSION</td> | | 11967 | <td>BUILTIN_X11_VERSION</td> |
11968 | <td>CACTI_GROUP</td> | | 11968 | <td>CACTI_GROUP</td> |
11969 | </tr> | | 11969 | </tr> |
11970 | <tr> | | 11970 | <tr> |
11971 | <td>CACTI_USER</td> | | 11971 | <td>CACTI_USER</td> |
11972 | <td>CANNA_GROUP</td> | | 11972 | <td>CANNA_GROUP</td> |
11973 | </tr> | | 11973 | </tr> |
11974 | <tr> | | 11974 | <tr> |
11975 | <td>CANNA_USER</td> | | 11975 | <td>CANNA_USER</td> |
11976 | <td>CAT</td> | | 11976 | <td>CAT</td> |
11977 | </tr> | | 11977 | </tr> |
11978 | <tr> | | 11978 | <tr> |
11979 | <td>CBLAS_LIBS</td> | | 11979 | <td>CBLAS_LIBS</td> |
11980 | <td>CCACHE_BASE</td> | | 11980 | <td>CCACHE_BASE</td> |
11981 | </tr> | | 11981 | </tr> |
11982 | <tr> | | 11982 | <tr> |
11983 | <td>CCACHE_DIR</td> | | 11983 | <td>CCACHE_DIR</td> |
11984 | <td>CCACHE_LOGFILE</td> | | 11984 | <td>CCACHE_LOGFILE</td> |
11985 | </tr> | | 11985 | </tr> |
11986 | <tr> | | 11986 | <tr> |
11987 | <td>CC_VERSION</td> | | 11987 | <td>CC_VERSION</td> |
11988 | <td>CC_VERSION_STRING</td> | | 11988 | <td>CC_VERSION_STRING</td> |
11989 | </tr> | | 11989 | </tr> |
11990 | <tr> | | 11990 | <tr> |
11991 | <td>CDRECORD_CONF</td> | | 11991 | <td>CDRECORD_CONF</td> |
11992 | <td>CDROM_PKG_URL_DIR</td> | | 11992 | <td>CDROM_PKG_URL_DIR</td> |
11993 | </tr> | | 11993 | </tr> |
11994 | <tr> | | 11994 | <tr> |
11995 | <td>CDROM_PKG_URL_HOST</td> | | 11995 | <td>CDROM_PKG_URL_HOST</td> |
11996 | <td>CHECKOUT_DATE</td> | | | |
11997 | </tr> | | | |
11998 | <tr> | | | |
11999 | <td>CHECK_COMPILER</td> | | 11996 | <td>CHECK_COMPILER</td> |
12000 | <td>CHECK_FAKEHOME</td> | | | |
12001 | </tr> | | 11997 | </tr> |
12002 | <tr> | | 11998 | <tr> |
| | | 11999 | <td>CHECK_FAKEHOME</td> |
12003 | <td>CHECK_FILES</td> | | 12000 | <td>CHECK_FILES</td> |
12004 | <td>CHECK_FILES_SKIP</td> | | | |
12005 | </tr> | | 12001 | </tr> |
12006 | <tr> | | 12002 | <tr> |
| | | 12003 | <td>CHECK_FILES_SKIP</td> |
12007 | <td>CHECK_FILES_STRICT</td> | | 12004 | <td>CHECK_FILES_STRICT</td> |
12008 | <td>CHECK_HEADERS</td> | | | |
12009 | </tr> | | 12005 | </tr> |
12010 | <tr> | | 12006 | <tr> |
| | | 12007 | <td>CHECK_HEADERS</td> |
12011 | <td>CHECK_HEADERS_SKIP</td> | | 12008 | <td>CHECK_HEADERS_SKIP</td> |
12012 | <td>CHECK_INTERPRETER</td> | | | |
12013 | </tr> | | 12009 | </tr> |
12014 | <tr> | | 12010 | <tr> |
| | | 12011 | <td>CHECK_INTERPRETER</td> |
12015 | <td>CHECK_INTERPRETER_SKIP</td> | | 12012 | <td>CHECK_INTERPRETER_SKIP</td> |
12016 | <td>CHECK_PERMS</td> | | | |
12017 | </tr> | | 12013 | </tr> |
12018 | <tr> | | 12014 | <tr> |
| | | 12015 | <td>CHECK_PERMS</td> |
12019 | <td>CHECK_PERMS_AUTOFIX</td> | | 12016 | <td>CHECK_PERMS_AUTOFIX</td> |
12020 | <td>CHECK_PERMS_SKIP</td> | | | |
12021 | </tr> | | 12017 | </tr> |
12022 | <tr> | | 12018 | <tr> |
| | | 12019 | <td>CHECK_PERMS_SKIP</td> |
12023 | <td>CHECK_PIE</td> | | 12020 | <td>CHECK_PIE</td> |
12024 | <td>CHECK_PIE_SKIP</td> | | | |
12025 | </tr> | | 12021 | </tr> |
12026 | <tr> | | 12022 | <tr> |
| | | 12023 | <td>CHECK_PIE_SKIP</td> |
12027 | <td>CHECK_PIE_SUPPORTED</td> | | 12024 | <td>CHECK_PIE_SUPPORTED</td> |
12028 | <td>CHECK_PORTABILITY</td> | | | |
12029 | </tr> | | 12025 | </tr> |
12030 | <tr> | | 12026 | <tr> |
| | | 12027 | <td>CHECK_PORTABILITY</td> |
12031 | <td>CHECK_PORTABILITY_EXPERIMENTAL</td> | | 12028 | <td>CHECK_PORTABILITY_EXPERIMENTAL</td> |
12032 | <td>CHECK_PORTABILITY_SKIP</td> | | | |
12033 | </tr> | | 12029 | </tr> |
12034 | <tr> | | 12030 | <tr> |
| | | 12031 | <td>CHECK_PORTABILITY_SKIP</td> |
12035 | <td>CHECK_RELRO</td> | | 12032 | <td>CHECK_RELRO</td> |
12036 | <td>CHECK_RELRO_SKIP</td> | | | |
12037 | </tr> | | 12033 | </tr> |
12038 | <tr> | | 12034 | <tr> |
| | | 12035 | <td>CHECK_RELRO_SKIP</td> |
12039 | <td>CHECK_RELRO_SUPPORTED</td> | | 12036 | <td>CHECK_RELRO_SUPPORTED</td> |
12040 | <td>CHECK_SHLIBS</td> | | | |
12041 | </tr> | | 12037 | </tr> |
12042 | <tr> | | 12038 | <tr> |
| | | 12039 | <td>CHECK_SHLIBS</td> |
12043 | <td>CHECK_SHLIBS_SKIP</td> | | 12040 | <td>CHECK_SHLIBS_SKIP</td> |
12044 | <td>CHECK_SHLIBS_SUPPORTED</td> | | | |
12045 | </tr> | | 12041 | </tr> |
12046 | <tr> | | 12042 | <tr> |
| | | 12043 | <td>CHECK_SHLIBS_SUPPORTED</td> |
12047 | <td>CHECK_SHLIBS_TOXIC</td> | | 12044 | <td>CHECK_SHLIBS_TOXIC</td> |
12048 | <td>CHECK_SSP</td> | | | |
12049 | </tr> | | 12045 | </tr> |
12050 | <tr> | | 12046 | <tr> |
| | | 12047 | <td>CHECK_SSP</td> |
12051 | <td>CHECK_SSP_SKIP</td> | | 12048 | <td>CHECK_SSP_SKIP</td> |
12052 | <td>CHECK_SSP_SUPPORTED</td> | | | |
12053 | </tr> | | 12049 | </tr> |
12054 | <tr> | | 12050 | <tr> |
| | | 12051 | <td>CHECK_SSP_SUPPORTED</td> |
12055 | <td>CHECK_STRIPPED</td> | | 12052 | <td>CHECK_STRIPPED</td> |
12056 | <td>CHECK_STRIPPED_SKIP</td> | | | |
12057 | </tr> | | 12053 | </tr> |
12058 | <tr> | | 12054 | <tr> |
| | | 12055 | <td>CHECK_STRIPPED_SKIP</td> |
12059 | <td>CHECK_WRKREF</td> | | 12056 | <td>CHECK_WRKREF</td> |
12060 | <td>CHECK_WRKREF_EXTRA_DIRS</td> | | | |
12061 | </tr> | | 12057 | </tr> |
12062 | <tr> | | 12058 | <tr> |
| | | 12059 | <td>CHECK_WRKREF_EXTRA_DIRS</td> |
12063 | <td>CHECK_WRKREF_SKIP</td> | | 12060 | <td>CHECK_WRKREF_SKIP</td> |
12064 | <td>CLAMAV_DBDIR</td> | | | |
12065 | </tr> | | 12061 | </tr> |
12066 | <tr> | | 12062 | <tr> |
| | | 12063 | <td>CLAMAV_DBDIR</td> |
12067 | <td>CLAMAV_GROUP</td> | | 12064 | <td>CLAMAV_GROUP</td> |
12068 | <td>CLAMAV_USER</td> | | | |
12069 | </tr> | | 12065 | </tr> |
12070 | <tr> | | 12066 | <tr> |
| | | 12067 | <td>CLAMAV_USER</td> |
12071 | <td>CLANGBASE</td> | | 12068 | <td>CLANGBASE</td> |
12072 | <td>CLEANDEPENDS</td> | | | |
12073 | </tr> | | 12069 | </tr> |
12074 | <tr> | | 12070 | <tr> |
| | | 12071 | <td>CLEANDEPENDS</td> |
12075 | <td>CMAKE_DEPENDENCIES_REWRITE</td> | | 12072 | <td>CMAKE_DEPENDENCIES_REWRITE</td> |
12076 | <td>CMAKE_INSTALL_NAME_DIR</td> | | | |
12077 | </tr> | | 12073 | </tr> |
12078 | <tr> | | 12074 | <tr> |
| | | 12075 | <td>CMAKE_INSTALL_NAME_DIR</td> |
12079 | <td>CMAKE_INSTALL_PREFIX</td> | | 12076 | <td>CMAKE_INSTALL_PREFIX</td> |
12080 | <td>CMAKE_MODULE_PATH_OVERRIDE</td> | | | |
12081 | </tr> | | 12077 | </tr> |
12082 | <tr> | | 12078 | <tr> |
| | | 12079 | <td>CMAKE_MODULE_PATH_OVERRIDE</td> |
12083 | <td>CMAKE_PKGSRC_BUILD_FLAGS</td> | | 12080 | <td>CMAKE_PKGSRC_BUILD_FLAGS</td> |
12084 | <td>CMAKE_PREFIX_PATH</td> | | | |
12085 | </tr> | | 12081 | </tr> |
12086 | <tr> | | 12082 | <tr> |
| | | 12083 | <td>CMAKE_PREFIX_PATH</td> |
12087 | <td>CMAKE_USE_GNU_INSTALL_DIRS</td> | | 12084 | <td>CMAKE_USE_GNU_INSTALL_DIRS</td> |
12088 | <td>COMMON_LISP_DOCFILES</td> | | | |
12089 | </tr> | | | |
12090 | <tr> | | | |
12091 | <td>COMMON_LISP_EXAMPLES</td> | | | |
12092 | <td>COMMON_LISP_EXTRAFILES</td> | | | |
12093 | </tr> | | | |
12094 | <tr> | | | |
12095 | <td>COMMON_LISP_PACKAGES</td> | | | |
12096 | <td>COMMON_LISP_SYSTEM</td> | | | |
12097 | </tr> | | 12085 | </tr> |
12098 | <tr> | | 12086 | <tr> |
12099 | <td>COMPILER_RPATH_FLAG</td> | | 12087 | <td>COMPILER_RPATH_FLAG</td> |
12100 | <td>COMPILER_USE_SYMLINKS</td> | | 12088 | <td>COMPILER_USE_SYMLINKS</td> |
12101 | </tr> | | 12089 | </tr> |
12102 | <tr> | | 12090 | <tr> |
12103 | <td>CONFIGURE_ARGS</td> | | 12091 | <td>CONFIGURE_ARGS</td> |
12104 | <td>CONFIGURE_DIRS</td> | | 12092 | <td>CONFIGURE_DIRS</td> |
12105 | </tr> | | 12093 | </tr> |
12106 | <tr> | | 12094 | <tr> |
12107 | <td>CONFIGURE_ENV</td> | | 12095 | <td>CONFIGURE_ENV</td> |
12108 | <td>CONFIGURE_ENV_SHELL</td> | | 12096 | <td>CONFIGURE_ENV_SHELL</td> |
12109 | </tr> | | 12097 | </tr> |
12110 | <tr> | | 12098 | <tr> |
12111 | <td>CONFIGURE_HAS_INFODIR</td> | | 12099 | <td>CONFIGURE_HAS_INFODIR</td> |
12112 | <td>CONFIGURE_HAS_MANDIR</td> | | 12100 | <td>CONFIGURE_HAS_MANDIR</td> |
12113 | </tr> | | 12101 | </tr> |
12114 | <tr> | | 12102 | <tr> |
12115 | <td>CONFIGURE_SCRIPT</td> | | 12103 | <td>CONFIGURE_SCRIPT</td> |
12116 | <td>CONFIG_SHELL</td> | | 12104 | <td>CONFIG_SHELL</td> |
12117 | </tr> | | 12105 | </tr> |
12118 | <tr> | | 12106 | <tr> |
12119 | <td>CONFIG_SHELL_FLAGS</td> | | 12107 | <td>CONFIG_SHELL_FLAGS</td> |
12120 | <td>CONF_FILES</td> | | 12108 | <td>CONF_FILES</td> |
12121 | </tr> | | 12109 | </tr> |
12122 | <tr> | | 12110 | <tr> |
12123 | <td>CONF_FILES_MODE</td> | | 12111 | <td>CONF_FILES_MODE</td> |
12124 | <td>CONF_FILES_PERMS</td> | | 12112 | <td>CONF_FILES_PERMS</td> |
12125 | </tr> | | 12113 | </tr> |
12126 | <tr> | | 12114 | <tr> |
12127 | <td>CONSERVER_DEFAULTHOST</td> | | 12115 | <td>CONSERVER_DEFAULTHOST</td> |
12128 | <td>CONSERVER_DEFAULTPORT</td> | | 12116 | <td>CONSERVER_DEFAULTPORT</td> |
12129 | </tr> | | 12117 | </tr> |
12130 | <tr> | | 12118 | <tr> |
12131 | <td>CP</td> | | 12119 | <td>CP</td> |
12132 | <td>CPP</td> | | 12120 | <td>CPP</td> |
12133 | </tr> | | 12121 | </tr> |
12134 | <tr> | | 12122 | <tr> |
12135 | <td>CPP_PRECOMP_FLAGS</td> | | 12123 | <td>CPP_PRECOMP_FLAGS</td> |
12136 | <td>CREATE_WRKDIR_SYMLINK</td> | | 12124 | <td>CREATE_WRKDIR_SYMLINK</td> |
12137 | </tr> | | 12125 | </tr> |
12138 | <tr> | | 12126 | <tr> |
12139 | <td>CROSSBASE</td> | | 12127 | <td>CROSSBASE</td> |
12140 | <td>CTFCONVERT</td> | | 12128 | <td>CTFCONVERT</td> |
12141 | </tr> | | 12129 | </tr> |
12142 | <tr> | | 12130 | <tr> |
12143 | <td>CTF_FILES_SKIP</td> | | 12131 | <td>CTF_FILES_SKIP</td> |
12144 | <td>CTF_SUPPORTED</td> | | 12132 | <td>CTF_SUPPORTED</td> |
12145 | </tr> | | 12133 | </tr> |
12146 | <tr> | | 12134 | <tr> |
12147 | <td>CTYPE</td> | | 12135 | <td>CTYPE</td> |
12148 | <td>CUPS_GROUP</td> | | 12136 | <td>CUPS_GROUP</td> |
12149 | </tr> | | 12137 | </tr> |
12150 | <tr> | | 12138 | <tr> |
12151 | <td>CUPS_SYSTEM_GROUPS</td> | | 12139 | <td>CUPS_SYSTEM_GROUPS</td> |
12152 | <td>CUPS_USER</td> | | 12140 | <td>CUPS_USER</td> |
12153 | </tr> | | 12141 | </tr> |
12154 | <tr> | | 12142 | <tr> |
12155 | <td>CURSES_DEFAULT</td> | | 12143 | <td>CURSES_DEFAULT</td> |
12156 | <td>CURSES_TYPE</td> | | 12144 | <td>CURSES_TYPE</td> |
12157 | </tr> | | 12145 | </tr> |
12158 | <tr> | | 12146 | <tr> |
12159 | <td>CVS_EXTRACTDIR</td> | | | |
12160 | <td>CVS_MODULE</td> | | | |
12161 | </tr> | | | |
12162 | <tr> | | | |
12163 | <td>CVS_PROJECT</td> | | | |
12164 | <td>CVS_REPOSITORIES</td> | | | |
12165 | </tr> | | | |
12166 | <tr> | | | |
12167 | <td>CVS_ROOT</td> | | | |
12168 | <td>CVS_ROOT_GNU</td> | | | |
12169 | </tr> | | | |
12170 | <tr> | | | |
12171 | <td>CVS_ROOT_NONGNU</td> | | | |
12172 | <td>CVS_ROOT_SOURCEFORGE</td> | | | |
12173 | </tr> | | | |
12174 | <tr> | | | |
12175 | <td>CVS_TAG</td> | | | |
12176 | <td>CXX</td> | | 12147 | <td>CXX</td> |
12177 | </tr> | | | |
12178 | <tr> | | | |
12179 | <td>CYRUS_GROUP</td> | | 12148 | <td>CYRUS_GROUP</td> |
12180 | <td>CYRUS_IDLE</td> | | | |
12181 | </tr> | | 12149 | </tr> |
12182 | <tr> | | 12150 | <tr> |
| | | 12151 | <td>CYRUS_IDLE</td> |
12183 | <td>CYRUS_USER</td> | | 12152 | <td>CYRUS_USER</td> |
12184 | <td>DAEMONTOOLS_GROUP</td> | | | |
12185 | </tr> | | 12153 | </tr> |
12186 | <tr> | | 12154 | <tr> |
| | | 12155 | <td>DAEMONTOOLS_GROUP</td> |
12187 | <td>DAEMONTOOLS_LOG_USER</td> | | 12156 | <td>DAEMONTOOLS_LOG_USER</td> |
12188 | <td>DARWIN_NO_SYSTEM_LIBS</td> | | | |
12189 | </tr> | | 12157 | </tr> |
12190 | <tr> | | 12158 | <tr> |
| | | 12159 | <td>DARWIN_NO_SYSTEM_LIBS</td> |
12191 | <td>DARWIN_REQUIRES_FILTER</td> | | 12160 | <td>DARWIN_REQUIRES_FILTER</td> |
12192 | <td>DBUS_GROUP</td> | | | |
12193 | </tr> | | 12161 | </tr> |
12194 | <tr> | | 12162 | <tr> |
| | | 12163 | <td>DBUS_GROUP</td> |
12195 | <td>DBUS_USER</td> | | 12164 | <td>DBUS_USER</td> |
12196 | <td>DEFANG_GROUP</td> | | | |
12197 | </tr> | | 12165 | </tr> |
12198 | <tr> | | 12166 | <tr> |
| | | 12167 | <td>DEFANG_GROUP</td> |
12199 | <td>DEFANG_USER</td> | | 12168 | <td>DEFANG_USER</td> |
12200 | <td>DEFAULT_ACCEPTABLE_LICENSES</td> | | | |
12201 | </tr> | | 12169 | </tr> |
12202 | <tr> | | 12170 | <tr> |
| | | 12171 | <td>DEFAULT_ACCEPTABLE_LICENSES</td> |
12203 | <td>DEFAULT_DISTFILES</td> | | 12172 | <td>DEFAULT_DISTFILES</td> |
12204 | <td>DEFAULT_IRC_SERVER</td> | | | |
12205 | </tr> | | 12173 | </tr> |
12206 | <tr> | | 12174 | <tr> |
| | | 12175 | <td>DEFAULT_IRC_SERVER</td> |
12207 | <td>DEFAULT_SERIAL_DEVICE</td> | | 12176 | <td>DEFAULT_SERIAL_DEVICE</td> |
12208 | <td>DEF_UMASK</td> | | | |
12209 | </tr> | | 12177 | </tr> |
12210 | <tr> | | 12178 | <tr> |
| | | 12179 | <td>DEF_UMASK</td> |
12211 | <td>DEINSTALLDEPENDS</td> | | 12180 | <td>DEINSTALLDEPENDS</td> |
12212 | <td>DEINSTALL_SRC</td> | | | |
12213 | </tr> | | 12181 | </tr> |
12214 | <tr> | | 12182 | <tr> |
| | | 12183 | <td>DEINSTALL_SRC</td> |
12215 | <td>DEINSTALL_TEMPLATES</td> | | 12184 | <td>DEINSTALL_TEMPLATES</td> |
12216 | <td>DELAYED_ERROR_MSG</td> | | | |
12217 | </tr> | | 12185 | </tr> |
12218 | <tr> | | 12186 | <tr> |
| | | 12187 | <td>DELAYED_ERROR_MSG</td> |
12219 | <td>DELAYED_WARNING_MSG</td> | | 12188 | <td>DELAYED_WARNING_MSG</td> |
12220 | <td>DEPENDS</td> | | | |
12221 | </tr> | | 12189 | </tr> |
12222 | <tr> | | 12190 | <tr> |
| | | 12191 | <td>DEPENDS</td> |
12223 | <td>DEPENDS_TARGET</td> | | 12192 | <td>DEPENDS_TARGET</td> |
12224 | <td>DEPENDS_TYPE</td> | | | |
12225 | </tr> | | 12193 | </tr> |
12226 | <tr> | | 12194 | <tr> |
| | | 12195 | <td>DEPENDS_TYPE</td> |
12227 | <td>DESTDIR</td> | | 12196 | <td>DESTDIR</td> |
12228 | <td>DESTDIR_VARNAME</td> | | | |
12229 | </tr> | | 12197 | </tr> |
12230 | <tr> | | 12198 | <tr> |
| | | 12199 | <td>DESTDIR_VARNAME</td> |
12231 | <td>DIALER_GROUP</td> | | 12200 | <td>DIALER_GROUP</td> |
12232 | <td>DIGEST_REQD</td> | | | |
12233 | </tr> | | 12201 | </tr> |
12234 | <tr> | | 12202 | <tr> |
| | | 12203 | <td>DIGEST_REQD</td> |
12235 | <td>DISTDIR</td> | | 12204 | <td>DISTDIR</td> |
12236 | <td>DISTFILES</td> | | | |
12237 | </tr> | | 12205 | </tr> |
12238 | <tr> | | 12206 | <tr> |
| | | 12207 | <td>DISTFILES</td> |
12239 | <td>DISTINFO_FILE</td> | | 12208 | <td>DISTINFO_FILE</td> |
12240 | <td>DISTNAME</td> | | | |
12241 | </tr> | | 12209 | </tr> |
12242 | <tr> | | 12210 | <tr> |
| | | 12211 | <td>DISTNAME</td> |
12243 | <td>DIST_PATH</td> | | 12212 | <td>DIST_PATH</td> |
12244 | <td>DIST_SUBDIR</td> | | | |
12245 | </tr> | | 12213 | </tr> |
12246 | <tr> | | 12214 | <tr> |
| | | 12215 | <td>DIST_SUBDIR</td> |
12247 | <td>DJBDNS_AXFR_USER</td> | | 12216 | <td>DJBDNS_AXFR_USER</td> |
12248 | <td>DJBDNS_CACHE_USER</td> | | | |
12249 | </tr> | | 12217 | </tr> |
12250 | <tr> | | 12218 | <tr> |
| | | 12219 | <td>DJBDNS_CACHE_USER</td> |
12251 | <td>DJBDNS_DJBDNS_GROUP</td> | | 12220 | <td>DJBDNS_DJBDNS_GROUP</td> |
12252 | <td>DJBDNS_LOG_USER</td> | | | |
12253 | </tr> | | 12221 | </tr> |
12254 | <tr> | | 12222 | <tr> |
| | | 12223 | <td>DJBDNS_LOG_USER</td> |
12255 | <td>DJBDNS_RBL_USER</td> | | 12224 | <td>DJBDNS_RBL_USER</td> |
12256 | <td>DJBDNS_TINY_USER</td> | | | |
12257 | </tr> | | 12225 | </tr> |
12258 | <tr> | | 12226 | <tr> |
| | | 12227 | <td>DJBDNS_TINY_USER</td> |
12259 | <td>DLOPEN_REQUIRE_PTHREADS</td> | | 12228 | <td>DLOPEN_REQUIRE_PTHREADS</td> |
12260 | <td>DL_AUTO_VARS</td> | | | |
12261 | </tr> | | 12229 | </tr> |
12262 | <tr> | | 12230 | <tr> |
| | | 12231 | <td>DL_AUTO_VARS</td> |
12263 | <td>DL_CFLAGS</td> | | 12232 | <td>DL_CFLAGS</td> |
12264 | <td>DL_LDFLAGS</td> | | | |
12265 | </tr> | | 12233 | </tr> |
12266 | <tr> | | 12234 | <tr> |
| | | 12235 | <td>DL_LDFLAGS</td> |
12267 | <td>DL_LIBS</td> | | 12236 | <td>DL_LIBS</td> |
12268 | <td>DNS</td> | | | |
12269 | </tr> | | 12237 | </tr> |
12270 | <tr> | | 12238 | <tr> |
| | | 12239 | <td>DNS</td> |
12271 | <td>DOCOWN</td> | | 12240 | <td>DOCOWN</td> |
12272 | <td>DOWNLOADED_DISTFILE</td> | | | |
12273 | </tr> | | 12241 | </tr> |
12274 | <tr> | | 12242 | <tr> |
| | | 12243 | <td>DOWNLOADED_DISTFILE</td> |
12275 | <td>DQCACHE_GROUP</td> | | 12244 | <td>DQCACHE_GROUP</td> |
12276 | <td>DQCACHE_USER</td> | | | |
12277 | </tr> | | 12245 | </tr> |
12278 | <tr> | | 12246 | <tr> |
| | | 12247 | <td>DQCACHE_USER</td> |
12279 | <td>DT_LAYOUT</td> | | 12248 | <td>DT_LAYOUT</td> |
12280 | <td>DYNAMIC_SITES_CMD</td> | | | |
12281 | </tr> | | 12249 | </tr> |
12282 | <tr> | | 12250 | <tr> |
| | | 12251 | <td>DYNAMIC_SITES_CMD</td> |
12283 | <td>DYNAMIC_SITES_SCRIPT</td> | | 12252 | <td>DYNAMIC_SITES_SCRIPT</td> |
12284 | <td>ECHO</td> | | | |
12285 | </tr> | | 12253 | </tr> |
12286 | <tr> | | 12254 | <tr> |
| | | 12255 | <td>ECHO</td> |
12287 | <td>ECHO_N</td> | | 12256 | <td>ECHO_N</td> |
12288 | <td>ELK_GUI</td> | | | |
12289 | </tr> | | 12257 | </tr> |
12290 | <tr> | | 12258 | <tr> |
| | | 12259 | <td>ELK_GUI</td> |
12291 | <td>EMACS_TYPE</td> | | 12260 | <td>EMACS_TYPE</td> |
12292 | <td>EMULDIR</td> | | | |
12293 | </tr> | | 12261 | </tr> |
12294 | <tr> | | 12262 | <tr> |
| | | 12263 | <td>EMULDIR</td> |
12295 | <td>EMULSUBDIR</td> | | 12264 | <td>EMULSUBDIR</td> |
12296 | <td>EMULSUBDIRSLASH</td> | | | |
12297 | </tr> | | 12265 | </tr> |
12298 | <tr> | | 12266 | <tr> |
| | | 12267 | <td>EMULSUBDIRSLASH</td> |
12299 | <td>EMUL_ARCH</td> | | 12268 | <td>EMUL_ARCH</td> |
12300 | <td>EMUL_DISTRO</td> | | | |
12301 | </tr> | | 12269 | </tr> |
12302 | <tr> | | 12270 | <tr> |
| | | 12271 | <td>EMUL_DISTRO</td> |
12303 | <td>EMUL_EXEC_FMT</td> | | 12272 | <td>EMUL_EXEC_FMT</td> |
12304 | <td>EMUL_IS_NATIVE</td> | | | |
12305 | </tr> | | 12273 | </tr> |
12306 | <tr> | | 12274 | <tr> |
| | | 12275 | <td>EMUL_IS_NATIVE</td> |
12307 | <td>EMUL_MODULES</td> | | 12276 | <td>EMUL_MODULES</td> |
12308 | <td>EMUL_OPSYS</td> | | | |
12309 | </tr> | | 12277 | </tr> |
12310 | <tr> | | 12278 | <tr> |
| | | 12279 | <td>EMUL_OPSYS</td> |
12311 | <td>EMUL_PKG_FMT</td> | | 12280 | <td>EMUL_PKG_FMT</td> |
12312 | <td>EMUL_PLATFORM</td> | | | |
12313 | </tr> | | 12281 | </tr> |
12314 | <tr> | | 12282 | <tr> |
| | | 12283 | <td>EMUL_PLATFORM</td> |
12315 | <td>EMUL_PLATFORMS</td> | | 12284 | <td>EMUL_PLATFORMS</td> |
12316 | <td>EMUL_PREFER</td> | | | |
12317 | </tr> | | 12285 | </tr> |
12318 | <tr> | | 12286 | <tr> |
| | | 12287 | <td>EMUL_PREFER</td> |
12319 | <td>EMUL_REQD</td> | | 12288 | <td>EMUL_REQD</td> |
12320 | <td>EMUL_TYPE</td> | | | |
12321 | </tr> | | 12289 | </tr> |
12322 | <tr> | | 12290 | <tr> |
| | | 12291 | <td>EMUL_TYPE</td> |
12323 | <td>ERROR_MSG</td> | | 12292 | <td>ERROR_MSG</td> |
12324 | <td>EXIM_GROUP</td> | | | |
12325 | </tr> | | 12293 | </tr> |
12326 | <tr> | | 12294 | <tr> |
| | | 12295 | <td>EXIM_GROUP</td> |
12327 | <td>EXIM_USER</td> | | 12296 | <td>EXIM_USER</td> |
12328 | <td>EXPORT_SYMBOLS_LDFLAGS</td> | | | |
12329 | </tr> | | 12297 | </tr> |
12330 | <tr> | | 12298 | <tr> |
| | | 12299 | <td>EXPORT_SYMBOLS_LDFLAGS</td> |
12331 | <td>EXTRACTOR</td> | | 12300 | <td>EXTRACTOR</td> |
12332 | <td>EXTRACT_CMD</td> | | | |
12333 | </tr> | | 12301 | </tr> |
12334 | <tr> | | 12302 | <tr> |
| | | 12303 | <td>EXTRACT_CMD</td> |
12335 | <td>EXTRACT_CMD_DEFAULT</td> | | 12304 | <td>EXTRACT_CMD_DEFAULT</td> |
12336 | <td>EXTRACT_DIR</td> | | | |
12337 | </tr> | | 12305 | </tr> |
12338 | <tr> | | 12306 | <tr> |
| | | 12307 | <td>EXTRACT_DIR</td> |
12339 | <td>EXTRACT_ELEMENTS</td> | | 12308 | <td>EXTRACT_ELEMENTS</td> |
12340 | <td>EXTRACT_ENV</td> | | | |
12341 | </tr> | | 12309 | </tr> |
12342 | <tr> | | 12310 | <tr> |
| | | 12311 | <td>EXTRACT_ENV</td> |
12343 | <td>EXTRACT_ONLY</td> | | 12312 | <td>EXTRACT_ONLY</td> |
12344 | <td>EXTRACT_OPTS</td> | | | |
12345 | </tr> | | 12313 | </tr> |
12346 | <tr> | | 12314 | <tr> |
| | | 12315 | <td>EXTRACT_OPTS</td> |
12347 | <td>EXTRACT_SUFX</td> | | 12316 | <td>EXTRACT_SUFX</td> |
12348 | <td>EXTRACT_USING</td> | | | |
12349 | </tr> | | 12317 | </tr> |
12350 | <tr> | | 12318 | <tr> |
| | | 12319 | <td>EXTRACT_USING</td> |
12351 | <td>FAIL</td> | | 12320 | <td>FAIL</td> |
12352 | <td>FAILOVER_FETCH</td> | | | |
12353 | </tr> | | 12321 | </tr> |
12354 | <tr> | | 12322 | <tr> |
| | | 12323 | <td>FAILOVER_FETCH</td> |
12355 | <td>FAIL_MSG</td> | | 12324 | <td>FAIL_MSG</td> |
12356 | <td>FAKE_NCURSES</td> | | | |
12357 | </tr> | | 12325 | </tr> |
12358 | <tr> | | 12326 | <tr> |
| | | 12327 | <td>FAKE_NCURSES</td> |
12359 | <td>FAM</td> | | 12328 | <td>FAM</td> |
12360 | <td>FAM_ACCEPTED</td> | | | |
12361 | </tr> | | 12329 | </tr> |
12362 | <tr> | | 12330 | <tr> |
| | | 12331 | <td>FAM_ACCEPTED</td> |
12363 | <td>FAM_DEFAULT</td> | | 12332 | <td>FAM_DEFAULT</td> |
12364 | <td>FAM_SERVER</td> | | | |
12365 | </tr> | | 12333 | </tr> |
12366 | <tr> | | 12334 | <tr> |
| | | 12335 | <td>FAM_SERVER</td> |
12367 | <td>FCPATH</td> | | 12336 | <td>FCPATH</td> |
12368 | <td>FEATURE_CPPFLAGS</td> | | | |
12369 | </tr> | | 12337 | </tr> |
12370 | <tr> | | 12338 | <tr> |
| | | 12339 | <td>FEATURE_CPPFLAGS</td> |
12371 | <td>FEATURE_LDFLAGS</td> | | 12340 | <td>FEATURE_LDFLAGS</td> |
12372 | <td>FEATURE_LIBS</td> | | | |
12373 | </tr> | | 12341 | </tr> |
12374 | <tr> | | 12342 | <tr> |
| | | 12343 | <td>FEATURE_LIBS</td> |
12375 | <td>FETCH_AFTER_ARGS</td> | | 12344 | <td>FETCH_AFTER_ARGS</td> |
12376 | <td>FETCH_BEFORE_ARGS</td> | | | |
12377 | </tr> | | 12345 | </tr> |
12378 | <tr> | | 12346 | <tr> |
| | | 12347 | <td>FETCH_BEFORE_ARGS</td> |
12379 | <td>FETCH_CMD</td> | | 12348 | <td>FETCH_CMD</td> |
12380 | <td>FETCH_OUTPUT_ARGS</td> | | | |
12381 | </tr> | | 12349 | </tr> |
12382 | <tr> | | 12350 | <tr> |
| | | 12351 | <td>FETCH_OUTPUT_ARGS</td> |
12383 | <td>FETCH_PROXY</td> | | 12352 | <td>FETCH_PROXY</td> |
12384 | <td>FETCH_RESUME_ARGS</td> | | | |
12385 | </tr> | | 12353 | </tr> |
12386 | <tr> | | 12354 | <tr> |
| | | 12355 | <td>FETCH_RESUME_ARGS</td> |
12387 | <td>FETCH_TIMEOUT</td> | | 12356 | <td>FETCH_TIMEOUT</td> |
12388 | <td>FETCH_USE_IPV4_ONLY</td> | | | |
12389 | </tr> | | 12357 | </tr> |
12390 | <tr> | | 12358 | <tr> |
| | | 12359 | <td>FETCH_USE_IPV4_ONLY</td> |
12391 | <td>FETCH_USING</td> | | 12360 | <td>FETCH_USING</td> |
12392 | <td>FILES_SUBST</td> | | | |
12393 | </tr> | | 12361 | </tr> |
12394 | <tr> | | 12362 | <tr> |
| | | 12363 | <td>FILES_SUBST</td> |
12395 | <td>FILES_SUBST_SED</td> | | 12364 | <td>FILES_SUBST_SED</td> |
12396 | <td>FIX_SYSTEM_HEADERS</td> | | | |
12397 | </tr> | | 12365 | </tr> |
12398 | <tr> | | 12366 | <tr> |
12399 | <td>FONTDIR</td> | | 12367 | <td>FIX_SYSTEM_HEADERS</td> |
12400 | <td>FONTS_DIRS</td> | | 12368 | <td>FONTS_DIRS</td> |
12401 | </tr> | | 12369 | </tr> |
12402 | <tr> | | 12370 | <tr> |
12403 | <td>FONTS_VERBOSE</td> | | 12371 | <td>FONTS_VERBOSE</td> |
12404 | <td>FOO_HACKS_MK</td> | | 12372 | <td>FOO_HACKS_MK</td> |
12405 | </tr> | | 12373 | </tr> |
12406 | <tr> | | 12374 | <tr> |
12407 | <td>FOSSIL_EXTRACTDIR</td> | | | |
12408 | <td>FOSSIL_REPO</td> | | | |
12409 | </tr> | | | |
12410 | <tr> | | | |
12411 | <td>FOSSIL_REPOSITORIES</td> | | | |
12412 | <td>FOSSIL_VERSION</td> | | | |
12413 | </tr> | | | |
12414 | <tr> | | | |
12415 | <td>FOX_USE_XUNICODE</td> | | 12375 | <td>FOX_USE_XUNICODE</td> |
12416 | <td>FREEWNN_GROUP</td> | | 12376 | <td>FREEWNN_GROUP</td> |
12417 | </tr> | | 12377 | </tr> |
12418 | <tr> | | 12378 | <tr> |
12419 | <td>FREEWNN_USER</td> | | 12379 | <td>FREEWNN_USER</td> |
12420 | <td>FTP_PKG_URL_DIR</td> | | 12380 | <td>FTP_PKG_URL_DIR</td> |
12421 | </tr> | | 12381 | </tr> |
12422 | <tr> | | 12382 | <tr> |
12423 | <td>FTP_PKG_URL_HOST</td> | | 12383 | <td>FTP_PKG_URL_HOST</td> |
12424 | <td>GAMEDATAMODE</td> | | 12384 | <td>GAMEDATAMODE</td> |
12425 | </tr> | | 12385 | </tr> |
12426 | <tr> | | 12386 | <tr> |
12427 | <td>GAMEDATA_PERMS</td> | | 12387 | <td>GAMEDATA_PERMS</td> |
12428 | <td>GAMEDIRMODE</td> | | 12388 | <td>GAMEDIRMODE</td> |
12429 | </tr> | | 12389 | </tr> |
12430 | <tr> | | 12390 | <tr> |
12431 | <td>GAMEDIR_PERMS</td> | | 12391 | <td>GAMEDIR_PERMS</td> |
12432 | <td>GAMEGRP</td> | | 12392 | <td>GAMEGRP</td> |
12433 | </tr> | | 12393 | </tr> |
12434 | <tr> | | 12394 | <tr> |
12435 | <td>GAMEMODE</td> | | 12395 | <td>GAMEMODE</td> |
12436 | <td>GAMEOWN</td> | | 12396 | <td>GAMEOWN</td> |
12437 | </tr> | | 12397 | </tr> |
12438 | <tr> | | 12398 | <tr> |
12439 | <td>GAMES_GROUP</td> | | 12399 | <td>GAMES_GROUP</td> |
12440 | <td>GAMES_USER</td> | | 12400 | <td>GAMES_USER</td> |
12441 | </tr> | | 12401 | </tr> |
12442 | <tr> | | 12402 | <tr> |
12443 | <td>GCC</td> | | 12403 | <td>GCC</td> |
12444 | <td>GCCBASE</td> | | 12404 | <td>GCCBASE</td> |
12445 | </tr> | | 12405 | </tr> |
12446 | <tr> | | 12406 | <tr> |
12447 | <td>GCC_REQD</td> | | 12407 | <td>GCC_REQD</td> |
12448 | <td>GCC_VERSION_SUFFIX</td> | | 12408 | <td>GCC_VERSION_SUFFIX</td> |
12449 | </tr> | | 12409 | </tr> |
12450 | <tr> | | 12410 | <tr> |
12451 | <td>GEM_BUILD</td> | | 12411 | <td>GEM_BUILD</td> |
12452 | <td>GEM_CLEANBUILD</td> | | 12412 | <td>GEM_CLEANBUILD</td> |
12453 | </tr> | | 12413 | </tr> |
12454 | <tr> | | 12414 | <tr> |
12455 | <td>GEM_CLEANBUILD_EXTENSIONS</td> | | 12415 | <td>GEM_CLEANBUILD_EXTENSIONS</td> |
12456 | <td>GEM_DOCDIR</td> | | 12416 | <td>GEM_DOCDIR</td> |
12457 | </tr> | | 12417 | </tr> |
12458 | <tr> | | 12418 | <tr> |
12459 | <td>GEM_EXTSDIR</td> | | 12419 | <td>GEM_EXTSDIR</td> |
12460 | <td>GEM_HOME</td> | | 12420 | <td>GEM_HOME</td> |
12461 | </tr> | | 12421 | </tr> |
12462 | <tr> | | 12422 | <tr> |
12463 | <td>GEM_KEEPBUILD</td> | | 12423 | <td>GEM_KEEPBUILD</td> |
12464 | <td>GEM_LIBDIR</td> | | 12424 | <td>GEM_LIBDIR</td> |
12465 | </tr> | | 12425 | </tr> |
12466 | <tr> | | 12426 | <tr> |
12467 | <td>GEM_NAME</td> | | 12427 | <td>GEM_NAME</td> |
12468 | <td>GEM_PATH</td> | | 12428 | <td>GEM_PATH</td> |
12469 | </tr> | | 12429 | </tr> |
12470 | <tr> | | 12430 | <tr> |
12471 | <td>GEM_PLUGINSDIR</td> | | 12431 | <td>GEM_PLUGINSDIR</td> |
12472 | <td>GEM_SPECFILE</td> | | 12432 | <td>GEM_SPECFILE</td> |
12473 | </tr> | | 12433 | </tr> |
12474 | <tr> | | 12434 | <tr> |
12475 | <td>GENERATE_PLIST</td> | | 12435 | <td>GENERATE_PLIST</td> |
12476 | <td>GHC</td> | | 12436 | <td>GHC</td> |
12477 | </tr> | | 12437 | </tr> |
12478 | <tr> | | 12438 | <tr> |
12479 | <td>GHOSTSCRIPT_REQD</td> | | 12439 | <td>GHOSTSCRIPT_REQD</td> |
12480 | <td>GITHUB_PROJECT</td> | | 12440 | <td>GITHUB_PROJECT</td> |
12481 | </tr> | | 12441 | </tr> |
12482 | <tr> | | 12442 | <tr> |
12483 | <td>GITHUB_RELEASE</td> | | 12443 | <td>GITHUB_RELEASE</td> |
12484 | <td>GITHUB_SUBMODULES</td> | | 12444 | <td>GITHUB_SUBMODULES</td> |
12485 | </tr> | | 12445 | </tr> |
12486 | <tr> | | 12446 | <tr> |
12487 | <td>GITHUB_TAG</td> | | 12447 | <td>GITHUB_TAG</td> |
12488 | <td>GITHUB_TYPE</td> | | 12448 | <td>GITHUB_TYPE</td> |
12489 | </tr> | | 12449 | </tr> |
12490 | <tr> | | 12450 | <tr> |
12491 | <td>GITLAB_PROJECT</td> | | 12451 | <td>GITLAB_PROJECT</td> |
12492 | <td>GITLAB_TAG</td> | | 12452 | <td>GITLAB_RELEASE</td> |
12493 | </tr> | | 12453 | </tr> |
12494 | <tr> | | 12454 | <tr> |
12495 | <td>GITLAB_TYPE</td> | | 12455 | <td>GITLAB_SUBMODULES</td> |
12496 | <td>GIT_BRANCH</td> | | 12456 | <td>GITLAB_TAG</td> |
12497 | </tr> | | | |
12498 | <tr> | | | |
12499 | <td>GIT_ENV</td> | | | |
12500 | <td>GIT_EXTRACTDIR</td> | | | |
12501 | </tr> | | | |
12502 | <tr> | | | |
12503 | <td>GIT_REPO</td> | | | |
12504 | <td>GIT_REPOSITORIES</td> | | | |
12505 | </tr> | | | |
12506 | <tr> | | | |
12507 | <td>GIT_REVISION</td> | | | |
12508 | <td>GIT_TAG</td> | | | |
12509 | </tr> | | 12457 | </tr> |
12510 | <tr> | | 12458 | <tr> |
| | | 12459 | <td>GITLAB_TYPE</td> |
12511 | <td>GNU</td> | | 12460 | <td>GNU</td> |
12512 | <td>GNU_CONFIGURE</td> | | | |
12513 | </tr> | | 12461 | </tr> |
12514 | <tr> | | 12462 | <tr> |
| | | 12463 | <td>GNU_CONFIGURE</td> |
12515 | <td>GNU_CONFIGURE_INFODIR</td> | | 12464 | <td>GNU_CONFIGURE_INFODIR</td> |
12516 | <td>GNU_CONFIGURE_MANDIR</td> | | | |
12517 | </tr> | | 12465 | </tr> |
12518 | <tr> | | 12466 | <tr> |
| | | 12467 | <td>GNU_CONFIGURE_MANDIR</td> |
12519 | <td>GNU_CONFIGURE_QUIET</td> | | 12468 | <td>GNU_CONFIGURE_QUIET</td> |
12520 | <td>GNU_CONFIGURE_STRICT</td> | | | |
12521 | </tr> | | 12469 | </tr> |
12522 | <tr> | | 12470 | <tr> |
| | | 12471 | <td>GNU_CONFIGURE_STRICT</td> |
12523 | <td>GODEP_REDIRECTS</td> | | 12472 | <td>GODEP_REDIRECTS</td> |
12524 | <td>GO_BUILD_PATTERN</td> | | | |
12525 | </tr> | | 12473 | </tr> |
12526 | <tr> | | 12474 | <tr> |
| | | 12475 | <td>GO_BUILD_PATTERN</td> |
12527 | <td>GO_DEPS</td> | | 12476 | <td>GO_DEPS</td> |
12528 | <td>GO_DIST_BASE</td> | | | |
12529 | </tr> | | 12477 | </tr> |
12530 | <tr> | | 12478 | <tr> |
| | | 12479 | <td>GO_DIST_BASE</td> |
12531 | <td>GO_EXTRA_MOD_DIRS</td> | | 12480 | <td>GO_EXTRA_MOD_DIRS</td> |
12532 | <td>GO_MODULE_FILES</td> | | | |
12533 | </tr> | | 12481 | </tr> |
12534 | <tr> | | 12482 | <tr> |
| | | 12483 | <td>GO_MODULE_FILES</td> |
12535 | <td>GO_SRCPATH</td> | | 12484 | <td>GO_SRCPATH</td> |
12536 | <td>GO_VERSION_DEFAULT</td> | | | |
12537 | </tr> | | 12485 | </tr> |
12538 | <tr> | | 12486 | <tr> |
| | | 12487 | <td>GO_VERSION_DEFAULT</td> |
12539 | <td>GROUP_SPECIFIC_PKGS</td> | | 12488 | <td>GROUP_SPECIFIC_PKGS</td> |
12540 | <td>GRUB_NETWORK_CARDS</td> | | | |
12541 | </tr> | | 12489 | </tr> |
12542 | <tr> | | 12490 | <tr> |
| | | 12491 | <td>GRUB_NETWORK_CARDS</td> |
12543 | <td>GRUB_PRESET_COMMAND</td> | | 12492 | <td>GRUB_PRESET_COMMAND</td> |
12544 | <td>GRUB_SCAN_ARGS</td> | | | |
12545 | </tr> | | 12493 | </tr> |
12546 | <tr> | | 12494 | <tr> |
| | | 12495 | <td>GRUB_SCAN_ARGS</td> |
12547 | <td>GZIP</td> | | 12496 | <td>GZIP</td> |
12548 | <td>HASKELL_COMPILER</td> | | | |
12549 | </tr> | | 12497 | </tr> |
12550 | <tr> | | 12498 | <tr> |
12551 | <td>HASKELL_ENABLE_DYNAMIC_EXECUTABLE</td> | | 12499 | <td>HASKELL_ENABLE_DYNAMIC_EXECUTABLE</td> |
12552 | <td>HASKELL_ENABLE_HADDOCK_DOCUMENTATION</td> | | 12500 | <td>HASKELL_ENABLE_HADDOCK_DOCUMENTATION</td> |
12553 | </tr> | | 12501 | </tr> |
12554 | <tr> | | 12502 | <tr> |
12555 | <td>HASKELL_ENABLE_LIBRARY_PROFILING</td> | | 12503 | <td>HASKELL_ENABLE_LIBRARY_PROFILING</td> |
12556 | <td>HASKELL_ENABLE_SHARED_LIBRARY</td> | | 12504 | <td>HASKELL_ENABLE_SHARED_LIBRARY</td> |
12557 | </tr> | | 12505 | </tr> |
12558 | <tr> | | 12506 | <tr> |
12559 | <td>HASKELL_OPTIMIZATION_LEVEL</td> | | 12507 | <td>HASKELL_OPTIMIZATION_LEVEL</td> |
12560 | <td>HAS_CONFIGURE</td> | | 12508 | <td>HAS_CONFIGURE</td> |
12561 | </tr> | | 12509 | </tr> |
12562 | <tr> | | 12510 | <tr> |
12563 | <td>HEADER_TEMPLATES</td> | | 12511 | <td>HEADER_TEMPLATES</td> |
12564 | <td>HG_REPO</td> | | | |
12565 | </tr> | | | |
12566 | <tr> | | | |
12567 | <td>HG_REPOSITORIES</td> | | | |
12568 | <td>HG_TAG</td> | | | |
12569 | </tr> | | | |
12570 | <tr> | | | |
12571 | <td>HOMEPAGE</td> | | 12512 | <td>HOMEPAGE</td> |
12572 | <td>HOST_PKGTOOLS_ARGS</td> | | | |
12573 | </tr> | | 12513 | </tr> |
12574 | <tr> | | 12514 | <tr> |
| | | 12515 | <td>HOST_PKGTOOLS_ARGS</td> |
12575 | <td>HOST_SPECIFIC_PKGS</td> | | 12516 | <td>HOST_SPECIFIC_PKGS</td> |
12576 | <td>HOWL_GROUP</td> | | | |
12577 | </tr> | | 12517 | </tr> |
12578 | <tr> | | 12518 | <tr> |
| | | 12519 | <td>HOWL_GROUP</td> |
12579 | <td>HOWL_USER</td> | | 12520 | <td>HOWL_USER</td> |
12580 | <td>ICCBASE</td> | | | |
12581 | </tr> | | 12521 | </tr> |
12582 | <tr> | | 12522 | <tr> |
| | | 12523 | <td>ICCBASE</td> |
12583 | <td>ICECAST_CHROOTDIR</td> | | 12524 | <td>ICECAST_CHROOTDIR</td> |
12584 | <td>ICON_THEMES</td> | | | |
12585 | </tr> | | 12525 | </tr> |
12586 | <tr> | | 12526 | <tr> |
| | | 12527 | <td>ICON_THEMES</td> |
12587 | <td>IDOBASE</td> | | 12528 | <td>IDOBASE</td> |
12588 | <td>IGNORE_CCACHE</td> | | | |
12589 | </tr> | | 12529 | </tr> |
12590 | <tr> | | 12530 | <tr> |
| | | 12531 | <td>IGNORE_CCACHE</td> |
12591 | <td>IGNORE_INFO_DIRS</td> | | 12532 | <td>IGNORE_INFO_DIRS</td> |
12592 | <td>IGNORE_INTERACTIVE_FETCH</td> | | | |
12593 | </tr> | | 12533 | </tr> |
12594 | <tr> | | 12534 | <tr> |
| | | 12535 | <td>IGNORE_INTERACTIVE_FETCH</td> |
12595 | <td>IMAKE</td> | | 12536 | <td>IMAKE</td> |
12596 | <td>IMAKEOPTS</td> | | | |
12597 | </tr> | | 12537 | </tr> |
12598 | <tr> | | 12538 | <tr> |
| | | 12539 | <td>IMAKEOPTS</td> |
12599 | <td>IMAKE_MAKE</td> | | 12540 | <td>IMAKE_MAKE</td> |
12600 | <td>IMAKE_MANINSTALL</td> | | | |
12601 | </tr> | | 12541 | </tr> |
12602 | <tr> | | 12542 | <tr> |
| | | 12543 | <td>IMAKE_MANINSTALL</td> |
12603 | <td>IMAP_UW_CCLIENT_MBOX_FMT</td> | | 12544 | <td>IMAP_UW_CCLIENT_MBOX_FMT</td> |
12604 | <td>IMDICTDIR</td> | | | |
12605 | </tr> | | 12545 | </tr> |
12606 | <tr> | | 12546 | <tr> |
| | | 12547 | <td>IMDICTDIR</td> |
12607 | <td>INCOMPAT_CURSES</td> | | 12548 | <td>INCOMPAT_CURSES</td> |
12608 | <td>INFO_DIR</td> | | | |
12609 | </tr> | | 12549 | </tr> |
12610 | <tr> | | 12550 | <tr> |
| | | 12551 | <td>INFO_DIR</td> |
12611 | <td>INFO_FILES</td> | | 12552 | <td>INFO_FILES</td> |
12612 | <td>INFO_FILES_VERBOSE</td> | | | |
12613 | </tr> | | 12553 | </tr> |
12614 | <tr> | | 12554 | <tr> |
| | | 12555 | <td>INFO_FILES_VERBOSE</td> |
12615 | <td>INFO_MSG</td> | | 12556 | <td>INFO_MSG</td> |
12616 | <td>INIT_SYSTEM</td> | | | |
12617 | </tr> | | 12557 | </tr> |
12618 | <tr> | | 12558 | <tr> |
| | | 12559 | <td>INIT_SYSTEM</td> |
12619 | <td>INN_DATA_DIR</td> | | 12560 | <td>INN_DATA_DIR</td> |
12620 | <td>INN_GROUP</td> | | | |
12621 | </tr> | | 12561 | </tr> |
12622 | <tr> | | 12562 | <tr> |
| | | 12563 | <td>INN_GROUP</td> |
12623 | <td>INN_USER</td> | | 12564 | <td>INN_USER</td> |
12624 | <td>INSTALLATION_DIRS</td> | | | |
12625 | </tr> | | 12565 | </tr> |
12626 | <tr> | | 12566 | <tr> |
| | | 12567 | <td>INSTALLATION_DIRS</td> |
12627 | <td>INSTALLATION_DIRS_FROM_PLIST</td> | | 12568 | <td>INSTALLATION_DIRS_FROM_PLIST</td> |
12628 | <td>INSTALL_ENV</td> | | | |
12629 | </tr> | | 12569 | </tr> |
12630 | <tr> | | 12570 | <tr> |
| | | 12571 | <td>INSTALL_ENV</td> |
12631 | <td>INSTALL_SH_OVERRIDE</td> | | 12572 | <td>INSTALL_SH_OVERRIDE</td> |
12632 | <td>INSTALL_SRC</td> | | | |
12633 | </tr> | | 12573 | </tr> |
12634 | <tr> | | 12574 | <tr> |
| | | 12575 | <td>INSTALL_SRC</td> |
12635 | <td>INSTALL_TEMPLATES</td> | | 12576 | <td>INSTALL_TEMPLATES</td> |
12636 | <td>INSTALL_UNSTRIPPED</td> | | | |
12637 | </tr> | | 12577 | </tr> |
12638 | <tr> | | 12578 | <tr> |
| | | 12579 | <td>INSTALL_UNSTRIPPED</td> |
12639 | <td>IRCD_HYBRID_IRC_GROUP</td> | | 12580 | <td>IRCD_HYBRID_IRC_GROUP</td> |
12640 | <td>IRCD_HYBRID_IRC_USER</td> | | | |
12641 | </tr> | | 12581 | </tr> |
12642 | <tr> | | 12582 | <tr> |
| | | 12583 | <td>IRCD_HYBRID_IRC_USER</td> |
12643 | <td>IRCD_HYBRID_MAXCONN</td> | | 12584 | <td>IRCD_HYBRID_MAXCONN</td> |
12644 | <td>IRCD_HYBRID_NICLEN</td> | | | |
12645 | </tr> | | 12585 | </tr> |
12646 | <tr> | | 12586 | <tr> |
| | | 12587 | <td>IRCD_HYBRID_NICLEN</td> |
12647 | <td>IRCD_HYBRID_SYSLOG_EVENTS</td> | | 12588 | <td>IRCD_HYBRID_SYSLOG_EVENTS</td> |
12648 | <td>IRCD_HYBRID_SYSLOG_FACILITY</td> | | | |
12649 | </tr> | | 12589 | </tr> |
12650 | <tr> | | 12590 | <tr> |
| | | 12591 | <td>IRCD_HYBRID_SYSLOG_FACILITY</td> |
12651 | <td>IRCD_HYBRID_TOPICLEN</td> | | 12592 | <td>IRCD_HYBRID_TOPICLEN</td> |
12652 | <td>IRIX</td> | | | |
12653 | </tr> | | 12593 | </tr> |
12654 | <tr> | | 12594 | <tr> |
| | | 12595 | <td>IRIX</td> |
12655 | <td>IRRD_USE_PGP</td> | | 12596 | <td>IRRD_USE_PGP</td> |
12656 | <td>JABBERD_GROUP</td> | | | |
12657 | </tr> | | 12597 | </tr> |
12658 | <tr> | | 12598 | <tr> |
| | | 12599 | <td>JABBERD_GROUP</td> |
12659 | <td>JABBERD_LOGDIR</td> | | 12600 | <td>JABBERD_LOGDIR</td> |
12660 | <td>JABBERD_PIDDIR</td> | | | |
12661 | </tr> | | 12601 | </tr> |
12662 | <tr> | | 12602 | <tr> |
| | | 12603 | <td>JABBERD_PIDDIR</td> |
12663 | <td>JABBERD_SPOOLDIR</td> | | 12604 | <td>JABBERD_SPOOLDIR</td> |
12664 | <td>JABBERD_USER</td> | | | |
12665 | </tr> | | | |
12666 | <tr> | | | |
12667 | <td>JAVA_APP_PATH</td> | | | |
12668 | <td>JAVA_APP_TARGETS</td> | | | |
12669 | </tr> | | 12605 | </tr> |
12670 | <tr> | | 12606 | <tr> |
| | | 12607 | <td>JABBERD_USER</td> |
12671 | <td>JAVA_BINPREFIX</td> | | 12608 | <td>JAVA_BINPREFIX</td> |
12672 | <td>JAVA_CLASSPATH</td> | | | |
12673 | </tr> | | 12609 | </tr> |
12674 | <tr> | | 12610 | <tr> |
| | | 12611 | <td>JAVA_CLASSPATH</td> |
12675 | <td>JAVA_HOME</td> | | 12612 | <td>JAVA_HOME</td> |
12676 | <td>JAVA_LD_LIBRARY_PATH</td> | | | |
12677 | </tr> | | 12613 | </tr> |
12678 | <tr> | | 12614 | <tr> |
| | | 12615 | <td>JAVA_LD_LIBRARY_PATH</td> |
12679 | <td>JAVA_NAME</td> | | 12616 | <td>JAVA_NAME</td> |
12680 | <td>JAVA_UNLIMIT</td> | | | |
12681 | </tr> | | 12617 | </tr> |
12682 | <tr> | | 12618 | <tr> |
| | | 12619 | <td>JAVA_UNLIMIT</td> |
12683 | <td>JAVA_WRAPPERS</td> | | 12620 | <td>JAVA_WRAPPERS</td> |
12684 | <td>JPEG_ACCEPTED</td> | | | |
12685 | </tr> | | 12621 | </tr> |
12686 | <tr> | | 12622 | <tr> |
| | | 12623 | <td>JPEG_ACCEPTED</td> |
12687 | <td>JPEG_DEFAULT</td> | | 12624 | <td>JPEG_DEFAULT</td> |
12688 | <td>KERBEROS</td> | | | |
12689 | </tr> | | 12625 | </tr> |
12690 | <tr> | | 12626 | <tr> |
| | | 12627 | <td>KERBEROS</td> |
12691 | <td>KERMIT_SUID_UUCP</td> | | 12628 | <td>KERMIT_SUID_UUCP</td> |
12692 | <td>KJS_USE_PCRE</td> | | | |
12693 | </tr> | | 12629 | </tr> |
12694 | <tr> | | 12630 | <tr> |
| | | 12631 | <td>KJS_USE_PCRE</td> |
12695 | <td>KNEWS_DOMAIN_FILE</td> | | 12632 | <td>KNEWS_DOMAIN_FILE</td> |
12696 | <td>KNEWS_DOMAIN_NAME</td> | | | |
12697 | </tr> | | 12633 | </tr> |
12698 | <tr> | | 12634 | <tr> |
| | | 12635 | <td>KNEWS_DOMAIN_NAME</td> |
12699 | <td>KRB5_ACCEPTED</td> | | 12636 | <td>KRB5_ACCEPTED</td> |
12700 | <td>KRB5_DEFAULT</td> | | | |
12701 | </tr> | | 12637 | </tr> |
12702 | <tr> | | 12638 | <tr> |
| | | 12639 | <td>KRB5_DEFAULT</td> |
12703 | <td>LANGUAGES</td> | | 12640 | <td>LANGUAGES</td> |
12704 | <td>LAPACKE_LIBS</td> | | | |
12705 | </tr> | | 12641 | </tr> |
12706 | <tr> | | 12642 | <tr> |
| | | 12643 | <td>LAPACKE_LIBS</td> |
12707 | <td>LAPACK_LIBS</td> | | 12644 | <td>LAPACK_LIBS</td> |
12708 | <td>LATEX2HTML_ICONPATH</td> | | | |
12709 | </tr> | | 12645 | </tr> |
12710 | <tr> | | 12646 | <tr> |
| | | 12647 | <td>LATEX2HTML_ICONPATH</td> |
12711 | <td>LDCONFIG_ADD_CMD</td> | | 12648 | <td>LDCONFIG_ADD_CMD</td> |
12712 | <td>LDCONFIG_REMOVE_CMD</td> | | | |
12713 | </tr> | | 12649 | </tr> |
12714 | <tr> | | 12650 | <tr> |
| | | 12651 | <td>LDCONFIG_REMOVE_CMD</td> |
12715 | <td>LDD</td> | | 12652 | <td>LDD</td> |
12716 | <td>LEAFNODE_DATA_DIR</td> | | | |
12717 | </tr> | | 12653 | </tr> |
12718 | <tr> | | 12654 | <tr> |
| | | 12655 | <td>LEAFNODE_DATA_DIR</td> |
12719 | <td>LEAFNODE_GROUP</td> | | 12656 | <td>LEAFNODE_GROUP</td> |
12720 | <td>LEAFNODE_USER</td> | | | |
12721 | </tr> | | 12657 | </tr> |
12722 | <tr> | | 12658 | <tr> |
| | | 12659 | <td>LEAFNODE_USER</td> |
12723 | <td>LIBDVDCSS_HOMEPAGE</td> | | 12660 | <td>LIBDVDCSS_HOMEPAGE</td> |
12724 | <td>LIBDVDCSS_MASTER_SITES</td> | | | |
12725 | </tr> | | 12661 | </tr> |
12726 | <tr> | | 12662 | <tr> |
| | | 12663 | <td>LIBDVDCSS_MASTER_SITES</td> |
12727 | <td>LIBRSVG_TYPE</td> | | 12664 | <td>LIBRSVG_TYPE</td> |
12728 | <td>LIBTOOL</td> | | | |
12729 | </tr> | | 12665 | </tr> |
12730 | <tr> | | 12666 | <tr> |
| | | 12667 | <td>LIBTOOL</td> |
12731 | <td>LIBTOOLIZE_PLIST</td> | | 12668 | <td>LIBTOOLIZE_PLIST</td> |
12732 | <td>LIBTOOL_M4_OVERRIDE</td> | | | |
12733 | </tr> | | 12669 | </tr> |
12734 | <tr> | | 12670 | <tr> |
| | | 12671 | <td>LIBTOOL_M4_OVERRIDE</td> |
12735 | <td>LIBUSB_TYPE</td> | | 12672 | <td>LIBUSB_TYPE</td> |
12736 | <td>LICENSE</td> | | | |
12737 | </tr> | | 12673 | </tr> |
12738 | <tr> | | 12674 | <tr> |
| | | 12675 | <td>LICENSE</td> |
12739 | <td>LINKER_RPATH_FLAG</td> | | 12676 | <td>LINKER_RPATH_FLAG</td> |
12740 | <td>LINK_RPATH_FLAG</td> | | | |
12741 | </tr> | | | |
12742 | <tr> | | | |
12743 | <td>LINUX_BASE_NODEPS</td> | | | |
12744 | <td>LINUX_BASE_PREFERRED</td> | | | |
12745 | </tr> | | 12677 | </tr> |
12746 | <tr> | | 12678 | <tr> |
12747 | <td>LINUX_BASE_REQUIRED</td> | | 12679 | <td>LINK_RPATH_FLAG</td> |
12748 | <td>LINUX_LOCALES</td> | | 12680 | <td>LINUX_LOCALES</td> |
12749 | </tr> | | 12681 | </tr> |
12750 | <tr> | | 12682 | <tr> |
12751 | <td>LOCALBASE</td> | | 12683 | <td>LOCALBASE</td> |
12752 | <td>LOCALBASE_LOCKTYPE</td> | | 12684 | <td>LOCALBASE_LOCKTYPE</td> |
12753 | </tr> | | 12685 | </tr> |
12754 | <tr> | | 12686 | <tr> |
12755 | <td>LOCALPATCHES</td> | | 12687 | <td>LOCALPATCHES</td> |
12756 | <td>LOVE_DATA</td> | | 12688 | <td>LOVE_DATA</td> |
12757 | </tr> | | 12689 | </tr> |
12758 | <tr> | | 12690 | <tr> |
12759 | <td>LOVE_GAME</td> | | 12691 | <td>LOVE_GAME</td> |
12760 | <td>LOVE_VERSION</td> | | 12692 | <td>LOVE_VERSION</td> |
12761 | </tr> | | 12693 | </tr> |
12762 | <tr> | | 12694 | <tr> |
12763 | <td>LP32PLATFORMS</td> | | 12695 | <td>LP32PLATFORMS</td> |
12764 | <td>LP64PLATFORMS</td> | | 12696 | <td>LP64PLATFORMS</td> |
12765 | </tr> | | 12697 | </tr> |
12766 | <tr> | | 12698 | <tr> |
12767 | <td>LUA_BUSTED_ARGS</td> | | 12699 | <td>LUA_BUSTED_ARGS</td> |
12768 | <td>LUA_CDIR</td> | | 12700 | <td>LUA_CDIR</td> |
12769 | </tr> | | 12701 | </tr> |
12770 | <tr> | | 12702 | <tr> |
12771 | <td>LUA_COMPILER</td> | | 12703 | <td>LUA_COMPILER</td> |
12772 | <td>LUA_DOCDIR</td> | | 12704 | <td>LUA_DOCDIR</td> |
12773 | </tr> | | 12705 | </tr> |
12774 | <tr> | | 12706 | <tr> |
12775 | <td>LUA_EXAMPLESDIR</td> | | 12707 | <td>LUA_EXAMPLESDIR</td> |
12776 | <td>LUA_INCDIR</td> | | 12708 | <td>LUA_INCDIR</td> |
12777 | </tr> | | 12709 | </tr> |
12778 | <tr> | | 12710 | <tr> |
12779 | <td>LUA_INTERPRETER</td> | | 12711 | <td>LUA_INTERPRETER</td> |
12780 | <td>LUA_LDIR</td> | | 12712 | <td>LUA_LDIR</td> |
12781 | </tr> | | 12713 | </tr> |
12782 | <tr> | | 12714 | <tr> |
12783 | <td>LUA_LINKER_MAGIC</td> | | 12715 | <td>LUA_LINKER_MAGIC</td> |
12784 | <td>LUA_PKGPREFIX</td> | | 12716 | <td>LUA_PKGPREFIX</td> |
12785 | </tr> | | 12717 | </tr> |
12786 | <tr> | | 12718 | <tr> |
12787 | <td>LUA_SELF_CONFLICT</td> | | 12719 | <td>LUA_SELF_CONFLICT</td> |
12788 | <td>LUA_USE_BUSTED</td> | | 12720 | <td>LUA_USE_BUSTED</td> |
12789 | </tr> | | 12721 | </tr> |
12790 | <tr> | | 12722 | <tr> |
12791 | <td>LUA_VERSIONS_ACCEPTED</td> | | 12723 | <td>LUA_VERSIONS_ACCEPTED</td> |
12792 | <td>LUA_VERSIONS_INCOMPATIBLE</td> | | 12724 | <td>LUA_VERSIONS_INCOMPATIBLE</td> |
12793 | </tr> | | 12725 | </tr> |
12794 | <tr> | | 12726 | <tr> |
12795 | <td>LUA_VERSION_DEFAULT</td> | | 12727 | <td>LUA_VERSION_DEFAULT</td> |
12796 | <td>LUA_VERSION_REQD</td> | | 12728 | <td>LUA_VERSION_REQD</td> |
12797 | </tr> | | 12729 | </tr> |
12798 | <tr> | | 12730 | <tr> |
12799 | <td>Lua</td> | | 12731 | <td>Lua</td> |
12800 | <td>MACHINE_PLATFORM</td> | | 12732 | <td>MACHINE_PLATFORM</td> |
12801 | </tr> | | 12733 | </tr> |
12802 | <tr> | | 12734 | <tr> |
12803 | <td>MAILAGENT_DOMAIN</td> | | 12735 | <td>MAILAGENT_DOMAIN</td> |
12804 | <td>MAILAGENT_EMAIL</td> | | 12736 | <td>MAILAGENT_EMAIL</td> |
12805 | </tr> | | 12737 | </tr> |
12806 | <tr> | | 12738 | <tr> |
12807 | <td>MAILAGENT_FQDN</td> | | 12739 | <td>MAILAGENT_FQDN</td> |
12808 | <td>MAILAGENT_ORGANIZATION</td> | | 12740 | <td>MAILAGENT_ORGANIZATION</td> |
12809 | </tr> | | 12741 | </tr> |
12810 | <tr> | | 12742 | <tr> |
12811 | <td>MAJORDOMO_HOMEDIR</td> | | 12743 | <td>MAJORDOMO_HOMEDIR</td> |
12812 | <td>MAJOR_OS_VERSION</td> | | | |
12813 | </tr> | | | |
12814 | <tr> | | | |
12815 | <td>MAKEINFO_ARGS</td> | | 12744 | <td>MAKEINFO_ARGS</td> |
12816 | <td>MAKE_DIRS</td> | | | |
12817 | </tr> | | 12745 | </tr> |
12818 | <tr> | | 12746 | <tr> |
| | | 12747 | <td>MAKE_DIRS</td> |
12819 | <td>MAKE_DIRS_PERMS</td> | | 12748 | <td>MAKE_DIRS_PERMS</td> |
12820 | <td>MAKE_ENV</td> | | | |
12821 | </tr> | | 12749 | </tr> |
12822 | <tr> | | 12750 | <tr> |
| | | 12751 | <td>MAKE_ENV</td> |
12823 | <td>MAKE_FILE</td> | | 12752 | <td>MAKE_FILE</td> |
12824 | <td>MAKE_FLAGS</td> | | | |
12825 | </tr> | | 12753 | </tr> |
12826 | <tr> | | 12754 | <tr> |
| | | 12755 | <td>MAKE_FLAGS</td> |
12827 | <td>MAKE_JOBS</td> | | 12756 | <td>MAKE_JOBS</td> |
12828 | <td>MAKE_JOBS_SAFE</td> | | | |
12829 | </tr> | | 12757 | </tr> |
12830 | <tr> | | 12758 | <tr> |
| | | 12759 | <td>MAKE_JOBS_SAFE</td> |
12831 | <td>MAKE_PROGRAM</td> | | 12760 | <td>MAKE_PROGRAM</td> |
12832 | <td>MANCOMPRESSED_IF_MANZ</td> | | | |
12833 | </tr> | | 12761 | </tr> |
12834 | <tr> | | 12762 | <tr> |
| | | 12763 | <td>MANCOMPRESSED_IF_MANZ</td> |
12835 | <td>MANINSTALL</td> | | 12764 | <td>MANINSTALL</td> |
12836 | <td>MANZ</td> | | | |
12837 | </tr> | | 12765 | </tr> |
12838 | <tr> | | 12766 | <tr> |
| | | 12767 | <td>MANZ</td> |
12839 | <td>MASTER_SITES</td> | | 12768 | <td>MASTER_SITES</td> |
12840 | <td>MASTER_SITE_BACKUP</td> | | | |
12841 | </tr> | | 12769 | </tr> |
12842 | <tr> | | 12770 | <tr> |
| | | 12771 | <td>MASTER_SITE_BACKUP</td> |
12843 | <td>MASTER_SITE_LOCAL</td> | | 12772 | <td>MASTER_SITE_LOCAL</td> |
12844 | <td>MASTER_SITE_MOZILLA</td> | | | |
12845 | </tr> | | 12773 | </tr> |
12846 | <tr> | | 12774 | <tr> |
| | | 12775 | <td>MASTER_SITE_MOZILLA</td> |
12847 | <td>MASTER_SITE_OVERRIDE</td> | | 12776 | <td>MASTER_SITE_OVERRIDE</td> |
12848 | <td>MASTER_SITE_PERL_CPAN</td> | | | |
12849 | </tr> | | 12777 | </tr> |
12850 | <tr> | | 12778 | <tr> |
| | | 12779 | <td>MASTER_SITE_PERL_CPAN</td> |
12851 | <td>MASTER_SORT</td> | | 12780 | <td>MASTER_SORT</td> |
12852 | <td>MASTER_SORT_RANDOM</td> | | | |
12853 | </tr> | | 12781 | </tr> |
12854 | <tr> | | 12782 | <tr> |
| | | 12783 | <td>MASTER_SORT_RANDOM</td> |
12855 | <td>MASTER_SORT_REGEX</td> | | 12784 | <td>MASTER_SORT_REGEX</td> |
12856 | <td>MECAB_CHARSET</td> | | | |
12857 | </tr> | | 12785 | </tr> |
12858 | <tr> | | 12786 | <tr> |
| | | 12787 | <td>MECAB_CHARSET</td> |
12859 | <td>MEDIATOMB_GROUP</td> | | 12788 | <td>MEDIATOMB_GROUP</td> |
12860 | <td>MEDIATOMB_USER</td> | | | |
12861 | </tr> | | 12789 | </tr> |
12862 | <tr> | | 12790 | <tr> |
| | | 12791 | <td>MEDIATOMB_USER</td> |
12863 | <td>MIPSPROBASE</td> | | 12792 | <td>MIPSPROBASE</td> |
12864 | <td>MIREDO_GROUP</td> | | | |
12865 | </tr> | | 12793 | </tr> |
12866 | <tr> | | 12794 | <tr> |
| | | 12795 | <td>MIREDO_GROUP</td> |
12867 | <td>MIREDO_USER</td> | | 12796 | <td>MIREDO_USER</td> |
12868 | <td>MISSING_FEATURES</td> | | | |
12869 | </tr> | | 12797 | </tr> |
12870 | <tr> | | 12798 | <tr> |
| | | 12799 | <td>MISSING_FEATURES</td> |
12871 | <td>MKDIR</td> | | 12800 | <td>MKDIR</td> |
12872 | <td>MKPIE_SUPPORTED</td> | | | |
12873 | </tr> | | 12801 | </tr> |
12874 | <tr> | | 12802 | <tr> |
| | | 12803 | <td>MKPIE_SUPPORTED</td> |
12875 | <td>MLDONKEY_GROUP</td> | | 12804 | <td>MLDONKEY_GROUP</td> |
12876 | <td>MLDONKEY_HOME</td> | | | |
12877 | </tr> | | 12805 | </tr> |
12878 | <tr> | | 12806 | <tr> |
| | | 12807 | <td>MLDONKEY_HOME</td> |
12879 | <td>MLDONKEY_USER</td> | | 12808 | <td>MLDONKEY_USER</td> |
12880 | <td>MONOTONE_GROUP</td> | | | |
12881 | </tr> | | 12809 | </tr> |
12882 | <tr> | | 12810 | <tr> |
| | | 12811 | <td>MONOTONE_GROUP</td> |
12883 | <td>MONOTONE_USER</td> | | 12812 | <td>MONOTONE_USER</td> |
12884 | <td>MOTIFBASE</td> | | | |
12885 | </tr> | | 12813 | </tr> |
12886 | <tr> | | 12814 | <tr> |
| | | 12815 | <td>MOTIFBASE</td> |
12887 | <td>MOTIF_TYPE</td> | | 12816 | <td>MOTIF_TYPE</td> |
12888 | <td>MOTIF_TYPE_DEFAULT</td> | | | |
12889 | </tr> | | 12817 | </tr> |
12890 | <tr> | | 12818 | <tr> |
| | | 12819 | <td>MOTIF_TYPE_DEFAULT</td> |
12891 | <td>MPI_TYPE</td> | | 12820 | <td>MPI_TYPE</td> |
12892 | <td>MSGFMT_STRIP_MSGCTXT</td> | | | |
12893 | </tr> | | 12821 | </tr> |
12894 | <tr> | | 12822 | <tr> |
| | | 12823 | <td>MSGFMT_STRIP_MSGCTXT</td> |
12895 | <td>MSGFMT_STRIP_MSGID_PLURAL</td> | | 12824 | <td>MSGFMT_STRIP_MSGID_PLURAL</td> |
12896 | <td>MTOOLS_ENABLE_FLOPPYD</td> | | | |
12897 | </tr> | | 12825 | </tr> |
12898 | <tr> | | 12826 | <tr> |
12899 | <td>MUST</td> | | 12827 | <td>MTOOLS_ENABLE_FLOPPYD</td> |
12900 | <td>MV</td> | | 12828 | <td>MV</td> |
12901 | </tr> | | 12829 | </tr> |
12902 | <tr> | | 12830 | <tr> |
12903 | <td>MYSQL_CHARSET</td> | | 12831 | <td>MYSQL_CHARSET</td> |
12904 | <td>MYSQL_DATADIR</td> | | 12832 | <td>MYSQL_DATADIR</td> |
12905 | </tr> | | 12833 | </tr> |
12906 | <tr> | | 12834 | <tr> |
12907 | <td>MYSQL_EXTRA_CHARSET</td> | | 12835 | <td>MYSQL_EXTRA_CHARSET</td> |
12908 | <td>MYSQL_GROUP</td> | | 12836 | <td>MYSQL_GROUP</td> |
12909 | </tr> | | 12837 | </tr> |
12910 | <tr> | | 12838 | <tr> |
12911 | <td>MYSQL_USER</td> | | 12839 | <td>MYSQL_USER</td> |
12912 | <td>MYSQL_VERSION</td> | | 12840 | <td>MYSQL_VERSION</td> |
12913 | </tr> | | 12841 | </tr> |
12914 | <tr> | | 12842 | <tr> |
12915 | <td>MYSQL_VERSIONS_ACCEPTED</td> | | 12843 | <td>MYSQL_VERSIONS_ACCEPTED</td> |
12916 | <td>MYSQL_VERSIONS_ALL</td> | | 12844 | <td>MYSQL_VERSIONS_ALL</td> |
12917 | </tr> | | 12845 | </tr> |
12918 | <tr> | | 12846 | <tr> |
12919 | <td>MYSQL_VERSION_DEFAULT</td> | | 12847 | <td>MYSQL_VERSION_DEFAULT</td> |
12920 | <td>NAGIOSCMD_GROUP</td> | | 12848 | <td>NAGIOSCMD_GROUP</td> |
12921 | </tr> | | 12849 | </tr> |
12922 | <tr> | | 12850 | <tr> |
12923 | <td>NAGIOSDIR</td> | | 12851 | <td>NAGIOSDIR</td> |
12924 | <td>NAGIOS_GROUP</td> | | 12852 | <td>NAGIOS_GROUP</td> |
12925 | </tr> | | 12853 | </tr> |
12926 | <tr> | | 12854 | <tr> |
12927 | <td>NAGIOS_USER</td> | | 12855 | <td>NAGIOS_USER</td> |
12928 | <td>NATIVE_APPEND_ABI</td> | | 12856 | <td>NATIVE_APPEND_ABI</td> |
12929 | </tr> | | 12857 | </tr> |
12930 | <tr> | | 12858 | <tr> |
12931 | <td>NATIVE_APPEND_ELF</td> | | 12859 | <td>NATIVE_APPEND_ELF</td> |
12932 | <td>NATIVE_EXEC_FMT</td> | | 12860 | <td>NATIVE_EXEC_FMT</td> |
12933 | </tr> | | 12861 | </tr> |
12934 | <tr> | | 12862 | <tr> |
12935 | <td>NATIVE_MACHINE_PLATFORM</td> | | 12863 | <td>NATIVE_MACHINE_PLATFORM</td> |
12936 | <td>NATIVE_OBJECT_FMT</td> | | 12864 | <td>NATIVE_OBJECT_FMT</td> |
12937 | </tr> | | 12865 | </tr> |
12938 | <tr> | | 12866 | <tr> |
12939 | <td>NBPAX_PROGRAM_PREFIX</td> | | 12867 | <td>NBPAX_PROGRAM_PREFIX</td> |
12940 | <td>NETBSD_LOGIN_NAME</td> | | 12868 | <td>NETBSD_LOGIN_NAME</td> |
12941 | </tr> | | 12869 | </tr> |
12942 | <tr> | | 12870 | <tr> |
12943 | <td>NMH_EDITOR</td> | | 12871 | <td>NMH_EDITOR</td> |
12944 | <td>NMH_MTA</td> | | 12872 | <td>NMH_MTA</td> |
12945 | </tr> | | 12873 | </tr> |
12946 | <tr> | | 12874 | <tr> |
12947 | <td>NMH_PAGER</td> | | 12875 | <td>NMH_PAGER</td> |
12948 | <td>NODE_VERSIONS_ACCEPTED</td> | | 12876 | <td>NODE_VERSIONS_ACCEPTED</td> |
12949 | </tr> | | 12877 | </tr> |
12950 | <tr> | | 12878 | <tr> |
12951 | <td>NODE_VERSIONS_INCOMPATIBLE</td> | | 12879 | <td>NODE_VERSIONS_INCOMPATIBLE</td> |
12952 | <td>NODE_VERSION_DEFAULT</td> | | 12880 | <td>NODE_VERSION_DEFAULT</td> |
12953 | </tr> | | 12881 | </tr> |
12954 | <tr> | | 12882 | <tr> |
12955 | <td>NODE_VERSION_REQD</td> | | 12883 | <td>NODE_VERSION_REQD</td> |
12956 | <td>NOLOGIN</td> | | 12884 | <td>NOLOGIN</td> |
12957 | </tr> | | 12885 | </tr> |
12958 | <tr> | | 12886 | <tr> |
12959 | <td>NOTE</td> | | 12887 | <td>NOTE</td> |
12960 | <td>NOT_FOR_PLATFORM</td> | | 12888 | <td>NOT_FOR_PLATFORM</td> |
12961 | </tr> | | 12889 | </tr> |
12962 | <tr> | | 12890 | <tr> |
12963 | <td>NOT_PAX_ASLR_SAFE</td> | | 12891 | <td>NOT_PAX_ASLR_SAFE</td> |
12964 | <td>NOT_PAX_MPROTECT_SAFE</td> | | 12892 | <td>NOT_PAX_MPROTECT_SAFE</td> |
12965 | </tr> | | 12893 | </tr> |
12966 | <tr> | | 12894 | <tr> |
12967 | <td>NO_BUILD</td> | | 12895 | <td>NO_BUILD</td> |
12968 | <td>NO_CHECKSUM</td> | | 12896 | <td>NO_CHECKSUM</td> |
12969 | </tr> | | 12897 | </tr> |
12970 | <tr> | | 12898 | <tr> |
12971 | <td>NO_CONFIGURE</td> | | 12899 | <td>NO_CONFIGURE</td> |
12972 | <td>NO_SKIP</td> | | 12900 | <td>NO_SKIP</td> |
12973 | </tr> | | 12901 | </tr> |
12974 | <tr> | | 12902 | <tr> |
12975 | <td>NS_PREFERRED</td> | | 12903 | <td>NS_PREFERRED</td> |
12976 | <td>NULLMAILER_GROUP</td> | | 12904 | <td>NULLMAILER_GROUP</td> |
12977 | </tr> | | 12905 | </tr> |
12978 | <tr> | | 12906 | <tr> |
12979 | <td>NULLMAILER_USER</td> | | 12907 | <td>NULLMAILER_USER</td> |
12980 | <td>OASIS</td> | | 12908 | <td>OASIS</td> |
12981 | </tr> | | 12909 | </tr> |
12982 | <tr> | | 12910 | <tr> |
12983 | <td>OASIS_BUILD_ARGS</td> | | 12911 | <td>OASIS_BUILD_ARGS</td> |
12984 | <td>OBJHOSTNAME</td> | | 12912 | <td>OBJHOSTNAME</td> |
12985 | </tr> | | 12913 | </tr> |
12986 | <tr> | | 12914 | <tr> |
12987 | <td>OBJMACHINE</td> | | 12915 | <td>OBJMACHINE</td> |
12988 | <td>OCAML_FINDLIB_DIRS</td> | | 12916 | <td>OCAML_FINDLIB_DIRS</td> |
12989 | </tr> | | 12917 | </tr> |
12990 | <tr> | | 12918 | <tr> |
12991 | <td>OCAML_FINDLIB_REGISTER</td> | | 12919 | <td>OCAML_FINDLIB_REGISTER</td> |
12992 | <td>OCAML_FINDLIB_REGISTER_VERBOSE</td> | | 12920 | <td>OCAML_FINDLIB_REGISTER_VERBOSE</td> |
12993 | </tr> | | 12921 | </tr> |
12994 | <tr> | | 12922 | <tr> |
12995 | <td>OCAML_SITELIBDIR</td> | | 12923 | <td>OCAML_SITELIBDIR</td> |
12996 | <td>OCAML_TOPKG_DOCDIR</td> | | 12924 | <td>OCAML_TOPKG_DOCDIR</td> |
12997 | </tr> | | 12925 | </tr> |
12998 | <tr> | | 12926 | <tr> |
12999 | <td>OCAML_USE_DUNE</td> | | 12927 | <td>OCAML_USE_DUNE</td> |
13000 | <td>OCAML_USE_FINDLIB</td> | | 12928 | <td>OCAML_USE_FINDLIB</td> |
13001 | </tr> | | 12929 | </tr> |
13002 | <tr> | | 12930 | <tr> |
13003 | <td>OCAML_USE_OASIS</td> | | 12931 | <td>OCAML_USE_OASIS</td> |
13004 | <td>OCAML_USE_OASIS_DYNRUN</td> | | 12932 | <td>OCAML_USE_OASIS_DYNRUN</td> |
13005 | </tr> | | 12933 | </tr> |
13006 | <tr> | | 12934 | <tr> |
13007 | <td>OCAML_USE_OPAM</td> | | 12935 | <td>OCAML_USE_OPAM</td> |
13008 | <td>OCAML_USE_OPT_COMPILER</td> | | | |
13009 | </tr> | | | |
13010 | <tr> | | | |
13011 | <td>OCAML_USE_TOPKG</td> | | 12936 | <td>OCAML_USE_TOPKG</td> |
13012 | <td>OMF</td> | | | |
13013 | </tr> | | 12937 | </tr> |
13014 | <tr> | | 12938 | <tr> |
| | | 12939 | <td>OMF</td> |
13015 | <td>ONLY_FOR_COMPILER</td> | | 12940 | <td>ONLY_FOR_COMPILER</td> |
13016 | <td>ONLY_FOR_PLATFORM</td> | | | |
13017 | </tr> | | 12941 | </tr> |
13018 | <tr> | | 12942 | <tr> |
| | | 12943 | <td>ONLY_FOR_PLATFORM</td> |
13019 | <td>OPENSSH_CHROOT</td> | | 12944 | <td>OPENSSH_CHROOT</td> |
13020 | <td>OPENSSH_GROUP</td> | | | |
13021 | </tr> | | 12945 | </tr> |
13022 | <tr> | | 12946 | <tr> |
| | | 12947 | <td>OPENSSH_GROUP</td> |
13023 | <td>OPENSSH_USER</td> | | 12948 | <td>OPENSSH_USER</td> |
13024 | <td>OPSYS</td> | | | |
13025 | </tr> | | 12949 | </tr> |
13026 | <tr> | | 12950 | <tr> |
| | | 12951 | <td>OPSYS</td> |
13027 | <td>OPSYS_EMULDIR</td> | | 12952 | <td>OPSYS_EMULDIR</td> |
13028 | <td>OPSYS_VERSION</td> | | | |
13029 | </tr> | | 12953 | </tr> |
13030 | <tr> | | 12954 | <tr> |
| | | 12955 | <td>OPSYS_VERSION</td> |
13031 | <td>OS</td> | | 12956 | <td>OS</td> |
13032 | <td>OSS_TYPE</td> | | | |
13033 | </tr> | | 12957 | </tr> |
13034 | <tr> | | 12958 | <tr> |
| | | 12959 | <td>OSS_TYPE</td> |
13035 | <td>OSX</td> | | 12960 | <td>OSX</td> |
13036 | <td>OSX_TOLERATE_SDK_SKEW</td> | | | |
13037 | </tr> | | | |
13038 | <tr> | | | |
13039 | <td>OS_HAVE_ALSA</td> | | | |
13040 | <td>OS_HAVE_RCD</td> | | | |
13041 | </tr> | | 12961 | </tr> |
13042 | <tr> | | 12962 | <tr> |
| | | 12963 | <td>OSX_TOLERATE_SDK_SKEW</td> |
13043 | <td>OS_VARIANT</td> | | 12964 | <td>OS_VARIANT</td> |
13044 | <td>OS_VERSION</td> | | | |
13045 | </tr> | | 12965 | </tr> |
13046 | <tr> | | 12966 | <tr> |
| | | 12967 | <td>OS_VERSION</td> |
13047 | <td>OTF_FONTS_DIR</td> | | 12968 | <td>OTF_FONTS_DIR</td> |
13048 | <td>OVERRIDE_DIRDEPTH</td> | | | |
13049 | </tr> | | 12969 | </tr> |
13050 | <tr> | | 12970 | <tr> |
| | | 12971 | <td>OVERRIDE_DIRDEPTH</td> |
13051 | <td>OVERRIDE_GEMSPEC</td> | | 12972 | <td>OVERRIDE_GEMSPEC</td> |
13052 | <td>OVERRIDE_GNU_CONFIG_SCRIPTS</td> | | | |
13053 | </tr> | | 12973 | </tr> |
13054 | <tr> | | 12974 | <tr> |
13055 | <td>OVERRIDE_ROCKSPEC</td> | | 12975 | <td>OVERRIDE_GNU_CONFIG_SCRIPTS</td> |
13056 | <td>OWN_DIRS</td> | | 12976 | <td>OWN_DIRS</td> |
13057 | </tr> | | 12977 | </tr> |
13058 | <tr> | | 12978 | <tr> |
13059 | <td>OWN_DIRS_PERMS</td> | | 12979 | <td>OWN_DIRS_PERMS</td> |
13060 | <td>P4GROUP</td> | | 12980 | <td>P4GROUP</td> |
13061 | </tr> | | 12981 | </tr> |
13062 | <tr> | | 12982 | <tr> |
13063 | <td>P4PORT</td> | | 12983 | <td>P4PORT</td> |
13064 | <td>P4ROOT</td> | | 12984 | <td>P4ROOT</td> |
13065 | </tr> | | 12985 | </tr> |
13066 | <tr> | | 12986 | <tr> |
13067 | <td>P4USER</td> | | 12987 | <td>P4USER</td> |
13068 | <td>PACKAGES</td> | | 12988 | <td>PACKAGES</td> |
13069 | </tr> | | 12989 | </tr> |
13070 | <tr> | | 12990 | <tr> |
13071 | <td>PALMOS_DEFAULT_SDK</td> | | 12991 | <td>PALMOS_DEFAULT_SDK</td> |
13072 | <td>PAMBASE</td> | | 12992 | <td>PAMBASE</td> |
13073 | </tr> | | 12993 | </tr> |
13074 | <tr> | | 12994 | <tr> |
13075 | <td>PAM_DEFAULT</td> | | 12995 | <td>PAM_DEFAULT</td> |
13076 | <td>PAPERSIZE</td> | | 12996 | <td>PAPERSIZE</td> |
13077 | </tr> | | 12997 | </tr> |
13078 | <tr> | | 12998 | <tr> |
13079 | <td>PASSIVE_FETCH</td> | | 12999 | <td>PASSIVE_FETCH</td> |
13080 | <td>PATCHDIR</td> | | 13000 | <td>PATCHDIR</td> |
13081 | </tr> | | 13001 | </tr> |
13082 | <tr> | | 13002 | <tr> |
13083 | <td>PATCHFILES</td> | | 13003 | <td>PATCHFILES</td> |
13084 | <td>PATCH_ARGS</td> | | 13004 | <td>PATCH_ARGS</td> |
13085 | </tr> | | 13005 | </tr> |
13086 | <tr> | | 13006 | <tr> |
13087 | <td>PATCH_DEBUG</td> | | 13007 | <td>PATCH_DEBUG</td> |
13088 | <td>PATCH_DIST_ARGS</td> | | 13008 | <td>PATCH_DIST_ARGS</td> |
13089 | </tr> | | 13009 | </tr> |
13090 | <tr> | | 13010 | <tr> |
13091 | <td>PATCH_DIST_CAT</td> | | 13011 | <td>PATCH_DIST_CAT</td> |
13092 | <td>PATCH_DIST_STRIP</td> | | 13012 | <td>PATCH_DIST_STRIP</td> |
13093 | </tr> | | 13013 | </tr> |
13094 | <tr> | | 13014 | <tr> |
13095 | <td>PATCH_FUZZ_FACTOR</td> | | 13015 | <td>PATCH_FUZZ_FACTOR</td> |
13096 | <td>PATCH_STRIP</td> | | 13016 | <td>PATCH_STRIP</td> |
13097 | </tr> | | 13017 | </tr> |
13098 | <tr> | | 13018 | <tr> |
13099 | <td>PATH</td> | | 13019 | <td>PATH</td> |
13100 | <td>PCCBASE</td> | | 13020 | <td>PCCBASE</td> |
13101 | </tr> | | 13021 | </tr> |
13102 | <tr> | | 13022 | <tr> |
13103 | <td>PEAR</td> | | | |
13104 | <td>PEAR_CHANNEL</td> | | | |
13105 | </tr> | | | |
13106 | <tr> | | | |
13107 | <td>PEAR_CHANNEL_ALIAS</td> | | | |
13108 | <td>PEAR_CHANNEL_VERSION</td> | | | |
13109 | </tr> | | | |
13110 | <tr> | | | |
13111 | <td>PEAR_CMD</td> | | 13023 | <td>PEAR_CMD</td> |
13112 | <td>PEAR_LIB</td> | | 13024 | <td>PEAR_LIB</td> |
13113 | </tr> | | 13025 | </tr> |
13114 | <tr> | | 13026 | <tr> |
13115 | <td>PEAR_PACKAGE_XML</td> | | 13027 | <td>PEAR_PACKAGE_XML</td> |
13116 | <td>PERL5</td> | | 13028 | <td>PERL5</td> |
13117 | </tr> | | 13029 | </tr> |
13118 | <tr> | | 13030 | <tr> |
13119 | <td>PERL5_CONFIGURE</td> | | 13031 | <td>PERL5_CONFIGURE</td> |
13120 | <td>PERL5_CONFIGURE_DIRS</td> | | 13032 | <td>PERL5_CONFIGURE_DIRS</td> |
13121 | </tr> | | 13033 | </tr> |
13122 | <tr> | | 13034 | <tr> |
13123 | <td>PERL5_LDFLAGS</td> | | 13035 | <td>PERL5_LDFLAGS</td> |
13124 | <td>PERL5_LICENSE</td> | | 13036 | <td>PERL5_LICENSE</td> |
13125 | </tr> | | 13037 | </tr> |
13126 | <tr> | | 13038 | <tr> |
13127 | <td>PERL5_MODULE_TYPE</td> | | 13039 | <td>PERL5_MODULE_TYPE</td> |
13128 | <td>PERL5_PACKLIST</td> | | 13040 | <td>PERL5_PACKLIST</td> |
13129 | </tr> | | 13041 | </tr> |
13130 | <tr> | | 13042 | <tr> |
13131 | <td>PERL5_PACKLIST_DIR</td> | | 13043 | <td>PERL5_PACKLIST_DIR</td> |
13132 | <td>PERL5_PERLBASE</td> | | 13044 | <td>PERL5_PERLBASE</td> |
13133 | </tr> | | 13045 | </tr> |
13134 | <tr> | | 13046 | <tr> |
13135 | <td>PERL5_SITEBASE</td> | | 13047 | <td>PERL5_SITEBASE</td> |
13136 | <td>PERL5_USE_PACKLIST</td> | | 13048 | <td>PERL5_USE_PACKLIST</td> |
13137 | </tr> | | 13049 | </tr> |
13138 | <tr> | | 13050 | <tr> |
13139 | <td>PERL5_VENDORBASE</td> | | 13051 | <td>PERL5_VENDORBASE</td> |
13140 | <td>PFCTL</td> | | 13052 | <td>PFCTL</td> |
13141 | </tr> | | 13053 | </tr> |
13142 | <tr> | | 13054 | <tr> |
13143 | <td>PFVAR_H</td> | | 13055 | <td>PFVAR_H</td> |
13144 | <td>PF_VERSION</td> | | 13056 | <td>PF_VERSION</td> |
13145 | </tr> | | 13057 | </tr> |
13146 | <tr> | | 13058 | <tr> |
13147 | <td>PGGROUP</td> | | 13059 | <td>PGGROUP</td> |
13148 | <td>PGHOME</td> | | 13060 | <td>PGHOME</td> |
13149 | </tr> | | 13061 | </tr> |
13150 | <tr> | | 13062 | <tr> |
13151 | <td>PGPKGSRCDIR</td> | | 13063 | <td>PGPKGSRCDIR</td> |
13152 | <td>PGSQL_TYPE</td> | | 13064 | <td>PGSQL_TYPE</td> |
13153 | </tr> | | 13065 | </tr> |
13154 | <tr> | | 13066 | <tr> |
13155 | <td>PGSQL_VERSION</td> | | 13067 | <td>PGSQL_VERSION</td> |
13156 | <td>PGSQL_VERSIONS_ACCEPTED</td> | | 13068 | <td>PGSQL_VERSIONS_ACCEPTED</td> |
13157 | </tr> | | 13069 | </tr> |
13158 | <tr> | | 13070 | <tr> |
13159 | <td>PGSQL_VERSION_DEFAULT</td> | | 13071 | <td>PGSQL_VERSION_DEFAULT</td> |
13160 | <td>PGUSER</td> | | 13072 | <td>PGUSER</td> |
13161 | </tr> | | 13073 | </tr> |
13162 | <tr> | | 13074 | <tr> |
13163 | <td>PG_LIB_EXT</td> | | 13075 | <td>PG_LIB_EXT</td> |
13164 | <td>PHP</td> | | 13076 | <td>PHP</td> |
13165 | </tr> | | 13077 | </tr> |
13166 | <tr> | | 13078 | <tr> |
13167 | <td>PHPCOMMON_MK</td> | | 13079 | <td>PHPCOMMON_MK</td> |
13168 | <td>PHPPKGSRCDIR</td> | | 13080 | <td>PHPPKGSRCDIR</td> |
13169 | </tr> | | 13081 | </tr> |
13170 | <tr> | | 13082 | <tr> |
13171 | <td>PHP_BASE_VERS</td> | | 13083 | <td>PHP_BASE_VERS</td> |
13172 | <td>PHP_CHECK_INSTALLED</td> | | 13084 | <td>PHP_CHECK_INSTALLED</td> |
13173 | </tr> | | 13085 | </tr> |
13174 | <tr> | | 13086 | <tr> |
13175 | <td>PHP_EXTENSION_DIR</td> | | 13087 | <td>PHP_EXTENSION_DIR</td> |
13176 | <td>PHP_INITIAL_TEENY</td> | | 13088 | <td>PHP_INITIAL_TEENY</td> |
13177 | </tr> | | 13089 | </tr> |
13178 | <tr> | | 13090 | <tr> |
13179 | <td>PHP_PKG_PREFIX</td> | | 13091 | <td>PHP_PKG_PREFIX</td> |
13180 | <td>PHP_VERSION</td> | | 13092 | <td>PHP_VERSION</td> |
13181 | </tr> | | 13093 | </tr> |
13182 | <tr> | | 13094 | <tr> |
13183 | <td>PHP_VERSIONS_ACCEPTED</td> | | 13095 | <td>PHP_VERSIONS_ACCEPTED</td> |
13184 | <td>PHP_VERSIONS_INCOMPATIBLE</td> | | 13096 | <td>PHP_VERSIONS_INCOMPATIBLE</td> |
13185 | </tr> | | 13097 | </tr> |
13186 | <tr> | | 13098 | <tr> |
13187 | <td>PHP_VERSION_DEFAULT</td> | | 13099 | <td>PHP_VERSION_DEFAULT</td> |
13188 | <td>PHP_VERSION_REQD</td> | | 13100 | <td>PHP_VERSION_REQD</td> |
13189 | </tr> | | 13101 | </tr> |
13190 | <tr> | | 13102 | <tr> |
13191 | <td>PILRC_USE_GTK</td> | | 13103 | <td>PILRC_USE_GTK</td> |
13192 | <td>PKGCONFIG_BASE</td> | | 13104 | <td>PKGCONFIG_BASE</td> |
13193 | </tr> | | 13105 | </tr> |
13194 | <tr> | | 13106 | <tr> |
13195 | <td>PKGCONFIG_FILE</td> | | 13107 | <td>PKGCONFIG_FILE</td> |
13196 | <td>PKGCONFIG_OVERRIDE</td> | | 13108 | <td>PKGCONFIG_OVERRIDE</td> |
13197 | </tr> | | 13109 | </tr> |
13198 | <tr> | | 13110 | <tr> |
13199 | <td>PKGCONFIG_OVERRIDE_STAGE</td> | | 13111 | <td>PKGCONFIG_OVERRIDE_STAGE</td> |
13200 | <td>PKGDIR</td> | | 13112 | <td>PKGDIR</td> |
13201 | </tr> | | 13113 | </tr> |
13202 | <tr> | | 13114 | <tr> |
13203 | <td>PKGGNUDIR</td> | | 13115 | <td>PKGGNUDIR</td> |
13204 | <td>PKGINFODIR</td> | | 13116 | <td>PKGINFODIR</td> |
13205 | </tr> | | 13117 | </tr> |
13206 | <tr> | | 13118 | <tr> |
13207 | <td>PKGLOCALEDIR</td> | | 13119 | <td>PKGLOCALEDIR</td> |
13208 | <td>PKGMANDIR</td> | | 13120 | <td>PKGMANDIR</td> |
13209 | </tr> | | 13121 | </tr> |
13210 | <tr> | | 13122 | <tr> |
13211 | <td>PKGNAME</td> | | 13123 | <td>PKGNAME</td> |
13212 | <td>PKGNAME_REQD</td> | | 13124 | <td>PKGNAME_REQD</td> |
13213 | </tr> | | 13125 | </tr> |
13214 | <tr> | | 13126 | <tr> |
13215 | <td>PKGPATH</td> | | 13127 | <td>PKGPATH</td> |
13216 | <td>PKGREVISION</td> | | 13128 | <td>PKGREVISION</td> |
13217 | </tr> | | 13129 | </tr> |
13218 | <tr> | | 13130 | <tr> |
13219 | <td>PKGSRC_BLAS_TYPES</td> | | 13131 | <td>PKGSRC_BLAS_TYPES</td> |
13220 | <td>PKGSRC_CHANGES</td> | | 13132 | <td>PKGSRC_CHANGES</td> |
13221 | </tr> | | 13133 | </tr> |
13222 | <tr> | | 13134 | <tr> |
13223 | <td>PKGSRC_COMPILER</td> | | 13135 | <td>PKGSRC_COMPILER</td> |
13224 | <td>PKGSRC_KEEP_BIN_PKGS</td> | | 13136 | <td>PKGSRC_KEEP_BIN_PKGS</td> |
13225 | </tr> | | 13137 | </tr> |
13226 | <tr> | | 13138 | <tr> |
13227 | <td>PKGSRC_LOCKTYPE</td> | | 13139 | <td>PKGSRC_LOCKTYPE</td> |
13228 | <td>PKGSRC_MAKE_ENV</td> | | 13140 | <td>PKGSRC_MAKE_ENV</td> |
13229 | </tr> | | 13141 | </tr> |
13230 | <tr> | | 13142 | <tr> |
13231 | <td>PKGSRC_MESSAGE_RECIPIENTS</td> | | 13143 | <td>PKGSRC_MESSAGE_RECIPIENTS</td> |
13232 | <td>PKGSRC_MKPIE</td> | | 13144 | <td>PKGSRC_MKPIE</td> |
13233 | </tr> | | 13145 | </tr> |
13234 | <tr> | | 13146 | <tr> |
13235 | <td>PKGSRC_MKREPRO</td> | | 13147 | <td>PKGSRC_MKREPRO</td> |
13236 | <td>PKGSRC_OVERRIDE_MKPIE</td> | | 13148 | <td>PKGSRC_OVERRIDE_MKPIE</td> |
13237 | </tr> | | 13149 | </tr> |
13238 | <tr> | | 13150 | <tr> |
13239 | <td>PKGSRC_RUN_TEST</td> | | 13151 | <td>PKGSRC_RUN_TEST</td> |
13240 | <td>PKGSRC_SETENV</td> | | 13152 | <td>PKGSRC_SETENV</td> |
13241 | </tr> | | 13153 | </tr> |
13242 | <tr> | | 13154 | <tr> |
13243 | <td>PKGSRC_SLEEPSECS</td> | | 13155 | <td>PKGSRC_SLEEPSECS</td> |
13244 | <td>PKGSRC_TODO</td> | | 13156 | <td>PKGSRC_TODO</td> |
13245 | </tr> | | 13157 | </tr> |
13246 | <tr> | | 13158 | <tr> |
13247 | <td>PKGSRC_USE_CTF</td> | | 13159 | <td>PKGSRC_USE_CTF</td> |
13248 | <td>PKGSRC_USE_FORTIFY</td> | | 13160 | <td>PKGSRC_USE_FORTIFY</td> |
13249 | </tr> | | 13161 | </tr> |
13250 | <tr> | | 13162 | <tr> |
13251 | <td>PKGSRC_USE_RELRO</td> | | 13163 | <td>PKGSRC_USE_RELRO</td> |
13252 | <td>PKGSRC_USE_SSP</td> | | 13164 | <td>PKGSRC_USE_SSP</td> |
13253 | </tr> | | 13165 | </tr> |
13254 | <tr> | | 13166 | <tr> |
13255 | <td>PKGSRC_USE_STACK_CHECK</td> | | 13167 | <td>PKGSRC_USE_STACK_CHECK</td> |
13256 | <td>PKGTASKS_DATAFILE</td> | | 13168 | <td>PKGTASKS_DATAFILE</td> |
13257 | </tr> | | 13169 | </tr> |
13258 | <tr> | | 13170 | <tr> |
13259 | <td>PKGTOOLS_ARGS</td> | | 13171 | <td>PKGTOOLS_ARGS</td> |
13260 | <td>PKGTOOLS_ENV</td> | | 13172 | <td>PKGTOOLS_ENV</td> |
13261 | </tr> | | 13173 | </tr> |
13262 | <tr> | | 13174 | <tr> |
13263 | <td>PKG_ALTERNATIVES</td> | | 13175 | <td>PKG_ALTERNATIVES</td> |
13264 | <td>PKG_APACHE</td> | | 13176 | <td>PKG_APACHE</td> |
13265 | </tr> | | 13177 | </tr> |
13266 | <tr> | | 13178 | <tr> |
13267 | <td>PKG_APACHE_ACCEPTED</td> | | 13179 | <td>PKG_APACHE_ACCEPTED</td> |
13268 | <td>PKG_APACHE_DEFAULT</td> | | 13180 | <td>PKG_APACHE_DEFAULT</td> |
13269 | </tr> | | 13181 | </tr> |
13270 | <tr> | | 13182 | <tr> |
13271 | <td>PKG_BEST_EXISTS</td> | | 13183 | <td>PKG_BEST_EXISTS</td> |
13272 | <td>PKG_BUILD_OPTIONS</td> | | 13184 | <td>PKG_BUILD_OPTIONS</td> |
13273 | </tr> | | 13185 | </tr> |
13274 | <tr> | | 13186 | <tr> |
13275 | <td>PKG_COMPRESSION</td> | | 13187 | <td>PKG_COMPRESSION</td> |
13276 | <td>PKG_CONFIG</td> | | 13188 | <td>PKG_CONFIG</td> |
13277 | </tr> | | 13189 | </tr> |
13278 | <tr> | | 13190 | <tr> |
13279 | <td>PKG_CONFIG_PERMS</td> | | 13191 | <td>PKG_CONFIG_PERMS</td> |
13280 | <td>PKG_CREATE_USERGROUP</td> | | 13192 | <td>PKG_CREATE_USERGROUP</td> |
13281 | </tr> | | 13193 | </tr> |
13282 | <tr> | | 13194 | <tr> |
13283 | <td>PKG_DB_TMPDIR</td> | | 13195 | <td>PKG_DB_TMPDIR</td> |
13284 | <td>PKG_DEBUG_LEVEL</td> | | 13196 | <td>PKG_DEBUG_LEVEL</td> |
13285 | </tr> | | 13197 | </tr> |
13286 | <tr> | | 13198 | <tr> |
13287 | <td>PKG_DEFAULT_OPTIONS</td> | | 13199 | <td>PKG_DEFAULT_OPTIONS</td> |
13288 | <td>PKG_DESTDIR_SUPPORT</td> | | 13200 | <td>PKG_DESTDIR_SUPPORT</td> |
13289 | </tr> | | 13201 | </tr> |
13290 | <tr> | | 13202 | <tr> |
13291 | <td>PKG_DEVELOPER</td> | | 13203 | <td>PKG_DEVELOPER</td> |
13292 | <td>PKG_DISABLED_OPTIONS</td> | | 13204 | <td>PKG_DISABLED_OPTIONS</td> |
13293 | </tr> | | 13205 | </tr> |
13294 | <tr> | | 13206 | <tr> |
13295 | <td>PKG_FATAL_ERRORS</td> | | 13207 | <td>PKG_FATAL_ERRORS</td> |
13296 | <td>PKG_FC</td> | | 13208 | <td>PKG_FC</td> |
13297 | </tr> | | 13209 | </tr> |
13298 | <tr> | | 13210 | <tr> |
13299 | <td>PKG_FILELIST_CMD</td> | | 13211 | <td>PKG_FILELIST_CMD</td> |
13300 | <td>PKG_GECOS</td> | | 13212 | <td>PKG_GECOS</td> |
13301 | </tr> | | 13213 | </tr> |
13302 | <tr> | | 13214 | <tr> |
13303 | <td>PKG_GID</td> | | 13215 | <td>PKG_GID</td> |
13304 | <td>PKG_GROUPS</td> | | 13216 | <td>PKG_GROUPS</td> |
13305 | </tr> | | 13217 | </tr> |
13306 | <tr> | | 13218 | <tr> |
13307 | <td>PKG_GROUPS_VARS</td> | | 13219 | <td>PKG_GROUPS_VARS</td> |
13308 | <td>PKG_HOME</td> | | 13220 | <td>PKG_HOME</td> |
13309 | </tr> | | 13221 | </tr> |
13310 | <tr> | | 13222 | <tr> |
13311 | <td>PKG_INIT_SCRIPTS</td> | | 13223 | <td>PKG_INIT_SCRIPTS</td> |
13312 | <td>PKG_JAVA_HOME</td> | | 13224 | <td>PKG_JAVA_HOME</td> |
13313 | </tr> | | 13225 | </tr> |
13314 | <tr> | | 13226 | <tr> |
13315 | <td>PKG_JVM</td> | | 13227 | <td>PKG_JVM</td> |
13316 | <td>PKG_JVMS_ACCEPTED</td> | | 13228 | <td>PKG_JVMS_ACCEPTED</td> |
13317 | </tr> | | 13229 | </tr> |
13318 | <tr> | | 13230 | <tr> |
13319 | <td>PKG_JVM_DEFAULT</td> | | 13231 | <td>PKG_JVM_DEFAULT</td> |
13320 | <td>PKG_LEGACY_OPTIONS</td> | | 13232 | <td>PKG_LEGACY_OPTIONS</td> |
13321 | </tr> | | 13233 | </tr> |
13322 | <tr> | | 13234 | <tr> |
13323 | <td>PKG_LIBTOOL</td> | | 13235 | <td>PKG_LIBTOOL</td> |
13324 | <td>PKG_OPTIONS</td> | | 13236 | <td>PKG_OPTIONS</td> |
13325 | </tr> | | 13237 | </tr> |
13326 | <tr> | | 13238 | <tr> |
13327 | <td>PKG_OPTIONS_DEPRECATED_WARNINGS</td> | | 13239 | <td>PKG_OPTIONS_DEPRECATED_WARNINGS</td> |
13328 | <td>PKG_OPTIONS_LEGACY_OPTS</td> | | 13240 | <td>PKG_OPTIONS_LEGACY_OPTS</td> |
13329 | </tr> | | 13241 | </tr> |
13330 | <tr> | | 13242 | <tr> |
13331 | <td>PKG_OPTIONS_LEGACY_VARS</td> | | 13243 | <td>PKG_OPTIONS_LEGACY_VARS</td> |
13332 | <td>PKG_OPTIONS_NONEMPTY_SETS</td> | | 13244 | <td>PKG_OPTIONS_NONEMPTY_SETS</td> |
13333 | </tr> | | 13245 | </tr> |
13334 | <tr> | | 13246 | <tr> |
13335 | <td>PKG_OPTIONS_OPTIONAL_GROUPS</td> | | 13247 | <td>PKG_OPTIONS_OPTIONAL_GROUPS</td> |
13336 | <td>PKG_OPTIONS_REQUIRED_GROUPS</td> | | 13248 | <td>PKG_OPTIONS_REQUIRED_GROUPS</td> |
13337 | </tr> | | 13249 | </tr> |
13338 | <tr> | | 13250 | <tr> |
13339 | <td>PKG_OPTIONS_VAR</td> | | 13251 | <td>PKG_OPTIONS_VAR</td> |
13340 | <td>PKG_PHP</td> | | 13252 | <td>PKG_PHP</td> |
13341 | </tr> | | 13253 | </tr> |
13342 | <tr> | | 13254 | <tr> |
13343 | <td>PKG_PHP_MAJOR_VERS</td> | | 13255 | <td>PKG_PHP_MAJOR_VERS</td> |
13344 | <td>PKG_PHP_VERSION</td> | | 13256 | <td>PKG_PHP_VERSION</td> |
13345 | </tr> | | 13257 | </tr> |
13346 | <tr> | | 13258 | <tr> |
13347 | <td>PKG_RCD_SCRIPTS</td> | | 13259 | <td>PKG_RCD_SCRIPTS</td> |
13348 | <td>PKG_REFCOUNT_DBDIR</td> | | 13260 | <td>PKG_REFCOUNT_DBDIR</td> |
13349 | </tr> | | 13261 | </tr> |
13350 | <tr> | | 13262 | <tr> |
13351 | <td>PKG_REGISTER_SHELLS</td> | | 13263 | <td>PKG_REGISTER_SHELLS</td> |
13352 | <td>PKG_RESUME_TRANSFERS</td> | | 13264 | <td>PKG_RESUME_TRANSFERS</td> |
13353 | </tr> | | 13265 | </tr> |
13354 | <tr> | | 13266 | <tr> |
13355 | <td>PKG_SHELL</td> | | 13267 | <td>PKG_SHELL</td> |
13356 | <td>PKG_SUGGESTED_OPTIONS</td> | | 13268 | <td>PKG_SUGGESTED_OPTIONS</td> |
13357 | </tr> | | 13269 | </tr> |
13358 | <tr> | | 13270 | <tr> |
13359 | <td>PKG_SUPPORTED_OPTIONS</td> | | 13271 | <td>PKG_SUPPORTED_OPTIONS</td> |
13360 | <td>PKG_SYSCONFBASE</td> | | 13272 | <td>PKG_SYSCONFBASE</td> |
13361 | </tr> | | 13273 | </tr> |
13362 | <tr> | | 13274 | <tr> |
13363 | <td>PKG_SYSCONFBASEDIR</td> | | 13275 | <td>PKG_SYSCONFBASEDIR</td> |
13364 | <td>PKG_SYSCONFDIR</td> | | 13276 | <td>PKG_SYSCONFDIR</td> |
13365 | </tr> | | 13277 | </tr> |
13366 | <tr> | | 13278 | <tr> |
13367 | <td>PKG_SYSCONFDIR_PERMS</td> | | 13279 | <td>PKG_SYSCONFDIR_PERMS</td> |
13368 | <td>PKG_SYSCONFSUBDIR</td> | | 13280 | <td>PKG_SYSCONFSUBDIR</td> |
13369 | </tr> | | 13281 | </tr> |
13370 | <tr> | | 13282 | <tr> |
13371 | <td>PKG_SYSCONFVAR</td> | | 13283 | <td>PKG_SYSCONFVAR</td> |
13372 | <td>PKG_TOOLS_BIN</td> | | 13284 | <td>PKG_TOOLS_BIN</td> |
13373 | </tr> | | 13285 | </tr> |
13374 | <tr> | | 13286 | <tr> |
13375 | <td>PKG_UID</td> | | 13287 | <td>PKG_UID</td> |
13376 | <td>PKG_UPDATE_FONTS_DB</td> | | 13288 | <td>PKG_UPDATE_FONTS_DB</td> |
13377 | </tr> | | 13289 | </tr> |
13378 | <tr> | | 13290 | <tr> |
13379 | <td>PKG_USERS</td> | | 13291 | <td>PKG_USERS</td> |
13380 | <td>PKG_USERS_VARS</td> | | 13292 | <td>PKG_USERS_VARS</td> |
13381 | </tr> | | 13293 | </tr> |
13382 | <tr> | | 13294 | <tr> |
13383 | <td>PKG_VERBOSE</td> | | 13295 | <td>PKG_VERBOSE</td> |
13384 | <td>PLEASE</td> | | 13296 | <td>PLEASE</td> |
13385 | </tr> | | 13297 | </tr> |
13386 | <tr> | | 13298 | <tr> |
13387 | <td>PLIST</td> | | 13299 | <td>PLIST</td> |
13388 | <td>PLIST_AWK</td> | | 13300 | <td>PLIST_AWK</td> |
13389 | </tr> | | 13301 | </tr> |
13390 | <tr> | | 13302 | <tr> |
13391 | <td>PLIST_AWK_ENV</td> | | 13303 | <td>PLIST_AWK_ENV</td> |
13392 | <td>PLIST_SRC</td> | | 13304 | <td>PLIST_SRC</td> |
13393 | </tr> | | 13305 | </tr> |
13394 | <tr> | | 13306 | <tr> |
13395 | <td>PLIST_SUBST</td> | | 13307 | <td>PLIST_SUBST</td> |
13396 | <td>PLIST_TYPE</td> | | 13308 | <td>PLIST_TYPE</td> |
13397 | </tr> | | 13309 | </tr> |
13398 | <tr> | | 13310 | <tr> |
13399 | <td>PLIST_VARS</td> | | 13311 | <td>PLIST_VARS</td> |
13400 | <td>POPTOP_USE_MPPE</td> | | 13312 | <td>POPTOP_USE_MPPE</td> |
13401 | </tr> | | 13313 | </tr> |
13402 | <tr> | | 13314 | <tr> |
13403 | <td>POSSIBLE_GFORTRAN_VERSION</td> | | 13315 | <td>POSSIBLE_GFORTRAN_VERSION</td> |
13404 | <td>POST_FETCH_HOOK</td> | | 13316 | <td>POST_FETCH_HOOK</td> |
13405 | </tr> | | 13317 | </tr> |
13406 | <tr> | | 13318 | <tr> |
13407 | <td>PREFER</td> | | 13319 | <td>PREFER</td> |
13408 | <td>PREFER_NATIVE</td> | | 13320 | <td>PREFER_NATIVE</td> |
13409 | </tr> | | 13321 | </tr> |
13410 | <tr> | | 13322 | <tr> |
13411 | <td>PREFER_NATIVE_PTHREADS</td> | | 13323 | <td>PREFER_NATIVE_PTHREADS</td> |
13412 | <td>PREFER_PKGSRC</td> | | 13324 | <td>PREFER_PKGSRC</td> |
13413 | </tr> | | 13325 | </tr> |
13414 | <tr> | | 13326 | <tr> |
13415 | <td>PREFIX</td> | | 13327 | <td>PREFIX</td> |
13416 | <td>PREPEND_PATH</td> | | 13328 | <td>PREPEND_PATH</td> |
13417 | </tr> | | 13329 | </tr> |
13418 | <tr> | | 13330 | <tr> |
13419 | <td>PRE_ROOT_CMD</td> | | 13331 | <td>PRE_ROOT_CMD</td> |
13420 | <td>PRIVILEGED_STAGES</td> | | 13332 | <td>PRIVILEGED_STAGES</td> |
13421 | </tr> | | 13333 | </tr> |
13422 | <tr> | | 13334 | <tr> |
13423 | <td>PS</td> | | 13335 | <td>PS</td> |
13424 | <td>PTHREAD_AUTO_VARS</td> | | 13336 | <td>PTHREAD_AUTO_VARS</td> |
13425 | </tr> | | 13337 | </tr> |
13426 | <tr> | | 13338 | <tr> |
13427 | <td>PTHREAD_CFLAGS</td> | | 13339 | <td>PTHREAD_CFLAGS</td> |
13428 | <td>PTHREAD_LDFLAGS</td> | | 13340 | <td>PTHREAD_LDFLAGS</td> |
13429 | </tr> | | 13341 | </tr> |
13430 | <tr> | | 13342 | <tr> |
13431 | <td>PTHREAD_LIBS</td> | | 13343 | <td>PTHREAD_LIBS</td> |
13432 | <td>PTHREAD_OPTS</td> | | 13344 | <td>PTHREAD_OPTS</td> |
13433 | </tr> | | 13345 | </tr> |
13434 | <tr> | | 13346 | <tr> |
13435 | <td>PTHREAD_TYPE</td> | | 13347 | <td>PTHREAD_TYPE</td> |
13436 | <td>PVM_SSH</td> | | 13348 | <td>PVM_SSH</td> |
13437 | </tr> | | 13349 | </tr> |
13438 | <tr> | | 13350 | <tr> |
13439 | <td>PYPKGPREFIX</td> | | 13351 | <td>PYPKGPREFIX</td> |
13440 | <td>PYTHON_FOR_BUILD_ONLY</td> | | 13352 | <td>PYTHON_FOR_BUILD_ONLY</td> |
13441 | </tr> | | 13353 | </tr> |
13442 | <tr> | | 13354 | <tr> |
13443 | <td>PYTHON_SELF_CONFLICT</td> | | 13355 | <td>PYTHON_SELF_CONFLICT</td> |
13444 | <td>PYTHON_VERSIONED_DEPENDENCIES</td> | | 13356 | <td>PYTHON_VERSIONED_DEPENDENCIES</td> |
13445 | </tr> | | 13357 | </tr> |
13446 | <tr> | | 13358 | <tr> |
13447 | <td>PYTHON_VERSIONS_ACCEPTED</td> | | 13359 | <td>PYTHON_VERSIONS_ACCEPTED</td> |
13448 | <td>PYTHON_VERSIONS_INCOMPATIBLE</td> | | 13360 | <td>PYTHON_VERSIONS_INCOMPATIBLE</td> |
13449 | </tr> | | 13361 | </tr> |
13450 | <tr> | | 13362 | <tr> |
13451 | <td>PYTHON_VERSION_DEFAULT</td> | | 13363 | <td>PYTHON_VERSION_DEFAULT</td> |
13452 | <td>PYTHON_VERSION_REQD</td> | | 13364 | <td>PYTHON_VERSION_REQD</td> |
13453 | </tr> | | 13365 | </tr> |
13454 | <tr> | | 13366 | <tr> |
13455 | <td>PYVERSSUFFIX</td> | | 13367 | <td>PYVERSSUFFIX</td> |
13456 | <td>QMAILDIR</td> | | 13368 | <td>QMAILDIR</td> |
13457 | </tr> | | 13369 | </tr> |
13458 | <tr> | | 13370 | <tr> |
13459 | <td>QMAIL_ALIAS_USER</td> | | 13371 | <td>QMAIL_ALIAS_USER</td> |
13460 | <td>QMAIL_DAEMON_USER</td> | | 13372 | <td>QMAIL_DAEMON_USER</td> |
13461 | </tr> | | 13373 | </tr> |
13462 | <tr> | | 13374 | <tr> |
13463 | <td>QMAIL_LOG_USER</td> | | 13375 | <td>QMAIL_LOG_USER</td> |
13464 | <td>QMAIL_NOFILES_GROUP</td> | | 13376 | <td>QMAIL_NOFILES_GROUP</td> |
13465 | </tr> | | 13377 | </tr> |
13466 | <tr> | | 13378 | <tr> |
13467 | <td>QMAIL_PASSWD_USER</td> | | 13379 | <td>QMAIL_PASSWD_USER</td> |
13468 | <td>QMAIL_QMAIL_GROUP</td> | | 13380 | <td>QMAIL_QMAIL_GROUP</td> |
13469 | </tr> | | 13381 | </tr> |
13470 | <tr> | | 13382 | <tr> |
13471 | <td>QMAIL_QUEUE_DIR</td> | | 13383 | <td>QMAIL_QUEUE_DIR</td> |
13472 | <td>QMAIL_QUEUE_EXTRA</td> | | 13384 | <td>QMAIL_QUEUE_EXTRA</td> |
13473 | </tr> | | 13385 | </tr> |
13474 | <tr> | | 13386 | <tr> |
13475 | <td>QMAIL_QUEUE_USER</td> | | 13387 | <td>QMAIL_QUEUE_USER</td> |
13476 | <td>QMAIL_REMOTE_USER</td> | | 13388 | <td>QMAIL_REMOTE_USER</td> |
13477 | </tr> | | 13389 | </tr> |
13478 | <tr> | | 13390 | <tr> |
13479 | <td>QMAIL_ROOT_USER</td> | | 13391 | <td>QMAIL_ROOT_USER</td> |
13480 | <td>QMAIL_SEND_USER</td> | | 13392 | <td>QMAIL_SEND_USER</td> |
13481 | </tr> | | 13393 | </tr> |
13482 | <tr> | | 13394 | <tr> |
13483 | <td>QORE_LATEST_MODULE_API</td> | | 13395 | <td>QORE_LATEST_MODULE_API</td> |
13484 | <td>QORE_MODULE_API</td> | | 13396 | <td>QORE_MODULE_API</td> |
13485 | </tr> | | 13397 | </tr> |
13486 | <tr> | | 13398 | <tr> |
13487 | <td>QORE_MODULE_DIR</td> | | 13399 | <td>QORE_MODULE_DIR</td> |
13488 | <td>QORE_USER_MODULE_DIR</td> | | 13400 | <td>QORE_USER_MODULE_DIR</td> |
13489 | </tr> | | 13401 | </tr> |
13490 | <tr> | | 13402 | <tr> |
13491 | <td>QORE_VERSION</td> | | 13403 | <td>QORE_VERSION</td> |
13492 | <td>QPOPPER_FAC</td> | | 13404 | <td>QPOPPER_FAC</td> |
13493 | </tr> | | 13405 | </tr> |
13494 | <tr> | | 13406 | <tr> |
13495 | <td>QPOPPER_SPOOL_DIR</td> | | 13407 | <td>QPOPPER_SPOOL_DIR</td> |
13496 | <td>QPOPPER_USER</td> | | 13408 | <td>QPOPPER_USER</td> |
13497 | </tr> | | 13409 | </tr> |
13498 | <tr> | | 13410 | <tr> |
13499 | <td>RAKE_NAME</td> | | 13411 | <td>RAKE_NAME</td> |
13500 | <td>RASMOL_DEPTH</td> | | 13412 | <td>RASMOL_DEPTH</td> |
13501 | </tr> | | 13413 | </tr> |
13502 | <tr> | | 13414 | <tr> |
13503 | <td>RCD_DIR</td> | | | |
13504 | <td>RCD_ORDER</td> | | | |
13505 | </tr> | | | |
13506 | <tr> | | | |
13507 | <td>RCD_SCRIPTS</td> | | 13415 | <td>RCD_SCRIPTS</td> |
13508 | <td>RCD_SCRIPTS_DIR</td> | | 13416 | <td>RCD_SCRIPTS_DIR</td> |
13509 | </tr> | | 13417 | </tr> |
13510 | <tr> | | 13418 | <tr> |
13511 | <td>RCD_SCRIPTS_EXAMPLEDIR</td> | | 13419 | <td>RCD_SCRIPTS_EXAMPLEDIR</td> |
13512 | <td>RCD_SCRIPTS_MODE</td> | | 13420 | <td>RCD_SCRIPTS_MODE</td> |
13513 | </tr> | | 13421 | </tr> |
13514 | <tr> | | 13422 | <tr> |
13515 | <td>RCD_SCRIPTS_SHELL</td> | | 13423 | <td>RCD_SCRIPTS_SHELL</td> |
13516 | <td>RCD_SCRIPT_SRC</td> | | 13424 | <td>RCD_SCRIPT_SRC</td> |
13517 | </tr> | | 13425 | </tr> |
13518 | <tr> | | 13426 | <tr> |
13519 | <td>RCD_SUBR</td> | | | |
13520 | <td>RDOC</td> | | 13427 | <td>RDOC</td> |
13521 | </tr> | | | |
13522 | <tr> | | | |
13523 | <td>READLINE_DEFAULT</td> | | 13428 | <td>READLINE_DEFAULT</td> |
13524 | <td>READLINE_TYPE</td> | | | |
13525 | </tr> | | 13429 | </tr> |
13526 | <tr> | | 13430 | <tr> |
| | | 13431 | <td>READLINE_TYPE</td> |
13527 | <td>REAL_ROOT_GROUP</td> | | 13432 | <td>REAL_ROOT_GROUP</td> |
13528 | <td>REAL_ROOT_USER</td> | | | |
13529 | </tr> | | 13433 | </tr> |
13530 | <tr> | | 13434 | <tr> |
| | | 13435 | <td>REAL_ROOT_USER</td> |
13531 | <td>RECURSIVE_MAKE</td> | | 13436 | <td>RECURSIVE_MAKE</td> |
13532 | <td>RELAY_CTRL_DIR</td> | | | |
13533 | </tr> | | 13437 | </tr> |
13534 | <tr> | | 13438 | <tr> |
| | | 13439 | <td>RELAY_CTRL_DIR</td> |
13535 | <td>RELRO_SUPPORTED</td> | | 13440 | <td>RELRO_SUPPORTED</td> |
13536 | <td>REPLACE_AWK</td> | | | |
13537 | </tr> | | 13441 | </tr> |
13538 | <tr> | | 13442 | <tr> |
| | | 13443 | <td>REPLACE_AWK</td> |
13539 | <td>REPLACE_BASH</td> | | 13444 | <td>REPLACE_BASH</td> |
13540 | <td>REPLACE_CSH</td> | | | |
13541 | </tr> | | 13445 | </tr> |
13542 | <tr> | | 13446 | <tr> |
| | | 13447 | <td>REPLACE_CSH</td> |
13543 | <td>REPLACE_KSH</td> | | 13448 | <td>REPLACE_KSH</td> |
13544 | <td>REPLACE_LUA</td> | | | |
13545 | </tr> | | 13449 | </tr> |
13546 | <tr> | | 13450 | <tr> |
| | | 13451 | <td>REPLACE_LUA</td> |
13547 | <td>REPLACE_NODEJS</td> | | 13452 | <td>REPLACE_NODEJS</td> |
13548 | <td>REPLACE_OCTAVE</td> | | | |
13549 | </tr> | | 13453 | </tr> |
13550 | <tr> | | 13454 | <tr> |
| | | 13455 | <td>REPLACE_OCTAVE</td> |
13551 | <td>REPLACE_PERL</td> | | 13456 | <td>REPLACE_PERL</td> |
13552 | <td>REPLACE_PERL6</td> | | | |
13553 | </tr> | | 13457 | </tr> |
13554 | <tr> | | 13458 | <tr> |
| | | 13459 | <td>REPLACE_PERL6</td> |
13555 | <td>REPLACE_PHP</td> | | 13460 | <td>REPLACE_PHP</td> |
13556 | <td>REPLACE_PYTHON</td> | | | |
13557 | </tr> | | 13461 | </tr> |
13558 | <tr> | | 13462 | <tr> |
| | | 13463 | <td>REPLACE_PYTHON</td> |
13559 | <td>REPLACE_QORE</td> | | 13464 | <td>REPLACE_QORE</td> |
13560 | <td>REPLACE_R</td> | | | |
13561 | </tr> | | 13465 | </tr> |
13562 | <tr> | | 13466 | <tr> |
| | | 13467 | <td>REPLACE_R</td> |
13563 | <td>REPLACE_RUBY</td> | | 13468 | <td>REPLACE_RUBY</td> |
13564 | <td>REPLACE_RUBY_DIRS</td> | | | |
13565 | </tr> | | 13469 | </tr> |
13566 | <tr> | | 13470 | <tr> |
| | | 13471 | <td>REPLACE_RUBY_DIRS</td> |
13567 | <td>REPLACE_RUBY_PAT</td> | | 13472 | <td>REPLACE_RUBY_PAT</td> |
13568 | <td>REPLACE_SH</td> | | | |
13569 | </tr> | | 13473 | </tr> |
13570 | <tr> | | 13474 | <tr> |
| | | 13475 | <td>REPLACE_SH</td> |
13571 | <td>REPLACE_TEXLUA</td> | | 13476 | <td>REPLACE_TEXLUA</td> |
13572 | <td>REPLACE_WISH</td> | | | |
13573 | </tr> | | 13477 | </tr> |
13574 | <tr> | | 13478 | <tr> |
| | | 13479 | <td>REPLACE_WISH</td> |
13575 | <td>REQD_DIRS</td> | | 13480 | <td>REQD_DIRS</td> |
13576 | <td>REQD_DIRS_PERMS</td> | | | |
13577 | </tr> | | 13481 | </tr> |
13578 | <tr> | | 13482 | <tr> |
| | | 13483 | <td>REQD_DIRS_PERMS</td> |
13579 | <td>REQD_FILES</td> | | 13484 | <td>REQD_FILES</td> |
13580 | <td>REQD_FILES_MODE</td> | | | |
13581 | </tr> | | 13485 | </tr> |
13582 | <tr> | | 13486 | <tr> |
| | | 13487 | <td>REQD_FILES_MODE</td> |
13583 | <td>REQD_FILES_PERMS</td> | | 13488 | <td>REQD_FILES_PERMS</td> |
13584 | <td>RESOLV_AUTO_VARS</td> | | | |
13585 | </tr> | | 13489 | </tr> |
13586 | <tr> | | 13490 | <tr> |
| | | 13491 | <td>RESOLV_AUTO_VARS</td> |
13587 | <td>RESOLV_LDFLAGS</td> | | 13492 | <td>RESOLV_LDFLAGS</td> |
13588 | <td>RESOLV_LIBS</td> | | | |
13589 | </tr> | | 13493 | </tr> |
13590 | <tr> | | 13494 | <tr> |
| | | 13495 | <td>RESOLV_LIBS</td> |
13591 | <td>RM</td> | | 13496 | <td>RM</td> |
13592 | <td>ROCKSPEC_NAME</td> | | | |
13593 | </tr> | | 13497 | </tr> |
13594 | <tr> | | 13498 | <tr> |
13595 | <td>ROCKSPEC_SPECFILE</td> | | | |
13596 | <td>ROOT_CMD</td> | | 13499 | <td>ROOT_CMD</td> |
13597 | </tr> | | | |
13598 | <tr> | | | |
13599 | <td>ROOT_GROUP</td> | | 13500 | <td>ROOT_GROUP</td> |
13600 | <td>ROOT_USER</td> | | | |
13601 | </tr> | | 13501 | </tr> |
13602 | <tr> | | 13502 | <tr> |
| | | 13503 | <td>ROOT_USER</td> |
13603 | <td>RPCGEN</td> | | 13504 | <td>RPCGEN</td> |
13604 | <td>RPM</td> | | | |
13605 | </tr> | | 13505 | </tr> |
13606 | <tr> | | 13506 | <tr> |
| | | 13507 | <td>RPM</td> |
13607 | <td>RPM2PKG_PLIST</td> | | 13508 | <td>RPM2PKG_PLIST</td> |
13608 | <td>RPM2PKG_PREFIX</td> | | | |
13609 | </tr> | | 13509 | </tr> |
13610 | <tr> | | 13510 | <tr> |
| | | 13511 | <td>RPM2PKG_PREFIX</td> |
13611 | <td>RPM2PKG_STAGE</td> | | 13512 | <td>RPM2PKG_STAGE</td> |
13612 | <td>RPM2PKG_STRIP</td> | | | |
13613 | </tr> | | 13513 | </tr> |
13614 | <tr> | | 13514 | <tr> |
| | | 13515 | <td>RPM2PKG_STRIP</td> |
13615 | <td>RPM2PKG_SUBPREFIX</td> | | 13516 | <td>RPM2PKG_SUBPREFIX</td> |
13616 | <td>RPMFILES</td> | | | |
13617 | </tr> | | 13517 | </tr> |
13618 | <tr> | | 13518 | <tr> |
| | | 13519 | <td>RPMFILES</td> |
13619 | <td>RPMIGNOREPATH</td> | | 13520 | <td>RPMIGNOREPATH</td> |
13620 | <td>RPM_DB_PREFIX</td> | | | |
13621 | </tr> | | 13521 | </tr> |
13622 | <tr> | | 13522 | <tr> |
| | | 13523 | <td>RPM_DB_PREFIX</td> |
13623 | <td>RSSH_CVS_PATH</td> | | 13524 | <td>RSSH_CVS_PATH</td> |
13624 | <td>RSSH_RDIST_PATH</td> | | | |
13625 | </tr> | | 13525 | </tr> |
13626 | <tr> | | 13526 | <tr> |
| | | 13527 | <td>RSSH_RDIST_PATH</td> |
13627 | <td>RSSH_RSYNC_PATH</td> | | 13528 | <td>RSSH_RSYNC_PATH</td> |
13628 | <td>RSSH_SCP_PATH</td> | | | |
13629 | </tr> | | 13529 | </tr> |
13630 | <tr> | | 13530 | <tr> |
| | | 13531 | <td>RSSH_SCP_PATH</td> |
13631 | <td>RSSH_SFTP_SERVER_PATH</td> | | 13532 | <td>RSSH_SFTP_SERVER_PATH</td> |
13632 | <td>RUBY</td> | | | |
13633 | </tr> | | 13533 | </tr> |
13634 | <tr> | | 13534 | <tr> |
| | | 13535 | <td>RUBY</td> |
13635 | <td>RUBYGEM</td> | | 13536 | <td>RUBYGEM</td> |
13636 | <td>RUBYGEM_NAME</td> | | | |
13637 | </tr> | | 13537 | </tr> |
13638 | <tr> | | 13538 | <tr> |
| | | 13539 | <td>RUBYGEM_NAME</td> |
13639 | <td>RUBYGEM_OPTIONS</td> | | 13540 | <td>RUBYGEM_OPTIONS</td> |
13640 | <td>RUBYGEM_VERBOSE</td> | | | |
13641 | </tr> | | 13541 | </tr> |
13642 | <tr> | | 13542 | <tr> |
| | | 13543 | <td>RUBYGEM_VERBOSE</td> |
13643 | <td>RUBY_ABI_VERSION</td> | | 13544 | <td>RUBY_ABI_VERSION</td> |
13644 | <td>RUBY_ARCH</td> | | | |
13645 | </tr> | | 13545 | </tr> |
13646 | <tr> | | 13546 | <tr> |
| | | 13547 | <td>RUBY_ARCH</td> |
13647 | <td>RUBY_ARCHINC</td> | | 13548 | <td>RUBY_ARCHINC</td> |
13648 | <td>RUBY_ARCHLIB</td> | | | |
13649 | </tr> | | 13549 | </tr> |
13650 | <tr> | | 13550 | <tr> |
| | | 13551 | <td>RUBY_ARCHLIB</td> |
13651 | <td>RUBY_BASE</td> | | 13552 | <td>RUBY_BASE</td> |
13652 | <td>RUBY_BASERIDIR</td> | | | |
13653 | </tr> | | 13553 | </tr> |
13654 | <tr> | | 13554 | <tr> |
| | | 13555 | <td>RUBY_BASERIDIR</td> |
13655 | <td>RUBY_BUILD_DOCUMENT</td> | | 13556 | <td>RUBY_BUILD_DOCUMENT</td> |
13656 | <td>RUBY_DLEXT</td> | | | |
13657 | </tr> | | 13557 | </tr> |
13658 | <tr> | | 13558 | <tr> |
| | | 13559 | <td>RUBY_DLEXT</td> |
13659 | <td>RUBY_DOC</td> | | 13560 | <td>RUBY_DOC</td> |
13660 | <td>RUBY_DYNAMIC_DIRS</td> | | | |
13661 | </tr> | | 13561 | </tr> |
13662 | <tr> | | 13562 | <tr> |
| | | 13563 | <td>RUBY_DYNAMIC_DIRS</td> |
13663 | <td>RUBY_EG</td> | | 13564 | <td>RUBY_EG</td> |
13664 | <td>RUBY_ENCODING_ARG</td> | | | |
13665 | </tr> | | 13565 | </tr> |
13666 | <tr> | | 13566 | <tr> |
| | | 13567 | <td>RUBY_ENCODING_ARG</td> |
13667 | <td>RUBY_EXTCONF</td> | | 13568 | <td>RUBY_EXTCONF</td> |
13668 | <td>RUBY_EXTCONF_CHECK</td> | | | |
13669 | </tr> | | 13569 | </tr> |
13670 | <tr> | | 13570 | <tr> |
| | | 13571 | <td>RUBY_EXTCONF_CHECK</td> |
13671 | <td>RUBY_EXTCONF_DEBUG</td> | | 13572 | <td>RUBY_EXTCONF_DEBUG</td> |
13672 | <td>RUBY_EXTCONF_MAKEFILE</td> | | | |
13673 | </tr> | | 13573 | </tr> |
13674 | <tr> | | 13574 | <tr> |
| | | 13575 | <td>RUBY_EXTCONF_MAKEFILE</td> |
13675 | <td>RUBY_GEM_ARCH</td> | | 13576 | <td>RUBY_GEM_ARCH</td> |
13676 | <td>RUBY_GEM_BASE</td> | | | |
13677 | </tr> | | 13577 | </tr> |
13678 | <tr> | | 13578 | <tr> |
| | | 13579 | <td>RUBY_GEM_BASE</td> |
13679 | <td>RUBY_INC</td> | | 13580 | <td>RUBY_INC</td> |
13680 | <td>RUBY_LIB</td> | | | |
13681 | </tr> | | 13581 | </tr> |
13682 | <tr> | | 13582 | <tr> |
| | | 13583 | <td>RUBY_LIB</td> |
13683 | <td>RUBY_LIB_BASE</td> | | 13584 | <td>RUBY_LIB_BASE</td> |
13684 | <td>RUBY_NAME</td> | | | |
13685 | </tr> | | 13585 | </tr> |
13686 | <tr> | | 13586 | <tr> |
| | | 13587 | <td>RUBY_NAME</td> |
13687 | <td>RUBY_NOVERSION</td> | | 13588 | <td>RUBY_NOVERSION</td> |
13688 | <td>RUBY_PKGPREFIX</td> | | | |
13689 | </tr> | | 13589 | </tr> |
13690 | <tr> | | 13590 | <tr> |
| | | 13591 | <td>RUBY_PKGPREFIX</td> |
13691 | <td>RUBY_RAILS</td> | | 13592 | <td>RUBY_RAILS</td> |
13692 | <td>RUBY_RAILS52_VERSION</td> | | | |
13693 | </tr> | | 13593 | </tr> |
13694 | <tr> | | 13594 | <tr> |
| | | 13595 | <td>RUBY_RAILS52_VERSION</td> |
13695 | <td>RUBY_RAILS60_VERSION</td> | | 13596 | <td>RUBY_RAILS60_VERSION</td> |
13696 | <td>RUBY_RAILS61_VERSION</td> | | | |
13697 | </tr> | | 13597 | </tr> |
13698 | <tr> | | 13598 | <tr> |
| | | 13599 | <td>RUBY_RAILS61_VERSION</td> |
13699 | <td>RUBY_RAILS70_VERSION</td> | | 13600 | <td>RUBY_RAILS70_VERSION</td> |
13700 | <td>RUBY_RAILS_ACCEPTED</td> | | | |
13701 | </tr> | | 13601 | </tr> |
13702 | <tr> | | 13602 | <tr> |
| | | 13603 | <td>RUBY_RAILS_ACCEPTED</td> |
13703 | <td>RUBY_RAILS_DEFAULT</td> | | 13604 | <td>RUBY_RAILS_DEFAULT</td> |
13704 | <td>RUBY_RAILS_REQD</td> | | | |
13705 | </tr> | | 13605 | </tr> |
13706 | <tr> | | 13606 | <tr> |
| | | 13607 | <td>RUBY_RAILS_REQD</td> |
13707 | <td>RUBY_RAILS_STRICT_DEP</td> | | 13608 | <td>RUBY_RAILS_STRICT_DEP</td> |
13708 | <td>RUBY_RIDIR</td> | | | |
13709 | </tr> | | 13609 | </tr> |
13710 | <tr> | | 13610 | <tr> |
| | | 13611 | <td>RUBY_RIDIR</td> |
13711 | <td>RUBY_SETUP</td> | | 13612 | <td>RUBY_SETUP</td> |
13712 | <td>RUBY_SHLIB</td> | | | |
13713 | </tr> | | 13613 | </tr> |
13714 | <tr> | | 13614 | <tr> |
| | | 13615 | <td>RUBY_SHLIB</td> |
13715 | <td>RUBY_SHLIBALIAS</td> | | 13616 | <td>RUBY_SHLIBALIAS</td> |
13716 | <td>RUBY_SHLIBVER</td> | | | |
13717 | </tr> | | 13617 | </tr> |
13718 | <tr> | | 13618 | <tr> |
| | | 13619 | <td>RUBY_SHLIBVER</td> |
13719 | <td>RUBY_SIMPLE_INSTALL</td> | | 13620 | <td>RUBY_SIMPLE_INSTALL</td> |
13720 | <td>RUBY_SITEARCHLIB</td> | | | |
13721 | </tr> | | 13621 | </tr> |
13722 | <tr> | | 13622 | <tr> |
| | | 13623 | <td>RUBY_SITEARCHLIB</td> |
13723 | <td>RUBY_SITELIB</td> | | 13624 | <td>RUBY_SITELIB</td> |
13724 | <td>RUBY_SITELIB_BASE</td> | | | |
13725 | </tr> | | 13625 | </tr> |
13726 | <tr> | | 13626 | <tr> |
| | | 13627 | <td>RUBY_SITELIB_BASE</td> |
13727 | <td>RUBY_SITERIDIR</td> | | 13628 | <td>RUBY_SITERIDIR</td> |
13728 | <td>RUBY_SLEXT</td> | | | |
13729 | </tr> | | 13629 | </tr> |
13730 | <tr> | | 13630 | <tr> |
| | | 13631 | <td>RUBY_SLEXT</td> |
13731 | <td>RUBY_SRCDIR</td> | | 13632 | <td>RUBY_SRCDIR</td> |
13732 | <td>RUBY_STATICLIB</td> | | | |
13733 | </tr> | | 13633 | </tr> |
13734 | <tr> | | 13634 | <tr> |
| | | 13635 | <td>RUBY_STATICLIB</td> |
13735 | <td>RUBY_SUFFIX</td> | | 13636 | <td>RUBY_SUFFIX</td> |
13736 | <td>RUBY_SYSRIDIR</td> | | | |
13737 | </tr> | | 13637 | </tr> |
13738 | <tr> | | 13638 | <tr> |
| | | 13639 | <td>RUBY_SYSRIDIR</td> |
13739 | <td>RUBY_USE_PTHREAD</td> | | 13640 | <td>RUBY_USE_PTHREAD</td> |
13740 | <td>RUBY_VENDORARCHLIB</td> | | | |
13741 | </tr> | | 13641 | </tr> |
13742 | <tr> | | 13642 | <tr> |
| | | 13643 | <td>RUBY_VENDORARCHLIB</td> |
13743 | <td>RUBY_VENDORLIB</td> | | 13644 | <td>RUBY_VENDORLIB</td> |
13744 | <td>RUBY_VENDORLIB_BASE</td> | | | |
13745 | </tr> | | 13645 | </tr> |
13746 | <tr> | | 13646 | <tr> |
| | | 13647 | <td>RUBY_VENDORLIB_BASE</td> |
13747 | <td>RUBY_VER</td> | | 13648 | <td>RUBY_VER</td> |
13748 | <td>RUBY_VERSION</td> | | | |
13749 | </tr> | | 13649 | </tr> |
13750 | <tr> | | 13650 | <tr> |
| | | 13651 | <td>RUBY_VERSION</td> |
13751 | <td>RUBY_VERSIONS_ACCEPTED</td> | | 13652 | <td>RUBY_VERSIONS_ACCEPTED</td> |
13752 | <td>RUBY_VERSIONS_INCOMPATIBLE</td> | | | |
13753 | </tr> | | 13653 | </tr> |
13754 | <tr> | | 13654 | <tr> |
| | | 13655 | <td>RUBY_VERSIONS_INCOMPATIBLE</td> |
13755 | <td>RUBY_VERSION_DEFAULT</td> | | 13656 | <td>RUBY_VERSION_DEFAULT</td> |
13756 | <td>RUBY_VERSION_REQD</td> | | | |
13757 | </tr> | | 13657 | </tr> |
13758 | <tr> | | 13658 | <tr> |
| | | 13659 | <td>RUBY_VERSION_REQD</td> |
13759 | <td>RUBY_VER_DIR</td> | | 13660 | <td>RUBY_VER_DIR</td> |
13760 | <td>RUN</td> | | | |
13761 | </tr> | | 13661 | </tr> |
13762 | <tr> | | 13662 | <tr> |
| | | 13663 | <td>RUN</td> |
13763 | <td>RUN_LDCONFIG</td> | | 13664 | <td>RUN_LDCONFIG</td> |
13764 | <td>RUST_TYPE</td> | | | |
13765 | </tr> | | 13665 | </tr> |
13766 | <tr> | | 13666 | <tr> |
| | | 13667 | <td>RUST_TYPE</td> |
13767 | <td>SCO</td> | | 13668 | <td>SCO</td> |
13768 | <td>SCREWS_GROUP</td> | | | |
13769 | </tr> | | 13669 | </tr> |
13770 | <tr> | | 13670 | <tr> |
| | | 13671 | <td>SCREWS_GROUP</td> |
13771 | <td>SCREWS_USER</td> | | 13672 | <td>SCREWS_USER</td> |
13772 | <td>SCRIPTS_ENV</td> | | | |
13773 | </tr> | | 13673 | </tr> |
13774 | <tr> | | 13674 | <tr> |
| | | 13675 | <td>SCRIPTS_ENV</td> |
13775 | <td>SCROLLKEEPER_DATADIR</td> | | 13676 | <td>SCROLLKEEPER_DATADIR</td> |
13776 | <td>SCROLLKEEPER_REBUILDDB</td> | | | |
13777 | </tr> | | 13677 | </tr> |
13778 | <tr> | | 13678 | <tr> |
| | | 13679 | <td>SCROLLKEEPER_REBUILDDB</td> |
13779 | <td>SCROLLKEEPER_UPDATEDB</td> | | 13680 | <td>SCROLLKEEPER_UPDATEDB</td> |
13780 | <td>SDIST_PAWD</td> | | | |
13781 | </tr> | | 13681 | </tr> |
13782 | <tr> | | 13682 | <tr> |
| | | 13683 | <td>SDIST_PAWD</td> |
13783 | <td>SDL12_TYPE</td> | | 13684 | <td>SDL12_TYPE</td> |
13784 | <td>SERIAL_DEVICES</td> | | | |
13785 | </tr> | | 13685 | </tr> |
13786 | <tr> | | 13686 | <tr> |
| | | 13687 | <td>SERIAL_DEVICES</td> |
13787 | <td>SETGIDGAME</td> | | 13688 | <td>SETGIDGAME</td> |
13788 | <td>SETGID_GAMES_PERMS</td> | | | |
13789 | </tr> | | 13689 | </tr> |
13790 | <tr> | | 13690 | <tr> |
| | | 13691 | <td>SETGID_GAMES_PERMS</td> |
13791 | <td>SETUID_ROOT_PERMS</td> | | 13692 | <td>SETUID_ROOT_PERMS</td> |
13792 | <td>SH</td> | | | |
13793 | </tr> | | 13693 | </tr> |
13794 | <tr> | | 13694 | <tr> |
| | | 13695 | <td>SH</td> |
13795 | <td>SHLIB</td> | | 13696 | <td>SHLIB</td> |
13796 | <td>SHORTNAME</td> | | | |
13797 | </tr> | | 13697 | </tr> |
13798 | <tr> | | 13698 | <tr> |
13799 | <td>SIGN_PACKAGES</td> | | 13699 | <td>SIGN_PACKAGES</td> |
13800 | <td>SILC_CLIENT_WITH_PERL</td> | | 13700 | <td>SILC_CLIENT_WITH_PERL</td> |
13801 | </tr> | | 13701 | </tr> |
13802 | <tr> | | 13702 | <tr> |
13803 | <td>SITE_SPECIFIC_PKGS</td> | | 13703 | <td>SITE_SPECIFIC_PKGS</td> |
13804 | <td>SKIP_DEPENDS</td> | | 13704 | <td>SKIP_DEPENDS</td> |
13805 | </tr> | | 13705 | </tr> |
13806 | <tr> | | 13706 | <tr> |
13807 | <td>SMF_INSTANCES</td> | | 13707 | <td>SMF_INSTANCES</td> |
13808 | <td>SMF_MANIFEST</td> | | 13708 | <td>SMF_MANIFEST</td> |
13809 | </tr> | | 13709 | </tr> |
13810 | <tr> | | 13710 | <tr> |
13811 | <td>SMF_METHODS</td> | | 13711 | <td>SMF_METHODS</td> |
13812 | <td>SMF_METHOD_SHELL</td> | | 13712 | <td>SMF_METHOD_SHELL</td> |
13813 | </tr> | | 13713 | </tr> |
13814 | <tr> | | 13714 | <tr> |
13815 | <td>SMF_METHOD_SRC</td> | | 13715 | <td>SMF_METHOD_SRC</td> |
13816 | <td>SMF_NAME</td> | | 13716 | <td>SMF_NAME</td> |
13817 | </tr> | | 13717 | </tr> |
13818 | <tr> | | 13718 | <tr> |
13819 | <td>SMF_PREFIX</td> | | 13719 | <td>SMF_PREFIX</td> |
13820 | <td>SMF_SRCDIR</td> | | 13720 | <td>SMF_SRCDIR</td> |
13821 | </tr> | | 13721 | </tr> |
13822 | <tr> | | 13722 | <tr> |
13823 | <td>SNIPROXY_GROUP</td> | | 13723 | <td>SNIPROXY_GROUP</td> |
13824 | <td>SNIPROXY_USER</td> | | 13724 | <td>SNIPROXY_USER</td> |
13825 | </tr> | | 13725 | </tr> |
13826 | <tr> | | 13726 | <tr> |
13827 | <td>SOURCE_BUFFSIZE</td> | | 13727 | <td>SOURCE_BUFFSIZE</td> |
13828 | <td>SPECIAL_PERMS</td> | | 13728 | <td>SPECIAL_PERMS</td> |
13829 | </tr> | | 13729 | </tr> |
13830 | <tr> | | 13730 | <tr> |
13831 | <td>SPECIFIC_PKGS</td> | | 13731 | <td>SPECIFIC_PKGS</td> |
13832 | <td>SSH_SUID</td> | | 13732 | <td>SSH_SUID</td> |
13833 | </tr> | | 13733 | </tr> |
13834 | <tr> | | 13734 | <tr> |
13835 | <td>SSP_SUPPORTED</td> | | 13735 | <td>SSP_SUPPORTED</td> |
13836 | <td>SSYNC_PAWD</td> | | 13736 | <td>SSYNC_PAWD</td> |
13837 | </tr> | | 13737 | </tr> |
13838 | <tr> | | 13738 | <tr> |
13839 | <td>STEP_MSG</td> | | 13739 | <td>STEP_MSG</td> |
13840 | <td>STRIP</td> | | 13740 | <td>STRIP</td> |
13841 | </tr> | | 13741 | </tr> |
13842 | <tr> | | 13742 | <tr> |
13843 | <td>STRIP_DBG</td> | | 13743 | <td>STRIP_DBG</td> |
13844 | <td>STRIP_DEBUG</td> | | 13744 | <td>STRIP_DEBUG</td> |
13845 | </tr> | | 13745 | </tr> |
13846 | <tr> | | 13746 | <tr> |
13847 | <td>STRIP_DEBUG_SUPPORTED</td> | | 13747 | <td>STRIP_DEBUG_SUPPORTED</td> |
13848 | <td>STRIP_FILES_SKIP</td> | | 13748 | <td>STRIP_FILES_SKIP</td> |
13849 | </tr> | | 13749 | </tr> |
13850 | <tr> | | 13750 | <tr> |
13851 | <td>SU</td> | | 13751 | <td>SU</td> |
13852 | <td>SUBDIR</td> | | 13752 | <td>SUBDIR</td> |
13853 | </tr> | | 13753 | </tr> |
13854 | <tr> | | 13754 | <tr> |
13855 | <td>SUBST</td> | | 13755 | <td>SUBST</td> |
13856 | <td>SUBST_CLASSES</td> | | 13756 | <td>SUBST_CLASSES</td> |
13857 | </tr> | | 13757 | </tr> |
13858 | <tr> | | 13758 | <tr> |
13859 | <td>SUBST_FILES</td> | | 13759 | <td>SUBST_FILES</td> |
13860 | <td>SUBST_FILTER_CMD</td> | | 13760 | <td>SUBST_FILTER_CMD</td> |
13861 | </tr> | | 13761 | </tr> |
13862 | <tr> | | 13762 | <tr> |
13863 | <td>SUBST_MESSAGE</td> | | 13763 | <td>SUBST_MESSAGE</td> |
13864 | <td>SUBST_NOOP_OK</td> | | 13764 | <td>SUBST_NOOP_OK</td> |
13865 | </tr> | | 13765 | </tr> |
13866 | <tr> | | 13766 | <tr> |
13867 | <td>SUBST_SED</td> | | 13767 | <td>SUBST_SED</td> |
13868 | <td>SUBST_SHOW_DIFF</td> | | 13768 | <td>SUBST_SHOW_DIFF</td> |
13869 | </tr> | | 13769 | </tr> |
13870 | <tr> | | 13770 | <tr> |
13871 | <td>SUBST_SKIP_TEXT_CHECK</td> | | 13771 | <td>SUBST_SKIP_TEXT_CHECK</td> |
13872 | <td>SUBST_STAGE</td> | | 13772 | <td>SUBST_STAGE</td> |
13873 | </tr> | | 13773 | </tr> |
13874 | <tr> | | 13774 | <tr> |
13875 | <td>SUBST_VARS</td> | | 13775 | <td>SUBST_VARS</td> |
13876 | <td>SUNWSPROBASE</td> | | 13776 | <td>SUNWSPROBASE</td> |
13877 | </tr> | | 13777 | </tr> |
13878 | <tr> | | 13778 | <tr> |
13879 | <td>SUSE_PREFER</td> | | 13779 | <td>SUSE_PREFER</td> |
13880 | <td>SU_CMD</td> | | 13780 | <td>SU_CMD</td> |
13881 | </tr> | | 13781 | </tr> |
13882 | <tr> | | 13782 | <tr> |
13883 | <td>SVN_EXTRACTDIR</td> | | | |
13884 | <td>SVN_REPO</td> | | | |
13885 | </tr> | | | |
13886 | <tr> | | | |
13887 | <td>SVN_REPOSITORIES</td> | | | |
13888 | <td>SVN_REVISION</td> | | | |
13889 | </tr> | | | |
13890 | <tr> | | | |
13891 | <td>SYSCONFBASE</td> | | 13783 | <td>SYSCONFBASE</td> |
13892 | <td>TARGET_ARCH</td> | | 13784 | <td>TARGET_ARCH</td> |
13893 | </tr> | | 13785 | </tr> |
13894 | <tr> | | 13786 | <tr> |
13895 | <td>TBL</td> | | 13787 | <td>TBL</td> |
13896 | <td>TERMCAP_TYPE</td> | | 13788 | <td>TERMCAP_TYPE</td> |
13897 | </tr> | | 13789 | </tr> |
13898 | <tr> | | 13790 | <tr> |
13899 | <td>TERMINFO_DEFAULT</td> | | 13791 | <td>TERMINFO_DEFAULT</td> |
13900 | <td>TERMINFO_TYPE</td> | | 13792 | <td>TERMINFO_TYPE</td> |
13901 | </tr> | | 13793 | </tr> |
13902 | <tr> | | 13794 | <tr> |
13903 | <td>TEST</td> | | 13795 | <td>TEST</td> |
13904 | <td>TEST_DEPENDS</td> | | 13796 | <td>TEST_DEPENDS</td> |
13905 | </tr> | | 13797 | </tr> |
13906 | <tr> | | 13798 | <tr> |
13907 | <td>TEST_DIRS</td> | | 13799 | <td>TEST_DIRS</td> |
13908 | <td>TEST_ENV</td> | | 13800 | <td>TEST_ENV</td> |
13909 | </tr> | | 13801 | </tr> |
13910 | <tr> | | 13802 | <tr> |
13911 | <td>TEST_ENV_SHELL</td> | | 13803 | <td>TEST_ENV_SHELL</td> |
13912 | <td>TEST_MAKE_CMD</td> | | 13804 | <td>TEST_MAKE_CMD</td> |
13913 | </tr> | | 13805 | </tr> |
13914 | <tr> | | 13806 | <tr> |
13915 | <td>TEST_MAKE_FLAGS</td> | | 13807 | <td>TEST_MAKE_FLAGS</td> |
13916 | <td>TEST_TARGET</td> | | 13808 | <td>TEST_TARGET</td> |
13917 | </tr> | | 13809 | </tr> |
13918 | <tr> | | 13810 | <tr> |
13919 | <td>TEXLIVE_IGNORE_PATTERNS</td> | | 13811 | <td>TEXLIVE_IGNORE_PATTERNS</td> |
13920 | <td>TEXLIVE_REV</td> | | 13812 | <td>TEXLIVE_REV</td> |
13921 | </tr> | | 13813 | </tr> |
13922 | <tr> | | 13814 | <tr> |
13923 | <td>TEXLIVE_UNVERSIONED</td> | | 13815 | <td>TEXLIVE_UNVERSIONED</td> |
13924 | <td>TEXMFSITE</td> | | 13816 | <td>TEXMFSITE</td> |
13925 | </tr> | | 13817 | </tr> |
13926 | <tr> | | 13818 | <tr> |
13927 | <td>TEX_FORMATS</td> | | 13819 | <td>TEX_FORMATS</td> |
13928 | <td>TEX_HYPHEN_DAT</td> | | 13820 | <td>TEX_HYPHEN_DAT</td> |
13929 | </tr> | | 13821 | </tr> |
13930 | <tr> | | 13822 | <tr> |
13931 | <td>TEX_HYPHEN_DEF</td> | | 13823 | <td>TEX_HYPHEN_DEF</td> |
13932 | <td>TEX_TEXMF_DIRS</td> | | 13824 | <td>TEX_TEXMF_DIRS</td> |
13933 | </tr> | | 13825 | </tr> |
13934 | <tr> | | 13826 | <tr> |
13935 | <td>THTTPD_LOG_FACILITY</td> | | 13827 | <td>THTTPD_LOG_FACILITY</td> |
13936 | <td>TINYDYN_USER</td> | | 13828 | <td>TINYDYN_USER</td> |
13937 | </tr> | | 13829 | </tr> |
13938 | <tr> | | 13830 | <tr> |
13939 | <td>TLSWRAPPER_CHROOT</td> | | 13831 | <td>TLSWRAPPER_CHROOT</td> |
13940 | <td>TO</td> | | 13832 | <td>TO</td> |
13941 | </tr> | | 13833 | </tr> |
13942 | <tr> | | 13834 | <tr> |
13943 | <td>TOOLS_ALIASES</td> | | 13835 | <td>TOOLS_ALIASES</td> |
13944 | <td>TOOLS_ALWAYS_WRAP</td> | | 13836 | <td>TOOLS_ALWAYS_WRAP</td> |
13945 | </tr> | | 13837 | </tr> |
13946 | <tr> | | 13838 | <tr> |
13947 | <td>TOOLS_ARGS</td> | | 13839 | <td>TOOLS_ARGS</td> |
13948 | <td>TOOLS_BROKEN</td> | | 13840 | <td>TOOLS_BROKEN</td> |
13949 | </tr> | | 13841 | </tr> |
13950 | <tr> | | 13842 | <tr> |
13951 | <td>TOOLS_CMD</td> | | 13843 | <td>TOOLS_CMD</td> |
13952 | <td>TOOLS_CMDLINE_SED</td> | | 13844 | <td>TOOLS_CMDLINE_SED</td> |
13953 | </tr> | | 13845 | </tr> |
13954 | <tr> | | 13846 | <tr> |
13955 | <td>TOOLS_CREATE</td> | | 13847 | <td>TOOLS_CREATE</td> |
13956 | <td>TOOLS_CROSS_DESTDIR</td> | | 13848 | <td>TOOLS_CROSS_DESTDIR</td> |
13957 | </tr> | | 13849 | </tr> |
13958 | <tr> | | 13850 | <tr> |
13959 | <td>TOOLS_DIR</td> | | 13851 | <td>TOOLS_DIR</td> |
13960 | <td>TOOLS_FAIL</td> | | 13852 | <td>TOOLS_FAIL</td> |
13961 | </tr> | | 13853 | </tr> |
13962 | <tr> | | 13854 | <tr> |
13963 | <td>TOOLS_GNU_MISSING</td> | | 13855 | <td>TOOLS_GNU_MISSING</td> |
13964 | <td>TOOLS_LDCONFIG</td> | | 13856 | <td>TOOLS_LDCONFIG</td> |
13965 | </tr> | | 13857 | </tr> |
13966 | <tr> | | 13858 | <tr> |
13967 | <td>TOOLS_NOOP</td> | | 13859 | <td>TOOLS_NOOP</td> |
13968 | <td>TOOLS_PATH</td> | | 13860 | <td>TOOLS_PATH</td> |
13969 | </tr> | | 13861 | </tr> |
13970 | <tr> | | 13862 | <tr> |
13971 | <td>TOOLS_SCRIPT</td> | | 13863 | <td>TOOLS_SCRIPT</td> |
13972 | <td>TOOLS_USE_CROSS_COMPILE</td> | | 13864 | <td>TOOLS_USE_CROSS_COMPILE</td> |
13973 | </tr> | | 13865 | </tr> |
13974 | <tr> | | 13866 | <tr> |
13975 | <td>TOOL_DEPENDS</td> | | 13867 | <td>TOOL_DEPENDS</td> |
13976 | <td>TTF_FONTDIR</td> | | | |
13977 | </tr> | | | |
13978 | <tr> | | | |
13979 | <td>TTF_FONTS_DIR</td> | | 13868 | <td>TTF_FONTS_DIR</td> |
13980 | <td>TYPE</td> | | | |
13981 | </tr> | | 13869 | </tr> |
13982 | <tr> | | 13870 | <tr> |
| | | 13871 | <td>TYPE</td> |
13983 | <td>UAC_REQD_EXECS</td> | | 13872 | <td>UAC_REQD_EXECS</td> |
13984 | <td>UCSPI_SSL_GROUP</td> | | | |
13985 | </tr> | | 13873 | </tr> |
13986 | <tr> | | 13874 | <tr> |
| | | 13875 | <td>UCSPI_SSL_GROUP</td> |
13987 | <td>UCSPI_SSL_USER</td> | | 13876 | <td>UCSPI_SSL_USER</td> |
13988 | <td>UNLIMIT_RESOURCES</td> | | | |
13989 | </tr> | | 13877 | </tr> |
13990 | <tr> | | 13878 | <tr> |
| | | 13879 | <td>UNLIMIT_RESOURCES</td> |
13991 | <td>UNPRIVILEGED</td> | | 13880 | <td>UNPRIVILEGED</td> |
13992 | <td>UNPRIVILEGED_GROUP</td> | | | |
13993 | </tr> | | 13881 | </tr> |
13994 | <tr> | | 13882 | <tr> |
| | | 13883 | <td>UNPRIVILEGED_GROUP</td> |
13995 | <td>UNPRIVILEGED_GROUPS</td> | | 13884 | <td>UNPRIVILEGED_GROUPS</td> |
13996 | <td>UNPRIVILEGED_USER</td> | | | |
13997 | </tr> | | 13885 | </tr> |
13998 | <tr> | | 13886 | <tr> |
| | | 13887 | <td>UNPRIVILEGED_USER</td> |
13999 | <td>UNWRAP_FILES</td> | | 13888 | <td>UNWRAP_FILES</td> |
14000 | <td>UNWRAP_PATTERNS</td> | | | |
14001 | </tr> | | 13889 | </tr> |
14002 | <tr> | | 13890 | <tr> |
| | | 13891 | <td>UNWRAP_PATTERNS</td> |
14003 | <td>UPDATE_GEMSPEC</td> | | 13892 | <td>UPDATE_GEMSPEC</td> |
14004 | <td>UPDATE_TARGET</td> | | | |
14005 | </tr> | | 13893 | </tr> |
14006 | <tr> | | 13894 | <tr> |
| | | 13895 | <td>UPDATE_TARGET</td> |
14007 | <td>URI</td> | | 13896 | <td>URI</td> |
14008 | <td>USERGROUP_PHASE</td> | | | |
14009 | </tr> | | 13897 | </tr> |
14010 | <tr> | | 13898 | <tr> |
| | | 13899 | <td>USERGROUP_PHASE</td> |
14011 | <td>USERPPP_GROUP</td> | | 13900 | <td>USERPPP_GROUP</td> |
14012 | <td>USER_SPECIFIC_PKGS</td> | | | |
14013 | </tr> | | 13901 | </tr> |
14014 | <tr> | | 13902 | <tr> |
| | | 13903 | <td>USER_SPECIFIC_PKGS</td> |
14015 | <td>USE_ABI_DEPENDS</td> | | 13904 | <td>USE_ABI_DEPENDS</td> |
14016 | <td>USE_APR</td> | | | |
14017 | </tr> | | 13905 | </tr> |
14018 | <tr> | | 13906 | <tr> |
| | | 13907 | <td>USE_APR</td> |
14019 | <td>USE_BSD_MAKEFILE</td> | | 13908 | <td>USE_BSD_MAKEFILE</td> |
14020 | <td>USE_BUILTIN</td> | | | |
14021 | </tr> | | 13909 | </tr> |
14022 | <tr> | | 13910 | <tr> |
| | | 13911 | <td>USE_BUILTIN</td> |
14023 | <td>USE_CROSS_COMPILE</td> | | 13912 | <td>USE_CROSS_COMPILE</td> |
14024 | <td>USE_CURSES</td> | | | |
14025 | </tr> | | 13913 | </tr> |
14026 | <tr> | | 13914 | <tr> |
| | | 13915 | <td>USE_CURSES</td> |
14027 | <td>USE_CWRAPPERS</td> | | 13916 | <td>USE_CWRAPPERS</td> |
14028 | <td>USE_DB185</td> | | | |
14029 | </tr> | | 13917 | </tr> |
14030 | <tr> | | 13918 | <tr> |
| | | 13919 | <td>USE_DB185</td> |
14031 | <td>USE_FEATURES</td> | | 13920 | <td>USE_FEATURES</td> |
14032 | <td>USE_GAMESGROUP</td> | | | |
14033 | </tr> | | 13921 | </tr> |
14034 | <tr> | | 13922 | <tr> |
| | | 13923 | <td>USE_GAMESGROUP</td> |
14035 | <td>USE_GCC_RUNTIME</td> | | 13924 | <td>USE_GCC_RUNTIME</td> |
14036 | <td>USE_IMAKE</td> | | | |
14037 | </tr> | | 13925 | </tr> |
14038 | <tr> | | 13926 | <tr> |
| | | 13927 | <td>USE_IMAKE</td> |
14039 | <td>USE_JAVA</td> | | 13928 | <td>USE_JAVA</td> |
14040 | <td>USE_JAVA2</td> | | | |
14041 | </tr> | | 13929 | </tr> |
14042 | <tr> | | 13930 | <tr> |
| | | 13931 | <td>USE_JAVA2</td> |
14043 | <td>USE_LANGUAGES</td> | | 13932 | <td>USE_LANGUAGES</td> |
14044 | <td>USE_LIBTOOL</td> | | | |
14045 | </tr> | | 13933 | </tr> |
14046 | <tr> | | 13934 | <tr> |
| | | 13935 | <td>USE_LIBTOOL</td> |
14047 | <td>USE_NATIVE_GCC</td> | | 13936 | <td>USE_NATIVE_GCC</td> |
14048 | <td>USE_NETBSD_REPO</td> | | | |
14049 | </tr> | | 13937 | </tr> |
14050 | <tr> | | 13938 | <tr> |
| | | 13939 | <td>USE_NETBSD_REPO</td> |
14051 | <td>USE_PKGSRC_GCC</td> | | 13940 | <td>USE_PKGSRC_GCC</td> |
14052 | <td>USE_PKGSRC_GCC_RUNTIME</td> | | | |
14053 | </tr> | | 13941 | </tr> |
14054 | <tr> | | 13942 | <tr> |
| | | 13943 | <td>USE_PKGSRC_GCC_RUNTIME</td> |
14055 | <td>USE_PKGTASKS</td> | | 13944 | <td>USE_PKGTASKS</td> |
14056 | <td>USE_PKG_ADMIN_DIGEST</td> | | | |
14057 | </tr> | | 13945 | </tr> |
14058 | <tr> | | 13946 | <tr> |
| | | 13947 | <td>USE_PKG_ADMIN_DIGEST</td> |
14059 | <td>USE_RUBY_EXTCONF</td> | | 13948 | <td>USE_RUBY_EXTCONF</td> |
14060 | <td>USE_RUBY_INSTALL</td> | | | |
14061 | </tr> | | 13949 | </tr> |
14062 | <tr> | | 13950 | <tr> |
| | | 13951 | <td>USE_RUBY_INSTALL</td> |
14063 | <td>USE_RUBY_SETUP</td> | | 13952 | <td>USE_RUBY_SETUP</td> |
14064 | <td>USE_RUBY_SETUP_PKG</td> | | | |
14065 | </tr> | | 13953 | </tr> |
14066 | <tr> | | 13954 | <tr> |
| | | 13955 | <td>USE_RUBY_SETUP_PKG</td> |
14067 | <td>USE_TOOLS</td> | | 13956 | <td>USE_TOOLS</td> |
14068 | <td>UUCP_GROUP</td> | | | |
14069 | </tr> | | 13957 | </tr> |
14070 | <tr> | | 13958 | <tr> |
| | | 13959 | <td>UUCP_GROUP</td> |
14071 | <td>UUCP_USER</td> | | 13960 | <td>UUCP_USER</td> |
14072 | <td>VARBASE</td> | | | |
14073 | </tr> | | 13961 | </tr> |
14074 | <tr> | | 13962 | <tr> |
| | | 13963 | <td>VARBASE</td> |
14075 | <td>VARNAME</td> | | 13964 | <td>VARNAME</td> |
14076 | <td>VIM_EXTRA_OPTS</td> | | | |
14077 | </tr> | | 13965 | </tr> |
14078 | <tr> | | 13966 | <tr> |
| | | 13967 | <td>VIM_EXTRA_OPTS</td> |
14079 | <td>WARNING_MSG</td> | | 13968 | <td>WARNING_MSG</td> |
14080 | <td>WCALC_CGIDIR</td> | | | |
14081 | </tr> | | 13969 | </tr> |
14082 | <tr> | | 13970 | <tr> |
| | | 13971 | <td>WCALC_CGIDIR</td> |
14083 | <td>WCALC_CGIPATH</td> | | 13972 | <td>WCALC_CGIPATH</td> |
14084 | <td>WCALC_HTMLDIR</td> | | | |
14085 | </tr> | | 13973 | </tr> |
14086 | <tr> | | 13974 | <tr> |
| | | 13975 | <td>WCALC_HTMLDIR</td> |
14087 | <td>WCALC_HTMLPATH</td> | | 13976 | <td>WCALC_HTMLPATH</td> |
14088 | <td>WDM_MANAGERS</td> | | | |
14089 | </tr> | | 13977 | </tr> |
14090 | <tr> | | 13978 | <tr> |
| | | 13979 | <td>WDM_MANAGERS</td> |
14091 | <td>WRAPPER_CC</td> | | 13980 | <td>WRAPPER_CC</td> |
14092 | <td>WRAPPER_REORDER_CMDS</td> | | | |
14093 | </tr> | | 13981 | </tr> |
14094 | <tr> | | 13982 | <tr> |
| | | 13983 | <td>WRAPPER_REORDER_CMDS</td> |
14095 | <td>WRKDIR</td> | | 13984 | <td>WRKDIR</td> |
14096 | <td>WRKDIR_BASENAME</td> | | | |
14097 | </tr> | | 13985 | </tr> |
14098 | <tr> | | 13986 | <tr> |
| | | 13987 | <td>WRKDIR_BASENAME</td> |
14099 | <td>WRKDIR_LOCKTYPE</td> | | 13988 | <td>WRKDIR_LOCKTYPE</td> |
14100 | <td>WRKLOG</td> | | | |
14101 | </tr> | | 13989 | </tr> |
14102 | <tr> | | 13990 | <tr> |
| | | 13991 | <td>WRKLOG</td> |
14103 | <td>WRKOBJDIR</td> | | 13992 | <td>WRKOBJDIR</td> |
14104 | <td>WRKSRC</td> | | | |
14105 | </tr> | | 13993 | </tr> |
14106 | <tr> | | 13994 | <tr> |
| | | 13995 | <td>WRKSRC</td> |
14107 | <td>X10_PORT</td> | | 13996 | <td>X10_PORT</td> |
14108 | <td>X11</td> | | | |
14109 | </tr> | | 13997 | </tr> |
14110 | <tr> | | 13998 | <tr> |
| | | 13999 | <td>X11</td> |
14111 | <td>X11BASE</td> | | 14000 | <td>X11BASE</td> |
14112 | <td>X11_PKGSRCDIR</td> | | | |
14113 | </tr> | | 14001 | </tr> |
14114 | <tr> | | 14002 | <tr> |
| | | 14003 | <td>X11_PKGSRCDIR</td> |
14115 | <td>X11_TYPE</td> | | 14004 | <td>X11_TYPE</td> |
14116 | <td>X509_CERTIFICATE</td> | | | |
14117 | </tr> | | 14005 | </tr> |
14118 | <tr> | | 14006 | <tr> |
| | | 14007 | <td>X509_CERTIFICATE</td> |
14119 | <td>X509_KEY</td> | | 14008 | <td>X509_KEY</td> |
14120 | <td>XAW_TYPE</td> | | | |
14121 | </tr> | | 14009 | </tr> |
14122 | <tr> | | 14010 | <tr> |
| | | 14011 | <td>XAW_TYPE</td> |
14123 | <td>XLOCK_DEFAULT_MODE</td> | | 14012 | <td>XLOCK_DEFAULT_MODE</td> |
14124 | <td>XMKMF</td> | | | |
14125 | </tr> | | 14013 | </tr> |
14126 | <tr> | | 14014 | <tr> |
| | | 14015 | <td>XMKMF</td> |
14127 | <td>XMKMF_FLAGS</td> | | 14016 | <td>XMKMF_FLAGS</td> |
14128 | <td>XXX</td> | | | |
14129 | </tr> | | 14017 | </tr> |
14130 | <tr> | | 14018 | <tr> |
14131 | <td>XXXX</td> | | 14019 | <td>XXX</td> |
14132 | <td>YES</td> | | 14020 | <td>YES</td> |
14133 | </tr> | | 14021 | </tr> |
14134 | <tr> | | 14022 | <tr> |
14135 | <td>ZSH_STATIC</td> | | 14023 | <td>ZSH_STATIC</td> |
14136 | <td>__stdc__</td> | | 14024 | <td>__stdc__</td> |
14137 | </tr> | | 14025 | </tr> |
14138 | <tr> | | 14026 | <tr> |
14139 | <td>_vargroups</td> | | 14027 | <td>_vargroups</td> |
14140 | <td>accept</td> | | 14028 | <td>accept</td> |
14141 | </tr> | | 14029 | </tr> |
14142 | <tr> | | 14030 | <tr> |
14143 | <td>acquire-localbase-lock</td> | | 14031 | <td>acquire-localbase-lock</td> |
14144 | <td>acquire-lock</td> | | 14032 | <td>acquire-lock</td> |
14145 | </tr> | | 14033 | </tr> |
14146 | <tr> | | 14034 | <tr> |
14147 | <td>add</td> | | 14035 | <td>add</td> |
14148 | <td>administrator</td> | | 14036 | <td>administrator</td> |
14149 | </tr> | | 14037 | </tr> |
14150 | <tr> | | 14038 | <tr> |
14151 | <td>alloca</td> | | 14039 | <td>alloca</td> |
14152 | <td>alternatives</td> | | 14040 | <td>alternatives</td> |
14153 | </tr> | | 14041 | </tr> |
14154 | <tr> | | 14042 | <tr> |
14155 | <td>aslr</td> | | 14043 | <td>aslr</td> |
14156 | <td>asprintf</td> | | 14044 | <td>asprintf</td> |
14157 | </tr> | | 14045 | </tr> |
14158 | <tr> | | 14046 | <tr> |
14159 | <td>atlas</td> | | 14047 | <td>atlas</td> |
14160 | <td>autoconf</td> | | 14048 | <td>autoconf</td> |
14161 | </tr> | | 14049 | </tr> |
14162 | <tr> | | 14050 | <tr> |
14163 | <td>automake</td> | | 14051 | <td>automake</td> |
14164 | <td>autoreconf</td> | | 14052 | <td>autoreconf</td> |
14165 | </tr> | | 14053 | </tr> |
14166 | <tr> | | 14054 | <tr> |
14167 | <td>awk</td> | | 14055 | <td>awk</td> |
14168 | <td>bash</td> | | 14056 | <td>bash</td> |
14169 | </tr> | | 14057 | </tr> |
14170 | <tr> | | 14058 | <tr> |
14171 | <td>big-endian</td> | | 14059 | <td>big-endian</td> |
14172 | <td>bin-install</td> | | 14060 | <td>bin-install</td> |
14173 | </tr> | | 14061 | </tr> |
14174 | <tr> | | 14062 | <tr> |
14175 | <td>bind</td> | | 14063 | <td>bind</td> |
14176 | <td>binpkg-list</td> | | 14064 | <td>binpkg-list</td> |
14177 | </tr> | | 14065 | </tr> |
14178 | <tr> | | 14066 | <tr> |
14179 | <td>blas</td> | | 14067 | <td>blas</td> |
14180 | <td>bootstrap-depends</td> | | 14068 | <td>bootstrap-depends</td> |
14181 | </tr> | | 14069 | </tr> |
14182 | <tr> | | 14070 | <tr> |
14183 | <td>broken</td> | | 14071 | <td>broken</td> |
14184 | <td>broken_on_platform</td> | | 14072 | <td>broken_on_platform</td> |
14185 | </tr> | | 14073 | </tr> |
14186 | <tr> | | 14074 | <tr> |
14187 | <td>bsd</td> | | 14075 | <td>bsd</td> |
14188 | <td>bsd.prog.mk</td> | | 14076 | <td>bsd.prog.mk</td> |
14189 | </tr> | | 14077 | </tr> |
14190 | <tr> | | 14078 | <tr> |
14191 | <td>build</td> | | 14079 | <td>build</td> |
14192 | <td>build-env</td> | | 14080 | <td>build-env</td> |
14193 | </tr> | | 14081 | </tr> |
14194 | <tr> | | 14082 | <tr> |
14195 | <td>buildlink-directories</td> | | 14083 | <td>buildlink-directories</td> |
14196 | <td>buildlink-oss-soundcard-h</td> | | 14084 | <td>buildlink-oss-soundcard-h</td> |
14197 | </tr> | | 14085 | </tr> |
14198 | <tr> | | 14086 | <tr> |
14199 | <td>c</td> | | 14087 | <td>c</td> |
14200 | <td>c++</td> | | 14088 | <td>c++</td> |
14201 | </tr> | | 14089 | </tr> |
14202 | <tr> | | 14090 | <tr> |
14203 | <td>ccache</td> | | 14091 | <td>ccache</td> |
14204 | <td>cce</td> | | 14092 | <td>cce</td> |
14205 | </tr> | | 14093 | </tr> |
14206 | <tr> | | 14094 | <tr> |
14207 | <td>cdefs</td> | | 14095 | <td>cdefs</td> |
14208 | <td>ceil</td> | | 14096 | <td>ceil</td> |
14209 | </tr> | | 14097 | </tr> |
14210 | <tr> | | 14098 | <tr> |
14211 | <td>changes</td> | | 14099 | <td>changes</td> |
14212 | <td>changes-entry</td> | | 14100 | <td>changes-entry</td> |
14213 | </tr> | | 14101 | </tr> |
14214 | <tr> | | 14102 | <tr> |
14215 | <td>changes-entry-noupdate</td> | | 14103 | <td>changes-entry-noupdate</td> |
14216 | <td>check</td> | | 14104 | <td>check</td> |
14217 | </tr> | | 14105 | </tr> |
14218 | <tr> | | 14106 | <tr> |
14219 | <td>check-clean</td> | | 14107 | <td>check-clean</td> |
14220 | <td>check-files</td> | | 14108 | <td>check-files</td> |
14221 | </tr> | | 14109 | </tr> |
14222 | <tr> | | 14110 | <tr> |
14223 | <td>check-files-clean</td> | | 14111 | <td>check-files-clean</td> |
14224 | <td>check-vulnerable</td> | | 14112 | <td>check-vulnerable</td> |
14225 | </tr> | | 14113 | </tr> |
14226 | <tr> | | 14114 | <tr> |
14227 | <td>checksum</td> | | 14115 | <td>checksum</td> |
14228 | <td>checksum-phase</td> | | 14116 | <td>checksum-phase</td> |
14229 | </tr> | | 14117 | </tr> |
14230 | <tr> | | 14118 | <tr> |
14231 | <td>clean</td> | | 14119 | <td>clean</td> |
14232 | <td>clean-depends</td> | | 14120 | <td>clean-depends</td> |
14233 | </tr> | | 14121 | </tr> |
14234 | <tr> | | 14122 | <tr> |
14235 | <td>cleandir</td> | | 14123 | <td>cleandir</td> |
14236 | <td>commit</td> | | 14124 | <td>commit</td> |
14237 | </tr> | | 14125 | </tr> |
14238 | <tr> | | 14126 | <tr> |
14239 | <td>commit-changes-entry</td> | | 14127 | <td>commit-changes-entry</td> |
14240 | <td>compact</td> | | 14128 | <td>compact</td> |
14241 | </tr> | | 14129 | </tr> |
14242 | <tr> | | 14130 | <tr> |
14243 | <td>compiler</td> | | 14131 | <td>compiler</td> |
14244 | <td>conf</td> | | 14132 | <td>conf</td> |
14245 | </tr> | | 14133 | </tr> |
14246 | <tr> | | 14134 | <tr> |
14247 | <td>config.guess</td> | | 14135 | <td>config.guess</td> |
14248 | <td>config.sub</td> | | 14136 | <td>config.sub</td> |
14249 | </tr> | | 14137 | </tr> |
14250 | <tr> | | 14138 | <tr> |
14251 | <td>configuration</td> | | 14139 | <td>configuration</td> |
14252 | <td>configure</td> | | 14140 | <td>configure</td> |
14253 | </tr> | | 14141 | </tr> |
14254 | <tr> | | 14142 | <tr> |
14255 | <td>configure-env</td> | | 14143 | <td>configure-env</td> |
14256 | <td>configure-help</td> | | 14144 | <td>configure-help</td> |
14257 | </tr> | | 14145 | </tr> |
14258 | <tr> | | 14146 | <tr> |
14259 | <td>configure_args</td> | | 14147 | <td>configure_args</td> |
14260 | <td>connect</td> | | 14148 | <td>connect</td> |
14261 | </tr> | | 14149 | </tr> |
14262 | <tr> | | 14150 | <tr> |
14263 | <td>cos</td> | | 14151 | <td>cos</td> |
14264 | <td>cputime</td> | | 14152 | <td>cputime</td> |
14265 | </tr> | | 14153 | </tr> |
14266 | <tr> | | 14154 | <tr> |
14267 | <td>create-usergroup</td> | | 14155 | <td>create-usergroup</td> |
14268 | <td>csh</td> | | 14156 | <td>csh</td> |
14269 | </tr> | | 14157 | </tr> |
14270 | <tr> | | 14158 | <tr> |
14271 | <td>ctf</td> | | 14159 | <td>ctf</td> |
14272 | <td>cvs</td> | | | |
14273 | </tr> | | | |
14274 | <tr> | | | |
14275 | <td>debug</td> | | 14160 | <td>debug</td> |
14276 | <td>declaration</td> | | | |
14277 | </tr> | | 14161 | </tr> |
14278 | <tr> | | 14162 | <tr> |
| | | 14163 | <td>declaration</td> |
14279 | <td>declare</td> | | 14164 | <td>declare</td> |
14280 | <td>defined</td> | | | |
14281 | </tr> | | 14165 | </tr> |
14282 | <tr> | | 14166 | <tr> |
| | | 14167 | <td>defined</td> |
14283 | <td>depend</td> | | 14168 | <td>depend</td> |
14284 | <td>dependencies</td> | | | |
14285 | </tr> | | 14169 | </tr> |
14286 | <tr> | | 14170 | <tr> |
| | | 14171 | <td>dependencies</td> |
14287 | <td>depends</td> | | 14172 | <td>depends</td> |
14288 | <td>depends-checksum</td> | | | |
14289 | </tr> | | 14173 | </tr> |
14290 | <tr> | | 14174 | <tr> |
| | | 14175 | <td>depends-checksum</td> |
14291 | <td>depends-fetch</td> | | 14176 | <td>depends-fetch</td> |
14292 | <td>deps</td> | | | |
14293 | </tr> | | 14177 | </tr> |
14294 | <tr> | | 14178 | <tr> |
| | | 14179 | <td>deps</td> |
14295 | <td>describe</td> | | 14180 | <td>describe</td> |
14296 | <td>destdir</td> | | | |
14297 | </tr> | | 14181 | </tr> |
14298 | <tr> | | 14182 | <tr> |
| | | 14183 | <td>destdir</td> |
14299 | <td>disable</td> | | 14184 | <td>disable</td> |
14300 | <td>distclean</td> | | | |
14301 | </tr> | | 14185 | </tr> |
14302 | <tr> | | 14186 | <tr> |
| | | 14187 | <td>distclean</td> |
14303 | <td>distinfo</td> | | 14188 | <td>distinfo</td> |
14304 | <td>dl</td> | | | |
14305 | </tr> | | 14189 | </tr> |
14306 | <tr> | | 14190 | <tr> |
| | | 14191 | <td>dl</td> |
14307 | <td>dlopen</td> | | 14192 | <td>dlopen</td> |
14308 | <td>do-buildlink</td> | | | |
14309 | </tr> | | 14193 | </tr> |
14310 | <tr> | | 14194 | <tr> |
| | | 14195 | <td>do-buildlink</td> |
14311 | <td>do-clean</td> | | 14196 | <td>do-clean</td> |
14312 | <td>do-configure</td> | | | |
14313 | </tr> | | 14197 | </tr> |
14314 | <tr> | | 14198 | <tr> |
| | | 14199 | <td>do-configure</td> |
14315 | <td>do-configure-post-hook</td> | | 14200 | <td>do-configure-post-hook</td> |
14316 | <td>do-extract</td> | | | |
14317 | </tr> | | 14201 | </tr> |
14318 | <tr> | | 14202 | <tr> |
| | | 14203 | <td>do-extract</td> |
14319 | <td>do-fetch</td> | | 14204 | <td>do-fetch</td> |
14320 | <td>do-install</td> | | | |
14321 | </tr> | | 14205 | </tr> |
14322 | <tr> | | 14206 | <tr> |
| | | 14207 | <td>do-install</td> |
14323 | <td>emul</td> | | 14208 | <td>emul</td> |
14324 | <td>emul-distinfo</td> | | | |
14325 | </tr> | | 14209 | </tr> |
14326 | <tr> | | 14210 | <tr> |
| | | 14211 | <td>emul-distinfo</td> |
14327 | <td>emul-fetch</td> | | 14212 | <td>emul-fetch</td> |
14328 | <td>emulation</td> | | | |
14329 | </tr> | | 14213 | </tr> |
14330 | <tr> | | 14214 | <tr> |
| | | 14215 | <td>emulation</td> |
14331 | <td>emulator</td> | | 14216 | <td>emulator</td> |
14332 | <td>enable</td> | | | |
14333 | </tr> | | 14217 | </tr> |
14334 | <tr> | | 14218 | <tr> |
| | | 14219 | <td>enable</td> |
14335 | <td>endian</td> | | 14220 | <td>endian</td> |
14336 | <td>endif</td> | | | |
14337 | </tr> | | 14221 | </tr> |
14338 | <tr> | | 14222 | <tr> |
14339 | <td>enomem</td> | | 14223 | <td>enomem</td> |
14340 | <td>ensurepip</td> | | 14224 | <td>ensurepip</td> |
14341 | </tr> | | 14225 | </tr> |
14342 | <tr> | | 14226 | <tr> |
14343 | <td>err</td> | | 14227 | <td>err</td> |
14344 | <td>errx</td> | | 14228 | <td>errx</td> |
14345 | </tr> | | 14229 | </tr> |
14346 | <tr> | | 14230 | <tr> |
14347 | <td>etc</td> | | 14231 | <td>etc</td> |
14348 | <td>exp</td> | | 14232 | <td>exp</td> |
14349 | </tr> | | 14233 | </tr> |
14350 | <tr> | | 14234 | <tr> |
14351 | <td>extract-rpm</td> | | 14235 | <td>extract-rpm</td> |
14352 | <td>fabs</td> | | 14236 | <td>fabs</td> |
14353 | </tr> | | 14237 | </tr> |
14354 | <tr> | | 14238 | <tr> |
14355 | <td>feature</td> | | 14239 | <td>feature</td> |
14356 | <td>features</td> | | 14240 | <td>features</td> |
14357 | </tr> | | 14241 | </tr> |
14358 | <tr> | | 14242 | <tr> |
14359 | <td>fetch</td> | | 14243 | <td>fetch</td> |
14360 | <td>fetch-list</td> | | 14244 | <td>fetch-list</td> |
14361 | </tr> | | 14245 | </tr> |
14362 | <tr> | | 14246 | <tr> |
14363 | <td>follows</td> | | 14247 | <td>follows</td> |
14364 | <td>forbids</td> | | 14248 | <td>forbids</td> |
14365 | </tr> | | 14249 | </tr> |
14366 | <tr> | | 14250 | <tr> |
14367 | <td>form</td> | | 14251 | <td>form</td> |
14368 | <td>format</td> | | 14252 | <td>format</td> |
14369 | </tr> | | 14253 | </tr> |
14370 | <tr> | | 14254 | <tr> |
14371 | <td>fortify</td> | | 14255 | <td>fortify</td> |
14372 | <td>fortify_source</td> | | 14256 | <td>fortify_source</td> |
14373 | </tr> | | 14257 | </tr> |
14374 | <tr> | | 14258 | <tr> |
14375 | <td>fossil</td> | | | |
14376 | <td>friend</td> | | 14259 | <td>friend</td> |
14377 | </tr> | | | |
14378 | <tr> | | | |
14379 | <td>fts</td> | | 14260 | <td>fts</td> |
14380 | <td>fts_close</td> | | | |
14381 | </tr> | | 14261 | </tr> |
14382 | <tr> | | 14262 | <tr> |
| | | 14263 | <td>fts_close</td> |
14383 | <td>fts_open</td> | | 14264 | <td>fts_open</td> |
14384 | <td>fts_read</td> | | | |
14385 | </tr> | | 14265 | </tr> |
14386 | <tr> | | 14266 | <tr> |
| | | 14267 | <td>fts_read</td> |
14387 | <td>fts_set</td> | | 14268 | <td>fts_set</td> |
14388 | <td>gcc</td> | | | |
14389 | </tr> | | 14269 | </tr> |
14390 | <tr> | | 14270 | <tr> |
| | | 14271 | <td>gcc</td> |
14391 | <td>gethostbyaddr</td> | | 14272 | <td>gethostbyaddr</td> |
14392 | <td>gethostbyname</td> | | | |
14393 | </tr> | | 14273 | </tr> |
14394 | <tr> | | 14274 | <tr> |
| | | 14275 | <td>gethostbyname</td> |
14395 | <td>gethostbyname2</td> | | 14276 | <td>gethostbyname2</td> |
14396 | <td>getopt_long</td> | | | |
14397 | </tr> | | 14277 | </tr> |
14398 | <tr> | | 14278 | <tr> |
| | | 14279 | <td>getopt_long</td> |
14399 | <td>getprogname</td> | | 14280 | <td>getprogname</td> |
14400 | <td>getservbyname</td> | | | |
14401 | </tr> | | 14281 | </tr> |
14402 | <tr> | | 14282 | <tr> |
| | | 14283 | <td>getservbyname</td> |
14403 | <td>getservbyport</td> | | 14284 | <td>getservbyport</td> |
14404 | <td>getservent</td> | | | |
14405 | </tr> | | 14285 | </tr> |
14406 | <tr> | | 14286 | <tr> |
| | | 14287 | <td>getservent</td> |
14407 | <td>gettext</td> | | 14288 | <td>gettext</td> |
14408 | <td>git</td> | | | |
14409 | </tr> | | 14289 | </tr> |
14410 | <tr> | | 14290 | <tr> |
14411 | <td>github</td> | | 14291 | <td>github</td> |
14412 | <td>gitlab</td> | | 14292 | <td>gitlab</td> |
14413 | </tr> | | 14293 | </tr> |
14414 | <tr> | | 14294 | <tr> |
14415 | <td>glob</td> | | 14295 | <td>glob</td> |
14416 | <td>gnu</td> | | 14296 | <td>gnu</td> |
14417 | </tr> | | 14297 | </tr> |
14418 | <tr> | | 14298 | <tr> |
14419 | <td>gnu_configure_strict</td> | | 14299 | <td>gnu_configure_strict</td> |
14420 | <td>go</td> | | 14300 | <td>go</td> |
14421 | </tr> | | 14301 | </tr> |
14422 | <tr> | | 14302 | <tr> |
14423 | <td>go-deps</td> | | 14303 | <td>go-deps</td> |
14424 | <td>golang</td> | | 14304 | <td>golang</td> |
14425 | </tr> | | 14305 | </tr> |
14426 | <tr> | | 14306 | <tr> |
14427 | <td>guess-license</td> | | 14307 | <td>guess-license</td> |
14428 | <td>hashbang</td> | | 14308 | <td>hashbang</td> |
14429 | </tr> | | 14309 | </tr> |
14430 | <tr> | | 14310 | <tr> |
14431 | <td>heimdal</td> | | 14311 | <td>heimdal</td> |
14432 | <td>help</td> | | 14312 | <td>help</td> |
14433 | </tr> | | 14313 | </tr> |
14434 | <tr> | | 14314 | <tr> |
14435 | <td>hg</td> | | | |
14436 | <td>imake</td> | | 14315 | <td>imake</td> |
14437 | </tr> | | | |
14438 | <tr> | | | |
14439 | <td>increment</td> | | 14316 | <td>increment</td> |
14440 | <td>indirect</td> | | | |
14441 | </tr> | | 14317 | </tr> |
14442 | <tr> | | 14318 | <tr> |
| | | 14319 | <td>indirect</td> |
14443 | <td>inet_aton</td> | | 14320 | <td>inet_aton</td> |
14444 | <td>interp</td> | | | |
14445 | </tr> | | 14321 | </tr> |
14446 | <tr> | | 14322 | <tr> |
| | | 14323 | <td>interp</td> |
14447 | <td>interpreter</td> | | 14324 | <td>interpreter</td> |
14448 | <td>intl</td> | | | |
14449 | </tr> | | 14325 | </tr> |
14450 | <tr> | | 14326 | <tr> |
| | | 14327 | <td>intl</td> |
14451 | <td>ip4</td> | | 14328 | <td>ip4</td> |
14452 | <td>ip6</td> | | | |
14453 | </tr> | | 14329 | </tr> |
14454 | <tr> | | 14330 | <tr> |
| | | 14331 | <td>ip6</td> |
14455 | <td>ipv4</td> | | 14332 | <td>ipv4</td> |
14456 | <td>ipv6</td> | | | |
14457 | </tr> | | 14333 | </tr> |
14458 | <tr> | | 14334 | <tr> |
| | | 14335 | <td>ipv6</td> |
14459 | <td>iso</td> | | 14336 | <td>iso</td> |
14460 | <td>kerberos</td> | | | |
14461 | </tr> | | 14337 | </tr> |
14462 | <tr> | | 14338 | <tr> |
| | | 14339 | <td>kerberos</td> |
14463 | <td>krb</td> | | 14340 | <td>krb</td> |
14464 | <td>krb5</td> | | | |
14465 | </tr> | | 14341 | </tr> |
14466 | <tr> | | 14342 | <tr> |
| | | 14343 | <td>krb5</td> |
14467 | <td>ksh</td> | | 14344 | <td>ksh</td> |
14468 | <td>lapack</td> | | | |
14469 | </tr> | | 14345 | </tr> |
14470 | <tr> | | 14346 | <tr> |
| | | 14347 | <td>lapack</td> |
14471 | <td>latex</td> | | 14348 | <td>latex</td> |
14472 | <td>libintl_bindtextdomain</td> | | | |
14473 | </tr> | | 14349 | </tr> |
14474 | <tr> | | 14350 | <tr> |
| | | 14351 | <td>libintl_bindtextdomain</td> |
14475 | <td>libintl_gettext</td> | | 14352 | <td>libintl_gettext</td> |
14476 | <td>libintl_textdomain</td> | | | |
14477 | </tr> | | 14353 | </tr> |
14478 | <tr> | | 14354 | <tr> |
| | | 14355 | <td>libintl_textdomain</td> |
14479 | <td>libnbcompat</td> | | 14356 | <td>libnbcompat</td> |
14480 | <td>libs</td> | | | |
14481 | </tr> | | 14357 | </tr> |
14482 | <tr> | | 14358 | <tr> |
| | | 14359 | <td>libs</td> |
14483 | <td>libtool</td> | | 14360 | <td>libtool</td> |
14484 | <td>licence</td> | | | |
14485 | </tr> | | 14361 | </tr> |
14486 | <tr> | | 14362 | <tr> |
| | | 14363 | <td>licence</td> |
14487 | <td>license</td> | | 14364 | <td>license</td> |
14488 | <td>lintl</td> | | | |
14489 | </tr> | | 14365 | </tr> |
14490 | <tr> | | 14366 | <tr> |
| | | 14367 | <td>lintl</td> |
14491 | <td>little-endian</td> | | 14368 | <td>little-endian</td> |
14492 | <td>lock</td> | | | |
14493 | </tr> | | 14369 | </tr> |
14494 | <tr> | | 14370 | <tr> |
| | | 14371 | <td>lock</td> |
14495 | <td>locking</td> | | 14372 | <td>locking</td> |
14496 | <td>lua</td> | | | |
14497 | </tr> | | 14373 | </tr> |
14498 | <tr> | | 14374 | <tr> |
| | | 14375 | <td>lua</td> |
14499 | <td>lvalue</td> | | 14376 | <td>lvalue</td> |
14500 | <td>make</td> | | | |
14501 | </tr> | | 14377 | </tr> |
14502 | <tr> | | 14378 | <tr> |
| | | 14379 | <td>make</td> |
14503 | <td>makesum</td> | | 14380 | <td>makesum</td> |
14504 | <td>memory</td> | | | |
14505 | </tr> | | 14381 | </tr> |
14506 | <tr> | | 14382 | <tr> |
14507 | <td>mercurial</td> | | 14383 | <td>memory</td> |
14508 | <td>meta</td> | | 14384 | <td>meta</td> |
14509 | </tr> | | 14385 | </tr> |
14510 | <tr> | | 14386 | <tr> |
14511 | <td>meta-package</td> | | 14387 | <td>meta-package</td> |
14512 | <td>meta_package</td> | | 14388 | <td>meta_package</td> |
14513 | </tr> | | 14389 | </tr> |
14514 | <tr> | | 14390 | <tr> |
14515 | <td>mit-krb5</td> | | 14391 | <td>mit-krb5</td> |
14516 | <td>mk.conf</td> | | 14392 | <td>mk.conf</td> |
14517 | </tr> | | 14393 | </tr> |
14518 | <tr> | | 14394 | <tr> |
14519 | <td>mkl</td> | | 14395 | <td>mkl</td> |
14520 | <td>mount</td> | | 14396 | <td>mount</td> |
14521 | </tr> | | 14397 | </tr> |
14522 | <tr> | | 14398 | <tr> |
14523 | <td>mprotect</td> | | 14399 | <td>mprotect</td> |
14524 | <td>mremap</td> | | 14400 | <td>mremap</td> |
14525 | </tr> | | 14401 | </tr> |
14526 | <tr> | | 14402 | <tr> |
14527 | <td>nb</td> | | 14403 | <td>nb</td> |
14528 | <td>nbcompat</td> | | 14404 | <td>nbcompat</td> |
14529 | </tr> | | 14405 | </tr> |
14530 | <tr> | | 14406 | <tr> |
14531 | <td>netlib</td> | | 14407 | <td>netlib</td> |
14532 | <td>node</td> | | 14408 | <td>node</td> |
14533 | </tr> | | 14409 | </tr> |
14534 | <tr> | | 14410 | <tr> |
14535 | <td>node.js</td> | | 14411 | <td>node.js</td> |
14536 | <td>nodejs</td> | | 14412 | <td>nodejs</td> |
14537 | </tr> | | 14413 | </tr> |
14538 | <tr> | | 14414 | <tr> |
14539 | <td>obstack</td> | | 14415 | <td>obstack</td> |
14540 | <td>obstack_ptr_grow</td> | | 14416 | <td>obstack_ptr_grow</td> |
14541 | </tr> | | 14417 | </tr> |
14542 | <tr> | | 14418 | <tr> |
14543 | <td>occurs</td> | | 14419 | <td>occurs</td> |
14544 | <td>only</td> | | 14420 | <td>only</td> |
14545 | </tr> | | 14421 | </tr> |
14546 | <tr> | | 14422 | <tr> |
14547 | <td>openblas</td> | | 14423 | <td>openblas</td> |
14548 | <td>options</td> | | 14424 | <td>options</td> |
14549 | </tr> | | 14425 | </tr> |
14550 | <tr> | | 14426 | <tr> |
14551 | <td>options.mk</td> | | 14427 | <td>options.mk</td> |
14552 | <td>order</td> | | 14428 | <td>order</td> |
14553 | </tr> | | 14429 | </tr> |
14554 | <tr> | | 14430 | <tr> |
14555 | <td>override</td> | | 14431 | <td>override</td> |
14556 | <td>override-intltool</td> | | 14432 | <td>override-intltool</td> |
14557 | </tr> | | 14433 | </tr> |
14558 | <tr> | | 14434 | <tr> |
14559 | <td>override-message-intltool</td> | | 14435 | <td>override-message-intltool</td> |
14560 | <td>package</td> | | 14436 | <td>package</td> |
14561 | </tr> | | 14437 | </tr> |
14562 | <tr> | | 14438 | <tr> |
14563 | <td>parallel</td> | | 14439 | <td>parallel</td> |
14564 | <td>path</td> | | 14440 | <td>path</td> |
14565 | </tr> | | 14441 | </tr> |
14566 | <tr> | | 14442 | <tr> |
14567 | <td>pax</td> | | 14443 | <td>pax</td> |
14568 | <td>paxctl</td> | | 14444 | <td>paxctl</td> |
14569 | </tr> | | 14445 | </tr> |
14570 | <tr> | | 14446 | <tr> |
14571 | <td>pbulk-index</td> | | 14447 | <td>pbulk-index</td> |
14572 | <td>pc</td> | | 14448 | <td>pc</td> |
14573 | </tr> | | 14449 | </tr> |
14574 | <tr> | | 14450 | <tr> |
14575 | <td>perl</td> | | 14451 | <td>perl</td> |
14576 | <td>perl5</td> | | 14452 | <td>perl5</td> |
14577 | </tr> | | 14453 | </tr> |
14578 | <tr> | | 14454 | <tr> |
14579 | <td>perms</td> | | 14455 | <td>perms</td> |
14580 | <td>php</td> | | 14456 | <td>php</td> |
14581 | </tr> | | 14457 | </tr> |
14582 | <tr> | | 14458 | <tr> |
14583 | <td>pkg-build-options</td> | | 14459 | <td>pkg-build-options</td> |
14584 | <td>pkg-config</td> | | 14460 | <td>pkg-config</td> |
14585 | </tr> | | 14461 | </tr> |
14586 | <tr> | | 14462 | <tr> |
14587 | <td>pkg_build_options</td> | | 14463 | <td>pkg_build_options</td> |
14588 | <td>platform</td> | | 14464 | <td>platform</td> |
14589 | </tr> | | 14465 | </tr> |
14590 | <tr> | | 14466 | <tr> |
14591 | <td>plist</td> | | 14467 | <td>plist</td> |
14592 | <td>post-extract</td> | | 14468 | <td>post-extract</td> |
14593 | </tr> | | 14469 | </tr> |
14594 | <tr> | | 14470 | <tr> |
14595 | <td>post-fetch</td> | | 14471 | <td>post-fetch</td> |
14596 | <td>post-wrapper</td> | | 14472 | <td>post-wrapper</td> |
14597 | </tr> | | 14473 | </tr> |
14598 | <tr> | | 14474 | <tr> |
14599 | <td>pre-build-checks-hook</td> | | 14475 | <td>pre-build-checks-hook</td> |
14600 | <td>pre-configure</td> | | 14476 | <td>pre-configure</td> |
14601 | </tr> | | 14477 | </tr> |
14602 | <tr> | | 14478 | <tr> |
14603 | <td>pre-configure-checks-hook</td> | | 14479 | <td>pre-configure-checks-hook</td> |
14604 | <td>pre-extract</td> | | 14480 | <td>pre-extract</td> |
14605 | </tr> | | 14481 | </tr> |
14606 | <tr> | | 14482 | <tr> |
14607 | <td>pre-fetch</td> | | 14483 | <td>pre-fetch</td> |
14608 | <td>print-go-deps</td> | | 14484 | <td>print-go-deps</td> |
14609 | </tr> | | 14485 | </tr> |
14610 | <tr> | | 14486 | <tr> |
14611 | <td>print-plist</td> | | 14487 | <td>print-plist</td> |
14612 | <td>print-summary-data</td> | | 14488 | <td>print-summary-data</td> |
14613 | </tr> | | 14489 | </tr> |
14614 | <tr> | | 14490 | <tr> |
14615 | <td>privileged-install-hook</td> | | 14491 | <td>privileged-install-hook</td> |
14616 | <td>pypi</td> | | 14492 | <td>pypi</td> |
14617 | </tr> | | 14493 | </tr> |
14618 | <tr> | | 14494 | <tr> |
14619 | <td>python</td> | | 14495 | <td>python</td> |
14620 | <td>r</td> | | 14496 | <td>r</td> |
14621 | </tr> | | 14497 | </tr> |
14622 | <tr> | | 14498 | <tr> |
14623 | <td>readme-all</td> | | 14499 | <td>readme-all</td> |
14624 | <td>recursive</td> | | 14500 | <td>recursive</td> |
14625 | </tr> | | 14501 | </tr> |
14626 | <tr> | | 14502 | <tr> |
14627 | <td>recv</td> | | 14503 | <td>recv</td> |
14628 | <td>recvfrom</td> | | 14504 | <td>recvfrom</td> |
14629 | </tr> | | 14505 | </tr> |
14630 | <tr> | | 14506 | <tr> |
14631 | <td>regcomp</td> | | 14507 | <td>regcomp</td> |
14632 | <td>release-localbase-lock</td> | | 14508 | <td>release-localbase-lock</td> |
14633 | </tr> | | 14509 | </tr> |
14634 | <tr> | | 14510 | <tr> |
14635 | <td>release-lock</td> | | 14511 | <td>release-lock</td> |
14636 | <td>relro</td> | | 14512 | <td>relro</td> |
14637 | </tr> | | 14513 | </tr> |
14638 | <tr> | | 14514 | <tr> |
14639 | <td>rename</td> | | 14515 | <td>rename</td> |
14640 | <td>reorder</td> | | 14516 | <td>reorder</td> |
14641 | </tr> | | 14517 | </tr> |
14642 | <tr> | | 14518 | <tr> |
14643 | <td>replace</td> | | 14519 | <td>replace</td> |
14644 | <td>replace_interpreter</td> | | 14520 | <td>replace_interpreter</td> |
14645 | </tr> | | 14521 | </tr> |
14646 | <tr> | | 14522 | <tr> |
14647 | <td>reproducible</td> | | 14523 | <td>reproducible</td> |
14648 | <td>resolv</td> | | 14524 | <td>resolv</td> |
14649 | </tr> | | 14525 | </tr> |
14650 | <tr> | | 14526 | <tr> |
14651 | <td>root</td> | | 14527 | <td>root</td> |
14652 | <td>ruby</td> | | 14528 | <td>ruby</td> |
14653 | </tr> | | 14529 | </tr> |
14654 | <tr> | | 14530 | <tr> |
14655 | <td>send</td> | | 14531 | <td>send</td> |
14656 | <td>sendfile</td> | | 14532 | <td>sendfile</td> |
14657 | </tr> | | 14533 | </tr> |
14658 | <tr> | | 14534 | <tr> |
14659 | <td>sendto</td> | | 14535 | <td>sendto</td> |
14660 | <td>setenv</td> | | 14536 | <td>setenv</td> |
14661 | </tr> | | 14537 | </tr> |
14662 | <tr> | | 14538 | <tr> |
14663 | <td>setgid</td> | | 14539 | <td>setgid</td> |
14664 | <td>setprogname</td> | | 14540 | <td>setprogname</td> |
14665 | </tr> | | 14541 | </tr> |
14666 | <tr> | | 14542 | <tr> |
14667 | <td>setuid</td> | | 14543 | <td>setuid</td> |
14668 | <td>sh</td> | | 14544 | <td>sh</td> |
14669 | </tr> | | 14545 | </tr> |
14670 | <tr> | | 14546 | <tr> |
14671 | <td>shebang</td> | | 14547 | <td>shebang</td> |
14672 | <td>show</td> | | 14548 | <td>show</td> |
14673 | </tr> | | 14549 | </tr> |
14674 | <tr> | | 14550 | <tr> |
14675 | <td>show-all</td> | | 14551 | <td>show-all</td> |
14676 | <td>show-build-defs</td> | | 14552 | <td>show-build-defs</td> |
14677 | </tr> | | 14553 | </tr> |
14678 | <tr> | | 14554 | <tr> |
14679 | <td>show-depends</td> | | 14555 | <td>show-depends</td> |
14680 | <td>show-depends-dirs</td> | | 14556 | <td>show-depends-dirs</td> |
14681 | </tr> | | 14557 | </tr> |
14682 | <tr> | | 14558 | <tr> |
14683 | <td>show-depends-pkgpaths</td> | | 14559 | <td>show-depends-pkgpaths</td> |
14684 | <td>show-depends-recursive</td> | | 14560 | <td>show-depends-recursive</td> |
14685 | </tr> | | 14561 | </tr> |
14686 | <tr> | | 14562 | <tr> |
14687 | <td>show-deps</td> | | 14563 | <td>show-deps</td> |
14688 | <td>show-distfiles</td> | | 14564 | <td>show-distfiles</td> |
14689 | </tr> | | 14565 | </tr> |
14690 | <tr> | | 14566 | <tr> |
14691 | <td>show-downlevel</td> | | 14567 | <td>show-downlevel</td> |
14692 | <td>show-subdir-var</td> | | 14568 | <td>show-subdir-var</td> |
14693 | </tr> | | 14569 | </tr> |
14694 | <tr> | | 14570 | <tr> |
14695 | <td>show-tools</td> | | 14571 | <td>show-tools</td> |
14696 | <td>show-var</td> | | 14572 | <td>show-var</td> |
14697 | </tr> | | 14573 | </tr> |
14698 | <tr> | | 14574 | <tr> |
14699 | <td>show-vars</td> | | 14575 | <td>show-vars</td> |
14700 | <td>snprintf</td> | | 14576 | <td>snprintf</td> |
14701 | </tr> | | 14577 | </tr> |
14702 | <tr> | | 14578 | <tr> |
14703 | <td>socket</td> | | 14579 | <td>socket</td> |
14704 | <td>ssp</td> | | 14580 | <td>ssp</td> |
14705 | </tr> | | 14581 | </tr> |
14706 | <tr> | | 14582 | <tr> |
14707 | <td>st_mode</td> | | 14583 | <td>st_mode</td> |
14708 | <td>stage-install</td> | | 14584 | <td>stage-install</td> |
14709 | </tr> | | 14585 | </tr> |
14710 | <tr> | | 14586 | <tr> |
14711 | <td>strcasestr</td> | | 14587 | <td>strcasestr</td> |
14712 | <td>strict</td> | | 14588 | <td>strict</td> |
14713 | </tr> | | 14589 | </tr> |
14714 | <tr> | | 14590 | <tr> |
14715 | <td>strip</td> | | 14591 | <td>strip</td> |
14716 | <td>strndup</td> | | 14592 | <td>strndup</td> |
14717 | </tr> | | 14593 | </tr> |
14718 | <tr> | | 14594 | <tr> |
14719 | <td>strnlen</td> | | 14595 | <td>strnlen</td> |
14720 | <td>strsep</td> | | 14596 | <td>strsep</td> |
14721 | </tr> | | 14597 | </tr> |
14722 | <tr> | | 14598 | <tr> |
14723 | <td>subst</td> | | 14599 | <td>subst</td> |
14724 | <td>substitutions</td> | | 14600 | <td>substitutions</td> |
14725 | </tr> | | 14601 | </tr> |
14726 | <tr> | | 14602 | <tr> |
14727 | <td>subversion</td> | | | |
14728 | <td>sun</td> | | 14603 | <td>sun</td> |
14729 | </tr> | | | |
14730 | <tr> | | | |
14731 | <td>sunpro</td> | | 14604 | <td>sunpro</td> |
14732 | <td>sunwspro</td> | | | |
14733 | </tr> | | 14605 | </tr> |
14734 | <tr> | | 14606 | <tr> |
14735 | <td>svn</td> | | 14607 | <td>sunwspro</td> |
14736 | <td>symlink</td> | | 14608 | <td>symlink</td> |
14737 | </tr> | | 14609 | </tr> |
14738 | <tr> | | 14610 | <tr> |
14739 | <td>test</td> | | 14611 | <td>test</td> |
14740 | <td>test-env</td> | | 14612 | <td>test-env</td> |
14741 | </tr> | | 14613 | </tr> |
14742 | <tr> | | 14614 | <tr> |
14743 | <td>tex</td> | | 14615 | <td>tex</td> |
14744 | <td>texlive</td> | | 14616 | <td>texlive</td> |
14745 | </tr> | | 14617 | </tr> |
14746 | <tr> | | 14618 | <tr> |
14747 | <td>tmp</td> | | 14619 | <td>tmp</td> |
14748 | <td>tool</td> | | 14620 | <td>tool</td> |
14749 | </tr> | | 14621 | </tr> |
14750 | <tr> | | 14622 | <tr> |
14751 | <td>tools</td> | | 14623 | <td>tools</td> |
14752 | <td>tools-libtool-m4-override</td> | | 14624 | <td>tools-libtool-m4-override</td> |
14753 | </tr> | | 14625 | </tr> |
14754 | <tr> | | 14626 | <tr> |
14755 | <td>transitive</td> | | 14627 | <td>transitive</td> |
14756 | <td>type</td> | | 14628 | <td>type</td> |
14757 | </tr> | | 14629 | </tr> |
14758 | <tr> | | 14630 | <tr> |
14759 | <td>ulimit</td> | | 14631 | <td>ulimit</td> |
14760 | <td>undefined</td> | | 14632 | <td>undefined</td> |
14761 | </tr> | | 14633 | </tr> |
14762 | <tr> | | 14634 | <tr> |
14763 | <td>undo-replace</td> | | 14635 | <td>undo-replace</td> |
14764 | <td>unlimit</td> | | 14636 | <td>unlimit</td> |
14765 | </tr> | | 14637 | </tr> |
14766 | <tr> | | 14638 | <tr> |
14767 | <td>unprivileged</td> | | 14639 | <td>unprivileged</td> |
14768 | <td>unprivileged-install-hook</td> | | 14640 | <td>unprivileged-install-hook</td> |
14769 | </tr> | | 14641 | </tr> |
14770 | <tr> | | 14642 | <tr> |
14771 | <td>unstripped</td> | | 14643 | <td>unstripped</td> |
14772 | <td>update</td> | | 14644 | <td>update</td> |
14773 | </tr> | | 14645 | </tr> |
14774 | <tr> | | 14646 | <tr> |
14775 | <td>upload</td> | | 14647 | <td>upload</td> |
14776 | <td>upload-distfiles</td> | | 14648 | <td>upload-distfiles</td> |
14777 | </tr> | | 14649 | </tr> |
14778 | <tr> | | 14650 | <tr> |
14779 | <td>use_tools</td> | | 14651 | <td>use_tools</td> |
14780 | <td>user</td> | | 14652 | <td>user</td> |
14781 | </tr> | | 14653 | </tr> |
14782 | <tr> | | 14654 | <tr> |
14783 | <td>utimes</td> | | 14655 | <td>utimes</td> |
14784 | <td>vasprintf</td> | | 14656 | <td>vasprintf</td> |
14785 | </tr> | | 14657 | </tr> |
14786 | <tr> | | 14658 | <tr> |
14787 | <td>verbose</td> | | 14659 | <td>verbose</td> |
14788 | <td>vsnprintf</td> | | 14660 | <td>vsnprintf</td> |
14789 | </tr> | | 14661 | </tr> |
14790 | <tr> | | 14662 | <tr> |
14791 | <td>warn</td> | | 14663 | <td>warn</td> |
14792 | <td>warning</td> | | 14664 | <td>warning</td> |
14793 | </tr> | | 14665 | </tr> |
14794 | <tr> | | 14666 | <tr> |
14795 | <td>warnings</td> | | 14667 | <td>warnings</td> |
14796 | <td>warnx</td> | | 14668 | <td>warnx</td> |
14797 | </tr> | | 14669 | </tr> |
14798 | <tr> | | 14670 | <tr> |
14799 | <td>wattr_off</td> | | 14671 | <td>wattr_off</td> |
14800 | <td>wattr_on</td> | | 14672 | <td>wattr_on</td> |
14801 | </tr> | | 14673 | </tr> |
14802 | <tr> | | 14674 | <tr> |
14803 | <td>work</td> | | 14675 | <td>work</td> |
14804 | <td>wrapper</td> | | 14676 | <td>wrapper</td> |
14805 | </tr> | | 14677 | </tr> |
14806 | <tr> | | 14678 | <tr> |
14807 | <td>wrkdir</td> | | 14679 | <td>wrkdir</td> |
14808 | <td> </td> | | 14680 | <td> </td> |
14809 | </tr> | | 14681 | </tr> |
14810 | </table> | | 14682 | </table> |
14811 | </div> | | 14683 | </div> |
14812 | <div class="appendix"> | | 14684 | <div class="appendix"> |
14813 | <div class="titlepage"><div><div><h1 class="title"> | | 14685 | <div class="titlepage"><div><div><h1 class="title"> |
14814 | <a name="editing"></a>Appendix F. Editing guidelines for the pkgsrc guide</h1></div></div></div> | | 14686 | <a name="editing"></a>Appendix F. Editing guidelines for the pkgsrc guide</h1></div></div></div> |
14815 | <div class="toc"> | | 14687 | <div class="toc"> |
14816 | <p><b>Table of Contents</b></p> | | 14688 | <p><b>Table of Contents</b></p> |
14817 | <dl class="toc"> | | 14689 | <dl class="toc"> |
14818 | <dt><span class="sect1"><a href="#targets">F.1. Make targets</a></span></dt> | | 14690 | <dt><span class="sect1"><a href="#targets">F.1. Make targets</a></span></dt> |
14819 | <dt><span class="sect1"><a href="#procedure">F.2. Procedure</a></span></dt> | | 14691 | <dt><span class="sect1"><a href="#procedure">F.2. Procedure</a></span></dt> |
14820 | </dl> | | 14692 | </dl> |
14821 | </div> | | 14693 | </div> |
14822 | <p>This section contains information on editing the pkgsrc | | 14694 | <p>This section contains information on editing the pkgsrc |
14823 | guide itself.</p> | | 14695 | guide itself.</p> |
14824 | <div class="sect1"> | | 14696 | <div class="sect1"> |
14825 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 14697 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
14826 | <a name="targets"></a>F.1. Make targets</h2></div></div></div> | | 14698 | <a name="targets"></a>F.1. Make targets</h2></div></div></div> |
14827 | <p>The pkgsrc guide's source code is stored in | | 14699 | <p>The pkgsrc guide's source code is stored in |
14828 | <code class="filename">pkgsrc/doc/guide/files</code>, and several files | | 14700 | <code class="filename">pkgsrc/doc/guide/files</code>, and several files |
14829 | are created from it:</p> | | 14701 | are created from it:</p> |
14830 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> | | 14702 | <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> |
14831 | <li class="listitem"><p><code class="filename">pkgsrc/doc/pkgsrc.txt</code></p></li> | | 14703 | <li class="listitem"><p><code class="filename">pkgsrc/doc/pkgsrc.txt</code></p></li> |
14832 | <li class="listitem"><p><code class="filename">pkgsrc/doc/pkgsrc.html</code></p></li> | | 14704 | <li class="listitem"><p><code class="filename">pkgsrc/doc/pkgsrc.html</code></p></li> |
14833 | <li class="listitem"><p><a class="ulink" href="https://www.NetBSD.org/docs/pkgsrc/" target="_top">https://www.NetBSD.org/docs/pkgsrc/</a></p></li> | | 14705 | <li class="listitem"><p><a class="ulink" href="https://www.NetBSD.org/docs/pkgsrc/" target="_top">https://www.NetBSD.org/docs/pkgsrc/</a></p></li> |
14834 | <li class="listitem"><p><a class="ulink" href="https://www.NetBSD.org/docs/pkgsrc/pkgsrc.pdf" target="_top">https://www.NetBSD.org/docs/pkgsrc/pkgsrc.pdf</a>: | | 14706 | <li class="listitem"><p><a class="ulink" href="https://www.NetBSD.org/docs/pkgsrc/pkgsrc.pdf" target="_top">https://www.NetBSD.org/docs/pkgsrc/pkgsrc.pdf</a>: |
14835 | The PDF version of the pkgsrc guide.</p></li> | | 14707 | The PDF version of the pkgsrc guide.</p></li> |
14836 | <li class="listitem"><p><a class="ulink" href="https://www.NetBSD.org/docs/pkgsrc/pkgsrc.ps" target="_top">https://www.NetBSD.org/docs/pkgsrc/pkgsrc.ps</a>: | | 14708 | <li class="listitem"><p><a class="ulink" href="https://www.NetBSD.org/docs/pkgsrc/pkgsrc.ps" target="_top">https://www.NetBSD.org/docs/pkgsrc/pkgsrc.ps</a>: |
14837 | PostScript version of the pkgsrc guide.</p></li> | | 14709 | PostScript version of the pkgsrc guide.</p></li> |
14838 | </ul></div> | | 14710 | </ul></div> |
14839 | </div> | | 14711 | </div> |
14840 | <div class="sect1"> | | 14712 | <div class="sect1"> |
14841 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | | 14713 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> |
14842 | <a name="procedure"></a>F.2. Procedure</h2></div></div></div> | | 14714 | <a name="procedure"></a>F.2. Procedure</h2></div></div></div> |
14843 | <p>The procedure to edit the pkgsrc guide is:</p> | | 14715 | <p>The procedure to edit the pkgsrc guide is:</p> |
14844 | <div class="procedure"><ol class="procedure" type="1"> | | 14716 | <div class="procedure"><ol class="procedure" type="1"> |
14845 | <li class="step"><p>Make sure you have checked out the htdocs repository | | 14717 | <li class="step"><p>Make sure you have checked out the htdocs repository |
14846 | into a sibling directory of your pkgsrc directory. You will need | | 14718 | into a sibling directory of your pkgsrc directory. You will need |
14847 | the ability to commit from both pkgsrc and htdocs.</p></li> | | 14719 | the ability to commit from both pkgsrc and htdocs.</p></li> |
14848 | <li class="step"><p>Make sure you have the packages needed to | | 14720 | <li class="step"><p>Make sure you have the packages needed to |
14849 | regenerate the pkgsrc guide (and other XML-based NetBSD | | 14721 | regenerate the pkgsrc guide (and other XML-based NetBSD |
14850 | documentation) installed. These are automatically installed when | | 14722 | documentation) installed. These are automatically installed when |
14851 | you install the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/pkgsrc-guide-tools/index.html" target="_top"><code class="filename">meta-pkgs/pkgsrc-guide-tools</code></a> package.</p></li> | | 14723 | you install the <a href="https://cdn.NetBSD.org/pub/pkgsrc/current/pkgsrc/meta-pkgs/pkgsrc-guide-tools/index.html" target="_top"><code class="filename">meta-pkgs/pkgsrc-guide-tools</code></a> package.</p></li> |
14852 | <li class="step"><p>Run <span class="command"><strong>cd doc/guide</strong></span> to get to the | | 14724 | <li class="step"><p>Run <span class="command"><strong>cd doc/guide</strong></span> to get to the |
14853 | right directory. All further steps will take place | | 14725 | right directory. All further steps will take place |
14854 | here.</p></li> | | 14726 | here.</p></li> |
14855 | <li class="step"><p>Edit the XML file(s) in | | 14727 | <li class="step"><p>Edit the XML file(s) in |
14856 | <code class="filename">files/</code>.</p></li> | | 14728 | <code class="filename">files/</code>.</p></li> |
14857 | <li class="step"><p>Run <span class="command"><strong>bmake</strong></span> to check the pkgsrc | | 14729 | <li class="step"><p>Run <span class="command"><strong>bmake</strong></span> to check the pkgsrc |
14858 | guide for valid XML and to build the final output files. If you | | 14730 | guide for valid XML and to build the final output files. If you |
14859 | get any errors at this stage, you can just edit the files, as | | 14731 | get any errors at this stage, you can just edit the files, as |
14860 | there are only symbolic links in the working directory, pointing | | 14732 | there are only symbolic links in the working directory, pointing |
14861 | to the files in <code class="filename">files/</code>.</p></li> | | 14733 | to the files in <code class="filename">files/</code>.</p></li> |
14862 | <li class="step"><p><span class="command"><strong>(cd files && cvs | | 14734 | <li class="step"><p><span class="command"><strong>(cd files && cvs |
14863 | commit)</strong></span></p></li> | | 14735 | commit)</strong></span></p></li> |
14864 | <li class="step"><p>Run <span class="command"><strong>bmake clean && bmake</strong></span> to | | 14736 | <li class="step"><p>Run <span class="command"><strong>bmake clean && bmake</strong></span> to |
14865 | regenerate the output files with the proper RCS | | 14737 | regenerate the output files with the proper RCS |
14866 | Ids.</p></li> | | 14738 | Ids.</p></li> |
14867 | <li class="step"> | | 14739 | <li class="step"> |
14868 | <p>Run <span class="command"><strong>bmake regen</strong></span> to install and | | 14740 | <p>Run <span class="command"><strong>bmake regen</strong></span> to install and |
14869 | commit the files in both <code class="filename">pkgsrc/doc</code> and | | 14741 | commit the files in both <code class="filename">pkgsrc/doc</code> and |
14870 | <code class="filename">htdocs</code>.</p> | | 14742 | <code class="filename">htdocs</code>.</p> |
14871 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> | | 14743 | <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> |
14872 | <h3 class="title">Note</h3> | | 14744 | <h3 class="title">Note</h3> |
14873 | <p>If you have added, removed or renamed some chapters, | | 14745 | <p>If you have added, removed or renamed some chapters, |
14874 | you need to synchronize them using <span class="command"><strong>cvs add</strong></span> or | | 14746 | you need to synchronize them using <span class="command"><strong>cvs add</strong></span> or |
14875 | <span class="command"><strong>cvs delete</strong></span> in the htdocs | | 14747 | <span class="command"><strong>cvs delete</strong></span> in the htdocs |
14876 | directory.</p> | | 14748 | directory.</p> |
14877 | </div> | | 14749 | </div> |
14878 | </li> | | 14750 | </li> |
14879 | </ol></div> | | 14751 | </ol></div> |
14880 | </div> | | 14752 | </div> |
14881 | </div> | | 14753 | </div> |
14882 | </div></body> | | 14754 | </div></body> |
14883 | </html> | | 14755 | </html> |