# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2026-02-22 15:58+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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:14 #, no-wrap msgid "Special Considerations" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:52 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:54 #, no-wrap msgid "Splitting long files" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:61 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:63 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:65 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:66 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:67 msgid "[.filename]#Makefile.${ARCH}-${OPSYS}#" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:68 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:69 msgid "[.filename]#Makefile.${ARCH}#" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:70 msgid "[.filename]#Makefile.local#" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:76 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:78 #, no-wrap msgid "Staging" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:85 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:92 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:97 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:101 #, no-wrap msgid "NO_MTREE=\tyes\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:107 msgid "" "Metaports should use crossref:special[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:113 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`, `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:117 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:120 #, no-wrap msgid "Handling Symbolic Links" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:125 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:127 #, no-wrap msgid "Create Relative Symbolic Links Automatically" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:131 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:137 #, 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:140 msgid "Will generate:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:150 #, 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:155 #, no-wrap msgid "Bundled Libraries" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:158 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:160 #, no-wrap msgid "Why Bundled Libraries Are Bad" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:165 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:167 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:168 #, no-wrap msgid "Security" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:174 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:175 #, no-wrap msgid "Bugs" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:177 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:178 #, no-wrap msgid "Forking" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:182 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:185 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:186 #, no-wrap msgid "Symbol collision" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:191 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:192 #, no-wrap msgid "Licensing" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:194 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:195 #, no-wrap msgid "Waste of resources" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:199 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:200 #, no-wrap msgid "Waste of effort" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:204 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:206 #, no-wrap msgid "What to do About Bundled Libraries" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:210 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:212 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:220 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:223 #, no-wrap msgid "Shared Libraries" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:227 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:231 #, no-wrap msgid "USE_LDCONFIG=\tyes\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:235 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:239 #, 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:242 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:244 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:246 msgid "" "If the software uses crossref:special[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:248 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:250 #, no-wrap msgid "Ports with Distribution Restrictions or Legal Concerns" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:253 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:258 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:261 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:263 #, no-wrap msgid "`NO_PACKAGE`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:267 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:270 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:273 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:275 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:277 #, no-wrap msgid "`NO_CDROM`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:281 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:283 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:286 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:288 #, no-wrap msgid "`NOFETCHFILES`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:292 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:294 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:296 #, no-wrap msgid "`RESTRICTED`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:299 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:301 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:305 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:307 #, no-wrap msgid "`RESTRICTED_FILES`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:311 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:313 #, no-wrap msgid "`LEGAL_TEXT`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:317 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:319 #, no-wrap msgid "[.filename]#/usr/ports/LEGAL# and `LEGAL`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:325 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:327 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4231 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4491 #, no-wrap msgid "Examples" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:330 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:336 #, 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:339 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:341 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:343 #, no-wrap msgid "Building Mechanisms" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:346 #, no-wrap msgid "Building Ports in Parallel" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:350 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:355 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:360 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:363 #, no-wrap msgid "`make`, `gmake`, and `imake`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:366 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:368 msgid "If the port uses GNU make, add `gmake` to `USES`." msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:371 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:374 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:377 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:379 #, no-wrap msgid "`configure` Script" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:384 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=${PREFIX}/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:386 #, no-wrap msgid "Variables for Ports That Use `configure`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:390 #: documentation/content/en/books/porters-handbook/special/_index.adoc:418 #: documentation/content/en/books/porters-handbook/special/_index.adoc:446 #: documentation/content/en/books/porters-handbook/special/_index.adoc:529 #: documentation/content/en/books/porters-handbook/special/_index.adoc:812 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2449 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2469 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3173 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3205 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3793 #, no-wrap msgid "Variable" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:392 #: documentation/content/en/books/porters-handbook/special/_index.adoc:420 #: documentation/content/en/books/porters-handbook/special/_index.adoc:448 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1325 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3175 #, no-wrap msgid "Means" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:393 #, no-wrap msgid "`GNU_CONFIGURE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:395 #, no-wrap msgid "The port uses `configure` script to prepare build." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:396 #, no-wrap msgid "`HAS_CONFIGURE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:398 #, 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:399 #, no-wrap msgid "`CONFIGURE_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:401 #, no-wrap msgid "Additional arguments passed to `configure` script." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:402 #: documentation/content/en/books/porters-handbook/special/_index.adoc:438 #, no-wrap msgid "`CONFIGURE_ENV`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:404 #, 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:405 #, no-wrap msgid "`CONFIGURE_TARGET`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:406 #, 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:409 #, no-wrap msgid "Using `cmake`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:412 msgid "For ports that use CMake, define `USES= cmake`." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:414 #, no-wrap msgid "Variables for Ports That Use `cmake`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:421 #, no-wrap msgid "`CMAKE_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:423 #, 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:424 #, no-wrap msgid "`CMAKE_ON`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:427 #, no-wrap msgid "" "For each entry in `CMAKE_ON`, an enabled boolean value is added to\n" "`CMAKE_ARGS`. See crossref:special[using-cmake-example2,`CMAKE_ON` and `CMAKE_OFF`]." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:428 #, no-wrap msgid "`CMAKE_OFF`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:431 #, no-wrap msgid "" "For each entry in `CMAKE_OFF`, a disabled boolean value is added to\n" "`CMAKE_ARGS`. See crossref:special[using-cmake-example2,`CMAKE_ON` and `CMAKE_OFF`]." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:432 #, no-wrap msgid "`CMAKE_BUILD_TYPE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:434 #, 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:435 #, no-wrap msgid "`CMAKE_SOURCE_PATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:437 #, no-wrap msgid "Path to the source directory. Default is `${WRKSRC}`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:439 #, 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:442 #, no-wrap msgid "Variables the Users Can Define for `cmake` Builds" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:449 #, no-wrap msgid "`CMAKE_NOCOLOR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:450 #, 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:457 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:462 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:464 #, no-wrap msgid "`USES= cmake` Example" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:469 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:474 #, 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:479 #, no-wrap msgid "`CMAKE_ON` and `CMAKE_OFF`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:483 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:488 #, 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:491 msgid "Is equivalent to:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:495 #, 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:501 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:506 #, no-wrap msgid "Using `scons`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:509 msgid "If the port uses SCons, define `USES=scons`." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:511 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:515 #, no-wrap msgid "env = Environment(**ARGUMENTS)\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:518 msgid "It may be then modified with `env.Append` and `env.Replace`." msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:520 #, no-wrap msgid "Building Rust Applications with `cargo`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:523 msgid "For ports that use Cargo, define `USES=cargo`." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:525 #, no-wrap msgid "Variables the Users Can Define for `cargo` Builds" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:530 #, no-wrap msgid "Default" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:532 #: documentation/content/en/books/porters-handbook/special/_index.adoc:814 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1733 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1901 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1919 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2087 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2153 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2397 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2414 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2451 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2471 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2547 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3127 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3794 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3828 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3871 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3897 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4001 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4171 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4223 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4315 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4407 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4469 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4729 #, no-wrap msgid "Description" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:533 #, no-wrap msgid "`CARGO_CRATES`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:539 #, 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:540 #, no-wrap msgid "`CARGO_FEATURES`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:543 #, 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:544 #, no-wrap msgid "`CARGO_CARGOTOML`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:545 #, no-wrap msgid "`${WRKSRC}/Cargo.toml`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:547 #, no-wrap msgid "The path to the [.filename]#Cargo.toml# to use." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:548 #, no-wrap msgid "`CARGO_CARGOLOCK`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:549 #, no-wrap msgid "`${WRKSRC}/Cargo.lock`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:551 #, 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:552 #, no-wrap msgid "`CARGO_ENV`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:555 #, 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:556 #, no-wrap msgid "`RUSTFLAGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:559 #, no-wrap msgid "Flags to pass to the Rust compiler." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:560 #, no-wrap msgid "`CARGO_CONFIGURE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:561 #: documentation/content/en/books/porters-handbook/special/_index.adoc:569 #: documentation/content/en/books/porters-handbook/special/_index.adoc:577 #: documentation/content/en/books/porters-handbook/special/_index.adoc:585 #: documentation/content/en/books/porters-handbook/special/_index.adoc:597 #, no-wrap msgid "`yes`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:563 #, no-wrap msgid "Use the default `do-configure`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:564 #, no-wrap msgid "`CARGO_UPDATE_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:567 #, 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:568 #, no-wrap msgid "`CARGO_BUILDDEP`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:571 #, no-wrap msgid "Add a build dependency on package:lang/rust[]." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:572 #, no-wrap msgid "`CARGO_CARGO_BIN`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:573 #, no-wrap msgid "`${LOCALBASE}/bin/cargo`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:575 #, no-wrap msgid "Location of the `cargo` binary." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:576 #, no-wrap msgid "`CARGO_BUILD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:579 #, no-wrap msgid "Use the default `do-build`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:580 #, no-wrap msgid "`CARGO_BUILD_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:583 #, 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:584 #, no-wrap msgid "`CARGO_INSTALL`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:587 #, no-wrap msgid "Use the default `do-install`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:588 #, no-wrap msgid "`CARGO_INSTALL_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:591 #, 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:592 #, no-wrap msgid "`CARGO_INSTALL_PATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:593 #, no-wrap msgid "`.`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:595 #, 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:596 #, no-wrap msgid "`CARGO_TEST`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:599 #, no-wrap msgid "Use the default `do-test`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:600 #, no-wrap msgid "`CARGO_TEST_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:603 #, 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:604 #, no-wrap msgid "`CARGO_TARGET_DIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:605 #, no-wrap msgid "`${WRKDIR}/target`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:607 #, no-wrap msgid "Location of the cargo output directory." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:608 #, no-wrap msgid "`CARGO_DIST_SUBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:609 #, no-wrap msgid "[.filename]#rust/crates#" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:611 #, 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:612 #, no-wrap msgid "`CARGO_VENDOR_DIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:613 #, no-wrap msgid "`${WRKSRC}/cargo-crates`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:615 #, 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:616 #, no-wrap msgid "`CARGO_USE_GITHUB`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:617 #: documentation/content/en/books/porters-handbook/special/_index.adoc:621 #, no-wrap msgid "`no`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:619 #, 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:620 #, no-wrap msgid "`CARGO_USE_GITLAB`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:622 #, 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:625 #, 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:630 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:637 #: documentation/content/en/books/porters-handbook/special/_index.adoc:682 #, 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:641 #: documentation/content/en/books/porters-handbook/special/_index.adoc:686 #, 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:645 #: documentation/content/en/books/porters-handbook/special/_index.adoc:690 #, 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:647 #: documentation/content/en/books/porters-handbook/special/_index.adoc:700 #: documentation/content/en/books/porters-handbook/special/_index.adoc:867 #: documentation/content/en/books/porters-handbook/special/_index.adoc:890 #: documentation/content/en/books/porters-handbook/special/_index.adoc:948 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1019 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1106 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1122 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1136 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1253 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1274 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1647 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3475 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3535 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3654 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4255 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4279 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4517 #, no-wrap msgid ".include \n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:650 #: documentation/content/en/books/porters-handbook/special/_index.adoc:893 msgid "Generate an initial [.filename]#distinfo#:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:658 #, 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:661 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:672 #, 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:675 #: documentation/content/en/books/porters-handbook/special/_index.adoc:923 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:698 #, 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:703 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:721 #, 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:724 #: documentation/content/en/books/porters-handbook/special/_index.adoc:967 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1079 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:726 #: documentation/content/en/books/porters-handbook/special/_index.adoc:969 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1081 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:729 #, no-wrap msgid "Enabling Additional Application Features" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:734 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:736 msgid "Here we enable Tokei's `json` and `yaml` features:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:740 #, no-wrap msgid "CARGO_FEATURES=\tjson yaml\n" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:745 #, no-wrap msgid "Encoding Application Features As Port Options" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:749 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:756 #, 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:761 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:765 #, no-wrap msgid "CARGO_FEATURES=\t--no-default-features\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:767 #, no-wrap msgid "OPTIONS_DEFINE=\tPORTAUDIO PULSEAUDIO\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:770 #, 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:775 #, no-wrap msgid "Listing Crate Licenses" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:781 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:792 #, 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:798 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:803 #, no-wrap msgid "Using `meson`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:806 msgid "For ports that use Meson, define `USES=meson`." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:808 #, no-wrap msgid "Variables for Ports That Use `meson`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:815 #, no-wrap msgid "`MESON_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:817 #, 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:818 #, no-wrap msgid "`MESON_BUILD_DIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:819 #, 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:822 #, no-wrap msgid "`USES=meson` Example" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:826 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:831 #, 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:836 #, no-wrap msgid "Building Go Applications" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:840 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:842 #, 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:846 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:853 #, 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:857 #, 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:860 #, 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:863 #, 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:865 #, no-wrap msgid "PLIST_FILES= bin/hey\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:870 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:873 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:880 #: documentation/content/en/books/porters-handbook/special/_index.adoc:930 #, 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:884 #: documentation/content/en/books/porters-handbook/special/_index.adoc:934 #, 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:888 #, 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:902 #, 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:906 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:920 #, 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:946 #, 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:951 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:964 #, 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:972 #, no-wrap msgid "Setting Output Binary Name or Installation Path" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:977 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:981 #, no-wrap msgid "GO_TARGET= ./cmd/ipfs:ipfs-go\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:984 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:988 #, 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:991 msgid "will install `dnscrypt-proxy` to `${PREFIX}/sbin`." msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:994 #, no-wrap msgid "Building Haskell Applications with `cabal`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:998 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:1000 #, 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:1005 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:1011 #, 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:1015 #, 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:1017 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1100 #, no-wrap msgid "USES=\t\tcabal\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1022 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:1032 #, 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:1035 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:1046 #, 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:1049 msgid "Once done, a list of required dependencies can generated:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1057 #, 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:1063 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:1065 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:1076 #, 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:1086 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:1088 #, no-wrap msgid "Handling Data Files in a Haskell Port" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1092 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:1096 #, no-wrap msgid "PORTNAME=\tprofiteur\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1098 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1113 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1131 #, no-wrap msgid "[...]\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1104 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1117 #, 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:1109 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:1120 #, no-wrap msgid "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1127 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:1134 #, 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:1139 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:1144 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:1146 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:1148 #, no-wrap msgid "Porting Haskell Applications with VCS Dependencies" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1153 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:1162 #, 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:1168 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:1176 #, 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:1180 #, 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:1183 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:1189 #, 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:1191 #, no-wrap msgid "GH_TUPLE+=\tbitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1194 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:1198 #, no-wrap msgid "BINARY_ALIAS=\tgit=true\n" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1203 #, no-wrap msgid "Using GNU Autotools" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1207 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:1209 #, no-wrap msgid "Using GNU `gettext`" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1212 #, no-wrap msgid "Basic Usage" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1216 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:1219 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:1224 #, no-wrap msgid "" "USES=\tgettext\n" "GNU_CONFIGURE=\tyes\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1227 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:1232 #, no-wrap msgid "" "USES=\tgettext localbase:ldflags\n" "GNU_CONFIGURE=\tyes\n" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1235 #, no-wrap msgid "Optional Usage" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1241 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:1245 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1260 #, no-wrap msgid "GNU_CONFIGURE=\t\tyes\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1248 #, 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:1251 #, 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:1256 msgid "Or using the older way of using options:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1262 #, no-wrap msgid "OPTIONS_DEFINE=\t\tNLS\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1264 #, no-wrap msgid ".include \n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1272 #, 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:1283 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:1288 #, 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:1291 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:1293 #, no-wrap msgid "Handling Message Catalog Directories" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1300 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:1302 #, no-wrap msgid "Using Perl" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1310 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:1315 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:1317 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:1319 #, no-wrap msgid "Read-Only Variables for Ports That Use Perl" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1323 #, no-wrap msgid "Read only variables" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1326 #, no-wrap msgid "`PERL`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1328 #, 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:1329 #, no-wrap msgid "`PERL_VERSION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1331 #, 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:1332 #, no-wrap msgid "`PERL_LEVEL`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1334 #, 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:1335 #, no-wrap msgid "`PERL_ARCH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1337 #, 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:1338 #, no-wrap msgid "`PERL_PORT`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1340 #, 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:1341 #, no-wrap msgid "`SITE_PERL`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1342 #, 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:1348 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:1356 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:1359 #, no-wrap msgid "Perl Dependency Example" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1365 #, 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:1370 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:1375 #, 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:1378 msgid "can be replaced with" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1383 #, 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:1388 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:1391 #, 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:1395 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:1400 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tbuild\n" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1405 #, no-wrap msgid "A Port Which Also Requires Perl to Patch" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1410 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:1415 #, 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:1420 #, 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:1425 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:1430 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tconfigure\n" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1435 #, 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:1439 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:1444 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tmodbuild\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1447 msgid "If it instead requires Module::Build::Tiny, set" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1452 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tmodbuildtiny\n" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1457 #, no-wrap msgid "Using X11" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1460 #, no-wrap msgid "X.Org Components" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1465 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:1470 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:1472 #, no-wrap msgid "`USE_XORG` Example" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1480 #, 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:1485 #, no-wrap msgid "Variables for Ports That Use X" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1489 #, no-wrap msgid "`USES= imake`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1491 #, no-wrap msgid "The port uses `imake`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1492 #, no-wrap msgid "`XMKMF`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1493 #, 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:1496 #, no-wrap msgid "Using X11-Related Variables" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1504 #, 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:1509 #, no-wrap msgid "Ports That Require Motif" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1515 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:1518 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:1520 msgid "There are two common cases:" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1522 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:1523 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:1525 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:1527 #, no-wrap msgid "X11 Fonts" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1530 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:1532 #, no-wrap msgid "Getting a Fake `DISPLAY` with Xvfb" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1539 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:1543 #, no-wrap msgid "USES=\tdisplay\n" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1547 #, no-wrap msgid "Desktop Entries" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1553 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:1555 #, no-wrap msgid "Using Predefined [.filename]#.desktop# Files" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1559 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:1561 #, no-wrap msgid "Updating Desktop Database" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1565 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:1567 #, no-wrap msgid "Creating Desktop Entries with `DESKTOP_ENTRIES`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1572 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:1576 #, 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:1583 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:1585 msgid "Example:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1592 #, 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:1597 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:1600 #, no-wrap msgid "Using GNOME" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1603 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3772 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4073 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4289 #, no-wrap msgid "Introduction" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1607 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:1609 #, no-wrap msgid "Using `USE_GNOME`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1617 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:1621 #, no-wrap msgid "USE_GNOME=\tgtk30\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1625 msgid "" "`USE_GNOME` components automatically add the dependencies they need. Please " "see crossref:special[gnome-components, 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:1628 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:1635 #, 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:1639 #, 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:1643 #, 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:1645 #, no-wrap msgid "GLIB_SCHEMAS=\torg.regexxer.gschema.xml\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1653 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:1656 #, no-wrap msgid "Variables" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1662 msgid "" "This section explains which macros are available and how they are used. " "Like they are used in the above example. The crossref:special[gnome-" "components, 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:1663 #, no-wrap msgid "`GLIB_SCHEMAS`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1666 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:1671 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:1675 #, no-wrap msgid "GLIB_SCHEMAS=foo.gschema.xml\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1681 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:1683 #, no-wrap msgid "`GCONF_SCHEMAS`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1686 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:1691 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:1695 #, 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:1701 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:1703 #, no-wrap msgid "`INSTALLS_OMF`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1707 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:1711 #, no-wrap msgid "INSTALLS_OMF=yes\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1714 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:1716 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1726 #, no-wrap msgid "GNOME Components" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1724 msgid "" "For further help with a GNOME port, look at some of the link:https://" "ports.FreeBSD.org[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:1730 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1899 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1916 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2085 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3914 #, no-wrap msgid "Component" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1731 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1917 #, no-wrap msgid "Associated program" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1734 #, no-wrap msgid "`atk`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1735 #, no-wrap msgid "accessibility/atk" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1737 #, no-wrap msgid "Accessibility toolkit (ATK)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1738 #, no-wrap msgid "`atkmm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1739 #, no-wrap msgid "accessibility/atkmm" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1741 #, no-wrap msgid "c++ bindings for atk" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1742 #, no-wrap msgid "`cairo`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1743 #, no-wrap msgid "graphics/cairo" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1745 #, no-wrap msgid "Vector graphics library with cross-device output support" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1746 #, no-wrap msgid "`cairomm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1747 #, no-wrap msgid "graphics/cairomm" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1749 #, no-wrap msgid "c++ bindings for cairo" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1750 #, no-wrap msgid "`dconf`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1751 #, no-wrap msgid "devel/dconf" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1753 #, no-wrap msgid "Configuration database system (both, build, run)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1754 #, no-wrap msgid "`evolutiondataserver3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1755 #, no-wrap msgid "databases/evolution-data-server" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1757 #, no-wrap msgid "Data backends for the Evolution integrated mail/PIM suite" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1758 #, no-wrap msgid "`gdkpixbuf2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1759 #, no-wrap msgid "graphics/gdk-pixbuf2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1761 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1943 #, no-wrap msgid "Graphics library for GTK+" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1762 #, no-wrap msgid "`glib20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1763 #, no-wrap msgid "devel/glib20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1765 #, no-wrap msgid "GNOME core library `glib20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1766 #, no-wrap msgid "`glibmm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1767 #, no-wrap msgid "devel/glibmm" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1769 #, no-wrap msgid "c++ bindings for glib20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1770 #, no-wrap msgid "`gnomecontrolcenter3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1771 #, no-wrap msgid "sysutils/gnome-control-center" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1773 #, no-wrap msgid "GNOME 3 Control Center" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1774 #, no-wrap msgid "`gnomedesktop3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1775 #, no-wrap msgid "x11/gnome-desktop" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1777 #, no-wrap msgid "GNOME 3 desktop UI library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1778 #, no-wrap msgid "`gsound`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1779 #, no-wrap msgid "audio/gsound" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1781 #, no-wrap msgid "GObject library for playing system sounds (both, build, run)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1782 #, no-wrap msgid "`gtk-update-icon-cache`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1783 #, no-wrap msgid "graphics/gtk-update-icon-cache" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1785 #, no-wrap msgid "Gtk-update-icon-cache utility from the Gtk+ toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1786 #, no-wrap msgid "`gtk20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1787 #, no-wrap msgid "x11-toolkits/gtk20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1789 #, no-wrap msgid "Gtk+ 2 toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1790 #, no-wrap msgid "`gtk30`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1791 #, no-wrap msgid "x11-toolkits/gtk30" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1793 #, no-wrap msgid "Gtk+ 3 toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1794 #, no-wrap msgid "`gtkmm20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1795 #, no-wrap msgid "x11-toolkits/gtkmm20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1797 #, no-wrap msgid "c++ bindings 2.0 for the gtk20 toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1798 #, no-wrap msgid "`gtkmm24`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1799 #, no-wrap msgid "x11-toolkits/gtkmm24" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1801 #, no-wrap msgid "c++ bindings 2.4 for the gtk20 toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1802 #, no-wrap msgid "`gtkmm30`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1803 #, no-wrap msgid "x11-toolkits/gtkmm30" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1805 #, no-wrap msgid "c++ bindings 3.0 for the gtk30 toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1806 #, no-wrap msgid "`gtksourceview2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1807 #, no-wrap msgid "x11-toolkits/gtksourceview2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1809 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1987 #, no-wrap msgid "Widget that adds syntax highlighting to GtkTextView" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1810 #, no-wrap msgid "`gtksourceview3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1811 #, no-wrap msgid "x11-toolkits/gtksourceview3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1813 #, 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:1814 #, no-wrap msgid "`gtksourceviewmm3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1815 #, no-wrap msgid "x11-toolkits/gtksourceviewmm3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1817 #, no-wrap msgid "c++ bindings for the gtksourceview3 library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1818 #, no-wrap msgid "`gvfs`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1819 #, no-wrap msgid "devel/gvfs" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1821 #, no-wrap msgid "GNOME virtual file system" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1822 #, no-wrap msgid "`intltool`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1823 #, no-wrap msgid "textproc/intltool" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1825 #, no-wrap msgid "Tool for internationalization (also see intlhack)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1826 #, no-wrap msgid "`introspection`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1827 #, no-wrap msgid "devel/gobject-introspection" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1829 #, 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:1830 #, no-wrap msgid "`libgda5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1831 #, no-wrap msgid "databases/libgda5" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1833 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2003 #, no-wrap msgid "Provides uniform access to different kinds of data sources" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1834 #, no-wrap msgid "`libgda5-ui`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1835 #, no-wrap msgid "databases/libgda5-ui" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1837 #, no-wrap msgid "UI library from the libgda5 library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1838 #, no-wrap msgid "`libgdamm5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1839 #, no-wrap msgid "databases/libgdamm5" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1841 #, no-wrap msgid "c++ bindings for the libgda5 library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1842 #, no-wrap msgid "`libgsf`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1843 #, no-wrap msgid "devel/libgsf" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1845 #, 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:1846 #, no-wrap msgid "`librsvg2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1847 #, no-wrap msgid "graphics/librsvg2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1849 #, no-wrap msgid "Library for parsing and rendering SVG vector-graphic files" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1850 #, no-wrap msgid "`libsigc++20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1851 #, no-wrap msgid "devel/libsigc++20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1853 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2047 #, no-wrap msgid "Callback Framework for C++" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1854 #, no-wrap msgid "`libxml++26`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1855 #, no-wrap msgid "textproc/libxml++26" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1857 #, no-wrap msgid "c++ bindings for the libxml2 library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1858 #, no-wrap msgid "`libxml2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1859 #, no-wrap msgid "textproc/libxml2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1861 #, no-wrap msgid "XML parser library (both, build, run)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1862 #, no-wrap msgid "`libxslt`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1863 #, no-wrap msgid "textproc/libxslt" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1865 #, no-wrap msgid "XSLT C library (both, build, run)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1866 #, no-wrap msgid "`metacity`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1867 #, no-wrap msgid "x11-wm/metacity" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1869 #, no-wrap msgid "Window manager from GNOME" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1870 #, no-wrap msgid "`nautilus3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1871 #, no-wrap msgid "x11-fm/nautilus" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1873 #, no-wrap msgid "GNOME file manager" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1874 #, no-wrap msgid "`pango`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1875 #, no-wrap msgid "x11-toolkits/pango" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1877 #, 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:1878 #, no-wrap msgid "`pangomm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1879 #, no-wrap msgid "x11-toolkits/pangomm" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1881 #, no-wrap msgid "c++ bindings for the pango library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1882 #, no-wrap msgid "`py3gobject3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1883 #, no-wrap msgid "devel/py3-gobject3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1885 #, no-wrap msgid "Python 3, GObject 3.0 bindings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1886 #, no-wrap msgid "`pygobject3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1887 #, no-wrap msgid "devel/py-gobject3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1889 #, no-wrap msgid "Python 2, GObject 3.0 bindings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1890 #, no-wrap msgid "`vte3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1891 #, no-wrap msgid "x11-toolkits/vte3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1892 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2078 #, no-wrap msgid "Terminal widget with improved accessibility and I18N support" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1895 #, no-wrap msgid "GNOME Macro Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1902 #, no-wrap msgid "`gnomeprefix`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1904 #, no-wrap msgid "Supply `configure` with some default locations." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1905 #, no-wrap msgid "`intlhack`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1907 #, 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:1908 #, no-wrap msgid "`referencehack`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1909 #, 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:1912 #, no-wrap msgid "GNOME Legacy Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1920 #, no-wrap msgid "`atspi`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1921 #, no-wrap msgid "accessibility/at-spi" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1923 #, no-wrap msgid "Assistive Technology Service Provider Interface" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1924 #, no-wrap msgid "`esound`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1925 #, no-wrap msgid "audio/esound" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1927 #, no-wrap msgid "Enlightenment sound package" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1928 #, no-wrap msgid "`gal2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1929 #, no-wrap msgid "x11-toolkits/gal2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1931 #, no-wrap msgid "Collection of widgets taken from GNOME 2 gnumeric" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1932 #, no-wrap msgid "`gconf2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1933 #, no-wrap msgid "devel/gconf2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1935 #, no-wrap msgid "Configuration database system for GNOME 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1936 #, no-wrap msgid "`gconfmm26`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1937 #, no-wrap msgid "devel/gconfmm26" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1939 #, no-wrap msgid "c++ bindings for gconf2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1940 #, no-wrap msgid "`gdkpixbuf`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1941 #, no-wrap msgid "graphics/gdk-pixbuf" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1944 #, no-wrap msgid "`glib12`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1945 #, no-wrap msgid "devel/glib12" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1947 #, no-wrap msgid "glib 1.2 core library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1948 #, no-wrap msgid "`gnomedocutils`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1949 #, no-wrap msgid "textproc/gnome-doc-utils" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1951 #, no-wrap msgid "GNOME doc utils" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1952 #, no-wrap msgid "`gnomemimedata`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1953 #, no-wrap msgid "misc/gnome-mime-data" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1955 #, no-wrap msgid "MIME and Application database for GNOME 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1956 #, no-wrap msgid "`gnomesharp20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1957 #, no-wrap msgid "x11-toolkits/gnome-sharp20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1959 #, no-wrap msgid "GNOME 2 interfaces for the .NET runtime" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1960 #, no-wrap msgid "`gnomespeech`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1961 #, no-wrap msgid "accessibility/gnome-speech" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1963 #, no-wrap msgid "GNOME 2 text-to-speech API" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1964 #, no-wrap msgid "`gnomevfs2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1965 #, no-wrap msgid "devel/gnome-vfs" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1967 #, no-wrap msgid "GNOME 2 Virtual File System" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1968 #, no-wrap msgid "`gtk12`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1969 #, no-wrap msgid "x11-toolkits/gtk12" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1971 #, no-wrap msgid "Gtk+ 1.2 toolkit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1972 #, no-wrap msgid "`gtkhtml3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1973 #, no-wrap msgid "www/gtkhtml3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1975 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1979 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2035 #, no-wrap msgid "Lightweight HTML rendering/printing/editing engine" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1976 #, no-wrap msgid "`gtkhtml4`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1977 #, no-wrap msgid "www/gtkhtml4" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1980 #, no-wrap msgid "`gtksharp20`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1981 #, no-wrap msgid "x11-toolkits/gtk-sharp20" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1983 #, no-wrap msgid "GTK+ and GNOME 2 interfaces for the .NET runtime" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1984 #, no-wrap msgid "`gtksourceview`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1985 #, no-wrap msgid "x11-toolkits/gtksourceview" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1988 #, no-wrap msgid "`libartgpl2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1989 #, no-wrap msgid "graphics/libart_lgpl" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1991 #, no-wrap msgid "Library for high-performance 2D graphics" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1992 #, no-wrap msgid "`libbonobo`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1993 #, no-wrap msgid "devel/libbonobo" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1995 #, no-wrap msgid "Component and compound document system for GNOME 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1996 #, no-wrap msgid "`libbonoboui`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1997 #, no-wrap msgid "x11-toolkits/libbonoboui" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1999 #, no-wrap msgid "GUI frontend to the libbonobo component of GNOME 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2000 #, no-wrap msgid "`libgda4`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2001 #, no-wrap msgid "databases/libgda4" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2004 #, no-wrap msgid "`libglade2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2005 #, no-wrap msgid "devel/libglade2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2007 #, no-wrap msgid "GNOME 2 glade library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2008 #, no-wrap msgid "`libgnome`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2009 #, no-wrap msgid "x11/libgnome" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2011 #, no-wrap msgid "Libraries for GNOME 2, a GNU desktop environment" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2012 #, no-wrap msgid "`libgnomecanvas`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2013 #, no-wrap msgid "graphics/libgnomecanvas" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2015 #, no-wrap msgid "Graphics library for GNOME 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2016 #, no-wrap msgid "`libgnomekbd`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2017 #, no-wrap msgid "x11/libgnomekbd" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2019 #, no-wrap msgid "GNOME 2 keyboard shared library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2020 #, no-wrap msgid "`libgnomeprint`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2021 #, no-wrap msgid "print/libgnomeprint" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2023 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2027 #, no-wrap msgid "Gnome 2 print support library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2024 #, no-wrap msgid "`libgnomeprintui`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2025 #, no-wrap msgid "x11-toolkits/libgnomeprintui" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2028 #, no-wrap msgid "`libgnomeui`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2029 #, no-wrap msgid "x11-toolkits/libgnomeui" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2031 #, 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:2032 #, no-wrap msgid "`libgtkhtml`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2033 #, no-wrap msgid "www/libgtkhtml" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2036 #, no-wrap msgid "`libgtksourceviewmm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2037 #, no-wrap msgid "x11-toolkits/libgtksourceviewmm" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2039 #, no-wrap msgid "c++ binding of GtkSourceView" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2040 #, no-wrap msgid "`libidl`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2041 #, no-wrap msgid "devel/libIDL" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2043 #, no-wrap msgid "Library for creating trees of CORBA IDL file" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2044 #, no-wrap msgid "`libsigc++12`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2045 #, no-wrap msgid "devel/libsigc++12" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2048 #, no-wrap msgid "`libwnck`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2049 #, no-wrap msgid "x11-toolkits/libwnck" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2051 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2055 #, no-wrap msgid "Library used for writing pagers and taskslists" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2052 #, no-wrap msgid "`libwnck3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2053 #, no-wrap msgid "x11-toolkits/libwnck3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2056 #, no-wrap msgid "`orbit2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2057 #, no-wrap msgid "devel/ORBit2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2059 #, 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:2060 #, no-wrap msgid "`pygnome2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2061 #, no-wrap msgid "x11-toolkits/py-gnome2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2063 #, no-wrap msgid "Python bindings for GNOME 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2064 #, no-wrap msgid "`pygobject`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2065 #, no-wrap msgid "devel/py-gobject" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2067 #, no-wrap msgid "Python 2, GObject 2.0 bindings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2068 #, no-wrap msgid "`pygtk2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2069 #, no-wrap msgid "x11-toolkits/py-gtk2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2071 #, no-wrap msgid "Set of Python bindings for GTK+" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2072 #, no-wrap msgid "`pygtksourceview`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2073 #, no-wrap msgid "x11-toolkits/py-gtksourceview" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2075 #, no-wrap msgid "Python bindings for GtkSourceView 2" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2076 #, no-wrap msgid "`vte`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2077 #, no-wrap msgid "x11-toolkits/vte" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2081 #, no-wrap msgid "Deprecated Components: Do Not Use" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2088 #, no-wrap msgid "`pangox-compat`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2089 #, 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:2092 #, no-wrap msgid "Using Qt" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2097 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:2100 #, no-wrap msgid "Ports That Require Qt" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2105 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:2107 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:2109 #, no-wrap msgid "Variables Provided to Ports That Use Qt" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2113 #, no-wrap msgid "`QMAKE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2115 #, no-wrap msgid "Full path to `qmake` binary." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2116 #, no-wrap msgid "`LRELEASE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2118 #, no-wrap msgid "Full path to `lrelease` utility." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2119 #, no-wrap msgid "`MOC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2121 #, no-wrap msgid "Full path to `moc`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2122 #, no-wrap msgid "`RCC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2124 #, no-wrap msgid "Full path to `rcc`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2125 #, no-wrap msgid "`UIC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2127 #, no-wrap msgid "Full path to `uic`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2128 #, no-wrap msgid "`QT_INCDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2130 #, no-wrap msgid "Qt include directory." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2131 #, no-wrap msgid "`QT_LIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2133 #, no-wrap msgid "Qt libraries path." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2134 #, no-wrap msgid "`QT_PLUGINDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2135 #, no-wrap msgid "Qt plugins path." msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:2138 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3860 #, no-wrap msgid "Component Selection" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2145 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:2147 #, no-wrap msgid "Available Qt Library Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2151 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2395 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2412 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2545 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3125 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3850 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3870 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3895 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3999 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4169 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4221 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4313 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4404 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4466 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4727 #, no-wrap msgid "Name" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2154 #, no-wrap msgid "`3d`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2156 #, no-wrap msgid "Qt3D module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2157 #, no-wrap msgid "`5compat`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2159 #, no-wrap msgid "Qt 5 compatibility module for Qt 6" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2160 #, no-wrap msgid "`assistant`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2162 #, no-wrap msgid "Qt 5 documentation browser" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2163 #, no-wrap msgid "`base`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2165 #, no-wrap msgid "Qt 6 base module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2166 #, no-wrap msgid "`canvas3d`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2168 #, no-wrap msgid "Qt canvas3d module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2169 #, no-wrap msgid "`charts`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2171 #, no-wrap msgid "Qt 5 charts module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2172 #, no-wrap msgid "`concurrent`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2174 #, no-wrap msgid "Qt multi-threading module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2175 #, no-wrap msgid "`connectivity`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2177 #, no-wrap msgid "Qt connectivity (Bluetooth/NFC) module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2178 #, no-wrap msgid "`core`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2180 #, no-wrap msgid "Qt core non-graphical module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2181 #, no-wrap msgid "`datavis3d`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2183 #, no-wrap msgid "Qt 5 3D data visualization module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2184 #, no-wrap msgid "`dbus`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2186 #, no-wrap msgid "Qt D-Bus inter-process communication module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2187 #, no-wrap msgid "`declarative`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2189 #, no-wrap msgid "Qt declarative framework for dynamic user interfaces" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2190 #, no-wrap msgid "`designer`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2192 #, no-wrap msgid "Qt 5 graphical user interface designer" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2193 #, no-wrap msgid "`diag`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2195 #, 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:2196 #, no-wrap msgid "`doc`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2198 #, no-wrap msgid "Qt 5 documentation" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2199 #, no-wrap msgid "`examples`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2201 #, no-wrap msgid "Qt 5 examples sourcecode" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2202 #, no-wrap msgid "`gamepad`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2204 #, no-wrap msgid "Qt 5 Gamepad Module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2205 #, no-wrap msgid "`graphicaleffects`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2207 #, no-wrap msgid "Qt Quick graphical effects" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2208 #, no-wrap msgid "`gui`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2210 #, no-wrap msgid "Qt graphical user interface module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2211 #, no-wrap msgid "`help`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2213 #, no-wrap msgid "Qt online help integration module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2214 #, no-wrap msgid "`l10n`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2216 #, no-wrap msgid "Qt localized messages" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2217 #, no-wrap msgid "`languageserver`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2219 #, no-wrap msgid "Qt 6 Language Server Protocol implementation" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2220 #, no-wrap msgid "`linguist`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2222 #, no-wrap msgid "Qt 5 translation tool" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2223 #, no-wrap msgid "`location`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2225 #, no-wrap msgid "Qt location module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2226 #, no-wrap msgid "`lottie`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2228 #, no-wrap msgid "Qt 6 QML API for rendering graphics and animations" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2229 #, no-wrap msgid "`multimedia`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2231 #, no-wrap msgid "Qt audio, video, radio and camera support module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2232 #, no-wrap msgid "`network`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2234 #, no-wrap msgid "Qt network module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2235 #, no-wrap msgid "`networkauth`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2237 #, no-wrap msgid "Qt network auth module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2238 #, no-wrap msgid "`opengl`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2240 #, no-wrap msgid "Qt 5-compatible OpenGL support module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2241 #, no-wrap msgid "`paths`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2243 #, no-wrap msgid "Command line client to QStandardPaths" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2244 #, no-wrap msgid "`phonon4`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2246 #, no-wrap msgid "KDE multimedia framework" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2247 #, no-wrap msgid "`pixeltool`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2249 #, no-wrap msgid "Qt 5 screen magnifier" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2250 #, no-wrap msgid "`plugininfo`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2252 #, no-wrap msgid "Qt 5 plugin metadata dumper" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2253 #, no-wrap msgid "`positioning`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2255 #, 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:2256 #, no-wrap msgid "`printsupport`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2258 #, no-wrap msgid "Qt print support module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2259 #, no-wrap msgid "`qdbus`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2261 #, no-wrap msgid "Qt command-line interface to D-Bus" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2262 #, no-wrap msgid "`qdbusviewer`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2264 #, no-wrap msgid "Qt 5 graphical interface to D-Bus" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2265 #, no-wrap msgid "`qdoc`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2267 #, no-wrap msgid "Qt documentation generator" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2268 #, no-wrap msgid "`qdoc-data`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2270 #, no-wrap msgid "QDoc configuration files" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2271 #, no-wrap msgid "`qev`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2273 #, no-wrap msgid "Qt QWidget events introspection tool" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2274 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2404 #, no-wrap msgid "`qmake`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2276 #, no-wrap msgid "Qt Makefile generator" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2277 #, no-wrap msgid "`quickcontrols`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2279 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2282 #, 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:2280 #, no-wrap msgid "`quickcontrols2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2283 #, no-wrap msgid "`remoteobjects`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2285 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2294 #, no-wrap msgid "Qt 5 SXCML module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2286 #, no-wrap msgid "`script`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2288 #, no-wrap msgid "Qt 4-compatible scripting module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2289 #, no-wrap msgid "`scripttools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2291 #, no-wrap msgid "Qt Script additional components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2292 #, no-wrap msgid "`scxml`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2295 #, no-wrap msgid "`sensors`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2297 #, no-wrap msgid "Qt sensors module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2298 #, no-wrap msgid "`serialbus`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2300 #, no-wrap msgid "Qt functions to access industrial bus systems" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2301 #, no-wrap msgid "`serialport`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2303 #, no-wrap msgid "Qt functions to access serial ports" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2304 #, no-wrap msgid "`shadertools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2306 #, 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:2307 #, no-wrap msgid "`speech`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2309 #, no-wrap msgid "Accessibility features for Qt5" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2310 #, no-wrap msgid "`sql`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2312 #, no-wrap msgid "Qt SQL database integration module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2313 #, no-wrap msgid "`sql-ibase`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2315 #, no-wrap msgid "Qt InterBase/Firebird database plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2316 #, no-wrap msgid "`sql-mysql`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2318 #, no-wrap msgid "Qt MySQL database plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2319 #, no-wrap msgid "`sql-odbc`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2321 #, no-wrap msgid "Qt Open Database Connectivity plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2322 #, no-wrap msgid "`sql-pgsql`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2324 #, no-wrap msgid "Qt PostgreSQL database plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2325 #, no-wrap msgid "`sql-sqlite2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2327 #, no-wrap msgid "Qt SQLite 2 database plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2328 #, no-wrap msgid "`sql-sqlite3`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2330 #, no-wrap msgid "Qt SQLite 3 database plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2331 #, no-wrap msgid "`sql-tds`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2333 #, no-wrap msgid "Qt TDS Database Connectivity database plugin" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2334 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3929 #, no-wrap msgid "`svg`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2336 #, no-wrap msgid "Qt SVG support module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2337 #, no-wrap msgid "`testlib`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2339 #, no-wrap msgid "Qt unit testing module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2340 #, no-wrap msgid "`tools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2342 #, no-wrap msgid "Qt 6 assorted tools" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2343 #, no-wrap msgid "`translations`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2345 #, no-wrap msgid "Qt 6 translation module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2346 #, no-wrap msgid "`uiplugin`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2348 #, no-wrap msgid "Custom Qt widget plugin interface for Qt Designer" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2349 #, no-wrap msgid "`uitools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2351 #, no-wrap msgid "Qt Designer UI forms support module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2352 #, no-wrap msgid "`virtualkeyboard`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2354 #, no-wrap msgid "Qt 5 Virtual Keyboard Module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2355 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3079 #, no-wrap msgid "`wayland`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2357 #, no-wrap msgid "Qt 5 wrapper for Wayland" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2358 #, no-wrap msgid "`webchannel`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2360 #, 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:2361 #, no-wrap msgid "`webengine`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2363 #, no-wrap msgid "Qt 5 library to render web content" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2364 #, no-wrap msgid "`webkit`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2366 #, no-wrap msgid "QtWebKit with a more modern WebKit code base" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2367 #, no-wrap msgid "`websockets`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2369 #, no-wrap msgid "Qt implementation of WebSocket protocol" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2370 #, no-wrap msgid "`websockets-qml`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2372 #, no-wrap msgid "Qt implementation of WebSocket protocol (QML bindings)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2373 #, no-wrap msgid "`webview`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2375 #, no-wrap msgid "Qt component for displaying web content" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2376 #, no-wrap msgid "`widgets`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2378 #, no-wrap msgid "Qt C++ widgets module" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2379 #, no-wrap msgid "`x11extras`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2381 #, no-wrap msgid "Qt platform-specific features for X11-based systems" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2382 #, no-wrap msgid "`xml`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2384 #, no-wrap msgid "Qt SAX and DOM implementations" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2385 #, no-wrap msgid "`xmlpatterns`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2386 #, 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:2389 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:2391 #, no-wrap msgid "Available Qt Tool Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2398 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3128 #, no-wrap msgid "`buildtools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2400 #, 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:2401 #, no-wrap msgid "`linguisttools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2403 #, no-wrap msgid "localization tools: `lrelease`, `lupdate`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2405 #, no-wrap msgid "Makefile generator/build utility" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2408 #, no-wrap msgid "Available Qt Plugin Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2415 #, no-wrap msgid "`imageformats`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2416 #, no-wrap msgid "plugins for TGA, TIFF, and MNG image formats" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2419 #, no-wrap msgid "Selecting Qt 5 Components" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2425 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:2430 #, 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:2435 #, no-wrap msgid "Using `qmake`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2443 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 crossref:special[using-cmake,CMake], qmake supports " "out-of-source builds, which can be enabled by specifying the `outsource` " "argument (see crossref:special[using-qmake-example,`USES= qmake` example]). " "Also see crossref:special[using-qmake-arguments,Possible Arguments for `USES " "qmake`]." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2445 #, no-wrap msgid "Possible Arguments for `USES= qmake`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2452 #, no-wrap msgid "`no_configure`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2454 #, 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:2455 #, no-wrap msgid "`no_env`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2457 #, 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:2458 #, no-wrap msgid "`norecursive`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2460 #, no-wrap msgid "Do not pass the `-recursive` argument to `qmake`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2461 #, no-wrap msgid "`outsource`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2462 #, no-wrap msgid "Perform an out-of-source build." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2465 #, no-wrap msgid "Variables for Ports That Use `qmake`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2472 #, no-wrap msgid "`QMAKE_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2474 #, 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:2475 #, no-wrap msgid "`QMAKE_ENV`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2477 #, 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:2478 #, no-wrap msgid "`QMAKE_SOURCE_PATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2479 #, 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:2482 msgid "When using `USES= qmake`, these settings are deployed:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2489 #, 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:2493 #, 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:2497 #, 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:2501 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:2503 #, no-wrap msgid "`USES= qmake` Example" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2507 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:2512 #, 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:2517 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:2519 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:2524 #, 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:2527 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:2529 #, no-wrap msgid "Using KDE" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:2532 #, no-wrap msgid "KDE Variable Definitions" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2539 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:2541 #, no-wrap msgid "Available KDE Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2548 #, no-wrap msgid "`activities`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2550 #, 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:2551 #, no-wrap msgid "`activities-stats`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2553 #, no-wrap msgid "KF5 statistics for activities" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2554 #, no-wrap msgid "`activitymanagerd`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2556 #, 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:2557 #, no-wrap msgid "`akonadi`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2559 #, no-wrap msgid "Storage server for KDE-Pim" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2560 #, no-wrap msgid "`akonadicalendar`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2562 #, no-wrap msgid "Akonadi Calendar Integration" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2563 #, no-wrap msgid "`akonadiconsole`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2565 #, no-wrap msgid "Akonadi management and debugging console" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2566 #, no-wrap msgid "`akonadicontacts`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2568 #, no-wrap msgid "Libraries and daemons to implement Contact Management in Akonadi" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2569 #, no-wrap msgid "`akonadiimportwizard`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2571 #, no-wrap msgid "Import data from other mail clients to KMail" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2572 #, no-wrap msgid "`akonadimime`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2574 #, no-wrap msgid "Libraries and daemons to implement basic email handling" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2575 #, no-wrap msgid "`akonadinotes`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2577 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2940 #, no-wrap msgid "KDE library for accessing mail storages in MBox format" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2578 #, no-wrap msgid "`akonadisearch`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2580 #, no-wrap msgid "Libraries and daemons to implement searching in Akonadi" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2581 #, no-wrap msgid "`akregator`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2583 #, no-wrap msgid "A Feed Reader by KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2584 #, no-wrap msgid "`alarmcalendar`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2586 #, no-wrap msgid "KDE API for KAlarm alarms" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2587 #, no-wrap msgid "`apidox`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2589 #, no-wrap msgid "KF5 API Documentation Tools" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2590 #, no-wrap msgid "`archive`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2592 #, no-wrap msgid "KF5 library that provides classes for handling archive formats" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2593 #, no-wrap msgid "`attica`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2595 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2598 #, no-wrap msgid "Open Collaboration Services API library KDE5 version" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2596 #, no-wrap msgid "`attica5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2599 #, no-wrap msgid "`auth`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2601 #, no-wrap msgid "KF5 abstraction to system policy and authentication features" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2602 #, no-wrap msgid "`baloo`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2604 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2610 #, no-wrap msgid "KF5 Framework for searching and managing user metadata" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2605 #, no-wrap msgid "`baloo-widgets`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2607 #, no-wrap msgid "BalooWidgets library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2608 #, no-wrap msgid "`baloo5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2611 #, no-wrap msgid "`blog`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2613 #, no-wrap msgid "KDE API for weblogging access" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2614 #, no-wrap msgid "`bookmarks`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2616 #, no-wrap msgid "KF5 library for bookmarks and the XBEL format" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2617 #, no-wrap msgid "`breeze`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2619 #, 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:2620 #, no-wrap msgid "`breeze-gtk`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2622 #, no-wrap msgid "Plasma5 Breeze visual style for Gtk" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2623 #, no-wrap msgid "`breeze-icons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2625 #, no-wrap msgid "Breeze icon theme for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2626 #, no-wrap msgid "`calendarcore`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2628 #, no-wrap msgid "KDE calendar access library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2629 #, no-wrap msgid "`calendarsupport`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2631 #, no-wrap msgid "Calendar support libraries for KDEPim" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2632 #, no-wrap msgid "`calendarutils`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2634 #, no-wrap msgid "KDE utility and user interface functions for accessing calendar" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2635 #, no-wrap msgid "`codecs`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2637 #, no-wrap msgid "KF5 library for string manipulation" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2638 #, no-wrap msgid "`completion`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2640 #, no-wrap msgid "KF5 text completion helpers and widgets" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2641 #, no-wrap msgid "`config`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2643 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2646 #, no-wrap msgid "KF5 widgets for configuration dialogs" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2644 #, no-wrap msgid "`configwidgets`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2647 #, no-wrap msgid "`contacts`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2649 #, no-wrap msgid "KDE api to manage contact information" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2650 #, no-wrap msgid "`coreaddons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2652 #, no-wrap msgid "KF5 addons to QtCore" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2653 #, no-wrap msgid "`crash`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2655 #, 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:2656 #, no-wrap msgid "`dbusaddons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2658 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3066 #, no-wrap msgid "KF5 addons to QtDBus" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2659 #, no-wrap msgid "`decoration`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2661 #, no-wrap msgid "Plasma5 library to create window decorations" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2662 #, no-wrap msgid "`designerplugin`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2664 #, no-wrap msgid "KF5 integration of Frameworks widgets in Qt Designer/Creator" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2665 #, no-wrap msgid "`discover`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2667 #, no-wrap msgid "Plasma5 package management tools" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2668 #, no-wrap msgid "`dnssd`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2670 #, no-wrap msgid "KF5 abstraction to system DNSSD features" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2671 #, no-wrap msgid "`doctools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2673 #, no-wrap msgid "KF5 documentation generation from docbook" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2674 #, no-wrap msgid "`drkonqi`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2676 #, no-wrap msgid "Plasma5 crash handler" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2677 #, no-wrap msgid "`ecm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2679 #, no-wrap msgid "Extra modules and scripts for CMake" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2680 #, no-wrap msgid "`emoticons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2682 #, no-wrap msgid "KF5 library to convert emoticons" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2683 #, no-wrap msgid "`eventviews`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2685 #, no-wrap msgid "Event view libriares for KDEPim" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2686 #, no-wrap msgid "`filemetadata`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2688 #, no-wrap msgid "KF5 library for extracting file metadata" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2689 #, no-wrap msgid "`frameworkintegration`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2691 #, no-wrap msgid "KF5 workspace and cross-framework integration plugins" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2692 #, no-wrap msgid "`gapi`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2694 #, no-wrap msgid "KDE based library to access google services" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2695 #, no-wrap msgid "`globalaccel`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2697 #, no-wrap msgid "KF5 library to add support for global workspace shortcuts" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2698 #, no-wrap msgid "`grantlee-editor`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2700 #, no-wrap msgid "Editor for Grantlee themes" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2701 #, no-wrap msgid "`grantleetheme`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2703 #, no-wrap msgid "KDE PIM grantleetheme" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2704 #, no-wrap msgid "`gravatar`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2706 #, no-wrap msgid "Library for gravatar support" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2707 #, no-wrap msgid "`guiaddons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2709 #, no-wrap msgid "KF5 addons to QtGui" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2710 #, no-wrap msgid "`holidays`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2712 #, no-wrap msgid "KDE library for calendar holidays" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2713 #, no-wrap msgid "`hotkeys`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2715 #, no-wrap msgid "Plasma5 library for hotkeys" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2716 #, no-wrap msgid "`i18n`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2718 #, no-wrap msgid "KF5 advanced internationalization framework" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2719 #, no-wrap msgid "`iconthemes`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2721 #, no-wrap msgid "KF5 library for handling icons in applications" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2722 #, no-wrap msgid "`identitymanagement`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2724 #, no-wrap msgid "KDE pim identities" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2725 #, no-wrap msgid "`idletime`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2727 #, no-wrap msgid "KF5 library for monitoring user activity" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2728 #, no-wrap msgid "`imap`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2730 #, no-wrap msgid "KDE API for IMAP support" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2731 #, no-wrap msgid "`incidenceeditor`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2733 #, no-wrap msgid "Incidence editor libriares for KDEPim" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2734 #, no-wrap msgid "`infocenter`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2736 #, no-wrap msgid "Plasma5 utility providing system information" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2737 #, no-wrap msgid "`init`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2739 #, no-wrap msgid "KF5 process launcher to speed up launching KDE applications" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2740 #, no-wrap msgid "`itemmodels`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2742 #, no-wrap msgid "KF5 models for Qt Model/View system" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2743 #, no-wrap msgid "`itemviews`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2745 #, no-wrap msgid "KF5 widget addons for Qt Model/View" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2746 #, no-wrap msgid "`jobwidgets`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2748 #, no-wrap msgid "KF5 widgets for tracking KJob instance" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2749 #, no-wrap msgid "`js`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2751 #, no-wrap msgid "KF5 library providing an ECMAScript interpreter" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2752 #, no-wrap msgid "`jsembed`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2754 #, no-wrap msgid "KF5 library for binding JavaScript objects to QObjects" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2755 #, no-wrap msgid "`kaddressbook`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2757 #, no-wrap msgid "KDE contact manager" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2758 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2761 #, no-wrap msgid "`kalarm`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2760 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2763 #, no-wrap msgid "Personal alarm scheduler" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2764 #, no-wrap msgid "`kate`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2766 #, no-wrap msgid "Basic editor framework for the KDE system" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2767 #, no-wrap msgid "`kcmutils`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2769 #, no-wrap msgid "KF5 utilities for working with KCModules" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2770 #, no-wrap msgid "`kde-cli-tools`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2772 #, no-wrap msgid "Plasma5 non-interactive system tools" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2773 #, no-wrap msgid "`kde-gtk-config`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2775 #, no-wrap msgid "Plasma5 GTK2 and GTK3 configurator" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2776 #, no-wrap msgid "`kdeclarative`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2778 #, no-wrap msgid "KF5 library providing integration of QML and KDE Frameworks" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2779 #, no-wrap msgid "`kded`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2781 #, no-wrap msgid "KF5 extensible daemon for providing system level services" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2782 #, no-wrap msgid "`kdelibs4support`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2784 #, no-wrap msgid "KF5 porting aid from KDELibs4" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2785 #, no-wrap msgid "`kdepim-addons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2787 #, no-wrap msgid "KDE PIM addons" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2788 #, no-wrap msgid "`kdepim-apps-libs`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2790 #, no-wrap msgid "KDE PIM mail related libraries" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2791 #, no-wrap msgid "`kdepim-runtime5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2793 #, no-wrap msgid "KDE PIM tools and services" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2794 #, no-wrap msgid "`kdeplasma-addons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2796 #, no-wrap msgid "Plasma5 addons to improve the Plasma experience" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2797 #, no-wrap msgid "`kdesu`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2799 #, no-wrap msgid "KF5 integration with su for elevated privileges" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2800 #, no-wrap msgid "`kdewebkit`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2802 #, no-wrap msgid "KF5 library providing integration of QtWebKit" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2803 #, no-wrap msgid "`kgamma5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2805 #, no-wrap msgid "Plasma5 monitor's gamma settings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2806 #, no-wrap msgid "`khtml`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2808 #, no-wrap msgid "KF5 KTHML rendering engine" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2809 #, no-wrap msgid "`kimageformats`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2811 #, no-wrap msgid "KF5 library providing support for additional image formats" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2812 #, no-wrap msgid "`kio`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2814 #, no-wrap msgid "KF5 resource and network access abstraction" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2815 #, no-wrap msgid "`kirigami2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2817 #, no-wrap msgid "QtQuick based components set" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2818 #, no-wrap msgid "`kitinerary`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2820 #, no-wrap msgid "Data Model and Extraction System for Travel Reservation information" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2821 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2824 #, no-wrap msgid "`kmail`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2823 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2826 #, no-wrap msgid "KDE mail client" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2827 #, no-wrap msgid "`kmail-account-wizard`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2829 #, no-wrap msgid "KDE mail account wizard" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2830 #, no-wrap msgid "`kmenuedit`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2832 #, no-wrap msgid "Plasma5 menu editor" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2833 #, no-wrap msgid "`knotes`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2835 #, no-wrap msgid "Popup notes" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2836 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2839 #, no-wrap msgid "`kontact`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2838 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2841 #, no-wrap msgid "KDE Personal Information Manager" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2842 #, no-wrap msgid "`kontactinterface`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2844 #, no-wrap msgid "KDE glue for embedding KParts into Kontact" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2845 #, no-wrap msgid "`korganizer`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2847 #, no-wrap msgid "Calendar and scheduling Program" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2848 #, no-wrap msgid "`kpimdav`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2850 #, no-wrap msgid "A DAV protocol implementation with KJobs" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2851 #, no-wrap msgid "`kpkpass`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2853 #, no-wrap msgid "Library to deal with Apple Wallet pass files" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2854 #, no-wrap msgid "`kross`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2856 #, no-wrap msgid "KF5 multi-language application scripting" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2857 #, no-wrap msgid "`kscreen`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2859 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2919 #, no-wrap msgid "Plasma5 screen management library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2860 #, no-wrap msgid "`kscreenlocker`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2862 #, no-wrap msgid "Plasma5 secure lock screen architecture" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2863 #, no-wrap msgid "`ksmtp`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2865 #, 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:2866 #, no-wrap msgid "`ksshaskpass`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2868 #, no-wrap msgid "Plasma5 ssh-add frontend" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2869 #, no-wrap msgid "`ksysguard`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2871 #, no-wrap msgid "Plasma5 utility to track and control the running processes" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2872 #, no-wrap msgid "`kwallet-pam`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2874 #, no-wrap msgid "Plasma5 KWallet PAM Integration" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2875 #, no-wrap msgid "`kwayland-integration`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2877 #, no-wrap msgid "Integration plugins for a Wayland-based desktop" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2878 #, no-wrap msgid "`kwin`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2880 #, no-wrap msgid "Plasma5 window manager" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2881 #, no-wrap msgid "`kwrited`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2883 #, no-wrap msgid "Plasma5 daemon listening for wall and write messages" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2884 #, no-wrap msgid "`ldap`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2886 #, no-wrap msgid "LDAP access API for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2887 #, no-wrap msgid "`libkcddb`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2889 #, no-wrap msgid "KDE CDDB library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2890 #, no-wrap msgid "`libkcompactdisc`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2892 #, no-wrap msgid "KDE library for interfacing with audio CDs" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2893 #, no-wrap msgid "`libkdcraw`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2895 #, no-wrap msgid "LibRaw interface for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2896 #, no-wrap msgid "`libkdegames`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2898 #, no-wrap msgid "Libraries used by KDE games" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2899 #, no-wrap msgid "`libkdepim`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2901 #, no-wrap msgid "KDE PIM Libraries" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2902 #, no-wrap msgid "`libkeduvocdocument`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2904 #, no-wrap msgid "Library for reading and writing vocabulary files" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2905 #, no-wrap msgid "`libkexiv2`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2907 #, no-wrap msgid "Exiv2 library interface for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2908 #, no-wrap msgid "`libkipi`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2910 #, no-wrap msgid "KDE Image Plugin Interface" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2911 #, no-wrap msgid "`libkleo`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2913 #, no-wrap msgid "Certificate manager for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2914 #, no-wrap msgid "`libksane`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2916 #, no-wrap msgid "SANE library interface for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2917 #, no-wrap msgid "`libkscreen`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2920 #, no-wrap msgid "`libksieve`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2922 #, no-wrap msgid "Sieve libriares for KDEPim" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2923 #, no-wrap msgid "`libksysguard`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2925 #, no-wrap msgid "Plasma5 library to track and control running processes" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2926 #, no-wrap msgid "`mailcommon`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2928 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2988 #, no-wrap msgid "Common libriares for KDEPim" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2929 #, no-wrap msgid "`mailimporter`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2931 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2943 #, no-wrap msgid "Import mbox files to KMail" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2932 #, no-wrap msgid "`mailtransport`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2934 #, no-wrap msgid "KDE library to managing mail transport" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2935 #, no-wrap msgid "`marble`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2937 #, no-wrap msgid "Virtual globe and world atlas for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2938 #, no-wrap msgid "`mbox`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2941 #, no-wrap msgid "`mbox-importer`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2944 #, no-wrap msgid "`mediaplayer`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2946 #, no-wrap msgid "KF5 plugin interface for media player features" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2947 #, no-wrap msgid "`messagelib`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2949 #, no-wrap msgid "Library for handling messages" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2950 #, no-wrap msgid "`milou`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2952 #, no-wrap msgid "Plasma5 Plasmoid for search" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2953 #, no-wrap msgid "`mime`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2955 #, no-wrap msgid "Library for handling MIME data" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2956 #, no-wrap msgid "`newstuff`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2958 #, no-wrap msgid "KF5 library for downloading application assets from the network" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2959 #, no-wrap msgid "`notifications`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2961 #, no-wrap msgid "KF5 abstraction for system notifications" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2962 #, no-wrap msgid "`notifyconfig`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2964 #, no-wrap msgid "KF5 configuration system for KNotify" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2965 #, no-wrap msgid "`okular`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2967 #, no-wrap msgid "KDE universal document viewer" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2968 #, no-wrap msgid "`oxygen`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2970 #, no-wrap msgid "Plasma5 Oxygen style" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2971 #, no-wrap msgid "`oxygen-icons5`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2973 #, no-wrap msgid "The Oxygen icon theme for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2974 #, no-wrap msgid "`package`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2976 #, no-wrap msgid "KF5 library to load and install packages" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2977 #, no-wrap msgid "`parts`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2979 #, no-wrap msgid "KF5 document centric plugin system" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2980 #, no-wrap msgid "`people`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2982 #, no-wrap msgid "KF5 library providing access to contacts" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2983 #, no-wrap msgid "`pim-data-exporter`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2985 #, no-wrap msgid "Import and export KDE PIM settings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2986 #, no-wrap msgid "`pimcommon`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2989 #, no-wrap msgid "`pimtextedit`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2991 #, no-wrap msgid "KDE library for PIM-specific text editing utilities" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2992 #, no-wrap msgid "`plasma-browser-integration`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2994 #, no-wrap msgid "Plasma5 components to integrate browsers into the desktop" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2995 #, no-wrap msgid "`plasma-desktop`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2997 #, no-wrap msgid "Plasma5 plasma desktop" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2998 #, no-wrap msgid "`plasma-framework`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3000 #, 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:3001 #, no-wrap msgid "`plasma-integration`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3003 #, no-wrap msgid "Qt Platform Theme integration plugins for the Plasma workspaces" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3004 #, no-wrap msgid "`plasma-pa`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3006 #, no-wrap msgid "Plasma5 Plasma pulse audio mixer" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3007 #, no-wrap msgid "`plasma-sdk`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3009 #, no-wrap msgid "Plasma5 applications useful for Plasma development" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3010 #, no-wrap msgid "`plasma-workspace`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3012 #, no-wrap msgid "Plasma5 Plasma workspace" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3013 #, no-wrap msgid "`plasma-workspace-wallpapers`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3015 #, no-wrap msgid "Plasma5 wallpapers" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3016 #, no-wrap msgid "`plotting`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3018 #, no-wrap msgid "KF5 lightweight plotting framework" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3019 #, no-wrap msgid "`polkit-kde-agent-1`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3021 #, no-wrap msgid "Plasma5 daemon providing a polkit authentication UI" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3022 #, no-wrap msgid "`powerdevil`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3024 #, no-wrap msgid "Plasma5 tool to manage the power consumption settings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3025 #, no-wrap msgid "`prison`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3027 #, no-wrap msgid "API to produce barcodes" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3028 #, no-wrap msgid "`pty`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3030 #, no-wrap msgid "KF5 pty abstraction" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3031 #, no-wrap msgid "`purpose`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3033 #, no-wrap msgid "Offers available actions for a specific purpose" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3034 #, no-wrap msgid "`qqc2-desktop-style`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3036 #, no-wrap msgid "Qt QuickControl2 style for KDE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3037 #, no-wrap msgid "`runner`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3039 #, no-wrap msgid "KF5 parallelized query system" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3040 #, no-wrap msgid "`service`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3042 #, no-wrap msgid "KF5 advanced plugin and service introspection" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3043 #, no-wrap msgid "`solid`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3045 #, no-wrap msgid "KF5 hardware integration and detection" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3046 #, no-wrap msgid "`sonnet`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3048 #, no-wrap msgid "KF5 plugin-based spell checking library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3049 #, no-wrap msgid "`syndication`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3051 #, no-wrap msgid "KDE RSS feed handling library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3052 #, no-wrap msgid "`syntaxhighlighting`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3054 #, no-wrap msgid "KF5 syntax highlighting engine for structured text and code" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3055 #, no-wrap msgid "`systemsettings`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3057 #, no-wrap msgid "Plasma5 system settings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3058 #, no-wrap msgid "`texteditor`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3060 #, no-wrap msgid "KF5 advanced embeddable text editor" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3061 #, no-wrap msgid "`textwidgets`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3063 #, no-wrap msgid "KF5 advanced text editing widgets" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3064 #, no-wrap msgid "`threadweaver`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3067 #, no-wrap msgid "`tnef`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3069 #, no-wrap msgid "KDE API for the handling of TNEF data" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3070 #, no-wrap msgid "`unitconversion`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3072 #, no-wrap msgid "KF5 library for unit conversion" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3073 #, no-wrap msgid "`user-manager`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3075 #, no-wrap msgid "Plasma5 user manager" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3076 #, no-wrap msgid "`wallet`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3078 #, no-wrap msgid "KF5 secure and unified container for user passwords" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3081 #, 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:3082 #, no-wrap msgid "`widgetsaddons`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3084 #, no-wrap msgid "KF5 addons to QtWidgets" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3085 #, no-wrap msgid "`windowsystem`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3087 #, no-wrap msgid "KF5 library for access to the windowing system" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3088 #, no-wrap msgid "`xmlgui`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3090 #, no-wrap msgid "KF5 user configurable main windows" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3091 #, no-wrap msgid "`xmlrpcclient`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3092 #, no-wrap msgid "KF5 interaction with XMLRPC services" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3095 #, no-wrap msgid "`USE_KDE` Example" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3105 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 " "crossref:special[using-cmake, 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:3111 #, 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:3116 #, no-wrap msgid "Using LXQt" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3119 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:3121 #, no-wrap msgid "Available LXQt Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3130 #, no-wrap msgid "Helpers for additional CMake modules" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3131 #, no-wrap msgid "`libfmqt`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3133 #, no-wrap msgid "Libfm Qt bindings" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3134 #, no-wrap msgid "`lxqt`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3136 #, no-wrap msgid "LXQt core library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3137 #, no-wrap msgid "`qtxdg`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3138 #, no-wrap msgid "Qt implementation of freedesktop.org XDG specifications" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3141 #, no-wrap msgid "`USE_LXQT` Example" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3146 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:3152 #, 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:3157 #, no-wrap msgid "Using Java" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3160 #, no-wrap msgid "Variable Definitions" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3163 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:3167 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/" "openjdk25[], with package:java/openjdk24[], package:java/openjdk23[], " "package:java/openjdk22[], package:java/openjdk21[], package:java/" "openjdk20[], package:java/openjdk17[], package:java/openjdk11[], and " "package:java/openjdk8[], also available." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3169 #, 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:3176 #, no-wrap msgid "`USE_JAVA`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3178 #, no-wrap msgid "Define for the remaining variables to have any effect." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3179 #, no-wrap msgid "`JAVA_VERSION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3182 #, 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:3183 #, no-wrap msgid "`JAVA_OS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3185 #, 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:3186 #, no-wrap msgid "`JAVA_VENDOR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3188 #, 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:3189 #, no-wrap msgid "`JAVA_BUILD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3191 #, 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:3192 #, no-wrap msgid "`JAVA_RUN`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3194 #, 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:3195 #, no-wrap msgid "`JAVA_EXTRACT`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3196 #, 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:3199 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:3201 #, no-wrap msgid "Variables Provided to Ports That Use Java" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3207 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3286 #, no-wrap msgid "Value" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3208 #, no-wrap msgid "`JAVA_PORT`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3210 #, 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:3211 #, no-wrap msgid "`JAVA_PORT_VERSION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3213 #, 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:3214 #, no-wrap msgid "`JAVA_PORT_OS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3216 #, 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:3217 #, no-wrap msgid "`JAVA_PORT_VENDOR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3219 #, no-wrap msgid "The vendor of the JDK port (for example, `'openjdk'`)." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3220 #, no-wrap msgid "`JAVA_PORT_OS_DESCRIPTION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3222 #, 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:3223 #, no-wrap msgid "`JAVA_PORT_VENDOR_DESCRIPTION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3225 #, 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:3226 #, no-wrap msgid "`JAVA_HOME`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3228 #, 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:3229 #, no-wrap msgid "`JAVAC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3231 #, 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:3232 #, no-wrap msgid "`JAR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3234 #, 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:3235 #, no-wrap msgid "`APPLETVIEWER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3237 #, 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:3238 #, no-wrap msgid "`JAVA`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3240 #, 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:3241 #, no-wrap msgid "`JAVADOC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3243 #, no-wrap msgid "Path to the `javadoc` utility program." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3244 #, no-wrap msgid "`JAVAH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3246 #, no-wrap msgid "Path to the `javah` program." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3247 #, no-wrap msgid "`JAVAP`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3249 #, no-wrap msgid "Path to the `javap` program." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3250 #, no-wrap msgid "`JAVA_KEYTOOL`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3252 #, no-wrap msgid "Path to the `keytool` utility program." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3253 #, no-wrap msgid "`JAVA_N2A`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3255 #, no-wrap msgid "Path to the `native2ascii` tool." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3256 #, no-wrap msgid "`JAVA_POLICYTOOL`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3258 #, no-wrap msgid "Path to the `policytool` program." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3259 #, no-wrap msgid "`JAVA_SERIALVER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3261 #, no-wrap msgid "Path to the `serialver` utility program." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3262 #, no-wrap msgid "`RMIC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3264 #, no-wrap msgid "Path to the RMI stub/skeleton generator, `rmic`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3265 #, no-wrap msgid "`RMIREGISTRY`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3267 #, no-wrap msgid "Path to the RMI registry program, `rmiregistry`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3268 #, no-wrap msgid "`RMID`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3270 #, no-wrap msgid "Path to the RMI daemon program `rmid`." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3271 #, no-wrap msgid "`JAVA_CLASSES`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3272 #, 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:3276 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:3278 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:3280 #, no-wrap msgid "Constants Defined for Ports That Use Java" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3284 #, no-wrap msgid "Constant" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3287 #, no-wrap msgid "`JAVASHAREDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3289 #, 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:3290 #, no-wrap msgid "`JAVAJARDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3292 #, 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:3293 #, no-wrap msgid "`JAVALIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3294 #, 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:3297 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:3299 #, no-wrap msgid "Building with Ant" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3305 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 " "crossref:special[building, Building Mechanisms]." msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3307 #, no-wrap msgid "Best Practices" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3312 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:3316 #, no-wrap msgid "PLIST_FILES+=\t${JAVAJARDIR}/myport.jar\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3321 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:3328 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:3333 #, 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:3337 #, 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:3342 #, 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:3349 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:3353 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:3356 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:3360 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:3363 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:3365 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:3367 #, no-wrap msgid "Web Applications, Apache and PHP" msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3370 #, no-wrap msgid "Apache" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3373 #, no-wrap msgid "Variables for Ports That Use Apache" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3377 #, no-wrap msgid "`USE_APACHE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3379 #, 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:3380 #, no-wrap msgid "`APXS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3382 #, 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:3383 #, no-wrap msgid "`HTTPD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3385 #, 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:3386 #, no-wrap msgid "`APACHE_VERSION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3388 #, 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:3389 #, no-wrap msgid "`APACHEMODDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3391 #, 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:3392 #, no-wrap msgid "`APACHEINCLUDEDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3394 #, 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:3395 #, no-wrap msgid "`APACHEETCDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3396 #, 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:3399 #, no-wrap msgid "Useful Variables for Porting Apache Modules" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3403 #, no-wrap msgid "`MODULENAME`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3405 #, 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:3406 #, no-wrap msgid "`SHORTMODNAME`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3408 #, 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:3409 #, no-wrap msgid "`AP_FAST_BUILD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3411 #, no-wrap msgid "Use `apxs` to compile and install the module." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3412 #, no-wrap msgid "`AP_GENPLIST`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3414 #, no-wrap msgid "Also automatically creates a [.filename]#pkg-plist#." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3415 #, no-wrap msgid "`AP_INC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3417 #, 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:3418 #, no-wrap msgid "`AP_LIB`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3420 #, 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:3421 #, no-wrap msgid "`AP_EXTRAS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3422 #, no-wrap msgid "Additional flags to pass to `apxs`." msgstr "" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3425 #, no-wrap msgid "Web Applications" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3429 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:3434 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:3439 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:3443 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:3445 #, no-wrap msgid "PHP" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3449 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:3451 #, no-wrap msgid "PEAR Modules" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3454 msgid "Porting PEAR modules is a very simple process." msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3457 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:3459 #, no-wrap msgid "Example Makefile for PEAR Class" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3467 #, 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:3471 #, 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:3473 #, no-wrap msgid "USES=\tpear\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3482 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:3487 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:3493 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:3496 #, no-wrap msgid "Horde Modules" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3499 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:3502 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:3505 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:3507 #, no-wrap msgid "Example Makefile for Horde Module" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3515 #, 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:3519 #, 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:3523 #, 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:3526 #, no-wrap msgid "" "USES=\thorde\n" "USE_PHP=\tsession\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3530 #, 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:3533 #, 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:3542 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:3545 #, no-wrap msgid "Using Python" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3550 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:3552 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:3556 #, no-wrap msgid "PKGNAMEPREFIX=\t${PYTHON_PKGNAMEPREFIX}\n" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3560 #, no-wrap msgid "Most Useful Variables for Ports That Use Python" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3564 #, no-wrap msgid "`USES=python`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3566 #, 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:3567 #, no-wrap msgid "`USE_PYTHON=distutils`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3569 #, 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:3570 #, no-wrap msgid "`USE_PYTHON=autoplist`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3572 #, 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:3573 #, no-wrap msgid "`USE_PYTHON=concurrent`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3575 #, 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:3576 #, no-wrap msgid "`USE_PYTHON=flavors`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3578 #, 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:3579 #, no-wrap msgid "`USE_PYTHON=optsuffix`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3581 #, 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:3582 #, no-wrap msgid "`USE_PYTHON=pep517`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3584 #, no-wrap msgid "Support building and installing wheels according to the PEP-517 standard." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3585 #, no-wrap msgid "`PYTHON_PKGNAMEPREFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3587 #, 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:3588 #, no-wrap msgid "`PYTHON_SITELIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3590 #, 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:3591 #, no-wrap msgid "`PYTHONPREFIX_SITELIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3593 #, 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:3594 #, no-wrap msgid "`PYTHON_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3595 #, no-wrap msgid "Python interpreter command line, including version number." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3598 #, no-wrap msgid "Python Module Dependency Helpers" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3602 #, no-wrap msgid "`PYNUMERIC`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3604 #, no-wrap msgid "Dependency line for numeric extension." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3605 #, no-wrap msgid "`PYNUMPY`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3607 #, 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:3608 #, no-wrap msgid "`PYXML`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3610 #, 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:3611 #, no-wrap msgid "`PY_ENUM34`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3613 #, 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:3614 #, no-wrap msgid "`PY_ENUM_COMPAT`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3616 #, 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:3617 #, no-wrap msgid "`PY_PATHLIB`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3619 #, 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:3620 #, no-wrap msgid "`PY_IPADDRESS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3622 #, 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:3623 #, no-wrap msgid "`PY_FUTURES`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3624 #, 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:3627 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:3632 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 crossref:special[python-Makefile,Makefile for a " "Simple Python Module]." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3635 #, no-wrap msgid "Makefile for a Simple Python Module" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3643 #, 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:3647 #, 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:3649 #, 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:3652 #, 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:3662 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:3668 #, 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:3671 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:3673 #, no-wrap msgid "Using Tcl/Tk" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3678 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:3680 #, 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:3684 #, no-wrap msgid "`TCL_VER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3686 #, no-wrap msgid "chosen major.minor version of Tcl" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3687 #, no-wrap msgid "`TCLSH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3689 #, no-wrap msgid "full path of the Tcl interpreter" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3690 #, no-wrap msgid "`TCL_LIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3692 #, no-wrap msgid "path of the Tcl libraries" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3693 #, no-wrap msgid "`TCL_INCLUDEDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3695 #, no-wrap msgid "path of the Tcl C header files" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3696 #, no-wrap msgid "`TCL_PKG_LIB_PREFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3698 #, no-wrap msgid "Library prefix, as per TIP595" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3699 #, no-wrap msgid "`TCL_PKG_STUB_POSTFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3701 #, no-wrap msgid "Stub library postfix" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3702 #, no-wrap msgid "`TK_VER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3704 #, no-wrap msgid "chosen major.minor version of Tk" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3705 #, no-wrap msgid "`WISH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3707 #, no-wrap msgid "full path of the Tk interpreter" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3708 #, no-wrap msgid "`TK_LIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3710 #, no-wrap msgid "path of the Tk libraries" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3711 #, no-wrap msgid "`TK_INCLUDEDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3712 #, no-wrap msgid "path of the Tk C header files" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3716 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:3718 #, no-wrap msgid "Using SDL" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3721 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:3723 msgid "These SDL libraries for version 1.2 are recognized:" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3725 msgid "sdl: package:devel/sdl12[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3726 msgid "console: package:devel/sdl_console[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3727 msgid "gfx: package:graphics/sdl_gfx[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3728 msgid "image: package:graphics/sdl_image[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3729 msgid "mixer: package:audio/sdl_mixer[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3730 msgid "mm: package:devel/sdlmm[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3731 msgid "net: package:net/sdl_net[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3732 msgid "pango: package:x11-toolkits/sdl_pango[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3733 msgid "sound: package:audio/sdl_sound[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3734 msgid "ttf: package:graphics/sdl_ttf[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3736 msgid "These SDL libraries for version 2.0 are recognized:" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3738 msgid "sdl: package:devel/sdl20[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3739 msgid "gfx: package:graphics/sdl2_gfx[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3740 msgid "image: package:graphics/sdl2_image[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3741 msgid "mixer: package:audio/sdl2_mixer[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3742 msgid "net: package:net/sdl2_net[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3743 msgid "ttf: package:graphics/sdl2_ttf[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3745 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:3749 #, no-wrap msgid "USE_SDL=\tnet mixer\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3752 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:3754 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:3756 msgid "Add a dependency on sdl12-config to `BUILD_DEPENDS`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3757 msgid "Add the variable `SDL_CONFIG` to `CONFIGURE_ENV`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3758 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3764 msgid "Add the dependencies of the selected libraries to `LIB_DEPENDS`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3760 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:3762 msgid "Add a dependency on sdl2-config to `BUILD_DEPENDS`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3763 msgid "Add the variable `SDL2_CONFIG` to `CONFIGURE_ENV`" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3767 #, no-wrap msgid "Using wxWidgets" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3770 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:3776 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:3782 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:3784 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4085 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4304 #, no-wrap msgid "Version Selection" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3787 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:3789 #, no-wrap msgid "Variables to Select wxWidgets Versions" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3796 #, no-wrap msgid "Default value" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3797 #, no-wrap msgid "`USE_WX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3798 #, no-wrap msgid "List of versions the port can use" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3800 #, no-wrap msgid "All available versions" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3801 #, no-wrap msgid "`USE_WX_NOT`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3802 #, no-wrap msgid "List of versions the port cannot use" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3803 #, no-wrap msgid "None" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3806 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:3808 #, no-wrap msgid "Available wxWidgets Versions" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3812 #, no-wrap msgid "Version" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3814 #, no-wrap msgid "Port" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3815 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3833 #, no-wrap msgid "`2.8`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3817 #, no-wrap msgid "package:x11-toolkits/wxgtk28[]" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3818 #, no-wrap msgid "`3.0`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3819 #, no-wrap msgid "package:x11-toolkits/wxgtk30[]" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3822 msgid "" "The variables in crossref:special[wx-ver-sel-table,Variables to Select " "wxWidgets Versions] 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:3824 #, no-wrap msgid "wxWidgets Version Specifications" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3830 #, no-wrap msgid "Example" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3831 #, no-wrap msgid "Single version" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3834 #, no-wrap msgid "Ascending range" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3836 #, no-wrap msgid "`2.8+`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3837 #, no-wrap msgid "Descending range" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3839 #, no-wrap msgid "`3.0-`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3840 #, no-wrap msgid "Full range (must be ascending)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3841 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3884 #, no-wrap msgid "`2.8-3.0`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3845 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:3846 #, no-wrap msgid "Variables to Select Preferred wxWidgets Versions" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3852 #, no-wrap msgid "Designed for" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3853 #, no-wrap msgid "`WANT_WX_VER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3855 #, no-wrap msgid "the port" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3856 #, no-wrap msgid "`WITH_WX_VER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3857 #, no-wrap msgid "the user" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3864 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:3866 #, no-wrap msgid "Available wxWidgets Components" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3873 #, no-wrap msgid "Version restriction" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3874 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3917 #, no-wrap msgid "`wx`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3875 #, no-wrap msgid "main library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3877 #, no-wrap msgid "none" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3878 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3920 #, no-wrap msgid "`contrib`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3879 #, no-wrap msgid "contributed libraries" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3881 #, no-wrap msgid "`none`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3882 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3923 #, no-wrap msgid "`python`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3883 #, no-wrap msgid "wxPython (Python bindings)" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3889 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 crossref:special[wx-def-dep-types,Default wxWidgets Dependency " "Types]). These types are available:" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3891 #, no-wrap msgid "Available wxWidgets Dependency Types" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3898 #, no-wrap msgid "`build`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3900 #, no-wrap msgid "Component is required for building, equivalent to `BUILD_DEPENDS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3901 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3925 #, no-wrap msgid "`run`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3903 #, no-wrap msgid "Component is required for running, equivalent to `RUN_DEPENDS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3904 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3919 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3922 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3928 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3930 #, no-wrap msgid "`lib`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3905 #, 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:3908 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:3910 #, no-wrap msgid "Default wxWidgets Dependency Types" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3916 #, no-wrap msgid "Dependency type" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3926 #, no-wrap msgid "`mozilla`" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3933 #, no-wrap msgid "Selecting wxWidgets Components" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3937 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:3942 #, 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:3947 #, no-wrap msgid "Detecting Installed Versions" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3952 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:3954 #, no-wrap msgid "Detecting Installed wxWidgets Versions and Components" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3958 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:3962 #, no-wrap msgid "WANT_WX=\tyes\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3964 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3980 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4033 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4623 #, no-wrap msgid ".include \n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3969 #, 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:3972 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:3978 #, 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:3985 #, 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:3990 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4160 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4395 #, no-wrap msgid "Defined Variables" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3993 msgid "" "These variables are available in the port (after defining one from " "crossref:special[wx-ver-sel-table,Variables to Select wxWidgets Versions])." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3995 #, no-wrap msgid "Variables Defined for Ports That Use wxWidgets" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4002 #, no-wrap msgid "`WX_CONFIG`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4004 #, 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:4005 #, no-wrap msgid "`WXRC_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4007 #, 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:4008 #, no-wrap msgid "`WX_VERSION`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4009 #, 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:4012 #, no-wrap msgid "Processing in [.filename]#bsd.port.pre.mk#" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4015 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:4019 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:4022 #, no-wrap msgid "Using wxWidgets Variables in Commands" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4026 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:4031 #, 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:4036 #, 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:4039 #, no-wrap msgid "" "PLIST_SUB+=\tVERSION=\"${VER_STR}\"\n" ".endif\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4046 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:4049 #, no-wrap msgid "Additional `configure` Arguments" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4052 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:4054 #, no-wrap msgid "Legal Values for `WX_CONF_ARGS`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4058 #, no-wrap msgid "Possible value" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4060 #, no-wrap msgid "Resulting argument" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4061 #, no-wrap msgid "`absolute`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4063 #, no-wrap msgid "`--with-wx-config=${WX_CONFIG}`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4064 #, no-wrap msgid "`relative`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4065 #, no-wrap msgid "`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}`" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4068 #, no-wrap msgid "Using Lua" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4071 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:4077 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:4080 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:4083 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:4088 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:4092 #, no-wrap msgid "USES=\tlua\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4097 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:4101 #, no-wrap msgid "USES=\tlua:52-53\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4104 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:4109 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:4112 #, no-wrap msgid "Configuration and Compiler flags" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4117 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:4119 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:4120 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:4121 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:4124 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4368 #, no-wrap msgid "Version Flavors" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4128 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:4132 #, no-wrap msgid "USES=\tlua:module\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4135 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:4137 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:4141 #, no-wrap msgid "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4145 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:4147 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:4151 #, no-wrap msgid "USES=\tlua:flavors\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4155 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:4158 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:4163 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4398 msgid "These variables are available in the port." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4165 #, no-wrap msgid "Variables Defined for Ports That Use Lua" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4172 #, no-wrap msgid "`LUA_VER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4174 #, 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:4175 #, no-wrap msgid "`LUA_VER_STR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4177 #, no-wrap msgid "The Lua version without the dots (for example, `54`)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4178 #, no-wrap msgid "`LUA_FLAVOR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4180 #, 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:4181 #, no-wrap msgid "`LUA_BASE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4183 #, 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:4184 #, no-wrap msgid "`LUA_PREFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4186 #, 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:4187 #, no-wrap msgid "`LUA_INCDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4189 #, no-wrap msgid "The directory where Lua header files are installed" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4190 #, no-wrap msgid "`LUA_LIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4192 #, no-wrap msgid "The directory where Lua libraries are installed" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4193 #, no-wrap msgid "`LUA_REFMODLIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4195 #, 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:4196 #, no-wrap msgid "`LUA_REFMODSHAREDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4198 #, 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:4199 #, no-wrap msgid "`LUA_MODLIBDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4201 #, 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:4202 #, no-wrap msgid "`LUA_MODSHAREDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4204 #, 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:4205 #, no-wrap msgid "`LUA_PKGNAMEPREFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4207 #, no-wrap msgid "The package name prefix used by Lua modules" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4208 #, no-wrap msgid "`LUA_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4210 #, no-wrap msgid "The name of the Lua interpreter (e.g. `lua54`)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4211 #, no-wrap msgid "`LUAC_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4212 #, 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:4215 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:4217 #, no-wrap msgid "Variables Defined for Lua Module Ports" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4224 #, no-wrap msgid "`LUA_DOCSDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4226 #, 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:4227 #, no-wrap msgid "`LUA_EXAMPLESDIR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4228 #, 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:4234 #, no-wrap msgid "Makefile for an application using Lua" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4239 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:4245 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4506 #, 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:4249 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4273 #, 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:4251 #, 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:4253 #, no-wrap msgid "USES=\t\tlua\n" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4260 #, no-wrap msgid "Makefile for a simple Lua module" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4269 #, 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:4275 #, no-wrap msgid "USES=\t\tlua:module\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4277 #, no-wrap msgid "DOCSDIR=\t${LUA_DOCSDIR}\n" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4284 #, no-wrap msgid "Using Guile" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4287 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:4296 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:4302 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:4307 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:4309 #, no-wrap msgid "Arguments Defined for Ports That Use Guile" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4316 #, no-wrap msgid "_X.Y_" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4320 #, 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:4321 #, no-wrap msgid "flavors" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4325 #, 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:4326 #, no-wrap msgid "build" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4329 #, 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:4330 #, no-wrap msgid "run" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4333 #, 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:4334 #, no-wrap msgid "alias" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4336 #, no-wrap msgid "Add `BINARY_ALIAS` values for the interpreter and tools." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4337 #, no-wrap msgid "conflicts" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4339 #, 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:4342 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:4345 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:4347 #, no-wrap msgid "Configuration flags" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4352 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:4354 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:4356 msgid "`GUILE_EFFECTIVE_VERSION` is added to `CONFIGURE_ENV`;" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4357 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:4358 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:4359 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:4362 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:4366 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:4373 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:4375 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:4379 #, no-wrap msgid "PKGNAMESUFFIX=\t-${FLAVOR}\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4383 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:4386 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:4389 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:4393 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:4400 #, no-wrap msgid "Variables Defined for Ports That Use Guile" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4405 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4467 #, no-wrap msgid "Sample Value" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4408 #, no-wrap msgid "`GUILE_VER`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4409 #, no-wrap msgid "3.0" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4411 #, no-wrap msgid "Guile version in use." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4412 #, no-wrap msgid "`GUILE_SFX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4413 #, no-wrap msgid "3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4416 #, 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:4417 #, no-wrap msgid "`GUILE_FLAVOR`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4418 #, no-wrap msgid "guile30" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4420 #, no-wrap msgid "Flavor name corresponding to the selected version." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4421 #, no-wrap msgid "`GUILE_PORT`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4422 #, no-wrap msgid "lang/guile3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4424 #, no-wrap msgid "Port origin of the specified Guile version." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4425 #, no-wrap msgid "`GUILE_PREFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4426 #, no-wrap msgid "${PREFIX}" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4428 #, no-wrap msgid "Directory prefix to be used for installation." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4429 #, no-wrap msgid "`GUILE_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4430 #, no-wrap msgid "guile-3.0" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4432 #, no-wrap msgid "Name of the Guile interpreter, with version suffix." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4433 #, no-wrap msgid "`GUILE_CMDPATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4434 #, no-wrap msgid "${LOCALBASE}/bin/guile-3.0" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4436 #, no-wrap msgid "Full path to the Guile interpreter." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4437 #, no-wrap msgid "`GUILD_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4438 #, no-wrap msgid "guild-3.0" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4440 #, no-wrap msgid "Name of the Guild tool, with version suffix." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4441 #, no-wrap msgid "`GUILD_CMDPATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4442 #, no-wrap msgid "${LOCALBASE}/bin/guild-3.0" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4444 #, no-wrap msgid "Full path to the Guild tool." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4446 #, no-wrap msgid "" "`++GUILE_*_CMD++` +\n" "`++GUILE_*_CMDPATH++`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4449 #, 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:4450 #, no-wrap msgid "`GUILE_PKGCONFIG_PATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4451 #, no-wrap msgid "${LOCALBASE}/libdata/pkgconfig/guile/3.0" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4453 #, no-wrap msgid "Where packages using `flavors` should install `.pc` files." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4454 #, no-wrap msgid "`GUILE_INFO_PATH`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4455 #, no-wrap msgid "share/info/guile3" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4456 #, 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:4460 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:4462 #, no-wrap msgid "Path Substitutions Defined for Ports That Use Guile" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4470 #, no-wrap msgid "GUILE_GLOBAL_SITE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4471 #, no-wrap msgid "share/guile/site" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4473 #, 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:4474 #, no-wrap msgid "GUILE_SITE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4475 #, no-wrap msgid "share/guile/3.0/site" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4477 #, no-wrap msgid "Site directory for the selected Guile version." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4478 #, no-wrap msgid "GUILE_SITE_CCACHE" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4479 #, no-wrap msgid "lib/guile/3.0/site-ccache" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4481 #, no-wrap msgid "Directory for compiled bytecode files." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4482 #, no-wrap msgid "GUILE_DOCS" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4483 #, no-wrap msgid "share/doc/guile30" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4485 #, no-wrap msgid "Parent directory for version-specific documentation." msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4486 #, no-wrap msgid "GUILE_EXAMPLES" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4487 #, no-wrap msgid "share/examples/guile30" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4488 #, no-wrap msgid "Parent directory for version-specific examples." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4494 #, no-wrap msgid "Makefile for an application using Guile" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4500 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:4510 #, 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:4513 #, 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:4515 #, no-wrap msgid "USES=\t\tguile:2.2,3.0 pkgconfig\n" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4522 #, no-wrap msgid "Using `iconv`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4525 msgid "FreeBSD has a native `iconv` in the operating system." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4527 msgid "For software that needs `iconv`, define `USES=iconv`." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4529 msgid "When a port defines `USES=iconv`, these variables will be available:" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4534 #, no-wrap msgid "Variable name" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4535 #, no-wrap msgid "Purpose" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4536 #, no-wrap msgid "Port iconv (when using WCHAR_T or //TRANSLIT extensions)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4539 #, no-wrap msgid "Base iconv" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4540 #, no-wrap msgid "`ICONV_CMD`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4541 #, no-wrap msgid "Directory where the `iconv` binary resides" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4542 #, no-wrap msgid "`${LOCALBASE}/bin/iconv`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4544 #, no-wrap msgid "[.filename]#/usr/bin/iconv#" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4545 #, no-wrap msgid "`ICONV_LIB`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4546 #, no-wrap msgid "`ld` argument to link to [.filename]#libiconv# (if needed)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4547 #, no-wrap msgid "`-liconv`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4549 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4559 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4563 #, no-wrap msgid "(empty)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4550 #, no-wrap msgid "`ICONV_PREFIX`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4551 #, 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:4552 #, no-wrap msgid "`${LOCALBASE}`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4554 #, no-wrap msgid "[.filename]#/usr#" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4555 #, no-wrap msgid "`ICONV_CONFIGURE_ARG`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4556 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4561 #, no-wrap msgid "Preconstructed configure argument for configure scripts" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4557 #, no-wrap msgid "`--with-libiconv-prefix=${LOCALBASE}`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4560 #, no-wrap msgid "`ICONV_CONFIGURE_BASE`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4562 #, no-wrap msgid "`--with-libiconv=${LOCALBASE}`" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4566 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:4568 #, no-wrap msgid "Simple `iconv` Usage" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4575 #, 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:4580 #, no-wrap msgid "`iconv` Usage with `configure`" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4587 #, 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:4593 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:4596 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:4598 #, no-wrap msgid "Fixing Hardcoded `-liconv`" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4604 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4621 #, no-wrap msgid "USES=\t\ticonv\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4607 #, 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:4613 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:4615 #, no-wrap msgid "Checking for Native `iconv` Availability" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4629 #, 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:4631 #, no-wrap msgid ".include \n" msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4636 #, no-wrap msgid "Using Xfce" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4639 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:4643 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:4644 #, no-wrap msgid "Values of `USE_XFCE`" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4645 #, no-wrap msgid "garcon" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4647 msgid "package:sysutils/garcon[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4648 #, no-wrap msgid "libexo" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4650 msgid "package:x11/libexo[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4651 #, no-wrap msgid "libgui" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4653 msgid "package:x11-toolkits/libxfce4gui[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4654 #, no-wrap msgid "libmenu" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4656 msgid "package:x11/libxfce4menu[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4657 #, no-wrap msgid "libutil" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4659 msgid "package:x11/libxfce4util[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4660 #, no-wrap msgid "panel" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4662 msgid "package:x11-wm/xfce4-panel[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4663 #, no-wrap msgid "thunar" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4665 msgid "package:x11-fm/thunar[]" msgstr "" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4666 #, no-wrap msgid "xfconf" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4668 msgid "package:x11/xfce4-conf[]" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4670 #, no-wrap msgid "`USES=xfce` Example" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4677 #, no-wrap msgid "" "USES=\t\txfce\n" "USE_XFCE=\tlibmenu\n" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4682 #, no-wrap msgid "Using Xfce's Own GTK2 Widgets" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4686 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:4691 #, 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:4700 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:4705 #, no-wrap msgid "" "USES=\t\txfce\n" "USE_XFCE=\tpanel\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4708 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:4713 #, 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:4717 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:4720 #, no-wrap msgid "Using Budgie" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4723 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:4730 #, no-wrap msgid "`libbudgie`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4732 #, no-wrap msgid "Desktop core (library)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4733 #, no-wrap msgid "`libmagpie`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4735 #, no-wrap msgid "Budgie's X11 window manager and compositor library" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4736 #, no-wrap msgid "`raven`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4738 #, 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:4739 #, no-wrap msgid "`screensaver`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4741 #, no-wrap msgid "Desktop-specific screensaver" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4746 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:4748 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:4753 #, 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:4757 #, no-wrap msgid "`USE_BUDGIE` Example" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4764 #, 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:4768 #, no-wrap msgid "Using Databases" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4771 msgid "" "Use one of the `USES` macros from crossref:special[using-databases-" "uses,Database `USES` Macros] to add a dependency on a database." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4773 #, no-wrap msgid "Database `USES` Macros" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4777 #, no-wrap msgid "Database" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4779 #, no-wrap msgid "USES Macro" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4780 #, no-wrap msgid "Berkeley DB" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4782 #, no-wrap msgid "crossref:uses[uses-bdb,`bdb`]" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4783 #, no-wrap msgid "MariaDB, MySQL, Percona" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4785 #, no-wrap msgid "crossref:uses[uses-mysql,`mysql`]" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4786 #, no-wrap msgid "PostgreSQL" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4788 #, no-wrap msgid "crossref:uses[uses-pgsql,`pgsql`]" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4789 #, no-wrap msgid "SQLite" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4790 #, no-wrap msgid "crossref:uses[uses-sqlite,`sqlite`]" msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4793 #, no-wrap msgid "Using Berkeley DB 6" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4799 #, no-wrap msgid "USES=\tbdb:6\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4802 msgid "See crossref:uses[uses-bdb,`bdb`] for more information." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4805 #, no-wrap msgid "Using MySQL" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4809 msgid "When a port needs the MySQL client library add" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4813 #, no-wrap msgid "USES=\tmysql\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4816 msgid "See crossref:uses[uses-mysql,`mysql`] for more information." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4819 #, no-wrap msgid "Using PostgreSQL" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4823 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:4828 #, 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:4831 msgid "See crossref:uses[uses-pgsql,`pgsql`] for more information." msgstr "" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4834 #, no-wrap msgid "Using SQLite 3" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4840 #, no-wrap msgid "USES=\tsqlite:3\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4843 msgid "See crossref:uses[uses-sqlite,`sqlite`] for more information." msgstr "" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4846 #, no-wrap msgid "Starting and Stopping Services (`rc` Scripts)" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4853 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}config[the rc.d " "Handbook chapter, configtuning-rcd]. Detailed explanation of the available " "commands is provided in man:rc[8] and man:rc.subr[8]. Finally, there is " "extref:{rc-scripting}[an article] on practical aspects of [.filename]#rc.d# " "scripting." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4856 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:4860 #, no-wrap msgid "USE_RC_SUBR=\tdoormand\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4867 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:4869 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:4871 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:4875 #, no-wrap msgid "#!/bin/sh\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4887 #, 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:4889 #, no-wrap msgid ". /etc/rc.subr\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4892 #, no-wrap msgid "" "name=doormand\n" "rcvar=doormand_enable\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4894 #, no-wrap msgid "load_rc_config $name\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4897 #, 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:4900 #, 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:4902 #, 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:4904 #, no-wrap msgid "run_rc_command \"$1\"\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4907 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:4911 #, no-wrap msgid "REQUIRE: LOGIN\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4914 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:4918 #, no-wrap msgid "KEYWORD: shutdown\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4921 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:4924 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:4928 #, no-wrap msgid "doormand_flags=\"\"\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4932 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:4937 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:4940 #, no-wrap msgid "Pre-Commit Checklist" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4943 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:4945 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:4948 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:4949 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:4950 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:4951 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:4952 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:4953 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:4957 #, no-wrap msgid "# service name stop\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4960 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:4961 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:4962 msgid "Do the default variable assignments come after `load_rc_config`?" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4963 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:4964 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:4965 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:4966 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:4967 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:4968 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:4969 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:4970 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:4972 #, no-wrap msgid "Adding Users and Groups" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4977 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:4979 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:4981 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:4986 #, 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:4989 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:4991 #, no-wrap msgid "Ports That Rely on Kernel Sources" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4995 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:4999 #, no-wrap msgid "USES=\tkmod\n" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5002 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:5004 #, no-wrap msgid "Go Libraries" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5008 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:5010 msgid "Ports should (in order of preference):" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5012 msgid "Use vendored dependencies included with the package source." msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5013 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:5014 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:5016 #, no-wrap msgid "Haskell Libraries" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5020 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:5022 #, no-wrap msgid "Shell Completion Files" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5027 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:5031 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:5033 #, no-wrap msgid "Full shell completion file names" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5037 #, no-wrap msgid "`bash`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5038 #, 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:5040 #, no-wrap msgid "(any unique file names in one of these folders)" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5041 #, no-wrap msgid "`fish`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5042 #, no-wrap msgid "[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish#" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5045 #, no-wrap msgid "`zsh`" msgstr "" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5046 #, no-wrap msgid "[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}#" msgstr "" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5049 msgid "Do not register any dependencies on the shells themselves." msgstr ""