English Norwegian Bokmål
Encumbered Files
It might occasionally be necessary to include an encumbered file in the FreeBSD source tree. For example, if a device requires a small piece of binary code to be loaded to it before the device will operate, and we do not have the source to that code, then the binary file is said to be encumbered. The following policies apply to including encumbered files in the FreeBSD source tree.
Any file which is interpreted or executed by the system CPU(s) and not in source format is encumbered.
Any file with a license more restrictive than BSD or GNU is encumbered.
A file which contains downloadable binary data for use by the hardware is not encumbered, unless (1) or (2) apply to it. It must be stored in an architecture neutral ASCII format (file2c or uuencoding is recommended).
Any encumbered file requires specific approval from the link:https://www.FreeBSD.org/administration/#t-core[Core Team] before it is added to the repository.
Encumbered files go in [.filename]#src/contrib# or [.filename]#src/sys/contrib#.
The entire module should be kept together. There is no point in splitting it, unless there is code-sharing with non-encumbered code.
Object files are named [.filename]#arch/filename.o.uu#.
Firmware files are named [.filename]#filename.fw.uu#.
Kernel files:
Should always be referenced in [.filename]#conf/files.*# (for build simplicity).
Should always be in [.filename]#LINT#, but when the consensus isn't clear the link:https://www.FreeBSD.org/administration/#t-core[Core Team] decides if it should be commented out or not.
The link:https://www.FreeBSD.org/administration/#t-re[Release Engineering] team decides whether or not it goes into the release.
User-land files:
The link:https://www.FreeBSD.org/administration/#t-core[Core team] decides if the code should be part of `make world` by default if there is no clear consensus.
The link:https://www.FreeBSD.org/administration/#t-re[Release Engineering] team decides if it goes into the release.
Shared Libraries
If you are adding shared library support to a port or other piece of software that does not have one, the version numbers should follow these rules. Generally, the resulting numbers will have nothing to do with the release version of the software.
FreeBSD tries to maintain ABI stability. Most libraries in the system use symbol versioning to remain compatible with old versions of the library. When updating libraries with versioned symbols: