diff options
Diffstat (limited to 'documentation/content/en/books/porters-handbook/special/_index.po')
-rw-r--r-- | documentation/content/en/books/porters-handbook/special/_index.po | 13307 |
1 files changed, 13307 insertions, 0 deletions
diff --git a/documentation/content/en/books/porters-handbook/special/_index.po b/documentation/content/en/books/porters-handbook/special/_index.po new file mode 100644 index 0000000000..75973cf19a --- /dev/null +++ b/documentation/content/en/books/porters-handbook/special/_index.po @@ -0,0 +1,13307 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2024-01-17 20:34-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: YAML Front Matter: description +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1 +#, no-wrap +msgid "Special considerations when creating a new FreeBSD Port" +msgstr "" + +#. type: YAML Front Matter: title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1 +#, no-wrap +msgid "Chapter 6. Special Considerations" +msgstr "" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/special/_index.adoc:13 +#, no-wrap +msgid "Special Considerations" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:51 +msgid "" +"This section explains the most common things to consider when creating a " +"port." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:53 +#, no-wrap +msgid "Splitting long files" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:60 +msgid "" +"Sometimes, port [.filename]#Makefiles# can be really long. For example, " +"rust ports can have a very long `CARGO_CRATES` list. In other cases, the [." +"filename]#Makefile# might have code that varies depending on the " +"architecture. In such cases, it can be convenient to split the original [." +"filename]#Makefile# into several files. [.filename]#bsd.port.mk# " +"automatically includes some types of [.filename]#Makefiles# into the main " +"port [.filename]#Makefile#." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:62 +msgid "" +"These are the files that the framework handles automatically if they are " +"found:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:64 +msgid "" +"[.filename]#Makefile.crates#. An example can be found in package:audio/" +"ebur128[]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:65 +msgid "" +"[.filename]#Makefile.inc#. An example can be found in package:net/ntp[]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:66 +msgid "[.filename]#Makefile.${ARCH}-${OPSYS}#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:67 +msgid "" +"[.filename]#Makefile.${OPSYS}#. An example can be found in package:net/cvsup-" +"static[]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:68 +msgid "[.filename]#Makefile.${ARCH}#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:69 +msgid "[.filename]#Makefile.local#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:75 +msgid "" +"It is also usual practice to split the packaging list of the port into " +"several files if the list varies a lot from one architecture to another or " +"depends on the selected flavor. In this case, the [.filename]#pkg-plist# " +"file for each architecture is named following the pattern [.filename]#pkg-" +"plist.${ARCH}# or [.filename]#pkg-plist.${FLAVOR}#. The framework does not " +"create the packaging list automatically if multiple [.filename]#pkg-plist# " +"files exist. It is the responsibility of the porter to select the proper [." +"filename]#pkg-plist# and assign it to the `PLIST` variable. Examples on how " +"to deal with this can be found in package:audio/logitechmediaserver[] and " +"package:deskutils/libportal[]." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:77 +#, no-wrap +msgid "Staging" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:84 +msgid "" +"[.filename]#bsd.port.mk# expects ports to work with a \"stage directory\". " +"This means that a port must not install files directly to the regular " +"destination directories (that is, under `PREFIX`, for example) but instead " +"into a separate directory from which the package is then built. In many " +"cases, this does not require root privileges, making it possible to build " +"packages as an unprivileged user. With staging, the port is built and " +"installed into the stage directory, `STAGEDIR`. A package is created from " +"the stage directory and then installed on the system. Automake tools refer " +"to this concept as `DESTDIR`, but in FreeBSD, `DESTDIR` has a different " +"meaning (see crossref:testing[porting-prefix,`PREFIX` and `DESTDIR`])." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:91 +msgid "" +"No port _really_ needs to be root. It can mostly be avoided by using " +"crossref:uses[uses-uidfix,`USES=uidfix`]. If the port still runs commands " +"like man:chown[8], man:chgrp[1], or forces owner or group with man:" +"install[1] then use crossref:uses[uses-fakeroot,`USES=fakeroot`] to fake " +"those calls. Some patching of the port's [.filename]#Makefiles# will be " +"needed." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:96 +msgid "" +"Meta ports, or ports that do not install files themselves but only depend on " +"other ports, must avoid needlessly extracting the man:mtree[8] to the stage " +"directory. This is the basic directory layout of the package, and these " +"empty directories will be seen as orphans. To prevent man:mtree[8] " +"extraction, add this line:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:100 +#, no-wrap +msgid "NO_MTREE=\tyes\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:106 +msgid "" +"Metaports should use <<uses-metaport,`USES=metaport`>>. It sets up defaults " +"for ports that do not fetch, build, or install anything." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:112 +msgid "" +"Staging is enabled by prepending `STAGEDIR` to paths used in the `pre-" +"install`, `do-install`, and `post-install` targets (see the examples through " +"the book). Typically, this includes `PREFIX`, `ETCDIR`, `DATADIR`, " +"`EXAMPLESDIR`, `MANPREFIX`, `DOCSDIR`, and so on. Directories should be " +"created as part of the `post-install` target. Avoid using absolute paths " +"whenever possible." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:116 +msgid "" +"Ports that install kernel modules must prepend `STAGEDIR` to their " +"destination, by default [.filename]#/boot/modules#." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:119 +#, no-wrap +msgid "Handling Symbolic Links" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:124 +msgid "" +"When creating a symbolic link, relative ones are strongly recommended. Use " +"`${RLN}` to create relative symbolic links. It uses man:install[1] under " +"the hood to automatically figure out the relative link to create." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:126 +#, no-wrap +msgid "Create Relative Symbolic Links Automatically" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:130 +msgid "" +"`${RLN}` uses man:install[1]'s relative symbolic feature which frees the " +"porter of computing the relative path." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:136 +#, no-wrap +msgid "" +"${RLN} ${STAGEDIR}${PREFIX}/lib/libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so\n" +"${RLN} ${STAGEDIR}${PREFIX}/libexec/foo/bar ${STAGEDIR}${PREFIX}/bin/bar\n" +"${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:139 +msgid "Will generate:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:149 +#, no-wrap +msgid "" +"% ls -lF ${STAGEDIR}${PREFIX}/lib\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42\n" +"-rwxr-xr-x 1 nobody nobody 15 Aug 3 11:24 libfoo.so.42*\n" +"% ls -lF ${STAGEDIR}${PREFIX}/bin\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 bar@ -> ../libexec/foo/bar\n" +"% ls -lF ${STAGEDIRDIR}${PREFIX}/share\n" +"lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 foo@ -> ../../../var/cache/foo\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:154 +#, no-wrap +msgid "Bundled Libraries" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:157 +msgid "" +"This section explains why bundled dependencies are considered bad and what " +"to do about them." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:159 +#, no-wrap +msgid "Why Bundled Libraries Are Bad" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:164 +msgid "" +"Some software requires the porter to locate third-party libraries and add " +"the required dependencies to the port. Other software bundles all necessary " +"libraries into the distribution file. The second approach seems easier at " +"first, but there are some serious drawbacks:" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:166 +msgid "" +"This list is loosely based on the https://fedoraproject.org/wiki/Packaging:" +"No_Bundled_Libraries[Fedora] and https://wiki.gentoo.org/wiki/" +"Why_not_bundle_dependencies[Gentoo] wikis, both licensed under the https://" +"creativecommons.org/licenses/by-sa/3.0/[CC-BY-SA 3.0] license." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:167 +#, no-wrap +msgid "Security" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:173 +msgid "" +"If vulnerabilities are found in the upstream library and fixed there, they " +"might not be fixed in the library bundled with the port. One reason could " +"be that the author is not aware of the problem. This means that the porter " +"must fix them, or upgrade to a non-vulnerable version, and send a patch to " +"the author. This all takes time, which results in software being vulnerable " +"longer than necessary. This in turn makes it harder to coordinate a fix " +"without unnecessarily leaking information about the vulnerability." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:174 +#, no-wrap +msgid "Bugs" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:176 +msgid "" +"This problem is similar to the problem with security in the last paragraph, " +"but generally less severe." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:177 +#, no-wrap +msgid "Forking" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:181 +msgid "" +"It is easier for the author to fork the upstream library once it is " +"bundled. While convenient on first sight, it means that the code diverges " +"from upstream making it harder to address security or other problems with " +"the software. A reason for this is that patching becomes harder." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:184 +msgid "" +"Another problem of forking is that because code diverges from upstream, bugs " +"get solved over and over again instead of just once at a central location. " +"This defeats the idea of open source software in the first place." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:185 +#, no-wrap +msgid "Symbol collision" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:190 +msgid "" +"When a library is installed on the system, it might collide with the bundled " +"version. This can cause immediate errors at compile or link time. It can " +"also cause errors when running the program which might be harder to track " +"down. The latter problem could be caused because the versions of the two " +"libraries are incompatible." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:191 +#, no-wrap +msgid "Licensing" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:193 +msgid "" +"When bundling projects from different sources, license issues can arise more " +"easily, especially when licenses are incompatible." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:194 +#, no-wrap +msgid "Waste of resources" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:198 +msgid "" +"Bundled libraries waste resources on several levels. It takes longer to " +"build the actual application, especially if these libraries are already " +"present on the system. At run-time, they can take up unnecessary memory " +"when the system-wide library is already loaded by one program and the " +"bundled library is loaded by another program." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:199 +#, no-wrap +msgid "Waste of effort" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:203 +msgid "" +"When a library needs patches for FreeBSD, these patches have to be " +"duplicated again in the bundled library. This wastes developer time because " +"the patches might not apply cleanly. It can also be hard to notice that " +"these patches are required in the first place." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:205 +#, no-wrap +msgid "What to do About Bundled Libraries" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:209 +msgid "" +"Whenever possible, use the unbundled version of the library by adding a " +"`LIB_DEPENDS` to the port. If such a port does not exist yet, consider " +"creating it." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:211 +msgid "" +"Only use bundled libraries if the upstream has a good track record on " +"security and using unbundled versions leads to overly complex patches." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:219 +msgid "" +"In some very special cases, for example emulators, like Wine, a port has to " +"bundle libraries, because they are in a different architecture, or they have " +"been modified to fit the software's use. In that case, those libraries " +"should not be exposed to other ports for linking. Add `BUNDLE_LIBS=yes` to " +"the port's [.filename]#Makefile#. This will tell man:pkg[8] to not compute " +"provided libraries. Always ask the {portmgr} before adding this to a port." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:222 +#, no-wrap +msgid "Shared Libraries" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:226 +msgid "" +"If the port installs one or more shared libraries, define a `USE_LDCONFIG` " +"make variable, which will instruct a [.filename]#bsd.port.mk# to run " +"`${LDCONFIG} -m` on the directory where the new library is installed " +"(usually [.filename]#PREFIX/lib#) during `post-install` target to register " +"it into the shared library cache. This variable, when defined, will also " +"facilitate addition of an appropriate `@exec /sbin/ldconfig -m` and " +"`@unexec /sbin/ldconfig -R` pair into [.filename]#pkg-plist#, so that a user " +"who installed the package can start using the shared library immediately and " +"de-installation will not cause the system to still believe the library is " +"there." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:230 +#, no-wrap +msgid "USE_LDCONFIG=\tyes\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:234 +msgid "" +"The default directory can be overridden by setting `USE_LDCONFIG` to a list " +"of directories into which shared libraries are to be installed. For " +"example, if the port installs shared libraries into [.filename]#PREFIX/lib/" +"foo# and [.filename]#PREFIX/lib/bar# use this in [.filename]#Makefile#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:238 +#, no-wrap +msgid "USE_LDCONFIG=\t${PREFIX}/lib/foo ${PREFIX}/lib/bar\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:241 +msgid "" +"Please double-check, often this is not necessary at all or can be avoided " +"through `-rpath` or setting `LD_RUN_PATH` during linking (see package:lang/" +"mosml[] for an example), or through a shell-wrapper which sets " +"`LD_LIBRARY_PATH` before invoking the binary, like package:www/seamonkey[] " +"does." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:243 +msgid "" +"When installing 32-bit libraries on a 64-bit system, use `USE_LDCONFIG32` " +"instead." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:245 +msgid "" +"If the software uses <<using-autotools,autotools>>, and specifically " +"`libtool`, add crossref:uses[uses-libtool,`USES=libtool`]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:247 +msgid "" +"When the major library version number increments in the update to the new " +"port version, all other ports that link to the affected library must have " +"their `PORTREVISION` incremented, to force recompilation with the new " +"library version." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:249 +#, no-wrap +msgid "Ports with Distribution Restrictions or Legal Concerns" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:252 +msgid "" +"Licenses vary, and some of them place restrictions on how the application " +"can be packaged, whether it can be sold for profit, and so on." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:257 +msgid "" +"It is the responsibility of a porter to read the licensing terms of the " +"software and make sure that the FreeBSD project will not be held accountable " +"for violating them by redistributing the source or compiled binaries either " +"via FTP/HTTP or CD-ROM. If in doubt, please contact the {freebsd-ports}." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:260 +msgid "" +"In situations like this, the variables described in the next sections can be " +"set." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:262 +#, no-wrap +msgid "`NO_PACKAGE`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:266 +msgid "" +"This variable indicates that we may not generate a binary package of the " +"application. For instance, the license may disallow binary redistribution, " +"or it may prohibit distribution of packages created from patched sources." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:269 +msgid "" +"However, the port's `DISTFILES` may be freely mirrored on FTP/HTTP. They " +"may also be distributed on a CD-ROM (or similar media) unless `NO_CDROM` is " +"set as well." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:272 +msgid "" +"If the binary package is not generally useful, and the application must " +"always be compiled from the source code, use `NO_PACKAGE`. For example, if " +"the application has configuration information that is site specific hard " +"coded into it at compile time, set `NO_PACKAGE`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:274 +msgid "" +"Set `NO_PACKAGE` to a string describing the reason why the package cannot be " +"generated." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:276 +#, no-wrap +msgid "`NO_CDROM`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:280 +msgid "" +"This variable alone indicates that, although we are allowed to generate " +"binary packages, we may put neither those packages nor the port's " +"`DISTFILES` onto a CD-ROM (or similar media) for resale. However, the " +"binary packages and the port's `DISTFILES` will still be available via FTP/" +"HTTP." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:282 +msgid "" +"If this variable is set along with `NO_PACKAGE`, then only the port's " +"`DISTFILES` will be available, and only via FTP/HTTP." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:285 +msgid "" +"Set `NO_CDROM` to a string describing the reason why the port cannot be " +"redistributed on CD-ROM. For instance, use this if the port's license is " +"for \"non-commercial\" use only." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:287 +#, no-wrap +msgid "`NOFETCHFILES`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:291 +msgid "" +"Files defined in `NOFETCHFILES` are not fetchable from any of " +"`MASTER_SITES`. An example of such a file is when the file is supplied on " +"CD-ROM by the vendor." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:293 +msgid "" +"Tools which check for the availability of these files on `MASTER_SITES` have " +"to ignore these files and not report about them." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:295 +#, no-wrap +msgid "`RESTRICTED`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:298 +msgid "" +"Set this variable alone if the application's license permits neither " +"mirroring the application's `DISTFILES` nor distributing the binary package " +"in any way." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:300 +msgid "" +"Do not set `NO_CDROM` or `NO_PACKAGE` along with `RESTRICTED`, since the " +"latter variable implies the former ones." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:304 +msgid "" +"Set `RESTRICTED` to a string describing the reason why the port cannot be " +"redistributed. Typically, this indicates that the port contains proprietary " +"software and that the user will need to manually download the `DISTFILES`, " +"possibly after registering for the software or agreeing to accept the terms " +"of an EULA." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:306 +#, no-wrap +msgid "`RESTRICTED_FILES`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:310 +msgid "" +"When `RESTRICTED` or `NO_CDROM` is set, this variable defaults to " +"`${DISTFILES} ${PATCHFILES}`, otherwise it is empty. If only some of the " +"distribution files are restricted, then set this variable to list them." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:312 +#, no-wrap +msgid "`LEGAL_TEXT`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:316 +msgid "" +"If the port has legal concerns not addressed by the above variables, set " +"`LEGAL_TEXT` to a string explaining the concern. For example, if special " +"permission was obtained for FreeBSD to redistribute the binary, this " +"variable must indicate so." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:318 +#, no-wrap +msgid "[.filename]#/usr/ports/LEGAL# and `LEGAL`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:324 +msgid "" +"A port which sets any of the above variables must also be added to [." +"filename]#/usr/ports/LEGAL#. The first column is a glob which matches the " +"restricted distfiles. The second column is the port's origin. The third " +"column is the output of `make -VLEGAL`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:326 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4216 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4476 +#, no-wrap +msgid "Examples" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:329 +msgid "" +"The preferred way to state \"the distfiles for this port must be fetched " +"manually\" is as follows:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:335 +#, no-wrap +msgid "" +".if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})\n" +"IGNORE=\tmay not be redistributed because of licensing reasons. Please visit some-website to accept their license and download ${DISTFILES} into ${DISTDIR}\n" +".endif\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:338 +msgid "" +"This both informs the user, and sets the proper metadata on the user's " +"machine for use by automated programs." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:340 +msgid "" +"Note that this stanza must be preceded by an inclusion of [.filename]#bsd." +"port.pre.mk#." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:342 +#, no-wrap +msgid "Building Mechanisms" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:345 +#, no-wrap +msgid "Building Ports in Parallel" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:349 +msgid "" +"The FreeBSD ports framework supports parallel building using multiple `make` " +"sub-processes, which allows SMP systems to utilize all of their available " +"CPU power, allowing port builds to be faster and more effective." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:354 +msgid "" +"This is achieved by passing `-jX` flag to man:make[1] running on vendor " +"code. This is the default build behavior of ports. Unfortunately, not all " +"ports handle parallel building well and it may be required to explicitly " +"disable this feature by adding the `MAKE_JOBS_UNSAFE=yes` variable. It is " +"used when a port is known to be broken with `-jX` due to race conditions " +"causing intermittent build failures." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:359 +msgid "" +"When setting `MAKE_JOBS_UNSAFE`, it is very important to explain either with " +"a comment in the [.filename]#Makefile#, or at least in the commit message, " +"_why_ the port does not build when enabling. Otherwise, it is almost " +"impossible to either fix the problem, or test if it has been fixed when " +"committing an update at a later date." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:362 +#, no-wrap +msgid "`make`, `gmake`, and `imake`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:365 +msgid "" +"Several differing `make` implementations exist. Ported software often " +"requires a particular implementation, like GNU `make`, known in FreeBSD as " +"`gmake`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:367 +msgid "If the port uses GNU make, add `gmake` to `USES`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:370 +msgid "" +"`MAKE_CMD` can be used to reference the specific command configured by the " +"`USES` setting in the port's [.filename]#Makefile#. Only use `MAKE_CMD` " +"within the application [.filename]##Makefile##s in `WRKSRC` to call the " +"`make` implementation expected by the ported software." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:373 +msgid "" +"If the port is an X application that uses imake to create [." +"filename]##Makefile##s from [.filename]##Imakefile##s, set `USES= imake`. " +"See the crossref:uses[uses-imake,`USES=imake`] section of crossref:uses[uses," +"Using `USES` Macros] for more details." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:376 +msgid "" +"If the port's source [.filename]#Makefile# has something other than `all` as " +"the main build target, set `ALL_TARGET` accordingly. The same goes for " +"`install` and `INSTALL_TARGET`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:378 +#, no-wrap +msgid "`configure` Script" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:383 +msgid "" +"If the port uses the `configure` script to generate [.filename]#Makefile# " +"from [.filename]#Makefile.in#, set `GNU_CONFIGURE=yes`. To give extra " +"arguments to the `configure` script (the default argument is `--" +"prefix=${PREFIX} --infodir=${PREFIX}/${INFO_PATH} --mandir=${MANPREFIX}/man " +"--build=${CONFIGURE_TARGET}`), set those extra arguments in " +"`CONFIGURE_ARGS`. Extra environment variables can be passed using " +"`CONFIGURE_ENV`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:385 +#, no-wrap +msgid "Variables for Ports That Use `configure`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:389 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:417 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:443 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:526 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:809 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2444 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2464 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3167 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3199 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3778 +#, no-wrap +msgid "Variable" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:391 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:419 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:445 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1322 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3169 +#, no-wrap +msgid "Means" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:392 +#, no-wrap +msgid "`GNU_CONFIGURE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:394 +#, no-wrap +msgid "The port uses `configure` script to prepare build." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:395 +#, no-wrap +msgid "`HAS_CONFIGURE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:397 +#, no-wrap +msgid "Same as `GNU_CONFIGURE`, except default configure target is not added to `CONFIGURE_ARGS`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:398 +#, no-wrap +msgid "`CONFIGURE_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:400 +#, no-wrap +msgid "Additional arguments passed to `configure` script." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:401 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:435 +#, no-wrap +msgid "`CONFIGURE_ENV`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:403 +#, no-wrap +msgid "Additional environment variables to be set for `configure` script run." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:404 +#, no-wrap +msgid "`CONFIGURE_TARGET`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:405 +#, no-wrap +msgid "Override default configure target. Default value is `${MACHINE_ARCH}-portbld-freebsd${OSREL}`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:408 +#, no-wrap +msgid "Using `cmake`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:411 +msgid "For ports that use CMake, define `USES= cmake`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:413 +#, no-wrap +msgid "Variables for Ports That Use `cmake`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:420 +#, no-wrap +msgid "`CMAKE_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:422 +#, no-wrap +msgid "Port specific CMake flags to be passed to the `cmake` binary." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:423 +#, no-wrap +msgid "`CMAKE_ON`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:425 +#, no-wrap +msgid "For each entry in `CMAKE_ON`, an enabled boolean value is added to `CMAKE_ARGS`. See <<using-cmake-example2>>." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:426 +#, no-wrap +msgid "`CMAKE_OFF`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:428 +#, no-wrap +msgid "For each entry in `CMAKE_OFF`, a disabled boolean value is added to `CMAKE_ARGS`. See <<using-cmake-example2>>." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:429 +#, no-wrap +msgid "`CMAKE_BUILD_TYPE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:431 +#, no-wrap +msgid "Type of build (CMake predefined build profiles). Default is `Release`, or `Debug` if `WITH_DEBUG` is set." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:432 +#, no-wrap +msgid "`CMAKE_SOURCE_PATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:434 +#, no-wrap +msgid "Path to the source directory. Default is `${WRKSRC}`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:436 +#, no-wrap +msgid "Additional environment variables to be set for the `cmake` binary." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:439 +#, no-wrap +msgid "Variables the Users Can Define for `cmake` Builds" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:446 +#, no-wrap +msgid "`CMAKE_NOCOLOR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:447 +#, no-wrap +msgid "Disables color build output. Default not set, unless `BATCH` or `PACKAGE_BUILDING` are set." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:454 +msgid "" +"CMake supports these build profiles: `Debug`, `Release`, `RelWithDebInfo` " +"and `MinSizeRel`. `Debug` and `Release` profiles respect system `\\*FLAGS`, " +"`RelWithDebInfo` and `MinSizeRel` will set `CFLAGS` to `-O2 -g` and `-Os -" +"DNDEBUG` correspondingly. The lower-cased value of `CMAKE_BUILD_TYPE` is " +"exported to `PLIST_SUB` and must be used if the port installs [.filename]#*." +"cmake# depending on the build type (see package:devel/kf5-kcrash[] for an " +"example). Please note that some projects may define their own build " +"profiles and/or force particular build type by setting `CMAKE_BUILD_TYPE` in " +"[.filename]#CMakeLists.txt#. To make a port for such a project respect " +"`CFLAGS` and `WITH_DEBUG`, the `CMAKE_BUILD_TYPE` definitions must be " +"removed from those files." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:459 +msgid "" +"Most CMake-based projects support an out-of-source method of building. The " +"out-of-source build for a port is the default setting. An in-source build " +"can be requested by using the `:insource` suffix. With out-of-source " +"builds, `CONFIGURE_WRKSRC`, `BUILD_WRKSRC` and `INSTALL_WRKSRC` will be set " +"to `${WRKDIR}/.build` and this directory will be used to keep all files " +"generated during configuration and build stages, leaving the source " +"directory intact." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:461 +#, no-wrap +msgid "`USES= cmake` Example" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:466 +msgid "" +"This snippet demonstrates the use of CMake for a port. `CMAKE_SOURCE_PATH` " +"is not usually required, but can be set when the sources are not located in " +"the top directory, or if only a subset of the project is intended to be " +"built by the port." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:471 +#, no-wrap +msgid "" +"USES=\t\t\tcmake\n" +"CMAKE_SOURCE_PATH=\t${WRKSRC}/subproject\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:476 +#, no-wrap +msgid "`CMAKE_ON` and `CMAKE_OFF`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:480 +msgid "" +"When adding boolean values to `CMAKE_ARGS`, it is easier to use the " +"`CMAKE_ON` and `CMAKE_OFF` variables instead. This:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:485 +#, no-wrap +msgid "" +"CMAKE_ON=\tVAR1 VAR2\n" +"CMAKE_OFF=\tVAR3\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:488 +msgid "Is equivalent to:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:492 +#, no-wrap +msgid "CMAKE_ARGS=\t-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE\n" +msgstr "" + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:498 +msgid "" +"This is only for the default values off `CMAKE_ARGS`. The helpers described " +"in crossref:makefiles[options-cmake_bool,`OPT_CMAKE_BOOL` and " +"`OPT_CMAKE_BOOL_OFF`] use the same semantics, but for optional values." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:503 +#, no-wrap +msgid "Using `scons`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:506 +msgid "If the port uses SCons, define `USES=scons`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:508 +msgid "" +"To make third party [.filename]#SConstruct# respect everything that is " +"passed to SCons in the environment (that is, most importantly, `CC/CXX/" +"CFLAGS/CXXFLAGS`), patch [.filename]#SConstruct# so build `Environment` is " +"constructed like this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:512 +#, no-wrap +msgid "env = Environment(**ARGUMENTS)\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:515 +msgid "It may be then modified with `env.Append` and `env.Replace`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:517 +#, no-wrap +msgid "Building Rust Applications with `cargo`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:520 +msgid "For ports that use Cargo, define `USES=cargo`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:522 +#, no-wrap +msgid "Variables the Users Can Define for `cargo` Builds" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:527 +#, no-wrap +msgid "Default" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:529 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:811 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1730 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1898 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1916 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2084 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2150 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2394 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2411 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2446 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2466 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2542 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3121 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3779 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3813 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3856 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3882 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3986 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4156 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4208 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4300 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4392 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4454 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4714 +#, no-wrap +msgid "Description" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:530 +#, no-wrap +msgid "`CARGO_CRATES`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:536 +#, no-wrap +msgid "" +"List of crates the port depends on. Each entry needs to have a format like `cratename-semver` for example, `libc-0.2.40`. Port maintainers can generate this list from [.filename]#Cargo.lock# using `make cargo-crates`. Manually bumping crate versions is possible but be mindful of transitive dependencies.\n" +"If the list generated by `make cargo-crates` is big, it might be convenient to place it inside a `Makefile.crates` file in the top-level port directory.\n" +"If present, the ports framework sources that file automatically.\n" +"This help keep the main port Makefile within a manageable size." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:537 +#, no-wrap +msgid "`CARGO_FEATURES`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:540 +#, no-wrap +msgid "List of application features to build (space separated list). To deactivate all default features add the special token `--no-default-features` to `CARGO_FEATURES`. Manually passing it to `CARGO_BUILD_ARGS`, `CARGO_INSTALL_ARGS`, and `CARGO_TEST_ARGS` is not needed." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:541 +#, no-wrap +msgid "`CARGO_CARGOTOML`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:542 +#, no-wrap +msgid "`${WRKSRC}/Cargo.toml`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:544 +#, no-wrap +msgid "The path to the [.filename]#Cargo.toml# to use." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:545 +#, no-wrap +msgid "`CARGO_CARGOLOCK`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:546 +#, no-wrap +msgid "`${WRKSRC}/Cargo.lock`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:548 +#, no-wrap +msgid "The path to the [.filename]#Cargo.lock# to use for `make cargo-crates`. It is possible to specify more than one lock file when necessary." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:549 +#, no-wrap +msgid "`CARGO_ENV`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:552 +#, no-wrap +msgid "A list of environment variables to pass to Cargo similar to `MAKE_ENV`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:553 +#, no-wrap +msgid "`RUSTFLAGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:556 +#, no-wrap +msgid "Flags to pass to the Rust compiler." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:557 +#, no-wrap +msgid "`CARGO_CONFIGURE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:558 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:566 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:574 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:582 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:594 +#, no-wrap +msgid "`yes`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:560 +#, no-wrap +msgid "Use the default `do-configure`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:561 +#, no-wrap +msgid "`CARGO_UPDATE_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:564 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the configure phase. Valid arguments can be looked up with `cargo update --help`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:565 +#, no-wrap +msgid "`CARGO_BUILDDEP`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:568 +#, no-wrap +msgid "Add a build dependency on package:lang/rust[]." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:569 +#, no-wrap +msgid "`CARGO_CARGO_BIN`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:570 +#, no-wrap +msgid "`${LOCALBASE}/bin/cargo`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:572 +#, no-wrap +msgid "Location of the `cargo` binary." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:573 +#, no-wrap +msgid "`CARGO_BUILD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:576 +#, no-wrap +msgid "Use the default `do-build`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:577 +#, no-wrap +msgid "`CARGO_BUILD_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:580 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the build phase. Valid arguments can be looked up with `cargo build --help`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:581 +#, no-wrap +msgid "`CARGO_INSTALL`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:584 +#, no-wrap +msgid "Use the default `do-install`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:585 +#, no-wrap +msgid "`CARGO_INSTALL_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:588 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the install phase. Valid arguments can be looked up with `cargo install --help`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:589 +#, no-wrap +msgid "`CARGO_INSTALL_PATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:590 +#, no-wrap +msgid "`.`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:592 +#, no-wrap +msgid "Path to the crate to install. This is passed to `cargo install` via its `--path` argument. When multiple paths are specified `cargo install` is run multiple times." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:593 +#, no-wrap +msgid "`CARGO_TEST`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:596 +#, no-wrap +msgid "Use the default `do-test`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:597 +#, no-wrap +msgid "`CARGO_TEST_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:600 +#, no-wrap +msgid "Extra arguments to pass to Cargo during the test phase. Valid arguments can be looked up with `cargo test --help`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:601 +#, no-wrap +msgid "`CARGO_TARGET_DIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:602 +#, no-wrap +msgid "`${WRKDIR}/target`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:604 +#, no-wrap +msgid "Location of the cargo output directory." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:605 +#, no-wrap +msgid "`CARGO_DIST_SUBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:606 +#, no-wrap +msgid "[.filename]#rust/crates#" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:608 +#, no-wrap +msgid "Directory relative to `DISTDIR` where the crate distribution files will be stored." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:609 +#, no-wrap +msgid "`CARGO_VENDOR_DIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:610 +#, no-wrap +msgid "`${WRKSRC}/cargo-crates`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:612 +#, no-wrap +msgid "Location of the vendor directory where all crates will be extracted to. Try to keep this under `PATCH_WRKSRC`, so that patches can be applied easily." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:613 +#, no-wrap +msgid "`CARGO_USE_GITHUB`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:614 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:618 +#, no-wrap +msgid "`no`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:616 +#, no-wrap +msgid "Enable fetching of crates locked to specific Git commits on GitHub via `GH_TUPLE`. This will try to patch all [.filename]#Cargo.toml# under `WRKDIR` to point to the offline sources instead of fetching them from a Git repository during the build." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:617 +#, no-wrap +msgid "`CARGO_USE_GITLAB`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:619 +#, no-wrap +msgid "Same as `CARGO_USE_GITHUB` but for GitLab instances and `GL_TUPLE`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:622 +#, no-wrap +msgid "Creating a Port for a Simple Rust Application" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:627 +msgid "" +"Creating a Cargo based port is a three stage process. First we need to " +"provide a ports template that fetches the application distribution file:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:634 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:679 +#, no-wrap +msgid "" +"PORTNAME=\ttokei\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t7.0.2\n" +"CATEGORIES=\tdevel\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:638 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:683 +#, no-wrap +msgid "" +"MAINTAINER=\ttobik@FreeBSD.org\n" +"COMMENT=\tDisplay statistics about your code\n" +"WWW=\t\thttps://github.com/XAMPPRocky/tokei/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:642 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:687 +#, no-wrap +msgid "" +"USES=\t\tcargo\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tAaronepower\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:644 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:697 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:864 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:887 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:945 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1016 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1103 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1119 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1133 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1250 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1271 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1644 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3469 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3529 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3645 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4240 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4264 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4502 +#, no-wrap +msgid ".include <bsd.port.mk>\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:647 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:890 +msgid "Generate an initial [.filename]#distinfo#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:655 +#, no-wrap +msgid "" +"% make makesum\n" +"=> Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz\n" +"fetch: https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz: size of remote file is not known\n" +"Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:658 +msgid "" +"Now the distribution file is ready to use and we can go ahead and extract " +"crate dependencies from the bundled [.filename]#Cargo.lock#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:669 +#, no-wrap +msgid "" +"% make cargo-crates\n" +"CARGO_CRATES= aho-corasick-0.6.4 \\\n" +" ansi_term-0.11.0 \\\n" +" arrayvec-0.4.7 \\\n" +" atty-0.2.9 \\\n" +" bitflags-1.0.1 \\\n" +" byteorder-1.2.2 \\\n" +" [...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:672 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:920 +msgid "" +"The output of this command needs to be pasted directly into the Makefile:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:695 +#, no-wrap +msgid "" +"CARGO_CRATES= aho-corasick-0.6.4 \\\n" +" ansi_term-0.11.0 \\\n" +" arrayvec-0.4.7 \\\n" +" atty-0.2.9 \\\n" +" bitflags-1.0.1 \\\n" +" byteorder-1.2.2 \\\n" +" [...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:700 +msgid "" +"[.filename]#distinfo# needs to be regenerated to contain all the crate " +"distribution files:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:718 +#, no-wrap +msgid "" +"% make makesum\n" +"=> rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/aho-corasick/0.6.4/download?dummy=/rust/crates/aho-corasick-0.6.4.tar.gz\n" +"rust/crates/aho-corasick-0.6.4.tar.gz 100% of 24 kB 6139 kBps 00m00s\n" +"=> rust/crates/ansi_term-0.11.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/ansi_term/0.11.0/download?dummy=/rust/crates/ansi_term-0.11.0.tar.gz\n" +"rust/crates/ansi_term-0.11.0.tar.gz 100% of 16 kB 21 MBps 00m00s\n" +"=> rust/crates/arrayvec-0.4.7.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/arrayvec/0.4.7/download?dummy=/rust/crates/arrayvec-0.4.7.tar.gz\n" +"rust/crates/arrayvec-0.4.7.tar.gz 100% of 22 kB 3237 kBps 00m00s\n" +"=> rust/crates/atty-0.2.9.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://crates.io/api/v1/crates/atty/0.2.9/download?dummy=/rust/crates/atty-0.2.9.tar.gz\n" +"rust/crates/atty-0.2.9.tar.gz 100% of 5898 B 81 MBps 00m00s\n" +"=> rust/crates/bitflags-1.0.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"[...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:721 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:964 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1076 +msgid "" +"The port is now ready for a test build and further adjustments like creating " +"a plist, writing a description, adding license information, options, etc. as " +"normal." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:723 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:966 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1078 +msgid "" +"If you are not testing your port in a clean environment like with poudriere, " +"remember to run `make clean` before any testing." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:726 +#, no-wrap +msgid "Enabling Additional Application Features" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:731 +msgid "" +"Some applications define additional features in their [.filename]#Cargo." +"toml#. They can be compiled in by setting `CARGO_FEATURES` in the port." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:733 +msgid "Here we enable Tokei's `json` and `yaml` features:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:737 +#, no-wrap +msgid "CARGO_FEATURES=\tjson yaml\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:742 +#, no-wrap +msgid "Encoding Application Features As Port Options" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:746 +msgid "" +"An example `[features]` section in [.filename]#Cargo.toml# could look like " +"this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:753 +#, no-wrap +msgid "" +"[features]\n" +"pulseaudio_backend = [\"librespot-playback/pulseaudio-backend\"]\n" +"portaudio_backend = [\"librespot-playback/portaudio-backend\"]\n" +"default = [\"pulseaudio_backend\"]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:758 +msgid "" +"`pulseaudio_backend` is a default feature. It is always enabled unless we " +"explicitly turn off default features by adding `--no-default-features` to " +"`CARGO_FEATURES`. Here we turn the `portaudio_backend` and " +"`pulseaudio_backend` features into port options:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:762 +#, no-wrap +msgid "CARGO_FEATURES=\t--no-default-features\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:764 +#, no-wrap +msgid "OPTIONS_DEFINE=\tPORTAUDIO PULSEAUDIO\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:767 +#, no-wrap +msgid "" +"PORTAUDIO_VARS=\t\tCARGO_FEATURES+=portaudio_backend\n" +"PULSEAUDIO_VARS=\tCARGO_FEATURES+=pulseaudio_backend\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:772 +#, no-wrap +msgid "Listing Crate Licenses" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:778 +msgid "" +"Crates have their own licenses. It is important to know what they are when " +"adding a `LICENSE` block to the port (see crossref:makefiles[licenses," +"Licenses]). The helper target `cargo-crates-licenses` will try to list all " +"the licenses of all crates defined in `CARGO_CRATES`." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:789 +#, no-wrap +msgid "" +"% make cargo-crates-licenses\n" +"aho-corasick-0.6.4 Unlicense/MIT\n" +"ansi_term-0.11.0 MIT\n" +"arrayvec-0.4.7 MIT/Apache-2.0\n" +"atty-0.2.9 MIT\n" +"bitflags-1.0.1 MIT/Apache-2.0\n" +"byteorder-1.2.2 Unlicense/MIT\n" +"[...]\n" +msgstr "" + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:795 +msgid "" +"The license names `make cargo-crates-licenses` outputs are SPDX 2.1 licenses " +"expression which do not match the license names defined in the ports " +"framework. They need to be translated to the names from crossref:" +"makefiles[licenses-license-list,Predefined License List]." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:800 +#, no-wrap +msgid "Using `meson`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:803 +msgid "For ports that use Meson, define `USES=meson`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:805 +#, no-wrap +msgid "Variables for Ports That Use `meson`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:812 +#, no-wrap +msgid "`MESON_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:814 +#, no-wrap +msgid "Port specific Meson flags to be passed to the `meson` binary." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:815 +#, no-wrap +msgid "`MESON_BUILD_DIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:816 +#, no-wrap +msgid "Path to the build directory relative to `WRKSRC`. Default is `_build`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:819 +#, no-wrap +msgid "`USES=meson` Example" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:823 +msgid "This snippet demonstrates the use of Meson for a port." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:828 +#, no-wrap +msgid "" +"USES=\t\tmeson\n" +"MESON_ARGS=\t-Dfoo=enabled\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:833 +#, no-wrap +msgid "Building Go Applications" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:837 +msgid "" +"For ports that use Go, define `USES=go`. Refer to crossref:uses[uses-go," +"`go`] for a list of variables that can be set to control the build process." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:839 +#, no-wrap +msgid "Creating a Port for a Go Modules Based Application" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:843 +msgid "" +"In most cases, it is sufficient to set the `GO_MODULE` variable to the value " +"specified by the `module` directive in `go.mod`:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:850 +#, no-wrap +msgid "" +"PORTNAME= hey\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION= 0.1.4\n" +"CATEGORIES= benchmarks\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:854 +#, no-wrap +msgid "" +"MAINTAINER= dmgk@FreeBSD.org\n" +"COMMENT= Tiny program that sends some load to a web application\n" +"WWW= https://github.com/rakyll/hey/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:857 +#, no-wrap +msgid "" +"LICENSE= APACHE20\n" +"LICENSE_FILE= ${WRKSRC}/LICENSE\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:860 +#, no-wrap +msgid "" +"USES= go:modules\n" +"GO_MODULE= github.com/rakyll/hey\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:862 +#, no-wrap +msgid "PLIST_FILES= bin/hey\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:867 +msgid "" +"If the \"easy\" way is not adequate or more control over dependencies is " +"needed, the full porting process is described below." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:870 +msgid "" +"Creating a Go-based port is a five-stage process. First we need to provide " +"a ports template that fetches the application distribution file:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:877 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:927 +#, no-wrap +msgid "" +"PORTNAME=\tghq\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t0.12.5\n" +"CATEGORIES=\tdevel\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:881 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:931 +#, no-wrap +msgid "" +"MAINTAINER=\ttobik@FreeBSD.org\n" +"COMMENT=\tRemote repository management made easy\n" +"WWW=\t\thttps://github.com/x-motemen/ghq/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:885 +#, no-wrap +msgid "" +"USES=\t\tgo:modules\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tmotemen\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:899 +#, no-wrap +msgid "" +"% make makesum\n" +"===> License MIT accepted by the user\n" +"=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz\n" +"fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known\n" +"motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:903 +msgid "" +"Now the distribution file is ready to use and we can extract the required Go " +"module dependencies. This step requires having package:ports-mgmt/" +"modules2tuple[] installed:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:917 +#, no-wrap +msgid "" +"% make gomod-vendor\n" +"[...]\n" +"GH_TUPLE=\t\\\n" +"\t\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" +"\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" +"\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" +"\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" +"\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" +"\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" +"\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" +"\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:943 +#, no-wrap +msgid "" +"USES=\t\tgo:modules\n" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tmotemen\n" +"GH_TUPLE=\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" +"\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" +"\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" +"\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" +"\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" +"\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" +"\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" +"\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:948 +msgid "" +"[.filename]#distinfo# needs to be regenerated to contain all the " +"distribution files:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:961 +#, no-wrap +msgid "" +"% make makesum\n" +"=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz\n" +"fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known\n" +"Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s\n" +"=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" +"=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz\n" +"fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known\n" +"daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s\n" +"[...]\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:969 +#, no-wrap +msgid "Setting Output Binary Name or Installation Path" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:974 +msgid "" +"Some ports need to install the resulting binary under a different name or to " +"a path other than the default `${PREFIX}/bin`. This can be done by using " +"`GO_TARGET` tuple syntax, for example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:978 +#, no-wrap +msgid "GO_TARGET= ./cmd/ipfs:ipfs-go\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:981 +msgid "will install `ipfs` binary as `${PREFIX}/bin/ipfs-go` and" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:985 +#, no-wrap +msgid "GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:988 +msgid "will install `dnscrypt-proxy` to `${PREFIX}/sbin`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:991 +#, no-wrap +msgid "Building Haskell Applications with `cabal`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:995 +msgid "" +"For ports that use Cabal, build system defines `USES=cabal`. Refer to " +"crossref:uses[uses-cabal,`cabal`] for a list of variables that can be set to " +"control the build process." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:997 +#, no-wrap +msgid "Creating a Port for a Hackage-hosted Haskell Application" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1002 +msgid "" +"When preparing a Haskell Cabal port, package:devel/hs-cabal-install[] and " +"package:ports-mgmt/hs-cabal2tuple[] programs are required, so make sure they " +"are installed beforehand. First we need to define common ports variables " +"that allow cabal-install to fetch the package distribution file:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1008 +#, no-wrap +msgid "" +"PORTNAME=\tShellCheck\n" +"DISTVERSION=\t0.6.0\n" +"CATEGORIES=\tdevel\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1012 +#, no-wrap +msgid "" +"MAINTAINER=\thaskell@FreeBSD.org\n" +"COMMENT=\tShell script analysis tool\n" +"WWW=\t\thttps://www.shellcheck.net/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1014 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1097 +#, no-wrap +msgid "USES=\t\tcabal\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1019 +msgid "" +"This minimal Makefile fetches the distribution file with the `cabal-extract` " +"helper target:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1029 +#, no-wrap +msgid "" +"% make cabal-extract\n" +"[...]\n" +"Downloading the latest package list from hackage.haskell.org\n" +"cabal get ShellCheck-0.6.0\n" +"Downloading ShellCheck-0.6.0\n" +"Downloaded ShellCheck-0.6.0\n" +"Unpacking to ShellCheck-0.6.0/\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1032 +msgid "" +"Now that we have ShellCheck.cabal package description file under `${WRKSRC}" +"`, we can use `cabal-configure` to generate the build plan:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1043 +#, no-wrap +msgid "" +"% make cabal-configure\n" +"[...]\n" +"Resolving dependencies...\n" +"Build profile: -w ghc-8.10.7 -O1\n" +"In order, the following would be built (use -v for more details):\n" +" - Diff-0.4.1 (lib) (requires download & build)\n" +" - OneTuple-0.3.1 (lib) (requires download & build)\n" +"[...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1046 +msgid "Once done, a list of required dependencies can generated:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1054 +#, no-wrap +msgid "" +"% make make-use-cabal\n" +"USE_CABAL=\tQuickCheck-2.12.6.1 \\\n" +"\t\thashable-1.3.0.0 \\\n" +"\t\tinteger-logarithms-1.0.3 \\\n" +"[...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1060 +msgid "" +"Haskell packages may contain revisions, just like FreeBSD ports. Revisions " +"can affect [.filename]#.cabal# files only. Note additional version numbers " +"after the `_` symbol. Put newly generated `USE_CABAL` list instead of an " +"old one." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1062 +msgid "" +"Finally, [.filename]#distinfo# needs to be regenerated to contain all the " +"distribution files:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1073 +#, no-wrap +msgid "" +"% make makesum\n" +"=> ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" +"=> Attempting to fetch https://hackage.haskell.org/package/ShellCheck-0.6.0/ShellCheck-0.6.0.tar.gz\n" +"ShellCheck-0.6.0.tar.gz 136 kB 642 kBps 00s\n" +"=> QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" +"=> Attempting to fetch https://hackage.haskell.org/package/QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz\n" +"QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz 65 kB 361 kBps 00s\n" +"[...]\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1083 +msgid "" +"Some Haskell ports install various data files under `share/${PORTNAME}`. For " +"such cases special handling is required on the port side. The port should " +"define the `CABAL_WRAPPER_SCRIPTS` knob listing each executable that is " +"going to use data files. Moreover, in rare cases the program being ported " +"uses data files of other Haskell packages, in which case the " +"`FOO_DATADIR_VARS` comes to the rescue." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1085 +#, no-wrap +msgid "Handling Data Files in a Haskell Port" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1089 +msgid "" +"`devel/hs-profiteur` is a Haskell application that generates a single-page " +"HTML with some content." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1093 +#, no-wrap +msgid "PORTNAME=\tprofiteur\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1095 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1110 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1128 +#, no-wrap +msgid "[...]\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1101 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1114 +#, no-wrap +msgid "" +"USE_CABAL=\tOneTuple-0.3.1_2 \\\n" +"\t\tQuickCheck-2.14.2 \\\n" +"\t\t[...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1106 +msgid "" +"It installs HTML templates under `share/profiteur`, so we need to add " +"`CABAL_WRAPPER_SCRIPTS` knob:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1117 +#, no-wrap +msgid "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1124 +msgid "" +"The program also tries to access the `jquery.js` file, which is a part of " +"`js-jquery-3.3.1` Haskell package. For that file to be found, we need to " +"make the wrapper script to look for `js-jquery` data files in `share/" +"profiteur` too. We use `profiteur_DATADIR_VARS` for this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1131 +#, no-wrap +msgid "" +"CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" +"profiteur_DATADIR_VARS=\t\tjs-jquery\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1136 +msgid "" +"Now the port will install the actual binary into `libexec/cabal/profiteur` " +"and the script into `bin/profiteur`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1141 +msgid "" +"There is no easy way to find out a proper value for the `FOO_DATADIR_VARS` " +"knob apart from running the program and checking that everything works. " +"Luckily, the need to use `FOO_DATADIR_VARS` is very rare." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1143 +msgid "" +"Another corner case when porting complex Haskell programs is the presence of " +"VCS dependencies in the `cabal.project` file." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1145 +#, no-wrap +msgid "Porting Haskell Applications with VCS Dependencies" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1150 +msgid "" +"`net-p2p/cardano-node` is an extremely complex piece of software. In its " +"`cabal.project` there are a lot of blocks like this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1159 +#, no-wrap +msgid "" +"[...]\n" +"source-repository-package\n" +" type: git\n" +" location: https://github.com/input-output-hk/cardano-crypto\n" +" tag: f73079303f663e028288f9f4a9e08bcca39a923e\n" +"[...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1165 +msgid "" +"Dependencies of type `source-repository-package` are automatically pulled in " +"by `cabal` during the build process. Unfortunately, this makes use of the " +"network after the `fetch` stage. This is disallowed by the ports framework. " +"These sources need to be listed in the port's Makefile. The `make-use-cabal` " +"helper target can make it easy for packages hosted on GitHub. Running this " +"target after the usual `cabal-extract` and `cabal-configure` will produce " +"not only the `USE_CABAL` knob, but also `GH_TUPLE`:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1173 +#, no-wrap +msgid "" +"% make make-use-cabal\n" +"USE_CABAL=\tDiff-0.4.1 \\\n" +"\t\tGlob-0.10.2_3 \\\n" +"\t\tHUnit-1.6.2.0 \\\n" +"\t\t[...]\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1177 +#, no-wrap +msgid "" +"GH_TUPLE=\t\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" +"\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" +"\t\t[...]\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1180 +msgid "" +"It might be useful to separate the `GH_TUPLE` items coming from `make-use-" +"cabal` from the other ones to make it easy to update the port:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1186 +#, no-wrap +msgid "" +"GH_TUPLE=\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" +"\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" +"\t\t[...]\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1188 +#, no-wrap +msgid "GH_TUPLE+=\tbitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1191 +msgid "" +"Haskell ports with VCS dependencies also require the following hack for the " +"time being:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1195 +#, no-wrap +msgid "BINARY_ALIAS=\tgit=true\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1200 +#, no-wrap +msgid "Using GNU Autotools" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1204 +msgid "" +"If a port needs any of the GNU Autotools software, add `USES=autoreconf`. " +"See crossref:uses[uses-autoreconf,`autoreconf`] for more information." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1206 +#, no-wrap +msgid "Using GNU `gettext`" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1209 +#, no-wrap +msgid "Basic Usage" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1213 +msgid "" +"If the port requires `gettext`, set `USES= gettext`, and the port will " +"inherit a dependency on [.filename]#libintl.so# from package:devel/" +"gettext[]. Other values for `gettext` usage are listed in crossref:" +"uses[uses-gettext,`USES=gettext`]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1216 +msgid "" +"A rather common case is a port using `gettext` and `configure`. Generally, " +"GNU `configure` should be able to locate `gettext` automatically." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1221 +#, no-wrap +msgid "" +"USES=\tgettext\n" +"GNU_CONFIGURE=\tyes\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1224 +msgid "" +"If it ever fails to, hints at the location of `gettext` can be passed in " +"`CPPFLAGS` and `LDFLAGS` using `localbase` as follows:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1229 +#, no-wrap +msgid "" +"USES=\tgettext localbase:ldflags\n" +"GNU_CONFIGURE=\tyes\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1232 +#, no-wrap +msgid "Optional Usage" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1238 +msgid "" +"Some software products allow for disabling NLS. For example, through " +"passing `--disable-nls` to `configure`. In that case, the port must use " +"`gettext` conditionally, depending on the status of the `NLS` option. For " +"ports of low to medium complexity, use this idiom:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1242 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1257 +#, no-wrap +msgid "GNU_CONFIGURE=\t\tyes\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1245 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\t\tNLS\n" +"OPTIONS_SUB=\t\tyes\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1248 +#, no-wrap +msgid "" +"NLS_USES=\t\tgettext\n" +"NLS_CONFIGURE_ENABLE=\tnls\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1253 +msgid "Or using the older way of using options:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1259 +#, no-wrap +msgid "OPTIONS_DEFINE=\t\tNLS\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1261 +#, no-wrap +msgid ".include <bsd.port.options.mk>\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1269 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MNLS}\n" +"USES+=\t\t\tgettext\n" +"PLIST_SUB+=\t\tNLS=\"\"\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-nls\n" +"PLIST_SUB+=\t\tNLS=\"@comment \"\n" +".endif\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1280 +msgid "" +"The next item on the to-do list is to arrange so that the message catalog " +"files are included in the packing list conditionally. The [." +"filename]#Makefile# part of this task is already provided by the idiom. It " +"is explained in the section on crossref:plist[plist-sub,advanced [." +"filename]#pkg-plist# practices]. In a nutshell, each occurrence of `%%NLS%" +"%` in [.filename]#pkg-plist# will be replaced by \"`@comment `\" if NLS is " +"disabled, or by a null string if NLS is enabled. Consequently, the lines " +"prefixed by `%%NLS%%` will become mere comments in the final packing list if " +"NLS is off; otherwise the prefix will be just left out. Then insert `%%NLS%" +"%` before each path to a message catalog file in [.filename]#pkg-plist#. " +"For example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1285 +#, no-wrap +msgid "" +"%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo\n" +"%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1288 +msgid "" +"In high complexity cases, more advanced techniques may be needed, such as " +"crossref:plist[plist-dynamic,dynamic packing list generation]." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1290 +#, no-wrap +msgid "Handling Message Catalog Directories" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1297 +msgid "" +"There is a point to note about installing message catalog files. The target " +"directories for them, which reside under [.filename]#LOCALBASE/share/" +"locale#, must not be created and removed by a port. The most popular " +"languages have their respective directories listed in [.filename]#PORTSDIR/" +"Templates/BSD.local.dist#. The directories for many other languages are " +"governed by the package:devel/gettext[] port. Consult its [.filename]#pkg-" +"plist# and see whether the port is going to install a message catalog file " +"for a unique language." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1299 +#, no-wrap +msgid "Using Perl" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1307 +msgid "" +"If `MASTER_SITES` is set to `CPAN`, the correct subdirectory is usually " +"selected automatically. If the default subdirectory is wrong, `CPAN/Module` " +"can be used to change it. `MASTER_SITES` can also be set to the old " +"`MASTER_SITE_PERL_CPAN`, then the preferred value of `MASTER_SITE_SUBDIR` is " +"the top-level hierarchy name. For example, the recommended value for `p5-" +"Module-Name` is `Module`. The top-level hierarchy can be examined at " +"https://cpan.org/modules/by-module/[cpan.org]. This keeps the port working " +"when the author of the module changes." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1312 +msgid "" +"The exception to this rule is when the relevant directory does not exist or " +"the distfile does not exist in that directory. In such case, using author's " +"id as `MASTER_SITE_SUBDIR` is allowed. The `CPAN:AUTHOR` macro can be used, " +"which will be translated to the hashed author directory. For example, `CPAN:" +"AUTHOR` will be converted to `authors/id/A/AU/AUTHOR`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1314 +msgid "" +"When a port needs Perl support, it must set `USES=perl5` with the optional " +"`USE_PERL5` described in crossref:uses[uses-perl5,the perl5 USES " +"description]." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1316 +#, no-wrap +msgid "Read-Only Variables for Ports That Use Perl" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1320 +#, no-wrap +msgid "Read only variables" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1323 +#, no-wrap +msgid "`PERL`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1325 +#, no-wrap +msgid "The full path of the Perl 5 interpreter, either in the system or installed from a port, but without the version number. Use this when the software needs the path to the Perl interpreter. To replace \"``#!``\"lines in scripts, use crossref:uses[uses-shebangfix,`shebangfix`]." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1326 +#, no-wrap +msgid "`PERL_VERSION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1328 +#, no-wrap +msgid "The full version of Perl installed (for example, `5.8.9`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1329 +#, no-wrap +msgid "`PERL_LEVEL`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1331 +#, no-wrap +msgid "The installed Perl version as an integer of the form `MNNNPP` (for example, `500809`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1332 +#, no-wrap +msgid "`PERL_ARCH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1334 +#, no-wrap +msgid "Where Perl stores architecture dependent libraries. Defaults to `${ARCH}-freebsd`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1335 +#, no-wrap +msgid "`PERL_PORT`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1337 +#, no-wrap +msgid "Name of the Perl port that is installed (for example, `perl5`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1338 +#, no-wrap +msgid "`SITE_PERL`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1339 +#, no-wrap +msgid "Directory name where site specific Perl packages go. This value is added to `PLIST_SUB`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1345 +msgid "" +"Ports of Perl modules which do not have an official website must link to " +"`cpan.org` in the WWW line of [.filename]#Makefile#. The preferred URL form " +"is `https://search.cpan.org/dist/Module-Name/` (including the trailing " +"slash)." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1353 +msgid "" +"Do not use `${SITE_PERL}` in dependency declarations. Doing so assumes that " +"[.filename]#perl5.mk# has been included, which is not always true. Ports " +"depending on this port will have incorrect dependencies if this port's files " +"move later in an upgrade. The right way to declare Perl module dependencies " +"is shown in the example below." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1356 +#, no-wrap +msgid "Perl Dependency Example" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1362 +#, no-wrap +msgid "p5-IO-Tee>=0.64:devel/p5-IO-Tee\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1367 +msgid "" +"For Perl ports that install manual pages, the macro `PERL5_MAN3` and " +"`PERL5_MAN1` can be used inside [.filename]#pkg-plist#. For example," +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1372 +#, no-wrap +msgid "" +"lib/perl5/5.14/man/man1/event.1.gz\n" +"lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1375 +msgid "can be replaced with" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1380 +#, no-wrap +msgid "" +"%%PERL5_MAN1%%/event.1.gz\n" +"%%PERL5_MAN3%%/AnyEvent::I3.3.gz\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1385 +msgid "" +"There are no `PERL5_MAN_x_` macros for the other sections (_x_ in `2` and " +"`4` to `9`) because those get installed in the regular directories." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1388 +#, no-wrap +msgid "A Port Which Only Requires Perl to Build" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1392 +msgid "As the default USE_PERL5 value is build and run, set it to:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1397 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tbuild\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1402 +#, no-wrap +msgid "A Port Which Also Requires Perl to Patch" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1407 +msgid "" +"From time to time, using man:sed[1] for patching is not enough. When using " +"man:perl[1] is easier, use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1412 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tpatch build run\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1417 +#, no-wrap +msgid "A Perl Module Which Needs `ExtUtils::MakeMaker` to Build" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1422 +msgid "" +"Most Perl modules come with a [.filename]#Makefile.PL# configure script. In " +"this case, set:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1427 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tconfigure\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1432 +#, no-wrap +msgid "A Perl Module Which Needs `Module::Build` to Build" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1436 +msgid "" +"When a Perl module comes with a [.filename]#Build.PL# configure script, it " +"can require Module::Build, in which case, set" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1441 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tmodbuild\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1444 +msgid "If it instead requires Module::Build::Tiny, set" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1449 +#, no-wrap +msgid "" +"USES=\t\tperl5\n" +"USE_PERL5=\tmodbuildtiny\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1454 +#, no-wrap +msgid "Using X11" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1457 +#, no-wrap +msgid "X.Org Components" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1462 +msgid "" +"The X11 implementation available in The Ports Collection is X.Org. If the " +"application depends on X components, add `USES= xorg` and set `USE_XORG` to " +"the list of required components. A full list can be found in crossref:" +"uses[uses-xorg,`xorg`]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1467 +msgid "" +"The Mesa Project is an effort to provide free OpenGL implementation. To " +"specify a dependency on various components of this project, use `USES= gl` " +"and `USE_GL`. See crossref:uses[uses-gl,`gl`] for a full list of available " +"components. For backwards compatibility, the value of `yes` maps to `glu`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1469 +#, no-wrap +msgid "`USE_XORG` Example" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1477 +#, no-wrap +msgid "" +"USES=\t\tgl xorg\n" +"USE_GL=\t\tglu\n" +"USE_XORG=\txrender xft xkbfile xt xaw\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1482 +#, no-wrap +msgid "Variables for Ports That Use X" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1486 +#, no-wrap +msgid "`USES= imake`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1488 +#, no-wrap +msgid "The port uses `imake`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1489 +#, no-wrap +msgid "`XMKMF`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1490 +#, no-wrap +msgid "Set to the path of `xmkmf` if not in the `PATH`. Defaults to `xmkmf -a`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1493 +#, no-wrap +msgid "Using X11-Related Variables" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1501 +#, no-wrap +msgid "" +"# Use some X11 libraries\n" +"USES=\t\txorg\n" +"USE_XORG=\tx11 xpm\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1506 +#, no-wrap +msgid "Ports That Require Motif" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1512 +msgid "" +"If the port requires a Motif library, define `USES= motif` in the [." +"filename]#Makefile#. Default Motif implementation is package:x11-toolkits/" +"open-motif[]. Users can choose package:x11-toolkits/lesstif[] instead by " +"setting `WANT_LESSTIF` in their [.filename]#make.conf#. Similarly package:" +"x11-toolkits/open-motif-devel[] can be chosen by setting " +"`WANT_OPEN_MOTIF_DEVEL` in [.filename]#make.conf#." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1515 +msgid "" +"`MOTIFLIB` will be set by [.filename]#motif.mk# to reference the appropriate " +"Motif library. Please patch the source of the port to use `${MOTIFLIB}` " +"wherever the Motif library is referenced in the original [." +"filename]#Makefile# or [.filename]#Imakefile#." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1517 +msgid "There are two common cases:" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1519 +msgid "" +"If the port refers to the Motif library as `-lXm` in its [." +"filename]#Makefile# or [.filename]#Imakefile#, substitute `${MOTIFLIB}` for " +"it." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1520 +msgid "" +"If the port uses `XmClientLibs` in its [.filename]#Imakefile#, change it to " +"`${MOTIFLIB} ${XTOOLLIB} ${XLIB}`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1522 +msgid "" +"Note that `MOTIFLIB` (usually) expands to `-L/usr/local/lib -lXm -lXp` or `/" +"usr/local/lib/libXm.a`, so there is no need to add `-L` or `-l` in front." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1524 +#, no-wrap +msgid "X11 Fonts" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1527 +msgid "" +"If the port installs fonts for the X Window System, put them in [." +"filename]#LOCALBASE/lib/X11/fonts/local#." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1529 +#, no-wrap +msgid "Getting a Fake `DISPLAY` with Xvfb" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1536 +msgid "" +"Some applications require a working X11 display for compilation to succeed. " +"This poses a problem for machines that operate headless. When this variable " +"is used, the build infrastructure will start the virtual framebuffer X " +"server. The working `DISPLAY` is then passed to the build. See crossref:" +"uses[uses-display,`USES=display`] for the possible arguments." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1540 +#, no-wrap +msgid "USES=\tdisplay\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1544 +#, no-wrap +msgid "Desktop Entries" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1550 +msgid "" +"Desktop entries (https://standards.freedesktop.org/desktop-entry-spec/latest/" +"[a Freedesktop standard]) provide a way to automatically adjust desktop " +"features when a new program is installed, without requiring user " +"intervention. For example, newly-installed programs automatically appear in " +"the application menus of compatible desktop environments. Desktop entries " +"originated in the GNOME desktop environment, but are now a standard and also " +"work with KDE and Xfce. This bit of automation provides a real benefit to " +"the user, and desktop entries are encouraged for applications which can be " +"used in a desktop environment." +msgstr "" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1552 +#, no-wrap +msgid "Using Predefined [.filename]#.desktop# Files" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1556 +msgid "" +"Ports that include predefined [.filename]#*.desktop# must include those " +"files in [.filename]#pkg-plist# and install them in the [." +"filename]#$LOCALBASE/share/applications# directory. The crossref:" +"makefiles[install-macros,`INSTALL_DATA` macro] is useful for installing " +"these files." +msgstr "" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1558 +#, no-wrap +msgid "Updating Desktop Database" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1562 +msgid "" +"If a port has a MimeType entry in its [.filename]#portname.desktop#, the " +"desktop database must be updated after install and deinstall. To do this, " +"define `USES`= desktop-file-utils." +msgstr "" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1564 +#, no-wrap +msgid "Creating Desktop Entries with `DESKTOP_ENTRIES`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1569 +msgid "" +"Desktop entries can be easily created for applications by using " +"`DESKTOP_ENTRIES`. A file named [.filename]#name.desktop# will be created, " +"installed, and added to [.filename]#pkg-plist# automatically. Syntax is:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1573 +#, no-wrap +msgid "DESKTOP_ENTRIES=\t\"NAME\" \"COMMENT\" \"ICON\" \"COMMAND\" \"CATEGORY\" StartupNotify\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1580 +msgid "" +"The list of possible categories is available on the https://standards." +"freedesktop.org/menu-spec/latest/apa.html[Freedesktop website]. " +"`StartupNotify` indicates whether the application is compatible with " +"_startup notifications_. These are typically a graphic indicator like a " +"clock that appear at the mouse pointer, menu, or panel to give the user an " +"indication when a program is starting. A program that is compatible with " +"startup notifications clears the indicator after it has started. Programs " +"that are not compatible with startup notifications would never clear the " +"indicator (potentially confusing and infuriating the user), and must have " +"`StartupNotify` set to `false` so the indicator is not shown at all." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1582 +msgid "Example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1589 +#, no-wrap +msgid "" +"DESKTOP_ENTRIES=\t\"ToME\" \"Roguelike game based on JRR Tolkien's work\" \\\n" +"\t\t\t\"${DATADIR}/xtra/graf/tome-128.png\" \\\n" +"\t\t\t\"tome -v -g\" \"Application;Game;RolePlaying;\" \\\n" +"\t\t\tfalse\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1594 +msgid "" +"`DESKTOP_ENTRIES` are installed in the directory pointed to by the " +"`DESKTOPDIR` variable. `DESKTOPDIR` defaults to [.filename]#${PREFIX}/share/" +"applications#" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1597 +#, no-wrap +msgid "Using GNOME" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1600 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3757 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4058 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4274 +#, no-wrap +msgid "Introduction" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1604 +msgid "" +"This chapter explains the GNOME framework as used by ports. The framework " +"can be loosely divided into the base components, GNOME desktop components, " +"and a few special macros that simplify the work of port maintainers." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1606 +#, no-wrap +msgid "Using `USE_GNOME`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1614 +msgid "" +"Adding this variable to the port allows the use of the macros and components " +"defined in [.filename]#bsd.gnome.mk#. The code in [.filename]#bsd.gnome.mk# " +"adds the needed build-time, run-time or library dependencies or the handling " +"of special files. GNOME applications under FreeBSD use the `USE_GNOME` " +"infrastructure. Include all the needed components as a space-separated " +"list. The `USE_GNOME` components are divided into these virtual lists: " +"basic components, GNOME 3 components and legacy components. If the port " +"needs only GTK3 libraries, this is the shortest way to define it:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1618 +#, no-wrap +msgid "USE_GNOME=\tgtk30\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1622 +msgid "" +"`USE_GNOME` components automatically add the dependencies they need. Please " +"see <<gnome-components>> for an exhaustive list of all `USE_GNOME` " +"components and which other components they imply and their dependencies." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1625 +msgid "" +"Here is an example [.filename]#Makefile# for a GNOME port that uses many of " +"the techniques outlined in this document. Please use it as a guide for " +"creating new ports." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1632 +#, no-wrap +msgid "" +"PORTNAME=\tregexxer\n" +"DISTVERSION=\t0.10\n" +"CATEGORIES=\tdevel textproc gnome\n" +"MASTER_SITES=\tGNOME\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1636 +#, no-wrap +msgid "" +"MAINTAINER=\tkwm@FreeBSD.org\n" +"COMMENT=\tInteractive tool for performing search and replace operations\n" +"WWW=\t\thttp://regexxer.sourceforge.net/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1640 +#, no-wrap +msgid "" +"USES=\t\tgettext gmake localbase:ldflags pathfix pkgconfig tar:xz\n" +"GNU_CONFIGURE=\tyes\n" +"USE_GNOME=\tgnomeprefix intlhack gtksourceviewmm3\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1642 +#, no-wrap +msgid "GLIB_SCHEMAS=\torg.regexxer.gschema.xml\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1650 +msgid "" +"The `USE_GNOME` macro without any arguments does not add any dependencies to " +"the port. `USE_GNOME` cannot be set after [.filename]#bsd.port.pre.mk#." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1653 +#, no-wrap +msgid "Variables" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1659 +msgid "" +"This section explains which macros are available and how they are used. " +"Like they are used in the above example. The <<gnome-components>> has a " +"more in-depth explanation. `USE_GNOME` has to be set for these macros to be " +"of use." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1660 +#, no-wrap +msgid "`GLIB_SCHEMAS`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1663 +msgid "" +"List of all the glib schema files the port installs. The macro will add the " +"files to the port plist and handle the registration of these files on " +"install and deinstall." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1668 +msgid "" +"The glib schema files are written in XML and end with the [." +"filename]#gschema.xml# extension. They are installed in the [." +"filename]#share/glib-2.0/schemas/# directory. These schema files contain " +"all application config values with their default settings. The actual " +"database used by the applications is built by glib-compile-schema, which is " +"run by the `GLIB_SCHEMAS` macro." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1672 +#, no-wrap +msgid "GLIB_SCHEMAS=foo.gschema.xml\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1678 +msgid "" +"Do not add glib schemas to the [.filename]#pkg-plist#. If they are listed " +"in [.filename]#pkg-plist#, they will not be registered and the applications " +"might not work properly." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1680 +#, no-wrap +msgid "`GCONF_SCHEMAS`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1683 +msgid "" +"List all the gconf schema files. The macro will add the schema files to the " +"port plist and will handle their registration on install and deinstall." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1688 +msgid "" +"GConf is the XML-based database that virtually all GNOME applications use " +"for storing their settings. These files are installed into the [." +"filename]#etc/gconf/schemas# directory. This database is defined by " +"installed schema files that are used to generate [.filename]#%gconf.xml# key " +"files. For each schema file installed by the port, there must be an entry " +"in the [.filename]#Makefile#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1692 +#, no-wrap +msgid "GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1698 +msgid "" +"Gconf schemas are listed in the `GCONF_SCHEMAS` macro rather than [." +"filename]#pkg-plist#. If they are listed in [.filename]#pkg-plist#, they " +"will not be registered and the applications might not work properly." +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1700 +#, no-wrap +msgid "`INSTALLS_OMF`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1704 +msgid "" +"Open Source Metadata Framework (OMF) files are commonly used by GNOME 2 " +"applications. These files contain the application help file information, " +"and require special processing by ScrollKeeper/rarian. To properly register " +"OMF files when installing GNOME applications from packages, make sure that " +"`omf` files are listed in `pkg-plist` and that the port [." +"filename]#Makefile# has `INSTALLS_OMF` defined:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1708 +#, no-wrap +msgid "INSTALLS_OMF=yes\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1711 +msgid "" +"When set, [.filename]#bsd.gnome.mk# automatically scans [.filename]#pkg-" +"plist# and adds appropriate `@exec` and `@unexec` directives for each [." +"filename]#.omf# to track in the OMF registration database." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1713 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1723 +#, no-wrap +msgid "GNOME Components" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1721 +msgid "" +"For further help with a GNOME port, look at some of the link:https://www." +"FreeBSD.org/ports/gnome.html[existing ports] for examples. The link:https://" +"www.FreeBSD.org/gnome/[FreeBSD GNOME page] has contact information if more " +"help is needed. The components are divided into GNOME components that are " +"currently in use and legacy components. If the component supports argument, " +"they are listed between parenthesis in the description. The first is the " +"default. \"Both\" is shown if the component defaults to adding to both " +"build and run dependencies." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1727 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1896 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1913 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2082 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3899 +#, no-wrap +msgid "Component" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1728 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1914 +#, no-wrap +msgid "Associated program" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1731 +#, no-wrap +msgid "`atk`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1732 +#, no-wrap +msgid "accessibility/atk" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1734 +#, no-wrap +msgid "Accessibility toolkit (ATK)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1735 +#, no-wrap +msgid "`atkmm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1736 +#, no-wrap +msgid "accessibility/atkmm" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1738 +#, no-wrap +msgid "c++ bindings for atk" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1739 +#, no-wrap +msgid "`cairo`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1740 +#, no-wrap +msgid "graphics/cairo" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1742 +#, no-wrap +msgid "Vector graphics library with cross-device output support" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1743 +#, no-wrap +msgid "`cairomm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1744 +#, no-wrap +msgid "graphics/cairomm" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1746 +#, no-wrap +msgid "c++ bindings for cairo" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1747 +#, no-wrap +msgid "`dconf`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1748 +#, no-wrap +msgid "devel/dconf" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1750 +#, no-wrap +msgid "Configuration database system (both, build, run)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1751 +#, no-wrap +msgid "`evolutiondataserver3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1752 +#, no-wrap +msgid "databases/evolution-data-server" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1754 +#, no-wrap +msgid "Data backends for the Evolution integrated mail/PIM suite" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1755 +#, no-wrap +msgid "`gdkpixbuf2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1756 +#, no-wrap +msgid "graphics/gdk-pixbuf2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1758 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1940 +#, no-wrap +msgid "Graphics library for GTK+" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1759 +#, no-wrap +msgid "`glib20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1760 +#, no-wrap +msgid "devel/glib20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1762 +#, no-wrap +msgid "GNOME core library `glib20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1763 +#, no-wrap +msgid "`glibmm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1764 +#, no-wrap +msgid "devel/glibmm" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1766 +#, no-wrap +msgid "c++ bindings for glib20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1767 +#, no-wrap +msgid "`gnomecontrolcenter3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1768 +#, no-wrap +msgid "sysutils/gnome-control-center" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1770 +#, no-wrap +msgid "GNOME 3 Control Center" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1771 +#, no-wrap +msgid "`gnomedesktop3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1772 +#, no-wrap +msgid "x11/gnome-desktop" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1774 +#, no-wrap +msgid "GNOME 3 desktop UI library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1775 +#, no-wrap +msgid "`gsound`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1776 +#, no-wrap +msgid "audio/gsound" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1778 +#, no-wrap +msgid "GObject library for playing system sounds (both, build, run)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1779 +#, no-wrap +msgid "`gtk-update-icon-cache`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1780 +#, no-wrap +msgid "graphics/gtk-update-icon-cache" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1782 +#, no-wrap +msgid "Gtk-update-icon-cache utility from the Gtk+ toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1783 +#, no-wrap +msgid "`gtk20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1784 +#, no-wrap +msgid "x11-toolkits/gtk20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1786 +#, no-wrap +msgid "Gtk+ 2 toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1787 +#, no-wrap +msgid "`gtk30`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1788 +#, no-wrap +msgid "x11-toolkits/gtk30" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1790 +#, no-wrap +msgid "Gtk+ 3 toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1791 +#, no-wrap +msgid "`gtkmm20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1792 +#, no-wrap +msgid "x11-toolkits/gtkmm20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1794 +#, no-wrap +msgid "c++ bindings 2.0 for the gtk20 toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1795 +#, no-wrap +msgid "`gtkmm24`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1796 +#, no-wrap +msgid "x11-toolkits/gtkmm24" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1798 +#, no-wrap +msgid "c++ bindings 2.4 for the gtk20 toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1799 +#, no-wrap +msgid "`gtkmm30`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1800 +#, no-wrap +msgid "x11-toolkits/gtkmm30" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1802 +#, no-wrap +msgid "c++ bindings 3.0 for the gtk30 toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1803 +#, no-wrap +msgid "`gtksourceview2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1804 +#, no-wrap +msgid "x11-toolkits/gtksourceview2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1806 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1984 +#, no-wrap +msgid "Widget that adds syntax highlighting to GtkTextView" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1807 +#, no-wrap +msgid "`gtksourceview3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1808 +#, no-wrap +msgid "x11-toolkits/gtksourceview3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1810 +#, no-wrap +msgid "Text widget that adds syntax highlighting to the GtkTextView widget" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1811 +#, no-wrap +msgid "`gtksourceviewmm3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1812 +#, no-wrap +msgid "x11-toolkits/gtksourceviewmm3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1814 +#, no-wrap +msgid "c++ bindings for the gtksourceview3 library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1815 +#, no-wrap +msgid "`gvfs`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1816 +#, no-wrap +msgid "devel/gvfs" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1818 +#, no-wrap +msgid "GNOME virtual file system" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1819 +#, no-wrap +msgid "`intltool`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1820 +#, no-wrap +msgid "textproc/intltool" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1822 +#, no-wrap +msgid "Tool for internationalization (also see intlhack)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1823 +#, no-wrap +msgid "`introspection`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1824 +#, no-wrap +msgid "devel/gobject-introspection" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1826 +#, no-wrap +msgid "Basic introspection bindings and tools to generate introspection bindings. Most of the time :build is enough, :both/:run is only need for applications that use introspection bindings. (both, build, run)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1827 +#, no-wrap +msgid "`libgda5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1828 +#, no-wrap +msgid "databases/libgda5" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1830 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2000 +#, no-wrap +msgid "Provides uniform access to different kinds of data sources" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1831 +#, no-wrap +msgid "`libgda5-ui`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1832 +#, no-wrap +msgid "databases/libgda5-ui" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1834 +#, no-wrap +msgid "UI library from the libgda5 library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1835 +#, no-wrap +msgid "`libgdamm5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1836 +#, no-wrap +msgid "databases/libgdamm5" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1838 +#, no-wrap +msgid "c++ bindings for the libgda5 library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1839 +#, no-wrap +msgid "`libgsf`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1840 +#, no-wrap +msgid "devel/libgsf" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1842 +#, no-wrap +msgid "Extensible I/O abstraction for dealing with structured file formats" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1843 +#, no-wrap +msgid "`librsvg2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1844 +#, no-wrap +msgid "graphics/librsvg2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1846 +#, no-wrap +msgid "Library for parsing and rendering SVG vector-graphic files" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1847 +#, no-wrap +msgid "`libsigc++20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1848 +#, no-wrap +msgid "devel/libsigc++20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1850 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2044 +#, no-wrap +msgid "Callback Framework for C++" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1851 +#, no-wrap +msgid "`libxml++26`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1852 +#, no-wrap +msgid "textproc/libxml++26" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1854 +#, no-wrap +msgid "c++ bindings for the libxml2 library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1855 +#, no-wrap +msgid "`libxml2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1856 +#, no-wrap +msgid "textproc/libxml2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1858 +#, no-wrap +msgid "XML parser library (both, build, run)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1859 +#, no-wrap +msgid "`libxslt`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1860 +#, no-wrap +msgid "textproc/libxslt" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1862 +#, no-wrap +msgid "XSLT C library (both, build, run)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1863 +#, no-wrap +msgid "`metacity`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1864 +#, no-wrap +msgid "x11-wm/metacity" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1866 +#, no-wrap +msgid "Window manager from GNOME" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1867 +#, no-wrap +msgid "`nautilus3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1868 +#, no-wrap +msgid "x11-fm/nautilus" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1870 +#, no-wrap +msgid "GNOME file manager" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1871 +#, no-wrap +msgid "`pango`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1872 +#, no-wrap +msgid "x11-toolkits/pango" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1874 +#, no-wrap +msgid "Open-source framework for the layout and rendering of i18n text" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1875 +#, no-wrap +msgid "`pangomm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1876 +#, no-wrap +msgid "x11-toolkits/pangomm" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1878 +#, no-wrap +msgid "c++ bindings for the pango library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1879 +#, no-wrap +msgid "`py3gobject3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1880 +#, no-wrap +msgid "devel/py3-gobject3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1882 +#, no-wrap +msgid "Python 3, GObject 3.0 bindings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1883 +#, no-wrap +msgid "`pygobject3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1884 +#, no-wrap +msgid "devel/py-gobject3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1886 +#, no-wrap +msgid "Python 2, GObject 3.0 bindings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1887 +#, no-wrap +msgid "`vte3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1888 +#, no-wrap +msgid "x11-toolkits/vte3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1889 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2075 +#, no-wrap +msgid "Terminal widget with improved accessibility and I18N support" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1892 +#, no-wrap +msgid "GNOME Macro Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1899 +#, no-wrap +msgid "`gnomeprefix`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1901 +#, no-wrap +msgid "Supply `configure` with some default locations." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1902 +#, no-wrap +msgid "`intlhack`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1904 +#, no-wrap +msgid "Same as intltool, but patches to make sure [.filename]#share/locale/# is used. Please only use when `intltool` alone is not enough." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1905 +#, no-wrap +msgid "`referencehack`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1906 +#, no-wrap +msgid "This macro is there to help splitting of the API or reference documentation into its own port." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1909 +#, no-wrap +msgid "GNOME Legacy Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1917 +#, no-wrap +msgid "`atspi`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1918 +#, no-wrap +msgid "accessibility/at-spi" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1920 +#, no-wrap +msgid "Assistive Technology Service Provider Interface" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1921 +#, no-wrap +msgid "`esound`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1922 +#, no-wrap +msgid "audio/esound" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1924 +#, no-wrap +msgid "Enlightenment sound package" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1925 +#, no-wrap +msgid "`gal2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1926 +#, no-wrap +msgid "x11-toolkits/gal2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1928 +#, no-wrap +msgid "Collection of widgets taken from GNOME 2 gnumeric" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1929 +#, no-wrap +msgid "`gconf2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1930 +#, no-wrap +msgid "devel/gconf2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1932 +#, no-wrap +msgid "Configuration database system for GNOME 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1933 +#, no-wrap +msgid "`gconfmm26`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1934 +#, no-wrap +msgid "devel/gconfmm26" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1936 +#, no-wrap +msgid "c++ bindings for gconf2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1937 +#, no-wrap +msgid "`gdkpixbuf`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1938 +#, no-wrap +msgid "graphics/gdk-pixbuf" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1941 +#, no-wrap +msgid "`glib12`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1942 +#, no-wrap +msgid "devel/glib12" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1944 +#, no-wrap +msgid "glib 1.2 core library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1945 +#, no-wrap +msgid "`gnomedocutils`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1946 +#, no-wrap +msgid "textproc/gnome-doc-utils" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1948 +#, no-wrap +msgid "GNOME doc utils" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1949 +#, no-wrap +msgid "`gnomemimedata`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1950 +#, no-wrap +msgid "misc/gnome-mime-data" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1952 +#, no-wrap +msgid "MIME and Application database for GNOME 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1953 +#, no-wrap +msgid "`gnomesharp20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1954 +#, no-wrap +msgid "x11-toolkits/gnome-sharp20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1956 +#, no-wrap +msgid "GNOME 2 interfaces for the .NET runtime" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1957 +#, no-wrap +msgid "`gnomespeech`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1958 +#, no-wrap +msgid "accessibility/gnome-speech" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1960 +#, no-wrap +msgid "GNOME 2 text-to-speech API" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1961 +#, no-wrap +msgid "`gnomevfs2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1962 +#, no-wrap +msgid "devel/gnome-vfs" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1964 +#, no-wrap +msgid "GNOME 2 Virtual File System" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1965 +#, no-wrap +msgid "`gtk12`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1966 +#, no-wrap +msgid "x11-toolkits/gtk12" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1968 +#, no-wrap +msgid "Gtk+ 1.2 toolkit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1969 +#, no-wrap +msgid "`gtkhtml3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1970 +#, no-wrap +msgid "www/gtkhtml3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1972 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1976 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2032 +#, no-wrap +msgid "Lightweight HTML rendering/printing/editing engine" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1973 +#, no-wrap +msgid "`gtkhtml4`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1974 +#, no-wrap +msgid "www/gtkhtml4" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1977 +#, no-wrap +msgid "`gtksharp20`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1978 +#, no-wrap +msgid "x11-toolkits/gtk-sharp20" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1980 +#, no-wrap +msgid "GTK+ and GNOME 2 interfaces for the .NET runtime" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1981 +#, no-wrap +msgid "`gtksourceview`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1982 +#, no-wrap +msgid "x11-toolkits/gtksourceview" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1985 +#, no-wrap +msgid "`libartgpl2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1986 +#, no-wrap +msgid "graphics/libart_lgpl" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1988 +#, no-wrap +msgid "Library for high-performance 2D graphics" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1989 +#, no-wrap +msgid "`libbonobo`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1990 +#, no-wrap +msgid "devel/libbonobo" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1992 +#, no-wrap +msgid "Component and compound document system for GNOME 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1993 +#, no-wrap +msgid "`libbonoboui`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1994 +#, no-wrap +msgid "x11-toolkits/libbonoboui" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1996 +#, no-wrap +msgid "GUI frontend to the libbonobo component of GNOME 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1997 +#, no-wrap +msgid "`libgda4`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:1998 +#, no-wrap +msgid "databases/libgda4" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2001 +#, no-wrap +msgid "`libglade2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2002 +#, no-wrap +msgid "devel/libglade2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2004 +#, no-wrap +msgid "GNOME 2 glade library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2005 +#, no-wrap +msgid "`libgnome`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2006 +#, no-wrap +msgid "x11/libgnome" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2008 +#, no-wrap +msgid "Libraries for GNOME 2, a GNU desktop environment" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2009 +#, no-wrap +msgid "`libgnomecanvas`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2010 +#, no-wrap +msgid "graphics/libgnomecanvas" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2012 +#, no-wrap +msgid "Graphics library for GNOME 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2013 +#, no-wrap +msgid "`libgnomekbd`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2014 +#, no-wrap +msgid "x11/libgnomekbd" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2016 +#, no-wrap +msgid "GNOME 2 keyboard shared library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2017 +#, no-wrap +msgid "`libgnomeprint`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2018 +#, no-wrap +msgid "print/libgnomeprint" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2020 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2024 +#, no-wrap +msgid "Gnome 2 print support library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2021 +#, no-wrap +msgid "`libgnomeprintui`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2022 +#, no-wrap +msgid "x11-toolkits/libgnomeprintui" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2025 +#, no-wrap +msgid "`libgnomeui`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2026 +#, no-wrap +msgid "x11-toolkits/libgnomeui" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2028 +#, no-wrap +msgid "Libraries for the GNOME 2 GUI, a GNU desktop environment" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2029 +#, no-wrap +msgid "`libgtkhtml`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2030 +#, no-wrap +msgid "www/libgtkhtml" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2033 +#, no-wrap +msgid "`libgtksourceviewmm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2034 +#, no-wrap +msgid "x11-toolkits/libgtksourceviewmm" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2036 +#, no-wrap +msgid "c++ binding of GtkSourceView" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2037 +#, no-wrap +msgid "`libidl`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2038 +#, no-wrap +msgid "devel/libIDL" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2040 +#, no-wrap +msgid "Library for creating trees of CORBA IDL file" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2041 +#, no-wrap +msgid "`libsigc++12`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2042 +#, no-wrap +msgid "devel/libsigc++12" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2045 +#, no-wrap +msgid "`libwnck`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2046 +#, no-wrap +msgid "x11-toolkits/libwnck" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2048 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2052 +#, no-wrap +msgid "Library used for writing pagers and taskslists" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2049 +#, no-wrap +msgid "`libwnck3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2050 +#, no-wrap +msgid "x11-toolkits/libwnck3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2053 +#, no-wrap +msgid "`orbit2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2054 +#, no-wrap +msgid "devel/ORBit2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2056 +#, no-wrap +msgid "High-performance CORBA ORB with support for the C language" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2057 +#, no-wrap +msgid "`pygnome2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2058 +#, no-wrap +msgid "x11-toolkits/py-gnome2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2060 +#, no-wrap +msgid "Python bindings for GNOME 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2061 +#, no-wrap +msgid "`pygobject`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2062 +#, no-wrap +msgid "devel/py-gobject" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2064 +#, no-wrap +msgid "Python 2, GObject 2.0 bindings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2065 +#, no-wrap +msgid "`pygtk2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2066 +#, no-wrap +msgid "x11-toolkits/py-gtk2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2068 +#, no-wrap +msgid "Set of Python bindings for GTK+" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2069 +#, no-wrap +msgid "`pygtksourceview`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2070 +#, no-wrap +msgid "x11-toolkits/py-gtksourceview" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2072 +#, no-wrap +msgid "Python bindings for GtkSourceView 2" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2073 +#, no-wrap +msgid "`vte`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2074 +#, no-wrap +msgid "x11-toolkits/vte" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2078 +#, no-wrap +msgid "Deprecated Components: Do Not Use" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2085 +#, no-wrap +msgid "`pangox-compat`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2086 +#, no-wrap +msgid "pangox-compat has been deprecated and split off from the pango package." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2089 +#, no-wrap +msgid "Using Qt" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2094 +msgid "" +"For ports that are part of Qt itself, see crossref:uses[uses-qt-dist,`qt-" +"dist`]." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2097 +#, no-wrap +msgid "Ports That Require Qt" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2102 +msgid "" +"The Ports Collection provides support for Qt 5 and Qt 6 with `USES+=qt:5` " +"and `USES+=qt:6` respectively. Set `USE_QT` to the list of required Qt " +"components (libraries, tools, plugins)." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2104 +msgid "" +"The Qt framework exports a number of variables which can be used by ports, " +"some of them listed below:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2106 +#, no-wrap +msgid "Variables Provided to Ports That Use Qt" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2110 +#, no-wrap +msgid "`QMAKE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2112 +#, no-wrap +msgid "Full path to `qmake` binary." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2113 +#, no-wrap +msgid "`LRELEASE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2115 +#, no-wrap +msgid "Full path to `lrelease` utility." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2116 +#, no-wrap +msgid "`MOC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2118 +#, no-wrap +msgid "Full path to `moc`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2119 +#, no-wrap +msgid "`RCC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2121 +#, no-wrap +msgid "Full path to `rcc`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2122 +#, no-wrap +msgid "`UIC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2124 +#, no-wrap +msgid "Full path to `uic`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2125 +#, no-wrap +msgid "`QT_INCDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2127 +#, no-wrap +msgid "Qt include directory." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2128 +#, no-wrap +msgid "`QT_LIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2130 +#, no-wrap +msgid "Qt libraries path." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2131 +#, no-wrap +msgid "`QT_PLUGINDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2132 +#, no-wrap +msgid "Qt plugins path." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2135 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3845 +#, no-wrap +msgid "Component Selection" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2142 +msgid "" +"Individual Qt tool and library dependencies must be specified in `USE_QT`. " +"Every component can be suffixed with `_build` or `_run`, the suffix " +"indicating whether the dependency on the component is at buildtime or " +"runtime. If unsuffixed, the component will be depended on at both build- " +"and runtime. Usually, library components are specified unsuffixed, tool " +"components are mostly specified with the `_build` suffix and plugin " +"components are specified with the `_run` suffix. The most commonly used " +"components are listed below (all available components are listed in " +"`_USE_QT_ALL`, which is generated from `_USE_QT_COMMON` and " +"`_USE_QT[56]_ONLY` in [.filename]#/usr/ports/Mk/Uses/qt.mk#):" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2144 +#, no-wrap +msgid "Available Qt Library Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2148 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2392 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2409 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2540 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3119 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3835 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3855 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3880 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3984 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4154 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4206 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4298 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4389 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4451 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4712 +#, no-wrap +msgid "Name" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2151 +#, no-wrap +msgid "`3d`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2153 +#, no-wrap +msgid "Qt3D module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2154 +#, no-wrap +msgid "`5compat`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2156 +#, no-wrap +msgid "Qt 5 compatibility module for Qt 6" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2157 +#, no-wrap +msgid "`assistant`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2159 +#, no-wrap +msgid "Qt 5 documentation browser" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2160 +#, no-wrap +msgid "`base`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2162 +#, no-wrap +msgid "Qt 6 base module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2163 +#, no-wrap +msgid "`canvas3d`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2165 +#, no-wrap +msgid "Qt canvas3d module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2166 +#, no-wrap +msgid "`charts`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2168 +#, no-wrap +msgid "Qt 5 charts module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2169 +#, no-wrap +msgid "`concurrent`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2171 +#, no-wrap +msgid "Qt multi-threading module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2172 +#, no-wrap +msgid "`connectivity`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2174 +#, no-wrap +msgid "Qt connectivity (Bluetooth/NFC) module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2175 +#, no-wrap +msgid "`core`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2177 +#, no-wrap +msgid "Qt core non-graphical module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2178 +#, no-wrap +msgid "`datavis3d`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2180 +#, no-wrap +msgid "Qt 5 3D data visualization module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2181 +#, no-wrap +msgid "`dbus`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2183 +#, no-wrap +msgid "Qt D-Bus inter-process communication module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2184 +#, no-wrap +msgid "`declarative`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2186 +#, no-wrap +msgid "Qt declarative framework for dynamic user interfaces" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2187 +#, no-wrap +msgid "`designer`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2189 +#, no-wrap +msgid "Qt 5 graphical user interface designer" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2190 +#, no-wrap +msgid "`diag`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2192 +#, no-wrap +msgid "Tool for reporting diagnostic information about Qt and its environment" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2193 +#, no-wrap +msgid "`doc`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2195 +#, no-wrap +msgid "Qt 5 documentation" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2196 +#, no-wrap +msgid "`examples`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2198 +#, no-wrap +msgid "Qt 5 examples sourcecode" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2199 +#, no-wrap +msgid "`gamepad`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2201 +#, no-wrap +msgid "Qt 5 Gamepad Module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2202 +#, no-wrap +msgid "`graphicaleffects`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2204 +#, no-wrap +msgid "Qt Quick graphical effects" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2205 +#, no-wrap +msgid "`gui`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2207 +#, no-wrap +msgid "Qt graphical user interface module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2208 +#, no-wrap +msgid "`help`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2210 +#, no-wrap +msgid "Qt online help integration module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2211 +#, no-wrap +msgid "`l10n`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2213 +#, no-wrap +msgid "Qt localized messages" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2214 +#, no-wrap +msgid "`languageserver`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2216 +#, no-wrap +msgid "Qt 6 Language Server Protocol implementation" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2217 +#, no-wrap +msgid "`linguist`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2219 +#, no-wrap +msgid "Qt 5 translation tool" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2220 +#, no-wrap +msgid "`location`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2222 +#, no-wrap +msgid "Qt location module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2223 +#, no-wrap +msgid "`lottie`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2225 +#, no-wrap +msgid "Qt 6 QML API for rendering graphics and animations" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2226 +#, no-wrap +msgid "`multimedia`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2228 +#, no-wrap +msgid "Qt audio, video, radio and camera support module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2229 +#, no-wrap +msgid "`network`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2231 +#, no-wrap +msgid "Qt network module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2232 +#, no-wrap +msgid "`networkauth`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2234 +#, no-wrap +msgid "Qt network auth module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2235 +#, no-wrap +msgid "`opengl`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2237 +#, no-wrap +msgid "Qt 5-compatible OpenGL support module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2238 +#, no-wrap +msgid "`paths`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2240 +#, no-wrap +msgid "Command line client to QStandardPaths" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2241 +#, no-wrap +msgid "`phonon4`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2243 +#, no-wrap +msgid "KDE multimedia framework" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2244 +#, no-wrap +msgid "`pixeltool`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2246 +#, no-wrap +msgid "Qt 5 screen magnifier" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2247 +#, no-wrap +msgid "`plugininfo`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2249 +#, no-wrap +msgid "Qt 5 plugin metadata dumper" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2250 +#, no-wrap +msgid "`positioning`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2252 +#, no-wrap +msgid "Qt 6 positioning API from sources such as satellite, wifi or text files." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2253 +#, no-wrap +msgid "`printsupport`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2255 +#, no-wrap +msgid "Qt print support module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2256 +#, no-wrap +msgid "`qdbus`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2258 +#, no-wrap +msgid "Qt command-line interface to D-Bus" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2259 +#, no-wrap +msgid "`qdbusviewer`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2261 +#, no-wrap +msgid "Qt 5 graphical interface to D-Bus" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2262 +#, no-wrap +msgid "`qdoc`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2264 +#, no-wrap +msgid "Qt documentation generator" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2265 +#, no-wrap +msgid "`qdoc-data`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2267 +#, no-wrap +msgid "QDoc configuration files" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2268 +#, no-wrap +msgid "`qev`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2270 +#, no-wrap +msgid "Qt QWidget events introspection tool" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2271 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2401 +#, no-wrap +msgid "`qmake`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2273 +#, no-wrap +msgid "Qt Makefile generator" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2274 +#, no-wrap +msgid "`quickcontrols`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2276 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2279 +#, no-wrap +msgid "Set of controls for building complete interfaces in Qt Quick" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2277 +#, no-wrap +msgid "`quickcontrols2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2280 +#, no-wrap +msgid "`remoteobjects`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2282 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2291 +#, no-wrap +msgid "Qt 5 SXCML module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2283 +#, no-wrap +msgid "`script`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2285 +#, no-wrap +msgid "Qt 4-compatible scripting module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2286 +#, no-wrap +msgid "`scripttools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2288 +#, no-wrap +msgid "Qt Script additional components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2289 +#, no-wrap +msgid "`scxml`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2292 +#, no-wrap +msgid "`sensors`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2294 +#, no-wrap +msgid "Qt sensors module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2295 +#, no-wrap +msgid "`serialbus`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2297 +#, no-wrap +msgid "Qt functions to access industrial bus systems" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2298 +#, no-wrap +msgid "`serialport`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2300 +#, no-wrap +msgid "Qt functions to access serial ports" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2301 +#, no-wrap +msgid "`shadertools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2303 +#, no-wrap +msgid "Qt 6 tools for the cross-platform Qt shader pipeline" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2304 +#, no-wrap +msgid "`speech`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2306 +#, no-wrap +msgid "Accessibility features for Qt5" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2307 +#, no-wrap +msgid "`sql`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2309 +#, no-wrap +msgid "Qt SQL database integration module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2310 +#, no-wrap +msgid "`sql-ibase`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2312 +#, no-wrap +msgid "Qt InterBase/Firebird database plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2313 +#, no-wrap +msgid "`sql-mysql`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2315 +#, no-wrap +msgid "Qt MySQL database plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2316 +#, no-wrap +msgid "`sql-odbc`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2318 +#, no-wrap +msgid "Qt Open Database Connectivity plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2319 +#, no-wrap +msgid "`sql-pgsql`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2321 +#, no-wrap +msgid "Qt PostgreSQL database plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2322 +#, no-wrap +msgid "`sql-sqlite2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2324 +#, no-wrap +msgid "Qt SQLite 2 database plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2325 +#, no-wrap +msgid "`sql-sqlite3`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2327 +#, no-wrap +msgid "Qt SQLite 3 database plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2328 +#, no-wrap +msgid "`sql-tds`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2330 +#, no-wrap +msgid "Qt TDS Database Connectivity database plugin" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2331 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3914 +#, no-wrap +msgid "`svg`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2333 +#, no-wrap +msgid "Qt SVG support module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2334 +#, no-wrap +msgid "`testlib`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2336 +#, no-wrap +msgid "Qt unit testing module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2337 +#, no-wrap +msgid "`tools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2339 +#, no-wrap +msgid "Qt 6 assorted tools" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2340 +#, no-wrap +msgid "`translations`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2342 +#, no-wrap +msgid "Qt 6 translation module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2343 +#, no-wrap +msgid "`uiplugin`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2345 +#, no-wrap +msgid "Custom Qt widget plugin interface for Qt Designer" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2346 +#, no-wrap +msgid "`uitools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2348 +#, no-wrap +msgid "Qt Designer UI forms support module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2349 +#, no-wrap +msgid "`virtualkeyboard`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2351 +#, no-wrap +msgid "Qt 5 Virtual Keyboard Module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2352 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3074 +#, no-wrap +msgid "`wayland`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2354 +#, no-wrap +msgid "Qt 5 wrapper for Wayland" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2355 +#, no-wrap +msgid "`webchannel`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2357 +#, no-wrap +msgid "Qt 5 library for integration of C++/QML with HTML/js clients" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2358 +#, no-wrap +msgid "`webengine`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2360 +#, no-wrap +msgid "Qt 5 library to render web content" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2361 +#, no-wrap +msgid "`webkit`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2363 +#, no-wrap +msgid "QtWebKit with a more modern WebKit code base" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2364 +#, no-wrap +msgid "`websockets`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2366 +#, no-wrap +msgid "Qt implementation of WebSocket protocol" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2367 +#, no-wrap +msgid "`websockets-qml`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2369 +#, no-wrap +msgid "Qt implementation of WebSocket protocol (QML bindings)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2370 +#, no-wrap +msgid "`webview`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2372 +#, no-wrap +msgid "Qt component for displaying web content" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2373 +#, no-wrap +msgid "`widgets`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2375 +#, no-wrap +msgid "Qt C++ widgets module" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2376 +#, no-wrap +msgid "`x11extras`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2378 +#, no-wrap +msgid "Qt platform-specific features for X11-based systems" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2379 +#, no-wrap +msgid "`xml`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2381 +#, no-wrap +msgid "Qt SAX and DOM implementations" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2382 +#, no-wrap +msgid "`xmlpatterns`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2383 +#, no-wrap +msgid "Qt support for XPath, XQuery, XSLT and XML Schema" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2386 +msgid "" +"To determine the libraries an application depends on, run `ldd` on the main " +"executable after a successful compilation." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2388 +#, no-wrap +msgid "Available Qt Tool Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2395 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3122 +#, no-wrap +msgid "`buildtools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2397 +#, no-wrap +msgid "build tools (`moc`, `rcc`), needed for almost every Qt application." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2398 +#, no-wrap +msgid "`linguisttools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2400 +#, no-wrap +msgid "localization tools: `lrelease`, `lupdate`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2402 +#, no-wrap +msgid "Makefile generator/build utility" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2405 +#, no-wrap +msgid "Available Qt Plugin Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2412 +#, no-wrap +msgid "`imageformats`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2413 +#, no-wrap +msgid "plugins for TGA, TIFF, and MNG image formats" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2416 +#, no-wrap +msgid "Selecting Qt 5 Components" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2422 +msgid "" +"In this example, the ported application uses the Qt 5 graphical user " +"interface library, the Qt 5 core library, all of the Qt 5 code generation " +"tools and Qt 5's Makefile generator. Since the `gui` library implies a " +"dependency on the core library, `core` does not need to be specified. The " +"Qt 5 code generation tools `moc`, `uic` and `rcc`, as well as the Makefile " +"generator `qmake` are only needed at buildtime, thus they are specified with " +"the `_build` suffix:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2427 +#, no-wrap +msgid "" +"USES=\tqt:5\n" +"USE_QT=\tgui buildtools_build qmake_build\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2432 +#, no-wrap +msgid "Using `qmake`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2438 +msgid "" +"If the application provides a qmake project file ([.filename]#*.pro#), " +"define `USES= qmake` along with `USE_QT`. `USES= qmake` already implies a " +"build dependency on qmake, therefore the qmake component can be omitted from " +"`USE_QT`. Similar to <<using-cmake,CMake>>, qmake supports out-of-source " +"builds, which can be enabled by specifying the `outsource` argument (see " +"<<using-qmake-example,`USES= qmake` example>>). Also see <<using-qmake-" +"arguments>>." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2440 +#, no-wrap +msgid "Possible Arguments for `USES= qmake`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2447 +#, no-wrap +msgid "`no_configure`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2449 +#, no-wrap +msgid "Do not add the configure target. This is implied by `HAS_CONFIGURE=yes` and `GNU_CONFIGURE=yes`. It is required when the build only needs the environment setup from `USES= qmake`, but otherwise runs `qmake` on its own." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2450 +#, no-wrap +msgid "`no_env`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2452 +#, no-wrap +msgid "Suppress modification of the configure and make environments. It is only required when `qmake` is used to configure the software and the build fails to understand the environment setup by `USES= qmake`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2453 +#, no-wrap +msgid "`norecursive`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2455 +#, no-wrap +msgid "Do not pass the `-recursive` argument to `qmake`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2456 +#, no-wrap +msgid "`outsource`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2457 +#, no-wrap +msgid "Perform an out-of-source build." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2460 +#, no-wrap +msgid "Variables for Ports That Use `qmake`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2467 +#, no-wrap +msgid "`QMAKE_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2469 +#, no-wrap +msgid "Port specific qmake flags to be passed to the `qmake` binary." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2470 +#, no-wrap +msgid "`QMAKE_ENV`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2472 +#, no-wrap +msgid "Environment variables to be set for the `qmake` binary. The default is `${CONFIGURE_ENV}`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2473 +#, no-wrap +msgid "`QMAKE_SOURCE_PATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2474 +#, no-wrap +msgid "Path to qmake project files ([.filename]#.pro#). The default is `${WRKSRC}` if an out-of-source build is requested, empty otherwise." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2477 +msgid "When using `USES= qmake`, these settings are deployed:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2484 +#, no-wrap +msgid "" +"CONFIGURE_ARGS+=\t--with-qt-includes=${QT_INCDIR} \\\n" +"\t\t\t--with-qt-libraries=${QT_LIBDIR} \\\n" +"\t\t\t--with-extra-libs=${LOCALBASE}/lib \\\n" +"\t\t\t--with-extra-includes=${LOCALBASE}/include\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2488 +#, no-wrap +msgid "" +"CONFIGURE_ENV+=\tQTDIR=\"${QT_PREFIX}\" QMAKE=\"${QMAKE}\" \\\n" +"\t\tMOC=\"${MOC}\" RCC=\"${RCC}\" UIC=\"${UIC}\" \\\n" +"\t\tQMAKESPEC=\"${QMAKESPEC}\"\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2492 +#, no-wrap +msgid "" +"PLIST_SUB+=\tQT_INCDIR=${QT_INCDIR_REL} \\\n" +"\t\tQT_LIBDIR=${QT_LIBDIR_REL} \\\n" +"\t\tQT_PLUGINDIR=${QT_PLUGINDIR_REL}\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2496 +msgid "" +"Some configure scripts do not support the arguments above. To suppress " +"modification of `CONFIGURE_ENV` and `CONFIGURE_ARGS`, set `USES= qmake:" +"no_env`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2498 +#, no-wrap +msgid "`USES= qmake` Example" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2502 +msgid "This snippet demonstrates the use of qmake for a Qt 5 port:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2507 +#, no-wrap +msgid "" +"USES=\tqmake:outsource qt:5\n" +"USE_QT=\tbuildtools_build\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2512 +msgid "" +"Qt applications are often written to be cross-platform and often X11/Unix is " +"not the platform they are developed on, which in turn leads to certain loose " +"ends, like:" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2514 +msgid "" +"_Missing additional include paths._ Many applications come with system tray " +"icon support, but neglect to look for includes and/or libraries in the X11 " +"directories. To add directories to `qmake`'s include and library search " +"paths via the command line, use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2519 +#, no-wrap +msgid "" +"QMAKE_ARGS+=\tINCLUDEPATH+=${LOCALBASE}/include \\\n" +"\t\tLIBS+=-L${LOCALBASE}/lib\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2522 +msgid "" +"_Bogus installation paths._ Sometimes data such as icons or .desktop files " +"are by default installed into directories which are not scanned by XDG-" +"compatible applications. package:editors/texmaker[] is an example for this - " +"look at [.filename]#patch-texmaker.pro# in the [.filename]#files# directory " +"of that port for a template on how to remedy this directly in the `qmake` " +"project file." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2524 +#, no-wrap +msgid "Using KDE" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2527 +#, no-wrap +msgid "KDE Variable Definitions" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2534 +msgid "" +"If the application depends on KDE, set `USES+=kde:5` and `USE_KDE` to the " +"list of required components. `_build` and `_run` suffixes can be used to " +"force components dependency type (for example, `baseapps_run`). If no " +"suffix is set, a default dependency type will be used. To force both types, " +"add the component twice with both suffixes (for example, `ecm_build " +"ecm_run`). Available components are listed below (up-to-date components are " +"also listed in [.filename]#/usr/ports/Mk/Uses/kde.mk#):" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2536 +#, no-wrap +msgid "Available KDE Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2543 +#, no-wrap +msgid "`activities`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2545 +#, no-wrap +msgid "KF5 runtime and library to organize work in separate activities" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2546 +#, no-wrap +msgid "`activities-stats`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2548 +#, no-wrap +msgid "KF5 statistics for activities" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2549 +#, no-wrap +msgid "`activitymanagerd`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2551 +#, no-wrap +msgid "System service to manage user's activities, track the usage patterns" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2552 +#, no-wrap +msgid "`akonadi`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2554 +#, no-wrap +msgid "Storage server for KDE-Pim" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2555 +#, no-wrap +msgid "`akonadicalendar`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2557 +#, no-wrap +msgid "Akonadi Calendar Integration" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2558 +#, no-wrap +msgid "`akonadiconsole`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2560 +#, no-wrap +msgid "Akonadi management and debugging console" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2561 +#, no-wrap +msgid "`akonadicontacts`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2563 +#, no-wrap +msgid "Libraries and daemons to implement Contact Management in Akonadi" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2564 +#, no-wrap +msgid "`akonadiimportwizard`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2566 +#, no-wrap +msgid "Import data from other mail clients to KMail" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2567 +#, no-wrap +msgid "`akonadimime`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2569 +#, no-wrap +msgid "Libraries and daemons to implement basic email handling" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2570 +#, no-wrap +msgid "`akonadinotes`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2572 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2935 +#, no-wrap +msgid "KDE library for accessing mail storages in MBox format" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2573 +#, no-wrap +msgid "`akonadisearch`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2575 +#, no-wrap +msgid "Libraries and daemons to implement searching in Akonadi" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2576 +#, no-wrap +msgid "`akregator`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2578 +#, no-wrap +msgid "A Feed Reader by KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2579 +#, no-wrap +msgid "`alarmcalendar`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2581 +#, no-wrap +msgid "KDE API for KAlarm alarms" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2582 +#, no-wrap +msgid "`apidox`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2584 +#, no-wrap +msgid "KF5 API Documentation Tools" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2585 +#, no-wrap +msgid "`archive`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2587 +#, no-wrap +msgid "KF5 library that provides classes for handling archive formats" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2588 +#, no-wrap +msgid "`attica`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2590 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2593 +#, no-wrap +msgid "Open Collaboration Services API library KDE5 version" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2591 +#, no-wrap +msgid "`attica5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2594 +#, no-wrap +msgid "`auth`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2596 +#, no-wrap +msgid "KF5 abstraction to system policy and authentication features" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2597 +#, no-wrap +msgid "`baloo`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2599 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2605 +#, no-wrap +msgid "KF5 Framework for searching and managing user metadata" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2600 +#, no-wrap +msgid "`baloo-widgets`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2602 +#, no-wrap +msgid "BalooWidgets library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2603 +#, no-wrap +msgid "`baloo5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2606 +#, no-wrap +msgid "`blog`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2608 +#, no-wrap +msgid "KDE API for weblogging access" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2609 +#, no-wrap +msgid "`bookmarks`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2611 +#, no-wrap +msgid "KF5 library for bookmarks and the XBEL format" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2612 +#, no-wrap +msgid "`breeze`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2614 +#, no-wrap +msgid "Plasma5 artwork, styles and assets for the Breeze visual style" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2615 +#, no-wrap +msgid "`breeze-gtk`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2617 +#, no-wrap +msgid "Plasma5 Breeze visual style for Gtk" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2618 +#, no-wrap +msgid "`breeze-icons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2620 +#, no-wrap +msgid "Breeze icon theme for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2621 +#, no-wrap +msgid "`calendarcore`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2623 +#, no-wrap +msgid "KDE calendar access library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2624 +#, no-wrap +msgid "`calendarsupport`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2626 +#, no-wrap +msgid "Calendar support libraries for KDEPim" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2627 +#, no-wrap +msgid "`calendarutils`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2629 +#, no-wrap +msgid "KDE utility and user interface functions for accessing calendar" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2630 +#, no-wrap +msgid "`codecs`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2632 +#, no-wrap +msgid "KF5 library for string manipulation" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2633 +#, no-wrap +msgid "`completion`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2635 +#, no-wrap +msgid "KF5 text completion helpers and widgets" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2636 +#, no-wrap +msgid "`config`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2638 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2641 +#, no-wrap +msgid "KF5 widgets for configuration dialogs" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2639 +#, no-wrap +msgid "`configwidgets`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2642 +#, no-wrap +msgid "`contacts`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2644 +#, no-wrap +msgid "KDE api to manage contact information" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2645 +#, no-wrap +msgid "`coreaddons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2647 +#, no-wrap +msgid "KF5 addons to QtCore" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2648 +#, no-wrap +msgid "`crash`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2650 +#, no-wrap +msgid "KF5 library to handle crash analysis and bug report from apps" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2651 +#, no-wrap +msgid "`dbusaddons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2653 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3061 +#, no-wrap +msgid "KF5 addons to QtDBus" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2654 +#, no-wrap +msgid "`decoration`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2656 +#, no-wrap +msgid "Plasma5 library to create window decorations" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2657 +#, no-wrap +msgid "`designerplugin`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2659 +#, no-wrap +msgid "KF5 integration of Frameworks widgets in Qt Designer/Creator" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2660 +#, no-wrap +msgid "`discover`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2662 +#, no-wrap +msgid "Plasma5 package management tools" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2663 +#, no-wrap +msgid "`dnssd`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2665 +#, no-wrap +msgid "KF5 abstraction to system DNSSD features" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2666 +#, no-wrap +msgid "`doctools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2668 +#, no-wrap +msgid "KF5 documentation generation from docbook" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2669 +#, no-wrap +msgid "`drkonqi`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2671 +#, no-wrap +msgid "Plasma5 crash handler" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2672 +#, no-wrap +msgid "`ecm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2674 +#, no-wrap +msgid "Extra modules and scripts for CMake" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2675 +#, no-wrap +msgid "`emoticons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2677 +#, no-wrap +msgid "KF5 library to convert emoticons" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2678 +#, no-wrap +msgid "`eventviews`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2680 +#, no-wrap +msgid "Event view libriares for KDEPim" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2681 +#, no-wrap +msgid "`filemetadata`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2683 +#, no-wrap +msgid "KF5 library for extracting file metadata" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2684 +#, no-wrap +msgid "`frameworkintegration`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2686 +#, no-wrap +msgid "KF5 workspace and cross-framework integration plugins" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2687 +#, no-wrap +msgid "`gapi`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2689 +#, no-wrap +msgid "KDE based library to access google services" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2690 +#, no-wrap +msgid "`globalaccel`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2692 +#, no-wrap +msgid "KF5 library to add support for global workspace shortcuts" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2693 +#, no-wrap +msgid "`grantlee-editor`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2695 +#, no-wrap +msgid "Editor for Grantlee themes" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2696 +#, no-wrap +msgid "`grantleetheme`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2698 +#, no-wrap +msgid "KDE PIM grantleetheme" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2699 +#, no-wrap +msgid "`gravatar`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2701 +#, no-wrap +msgid "Library for gravatar support" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2702 +#, no-wrap +msgid "`guiaddons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2704 +#, no-wrap +msgid "KF5 addons to QtGui" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2705 +#, no-wrap +msgid "`holidays`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2707 +#, no-wrap +msgid "KDE library for calendar holidays" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2708 +#, no-wrap +msgid "`hotkeys`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2710 +#, no-wrap +msgid "Plasma5 library for hotkeys" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2711 +#, no-wrap +msgid "`i18n`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2713 +#, no-wrap +msgid "KF5 advanced internationalization framework" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2714 +#, no-wrap +msgid "`iconthemes`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2716 +#, no-wrap +msgid "KF5 library for handling icons in applications" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2717 +#, no-wrap +msgid "`identitymanagement`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2719 +#, no-wrap +msgid "KDE pim identities" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2720 +#, no-wrap +msgid "`idletime`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2722 +#, no-wrap +msgid "KF5 library for monitoring user activity" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2723 +#, no-wrap +msgid "`imap`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2725 +#, no-wrap +msgid "KDE API for IMAP support" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2726 +#, no-wrap +msgid "`incidenceeditor`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2728 +#, no-wrap +msgid "Incidence editor libriares for KDEPim" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2729 +#, no-wrap +msgid "`infocenter`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2731 +#, no-wrap +msgid "Plasma5 utility providing system information" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2732 +#, no-wrap +msgid "`init`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2734 +#, no-wrap +msgid "KF5 process launcher to speed up launching KDE applications" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2735 +#, no-wrap +msgid "`itemmodels`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2737 +#, no-wrap +msgid "KF5 models for Qt Model/View system" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2738 +#, no-wrap +msgid "`itemviews`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2740 +#, no-wrap +msgid "KF5 widget addons for Qt Model/View" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2741 +#, no-wrap +msgid "`jobwidgets`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2743 +#, no-wrap +msgid "KF5 widgets for tracking KJob instance" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2744 +#, no-wrap +msgid "`js`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2746 +#, no-wrap +msgid "KF5 library providing an ECMAScript interpreter" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2747 +#, no-wrap +msgid "`jsembed`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2749 +#, no-wrap +msgid "KF5 library for binding JavaScript objects to QObjects" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2750 +#, no-wrap +msgid "`kaddressbook`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2752 +#, no-wrap +msgid "KDE contact manager" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2753 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2756 +#, no-wrap +msgid "`kalarm`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2755 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2758 +#, no-wrap +msgid "Personal alarm scheduler" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2759 +#, no-wrap +msgid "`kate`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2761 +#, no-wrap +msgid "Basic editor framework for the KDE system" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2762 +#, no-wrap +msgid "`kcmutils`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2764 +#, no-wrap +msgid "KF5 utilities for working with KCModules" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2765 +#, no-wrap +msgid "`kde-cli-tools`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2767 +#, no-wrap +msgid "Plasma5 non-interactive system tools" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2768 +#, no-wrap +msgid "`kde-gtk-config`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2770 +#, no-wrap +msgid "Plasma5 GTK2 and GTK3 configurator" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2771 +#, no-wrap +msgid "`kdeclarative`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2773 +#, no-wrap +msgid "KF5 library providing integration of QML and KDE Frameworks" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2774 +#, no-wrap +msgid "`kded`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2776 +#, no-wrap +msgid "KF5 extensible daemon for providing system level services" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2777 +#, no-wrap +msgid "`kdelibs4support`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2779 +#, no-wrap +msgid "KF5 porting aid from KDELibs4" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2780 +#, no-wrap +msgid "`kdepim-addons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2782 +#, no-wrap +msgid "KDE PIM addons" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2783 +#, no-wrap +msgid "`kdepim-apps-libs`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2785 +#, no-wrap +msgid "KDE PIM mail related libraries" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2786 +#, no-wrap +msgid "`kdepim-runtime5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2788 +#, no-wrap +msgid "KDE PIM tools and services" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2789 +#, no-wrap +msgid "`kdeplasma-addons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2791 +#, no-wrap +msgid "Plasma5 addons to improve the Plasma experience" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2792 +#, no-wrap +msgid "`kdesu`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2794 +#, no-wrap +msgid "KF5 integration with su for elevated privileges" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2795 +#, no-wrap +msgid "`kdewebkit`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2797 +#, no-wrap +msgid "KF5 library providing integration of QtWebKit" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2798 +#, no-wrap +msgid "`kgamma5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2800 +#, no-wrap +msgid "Plasma5 monitor's gamma settings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2801 +#, no-wrap +msgid "`khtml`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2803 +#, no-wrap +msgid "KF5 KTHML rendering engine" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2804 +#, no-wrap +msgid "`kimageformats`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2806 +#, no-wrap +msgid "KF5 library providing support for additional image formats" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2807 +#, no-wrap +msgid "`kio`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2809 +#, no-wrap +msgid "KF5 resource and network access abstraction" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2810 +#, no-wrap +msgid "`kirigami2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2812 +#, no-wrap +msgid "QtQuick based components set" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2813 +#, no-wrap +msgid "`kitinerary`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2815 +#, no-wrap +msgid "Data Model and Extraction System for Travel Reservation information" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2816 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2819 +#, no-wrap +msgid "`kmail`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2818 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2821 +#, no-wrap +msgid "KDE mail client" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2822 +#, no-wrap +msgid "`kmail-account-wizard`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2824 +#, no-wrap +msgid "KDE mail account wizard" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2825 +#, no-wrap +msgid "`kmenuedit`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2827 +#, no-wrap +msgid "Plasma5 menu editor" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2828 +#, no-wrap +msgid "`knotes`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2830 +#, no-wrap +msgid "Popup notes" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2831 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2834 +#, no-wrap +msgid "`kontact`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2833 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2836 +#, no-wrap +msgid "KDE Personal Information Manager" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2837 +#, no-wrap +msgid "`kontactinterface`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2839 +#, no-wrap +msgid "KDE glue for embedding KParts into Kontact" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2840 +#, no-wrap +msgid "`korganizer`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2842 +#, no-wrap +msgid "Calendar and scheduling Program" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2843 +#, no-wrap +msgid "`kpimdav`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2845 +#, no-wrap +msgid "A DAV protocol implementation with KJobs" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2846 +#, no-wrap +msgid "`kpkpass`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2848 +#, no-wrap +msgid "Library to deal with Apple Wallet pass files" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2849 +#, no-wrap +msgid "`kross`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2851 +#, no-wrap +msgid "KF5 multi-language application scripting" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2852 +#, no-wrap +msgid "`kscreen`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2854 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2914 +#, no-wrap +msgid "Plasma5 screen management library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2855 +#, no-wrap +msgid "`kscreenlocker`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2857 +#, no-wrap +msgid "Plasma5 secure lock screen architecture" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2858 +#, no-wrap +msgid "`ksmtp`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2860 +#, no-wrap +msgid "Job-based library to send email through an SMTP server" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2861 +#, no-wrap +msgid "`ksshaskpass`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2863 +#, no-wrap +msgid "Plasma5 ssh-add frontend" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2864 +#, no-wrap +msgid "`ksysguard`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2866 +#, no-wrap +msgid "Plasma5 utility to track and control the running processes" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2867 +#, no-wrap +msgid "`kwallet-pam`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2869 +#, no-wrap +msgid "Plasma5 KWallet PAM Integration" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2870 +#, no-wrap +msgid "`kwayland-integration`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2872 +#, no-wrap +msgid "Integration plugins for a Wayland-based desktop" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2873 +#, no-wrap +msgid "`kwin`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2875 +#, no-wrap +msgid "Plasma5 window manager" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2876 +#, no-wrap +msgid "`kwrited`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2878 +#, no-wrap +msgid "Plasma5 daemon listening for wall and write messages" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2879 +#, no-wrap +msgid "`ldap`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2881 +#, no-wrap +msgid "LDAP access API for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2882 +#, no-wrap +msgid "`libkcddb`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2884 +#, no-wrap +msgid "KDE CDDB library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2885 +#, no-wrap +msgid "`libkcompactdisc`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2887 +#, no-wrap +msgid "KDE library for interfacing with audio CDs" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2888 +#, no-wrap +msgid "`libkdcraw`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2890 +#, no-wrap +msgid "LibRaw interface for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2891 +#, no-wrap +msgid "`libkdegames`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2893 +#, no-wrap +msgid "Libraries used by KDE games" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2894 +#, no-wrap +msgid "`libkdepim`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2896 +#, no-wrap +msgid "KDE PIM Libraries" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2897 +#, no-wrap +msgid "`libkeduvocdocument`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2899 +#, no-wrap +msgid "Library for reading and writing vocabulary files" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2900 +#, no-wrap +msgid "`libkexiv2`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2902 +#, no-wrap +msgid "Exiv2 library interface for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2903 +#, no-wrap +msgid "`libkipi`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2905 +#, no-wrap +msgid "KDE Image Plugin Interface" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2906 +#, no-wrap +msgid "`libkleo`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2908 +#, no-wrap +msgid "Certificate manager for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2909 +#, no-wrap +msgid "`libksane`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2911 +#, no-wrap +msgid "SANE library interface for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2912 +#, no-wrap +msgid "`libkscreen`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2915 +#, no-wrap +msgid "`libksieve`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2917 +#, no-wrap +msgid "Sieve libriares for KDEPim" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2918 +#, no-wrap +msgid "`libksysguard`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2920 +#, no-wrap +msgid "Plasma5 library to track and control running processes" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2921 +#, no-wrap +msgid "`mailcommon`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2923 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2983 +#, no-wrap +msgid "Common libriares for KDEPim" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2924 +#, no-wrap +msgid "`mailimporter`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2926 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2938 +#, no-wrap +msgid "Import mbox files to KMail" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2927 +#, no-wrap +msgid "`mailtransport`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2929 +#, no-wrap +msgid "KDE library to managing mail transport" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2930 +#, no-wrap +msgid "`marble`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2932 +#, no-wrap +msgid "Virtual globe and world atlas for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2933 +#, no-wrap +msgid "`mbox`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2936 +#, no-wrap +msgid "`mbox-importer`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2939 +#, no-wrap +msgid "`mediaplayer`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2941 +#, no-wrap +msgid "KF5 plugin interface for media player features" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2942 +#, no-wrap +msgid "`messagelib`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2944 +#, no-wrap +msgid "Library for handling messages" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2945 +#, no-wrap +msgid "`milou`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2947 +#, no-wrap +msgid "Plasma5 Plasmoid for search" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2948 +#, no-wrap +msgid "`mime`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2950 +#, no-wrap +msgid "Library for handling MIME data" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2951 +#, no-wrap +msgid "`newstuff`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2953 +#, no-wrap +msgid "KF5 library for downloading application assets from the network" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2954 +#, no-wrap +msgid "`notifications`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2956 +#, no-wrap +msgid "KF5 abstraction for system notifications" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2957 +#, no-wrap +msgid "`notifyconfig`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2959 +#, no-wrap +msgid "KF5 configuration system for KNotify" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2960 +#, no-wrap +msgid "`okular`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2962 +#, no-wrap +msgid "KDE universal document viewer" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2963 +#, no-wrap +msgid "`oxygen`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2965 +#, no-wrap +msgid "Plasma5 Oxygen style" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2966 +#, no-wrap +msgid "`oxygen-icons5`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2968 +#, no-wrap +msgid "The Oxygen icon theme for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2969 +#, no-wrap +msgid "`package`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2971 +#, no-wrap +msgid "KF5 library to load and install packages" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2972 +#, no-wrap +msgid "`parts`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2974 +#, no-wrap +msgid "KF5 document centric plugin system" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2975 +#, no-wrap +msgid "`people`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2977 +#, no-wrap +msgid "KF5 library providing access to contacts" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2978 +#, no-wrap +msgid "`pim-data-exporter`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2980 +#, no-wrap +msgid "Import and export KDE PIM settings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2981 +#, no-wrap +msgid "`pimcommon`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2984 +#, no-wrap +msgid "`pimtextedit`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2986 +#, no-wrap +msgid "KDE library for PIM-specific text editing utilities" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2987 +#, no-wrap +msgid "`plasma-browser-integration`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2989 +#, no-wrap +msgid "Plasma5 components to integrate browsers into the desktop" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2990 +#, no-wrap +msgid "`plasma-desktop`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2992 +#, no-wrap +msgid "Plasma5 plasma desktop" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2993 +#, no-wrap +msgid "`plasma-framework`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2995 +#, no-wrap +msgid "KF5 plugin based UI runtime used to write user interfaces" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2996 +#, no-wrap +msgid "`plasma-integration`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2998 +#, no-wrap +msgid "Qt Platform Theme integration plugins for the Plasma workspaces" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:2999 +#, no-wrap +msgid "`plasma-pa`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3001 +#, no-wrap +msgid "Plasma5 Plasma pulse audio mixer" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3002 +#, no-wrap +msgid "`plasma-sdk`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3004 +#, no-wrap +msgid "Plasma5 applications useful for Plasma development" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3005 +#, no-wrap +msgid "`plasma-workspace`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3007 +#, no-wrap +msgid "Plasma5 Plasma workspace" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3008 +#, no-wrap +msgid "`plasma-workspace-wallpapers`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3010 +#, no-wrap +msgid "Plasma5 wallpapers" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3011 +#, no-wrap +msgid "`plotting`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3013 +#, no-wrap +msgid "KF5 lightweight plotting framework" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3014 +#, no-wrap +msgid "`polkit-kde-agent-1`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3016 +#, no-wrap +msgid "Plasma5 daemon providing a polkit authentication UI" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3017 +#, no-wrap +msgid "`powerdevil`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3019 +#, no-wrap +msgid "Plasma5 tool to manage the power consumption settings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3020 +#, no-wrap +msgid "`prison`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3022 +#, no-wrap +msgid "API to produce barcodes" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3023 +#, no-wrap +msgid "`pty`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3025 +#, no-wrap +msgid "KF5 pty abstraction" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3026 +#, no-wrap +msgid "`purpose`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3028 +#, no-wrap +msgid "Offers available actions for a specific purpose" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3029 +#, no-wrap +msgid "`qqc2-desktop-style`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3031 +#, no-wrap +msgid "Qt QuickControl2 style for KDE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3032 +#, no-wrap +msgid "`runner`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3034 +#, no-wrap +msgid "KF5 parallelized query system" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3035 +#, no-wrap +msgid "`service`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3037 +#, no-wrap +msgid "KF5 advanced plugin and service introspection" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3038 +#, no-wrap +msgid "`solid`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3040 +#, no-wrap +msgid "KF5 hardware integration and detection" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3041 +#, no-wrap +msgid "`sonnet`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3043 +#, no-wrap +msgid "KF5 plugin-based spell checking library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3044 +#, no-wrap +msgid "`syndication`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3046 +#, no-wrap +msgid "KDE RSS feed handling library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3047 +#, no-wrap +msgid "`syntaxhighlighting`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3049 +#, no-wrap +msgid "KF5 syntax highlighting engine for structured text and code" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3050 +#, no-wrap +msgid "`systemsettings`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3052 +#, no-wrap +msgid "Plasma5 system settings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3053 +#, no-wrap +msgid "`texteditor`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3055 +#, no-wrap +msgid "KF5 advanced embeddable text editor" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3056 +#, no-wrap +msgid "`textwidgets`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3058 +#, no-wrap +msgid "KF5 advanced text editing widgets" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3059 +#, no-wrap +msgid "`threadweaver`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3062 +#, no-wrap +msgid "`tnef`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3064 +#, no-wrap +msgid "KDE API for the handling of TNEF data" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3065 +#, no-wrap +msgid "`unitconversion`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3067 +#, no-wrap +msgid "KF5 library for unit conversion" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3068 +#, no-wrap +msgid "`user-manager`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3070 +#, no-wrap +msgid "Plasma5 user manager" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3071 +#, no-wrap +msgid "`wallet`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3073 +#, no-wrap +msgid "KF5 secure and unified container for user passwords" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3076 +#, no-wrap +msgid "KF5 Client and Server library wrapper for the Wayland libraries" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3077 +#, no-wrap +msgid "`widgetsaddons`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3079 +#, no-wrap +msgid "KF5 addons to QtWidgets" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3080 +#, no-wrap +msgid "`windowsystem`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3082 +#, no-wrap +msgid "KF5 library for access to the windowing system" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3083 +#, no-wrap +msgid "`xmlgui`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3085 +#, no-wrap +msgid "KF5 user configurable main windows" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3086 +#, no-wrap +msgid "`xmlrpcclient`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3087 +#, no-wrap +msgid "KF5 interaction with XMLRPC services" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3090 +#, no-wrap +msgid "`USE_KDE` Example" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3099 +msgid "" +"This is a simple example for a KDE port. `USES= cmake` instructs the port " +"to utilize CMake, a configuration tool widely used by KDE projects (see " +"<<using-cmake>> for detailed usage). `USE_KDE` brings dependency on KDE " +"libraries. Required KDE components and other dependencies can be determined " +"through the configure log. `USE_KDE` does not imply `USE_QT`. If a port " +"requires some Qt components, specify them in `USE_QT`." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3105 +#, no-wrap +msgid "" +"USES=\t\tcmake kde:5 qt:5\n" +"USE_KDE=\tecm\n" +"USE_QT=\t\tcore buildtools_build qmake_build\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3110 +#, no-wrap +msgid "Using LXQt" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3113 +msgid "" +"Applications depending on LXQt should set `USES+= lxqt` and set `USE_LXQT` " +"to the list of required components from the table below" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3115 +#, no-wrap +msgid "Available LXQt Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3124 +#, no-wrap +msgid "Helpers for additional CMake modules" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3125 +#, no-wrap +msgid "`libfmqt`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3127 +#, no-wrap +msgid "Libfm Qt bindings" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3128 +#, no-wrap +msgid "`lxqt`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3130 +#, no-wrap +msgid "LXQt core library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3131 +#, no-wrap +msgid "`qtxdg`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3132 +#, no-wrap +msgid "Qt implementation of freedesktop.org XDG specifications" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3135 +#, no-wrap +msgid "`USE_LXQT` Example" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3140 +msgid "" +"This is a simple example, `USE_LXQT` adds a dependency on LXQt libraries. " +"Required LXQt components and other dependencies can be determined from the " +"configure log." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3146 +#, no-wrap +msgid "" +"USES=\tcmake lxqt qt:5 tar:xz\n" +"USE_QT=\t\tcore dbus widgets buildtools_build qmake_build\n" +"USE_LXQT=\tbuildtools libfmqt\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3151 +#, no-wrap +msgid "Using Java" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3154 +#, no-wrap +msgid "Variable Definitions" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3157 +msgid "" +"If the port needs a Java(TM) Development Kit (JDK(TM)) to either build, run " +"or even extract the distfile, then define `USE_JAVA`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3161 +msgid "" +"There are several JDKs in the ports collection, from various vendors, and in " +"several versions. If the port must use a particular version, specify it " +"using the `JAVA_VERSION` variable. The most current version is package:java/" +"openjdk18[], with package:java/openjdk17[], package:java/openjdk16[], " +"package:java/openjdk15[], package:java/openjdk14[], package:java/" +"openjdk13[], package:java/openjdk12[], package:java/openjdk11[], package:" +"java/openjdk8[], and package:java/openjdk7[] also available." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3163 +#, no-wrap +msgid "Variables Which May be Set by Ports That Use Java" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3170 +#, no-wrap +msgid "`USE_JAVA`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3172 +#, no-wrap +msgid "Define for the remaining variables to have any effect." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3173 +#, no-wrap +msgid "`JAVA_VERSION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3176 +#, no-wrap +msgid "" +"List of space-separated suitable Java versions for the port.\n" +"An optional `\\+` allows specifying a range of versions (allowed values: `8[+] 11[\\+] 17[+] 18[\\+] 19[+] 20[\\+] 21[+]`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3177 +#, no-wrap +msgid "`JAVA_OS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3179 +#, no-wrap +msgid "List of space-separated suitable JDK port operating systems for the port (allowed values: `native linux`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3180 +#, no-wrap +msgid "`JAVA_VENDOR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3182 +#, no-wrap +msgid "List of space-separated suitable JDK port vendors for the port (allowed values: `openjdk oracle`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3183 +#, no-wrap +msgid "`JAVA_BUILD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3185 +#, no-wrap +msgid "When set, add the selected JDK port to the build dependencies." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3186 +#, no-wrap +msgid "`JAVA_RUN`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3188 +#, no-wrap +msgid "When set, add the selected JDK port to the run dependencies." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3189 +#, no-wrap +msgid "`JAVA_EXTRACT`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3190 +#, no-wrap +msgid "When set, add the selected JDK port to the extract dependencies." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3193 +msgid "" +"Below is the list of all settings a port will receive after setting " +"`USE_JAVA`:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3195 +#, no-wrap +msgid "Variables Provided to Ports That Use Java" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3201 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3280 +#, no-wrap +msgid "Value" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3202 +#, no-wrap +msgid "`JAVA_PORT`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3204 +#, no-wrap +msgid "The name of the JDK port (for example, `java/openjdk6`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3205 +#, no-wrap +msgid "`JAVA_PORT_VERSION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3207 +#, no-wrap +msgid "The full version of the JDK port (for example, `1.6.0`). Only the first two digits of this version number are needed, use `${JAVA_PORT_VERSION:C/^([0-9])\\.([0-9])(.*)$/\\1.\\2/}`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3208 +#, no-wrap +msgid "`JAVA_PORT_OS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3210 +#, no-wrap +msgid "The operating system used by the JDK port (for example, `'native'`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3211 +#, no-wrap +msgid "`JAVA_PORT_VENDOR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3213 +#, no-wrap +msgid "The vendor of the JDK port (for example, `'openjdk'`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3214 +#, no-wrap +msgid "`JAVA_PORT_OS_DESCRIPTION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3216 +#, no-wrap +msgid "Description of the operating system used by the JDK port (for example, `'Native'`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3217 +#, no-wrap +msgid "`JAVA_PORT_VENDOR_DESCRIPTION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3219 +#, no-wrap +msgid "Description of the vendor of the JDK port (for example, `'OpenJDK BSD Porting Team'`)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3220 +#, no-wrap +msgid "`JAVA_HOME`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3222 +#, no-wrap +msgid "Path to the installation directory of the JDK (for example, [.filename]#'/usr/local/openjdk6'#)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3223 +#, no-wrap +msgid "`JAVAC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3225 +#, no-wrap +msgid "Path to the Java compiler to use (for example, [.filename]#'/usr/local/openjdk6/bin/javac'#)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3226 +#, no-wrap +msgid "`JAR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3228 +#, no-wrap +msgid "Path to the `jar` tool to use (for example, [.filename]#'/usr/local/openjdk6/bin/jar'# or [.filename]#'/usr/local/bin/fastjar'#)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3229 +#, no-wrap +msgid "`APPLETVIEWER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3231 +#, no-wrap +msgid "Path to the `appletviewer` utility (for example, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3232 +#, no-wrap +msgid "`JAVA`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3234 +#, no-wrap +msgid "Path to the `java` executable. Use this for executing Java programs (for example, [.filename]#'/usr/local/openjdk6/bin/java'#)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3235 +#, no-wrap +msgid "`JAVADOC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3237 +#, no-wrap +msgid "Path to the `javadoc` utility program." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3238 +#, no-wrap +msgid "`JAVAH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3240 +#, no-wrap +msgid "Path to the `javah` program." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3241 +#, no-wrap +msgid "`JAVAP`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3243 +#, no-wrap +msgid "Path to the `javap` program." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3244 +#, no-wrap +msgid "`JAVA_KEYTOOL`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3246 +#, no-wrap +msgid "Path to the `keytool` utility program." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3247 +#, no-wrap +msgid "`JAVA_N2A`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3249 +#, no-wrap +msgid "Path to the `native2ascii` tool." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3250 +#, no-wrap +msgid "`JAVA_POLICYTOOL`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3252 +#, no-wrap +msgid "Path to the `policytool` program." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3253 +#, no-wrap +msgid "`JAVA_SERIALVER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3255 +#, no-wrap +msgid "Path to the `serialver` utility program." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3256 +#, no-wrap +msgid "`RMIC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3258 +#, no-wrap +msgid "Path to the RMI stub/skeleton generator, `rmic`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3259 +#, no-wrap +msgid "`RMIREGISTRY`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3261 +#, no-wrap +msgid "Path to the RMI registry program, `rmiregistry`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3262 +#, no-wrap +msgid "`RMID`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3264 +#, no-wrap +msgid "Path to the RMI daemon program `rmid`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3265 +#, no-wrap +msgid "`JAVA_CLASSES`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3266 +#, no-wrap +msgid "Path to the archive that contains the JDK class files, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3270 +msgid "" +"Use the `java-debug` make target to get information for debugging the port. " +"It will display the value of many of the previously listed variables." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3272 +msgid "" +"Additionally, these constants are defined so all Java ports may be installed " +"in a consistent way:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3274 +#, no-wrap +msgid "Constants Defined for Ports That Use Java" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3278 +#, no-wrap +msgid "Constant" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3281 +#, no-wrap +msgid "`JAVASHAREDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3283 +#, no-wrap +msgid "The base directory for everything related to Java. Default: [.filename]#${PREFIX}/share/java#." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3284 +#, no-wrap +msgid "`JAVAJARDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3286 +#, no-wrap +msgid "The directory where JAR files is installed. Default: [.filename]#${JAVASHAREDIR}/classes#." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3287 +#, no-wrap +msgid "`JAVALIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3288 +#, no-wrap +msgid "The directory where JAR files installed by other ports are located. Default: [.filename]#${LOCALBASE}/share/java/classes#." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3291 +msgid "" +"The related entries are defined in both `PLIST_SUB` (documented in crossref:" +"plist[plist-sub,Changing pkg-plist Based on Make Variables]) and `SUB_LIST`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3293 +#, no-wrap +msgid "Building with Ant" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3299 +msgid "" +"When the port is to be built using Apache Ant, it has to define `USE_ANT`. " +"Ant is thus considered to be the sub-make command. When no `do-build` " +"target is defined by the port, a default one will be set that runs Ant " +"according to `MAKE_ENV`, `MAKE_ARGS` and `ALL_TARGET`. This is similar to " +"the `USES= gmake` mechanism, which is documented in <<building>>." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3301 +#, no-wrap +msgid "Best Practices" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3306 +msgid "" +"When porting a Java library, the port has to install the JAR file(s) in [." +"filename]#${JAVAJARDIR}#, and everything else under [." +"filename]#${JAVASHAREDIR}/${PORTNAME}# (except for the documentation, see " +"below). To reduce the packing file size, reference the JAR file(s) directly " +"in the [.filename]#Makefile#. Use this statement (where [.filename]#myport." +"jar# is the name of the JAR file installed as part of the port):" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3310 +#, no-wrap +msgid "PLIST_FILES+=\t${JAVAJARDIR}/myport.jar\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3315 +msgid "" +"When porting a Java application, the port usually installs everything under " +"a single directory (including its JAR dependencies). The use of [." +"filename]#${JAVASHAREDIR}/${PORTNAME}# is strongly encouraged in this " +"regard. It is up the porter to decide whether the port installs the " +"additional JAR dependencies under this directory or uses the already " +"installed ones (from [.filename]#${JAVAJARDIR}#)." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3322 +msgid "" +"When porting a Java(TM) application that requires an application server such " +"as package:www/tomcat7[] to run the service, it is quite common for a vendor " +"to distribute a [.filename]#.war#. A [.filename]#.war# is a Web application " +"ARchive and is extracted when called by the application. Avoid adding a [." +"filename]#.war# to [.filename]#pkg-plist#. It is not considered best " +"practice. An application server will expand war archive, but not clean it " +"up properly if the port is removed. A more desirable way of working with " +"this file is to extract the archive, then install the files, and lastly add " +"these files to [.filename]#pkg-plist#." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3327 +#, no-wrap +msgid "" +"TOMCATDIR=\t${LOCALBASE}/apache-tomcat-7.0\n" +"WEBAPPDIR=\tmyapplication\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3331 +#, no-wrap +msgid "" +"post-extract:\n" +"\t@${MKDIR} ${WRKDIR}/${PORTDIRNAME}\n" +"\t@${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME}\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3336 +#, no-wrap +msgid "" +"do-install:\n" +"\tcd ${WRKDIR} && \\\n" +"\t${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME}\n" +"\tcd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \\* ${WEBAPPDIR}/${PORTDIRNAME}\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3343 +msgid "" +"Regardless of the type of port (library or application), the additional " +"documentation is installed in the crossref:makefiles[install-documentation," +"same location] as for any other port. The Javadoc tool is known to produce " +"a different set of files depending on the version of the JDK that is used. " +"For ports that do not enforce the use of a particular JDK, it is therefore a " +"complex task to specify the packing list ([.filename]#pkg-plist#). This is " +"one reason why porters are strongly encouraged to use `PORTDOCS`. Moreover, " +"even if the set of files that will be generated by `javadoc` can be " +"predicted, the size of the resulting [.filename]#pkg-plist# advocates for " +"the use of `PORTDOCS`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3347 +msgid "" +"The default value for `DATADIR` is [.filename]#${PREFIX}/share/${PORTNAME}" +"#. It is a good idea to override `DATADIR` to [.filename]#${JAVASHAREDIR}/" +"${PORTNAME}# for Java ports. Indeed, `DATADIR` is automatically added to " +"`PLIST_SUB` (documented in crossref:plist[plist-sub,Changing pkg-plist Based " +"on Make Variables]) so use `%%DATADIR%%` directly in [.filename]#pkg-plist#." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3350 +msgid "" +"As for the choice of building Java ports from source or directly installing " +"them from a binary distribution, there is no defined policy at the time of " +"writing. However, people from the https://www.freebsd.org/java/[FreeBSD " +"Java Project] encourage porters to have their ports built from source " +"whenever it is a trivial task." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3354 +msgid "" +"All the features that have been presented in this section are implemented in " +"[.filename]#bsd.java.mk#. If the port needs more sophisticated Java " +"support, please first have a look at the https://cgit.FreeBSD.org/ports/tree/" +"Mk/bsd.java.mk[bsd.java.mk Git log] as it usually takes some time to " +"document the latest features. Then, if the needed support that is lacking " +"would be beneficial to many other Java ports, feel free to discuss it on the " +"freebsd-java." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3357 +msgid "" +"Although there is a `java` category for PRs, it refers to the JDK porting " +"effort from the FreeBSD Java project. Therefore, submit the Java port in " +"the `ports` category as for any other port, unless the issue is related to " +"either a JDK implementation or [.filename]#bsd.java.mk#." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3359 +msgid "" +"Similarly, there is a defined policy regarding the `CATEGORIES` of a Java " +"port, which is detailed in crossref:makefiles[makefile-categories," +"Categorization]." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3361 +#, no-wrap +msgid "Web Applications, Apache and PHP" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3364 +#, no-wrap +msgid "Apache" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3367 +#, no-wrap +msgid "Variables for Ports That Use Apache" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3371 +#, no-wrap +msgid "`USE_APACHE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3373 +#, no-wrap +msgid "The port requires Apache. Possible values: `yes` (gets any version), `22`, `24`, `22-24`, `22+`, etc. The default APACHE version is `22`. More details are available in [.filename]#ports/Mk/bsd.apache.mk# and at https://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3374 +#, no-wrap +msgid "`APXS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3376 +#, no-wrap +msgid "Full path to the `apxs` binary. Can be overridden in the port." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3377 +#, no-wrap +msgid "`HTTPD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3379 +#, no-wrap +msgid "Full path to the `httpd` binary. Can be overridden in the port." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3380 +#, no-wrap +msgid "`APACHE_VERSION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3382 +#, no-wrap +msgid "The version of present Apache installation (read-only variable). This variable is only available after inclusion of [.filename]#bsd.port.pre.mk#. Possible values: `22`, `24`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3383 +#, no-wrap +msgid "`APACHEMODDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3385 +#, no-wrap +msgid "Directory for Apache modules. This variable is automatically expanded in [.filename]#pkg-plist#." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3386 +#, no-wrap +msgid "`APACHEINCLUDEDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3388 +#, no-wrap +msgid "Directory for Apache headers. This variable is automatically expanded in [.filename]#pkg-plist#." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3389 +#, no-wrap +msgid "`APACHEETCDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3390 +#, no-wrap +msgid "Directory for Apache configuration files. This variable is automatically expanded in [.filename]#pkg-plist#." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3393 +#, no-wrap +msgid "Useful Variables for Porting Apache Modules" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3397 +#, no-wrap +msgid "`MODULENAME`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3399 +#, no-wrap +msgid "Name of the module. Default value is `PORTNAME`. Example: `mod_hello`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3400 +#, no-wrap +msgid "`SHORTMODNAME`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3402 +#, no-wrap +msgid "Short name of the module. Automatically derived from `MODULENAME`, but can be overridden. Example: `hello`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3403 +#, no-wrap +msgid "`AP_FAST_BUILD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3405 +#, no-wrap +msgid "Use `apxs` to compile and install the module." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3406 +#, no-wrap +msgid "`AP_GENPLIST`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3408 +#, no-wrap +msgid "Also automatically creates a [.filename]#pkg-plist#." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3409 +#, no-wrap +msgid "`AP_INC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3411 +#, no-wrap +msgid "Adds a directory to a header search path during compilation." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3412 +#, no-wrap +msgid "`AP_LIB`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3414 +#, no-wrap +msgid "Adds a directory to a library search path during compilation." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3415 +#, no-wrap +msgid "`AP_EXTRAS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3416 +#, no-wrap +msgid "Additional flags to pass to `apxs`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3419 +#, no-wrap +msgid "Web Applications" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3423 +msgid "" +"Web applications must be installed into [.filename]#PREFIX/www/appname#. " +"This path is available both in [.filename]#Makefile# and in [.filename]#pkg-" +"plist# as `WWWDIR`, and the path relative to `PREFIX` is available in [." +"filename]#Makefile# as `WWWDIR_REL`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3428 +msgid "" +"The user and group of web server process are available as `WWWOWN` and " +"`WWWGRP`, in case the ownership of some files needs to be changed. The " +"default values of both are `www`. Use `WWWOWN?= myuser` and `WWWGRP?= " +"mygroup` if the port needs different values. This allows the user to " +"override them easily." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3433 +msgid "" +"Use `WWWOWN` and `WWWGRP` sparingly. Remember that every file the web " +"server can write to is a security risk waiting to happen." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3437 +msgid "" +"Do not depend on Apache unless the web app explicitly needs Apache. Respect " +"that users may wish to run a web application on a web server other than " +"Apache." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3439 +#, no-wrap +msgid "PHP" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3443 +msgid "" +"PHP web applications declare their dependency on it with `USES=php`. See " +"crossref:uses[uses-php,`php`] for more information." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3445 +#, no-wrap +msgid "PEAR Modules" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3448 +msgid "Porting PEAR modules is a very simple process." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3451 +msgid "" +"Add `USES=pear` to the port's [.filename]#Makefile#. The framework will " +"install the relevant files in the right places and automatically generate " +"the plist at install time." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3453 +#, no-wrap +msgid "Example Makefile for PEAR Class" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3461 +#, no-wrap +msgid "" +"PORTNAME= Date\n" +"DISTVERSION=\t1.4.3\n" +"CATEGORIES=\tdevel www pear\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3465 +#, no-wrap +msgid "" +"MAINTAINER=\tsomeone@example.org\n" +"COMMENT=\tPEAR Date and Time Zone Classes\n" +"WWW=\t\thttps://pear.php.net/package/Date/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3467 +#, no-wrap +msgid "USES=\tpear\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3476 +msgid "" +"PEAR modules will automatically be flavorized using crossref:flavors[flavors-" +"auto-php,PHP flavors]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3481 +msgid "" +"If a non default `PEAR_CHANNEL` is used, the build and run-time dependencies " +"will automatically be added." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3487 +msgid "" +"PEAR modules do not need to defined `PKGNAMESUFFIX` it is automatically " +"filled in using `PEAR_PKGNAMEPREFIX`. If a port needs to add to " +"`PKGNAMEPREFIX`, it must also use `PEAR_PKGNAMEPREFIX` to differentiate " +"between different flavors." +msgstr "" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3490 +#, no-wrap +msgid "Horde Modules" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3493 +msgid "In the same way, porting Horde modules is a simple process." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3496 +msgid "" +"Add `USES=horde` to the port's [.filename]#Makefile#. The framework will " +"install the relevant files in the right places and automatically generate " +"the plist at install time." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3499 +msgid "" +"The `USE_HORDE_BUILD` and `USE_HORDE_RUN` variables can be used to add " +"buildtime and runtime dependencies on other Horde modules. See [." +"filename]#Mk/Uses/horde.mk# for a complete list of available modules." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3501 +#, no-wrap +msgid "Example Makefile for Horde Module" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3509 +#, no-wrap +msgid "" +"PORTNAME=\tHorde_Core\n" +"DISTVERSION=\t2.14.0\n" +"CATEGORIES=\tdevel www pear\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3513 +#, no-wrap +msgid "" +"MAINTAINER=\thorde@FreeBSD.org\n" +"COMMENT=\tHorde Core Framework libraries\n" +"WWW=\t\thttps://pear.horde.org/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3517 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tKOLAB SOCKETS\n" +"KOLAB_DESC=\tEnable Kolab server support\n" +"SOCKETS_DESC=\tDepend on sockets PHP extension\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3520 +#, no-wrap +msgid "" +"USES=\thorde\n" +"USE_PHP=\tsession\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3524 +#, no-wrap +msgid "" +"USE_HORDE_BUILD=\tHorde_Role\n" +"USE_HORDE_RUN=\tHorde_Role Horde_History Horde_Pack \\\n" +"\t\tHorde_Text_Filter Horde_View\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3527 +#, no-wrap +msgid "" +"KOLAB_USE=\tHORDE_RUN=Horde_Kolab_Server,Horde_Kolab_Session\n" +"SOCKETS_USE=\tPHP=sockets\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3536 +msgid "" +"As Horde modules are also PEAR modules they will also automatically be " +"flavorized using crossref:flavors[flavors-auto-php,PHP flavors]." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3539 +#, no-wrap +msgid "Using Python" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3544 +msgid "" +"The Ports Collection supports parallel installation of multiple Python " +"versions. Ports must use a correct `python` interpreter, according to the " +"user-settable `PYTHON_VERSION`. Most prominently, this means replacing the " +"path to `python` executable in scripts with the value of `PYTHON_CMD`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3546 +msgid "" +"Ports that install files under `PYTHON_SITELIBDIR` must use the `pyXY-` " +"package name prefix, so their package name embeds the version of Python they " +"are installed into." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3550 +#, no-wrap +msgid "PKGNAMEPREFIX=\t${PYTHON_PKGNAMEPREFIX}\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3554 +#, no-wrap +msgid "Most Useful Variables for Ports That Use Python" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3558 +#, no-wrap +msgid "`USES=python`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3560 +#, no-wrap +msgid "The port needs Python. The minimal required version can be specified with values such as `3.10+`. Version ranges can also be specified by separating two version numbers with a dash: `USES=python:3.8-3.9`. Note that `USES=python` does _not_ cover Python 2.7, it needs to be requested explicitly with `USES=python:2.7+`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3561 +#, no-wrap +msgid "`USE_PYTHON=distutils`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3563 +#, no-wrap +msgid "Use Python distutils for configuring, compiling, and installing. This is required when the port comes with [.filename]#setup.py#. This overrides the `do-build` and `do-install` targets and may also override `do-configure` if `GNU_CONFIGURE` is not defined. Additionally, it implies `USE_PYTHON=flavors`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3564 +#, no-wrap +msgid "`USE_PYTHON=autoplist`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3566 +#, no-wrap +msgid "Create the packaging list automatically. This also requires `USE_PYTHON=distutils` to be set." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3567 +#, no-wrap +msgid "`USE_PYTHON=concurrent`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3569 +#, no-wrap +msgid "The port will use an unique prefix, typically `PYTHON_PKGNAMEPREFIX` for certain directories, such as `EXAMPLESDIR` and `DOCSDIR` and also will append a suffix, the python version from `PYTHON_VER`, to binaries and scripts to be installed. This allows ports to be installed for different Python versions at the same time, which otherwise would install conflicting files." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3570 +#, no-wrap +msgid "`USE_PYTHON=flavors`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3572 +#, no-wrap +msgid "The port does not use distutils but still supports multiple Python versions. `FLAVORS` will be set to the supported Python versions. See crossref:flavors[flavors-auto-python,`USES`=python and Flavors] for more information." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3573 +#, no-wrap +msgid "`USE_PYTHON=optsuffix`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3575 +#, no-wrap +msgid "If the current Python version is not the default version, the port will gain `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Only useful with flavors." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3576 +#, no-wrap +msgid "`PYTHON_PKGNAMEPREFIX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3578 +#, no-wrap +msgid "Used as a `PKGNAMEPREFIX` to distinguish packages for different Python versions. Example: `py27-`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3579 +#, no-wrap +msgid "`PYTHON_SITELIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3581 +#, no-wrap +msgid "Location of the site-packages tree, that contains installation path of Python (usually `LOCALBASE`). `PYTHON_SITELIBDIR` can be very useful when installing Python modules." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3582 +#, no-wrap +msgid "`PYTHONPREFIX_SITELIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3584 +#, no-wrap +msgid "The PREFIX-clean variant of PYTHON_SITELIBDIR. Always use `%%PYTHON_SITELIBDIR%%` in [.filename]#pkg-plist# when possible. The default value of `%%PYTHON_SITELIBDIR%%` is `lib/python%%PYTHON_VERSION%%/site-packages`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3585 +#, no-wrap +msgid "`PYTHON_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3586 +#, no-wrap +msgid "Python interpreter command line, including version number." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3589 +#, no-wrap +msgid "Python Module Dependency Helpers" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3593 +#, no-wrap +msgid "`PYNUMERIC`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3595 +#, no-wrap +msgid "Dependency line for numeric extension." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3596 +#, no-wrap +msgid "`PYNUMPY`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3598 +#, no-wrap +msgid "Dependency line for the new numeric extension, numpy. (PYNUMERIC is deprecated by upstream vendor)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3599 +#, no-wrap +msgid "`PYXML`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3601 +#, no-wrap +msgid "Dependency line for XML extension (not needed for Python 2.0 and higher as it is also in base distribution)." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3602 +#, no-wrap +msgid "`PY_ENUM34`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3604 +#, no-wrap +msgid "Conditional dependency on package:devel/py-enum34[] depending on the Python version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3605 +#, no-wrap +msgid "`PY_ENUM_COMPAT`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3607 +#, no-wrap +msgid "Conditional dependency on package:devel/py-enum-compat[] depending on the Python version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3608 +#, no-wrap +msgid "`PY_PATHLIB`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3610 +#, no-wrap +msgid "Conditional dependency on package:devel/py-pathlib[] depending on the Python version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3611 +#, no-wrap +msgid "`PY_IPADDRESS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3613 +#, no-wrap +msgid "Conditional dependency on package:net/py-ipaddress[] depending on the Python version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3614 +#, no-wrap +msgid "`PY_FUTURES`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3615 +#, no-wrap +msgid "Conditional dependency on package:devel/py-futures[] depending on the Python version." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3618 +msgid "" +"A complete list of available variables can be found in [.filename]#/usr/" +"ports/Mk/Uses/python.mk#." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3623 +msgid "" +"All dependencies to Python ports using crossref:flavors[flavors-auto-python," +"Python flavors] (either with `USE_PYTHON=distutils` or `USE_PYTHON=flavors`) " +"must have the Python flavor appended to their origin using `@${PY_FLAVOR}`. " +"See <<python-Makefile>>." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3626 +#, no-wrap +msgid "Makefile for a Simple Python Module" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3634 +#, no-wrap +msgid "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\tdevel\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3638 +#, no-wrap +msgid "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tPython sample module\n" +"WWW=\t\thttps://example.com/project/sample/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3640 +#, no-wrap +msgid "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3643 +#, no-wrap +msgid "" +"USES=\t\tpython\n" +"USE_PYTHON=\tautoplist distutils\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3653 +msgid "" +"Some Python applications claim to have `DESTDIR` support (which would be " +"required for staging) but it is broken (Mailman up to 2.1.16, for " +"instance). This can be worked around by recompiling the scripts. This can " +"be done, for example, in the `post-build` target. Assuming the Python " +"scripts are supposed to reside in `PYTHONPREFIX_SITELIBDIR` after " +"installation, this solution can be applied:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3659 +#, no-wrap +msgid "" +"(cd ${STAGEDIR}${PREFIX} \\\n" +" && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \\\n" +" -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3662 +msgid "" +"This recompiles the sources with a path relative to the stage directory, and " +"prepends the value of `PREFIX` to the file name recorded in the byte-" +"compiled output file by `-d`. `-f` is required to force recompilation, and " +"the `:S;${PREFIX}/;;` strips prefixes from the value of " +"`PYTHONPREFIX_SITELIBDIR` to make it relative to `PREFIX`." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3664 +#, no-wrap +msgid "Using Tcl/Tk" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3669 +msgid "" +"The Ports Collection supports parallel installation of multiple Tcl/Tk " +"versions. Ports should try to support at least the default Tcl/Tk version " +"and higher with `USES=tcl`. It is possible to specify the desired version " +"of `tcl` by appending `:_xx_`, for example, `USES=tcl:85`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3671 +#, no-wrap +msgid "The Most Useful Read-Only Variables for Ports That Use Tcl/Tk" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3675 +#, no-wrap +msgid "`TCL_VER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3677 +#, no-wrap +msgid "chosen major.minor version of Tcl" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3678 +#, no-wrap +msgid "`TCLSH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3680 +#, no-wrap +msgid "full path of the Tcl interpreter" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3681 +#, no-wrap +msgid "`TCL_LIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3683 +#, no-wrap +msgid "path of the Tcl libraries" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3684 +#, no-wrap +msgid "`TCL_INCLUDEDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3686 +#, no-wrap +msgid "path of the Tcl C header files" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3687 +#, no-wrap +msgid "`TK_VER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3689 +#, no-wrap +msgid "chosen major.minor version of Tk" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3690 +#, no-wrap +msgid "`WISH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3692 +#, no-wrap +msgid "full path of the Tk interpreter" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3693 +#, no-wrap +msgid "`TK_LIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3695 +#, no-wrap +msgid "path of the Tk libraries" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3696 +#, no-wrap +msgid "`TK_INCLUDEDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3697 +#, no-wrap +msgid "path of the Tk C header files" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3701 +msgid "" +"See the crossref:uses[uses-tcl,`USES=tcl`] and crossref:uses[uses-tk," +"`USES=tk`] of crossref:uses[uses,Using `USES` Macros] for a full description " +"of those variables. A complete list of those variables is available in [." +"filename]#/usr/ports/Mk/Uses/tcl.mk#." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3703 +#, no-wrap +msgid "Using SDL" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3706 +msgid "" +"`USE_SDL` is used to autoconfigure the dependencies for ports which use an " +"SDL based library like package:devel/sdl12[] and package:graphics/" +"sdl_image[]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3708 +msgid "These SDL libraries for version 1.2 are recognized:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3710 +msgid "sdl: package:devel/sdl12[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3711 +msgid "console: package:devel/sdl_console[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3712 +msgid "gfx: package:graphics/sdl_gfx[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3713 +msgid "image: package:graphics/sdl_image[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3714 +msgid "mixer: package:audio/sdl_mixer[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3715 +msgid "mm: package:devel/sdlmm[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3716 +msgid "net: package:net/sdl_net[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3717 +msgid "pango: package:x11-toolkits/sdl_pango[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3718 +msgid "sound: package:audio/sdl_sound[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3719 +msgid "ttf: package:graphics/sdl_ttf[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3721 +msgid "These SDL libraries for version 2.0 are recognized:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3723 +msgid "sdl: package:devel/sdl20[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3724 +msgid "gfx: package:graphics/sdl2_gfx[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3725 +msgid "image: package:graphics/sdl2_image[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3726 +msgid "mixer: package:audio/sdl2_mixer[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3727 +msgid "net: package:net/sdl2_net[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3728 +msgid "ttf: package:graphics/sdl2_ttf[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3730 +msgid "" +"Therefore, if a port has a dependency on package:net/sdl_net[] and package:" +"audio/sdl_mixer[], the syntax will be:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3734 +#, no-wrap +msgid "USE_SDL=\tnet mixer\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3737 +msgid "" +"The dependency package:devel/sdl12[], which is required by package:net/" +"sdl_net[] and package:audio/sdl_mixer[], is automatically added as well." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3739 +msgid "Using `USE_SDL` with entries for SDL 1.2, it will automatically:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3741 +msgid "Add a dependency on sdl12-config to `BUILD_DEPENDS`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3742 +msgid "Add the variable `SDL_CONFIG` to `CONFIGURE_ENV`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3743 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3749 +msgid "Add the dependencies of the selected libraries to `LIB_DEPENDS`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3745 +msgid "Using `USE_SDL` with entries for SDL 2.0, it will automatically:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3747 +msgid "Add a dependency on sdl2-config to `BUILD_DEPENDS`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3748 +msgid "Add the variable `SDL2_CONFIG` to `CONFIGURE_ENV`" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3752 +#, no-wrap +msgid "Using wxWidgets" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3755 +msgid "" +"This section describes the status of the wxWidgets libraries in the ports " +"tree and its integration with the ports system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3761 +msgid "" +"There are many versions of the wxWidgets libraries which conflict between " +"them (install files under the same name). In the ports tree this problem " +"has been solved by installing each version under a different name using " +"version number suffixes." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3767 +msgid "" +"The obvious disadvantage of this is that each application has to be modified " +"to find the expected version. Fortunately, most of the applications call " +"the `wx-config` script to determine the necessary compiler and linker " +"flags. The script is named differently for every available version. " +"Majority of applications respect an environment variable, or accept a " +"configure argument, to specify which `wx-config` script to call. Otherwise " +"they have to be patched." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3769 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4070 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4289 +#, no-wrap +msgid "Version Selection" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3772 +msgid "" +"To make the port use a specific version of wxWidgets there are two variables " +"available for defining (if only one is defined the other will be set to a " +"default value):" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3774 +#, no-wrap +msgid "Variables to Select wxWidgets Versions" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3781 +#, no-wrap +msgid "Default value" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3782 +#, no-wrap +msgid "`USE_WX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3783 +#, no-wrap +msgid "List of versions the port can use" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3785 +#, no-wrap +msgid "All available versions" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3786 +#, no-wrap +msgid "`USE_WX_NOT`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3787 +#, no-wrap +msgid "List of versions the port cannot use" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3788 +#, no-wrap +msgid "None" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3791 +msgid "" +"The available wxWidgets versions and the corresponding ports in the tree are:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3793 +#, no-wrap +msgid "Available wxWidgets Versions" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3797 +#, no-wrap +msgid "Version" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3799 +#, no-wrap +msgid "Port" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3800 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3818 +#, no-wrap +msgid "`2.8`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3802 +#, no-wrap +msgid "package:x11-toolkits/wxgtk28[]" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3803 +#, no-wrap +msgid "`3.0`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3804 +#, no-wrap +msgid "package:x11-toolkits/wxgtk30[]" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3807 +msgid "" +"The variables in <<wx-ver-sel-table>> can be set to one or more of these " +"combinations separated by spaces:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3809 +#, no-wrap +msgid "wxWidgets Version Specifications" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3815 +#, no-wrap +msgid "Example" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3816 +#, no-wrap +msgid "Single version" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3819 +#, no-wrap +msgid "Ascending range" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3821 +#, no-wrap +msgid "`2.8+`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3822 +#, no-wrap +msgid "Descending range" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3824 +#, no-wrap +msgid "`3.0-`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3825 +#, no-wrap +msgid "Full range (must be ascending)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3826 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3869 +#, no-wrap +msgid "`2.8-3.0`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3830 +msgid "" +"There are also some variables to select the preferred versions from the " +"available ones. They can be set to a list of versions, the first ones will " +"have higher priority." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3831 +#, no-wrap +msgid "Variables to Select Preferred wxWidgets Versions" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3837 +#, no-wrap +msgid "Designed for" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3838 +#, no-wrap +msgid "`WANT_WX_VER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3840 +#, no-wrap +msgid "the port" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3841 +#, no-wrap +msgid "`WITH_WX_VER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3842 +#, no-wrap +msgid "the user" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3849 +msgid "" +"There are other applications that, while not being wxWidgets libraries, are " +"related to them. These applications can be specified in `WX_COMPS`. These " +"components are available:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3851 +#, no-wrap +msgid "Available wxWidgets Components" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3858 +#, no-wrap +msgid "Version restriction" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3859 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3902 +#, no-wrap +msgid "`wx`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3860 +#, no-wrap +msgid "main library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3862 +#, no-wrap +msgid "none" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3863 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3905 +#, no-wrap +msgid "`contrib`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3864 +#, no-wrap +msgid "contributed libraries" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3866 +#, no-wrap +msgid "`none`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3867 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3908 +#, no-wrap +msgid "`python`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3868 +#, no-wrap +msgid "wxPython (Python bindings)" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3874 +msgid "" +"The dependency type can be selected for each component by adding a suffix " +"separated by a semicolon. If not present then a default type will be used " +"(see <<wx-def-dep-types>>). These types are available:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3876 +#, no-wrap +msgid "Available wxWidgets Dependency Types" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3883 +#, no-wrap +msgid "`build`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3885 +#, no-wrap +msgid "Component is required for building, equivalent to `BUILD_DEPENDS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3886 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3910 +#, no-wrap +msgid "`run`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3888 +#, no-wrap +msgid "Component is required for running, equivalent to `RUN_DEPENDS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3889 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3904 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3907 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3913 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3915 +#, no-wrap +msgid "`lib`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3890 +#, no-wrap +msgid "Component is required for building and running, equivalent to `LIB_DEPENDS`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3893 +msgid "The default values for the components are detailed in this table:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3895 +#, no-wrap +msgid "Default wxWidgets Dependency Types" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3901 +#, no-wrap +msgid "Dependency type" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3911 +#, no-wrap +msgid "`mozilla`" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3918 +#, no-wrap +msgid "Selecting wxWidgets Components" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3922 +msgid "" +"This fragment corresponds to a port which uses wxWidgets version `2.4` and " +"its contributed libraries." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3927 +#, no-wrap +msgid "" +"USE_WX=\t\t2.8\n" +"WX_COMPS=\twx contrib\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3932 +#, no-wrap +msgid "Detecting Installed Versions" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3937 +msgid "" +"To detect an installed version, define `WANT_WX`. If it is not set to a " +"specific version then the components will have a version suffix. `HAVE_WX` " +"will be filled after detection." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3939 +#, no-wrap +msgid "Detecting Installed wxWidgets Versions and Components" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3943 +msgid "" +"This fragment can be used in a port that uses wxWidgets if it is installed, " +"or an option is selected." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3947 +#, no-wrap +msgid "WANT_WX=\tyes\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3949 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3965 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4018 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4608 +#, no-wrap +msgid ".include <bsd.port.pre.mk>\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3954 +#, no-wrap +msgid "" +".if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8)\n" +"USE_WX=\t\t\t2.8\n" +"CONFIGURE_ARGS+=\t--enable-wx\n" +".endif\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3957 +msgid "" +"This fragment can be used in a port that enables wxPython support if it is " +"installed or if an option is selected, in addition to wxWidgets, both " +"version `2.8`." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3963 +#, no-wrap +msgid "" +"USE_WX=\t\t2.8\n" +"WX_COMPS=\twx\n" +"WANT_WX=\t2.8\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3970 +#, no-wrap +msgid "" +".if defined(WITH_WXPYTHON) || !empty(PORT_OPTIONS:MWXPYTHON) || !empty(HAVE_WX:Mpython)\n" +"WX_COMPS+=\t\tpython\n" +"CONFIGURE_ARGS+=\t--enable-wxpython\n" +".endif\n" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3975 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4145 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4380 +#, no-wrap +msgid "Defined Variables" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3978 +msgid "" +"These variables are available in the port (after defining one from <<wx-ver-" +"sel-table>>)." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3980 +#, no-wrap +msgid "Variables Defined for Ports That Use wxWidgets" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3987 +#, no-wrap +msgid "`WX_CONFIG`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3989 +#, no-wrap +msgid "The path to the wxWidgets`wx-config` script (with different name)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3990 +#, no-wrap +msgid "`WXRC_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3992 +#, no-wrap +msgid "The path to the wxWidgets`wxrc` program (with different name)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3993 +#, no-wrap +msgid "`WX_VERSION`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3994 +#, no-wrap +msgid "The wxWidgets version that is going to be used (for example, `2.6`)" +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3997 +#, no-wrap +msgid "Processing in [.filename]#bsd.port.pre.mk#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4000 +msgid "" +"Define `WX_PREMK` to be able to use the variables right after including [." +"filename]#bsd.port.pre.mk#." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4004 +msgid "" +"When defining `WX_PREMK`, then the version, dependencies, components and " +"defined variables will not change if modifying the wxWidgets port variables " +"_after_ including [.filename]#bsd.port.pre.mk#." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4007 +#, no-wrap +msgid "Using wxWidgets Variables in Commands" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4011 +msgid "" +"This fragment illustrates the use of `WX_PREMK` by running the `wx-config` " +"script to obtain the full version string, assign it to a variable and pass " +"it to the program." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4016 +#, no-wrap +msgid "" +"USE_WX=\t\t2.8\n" +"WX_PREMK=\tyes\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4021 +#, no-wrap +msgid "" +".if exists(${WX_CONFIG})\n" +"VER_STR!=\t${WX_CONFIG} --release\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4024 +#, no-wrap +msgid "" +"PLIST_SUB+=\tVERSION=\"${VER_STR}\"\n" +".endif\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4031 +msgid "" +"The wxWidgets variables can be safely used in commands when they are inside " +"targets without the need of `WX_PREMK`." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4034 +#, no-wrap +msgid "Additional `configure` Arguments" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4037 +msgid "" +"Some GNU `configure` scripts cannot find wxWidgets with just the `WX_CONFIG` " +"environment variable set, requiring additional arguments. `WX_CONF_ARGS` can " +"be used for provide them." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4039 +#, no-wrap +msgid "Legal Values for `WX_CONF_ARGS`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4043 +#, no-wrap +msgid "Possible value" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4045 +#, no-wrap +msgid "Resulting argument" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4046 +#, no-wrap +msgid "`absolute`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4048 +#, no-wrap +msgid "`--with-wx-config=${WX_CONFIG}`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4049 +#, no-wrap +msgid "`relative`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4050 +#, no-wrap +msgid "`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}`" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4053 +#, no-wrap +msgid "Using Lua" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4056 +msgid "" +"This section describes the status of the Lua libraries in the ports tree and " +"its integration with the ports system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4062 +msgid "" +"There are many versions of the Lua libraries and corresponding interpreters, " +"which conflict between them (install files under the same name). In the " +"ports tree this problem has been solved by installing each version under a " +"different name using version number suffixes." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4065 +msgid "" +"The obvious disadvantage of this is that each application has to be modified " +"to find the expected version. But it can be solved by adding some " +"additional flags to the compiler and linker." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4068 +msgid "" +"Applications that use Lua should normally build for just one version. " +"However, loadable modules for Lua are built in a separate flavor for each " +"Lua version that they support, and dependencies on such modules should " +"specify the flavor using the `@${LUA_FLAVOR}` suffix on the port origin." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4073 +msgid "A port using Lua should have a line of this form:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4077 +#, no-wrap +msgid "USES=\tlua\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4082 +msgid "" +"If a specific version of Lua, or range of versions, is needed, it can be " +"specified as a parameter in the form `XY` (which may be used multiple " +"times), `XY+`, `-XY`, or `XY-ZA`. The default version of Lua as set via " +"`DEFAULT_VERSIONS` will be used if it falls in the requested range, " +"otherwise the closest requested version to the default will be used. For " +"example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4086 +#, no-wrap +msgid "USES=\tlua:52-53\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4089 +msgid "" +"Note that no attempt is made to adjust the version selection based on the " +"presence of any already-installed Lua version." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4094 +msgid "" +"The `XY+` form of version specification should not be used without careful " +"consideration; the Lua API changes to some extent in every version, and " +"configuration tools like CMake or Autoconf will often fail to work on future " +"versions of Lua until updated to do so." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4097 +#, no-wrap +msgid "Configuration and Compiler flags" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4102 +msgid "" +"Software that uses Lua may have been written to auto-detect the Lua version " +"in use. In general ports should override this assumption, and force the use " +"of the specific Lua version selected as described above. Depending on the " +"software being ported, this might require any or all of:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4104 +msgid "" +"Using `LUA_VER` as part of a parameter to the software's configuration " +"script via `CONFIGURE_ARGS` or `CONFIGURE_ENV` (or equivalent for other " +"build systems);" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4105 +msgid "" +"Adding `-I${LUA_INCDIR}`, `-L${LUA_LIBDIR}`, and `-llua-${LUA_VER}` to " +"`CFLAGS`, `LDFLAGS`, `LIBS` respectively as appropriate;" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4106 +msgid "" +"Patch the software's configuration or build files to select the correct " +"version." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4109 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4353 +#, no-wrap +msgid "Version Flavors" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4113 +msgid "" +"A port which installs a Lua module (rather than an application that simply " +"makes use of Lua) should build a separate flavor for each supported Lua " +"version. This is done by adding the `module` parameter:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4117 +#, no-wrap +msgid "USES=\tlua:module\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4120 +msgid "" +"A version number or range of versions can be specified as well; use a comma " +"to separate parameters." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4122 +msgid "" +"Since each flavor must have a different package name, the variable " +"`LUA_PKGNAMEPREFIX` is provided which will be set to an appropriate value; " +"the intended usage is:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4126 +#, no-wrap +msgid "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4130 +msgid "" +"Module ports should normally install files only to `LUA_MODLIBDIR`, " +"`LUA_MODSHAREDIR`, `LUA_DOCSDIR`, and `LUA_EXAMPLESDIR`, all of which are " +"set up to refer to version-specific subdirectories. Installing any other " +"files must be done with care to avoid conflicts between versions." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4132 +msgid "" +"A port (other than a Lua module) which wishes to build a separate package " +"for each Lua version should use the `flavors` parameter:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4136 +#, no-wrap +msgid "USES=\tlua:flavors\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4140 +msgid "" +"This operates the same way as the `module` parameter described above, but " +"without the assumption that the package should be documented as a Lua module " +"(so `LUA_DOCSDIR` and `LUA_EXAMPLESDIR` are not defined by default). " +"However, the port may choose to define `LUA_DOCSUBDIR` as a suitable " +"subdirectory name (usually the port's `PORTNAME` as long as this does not " +"conflict with the `PORTNAME` of any module), in which case the framework " +"will define both `LUA_DOCSDIR` and `LUA_EXAMPLESDIR`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4143 +msgid "" +"As with module ports, a flavored port should avoid installing files that " +"would conflict between versions. Typically this is done by adding " +"`LUA_VER_STR` as a suffix to program names (e.g. using crossref:uses[uses-" +"uniquefiles,`uniquefiles`]), and otherwise using either `LUA_VER` or " +"`LUA_VER_STR` as part of any other files or subdirectories used outside of " +"`LUA_MODLIBDIR` and `LUA_MODSHAREDIR`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4148 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4383 +msgid "These variables are available in the port." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4150 +#, no-wrap +msgid "Variables Defined for Ports That Use Lua" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4157 +#, no-wrap +msgid "`LUA_VER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4159 +#, no-wrap +msgid "The Lua version that is going to be used (for example, `5.4`)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4160 +#, no-wrap +msgid "`LUA_VER_STR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4162 +#, no-wrap +msgid "The Lua version without the dots (for example, `54`)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4163 +#, no-wrap +msgid "`LUA_FLAVOR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4165 +#, no-wrap +msgid "The flavor name corresponding to the selected Lua version, to be used for specifying dependencies" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4166 +#, no-wrap +msgid "`LUA_BASE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4168 +#, no-wrap +msgid "The prefix that should be used to locate Lua (and components) that are already installed" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4169 +#, no-wrap +msgid "`LUA_PREFIX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4171 +#, no-wrap +msgid "The prefix where Lua (and components) are to be installed by this port" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4172 +#, no-wrap +msgid "`LUA_INCDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4174 +#, no-wrap +msgid "The directory where Lua header files are installed" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4175 +#, no-wrap +msgid "`LUA_LIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4177 +#, no-wrap +msgid "The directory where Lua libraries are installed" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4178 +#, no-wrap +msgid "`LUA_REFMODLIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4180 +#, no-wrap +msgid "The directory where Lua module libraries ([.filename]#.so#) that are already installed are to be found" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4181 +#, no-wrap +msgid "`LUA_REFMODSHAREDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4183 +#, no-wrap +msgid "The directory where Lua modules ([.filename]#.lua#) that are already installed are to be found" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4184 +#, no-wrap +msgid "`LUA_MODLIBDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4186 +#, no-wrap +msgid "The directory where Lua module libraries ([.filename]#.so#) are to be installed by this port" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4187 +#, no-wrap +msgid "`LUA_MODSHAREDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4189 +#, no-wrap +msgid "The directory where Lua modules ([.filename]#.lua#) are to be installed by this port" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4190 +#, no-wrap +msgid "`LUA_PKGNAMEPREFIX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4192 +#, no-wrap +msgid "The package name prefix used by Lua modules" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4193 +#, no-wrap +msgid "`LUA_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4195 +#, no-wrap +msgid "The name of the Lua interpreter (e.g. `lua54`)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4196 +#, no-wrap +msgid "`LUAC_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4197 +#, no-wrap +msgid "The name of the Lua compiler (e.g. `luac54`)" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4200 +msgid "" +"These additional variables are available for ports that specified the " +"`module` parameter:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4202 +#, no-wrap +msgid "Variables Defined for Lua Module Ports" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4209 +#, no-wrap +msgid "`LUA_DOCSDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4211 +#, no-wrap +msgid "the directory to which the module's documentation should be installed." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4212 +#, no-wrap +msgid "`LUA_EXAMPLESDIR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4213 +#, no-wrap +msgid "the directory to which the module's example files should be installed." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4219 +#, no-wrap +msgid "Makefile for an application using Lua" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4224 +msgid "" +"This example shows how to reference a Lua module required at run time. " +"Notice that the reference must specify a flavor." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4230 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4491 +#, no-wrap +msgid "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\twhatever\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4234 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4258 +#, no-wrap +msgid "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tSample\n" +"WWW=\t\thttps://example.com/lua_sample/sample/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4236 +#, no-wrap +msgid "RUN_DEPENDS=\t${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4238 +#, no-wrap +msgid "USES=\t\tlua\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4245 +#, no-wrap +msgid "Makefile for a simple Lua module" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4254 +#, no-wrap +msgid "" +"PORTNAME=\tsample\n" +"DISTVERSION=\t1.2.3\n" +"CATEGORIES=\twhatever\n" +"PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4260 +#, no-wrap +msgid "USES=\t\tlua:module\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4262 +#, no-wrap +msgid "DOCSDIR=\t${LUA_DOCSDIR}\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4269 +#, no-wrap +msgid "Using Guile" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4272 +msgid "" +"This section describes the status of Guile in the ports tree and its " +"integration with the ports system." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4281 +msgid "" +"There are multiple versions of the Guile libraries and corresponding " +"interpreters, which conflict between them (install files under the same " +"name). In the ports tree this problem has been solved by installing each " +"version under a different name using version number suffixes. In most " +"cases, applications should detect the correct version from the configuration " +"variables provided and use `pkg-config` to determine the name and associated " +"paths. However, some applications (especially those using their own " +"configuration rules for `cmake` or `meson`) will always try to use the " +"latest available version. In this case, either patch the port or declare a " +"build conflict (see the `conflicts` option below) to ensure that the correct " +"dependency is generated when building outside of poudriere." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4287 +msgid "" +"Applications that use Guile should normally build for just one version, " +"preferably the one specified in `DEFAULT_VERSIONS`, or failing that the " +"latest version that they support. However, Guile or Scheme libraries, or " +"extension modules for Guile are built in a separate flavor for each Guile " +"version that they support, and dependencies on such ports should specify the " +"flavor using the `@${GUILE_FLAVOR}` suffix on the port origin." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4292 +msgid "" +"A port using Guile should define `USES=guile:__arg,arg...__` with " +"appropriate arguments as follows:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4294 +#, no-wrap +msgid "Arguments Defined for Ports That Use Guile" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4301 +#, no-wrap +msgid "_X.Y_" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4305 +#, no-wrap +msgid "" +"Declare compatibility with Guile version `X.Y`.\n" +"Currently available versions are `1.8` (obsolete), `2.2` and `3.0`.\n" +"Multiple versions may be specified." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4306 +#, no-wrap +msgid "flavors" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4310 +#, no-wrap +msgid "" +"Create a flavor for every Guile version specified.\n" +"The version specified by `DEFAULT_VERSIONS` will become the default flavor.\n" +"Flavor names are of the form `guileXY`." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4311 +#, no-wrap +msgid "build" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4314 +#, no-wrap +msgid "" +"Add the Guile interpreter as a build dependency only, rather than a library dependency.\n" +"`build` and `run` may both be specified." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4315 +#, no-wrap +msgid "run" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4318 +#, no-wrap +msgid "" +"Add the Guile interpreter as a runtime dependency only, rather than a library dependency.\n" +"`build` and `run` may both be specified." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4319 +#, no-wrap +msgid "alias" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4321 +#, no-wrap +msgid "Add `BINARY_ALIAS` values for the interpreter and tools." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4322 +#, no-wrap +msgid "conflicts" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4324 +#, no-wrap +msgid "" +"Declare `CONFLICTS_BUILD` for Guile versions newer than the one selected.\n" +"Use this when the port cannot be configured to use a specific Guile version." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4327 +msgid "" +"Some additional arguments are available for handling unusual cases; see `Mk/" +"Uses/guile.mk` for details." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4330 +msgid "" +"Unless `build` or `run` is specified, then `LIB_DEPENDS` receives both the " +"`libguile` library dependency and also any additional dependencies required " +"by the guile version, e.g. `libgc`. Normally the port should not need any " +"additional dependencies related to its use of Guile." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4332 +#, no-wrap +msgid "Configuration flags" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4337 +msgid "" +"Software that uses Guile should be using the `pkg-config` mechanism to " +"obtain compiler and linker flags. Some older or esoteric ports may be using " +"`guile-config` or obtaining values directly from `guile` instead, which " +"should also work (the `alias` argument may be useful in some of these cases)." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4339 +msgid "" +"The framework tries to inform the port of the desired Guile version using " +"the following methods:" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4341 +msgid "`GUILE_EFFECTIVE_VERSION` is added to `CONFIGURE_ENV`;" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4342 +msgid "" +"The full path to the Guile binary is specified in the `GUILE` variable in " +"`CONFIGURE_ENV` and `MAKE_ENV`;" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4343 +msgid "" +"If the `alias` option is used, the desired Guile version's binaries are the " +"ones aliased;" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4344 +msgid "" +"If the `alias` option is not used, paths to the desired Guile version's " +"tools (`guild`, `guile-config`, etc.) are added to `CONFIGURE_ENV` and " +"`MAKE_ENV` as variables `GUILD`, `GUILE_CONFIG`, etc." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4347 +msgid "" +"For some ports, it may be necessary to specify the version in additional " +"ways, such as via `CONFIGURE_ARGS` or `MESON_ARGS`, depending on the port." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4351 +msgid "" +"If none of these methods cause the port to select the specified Guile " +"version when other versions are present, then preferably patch it to do so. " +"If that is not feasible, specify the `conflicts` option to prevent building " +"the port under conditions where it will detect the wrong version." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4358 +msgid "" +"A port which installs a Guile extension or library, or a Scheme library that " +"precompiles for Guile, should build a separate flavor for each supported " +"Guile version. This is done by adding the `flavors` option." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4360 +msgid "" +"Since each flavor must have a different package name, such ports must set " +"`PKGNAMESUFFIX`, typically:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4364 +#, no-wrap +msgid "PKGNAMESUFFIX=\t-${FLAVOR}\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4368 +msgid "" +"Such ports must install Scheme files to `GUILE_SITE_DIR` rather than to " +"`GUILE_GLOBAL_SITE_DIR` even when the files are not version-specific. This " +"often requires patching the port." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4371 +msgid "" +"Additionally, if such a port installs a `.pc` file, it must be placed in " +"`GUILE_PKGCONFIG_PATH` rather than in the global `pkgconfig` directory. " +"This allows dependent ports to find a correct configuration for the specific " +"Guile version in use." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4374 +msgid "" +"If a Guile extension port installs a `.so` file, then it must usually be " +"placed in the Guile-version-specific `extensions` directory. `USE_LDCONFIG` " +"should usually not be used." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4378 +msgid "" +"Any other files installed by a flavored port must likewise be in version-" +"specific directories or use version-specific filenames. For documentation " +"and examples, `GUILE_DOCS_DIR` and `GUILE_EXAMPLES_DIR` specify suitable " +"locations in which the port should create a subdirectory, see below." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4385 +#, no-wrap +msgid "Variables Defined for Ports That Use Guile" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4390 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4452 +#, no-wrap +msgid "Sample Value" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4393 +#, no-wrap +msgid "`GUILE_VER`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4394 +#, no-wrap +msgid "3.0" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4396 +#, no-wrap +msgid "Guile version in use." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4397 +#, no-wrap +msgid "`GUILE_SFX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4398 +#, no-wrap +msgid "3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4401 +#, no-wrap +msgid "" +"Short suffix used on some names.\n" +"Use only with care; may be non-unique or may change in the future." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4402 +#, no-wrap +msgid "`GUILE_FLAVOR`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4403 +#, no-wrap +msgid "guile30" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4405 +#, no-wrap +msgid "Flavor name corresponding to the selected version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4406 +#, no-wrap +msgid "`GUILE_PORT`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4407 +#, no-wrap +msgid "lang/guile3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4409 +#, no-wrap +msgid "Port origin of the specified Guile version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4410 +#, no-wrap +msgid "`GUILE_PREFIX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4411 +#, no-wrap +msgid "${PREFIX}" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4413 +#, no-wrap +msgid "Directory prefix to be used for installation." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4414 +#, no-wrap +msgid "`GUILE_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4415 +#, no-wrap +msgid "guile-3.0" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4417 +#, no-wrap +msgid "Name of the Guile interpreter, with version suffix." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4418 +#, no-wrap +msgid "`GUILE_CMDPATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4419 +#, no-wrap +msgid "${LOCALBASE}/bin/guile-3.0" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4421 +#, no-wrap +msgid "Full path to the Guile interpreter." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4422 +#, no-wrap +msgid "`GUILD_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4423 +#, no-wrap +msgid "guild-3.0" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4425 +#, no-wrap +msgid "Name of the Guild tool, with version suffix." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4426 +#, no-wrap +msgid "`GUILD_CMDPATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4427 +#, no-wrap +msgid "${LOCALBASE}/bin/guild-3.0" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4429 +#, no-wrap +msgid "Full path to the Guild tool." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4431 +#, no-wrap +msgid "" +"`++GUILE_*_CMD++` +\n" +"`++GUILE_*_CMDPATH++`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4434 +#, no-wrap +msgid "Like `GUILE_CMD` and `GUILE_CMDPATH`, but for other tool binaries." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4435 +#, no-wrap +msgid "`GUILE_PKGCONFIG_PATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4436 +#, no-wrap +msgid "${LOCALBASE}/libdata/pkgconfig/guile/3.0" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4438 +#, no-wrap +msgid "Where packages using `flavors` should install `.pc` files." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4439 +#, no-wrap +msgid "`GUILE_INFO_PATH`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4440 +#, no-wrap +msgid "share/info/guile3" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4441 +#, no-wrap +msgid "A suitable value for `INFO_PATH` for ports using the `flavors` option." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4445 +msgid "" +"The following are defined as variables and as `PLIST_SUB` entries. The " +"variable form is suffixed with `_DIR` and is a full path (prefixed with " +"`GUILE_PREFIX`)." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4447 +#, no-wrap +msgid "Path Substitutions Defined for Ports That Use Guile" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4455 +#, no-wrap +msgid "GUILE_GLOBAL_SITE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4456 +#, no-wrap +msgid "share/guile/site" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4458 +#, no-wrap +msgid "Site directory shared by all guile versions; this should not usually be used." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4459 +#, no-wrap +msgid "GUILE_SITE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4460 +#, no-wrap +msgid "share/guile/3.0/site" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4462 +#, no-wrap +msgid "Site directory for the selected Guile version." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4463 +#, no-wrap +msgid "GUILE_SITE_CCACHE" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4464 +#, no-wrap +msgid "lib/guile/3.0/site-ccache" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4466 +#, no-wrap +msgid "Directory for compiled bytecode files." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4467 +#, no-wrap +msgid "GUILE_DOCS" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4468 +#, no-wrap +msgid "share/doc/guile30" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4470 +#, no-wrap +msgid "Parent directory for version-specific documentation." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4471 +#, no-wrap +msgid "GUILE_EXAMPLES" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4472 +#, no-wrap +msgid "share/examples/guile30" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4473 +#, no-wrap +msgid "Parent directory for version-specific examples." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4479 +#, no-wrap +msgid "Makefile for an application using Guile" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4485 +msgid "" +"This example shows how to reference a Guile library required at build and " +"run time. Notice that the reference must specify a flavor. This example " +"assumes that the application is using `pkg-config` to locate dependencies." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4495 +#, no-wrap +msgid "" +"MAINTAINER=\tfred.bloggs@example.com\n" +"COMMENT=\tSample\n" +"WWW=\t\thttps://example.com/guile_sample/sample/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4498 +#, no-wrap +msgid "" +"BUILD_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" +"RUN_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4500 +#, no-wrap +msgid "USES=\t\tguile:2.2,3.0 pkgconfig\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4507 +#, no-wrap +msgid "Using `iconv`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4510 +msgid "FreeBSD has a native `iconv` in the operating system." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4512 +msgid "For software that needs `iconv`, define `USES=iconv`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4514 +msgid "When a port defines `USES=iconv`, these variables will be available:" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4519 +#, no-wrap +msgid "Variable name" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4520 +#, no-wrap +msgid "Purpose" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4521 +#, no-wrap +msgid "Port iconv (when using WCHAR_T or //TRANSLIT extensions)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4524 +#, no-wrap +msgid "Base iconv" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4525 +#, no-wrap +msgid "`ICONV_CMD`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4526 +#, no-wrap +msgid "Directory where the `iconv` binary resides" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4527 +#, no-wrap +msgid "`${LOCALBASE}/bin/iconv`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4529 +#, no-wrap +msgid "[.filename]#/usr/bin/iconv#" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4530 +#, no-wrap +msgid "`ICONV_LIB`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4531 +#, no-wrap +msgid "`ld` argument to link to [.filename]#libiconv# (if needed)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4532 +#, no-wrap +msgid "`-liconv`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4534 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4544 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4548 +#, no-wrap +msgid "(empty)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4535 +#, no-wrap +msgid "`ICONV_PREFIX`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4536 +#, no-wrap +msgid "Directory where the `iconv` implementation resides (useful for configure scripts)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4537 +#, no-wrap +msgid "`${LOCALBASE}`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4539 +#, no-wrap +msgid "[.filename]#/usr#" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4540 +#, no-wrap +msgid "`ICONV_CONFIGURE_ARG`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4541 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4546 +#, no-wrap +msgid "Preconstructed configure argument for configure scripts" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4542 +#, no-wrap +msgid "`--with-libiconv-prefix=${LOCALBASE}`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4545 +#, no-wrap +msgid "`ICONV_CONFIGURE_BASE`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4547 +#, no-wrap +msgid "`--with-libiconv=${LOCALBASE}`" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4551 +msgid "" +"These two examples automatically populate the variables with the correct " +"value for systems using package:converters/libiconv[] or the native `iconv` " +"respectively:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4553 +#, no-wrap +msgid "Simple `iconv` Usage" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4560 +#, no-wrap +msgid "" +"USES=\t\ticonv\n" +"LDFLAGS+=\t-L${LOCALBASE}/lib ${ICONV_LIB}\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4565 +#, no-wrap +msgid "`iconv` Usage with `configure`" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4572 +#, no-wrap +msgid "" +"USES=\t\ticonv\n" +"CONFIGURE_ARGS+=${ICONV_CONFIGURE_ARG}\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4578 +msgid "" +"As shown above, `ICONV_LIB` is empty when a native `iconv` is present. This " +"can be used to detect the native `iconv` and respond appropriately." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4581 +msgid "" +"Sometimes a program has an `ld` argument or search path hardcoded in a [." +"filename]#Makefile# or configure script. This approach can be used to solve " +"that problem:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4583 +#, no-wrap +msgid "Fixing Hardcoded `-liconv`" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4589 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4606 +#, no-wrap +msgid "USES=\t\ticonv\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4592 +#, no-wrap +msgid "" +"post-patch:\n" +"\t@${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4598 +msgid "" +"In some cases it is necessary to set alternate values or perform operations " +"depending on whether there is a native `iconv`. [.filename]#bsd.port.pre." +"mk# must be included before testing the value of `ICONV_LIB`:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4600 +#, no-wrap +msgid "Checking for Native `iconv` Availability" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4614 +#, no-wrap +msgid "" +"post-patch:\n" +".if empty(ICONV_LIB)\n" +"\t# native iconv detected\n" +"\t@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh\n" +".endif\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4616 +#, no-wrap +msgid ".include <bsd.port.post.mk>\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4621 +#, no-wrap +msgid "Using Xfce" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4624 +msgid "Ports that need Xfce libraries or applications set `USES=xfce`." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4628 +msgid "" +"Specific Xfce library and application dependencies are set with values " +"assigned to `USE_XFCE`. They are defined in [.filename]#/usr/ports/Mk/Uses/" +"xfce.mk#. The possible values are:" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4629 +#, no-wrap +msgid "Values of `USE_XFCE`" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4630 +#, no-wrap +msgid "garcon" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4632 +msgid "package:sysutils/garcon[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4633 +#, no-wrap +msgid "libexo" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4635 +msgid "package:x11/libexo[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4636 +#, no-wrap +msgid "libgui" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4638 +msgid "package:x11-toolkits/libxfce4gui[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4639 +#, no-wrap +msgid "libmenu" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4641 +msgid "package:x11/libxfce4menu[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4642 +#, no-wrap +msgid "libutil" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4644 +msgid "package:x11/libxfce4util[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4645 +#, no-wrap +msgid "panel" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4647 +msgid "package:x11-wm/xfce4-panel[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4648 +#, no-wrap +msgid "thunar" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4650 +msgid "package:x11-fm/thunar[]" +msgstr "" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4651 +#, no-wrap +msgid "xfconf" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4653 +msgid "package:x11/xfce4-conf[]" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4655 +#, no-wrap +msgid "`USES=xfce` Example" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4662 +#, no-wrap +msgid "" +"USES=\t\txfce\n" +"USE_XFCE=\tlibmenu\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4667 +#, no-wrap +msgid "Using Xfce's Own GTK2 Widgets" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4671 +msgid "" +"In this example, the ported application uses the GTK2-specific widgets " +"package:x11/libxfce4menu[] and package:x11/xfce4-conf[]." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4676 +#, no-wrap +msgid "" +"USES=\t\txfce:gtk2\n" +"USE_XFCE=\tlibmenu xfconf\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4685 +msgid "" +"Xfce components included this way will automatically include any " +"dependencies they need. It is no longer necessary to specify the entire " +"list. If the port only needs package:x11-wm/xfce4-panel[], use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4690 +#, no-wrap +msgid "" +"USES=\t\txfce\n" +"USE_XFCE=\tpanel\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4693 +msgid "" +"There is no need to list the components package:x11-wm/xfce4-panel[] needs " +"itself like this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4698 +#, no-wrap +msgid "" +"USES=\t\txfce\n" +"USE_XFCE=\tlibexo libmenu libutil panel\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4702 +msgid "" +"However, Xfce components and non-Xfce dependencies of the port must be " +"included explicitly. Do not count on an Xfce component to provide a sub-" +"dependency other than itself for the main port." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4705 +#, no-wrap +msgid "Using Budgie" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4708 +msgid "" +"Applications or libraries depending on the Budgie desktop should set `USES= " +"budgie` and set `USE_BUDGIE` to the list of required components." +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4715 +#, no-wrap +msgid "`libbudgie`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4717 +#, no-wrap +msgid "Desktop core (library)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4718 +#, no-wrap +msgid "`libmagpie`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4720 +#, no-wrap +msgid "Budgie's X11 window manager and compositor library" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4721 +#, no-wrap +msgid "`raven`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4723 +#, no-wrap +msgid "All-in-one center in panel for accessing different applications widgets" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4724 +#, no-wrap +msgid "`screensaver`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4726 +#, no-wrap +msgid "Desktop-specific screensaver" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4731 +msgid "" +"All application widgets communicate through the *org.budgie_desktop.Raven* " +"service." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4733 +msgid "" +"The default dependency is lib- and run-time, it can be changed with `:build` " +"or `:run`, for example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4738 +#, no-wrap +msgid "" +"USES=\t\tbudgie\n" +"USE_BUDGIE=\tscreensaver:build\n" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4742 +#, no-wrap +msgid "`USE_BUDGIE` Example" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4749 +#, no-wrap +msgid "" +"USES=\t\tbudgie gettext gnome meson pkgconfig\n" +"USE_BUDGIE=\tlibbudgie\n" +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4753 +#, no-wrap +msgid "Using Databases" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4756 +msgid "" +"Use one of the `USES` macros from <<using-databases-uses>> to add a " +"dependency on a database." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4758 +#, no-wrap +msgid "Database `USES` Macros" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4762 +#, no-wrap +msgid "Database" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4764 +#, no-wrap +msgid "USES Macro" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4765 +#, no-wrap +msgid "Berkeley DB" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4767 +#, no-wrap +msgid "crossref:uses[uses-bdb,`bdb`]" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4768 +#, no-wrap +msgid "MariaDB, MySQL, Percona" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4770 +#, no-wrap +msgid "crossref:uses[uses-mysql,`mysql`]" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4771 +#, no-wrap +msgid "PostgreSQL" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4773 +#, no-wrap +msgid "crossref:uses[uses-pgsql,`pgsql`]" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4774 +#, no-wrap +msgid "SQLite" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4775 +#, no-wrap +msgid "crossref:uses[uses-sqlite,`sqlite`]" +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4778 +#, no-wrap +msgid "Using Berkeley DB 6" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4784 +#, no-wrap +msgid "USES=\tbdb:6\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4787 +msgid "See crossref:uses[uses-bdb,`bdb`] for more information." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4790 +#, no-wrap +msgid "Using MySQL" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4794 +msgid "When a port needs the MySQL client library add" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4798 +#, no-wrap +msgid "USES=\tmysql\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4801 +msgid "See crossref:uses[uses-mysql,`mysql`] for more information." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4804 +#, no-wrap +msgid "Using PostgreSQL" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4808 +msgid "When a port needs the PostgreSQL server version 9.6 or later add" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4813 +#, no-wrap +msgid "" +"USES=\t\tpgsql:9.6+\n" +"WANT_PGSQL=\tserver\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4816 +msgid "See crossref:uses[uses-pgsql,`pgsql`] for more information." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4819 +#, no-wrap +msgid "Using SQLite 3" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4825 +#, no-wrap +msgid "USES=\tsqlite:3\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4828 +msgid "See crossref:uses[uses-sqlite,`sqlite`] for more information." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4831 +#, no-wrap +msgid "Starting and Stopping Services (`rc` Scripts)" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4838 +msgid "" +"[.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]. 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." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4841 +msgid "" +"With a mythical port called _doorman_, which needs to start a _doormand_ " +"daemon. Add the following to the [.filename]#Makefile#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4845 +#, no-wrap +msgid "USE_RC_SUBR=\tdoormand\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4852 +msgid "" +"Multiple scripts may be listed and will be installed. Scripts must be " +"placed in the [.filename]#files# subdirectory and a `.in` suffix must be " +"added to their filename. Standard `SUB_LIST` expansions will be ran against " +"this file. Use of the `%%PREFIX%%` and `%%LOCALBASE%%` expansions is " +"strongly encouraged as well. More on `SUB_LIST` in crossref:pkg-files[using-" +"sub-files,the relevant section]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4854 +msgid "" +"As of FreeBSD 6.1-RELEASE, local [.filename]#rc.d# scripts (including those " +"installed by ports) are included in the overall man:rcorder[8] of the base " +"system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4856 +msgid "" +"An example simple [.filename]#rc.d# script to start the doormand daemon:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4860 +#, no-wrap +msgid "#!/bin/sh\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4872 +#, no-wrap +msgid "" +"# PROVIDE: doormand\n" +"# REQUIRE: LOGIN\n" +"# KEYWORD: shutdown\n" +"#\n" +"# Add these lines to /etc/rc.conf.local or /etc/rc.conf\n" +"# to enable this service:\n" +"#\n" +"# doormand_enable (bool):\tSet to NO by default.\n" +"#\t\t\t\tSet it to YES to enable doormand.\n" +"# doormand_config (path):\tSet to %%PREFIX%%/etc/doormand/doormand.cf\n" +"#\t\t\t\tby default.\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4874 +#, no-wrap +msgid ". /etc/rc.subr\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4877 +#, no-wrap +msgid "" +"name=doormand\n" +"rcvar=doormand_enable\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4879 +#, no-wrap +msgid "load_rc_config $name\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4882 +#, no-wrap +msgid "" +": ${doormand_enable:=\"NO\"}\n" +": ${doormand_config=\"%%PREFIX%%/etc/doormand/doormand.cf\"}\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4885 +#, no-wrap +msgid "" +"command=%%PREFIX%%/sbin/${name}\n" +"pidfile=/var/run/${name}.pid\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4887 +#, no-wrap +msgid "command_args=\"-p $pidfile -f $doormand_config\"\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4889 +#, no-wrap +msgid "run_rc_command \"$1\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4892 +msgid "" +"Unless there is a very good reason to start the service earlier, or it runs " +"as a particular user (other than root), all ports scripts must use:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4896 +#, no-wrap +msgid "REQUIRE: LOGIN\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4899 +msgid "" +"If the startup script launches a daemon that must be shutdown, the following " +"will trigger a stop of the service on system shutdown:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4903 +#, no-wrap +msgid "KEYWORD: shutdown\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4906 +msgid "" +"If the script is not starting a persistent service this is not necessary." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4909 +msgid "" +"For optional configuration elements the \"=\" style of default variable " +"assignment is preferable to the \":=\" style here, since the former sets a " +"default value only if the variable is unset, and the latter sets one if the " +"variable is unset _or_ null. A user might very well include something like:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4913 +#, no-wrap +msgid "doormand_flags=\"\"\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4917 +msgid "" +"in their [.filename]#rc.conf.local#, and a variable substitution using \":" +"=\" would inappropriately override the user's intention. The `_enable` " +"variable is not optional, and must use the \":\" for the default." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4922 +msgid "" +"Ports _must not_ start and stop their services when installing and " +"deinstalling. Do not abuse the [.filename]#plist# keywords described in " +"crossref:plist[plist-keywords-base-exec, \"the @preexec command,@postexec " +"command,@preunexec command,@postunexec command section\"] by running " +"commands that modify the currently running system, including starting or " +"stopping services." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4925 +#, no-wrap +msgid "Pre-Commit Checklist" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4928 +msgid "" +"Before contributing a port with an [.filename]#rc.d# script, and more " +"importantly, before committing one, please consult this checklist to be sure " +"that it is ready." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4930 +msgid "" +"The package:devel/rclint[] port can check for most of these, but it is not a " +"substitute for proper review." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4933 +msgid "" +"If this is a new file, does it have a [.filename]#.sh# extension? If so, " +"that must be changed to just [.filename]#file.in# since [.filename]#rc.d# " +"files may not end with that extension." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4934 +msgid "" +"Do the name of the file (minus [.filename]#.in#), the `PROVIDE` line, and " +"`$` _name_ all match? The file name matching `PROVIDE` makes debugging " +"easier, especially for man:rcorder[8] issues. Matching the file name and " +"`$`_name_ makes it easier to figure out which variables are relevant in [." +"filename]#rc.conf[.local]#. It is also a policy for all new scripts, " +"including those in the base system." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4935 +msgid "" +"Is the `REQUIRE` line set to `LOGIN`? This is mandatory for scripts that run " +"as a non-root user. If it runs as root, is there a good reason for it to run " +"prior to `LOGIN`? If not, it must run after so that local scrips can be " +"loosely grouped to a point in man:rcorder[8] after most everything in the " +"base is already running." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4936 +msgid "" +"Does the script start a persistent service? If so, it must have `KEYWORD: " +"shutdown`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4937 +msgid "" +"Make sure there is no `KEYWORD: FreeBSD` present. This has not been " +"necessary nor desirable for years. It is also an indication that the new " +"script was copy/pasted from an old script, so extra caution must be given to " +"the review." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4938 +msgid "" +"If the script uses an interpreted language like `perl`, `python`, or `ruby`, " +"make certain that `command_interpreter` is set appropriately, for example, " +"for Perl, by adding `PERL=${PERL}` to `SUB_LIST` and using `%%PERL%%`. " +"Otherwise," +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4942 +#, no-wrap +msgid "# service name stop\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4945 +msgid "" +"will probably not work properly. See man:service[8] for more information." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4946 +msgid "" +"Have all occurrences of [.filename]#/usr/local# been replaced with `%%PREFIX%" +"%`?" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4947 +msgid "Do the default variable assignments come after `load_rc_config`?" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4948 +msgid "" +"Are there default assignments to empty strings? They should be removed, but " +"double-check that the option is documented in the comments at the top of the " +"file." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4949 +msgid "Are things that are set in variables actually used in the script?" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4950 +msgid "" +"Are options listed in the default _name_`_flags` things that are actually " +"mandatory? If so, they must be in `command_args`. `-d` is a red flag (pardon " +"the pun) here, since it is usually the option to \"daemonize\" the process, " +"and therefore is actually mandatory." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4951 +msgid "" +"`_name__flags` must never be included in `command_args` (and vice versa, " +"although that error is less common)." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4952 +msgid "" +"Does the script execute any code unconditionally? This is frowned on. " +"Usually these things must be dealt with through a `start_precmd`." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4953 +msgid "" +"All boolean tests must use the `checkyesno` function. No hand-rolled tests " +"for `[Yy][Ee][Ss]`, etc." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4954 +msgid "" +"If there is a loop (for example, waiting for something to start) does it " +"have a counter to terminate the loop? We do not want the boot to be stuck " +"forever if there is an error." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4955 +msgid "" +"Does the script create files or directories that need specific permissions, " +"for example, a [.filename]#pid# that needs to be owned by the user that runs " +"the process? Rather than the traditional man:touch[1]/man:chown[8]/man:" +"chmod[1] routine, consider using man:install[1] with the proper command line " +"arguments to do the whole procedure with one step." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4957 +#, no-wrap +msgid "Adding Users and Groups" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4962 +msgid "" +"Some ports require a particular user account to be present, usually for " +"daemons that run as that user. For these ports, choose a _unique_ UID from " +"50 to 999 and register it in [.filename]#ports/UIDs# (for users) and [." +"filename]#ports/GIDs# (for groups). The unique identification should be the " +"same for users and groups." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4964 +msgid "" +"Please include a patch against these two files when requiring a new user or " +"group to be created for the port." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4966 +msgid "" +"Then use `USERS` and `GROUPS` in [.filename]#Makefile#, and the user will be " +"automatically created when installing the port." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4971 +#, no-wrap +msgid "" +"USERS=\tpulse\n" +"GROUPS=\tpulse pulse-access pulse-rt\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4974 +msgid "" +"The current list of reserved UIDs and GIDs can be found in [.filename]#ports/" +"UIDs# and [.filename]#ports/GIDs#." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4976 +#, no-wrap +msgid "Ports That Rely on Kernel Sources" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4980 +msgid "" +"Some ports (such as kernel loadable modules) need the kernel source files so " +"that the port can compile. Here is the correct way to determine if the user " +"has them installed:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4984 +#, no-wrap +msgid "USES=\tkmod\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4987 +msgid "" +"Apart from this check, the `kmod` feature takes care of most items that " +"these ports need to take into account." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4989 +#, no-wrap +msgid "Go Libraries" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4993 +msgid "" +"Ports must not package or install Go libs or source code. Go ports must " +"fetch the required deps at the normal fetch time and should only install the " +"programs and things users need, not the things Go developers would need." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4995 +msgid "Ports should (in order of preference):" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4997 +msgid "Use vendored dependencies included with the package source." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4998 +msgid "" +"Fetch the versions of deps specified by upstream (in the case of go.mod, " +"vendor.json or similar)." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4999 +msgid "" +"As a last resort (deps are not included nor versions specified exactly) " +"fetch versions of dependencies available at the time of upstream development/" +"release." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5001 +#, no-wrap +msgid "Haskell Libraries" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5005 +msgid "" +"Just like in case of Go language, Ports must not package or install Haskell " +"libraries. Haskell ports must link statically to their dependencies and " +"fetch all distribution files on fetch stage." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5007 +#, no-wrap +msgid "Shell Completion Files" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5012 +msgid "" +"Many modern shells (including bash, fish, tcsh and zsh) support parameter " +"and/or option tab-completion. This support usually comes from completion " +"files, which contain the definitions for how tab completion will work for a " +"certain command. Ports sometimes ship with their own completion files, or " +"porters may have created them themselves." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5016 +msgid "" +"When available, completion files should always be installed. It is not " +"necessary to make an option for it. If an option is used, though, always " +"enable it in `OPTIONS_DEFAULT`." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5018 +#, no-wrap +msgid "Full shell completion file names" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5022 +#, no-wrap +msgid "`bash`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5023 +#, no-wrap +msgid "[.filename]#${PREFIX}/etc/bash_completion.d# or [.filename]#${PREFIX}/share/bash-completion/completions#" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5025 +#, no-wrap +msgid "(any unique file names in one of these folders)" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5026 +#, no-wrap +msgid "`fish`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5027 +#, no-wrap +msgid "[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish#" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5030 +#, no-wrap +msgid "`zsh`" +msgstr "" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5031 +#, no-wrap +msgid "[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5034 +msgid "Do not register any dependencies on the shells themselves." +msgstr "" |