- LibreSSL (3.7.2 or newer)
- libpfctl (0.4 or newer)
./configure
make
See ./configure -h to learn how to modify the defaults such as the locations of libraries and header files.
-
Use
freebsd-relayd:prefix in commit message. -
Use
#if __FreeBSD__,#endifto make FreeBSD specific blocks in source files. -
Use
BEGIN FreeBSD-relaydandEND FreeBSD-relaydcomment markers for FreeBSD-specific blocks.
-
Create a new branch called
release.git checkout -b release
-
Add the OpenBSD repository as a remote.
git remote add openbsd [email protected]:openbsd/src.git
-
Pull the master branch from the
openbsdremote and track it asopenbsdmaster.git fetch openbsd git checkout -b openbsdmaster --track openbsd/master
-
Find the details needed for the final branch name.
The name of the final branch should be in the form of the following scheme:
OSMAJOR.OSMINOR.LATEST_COMMIT_DATEOSMAJORandOSMINORare major and minor versions set in the OpenBSD source tree in the master branch.LATEST_COMMIT_DATEis the commit date of the latest OpenBSD commit in the master branch (e.g.,2014.08.10).The
OSMAJORandOSMINORvalues can be found inshare/mk/sys.mk:grep "OSM\(AJOR\|INOR\)=" share/mk/sys.mkLATEST_COMMIT_DATEcan be obtained with the following command:git show --quiet HEAD | grep "Date:"
-
Rename the
releasebranch toOSMAJOR.OSMINOR.LATEST_COMMIT_DATE.git branch -m "release" "OSMAJOR.OSMINOR.LATEST_COMMIT_DATE"
-
Rebase and merge the final branch (
OSMAJOR.OSMINOR.LATEST_COMMIT_DATE) on top theopenbsdmasterbranch.git rebase --merge openbsdmasterResolve conflicts if needed.
-
Check the build process.
./configure make -
Test relayd.
Currently, the testing procedure is not automated. Testing should include the following steps:
- Create a configuration file for relayd.
- Check the configuration file's syntax:
relayd -n -v -f <config>. - Run relayd:
relayd -d -v -f <config>.
-
Publish the final branch to the
freebsd-relaydrepository.git push --set-upstream freebsd-relayd "OSMAJOR.OSMINOR.LATEST_COMMIT_DATE"
-
Tag a release. The tag should follow this format:
OSMAJOR.OSMINOR.LATEST_COMMIT_DATE-pPATCHLEVEL, wherePATCHLEVELis the next tag number on the version branch (starting with 0), e.g.,7.3.2023.05.09-p0.git tag OSMAJOR.OSMINOR.LATEST_COMMIT_DATE-pPATCHLEVEL
-
Publish the tag.
git push OSMAJOR.OSMINOR.LATEST_COMMIT_DATE-pPATCHLEVEL
-
The release with the release archive will be created automatically by the GitHub Actions as configued in
./.github/workflows/main.yml.