libbsd (original) (raw)
This library provides useful functions commonly found on BSD systems, and lacking on others like GNU systems, thus making it easier to port projects with strong BSD origins, without needing to embed the same code over and over again on each project.
Supported platforms
The following platforms are supported out of the box:
- GNU/Linux
- GNU/Hurd
- GNU/kFreeBSD
- musl/Linux
- macOS
- illumos
- Solaris
- AIX
License
The licenses for the code contained in libbsd are quite permissive to make it easier for other projects to use it. Most of the licenses are eitherISC,MIT,Beerware,BSD-2-clause, andBSD-3-clause. Please check the COPYING file and the source code for the actual license details.
Download
Latest released tarballs.
The releases are OpenPGP signed with the key of the current maintainerGuillem Jover with fingerprint4F3E 74F4 3605 0C10 F569 6574 B972 BF3E A4AE 57A3.
Development
The code is developed on the FreeDesktop.OrgGitLab libbsd project.
Code
The code under development can be browsed from the GitLab project or cloned from git with:
git clone https://gitlab.freedesktop.org/libbsd/libbsd.git
It is currently still also accessible from:
- (for cloning) https://anongit.freedesktop.org/git/libbsd.git
- (for browsing) https://cgit.freedesktop.org/libbsd/
Issues
Bug reports and issues can be filed using the GitLabissues. Historic bugs can be accessed fromBugzillabut filing new bugs there has been disabled.
Security issues
In case of a security issue that needs to be reported privately, please send encrypted mail to Guillem Jover, the current maintainer.
Contributing
Changes can be sent either asmerge requestsor as patches to themailing list.
New interfaces can be added, depending on their portability, and on their presence on at least one of the BSDs. The preferred form is by importing the best implementation from one of those BSDs. Alternatively an implementation from scratch might be required. In that case the preferred coding style isKNF and aBSD-3-clause license, but a more permissive license is also welcome. Any new function must also come with a man page. Ideally new interfaces should get new unit tests.