diff options
Diffstat (limited to 'documentation/content/en/books/porters-handbook')
5 files changed, 64 insertions, 66 deletions
| diff --git a/documentation/content/en/books/porters-handbook/makefiles/_index.adoc b/documentation/content/en/books/porters-handbook/makefiles/_index.adoc index bf37987160..45218f712b 100644 --- a/documentation/content/en/books/porters-handbook/makefiles/_index.adoc +++ b/documentation/content/en/books/porters-handbook/makefiles/_index.adoc @@ -114,17 +114,17 @@ See below on how to use  man:pkg-version[8] to compare versions.  [source,shell]  ....  % pkg version -t 1.2 1.3 -< <.> + < <.>  % pkg version -t 1.2 1.2 -= <.> + = <.>  % pkg version -t 1.2 1.2.0 -= <.> + = <.>  % pkg version -t 1.2 1.2.p1 -> <.> + > <.>  % pkg version -t 1.2.a1 1.2.b1 -< <.> + < <.>  % pkg version -t 1.2 1.2p1 -< <.> + < <.>  ....  <.> `1.2` is before `1.3`. @@ -1384,7 +1384,7 @@ MASTER_SITE_SUBDIR=	stardict/WyabdcRealPeopleTTS/${PORTVERSION}  |`BERLIOS`  |`${PORTNAME:tl}.berlios` -|`CHEESESHOP` +|`PYPI`  |`source/${DISTNAME:C/(.).\*/\1/}/${DISTNAME:C/(.*)-[0-9].*/\1/}`  |`CPAN` @@ -1586,7 +1586,7 @@ GH_TAGNAME=	c472d66b  ....  This creates a versioning scheme that increases over time, and that is still before version `0`. -See crossref:makefiles[makefile-versions-ex-pkg-version, this secion on how to compare versions] using man:pkg-version[8]): +See crossref:makefiles[makefile-versions-ex-pkg-version, this secion on how to compare versions] using man:pkg-version[8]:  [source,shell]  .... @@ -1631,7 +1631,7 @@ USE_GITHUB=	yes  ....  This creates a versioning scheme that increases over time (well, over commits), and does not conflict with the creation of a `0.7.4` version. -See crossref:makefiles[makefile-versions-ex-pkg-version, this section for how to compare versions] using  man:pkg-version[8]): +See crossref:makefiles[makefile-versions-ex-pkg-version, this section for how to compare versions] using  man:pkg-version[8]:  [source,shell]  .... @@ -2290,8 +2290,7 @@ Furthermore, `DEFAULT` is a special purpose word (check item  crossref:makefiles[porting-master-sites-n-DEFAULT-group,3]).  . Elements postfixed with `:n` belong to the group `n`, `:m` belong to group `m` and so forth.  + -[[porting-master-sites-n-DEFAULT-group]] -. Elements without a postfix are groupless, they all belong to the special group +. [[porting-master-sites-n-DEFAULT-group]] Elements without a postfix are groupless, they all belong to the special group    `DEFAULT`. Any elements postfixed with `DEFAULT`, is just being redundant    unless an element belongs to both `DEFAULT` and other groups at the same time    (check item crossref:makefiles[porting-master-sites-n-comma-operator,5]). @@ -2310,8 +2309,7 @@ MASTER_SITES=	alpha:DEFAULT  . Groups are not exclusive, an element may belong to several different groups at the same time and a group can either have either several different elements or none at all.  + -[[porting-master-sites-n-comma-operator]] -. When an element belongs to several groups at the same time, use the comma operator (`,`). +. [[porting-master-sites-n-comma-operator]] When an element belongs to several groups at the same time, use the comma operator (`,`).  +  Instead of repeating it several times, each time with a different postfix, we can list several groups at once in a single postfix.  For instance, `:m,n,o` marks an element that belongs to group `m`, `n` and `o`. @@ -2340,8 +2338,7 @@ MASTER_SITES=	alpha:DEFAULT,SOME_SITE  . All sites within a given group are sorted according to `MASTER_SORT_AWK`. All groups within `MASTER_SITES` and `PATCH_SITES` are sorted as well.  + -[[porting-master-sites-n-group-semantics]] -. Group semantics can be used in any of the variables `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES`, and `PATCHFILES` according to this syntax: +. [[porting-master-sites-n-group-semantics]] Group semantics can be used in any of the variables `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES`, and `PATCHFILES` according to this syntax:  .. All `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR` and     `PATCH_SITE_SUBDIR` elements must be terminated with the forward slash `/`     character. If any elements belong to any groups, the group postfix `:__n__` @@ -2492,8 +2489,7 @@ PATCHFILES=	patch1:test    according to the aforementioned syntax rules, especially as shown in item    crossref:makefiles[porting-master-sites-n-group-semantics, 7].  + -[[porting-master-sites-n-what-changes-in-port-targets]] -. The port targets remain the same: `checksum`, `makesum`, `patch`, `configure`, `build`, etc. With the obvious exceptions of `do-fetch`, `fetch-list`, `master-sites` and `patch-sites`. +. [[porting-master-sites-n-what-changes-in-port-targets]] The port targets remain the same: `checksum`, `makesum`, `patch`, `configure`, `build`, etc. With the obvious exceptions of `do-fetch`, `fetch-list`, `master-sites` and `patch-sites`.  ** `do-fetch`: deploys the new grouping postfixed `DISTFILES` and `PATCHFILES`     with their matching group elements within both `MASTER_SITES` and @@ -2511,8 +2507,7 @@ crossref:makefiles[porting-master-sites-n-new-port-targets-master-sites-all, B]  . New port targets  .. There are `master-sites-_n_` and `patch-sites-_n_` targets which will list the elements of the respective group _n_ within `MASTER_SITES` and `PATCH_SITES` respectively. For instance, both `master-sites-DEFAULT` and `patch-sites-DEFAULT` will return the elements of group `DEFAULT`, `master-sites-test` and `patch-sites-test` of group `test`, and thereon.  + -[[porting-master-sites-n-new-port-targets-master-sites-all]] -.. There are new targets `master-sites-all` and `patch-sites-all` which do the work of the old `master-sites` and `patch-sites` ones. They return the elements of all groups as if they all belonged to the same group with the caveat that it lists as many `MASTER_SITE_BACKUP` and `MASTER_SITE_OVERRIDE` as there are groups defined within either `DISTFILES` or `PATCHFILES`; respectively for `master-sites-all` and `patch-sites-all`. +.. [[porting-master-sites-n-new-port-targets-master-sites-all]] There are new targets `master-sites-all` and `patch-sites-all` which do the work of the old `master-sites` and `patch-sites` ones. They return the elements of all groups as if they all belonged to the same group with the caveat that it lists as many `MASTER_SITE_BACKUP` and `MASTER_SITE_OVERRIDE` as there are groups defined within either `DISTFILES` or `PATCHFILES`; respectively for `master-sites-all` and `patch-sites-all`.  [[makefile-dist_subdir]]  === `DIST_SUBDIR` @@ -3717,7 +3712,7 @@ Perl related variables are described in crossref:special[using-perl,Using Perl].  X11 variables are listed in crossref:special[using-x11,Using X11].  crossref:special[using-gnome,Using Gnome] deals with GNOME and crossref:special[using-kde,Using KDE] with KDE related variables.  crossref:special[using-java,Using Java] documents Java variables, while crossref:special[using-php,Web Applications, Apache and PHP] contains information on Apache, PHP and PEAR modules. -Python is discussed in crossref:special[using-python,Using Python], while Ruby in crossref:special[using-ruby,Using Ruby]. +Python is discussed in crossref:special[using-python,Using Python], while Ruby in crossref:uses[uses-ruby,Ruby].  crossref:special[using-sdl,Using SDL] provides variables used for SDL applications and finally, crossref:special[using-xfce,Using Xfce] contains information on Xfce.  [[makefile-version-dependency]] diff --git a/documentation/content/en/books/porters-handbook/special/_index.adoc b/documentation/content/en/books/porters-handbook/special/_index.adoc index 15a559a033..ffb853444f 100644 --- a/documentation/content/en/books/porters-handbook/special/_index.adoc +++ b/documentation/content/en/books/porters-handbook/special/_index.adoc @@ -3578,6 +3578,9 @@ PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}  |`USE_PYTHON=optsuffix`  |If the current Python version is not the default version, the port will gain `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Only useful with flavors. +|`USE_PYTHON=pep517` +|Support building and installing wheels according to the PEP-517 standard. +  |`PYTHON_PKGNAMEPREFIX`  |Used as a `PKGNAMEPREFIX` to distinguish packages for different Python versions. Example: `py27-` @@ -4844,7 +4847,7 @@ See crossref:uses[uses-sqlite,`sqlite`] for more information.  [.filename]#rc.d# scripts are used to start services on system startup, and to give administrators a standard way of stopping, starting and restarting the service.  Ports integrate into the system [.filename]#rc.d# framework. -Details on its usage can be found in extref:{handbook}[the rc.d Handbook chapter, configtuning-rcd]. +Details on its usage can be found in extref:{handbook}config[the rc.d Handbook chapter, configtuning-rcd].  Detailed explanation of the available commands is provided in man:rc[8] and man:rc.subr[8].  Finally, there is extref:{rc-scripting}[an article] on practical aspects of [.filename]#rc.d# scripting. diff --git a/documentation/content/en/books/porters-handbook/testing/_index.adoc b/documentation/content/en/books/porters-handbook/testing/_index.adoc index 4c94b4fc85..85433d1df0 100644 --- a/documentation/content/en/books/porters-handbook/testing/_index.adoc +++ b/documentation/content/en/books/porters-handbook/testing/_index.adoc @@ -293,41 +293,41 @@ Create the base jails which poudriere will use for building:  [source,shell]  .... -# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64 +# poudriere jail -c -j 143Ramd64 -v 14.3-RELEASE -a amd64  .... -Fetch a `13.1-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#, -create the zfs file system `tank/poudriere/jails/131Ramd64`, -mount it on [.filename]#/poudriere/jails/131Ramd64# and extract the `13.1-RELEASE` tarballs into this file system. +Fetch a `14.3-RELEASE` for `amd64` from the HTTPS server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#, +create the zfs file system `tank/poudriere/jails/143Ramd64`, +mount it on [.filename]#/poudriere/jails/143Ramd64# and extract the `14.3-RELEASE` tarballs into this file system.  [source,shell]  .... -# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https +# poudriere jail -c -j 13i386 -v stable/13 -a i386 -m git+https  .... -Create `tank/poudriere/jails/12i386`, mount it on [.filename]#/poudriere/jails/12i386#, -then check out the tip of the Git branch of `FreeBSD-12-STABLE` from `GIT_HOST` in [.filename]#poudriere.conf# or the default `git.freebsd.org` into [.filename]#/poudriere/jails/12i386/usr/src#, -then complete a `buildworld` and install it into [.filename]#/poudriere/jails/12i386#. +Create `tank/poudriere/jails/13i386`, mount it on [.filename]#/poudriere/jails/13i386#, +then check out the tip of the Git branch of `FreeBSD-13-STABLE` from `GIT_HOST` in [.filename]#poudriere.conf# or the default `git.freebsd.org` into [.filename]#/poudriere/jails/13i386/usr/src#, +then complete a `buildworld` and install it into [.filename]#/poudriere/jails/13i386#.  [NOTE]  ====  While it is possible to build a newer version of FreeBSD on an older version, most of the time it will not run. -For example, if a `stable/13` jail is needed, the host will have to run `stable/13` too. -Running `13.1-RELEASE` is not enough. +For example, if a `stable/14` jail is needed, the host will have to run `stable/14` too. +Running `14.3-RELEASE` is not enough.  ====  [NOTE]  ==== -To create a poudriere jail for `14.0-CURRENT`: +To create a poudriere jail for `16.0-CURRENT`:  [source,shell]  .... -# poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https +# poudriere jail -c -j 16amd64 -v main -a amd64 -m git+https  .... -In order to run a `14.0-CURRENT` poudriere jail the host must be running `14.0-CURRENT`. +In order to run a `16.0-CURRENT` poudriere jail the host must be running `16.0-CURRENT`.  In general, newer kernels can build and run older jails. -For instance, a `14.0-CURRENT` kernel can build and run a `12.4-STABLE` if the `COMPAT_FREEBSD12` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config). +For instance, a `16.0-CURRENT` kernel can build and run a `14.3-STABLE` if the `COMPAT_FREEBSD14` kernel option was compiled in (on by default in `16.0-CURRENT`[.filename]#GENERIC# kernel config).  ====  A list of jails currently known to poudriere can be shown with `poudriere jail -l`: @@ -336,8 +336,8 @@ A list of jails currently known to poudriere can be shown with `poudriere jail -  ....  # poudriere jail -l  JAILNAME             VERSION              ARCH    METHOD -131Ramd64            13.1-RELEASE         amd64   ftp -12i386               12.4-STABLE          i386    git+https +143Ramd64            14.3-RELEASE         amd64   http +13i386               13.5-STABLE          i386    git+https  ....  [[testing-poudriere-maintaining-jails]] @@ -385,7 +385,7 @@ Afterward it is included in the list of known ports trees:  ....  # poudriere ports -l  PORTSTREE METHOD    TIMESTAMP           PATH -default   git+https 2020-07-20 04:23:56 /poudriere/ports/default +default   git+https 2025-07-20 04:23:56 /poudriere/ports/default  ....  [NOTE] @@ -416,7 +416,7 @@ This will be listed in the table of known trees:  ....  # poudriere ports -l  PORTSTREE   METHOD    TIMESTAMP           PATH -development null      2020-07-20 05:06:33 /work/ports +development null      2025-07-20 05:06:33 /work/ports  ....  [NOTE] @@ -448,11 +448,11 @@ crossref:testing[testing-poudriere-ports-tree-manual, Using Manually Managed Por  After jails and ports trees have been set up, the result of a contributor's modifications to the ports tree can be tested. -For example, local modifications to the package:www/firefox[] port located in [.filename]#/work/ports/www/firefox# can be tested in the previously created 13.1-RELEASE jail: +For example, local modifications to the package:www/firefox[] port located in [.filename]#/work/ports/www/firefox# can be tested in the previously created 14.3-RELEASE jail:  [source,shell]  .... -# poudriere testport -j 131Ramd64 -p development -o www/firefox +# poudriere testport -j 143Ramd64 -p development -o www/firefox  ....  This will build all dependencies of Firefox. @@ -460,10 +460,10 @@ If a dependency has been built previously and is still up-to-date, the pre-built  If a dependency has no up-to-date package, one will be built with default options in a jail.  Then Firefox itself is built. -The complete build of every port is logged to [.filename]#/poudriere/data/logs/bulk/131Ri386-development/build-time/logs#. +The complete build of every port is logged to [.filename]#/poudriere/data/logs/bulk/143Ri386-development/build-time/logs#. -The directory name `131Ri386-development` is derived from the arguments to `-j` and `-p`, respectively. -For convenience, a symbolic link [.filename]#/poudriere/data/logs/bulk/131Ri386-development/latest# is also maintained. +The directory name `143Ri386-development` is derived from the arguments to `-j` and `-p`, respectively. +For convenience, a symbolic link [.filename]#/poudriere/data/logs/bulk/143Ri386-development/latest# is also maintained.  The link points to the latest _build-time_ directory.  Also in this directory is an [.filename]#index.html# for observing the build process with a web browser. @@ -472,7 +472,7 @@ To ease investigation, jails can be kept running after the build by adding `-i`  [source,shell]  .... -# poudriere testport -j 131Ramd64 -p development -i -o www/firefox +# poudriere testport -j 143Ramd64 -p development -i -o www/firefox  ....  After the build completes, and regardless of whether it was successful, a shell is provided within the jail. @@ -483,16 +483,16 @@ It is then possible to man:jexec[8] into it:  [source,shell]  .... -# poudriere testport -j 131Ramd64 -p development -I -o www/firefox +# poudriere testport -j 143Ramd64 -p development -I -o www/firefox  [...]  ====>> Installing local Pkg repository to /usr/local/etc/pkg/repos -====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing -====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root -====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development -# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root +====>> Leaving jail 143Ramd64-development-n running, mounted at /poudriere/data/.m/143Ramd64-development/ref for interactive run testing +====>> To enter jail: jexec 143Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root +====>> To stop jail: poudriere jail -k -j 143Ramd64 -p development +# jexec 143Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root  # [do some stuff in the jail]  # exit -# poudriere jail -k -j 131Ramd64 -p development +# poudriere jail -k -j 143Ramd64 -p development  ====>> Umounting file systems  .... @@ -502,7 +502,7 @@ Adding the `-c`:  [source,shell]  .... -# poudriere testport -j 131Ramd64 -c -o www/firefox +# poudriere testport -j 143Ramd64 -c -o www/firefox  ....  Presents the port configuration dialog before the port is built. @@ -531,17 +531,17 @@ For instance, testing package:www/firefox[] in a specific set named `devset`, ad  [source,shell]  .... -# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox +# poudriere testport -j 143Ramd64 -p development -z devset -o www/firefox  ....  This will look for the existence of these directories in this order: -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-development-devset-options# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-devset-options# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-development-options#  * [.filename]#/usr/local/etc/poudriere.d/devset-options#  * [.filename]#/usr/local/etc/poudriere.d/development-options# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-options# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-options#  * [.filename]#/usr/local/etc/poudriere.d/options#  From this list, poudriere man:nullfs[5]-mounts the _first existing_ directory tree into the [.filename]#/var/db/ports# directory of the build jails. @@ -575,7 +575,7 @@ For instance:  [source,shell]  .... -# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox +# poudriere testport -j 143Ramd64 -p development -z devset -o www/firefox  ....  causes poudriere to check for the existence of these files in this order: @@ -583,14 +583,14 @@ causes poudriere to check for the existence of these files in this order:  * [.filename]#/usr/local/etc/poudriere.d/make.conf#  * [.filename]#/usr/local/etc/poudriere.d/devset-make.conf#  * [.filename]#/usr/local/etc/poudriere.d/development-make.conf# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf# -* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-development-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-devset-make.conf# +* [.filename]#/usr/local/etc/poudriere.d/143Ramd64-development-devset-make.conf#  Unlike with sets, all of the found files will be appended, _in that order_, into one [.filename]#make.conf# inside the build jails.  It is hence possible to have general make variables, intended to affect all builds in [.filename]#/usr/local/etc/poudriere.d/make.conf#. -Special variables, intended to affect only certain jails or sets can be set in specialised [.filename]#make.conf# files, such as [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-make.conf#. +Special variables, intended to affect only certain jails or sets can be set in specialised [.filename]#make.conf# files, such as [.filename]#/usr/local/etc/poudriere.d/143Ramd64-development-devset-make.conf#.  [[testing-poudriere-sets-perl]]  .Using [.filename]#make.conf# to Change Default Perl diff --git a/documentation/content/en/books/porters-handbook/upgrading/_index.adoc b/documentation/content/en/books/porters-handbook/upgrading/_index.adoc index 3da3d330c5..c6d733ef6b 100644 --- a/documentation/content/en/books/porters-handbook/upgrading/_index.adoc +++ b/documentation/content/en/books/porters-handbook/upgrading/_index.adoc @@ -90,7 +90,7 @@ Before using it, please read [.filename]#/usr/ports/Tools/scripts/README.patchto  If the port is unmaintained, and it is actively being used, please consider volunteering to become its maintainer.  FreeBSD has over 4000 ports without maintainers, and this is an area where more volunteers are always needed. -(For a detailed description of the responsibilities of maintainers, refer to the section in the extref:{developers-handbook}[Developer's Handbook, POLICIES-MAINTAINER].) +(For a detailed description of the responsibilities of maintainers, refer to the section in the extref:{developers-handbook}policies[Developer's Handbook, policies-maintainer].)  To submit the diff, use the https://bugs.freebsd.org/submit/[bug submit form] (product `Ports & Packages`, component `Individual Port(s)`).  Always include the category with the port name, followed by colon, and brief description of the issue. diff --git a/documentation/content/en/books/porters-handbook/uses/_index.adoc b/documentation/content/en/books/porters-handbook/uses/_index.adoc index 84c6123b80..3f23a7e0f4 100644 --- a/documentation/content/en/books/porters-handbook/uses/_index.adoc +++ b/documentation/content/en/books/porters-handbook/uses/_index.adoc @@ -819,8 +819,8 @@ Add a dependency to the client library of the Firebird database.  Possible arguments: (none), `fc`, `fontsdir` (default), `none`  Adds a runtime dependency on tools needed to register fonts. -Depending on the argument, add a `crossref:plist[plist-keywords-fc,`@fc`] -${FONTSDIR}` line,  `crossref:plist[plist-keywords-fontsdir,`@fontsdir`] ${FONTSDIR}` line, or no line if the argument is `none`, to the plist. +Depending on the argument, add a `crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}` line, +`crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` line, or no line if the argument is `none`, to the plist.  `FONTSDIR` defaults to [.filename]#${PREFIX}/share/fonts/${FONTNAME}# and `FONTNAME` to `${PORTNAME}`.  Add `FONTSDIR` to `PLIST_SUB` and `SUB_LIST` | 
