Compare commits

...

412 Commits

Author SHA1 Message Date
Daniil Baturin
986c77ac08
Merge pull request #431 from dmbaturin/T5624-delete-debian-version
T5624: add a hook for deleting /etc/debian_version
2023-09-29 15:16:04 +01:00
Daniil Baturin
c13949a63e T5624: add a hook for deleting /etc/debian_version 2023-09-29 14:59:46 +01:00
Christian Breunig
108255f13c
Merge pull request #422 from c-po/equuleus
Revert "openvpn: T5272: upgrade package to Debian version 2.6.3-2"
2023-09-26 06:29:46 +02:00
Christian Breunig
bda63d4ac2 Revert "openvpn: T5272: upgrade package to Debian version 2.6.3-2"
This reverts commit 6383f8ae2716635d87c685df764aabcc608381e3.
2023-09-25 20:08:23 +02:00
Christian Breunig
ef9062c458
Merge pull request #399 from c-po/equuleus
Revert "frr: T5557: use treat-as-withdraw for tunnel encapsulation attribute CVE-2023-38802"
2023-09-10 20:35:21 +02:00
Christian Breunig
23dad9a777 Revert "frr: T5557: use treat-as-withdraw for tunnel encapsulation attribute CVE-2023-38802"
This reverts commit 13a5fa10d8c8632d08cf48a445c7d5925d3d42c4.

Patch merged upstream
2023-09-10 18:46:06 +02:00
Daniil Baturin
46f5655f47
Merge pull request #398 from c-po/equuleus
frr: T5557: use treat-as-withdraw for tunnel encapsulation attribute CVE-2023-38802
2023-09-10 15:15:08 +01:00
Christian Breunig
13a5fa10d8 frr: T5557: use treat-as-withdraw for tunnel encapsulation attribute CVE-2023-38802
Before this path we used session reset method, which is discouraged by rfc7606.
Handle this as rfc requires.

This addes the fix submitted as https://github.com/FRRouting/frr/pull/14381
upstream. Using VyOS patch until the above mentioned PR is merged.
2023-09-10 16:09:50 +02:00
Daniil Baturin
6e463ebc5a
Merge pull request #393 from sever-sever/T5524-eq
T5524: Add config directory for livecd
2023-09-05 11:21:31 +01:00
Viacheslav Hletenko
3efe30b236 T5524: Add config directory for livecd
Add the '/config' directory for live image boot
One of the reasons the DHCP-server uses lease from this directory T2958

(cherry picked from commit cb330a797ef8c56d68220afc44798bcf8f2e0a47)
2023-09-05 06:38:46 +00:00
Christian Breunig
4abb3f3be9 Kernel: T5186: T3318: fix QAT build system matching new file name schema 2023-08-31 08:16:23 +02:00
Christian Breunig
a5cac5b1bd Kernel: T3318: update Linux Kernel to v5.4.255 2023-08-31 08:01:54 +02:00
Christian Breunig
4db7aab54d Kernel: T5186: T3318: undefine NEED_ETH_HW_ADDR_SET for Intel ICE driver 2023-08-31 08:01:48 +02:00
Christian Breunig
0f189caa9d Kernel: T5186: T3318: update QAT URL 2023-08-31 08:01:43 +02:00
Christian Breunig
9055e67889
Merge pull request #384 from zdc/T5187-equuleus
build: T5187: Fixed Realtek r8152 compatibility with 5.4 kernels
2023-08-30 18:12:00 +02:00
zsdc
0073533968 build: T5187: Fixed Realtek r8152 compatibility with 5.4 kernels
There is no need to define `eth_hw_addr_set()` in sources anymore because it is
already backported into the 5.4.254 kernel:

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/include/linux/etherdevice.h?h=v5.4.254&id=24f34f67be24674c5c3ef922de70ab95a0d7ce16
2023-08-30 16:15:31 +03:00
Daniil Baturin
53131ce567
Merge pull request #380 from c-po/equuleus
Equuleus Updates
2023-08-24 16:05:06 +01:00
Christian Breunig
2cb9470089
Merge pull request #368 from cuongdt1994/backport
Kernel: T5310: add stmicro driver support (Equuleus)
2023-08-24 16:21:41 +02:00
Christian Breunig
9e7e8eadde Kernel: T5186: T3318: update Linux Kernel to v5.4.254 2023-08-24 16:19:38 +02:00
Apachez
eaed7095f2 T5468: Remove unused manpages to free up space
(cherry picked from commit f9946312dfdfb8163995cf7ddd0efb1e485fc977)
2023-08-24 16:18:49 +02:00
cuongdt1994
4cc02e6e2f Kernel: T5310: add stmicro driver support
I added also additional expansion card with 2 Intel i211 NIC’s.

I want to utilize all 4 NIC’s, but I have an issue because only NIC on expansion cards are properly detected.
2023-06-27 11:53:44 +07:00
Christian Breunig
42535513ff
openvpn: T5272: fix buildPackage signature
There is no option to build arm64 packages in equuleus
2023-06-26 21:18:53 +02:00
Christian Breunig
a8edbbeeef
Merge pull request #358 from c-po/t5272-openvpn-update
openvpn: T5272: upgrade package to Debian version 2.6.3-2 (equuleus)
2023-06-25 22:30:35 +02:00
Christian Breunig
47847fdf06
Merge pull request #351 from c-po/equuleus
Kernel: T5186: T3318: update Linux Kernel to v5.4.243
2023-06-24 16:27:47 +02:00
Christian Breunig
3351c169cf
Merge pull request #359 from cuongdt1994/equuleus
T5280: Update Expired keys (2023-06-08) for PowerDNS
2023-06-11 17:51:30 +02:00
cuongdt1994
2665b46709 T5280: Update Expired keys (2023-06-08) for PowerDNS
Packages in the versioned repositories are signed with PGP key-id 0xFD380FBB
2023-06-11 03:45:20 +07:00
Christian Breunig
6383f8ae27 openvpn: T5272: upgrade package to Debian version 2.6.3-2 2023-06-08 21:32:41 +02:00
Christian Breunig
7dc14608ef Kernel: T5186: T3318: update Linux Kernel to v5.4.243 2023-06-08 21:28:51 +02:00
Viacheslav Hletenko
bc64a3a722
Merge pull request #353 from zdc/T4737-equuleus
frr: T4737: Replaced patch for connected routes processing
2023-05-24 21:21:55 +03:00
zsdc
0c56ce9671 frr: T4737: Replaced patch for connected routes processing
An old patch breaks connected routes in a situation when more than one IP
address is presented on an interface and it switches state from down to up:

```
ip link set eth0 down
ip a add 192.0.2.50/24 dev eth0
ip a add 192.0.2.51/24 dev eth0
ip link set eth0 up
```

A new version includes more backports from frr upstream, which work well
regardless of an interface state.
2023-05-24 20:58:04 +03:00
Daniil Baturin
9b60bf0a5f
Merge pull request #350 from zdc/T5221-equuleus
FRR: Fixed BGP as-override behavior
2023-05-12 13:38:38 +01:00
zsdc
f0cf9ac8a9 FRR: T5221: Fixed BGP as-override behavior
Override peer's ASN even if original as-path contains other ASNs

This is a backport of 9bbdb4572d3bb255211fecf1c756452ab27e91c2 from
the main FRR repository
2023-05-12 14:24:49 +03:00
Christian Breunig
3ba073d0e1
Kernel: T5186: revert to 5.4.234 due to QoS issues 2023-05-11 18:53:25 +02:00
Christian Breunig
cc62b93ef9 T5186: Revert "Kernel: T3318: update Linux Kernel to v5.4.240"
This reverts commit e873e9385cb3a9ed94d7d5cf1c967aaec9b4f504.

Newer kernel versions break QoS b/c of incompatible tc change.
2023-05-10 18:37:26 +02:00
Daniil Baturin
8e5e747687
Merge pull request #343 from zdc/T5187-equuleus
r8152: T5187: Updated Realtek r8152 driver
2023-04-27 16:06:33 +01:00
zsdc
56c5dfe8c6 r8152: T5187: Updated Realtek r8152 driver
The Realtek r8152 driver is updated to 2.16.3
2023-04-27 17:19:12 +03:00
Daniil Baturin
97ed73bf35
Merge pull request #341 from zdc/T5182-equuleus
ice: T5182: Included Intel ICE driver to the system
2023-04-26 14:26:12 +01:00
zsdc
beb077829b ice: T5182: Included Intel ICE driver to the system
Intel ICE driver for E810 Ethernet Controllers is included in the
list of requirements for images and initramfs.
2023-04-26 13:44:48 +03:00
Christian Breunig
012a23fbaa
Merge pull request #340 from zdc/T5182-equuleus
ice: T5182: added build task for Intel ICE driver
2023-04-26 09:00:36 +02:00
zsdc
8f78333e6d ice: T5182: added build for Intel ICE driver
This commit adds a build task for an out-of-tree Intel ICE driver
for E810 Ethernet Controllers.
2023-04-26 01:49:54 +03:00
Christian Breunig
bd9b3b3f6e
Merge pull request #339 from zdc/T5180-equuleus
initramfs-tools: T5180: Updated initramfs tools to v0.140
2023-04-25 23:04:28 +02:00
zsdc
93663b974f initramfs-tools: T5180: Updated initramfs tools to v0.140
The new version contains important changes in firmware path selection.
This is required for proper driver integrations.
2023-04-25 22:39:09 +03:00
Christian Breunig
e873e9385c
Kernel: T3318: update Linux Kernel to v5.4.240 2023-04-12 21:18:44 +02:00
Christian Breunig
42cabbe839
Merge pull request #330 from c-po/equuleus
T425: add amazon-cloudwatch-agent to AWS image (equuleus)
2023-04-02 16:30:18 +02:00
Christian Breunig
bafb293ccb
Kernel: T3318: update Linux Kernel to v5.4.239 2023-04-01 15:55:37 +02:00
Christian Breunig
8980a52045 T425: add amazon-cloudwatch-agent to AWS image 2023-03-31 13:31:32 +02:00
Christian Breunig
c46bdae0a6
Merge pull request #323 from c-po/equuleus
systemd: T5111: always disable pppd-dns.service
2023-03-29 21:39:47 +02:00
Christian Breunig
d961dd7e1f systemd: T5111: always disable pppd-dns.service
An update to the Debian ppp package remove the needed
/etc/ppp/ip-down.d/0000usepeerdns file. As DNS resolution is handled by
vyos-hostsd we can disable this service entirely.
2023-03-25 11:18:11 +01:00
Daniil Baturin
3ffe9a2689
Merge pull request #318 from c-po/t4625-ocserv-update
Docker: T4625: add missing build dependencies
2023-03-02 16:13:31 +00:00
Christian Breunig
253a3c4416 Docker: T4625: add missing build dependencies
Commit 317ffe1 ("T4625: Update ocserv packet to 1.1.6-3") updated the version
used for ocserv on VyOS 1.3. This commit adds the missing dependencies
for the Docker container in order to build the ocserv packages.
2023-03-02 17:08:56 +01:00
Christian Breunig
1dedfa4414
Merge pull request #317 from c-po/equuleus-updates
T3318: T5003: Docker and Kernel updates for equuleus
2023-03-02 06:54:41 +01:00
Christian Poessinger
39035427cf Kernel: T3318: update Linux Kernel to v5.4.233 2023-03-01 22:24:39 +01:00
Christian Poessinger
06a908594f T5003: backport changes from master to support latest Docker version on CI hosts
The newer Docker versions seem to be a bit more picky when using tools
like goso. The container will no longer start if the gosu binary has the setuid
root bit set.

This change adjusts the container to continue working on recent Docker
versions.
2023-03-01 22:22:35 +01:00
Christian Breunig
598e9f5821
Merge pull request #316 from sever-sever/T4625
T4625: Update ocserv packet to 1.1.6-3
2023-02-28 18:53:14 +01:00
Viacheslav Hletenko
317ffe13ad T4625: Update ocserv packet to 1.1.6-3 2023-02-28 17:32:03 +00:00
Christian Breunig
c4521c495a
Merge pull request #305 from c-po/equuleus
T5001: Replace links to the phabricator site
2023-02-12 21:31:38 +01:00
Christian Breunig
f810d032e1 T5001: Replace links to the phabricator site
Replace links to the phabricator site from https://phabricator.vyos.net to
https://vyos.dev

(cherry picked from commit 82f35fd474400429cc73cc93386f2a21afd9aaf8)
2023-02-12 21:15:02 +01:00
Daniil Baturin
3da60940f8
Merge pull request #303 from jestabro/equuleus-pin-pcre-no-jit
Docker: T4970: pin OCaml pcre package to avoid JIT support
2023-02-01 00:25:40 +00:00
John Estabrook
08fe12d735 Docker: T4970: pin OCaml pcre package to avoid JIT support
(cherry picked from commit c26f9f9309d3dad0fb344a4691a97a00d39a4b28)
2023-01-31 15:20:55 -06:00
Christian Breunig
ff075708b1
Merge pull request #300 from zdc/T4737-equuleus
frr: T4737: Fixed connected to BGP routes redistribution
2023-01-31 21:19:12 +01:00
zsdc
468e235ef4 frr: T4737: Fixed connected to BGP routes redistribution
This is backported commit for FRR 7.5.1
9298056138
2023-01-31 18:48:06 +02:00
Christian Breunig
f92d9f1ce9
Merge pull request #265 from initramfs/equuleus-kitty-terminfo
backport: vyos-utils: T4683: add kitty-terminfo package to build
2023-01-23 08:16:09 +01:00
Christian Breunig
a62f74c6db
Merge pull request #295 from c-po/t4875-backport
Docker: T4798: add OCaml package fileutils (equuleus)
2023-01-22 18:53:16 +01:00
Christian Breunig
f2c5772665 GitHub: update PullRequest template
(cherry picked from commit ac73adf9c19b4ec5831a0989f34faa25def17d58)
2023-01-21 20:03:23 +01:00
John Estabrook
e7d2f63d45 Docker: T4798: add OCaml package fileutils
The package fileutils is required for the file path validator.

(cherry picked from commit 55758811bc6f06fa579f502b4a4705e37281e359)
2023-01-21 19:50:36 +01:00
Christian Breunig
d1516da228
Merge pull request #294 from vyos/t3319-kernel-5-4-229
Kernel: T3318: update Linux Kernel to v5.4.229
2023-01-19 08:42:41 +01:00
Christian Breunig
c67f744584
Kernel: T3318: update Linux Kernel to v5.4.229 2023-01-18 20:42:57 +01:00
Christian Poessinger
9a3a577b93
Merge pull request #291 from c-po/equuleus
container: T578: backport podman from 1.4 development branch (equuleus)
2022-12-31 07:35:45 +01:00
Christian Poessinger
e66c8b6caf container: T578: backport podman from 1.4 development branch 2022-12-30 22:20:32 +01:00
Christian Poessinger
b65ee74f8b Docker: remove unnecessary sudo calls 2022-12-30 22:20:10 +01:00
Christian Poessinger
6150c425a1
Merge pull request #290 from vyos/t4511-pdns-update
pdns: T4511: upgrade to version 4.8
2022-12-25 22:57:48 +01:00
Christian Poessinger
b9577dc2e8
pdns: T4511: upgrade to version 4.8
Package upgrade to solve IPv6 static-host-mapping issue
2022-12-25 08:49:54 +01:00
Viacheslav Hletenko
5b6a981ce5
Merge pull request #289 from c-po/equuleus
GitHub: sync to author assign workflow changed from current
2022-12-17 18:01:14 +02:00
Christian Poessinger
c47a1ff8c4 Kernel: T3318: update Linux Kernel to v5.4.227 2022-12-17 11:31:51 +01:00
Christian Poessinger
01e5aac2af GitHub: sync to author assign workflow changed from current
Use the vyos/reviewers team instead of individuals.
2022-12-17 11:31:12 +01:00
Christian Poessinger
1283b74e4c
Merge pull request #263 from initramfs/equuleus-firmware-whence
backport: firmware: T4671: create missing symlinks defined in WHENCE file
2022-12-11 21:10:08 +01:00
Christian Poessinger
be55c073a5
Merge pull request #283 from vyos/t3318-kernel-update
Kernel: T3318: update Linux Kernel to v5.4.224
2022-11-16 19:39:36 +01:00
Christian Poessinger
2eb580be29
Kernel: T3318: update Linux Kernel to v5.4.224 2022-11-11 17:40:41 +01:00
Christian Poessinger
d449420026
Merge pull request #269 from vyos/t3318-kernel-5.4.218
Kernel: T3318: update Linux Kernel to v5.4.218
2022-10-17 08:17:54 +02:00
Christian Poessinger
8fa66c3591
Kernel: T3318: update Linux Kernel to v5.4.218 2022-10-16 09:22:32 +02:00
Daniil Baturin
12297ec90c
Merge pull request #266 from vyos/c-po-patch-1
Kernel: T3318: update Linux Kernel to v5.4.215
2022-10-03 12:45:35 +01:00
Daniil Baturin
3d5749f42b
Merge pull request #261 from c-po/equuleus
T4652: upgrade PowerDNS recursor to 4.7 series
2022-10-03 12:45:21 +01:00
Christian Poessinger
ab0e9681b5
Kernel: T3318: update Linux Kernel to v5.4.215 2022-10-03 12:53:13 +02:00
Christian Poessinger
8cddce0cad Docker: T2913: fix fpm package installation during container assembly
Error installing fpm:
The last version of public_suffix (< 6.0, >= 2.0.2) to support your Ruby &
RubyGems was 4.0.7. Try installing it with `gem install public_suffix -v 4.0.7`
and then running the current command again public_suffix requires Ruby version
>= 2.6. The current ruby version is 2.5.0.
2022-09-13 21:44:49 +02:00
initramfs
313af6bb37
vyos-utils: T4683: add kitty-terminfo package
(cherry picked from commit 4c550889f44c5576ea23fb199082dd665f385685)
2022-09-09 18:21:55 +08:00
initramfs
07010d38ad
firmware: T4671: create missing symlinks defined in WHENCE file
(cherry picked from commit 3d983cb2feeb536a5cb23d22228d0ce6ee4d7ccc)
2022-09-06 20:01:04 +08:00
Christian Poessinger
47e4a2eea1 T4652: upgrade PowerDNS recursor to 4.7 series 2022-09-05 19:58:18 +02:00
Christian Poessinger
7ce8651188
Merge pull request #260 from c-po/equuleus
T4666: hostap: Reintroduce Debian's allow-tlsv1.patch
2022-09-04 08:19:27 +02:00
Andrew Gunnerson
50a88a508a T4666: hostap: Reintroduce Debian's allow-tlsv1.patch
After the fixes for T4537/T4584, which added a custom hostap package,
wpa_supplicant no longer allows TLSv1.0 connections, which is required
for EAP-TLS with certain ISPs.

Previously, VyOS allowed TLSv1.0 via Debian's `allow-tlsv1.patch` patch.
This commit reintroduces that patch for the custom hostap package.

Signed-off-by: Andrew Gunnerson <chillermillerlong@hotmail.com>
(cherry picked from commit 54a2f0aa704db96707c8545b81b180934b5f8b9c)
2022-09-03 20:39:23 +02:00
Daniil Baturin
a16db434a7
Merge pull request #258 from c-po/equuleus
Kernel: T4647: enable GVE (Google Virtual NIC)
2022-08-26 11:12:57 +01:00
Christian Poessinger
92772bf850 Kernel: T4647: enable GVE (Google Virtual NIC)
(cherry picked from commit 94e844f44b76069b0897c2c7c5968853b4b1a368)
2022-08-25 19:13:09 +02:00
Christian Poessinger
e018b126fd
Merge pull request #254 from vyos/equuleus-kernel-update-5-4-210
Kernel: T3318: update Linux Kernel to v5.4.210
2022-08-15 19:44:02 +02:00
Christian Poessinger
d7125c5a53
Merge pull request #255 from c-po/equuleus
MACsec: T4537: add custom build for hostap package
2022-08-15 19:01:39 +02:00
Christian Poessinger
39958cb82f hostap: T4584: add git version to Debian package
(cherry picked from commit 8443b98f54c9c8e2a936301b9dbcdcd96c4d543e)
2022-08-15 17:47:10 +02:00
Christian Poessinger
6bcb173cf7 hostap: T4584: add custom package build
(cherry picked from commit e008ba7de3428e3d7d1bd00d656da3946bf006c7)
2022-08-15 17:47:07 +02:00
Christian Poessinger
05f528ef42
Kernel: T3318: update Linux Kernel to v5.4.210 2022-08-11 19:14:14 +02:00
Christian Poessinger
a468d072b9 Docker: hostap: T4584: add requirements for custom package build
(cherry picked from commit 3e42b642e16eac4e681b0ed70ec694582041333b)
2022-08-06 07:39:34 +02:00
Christian Poessinger
ef2d77a9e0
Merge pull request #252 from vyos/c-po-patch-1
Kernel: T3318: update Linux Kernel to v5.4.208 & drop influxdata repository (equuleus)
2022-07-31 14:46:49 +02:00
Christian Poessinger
e7a2b38e3f telegraf: T4515: select proper Pipeline library branch 2022-07-31 09:26:28 +02:00
Christian Poessinger
65c32f9128 telegraf: T4515: remove references to influxdata repository 2022-07-31 09:25:39 +02:00
Christian Poessinger
a3a5f2ead5 Kernel: T3318: update Linux Kernel to v5.4.208 2022-07-31 09:25:39 +02:00
Christian Poessinger
af0d6073fb
Merge pull request #251 from c-po/t4515-equuleus
T4515: Reduce telegraf binary size (equuleus)
2022-07-31 07:55:39 +02:00
Christian Poessinger
84a1957fb1 telegraf: T4515: add custom build 2022-07-30 20:33:05 +02:00
zsdc
dc420a24d1 Go: T4472: Updated Go version to 1.18.3
* removed `golang-github-osrg-gobgp-dev` dependency from fastnetmon. It can be
  built without it
* Replaced Go from the Debian repository (1.15) to a version from the Go
  website (1.18.3)

(cherry picked from commit a6efbe1b628d82eb5dd55b0746cf9278a1f9a1c1)
2022-07-30 20:31:55 +02:00
Daniil Baturin
3154e51227
Merge pull request #249 from vyos/t3318-equuleus-kernel-update-2
Kernel: T3318: update Linux Kernel to v5.4.205
2022-07-15 13:50:43 +01:00
Christian Poessinger
82a650872c Kernel: T3318: update Linux Kernel to v5.4.205 2022-07-15 07:07:37 +02:00
Daniil Baturin
40e8ea1c44
Merge pull request #235 from andriiandrieiev/equuleus
Jenkins: builld dsc packages beside amd64 binaries
2022-07-07 15:30:03 +01:00
Daniil Baturin
fa81861cfd
Merge pull request #247 from jestabro/tree-root-name-commit-ref
T4491: update commit ref for vyos1x-config
2022-07-01 21:09:37 +01:00
John Estabrook
20d4f37c60 T4491: update commit ref for vyos1x-config 2022-07-01 12:49:20 -05:00
Christian Poessinger
71dc68c998
Merge pull request #244 from vyos/t3318-kernel-equuleus
Kernel: T3318: update Linux Kernel to v5.4.200
2022-06-24 19:24:04 +02:00
Christian Poessinger
93e355192a
Kernel: T3318: update Linux Kernel to v5.4.200 2022-06-23 21:01:02 +02:00
Daniil Baturin
b03bec090e
Merge pull request #241 from vyos/t3318-kernel-update-equuleus
Kernel: T3318: update Linux Kernel to v5.4.197
2022-06-12 10:32:20 +03:00
Christian Poessinger
a41dadf218
Kernel: T3318: update Linux Kernel to v5.4.197 2022-06-09 19:04:51 +02:00
Daniil Baturin
ec82d1fffe
Merge pull request #237 from vyos/t3318-equuleus-kernel-update
Kernel: T3318: update Linux Kernel to v5.4.195
2022-05-22 09:05:17 +03:00
Christian Poessinger
ab8503a8ca
Kernel: T3318: update Linux Kernel to v5.4.195 2022-05-21 20:32:22 +02:00
Christian Poessinger
80dff86d95
Merge pull request #231 from zdc/T4415-equuleus
doc: T4415: Added back copyrights for components
2022-05-05 20:12:51 +02:00
Christian Poessinger
de4eaa65f7
Merge pull request #222 from c-po/equuleus-cleanup
keepalived: T4128: remove buster-backports APT pinning
2022-05-05 19:06:48 +02:00
Andrii
486c23fc3d Jenkins: builld dsc packages beside amd64 binaries 2022-05-05 19:07:53 +03:00
zsdc
b0ee2b1c59 doc: T4415: Added back copyrights for components
Copyright information must not be deleted with the rest documentation
files.
2022-05-05 16:15:26 +03:00
Christian Poessinger
72b8d50140
Merge pull request #229 from vyos/equuleus-kernel-update
Kernel: T3318: update Linux Kernel to v5.4.191
2022-04-28 07:38:26 +02:00
Christian Poessinger
c29d461de0
Kernel: T3318: update Linux Kernel to v5.4.191 2022-04-27 21:49:21 +02:00
Christian Poessinger
aca7f0b137
Merge pull request #228 from jestabro/equuleus-config-diff
T4235: update commit refs for vyos1x-config, libvyosconfig
2022-04-26 11:26:46 +02:00
John Estabrook
6993e9e0a4 T4235: update commit refs for vyos1x-config, libvyosconfig 2022-04-25 13:34:03 -05:00
Daniil Baturin
f9319421e5
Merge pull request #223 from vyos/t3318-kernel-upgrade
Kernel: T3318: update Linux Kernel to v5.4.188
2022-04-08 17:45:58 +03:00
Christian Poessinger
e804c367d8
Kernel: T3318: update Linux Kernel to v5.4.188 2022-03-31 20:23:37 +02:00
Christian Poessinger
44677c110b keepalived: T4128: remove buster-backports APT pinning
Commit 5226a4a ("keepalived: T4128: build package from upstream source") added
the required files to build the keepalived package from source. The resulting
binary DEB is thus located inside the VyOS repositories - this makes APT
pinning from Debian Buster Backport repository superfluous.

Buster Backports ship keepalived 2.1.5 - we require at least 2.2.4-227-g8af889bc
for VRF support.
2022-03-31 19:56:08 +02:00
Christian Poessinger
bfd58ad202
Kernel: T3318: update Linux Kernel to v5.4.187 2022-03-23 10:19:34 +01:00
Christian Poessinger
1e345f8ab2
Merge pull request #213 from c-po/equuleus-numa
Kernel: T3489: re-enable NUMA in kernel build
2022-03-23 10:17:11 +01:00
Christian Poessinger
1c96b450e5
Kernel: T3318: update Linux Kernel to v5.4.186 2022-03-20 16:57:31 +01:00
Christian Poessinger
b381eb2b7a
Kernel: T3318: update Linux Kernel to v5.4.185 2022-03-17 21:01:41 +01:00
Christian Poessinger
dedb464654
Merge pull request #220 from dmbaturin/T4306-1.3.0
T4306: do not perform a dirtiness check for release builds
2022-03-17 19:49:52 +01:00
Daniil Baturin
1635b91a95 T4306: do not perform a dirtiness check for release builds 2022-03-17 14:35:58 -04:00
Christian Poessinger
34c969793b
Kernel: T3318: update Linux Kernel to v5.4.184 2022-03-12 09:22:36 +01:00
Christian Poessinger
73833d0a1e
Kernel: T3318: update Linux Kernel to v5.4.183 2022-03-09 07:37:50 +01:00
Christian Poessinger
c4c4791f54
Kernel: T3318: update Linux Kernel to v5.4.182 2022-03-02 20:06:08 +01:00
Christian Poessinger
e0899b927c
Kernel: T3318: update Linux Kernel to v5.4.181 2022-02-23 17:36:08 +01:00
Christian Poessinger
76e548707f
Kernel: T3318: update Linux Kernel to v5.4.180 2022-02-16 22:39:27 +01:00
Christian Poessinger
af46220735
Merge pull request #216 from sever-sever/T3872-bld
telegraf: T3872: Add repo influxdb for newest pkg for equuleus
2022-02-09 07:40:49 +01:00
Christian Poessinger
410b3aef2a
Kernel: T3318: update Linux Kernel to v5.4.178 2022-02-08 22:48:06 +01:00
Viacheslav Hletenko
252b842a30 telegraf: T3872: Add repo influxdb for newest pkg for equuleus
Adding influxdb repo and key. Delete telegraf from vyos-buid, it will
be added to vyos-1x in debian/conrtol. To use unixsocket for syslog we
update telegraf to version => 1.20 b.c current version in the
standard repo 1.16.2-1 doesn't support some features
2022-02-08 12:39:47 +00:00
Christian Poessinger
446415bcf8 Jenkins: Docker: buildcontainers w/o cache
... so we fetch latest Debian updates

(cherry picked from commit b4cbb6669527bd995e20952525e036d71ec0e36f)
2022-02-06 09:21:07 +01:00
Christian Poessinger
59da41928a
Kernel: T3318: update Linux Kernel to v5.4.176 2022-02-04 19:45:35 +01:00
Christian Poessinger
109f74f152
Kernel: T3318: update Linux Kernel to v5.4.175 2022-01-31 21:58:49 +01:00
Christian Poessinger
1eeeabe6a2 Kernel: T3318: update Linux Kernel to v5.4.174 2022-01-27 22:06:00 +01:00
Christian Poessinger
eaf4736774
Merge pull request #215 from DmitriyEshenko/patch-7
Accel-PPP: T4204: update accel-ppp version
2022-01-24 19:57:50 +01:00
Eshenko Dmitriy
418ffd6dd1
Accel-PPP: T4204: update accel-ppp version 2022-01-24 11:28:09 +03:00
Christian Poessinger
82241ddd6e Kernel: T3489: re-enable NUMA in kernel build
All throughout the history of vyos-build, NUMA has been disabled.
It WAS enabled back in Vyatta days, so something somewhere has
accidentally turned it off - and it's ALSO mentioned explicitly
in various pieces of documentation, so it's MEANT to be on!

Note for future researchers: CONFIG_INOTIFY_STACKFS=y is provided
by a patch, so patch the kernel BEFORE running make menuconfig, or
manually put it back. If not, it'll vanish and is a wanted part of
the build.

This is a backport of commit d5df496b9b9e for the 5.4 Kernel series.
2022-01-20 20:56:40 +01:00
Christian Poessinger
85f44504c7
Kernel: T3318: update Linux Kernel to v5.4.173 2022-01-20 20:50:47 +01:00
Christian Poessinger
158fb72b1b Jenkins: always archive artifacts 2022-01-20 20:03:35 +01:00
Christian Poessinger
1667f80fa8 packages: T3164: Dropbear - apply VyOS patches without quilt
This prevents error:
dpkg-source: error: expected [ +-] at start of line 16 of diff 'dropbear/debian/patches/0001-Enable-PAM-support.patch'
dpkg-source: info: applying 0001-Enable-PAM-support.patch
dpkg-source: info: the patch has fuzz which is not allowed, or is malformed
2022-01-17 19:38:32 +01:00
Christian Poessinger
77ae2d5064 packages: T3164: Debian Buster requires an older Dropbear version
... because of build time dependencies
2022-01-17 18:55:28 +01:00
Christian Poessinger
634ad661d9 Docker: T3164: extend Debian buster build dependencies for Dropbear SSH daemon 2022-01-17 18:55:28 +01:00
Christian Poessinger
d70312ef00
packages: T3164: Dropbear: adjust to equuleus Jenkins pipeline library
We do not have arm64 support in equuleus
2022-01-16 21:48:10 +01:00
Christian Poessinger
a0dc049c7b packages: T3164: build Dropbear from source with PAM support
Dropbear version shipped in Debian does not have PAM support enabled. For the
VyOS console server it would be nice to have the possibility to use RADIUS
authentication.

(cherry picked from commit 52f75193f3afe799017e17504d5785aa7817d455)
2022-01-16 21:25:11 +01:00
Christian Poessinger
ff480b8898 Docker: T3164: add build dependencies for Dropbear SSH daemon
(cherry picked from commit 4ce1c21078a0f6890c0a7004285d8f393a4156b3)
2022-01-16 21:25:11 +01:00
Christian Poessinger
53ce47b27c
Kernel: T3318: update Linux Kernel to v5.4.172 2022-01-16 10:06:00 +01:00
Christian Poessinger
d87383eba1
Kernel: T3318: update Linux Kernel to v5.4.171 2022-01-12 18:52:54 +01:00
Christian Poessinger
a4232e2c1c Jenkins: keepalived: T4128: must use equuleus pipeline library 2022-01-09 21:23:25 +01:00
Christian Poessinger
286cbbba0c keepalived: T4128: bugfix - do not build arm64 package
This fixes passing of wrong function arguments introduced in commit dc1fbb8
("keepalived: do not build arm64 package").
2022-01-09 21:07:06 +01:00
Christian Poessinger
0f31510e42 keepalived: T4128: pin package to specific Git commit
keepalived commit 8af889bc is known to work - pin builds to this version
until we decide for a newer release (2.2.5 or higher).

(cherry picked from commit f0cdd802c2a6a9bc12f5495d517837b4c6a1b494)
2022-01-09 21:03:07 +01:00
Christian Poessinger
dc1fbb8f0e keepalived: do not build arm64 package 2022-01-09 20:59:31 +01:00
Christian Poessinger
5226a4ad37 keepalived: T4128: build package from upstream source
(cherry picked from commit e890cbd5099e296bc2a614d3b7871e1d577aa5f3)
2022-01-09 20:54:26 +01:00
Christian Poessinger
2ac26d4c4f
Kernel: T3318: update Linux Kernel to v5.4.170 2022-01-05 20:57:28 +01:00
Christian Poessinger
1ca75db412 Docker: T4128: add dependencies to build keepalived from source
(cherry picked from commit d137540caa0c5c0405238d77d6e04cd42f2c7685)
2022-01-04 07:40:39 +01:00
Christian Poessinger
7c1799f72f Jenkins: change ISO version name from 1.3-beta to 1.3-stable 2022-01-04 07:12:28 +01:00
Christian Poessinger
6338c523da Jenkins: downloads.vyos.io is deprecated - no longer upload ISO image
(cherry picked from commit 645c891edc01699164279141fb3174e919d3197a)
2022-01-04 07:10:25 +01:00
Christian Poessinger
15a6b10cef Jenkins: increase build timeout to 3 hours
(cherry picked from commit d0932a80c402faf92ed4c7c90aea27aeef5e844e)
2022-01-04 07:10:22 +01:00
Christian Poessinger
3e184ce4da Revert "isis: T1316: enable SNMP support"
This reverts commit 5e2d0fba80221f4adae38c73aadd65b68cef197c.

This is not supported with FRR 7.5 series and will prevent isisd from startup.
2022-01-01 20:06:45 +01:00
Christian Poessinger
bd44c70666
Kernel: T3318: update Linux Kernel to v5.4.169 2021-12-30 21:02:43 +01:00
Daniil Baturin
b23b692309
Merge pull request #210 from DmitriyEshenko/vyos-build-27122021-aaeon
Add interfaces map for AAEON devices: FWS-2280, FWS-2360, FWS-2365
2021-12-28 16:37:00 +07:00
DmitriyEshenko
cd3716ec63 Add interfaces map for AAEON devices: FWS-2280, FWS-2360, FWS-2365 2021-12-27 12:45:52 +00:00
Christian Poessinger
5923731006 Testsuite: fix cdrom boot in UEFI mode
(cherry picked from commit 4ccdaf58fc7b9bf8df71f4b8392930b98729424f)
2021-12-26 20:09:34 +01:00
Christian Poessinger
d0a8d6a454 Revert "Testsuite: limit QEmu test disk size to 1G to not waste space on build host"
This reverts commit a5e591fa9b66b229f7296de177a570c7b7126be4.
2021-12-26 20:09:28 +01:00
Christian Poessinger
17799b2c84 Jenkins: only deploy ISO if requested via parameter
(cherry picked from commit c78b06be53a269c00d9922561bf1abeb8129b7c5)
2021-12-26 09:43:23 +01:00
Christian Poessinger
a5e591fa9b Testsuite: limit QEmu test disk size to 1G to not waste space on build host
(cherry picked from commit 1960c1c259bc27c8f1f7806b40687b7e82866f01)
2021-12-26 09:04:16 +01:00
Christian Poessinger
67a6f3e3c9 Testsuite: add RAID-1 test case for disk recovery
(cherry picked from commit 986fd18e11ac19470e17ad786d5cc908339ccb43)
2021-12-25 22:08:20 +01:00
Christian Poessinger
35d432c281 Testsuite: add loginVM()/shutdownVM() helpers
(cherry picked from commit a36755da0b10d884eff84f52e24a0f9ec185e461)
2021-12-25 22:07:33 +01:00
Christian Poessinger
8433218c32 Testsuite: add 8th NIC and disable PXE boot
(cherry picked from commit e836f7245837618c00f563af4ae0836ab81b5686)
2021-12-25 22:07:01 +01:00
Christian Poessinger
5e2d0fba80
isis: T1316: enable SNMP support 2021-12-25 18:41:13 +01:00
Christian Poessinger
72c9f1f89c
Jenkins: stop publishing ISO images after 1.3.0 LTS release 2021-12-24 09:21:10 +01:00
Daniil Baturin
2f691bb2f6 T4084: add the default VyOS post-login banner to the image 2021-12-19 11:23:37 +07:00
Christian Poessinger
5e3b2b9afe
Kernel: T3318: update Linux Kernel to v5.4.165 2021-12-14 23:41:10 +01:00
Christian Poessinger
22500ef2fb wwan: T3795: disable ModemManager service
(cherry picked from commit 8cf4aba93320951c33f8f8b2b53ab9cf7d1076a0)
2021-12-10 22:49:14 +01:00
Christian Poessinger
017abd48cb Jenkins: run "make testraid" for RAID-1 verification
(cherry picked from commit 4a21175243e0dc86b710cf4754834241d0cfcfd9)
2021-12-09 23:26:15 +01:00
Christian Poessinger
141172a810 Testsuite: set default timeout to 60 seconds
(cherry picked from commit 76f59a39153f4e5880602f4b439efabb2dff3b07)
2021-12-09 23:26:15 +01:00
Christian Poessinger
eeb90e20d9 Testsuite: add new "make testraid" target for RAID-1 installation testing
(cherry picked from commit 462c5f80e086b1f5f74c564b3cb53df230b06d6b)
2021-12-09 23:26:15 +01:00
Christian Poessinger
fcf34f734f Testsuite: reference default user/pass from variable
(cherry picked from commit 2aa0166d87c9ebd024dc8aff950bfb11492f59ea)
2021-12-09 23:26:15 +01:00
Christian Poessinger
596a0fdf67 Makefile: add common helper to check if ISO was build before running tests
(cherry picked from commit c5dee499abaf729dc9388c0b86530c0d09fd9fd1)
2021-12-09 23:26:15 +01:00
Christian Poessinger
a48cd47509
Kernel: T3318: update Linux Kernel to v5.4.164 2021-12-08 10:10:30 +01:00
Christian Poessinger
5d1b7ea47a
Merge pull request #209 from fetzerms/patch-1
T4034: Fix package path for xcp-ng build
2021-12-03 12:19:18 +01:00
Matthias Fetzer
d37417e9e4
T4034: Fix package path for xcp-ng build 2021-12-03 11:11:02 +01:00
Christian Poessinger
1c0656e09c
Merge pull request #207 from fetzerms/fetzerms-patch-1
T4034: Fix package list for xcp-ng-iso build
2021-12-02 20:02:45 +01:00
Matthias Fetzer
8bef001fe9
T4034: Fix package list for xcp-ng-iso build
prepare target is running before xcp-ng-iso which copies ./data/package-lists/vyos-x86.list.chroot to $(build_dir)/config/package-lists/vyos-x86.list.chroot.
During the build step, this is too late and therefore we need to patch the package list inside the build directory.
2021-12-02 19:56:22 +01:00
Christian Poessinger
67fc0f0feb Kernel: T3318: update Linux Kernel to v5.4.163 2021-12-02 08:02:08 +01:00
Christian Poessinger
b93f46a0ca
Merge pull request #206 from sever-sever/T4013
build: T4013: Add aws-cloudwatch-agent for aws iso images
2021-11-29 16:54:50 +01:00
Viacheslav
a116d1a2c3 build: T4013: Add aws-cloudwatch-agent for aws iso images 2021-11-29 15:35:51 +00:00
Christian Poessinger
1a1daab938
Kernel: T3318: update Linux Kernel to v5.4.162 2021-11-26 21:31:52 +01:00
John Estabrook
c77fa19403 build: workaround to restore building with local packages 2021-11-25 08:28:09 -06:00
Christian Poessinger
9b67b1c5dd
Merge pull request #205 from DmitriyEshenko/patch-5
Accel-PPP: T4015: update version which include threading fix
2021-11-24 08:45:35 +01:00
Eshenko Dmitriy
a1dc0af473
Accel-PPP: T4015: update version which include threading fix 2021-11-23 13:54:59 +03:00
Christian Poessinger
38d6e29cc1
Kernel: T3318: update Linux Kernel to v5.4.161 2021-11-22 17:24:24 +01:00
Christian Poessinger
95a93de8fe wwan: T3895: pin modemmanager package dependencies to buster-backports
Commit 52b231df00 ("wwan: T3895: upgrade modemmanager package") just updated the
main package but all required dependencies did not get pinned.
2021-11-18 20:18:28 +01:00
Christian Poessinger
52b231df00 wwan: T3895: upgrade modemmanager package
We need the JSON output support from modemmanager.
2021-11-18 19:13:12 +01:00
Christian Poessinger
58c119c919
Kernel: T3318: update Linux Kernel to v5.4.160 2021-11-17 18:49:49 +01:00
Christian Poessinger
7c21b58ce7
Kernel: T3318: update Linux Kernel to v5.4.159 2021-11-14 07:53:44 +01:00
Christian Poessinger
df914621b1 T3912: drop default issue file - autogenerated on boot
(cherry picked from commit ab8ae2fda8358f399aae1468f2a70377043aca3a)
2021-11-12 17:35:10 +01:00
Christian Poessinger
f34c3a0656
Merge pull request #202 from zdc/T3934-equuleus
ocserv: T3934: Added own build of ocserv
2021-11-10 18:35:32 +01:00
zsdc
2e1eac5980 ocserv: T3934: Added own build of ocserv
Because of a strange bug with the Debian package
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=997981) we need to
have our own build of ocserv from the same source.
2021-11-10 19:04:30 +02:00
Daniil Baturin
a66f14c380
Merge pull request #199 from erkin/equuleus
T3962: Check if open-vm-tools is present before attempting to write its config
2021-11-09 21:01:53 +07:00
erkin
28dcbd7928 T3962: Check if open-vm-tools is present before attempting to write its config 2021-11-09 16:58:15 +03:00
Christian Poessinger
c76084a931 T3912: remove superfluous motd.d kernel version shell script
(cherry picked from commit ee81272116cd680fd3b35497739f82be144b33a5)
2021-11-08 17:31:27 +01:00
Christian Poessinger
6cb74ef9f0 Revert "T3912: use a more informative default login banner"
This reverts commit 1d360c2ea7065805636acb709af14f01d54c188c.
2021-11-08 17:31:27 +01:00
John Estabrook
6f3fbc6ef3 http api: T3412: add build dependencies for vyos-http-api-tools
(cherry picked from commit 52d0b69f09692c8cc95ece99d8118b3cdb7dfc14)
2021-11-08 05:16:29 -06:00
Christian Poessinger
ba06281c89
Kernel: T3318: update Linux Kernel to v5.4.158 2021-11-06 22:45:06 +01:00
Daniil Baturin
1cab06598c Update the boot splash for Equuleus 2021-11-06 18:21:07 +07:00
Daniil Baturin
ead27e05b9 Add a file with artwork license and modified image distribution guidelines 2021-11-06 18:20:45 +07:00
Daniil Baturin
932b2d56fb
Merge pull request #197 from sever-sever/3971
build-iso: T3971: Ability to buid ISO images for xcp-ng
2021-11-05 23:39:35 +07:00
Viacheslav
5a684cd9a7 build-iso: T3971: Ability to buid ISO images for xcp-ng 2021-11-05 16:31:45 +00:00
Christian Poessinger
1da6287f17 Testsuite: use individual UUID/name per UEFI/BIOS instance
(cherry picked from commit ec168f3d2cede849c66d078a3df0514dc1ed65a0)
2021-11-04 21:03:24 +01:00
Christian Poessinger
9c30efd774
Kernel: T3318: update Linux Kernel to v5.4.157 2021-11-03 19:10:35 +01:00
Christian Poessinger
bb511522cc Testsuite: add UUID for DUID generation during tests
(cherry picked from commit 2264c8a812325f57fe0361fca9dad992048e572f)
2021-10-30 13:23:32 +02:00
Christian Poessinger
71722a4a56
Kernel: T3318: update Linux Kernel to v5.4.156 2021-10-28 20:16:11 +02:00
Christian Poessinger
76ae1acd27 Kernel: T3927: enable kernel support for HW offload of the TLS protocol 2021-10-21 18:50:17 +00:00
Christian Poessinger
62a2f748f5
Kernel: T3318: update Linux Kernel to v5.4.155 2021-10-21 06:56:22 +02:00
Christian Poessinger
defac16108
Kernel: T3318: update Linux Kernel to v5.4.154 2021-10-17 17:50:08 +02:00
Daniil Baturin
1d360c2ea7 T3912: use a more informative default login banner 2021-10-17 09:40:42 -04:00
Christian Poessinger
f9c89e3565 T3879: bugfix GPG signature validation on image install 2021-10-16 18:51:50 +02:00
Christian Poessinger
35fdd4f8cd
Kernel: T3318: update Linux Kernel to v5.4.153 2021-10-13 22:09:56 +02:00
Christian Poessinger
47860f64e4
Kernel: T3318: update Linux Kernel to v5.4.152 2021-10-11 08:06:24 +02:00
Christian Poessinger
77c00b4350
Kernel: T3318: update Linux Kernel to v5.4.151 2021-10-07 20:00:56 +02:00
Christian Poessinger
479d2482f3 uefi: T3880: support both VGA and serial consolex 2021-10-03 11:20:56 +02:00
Christian Poessinger
17479dd865 uefi: T3880: re-render image to work with GRUB
convert -resize 640x480 -depth 16 -colors 14 old.png new.png
2021-10-03 11:20:19 +02:00
Christian Poessinger
e6ce9e7667 Makefile: "make test" runs in UEFI mode "make testc" continues to use BIOS
With this change we validate both installation types that they work and
operates "as expected".
2021-10-02 12:06:24 +02:00
Christian Poessinger
6c438f92e7 Testsuite: add support for UEFI boots in Qemu 2021-10-02 12:05:50 +02:00
Christian Poessinger
769908f498 pdns: recuror: T3882: upgrade package to version 4.5 2021-10-02 12:04:25 +02:00
Christian Poessinger
e22881a979 Docker: add ovmf requirement for UEFI boot tests 2021-10-02 09:59:24 +02:00
Christian Poessinger
aeafa43e69
Kernel: T3318: update Linux Kernel to v5.4.150 2021-10-02 09:57:26 +02:00
Christian Poessinger
701f08deb2
Kernel: T3318: update Linux Kernel to v5.4.149 2021-09-27 19:41:30 +02:00
Daniil Baturin
d7c545fcb6
Merge pull request #187 from UnicronNL/equuleus
T3864: Add Edgecore build to VyOS 1.3 Equuleus
2021-09-26 19:38:11 +07:00
Kim Hagen
e1dade8feb restore vmdk removal 2021-09-26 07:33:01 -05:00
DmitriyEshenko
2ffb8da3a2 Create common build for EC devices 2021-09-26 07:18:57 -05:00
DmitriyEshenko
ccd513928c Improve interface naming for EC saf51015I/saf51003I 2021-09-26 07:16:24 -05:00
Eshenko Dmitriy
8d3da190ca Add build option for Edge-Core SAF51003L 2021-09-26 07:15:44 -05:00
DmitriyEshenko
e3a891b2c4 add build option for Edge-Core saf51015I 2021-09-26 07:10:24 -05:00
Christian Poessinger
7ae916d98a
Kernel: T3318: update Linux Kernel to v5.4.148 2021-09-23 09:35:04 +02:00
Christian Poessinger
a9f265109d Testsuite: add missing leading 'f' for Python3 format strings
(cherry picked from commit 07555c06452524d860f1093cec6537d3102846f3)
2021-09-19 12:52:35 +02:00
Christian Poessinger
e3ff2904a6
Kernel: T3318: update Linux Kernel to v5.4.147 2021-09-18 10:29:09 +02:00
Christian Poessinger
3cff8186e8
Kernel: T3318: update Linux Kernel to v5.10.64 2021-09-15 21:35:20 +02:00
Christian Poessinger
ec031b4d8b
Kernel: T3318: update Linux Kernel to v5.4.145 2021-09-13 20:13:41 +02:00
Daniil Baturin
6924ac693b Revert "T3821: Hardcode component versions in configuration files"
This reverts commit 672b0fe4d25deca9b7fd8d24ce040d63d5d242c8.
2021-09-13 12:09:53 -04:00
Daniil Baturin
ecf4137b75 Revert "Use correct component versions for equuleus."
This reverts commit 23639568a945f19471af88547dab45b87bbd642d.
2021-09-13 12:09:48 -04:00
Daniil Baturin
8419069dc1 Update NTP servers in cloud configs. 2021-09-12 12:52:01 -04:00
create with ansible
23639568a9 Use correct component versions for equuleus. 2021-09-12 12:50:21 -04:00
Daniil Baturin
cfd40b1be5 Update NTP servers in the default AWS config. 2021-09-12 09:59:36 -05:00
erkin
672b0fe4d2 T3821: Hardcode component versions in configuration files 2021-09-12 09:21:19 -05:00
Daniil Baturin
332378b90a Update NTP servers in the default config. 2021-09-11 23:55:28 -05:00
Christian Poessinger
ffd3b34935 powerdns: T3820: upgrade from 4.3 -> 4.4 2021-09-10 10:49:37 +02:00
Christian Poessinger
acc36883a6 salt: T3819: update version 3002.3 -> 3003.x 2021-09-10 10:47:50 +02:00
Christian Poessinger
09b8377a43 Jenkins: Docker: add build options when assembling container
(cherry picked from commit 925cf87950cc66615046219a6f18910b3722bd67)
2021-09-07 12:07:48 +02:00
Christian Poessinger
0f34e1b71b
Docker: allow "releaseinfo-change" for apt-get update 2021-09-07 11:51:14 +02:00
Christian Poessinger
cdc8bc1520
Jenkins: Docker: also trigger rebuild on changes to Jenkinsfile.docker 2021-09-07 11:47:11 +02:00
Christian Poessinger
d521a9dfc8 Docker: add bash and bash-completion to install list
(cherry picked from commit f02e672dd33373d66c67544ee8a9e791e7e019f6)
2021-09-07 10:09:10 +02:00
Christian Poessinger
14583fc2b4
Kernel: T3318: update Linux Kernel to v5.4.144 2021-09-04 07:15:18 +02:00
Christian Poessinger
ef081c4787 Kernel: T3318: update Linux Kernel to v5.4.143 2021-08-27 10:24:12 +02:00
erkin
a86c1bcd93 T3351: Add SHA256 checksums
(cherry picked from commit 5e47e3ad3c333197bbff10bbda7d4bbd9f0b4009)
2021-08-27 10:15:52 +02:00
Christian Poessinger
a834d2a97a systemd: services: remove no longer available lighttpd.service from disable list 2021-08-27 09:23:05 +02:00
Christian Poessinger
1ecd2cdd0e systemd: services: remove no longer available exim4.service from disable list 2021-08-27 09:23:01 +02:00
Christian Poessinger
a534d2ca71 Jenkins: BUILD_VERSION is now calculated during runtime
In the past a cached version of BUILD_VERSION was used which would manifest
in a wrong timestamp from build start time vs ISO time.

(cherry picked from commit 1941149de81d0e9c0c7ae334452786ba6fff8f09)
2021-08-26 10:07:36 +02:00
Christian Poessinger
13295638a6 Jenkins: remove unused BUILD_QEMU parameter 2021-08-25 10:15:29 +02:00
Christian Poessinger
0c9de66752 Jenkins: place snapshot images in a version subdirectory
when BUILD_SNAPSHOT is set, place image in a subdirectory that is named after
the specified BUILD_VERSION parameter.

Example:
vyos-1.3.0-rc6-amd64.iso will be uploaded to snapshot/1.3.0-rc6.

(cherry picked from commit 768b900f9296ce8e26b6f330581160c8a533b41f)
2021-08-22 18:10:33 +02:00
Christian Poessinger
75b37b28b2 Jenkins: BUILD_BY and BUILD_VERSION should be placed in quotes
(cherry picked from commit c66d7648c8602da73bd5acd1d88ea022d3c26cfd)
2021-08-22 17:23:53 +02:00
Christian Poessinger
35f7e66c9a Jenkins: when BUILD_SNAPSHOT is set - only publish to snapshot bucket
(cherry picked from commit 9640a0293cc51347fcab23ad3c50841f2333ebc1)
2021-08-22 17:20:20 +02:00
Christian Poessinger
86610a16de
Kernel: T3318: update Linux Kernel to v5.4.142 2021-08-19 22:22:08 +02:00
Christian Poessinger
e9b7613e17
Kernel: T3318: update Linux Kernel to v5.4.141 2021-08-17 17:46:10 +02:00
Christian Poessinger
bc4c54605b
Kernel: T3318: update Linux Kernel to v5.4.140 2021-08-12 19:54:49 +02:00
Christian Poessinger
7e99a23092 Kernel: T3318: update Linux Kernel to v5.4.139 2021-08-08 18:33:49 +02:00
Daniil Baturin
3389cd0685 T3713: move utilities to the vyos-user-utils meta-package. 2021-08-07 01:47:00 -05:00
Daniil Baturin
6c07ec8cfc Force the shell to bash in the makefile. 2021-08-06 16:42:39 -05:00
Christian Poessinger
0b6b53ef2c
Kernel: T3318: update Linux Kernel to v5.4.138 2021-08-04 19:52:08 +02:00
Christian Poessinger
3f5f4b03de
Kernel: T3318: update Linux Kernel to v5.4.137 2021-08-03 20:44:44 +02:00
Christian Poessinger
2c85a117b9 GitHub: add PR conflict and author assignment workflows
(cherry picked from commit 6f679441bd94fd1bdcd9a85e750c5fa5aac8ec40)
2021-08-01 14:34:27 +02:00
Christian Poessinger
1e01fcfeb8
Kernel: T3318: update Linux Kernel to v5.4.136 2021-07-29 22:21:21 +02:00
Christian Poessinger
787e35a369 Kernel: T3318: update Linux Kernel to v5.4.135 2021-07-26 22:23:06 +02:00
zsdc
4aada15f2d kernel: T3704: Enabled SG module
Enabled build of the SG module to make possible communication with RAID
adapters from Areca (https://www.areca.com.tw/).

(cherry picked from commit 6d77d03c3fcda288ed44b979338d38a58d8ae5f3)
2021-07-26 22:22:43 +02:00
Christian Poessinger
44c5e7d928 Jenkins: when building VyOS ISO use UTC timestamp
(cherry picked from commit d8f519231612c666d6804282282a4b0213b531d7)
2021-07-26 07:02:33 +02:00
Christian Poessinger
abc6e3ebb7 Kernel: only build packages if the package changes at all 2021-07-24 21:25:01 +02:00
Christian Poessinger
814b4f9a8e Jenkins: only build packages if the package changes at all - skip otherwise
This will only run the Jenkins Pipeline if Git detects a change in the
specified file path. If no change is found in the path, the individual Pipeline
statges are skipped.

(cherry picked from commit 1c3e5e18fd746bbb6ccd4a09d1fec1bed2f8316b)
2021-07-24 21:25:01 +02:00
Christian Poessinger
17527d43a9 Jenkins: lib: add changesPattern parameter to buildPackage class
we can now externally control if the package should be build when a file
changes. It defaults to "*" which means "always build".

(cherry picked from commit 9e57b42149d25092d22fd215d4bd08f3cb089c88)
2021-07-24 21:25:01 +02:00
Christian Poessinger
22875dd14a Jenkins: lib: remove skipDefaultCheckout() from pipeline options
We need the default checkout to determine the Git changeset.

(cherry picked from commit d5bec94eb8134ed7a1b47584d8bcbf4ba8c9fe1c)
2021-07-24 21:25:01 +02:00
Christian Poessinger
1dbcdde790 build: qemu: do not use symlinks on generated images
Jenkins can not properly deal with symbolic links.

(cherry picked from commit 5c359621dfff2b3d134547aa3be6cddc245a2a5e)
2021-07-24 17:43:33 +02:00
Christian Poessinger
565de03386
Kernel: T3318: update Linux Kernel to v5.4.134 2021-07-21 21:51:07 +02:00
Christian Poessinger
414f931a3d
Kernel: T3318: update Linux Kernel to v5.10.50 2021-07-19 21:38:23 +02:00
Christian Poessinger
f5eda29a45 Kernel: T3318: update Linux Kernel to v5.4.132 2021-07-17 09:13:17 +02:00
Christian Poessinger
2ba1cbb936 Kernel: T3318: update Linux Kernel to v5.4.131 2021-07-12 18:43:54 +02:00
Christian Poessinger
43c7b86095 Kernel: T3318: update Linux Kernel to v5.4.130 2021-07-09 08:03:51 +02:00
Christian Poessinger
62985f00fb
Kernel: T3318: update Linux Kernel to v5.4.129 2021-06-30 21:43:12 +02:00
Christian Poessinger
d3f3913e18
Merge pull request #174 from zdc/T2640-equuleus
VyOS in Docker: T2640: Fixed builds for equuleus (backported from sagitta)
2021-06-30 21:41:15 +02:00
zsdc
9e95a707e6 VyOS in Docker: T2640: Fixed builds for sagitta
Fixed the problem when APT repositories were not configured properly in VyOS 1.4 / sagitta during a Docker image build.
2021-06-29 18:06:08 +03:00
Christian Poessinger
892e8689b3 Jenkins: sync pipeline to current branch 2021-06-27 18:14:13 +02:00
Christian Poessinger
f5c2e1ae34 openvpn: T3650: upgrade package to 2.5.1 2021-06-25 19:27:30 +02:00
Christian Poessinger
711a1d2f1b
Kernel: T3318: update Linux Kernel to v5.4.128 2021-06-23 18:51:10 +02:00
Christian Poessinger
6f734b93d4
Kernel: T3318: update Linux Kernel to v5.4.127 2021-06-20 13:58:23 +02:00
DmitriyEshenko
8b329ff4a7 Accel-PPP: T3629: update to latest version
(cherry picked from commit 5dbfafaf414d044a1b98591b69ee143b11384131)
2021-06-16 20:05:51 +02:00
Christian Poessinger
72a2b80f24 Kernel: T3318: update Linux Kernel to v5.4.126 2021-06-16 20:03:16 +02:00
Christian Poessinger
85e4f7cf39 Revert "Kernel: usb: wwan: T3063: remove QMI, NCM and CDC drivers for WWAN cards"
This reverts commit 3fa7fe6926a538a8b4f25ca3e842fefb9699def6.
2021-06-13 13:09:07 +02:00
Christian Poessinger
1e4fd45724 Kernel: T3318: update Linux Kernel to v5.4.125 2021-06-10 19:16:17 +02:00
sever-sever
f35648f296 charon-syslog: T2620: Add ike-name to IPSec logs
(cherry picked from commit f0166cc4b2ba66c7cd2d2d2ab9aa8be839a26543)
2021-06-08 14:57:34 +02:00
Christian Poessinger
23076b4c89
Jenkins: trigger GitHub action for community page rebuild on ISO upload 2021-06-08 07:45:30 +02:00
Christian Poessinger
0729ba52d0
Kernel: T3318: update Linux Kernel to v5.4.124 2021-06-04 14:54:13 +02:00
Christian Poessinger
e75e0b2a4a
Kernel: T3318: update Linux Kernel to v5.4.123 2021-05-29 22:53:28 +02:00
Christian Poessinger
aaf3f4b58f Kernel: T3318: update Linux Kernel to v5.4.122 2021-05-26 19:56:06 +02:00
Runar Borge
272825480a Jenkins: add cleanup for finalize stage
(cherry picked from commit a3fc5bd3b2717a08c45e78fb9c0b0aeabe206ef3)
2021-05-24 11:50:53 +02:00
Christian Poessinger
d55f2bde80 systemd: services: T3572: disable smartd
(cherry picked from commit 21340d1348bda97c599e67a8e3c7cd6b9d618830)
2021-05-23 10:52:43 +02:00
Christian Poessinger
28e7f34a70 Kernel: T3318: update Linux Kernel to v5.4.121 2021-05-23 09:44:50 +02:00
Christian Poessinger
2c5ba87982 Kernel: T3318: update Linux Kernel to v5.4.120 2021-05-19 20:29:38 +02:00
Christian Poessinger
c39fc94386 Accel-PPP: T3562: update to latest version
Update to: https://github.com/accel-ppp/accel-ppp/commit/277ad4c3c7af01

(cherry picked from commit 8fb9681c6715bb1b72b62d1daf146c032050d6b2)
2021-05-19 20:29:01 +02:00
Christian Poessinger
13a2b3e221 Kernel: T3318: update Linux Kernel to v5.4.119 2021-05-15 10:04:44 +02:00
sever-sever
4fbdabff1c keepalived: T3540: Use backport version 2.1.5-0.2
(cherry picked from commit 3652b3fd8eb7b4e5134906aa1c3aba2a35d293ca)
2021-05-15 10:04:23 +02:00
Christian Poessinger
36a802a1d9 Kernel: T3318: update Linux Kernel to v5.4.118 2021-05-12 21:30:56 +02:00
Christian Poessinger
c75c673a67 Kernel: T3318: update Linux Kernel to v5.4.117 2021-05-08 13:04:51 +02:00
Christian Poessinger
b7767e9c99 Jenkins: name CI build images "beta" instead of "rolling"
... this was the naming in the past but commit fe80f574b80 ("Jenkins: add
parameters to image build") changed this back to rolling.
2021-05-02 14:27:41 +02:00
Christian Poessinger
a9f22f460c Jenkins: tabs to spaces 2021-05-02 14:27:18 +02:00
Christian Poessinger
20277a511c
Merge pull request #163 from sever-sever/T2100-frr
frr: T2100: Update FRR to 7.5
2021-05-02 14:11:02 +02:00
Christian Poessinger
4174b1309a Kernel: T3491: switch to 1kHz timer interrupt
(cherry picked from commit a1c4e49e90c041e61d26b04bd7df7a89a919d7ec)
2021-05-01 09:26:20 +02:00
Christian Poessinger
6ff189d740 Kernel: T3318: update Linux Kernel to v5.4.115 2021-04-30 06:10:47 +02:00
sever-sever
39791ee71b frr: T2100: Update FRR to 7.5 2021-04-26 21:54:17 +00:00
Christian Poessinger
470b2d0079 Kernel: T3318: update Linux Kernel to v5.4.114 2021-04-22 08:20:43 +02:00
Daniil Baturin
2aac286ccf Update to OCaml 4.12 2021-04-18 12:41:06 +03:00
Daniil Baturin
281dc64d5a Add containers to the list of OPAM dependencies (needed for the new validate-value). 2021-04-18 12:39:10 +03:00
Christian Poessinger
4761fe8118
Kernel: T3318: update Linux Kernel to v5.4.113 2021-04-17 23:35:37 +02:00
Christian Poessinger
6ee37f34f8 Kernel: T3318: update Linux Kernel to v5.4.112 2021-04-15 08:43:42 +02:00
Christian Poessinger
9080bd7020 Kernel: T3318: update Linux Kernel to v5.4.111 2021-04-11 11:09:01 +02:00
Christian Poessinger
e0a176ba81
Kernel: T3318: update Linux Kernel to v5.4.110 2021-04-07 18:34:07 +02:00
qxmips
8396c12e50 Fixed s3 upload path 2021-04-04 22:25:31 -04:00
Christian Poessinger
1dc49e8c90
Jenkins: use build library from proper branch "equuleus" 2021-04-04 17:20:05 +02:00
Daniil Baturin
dd897050ed T2108: add main and backup minisign release keys.
(cherry picked from commit 68007b92d605d0205b013ffe1881c08649c0153a)
2021-04-04 10:44:08 +02:00
Christian Poessinger
e6e4c66094 Jenkins: lib: sync library with "current" branch 2021-04-03 16:44:21 +02:00
Christian Poessinger
a5ee43596d Jenkins: do not fail fast on parallel build errors 2021-04-03 16:22:16 +02:00
Christian Poessinger
772c546380 packages: add minisign
(cherry picked from commit cb2659c88c9166bec8088368211db42fa82b9129)
2021-04-03 14:13:06 +02:00
Christian Poessinger
1b8d035faa Testsuite: extend QEMU interactions
* Change the way how networking is setup to ensure that the network interface
  inside the QEMU gues is actually u/U instead of u/D
* Use common base MAC address
* Run "show interfaces" after installation to check all requirements are met

(cherry picked from commit f04127aedb9fa4aac6fad5364c9cefe42cd4bbad)
2021-04-03 14:05:08 +02:00
Christian Poessinger
0051308fdb Jenkins: place QEMU image build after tests 2021-04-03 12:23:13 +02:00
Christian Poessinger
4456050d44
Jenkins: no longer build arm64 version, development is done on current branch 2021-04-03 12:12:35 +02:00
Christian Poessinger
e4a953f8e8 Kernel: T3318: update Linux Kernel to v5.4.109 2021-03-31 20:53:15 +02:00
Christian Poessinger
56ecc5b821 systemd: services: disable sendmail
(cherry picked from commit 700f566000245a078147a59ada9889d598cad42c)
2021-03-27 15:14:57 +01:00
Christian Poessinger
ed19a11152 Jenkins: add build option for AWS S3 snapshot bucket upload
(cherry picked from commit 222a7d7f478bc61b2b6f56f77273fa23b31d8c82)
2021-03-26 19:33:37 +01:00
Christian Poessinger
7e104dbc56 Jenkins: upload ISO image to folder named after the Git branch instead of rolling
By default all uploads are uploaded to the "rolling" folder and a symlink for
the latest upload is created. If a 1.3 beta image is build after a 1.4 run -
the resulting "latest-rolling.iso" image will be 1.3 instead of 1.4

(cherry picked from commit 2a50c5e3be873f459d6e854f540d30962ebe3b56)
2021-03-26 19:33:33 +01:00
Christian Poessinger
9e128d4dc1 Jenkins: add build parameter for image upload and smoketests
(cherry picked from commit 3ccfd2bf06c7d11d6244aa1307d5ac2142de0cdb)
2021-03-25 09:03:21 +01:00
Christian Poessinger
2824905861 Kernel: T3318: update Linux Kernel to v5.4.108 2021-03-24 21:32:16 +01:00
Christian Poessinger
fe80f574b8 Jenkins: add parameters to image build
The ISO image build should be able to be parameterised from the outside,
as setting who build the image, and which version number to use.

If nothing is specified, use sane defaults as the current timestand and
autobuild@vyos.net.

(cherry picked from commit e552cf8eb23f6d7fd95461771002b7fb0115d475)
2021-03-24 21:32:16 +01:00
Christian Poessinger
33391442c1 Kernel: T3318: update Linux Kernel to v5.4.106 2021-03-19 16:22:39 +01:00
Christian Poessinger
726ee04bfe Install additional "irqtop" package
(cherry picked from commit ff63cc8cad0e6bfafbccc005427ae3a8efcce8c9)
2021-03-18 07:15:31 +01:00
Cody Brannan
3be456b18c salt: T3373: Upgrade to SaltStack version 3002.5
(cherry picked from commit 4df52dff944d11d898617bad17e2b02f4bd7793b)
2021-03-13 09:16:05 +01:00
Cody Brannan
1fe93ec926 t3372: support public HTTPS repos in live-build
(cherry picked from commit a8f7958a89edaa23285478f53fa833e51fbbb255)
2021-03-13 09:16:00 +01:00
Christian Poessinger
dea439f542 Kernel: T3318: update Linux Kernel to v5.4.105 2021-03-13 09:15:48 +01:00
Christian Poessinger
550e1dcd98 Kernel: T3318: update Linux Kernel to v5.4.104 2021-03-09 21:51:33 +01:00
Christian Poessinger
67eeaccec5 Kernel: T3318: update Linux Kernel to v5.4.102 2021-03-05 21:39:07 +01:00
Christian Poessinger
fe0c7978b5 Kernel: T3318: update Linux Kernel to v5.4.101 2021-02-27 15:38:08 +01:00
DmitriyEshenko
ce88bf4130 T3303: Modify os_release file for changing Welcome message on boot
(cherry picked from commit e218a757616d27a5c31a3c39a175c5e73a376f23)
2021-02-24 21:18:35 +01:00
Christian Poessinger
f4be339392 Kernel: T3318: update Linux Kernel to v5.4.99 2021-02-18 08:41:32 +01:00
Christian Poessinger
11720a63fb Kernel: T3318: update Linux Kernel to v5.4.98 2021-02-17 00:27:29 +01:00
Eshenko Dmitriy
6009179a95 kernel: T3312: Add SolarFlaire kernel modules
(cherry picked from commit 176dd5eeb5c3bebc6d8c5163c982b9b73159b9f5)
2021-02-15 20:50:38 +01:00
Christian Poessinger
e1b71f06d0 Kernel: T3295: update Linux Kernel to v5.4.96 2021-02-08 17:50:36 +01:00
Christian Poessinger
d5abc54c05 Jenkins: only keep ISO images for 14 days
(cherry picked from commit ed2f9b3f39e6ab4b50f19932af38599a8985a82b)
2021-02-05 17:27:02 +01:00
qxmips
e5b0cc7129 Jenkins: run containers with "reuseNode" to stay on the same node
(cherry picked from commit 38fa98af45d6c22d7d876bc724d957d2545d011a)
2021-02-02 22:07:34 +01:00
Christian Poessinger
c8f90e53f3 frr: T3227: import hotfix for frr-reload script to fix rpki issues
(cherry picked from commit c6728db700820fe931c839e629cf92a278517be5)
2021-02-01 20:53:19 +01:00
Christian Poessinger
070e2e77e9 Kernel: also trigger build when "data/defaults.json" changes 2021-01-31 17:39:48 +01:00
Christian Poessinger
1b51a481a4 Kernel: T3276: update Linux Kernel to v5.4.94 2021-01-31 17:27:47 +01:00
Christian Poessinger
b5f7acf9cf Testsuite: use buildin commands over 'openvpn --genkey' raw command
(cherry picked from commit 4188b0f49a88b9881f2a95bc5863270163dcac80)
2021-01-31 12:50:33 +01:00
Christian Poessinger
fd2b3403b5 Testsuite: generate required OpenVPN key(s)
Now all the loaded configs will support OpenVPN based interfaces, too.
All required keys are now generated so the loaded configurations can use:

- /config/auth/ovpn_test_ca.pem
- /config/auth/ovpn_test_server.pem
- /config/auth/ovpn_test_server.key
- /config/auth/ovpn_test_dh.pem
- /config/auth/ovpn_test_site2site.key
- /config/auth/ovpn_test_tls_auth.key

(cherry picked from commit 08d6937f9cbca47b0506086002401baebd021e16)
2021-01-30 16:00:34 +01:00
Christian Poessinger
6811c55410 Testsuite: generate WireGuard default keypair
Now all the loaded configs will support WireGuard interfaces, too. They now cat
refer to the default-keypair to secure the link.

(cherry picked from commit 1bc9b8dda5254eeace6d1c82cf464e98ca362faa)
2021-01-30 16:00:30 +01:00
Christian Poessinger
eb7958f5cf Testsuite: minor code cleanup
(cherry picked from commit 2801efd1014df828643ad5f50ee4a93024981174)
2021-01-30 16:00:26 +01:00
Christian Poessinger
ce088fc89d wide-dhcpv6: T3240: add CI
(cherry picked from commit c72a4f2ddbb977d6055c44275c0341b40618d216)
2021-01-30 09:51:20 +01:00
Brandon Stepler
0b4d319739 Docker: T3240: add wide-dhcpv6 build dependencies
(cherry picked from commit b50c8ff5593a1e8ce85300d92bff09c8448084d6)
2021-01-30 09:50:55 +01:00
Christian Poessinger
a6cb0a0c93 Jenkins: save CPU time and only test using vyos-configd
(cherry picked from commit 37b270bab20d9fc7004d1f06522fcfb4e024732d)
2021-01-25 16:27:38 +01:00
Christian Poessinger
6d179393f7 Kernel: T3243: update Linux Kernel to v5.4.92 2021-01-24 09:57:57 +01:00
Christian Poessinger
b50f19140f Testsuite: increase smoketest timeout as we do more and more tests
(cherry picked from commit c79c13cee6ac86ad68853887a67b93dfe17bdc5b)
2021-01-24 09:37:45 +01:00
Christian Poessinger
08067578ec Kernel: add *.tar.xz to .gitignore
(cherry picked from commit 32d564eb3c3ba1b9dbc2e366e8ba7cc56d145e22)
2021-01-23 10:55:05 +01:00
Christian Poessinger
2e7aa7366c Kernel: Firmware: 5.4 Kernel has modules in a different path 2021-01-19 07:15:49 +01:00
Christian Poessinger
7a40369f8b Kernel: T3218: remove unavailable RSS parameter from intel driver options
This is a roundup commit to ("160b3a9 - Kernel: T3218: drop dependency on Intel
out-of-tree modules") as the in-tree drivers do not support this option, they
always use the maximum available number.

(cherry picked from commit f97f4aca4066e288b2cb13678244ea25c16602ee)
2021-01-17 20:37:20 +01:00
Christian Poessinger
ab6d276326 Kernel: T3223: update linux-firmware to 20201218 2021-01-16 13:04:42 +01:00
Christian Poessinger
73bb19058e Kernel: T3223: update Linux Kernel to v5.4.89 2021-01-16 13:02:08 +01:00
Christian Poessinger
80b093752a Kernel: T3223: retrieve firmware information from Kernel module binary itself
(cherry picked from commit 062d7e0868d7918d386c11fb4e97f5019c2f66ce)
2021-01-16 13:01:46 +01:00
Christian Poessinger
180e720cfc Jenkins: retrive debian repo server via global variable
(cherry picked from commit 76f293633fb5feefcc7acd74d4edeea69b60ea5c)
2021-01-15 17:02:05 +01:00
Christian Poessinger
160b3a9de4 Kernel: T3218: drop dependency on Intel out-of-tree modules 2021-01-14 19:34:34 +01:00
Christian Poessinger
d04e31c9e5 live-build: APT default release is "equuleus" 2021-01-10 21:14:32 +01:00
Christian Poessinger
ba0b01830a iproute2: re-set version to 5.4.0
Commit aa8cb76979 ("Jenkins: select build library from equuleus branch")
accidently pushed the version of the iproute2 package to a non buildable
version.

Version was re-set to match the Kernel version.
2021-01-10 18:02:07 +01:00
Christian Poessinger
d122da3bd6 Docker: vyos-util package requires opem num package
(cherry picked from commit 0ce67af792785679ab1fc07fb2aa59b2288a97b4)
2021-01-10 16:00:36 +01:00
Christian Poessinger
aa8cb76979 Jenkins: select build library from equuleus branch 2021-01-10 15:38:35 +01:00
Christian Poessinger
6d61a39580 Docker: add missing python3-sphinx dependency for vyos-1x
(cherry picked from commit 6897f8b1b1f3e690646c60f7090e3d727be3581e)
2021-01-10 11:07:08 +01:00
Christian Poessinger
30b4da48dc Jenkins: Kernel: extract version from data/defaults.json
No need to specify the kernel version two times, it can be retrieved
from data/defaults.json

(cherry picked from commit 2af09cfd180a4cc86aaca430a1c95d8c4b7a3d9b)
2021-01-10 00:58:57 +01:00
Christian Poessinger
50c5f3669c Jenkins: Kernel: instead of 'git clone' the source use the tarball
This reduces the download and checkout overhead.
2021-01-10 00:31:24 +01:00
Christian Poessinger
a2f580a661 Kernel: T3199: update Linux Kernel to v5.4.88 2021-01-09 18:04:30 +01:00
Christian Poessinger
bdba2aeb7b Jenkins: trigger builds at 0400 hours to not concur with current ISO build 2021-01-09 09:41:12 +01:00
Christian Poessinger
f1ebd94147 Jenkins: rename ISO from rolling to beta 2021-01-08 22:31:31 +01:00
Christian Poessinger
17198b3ff6 Docker: add missing Accel-PPP dependencies
(cherry picked from commit 3ded1cdb3b636450c20985c6e83a5255b5db9e9b)
2021-01-08 22:30:37 +01:00
Christian Poessinger
b65363f3f4 Docker: Linux Kernel depends on rsync
(cherry picked from commit 35fc53ea2645348ef525e6d59044cef90652ccf0)
2021-01-08 21:29:28 +01:00
Christian Poessinger
7ee3836ee7 Docker: fix netfilter build dependencies
(cherry picked from commit 72b507b44fe5858a87ca3f0013f6f0e17b573d8f)
2021-01-08 21:27:57 +01:00
Christian Poessinger
b71a23e26e Docker: fix FRR build dependencies
(cherry picked from commit 9ce186f327603612b3c0fd49104215947eef246c)
2021-01-08 21:01:46 +01:00
Christian Poessinger
679234dbbe Docker: iproute2 has a build dependency on libbsd-dev
(cherry picked from commit fcce4939ed6dcf5cbad72b8a8ba32972a75d3c91)
2021-01-08 20:40:00 +01:00
Christian Poessinger
ac4a3a7b3c Docker: add missing cmake dependency on librtr
(cherry picked from commit 52d7fe9a0531785e2320b99b52ae1474f54047c2)
2021-01-08 20:35:45 +01:00
Christian Poessinger
4a73eefc2f Docker: add wireguard and iproute2 build dependencies
(cherry picked from commit 51c1ea1da3a85caf401735d166fa6dac9effff36)
2021-01-08 20:35:34 +01:00
Christian Poessinger
4f08cc009a Docker: add missing FRR dependency on python3-sphinx
(cherry picked from commit b00025ee86fdf14b0d7c79a90eac23f3950d2770)
2021-01-08 19:08:02 +01:00
Christian Poessinger
8108ce1b3f Docker: properly arrange vyos-build dependencies
(cherry picked from commit de88ecec39b73df8a2b1836b43ed5fba719275d2)
2021-01-08 17:22:49 +01:00
Christian Poessinger
64293ebee3 Docker: vyos-1x has a build-dependency on python3-jinja2
(cherry picked from commit 093505b25f500dbd0691e01c96717081f2385dfa)
2021-01-08 17:22:44 +01:00
Christian Poessinger
248224bbb1 Docker: do not install librtr-doc to avoid pulling in additional dependencies
(cherry picked from commit 5fc508b2dda57652b51702c7eb11d9ca7823108f)
2021-01-08 17:22:39 +01:00
Christian Poessinger
9f4e0bf75f Docker: update OCaml from 4.09.0 -> 4.09.1
This fixes a build with GCC 10 (coming in Debian Bullseye), release notes
available here: https://ocaml.org/releases/4.09.1.html

(cherry picked from commit 9029464252e73c9bee84e2c93c58be5eba29033f)
2021-01-08 17:22:34 +01:00
Christian Poessinger
02b3aede33 Docker: drop dependencies for keepalived
We no longer need to build keepalived on out own, we rely on the Debian
upstream version.

(cherry picked from commit f81c6e53bdf3ac6684daf8dc258b26d635b207cc)
2021-01-08 17:22:29 +01:00
Christian Poessinger
467e88b765 Docker: dependency cleanup for vyos-1x
Most python3 dependencies are set by vyos-1x, use them from that section.

(cherry picked from commit cd633eafe1eb604d384445e7c7f3dd3bd7e7629f)
2021-01-08 17:22:27 +01:00
Christian Poessinger
6a39583c10 Docker: drop installation of dh-systemd
dh-systemd was merged into debhelper in version 9.20160709 [1] and since
stretch, dh-systemd is an empty transitional package.

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=822670

(cherry picked from commit 432f3f96927a54d2f606f34a3c54ea61406379ad)
2021-01-08 17:21:54 +01:00
qxmips
0b46466f18 moved webhost address to vars
(cherry picked from commit b5d36aaafab4c797937eff6488a90b0bb68522d5)
2021-01-08 17:21:43 +01:00
Daniil Baturin
0c5427cfa1 Fix a typo in the README. 2021-01-04 17:40:18 +02:00
Daniil Baturin
380d8d901a Set the branch version number. 2021-01-04 17:39:39 +02:00
107 changed files with 4528 additions and 1181 deletions

View File

@ -1,12 +1,15 @@
<!-- All PR should follow this template to allow a clean and transparent review -->
<!-- Text placed between these delimiters is considered a commend and is not rendered -->
<!-- Text placed between these delimiters is considered a comment and is not rendered -->
## Change Summary
<!--- Provide a general summary of your changes in the Title above -->
## Types of changes
<!--- What types of changes does your code introduce? Put an 'x' in all the boxes that apply. -->
<!--- NOTE: Markdown requires no leading or trailing whitespace inside the [ ] for checking the box, please use [x] -->
<!---
What types of changes does your code introduce? Put an 'x' in all the boxes that apply.
NOTE: Markdown requires no leading or trailing whitespace inside the [ ] for checking
the box, please use [x]
-->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Code style update (formatting, renaming)
@ -16,6 +19,7 @@
## Related Task(s)
<!-- All submitted PRs must be linked to a Task on Phabricator. -->
* https://vyos.dev/Txxxx
## Component(s) name
<!-- A rather incomplete list of components: ethernet, wireguard, bgp, mpls, ldp, l2tp, dhcp ... -->
@ -24,8 +28,14 @@
<!--- Describe your changes in detail -->
## How to test
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!---
Please describe in detail how you tested your changes. Include details of your testing
environment, and the tests you ran. When pasting configs, logs, shell output, backtraces,
and other large chunks of text, surround this text with triple backtics
```
like this
```
-->
## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->

3
.github/reviewers.yml vendored Normal file
View File

@ -0,0 +1,3 @@
---
"**/*":
- team: reviewers

View File

@ -0,0 +1,27 @@
name: "PR Triage"
on:
pull_request_target:
types: [opened, reopened, ready_for_review, locked]
permissions:
pull-requests: write
jobs:
# https://github.com/marketplace/actions/auto-author-assign
assign-author:
runs-on: ubuntu-latest
steps:
- name: "Assign Author to PR"
uses: toshimaru/auto-author-assign@v1.3.5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/shufo/auto-assign-reviewer-by-files
assign_reviewer:
runs-on: ubuntu-latest
steps:
- name: Request review based on files changes and/or groups the author belongs to
uses: shufo/auto-assign-reviewer-by-files@v1.1.4
with:
token: ${{ secrets.PR_ACTION_ASSIGN_REVIEWERS }}
config: .github/reviewers.yml

18
.github/workflows/pr-conflicts.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: "PR Conflicts checker"
on:
pull_request_target:
types: [synchronize]
jobs:
Conflict_Check:
name: 'Check PR status: conflicts and resolution'
runs-on: ubuntu-18.04
steps:
- name: check if PRs are dirty
uses: eps1lon/actions-label-merge-conflict@releases/2.x
with:
dirtyLabel: "state: conflict"
removeOnDirtyLabel: "state: conflict resolved"
repoToken: "${{ secrets.GITHUB_TOKEN }}"
commentOnDirty: "This pull request has conflicts, please resolve those before we can evaluate the pull request."
commentOnClean: "Conflicts have been resolved. A maintainer will review the pull request shortly."

View File

@ -8,6 +8,81 @@ review this contribution guideline.
The following paragraphs are an excerpt from our Documentation.
## Submit a Patch
Patches are always more than welcome. To have a clean and easy to maintain
repository we have some guidelines when working with Git. A clean repository
eases the automatic generation of a changelog file.
A good approach for writing commit messages is actually to have a look at the
file(s) history by invoking git log path/to/file.txt.
### Prepare patch/commit
In a big system, such as VyOS, that is comprised of multiple components, its
impossible to keep track of all the changes and bugs/feature requests in ones
head. We use a bugtracker known as Phabricator for it (“issue tracker” would
be a better term, but this one stuck).
The information is used in three ways:
* Keep track of the progress (what we have already done in this branch and
what we still need to do).
* Prepare automatic release notes for upcoming releases
* Help future maintainers of VyOS (it could be you!) to find out why certain
things have been changed in the codebase or why certain features have been
added
To make this approach work, every change must be associated with a task number
(prefixed with **T**) and a component. If there is no bug report/feature
request for the changes you are going to make, you have to create a Phabricator
task first. Once there is an entry in Phabricator, you should reference its id
in your commit message, as shown below:
* `ddclient: T1030: auto create runtime directories`
* `Jenkins: add current Git commit ID to build description`
If there is no [Phabricator](https://vyos.dev) reference in the
commits of your pull request, we have to ask you to amend the commit message.
Otherwise we will have to reject it.
## Writing good commit messages
The format should be and is inspired by this very good and detailed
[Git documentation](https://git-scm.com/book/ch5-2.html), it is also worth
reading https://chris.beams.io/posts/git-commit/.
This is nothing VyOS specific - it is more a general topic for distributed
development environments.
* A single, short, summary of the commit (recommended 50 characters or less,
not exceeding 80 characters) containing a prefix of the changed component
and the corresponding Phabricator reference e.g. `snmp: T1111:` or
`ethernet: T2222:` - multiple components could be concatenated as in `snmp:
ethernet: T3333`
* In some contexts, the first line is treated as the subject of an email and
the rest of the text as the body. The blank line separating the summary from
the body is critical (unless you omit the body entirely); tools like rebase
can get confused if you run the two together.
* Followed by a message which describes all the details like:
* What/why/how something has been changed, makes everyones life easier when
working with `git bisect`
* All text of the commit message should be wrapped at 72 characters if
possible which makes reading commit logs easier with git log on a standard
terminal (which happens to be 80x25)
* If applicable a reference to a previous commit should be made linking those
commits nicely when browsing the history: `After commit abcd12ef ("snmp:
this is a headline") a Python import statement is missing, throwing the
following exception: ABCDEF`
* Always use the `-x` option to the `git cherry-pick` command when back or
forward porting an individual commit. This automatically appends the line:
`(cherry picked from commit <ID>)` to the original authors commit message
making it easier when bisecting problems.
* Every change set must be consistent (self containing)! Do not fix multiple
bugs in a single commit. If you already worked on multiple fixes in the same
file use git add patch to only add the parts related to the one issue into
your upcoming commit.
## Bug Report/Issue
Issues or bugs are found in any software project. VyOS is not an exception.
@ -51,7 +126,7 @@ also contain information that is helpful for the development team.
### Reporting
In order to open up a bug-report/feature request you need to create yourself
an account on [Phabricator](https://phabricator.vyos.net). On the left
an account on [Phabricator](https://vyos.dev). On the left
side of the specific project (VyOS 1.2 or VyOS 1.3) you will find quick-links
for opening a bug-report/feature request.
@ -66,7 +141,7 @@ for opening a bug-report/feature request.
You have an idea of how to make VyOS better or you are in need of a specific
feature which all users of VyOS would benefit from? To send a feature request
please search [Phabricator](https://phabricator.vyos.net) if there is already a
please search [Phabricator](https://vyos.dev) if there is already a
request pending. You can enhance it or if you don't find one, create a new one
by use the quick link in the left side under the specific project.

230
Jenkinsfile vendored
View File

@ -1,5 +1,5 @@
#!/usr/bin/env groovy
// Copyright (C) 2019 VyOS maintainers and contributors
// Copyright (C) 2019-2021 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
@ -13,118 +13,69 @@
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_
// Only keep the 10 most recent builds
def projectProperties = [
[$class: 'BuildDiscarderProperty',strategy: [$class: 'LogRotator', numToKeepStr: '10']],
]
properties(projectProperties)
@Library('vyos-build@equuleus')_
setDescription()
// Due to long build times on DockerHub we rather build the container by ourself
// and publish it later on.
// create container names on demand
env.DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName()
env.DOCKER_IMAGE_ARM = "vyos/vyos-build:" + getGitBranchName() + "-armhf"
env.DOCKER_IMAGE_ARM64 = "vyos/vyos-build:" + getGitBranchName() + "-arm64"
node('Docker') {
stage('Fetch') {
git branch: getGitBranchName(),
url: getGitRepoURL()
}
stage('Build Docker container') {
parallel (
'x86-64': {
script {
dir('docker') {
sh """
docker build -t ${env.DOCKER_IMAGE} .
"""
if ( ! isCustomBuild()) {
withDockerRegistry([credentialsId: "DockerHub"]) {
sh "docker push ${env.DOCKER_IMAGE}"
}
stage('Setup Container') {
script {
// create container name on demand
def branchName = getGitBranchName()
// Adjust PR target branch name so we can re-map it to the proper Docker image.
if (isPullRequest())
branchName = env.CHANGE_TARGET.toLowerCase()
if (branchName.equals('master'))
branchName = 'current'
}
}
}
},
// 'armhf': {
// script {
// dir('docker') {
// sh """
// cp Dockerfile armhf/Dockerfile
// cp entrypoint.sh armhf/entrypoint.sh
// sed -i 's#^FROM.*#FROM multiarch/debian-debootstrap:armhf-buster-slim#' armhf/Dockerfile
// docker build -t ${env.DOCKER_IMAGE_ARM} armhf
// """
// if ( ! isCustomBuild()) {
// withDockerRegistry([credentialsId: "DockerHub"]) {
// sh "docker push ${env.DOCKER_IMAGE_ARM}"
// }
// }
// }
// }
// },
'arm64': {
script {
dir('docker') {
sh """
docker build -t ${env.DOCKER_IMAGE_ARM64} --build-arg ARCH=arm64v8/ .
env.DOCKER_IMAGE = 'vyos/vyos-build:' + branchName
"""
if ( ! isCustomBuild()) {
withDockerRegistry([credentialsId: "DockerHub"]) {
sh "docker push ${env.DOCKER_IMAGE_ARM64}"
}
}
}
}
}
)
// Get the current UID and GID from the jenkins agent to allow use of the same UID inside Docker
env.USR_ID = sh(returnStdout: true, script: 'id -u').toString().trim()
env.GRP_ID = sh(returnStdout: true, script: 'id -g').toString().trim()
env.DOCKER_ARGS = '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=' + env.USR_ID + ' -e GOSU_GID=' + env.GRP_ID
env.BASE_VERSION = '1.3-stable-'
}
}
}
pipeline {
options {
disableConcurrentBuilds()
timeout(time: 120, unit: 'MINUTES')
parallelsAlwaysFailFast()
timestamps()
agent {
docker {
label "Docker"
args "${env.DOCKER_ARGS}"
image "${env.DOCKER_IMAGE}"
alwaysPull true
reuseNode true
}
}
triggers {
cron('H 2 * * *')
cron('H 4 * * *')
}
agent {
dockerfile {
filename 'Dockerfile'
dir 'docker'
args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006'
}
parameters {
string(name: 'BUILD_BY', defaultValue: 'autobuild@vyos.net', description: 'Builder identifier (e.g. jrandomhacker@example.net)')
string(name: 'BUILD_VERSION', defaultValue: env.BASE_VERSION + 'ISO8601-TIMESTAMP', description: 'Version number (release builds only)')
booleanParam(name: 'BUILD_PUBLISH', defaultValue: false, description: 'Publish this build to downloads.vyos.io and AWS S3')
booleanParam(name: 'BUILD_SMOKETESTS', defaultValue: true, description: 'Include Smoketests in ISO image')
booleanParam(name: 'BUILD_SNAPSHOT', defaultValue: false, description: 'Upload image to AWS S3 snapshot bucket')
}
options {
disableConcurrentBuilds()
timeout(time: 180, unit: 'MINUTES')
timestamps()
buildDiscarder(logRotator(numToKeepStr: '20'))
}
stages {
stage('Build ISO') {
when {
beforeOptions true
beforeAgent true
// Do not run ISO build when the Docker container definition or the build pipeline
// library changes as this has no direct impact on the ISO image.
not { changeset "**/docker/*" }
not { changeset "**/vars/*" }
not { changeset "**/packages/*" }
// Only run ISO image build process of explicit user request or
// once a night triggered by the timer.
anyOf {
triggeredBy 'TimerTrigger'
triggeredBy cause: "UserIdCause"
@ -136,13 +87,20 @@ pipeline {
def commitId = sh(returnStdout: true, script: 'git rev-parse --short=11 HEAD').trim()
currentBuild.description = sprintf('Git SHA1: %s', commitId[-11..-1])
def CUSTOM_PACKAGES = ''
if (params.BUILD_SMOKETESTS)
CUSTOM_PACKAGES = '--custom-package vyos-1x-smoketest'
def VYOS_VERSION = params.BUILD_BY
if (params.BUILD_VERSION == env.BASE_VERSION + 'ISO8601-TIMESTAMP')
VYOS_VERSION = env.BASE_VERSION + sh(returnStdout: true, script: 'date -u +%Y%m%d%H%M').toString().trim()
sh """
./configure \
--build-by autobuild@vyos.net \
--debian-mirror http://ftp.us.debian.org/debian/ \
--build-by "${params.BUILD_BY}" \
--debian-mirror http://deb.debian.org/debian/ \
--build-type release \
--version 1.3-rolling-\$(date +%Y%m%d%H%M) \
--custom-package "vyos-1x-smoketest"
--version "${VYOS_VERSION}" ${CUSTOM_PACKAGES}
sudo make iso
"""
@ -152,9 +110,12 @@ pipeline {
}
}
}
stage('QEMU') {
stage('Test') {
when {
expression { return params.BUILD_SMOKETESTS }
}
parallel {
stage('Smoketests without vyos-configd') {
stage('Smoketests') {
when {
expression { fileExists 'build/live-image-amd64.hybrid.iso' }
}
@ -162,14 +123,6 @@ pipeline {
sh "sudo make test"
}
}
stage('Smoketests with vyos-configd') {
when {
expression { fileExists 'build/live-image-amd64.hybrid.iso' }
}
steps {
sh "sudo make testd"
}
}
stage('Smoketests with vyos-configd and arbitrary config loader') {
when {
expression { fileExists 'build/live-image-amd64.hybrid.iso' }
@ -178,63 +131,70 @@ pipeline {
sh "sudo make testc"
}
}
stage('Build QEMU image') {
stage('Smoketests for RAID-1 system installation') {
when {
expression { fileExists 'build/live-image-amd64.hybrid.iso' }
}
steps {
sh "sudo make qemu"
sh "sudo make testraid"
}
}
}
}
}
post {
always {
archiveArtifacts artifacts: '**/build/vyos-*.iso, **/build/vyos-*.qcow2',
allowEmptyArchive: true
}
success {
script {
// only deploy ISO if build from official repository
if (isCustomBuild())
return
files = findFiles(glob: 'build/vyos*.iso')
if (files) {
// publish build result, using SSH-dev.packages.vyos.net Jenkins Credentials
sshagent(['SSH-dev.packages.vyos.net']) {
dir('build') {
// build up some fancy groovy variables so we do not need to write/copy
// every option over and over again!
def ARCH = sh(returnStdout: true, script: "dpkg --print-architecture").trim()
def ISO = sh(returnStdout: true, script: "ls vyos-*.iso").trim()
def SSH_DIR = '/home/sentrium/web/downloads.vyos.io/public_html/rolling/' + getGitBranchName() + '/' + ARCH
def SSH_OPTS = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
def SSH_REMOTE = 'khagen@10.217.48.113'
// only deploy ISO if requested via parameter
if (! params.BUILD_PUBLISH)
return
// No need to explicitly check the return code. The pipeline
// will fail if sh returns a non 0 exit code
sh """
sha256sum ${ISO} > ${ISO}.sha256
ssh ${SSH_OPTS} ${SSH_REMOTE} -t "bash --login -c 'mkdir -p ${SSH_DIR}'"
ssh ${SSH_OPTS} ${SSH_REMOTE} -t "bash --login -c 'find ${SSH_DIR} -type f -mtime +28 -exec rm -f {} \\;'"
scp ${SSH_OPTS} -r ${ISO} ${ISO}.sha256 ${SSH_REMOTE}:${SSH_DIR}/
ssh ${SSH_OPTS} ${SSH_REMOTE} -t "bash --login -c '/usr/bin/make-latest-rolling-symlink.sh'"
"""
files = findFiles(glob: 'build/vyos*.iso')
// Publish ISO image to daily builds bucket
if (files) {
// Publish ISO image to snapshot bucket
if (files && params.BUILD_SNAPSHOT) {
withAWS(region: 'us-east-1', credentials: 's3-vyos-downloads-rolling-rw') {
s3Upload(bucket: 's3-us.vyos.io', path: 'snapshot/' + params.BUILD_VERSION + '/', workingDir: 'build', includePathPattern: 'vyos*.iso')
}
} else {
// Publish build result to AWS S3 rolling bucket
withAWS(region: 'us-east-1', credentials: 's3-vyos-downloads-rolling-rw') {
s3Upload(bucket: 's3-us.vyos.io', path: 'rolling/' + getGitBranchName() + '/',
workingDir: 'build', includePathPattern: 'vyos*.iso')
s3Copy(fromBucket: 's3-us.vyos.io', fromPath: 'rolling/' + getGitBranchName() + '/' + files[0].name,
toBucket: 's3-us.vyos.io', toPath: getGitBranchName() + '/vyos-rolling-latest.iso')
}
}
// Upload to Amazon S3 storage
// Trigger GitHub action which will re-build the static community website which
// also holds the AWS download links to the generated ISO images
withCredentials([string(credentialsId: 'GitHub-API-Token', variable: 'TOKEN')]) {
sh '''
curl -X POST --header "Accept: application/vnd.github.v3+json" \
--header "authorization: Bearer $TOKEN" --data '{"ref": "production"}' \
https://api.github.com/repos/vyos/community.vyos.net/actions/workflows/main.yml/dispatches
'''
}
}
// Publish ISO image to snapshot bucket
if (files && params.BUILD_SNAPSHOT) {
withAWS(region: 'us-east-1', credentials: 's3-vyos-downloads-rolling-rw') {
s3Upload(bucket: 's3-us.vyos.io', path: 'rolling/',
s3Upload(bucket: 's3-us.vyos.io', path: 'snapshot/',
workingDir: 'build', includePathPattern: 'vyos*.iso')
s3Copy(fromBucket: 's3-us.vyos.io', fromPath: 'rolling/' + files[0].name,
toBucket: 's3-us.vyos.io', toPath: 'rolling/vyos-rolling-latest.iso')
}
}
}
}
failure {
archiveArtifacts artifacts: '**/live-image-amd64.hybrid.iso',
allowEmptyArchive: true
}
cleanup {
echo 'One way or another, I have finished'
// the 'build' directory got elevated permissions during the build

65
Jenkinsfile.docker Normal file
View File

@ -0,0 +1,65 @@
#!/usr/bin/env groovy
// Copyright (C) 2019-2021 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
setDescription()
pipeline {
agent none
options {
disableConcurrentBuilds()
timeout(time: 240, unit: 'MINUTES')
timestamps()
buildDiscarder(logRotator(numToKeepStr: '20'))
}
stages {
stage('Build containers') {
when {
beforeOptions true
beforeAgent true
// Only run ISO image build process of explicit user request or
// once a night triggered by the timer.
anyOf {
changeset pattern: "**/docker/*"
changeset pattern: "**/Jenkinsfile.docker"
triggeredBy cause: "UserIdCause"
}
}
parallel {
stage('x86_64') {
agent {
label "ec2_amd64"
}
steps {
script {
DOCKER_IMAGE = "vyos/vyos-build:" + getGitBranchName()
sh "docker build --no-cache --tag ${DOCKER_IMAGE} docker"
if (! isCustomBuild()) {
withDockerRegistry([credentialsId: "DockerHub"]) {
sh "docker push ${DOCKER_IMAGE}"
}
}
}
}
}
}
}
}
}

32
LICENSE.artwork Normal file
View File

@ -0,0 +1,32 @@
# The spirit
VyOS is free (as in freedom) software. We keep the source code and the build tools freely-licensed
and available to everyone to inspect, modify, and distribute.
The goal of VyOS is to create a network operating system available to everyone who needs it.
We welcome contributions from all community members and we are happy to share our work on LTS releases
with contributors. We also don't require contributors to give us exclusive rights to their contributions,
and VyOS source code belongs to the entire community.
However, success of a project and its ability to receive funding through commercial services
rests on the reputation of its maintainers.
And the "pay for binaries" LTS release model only works if access to images is actually restricted
to those who support the project by purchasing a subscription or contributing.
We cannot let other people and organizations exploit our reputation for gain or put it at risk
by distributing modified images with VyOS branding, or compromise the LTS business model
by redistributing pre-built images meant for subscription holders.
We enforce that through trademarks and copyrighted artwork.
Use and distribution of pre-built LTS images is governed by a EULA you can find in /usr/share/doc/vyos/EULA
on the live image and in installed systems.
Self-built images can be freely distributed, but only if you replace the branding with yourn own,
that is, replace all artwork files that contain the VyOS logo and all end-user-visible mentions of the VyOS name.
# The letter
VyOS is a registered trademarks in the United States, countries of the European Union, and other countries.
The copyright to the artwork files that contain the VyOS logo, such as data/live-build-config/includes.binary/isolinux/splash.png
belongs to Sentrium S.L. and affiliated, all rights reserved.

View File

@ -1,5 +1,7 @@
build_dir := build
SHELL := /bin/bash
.PHONY: all
all:
@echo "Make what specifically?"
@ -221,33 +223,77 @@ vep1400: check_build_config clean prepare
cd ..
@scripts/copy-image
.PHONY: test
.PHONY: edgecore
.ONESHELL:
test:
edgecore: check_build_config clean prepare
@set -e
@echo "It's not like I'm building this specially for you or anything!"
mkdir -p build/config/includes.chroot/lib/udev/rules.d/
cp tools/vendors_udev/64-vyos-SAF51015I-net.rules build/config/includes.chroot/lib/udev/rules.d/
cp tools/vendors_udev/64-vyos-SAF51003I-net.rules build/config/includes.chroot/lib/udev/rules.d/
cd $(build_dir)
lb build 2>&1 | tee build.log
cd ..
@scripts/copy-image
.PHONY: aaeon
.ONESHELL:
aaeon: check_build_config clean prepare
@set -e
@echo "It's not like I'm building this specially for you or anything!"
mkdir -p build/config/includes.chroot/lib/udev/rules.d/
cp tools/vendors/aaeon/64-vyos-aaeon*net.rules build/config/includes.chroot/lib/udev/rules.d/
cd $(build_dir)
lb build 2>&1 | tee build.log
cd ..
@scripts/copy-image
.PHONY: xcp-ng-iso
.ONESHELL:
xcp-ng-iso: check_build_config clean prepare
@set -e
@echo "It's not like I'm building this specially for you or anything!"
sed -i 's/vyos-xe-guest-utilities/xe-guest-utilities/g' $(build_dir)/config/package-lists/vyos-x86.list.chroot
cd $(build_dir)
set -o pipefail
lb build 2>&1 | tee build.log; if [ $$? -ne 0 ]; then exit 1; fi
cd ..
@scripts/copy-image
exit 0
.PHONY: checkiso
.ONESHELL:
checkiso:
if [ ! -f build/live-image-amd64.hybrid.iso ]; then
echo "Could not find build/live-image-amd64.hybrid.iso"
exit 1
fi
scripts/check-qemu-install --debug build/live-image-amd64.hybrid.iso
.PHONY: test
.ONESHELL:
test: checkiso
scripts/check-qemu-install --debug --uefi build/live-image-amd64.hybrid.iso
.PHONY: test-no-interfaces
.ONESHELL:
test-no-interfaces: checkiso
scripts/check-qemu-install --debug --no-interfaces build/live-image-amd64.hybrid.iso
.PHONY: testd
.ONESHELL:
testd:
if [ ! -f build/live-image-amd64.hybrid.iso ]; then
echo "Could not find build/live-image-amd64.hybrid.iso"
exit 1
fi
testd: checkiso
scripts/check-qemu-install --debug --configd build/live-image-amd64.hybrid.iso
.PHONY: testc
.ONESHELL:
testc:
if [ ! -f build/live-image-amd64.hybrid.iso ]; then
echo "Could not find build/live-image-amd64.hybrid.iso"
exit 1
fi
testc: checkiso
scripts/check-qemu-install --debug --configd --configtest build/live-image-amd64.hybrid.iso
.PHONY: testraid
.ONESHELL:
testraid: checkiso
scripts/check-qemu-install --debug --configd --raid --configtest build/live-image-amd64.hybrid.iso
.PHONY: clean
.ONESHELL:
clean:

View File

@ -72,7 +72,7 @@ In packages that originate from VyOS the master branch is kept in sync with
last legacy package is gone, we will switch to using the `master` branch and
retire `current`.
Post-1.2.0 branches are named after constellations sorted by from smallest to largest.
Post-1.2.0 branches are named after constellations sorted by area from smallest to largest.
There are 88 of them, here's the [complete list](https://en.wikipedia.org/wiki/IAU_designated_constellations_by_area).
* 1.2.x: `crux` (Southern Cross)

View File

@ -3,14 +3,14 @@
"debian_mirror": "http://deb.debian.org/debian",
"debian_security_mirror": "http://deb.debian.org/debian-security",
"debian_distribution": "buster",
"vyos_mirror": "http://dev.packages.vyos.net/repositories/current",
"vyos_branch": "current",
"kernel_version": "5.4.86",
"vyos_mirror": "http://dev.packages.vyos.net/repositories/equuleus",
"vyos_branch": "equuleus",
"kernel_version": "5.4.255",
"kernel_flavor": "amd64-vyos",
"release_train": "equuleus",
"additional_repositories": [
"deb http://repo.saltstack.com/py3/debian/10/amd64/archive/3002.2 buster main",
"deb http://repo.powerdns.com/debian buster-rec-43 main"
"deb [arch=amd64] https://repo.saltproject.io/py3/debian/10/amd64/3003 buster main",
"deb [arch=amd64] http://repo.powerdns.com/debian buster-rec-48 main"
],
"custom_packages": []
}

View File

@ -6,6 +6,50 @@ Package: ddclient
Pin: release n=bullseye
Pin-Priority: 600
Package: podman
Pin: release n=bullseye
Pin-Priority: 600
Package: libseccomp2
Pin: release n=bullseye
Pin-Priority: 600
Package: conmon
Pin: release n=bullseye
Pin-Priority: 600
Package: containernetworking-plugins
Pin: release n=bullseye
Pin-Priority: 600
Package: runc
Pin: release n=bullseye
Pin-Priority: 600
Package: golang-github-containers-common
Pin: release n=bullseye
Pin-Priority: 600
Package: golang-github-containers-image
Pin: release n=bullseye
Pin-Priority: 600
Package: skopeo
Pin: release n=bullseye
Pin-Priority: 600
Package: initramfs-tools-core
Pin: release n=bullseye
Pin-Priority: 600
Package: initramfs-tools
Pin: release n=bullseye
Pin-Priority: 600
Package: squashfs-tools
Pin: release n=bullseye
Pin-Priority: -10
Package: *
Pin: release n=bullseye
Pin-Priority: -10

View File

@ -22,6 +22,38 @@ Package: wireguard-tools
Pin: release n=buster-backports
Pin-Priority: 600
Package: openvpn
Pin: release n=buster-backports
Pin-Priority: 600
Package: modemmanager
Pin: release n=buster-backports
Pin-Priority: 600
Package: libmbim-glib4
Pin: release n=buster-backports
Pin-Priority: 600
Package: libmm-glib0
Pin: release n=buster-backports
Pin-Priority: 600
Package: libqmi-glib5
Pin: release n=buster-backports
Pin-Priority: 600
Package: libmbim-proxy
Pin: release n=buster-backports
Pin-Priority: 600
Package: libqmi-glib5
Pin: release n=buster-backports
Pin-Priority: 600
Package: libqmi-proxy
Pin: release n=buster-backports
Pin-Priority: 600
Package: *
Pin: release n=buster-backports
Pin-Priority: -10

View File

@ -1,5 +1,4 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBFV2/GwBEADD4oJuwcLkYZD6R+PM0zKdZ04owicJ9e1nTbBb8OA+92TI0cJY
8XGpjEJBRECOMJi9Gr6p3QxgZX1IQbiB/RJgRN0BYTZJ6BKobJAlSNsZBVH4wt/F
@ -13,18 +12,18 @@ yt1K0ow4M54woB/68cMy0UB6cA8uOHscRObau3T3UB0ohsEPF7KYAqOKfKP0irV+
Ys6tR0KI/TeHqrqKhCA9PGOpOmqJaibt5GqFTc3Dp4U19njMmh4eboki8EwS6DNy
4HD76dFz2jkSQ74uB/X+nxuFEVRKS54q4aeg83NL5lnsD8TWdhTui4mURQARAQAB
tDxQb3dlckROUyBSZWxlYXNlIFNpZ25pbmcgS2V5IDxwb3dlcmRucy5zdXBwb3J0
QHBvd2VyZG5zLmNvbT6JAj4EEwECACgFAlV2/GwCGwMFCQ8JnAAGCwkIBwMCBhUI
AgkKCwQWAgMBAh4BAheAAAoJEBsMYgX9OA+75QYQAJ7a3rZiTmBJkYfDYbZGOcJj
tIgWj5ieyIHjaG1kR3setK1GbYrd7dkeHuWIT8FCO/mQwrKTlxEd+Vj5a79Bpu0D
de1MRi7jTIb/Qrge532Pnk5T7qFjJWfvTWhpSV9XDwHR216aByuHZ9gAJt92hgo5
eSXHPpwbi+qAdymndUswFBHY0kLNpIYAa2mZcSNbaI/RFNYPOM/aqDMcpQ2s1Rf1
c8iTPewf04jlNd75M59AAbnpdoFiCKbV+Q8oeUNxRGhHCQgcTaWhT5vdF2pXP1jb
rVykPxN7U5zTu03m/qbUCKg9Pqkhr79a2XNIpcGHhsp58B6dJdBPhXT/tFXnVpY0
wZHGGlBVhZzC1Qdq58ilyQ2qfIci2sjMoS62lAffemb88CyoQ2UadhNKZTn93Ogo
lmW1txqN7UU7hUBxwdztw+Pgf7V+ADwkPHnSsNLupkZ7QUOl2i1kPwgcnwHLPFoD
bYDteCtqcVVCY5v3OC95jGJ4bqwgIIeQ5kloKY2pRLeNedbCHbGc6rVjX5X0K2zt
F7/dWOklI1Ox4Y+Vv0Ln7u3BvSyl5jWXWzH2V6q3ff7NKVro3keZmgTzcBwJEv/z
p40ds9f2LTKJX4DajyAF2Z+j79obMYwKo0w+Vy36QrO8TlKk+ZU/6vcFfVdEoCtv
d5a03QgyYgMX0WW8Smam
=BY4B
QHBvd2VyZG5zLmNvbT6JAlUEEwEKAD8CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4B
AheAFiEEn6qlV36Pz2IJPQNsGwxiBf04D7sFAmSBbicFCRSuDDsACgkQGwxiBf04
D7s/HRAAooP+NzYZnxr8pynTZxCK2yGTwb8kuDVLfBYNibtHHXdHQZ5qhxhGfmI/
rtnAjQS3SCzwwvAyK6Y5XU7z5ahctnEKaN+J43ve/nP5e9Aq15ioE72gLawg9IEU
I8e+7FL/WF+feQQo/8dhmqx4inOlOSb+kx9CCbSvA9Mxb+dDvf9dKBmTj/22uxQG
oeVBnj5TK4XCSmIiNZC3phHJWuL38pFUKYsOMDpRg1VUkgRPqc/9n1iWod2QkblU
ynpL74SAag2HG5zzbvknqWlgrNAqjMZjx2V/DKTdTTEeqo2jq1eWinoOv79vZlH7
L8kOyVPKMotQQdnp7n+Hs/FEHdyBV8OApGb62lF2xElDXnX+EertforubqloE46k
KcAzlylJKqIr1DGb/2VbpZUOllr8Y4aFB6yU1CL9S7MF5GTjsG9LmmUDbhHw8v4b
v3r7EmRN5AzBMhIDpNb3cDi8a83IztcfrUQlbzu4h4YU670t1+OTJ5KgwL6Mdr+1
TMiPJg5Y2ZfTVhi82hJDBCHzaOunyjXcU+pgMEl4YBNUsnFrkvBV2S7lLCJi5aDA
scFMb1hGMVeDFvd9sZg520PekP1Tejj+KjKXdWGi5xAT8M3MlIHJKV2mVLGuirx4
aOLHBOKR3n/8SGXuUuVIxmeF5mzdZuyfxn4lz4EXTTQ6J5fFX78=
=/3of
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,3 @@
Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

View File

@ -1,53 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
mQINBF0/MrsBEADLSj4PdgHsr4FblWqQmmZD32J3EVlXrBIwi0zT1RN6V6vA81xx
Qe8XNm6LXVB9kjH9Qv+MwIWWOkTYGCDg2oiIAKPRnJfKisDo4Ax3a1j2YOF6Ud2n
t1bdDfSvnMnEITnMwa+BHKx3QeBoVG/8zhMeHjXy0QwHUIdKMyrX8M0JWY/sqLlv
HvzEaB3PEMFGFhuJ3Dh/ZxquVVuSS2GPRyTpLTqrPSH9jG8hf8YFWBE+CHbnclZc
4NKlI5Q5yrqrUE7zGWgg3O75o6xlJpjI2TJXPPYU6llCNQi/AUIB3R34okMdyYmP
dzaHBXeA+a5glikv5i0ysJgfZ/hvZgayZdAvqIxQxjzvKebmqUutay7LhgjKGRnC
vdAAQ1LbkqPvbBN1oaElRiTUR6bekTFd/M8x3DWPHc0xkNps6f4sEoiFkujpsl26
uGlBhf59yFzI/XhjT/04pUWa3myFhGWT4WSw8cf3o/47/CiL4TefOBTY2vSSub7V
nekDG6H75i9szMMQGzry71+RzYMOWkUnnnQ6wjpHuce42zU7wKUdl2+Wrr+g2/cK
NKFvHRmGLVOpcabDawWi08hHr+J6Gje9PCePfY4x0p6Idjz5YW4Q1D/XSDZZ3nni
akhMO1onHLolY7jstdexhSSi7nS9bDAdnHlL7e/hJemF5G0IvLlkaXYIpQARAQAB
tDJWeU9TIG1haW50YWluZXJzIChwYWNrYWdlIHNpZ25pbmcpIDxwa2dzQHZ5b3Mu
bmV0PokCOQQTAQIAIwUCXT8yuwIbAwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheA
AAoJELK9zt4uv5wGFk4P/3MUhejAJrkMy8EC21P74yCxpZ8RfahML/hIy8+13mWd
480eSGrZr+mEk7pN4T+5cOV4gO9gsKlZ+9zvP8PjRqrHhdDWnA+6GZSMmwvV5C+s
DDop3Wa5z6u5SXwultAEzssNtmVreXhGrB/gkpx6NsAZz9TbwVCOyfFu5di2Oued
ItL6IhkLBIbOmJX1X5CD3AvXIKcRwp7L3mFYP+UE5/c3OFmIK5P1J3vvHRPQqHls
BOPs7dMowfCQfNTUyUWTG74gPo9wHCnuE6QnO5b/j1dPKgz5058bK+NMFgLLdw6X
pb8Z7CvQPSLr5o2KfP+LsC7Nyz4tFQukJvidZdQ/uYQ38SDXsLbmlqnQWDCtYMzu
j225frdkvymwvLrroVWGfbJI2Bd+u3VoQmLdMdddnSe/+oKoh2/xBueWH/O6d4F4
br+HNbhxaxhhM2JuPXB7mQTDyzl4RhD8JixV6YgjWo1/X8wfpJdB/utTbiwLdhIH
q2gdI3sxDCikapQWEhHWAgW4azhzXXvo8RTwNWXtck2DBsQxsn4lANvcWwJ7fRD5
FDgIcJJ+rZrA9NT1sihSjxvUWAmByOSWwdWQRm8O86tFjqm9mJ5ppIYLX5weMa6L
przxbm85y5DZeeuxo297YHGbrfeRm7ko/yB+DFdnLirnblK5JI4RL94AwZjad879
uQINBF0/MrsBEACmKylWG6GC+EPn+x01vA3tVDyyDcOxaRevCvCYEINv7yn7Ajc3
ZaWqqNRfZheOU5hUVJjW6cv7xqaWIn9J/7vatmdeX8H1cVWpSk/e1QT1Fop7I71e
4skDn8YI6JIZgFBrqe1O3YHOQDZbMO9zR5jNpVD7XXLyGsRvjnkH/ybugBeiVCqt
7x2I8OnDQggFnBrishMjVrEmBAduE3JICC1IbCCtVG67h07E/BC7XJVgME8Hvfwl
EBTo8Y6CWcrsJZfAQKU+3wi5feFVLIbhNceiGcxmi7uJML+hGoSf92Pmn7i9p5su
ywy4XF+aWvd4R3CMYywOiukB3rItic7gp0tpcMK7AwessGqvD/luz2cNY1IqDKak
w7jGbGUT54zKO3tpt73dYGyf3SUHQ9aNAaGuSxjq/c9v9X4KpzmAi82rt4wSkDVa
/5SkxsU9aP6lql2MrZm//Pj3hjyipTLUFhndbjeJDgBRROMJdokNkFIIaweJGAg2
wNwBC6HRIYXLyOsV+Azf1gqSpCEqdKVLJkBduuChtd7N9xoUahag2yya+ujwpcN6
nlmnhZt+yfgi0uO2cPmsof9PkJi+cb44IAgkvG96Zj2JbLHSlGipyYTHLYS46RC4
CkaF3DSwDXVU+lBqJz+WkOywpMGUKtZwPbpy7ZJVf2JL8Rf0D95sIaeICwARAQAB
iQIfBBgBAgAJBQJdPzK7AhsMAAoJELK9zt4uv5wG45IP/2YEQzyn2qiqHInLEmXE
R7fefmkiTy925juASQiR/LGOCSfCOnMKBMkyi63XvQuhAALU6RxgK69yLZJYWQ+a
gh+vrrndCzprCM4PohuupknA8nAY+FvC5xoOZVkZ/+vUP344ukxN9Fz1d9oU3G5a
luoA23G1qs7kHJw/xzN1BFNqie2mIzMAOI0Wu0BZxmYmD3Ph0KMbUD08jX6ImDF6
EnqS0VhCgXfWhPBqh5TOG35Fi5ZCmupbgqBJQZg5fLIWS3Hk2qBm70FR3iLdjiYu
w165hBlqcJ2YfvVBKVvMNRVB9BtF7BfzCM3/y/4V82EZ7qQJ+jE30N+/vwrAOrUd
QVlFsC5eYDOkRb3XXhijXZhoKoeXTwY7TGNntavVMYZ2W4EFoX2OH8/2A7KEYhqc
3cjEJ7EoM6hkmm6xmU82oQ8Moll1SgQbkNKlZYDPMs7Ppr4zBJjnVYVcP9e1RLFO
0POJbtG7CCAstcvMu/3Yw7Il/TOGvc3TNBPrkYtriDj+B900W5sEc33iUV9VRAAi
Bkfs0XMSQVIcMdquu2LGfNWBjd/YCZVQ8OzFYoZJeq18oxeZ9/tE4NE3KyUBmqil
5/WicCYtxgxByAvhN5dFn+nPfoEMQ/e9Zhs2ImrrSy12Ehg1swRjAK39NrjySDFT
FhyPysWJ4aNKtAYgVuQguPTt
=rJUC
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,59 +1,36 @@
set default=0
set timeout=10
loadfont $prefix/dejavu-bold-16.pf2
loadfont $prefix/dejavu-bold-14.pf2
loadfont $prefix/unicode.pf2
set gfxmode=auto
insmod all_video
insmod gfxterm
insmod serial
serial --unit=0 --speed=115200
insmod part_msdos
insmod ext2
insmod efi_gop
insmod efi_uga
insmod png
loadfont /boot/grub/dejavu-bold-16.pf2
loadfont /boot/grub/dejavu-bold-14.pf2
loadfont /boot/grub/unicode.pf2
set gfxmode="640x480x16"
set gfxpayload="640x480x16"
terminal_output gfxterm
set splash_img="/isolinux/splash.png"
if [ -e ${splash_img} ]; then
background_image ${splash_img}
fi
terminal_output --append serial
terminal_input serial console
set color_normal=light-gray/black
set color_highlight=white/black
if [ -e /isolinux/splash.png ]; then
# binary_syslinux modifies the theme file to point to the correct
# background picture
set theme=/boot/grub/live-theme/theme.txt
elif [ -e /boot/grub/splash.png ]; then
set theme=/boot/grub/live-theme/theme.txt
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
terminal_output gfxterm
insmod play
play 960 440 1 0 4 440 1
# Live boot
LINUX_LIVE
# You can add more entries like this
# menuentry "Alternate live boot" {
# linux KERNEL_LIVE APPEND_LIVE custom options here
# initrd INITRD_LIVE
# }
# menuentry "Alternate graphical installer" {
# linux KERNEL_GI APPEND_GI custom options here
# initrd INITRD_GI
# }
# menuentry "Alternate textual installer" {
# linux KERNEL_DI APPEND_DI custom options here
# initrd INITRD_DI
# }
# Installer (if any)
LINUX_INSTALL
submenu 'Advanced options...' {
# More installer entries (if any)
LINUX_ADVANCED_INSTALL
# Memtest (if any)
MEMTEST
}

View File

@ -1,10 +0,0 @@
#!/bin/sh
echo I: Rewriting /etc/issue and /etc/issue.net
cat <<EOF > etc/issue
Welcome to VyOS - \n \l
EOF
cat <<EOF > etc/issue.net
Welcome to VyOS
EOF

View File

@ -139,6 +139,7 @@ bb_alternative /usr/bin/renice
bb_alternative /usr/bin/reset
bb_alternative /usr/bin/setkeycodes
bb_alternative /usr/bin/sha1sum
bb_alternative /usr/bin/sha256sum
bb_alternative /usr/bin/sort
bb_alternative /usr/bin/strings
bb_alternative /usr/bin/tail

View File

@ -1,14 +1,14 @@
#!/bin/sh
echo I: Disabling services
systemctl disable exim4.service
systemctl disable sendmail.service
systemctl disable smartd.service
systemctl disable isc-dhcp-server.service
systemctl disable isc-dhcp-relay.service
systemctl disable nfacctd.service
systemctl disable pmacctd.service
systemctl disable sfacctd.service
systemctl disable uacctd.service
systemctl disable lighttpd.service
systemctl disable ssh.service
systemctl disable openvpn.service
systemctl disable lldpd.service
@ -55,6 +55,8 @@ systemctl disable hostapd.service
systemctl disable keepalived.service
systemctl disable ipvsadm.service
systemctl disable telegraf.service
systemctl disable ModemManager.service
systemctl disable pppd-dns.service
echo I: Enabling services
systemctl enable ssh-session-cleanup.service

View File

@ -0,0 +1,5 @@
#!/bin/sh
echo I: Create config directory.
mkdir -p /config

View File

@ -2,6 +2,7 @@
# open-vm-tools settings
import os
import re
vmtools_config = """
@ -10,5 +11,8 @@ vmtools_config = """
"""
with open('/etc/vmware-tools/tools.conf', 'w') as f:
f.write(vmtools_config)
if os.path.isdir('/etc/vmware-tools'):
with open('/etc/vmware-tools/tools.conf', 'w') as f:
f.write(vmtools_config)
else:
print('Open VM Tools not found. Skipping its configuration.')

View File

@ -0,0 +1,13 @@
#!/bin/sh
# The /etc/debian_version file contains the Debian release version number.
#Since VyOS uses image-based upgrade, that file serves no useful purpose for us.
#
# However, security scanners love to jump to conclusions
# and declare an "old Debian version" vulnerable
# without checking if there may not be any packages from that version at all.
# Removing that file is an easy way to get fewer false positives.
echo "I: Deleting the Debian version file"
rm -f /etc/debian_version

View File

@ -36,3 +36,22 @@ with open('/etc/strongswan.d/charon/farp.conf', 'r') as f:
with open('/etc/strongswan.d/charon/farp.conf', 'w') as f:
f.write(farp_conf)
# Add ike-name to logging
charon_logging = """
charon {
syslog {
# prefix for each log message
identifier = charon
# use default settings to log to the LOG_DAEMON facility
daemon {
default = 1
ike_name = yes
}
}
}
"""
with open('/etc/strongswan.d/charon-logging.conf', 'w') as f:
f.write(charon_logging)

View File

@ -1,4 +1,10 @@
#!/bin/bash
# We do not need any documentation on the system. This frees 43MB.
rm -rf /usr/share/doc /usr/share/doc-base /usr/share/docutils
# We do not need any documentation on the system. This frees some space.
# Copyright/licenses files are ignored for deletion
shopt -s extglob
rm -rf /usr/share/doc/*/!(copyright*|README*) /usr/share/doc-base
# We also do not need any manpages on the system since man-binary is missing.
# This also frees some space.
rm -rf /usr/share/man

View File

@ -0,0 +1,12 @@
#!/bin/sh
if ! command -v gpg &> /dev/null; then
echo "gpg binary could not be found"
exit 1
fi
GPG_KEY="/usr/share/vyos/keys/vyos-release.pub.asc"
echo I: Import GPG key
gpg --import ${GPG_KEY}
exit $?

View File

@ -0,0 +1,4 @@
#!/bin/sh
if [ -f /etc/update-motd.d/10-uname ]; then
rm -f /etc/update-motd.d/10-uname
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -14,7 +14,7 @@ esac
# Begin real processing below this line
# include listed modules to initramfs but not load them without the necessity
manual_add_modules igb ixgbe ixgbevf i40e i40evf
manual_add_modules igb ixgbe ixgbevf i40e i40evf ice
# include modules from file (one per line) to initramfs but not load them without the necessity
# add_modules_from_file /tmp/modlist

View File

@ -1 +0,0 @@
options igb RSS=0,0,0,0,0,0,0,0

View File

@ -1 +1 @@
options ixgbe allow_unsupported_sfp=1 RSS=0,0,0,0,0,0,0,0
options ixgbe allow_unsupported_sfp=1

View File

@ -19,9 +19,9 @@ system {
}
}
ntp {
server "0.pool.ntp.org"
server "1.pool.ntp.org"
server "2.pool.ntp.org"
server "time1.vyos.net"
server "time2.vyos.net"
server "time3.vyos.net"
}
console {
device ttyS0 {

View File

@ -0,0 +1,9 @@
Welcome to VyOS!
Check out project news at https://blog.vyos.io
and feel free to report bugs at https://vyos.dev
You can change this banner using "set system login banner post-login" command.
VyOS is a free software distribution that includes multiple components,
you can check individual component licenses under /usr/share/doc/*/copyright

View File

@ -0,0 +1,2 @@
untrusted comment: VyOS release signing key
RWSw63o24QvCadaeW21Vqv6+/uzXUsNOpLlRoLRQd2NJgdOm1k1zdAb3

View File

@ -0,0 +1,2 @@
untrusted comment: VyOS release signing key
RWTR1ty93Oyontk6caB9WqmiQC4fgeyd/ejgRxCRGd2MQej7nqebHneP

View File

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
mQINBFXKsiIBEACyid9PR/v56pSRG8VgQyRwvzoI7rLErZ8BCQA2WFxA6+zNy+6G
+0E/6XAOzE+VHli+wtJpiVJwAh+wWuqzOmv9css2fdJxpMW87pJAS2i3EVVVf6ab
wU848JYLGzc9y7gZrnT1m2fNh4MXkZBNDp780WpOZx8roZq5X+j+Y5hk5KcLiBn/
lh9Zoh8yzrWDSXQsz0BGoAbVnLUEWyo0tcRcHuC0eLx6oNG/IHvd/+kxWB1uULHU
SlB/6vcx56lLqgzywkmhP01050ZDyTqrFRIfrvw6gLQaWlgR3lB93txvF/sz87Il
VblV7e6HEyVUQxedDS8ikOyzdb5r9a6Zt/j8ZPSntFNM6OcKAI7U1nDD3FVOhlVn
7lhUiNc+/qjC+pR9CrZjr/BTWE7Zpi6/kzeH4eAkfjyALj18oC5udJDjXE5daTL3
k9difHf74VkZm29Cy9M3zPckOZpsGiBl8YQsf+RXSBMDVYRKZ1BNNLDofm4ZGijK
mriXcaY+VIeVB26J8m8y0zN4/ZdioJXRcy72c1KusRt8e/TsqtC9UFK05YpzRm5R
/nwxDFYb7EdY/vHUFOmfwXLaRvyZtRJ9LwvRUAqgRbbRZg3ET/tn6JZk8hqx3e1M
IxuskOB19t5vWyAo/TLGIFw44SErrq9jnpqgclTSRgFjcjHEm061r4vjoQARAQAB
tDZWeU9TIE1haW50YWluZXJzIChWeU9TIFJlbGVhc2UpIDxtYWludGFpbmVyc0B2
eW9zLm5ldD6JAjgEEwECACIFAlXKsiICGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4B
AheAAAoJEP0iAoWg/m1+xbgP+QEDYZi5dA4IPY+vU1L95Bavju2m2o35TSUDPg5B
jfAGuhbsNUceU+l/yUlxjpKEmvshyW3GHR5QzUaKGup/ZDBo1CBxZNhpSlFida2E
KAYTx4vHk3MRXcntiAj/hIJwRtzCUp5UQIqHoU8dmHoHOkKEP+zhJuR6E2s+WwDr
nTwE6eRa0g/AHY+chj2Je6flpPm2CKoTfUE7a2yBBU3wPq3rGtsQgVxPAxHRZz7A
w4AjH3NM1Uo3etuiDnGkJAuoKKb1J4X3w2QlbwlR4cODLKhJXHIufwaGtRwEin9S
1l2bL8V3gy2Hv3D2t9TQZuR5NUHsibJRXLSa8WnSCcc6Bij5aqfdpYB+YvKH/rIm
GvYPmLZDfKGkx0JE4/qtfFjiPJ5VE7BxNyliEw/rnQsxWAGPqLlL61SD8w5jGkw3
CinwO3sccTVcPz9b6A1RsbBVhTJJX5lcPn1lkOEVwQ7l8bRhOKCMe0P53qEDcLCd
KcXNnAFbVes9u+kfUQ4oxS0G2JS9ISVNmune+uv+JR7KqSdOuRYlyXA9uTjgWz4y
Cs7RS+CpkJFqrqOtS1rmuDW9Ea4PA8ygGlisM5d/AlVkniHz/2JYtgetiLCj9mfE
MzQpgnldNSPumKqJ3wwmCNisE+lXQ5UXCaoaeqF/qX1ykybQn41LQ+0xT5Uvy7sL
9IwGuQINBFXKsiIBEACg2mP3QYkXdgWTK5JyTGyttE6bDC9uqsK8dc1J66Tjd5Ly
Be0amO+88GHXa0o5Smwk2QNoxsRR41G/D/eAeGsuOEYnePROEr3tcLnDjo4KLgQ+
H69zRPn77sdP3A34Jgp+QIzByJWM7Cnim31quQP3qal2QdpGJcT/jDJWdticN76a
Biaz+HN13LyvZM+DWhUDttbjAJc+TEwF9YzIrU+3AzkTRDWkRh4kNIQxjlpNzvho
9V75riVqg2vtgPwttPEhOLb0oMzy4ADdfezrfVvvMb4M4kY9npu4MlSkNTM97F/I
QKy90JuSUIjE05AO+PDXJF4Fd5dcpmukLV/2nV0WM2LAERpJUuAgkZN6pNUFVISR
+nSfgR7wvqeDY9NigHrJqJbSEgaBUs6RTk5hait2wnNKLJajlu3aQ2/QfRT/kG3h
ClKUz3Ju7NCURmFE6mfsdsVrlIsEjHr/dPbXRswXgC9FLlXpWgAEDYi9Wdxxz8o9
JDWrVYdKRGG+OpLFh8AP6QL3YnZF+p1oxGUQ5ugXauAJ9YS55pbzaUFP8oOO2P1Q
BeYnKRs1GcMI8KWtE/fze9C9gZ7Dqju7ZFEyllM4v3lzjhT8muMSAhw41J22mSx6
VRkQVRIAvPDFES45IbB6EEGhDDg4pD2az8Q7i7Uc6/olEmpVONSOZEEPsQe/2wAR
AQABiQIfBBgBAgAJBQJVyrIiAhsMAAoJEP0iAoWg/m1+niUQAKTxwJ9PTAfB+XDk
3qH3n+T49O2wP3fhBI0EGhJp9Xbx29G7qfEeqcQm69/qSq2/0HQOc+w/g8yy71jA
6rPuozCraoN7Im09rQ2NqIhPK/1w5ZvgNVC0NtcMigX9MiSARePKygAHOPHtrhyO
rJQyu8E3cV3VRT4qhqIqXs8Ydc9vL3ZrJbhcHQuSLdZxM1k+DahCJgwWabDCUizm
sVP3epAP19FP8sNtHi0P1LC0kq6/0qJot+4iBiRwXMervCD5ExdOm2ugvSgghdYN
BikFHvmsCxbZAQjykQ6TMn+vkmcEz4fGAn4L7Nx4paKEtXaAFO8TJmFjOlGUthEm
CtHDKjCTh9WV4pwG2WnXuACjnJcs6LcK377EjWU25H4y1ff+NDIUg/DWfSS85iIc
UgkOlQO6HJy0O96L5uxn7VJpXNYFa20lpfTVZv7uu3BC3RW/FyOYsGtSiUKYq6cb
CMxGTfFxGeynwIlPRlH68BqH6ctR/mVdo+5UIWsChSnNd1GreIEI6p2nBk3mc7jZ
7pTEHpjarwOjs/S/lK+vLW53CSFimmW4lw3MwqiyAkxl0tHAT7QMHH9Rgw2HF/g6
XD76fpFdMT856dsuf+j2uuJFlFe5B1fERBzeU18MxML0VpDmGFEaxxypfACeI/iu
8vzPzaWHhkOkU8/J/Ci7+vNtUOZb
=Ld8S
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -2,3 +2,4 @@ debconf
gpgv
gnupg
vyos-world
vyos-user-utils

View File

@ -1,26 +1,4 @@
nmap
dnsutils
ipcalc
whois
netcat-openbsd
socat
nano
screen
minicom
iftop
lsof
openssh-client
haveged
htop
atop
iotop
aptitude
localepurge
bgpq3
libnss-myhostname
ssl-cert
nginx-light
ndisc6
systemd-sysv
systemd-bootchart
ncurses-term
kitty-terminfo

View File

@ -5,11 +5,7 @@ hyperv-daemons
vyos-xe-guest-utilities
vyos-1x-vmware
vyos-linux-firmware
vyos-intel-i40e
vyos-intel-igb
vyos-intel-ixgbe
vyos-intel-ixgbevf
vyos-intel-iavf
vyos-intel-qat
wireguard-modules
telegraf
vyos-drivers-intel-ice
vyos-drivers-realtek-r8152

View File

@ -1,3 +1,3 @@
{
"current": "1.3"
"equuleus": "1.3"
}

View File

@ -36,7 +36,7 @@ function prepare_apt() {
echo -e "deb ${APT_VYOS_MIRROR}/vyos ${APT_VYOS_BRANCH} main\ndeb ${APT_VYOS_MIRROR}/debian ${APT_VYOS_BRANCH} main\n${APT_ADDITIONAL_REPOS}" > /etc/apt/sources.list.d/vyos.list
fi
if [[ "${RELEASE_TRAIN}" == "equuleus" ]]; then
if [[ "${RELEASE_TRAIN}" == "equuleus" || "${RELEASE_TRAIN}" == "sagitta" ]]; then
echo -e "deb ${APT_VYOS_MIRROR} ${APT_VYOS_BRANCH} main\n${APT_ADDITIONAL_REPOS}" > /etc/apt/sources.list.d/vyos.list
# Add backports repository
echo -e "deb http://deb.debian.org/debian buster-backports main\ndeb http://deb.debian.org/debian buster-backports non-free" >> /etc/apt/sources.list.d/vyos.list
@ -47,7 +47,10 @@ function prepare_apt() {
cat /tmp/*list.chroot >> /etc/apt/sources.list.d/vyos.list
fi
if grep -sq Package /tmp/*.pref.chroot; then
cat /tmp/*pref.chroot >> /etc/apt/preferences.d/10vyos
for pref_file in /tmp/*.pref.chroot; do
cat $pref_file >> /etc/apt/preferences.d/10vyos
echo -e "\n" >> /etc/apt/preferences.d/10vyos
done
fi
# Add GPG keys

View File

@ -1,4 +1,4 @@
# Copyright (C) 2018-2020 VyOS maintainers and contributors
# Copyright (C) 2018-2021 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# in order to easy exprort images built to "external" world
@ -50,6 +50,9 @@ RUN echo "dash dash/sh boolean false" | debconf-set-selections && \
RUN echo -e 'APT::Install-Recommends "0";\nAPT::Install-Suggests "0";' > /etc/apt/apt.conf.d/01norecommends
# We now have Debian Bullseye (11) so cached images require the permit to
# change the releaseinfo from stable -> oldstable
RUN apt-get update --allow-releaseinfo-change
RUN apt-get update && apt-get install -y \
dialog \
apt-utils \
@ -59,6 +62,8 @@ RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
ENV LANG en_US.utf8
RUN apt-get update && apt-get install -y \
bash \
bash-completion \
vim \
vim-autopep8 \
nano \
@ -66,27 +71,12 @@ RUN apt-get update && apt-get install -y \
curl \
sudo \
mc \
build-essential \
pbuilder \
devscripts \
squashfs-tools \
genisoimage \
equivs \
lsb-release \
fakechroot \
libtool \
libapt-pkg-dev \
quilt \
python3-lxml \
python3-setuptools \
python3-nose \
python3-coverage \
python3-sphinx \
python3-pystache \
python3-git \
python3-pip \
python3-psutil \
python3-flake8 \
python3-autopep8 \
flake8 \
pkg-config \
debhelper \
@ -95,6 +85,18 @@ RUN apt-get update && apt-get install -y \
openssh-client \
jq
# Packages needed for vyos-build
RUN apt-get update && apt-get install -y \
build-essential \
python3-pystache \
squashfs-tools \
genisoimage \
fakechroot \
python3-git \
python3-pip \
python3-flake8 \
python3-autopep8
# Syslinux and Grub2 is only supported on x86 and x64 systems
RUN if dpkg-architecture -ii386 || dpkg-architecture -iamd64; then \
apt-get update && apt-get install -y \
@ -102,14 +104,11 @@ RUN if dpkg-architecture -ii386 || dpkg-architecture -iamd64; then \
grub2; \
fi
# Package needed for mdns-repeater
RUN apt-get update && apt-get install -y \
dh-systemd
#
# Building libvyosconf requires a full configured OPAM/OCaml setup
#
RUN apt-get update && apt-get install -y \
debhelper \
libffi-dev \
libpcre3-dev \
unzip
@ -126,24 +125,36 @@ RUN dpkg-reconfigure ca-certificates; \
RUN curl https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh \
--output /tmp/opam_install.sh --retry 10 --retry-delay 5 && \
sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \
opam init --root=/opt/opam --comp=4.09.0 --disable-sandboxing
opam init --root=/opt/opam --comp=4.12.0 --disable-sandboxing
RUN eval $(opam env --root=/opt/opam --set-root) && \
opam pin add pcre https://github.com/mmottl/pcre-ocaml.git#0c4ca03a -y
RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \
pcre re
re
RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \
num \
ctypes.0.16.0 \
ctypes-foreign \
ctypes-build
ctypes-build \
containers \
fileutils
# Build VyConf which is required to build libvyosconfig
RUN eval $(opam env --root=/opt/opam --set-root) && \
opam pin add vyos1x-config https://github.com/vyos/vyos1x-config.git#550048b3 -y
opam pin add vyos1x-config https://github.com/vyos/vyos1x-config.git#51f6402a -y
# Packages needed for libvyosconfig
RUN apt-get update && apt-get install -y \
quilt \
libpcre3-dev \
libffi-dev
# Build libvyosconfig
RUN eval $(opam env --root=/opt/opam --set-root) && \
git clone https://github.com/vyos/libvyosconfig.git /tmp/libvyosconfig && \
cd /tmp/libvyosconfig && git checkout 5138b5eb && \
cd /tmp/libvyosconfig && git checkout f2da09a9 && \
dpkg-buildpackage -uc -us -tc -b && \
dpkg -i /tmp/libvyosconfig0_*_$(dpkg-architecture -qDEB_HOST_ARCH).deb
@ -166,7 +177,7 @@ RUN wget https://salsa.debian.org/jestabro-guest/live-build/commit/63425b3e4f7ad
patch -p1 < /tmp/63425b3e4f7ad3712ced4c9a3584ef9851c0355a.patch && \
dch -n "Applying fix for missing archive keys" && \
dpkg-buildpackage -us -uc && \
sudo dpkg -i ../live-build*.deb
dpkg -i ../live-build*.deb
#
# live-build: building in docker fails with mounting /proc | /sys
@ -182,7 +193,7 @@ RUN wget https://salsa.debian.org/klausenbusk-guest/debootstrap/commit/a9a603b17
patch -p1 < /tmp/a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
dch -n "Applying fix for docker image compile" && \
dpkg-buildpackage -us -uc && \
sudo dpkg -i ../debootstrap*.deb
dpkg -i ../debootstrap*.deb
#
# Install Packer
@ -217,65 +228,103 @@ RUN apt-get update && apt-get install -y \
automake \
cpio
# Packages needed for kernel
# Packages needed for Linux Kernel
# gnupg2 is required by Jenkins for the TAR verification
RUN apt-get update && apt-get install -y \
gnupg2 \
rsync \
libmnl-dev \
libncurses5-dev \
flex \
bison \
libelf-dev \
bc \
kmod \
cpio
# Packages needed for Accel-PPP
RUN apt-get update && apt-get install -y \
liblua5.3-dev \
libssl1.1 \
libssl-dev \
libpcre3-dev
# Packages needed for Wireguard
RUN apt-get update && apt-get install -y \
debhelper-compat \
dkms \
cdbs \
cmake \
elfutils \
libdw-dev \
systemtap-sdt-dev \
libunwind-dev \
libslang2-dev \
python-dev \
libiberty-dev \
binutils-dev \
libnuma-dev \
libbabeltrace-dev \
liblua5.3-dev
pkg-config \
systemd
# Packages needed for iproute2
RUN apt-get update && apt-get install -y \
bison \
debhelper \
flex \
iptables-dev \
libatm1-dev \
libcap-dev \
libdb-dev \
libbsd-dev \
libelf-dev \
libmnl-dev \
libselinux1-dev \
linux-libc-dev \
pkg-config \
po-debconf \
zlib1g-dev
# Prerequisites for building rtrlib
# see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html
RUN apt-get update && apt-get install -y \
graphviz \
doxygen \
cmake \
dpkg-dev \
debhelper \
libssh-dev \
libssl-dev
doxygen
# Build rtrlib release 0.6.3
RUN export RTRLIB_VERSION="0.6.3" && \
RUN export RTRLIB_VERSION="0.6.3" && export ARCH=$(dpkg-architecture -qDEB_HOST_ARCH) && \
wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \
tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \
cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../librtr*_$(dpkg-architecture -qDEB_HOST_ARCH).deb ../librtr*_all.deb
dpkg -i ../librtr0*_${ARCH}.deb ../librtr-dev*_${ARCH}.deb ../rtr-tools*_${ARCH}.deb
# Upgrading to FRR 7.5 requires a more recent version of libyang which is only
# available from Debian Bullseye
RUN echo "deb http://deb.debian.org/debian/ bullseye main" \
> /etc/apt/sources.list.d/bullseye-backports.list && \
> /etc/apt/sources.list.d/bullseye.list && \
apt-get update && apt-get install -y -t bullseye \
libyang-dev \
libyang1; \
rm -f /etc/apt/sources.list.d/bullseye-backports.list
rm -f /etc/apt/sources.list.d/bullseye.list
# Packages needed to build FRR itself
# https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst
# for more info
RUN apt-get update && apt-get install -y \
bison \
chrpath \
debhelper \
flex \
gawk \
install-info \
libc-ares-dev \
libcap-dev \
libjson-c-dev \
libpam0g-dev \
libpcre3-dev \
libpython3-dev \
libreadline-dev \
librtr-dev \
libsnmp-dev \
libssh-dev \
libsystemd-dev \
libyang-dev \
lsb-base \
pkg-config \
python3 \
python3-dev \
python3-pytest \
python3-sphinx \
texinfo
# Packages needed for hvinfo
@ -289,10 +338,13 @@ RUN apt-get update && apt-get install -y \
libzmq3-dev \
python3 \
python3-setuptools \
python3-sphinx \
python3-xmltodict \
python3-lxml \
python3-nose \
python3-netifaces \
python3-jinja2 \
python3-psutil \
python3-coverage \
quilt \
whois
@ -311,9 +363,12 @@ RUN if dpkg-architecture -ii386 || dpkg-architecture -iamd64; then \
cd /tmp/libbpf && git checkout b91f53ec5f1aba2 && cd src && make install; \
fi
# Packages needed for vyos-xe-guest-utilities
RUN apt-get update && apt-get install -y \
golang
# Go required for validators and vyos-xe-guest-utilities
RUN GO_VERSION_INSTALL="1.18.3" ; \
wget -O /tmp/go${GO_VERSION_INSTALL}.linux-$(dpkg-architecture -qDEB_HOST_ARCH).tar.gz https://go.dev/dl/go${GO_VERSION_INSTALL}.linux-$(dpkg-architecture -qDEB_HOST_ARCH).tar.gz ; \
tar -C /opt -xzf /tmp/go*.tar.gz && \
rm /tmp/go*.tar.gz
RUN echo "export PATH=/opt/go/bin:$PATH" >> /etc/bash.bashrc
# Packages needed for ipaddrcheck
RUN apt-get update && apt-get install -y \
@ -362,29 +417,12 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \
libc-ares-dev
# Packages needed for keepalived
RUN apt-get update && apt-get install -y \
autoconf \
debhelper \
libglib2.0-dev \
libjson-c-dev \
libnl-3-dev \
libnl-genl-3-dev \
libpopt-dev \
libsnmp-dev \
libssl-dev \
libnl-nf-3-dev \
libnfnetlink-dev \
libipset-dev \
iptables-dev \
linux-libc-dev \
pkg-config
# Packages needed for Qemu test-suite
# This is for now only supported on i386 and amd64 platforms
RUN if dpkg-architecture -ii386 || dpkg-architecture -iamd64; then \
apt-get update && apt-get install -y \
python3-pexpect \
ovmf \
qemu-system-x86 \
qemu-utils \
qemu-kvm; \
@ -437,14 +475,35 @@ RUN if dpkg-architecture -iarm64; then \
grub-efi-arm; \
fi
# Packages needed for libnftnl
RUN apt-get update && apt-get install -y \
debhelper-compat \
libmnl-dev \
libtool \
pkg-config
# Packages needed for nftables
RUN apt-get update && apt-get install -y \
asciidoc-base \
automake \
bison \
debhelper-compat \
dh-python \
docbook-xsl \
flex \
libgmp-dev \
libjansson-dev \
python3-all
libmnl-dev \
libreadline-dev \
libtool \
libxtables-dev \
python3-all \
python3-setuptools \
xsltproc
# Packages needed for libnetfilter-conntrack
RUN apt-get update && apt-get install -y \
debhelper-compat \
libmnl-dev \
libnfnetlink-dev \
libtool
@ -452,6 +511,7 @@ RUN apt-get update && apt-get install -y \
# Packages needed for conntrack-tools
RUN apt-get update && apt-get install -y \
bison \
debhelper \
flex \
libmnl-dev \
libnetfilter-cthelper0-dev \
@ -463,6 +523,122 @@ RUN apt-get update && apt-get install -y \
automake \
libtool
# Packages needed for wide-dhcpv6
RUN apt-get update && apt-get install -y \
bison \
debhelper \
flex \
libfl-dev \
rsync
# Packages needed for vyos-http-api-tools
RUN apt-get update && apt-get install -y \
dh-virtualenv \
python3-venv
# Packages needed for ocserv
RUN apt-get update && apt-get install -y \
autogen \
libev-dev \
libgnutls28-dev \
libhttp-parser-dev \
liblz4-dev \
libnl-route-3-dev \
liboath-dev \
liboauth-dev \
libopts25-dev \
libpcl1-dev \
libprotobuf-c-dev \
libradcli-dev \
libseccomp-dev \
libtalloc-dev \
nettle-dev \
protobuf-c-compiler \
libgeoip-dev
# Packages needed for keepalived
RUN apt-get update && apt-get install -y \
autoconf \
libglib2.0-dev \
libip4tc-dev \
libipset-dev \
libjson-c-dev \
libnfnetlink-dev \
libnftnl-dev \
libnl-3-dev \
libnl-genl-3-dev \
libnl-nf-3-dev \
libpcre2-dev \
libpopt-dev \
libsnmp-dev \
libssl-dev \
libsystemd-dev \
linux-libc-dev \
pkg-config
# Packages needed for dropbear
RUN apt-get update && apt-get install -y \
debhelper-compat \
dh-exec \
libtomcrypt-dev \
libtommath-dev \
libz-dev
# Packages needed for hostapd (wpa_supplicant)
RUN apt-get update && apt-get install -y \
libdbus-1-dev \
libssl-dev \
libncurses5-dev \
libpcsclite-dev \
libnl-3-dev \
libnl-genl-3-dev \
libnl-route-3-dev \
libreadline-dev \
pkg-config \
docbook-to-man \
docbook-utils
# Packages needed for ocserv
RUN apt-get update && apt-get install -y \
autogen \
debhelper \
freeradius \
gawk \
gnutls-bin \
gperf \
gss-ntlmssp \
haproxy \
iproute2 \
iputils-ping \
libcjose-dev \
libcurl4-gnutls-dev \
libev-dev \
libgnutls28-dev \
libhttp-parser-dev \
libjansson-dev \
libkrb5-dev \
liblz4-dev \
libmaxminddb-dev \
libnl-route-3-dev \
libnss-wrapper \
liboath-dev \
libpam-wrapper \
libpam0g-dev \
libprotobuf-c-dev \
libradcli-dev \
libreadline-dev \
libseccomp-dev \
libsocket-wrapper \
libtalloc-dev \
libuid-wrapper \
nettle-dev \
nuttcp \
pkg-config \
protobuf-c-compiler \
ronn \
tcpdump \
yajl-tools
#
# fpm: a command-line program designed to help you build packages (e.g. deb)
#
@ -471,14 +647,21 @@ RUN apt-get update && apt-get install -y \
ruby-dev \
rubygems \
build-essential
RUN gem install public_suffix -v 4.0.7
RUN gem install --no-document fpm
# Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod
# debmake: a native Debian tool for preparing sources for packaging
RUN apt-get update && apt-get install -y \
debmake \
python3-debian
# Ensure sure all users have access to our OCAM installation
RUN echo "$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc
# Allow password-less 'sudo' for all users in group 'sudo'
RUN echo -e "vyos_bld\tALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vyos_bld && \
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd
# Ensure sure all users have access to our OCAM and Go installation
RUN echo "$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc && \
echo "export PATH=/opt/go/bin:\$PATH" >> /etc/skel/.bashrc
# Cleanup
RUN rm -rf /tmp/*

View File

@ -24,9 +24,12 @@ if ! grep -q $NEW_GID /etc/group; then
fi
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
usermod --append --groups sudo $USER_NAME
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME
export HOME=/home/$USER_NAME
if [ "$(id -u)" == "0" ]; then
exec gosu $USER_NAME "$@"
fi
# Execute process
exec /usr/sbin/gosu $USER_NAME "$@"
exec "$@"

6
packages/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
*.udeb
*.deb
*.dsc
*.buildinfo
*.changes
*.git

6
packages/dropbear/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
dropbear/
*.deb
*.dsc
*.buildinfo
*.changes
*.git

30
packages/dropbear/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,30 @@
// Copyright (C) 2022 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
def pkgList = [
['name': 'dropbear',
'scmCommit': 'debian/2019.78-2',
'scmUrl': 'https://salsa.debian.org/debian/dropbear.git',
'buildCmd': 'cd ..; ./build.sh'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('dropbear', pkgList, null, "**/packages/dropbear/*")

22
packages/dropbear/build.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
CWD=$(pwd)
set -e
SRC=dropbear
if [ ! -d ${SRC} ]; then
echo "Source directory does not exists, please 'git clone'"
exit 1
fi
cd ${SRC}
PATCH_DIR=${CWD}/patches
if [ -d $PATCH_DIR ]; then
for patch in $(ls ${PATCH_DIR})
do
echo "I: Apply patch: ${patch} to main repository"
patch -p1 < ${PATCH_DIR}/${patch}
done
fi
echo "I: Build Debian Package"
dpkg-buildpackage -uc -us -tc -b

View File

@ -0,0 +1,47 @@
From 23f4e8789b1bdcc0442b6d57216e5184c1bd97c8 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Mon, 17 Jan 2022 06:43:26 +0000
Subject: [PATCH] Enable PAM support
---
debian/rules | 2 +-
default_options.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/debian/rules b/debian/rules
index 3e944d8..3a9f7a7 100755
--- a/debian/rules
+++ b/debian/rules
@@ -28,7 +28,7 @@ override_dh_installinit:
dh_installinit -R --name dropbear
override_dh_auto_configure:
- dh_auto_configure -- --disable-bundled-libtom \
+ dh_auto_configure -- --disable-bundled-libtom --enable-pam \
CC='$(CC)' CFLAGS='$(CFLAGS)' $(CONFFLAGS)
override_dh_install:
diff --git a/default_options.h b/default_options.h
index 9000fcc..0db7366 100644
--- a/default_options.h
+++ b/default_options.h
@@ -179,7 +179,7 @@ group1 in Dropbear server too */
/* Authentication Types - at least one required.
RFC Draft requires pubkey auth, and recommends password */
-#define DROPBEAR_SVR_PASSWORD_AUTH 1
+#define DROPBEAR_SVR_PASSWORD_AUTH 0
/* Note: PAM auth is quite simple and only works for PAM modules which just do
* a simple "Login: " "Password: " (you can edit the strings in svr-authpam.c).
@@ -187,7 +187,7 @@ group1 in Dropbear server too */
* but there's an interface via a PAM module. It won't work for more complex
* PAM challenge/response.
* You can't enable both PASSWORD and PAM. */
-#define DROPBEAR_SVR_PAM_AUTH 0
+#define DROPBEAR_SVR_PAM_AUTH 1
/* ~/.ssh/authorized_keys authentication */
#define DROPBEAR_SVR_PUBKEY_AUTH 1
--
2.20.1

View File

@ -15,17 +15,17 @@
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// Using a version specifier library, use 'equuleus' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_
@Library('vyos-build@equuleus')_
def pkgList = [
['name': 'frr',
'scmCommit': 'stable/7.3',
'scmCommit': 'stable/7.5',
'scmUrl': 'https://github.com/FRRouting/frr.git',
'buildCmd': '''cd ..; ./build-frr.sh'''],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('FRRouting', pkgList)
buildPackage('FRRouting', pkgList, null, "**/packages/frr/*")

View File

@ -0,0 +1,41 @@
From 258409cfa05aaa378e4f120dc67fb226465fa829 Mon Sep 17 00:00:00 2001
From: Runar Borge <runar@borge.nu>
Date: Sat, 23 Jan 2021 00:15:41 +0100
Subject: [PATCH] frr-reload: rpki context exiting uses exit and not end
Issue:
The rpki subcontext uses exit instead of end to exit.
This makes issues with frr-reload in the way that frr-reload never exits
rpki context until it reaches the next end statement. this also happens when
parsing the configuration from vtysh.
Signed-off-by: Runar Borge <runar@borge.nu>
---
tools/frr-reload.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/tools/frr-reload.py b/tools/frr-reload.py
index 412cde091..33c4ef5e5 100755
--- a/tools/frr-reload.py
+++ b/tools/frr-reload.py
@@ -452,6 +452,17 @@ end
ctx_keys = []
current_context_lines = []
+ elif (line == "exit" and
+ ctx_keys[0].startswith('rpki')):
+ self.save_contexts(ctx_keys, current_context_lines)
+ log.debug('LINE %-50s: exiting old context, %-50s', line, ctx_keys)
+
+ # Start a new context
+ new_ctx = True
+ main_ctx_key = []
+ ctx_keys = []
+ current_context_lines = []
+
elif line == "exit-vrf":
self.save_contexts(ctx_keys, current_context_lines)
current_context_lines.append(line)
--
2.20.1

View File

@ -0,0 +1,176 @@
From 18b1c3c06eb69c8d10666c40f55be4926f888042 Mon Sep 17 00:00:00 2001
From: zsdc <taras@vyos.io>
Date: Wed, 24 May 2023 20:43:27 +0300
Subject: [PATCH] zebra: Fixes for connected routes
This is a cumulative backport of:
92980561382fc04380414a6e2f6ca6746c2fe5e9
7fb9825cf7e762add68f5108df4eddda1247f198
e3d901f8638dec32eac4c2690912138963ae5a05
---
lib/if.h | 3 ++
zebra/connected.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 75 insertions(+), 1 deletion(-)
diff --git a/lib/if.h b/lib/if.h
index a2a40d095..0c73ab63a 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -393,6 +393,7 @@ struct connected {
#define ZEBRA_IFC_REAL (1 << 0)
#define ZEBRA_IFC_CONFIGURED (1 << 1)
#define ZEBRA_IFC_QUEUED (1 << 2)
+#define ZEBRA_IFC_DOWN (1 << 3)
/*
The ZEBRA_IFC_REAL flag should be set if and only if this address
exists in the kernel and is actually usable. (A case where it exists
@@ -406,6 +407,8 @@ struct connected {
in the kernel. It may and should be set although the address might
not be
usable yet. (compare with ZEBRA_IFC_REAL)
+ The ZEBRA_IFC_DOWN flag is used to record that an address is
+ present, but down/unavailable.
*/
/* Flags for connected address. */
diff --git a/zebra/connected.c b/zebra/connected.c
index 8c4ba163b..fd3fefdd2 100644
--- a/zebra/connected.c
+++ b/zebra/connected.c
@@ -207,6 +207,9 @@ void connected_up(struct interface *ifp, struct connected *ifc)
};
struct zebra_vrf *zvrf;
uint32_t metric;
+ uint32_t count = 0;
+ struct listnode *cnode;
+ struct connected *c;
zvrf = zebra_vrf_lookup_by_id(ifp->vrf_id);
if (!zvrf) {
@@ -219,6 +222,9 @@ void connected_up(struct interface *ifp, struct connected *ifc)
if (!CHECK_FLAG(ifc->conf, ZEBRA_IFC_REAL))
return;
+ /* Ensure 'down' flag is cleared */
+ UNSET_FLAG(ifc->conf, ZEBRA_IFC_DOWN);
+
PREFIX_COPY(&p, CONNECTED_PREFIX(ifc));
/* Apply mask to the network. */
@@ -251,6 +257,29 @@ void connected_up(struct interface *ifp, struct connected *ifc)
metric = (ifc->metric < (uint32_t)METRIC_MAX) ?
ifc->metric : ifp->metric;
+
+ /*
+ * It's possible to add the same network and mask
+ * to an interface over and over. This would
+ * result in an equivalent number of connected
+ * routes. Just add one connected route in
+ * for all the addresses on an interface that
+ * resolve to the same network and mask
+ */
+ for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) {
+ struct prefix cp;
+
+ PREFIX_COPY(&cp, CONNECTED_PREFIX(c));
+ apply_mask(&cp);
+
+ if (prefix_same(&cp, &p) &&
+ !CHECK_FLAG(c->conf, ZEBRA_IFC_DOWN))
+ count++;
+
+ if (count >= 2)
+ return;
+ }
+
rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT,
0, 0, &p, NULL, &nh, 0, zvrf->table_id, metric, 0, 0, 0);
@@ -290,6 +319,8 @@ void connected_add_ipv4(struct interface *ifp, int flags, struct in_addr *addr,
/* If we get a notification from the kernel,
* we can safely assume the address is known to the kernel */
SET_FLAG(ifc->conf, ZEBRA_IFC_QUEUED);
+ if (!if_is_operative(ifp))
+ SET_FLAG(ifc->conf, ZEBRA_IFC_DOWN);
/* Allocate new connected address. */
p = prefix_ipv4_new();
@@ -350,12 +381,15 @@ void connected_down(struct interface *ifp, struct connected *ifc)
.vrf_id = ifp->vrf_id,
};
struct zebra_vrf *zvrf;
+ uint32_t count = 0;
+ struct listnode *cnode;
+ struct connected *c;
zvrf = zebra_vrf_lookup_by_id(ifp->vrf_id);
if (!zvrf) {
flog_err(
EC_ZEBRA_VRF_NOT_FOUND,
- "%s: Received Up for interface but no associated zvrf: %d",
+ "%s: Received Down for interface but no associated zvrf: %d",
__func__, ifp->vrf_id);
return;
}
@@ -363,6 +397,17 @@ void connected_down(struct interface *ifp, struct connected *ifc)
if (!CHECK_FLAG(ifc->conf, ZEBRA_IFC_REAL))
return;
+ /* Skip if we've already done this; this can happen if we have a
+ * config change that takes an interface down, then we receive kernel
+ * notifications about the downed interface and its addresses.
+ */
+ if (CHECK_FLAG(ifc->conf, ZEBRA_IFC_DOWN)) {
+ if (IS_ZEBRA_DEBUG_RIB)
+ zlog_debug("%s: ifc %p, %pFX already DOWN",
+ __func__, ifc, ifc->address);
+ return;
+ }
+
PREFIX_COPY(&p, CONNECTED_PREFIX(ifc));
/* Apply mask to the network. */
@@ -388,6 +433,30 @@ void connected_down(struct interface *ifp, struct connected *ifc)
break;
}
+ /* Mark the address as 'down' */
+ SET_FLAG(ifc->conf, ZEBRA_IFC_DOWN);
+
+ /*
+ * It's possible to have X number of addresses
+ * on a interface that all resolve to the same
+ * network and mask. Find them and just
+ * allow the deletion when are removing the last
+ * one.
+ */
+ for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) {
+ struct prefix cp;
+
+ PREFIX_COPY(&cp, CONNECTED_PREFIX(c));
+ apply_mask(&cp);
+
+ if (prefix_same(&p, &cp) &&
+ !CHECK_FLAG(c->conf, ZEBRA_IFC_DOWN))
+ count++;
+
+ if (count >= 1)
+ return;
+ }
+
/*
* Same logic as for connected_up(): push the changes into the
* head.
@@ -481,6 +550,8 @@ void connected_add_ipv6(struct interface *ifp, int flags, struct in6_addr *addr,
/* If we get a notification from the kernel,
* we can safely assume the address is known to the kernel */
SET_FLAG(ifc->conf, ZEBRA_IFC_QUEUED);
+ if (!if_is_operative(ifp))
+ SET_FLAG(ifc->conf, ZEBRA_IFC_DOWN);
/* Allocate new connected address. */
p = prefix_ipv6_new();
--
2.34.1

View File

@ -0,0 +1,77 @@
From 6320d4941777d317989209f26ca513379f729c30 Mon Sep 17 00:00:00 2001
From: zsdc <taras@vyos.io>
Date: Fri, 12 May 2023 13:56:20 +0300
Subject: [PATCH] Fix as-override behavior
Backported 9bbdb4572d3bb255211fecf1c756452ab27e91c2 from FRR 8.5
---
bgpd/bgp_aspath.c | 22 ----------------------
bgpd/bgp_aspath.h | 1 -
bgpd/bgp_route.c | 4 +---
3 files changed, 1 insertion(+), 26 deletions(-)
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index 5cf3c60fa..9595bae5f 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -1215,28 +1215,6 @@ bool aspath_private_as_check(struct aspath *aspath)
return true;
}
-/* Return True if the entire ASPATH consist of the specified ASN */
-bool aspath_single_asn_check(struct aspath *aspath, as_t asn)
-{
- struct assegment *seg;
-
- if (!(aspath && aspath->segments))
- return false;
-
- seg = aspath->segments;
-
- while (seg) {
- int i;
-
- for (i = 0; i < seg->length; i++) {
- if (seg->as[i] != asn)
- return false;
- }
- seg = seg->next;
- }
- return true;
-}
-
/* Replace all instances of the target ASN with our own ASN */
struct aspath *aspath_replace_specific_asn(struct aspath *aspath,
as_t target_asn, as_t our_asn)
diff --git a/bgpd/bgp_aspath.h b/bgpd/bgp_aspath.h
index 9df352fcd..9bab5bb7b 100644
--- a/bgpd/bgp_aspath.h
+++ b/bgpd/bgp_aspath.h
@@ -108,7 +108,6 @@ extern unsigned int aspath_get_first_as(struct aspath *);
extern unsigned int aspath_get_last_as(struct aspath *);
extern int aspath_loop_check(struct aspath *, as_t);
extern bool aspath_private_as_check(struct aspath *);
-extern bool aspath_single_asn_check(struct aspath *, as_t asn);
extern struct aspath *aspath_replace_specific_asn(struct aspath *aspath,
as_t target_asn,
as_t our_asn);
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 48ccb669b..6de3e2a7f 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -1571,11 +1571,9 @@ static void bgp_peer_as_override(struct bgp *bgp, afi_t afi, safi_t safi,
struct peer *peer, struct attr *attr)
{
if (peer->sort == BGP_PEER_EBGP
- && peer_af_flag_check(peer, afi, safi, PEER_FLAG_AS_OVERRIDE)) {
- if (aspath_single_asn_check(attr->aspath, peer->as))
+ && peer_af_flag_check(peer, afi, safi, PEER_FLAG_AS_OVERRIDE))
attr->aspath = aspath_replace_specific_asn(
attr->aspath, peer->as, bgp->as);
- }
}
void bgp_attr_add_gshut_community(struct attr *attr)
--
2.34.1

2
packages/hostap/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
hostap/
wpa/

34
packages/hostap/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,34 @@
// Copyright (C) 2022 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
def pkgList = [
['name': 'wpa',
'scmCommit': 'debian/2%2.10-7',
'scmUrl': 'https://salsa.debian.org/debian/wpa',
'buildCmd': '/bin/true'],
['name': 'hostap',
'scmCommit': 'b704dc72ef824dfdd96674b90179b274d1d38105',
'scmUrl': 'git://w1.fi/srv/git/hostap.git',
'buildCmd': 'cd ..; ./build.sh'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('hostap', pkgList, null, "**/packages/hostap/*")

30
packages/hostap/build.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/sh
CWD=$(pwd)
set -e
SRC=hostap
SRC_DEB=wpa
if [ ! -d ${SRC} ]; then
echo "${SRC} directory does not exists, please 'git clone'"
exit 1
fi
if [ ! -d ${SRC_DEB} ]; then
echo "${SRC_DEB} directory does not exists, please 'git clone'"
exit 1
fi
echo "I: Copy Debian build instructions"
cp -a ${SRC_DEB}/debian ${SRC}
# Preserve Debian's default of allowing TLSv1.0 for compatibility
find ${SRC}/debian/patches -mindepth 1 ! -name allow-tlsv1.patch -delete
echo 'allow-tlsv1.patch' > ${SRC}/debian/patches/series
# Build Debian package
cd ${SRC}
echo "I: Create new Debian Package version"
version="$(git describe --tags | tr _ .)"
dch -v ${version:7} "New version to support AES-GCM-256 for MACsec" -b
echo "I: Build Debian hostap Package"
dpkg-buildpackage -us -uc -tc -b -Ppkg.wpa.nogui -d

View File

@ -15,10 +15,10 @@
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// Using a version specifier library, use 'equuleus' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_
@Library('vyos-build@equuleus')_
def pkgList = [
['name': 'iproute2',
@ -28,4 +28,4 @@ def pkgList = [
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('iproute2', pkgList)
buildPackage('iproute2', pkgList, null, "**/packages/iproute2/*")

@ -1 +0,0 @@
Subproject commit ae0b22e5a74391df3d6064f2f57ed31e222180bc

6
packages/keepalived/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
keepalived/
*.deb
*.dsc
*.buildinfo
*.changes
*.git

32
packages/keepalived/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,32 @@
// Copyright (C) 2022 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
// NOTE: we can build with -d as the libbpf dependency is installed manually
// and not via a DEB package
def pkgList = [
['name': 'keepalived',
'scmCommit': '8af889bc',
'scmUrl': 'https://github.com/acassen/keepalived',
'buildCmd': 'cd ..; ./build.sh'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('keepalived', pkgList, null, "**/packages/keepalived/*")

21
packages/keepalived/build.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh -x
CWD=$(pwd)
set -e
SRC=keepalived
if [ ! -d ${SRC} ]; then
echo "source directory does not exists, please 'git clone'"
exit 1
fi
echo "I: Copy Debian build system"
cp -a debian ${SRC}
cd ${SRC}
echo "I: Retrieve version information from Git"
dch -v "1:$(git describe --tags | cut -c2-)" "VyOS build"
# Build Debian FRR package
echo "I: Build VyOS keepalived Package"
dpkg-buildpackage -us -uc -tc -b

View File

@ -0,0 +1,500 @@
keepalived (1:2.2.1-1) UNRELEASED; urgency=medium
* [61cbc18] New upstream version 2.2.1
* [ecf662d] Keepalived has now support for systemd notify
-- Alexander Wirt <formorer@debian.org> Mon, 25 Jan 2021 09:04:08 +0100
keepalived (1:2.1.5-0.2) unstable; urgency=medium
* Non-maintainer upload.
* [17cfc9a] d/control:
- Add B-depends: libpcre2-dev
-- Michal Arbet <michal.arbet@ultimum.io> Mon, 12 Oct 2020 17:45:14 +0200
keepalived (1:2.1.5-0.1) unstable; urgency=medium
* Non-maintainer upload.
* [efada46] New upstream version 2.1.5 (Closes: #964855)
- fixes segfault when SMTP notifications are enabled (Closes: #958898)
* [0f2ffa3] Fix d/watch: 403 Forbidden
-- Michal Arbet <michal.arbet@ultimum.io> Wed, 07 Oct 2020 16:54:33 +0200
keepalived (1:2.0.19-2) unstable; urgency=medium
[ Thomas Goirand ]
* Drop build-depends on iptables-dev (Closes: #946150).
-- Alexander Wirt <formorer@debian.org> Thu, 20 Feb 2020 12:16:19 +0100
keepalived (1:2.0.19-1) unstable; urgency=medium
* [3e69686] New upstream version 2.0.19 (Closes: #947472)
- fixes execution of scripts with /bin/sh (Closes: #931617)
- fixes configuration parsing for SMTP sections (Closes: #859142)
- fixes stuck in receive queue (Closes: #942182)
- close netlink in checker (Closes: #775868)
- fix infinite loop when tracker script times out (Closes: #940036)
- fix loading of libipset (Closes: #878241)
* [6a81734] Move to debhelper(-compat) 12
* [02d9f5d] Bump standards version
* [239c70f] Fix location of the ip_vs header file
* [495b6e5] Disable dbus create instance feature
* [ec5c22c] Enable iptc support
-- Alexander Wirt <formorer@debian.org> Sun, 05 Jan 2020 18:45:43 +0100
keepalived (1:2.0.10-1) unstable; urgency=medium
* [3b99bf9] Update vcs headers to salsa
* [f697779] New upstream version 2.0.2
* [c97cc19] Enable dbus instance and json output support
* [27c6d55] syslog is now socket activated
* [7e2267b] Move to dh11
* [d0bf9db] there is not systemd sequence in dh11
* [903a5a0] dh-autoreconf dep is not needed anymore with dh11
* [c4996bd] Priority extra got replaced by optional
* [822da17] Remove obsolete patches
* [1c36cdc] New upstream version 2.0.10
- Fix overflow in extract_status_code (CVE-2018-19115)
Closes: #914393, #900260
- Improve garp refresh handling (Closes: #810347)
- Improve config parser (Closes: #909697)
* [990c014] Improve keepalived service (Closes: #902978, #830196)
-- Alexander Wirt <formorer@debian.org> Sun, 05 Jan 2020 18:21:34 +0100
keepalived (1:1.3.9-1) unstable; urgency=medium
* [e95b710] New upstream version 1.3.9
- Fix netlink error message truncated problems
(Closes: #846292)
* [0547153] New upstream version 1.3.5
* [4cf471c] Bump standards version
* [2dfa271] New upstream version 1.3.6 (Closes: #872331)
- Fix strange pid handling on restart
(Closes: #860527)
* [d1ddcaf] Enable dbus interface (Closes: #873803)
* [9a969d1] Adapt some changes from the upstream service file
(Closes: #857618)
-- Alexander Wirt <alexander.wirt@credativ.de> Thu, 16 Nov 2017 09:23:16 +0100
keepalived (1:1.3.2-1) unstable; urgency=medium
* [488ee92] New upstream version 1.3.2
-- Alexander Wirt <formorer@debian.org> Sat, 03 Dec 2016 22:25:31 +0100
keepalived (1:1.2.24-1) unstable; urgency=medium
* [d378a6f] New upstream version 1.2.24
-- Alexander Wirt <formorer@debian.org> Sat, 19 Nov 2016 08:20:39 +0100
keepalived (1:1.2.23-1) unstable; urgency=medium
* [94beb84] Imported Upstream version 1.2.23
(Closes: #821941)
- fix some segfaults (Closes: #830955)
-- Alexander Wirt <formorer@debian.org> Thu, 21 Jul 2016 10:12:06 +0200
keepalived (1:1.2.20-1) unstable; urgency=medium
* [2a22d69] Imported Upstream version 1.2.20
enable support for:
- nfnetlink
- ipset
- iptc
- snmp rfcv2 and rfcv3
-- Alexander Wirt <alexander.wirt@credativ.de> Tue, 17 May 2016 13:25:05 +0200
keepalived (1:1.2.19-1) unstable; urgency=medium
* [3594525] Imported Upstream version 1.2.19
-- Alexander Wirt <formorer@debian.org> Sat, 15 Aug 2015 15:18:41 +0200
keepalived (1:1.2.16-1) experimental; urgency=medium
* [3cc1f17] Depend on ipvsadm2 instead of ipvsadm
* [e09b760] Move ipvsadm to recommends
(Closes: #755771)
* [afa7293] Imported Upstream version 1.2.16
* [e86c672] Add systemd unitfile (Closes: #779347)
* [81fac5f] Remove syslog dependency in service file
* [40a44f0] Bump standards version
-- Alexander Wirt <formorer@debian.org> Tue, 31 Mar 2015 17:52:42 +0200
keepalived (1:1.2.13-1) unstable; urgency=medium
* [1e9c32b] Imported Upstream version 1.2.11
* [bac64d6] Imported Upstream version 1.2.13
- keep retry in case of early TCP failures in checks
(Closes: #626466 #504069)
- Add To header for SMTP alerts.
(Closes: #627169)
- handle passwords up to 8 characters
(Closes: #614562)
- modprobe handling fixed
(Closes: #714377)
- Support more than 31 interfaces
(Closes: #723106)
- Fix ipv6 realserver handling
(Closes: #740258)
- extend ip parser to support default and default6
(Closes: #740573)
* [65d5b11] Add pkg-config to build-deps
* [af497e7] Disable obsolete patches
* [4761254] Bump standards version (no changes)
-- Alexander Wirt <formorer@debian.org> Wed, 28 May 2014 09:01:38 +0200
keepalived (1:1.2.9-1) unstable; urgency=low
* [8cd7bad] Imported Upstream version 1.2.9
-- Alexander Wirt <formorer@debian.org> Mon, 11 Nov 2013 22:45:58 +0100
keepalived (1:1.2.8-1) unstable; urgency=low
* [b25f231] Patch configure.in instead of configure
* [aa70432] Fix configure
* [3a728cd] Enable sha1 support
* [e257779] Add Homepage field
* Allow providing of daemon args via /etc/defaul/keepalived
Closes: #693877
* Import upstream version 1.2.8 (Closes: #721966)
- Fix reload handling (Closes: #652260)
-- Alexander Wirt <formorer@debian.org> Fri, 13 Sep 2013 08:54:19 +0200
keepalived (1:1.2.7-1) unstable; urgency=low
* [b46efb0] Imported Upstream version 1.2.7
- Don't use bind() with AF_UNSPEC
(Closes: #699540)
- new upstream version (Closes: #703085)
* [6058efd] wrap-and-sort
* [a128718] Build with snmp support
* [d9783f9] Remove obsolete patches
* [2deaa4e] Move to dh and 3.0(quilt)
* [cd5a314] Use libnl3 (Closes: #688164)
* [d6493e1] Convert package to dh and quilt(3.0)
* [e7f5489] Bump dh compat to dh9
* [f6ca92d] Bump standards version
* [525415b] Fix errors in manpage
* [35dbfe3] Remove unneeded files
-- Alexander Wirt <formorer@debian.org> Mon, 01 Jul 2013 22:02:02 +0200
keepalived (1:1.2.6-1) experimental; urgency=low
* [b72cd7a] Remove obsolete patches
* [0cadef0] Enable snmp support
* [7442e85] Build-depend against libsnmp-dev
* [b84e381] Imported Upstream version 1.2.4
* [9f29e62] Imported Upstream version 1.2.6
-- Alexander Wirt <formorer@debian.org> Tue, 21 Aug 2012 18:14:42 +0200
keepalived (1:1.2.2-3) unstable; urgency=low
* [c28d5f0] Readd ip_vs.h - this reenables ipvs (Closes: #649778)
-- Alexander Wirt <formorer@debian.org> Sun, 18 Dec 2011 16:18:06 +0100
keepalived (1:1.2.2-2) unstable; urgency=low
* [9db4134] Fix override disparity
* [8f0c721] Remove obsolete patch
* [897c0a0] Set correct permissions on pid file.
This is a fix for CVE-2011-1784.
(Closes: #626281)
* [5ab4b8d] Don't use modprobe -k.
Thanks to Sven Ulland for the patch
* [c87fe40] Add vcs headers to control file
* [8107104] Bump standards version - no changes
-- Alexander Wirt <formorer@debian.org> Thu, 10 Nov 2011 08:38:47 +0100
keepalived (1:1.2.2-1) unstable; urgency=low
* New upstream version
* Don't remove configure in clean target
* Refresh 95_use_linux_ip_vs_h.patch for 1.2
* Build depend on libnl-dev
-- Alexander Wirt <formorer@debian.org> Sun, 06 Mar 2011 17:43:35 +0100
keepalived (1:1.1.20-1) unstable; urgency=low
* Go back to 1.1.20 since 1.2.0 is not ready for release
* Bump standards version (no changes)
-- Alexander Wirt <formorer@debian.org> Sat, 14 Aug 2010 10:17:10 +0200
keepalived (1.2.0-1) unstable; urgency=low
* New upstream release (Closes: #580607)
* Bump standards version (no changes)
-- Alexander Wirt <formorer@debian.org> Sun, 04 Jul 2010 11:02:13 +0200
keepalived (1.1.20-1) unstable; urgency=low
* New upstream release (Closes: #580607)
* Bump standards version (no changes)
* Raise debhelper dep to v5
* Refresh 95_use_linux_ip_vs_h.patch
* Fix typo in description
* Declare debsource v1.0
* Fix restart if daemon doesn't run (Closes: #561357)
-- Alexander Wirt <formorer@debian.org> Sat, 08 May 2010 20:56:58 +0200
keepalived (1.1.19-1) unstable; urgency=low
* New upstream version (Closes: #557814, #548254)
- Fix gigabit status interface support (Closes: #555634)
* Fix error reporting and manpage of genhash (Closes: #575399)
-- Alexander Wirt <formorer@debian.org> Fri, 23 Apr 2010 13:17:53 +0200
keepalived (1.1.17-2) unstable; urgency=low
* Reenable ipvs support thanks to Vincent Bernat for the hint
(Closes: #530738)
-- Alexander Wirt <formorer@debian.org> Thu, 28 May 2009 09:55:52 +0200
keepalived (1.1.17-1) unstable; urgency=low
* New upstream release (Closes: #516102).
Thanks to Vincent Bernat for the help
* Bump standards version (no changes)
* Remove outdated README.Debian (Closes: #470626)
* support nostrip option (Closes: #478261)
Thanks to Vincent Bernat for the patch
* Extract the patch for 336885 into debian/patches (Closes: #510092)
-- Alexander Wirt <formorer@debian.org> Sun, 26 Apr 2009 19:41:12 +0200
keepalived (1.1.15-1) unstable; urgency=low
* New upstream release (Closes: #401827)
* Remove 00_fix-manpagepath.patch and
01_fix-genhash-manpagepath.patch(obsolete)
* Bump standards version
-- Alexander Wirt <formorer@debian.org> Tue, 18 Dec 2007 18:44:55 +0100
keepalived (1.1.13-1) unstable; urgency=low
* New upstream release (Closes: #401827)
* Add patch to compile with libc6-dev. Thanks to Cyril Brulebois
for the original patch (Closes: #428927)
-- Alexander Wirt <formorer@debian.org> Tue, 24 Jul 2007 22:24:08 +0200
keepalived (1.1.12-1) unstable; urgency=low
* New upstream release (Closes: #365220)
* Call notification for every failure. Thanks to Len Sorenson for
the patch (Closes: #336885)
* delete /tmp/.vrrp and /tmp/.healthcheckers if they exists before
starting keepalived (Closes: #333102)
* bumped standard version
-- Alexander Wirt <formorer@debian.org> Wed, 28 Jun 2006 20:01:56 +0200
keepalived (1.1.11-3) unstable; urgency=low
* Added a warning about sarge kernels to README.Debian and
the package description
-- Alexander Wirt <formorer@debian.org> Fri, 29 Apr 2005 23:22:40 +0200
keepalived (1.1.11-2) unstable; urgency=low
* Added iproute to dependency (Closes: #303421)
-- Alexander Wirt <formorer@debian.org> Fri, 8 Apr 2005 21:45:33 +0200
keepalived (1.1.11-1) unstable; urgency=low
* New upstream release (Closes: #297067)
- Fixes several bugs with his childs which
should fix restart und fork bugs
(Closes: #296516)
* Updated to iv_vs.h 0x010201 (2.6.11)
-- Alexander Wirt <formorer@debian.org> Wed, 2 Mar 2005 21:41:29 +0100
keepalived (1.1.7-3) unstable; urgency=low
* No longer install the config per default (Closes: #261615)
-- Alexander Wirt <formorer@debian.org> Sat, 14 Aug 2004 20:36:43 +0200
keepalived (1.1.7-2) unstable; urgency=low
* New Maintainer: Alexander Wirt <formorer@debian.org>
No Bugs, no problems with this package. Thanks for the good
work Andres, I'm happy to take this package
-- Alexander Wirt <formorer@debian.org> Wed, 19 May 2004 20:32:03 +0200
keepalived (1.1.7-1) unstable; urgency=low
* New upstream release.
* 003-genhash_8.patch: drop genhash manpage, as it's been merged upstream.
* 001-genhash_1.patch: add new manpage location fix; should be genhash(1).
-- Andres Salomon <dilinger@voxel.net> Sun, 02 May 2004 23:44:39 -0400
keepalived (1.1.6-1) unstable; urgency=low
* New upstream release.
* Drop 001-really_distclean.patch and 002-use_destdir.patch; merged
upstream.
* 003-genhash_8.patch: add genhash manpage.
* Update ip_vs.h to version from 2.6.4-1. Keepalived now compiles
using 2.6 headers. Update description accordingly.
* Update copyright file.
* Make init script not check if kernel has IPVS support (closes: #237141).
-- Andres Salomon <dilinger@voxel.net> Tue, 30 Mar 2004 22:05:24 -0500
keepalived (1.1.5-2) unstable; urgency=low
* Can't use kernel-headers package, not all arch have it. Revert
back to storing headers in debian/ subdir.
-- Andres Salomon <dilinger@voxel.net> Tue, 10 Feb 2004 02:38:14 -0500
keepalived (1.1.5-1) unstable; urgency=low
* New upstream release. (Closes: #231418)
* Now that ipvs is in 2.4, use kernel-headers package instead of storing
kernel headers in debian/ subdir. Add appropriate build-dep.
* Convert buildsys to cdbs and update standards-version.
* 001-really_distclean.patch: clean binaries out of ./bin.
* 002-use_destdir.patch: add DESTDIR to makefiles.
* Upstream now has manpages for keepalived and keepalived.conf.
-- Andres Salomon <dilinger@voxel.net> Fri, 30 Jan 2004 02:51:47 -0500
keepalived (1.0.3-1) unstable; urgency=low
* New upstream release; I'm going to wait for this release to enter
testing before allowing the 1.1.x series into unstable. (Closes: #199437)
* Update maintainer email address.
* Update standards-version.
* Update kernel headers and scripts.
-- Andres Salomon <dilinger@voxel.net> Sat, 26 Jul 2003 01:03:19 -0400
keepalived (1.0.2-1) unstable; urgency=low
* New upstream release.
* Fixed previous changelog entry's year (2002 -> 2003), so it doesn's appear
that I time travel. At the very least, I wouldn't want people discovering
my secret, and risk my time machine falling into the wrong hands.
* Upstream docs changed location; updated.
* Dropped dh_undocumented usage.
* Added reload support to the init script.
-- Andres Salomon <dilinger@mp3revolution.net> Thu, 17 Apr 2003 00:38:48 -0500
keepalived (1.0.0-1) unstable; urgency=low
* New upstream release.
* Update standards-version to 3.5.8.0.
* Update kernel headers for ipvs-1.0.7.
-- Andres Salomon <dilinger@mp3revolution.net> Fri, 17 Jan 2003 15:26:38 -0400
keepalived (0.7.6-1) unstable; urgency=low
* New upstream release.
* Several minor description/copyright changes to make new lintian happy.
* Add removal of config.log to clean target in debian/rules.
-- Andres Salomon <dilinger@mp3revolution.net> Sun, 8 Dec 2002 23:59:17 -0400
keepalived (0.7.1-1) unstable; urgency=low
* New upstream release.
* Update kernel headers for ipvs-1.0.6.
* Remove dependance upon gcc-3.0; upstream says 2.95 works fine now,
and we should be transitioning to gcc-3.2 soon, anyways (hopefully).
-- Andres Salomon <dilinger@mp3revolution.net> Sat, 21 Sep 2002 16:05:52 -0400
keepalived (0.6.10-2) unstable; urgency=low
* Add OpenSSL exception clause to the copyright file.
-- Andres Salomon <dilinger@mp3revolution.net> Thu, 22 Aug 2002 11:48:16 -0400
keepalived (0.6.10-1) unstable; urgency=low
* New upstream release.
* Update kernel headers to 2.4.19 and ipvs-1.0.4.
-- Andres Salomon <dilinger@mp3revolution.net> Wed, 14 Aug 2002 23:42:48 -0400
keepalived (0.6.8-1) unstable; urgency=low
* New upstream release.
* Updated description to mention VRRPv2.
* Depend upon gcc-3.0, since gcc-2.95 and keepalived have, uh, issues.
* Updated various paths to reflect changed build system/layout.
-- Andres Salomon <dilinger@mp3revolution.net> Thu, 18 Jul 2002 01:47:42 -0500
keepalived (0.6.2-1) unstable; urgency=low
* New upstream release, upload to archive. (Closes: #144100)
* Autoconf sanity upstream, remove configure.in/Makefile.in patches.
* Fix typo in top level Makefile.in.
* Updated URL for keepalived (keepalived.sf.net -> www.keepalived.org).
* For easier maintenance of kernel header files, grab scripts from my
devmapper package.
-- Andres Salomon <dilinger@mp3revolution.net> Sun, 16 Jun 2002 15:47:39 -0500
keepalived (0.5.8-1) unstable; urgency=low
* New upstream release.
* Note the OpenSSL exception clause in the README.
-- Andres Salomon <dilinger@mp3revolution.net> Tue, 21 May 2002 15:18:02 -0500
keepalived (0.5.7-1) unstable; urgency=low
* New upstream release (w/ SSL_GET fixes!).
* Moved sample configs to doc directory.
-- Andres Salomon <dilinger@mp3revolution.net> Thu, 2 May 2002 20:14:38 -0500
keepalived (0.5.6-1) unstable; urgency=low
* New upstream release.
-- Andres Salomon <dilinger@mp3revolution.net> Thu, 11 Apr 2002 01:38:19 -0500
keepalived (0.5.5-1) unstable; urgency=low
* Initial Release.
-- Andres Salomon <dilinger@mp3revolution.net> Thu, 11 Apr 2002 01:38:19 -0500

View File

@ -0,0 +1,46 @@
Source: keepalived
Section: admin
Priority: optional
Maintainer: Alexander Wirt <formorer@debian.org>
Build-Depends: autoconf,
debhelper-compat (=12),
libglib2.0-dev,
libip4tc-dev,
libipset-dev,
libjson-c-dev,
libnfnetlink-dev,
libnftnl-dev,
libnl-3-dev,
libnl-genl-3-dev,
libnl-nf-3-dev,
libpcre2-dev,
libpopt-dev,
libsnmp-dev,
libssl-dev,
libsystemd-dev,
linux-libc-dev,
pkg-config
Standards-Version: 4.4.1
Vcs-Browser: https://salsa.debian.org/ipvs-team/pkg-keepalived
Vcs-Git: https://salsa.debian.org/ipvs-team/pkg-keepalived.git
Homepage: http://keepalived.org
Package: keepalived
Section: admin
Architecture: any
Depends: iproute2, ${misc:Depends}, ${shlibs:Depends}
Pre-Depends: ${misc:Pre-Depends}
Recommends: ipvsadm
Description: Failover and monitoring daemon for LVS clusters
keepalived is used for monitoring real servers within a Linux
Virtual Server (LVS) cluster. keepalived can be configured to
remove real servers from the cluster pool if it stops responding,
as well as send a notification email to make the admin aware of
the service failure.
.
In addition, keepalived implements an independent Virtual Router
Redundancy Protocol (VRRPv2; see rfc2338 for additional info)
framework for director failover.
.
You need a kernel >= 2.4.28 or >= 2.6.11 for keepalived.
See README.Debian for more information.

View File

@ -0,0 +1,19 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
#export DH_OPTIONS=-v
%:
dh $@ --with autoreconf
override_dh_auto_configure:
dh_auto_configure -- --enable-snmp --enable-sha1 --enable-snmp-rfcv2 --enable-snmp-rfcv3 --enable-dbus --enable-json --enable-bfd --enable-regex
override_dh_auto_install:
dh_auto_install
rm -rf debian/keepalived/etc/keepalived/samples/
rm -rf debian/keepalived/etc/rc.d
rm -rf debian/keepalived/etc/keepalived/keepalived.conf
rm -rf debian/keepalived/etc/sysconfig
rm -rf debian/keepalived/usr/man

View File

@ -8,6 +8,7 @@
*.deb
*.changes
*.buildinfo
*.tar.xz
/*.postinst
# Intel Driver source

View File

@ -15,10 +15,10 @@
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// Using a version specifier library, use 'equuleus' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_
@Library('vyos-build@equuleus')_
/* Only keep the most recent builds. */
def projectProperties = [
@ -50,6 +50,7 @@ node('Docker') {
pipeline {
agent {
docker {
reuseNode true
args "--sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006"
image "${env.DOCKER_IMAGE}"
alwaysPull true
@ -63,14 +64,12 @@ pipeline {
environment {
DEBIAN_ARCH = sh(returnStdout: true, script: 'dpkg --print-architecture').trim()
BASE_DIR = getJenkinsfilePath()
CHANGESET_DIR = getChangeSetPath()
}
stages {
stage('Fetch') {
steps {
script {
checkout scm
echo env.CHANGESET_DIR
}
}
}
@ -81,19 +80,27 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
steps {
dir(env.BASE_DIR + '/linux') {
checkout([$class: 'GitSCM',
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout'],
[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
branches: [[name: 'v5.4.86' ]],
userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git']]])
script {
dir(env.BASE_DIR) {
sh '''
KERNEL_VER=\$(cat ../../data/defaults.json | jq -r .kernel_version)
gpg2 --locate-keys torvalds@kernel.org gregkh@kernel.org
curl -OL https://www.kernel.org/pub/linux/kernel/v5.x/linux-${KERNEL_VER}.tar.xz
curl -OL https://www.kernel.org/pub/linux/kernel/v5.x/linux-${KERNEL_VER}.tar.sign
xz -cd linux-${KERNEL_VER}.tar.xz | gpg2 --verify linux-${KERNEL_VER}.tar.sign -
if [ $? -ne 0 ]; then
exit 1
fi
tar xf linux-${KERNEL_VER}.tar.xz
ln -s linux-${KERNEL_VER} linux
'''
}
}
}
}
@ -102,8 +109,8 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -113,7 +120,7 @@ pipeline {
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout'],
[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]],
branches: [[name: '20201022' ]],
branches: [[name: '20201218' ]],
userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git']]])
}
}
@ -123,8 +130,8 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -143,8 +150,8 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -153,7 +160,7 @@ pipeline {
checkout([$class: 'GitSCM',
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
branches: [[name: '59f8e1bc3f199c8d0d985253e19a74ad87130179' ]],
branches: [[name: '0b4ef9862c65bf' ]],
userRemoteConfigs: [[credentialsId: 'GitHub-vyosbot', url: 'https://github.com/accel-ppp/accel-ppp.git']]])
}
}
@ -165,8 +172,8 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -184,8 +191,8 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -202,8 +209,8 @@ pipeline {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -213,29 +220,13 @@ pipeline {
}
}
}
stage('Intel Driver(s)') {
when {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
triggeredBy cause: "UserIdCause"
}
}
steps {
dir(env.BASE_DIR) {
sh "./build-intel-drivers.sh"
}
}
}
stage('Intel QuickAssist Technology') {
when {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -245,18 +236,50 @@ pipeline {
}
}
}
stage('Intel ICE driver') {
when {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
steps {
dir(env.BASE_DIR) {
sh "./build-intel-ice.py"
}
}
}
stage('Realtek r8152 driver') {
when {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
steps {
dir(env.BASE_DIR) {
sh "./build-driver-realtek-r8152.py"
}
}
}
}
}
// This stage should not be run in the parallel section as it will call "make"
// again on the kernel source and this could confuse other build systems
// like generating Intel or Accel-PPP drivers. Better safe then sorry!
// like Accel-PPP. Better safe then sorry!
stage('Linux Firmware') {
when {
beforeOptions true
beforeAgent true
anyOf {
changeset pattern: "${env.CHANGESET_DIR}"
triggeredBy 'TimerTrigger'
changeset pattern: "**/packages/linux-kernel/*"
changeset pattern: "**/data/defaults.json"
triggeredBy cause: "UserIdCause"
}
}
@ -293,7 +316,7 @@ pipeline {
VYOS_REPO_PATH += 'vyos/'
def SSH_OPTS = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR'
def SSH_REMOTE = 'khagen@10.217.48.113'
def SSH_REMOTE = env.DEV_PACKAGES_VYOS_NET_HOST // defined as global variable
echo "Uploading package(s) and updating package(s) in the repository ..."

View File

@ -0,0 +1,113 @@
#!/usr/bin/env python3
from json import loads as json_loads
from requests import get
from pathlib import Path
from shutil import copy as copy_file
from subprocess import run
# dependency modifier
def add_depends(package_dir: str, package_name: str, depends) -> None:
"""Add dependencies to a package
Args:
package_dir (str): a directory where package sources are located
package_name (str): a name of package
depends (list[str]): a list of dependencies to add
"""
depends_list: str = ', '.join(depends)
depends_line: str = f'misc:Depends={depends_list}\n'
substvars_file = Path(f'{package_dir}/debian/{package_name}.substvars')
substvars_file.write_text(depends_line)
# copy patches
def apply_deb_patches(package_name: str, sources_dir: str):
"""Apply patches to sources directory
Args:
package_name (str): package name
sources_dir (str): sources dir
"""
patches_dir = Path(f'patches/{package_name}')
if patches_dir.exists():
patches_list = list(patches_dir.iterdir())
patches_list.sort()
series_file = Path(f'{sources_dir}/debian/patches/series')
series_data = ''
for patch_file in patches_list:
print(f'Applying patch: {patch_file.name}')
copy_file(patch_file, f'{sources_dir}/debian/patches/')
if series_file.exists():
series_data = series_file.read_text()
series_data = f'{series_data}\n{patch_file.name}'
series_file.write_text(series_data)
# find kernel version and source path
defaults_file: str = Path('../../data/defaults.json').read_text()
KERNEL_VER: str = json_loads(defaults_file).get('kernel_version')
KERNEL_FLAVOR: str = json_loads(defaults_file).get('kernel_flavor')
KERNEL_SRC: str = Path.cwd().as_posix() + '/linux'
# define variables
PACKAGE_NAME: str = 'vyos-drivers-realtek-r8152'
PACKAGE_VERSION: str = '2.17.1'
PACKAGE_DIR: str = f'{PACKAGE_NAME}-{PACKAGE_VERSION}'
SOURCES_ARCHIVE: str = 'r8152-2.17.1.tar.bz2'
SOURCES_URL: str = f'https://dev.packages.vyos.net/source-mirror/{SOURCES_ARCHIVE}'
# download sources
sources_archive = Path(SOURCES_ARCHIVE)
sources_archive.write_bytes(get(SOURCES_URL).content)
# prepare sources
debmake_cmd = [
'debmake', '-e', 'support@vyos.io', '-f', 'VyOS Support', '-p',
PACKAGE_NAME, '-u', PACKAGE_VERSION, '-a', SOURCES_ARCHIVE
]
run(debmake_cmd)
# add kernel to dependencies
add_depends(PACKAGE_DIR, PACKAGE_NAME,
[f'linux-image-{KERNEL_VER}-{KERNEL_FLAVOR}'])
# configure build rules
build_rules_text: str = f'''#!/usr/bin/make -f
# config
export KERNELDIR := {KERNEL_SRC}
PACKAGE_BUILD_DIR := debian/{PACKAGE_NAME}
KVER := {KERNEL_VER}-{KERNEL_FLAVOR}
MODULES_DIR := updates/drivers/net/usb
# main packaging script based on dh7 syntax
%:
dh $@
override_dh_clean:
dh_clean --exclude=debian/{PACKAGE_NAME}.substvars
override_dh_prep:
dh_prep --exclude=debian/{PACKAGE_NAME}.substvars
override_dh_auto_clean:
make clean
override_dh_auto_build:
make modules
override_dh_auto_install:
install -D -m 644 r8152.ko ${{PACKAGE_BUILD_DIR}}/lib/modules/${{KVER}}/${{MODULES_DIR}}/r8152.ko
install -D -m 644 50-usb-realtek-net.rules ${{PACKAGE_BUILD_DIR}}/etc/udev/rules.d/50-usb-realtek-net.rules
'''
bild_rules = Path(f'{PACKAGE_DIR}/debian/rules')
bild_rules.write_text(build_rules_text)
# apply patches
apply_deb_patches(PACKAGE_NAME, PACKAGE_DIR)
# build a package
debuild_cmd = ['debuild']
run(debuild_cmd, cwd=PACKAGE_DIR)

View File

@ -1,93 +0,0 @@
#!/bin/sh
CWD=$(pwd)
KERNEL_VAR_FILE=${CWD}/kernel-vars
if [ ! -f ${KERNEL_VAR_FILE} ]; then
echo "Kernel variable file '${KERNEL_VAR_FILE}' does not exist, run ./build_kernel.sh first"
exit 1
fi
. ${KERNEL_VAR_FILE}
declare -a intel=(
"http://dev.packages.vyos.net/source-mirror/ixgbe-5.9.4.tar.gz"
"http://dev.packages.vyos.net/source-mirror/ixgbevf-4.9.3.tar.gz"
"http://dev.packages.vyos.net/source-mirror/igb-5.4.6.tar.gz"
"http://dev.packages.vyos.net/source-mirror/i40e-2.13.10.tar.gz"
"http://dev.packages.vyos.net/source-mirror/iavf-4.0.1.tar.gz"
)
for url in "${intel[@]}"
do
cd ${CWD}
DRIVER_FILE="$(basename ${url})"
DRIVER_DIR="${DRIVER_FILE%.tar.gz}"
DRIVER_NAME="${DRIVER_DIR%-*}"
DRIVER_VERSION="${DRIVER_DIR##*-}"
DRIVER_VERSION_EXTRA="-0"
# Build up Debian related variables required for packaging
DEBIAN_ARCH=$(dpkg --print-architecture)
DEBIAN_DIR="${CWD}/vyos-intel-${DRIVER_NAME}_${DRIVER_VERSION}${DRIVER_VERSION_EXTRA}_${DEBIAN_ARCH}"
DEBIAN_CONTROL="${DEBIAN_DIR}/DEBIAN/control"
DEBIAN_POSTINST="${CWD}/vyos-intel-driver.postinst"
# Fetch Intel driver source from SourceForge
if [ -e ${DRIVER_FILE} ]; then
rm -f ${DRIVER_FILE}
fi
curl -L -o ${DRIVER_FILE} ${url}
if [ "$?" -ne "0" ]; then
exit 1
fi
# Unpack archive
if [ -d ${DRIVER_DIR} ]; then
rm -rf ${DRIVER_DIR}
fi
tar xf ${DRIVER_FILE}
cd ${DRIVER_DIR}/src
if [ -z $KERNEL_DIR ]; then
echo "KERNEL_DIR not defined"
exit 1
fi
echo "I: Compile Kernel module for Intel ${DRIVER_NAME} driver"
KSRC=${KERNEL_DIR} \
INSTALL_MOD_PATH=${DEBIAN_DIR} \
make -j $(getconf _NPROCESSORS_ONLN) install
# delete non required files which are also present in the kernel package
# und thus lead to duplicated files
find ${DEBIAN_DIR} -name "modules.*" | xargs rm -f
echo "#!/bin/sh" > ${DEBIAN_POSTINST}
echo "/sbin/depmod -a ${KERNEL_VERSION}${KERNEL_SUFFIX}" >> ${DEBIAN_POSTINST}
# build Debian package
echo "I: Building Debian package vyos-intel-${DRIVER_NAME}"
cd ${CWD}
if [ -f ${DEBIAN_DIR}.deb ]; then
rm ${DEBIAN_DIR}.deb
fi
fpm --input-type dir --output-type deb --name vyos-intel-${DRIVER_NAME} \
--version ${DRIVER_VERSION}${DRIVER_VERSION_EXTRA} --deb-compression gz \
--maintainer "VyOS Package Maintainers <maintainers@vyos.net>" \
--description "Vendor based driver for Intel ${DRIVER_NAME} NIC" \
--depends linux-image-${KERNEL_VERSION}${KERNEL_SUFFIX} \
--license "GPL2" \
-C ${DEBIAN_DIR} --after-install ${DEBIAN_POSTINST}
echo "I: Cleanup ${DRIVER_NAME} source"
cd ${CWD}
if [ -e ${DRIVER_FILE} ]; then
rm -f ${DRIVER_FILE}
fi
if [ -d ${DRIVER_DIR} ]; then
rm -rf ${DRIVER_DIR}
fi
if [ -d ${DEBIAN_DIR} ]; then
rm -rf ${DEBIAN_DIR}
fi
done

View File

@ -0,0 +1,75 @@
#!/usr/bin/env python3
from json import loads as json_loads
from requests import get
from pathlib import Path
from subprocess import run
# define variables
DRIVER_VERSION: str = '1.11.14'
DRIVER_URL: str = f'https://downloads.sourceforge.net/project/e1000/ice%20stable/{DRIVER_VERSION}/ice-{DRIVER_VERSION}.tar.gz'
DRIVER_ARCHIVE: str = f'ice-{DRIVER_VERSION}.tar.gz'
DRIVER_DIR: str = f'vyos-drivers-intel-ice-{DRIVER_VERSION}'
# find kernel version ans source path
default_file: str = Path('../../data/defaults.json').read_text()
KERNEL_VER: str = json_loads(default_file).get('kernel_version')
KERNEL_SRC: str = Path.cwd().as_posix() + '/linux'
# download driver
driver_archive = Path(DRIVER_ARCHIVE)
driver_archive.write_bytes(get(DRIVER_URL).content)
# prepare sources
debmake_cmd = [
'debmake', '-e', 'support@vyos.io', '-f', 'VyOS Support', '-p',
'vyos-drivers-intel-ice', '-a', DRIVER_ARCHIVE
]
run(debmake_cmd)
# fix build rules
build_rules_text = f'''#!/usr/bin/make -f
# config
export KSRC := {KERNEL_SRC}
INSTALL_DIR := debian/vyos-drivers-intel-ice
DRIVER := ice
KVER := {KERNEL_VER}-amd64-vyos
KSRC_INSTALL := /lib/modules/${{KVER}}/build/
INTEL_DIR := updates/drivers/net/ethernet/intel
# DDP variables
DDP_PKG_ORIGIN := $(shell ls ddp/${{DRIVER}}-[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*\.pkg 2>/dev/null)
DDP_PKG_NAME := $(shell basename ${{DDP_PKG_ORIGIN}} 2>/dev/null)
DDP_PKG_DEST_PATH := ${{INSTALL_DIR}}/lib/firmware/updates/intel/${{DRIVER}}/ddp
DDP_PKG_DEST := ${{DDP_PKG_DEST_PATH}}/${{DDP_PKG_NAME}}
DDP_PKG_LINK := ${{DRIVER}}.pkg
# main packaging script based on dh7 syntax
%:
dh $@
override_dh_auto_clean:
cd src && \
make clean
override_dh_auto_build:
cd src && sed -e 's/#define NEED_ETH_HW_ADDR_SET/#undef NEED_ETH_HW_ADDR_SET/' -i kcompat_std_defs.h && make all
override_dh_auto_install:
# DDP
install -D -m 644 ${{DDP_PKG_ORIGIN}} ${{DDP_PKG_DEST}}
(cd ${{DDP_PKG_DEST_PATH}} && ln -sf ${{DDP_PKG_NAME}} ${{DDP_PKG_LINK}})
install -D -m 644 ddp/LICENSE ${{DDP_PKG_DEST_PATH}}/LICENSE
# module
install -D -m 644 src/${{DRIVER}}.ko ${{INSTALL_DIR}}/lib/modules/${{KVER}}/${{INTEL_DIR}}/ice/${{DRIVER}}.ko
# AUX
install -D -m 644 src/intel_auxiliary.ko ${{INSTALL_DIR}}/lib/modules/${{KVER}}/${{INTEL_DIR}}/auxiliary/intel_auxiliary.ko
install -D -m 644 src/Module.symvers ${{INSTALL_DIR}}/lib/modules/${{KVER}}/extern-symvers/intel_auxiliary.symvers
install -D -m 644 src/linux/auxiliary_bus.h ${{INSTALL_DIR}}/${{KSRC_INSTALL}}/include/linux/auxiliary_bus.h
'''
bild_rules = Path(f'{DRIVER_DIR}/debian/rules')
bild_rules.write_text(build_rules_text)
# build a package
debuild_cmd = ['debuild']
run(debuild_cmd, cwd=DRIVER_DIR)

View File

@ -2,6 +2,11 @@
CWD=$(pwd)
KERNEL_VAR_FILE=${CWD}/kernel-vars
if ! dpkg-architecture -iamd64; then
echo "Intel-QAT is only buildable on amd64 platforms"
exit 0
fi
if [ ! -f ${KERNEL_VAR_FILE} ]; then
echo "Kernel variable file '${KERNEL_VAR_FILE}' does not exist, run ./build_kernel.sh first"
exit 1
@ -9,98 +14,99 @@ fi
. ${KERNEL_VAR_FILE}
declare -a intel=(
"https://01.org/sites/default/files/downloads/qat1.7.l.4.9.0-00008.tar_0.gz"
)
url="https://dev.packages.vyos.net/source-mirror/QAT1.7.l.4.9.0-00008.tar.gz"
for url in "${intel[@]}"
do
cd ${CWD}
cd ${CWD}
DRIVER_FILE=$(basename ${url} | sed -e s/tar_0/tar/)
DRIVER_DIR="${DRIVER_FILE%.tar.gz}"
DRIVER_NAME="qat"
DRIVER_VERSION=$(echo ${DRIVER_DIR} | awk -F${DRIVER_NAME} '{print $2}')
DRIVER_VERSION_EXTRA="-0"
DRIVER_FILE=$(basename ${url} | sed -e s/tar_0/tar/)
DRIVER_DIR="${DRIVER_FILE%.tar.gz}"
DRIVER_NAME="QAT"
DRIVER_VERSION=$(echo ${DRIVER_DIR} | awk -F${DRIVER_NAME} '{print $2}')
DRIVER_VERSION_EXTRA="-0"
# Build up Debian related variables required for packaging
DEBIAN_ARCH=$(dpkg --print-architecture)
DEBIAN_DIR="${CWD}/vyos-intel-${DRIVER_NAME}_${DRIVER_VERSION}${DRIVER_VERSION_EXTRA}_${DEBIAN_ARCH}"
DEBIAN_CONTROL="${DEBIAN_DIR}/DEBIAN/control"
DEBIAN_POSTINST="${CWD}/vyos-intel-qat.postinst"
# Build up Debian related variables required for packaging
DEBIAN_ARCH=$(dpkg --print-architecture)
DEBIAN_DIR="${CWD}/vyos-intel-${DRIVER_NAME}_${DRIVER_VERSION}${DRIVER_VERSION_EXTRA}_${DEBIAN_ARCH}"
DEBIAN_CONTROL="${DEBIAN_DIR}/DEBIAN/control"
DEBIAN_POSTINST="${CWD}/vyos-intel-qat.postinst"
# Fetch Intel driver source from SourceForge
if [ -e ${DRIVER_FILE} ]; then
rm -f ${DRIVER_FILE}
fi
curl -L -o ${DRIVER_FILE} ${url}
if [ "$?" -ne "0" ]; then
exit 1
fi
# Fetch Intel driver source from SourceForge
if [ -e ${DRIVER_FILE} ]; then
rm -f ${DRIVER_FILE}
fi
curl -L -o ${DRIVER_FILE} ${url}
if [ "$?" -ne "0" ]; then
exit 1
fi
# Unpack archive
if [ -d ${DRIVER_DIR} ]; then
rm -rf ${DRIVER_DIR}
fi
mkdir -p ${DRIVER_DIR}
tar -C ${DRIVER_DIR} -xf ${DRIVER_FILE}
# Unpack archive
if [ -d ${DRIVER_DIR} ]; then
rm -rf ${DRIVER_DIR}
fi
mkdir -p ${DRIVER_DIR}
tar -C ${DRIVER_DIR} -xf ${DRIVER_FILE}
cd ${DRIVER_DIR}
if [ -z $KERNEL_DIR ]; then
echo "KERNEL_DIR not defined"
exit 1
fi
cd ${DRIVER_DIR}
if [ -z $KERNEL_DIR ]; then
echo "KERNEL_DIR not defined"
exit 1
fi
echo "I: Compile Kernel module for Intel ${DRIVER_NAME} driver"
mkdir -p ${DEBIAN_DIR}/lib/firmware ${DEBIAN_DIR}/usr/local/bin ${DEBIAN_DIR}/usr/lib/x86_64-linux-gnu ${DEBIAN_DIR}/etc/init.d
KERNEL_SOURCE_ROOT=${KERNEL_DIR} ./configure --enable-kapi --enable-qat-lkcf
make -j $(getconf _NPROCESSORS_ONLN) all
make INSTALL_MOD_PATH=${DEBIAN_DIR} INSTALL_FW_PATH=${DEBIAN_DIR} \
qat-driver-install
echo "I: Compile Kernel module for Intel ${DRIVER_NAME} driver"
mkdir -p \
${DEBIAN_DIR}/lib/firmware \
${DEBIAN_DIR}/usr/sbin \
${DEBIAN_DIR}/usr/lib/x86_64-linux-gnu \
${DEBIAN_DIR}/etc/init.d
if [ "x$?" != "x0" ]; then
exit 1
fi
KERNEL_SOURCE_ROOT=${KERNEL_DIR} ./configure --enable-kapi --enable-qat-lkcf
make -j $(getconf _NPROCESSORS_ONLN) all
make INSTALL_MOD_PATH=${DEBIAN_DIR} INSTALL_FW_PATH=${DEBIAN_DIR} \
qat-driver-install adf-ctl-all
cp build/*.bin ${DEBIAN_DIR}/lib/firmware
cp build/*.so ${DEBIAN_DIR}/usr/lib/x86_64-linux-gnu
cp build/qat_service ${DEBIAN_DIR}/etc/init.d
cp build/adf_ctl ${DEBIAN_DIR}/usr/local/bin
cp build/usdm_drv.ko ${DEBIAN_DIR}/lib/modules/${KERNEL_VERSION}${KERNEL_SUFFIX}/updates/drivers
chmod 644 ${DEBIAN_DIR}/lib/firmware/*
chmod 755 ${DEBIAN_DIR}/etc/init.d/* ${DEBIAN_DIR}/usr/local/bin/*
if [ "x$?" != "x0" ]; then
exit 1
fi
if [ -f ${DEBIAN_DIR}.deb ]; then
rm ${DEBIAN_DIR}.deb
fi
cp quickassist/qat/fw/*.bin ${DEBIAN_DIR}/lib/firmware
cp build/*.so ${DEBIAN_DIR}/usr/lib/x86_64-linux-gnu
cp build/adf_ctl ${DEBIAN_DIR}/usr/sbin
cp quickassist/build_system/build_files/qat_service ${DEBIAN_DIR}/etc/init.d
cp build/usdm_drv.ko ${DEBIAN_DIR}/lib/modules/${KERNEL_VERSION}${KERNEL_SUFFIX}/updates/drivers
# build Debian package
echo "I: Building Debian package vyos-intel-${DRIVER_NAME}"
cd ${CWD}
chmod 644 ${DEBIAN_DIR}/lib/firmware/*
chmod 755 ${DEBIAN_DIR}/etc/init.d/* ${DEBIAN_DIR}/usr/local/bin/*
# delete non required files which are also present in the kernel package
# und thus lead to duplicated files
find ${DEBIAN_DIR} -name "modules.*" | xargs rm -f
if [ -f ${DEBIAN_DIR}.deb ]; then
rm ${DEBIAN_DIR}.deb
fi
echo "#!/bin/sh" > ${DEBIAN_POSTINST}
echo "/sbin/depmod -a ${KERNEL_VERSION}${KERNEL_SUFFIX}" >> ${DEBIAN_POSTINST}
# build Debian package
echo "I: Building Debian package vyos-intel-${DRIVER_NAME}"
cd ${CWD}
fpm --input-type dir --output-type deb --name vyos-intel-${DRIVER_NAME} \
--version ${DRIVER_VERSION}${DRIVER_VERSION_EXTRA} --deb-compression gz \
--maintainer "VyOS Package Maintainers <maintainers@vyos.net>" \
--description "Vendor based driver for Intel ${DRIVER_NAME}" \
--depends linux-image-${KERNEL_VERSION}${KERNEL_SUFFIX} \
--license "GPL2" -C ${DEBIAN_DIR} --after-install ${DEBIAN_POSTINST}
# delete non required files which are also present in the kernel package
# und thus lead to duplicated files
find ${DEBIAN_DIR} -name "modules.*" | xargs rm -f
echo "I: Cleanup ${DRIVER_NAME} source"
cd ${CWD}
if [ -e ${DRIVER_FILE} ]; then
rm -f ${DRIVER_FILE}
fi
if [ -d ${DRIVER_DIR} ]; then
rm -rf ${DRIVER_DIR}
fi
if [ -d ${DEBIAN_DIR} ]; then
rm -rf ${DEBIAN_DIR}
fi
done
echo "#!/bin/sh" > ${DEBIAN_POSTINST}
echo "/sbin/depmod -a ${KERNEL_VERSION}${KERNEL_SUFFIX}" >> ${DEBIAN_POSTINST}
fpm --input-type dir --output-type deb --name vyos-intel-${DRIVER_NAME} \
--version ${DRIVER_VERSION}${DRIVER_VERSION_EXTRA} --deb-compression gz \
--maintainer "VyOS Package Maintainers <maintainers@vyos.net>" \
--description "Vendor based driver for Intel ${DRIVER_NAME}" \
--depends linux-image-${KERNEL_VERSION}${KERNEL_SUFFIX} \
--license "GPL2" -C ${DEBIAN_DIR} --after-install ${DEBIAN_POSTINST}
echo "I: Cleanup ${DRIVER_NAME} source"
cd ${CWD}
if [ -e ${DRIVER_FILE} ]; then
rm -f ${DRIVER_FILE}
fi
if [ -d ${DRIVER_DIR} ]; then
rm -rf ${DRIVER_DIR}
fi
if [ -d ${DEBIAN_DIR} ]; then
rm -rf ${DEBIAN_DIR}
fi

View File

@ -12,10 +12,6 @@ LINUX_SRC="linux"
LINUX_FIRMWARE="linux-firmware"
KERNEL_VAR_FILE=${CWD}/kernel-vars
# Some firmware files might not be easy to extract (e.g. Intel iwlwifi drivers)
# thus we simply ammend them "manually"
ADD_FW_FILES="iwlwifi*"
if [ ! -d ${LINUX_SRC} ]; then
echo "Kernel source missing"
exit 1
@ -30,52 +26,69 @@ fi
result=()
# Retrieve firmware blobs from source files
cd ${LINUX_SRC}
FW_FILES=$(../list-required-firmware.py -c ../x86_64_vyos_defconfig -s drivers/net 2>/dev/null)
FW_FILES=$(find ${LINUX_SRC}/debian/tmp/lib/modules/${KERNEL_VERSION}${KERNEL_SUFFIX}/kernel/drivers/net -name *.ko | xargs modinfo | grep "^firmware:" | awk '{print $2}')
# Debian package will use the descriptive Git commit as version
GIT_COMMIT=$(cd ${CWD}/${LINUX_FIRMWARE}; git describe --always)
VYOS_FIRMWARE_NAME="vyos-linux-firmware"
VYOS_FIRMWARE_DIR="${CWD}/${VYOS_FIRMWARE_NAME}_${GIT_COMMIT}-0_all"
VYOS_FIRMWARE_DIR="${VYOS_FIRMWARE_NAME}_${GIT_COMMIT}-0_all"
if [ -d ${VYOS_FIRMWARE_DIR} ]; then
# remove Debian package folder and deb file from previous runs
rm -rf ${VYOS_FIRMWARE_DIR}*
fi
mkdir -p ${VYOS_FIRMWARE_DIR}
# Copy firmware file from linux firmware repository into
# Install firmware files to build directory
LINUX_FIRMWARE_BUILD_DIR="${LINUX_FIRMWARE}_${GIT_COMMIT}"
if [ -d ${LINUX_FIRMWARE_BUILD_DIR} ]; then
rm -rf "${LINUX_FIRMWARE_BUILD_DIR}"
fi
mkdir -p "${LINUX_FIRMWARE_BUILD_DIR}"
(
cd ${LINUX_FIRMWARE}
./copy-firmware.sh "${CWD}/${LINUX_FIRMWARE_BUILD_DIR}"
)
# Copy firmware file from linux firmware build directory into
# assembly folder for the vyos-firmware package
SED_REPLACE="s@${CWD}/${LINUX_FIRMWARE}/@@"
for FW_PATH in ${FW_FILES}; do
FW_FILE=$(basename $FW_PATH)
res=()
for tmp in $(find ${CWD}/linux-firmware -type f -name ${FW_FILE} | sed -e ${SED_REPLACE})
do
res+=( "$tmp" )
done
for FILE in ${FW_FILES}; do
# If file is a symlink install the symlink target as well
if [ -h "${LINUX_FIRMWARE_BUILD_DIR}/${FILE}" ]; then
TARGET="$(realpath --relative-to="${LINUX_FIRMWARE_BUILD_DIR}" "${LINUX_FIRMWARE_BUILD_DIR}/${FILE}")"
TARGET_DIR="${VYOS_FIRMWARE_DIR}/lib/firmware/$(dirname "${TARGET}")"
for FILE in ${res[@]}; do
if [ ! -f "${TARGET_DIR}/$(basename "${TARGET}")" ]; then
if [ -f "${LINUX_FIRMWARE_BUILD_DIR}/${TARGET}" ]; then
mkdir -p "${TARGET_DIR}"
echo "I: install firmware: ${TARGET}"
cp "${CWD}/${LINUX_FIRMWARE_BUILD_DIR}/${TARGET}" "${TARGET_DIR}"
else
echo "I: firmware file not found: ${TARGET}"
fi
fi
fi
if [ -f ${LINUX_FIRMWARE_BUILD_DIR}/${FILE} ]; then
FW_DIR="${VYOS_FIRMWARE_DIR}/lib/firmware/$(dirname ${FILE})"
mkdir -p ${FW_DIR}
mkdir -p "${FW_DIR}"
echo "I: install firmware: ${FILE}"
cp ${CWD}/linux-firmware/${FILE} ${FW_DIR}
done
done
# Install additional firmware files that could not be autodiscovered
for FW in ${ADD_FW_FILES}
do
FW_DIR="${VYOS_FIRMWARE_DIR}/lib/firmware/$(dirname ${FW})"
mkdir -p ${FW_DIR}
echo "I: install firmware: ${FW}"
cp ${CWD}/linux-firmware/${FW} ${FW_DIR}
cp -P "${CWD}/${LINUX_FIRMWARE_BUILD_DIR}/${FILE}" "${FW_DIR}"
else
echo "I: firmware file not found: ${FILE}"
fi
done
echo "I: Create linux-firmware package"
cd ${CWD}
rm -f ${VYOS_FIRMWARE_NAME}_*.deb
fpm --input-type dir --output-type deb --name ${VYOS_FIRMWARE_NAME} \
--maintainer "VyOS Package Maintainers <maintainers@vyos.net>" \
--description "Binary firmware for various drivers in the Linux kernel" \
--version ${GIT_COMMIT} --deb-compression gz -C ${VYOS_FIRMWARE_DIR}
--architecture all --version ${GIT_COMMIT} --deb-compression gz -C ${VYOS_FIRMWARE_DIR}
rm -rf "${LINUX_FIRMWARE_BUILD_DIR}"
rm -rf ${VYOS_FIRMWARE_DIR}

View File

@ -1,133 +0,0 @@
#!/usr/bin/env python3
#
# Copyright (C) 2020 Daniil Baturin
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import re
import os
import sys
import glob
import argparse
import subprocess
# Loads the kernel config -- only options set to y or m
def load_config(path):
with open(path, 'r') as f:
config = f.read()
targets = re.findall(r'(.*)=(?:y|m)', config)
return targets
# Finds subdir targets from the Makefile
# that are enabled by the kernel build config
def find_enabled_subdirs(config, makefile_path):
try:
with open(makefile_path, 'r') as f:
makefile = f.read()
except OSError:
# Shouldn't happen due to the way collect_source_files()
# calls this function.
return []
dir_stmts = re.findall(r'obj-\$\((.*)\)\s+\+=\s+(.*)/(?:\n|$)', makefile)
subdirs = []
for ds in dir_stmts:
config_key, src_dir = ds
if args.debug:
print("Processing make targets from {0} ({1})".format(ds[1], ds[0]), file=sys.stderr)
if config_key in config:
subdirs.append(src_dir)
elif args.debug:
print("{0} is disabled in the config, ignoring {1}".format(ds[0], ds[1]), file=sys.stderr)
return subdirs
# For filtering
def file_loads_firmware(file):
with open(file, 'r') as f:
source = f.read()
if re.search(r'MODULE_FIRMWARE\((.*)\)', source):
return True
# Find all source files that reference firmware
def collect_source_files(config, path):
files = []
makefile = os.path.join(path, "Makefile")
# Find and process all C files in this directory
# This is a compromise: sometimes there are single-file modules,
# that in fact may be disabled in the config,
# so this approach can create occasional false positives.
c_files = glob.glob("{0}/*.c".format(path))
files = list(filter(file_loads_firmware, c_files))
# Now walk the subdirectories
enabled_subdirs = find_enabled_subdirs(config, makefile)
subdirs = glob.glob("{0}/*/".format(path))
for d in subdirs:
dir_name = d.rstrip("/")
if os.path.exists(os.path.join(d, "Makefile")):
# If there's a makefile, it's an independent module
# or a high level dir
if os.path.basename(dir_name) in enabled_subdirs:
files = files + collect_source_files(config, d)
else:
# It's simply a subdirectory of the current module
# Some modules, like iwlwifi, keep their firmware-loading files
# in subdirs, so we have to handle this case
c_files = glob.iglob("{0}/**/*.c".format(d), recursive=True)
files += list(filter(file_loads_firmware, c_files))
return files
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("-s", "--source-dir", action="append", help="Kernel source directory to process", required=True)
parser.add_argument("-c", "--kernel-config", action="store", help="Kernel configuration")
parser.add_argument("-d", "--debug", action="store_true", help="Enable Debug output")
parser.add_argument("-f", "--list-source-files", action="store_true", help="List source files that reference firmware and exit")
args = parser.parse_args()
if not args.kernel_config:
args.kernel_config = ".config"
config = load_config(args.kernel_config)
# Collect source files that reference firmware
for directory in args.source_dir:
source_files = collect_source_files(config, directory)
if args.list_source_files:
for sf in source_files:
print(sf)
else:
fw_files = []
for sf in source_files:
i_file = re.sub(r'\.c', r'.i', sf)
res = subprocess.run(["make {0} 2>&1".format(i_file)], shell=True, capture_output=True)
if res.returncode != 0:
print("Failed to preprocess file {0}".format(sf), file=sys.stderr)
print(res.stdout.decode(), file=sys.stderr)
else:
with open(i_file, 'r') as f:
source = f.read()
fw_statements = re.findall(r'__UNIQUE_ID_firmware.*"firmware"\s+"="\s+(.*);', source)
fw_files += list(map(lambda s: re.sub(r'(\s|")', r'', s), fw_statements))
for fw in fw_files:
print(fw)

View File

@ -0,0 +1,786 @@
From 4bdc6cb93ef35b1d1ff394e7d74ae9c0f366fbfd Mon Sep 17 00:00:00 2001
From: Christian Breunig <christian@breunig.cc>
Date: Thu, 18 May 2023 20:53:54 +0000
Subject: [PATCH] Revert "net/sched: Retire tcindex classifier"
This reverts commit 7a6fb69bbcb21e9ce13bdf18c008c268874f0480.
---
net/sched/Kconfig | 11 +
net/sched/Makefile | 1 +
net/sched/cls_tcindex.c | 730 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 742 insertions(+)
create mode 100644 net/sched/cls_tcindex.c
diff --git a/net/sched/Kconfig b/net/sched/Kconfig
index 2e4604cdaf23..2985509147a2 100644
--- a/net/sched/Kconfig
+++ b/net/sched/Kconfig
@@ -469,6 +469,17 @@ config NET_CLS_BASIC
To compile this code as a module, choose M here: the
module will be called cls_basic.
+config NET_CLS_TCINDEX
+ tristate "Traffic-Control Index (TCINDEX)"
+ select NET_CLS
+ ---help---
+ Say Y here if you want to be able to classify packets based on
+ traffic control indices. You will want this feature if you want
+ to implement Differentiated Services together with DSMARK.
+
+ To compile this code as a module, choose M here: the
+ module will be called cls_tcindex.
+
config NET_CLS_ROUTE4
tristate "Routing decision (ROUTE)"
depends on INET
diff --git a/net/sched/Makefile b/net/sched/Makefile
index 9e1f904d0c18..415d1e1f237e 100644
--- a/net/sched/Makefile
+++ b/net/sched/Makefile
@@ -66,6 +66,7 @@ obj-$(CONFIG_NET_CLS_U32) += cls_u32.o
obj-$(CONFIG_NET_CLS_ROUTE4) += cls_route.o
obj-$(CONFIG_NET_CLS_FW) += cls_fw.o
obj-$(CONFIG_NET_CLS_RSVP) += cls_rsvp.o
+obj-$(CONFIG_NET_CLS_TCINDEX) += cls_tcindex.o
obj-$(CONFIG_NET_CLS_RSVP6) += cls_rsvp6.o
obj-$(CONFIG_NET_CLS_BASIC) += cls_basic.o
obj-$(CONFIG_NET_CLS_FLOW) += cls_flow.o
diff --git a/net/sched/cls_tcindex.c b/net/sched/cls_tcindex.c
new file mode 100644
index 000000000000..768cf7cf65b4
--- /dev/null
+++ b/net/sched/cls_tcindex.c
@@ -0,0 +1,730 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * net/sched/cls_tcindex.c Packet classifier for skb->tc_index
+ *
+ * Written 1998,1999 by Werner Almesberger, EPFL ICA
+ */
+
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/skbuff.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+#include <linux/refcount.h>
+#include <net/act_api.h>
+#include <net/netlink.h>
+#include <net/pkt_cls.h>
+#include <net/sch_generic.h>
+
+/*
+ * Passing parameters to the root seems to be done more awkwardly than really
+ * necessary. At least, u32 doesn't seem to use such dirty hacks. To be
+ * verified. FIXME.
+ */
+
+#define PERFECT_HASH_THRESHOLD 64 /* use perfect hash if not bigger */
+#define DEFAULT_HASH_SIZE 64 /* optimized for diffserv */
+
+
+struct tcindex_data;
+
+struct tcindex_filter_result {
+ struct tcf_exts exts;
+ struct tcf_result res;
+ struct tcindex_data *p;
+ struct rcu_work rwork;
+};
+
+struct tcindex_filter {
+ u16 key;
+ struct tcindex_filter_result result;
+ struct tcindex_filter __rcu *next;
+ struct rcu_work rwork;
+};
+
+
+struct tcindex_data {
+ struct tcindex_filter_result *perfect; /* perfect hash; NULL if none */
+ struct tcindex_filter __rcu **h; /* imperfect hash; */
+ struct tcf_proto *tp;
+ u16 mask; /* AND key with mask */
+ u32 shift; /* shift ANDed key to the right */
+ u32 hash; /* hash table size; 0 if undefined */
+ u32 alloc_hash; /* allocated size */
+ u32 fall_through; /* 0: only classify if explicit match */
+ refcount_t refcnt; /* a temporary refcnt for perfect hash */
+ struct rcu_work rwork;
+};
+
+static inline int tcindex_filter_is_set(struct tcindex_filter_result *r)
+{
+ return tcf_exts_has_actions(&r->exts) || r->res.classid;
+}
+
+static void tcindex_data_get(struct tcindex_data *p)
+{
+ refcount_inc(&p->refcnt);
+}
+
+static void tcindex_data_put(struct tcindex_data *p)
+{
+ if (refcount_dec_and_test(&p->refcnt)) {
+ kfree(p->perfect);
+ kfree(p->h);
+ kfree(p);
+ }
+}
+
+static struct tcindex_filter_result *tcindex_lookup(struct tcindex_data *p,
+ u16 key)
+{
+ if (p->perfect) {
+ struct tcindex_filter_result *f = p->perfect + key;
+
+ return tcindex_filter_is_set(f) ? f : NULL;
+ } else if (p->h) {
+ struct tcindex_filter __rcu **fp;
+ struct tcindex_filter *f;
+
+ fp = &p->h[key % p->hash];
+ for (f = rcu_dereference_bh_rtnl(*fp);
+ f;
+ fp = &f->next, f = rcu_dereference_bh_rtnl(*fp))
+ if (f->key == key)
+ return &f->result;
+ }
+
+ return NULL;
+}
+
+
+static int tcindex_classify(struct sk_buff *skb, const struct tcf_proto *tp,
+ struct tcf_result *res)
+{
+ struct tcindex_data *p = rcu_dereference_bh(tp->root);
+ struct tcindex_filter_result *f;
+ int key = (skb->tc_index & p->mask) >> p->shift;
+
+ pr_debug("tcindex_classify(skb %p,tp %p,res %p),p %p\n",
+ skb, tp, res, p);
+
+ f = tcindex_lookup(p, key);
+ if (!f) {
+ struct Qdisc *q = tcf_block_q(tp->chain->block);
+
+ if (!p->fall_through)
+ return -1;
+ res->classid = TC_H_MAKE(TC_H_MAJ(q->handle), key);
+ res->class = 0;
+ pr_debug("alg 0x%x\n", res->classid);
+ return 0;
+ }
+ *res = f->res;
+ pr_debug("map 0x%x\n", res->classid);
+
+ return tcf_exts_exec(skb, &f->exts, res);
+}
+
+
+static void *tcindex_get(struct tcf_proto *tp, u32 handle)
+{
+ struct tcindex_data *p = rtnl_dereference(tp->root);
+ struct tcindex_filter_result *r;
+
+ pr_debug("tcindex_get(tp %p,handle 0x%08x)\n", tp, handle);
+ if (p->perfect && handle >= p->alloc_hash)
+ return NULL;
+ r = tcindex_lookup(p, handle);
+ return r && tcindex_filter_is_set(r) ? r : NULL;
+}
+
+static int tcindex_init(struct tcf_proto *tp)
+{
+ struct tcindex_data *p;
+
+ pr_debug("tcindex_init(tp %p)\n", tp);
+ p = kzalloc(sizeof(struct tcindex_data), GFP_KERNEL);
+ if (!p)
+ return -ENOMEM;
+
+ p->mask = 0xffff;
+ p->hash = DEFAULT_HASH_SIZE;
+ p->fall_through = 1;
+ refcount_set(&p->refcnt, 1); /* Paired with tcindex_destroy_work() */
+
+ rcu_assign_pointer(tp->root, p);
+ return 0;
+}
+
+static void __tcindex_destroy_rexts(struct tcindex_filter_result *r)
+{
+ tcf_exts_destroy(&r->exts);
+ tcf_exts_put_net(&r->exts);
+ tcindex_data_put(r->p);
+}
+
+static void tcindex_destroy_rexts_work(struct work_struct *work)
+{
+ struct tcindex_filter_result *r;
+
+ r = container_of(to_rcu_work(work),
+ struct tcindex_filter_result,
+ rwork);
+ rtnl_lock();
+ __tcindex_destroy_rexts(r);
+ rtnl_unlock();
+}
+
+static void __tcindex_destroy_fexts(struct tcindex_filter *f)
+{
+ tcf_exts_destroy(&f->result.exts);
+ tcf_exts_put_net(&f->result.exts);
+ kfree(f);
+}
+
+static void tcindex_destroy_fexts_work(struct work_struct *work)
+{
+ struct tcindex_filter *f = container_of(to_rcu_work(work),
+ struct tcindex_filter,
+ rwork);
+
+ rtnl_lock();
+ __tcindex_destroy_fexts(f);
+ rtnl_unlock();
+}
+
+static int tcindex_delete(struct tcf_proto *tp, void *arg, bool *last,
+ bool rtnl_held, struct netlink_ext_ack *extack)
+{
+ struct tcindex_data *p = rtnl_dereference(tp->root);
+ struct tcindex_filter_result *r = arg;
+ struct tcindex_filter __rcu **walk;
+ struct tcindex_filter *f = NULL;
+
+ pr_debug("tcindex_delete(tp %p,arg %p),p %p\n", tp, arg, p);
+ if (p->perfect) {
+ if (!r->res.class)
+ return -ENOENT;
+ } else {
+ int i;
+
+ for (i = 0; i < p->hash; i++) {
+ walk = p->h + i;
+ for (f = rtnl_dereference(*walk); f;
+ walk = &f->next, f = rtnl_dereference(*walk)) {
+ if (&f->result == r)
+ goto found;
+ }
+ }
+ return -ENOENT;
+
+found:
+ rcu_assign_pointer(*walk, rtnl_dereference(f->next));
+ }
+ tcf_unbind_filter(tp, &r->res);
+ /* all classifiers are required to call tcf_exts_destroy() after rcu
+ * grace period, since converted-to-rcu actions are relying on that
+ * in cleanup() callback
+ */
+ if (f) {
+ if (tcf_exts_get_net(&f->result.exts))
+ tcf_queue_work(&f->rwork, tcindex_destroy_fexts_work);
+ else
+ __tcindex_destroy_fexts(f);
+ } else {
+ tcindex_data_get(p);
+
+ if (tcf_exts_get_net(&r->exts))
+ tcf_queue_work(&r->rwork, tcindex_destroy_rexts_work);
+ else
+ __tcindex_destroy_rexts(r);
+ }
+
+ *last = false;
+ return 0;
+}
+
+static void tcindex_destroy_work(struct work_struct *work)
+{
+ struct tcindex_data *p = container_of(to_rcu_work(work),
+ struct tcindex_data,
+ rwork);
+
+ tcindex_data_put(p);
+}
+
+static inline int
+valid_perfect_hash(struct tcindex_data *p)
+{
+ return p->hash > (p->mask >> p->shift);
+}
+
+static const struct nla_policy tcindex_policy[TCA_TCINDEX_MAX + 1] = {
+ [TCA_TCINDEX_HASH] = { .type = NLA_U32 },
+ [TCA_TCINDEX_MASK] = { .type = NLA_U16 },
+ [TCA_TCINDEX_SHIFT] = { .type = NLA_U32 },
+ [TCA_TCINDEX_FALL_THROUGH] = { .type = NLA_U32 },
+ [TCA_TCINDEX_CLASSID] = { .type = NLA_U32 },
+};
+
+static int tcindex_filter_result_init(struct tcindex_filter_result *r,
+ struct tcindex_data *p,
+ struct net *net)
+{
+ memset(r, 0, sizeof(*r));
+ r->p = p;
+ return tcf_exts_init(&r->exts, net, TCA_TCINDEX_ACT,
+ TCA_TCINDEX_POLICE);
+}
+
+static void tcindex_free_perfect_hash(struct tcindex_data *cp);
+
+static void tcindex_partial_destroy_work(struct work_struct *work)
+{
+ struct tcindex_data *p = container_of(to_rcu_work(work),
+ struct tcindex_data,
+ rwork);
+
+ rtnl_lock();
+ if (p->perfect)
+ tcindex_free_perfect_hash(p);
+ kfree(p);
+ rtnl_unlock();
+}
+
+static void tcindex_free_perfect_hash(struct tcindex_data *cp)
+{
+ int i;
+
+ for (i = 0; i < cp->hash; i++)
+ tcf_exts_destroy(&cp->perfect[i].exts);
+ kfree(cp->perfect);
+}
+
+static int tcindex_alloc_perfect_hash(struct net *net, struct tcindex_data *cp)
+{
+ int i, err = 0;
+
+ cp->perfect = kcalloc(cp->hash, sizeof(struct tcindex_filter_result),
+ GFP_KERNEL | __GFP_NOWARN);
+ if (!cp->perfect)
+ return -ENOMEM;
+
+ for (i = 0; i < cp->hash; i++) {
+ err = tcf_exts_init(&cp->perfect[i].exts, net,
+ TCA_TCINDEX_ACT, TCA_TCINDEX_POLICE);
+ if (err < 0)
+ goto errout;
+ cp->perfect[i].p = cp;
+ }
+
+ return 0;
+
+errout:
+ tcindex_free_perfect_hash(cp);
+ return err;
+}
+
+static int
+tcindex_set_parms(struct net *net, struct tcf_proto *tp, unsigned long base,
+ u32 handle, struct tcindex_data *p,
+ struct tcindex_filter_result *r, struct nlattr **tb,
+ struct nlattr *est, bool ovr, struct netlink_ext_ack *extack)
+{
+ struct tcindex_filter_result new_filter_result;
+ struct tcindex_data *cp = NULL, *oldp;
+ struct tcindex_filter *f = NULL; /* make gcc behave */
+ struct tcf_result cr = {};
+ int err, balloc = 0;
+ struct tcf_exts e;
+
+ err = tcf_exts_init(&e, net, TCA_TCINDEX_ACT, TCA_TCINDEX_POLICE);
+ if (err < 0)
+ return err;
+ err = tcf_exts_validate(net, tp, tb, est, &e, ovr, true, extack);
+ if (err < 0)
+ goto errout;
+
+ err = -ENOMEM;
+ /* tcindex_data attributes must look atomic to classifier/lookup so
+ * allocate new tcindex data and RCU assign it onto root. Keeping
+ * perfect hash and hash pointers from old data.
+ */
+ cp = kzalloc(sizeof(*cp), GFP_KERNEL);
+ if (!cp)
+ goto errout;
+
+ cp->mask = p->mask;
+ cp->shift = p->shift;
+ cp->hash = p->hash;
+ cp->alloc_hash = p->alloc_hash;
+ cp->fall_through = p->fall_through;
+ cp->tp = tp;
+ refcount_set(&cp->refcnt, 1); /* Paired with tcindex_destroy_work() */
+
+ if (tb[TCA_TCINDEX_HASH])
+ cp->hash = nla_get_u32(tb[TCA_TCINDEX_HASH]);
+
+ if (tb[TCA_TCINDEX_MASK])
+ cp->mask = nla_get_u16(tb[TCA_TCINDEX_MASK]);
+
+ if (tb[TCA_TCINDEX_SHIFT]) {
+ cp->shift = nla_get_u32(tb[TCA_TCINDEX_SHIFT]);
+ if (cp->shift > 16) {
+ err = -EINVAL;
+ goto errout;
+ }
+ }
+ if (!cp->hash) {
+ /* Hash not specified, use perfect hash if the upper limit
+ * of the hashing index is below the threshold.
+ */
+ if ((cp->mask >> cp->shift) < PERFECT_HASH_THRESHOLD)
+ cp->hash = (cp->mask >> cp->shift) + 1;
+ else
+ cp->hash = DEFAULT_HASH_SIZE;
+ }
+
+ if (p->perfect) {
+ int i;
+
+ if (tcindex_alloc_perfect_hash(net, cp) < 0)
+ goto errout;
+ cp->alloc_hash = cp->hash;
+ for (i = 0; i < min(cp->hash, p->hash); i++)
+ cp->perfect[i].res = p->perfect[i].res;
+ balloc = 1;
+ }
+ cp->h = p->h;
+
+ err = tcindex_filter_result_init(&new_filter_result, cp, net);
+ if (err < 0)
+ goto errout_alloc;
+ if (r)
+ cr = r->res;
+
+ err = -EBUSY;
+
+ /* Hash already allocated, make sure that we still meet the
+ * requirements for the allocated hash.
+ */
+ if (cp->perfect) {
+ if (!valid_perfect_hash(cp) ||
+ cp->hash > cp->alloc_hash)
+ goto errout_alloc;
+ } else if (cp->h && cp->hash != cp->alloc_hash) {
+ goto errout_alloc;
+ }
+
+ err = -EINVAL;
+ if (tb[TCA_TCINDEX_FALL_THROUGH])
+ cp->fall_through = nla_get_u32(tb[TCA_TCINDEX_FALL_THROUGH]);
+
+ if (!cp->perfect && !cp->h)
+ cp->alloc_hash = cp->hash;
+
+ /* Note: this could be as restrictive as if (handle & ~(mask >> shift))
+ * but then, we'd fail handles that may become valid after some future
+ * mask change. While this is extremely unlikely to ever matter,
+ * the check below is safer (and also more backwards-compatible).
+ */
+ if (cp->perfect || valid_perfect_hash(cp))
+ if (handle >= cp->alloc_hash)
+ goto errout_alloc;
+
+
+ err = -ENOMEM;
+ if (!cp->perfect && !cp->h) {
+ if (valid_perfect_hash(cp)) {
+ if (tcindex_alloc_perfect_hash(net, cp) < 0)
+ goto errout_alloc;
+ balloc = 1;
+ } else {
+ struct tcindex_filter __rcu **hash;
+
+ hash = kcalloc(cp->hash,
+ sizeof(struct tcindex_filter *),
+ GFP_KERNEL);
+
+ if (!hash)
+ goto errout_alloc;
+
+ cp->h = hash;
+ balloc = 2;
+ }
+ }
+
+ if (cp->perfect)
+ r = cp->perfect + handle;
+ else
+ r = tcindex_lookup(cp, handle) ? : &new_filter_result;
+
+ if (r == &new_filter_result) {
+ f = kzalloc(sizeof(*f), GFP_KERNEL);
+ if (!f)
+ goto errout_alloc;
+ f->key = handle;
+ f->next = NULL;
+ err = tcindex_filter_result_init(&f->result, cp, net);
+ if (err < 0) {
+ kfree(f);
+ goto errout_alloc;
+ }
+ }
+
+ if (tb[TCA_TCINDEX_CLASSID]) {
+ cr.classid = nla_get_u32(tb[TCA_TCINDEX_CLASSID]);
+ tcf_bind_filter(tp, &cr, base);
+ }
+
+ oldp = p;
+ r->res = cr;
+ tcf_exts_change(&r->exts, &e);
+
+ rcu_assign_pointer(tp->root, cp);
+
+ if (r == &new_filter_result) {
+ struct tcindex_filter *nfp;
+ struct tcindex_filter __rcu **fp;
+
+ f->result.res = r->res;
+ tcf_exts_change(&f->result.exts, &r->exts);
+
+ fp = cp->h + (handle % cp->hash);
+ for (nfp = rtnl_dereference(*fp);
+ nfp;
+ fp = &nfp->next, nfp = rtnl_dereference(*fp))
+ ; /* nothing */
+
+ rcu_assign_pointer(*fp, f);
+ } else {
+ tcf_exts_destroy(&new_filter_result.exts);
+ }
+
+ if (oldp)
+ tcf_queue_work(&oldp->rwork, tcindex_partial_destroy_work);
+ return 0;
+
+errout_alloc:
+ if (balloc == 1)
+ tcindex_free_perfect_hash(cp);
+ else if (balloc == 2)
+ kfree(cp->h);
+ tcf_exts_destroy(&new_filter_result.exts);
+errout:
+ kfree(cp);
+ tcf_exts_destroy(&e);
+ return err;
+}
+
+static int
+tcindex_change(struct net *net, struct sk_buff *in_skb,
+ struct tcf_proto *tp, unsigned long base, u32 handle,
+ struct nlattr **tca, void **arg, bool ovr,
+ bool rtnl_held, struct netlink_ext_ack *extack)
+{
+ struct nlattr *opt = tca[TCA_OPTIONS];
+ struct nlattr *tb[TCA_TCINDEX_MAX + 1];
+ struct tcindex_data *p = rtnl_dereference(tp->root);
+ struct tcindex_filter_result *r = *arg;
+ int err;
+
+ pr_debug("tcindex_change(tp %p,handle 0x%08x,tca %p,arg %p),opt %p,"
+ "p %p,r %p,*arg %p\n",
+ tp, handle, tca, arg, opt, p, r, arg ? *arg : NULL);
+
+ if (!opt)
+ return 0;
+
+ err = nla_parse_nested_deprecated(tb, TCA_TCINDEX_MAX, opt,
+ tcindex_policy, NULL);
+ if (err < 0)
+ return err;
+
+ return tcindex_set_parms(net, tp, base, handle, p, r, tb,
+ tca[TCA_RATE], ovr, extack);
+}
+
+static void tcindex_walk(struct tcf_proto *tp, struct tcf_walker *walker,
+ bool rtnl_held)
+{
+ struct tcindex_data *p = rtnl_dereference(tp->root);
+ struct tcindex_filter *f, *next;
+ int i;
+
+ pr_debug("tcindex_walk(tp %p,walker %p),p %p\n", tp, walker, p);
+ if (p->perfect) {
+ for (i = 0; i < p->hash; i++) {
+ if (!p->perfect[i].res.class)
+ continue;
+ if (walker->count >= walker->skip) {
+ if (walker->fn(tp, p->perfect + i, walker) < 0) {
+ walker->stop = 1;
+ return;
+ }
+ }
+ walker->count++;
+ }
+ }
+ if (!p->h)
+ return;
+ for (i = 0; i < p->hash; i++) {
+ for (f = rtnl_dereference(p->h[i]); f; f = next) {
+ next = rtnl_dereference(f->next);
+ if (walker->count >= walker->skip) {
+ if (walker->fn(tp, &f->result, walker) < 0) {
+ walker->stop = 1;
+ return;
+ }
+ }
+ walker->count++;
+ }
+ }
+}
+
+static void tcindex_destroy(struct tcf_proto *tp, bool rtnl_held,
+ struct netlink_ext_ack *extack)
+{
+ struct tcindex_data *p = rtnl_dereference(tp->root);
+ int i;
+
+ pr_debug("tcindex_destroy(tp %p),p %p\n", tp, p);
+
+ if (p->perfect) {
+ for (i = 0; i < p->hash; i++) {
+ struct tcindex_filter_result *r = p->perfect + i;
+
+ /* tcf_queue_work() does not guarantee the ordering we
+ * want, so we have to take this refcnt temporarily to
+ * ensure 'p' is freed after all tcindex_filter_result
+ * here. Imperfect hash does not need this, because it
+ * uses linked lists rather than an array.
+ */
+ tcindex_data_get(p);
+
+ tcf_unbind_filter(tp, &r->res);
+ if (tcf_exts_get_net(&r->exts))
+ tcf_queue_work(&r->rwork,
+ tcindex_destroy_rexts_work);
+ else
+ __tcindex_destroy_rexts(r);
+ }
+ }
+
+ for (i = 0; p->h && i < p->hash; i++) {
+ struct tcindex_filter *f, *next;
+ bool last;
+
+ for (f = rtnl_dereference(p->h[i]); f; f = next) {
+ next = rtnl_dereference(f->next);
+ tcindex_delete(tp, &f->result, &last, rtnl_held, NULL);
+ }
+ }
+
+ tcf_queue_work(&p->rwork, tcindex_destroy_work);
+}
+
+
+static int tcindex_dump(struct net *net, struct tcf_proto *tp, void *fh,
+ struct sk_buff *skb, struct tcmsg *t, bool rtnl_held)
+{
+ struct tcindex_data *p = rtnl_dereference(tp->root);
+ struct tcindex_filter_result *r = fh;
+ struct nlattr *nest;
+
+ pr_debug("tcindex_dump(tp %p,fh %p,skb %p,t %p),p %p,r %p\n",
+ tp, fh, skb, t, p, r);
+ pr_debug("p->perfect %p p->h %p\n", p->perfect, p->h);
+
+ nest = nla_nest_start_noflag(skb, TCA_OPTIONS);
+ if (nest == NULL)
+ goto nla_put_failure;
+
+ if (!fh) {
+ t->tcm_handle = ~0; /* whatever ... */
+ if (nla_put_u32(skb, TCA_TCINDEX_HASH, p->hash) ||
+ nla_put_u16(skb, TCA_TCINDEX_MASK, p->mask) ||
+ nla_put_u32(skb, TCA_TCINDEX_SHIFT, p->shift) ||
+ nla_put_u32(skb, TCA_TCINDEX_FALL_THROUGH, p->fall_through))
+ goto nla_put_failure;
+ nla_nest_end(skb, nest);
+ } else {
+ if (p->perfect) {
+ t->tcm_handle = r - p->perfect;
+ } else {
+ struct tcindex_filter *f;
+ struct tcindex_filter __rcu **fp;
+ int i;
+
+ t->tcm_handle = 0;
+ for (i = 0; !t->tcm_handle && i < p->hash; i++) {
+ fp = &p->h[i];
+ for (f = rtnl_dereference(*fp);
+ !t->tcm_handle && f;
+ fp = &f->next, f = rtnl_dereference(*fp)) {
+ if (&f->result == r)
+ t->tcm_handle = f->key;
+ }
+ }
+ }
+ pr_debug("handle = %d\n", t->tcm_handle);
+ if (r->res.class &&
+ nla_put_u32(skb, TCA_TCINDEX_CLASSID, r->res.classid))
+ goto nla_put_failure;
+
+ if (tcf_exts_dump(skb, &r->exts) < 0)
+ goto nla_put_failure;
+ nla_nest_end(skb, nest);
+
+ if (tcf_exts_dump_stats(skb, &r->exts) < 0)
+ goto nla_put_failure;
+ }
+
+ return skb->len;
+
+nla_put_failure:
+ nla_nest_cancel(skb, nest);
+ return -1;
+}
+
+static void tcindex_bind_class(void *fh, u32 classid, unsigned long cl,
+ void *q, unsigned long base)
+{
+ struct tcindex_filter_result *r = fh;
+
+ if (r && r->res.classid == classid) {
+ if (cl)
+ __tcf_bind_filter(q, &r->res, base);
+ else
+ __tcf_unbind_filter(q, &r->res);
+ }
+}
+
+static struct tcf_proto_ops cls_tcindex_ops __read_mostly = {
+ .kind = "tcindex",
+ .classify = tcindex_classify,
+ .init = tcindex_init,
+ .destroy = tcindex_destroy,
+ .get = tcindex_get,
+ .change = tcindex_change,
+ .delete = tcindex_delete,
+ .walk = tcindex_walk,
+ .dump = tcindex_dump,
+ .bind_class = tcindex_bind_class,
+ .owner = THIS_MODULE,
+};
+
+static int __init init_tcindex(void)
+{
+ return register_tcf_proto_ops(&cls_tcindex_ops);
+}
+
+static void __exit exit_tcindex(void)
+{
+ unregister_tcf_proto_ops(&cls_tcindex_ops);
+}
+
+module_init(init_tcindex)
+module_exit(exit_tcindex)
+MODULE_LICENSE("GPL");
--
2.30.2

View File

@ -0,0 +1,27 @@
From 65e00ae524f82cffb57abf3fa3f8dbac8a2bda7a Mon Sep 17 00:00:00 2001
From: Taras Pudiak <taras@vyos.io>
Date: Wed, 30 Aug 2023 14:59:38 +0300
Subject: [PATCH] Fixed compatibility with kernel 5.4.254
---
compatibility.h | 4 ----
1 file changed, 4 deletions(-)
diff --git a/compatibility.h b/compatibility.h
index d1e044d..9eee6a9 100644
--- a/compatibility.h
+++ b/compatibility.h
@@ -612,10 +612,6 @@
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0) */
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) */
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0) */
- static inline void eth_hw_addr_set(struct net_device *dev, const u8 *addr)
- {
- memcpy(dev->dev_addr, addr, 6);
- }
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,19,0) */
--
2.34.1

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 5.4.83 Kernel Configuration
# Linux/x86 5.4.173 Kernel Configuration
#
#
@ -139,6 +139,8 @@ CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_NUMA_BALANCING=y
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
CONFIG_MEMCG=y
@ -287,7 +289,7 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y
#
# Processor type and features
#
CONFIG_ZONE_DMA=y
# CONFIG_ZONE_DMA is not set
CONFIG_SMP=y
CONFIG_X86_FEATURE_NAMES=y
CONFIG_X86_X2APIC=y
@ -392,7 +394,12 @@ CONFIG_X86_CPUID=m
CONFIG_X86_DIRECT_GBPAGES=y
# CONFIG_X86_CPA_STATISTICS is not set
# CONFIG_AMD_MEM_ENCRYPT is not set
# CONFIG_NUMA is not set
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=6
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
@ -422,10 +429,10 @@ CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_KEXEC_FILE is not set
@ -453,6 +460,7 @@ CONFIG_HAVE_LIVEPATCH=y
CONFIG_ARCH_HAS_ADD_PAGES=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
CONFIG_ARCH_ENABLE_THP_MIGRATION=y
@ -499,6 +507,7 @@ CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_NUMA=y
CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
@ -513,6 +522,7 @@ CONFIG_ACPI_BGRT=y
# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set
CONFIG_ACPI_NFIT=m
# CONFIG_NFIT_SECURITY_DEBUG is not set
# CONFIG_ACPI_HMAT is not set
CONFIG_HAVE_ACPI_APEI=y
CONFIG_HAVE_ACPI_APEI_NMI=y
CONFIG_ACPI_APEI=y
@ -867,6 +877,7 @@ CONFIG_COREDUMP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
@ -886,7 +897,6 @@ CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_CONTIG_ALLOC=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
@ -932,7 +942,8 @@ CONFIG_PACKET_DIAG=m
CONFIG_UNIX=y
CONFIG_UNIX_SCM=y
CONFIG_UNIX_DIAG=m
# CONFIG_TLS is not set
CONFIG_TLS=y
CONFIG_TLS_DEVICE=y
CONFIG_XFRM=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=m
@ -1568,6 +1579,7 @@ CONFIG_NET_FLOW_LIMIT=y
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set
CONFIG_STREAM_PARSER=y
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
@ -1617,6 +1629,8 @@ CONFIG_LWTUNNEL=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_DST_CACHE=y
CONFIG_GRO_CELLS=y
CONFIG_SOCK_VALIDATE_XMIT=y
CONFIG_NET_SOCK_MSG=y
CONFIG_NET_DEVLINK=y
CONFIG_PAGE_POOL=y
CONFIG_FAILOVER=m
@ -1927,7 +1941,7 @@ CONFIG_SCSI_NETLINK=y
CONFIG_BLK_DEV_SD=m
# CONFIG_CHR_DEV_ST is not set
CONFIG_BLK_DEV_SR=m
# CONFIG_CHR_DEV_SG is not set
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
# CONFIG_SCSI_ENCLOSURE is not set
CONFIG_SCSI_CONSTANTS=y
@ -2280,9 +2294,8 @@ CONFIG_CHELSIO_T3=m
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
CONFIG_CHELSIO_LIB=m
CONFIG_NET_VENDOR_CISCO=y
CONFIG_ENIC=m
CONFIG_NET_VENDOR_CORTINA=y
# CONFIG_NET_VENDOR_CISCO is not set
# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_CX_ECAT is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
@ -2299,7 +2312,7 @@ CONFIG_BE2NET_LANCER=y
CONFIG_BE2NET_SKYHAWK=y
CONFIG_NET_VENDOR_EZCHIP=y
CONFIG_NET_VENDOR_GOOGLE=y
# CONFIG_GVE is not set
CONFIG_GVE=m
CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=m
CONFIG_NET_VENDOR_HUAWEI=y
@ -2310,17 +2323,23 @@ CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_E1000E_HWTS=y
# CONFIG_IGB is not set
CONFIG_IGB=m
CONFIG_IGB_HWMON=y
CONFIG_IGB_DCA=y
CONFIG_IGBVF=m
CONFIG_IXGB=m
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
# CONFIG_I40E is not set
CONFIG_IXGBE=m
CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE_DCA=y
CONFIG_IXGBE_IPSEC=y
CONFIG_IXGBEVF=m
CONFIG_IXGBEVF_IPSEC=y
CONFIG_I40E=m
CONFIG_IAVF=m
CONFIG_I40EVF=m
CONFIG_ICE=m
# CONFIG_FM10K is not set
# CONFIG_IGC is not set
CONFIG_IGC=m
CONFIG_JME=m
CONFIG_NET_VENDOR_MARVELL=y
# CONFIG_MVMDIO is not set
@ -2341,6 +2360,7 @@ CONFIG_MLX5_EN_ARFS=y
CONFIG_MLX5_EN_RXNFC=y
CONFIG_MLX5_MPFS=y
# CONFIG_MLX5_CORE_IPOIB is not set
# CONFIG_MLX5_TLS is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
CONFIG_NET_VENDOR_MICREL=y
@ -2361,13 +2381,9 @@ CONFIG_NET_VENDOR_NETERION=y
CONFIG_S2IO=m
CONFIG_VXGE=m
# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP=m
# CONFIG_NFP_DEBUG is not set
CONFIG_NET_VENDOR_NI=y
# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
CONFIG_NET_VENDOR_8390=y
CONFIG_NE2K_PCI=m
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_8390 is not set
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_FORCEDETH=m
CONFIG_NET_VENDOR_OKI=y
@ -2375,8 +2391,7 @@ CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
CONFIG_HAMACHI=m
CONFIG_YELLOWFIN=m
CONFIG_NET_VENDOR_PENSANDO=y
# CONFIG_IONIC is not set
# CONFIG_NET_VENDOR_PENSANDO is not set
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_QLA3XXX=m
CONFIG_QLCNIC=m
@ -2386,11 +2401,8 @@ CONFIG_NETXEN_NIC=m
CONFIG_QED=m
CONFIG_QED_SRIOV=y
CONFIG_QEDE=m
CONFIG_NET_VENDOR_QUALCOMM=y
# CONFIG_QCOM_EMAC is not set
# CONFIG_RMNET is not set
CONFIG_NET_VENDOR_RDC=y
CONFIG_R6040=m
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_8139CP=m
CONFIG_8139TOO=m
@ -2401,8 +2413,7 @@ CONFIG_8139TOO_8129=y
CONFIG_R8169=m
CONFIG_NET_VENDOR_RENESAS=y
CONFIG_NET_VENDOR_ROCKER=y
CONFIG_NET_VENDOR_SAMSUNG=y
# CONFIG_SXGBE_ETH is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_SFC=m
@ -2416,7 +2427,7 @@ CONFIG_NET_VENDOR_SIS=y
CONFIG_SIS900=m
CONFIG_SIS190=m
# CONFIG_NET_VENDOR_SMSC is not set
CONFIG_NET_VENDOR_SOCIONEXT=y
# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
CONFIG_NET_VENDOR_SYNOPSYS=y
@ -2431,9 +2442,7 @@ CONFIG_VIA_RHINE=m
# CONFIG_VIA_RHINE_MMIO is not set
CONFIG_VIA_VELOCITY=m
# CONFIG_NET_VENDOR_WIZNET is not set
CONFIG_NET_VENDOR_XILINX=y
# CONFIG_XILINX_AXI_EMAC is not set
# CONFIG_XILINX_LL_TEMAC is not set
# CONFIG_NET_VENDOR_XILINX is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_NET_SB1000 is not set
@ -2513,9 +2522,9 @@ CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_CDC_EEM=m
# CONFIG_USB_NET_CDC_NCM is not set
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
# CONFIG_USB_NET_CDC_MBIM is not set
CONFIG_USB_NET_CDC_NCM=m
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
CONFIG_USB_NET_CDC_MBIM=m
# CONFIG_USB_NET_DM9601 is not set
# CONFIG_USB_NET_SR9700 is not set
# CONFIG_USB_NET_SR9800 is not set
@ -2530,10 +2539,10 @@ CONFIG_USB_NET_SMSC95XX=m
# CONFIG_USB_NET_ZAURUS is not set
# CONFIG_USB_NET_CX82310_ETH is not set
# CONFIG_USB_NET_KALMIA is not set
# CONFIG_USB_NET_QMI_WWAN is not set
CONFIG_USB_NET_QMI_WWAN=m
# CONFIG_USB_NET_INT51X1 is not set
# CONFIG_USB_IPHETH is not set
# CONFIG_USB_SIERRA_NET is not set
CONFIG_USB_SIERRA_NET=m
# CONFIG_USB_VL600 is not set
# CONFIG_USB_NET_CH9200 is not set
# CONFIG_USB_NET_AQC111 is not set
@ -2560,7 +2569,7 @@ CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_DFS_CERTIFIED is not set
# CONFIG_ATH9K_DYNACK is not set
# CONFIG_ATH9K_WOW is not set
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
CONFIG_ATH9K_CHANNEL_CONTEXT=y
CONFIG_ATH9K_PCOEM=y
# CONFIG_ATH9K_PCI_NO_EEPROM is not set
CONFIG_ATH9K_HTC=m
@ -2633,7 +2642,11 @@ CONFIG_LIBIPW=m
CONFIG_IWLEGACY=m
CONFIG_IWL4965=m
CONFIG_IWL3945=m
# stmicro driver
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_STMMAC_ETH=m
CONFIG_DWMAC_INTEL=m
CONFIG_STMMAC_PCI=m
#
# iwl3945 / iwl4965 Debugging Options
#
@ -3287,6 +3300,7 @@ CONFIG_BATTERY_MAX17042=m
# CONFIG_CHARGER_BQ25890 is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_BATTERY_RT5033 is not set
# CONFIG_CHARGER_RT9455 is not set
CONFIG_HWMON=y
CONFIG_HWMON_VID=m
@ -4787,7 +4801,6 @@ CONFIG_MANDATORY_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_INOTIFY_STACKFS=y
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS4_FS is not set
@ -5003,15 +5016,15 @@ CONFIG_CRYPTO=y
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=y
CONFIG_CRYPTO_KPP2=y
@ -5021,8 +5034,8 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_CRYPTD=m
@ -5045,11 +5058,11 @@ CONFIG_CRYPTO_ECRDSA=m
# Authenticated Encryption with Associated Data
#
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=m
CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_CHACHA20POLY1305=m
CONFIG_CRYPTO_AEGIS128=m
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
CONFIG_CRYPTO_SEQIV=m
CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_ECHAINIV=m
#
@ -5057,7 +5070,7 @@ CONFIG_CRYPTO_ECHAINIV=m
#
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTR=m
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_LRW=m
@ -5089,7 +5102,7 @@ CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_XXHASH=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
CONFIG_CRYPTO_GHASH=m
CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_POLY1305_X86_64=m
CONFIG_CRYPTO_MD4=m
@ -5170,12 +5183,12 @@ CONFIG_CRYPTO_ZSTD=m
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_DRBG_MENU=m
CONFIG_CRYPTO_DRBG_MENU=y
CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
# CONFIG_CRYPTO_DRBG_CTR is not set
CONFIG_CRYPTO_DRBG=m
CONFIG_CRYPTO_JITTERENTROPY=m
CONFIG_CRYPTO_DRBG=y
CONFIG_CRYPTO_JITTERENTROPY=y
CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
@ -5204,6 +5217,7 @@ CONFIG_CRYPTO_DEV_SP_PSP=y
# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set
# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
# CONFIG_CRYPTO_DEV_CHELSIO is not set
# CONFIG_CRYPTO_DEV_CHELSIO_TLS is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y

6
packages/minisign/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
minisign/
*.deb
*.dsc
*.buildinfo
*.changes
*.git

31
packages/minisign/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,31 @@
// Copyright (C) 2020-2021 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
// NOTE: we can build with -d as the libbpf dependency is installed manually
// and not via a DEB package
def pkgList = [
['name': 'minisign',
'scmCommit': '0.9',
'scmUrl': 'https://github.com/jedisct1/minisign',
'buildCmd': 'cd ..; ./build-minisign.sh'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('minisign', pkgList, null, "**/packages/minisign/*")

View File

@ -0,0 +1,33 @@
#!/bin/sh
CWD=$(pwd)
set -e
SRC=minisign
if [ ! -d ${SRC} ]; then
echo "source directory does not exists, please 'git clone'"
exit 1
fi
# Build instructions as per https://github.com/jedisct1/minisign/blob/master/README.md
BUILD_DIR="${SRC}/build"
mkdir -p ${BUILD_DIR}
cd ${BUILD_DIR}
cmake ..
make
# install
mkdir -p usr/bin
cp minisign usr/bin
fpm --input-type dir --output-type deb --name minisign \
--maintainer "VyOS Package Maintainers <maintainers@vyos.net>" \
--description "A dead simple tool to sign files and verify signatures." \
--depends libsodium23 --architecture $(dpkg --print-architecture) \
--version $(git describe --always) --license ISC --deb-compression gz usr
cp *.deb ${CWD}
# do not confuse Jenkins by providing multiple minisign deb files
cd ${CWD}
rm -rf ${BUILD_DIR}

View File

@ -15,10 +15,10 @@
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// Using a version specifier library, use 'equuleus' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@current')_
@Library('vyos-build@equuleus')_
def pkgList = [
// libnftnl

6
packages/ocserv/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
ocserv/
*.deb
*.dsc
*.buildinfo
*.changes
*.git

31
packages/ocserv/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,31 @@
// Copyright (C) 2020 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'equuleus' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
def pkgList = [
['name': 'ocserv',
'scmCommit': 'debian/1.1.6-3',
'scmUrl': 'https://salsa.debian.org/debian/ocserv/',
'buildCmd': 'dpkg-buildpackage -uc -us -tc -b -d'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('ocserv', pkgList, null, "**/packages/ocserv/*")

1
packages/telegraf/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
telegraf/

32
packages/telegraf/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,32 @@
// Copyright (C) 2020-2021 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
// NOTE: we can build with -d as the libbpf dependency is installed manually
// and not via a DEB package
def pkgList = [
['name': 'telegraf',
'scmCommit': 'v1.23.1',
'scmUrl': 'https://github.com/influxdata/telegraf.git',
'buildCmd': 'cd ..; ./build.sh'],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('telegraf', pkgList, null, "**/packages/telegraf/*")

22
packages/telegraf/build.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
CWD=$(pwd)
set -e
SRC=telegraf
if [ ! -d ${SRC} ]; then
echo "Source directory does not exists, please 'git clone'"
exit 1
fi
PLUGIN_DIR=${CWD}/plugins
echo "I: Selecting Input plugins"
cp ${PLUGIN_DIR}/inputs/all/all.go ${SRC}/plugins/inputs/all/all.go
echo "I: Selecting Output plugins"
cp ${PLUGIN_DIR}/outputs/all/all.go ${SRC}/plugins/outputs/all/all.go
echo "I: Build Debian amd64 package"
cd ${SRC}
export PATH=/opt/go/bin:$PATH
LDFLAGS=-w make amd64.deb

View File

@ -0,0 +1,72 @@
package all
import (
//Blank imports for plugins to register themselves
_ "github.com/influxdata/telegraf/plugins/inputs/azure_storage_queue"
_ "github.com/influxdata/telegraf/plugins/inputs/bond"
_ "github.com/influxdata/telegraf/plugins/inputs/cgroup"
_ "github.com/influxdata/telegraf/plugins/inputs/conntrack"
_ "github.com/influxdata/telegraf/plugins/inputs/cpu"
_ "github.com/influxdata/telegraf/plugins/inputs/disk"
_ "github.com/influxdata/telegraf/plugins/inputs/diskio"
_ "github.com/influxdata/telegraf/plugins/inputs/disque"
_ "github.com/influxdata/telegraf/plugins/inputs/dmcache"
_ "github.com/influxdata/telegraf/plugins/inputs/dns_query"
_ "github.com/influxdata/telegraf/plugins/inputs/docker"
_ "github.com/influxdata/telegraf/plugins/inputs/docker_log"
_ "github.com/influxdata/telegraf/plugins/inputs/ethtool"
_ "github.com/influxdata/telegraf/plugins/inputs/exec"
_ "github.com/influxdata/telegraf/plugins/inputs/execd"
_ "github.com/influxdata/telegraf/plugins/inputs/file"
_ "github.com/influxdata/telegraf/plugins/inputs/filecount"
_ "github.com/influxdata/telegraf/plugins/inputs/filestat"
_ "github.com/influxdata/telegraf/plugins/inputs/fireboard"
_ "github.com/influxdata/telegraf/plugins/inputs/hddtemp"
_ "github.com/influxdata/telegraf/plugins/inputs/hugepages"
_ "github.com/influxdata/telegraf/plugins/inputs/influxdb"
_ "github.com/influxdata/telegraf/plugins/inputs/influxdb_listener"
_ "github.com/influxdata/telegraf/plugins/inputs/influxdb_v2_listener"
_ "github.com/influxdata/telegraf/plugins/inputs/intel_pmu"
_ "github.com/influxdata/telegraf/plugins/inputs/intel_powerstat"
_ "github.com/influxdata/telegraf/plugins/inputs/intel_rdt"
_ "github.com/influxdata/telegraf/plugins/inputs/internal"
_ "github.com/influxdata/telegraf/plugins/inputs/internet_speed"
_ "github.com/influxdata/telegraf/plugins/inputs/interrupts"
_ "github.com/influxdata/telegraf/plugins/inputs/ipmi_sensor"
_ "github.com/influxdata/telegraf/plugins/inputs/ipset"
_ "github.com/influxdata/telegraf/plugins/inputs/iptables"
_ "github.com/influxdata/telegraf/plugins/inputs/ipvs"
_ "github.com/influxdata/telegraf/plugins/inputs/kernel"
_ "github.com/influxdata/telegraf/plugins/inputs/kernel_vmstat"
_ "github.com/influxdata/telegraf/plugins/inputs/mdstat"
_ "github.com/influxdata/telegraf/plugins/inputs/mem"
_ "github.com/influxdata/telegraf/plugins/inputs/net"
_ "github.com/influxdata/telegraf/plugins/inputs/netstat"
_ "github.com/influxdata/telegraf/plugins/inputs/nstat"
_ "github.com/influxdata/telegraf/plugins/inputs/ntpq"
_ "github.com/influxdata/telegraf/plugins/inputs/ping"
_ "github.com/influxdata/telegraf/plugins/inputs/powerdns_recursor"
_ "github.com/influxdata/telegraf/plugins/inputs/processes"
_ "github.com/influxdata/telegraf/plugins/inputs/procstat"
_ "github.com/influxdata/telegraf/plugins/inputs/sensors"
_ "github.com/influxdata/telegraf/plugins/inputs/sflow"
_ "github.com/influxdata/telegraf/plugins/inputs/slab"
_ "github.com/influxdata/telegraf/plugins/inputs/smart"
_ "github.com/influxdata/telegraf/plugins/inputs/snmp"
_ "github.com/influxdata/telegraf/plugins/inputs/snmp_legacy"
_ "github.com/influxdata/telegraf/plugins/inputs/snmp_trap"
_ "github.com/influxdata/telegraf/plugins/inputs/socket_listener"
_ "github.com/influxdata/telegraf/plugins/inputs/socketstat"
_ "github.com/influxdata/telegraf/plugins/inputs/syslog"
_ "github.com/influxdata/telegraf/plugins/inputs/sysstat"
_ "github.com/influxdata/telegraf/plugins/inputs/system"
_ "github.com/influxdata/telegraf/plugins/inputs/systemd_units"
_ "github.com/influxdata/telegraf/plugins/inputs/tail"
_ "github.com/influxdata/telegraf/plugins/inputs/tcp_listener"
_ "github.com/influxdata/telegraf/plugins/inputs/temp"
_ "github.com/influxdata/telegraf/plugins/inputs/twemproxy"
_ "github.com/influxdata/telegraf/plugins/inputs/udp_listener"
_ "github.com/influxdata/telegraf/plugins/inputs/wireguard"
_ "github.com/influxdata/telegraf/plugins/inputs/wireless"
_ "github.com/influxdata/telegraf/plugins/inputs/x509_cert"
)

View File

@ -0,0 +1,9 @@
package all
import (
//Blank imports for plugins to register themselves
_ "github.com/influxdata/telegraf/plugins/outputs/azure_data_explorer"
_ "github.com/influxdata/telegraf/plugins/outputs/http"
_ "github.com/influxdata/telegraf/plugins/outputs/influxdb_v2"
_ "github.com/influxdata/telegraf/plugins/outputs/prometheus_client"
)

6
packages/wide-dhcpv6/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
wide-dhcpv6/
*.deb
*.dsc
*.buildinfo
*.changes
*.git

30
packages/wide-dhcpv6/Jenkinsfile vendored Normal file
View File

@ -0,0 +1,30 @@
// Copyright (C) 2020-2021 VyOS maintainers and contributors
//
// This program is free software; you can redistribute it and/or modify
// in order to easy exprort images built to "external" world
// it under the terms of the GNU General Public License version 2 or later as
// published by the Free Software Foundation.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
@NonCPS
// Using a version specifier library, use 'current' branch. The underscore (_)
// is not a typo! You need this underscore if the line immediately after the
// @Library annotation is not an import statement!
@Library('vyos-build@equuleus')_
def pkgList = [
['name': 'wide-dhcpv6',
'scmCommit': 'debian/20080615-23',
'scmUrl': 'https://salsa.debian.org/debian/wide-dhcpv6',
'buildCmd': '''cd ..; ./build-wide.sh'''],
]
// Start package build using library function from https://github.com/vyos/vyos-build
buildPackage('wide-dhcpv6', pkgList, null, "**/packages/wide-dhcpv6/*")

View File

@ -0,0 +1,25 @@
#!/bin/sh
CWD=$(pwd)
set -e
WIDE_SRC=wide-dhcpv6
if [ ! -d ${WIDE_SRC} ]; then
echo "Source directory does not exists, please 'git clone'"
exit 1
fi
PATCH_DIR=${CWD}/patches
if [ -d $PATCH_DIR ]; then
for patch in $(ls ${PATCH_DIR})
do
echo "I: Apply patch: ${patch} to main repository"
cp ${PATCH_DIR}/${patch} ${WIDE_SRC}/debian/patches/
echo ${patch} >> ${WIDE_SRC}/debian/patches/series
done
fi
cd ${WIDE_SRC}
echo "I: Build Debian Package"
dpkg-buildpackage -uc -us -tc -b

View File

@ -0,0 +1,230 @@
From 1e4a9a7b61090043924f2aa9359dcbc9f5e11bfc Mon Sep 17 00:00:00 2001
From: Brandon Stepler <brandon@stepler.net>
Date: Mon, 25 Jan 2021 14:18:57 +0000
Subject: [PATCH] dhcpc6: support per-interface client DUIDs
---
cfparse.y | 13 +++++++++++--
cftoken.l | 10 ++++++++++
config.c | 27 +++++++++++++++++++++++++++
config.h | 3 ++-
dhcp6c.c | 11 ++++++++---
dhcp6c.conf.5 | 6 ++++++
6 files changed, 64 insertions(+), 6 deletions(-)
diff --git a/cfparse.y b/cfparse.y
index 9e685f4..244987c 100644
--- a/cfparse.y
+++ b/cfparse.y
@@ -116,6 +116,7 @@ static void cleanup_cflist __P((struct cf_list *));
%token BCMCS_SERVERS BCMCS_NAME
%token INFO_ONLY
%token SCRIPT DELAYEDKEY
+%token CLIENT_ID CLIENT_ID_DUID
%token AUTHENTICATION PROTOCOL ALGORITHM DELAYED RECONFIG HMACMD5 MONOCOUNTER
%token AUTHNAME RDM KEY
%token KEYINFO REALM KEYID SECRET KEYNAME EXPIRE
@@ -134,8 +135,8 @@ static void cleanup_cflist __P((struct cf_list *));
struct dhcp6_poolspec *pool;
}
-%type <str> IFNAME HOSTNAME AUTHNAME KEYNAME DUID_ID STRING QSTRING IAID
-%type <str> POOLNAME PROFILENAME
+%type <str> IFNAME HOSTNAME CLIENT_ID_DUID AUTHNAME KEYNAME DUID_ID
+%type <str> STRING QSTRING IAID POOLNAME PROFILENAME
%type <num> NUMBER duration authproto authalg authrdm
%type <list> declaration declarations dhcpoption ifparam ifparams
%type <list> address_list address_list_ent dhcpoption_list
@@ -639,6 +640,14 @@ dhcpoption:
/* no value */
$$ = l;
}
+ | CLIENT_ID CLIENT_ID_DUID
+ {
+ struct cf_list *l;
+
+ MAKE_CFLIST(l, DHCPOPT_CLIENT_ID, NULL, NULL);
+ l->ptr = $2;
+ $$ = l;
+ }
| AUTHENTICATION AUTHNAME
{
struct cf_list *l;
diff --git a/cftoken.l b/cftoken.l
index e266ac2..d7edd1f 100644
--- a/cftoken.l
+++ b/cftoken.l
@@ -119,6 +119,7 @@ ecl \}
%s S_HOST
%s S_DUID
%s S_IA
+%s S_CID
%s S_AUTH
%s S_KEY
%s S_SECRET
@@ -249,6 +250,15 @@ ecl \}
/* duration */
<S_CNF>infinity { DECHO; return (INFINITY); }
+ /* client-id option */
+<S_CNF>client-id { DECHO; BEGIN S_CID; return (CLIENT_ID); }
+<S_CID>{duid} {
+ DECHO;
+ yylval.str = strdup(yytext);
+ BEGIN S_CNF;
+ return (CLIENT_ID_DUID);
+}
+
/* authentication option */
<S_CNF>authentication { DECHO; BEGIN S_AUTH; return (AUTHENTICATION); }
<S_AUTH>{string} {
diff --git a/config.c b/config.c
index 70f6287..0cbe631 100644
--- a/config.c
+++ b/config.c
@@ -100,6 +100,7 @@ struct dhcp6_ifconf {
struct dhcp6_ifconf *next;
char *ifname;
+ struct duid duid;
/* configuration flags */
u_long send_flags;
@@ -1366,6 +1367,7 @@ configure_commit()
/* commit interface configuration */
for (ifp = dhcp6_if; ifp; ifp = ifp->next) {
/* re-initialization */
+ duidfree(&ifp->duid);
ifp->send_flags = 0;
ifp->allow_flags = 0;
dhcp6_clear_list(&ifp->reqopt_list);
@@ -1395,6 +1397,8 @@ configure_commit()
}
/* copy new configuration */
+ ifp->duid = ifc->duid;
+ ifc->duid.duid_id = NULL;
ifp->send_flags = ifc->send_flags;
ifp->allow_flags = ifc->allow_flags;
dhcp6_copy_list(&ifp->reqopt_list, &ifc->reqopt_list);
@@ -1505,6 +1509,7 @@ clear_ifconf(iflist)
ifc_next = ifc->next;
free(ifc->ifname);
+ duidfree(&ifc->duid);
dhcp6_clear_list(&ifc->reqopt_list);
clear_iaconf(&ifc->iaconf_list);
@@ -1635,6 +1640,28 @@ add_options(opcode, ifc, cfl0)
return (-1);
}
break;
+ case DHCPOPT_CLIENT_ID:
+ if (opcode != DHCPOPTCODE_SEND) {
+ debug_printf(LOG_ERR, FNAME,
+ "invalid operation (%d) "
+ "for option type (%d)",
+ opcode, cfl->type);
+ return (-1);
+ }
+ if (ifc->duid.duid_id != NULL) {
+ debug_printf(LOG_ERR, FNAME, "%s:%d "
+ "client-id is doubly specified on %s",
+ configfilename, cfl->line, ifc->ifname);
+ return (-1);
+ }
+ if ((configure_duid((char *)cfl->ptr,
+ &ifc->duid)) != 0) {
+ debug_printf(LOG_ERR, FNAME, "%s:%d "
+ "failed to configure DUID for %s",
+ configfilename, cfl->line, ifc->ifname);
+ return (-1);
+ }
+ break;
case DHCPOPT_AUTHINFO:
if (opcode != DHCPOPTCODE_SEND) {
debug_printf(LOG_ERR, FNAME,
diff --git a/config.h b/config.h
index 36a5aa3..cfcfdd5 100644
--- a/config.h
+++ b/config.h
@@ -69,6 +69,7 @@ struct dhcp6_if {
u_int32_t linkid; /* to send link-local packets */
/* multiple global address configuration is not supported now */
struct in6_addr addr; /* global address */
+ struct duid duid;
/* configuration parameters */
u_long send_flags;
@@ -267,7 +268,7 @@ enum { DECL_SEND, DECL_ALLOW, DECL_INFO_ONLY, DECL_REQUEST, DECL_DUID,
DECL_ADDRESS,
DECL_RANGE, DECL_ADDRESSPOOL,
IFPARAM_SLA_ID, IFPARAM_SLA_LEN, IFPARAM_IFID, IFPARAM_IFID_RAND,
- DHCPOPT_RAPID_COMMIT, DHCPOPT_AUTHINFO,
+ DHCPOPT_RAPID_COMMIT, DHCPOPT_CLIENT_ID, DHCPOPT_AUTHINFO,
DHCPOPT_DNS, DHCPOPT_DNSNAME,
DHCPOPT_IA_PD, DHCPOPT_IA_NA, DHCPOPT_NTP,
DHCPOPT_REFRESHTIME,
diff --git a/dhcp6c.c b/dhcp6c.c
index 849835e..875a147 100644
--- a/dhcp6c.c
+++ b/dhcp6c.c
@@ -433,6 +433,11 @@ client6_start(ifp)
}
dhcp6_reset_timer(ev);
+ if (!ifp->duid.duid_id && duidcpy(&ifp->duid, &client_duid)) {
+ debug_printf(LOG_ERR, FNAME, "failed to copy client DUID");
+ return (-1);
+ }
+
return (0);
}
@@ -1249,7 +1254,7 @@ client6_send(ev)
}
/* client ID */
- if (duidcpy(&optinfo.clientID, &client_duid)) {
+ if (duidcpy(&optinfo.clientID, &ifp->duid)) {
debug_printf(LOG_ERR, FNAME, "failed to copy client ID");
goto end;
}
@@ -1533,7 +1538,7 @@ client6_recvadvert(ifp, dh6, len, optinfo)
debug_printf(LOG_INFO, FNAME, "no client ID option");
return (-1);
}
- if (duidcmp(&optinfo->clientID, &client_duid)) {
+ if (duidcmp(&optinfo->clientID, &ifp->duid)) {
debug_printf(LOG_INFO, FNAME, "client DUID mismatch");
return (-1);
}
@@ -1805,7 +1810,7 @@ client6_recvreply(ifp, dh6, len, optinfo)
debug_printf(LOG_INFO, FNAME, "no client ID option");
return (-1);
}
- if (duidcmp(&optinfo->clientID, &client_duid)) {
+ if (duidcmp(&optinfo->clientID, &ifp->duid)) {
debug_printf(LOG_INFO, FNAME, "client DUID mismatch");
return (-1);
}
diff --git a/dhcp6c.conf.5 b/dhcp6c.conf.5
index 5693fb8..589510a 100644
--- a/dhcp6c.conf.5
+++ b/dhcp6c.conf.5
@@ -139,6 +139,12 @@ An
statement for
.Ar authname
must be provided.
+.It Ic client-id Ar ID
+means the client's DHCP unique identifier
+.Pq DUID .
+.Ar ID
+is a colon-separated hexadecimal sequence where each separated part
+must be composed of two hexadecimal values.
.El
.\"
.Sh Interface statement
--
2.20.1

View File

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2016 VyOS maintainers and contributors
# Copyright (C) 2016-2021 VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@ -31,3 +31,4 @@ export PACKER_LOG=1
mkdir -p "${PACKER_BUILD_DIR}"
packer build -only=qemu-image scripts/packer.json
cp "${PACKER_BUILD_DIR}/qemu/vyos_qemu_image.img" "$BUILD_DIR/vyos-$VERSION-$BUILD_ARCH.qcow2"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
#
# Copyright (C) 2019, VyOS maintainers and contributors
# Copyright (C) 2019-2021, VyOS maintainers and contributors
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 or later as
@ -42,8 +42,10 @@ import random
import traceback
import logging
import re
import json
from io import BytesIO, StringIO
from io import BytesIO
from io import StringIO
from datetime import datetime
EXCEPTION = 0
@ -51,32 +53,31 @@ now = datetime.now()
parser = argparse.ArgumentParser(description='Install and start a test VyOS vm.')
parser.add_argument('iso', help='ISO file to install')
parser.add_argument('disk', help='name of disk image file',
nargs='?',
parser.add_argument('disk', help='name of disk image file', nargs='?',
default='testinstall-{}-{}.img'.format(now.strftime('%Y%m%d-%H%M%S'),
"%04x" % random.randint(0,65535)))
parser.add_argument('--keep', help='Do not remove disk-image after installation',
action='store_true',
default=False)
action='store_true', default=False)
parser.add_argument('--silent', help='Do not show output on stdout unless an error has occured',
action='store_true',
default=False)
action='store_true', default=False)
parser.add_argument('--debug', help='Send all debug output to stdout',
action='store_true',
default=False)
action='store_true', default=False)
parser.add_argument('--logfile', help='Log to file')
parser.add_argument('--no-kvm', help='Disable use of kvm',
action='store_true',
default=False)
parser.add_argument('--configd', help='Execute testsuite with config daemon',
action='store_true',
parser.add_argument('--uefi', help='Boot using UEFI', action='store_true', default=False)
parser.add_argument('--raid', help='Perform a RAID-1 install', action='store_true', default=False)
parser.add_argument('--no-kvm', help='Disable use of kvm', action='store_true', default=False)
parser.add_argument('--configd', help='Execute testsuite with config daemon', action='store_true',
default=False)
parser.add_argument('--no-interfaces', help='Execute testsuite without interface tests to save time',
action='store_true', default=False)
parser.add_argument('--configtest', help='Execute load/commit config tests',
action='store_true',
default=False)
action='store_true', default=False)
args = parser.parse_args()
with open('data/defaults.json') as f:
vyos_defaults = json.load(f)
class StreamToLogger(object):
"""
Fake file-like stream object that redirects writes to a logger instance.
@ -108,37 +109,96 @@ def get_half_cpus():
cpu /= 2
return int(cpu)
def get_qemu_cmd(name, enable_kvm, disk_img, iso_img=None):
kvm = ""
def get_qemu_cmd(name, enable_kvm, enable_uefi, disk_img, raid=None, iso_img=None):
kvm = "-enable-kvm"
cpu = "-cpu host"
if not enable_kvm:
kvm = "--no-kvm"
cpu = ""
uefi = ""
uuid = "f48b60b2-e6ad-49ef-9d09-4245d0585e52"
if enable_uefi:
uefi = '-bios /usr/share/OVMF/OVMF_CODE.fd'
name = f'{name}-UEFI'
uuid = 'd27cf29e-4419-4407-8f82-dc73d1acd184'
bootindex = '1'
cdrom = ""
if iso_img:
cdrom = "-boot d -cdrom {}".format(iso_img)
cdrom = f' -boot d' \
f' -drive file={iso_img},format=raw,if=none,media=cdrom,id=drive-cd1,readonly=on' \
f' -device ahci,id=achi0' \
f' -device ide-cd,bus=achi0.0,drive=drive-cd1,id=cd1,bootindex={bootindex}'
# Set regular harddisk bootindex to 2 as we boot from a CDROM drive
bootindex = '2'
# test using half of the available CPUs on the system
cpucount = get_half_cpus()
macbase = '52:54:00:00:00'
cmd = f'qemu-system-x86_64 \
-name "{name}" \
-smp {cpucount} \
-m 2G \
-nic user,model=virtio,mac=52:54:99:12:34:56 \
-nic user,model=virtio,mac=52:54:99:12:34:57 \
-nic user,model=virtio,mac=52:54:99:12:34:58 \
-nic user,model=virtio,mac=52:54:99:12:34:59 \
-machine accel=kvm \
-smp sockets=1,cpus={cpucount},cores=1 \
-cpu host \
{uefi} \
-m 1G \
-vga none \
-nographic \
-machine accel=kvm \
-uuid {uuid} \
{cpu} \
{cdrom} \
{kvm} \
-drive format=raw,file={disk_img}'
-netdev user,id=n0 -device virtio-net-pci,netdev=n0,mac={macbase}:00,romfile="" \
-netdev user,id=n1 -device virtio-net-pci,netdev=n1,mac={macbase}:01,romfile="" \
-netdev user,id=n2 -device virtio-net-pci,netdev=n2,mac={macbase}:02,romfile="" \
-netdev user,id=n3 -device virtio-net-pci,netdev=n3,mac={macbase}:03,romfile="" \
-netdev user,id=n4 -device virtio-net-pci,netdev=n4,mac={macbase}:04,romfile="" \
-netdev user,id=n5 -device virtio-net-pci,netdev=n5,mac={macbase}:05,romfile="" \
-netdev user,id=n6 -device virtio-net-pci,netdev=n6,mac={macbase}:06,romfile="" \
-netdev user,id=n7 -device virtio-net-pci,netdev=n7,mac={macbase}:07,romfile="" \
-device virtio-scsi-pci,id=scsi0 \
-drive format=raw,file={disk_img},if=none,media=disk,id=drive-hd1,readonly=off \
-device scsi-hd,bus=scsi0.0,drive=drive-hd1,id=hd1,bootindex={bootindex}'
# dynamically increment bootindex - required for RAID system
bootindex = str(int(bootindex) + 1)
if raid:
cmd += f' -drive format=raw,file={raid},if=none,media=disk,id=drive-hd2,readonly=off' \
f' -device scsi-hd,bus=scsi0.0,drive=drive-hd2,id=hd2,bootindex={bootindex}'
return cmd
def shutdownVM(c, log, message=''):
#################################################
# Powering off system
#################################################
if message:
log.info(message)
c.sendline('poweroff now')
log.info('Shutting down virtual machine')
for i in range(30):
log.info('Waiting for shutdown...')
if not c.isalive():
log.info('VM is shut down!')
break
time.sleep(10)
else:
tmp = 'VM Did not shut down after 300sec'
log.error(tmp)
raise Exception(tmp)
def loginVM(c, log):
log.info('Waiting for login prompt')
c.expect('[Ll]ogin:', timeout=600)
c.sendline(default_user)
c.expect('[Pp]assword:')
c.sendline(default_password)
c.expect(op_mode_prompt)
log.info('Logged in!')
# Setting up logger
log = logging.getLogger()
@ -170,107 +230,120 @@ else:
output = sys.stdout.buffer
if not os.path.isfile(args.iso):
log.error("Unable to find iso image to install")
log.error('Unable to find iso image to install')
sys.exit(1)
if args.no_kvm:
log.error("KVM forced off by command line")
log.error('KVM forced off by command line')
kvm=False
elif not os.path.exists("/dev/kvm"):
log.error("KVM is not enabled on host, proceeding with software emulation")
elif not os.path.exists('/dev/kvm'):
log.error('KVM not enabled on host, proceeding with software emulation')
kvm=False
else:
kvm=True
# Creating diskimage!!
if not os.path.isfile(args.disk):
log.info("Creating Disk image {}".format(args.disk))
c = subprocess.check_output(["qemu-img", "create", args.disk, "2G"])
log.debug(c.decode())
else:
log.info("Diskimage already exists, using the existing one")
diskname_raid = None
def gen_disk(name):
if not os.path.isfile(name):
log.info(f'Creating Disk image {name}')
c = subprocess.check_output(['qemu-img', 'create', name, '2G'])
log.debug(c.decode())
else:
log.info(f'Diskimage "{name}" already exists, using the existing one.')
if args.raid:
filename, ext = os.path.splitext(args.disk)
diskname_raid = f'{filename}_disk1{ext}'
# change primary diskname, too
args.disk = f'{filename}_disk0{ext}'
gen_disk(diskname_raid)
# must be called after the raid disk as args.disk name is altered in the RAID path
gen_disk(args.disk)
test_timeout = 3 *3600 # 3 hours (in seconds)
try:
#################################################
# Installing image to disk
#################################################
log.info("Installing system")
cmd = get_qemu_cmd("TESTVM", kvm, args.disk, args.iso)
log.debug("Executing command: {}".format(cmd))
c = pexpect.spawn(cmd, logfile=stl)
log.info('Installing system')
cmd = get_qemu_cmd('TESTVM', kvm, args.uefi, args.disk, diskname_raid, args.iso)
log.debug(f'Executing command: {cmd}')
c = pexpect.spawn(cmd, logfile=stl, timeout=60)
#################################################
# Logging into VyOS system
#################################################
op_mode_prompt = r'vyos@vyos:~\$'
cfg_mode_prompt = r'vyos@vyos#'
default_user = 'vyos'
default_password = 'vyos'
try:
c.expect('Automatic boot in', timeout=10)
c.sendline('')
except pexpect.TIMEOUT:
log.warning("Did not find grub countdown window, ignoring")
log.warning('Did not find GRUB countdown window, ignoring')
log.info('Waiting for login prompt')
c.expect('[Ll]ogin:', timeout=300)
c.sendline('vyos')
c.expect('[Pp]assword:', timeout=10)
c.sendline('vyos')
c.expect(r'vyos@vyos:~\$')
log.info('Logged in!')
loginVM(c, log)
#################################################
# Installing into VyOS system
#################################################
log.info("Starting installer")
log.info('Starting installer')
c.sendline('install image')
c.expect('\nWould you like to continue?.*:')
c.sendline('yes')
log.info("Partitioning disk")
c.expect('\nPartition.*:')
c.sendline('')
c.expect('\nInstall the image on.*:')
c.sendline('')
c.expect(r'\nContinue\?.*:')
c.sendline('Yes')
c.expect('\nHow big of a root partition should I create?.*:')
c.sendline('')
log.info('Disk partitioned, installing')
c.expect('\nWhat would you like to name this image?.*:')
if args.raid:
c.expect('\nWould you like to configure RAID-1 mirroring on them?.*:')
c.sendline('yes')
# Erase all data on disks
c.expect('\nAre you sure you want to do this?.*:')
c.sendline('yes')
else:
log.info('Partitioning disk')
c.expect('\nPartition.*:')
c.sendline('')
c.expect('\nInstall the image on.*:')
c.sendline('')
c.expect(r'\nContinue\?.*:')
c.sendline('Yes')
c.expect('\nHow big of a root partition should I create?.*:')
c.sendline('')
log.info('Disk(s) partitioned, installing...')
c.expect('\nWhat would you like to name this image?.*:', timeout=600)
c.sendline('')
log.info('Copying files')
c.expect('\nWhich one should I copy to.*:', timeout=300)
c.expect('\nWhich one should I copy to.*:', timeout=600)
c.sendline('')
log.info('Files Copied!')
c.expect('\nEnter password for user.*:')
c.sendline('vyos')
c.sendline(default_user)
c.expect('\nRetype password for user.*:')
c.sendline('vyos')
c.expect('\nWhich drive should GRUB modify the boot partition on.*:')
c.sendline('')
c.expect(r'\nvyos@vyos:~\$')
c.sendline(default_password)
if not args.raid:
c.expect('\nWhich drive should GRUB modify the boot partition on.*:')
c.sendline('')
c.expect(op_mode_prompt)
log.info('system installed, shutting down')
#################################################
# Powering down installer
#################################################
log.info("Shutting down installation system")
c.sendline('poweroff')
c.expect(r'\nAre you sure you want to poweroff this system.*\]')
c.sendline('Y')
for i in range(30):
log.info("Waiting for shutdown...")
if not c.isalive():
log.info("VM is shut down!")
break
time.sleep(10)
else:
log.error("VM Did not shut down after 300sec, killing")
shutdownVM(c, log, 'Shutting down installation system')
c.close()
#################################################
# Booting installed system
#################################################
log.info("Booting installed system")
cmd = get_qemu_cmd("TESTVM", kvm, args.disk)
log.debug('Executing command: {}'.format(cmd))
log.info('Booting installed system')
cmd = get_qemu_cmd('TESTVM', kvm, args.uefi, args.disk, diskname_raid)
log.debug(f'Executing command: {cmd}')
c = pexpect.spawn(cmd, logfile=stl)
#################################################
@ -280,133 +353,230 @@ try:
c.expect('The highlighted entry will be executed automatically in', timeout=10)
c.sendline('')
except pexpect.TIMEOUT:
log.warning("Did not find grub countdown window, ignoring")
log.warning('Did not find GRUB countdown window, ignoring')
log.info('Waiting for login prompt')
c.expect('[Ll]ogin:', timeout=300)
c.sendline('vyos')
c.expect('[Pp]assword:', timeout=10)
c.sendline('vyos')
c.expect(r'vyos@vyos:~\$')
log.info('Logged in!')
# additional settling time
time.sleep(20)
loginVM(c, log)
################################################
# Always load the WiFi simulation module
################################################
c.sendline('sudo modprobe mac80211_hwsim')
c.expect(r'vyos@vyos:~\$')
c.expect(op_mode_prompt)
#################################################
# Start/stop config daemon
#################################################
if args.configd:
c.sendline('sudo systemctl start vyos-configd.service &> /dev/null')
c.expect(r'vyos@vyos:~\$')
else:
c.sendline('sudo systemctl stop vyos-configd.service &> /dev/null')
c.expect(r'vyos@vyos:~\$')
c.expect(op_mode_prompt)
#################################################
# Basic Configmode/Opmode switch
#################################################
log.info("Basic CLI configuration mode test")
log.info('Basic CLI configuration mode test')
c.sendline('configure')
c.expect(r'vyos@vyos#')
c.sendline('run show version')
c.expect(cfg_mode_prompt)
c.sendline('exit')
c.expect(r'vyos@vyos:~\$')
c.expect(op_mode_prompt)
c.sendline('show version')
c.expect(op_mode_prompt)
c.sendline('show version kernel')
c.expect(f'{vyos_defaults["kernel_version"]}-{vyos_defaults["kernel_flavor"]}')
c.expect(op_mode_prompt)
c.sendline('show version frr')
c.expect(op_mode_prompt)
c.sendline('show interfaces')
c.expect(op_mode_prompt)
#################################################
# Executing test-suite
#################################################
log.info("Executing test-suite ")
if args.raid:
# Verify RAID subsystem - by deleting a disk and re-create the array
# from scratch
c.sendline('cat /proc/mdstat')
c.expect(op_mode_prompt)
# run default smoketest suite
if not args.configtest:
shutdownVM(c, log, f'Shutdown VM and start with empty RAID member "{args.disk}"')
if os.path.exists(args.disk):
os.unlink(args.disk)
gen_disk(args.disk)
#################################################
# Booting RAID-1 system with one missing disk
#################################################
log.info('Booting RAID-1 system')
cmd = get_qemu_cmd('TESTVM', kvm, args.uefi, args.disk, diskname_raid)
# We need to swap boot indexes to boot from second harddisk so we can
# recreate the RAID on the first disk
cmd = cmd.replace('bootindex=1', 'bootindex=X')
cmd = cmd.replace('bootindex=2', 'bootindex=1')
cmd = cmd.replace('bootindex=X', 'bootindex=2')
log.debug(f'Executing command: {cmd}')
c = pexpect.spawn(cmd, logfile=stl)
#################################################
# Logging into VyOS system
#################################################
try:
c.expect('The highlighted entry will be executed automatically in', timeout=10)
c.sendline('')
except pexpect.TIMEOUT:
log.warning('Did not find GRUB countdown window, ignoring')
loginVM(c, log)
c.sendline('cat /proc/mdstat')
c.expect(op_mode_prompt)
log.info('Re-format new RAID member')
c.sendline('format disk sda like sdb')
c.sendline('yes')
c.expect(op_mode_prompt)
log.info('Add member to RAID1 (md0)')
c.sendline('add raid md0 member sda1')
c.expect(op_mode_prompt)
log.info('Now we need to wait for re-sync to complete')
start_time = time.time()
timeout = 60
while True:
if (start_time + timeout) < time.time():
break
c.sendline('cat /proc/mdstat')
c.expect(op_mode_prompt)
time.sleep(20)
# Reboot system with new primary RAID1 disk
shutdownVM(c, log, f'Shutdown VM and start from recovered RAID member "{args.disk}"')
log.info('Booting RAID-1 system')
cmd = get_qemu_cmd('TESTVM', kvm, args.uefi, args.disk, diskname_raid)
log.debug(f'Executing command: {cmd}')
c = pexpect.spawn(cmd, logfile=stl)
loginVM(c, log)
c.sendline('cat /proc/mdstat')
c.expect(op_mode_prompt)
elif not args.configtest:
# run default smoketest suite
if args.no_interfaces:
# remove interface tests as they consume a lot of time
c.sendline('sudo rm -f /usr/libexec/vyos/tests/smoke/cli/test_interfaces_*')
c.expect(op_mode_prompt)
log.info('Executing VyOS smoketests')
c.sendline('/usr/bin/vyos-smoketest')
i = c.expect(['\n +Invalid command:',
'\n +Set failed',
'No such file or directory',
r'\n\S+@\S+[$#]'], timeout=3600)
i = c.expect(['\n +Invalid command:', '\n +Set failed',
'No such file or directory', r'\n\S+@\S+[$#]'], timeout=test_timeout)
if i==0:
if i == 0:
raise Exception('Invalid command detected')
elif i==1:
elif i == 1:
raise Exception('Set syntax failed :/')
elif i==2:
log.error("Did not find VyOS smoketest, this should be an exception")
raise Exception("WTF? did not find VyOS smoketest, this should be an exception")
elif i == 2:
tmp = '(W)hy (T)he (F)ace? VyOS smoketest not found!'
log.error(tmp)
raise Exception(tmp)
c.sendline('echo EXITCODE:$\x16?')
i = c.expect(['EXITCODE:0', 'EXITCODE:\d+'], timeout=10)
if i==0:
i = c.expect(['EXITCODE:0', 'EXITCODE:\d+'])
if i == 0:
log.info('Smoketest finished successfully!')
pass
if i==1:
elif i == 1:
log.error('Smoketest failed :/')
raise Exception("Smoketest-failed, please look into debug output")
#log.info("Smoke test status")
#data = c.before.decode()
# else, run configtest suite
else:
log.info("Executing load config tests")
log.info('Adding a legacy WireGuard default keypair for migrations')
c.sendline('sudo mkdir -p /config/auth/wireguard/default')
c.expect(op_mode_prompt)
c.sendline('echo "aGx+fvW916Ej7QRnBbW3QMoldhNv1u95/WHz45zDmF0=" | sudo tee /config/auth/wireguard/default/private.key')
c.expect(op_mode_prompt)
c.sendline('echo "x39C77eavJNpvYbNzPSG3n1D68rHYei6q3AEBEyL1z8=" | sudo tee /config/auth/wireguard/default/public.key')
c.expect(op_mode_prompt)
log.info('Generating some OpenVPN keys')
subject = '/C=DE/ST=BY/O=VyOS/localityName=Cloud/commonName=vyos/' \
'organizationalUnitName=VyOS/emailAddress=maintainers@vyos.io/'
ca_cert = '/config/auth/ovpn_test_ca.pem'
ssl_cert = '/config/auth/ovpn_test_server.pem'
ssl_key = '/config/auth/ovpn_test_server.key'
dh_pem = '/config/auth/ovpn_test_dh.pem'
s2s_key = '/config/auth/ovpn_test_site2site.key'
auth_key = '/config/auth/ovpn_test_tls_auth.key'
c.sendline(f'openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 '\
f'-keyout {ssl_key} -out {ssl_cert} -subj {subject}')
c.expect(op_mode_prompt, timeout=600)
c.sendline(f'openssl req -new -x509 -key {ssl_key} -out {ca_cert} -subj {subject}')
c.expect(op_mode_prompt, timeout=600)
c.sendline(f'openssl dhparam -out {dh_pem} 2048')
c.expect(op_mode_prompt, timeout=600)
c.sendline(f'openvpn --genkey secret {s2s_key}')
c.expect(op_mode_prompt)
c.sendline(f'openvpn --genkey secret {auth_key}')
c.expect(op_mode_prompt)
script_file = '/config/scripts/vyos-foo-update.script'
c.sendline(f'echo "#!/bin/sh" > {script_file}; chmod 775 {script_file}')
c.expect(op_mode_prompt)
for file in [ca_cert, ssl_cert, ssl_key, dh_pem, s2s_key, auth_key]:
c.sendline(f'sudo chown openvpn:openvpn {file}')
c.expect(op_mode_prompt)
log.info('Executing load config tests')
c.sendline('/usr/bin/vyos-configtest')
i = c.expect(['\n +Invalid command:',
'No such file or directory',
r'\n\S+@\S+[$#]'], timeout=3600)
i = c.expect(['\n +Invalid command:', 'No such file or directory',
r'\n\S+@\S+[$#]'], timeout=test_timeout)
if i==0:
raise Exception('Invalid command detected')
elif i==1:
log.error("Did not find VyOS configtest, this should be an exception")
raise Exception("WTF? did not find VyOS configtest, this should be an exception")
tmp = '(W)hy (T)he (F)ace? VyOS smoketest not found!'
log.error(tmp)
raise Exception(tmp)
c.sendline('echo EXITCODE:$\x16?')
i = c.expect(['EXITCODE:0', 'EXITCODE:\d+'], timeout=10)
if i==0:
i = c.expect(['EXITCODE:0', 'EXITCODE:\d+'])
if i == 0:
log.info('Configtest finished successfully!')
pass
if i==1:
log.error('Configtest failed :/')
raise Exception("Configtest failed, please look into debug output")
elif i == 1:
tmp = 'Configtest failed :/ - check debug output'
log.error(tmp)
raise Exception(tmp)
#################################################
# Powering off system
#################################################
log.info("Powering off system ")
c.sendline('poweroff')
c.expect(r'\nAre you sure you want to poweroff this system.*\]')
c.sendline('Y')
log.info("Shutting down virtual machine")
for i in range(30):
log.info("Waiting for shutdown...")
if not c.isalive():
log.info("VM is shut down!")
break
time.sleep(10)
else:
log.error("VM Did not shut down after 300sec")
raise Exception("VM Did not shut down after 300sec")
shutdownVM(c, log, 'Powering off system')
c.close()
except pexpect.exceptions.TIMEOUT:
log.error("Timeout waiting for VyOS system")
log.error('Timeout waiting for VyOS system')
log.error(traceback.format_exc())
EXCEPTION = 1
except pexpect.exceptions.ExceptionPexpect:
log.error("Exeption while executing QEMU")
log.error("Is qemu working on this system?")
log.error('Exeption while executing QEMU')
log.error('Is qemu working on this system?')
log.error(traceback.format_exc())
EXCEPTION = 1
except Exception:
log.error("An unknown error occured when installing the VyOS system")
log.error('Unknown error occured while VyOS!')
traceback.print_exc()
EXCEPTION = 1
@ -416,15 +586,17 @@ except Exception:
log.info("Cleaning up")
if not args.keep:
log.info("Removing disk file: {}".format(args.disk))
log.info(f'Removing disk file: {args.disk}')
try:
os.remove(args.disk)
if diskname_raid:
os.remove(diskname_raid)
except Exception:
log.error("Exception while removing diskimage")
log.error('Exception while removing diskimage!')
log.error(traceback.format_exc())
EXCEPTION = 1
if EXCEPTION:
log.error("Hmm... System got an exception while processing")
log.error("The ISO is not considered usable")
log.error('Hmm... system got an exception while processing.')
log.error('The ISO image is not considered usable!')
sys.exit(1)

View File

@ -4,6 +4,4 @@ BUILD_DIR="$(scripts/query-json build/build-config.json build_dir)"
BUILD_ARCH="$(scripts/query-json build/build-config.json architecture)"
VERSION="$(cat $BUILD_DIR/version)"
ln -rnsf "$BUILD_DIR/live-image-$BUILD_ARCH.hybrid.iso" "$BUILD_DIR/vyos-$VERSION-$BUILD_ARCH.iso"
cp "$BUILD_DIR/live-image-$BUILD_ARCH.hybrid.iso" "$BUILD_DIR/vyos-$VERSION-$BUILD_ARCH.iso"

View File

@ -41,12 +41,13 @@ lb config noauto \
--linux-packages linux-image-{{kernel_version}} \
--bootloader syslinux,grub-efi \
--binary-images iso-hybrid \
--checksums 'sha256 md5' \
--debian-installer false \
--distribution {{distribution}} \
--iso-application "VyOS" \
--iso-publisher "{{build_by}}" \
--iso-volume "VyOS" \
--debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-utils,apt-transport-https,gnupg2" \
--debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-utils,ca-certificates,gnupg2" \
--mirror-bootstrap {{debian_mirror}} \
--mirror-chroot {{debian_mirror}} \
--mirror-chroot-security {{debian_security_mirror}} \
@ -59,7 +60,7 @@ lb config noauto \
--security true \
--backports true \
--apt-recommends false \
--apt-options "--yes -oAPT::Default-Release="current" -oAPT::Get::allow-downgrades=true" \
--apt-options "--yes -oAPT::Default-Release="equuleus" -oAPT::Get::allow-downgrades=true" \
--apt-indices false
"${@}"
"""

View File

@ -51,9 +51,12 @@ try:
# Retrieve the Git commit ID of the repository, 14 charaters will be sufficient
build_git = repo.head.object.hexsha[:14]
# If somone played around with the source tree and the build is "dirty", mark it
if repo.is_dirty():
build_git += "-dirty"
# If someone played around with the source tree and the build is "dirty", mark it.
# Release builds can be "ditry by design" (e.g. modified default config) though,
# so the dirtiness check is only applied to development builds.
if build_config["build_type"] == "development":
if repo.is_dirty():
build_git += "-dirty"
# Retrieve git branch name
git_branch = repo.active_branch.name
@ -100,6 +103,18 @@ version_data = {
'build_comment': build_config['build_comment']
}
os_release = f"""
PRETTY_NAME="VyOS {version} ({build_config['release_train']})"
NAME="VyOS"
VERSION_ID="{version}"
VERSION="{version} ({build_config['release_train']})"
VERSION_CODENAME=buster
ID=vyos
HOME_URL="https://vyos.io"
SUPPORT_URL="https://support.vyos.io"
BUG_REPORT_URL="https://vyos.dev"
"""
os.makedirs(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/share/vyos'), exist_ok=True)
with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/share/vyos/version.json'), 'w') as f:
json.dump(version_data, f)
@ -116,3 +131,8 @@ with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'opt/vyatta/etc/version'),
# neither we want to use lengthy paths in makefiles
with open(os.path.join(defaults.BUILD_DIR, 'version'), 'w') as f:
print(version, file=f)
# Define variables that influence to welcome message on boot
os.makedirs(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/lib/'), exist_ok=True)
with open(os.path.join(defaults.CHROOT_INCLUDES_DIR, 'usr/lib//os-release'), 'w') as f:
print(os_release, file=f)

View File

@ -1,2 +1,3 @@
cloud-init
awscli
amazon-cloudwatch-agent

View File

@ -20,9 +20,9 @@ system {
}
}
ntp {
server "0.pool.ntp.org"
server "1.pool.ntp.org"
server "2.pool.ntp.org"
server "time1.vyos.net"
server "time2.vyos.net"
server "time3.vyos.net"
}
console {
device ttyS0 {

View File

@ -11,9 +11,9 @@ system {
}
}
ntp {
server "0.pool.ntp.org"
server "1.pool.ntp.org"
server "2.pool.ntp.org"
server "time1.vyos.net"
server "time2.vyos.net"
server "time3.vyos.net"
}
console {
device ttyS0 {

View File

@ -20,9 +20,9 @@ system {
}
}
ntp {
server "0.pool.ntp.org"
server "1.pool.ntp.org"
server "2.pool.ntp.org"
server "time1.vyos.net"
server "time2.vyos.net"
server "time3.vyos.net"
}
console {
device ttyS0 {

View File

@ -11,9 +11,9 @@ system {
}
}
ntp {
server "0.pool.ntp.org"
server "1.pool.ntp.org"
server "2.pool.ntp.org"
server "time1.vyos.net"
server "time2.vyos.net"
server "time3.vyos.net"
}
console {
device ttyS1 {

View File

@ -20,9 +20,9 @@ system {
}
}
ntp {
server "0.pool.ntp.org"
server "1.pool.ntp.org"
server "2.pool.ntp.org"
server "time1.vyos.net"
server "time2.vyos.net"
server "time3.vyos.net"
}
console {
device ttyS0 {

Some files were not shown because too many files have changed in this diff Show More