summaryrefslogtreecommitdiff
path: root/docs/contributing/upstream-packages.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/contributing/upstream-packages.rst')
-rw-r--r--docs/contributing/upstream-packages.rst99
1 files changed, 66 insertions, 33 deletions
diff --git a/docs/contributing/upstream-packages.rst b/docs/contributing/upstream-packages.rst
index 4e602866..161cc627 100644
--- a/docs/contributing/upstream-packages.rst
+++ b/docs/contributing/upstream-packages.rst
@@ -3,27 +3,30 @@
Upstream packages
=================
-Many base system packages are pulled straight from Debian's main and contrib repositories, but there are exceptions.
+Many base system packages are pulled straight from Debian's main and contrib
+repositories, but there are exceptions.
vyos-netplug
------------
-Due to issues in the upstream version that sometimes set interfaces down, a modified version is used.
+Due to issues in the upstream version that sometimes set interfaces down, a
+modified version is used.
-The source is at https://github.com/vyos/vyos-netplug
+The source is located at https://github.com/vyos/vyos-netplug
-In the future, we may switch to using systemd infrastructure instead.
-
-Building it doesn't require a special procedure.
+In the future, we may switch to using systemd infrastructure instead. Building
+it doesn't require a special procedure.
keepalived
----------
-Keepalived normally isn't updated to newer feature releases between Debian versions, so we are building it from source.
+Keepalived normally isn't updated to newer feature releases between Debian
+versions, so we are building it from source.
-Debian does keep their package in git, but it's upstream tarball imported into git without its original commit history.
-To be able to merge new tags in, we keep a fork of the upstream repository with packaging files imported from Debian
-at http://github.com/vyos/keepalived-upstream
+Debian does keep their package in git, but it's upstream tarball imported into
+git without its original commit history. To be able to merge new tags in, we
+keep a fork of the upstream repository with packaging files imported from
+Debian at http://github.com/vyos/keepalived-upstream
strongswan
----------
@@ -35,11 +38,12 @@ Our StrongSWAN build differs from the upstream:
The source is at https://github.com/vyos/vyos-strongswan
-DMVPN patches are added by this commit: https://github.com/vyos/vyos-strongswan/commit/1cf12b0f2f921bfc51affa3b81226d4a3e9138e7
+DMVPN patches are added by this commit:
+https://github.com/vyos/vyos-strongswan/commit/1cf12b0f2f921bfc51affa3b81226
-Our op mode scripts use the python-vici module, which is not included in Debian's build,
-and isn't quite easy to integrate in that build. For this reason we debianize that module by hand now,
-using this procedure:
+Our op mode scripts use the python-vici module, which is not included in
+Debian's build, and isn't quite easy to integrate in that build. For this
+reason we debianize that module by hand now, using this procedure:
0. Install https://pypi.org/project/stdeb/
1. `cd vyos-strongswan`
@@ -53,58 +57,86 @@ The package ends up in deb_dist dir.
ppp
---
-Properly renaming PPTP and L2TP interfaces to pptpX and l2tpX from generic and non-informative pppX requires a patch
-that is neither in the upstream nor in Debian.
+Properly renaming PPTP and L2TP interfaces to pptpX and l2tpX from generic and
+non-informative pppX requires a patch that is neither in the upstream nor in
+Debian.
We keep a fork of Debian's repo at https://github.com/vyos/ppp-debian
The patches for pre-up renaming are:
-* https://github.com/vyos/ppp-debian/commit/e728180026a051d2a96396276e7e4ae022899e2d
-* https://github.com/vyos/ppp-debian/commit/f29ba8d9ebb043335a096d70bcd07e9635bba2e3
+* https://github.com/vyos/ppp-debian/commit/e728180026a051d2a96396276e7e4ae
+* https://github.com/vyos/ppp-debian/commit/f29ba8d9ebb043335a096d70bcd07e9
-Additionally, there's a patch for reopening the log file to better support logging to files, even though it's less essential:
-https://github.com/vyos/ppp-debian/commit/dd2ebd5cdcddb40230dc4cc43d374055ff374711
+Additionally, there's a patch for reopening the log file to better support
+logging to files, even though it's less essential:
+https://github.com/vyos/ppp-debian/commit/dd2ebd5cdcddb40230dc4cc43d374055f
The patches were written by Stephen Hemminger back in the Vyatta times.
mdns-repeater
-------------
-This package doesn't exist in Debian. A debianized fork is kept at https://github.com/vyos/mdns-repeater
+This package doesn't exist in Debian. A debianized fork is kept at
+https://github.com/vyos/mdns-repeater
No special build procedure is required.
udp-broadcast-relay
-------------------
-This package doesn't exist in Debian. A debianized fork is kept at https://github.com/vyos/udp-broadcast-relay
+This package doesn't exist in Debian. A debianized fork is kept at
+https://github.com/vyos/udp-broadcast-relay
No special build procedure is required.
Linux kernel
------------
-TBD
+In the past a fork of the Kernel source code was kept at the well-known
+location of https://github.com/vyos/vyos-kernel - where it is kept for history.
+
+Nowadays the Kernel we use is the upstream source code which is patched
+with two additional patches from the good old Vyatta times which never made it
+into the mainstream Kernel. The patches can be found here:
+https://github.com/vyos/vyos-build-kernel/tree/current/patches/kernel and are
+automatically applied to the Kernel by the Jenkins Pipeline which is used to
+generate the Kernel binaries.
+
+The Pipeline script not only builds the Kernel with the configuration named
+``x86_64_vyos_defconfig`` which is located in the vyos-build-kernel repository,
+too - but in addition also builds some Intel out-of-tree drivers, WireGuard
+(as long it is not upstreamed) and Accel-PPP.
+
+The ``Jenkinsfile`` tries to be as verbose as possible on each individual build
+step.
Linux firmware
--------------
-TBD
+More and more hardware cards require an additional firmware which is not open
+source. The Kernel community hosts a special linux-firmware Git repository
+with all available binary files which can be loaded by the Kernel.
+
+The ``vyos-build`` repository fetches a specific commit of the linux-firmware
+repository and embeds those binaries into the resulting ISO image. This step is
+done in the ``data/live-build-config/hooks/live/40-linux-firmware.chroot`` file.
+
+If the firmware needs to be updated it is sufficient to just exchange the Git
+commit id we reference in our build.
Intel drivers
-------------
-TBD
+Are build as part of the Kernel Pipeline - read above.
-accel-ppp
+Accel-PPP
---------
-accel-ppp has been packaged for the use with vyos, due to the kernel dependencies for its modules.
-
-* https://github.com/vyos/vyos-accel-ppp
+Accel-PPP used to be an upstream fork for quiet some time but now has been
+converted to make use of the upstream source code and build system.
-Build instructions are being kept up to date on the repos Readme.
+It is build as part of the Kernel Pipeline - read above.
hvinfo
------
@@ -113,10 +145,11 @@ A fork with packaging changes for VyOS is kept at https://github.com/vyos/hvinfo
The original repo is at https://github.com/dmbaturin/hvinfo
-It's an Ada program and requires GNAT and gprbuild for building, dependencies are properly specified
-so just follow debuild's suggestions.
+It's an Ada program and requires GNAT and gprbuild for building, dependencies
+are properly specified so just follow debuild's suggestions.
Per-file modifications
------------------------
-vyos-replace package replaces the upstream dhclient-script with a modified version that is aware of the VyOS config.
+vyos-replace package replaces the upstream dhclient-script with a modified
+version that is aware of the VyOS config.