166f36c36SLexi WinterThis directory contains package manifests for the base packages in UCL format. 266f36c36SLexi WinterThere are two types of manifest: "<package>.ucl" applies specifically to the 366f36c36SLexi Winterpackage called "<package>", and "<package>-all.ucl" applies to all of that 466f36c36SLexi Winterpackage's subpackages. 566f36c36SLexi Winter 666f36c36SLexi WinterFor example, if a Makefile sets PACKAGE=foo, then the build might generate the 766f36c36SLexi Winterfollowing packages: 866f36c36SLexi Winter 966f36c36SLexi Winter FreeBSD-foo 1066f36c36SLexi Winter FreeBSD-foo-dev 1166f36c36SLexi Winter FreeBSD-foo-lib32 1266f36c36SLexi Winter FreeBSD-foo-man 1366f36c36SLexi Winter 1466f36c36SLexi WinterAll of these packages will include "foo-all.ucl", but "foo.ucl" will only be 1566f36c36SLexi Winterincluded by FreeBSD-foo, "foo-dev.ucl" will only be included by FreeBSD-foo-dev, 1666f36c36SLexi Winterand so on. 1766f36c36SLexi Winter 1866f36c36SLexi WinterIn general, dependencies and post-install scripts should be added in the 1966f36c36SLexi Winterpackage-specific manifests, while comment and description should be set 2066f36c36SLexi Winterin the "-all" manifest. 2166f36c36SLexi Winter 22*014647a3SLexi WinterPolicies for package dependencies: 23*014647a3SLexi Winter 24*014647a3SLexi Winter* If a package requires a shared library from another package, do not add a 25*014647a3SLexi Winter dependency, unless pkg(8) doesn't detect the dependency automatically for 26*014647a3SLexi Winter some reason (which may happen if the library is loaded with dlopen() at 27*014647a3SLexi Winter runtime). 28*014647a3SLexi Winter 29*014647a3SLexi Winter* If a package contains rc(8) scripts, do not add a dependency on "rc". 30*014647a3SLexi Winter Installing "rc" is optional. 31*014647a3SLexi Winter 32*014647a3SLexi Winter* If a package contains hooks intended to be invoked from devd, do not add 33*014647a3SLexi Winter a dependency on "devd". Like rc, devd is optional. The exception is if 34*014647a3SLexi Winter the package doesn't work at all without devd, in which case a dependency 35*014647a3SLexi Winter is warranted. 36*014647a3SLexi Winter 37*014647a3SLexi Winter* If a package contains cron(8) jobs in /etc/cron.d, do not a dependency 38*014647a3SLexi Winter on "cron", unless the package doesn't work at all without cron. 39*014647a3SLexi Winter 40*014647a3SLexi Winter* If a package contains periodic(8) reports, do not add a dependency on 41*014647a3SLexi Winter "periodic", unless the package only contains periodic reports. 42*014647a3SLexi Winter 43*014647a3SLexi Winter* If a package contains shell scripts, and the script is *not* one of the 44*014647a3SLexi Winter previously mentioned examples (rc, devd, etc.), add a dependency on 45*014647a3SLexi Winter "runtime" for /bin/sh. 46*014647a3SLexi Winter 47*014647a3SLexi Winter* Otherwise, if one component of a package requires another package to work, 48*014647a3SLexi Winter add a dependency on the other package even if not everything in the package 49*014647a3SLexi Winter requires that dependency. Users expect that all of a package will work 50*014647a3SLexi Winter after installing it. 51