1This directory contains package manifests for the base packages in UCL format. 2There are two types of manifest: "<package>.ucl" applies specifically to the 3package called "<package>", and "<package>-all.ucl" applies to all of that 4package's subpackages. 5 6For example, if a Makefile sets PACKAGE=foo, then the build might generate the 7following packages: 8 9 FreeBSD-foo 10 FreeBSD-foo-dev 11 FreeBSD-foo-lib32 12 FreeBSD-foo-man 13 14All of these packages will include "foo-all.ucl", but "foo.ucl" will only be 15included by FreeBSD-foo, "foo-dev.ucl" will only be included by FreeBSD-foo-dev, 16and so on. 17 18In general, dependencies and post-install scripts should be added in the 19package-specific manifests, while comment and description should be set 20in the "-all" manifest. 21 22Policies for package dependencies: 23 24* If a package requires a shared library from another package, do not add a 25 dependency, unless pkg(8) doesn't detect the dependency automatically for 26 some reason (which may happen if the library is loaded with dlopen() at 27 runtime). 28 29* If a package contains rc(8) scripts, do not add a dependency on "rc". 30 Installing "rc" is optional. 31 32* If a package contains hooks intended to be invoked from devd, do not add 33 a dependency on "devd". Like rc, devd is optional. The exception is if 34 the package doesn't work at all without devd, in which case a dependency 35 is warranted. 36 37* If a package contains cron(8) jobs in /etc/cron.d, do not a dependency 38 on "cron", unless the package doesn't work at all without cron. 39 40* If a package contains periodic(8) reports, do not add a dependency on 41 "periodic", unless the package only contains periodic reports. 42 43* If a package contains shell scripts, and the script is *not* one of the 44 previously mentioned examples (rc, devd, etc.), add a dependency on 45 "runtime" for /bin/sh. 46 47* Otherwise, if one component of a package requires another package to work, 48 add a dependency on the other package even if not everything in the package 49 requires that dependency. Users expect that all of a package will work 50 after installing it. 51