aboutsummaryrefslogtreecommitdiff
path: root/release/packages/ucl/README
diff options
context:
space:
mode:
Diffstat (limited to 'release/packages/ucl/README')
-rw-r--r--release/packages/ucl/README29
1 files changed, 29 insertions, 0 deletions
diff --git a/release/packages/ucl/README b/release/packages/ucl/README
index 85b6130c0488..6f1bdb065764 100644
--- a/release/packages/ucl/README
+++ b/release/packages/ucl/README
@@ -19,3 +19,32 @@ In general, dependencies and post-install scripts should be added in the
package-specific manifests, while comment and description should be set
in the "-all" manifest.
+Policies for package dependencies:
+
+* If a package requires a shared library from another package, do not add a
+ dependency, unless pkg(8) doesn't detect the dependency automatically for
+ some reason (which may happen if the library is loaded with dlopen() at
+ runtime).
+
+* If a package contains rc(8) scripts, do not add a dependency on "rc".
+ Installing "rc" is optional.
+
+* If a package contains hooks intended to be invoked from devd, do not add
+ a dependency on "devd". Like rc, devd is optional. The exception is if
+ the package doesn't work at all without devd, in which case a dependency
+ is warranted.
+
+* If a package contains cron(8) jobs in /etc/cron.d, do not a dependency
+ on "cron", unless the package doesn't work at all without cron.
+
+* If a package contains periodic(8) reports, do not add a dependency on
+ "periodic", unless the package only contains periodic reports.
+
+* If a package contains shell scripts, and the script is *not* one of the
+ previously mentioned examples (rc, devd, etc.), add a dependency on
+ "runtime" for /bin/sh.
+
+* Otherwise, if one component of a package requires another package to work,
+ add a dependency on the other package even if not everything in the package
+ requires that dependency. Users expect that all of a package will work
+ after installing it.