diff options
72 files changed, 1457 insertions, 954 deletions
diff --git a/.github/reviewers.yml b/.github/reviewers.yml index 66c99e90..a1647d20 100644 --- a/.github/reviewers.yml +++ b/.github/reviewers.yml @@ -1,19 +1,3 @@ --- -docker-vyos/**: - - sever-sever - - DmitriyEshenko - -vars/**: - - c-po - - UnicronNL - -.github/**: - - c-po - - dmbaturin - - UnicronNL - -'**': - - c-po - - dmbaturin - - jestabro - - UnicronNL +"**/*": + - team: reviewers diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml index 81134206..a769145f 100644 --- a/.github/workflows/auto-author-assign.yml +++ b/.github/workflows/auto-author-assign.yml @@ -21,7 +21,7 @@ jobs: 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.1 + uses: shufo/auto-assign-reviewer-by-files@v1.1.4 with: token: ${{ secrets.GITHUB_TOKEN }} config: .github/reviewers.yml diff --git a/Jenkinsfile b/Jenkinsfile index 187089ad..9d6e6539 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -81,6 +81,9 @@ pipeline { triggeredBy cause: "UserIdCause" } } + environment { + PYTHONDONTWRITEBYTECODE = 1 + } steps { script { // Display Git commit Id used with the Jenkinsfile on the Job "Build History" pane @@ -96,12 +99,11 @@ pipeline { VYOS_VERSION = env.BASE_VERSION + sh(returnStdout: true, script: 'date -u +%Y%m%d%H%M').toString().trim() sh """ - ./configure \ + sudo --preserve-env ./build-vyos-image \ --build-by "${params.BUILD_BY}" \ --debian-mirror http://deb.debian.org/debian/ \ --build-type release \ - --version "${VYOS_VERSION}" ${CUSTOM_PACKAGES} - sudo make iso + --version "${VYOS_VERSION}" ${CUSTOM_PACKAGES} iso """ if (fileExists('build/live-image-amd64.hybrid.iso') == false) { @@ -174,7 +176,7 @@ pipeline { // 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')]) { + withCredentials([string(credentialsId: 'vyos.net-build-trigger-token', variable: 'TOKEN')]) { sh ''' curl -X POST --header "Accept: application/vnd.github.v3+json" \ --header "authorization: Bearer $TOKEN" --data '{"ref": "production"}' \ @@ -7,34 +7,11 @@ all: @echo "Make what specifically?" @echo "The most common target is 'iso'" -.PHONY: check_build_config -check_build_config: - @scripts/check-config - -.PHONY: prepare -prepare: - @set -e - @echo "Starting VyOS ISO image build" - - rm -rf build/config/* - mkdir -p build/config - cp -r data/live-build-config/* build/config/ - @scripts/live-build-config - @scripts/import-local-packages - - @scripts/make-version-file - - @scripts/build-flavour - .PHONY: iso .ONESHELL: -iso: check_build_config clean prepare - @echo "It's not like I'm building this specially for you or anything!" - cd $(build_dir) +iso: clean set -o pipefail - lb build 2>&1 | tee build.log; if [ $$? -ne 0 ]; then exit 1; fi - cd .. - @scripts/copy-image + @./build-vyos-image iso exit 0 .PHONY: prepare-package-env @@ -44,50 +21,6 @@ prepare-package-env: @scripts/pbuilder-config @scripts/pbuilder-setup -.PHONY: AWS -.ONESHELL: -AWS: clean prepare - @set -e - @echo "It's not like I'm building this specially for you or anything!" - mkdir -p build/config/includes.chroot/etc/cloud/cloud.cfg.d - cp tools/cloud-init/AWS/90_dpkg.cfg build/config/includes.chroot/etc/cloud/cloud.cfg.d/ - cp tools/cloud-init/AWS/cloud-init.list.chroot build/config/package-lists/ - cp -f tools/cloud-init/AWS/config.boot.default build/config/includes.chroot/opt/vyatta/etc/ - cd $(build_dir) - lb build 2>&1 | tee build.log - cd .. - @scripts/copy-image - -.PHONY: vep4600 -.ONESHELL: -vep4600: 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/etc/systemd/network - mkdir -p build/config/includes.chroot/usr/share/initramfs-tools/hooks - cp tools/dell/90-vep.chroot build/config/hooks/live/ - cp tools/dell/vep4600/*.link build/config/includes.chroot/etc/systemd/network/ - cp tools/dell/vep-hook build/config/includes.chroot/usr/share/initramfs-tools/hooks/ - cd $(build_dir) - lb build 2>&1 | tee build.log - cd .. - @scripts/copy-image - -.PHONY: vep1400 -.ONESHELL: -vep1400: 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/etc/systemd/network - mkdir -p build/config/includes.chroot/usr/share/initramfs-tools/hooks - cp tools/dell/90-vep.chroot build/config/hooks/live/ - cp tools/dell/vep1400/*.link build/config/includes.chroot/etc/systemd/network/ - cp tools/dell/vep-hook build/config/includes.chroot/usr/share/initramfs-tools/hooks/ - cd $(build_dir) - lb build 2>&1 | tee build.log - cd .. - @scripts/copy-image - .PHONY: checkiso .ONESHELL: checkiso: @@ -125,6 +58,7 @@ testraid: checkiso .ONESHELL: clean: @set -e + mkdir -p $(build_dir) cd $(build_dir) lb clean diff --git a/build-vyos-image b/build-vyos-image new file mode 120000 index 00000000..360be935 --- /dev/null +++ b/build-vyos-image @@ -0,0 +1 @@ +scripts/build-vyos-image
\ No newline at end of file diff --git a/configure b/configure deleted file mode 120000 index bb1734ea..00000000 --- a/configure +++ /dev/null @@ -1 +0,0 @@ -scripts/build-config
\ No newline at end of file diff --git a/data/architectures/amd64.toml b/data/architectures/amd64.toml new file mode 100644 index 00000000..abfec53a --- /dev/null +++ b/data/architectures/amd64.toml @@ -0,0 +1,15 @@ +additional_repositories = [ + "deb [arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/3004 bullseye main", + "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-rec-48 main" +] + +kernel_flavor = "amd64-vyos" + +# Packages added to images for x86 by default +packages = [ + "grub2", + "grub-pc", + "vyos-linux-firmware", + "vyos-intel-qat", + "telegraf" +] diff --git a/data/architectures/arm64.toml b/data/architectures/arm64.toml new file mode 100644 index 00000000..8ba3805a --- /dev/null +++ b/data/architectures/arm64.toml @@ -0,0 +1,3 @@ +# Packages included in ARM64 images by default +packages = ["grub-efi-arm"] +bootloaders = "grub-efi"
\ No newline at end of file diff --git a/data/architectures/armhf.toml b/data/architectures/armhf.toml new file mode 100644 index 00000000..252c85d4 --- /dev/null +++ b/data/architectures/armhf.toml @@ -0,0 +1,2 @@ +# Packages included in armhf images by default +packages = ["grub-efi-arm"] diff --git a/data/build-flavors/README.md b/data/build-flavors/README.md new file mode 100644 index 00000000..19716255 --- /dev/null +++ b/data/build-flavors/README.md @@ -0,0 +1,76 @@ +# VyOS build flavors + +VyOS supports multiple different hardware and virtual platforms. +Those platforms often need custom packages and may require custom +configs. To make maintenance of existing flavors simpler +and to allow everyone to make and maintain their own flavors, +the build scripts support storing flavor configuration in [TOML](https://toml.io) files. + +Flavor files must be in `data/build-flavors`. Here's an example: + +```toml +# Generic (aka "universal") ISO image + +image_format = "iso" + +# Include these packages in the image regardless of the architecture +packages = [ + # QEMU and Xen guest tools exist for multiple architectures + "qemu-guest-agent", + "vyos-xe-guest-utilities", +] + +[architectures.amd64] + # Hyper-V and VMware guest tools are x86-only + packages = ["hyperv-daemons", "vyos-1x-vmware"] +``` + +## Image format + +The `image_format` option specifies the default format to build. + +```toml +image_format = "iso" +``` + +**Note:** currently, ISO is the only supported format, +support for different flavors is in progress. + +## Including custom packages + +If you want the build scripts to include custom packages from repositories +in the image, you can list them in the `packages` field. + +For example, this is how to include the GNU Hello package: + +```toml +packages = ['hello'] +``` + +It's possible to include packages only in images with certain build architectures +by placing them in a subtable. + +If you want to include GNU Hello only in AMD64 images, do this: + +```toml +[architectures.amd64] + packages = ['hello'] +``` + +## Including custom files + +You can include files inside the SquashFS filesystem by adding entries +to the `includes_chroot` array. + +```toml +[[includes_chroot]] + path = "etc/question.txt" + data = ''' +Can you guess how this file ended up in the image? + ''' + + path = "etc/answer.txt" + data = ''' +It was in the flavor file! + ''' +``` diff --git a/data/build-flavors/azure-iso.toml b/data/build-flavors/azure-iso.toml new file mode 100644 index 00000000..b4774483 --- /dev/null +++ b/data/build-flavors/azure-iso.toml @@ -0,0 +1,5 @@ +image_format = "iso" + +packages = ["waagent"] + + diff --git a/data/build-flavors/edgecore.toml b/data/build-flavors/edgecore.toml new file mode 100644 index 00000000..efea4863 --- /dev/null +++ b/data/build-flavors/edgecore.toml @@ -0,0 +1,46 @@ +# ISO image for EdgeCore routers + +image_format = "iso" + +# udev rules for correct ordering of onboard NICs +[[includes_chroot]] + path = "lib/udev/rules.d/64-vyos-SAF51015I-net.rules" + data = ''' +ATTR{[dmi/id]board_name}!="SAF51015I-0318-EC", GOTO="end_ec_nic" + +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:02:00.0", ENV{VYOS_IFNAME}="eth1" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:03:00.0", ENV{VYOS_IFNAME}="eth2" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:04:00.0", ENV{VYOS_IFNAME}="eth3" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:05:00.0", ENV{VYOS_IFNAME}="eth4" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:06:00.0", ENV{VYOS_IFNAME}="eth5" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:06:00.1", ENV{VYOS_IFNAME}="eth6" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:06:00.2", ENV{VYOS_IFNAME}="eth7" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:06:00.3", ENV{VYOS_IFNAME}="eth8" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:0a:00.0", ENV{VYOS_IFNAME}="eth9" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:0a:00.1", ENV{VYOS_IFNAME}="eth10" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:0b:00.0", ENV{VYOS_IFNAME}="eth11" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:0b:00.1", ENV{VYOS_IFNAME}="eth12" + +LABEL="end_ec_nic" + +''' + +[[includes_chroot]] + path = "lib/udev/rules.d/64-vyos-SAF51003I-net.rules" + data = ''' +ATTR{[dmi/id]board_name}!="SAF51003I", GOTO="end_ec_nic" + +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:02:00.0", ENV{VYOS_IFNAME}="eth1", ATTR{ifalias}="LAN1" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:02:00.1", ENV{VYOS_IFNAME}="eth2", ATTR{ifalias}="LAN2" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:02:00.2", ENV{VYOS_IFNAME}="eth3", ATTR{ifalias}="LAN3" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:02:00.3", ENV{VYOS_IFNAME}="eth4", ATTR{ifalias}="LAN4" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:05:00.0", ENV{VYOS_IFNAME}="eth5", ATTR{ifalias}="LAN5" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:05:00.1", ENV{VYOS_IFNAME}="eth6", ATTR{ifalias}="LAN6" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:05:00.2", ENV{VYOS_IFNAME}="eth7", ATTR{ifalias}="LAN7" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:05:00.3", ENV{VYOS_IFNAME}="eth8", ATTR{ifalias}="LAN8" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:08:00.0", ENV{VYOS_IFNAME}="eth9", ATTR{ifalias}="DMZ" +ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:08:00.1", ENV{VYOS_IFNAME}="eth10", ATTR{ifalias}="WAN" + +LABEL="end_ec_nic" + +''' diff --git a/data/build-flavors/iso.toml b/data/build-flavors/iso.toml new file mode 100644 index 00000000..9bf7044d --- /dev/null +++ b/data/build-flavors/iso.toml @@ -0,0 +1,14 @@ +# Generic (aka "universal") ISO image + +image_format = "iso" + +# Include these packages in the image regardless of the architecture +packages = [ + # QEMU and Xen guest tools exist for multiple architectures + "qemu-guest-agent", + "vyos-xe-guest-utilities", +] + +[architectures.amd64] + # Hyper-V and VMware guest tools are x86-only + packages = ["hyperv-daemons", "vyos-1x-vmware"] diff --git a/data/build-flavors/xcpng.toml b/data/build-flavors/xcpng.toml new file mode 100644 index 00000000..81689b5e --- /dev/null +++ b/data/build-flavors/xcpng.toml @@ -0,0 +1,6 @@ +# Installation ISO for the XCP-ng virtualization platform + +image_formats = "iso" + +# Include these packages in the image +packages = ["xe-guest-utilities"] diff --git a/data/build-types/development.toml b/data/build-types/development.toml new file mode 100644 index 00000000..f0207a6a --- /dev/null +++ b/data/build-types/development.toml @@ -0,0 +1,8 @@ +packages = [ + "gdb", + "strace", + "apt-rdepends", + "tshark", + "vim", + "vyos-1x-smoketest" +] diff --git a/data/build-types/release.toml b/data/build-types/release.toml new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/data/build-types/release.toml diff --git a/data/defaults.json b/data/defaults.json deleted file mode 100644 index d666a686..00000000 --- a/data/defaults.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "architecture": "amd64", - "debian_mirror": "http://deb.debian.org/debian", - "debian_security_mirror": "http://deb.debian.org/debian", - "debian_distribution": "bullseye", - "vyos_mirror": "http://dev.packages.vyos.net/repositories/current", - "vyos_branch": "current", - "kernel_version": "5.10.140", - "kernel_flavor": "amd64-vyos", - "release_train": "sagitta", - "bootloaders": "syslinux,grub-efi", - "additional_repositories": [ - "deb [arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/3004 bullseye main", - "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-rec-47 main" - ], - "custom_packages": [] -} diff --git a/data/defaults.toml b/data/defaults.toml new file mode 100644 index 00000000..a759f8b9 --- /dev/null +++ b/data/defaults.toml @@ -0,0 +1,20 @@ +build_type = "development" + +architecture = "amd64" + +debian_distribution = "bullseye" + +debian_mirror = "http://deb.debian.org/debian" +debian_security_mirror = "http://deb.debian.org/debian-security" + +vyos_mirror = "http://dev.packages.vyos.net/repositories/current" + +vyos_branch = "current" +release_train = "current" + +kernel_version = "5.15.83" +bootloaders = "syslinux,grub-efi" + +website_url = "https://vyos.io" +support_url = "https://support.vyos.io" +bugtracker_url = "https://phabricator.vyos.net" diff --git a/data/generic-arm64.json b/data/generic-arm64.json deleted file mode 100644 index 6a32b7c0..00000000 --- a/data/generic-arm64.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "inherit_from": "data/defaults.json", - "architecture": "arm64", - "kernel_flavor": "v8-arm64-vyos", - "bootloaders": "grub-efi", - "additional_repositories": [ - "deb [arch=arm64] http://repo.powerdns.com/debian bullseye-rec-45 main", - "deb [arch=arm64] https://repos.influxdata.com/debian bullseye stable" - ] -} diff --git a/data/live-build-config/archives/current.pref.chroot b/data/live-build-config/archives/current.pref.chroot deleted file mode 100644 index 41126f04..00000000 --- a/data/live-build-config/archives/current.pref.chroot +++ /dev/null @@ -1,3 +0,0 @@ -Package: * -Pin: release n=current -Pin-Priority: 600 diff --git a/data/live-build-config/hooks/live/17-gen_initramfs.chroot b/data/live-build-config/hooks/live/17-gen_initramfs.chroot index 87b53bd6..8071c6b8 100755 --- a/data/live-build-config/hooks/live/17-gen_initramfs.chroot +++ b/data/live-build-config/hooks/live/17-gen_initramfs.chroot @@ -9,4 +9,15 @@ if [ -e /boot/initrd.img-* ]; then rm -f /boot/initrd.img-* fi -update-initramfs -c -k `ls /boot | grep vmlinuz- | sed 's/vmlinuz-//g'` +KERNEL_COUNT=$(find /boot/ -type f -name vmlinuz* | wc -l) +if [ "$KERNEL_COUNT" -gt 1 ]; then + echo "E: there is more than one kernel image file installed!" + echo "E: please make sure that kernel_version in data/defaults.toml is up to date" + echo "E: if your repository is up to date, then there is a bug" +fi + +kernel=`ls /boot | grep vmlinuz- | sed 's/vmlinuz-//g'` + +echo "I: Executing update-initramfs -c -k $kernel" + +update-initramfs -c -k $kernel diff --git a/data/live-build-config/hooks/live/18-enable-disable_services.chroot b/data/live-build-config/hooks/live/18-enable-disable_services.chroot index bc94d730..24ae88b8 100755 --- a/data/live-build-config/hooks/live/18-enable-disable_services.chroot +++ b/data/live-build-config/hooks/live/18-enable-disable_services.chroot @@ -38,6 +38,7 @@ systemctl disable lm-sensors.service systemctl disable snmpd.service systemctl disable conserver-server.service systemctl disable dropbear.service +systemctl disable fancontrol.service systemctl disable fastnetmon.service systemctl disable ddclient.service systemctl disable ocserv.service diff --git a/data/package-lists/vyos-arm.list.chroot b/data/package-lists/vyos-arm.list.chroot deleted file mode 100644 index 41fcddf8..00000000 --- a/data/package-lists/vyos-arm.list.chroot +++ /dev/null @@ -1 +0,0 @@ -grub-efi-arm diff --git a/data/package-lists/vyos-dev.list.chroot b/data/package-lists/vyos-dev.list.chroot deleted file mode 100644 index 40926aa1..00000000 --- a/data/package-lists/vyos-dev.list.chroot +++ /dev/null @@ -1,6 +0,0 @@ -gdb -strace -apt-rdepends -tshark -vim -vyos-1x-smoketest diff --git a/data/package-lists/vyos-x86.list.chroot b/data/package-lists/vyos-x86.list.chroot deleted file mode 100644 index 4fba090a..00000000 --- a/data/package-lists/vyos-x86.list.chroot +++ /dev/null @@ -1,8 +0,0 @@ -grub2 -grub-pc -qemu-guest-agent -hyperv-daemons -vyos-xe-guest-utilities -vyos-1x-vmware -vyos-linux-firmware -vyos-intel-qat diff --git a/docker/Dockerfile b/docker/Dockerfile index f1fac187..ab6b1c51 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -# Copyright (C) 2018-2021 VyOS maintainers and contributors +# Copyright (C) 2018-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 @@ -94,6 +94,9 @@ RUN apt-get update && apt-get install -y \ debootstrap \ live-build +# vyos-build now also makes use of TOML - install yq which has toml support +RUN pip install yq==3.1.0 + # 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 \ @@ -132,7 +135,8 @@ RUN eval $(opam env --root=/opt/opam --set-root) && opam install -y \ ctypes \ ctypes-foreign \ ctypes-build \ - containers + containers \ + fileutils # Build VyConf which is required to build libvyosconfig RUN eval $(opam env --root=/opt/opam --set-root) && \ @@ -214,13 +218,6 @@ RUN apt-get update && apt-get install -y \ pciutils \ yasm -# 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 \ @@ -339,6 +336,11 @@ Run git clone https://github.com/dsoprea/PyInotify.git /tmp/inotify && \ python3 setup.py --command-packages=stdeb.command bdist_deb && \ sudo dpkg -i ./deb_dist/python3-inotify*.deb +Run git clone https://github.com/nficano/humps.git /tmp/humps && \ + cd /tmp/humps && git checkout v3.8.0 && \ + python3 setup.py --command-packages=stdeb.command bdist_deb; cp deb_dist/*.deb .. && \ + dpkg -i /tmp/python3-pyhumps_*_all.deb + # Packages needed for vyos-1x-xdp package, gcc-multilib is not available on # arm64 but required by XDP RUN if dpkg-architecture -ii386 || dpkg-architecture -iamd64; then \ @@ -348,9 +350,8 @@ RUN if dpkg-architecture -ii386 || dpkg-architecture -iamd64; then \ llvm \ libelf-dev \ libpcap-dev \ + libbpf-dev \ build-essential; \ - git clone https://github.com/libbpf/libbpf.git /tmp/libbpf && \ - cd /tmp/libbpf && git checkout b91f53ec5f1aba2 && cd src && make install; \ fi # Go required for validators and vyos-xe-guest-utilities @@ -471,6 +472,35 @@ RUN apt-get update && apt-get install -y \ 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 \ + libeditreadline-dev \ + libgmp-dev \ + libjansson-dev \ + libmnl-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 \ + libnetfilter-cthelper-dev \ + libnetfilter-cttimeout-dev \ + libnetfilter-queue-dev \ + libtool + # Packages needed for wide-dhcpv6 RUN apt-get update && apt-get install -y \ bison \ @@ -595,6 +625,28 @@ RUN apt-get update && sudo apt-get install -y \ runc \ uidmap +# Packages needed for Accel-PPP +# XXX: please note that this must be installed after nftable dependencies - otherwise +# APT will remove liblua5.3-dev which breaks the Accel-PPP build +RUN apt-get update && apt-get install -y \ + liblua5.3-dev \ + libssl1.1 \ + libssl-dev \ + libpcre3-dev + +# Packages needed for sstp-client +RUN apt-get update && apt-get install -y \ + libssl-dev \ + libevent-dev \ + ppp-dev + +# Packages needed for pam_tacplus +RUN apt-get update && apt-get install -y \ + libpam-dev \ + autoconf-archive \ + gnulib \ + libtool + # # fpm: a command-line program designed to help you build packages (e.g. deb) # diff --git a/packages/.gitignore b/packages/.gitignore index 287672bb..db1547bf 100644 --- a/packages/.gitignore +++ b/packages/.gitignore @@ -1,3 +1,4 @@ +*.tar.gz *.deb *.dsc *.buildinfo diff --git a/packages/dropbear/.gitignore b/packages/dropbear/.gitignore index 249ed456..3f3a2a1c 100644 --- a/packages/dropbear/.gitignore +++ b/packages/dropbear/.gitignore @@ -1,6 +1 @@ dropbear/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/fastnetmon/.gitignore b/packages/fastnetmon/.gitignore index 09991e30..6831db67 100644 --- a/packages/fastnetmon/.gitignore +++ b/packages/fastnetmon/.gitignore @@ -1,8 +1,2 @@ fastnetmon/ fastnetmon-debian-salsa/ -*.tar.gz -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/fastnetmon/Jenkinsfile b/packages/fastnetmon/Jenkinsfile index 8c320401..710b58ff 100644 --- a/packages/fastnetmon/Jenkinsfile +++ b/packages/fastnetmon/Jenkinsfile @@ -19,8 +19,6 @@ // @Library annotation is not an import statement! @Library('vyos-build@current')_ -// NOTE: we can build with -d as the libbpf dependency is installed manually -// and not via a DEB package def pkgList = [ ['name': 'fastnetmon-debian-salsa', 'scmCommit': 'debian/1.2.2-1', diff --git a/packages/frr/.gitignore b/packages/frr/.gitignore index a6f28160..cb7bf2e1 100644 --- a/packages/frr/.gitignore +++ b/packages/frr/.gitignore @@ -1,7 +1,2 @@ frr/ libyang/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/frr/Jenkinsfile b/packages/frr/Jenkinsfile index 7971bb4c..d74244d6 100644 --- a/packages/frr/Jenkinsfile +++ b/packages/frr/Jenkinsfile @@ -30,7 +30,7 @@ def pkgList = [ 'scmUrl': 'https://github.com/rtrlib/rtrlib.git', 'buildCmd': 'dpkg-buildpackage -uc -us -tc -b'], ['name': 'frr', - 'scmCommit': 'stable/8.3', + 'scmCommit': 'stable/8.4', 'scmUrl': 'https://github.com/FRRouting/frr.git', 'buildCmd': 'cd ..; ./build-frr.sh'], ] diff --git a/packages/iproute2/.gitignore b/packages/iproute2/.gitignore index 93392ae0..02be8f3d 100644 --- a/packages/iproute2/.gitignore +++ b/packages/iproute2/.gitignore @@ -1,6 +1 @@ iproute2/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/iproute2/Jenkinsfile b/packages/iproute2/Jenkinsfile index ce89aead..8f8a5c14 100644 --- a/packages/iproute2/Jenkinsfile +++ b/packages/iproute2/Jenkinsfile @@ -23,7 +23,7 @@ // and not via a DEB package def pkgList = [ ['name': 'iproute2', - 'scmCommit': 'debian/5.10.0-4_bpo10+1', + 'scmCommit': 'debian/5.15.0-1_bpo11+1', 'scmUrl': 'https://salsa.debian.org/debian/iproute2', 'buildCmd': 'cd ..; ./build.sh'], ] diff --git a/packages/iproute2/patches/0001-erspan-erspan6-fix-JSON-output.patch b/packages/iproute2/patches/0001-erspan-erspan6-fix-JSON-output.patch deleted file mode 100644 index e21c13c0..00000000 --- a/packages/iproute2/patches/0001-erspan-erspan6-fix-JSON-output.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 50d6a22e0c1368bcc662bbfea75ce21378825b0d Mon Sep 17 00:00:00 2001 -From: Christian Poessinger <christian@poessinger.com> -Date: Fri, 9 Apr 2021 12:45:00 +0200 -Subject: [PATCH] erspan/erspan6: fix JSON output - -The format for erspan/erspan6 output is not valid JSON, as on version 2 a -valueless key was presented. The direction should be value and erspan_dir -should be the key. - -Fixes: 289763626721 ("erspan: add erspan version II support") -Cc: u9012063@gmail.com -Cc: Stephen Hemminger <stephen@networkplumber.org> -Reported-by: Christian Poessinger <christian@poessinger.com> -Signed-off-by: Christian Poessinger <christian@poessinger.com> ---- - ip/link_gre.c | 4 ++-- - ip/link_gre6.c | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/ip/link_gre.c b/ip/link_gre.c -index 0461e5d0..6d4a8be8 100644 ---- a/ip/link_gre.c -+++ b/ip/link_gre.c -@@ -536,10 +536,10 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) - - if (erspan_dir == 0) - print_string(PRINT_ANY, "erspan_dir", -- "erspan_dir ingress ", NULL); -+ "erspan_dir %s ", "ingress"); - else - print_string(PRINT_ANY, "erspan_dir", -- "erspan_dir egress ", NULL); -+ "erspan_dir %s ", "egress"); - } - - if (tb[IFLA_GRE_ERSPAN_HWID]) { -diff --git a/ip/link_gre6.c b/ip/link_gre6.c -index 9d270f4b..f33598af 100644 ---- a/ip/link_gre6.c -+++ b/ip/link_gre6.c -@@ -594,10 +594,10 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) - - if (erspan_dir == 0) - print_string(PRINT_ANY, "erspan_dir", -- "erspan_dir ingress ", NULL); -+ "erspan_dir %s ", "ingress"); - else - print_string(PRINT_ANY, "erspan_dir", -- "erspan_dir egress ", NULL); -+ "erspan_dir %s ", "egress"); - } - - if (tb[IFLA_GRE_ERSPAN_HWID]) { --- -2.20.1 - diff --git a/packages/keepalived/.gitignore b/packages/keepalived/.gitignore index f7afe17c..9503bdbd 100644 --- a/packages/keepalived/.gitignore +++ b/packages/keepalived/.gitignore @@ -1,6 +1 @@ keepalived/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/linux-kernel/.gitignore b/packages/linux-kernel/.gitignore index 84ffa9c4..6373bd11 100644 --- a/packages/linux-kernel/.gitignore +++ b/packages/linux-kernel/.gitignore @@ -5,14 +5,10 @@ /intel-qat /linux-firmware /qat* -*.deb -*.changes -*.buildinfo *.tar.xz /*.postinst # Intel Driver source -*.tar.gz i40e-*/ igb-*/ ixgbe-*/ diff --git a/packages/linux-kernel/Jenkinsfile b/packages/linux-kernel/Jenkinsfile index 5a3733e9..496dcbda 100644 --- a/packages/linux-kernel/Jenkinsfile +++ b/packages/linux-kernel/Jenkinsfile @@ -27,7 +27,7 @@ def pkgList = [ cd .. # read the required Kernel version - KERNEL_VER=\$(cat ../../data/defaults.json | jq -r .kernel_version) + KERNEL_VER=\$(cat ../../data/defaults.toml | tomlq -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 @@ -44,12 +44,12 @@ def pkgList = [ '''], // Firmware - ['name': 'linux-firmware', 'scmCommit': '20220708', + ['name': 'linux-firmware', 'scmCommit': '20220815', 'scmUrl': 'https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git', 'buildCmd': 'cd ..; ./build-linux-firmware.sh'], // Accel-PPP - ['name': 'accel-ppp', 'scmCommit': '847ccb49a7e0', + ['name': 'accel-ppp', 'scmCommit': '8d6dec931641', 'scmUrl': 'https://github.com/accel-ppp/accel-ppp.git', 'buildCmd': 'cd ..; pwd; ls -al; ./build-accel-ppp.sh'], diff --git a/packages/linux-kernel/arch/x86/configs/vyos_defconfig b/packages/linux-kernel/arch/x86/configs/vyos_defconfig index f6830c01..20af90d2 100644 --- a/packages/linux-kernel/arch/x86/configs/vyos_defconfig +++ b/packages/linux-kernel/arch/x86/configs/vyos_defconfig @@ -1,17 +1,21 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.10.128 Kernel Configuration +# Linux/x86 5.15.68 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (Debian 10.2.1-6) 10.2.1 20210110" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=100201 -CONFIG_LD_VERSION=235020000 CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=23502 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23502 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -21,6 +25,7 @@ CONFIG_THREAD_INFO_IN_TASK=y # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" @@ -98,9 +103,25 @@ CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_JIT=y +# CONFIG_BPF_JIT_ALWAYS_ON is not set +CONFIG_BPF_JIT_DEFAULT_ON=y +# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set +# CONFIG_BPF_PRELOAD is not set +# end of BPF subsystem + CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -138,6 +159,7 @@ CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # @@ -172,6 +194,7 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y +# CONFIG_CGROUP_MISC is not set # CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y @@ -202,7 +225,6 @@ CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y -CONFIG_BPF=y CONFIG_EXPERT=y CONFIG_UID16=y CONFIG_MULTIUSER=y @@ -211,7 +233,6 @@ CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y -CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y @@ -227,17 +248,12 @@ CONFIG_AIO=y CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_HAVE_ARCH_USERFAULTFD_WP=y +CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y -CONFIG_BPF_SYSCALL=y -CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y -# CONFIG_BPF_JIT_ALWAYS_ON is not set -CONFIG_BPF_JIT_DEFAULT_ON=y -# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set -# CONFIG_BPF_PRELOAD is not set CONFIG_USERFAULTFD=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y # CONFIG_KCMP is not set @@ -256,7 +272,6 @@ CONFIG_PERF_EVENTS=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y -# CONFIG_SLUB_MEMCG_SYSFS_ON is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y @@ -288,17 +303,15 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_FILTER_PGPROT=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y @@ -309,13 +322,11 @@ CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set -CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_INTEL_LPSS=y @@ -332,14 +343,16 @@ CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_X86_HV_CALLBACK_VECTOR=y CONFIG_XEN=y CONFIG_XEN_PV=y +CONFIG_XEN_512GB=y CONFIG_XEN_PV_SMP=y -CONFIG_XEN_DOM0=y +CONFIG_XEN_PV_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y -CONFIG_XEN_512GB=y +CONFIG_XEN_PVHVM_GUEST=y CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_XEN_PVH=y +CONFIG_XEN_DOM0=y CONFIG_KVM_GUEST=y CONFIG_ARCH_CPUIDLE_HALTPOLL=y CONFIG_PVH=y @@ -388,7 +401,6 @@ CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m -CONFIG_X86_THERMAL_VECTOR=y # # Performance monitoring @@ -397,6 +409,7 @@ CONFIG_PERF_EVENTS_INTEL_UNCORE=m CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_AMD_POWER=m +CONFIG_PERF_EVENTS_AMD_UNCORE=y # end of Performance monitoring CONFIG_X86_16BIT=y @@ -428,7 +441,6 @@ CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=m # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 @@ -442,6 +454,7 @@ CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y CONFIG_X86_INTEL_TSX_MODE_OFF=y # CONFIG_X86_INTEL_TSX_MODE_ON is not set # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +# CONFIG_X86_SGX is not set CONFIG_EFI=y CONFIG_EFI_STUB=y CONFIG_EFI_MIXED=y @@ -474,13 +487,17 @@ CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y CONFIG_ARCH_HAS_ADD_PAGES=y -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_ARCH_ENABLE_THP_MIGRATION=y # # Power management and ACPI options @@ -505,6 +522,7 @@ CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y +# CONFIG_ACPI_FPDT is not set CONFIG_ACPI_LPIT=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y @@ -555,7 +573,7 @@ CONFIG_ACPI_ADXL=y # CONFIG_ACPI_CONFIGFS is not set # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y -CONFIG_SFI=y +CONFIG_ACPI_PRMT=y # # CPU Frequency scaling @@ -618,7 +636,6 @@ CONFIG_MMCONF_FAM10H=y # CONFIG_ISA_BUS is not set CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y -# CONFIG_X86_SYSFB is not set # end of Bus options (PCI etc.) # @@ -632,51 +649,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y # end of Binary Emulations -# -# Firmware Drivers -# -CONFIG_EDD=m -# CONFIG_EDD_OFF is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -CONFIG_DMI_SYSFS=y -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# EFI (Extensible Firmware Interface) Support -# -CONFIG_EFI_VARS=m -CONFIG_EFI_ESRT=y -CONFIG_EFI_VARS_PSTORE=m -# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set -CONFIG_EFI_RUNTIME_MAP=y -# CONFIG_EFI_FAKE_MEMMAP is not set -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_TEST is not set -CONFIG_APPLE_PROPERTIES=y -# CONFIG_RESET_ATTACK_MITIGATION is not set -# CONFIG_EFI_RCI2_TABLE is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -# end of EFI (Extensible Firmware Interface) Support - -CONFIG_UEFI_CPER=y -CONFIG_UEFI_CPER_X86=y -CONFIG_EFI_DEV_PATH_PARSER=y -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set CONFIG_AS_AVX512=y @@ -691,8 +663,6 @@ CONFIG_CRASH_CORE=y CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y -CONFIG_HAVE_OPROFILE=y -CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set @@ -706,6 +676,8 @@ CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y @@ -714,6 +686,7 @@ CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_DIRECT_MAP=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=y CONFIG_HAVE_ASM_MODVERSIONS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y @@ -739,14 +712,20 @@ CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP=y CONFIG_SECCOMP_FILTER=y +# CONFIG_SECCOMP_CACHE_DEBUG is not set CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y CONFIG_HAVE_MOVE_PMD=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y @@ -755,6 +734,8 @@ CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y @@ -769,6 +750,8 @@ CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y @@ -779,7 +762,11 @@ CONFIG_ARCH_USE_MEMREMAP_PROT=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y CONFIG_HAVE_STATIC_CALL=y CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y # # GCOV-based kernel profiling @@ -801,26 +788,28 @@ CONFIG_MODVERSIONS=y CONFIG_ASM_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_COMPRESS is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" # CONFIG_TRIM_UNUSED_KSYMS is not set CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y -CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_CGROUP_RWSTAT=y -CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSG_COMMON=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y CONFIG_BLK_DEV_INTEGRITY_T10=m # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set -# CONFIG_BLK_CMDLINE_PARSER is not set CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_MQ=y # CONFIG_BLK_CGROUP_IOLATENCY is not set # CONFIG_BLK_CGROUP_IOCOST is not set -CONFIG_BLK_WBT_MQ=y +# CONFIG_BLK_CGROUP_IOPRIO is not set CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_SED_OPAL=y # CONFIG_BLK_INLINE_ENCRYPTION is not set @@ -854,6 +843,7 @@ CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y # # IO Schedulers @@ -903,7 +893,6 @@ CONFIG_COREDUMP=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y -CONFIG_NEED_MULTIPLE_NODES=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y @@ -911,19 +900,24 @@ CONFIG_HAVE_FAST_GUP=y CONFIG_NUMA_KEEP_MEMINFO=y CONFIG_MEMORY_ISOLATION=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MHP_MEMMAP_ON_MEMORY=y CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y CONFIG_PAGE_REPORTING=y CONFIG_MIGRATION=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_ARCH_ENABLE_THP_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 @@ -939,21 +933,32 @@ CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set +# CONFIG_CMA_SYSFS is not set CONFIG_CMA_AREAS=19 # CONFIG_ZPOOL is not set -# CONFIG_ZBUD is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ARCH_HAS_ZONE_DMA_SET=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y # CONFIG_ZONE_DEVICE is not set CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y CONFIG_ARCH_HAS_PKEYS=y # CONFIG_PERCPU_STATS is not set -# CONFIG_GUP_BENCHMARK is not set +# CONFIG_GUP_TEST is not set # CONFIG_READ_ONLY_THP_FOR_FS is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_SECRETMEM=y + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring # end of Memory Management options CONFIG_NET=y @@ -970,6 +975,7 @@ CONFIG_PACKET=m CONFIG_PACKET_DIAG=m CONFIG_UNIX=y CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y CONFIG_UNIX_DIAG=m CONFIG_TLS=y CONFIG_TLS_DEVICE=y @@ -988,6 +994,7 @@ CONFIG_XFRM_ESP=m CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m CONFIG_NET_KEY_MIGRATE=y +CONFIG_XFRM_ESPINTCP=y CONFIG_XDP_SOCKETS=y # CONFIG_XDP_SOCKETS_DIAG is not set CONFIG_INET=y @@ -1017,7 +1024,7 @@ CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_ESP_OFFLOAD=m -CONFIG_INET_ESPINTCP=m +CONFIG_INET_ESPINTCP=y CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m @@ -1054,7 +1061,7 @@ CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_ESP_OFFLOAD=m -CONFIG_INET6_ESPINTCP=m +CONFIG_INET6_ESPINTCP=y CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=y CONFIG_IPV6_ILA=m @@ -1077,6 +1084,7 @@ CONFIG_IPV6_SEG6_LWTUNNEL=y CONFIG_IPV6_SEG6_HMAC=y CONFIG_IPV6_SEG6_BPF=y # CONFIG_IPV6_RPL_LWTUNNEL is not set +# CONFIG_IPV6_IOAM6_LWTUNNEL is not set CONFIG_MPTCP=y CONFIG_INET_MPTCP_DIAG=m CONFIG_MPTCP_IPV6=y @@ -1094,13 +1102,13 @@ CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_FAMILY_BRIDGE=y CONFIG_NETFILTER_FAMILY_ARP=y +# CONFIG_NETFILTER_NETLINK_HOOK is not set CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m -CONFIG_NF_LOG_COMMON=m -CONFIG_NF_LOG_NETDEV=m +CONFIG_NF_LOG_SYSLOG=m CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y @@ -1170,9 +1178,11 @@ CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_FIB_NETDEV=m +# CONFIG_NFT_REJECT_NETDEV is not set CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES_COMPAT=y # # Xtables combined modules @@ -1312,6 +1322,7 @@ CONFIG_IP_VS_SH=m # CONFIG_IP_VS_MH is not set CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m +# CONFIG_IP_VS_TWOS is not set # # IPVS SH scheduler @@ -1410,7 +1421,6 @@ CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_TABLES_BRIDGE=m # CONFIG_NFT_BRIDGE_META is not set CONFIG_NFT_BRIDGE_REJECT=m -CONFIG_NF_LOG_BRIDGE=m # CONFIG_NF_CONNTRACK_BRIDGE is not set CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m @@ -1475,7 +1485,7 @@ CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y # CONFIG_BRIDGE_MRP is not set -CONFIG_HAVE_NET_DSA=y +# CONFIG_BRIDGE_CFM is not set # CONFIG_NET_DSA is not set CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_GVRP=y @@ -1579,7 +1589,7 @@ CONFIG_NET_ACT_TUNNEL_KEY=m # CONFIG_NET_TC_SKB_EXT is not set CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y -CONFIG_DNS_RESOLVER=m +CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set CONFIG_VSOCKETS=m @@ -1592,22 +1602,23 @@ CONFIG_HYPERV_VSOCKETS=m CONFIG_NETLINK_DIAG=m CONFIG_MPLS=y CONFIG_NET_MPLS_GSO=y -CONFIG_MPLS_ROUTING=y -CONFIG_MPLS_IPTUNNEL=y +CONFIG_MPLS_ROUTING=m +CONFIG_MPLS_IPTUNNEL=m # CONFIG_NET_NSH is not set -# CONFIG_HSR is not set -# CONFIG_NET_SWITCHDEV is not set +CONFIG_HSR=y +CONFIG_NET_SWITCHDEV=y CONFIG_NET_L3_MASTER_DEV=y # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_RPS=y CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y -CONFIG_BPF_JIT=y # CONFIG_BPF_STREAM_PARSER is not set CONFIG_NET_FLOW_LIMIT=y @@ -1624,6 +1635,7 @@ CONFIG_NET_FLOW_LIMIT=y # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set CONFIG_STREAM_PARSER=y +# CONFIG_MCTP is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WIRELESS_EXT=y @@ -1661,7 +1673,6 @@ CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -# CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set @@ -1674,12 +1685,12 @@ CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y CONFIG_GRO_CELLS=y CONFIG_SOCK_VALIDATE_XMIT=y +CONFIG_NET_SELFTESTS=y CONFIG_NET_SOCK_MSG=y CONFIG_NET_DEVLINK=y CONFIG_PAGE_POOL=y CONFIG_FAILOVER=m CONFIG_ETHTOOL_NETLINK=y -CONFIG_HAVE_EBPF_JIT=y # # Device Drivers @@ -1767,12 +1778,14 @@ CONFIG_PCI_HYPERV_INTERFACE=m # CONFIG_PCI_SW_SWITCHTEC is not set # end of PCI switch controller drivers +# CONFIG_CXL_BUS is not set # CONFIG_PCCARD is not set # CONFIG_RAPIDIO is not set # # Generic Driver Options # +CONFIG_AUXILIARY_BUS=y # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y # CONFIG_DEVTMPFS_MOUNT is not set @@ -1815,6 +1828,60 @@ CONFIG_DMA_SHARED_BUFFER=y # end of Bus devices # CONFIG_CONNECTOR is not set + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +CONFIG_EDD=m +# CONFIG_EDD_OFF is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=y +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_ISCSI_IBFT is not set +# CONFIG_FW_CFG_SYSFS is not set +CONFIG_SYSFB=y +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=m +CONFIG_EFI_ESRT=y +CONFIG_EFI_VARS_PSTORE=m +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set +CONFIG_EFI_RUNTIME_MAP=y +# CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y +# CONFIG_EFI_BOOTLOADER_CONTROL is not set +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +CONFIG_APPLE_PROPERTIES=y +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_RCI2_TABLE is not set +# CONFIG_EFI_DISABLE_PCI_DMA is not set +# end of EFI (Extensible Firmware Interface) Support + +CONFIG_UEFI_CPER=y +CONFIG_UEFI_CPER_X86=y +CONFIG_EFI_DEV_PATH_PARSER=y +CONFIG_EFI_EARLYCON=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + # CONFIG_GNSS is not set # CONFIG_MTD is not set # CONFIG_OF is not set @@ -1832,13 +1899,11 @@ CONFIG_BLK_DEV_NULL_BLK=m # CONFIG_BLK_DEV_FD is not set CONFIG_CDROM=m # CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_SKD is not set # CONFIG_BLK_DEV_SX8 is not set CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 @@ -1887,10 +1952,10 @@ CONFIG_HMC6352=m CONFIG_DS1682=m CONFIG_VMWARE_BALLOON=m # CONFIG_SRAM is not set +# CONFIG_DW_XDATA_PCIE is not set # CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set CONFIG_MISC_RTSX=m -# CONFIG_PVPANIC is not set CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -1923,21 +1988,21 @@ CONFIG_INTEL_MEI_ME=m CONFIG_VMWARE_VMCI=m # CONFIG_GENWQE is not set # CONFIG_ECHO is not set +# CONFIG_BCM_VK is not set # CONFIG_MISC_ALCOR_PCI is not set CONFIG_MISC_RTSX_PCI=m CONFIG_MISC_RTSX_USB=m # CONFIG_HABANA_AI is not set # CONFIG_UACCE is not set +# CONFIG_PVPANIC is not set # end of Misc devices -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - # # SCSI device support # CONFIG_SCSI_MOD=m CONFIG_RAID_ATTRS=m +CONFIG_SCSI_COMMON=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y @@ -1950,6 +2015,7 @@ CONFIG_BLK_DEV_SD=m # CONFIG_CHR_DEV_ST is not set CONFIG_BLK_DEV_SR=m CONFIG_CHR_DEV_SG=m +CONFIG_BLK_DEV_BSG=y # CONFIG_CHR_DEV_SCH is not set # CONFIG_SCSI_ENCLOSURE is not set CONFIG_SCSI_CONSTANTS=y @@ -2014,12 +2080,14 @@ CONFIG_SCSI_MPT3SAS=m CONFIG_SCSI_MPT2SAS_MAX_SGE=128 CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=m +# CONFIG_SCSI_MPI3MR is not set CONFIG_SCSI_SMARTPQI=m CONFIG_SCSI_UFSHCD=m CONFIG_SCSI_UFSHCD_PCI=m # CONFIG_SCSI_UFS_DWC_TC_PCI is not set # CONFIG_SCSI_UFSHCD_PLATFORM is not set # CONFIG_SCSI_UFS_BSG is not set +# CONFIG_SCSI_UFS_HPB is not set CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m # CONFIG_SCSI_FLASHPOINT is not set @@ -2036,7 +2104,6 @@ CONFIG_SCSI_SNIC=m # CONFIG_SCSI_SNIC_DEBUG_FS is not set CONFIG_SCSI_DMX3191D=m # CONFIG_SCSI_FDOMAIN_PCI is not set -CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m @@ -2233,12 +2300,6 @@ CONFIG_VIRTIO_NET=m CONFIG_NLMON=m CONFIG_NET_VRF=m # CONFIG_ARCNET is not set - -# -# Distributed Switch Architecture drivers -# -# end of Distributed Switch Architecture drivers - CONFIG_ETHERNET=y CONFIG_MDIO=m # CONFIG_NET_VENDOR_3COM is not set @@ -2268,7 +2329,7 @@ CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m CONFIG_ALX=m -# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_CX_ECAT is not set CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -2287,8 +2348,6 @@ CONFIG_BNXT_SRIOV=y CONFIG_BNXT_FLOWER_OFFLOAD=y # CONFIG_BNXT_DCB is not set CONFIG_BNXT_HWMON=y -CONFIG_NET_VENDOR_BROCADE=y -CONFIG_BNA=m CONFIG_NET_VENDOR_CADENCE=y # CONFIG_MACB is not set CONFIG_NET_VENDOR_CAVIUM=y @@ -2312,7 +2371,6 @@ CONFIG_CHELSIO_INLINE_CRYPTO=y # CONFIG_CHELSIO_TLS_DEVICE is not set # 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 CONFIG_NET_VENDOR_DLINK=y @@ -2357,6 +2415,7 @@ CONFIG_ICE=m # CONFIG_FM10K is not set CONFIG_IGC=m CONFIG_JME=m +CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y # CONFIG_MVMDIO is not set CONFIG_SKGE=m @@ -2364,6 +2423,7 @@ CONFIG_SKGE=m CONFIG_SKGE_GENESIS=y CONFIG_SKY2=m # CONFIG_SKY2_DEBUG is not set +# CONFIG_PRESTERA is not set CONFIG_NET_VENDOR_MELLANOX=y CONFIG_MLX4_EN=m CONFIG_MLX4_EN_DCB=y @@ -2377,12 +2437,18 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_EN_ARFS=y CONFIG_MLX5_EN_RXNFC=y CONFIG_MLX5_MPFS=y +CONFIG_MLX5_ESWITCH=y +CONFIG_MLX5_BRIDGE=y +CONFIG_MLX5_CLS_ACT=y +CONFIG_MLX5_TC_SAMPLE=y CONFIG_MLX5_CORE_EN_DCB=y # CONFIG_MLX5_CORE_IPOIB is not set CONFIG_MLX5_IPSEC=y CONFIG_MLX5_EN_IPSEC=y CONFIG_MLX5_TLS=y CONFIG_MLX5_EN_TLS=y +CONFIG_MLX5_SW_STEERING=y +# CONFIG_MLX5_SF is not set # CONFIG_MLXSW_CORE is not set # CONFIG_MLXFW is not set CONFIG_NET_VENDOR_MICREL=y @@ -2392,10 +2458,13 @@ CONFIG_KSZ884X_PCI=m CONFIG_NET_VENDOR_MICROCHIP=y # CONFIG_LAN743X is not set CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=y +# CONFIG_MICROSOFT_MANA is not set CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m +# CONFIG_NET_VENDOR_NI is not set CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m @@ -2404,7 +2473,6 @@ CONFIG_S2IO=m CONFIG_VXGE=m # CONFIG_VXGE_DEBUG_TRACE_ALL is not set # 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 @@ -2424,6 +2492,8 @@ CONFIG_NETXEN_NIC=m CONFIG_QED=m CONFIG_QED_SRIOV=y CONFIG_QEDE=m +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m # CONFIG_NET_VENDOR_QUALCOMM is not set # CONFIG_NET_VENDOR_RDC is not set CONFIG_NET_VENDOR_REALTEK=y @@ -2436,19 +2506,20 @@ CONFIG_8139TOO_8129=y CONFIG_R8169=m CONFIG_NET_VENDOR_RENESAS=y CONFIG_NET_VENDOR_ROCKER=y +# CONFIG_ROCKER is not set # CONFIG_NET_VENDOR_SAMSUNG is not set # CONFIG_NET_VENDOR_SEEQ is not set +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS900=m +CONFIG_SIS190=m CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y CONFIG_SFC_FALCON=m -CONFIG_NET_VENDOR_SILAN=y -CONFIG_SC92031=m -CONFIG_NET_VENDOR_SIS=y -CONFIG_SIS900=m -CONFIG_SIS190=m # CONFIG_NET_VENDOR_SMSC is not set # CONFIG_NET_VENDOR_SOCIONEXT is not set # CONFIG_NET_VENDOR_STMICRO is not set @@ -2472,7 +2543,7 @@ CONFIG_VIA_VELOCITY=m CONFIG_PHYLIB=y CONFIG_SWPHY=y # CONFIG_LED_TRIGGER_PHY is not set -CONFIG_FIXED_PHY=m +CONFIG_FIXED_PHY=y # # MII PHY device drivers @@ -2480,7 +2551,7 @@ CONFIG_FIXED_PHY=m CONFIG_AMD_PHY=m # CONFIG_ADIN_PHY is not set CONFIG_AQUANTIA_PHY=m -# CONFIG_AX88796B_PHY is not set +CONFIG_AX88796B_PHY=m CONFIG_BROADCOM_PHY=m # CONFIG_BCM54140_PHY is not set CONFIG_BCM7XXX_PHY=m @@ -2496,11 +2567,16 @@ CONFIG_INTEL_XWAY_PHY=m CONFIG_LSI_ET1011C_PHY=m CONFIG_MARVELL_PHY=m CONFIG_MARVELL_10G_PHY=m +# CONFIG_MARVELL_88X2222_PHY is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MEDIATEK_GE_PHY is not set CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m CONFIG_MICROCHIP_T1_PHY=m CONFIG_MICROSEMI_PHY=m +# CONFIG_MOTORCOMM_PHY is not set CONFIG_NATIONAL_PHY=m +# CONFIG_NXP_C45_TJA11XX_PHY is not set # CONFIG_NXP_TJA11XX_PHY is not set CONFIG_AT803X_PHY=m CONFIG_QSEMI_PHY=m @@ -2519,6 +2595,8 @@ CONFIG_VITESSE_PHY=m # CONFIG_XILINX_GMII2RGMII is not set CONFIG_MDIO_DEVICE=y CONFIG_MDIO_BUS=y +CONFIG_FWNODE_MDIO=y +CONFIG_ACPI_MDIO=y CONFIG_MDIO_DEVRES=y # CONFIG_MDIO_BITBANG is not set # CONFIG_MDIO_BCM_UNIMAC is not set @@ -2585,8 +2663,8 @@ 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 +CONFIG_USB_RTL8153_ECM=m CONFIG_WLAN=y -# CONFIG_WIRELESS_WDS is not set CONFIG_WLAN_VENDOR_ADMTEK=y CONFIG_ADM8211=m CONFIG_ATH_COMMON=m @@ -2725,6 +2803,7 @@ CONFIG_MT76_USB=m CONFIG_MT76_SDIO=m CONFIG_MT76x02_LIB=m CONFIG_MT76x02_USB=m +CONFIG_MT76_CONNAC_LIB=m CONFIG_MT76x0_COMMON=m CONFIG_MT76x0U=m CONFIG_MT76x0E=m @@ -2738,6 +2817,7 @@ CONFIG_MT7663_USB_SDIO_COMMON=m CONFIG_MT7663U=m CONFIG_MT7663S=m CONFIG_MT7915E=m +# CONFIG_MT7921E is not set CONFIG_WLAN_VENDOR_MICROCHIP=y # CONFIG_WILC1000_SDIO is not set CONFIG_WLAN_VENDOR_RALINK=y @@ -2805,11 +2885,14 @@ CONFIG_RSI_USB=m CONFIG_MAC80211_HWSIM=m # CONFIG_USB_NET_RNDIS_WLAN is not set # CONFIG_VIRT_WIFI is not set +# CONFIG_WAN is not set # -# Enable WiMAX (Networking options) to see the WiMAX drivers +# Wireless WAN # -# CONFIG_WAN is not set +# CONFIG_WWAN is not set +# end of Wireless WAN + CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m @@ -2825,7 +2908,6 @@ CONFIG_NET_FAILOVER=m CONFIG_INPUT=y # CONFIG_INPUT_LEDS is not set # CONFIG_INPUT_FF_MEMLESS is not set -CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_SPARSEKMAP=m # CONFIG_INPUT_MATRIXKMAP is not set @@ -2892,9 +2974,11 @@ CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_UINPUT is not set # CONFIG_INPUT_PCF8574 is not set # CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_DA7280_HAPTICS is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_IMS_PCU is not set # CONFIG_INPUT_IQS269A is not set +# CONFIG_INPUT_IQS626A is not set # CONFIG_INPUT_CMA3000 is not set CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m # CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set @@ -2974,6 +3058,7 @@ CONFIG_SERIAL_JSM=m # CONFIG_SERIAL_LANTIQ is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_BCM63XX is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_ARC is not set @@ -2986,20 +3071,13 @@ CONFIG_SERIAL_RP2_NR_UARTS=32 CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_NONSTANDARD=y -CONFIG_ROCKETPORT=m -CONFIG_CYCLADES=m -# CONFIG_CYZ_INTR is not set CONFIG_MOXA_INTELLIO=m CONFIG_MOXA_SMARTIO=m -CONFIG_SYNCLINK=m -CONFIG_SYNCLINKMP=m CONFIG_SYNCLINK_GT=m -CONFIG_ISI=m CONFIG_N_HDLC=m CONFIG_N_GSM=m CONFIG_NOZOMI=m # CONFIG_NULL_TTY is not set -# CONFIG_TRACE_SINK is not set CONFIG_HVC_DRIVER=y CONFIG_HVC_IRQ=y CONFIG_HVC_XEN=y @@ -3030,10 +3108,7 @@ CONFIG_HW_RANDOM_VIRTIO=m # CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set CONFIG_DEVMEM=y -# CONFIG_DEVKMEM is not set CONFIG_NVRAM=m -CONFIG_RAW_DRIVER=m -CONFIG_MAX_RAW_DEVS=256 CONFIG_DEVPORT=y CONFIG_HPET=y CONFIG_HPET_MMAP=y @@ -3043,6 +3118,7 @@ CONFIG_TCG_TPM=m CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=m CONFIG_TCG_TIS=m +# CONFIG_TCG_TIS_I2C_CR50 is not set CONFIG_TCG_TIS_I2C_ATMEL=m CONFIG_TCG_TIS_I2C_INFINEON=m CONFIG_TCG_TIS_I2C_NUVOTON=m @@ -3056,6 +3132,7 @@ CONFIG_TCG_TIS_ST33ZP24=m CONFIG_TCG_TIS_ST33ZP24_I2C=m # CONFIG_TELCLOCK is not set # CONFIG_XILLYBUS is not set +# CONFIG_XILLYUSB is not set # CONFIG_RANDOM_TRUST_CPU is not set # CONFIG_RANDOM_TRUST_BOOTLOADER is not set # end of Character devices @@ -3140,6 +3217,7 @@ CONFIG_I2C_XILINX=m # External I2C/SMBus adapter drivers # CONFIG_I2C_DIOLAN_U2C=m +# CONFIG_I2C_CP2615 is not set CONFIG_I2C_ROBOTFUZZ_OSIF=m CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m @@ -3149,6 +3227,7 @@ CONFIG_I2C_VIPERBOARD=m # Other I2C/SMBus bus drivers # CONFIG_I2C_MLXCPLD=m +# CONFIG_I2C_VIRTIO is not set # end of I2C Hardware Bus support CONFIG_I2C_STUB=m @@ -3182,6 +3261,7 @@ CONFIG_PPS_CLIENT_LDISC=m # PTP clock support # CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. @@ -3204,14 +3284,17 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=y # CONFIG_PINCTRL_LYNXPOINT is not set CONFIG_PINCTRL_INTEL=y +# CONFIG_PINCTRL_ALDERLAKE is not set CONFIG_PINCTRL_BROXTON=y # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_CEDARFORK is not set # CONFIG_PINCTRL_DENVERTON is not set +# CONFIG_PINCTRL_ELKHARTLAKE is not set # CONFIG_PINCTRL_EMMITSBURG is not set # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_ICELAKE is not set # CONFIG_PINCTRL_JASPERLAKE is not set +# CONFIG_PINCTRL_LAKEFIELD is not set # CONFIG_PINCTRL_LEWISBURG is not set CONFIG_PINCTRL_SUNRISEPOINT=y # CONFIG_PINCTRL_TIGERLAKE is not set @@ -3241,7 +3324,6 @@ CONFIG_GPIO_AMDPT=m # CONFIG_GPIO_ICH is not set # CONFIG_GPIO_MB86S7X is not set # CONFIG_GPIO_VX855 is not set -# CONFIG_GPIO_XILINX is not set CONFIG_GPIO_AMD_FCH=m # end of Memory mapped GPIO drivers @@ -3291,8 +3373,14 @@ CONFIG_GPIO_ML_IOH=m CONFIG_GPIO_VIPERBOARD=m # end of USB GPIO expanders +# +# Virtual GPIO drivers +# # CONFIG_GPIO_AGGREGATOR is not set # CONFIG_GPIO_MOCKUP is not set +# CONFIG_GPIO_VIRTIO is not set +# end of Virtual GPIO drivers + CONFIG_W1=m # @@ -3356,14 +3444,17 @@ CONFIG_BATTERY_MAX17042=m # CONFIG_CHARGER_GPIO is not set # CONFIG_CHARGER_MANAGER is not set # CONFIG_CHARGER_LT3651 is not set +# CONFIG_CHARGER_LTC4162L is not set # CONFIG_CHARGER_BQ2415X is not set # CONFIG_CHARGER_BQ24257 is not set # CONFIG_CHARGER_BQ24735 is not set # CONFIG_CHARGER_BQ2515X is not set # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_BQ25980 is not set +# CONFIG_CHARGER_BQ256XX is not set # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_BATTERY_GOLDFISH is not set # CONFIG_BATTERY_RT5033 is not set # CONFIG_CHARGER_RT9455 is not set # CONFIG_CHARGER_BD99954 is not set @@ -3391,18 +3482,20 @@ CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m +# CONFIG_SENSORS_AHT10 is not set +# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set # CONFIG_SENSORS_AS370 is not set CONFIG_SENSORS_ASC7621=m # CONFIG_SENSORS_AXI_FAN_CONTROL is not set CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_K10TEMP=m CONFIG_SENSORS_FAM15H_POWER=m -# CONFIG_SENSORS_AMD_ENERGY is not set CONFIG_SENSORS_APPLESMC=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ASPEED=m CONFIG_SENSORS_ATXP1=m # CONFIG_SENSORS_CORSAIR_CPRO is not set +# CONFIG_SENSORS_CORSAIR_PSU is not set # CONFIG_SENSORS_DRIVETEMP is not set CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m @@ -3429,12 +3522,14 @@ CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LTC2945=m # CONFIG_SENSORS_LTC2947_I2C is not set CONFIG_SENSORS_LTC2990=m +# CONFIG_SENSORS_LTC2992 is not set CONFIG_SENSORS_LTC4151=m CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4222=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4260=m CONFIG_SENSORS_LTC4261=m +# CONFIG_SENSORS_MAX127 is not set CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m @@ -3448,6 +3543,7 @@ CONFIG_SENSORS_MAX6697=m CONFIG_SENSORS_MAX31790=m CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_TC654=m +# CONFIG_SENSORS_TPS23861 is not set CONFIG_SENSORS_MENF21BMC_HWMON=m # CONFIG_SENSORS_MR75203 is not set CONFIG_SENSORS_LM63=m @@ -3473,15 +3569,20 @@ CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NCT7802=m CONFIG_SENSORS_NCT7904=m CONFIG_SENSORS_NPCM7XX=m +# CONFIG_SENSORS_NZXT_KRAKEN2 is not set CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m # CONFIG_SENSORS_ADM1266 is not set CONFIG_SENSORS_ADM1275=m # CONFIG_SENSORS_BEL_PFE is not set +# CONFIG_SENSORS_BPA_RS600 is not set +# CONFIG_SENSORS_FSP_3Y is not set CONFIG_SENSORS_IBM_CFFPS=m +# CONFIG_SENSORS_DPS920AB is not set # CONFIG_SENSORS_INSPUR_IPSPS is not set CONFIG_SENSORS_IR35221=m +# CONFIG_SENSORS_IR36021 is not set # CONFIG_SENSORS_IR38064 is not set # CONFIG_SENSORS_IRPS5401 is not set # CONFIG_SENSORS_ISL68137 is not set @@ -3489,6 +3590,7 @@ CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LTC2978=m CONFIG_SENSORS_LTC2978_REGULATOR=y CONFIG_SENSORS_LTC3815=m +# CONFIG_SENSORS_MAX15301 is not set CONFIG_SENSORS_MAX16064=m # CONFIG_SENSORS_MAX16601 is not set # CONFIG_SENSORS_MAX20730 is not set @@ -3496,17 +3598,25 @@ CONFIG_SENSORS_MAX20751=m CONFIG_SENSORS_MAX31785=m CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m +# CONFIG_SENSORS_MP2888 is not set # CONFIG_SENSORS_MP2975 is not set +# CONFIG_SENSORS_PIM4328 is not set +# CONFIG_SENSORS_PM6764TR is not set # CONFIG_SENSORS_PXE1610 is not set +# CONFIG_SENSORS_Q54SJ108A2 is not set +# CONFIG_SENSORS_STPDDC60 is not set CONFIG_SENSORS_TPS40422=m CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m # CONFIG_SENSORS_XDPE122 is not set CONFIG_SENSORS_ZL6100=m +# CONFIG_SENSORS_SBTSI is not set +# CONFIG_SENSORS_SBRMI is not set CONFIG_SENSORS_SHT15=m CONFIG_SENSORS_SHT21=m CONFIG_SENSORS_SHT3x=m +# CONFIG_SENSORS_SHT4x is not set CONFIG_SENSORS_SHTC1=m CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_DME1737=m @@ -3577,6 +3687,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y # Intel thermal drivers # CONFIG_INTEL_POWERCLAMP=m +CONFIG_X86_THERMAL_VECTOR=y CONFIG_X86_PKG_TEMP_THERMAL=m CONFIG_INTEL_SOC_DTS_IOSF_CORE=m CONFIG_INTEL_SOC_DTS_THERMAL=m @@ -3589,6 +3700,8 @@ CONFIG_ACPI_THERMAL_REL=m # end of ACPI INT340X thermal drivers CONFIG_INTEL_PCH_THERMAL=m +# CONFIG_INTEL_TCC_COOLING is not set +# CONFIG_INTEL_MENLOW is not set # end of Intel thermal drivers CONFIG_WATCHDOG=y @@ -3597,6 +3710,7 @@ CONFIG_WATCHDOG_CORE=y CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y CONFIG_WATCHDOG_OPEN_TIMEOUT=0 CONFIG_WATCHDOG_SYSFS=y +# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set # # Watchdog Pretimeout Governors @@ -3721,6 +3835,7 @@ CONFIG_MFD_INTEL_LPSS=m CONFIG_MFD_INTEL_LPSS_ACPI=m CONFIG_MFD_INTEL_LPSS_PCI=m # CONFIG_MFD_INTEL_PMC_BXT is not set +# CONFIG_MFD_INTEL_PMT is not set # CONFIG_MFD_IQS62X is not set # CONFIG_MFD_JANZ_CMODIO is not set CONFIG_MFD_KEMPLD=m @@ -3741,13 +3856,12 @@ CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_MFD_SKY81452 is not set -# CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set @@ -3759,7 +3873,6 @@ CONFIG_MFD_VIPERBOARD=m # CONFIG_TPS6507X is not set # CONFIG_MFD_TPS65086 is not set # CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TPS68470 is not set # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set @@ -3776,6 +3889,7 @@ CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_ATC260X_I2C is not set # CONFIG_RAVE_SP_CORE is not set # end of Multifunction device drivers @@ -3803,17 +3917,21 @@ CONFIG_REGULATOR_LTC3676=m CONFIG_REGULATOR_MAX1586=m CONFIG_REGULATOR_MAX8649=m CONFIG_REGULATOR_MAX8660=m +# CONFIG_REGULATOR_MAX8893 is not set CONFIG_REGULATOR_MAX8952=m # CONFIG_REGULATOR_MAX77826 is not set # CONFIG_REGULATOR_MP8859 is not set CONFIG_REGULATOR_MT6311=m # CONFIG_REGULATOR_PCA9450 is not set -CONFIG_REGULATOR_PFUZE100=m CONFIG_REGULATOR_PV88060=m CONFIG_REGULATOR_PV88080=m CONFIG_REGULATOR_PV88090=m # CONFIG_REGULATOR_RT4801 is not set +# CONFIG_REGULATOR_RT6160 is not set +# CONFIG_REGULATOR_RT6245 is not set +# CONFIG_REGULATOR_RTQ2134 is not set # CONFIG_REGULATOR_RTMV20 is not set +# CONFIG_REGULATOR_RTQ6752 is not set # CONFIG_REGULATOR_SLG51000 is not set CONFIG_REGULATOR_TPS51632=m CONFIG_REGULATOR_TPS62360=m @@ -3837,7 +3955,6 @@ CONFIG_REGULATOR_TPS65132=m # # end of ARM devices -# CONFIG_DRM_XEN is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # @@ -3901,6 +4018,7 @@ CONFIG_FB_EFI=y # CONFIG_FB_MB862XX is not set # CONFIG_FB_HYPERV is not set # CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SSD1307 is not set # CONFIG_FB_SM712 is not set # end of Frame buffer Devices @@ -3967,6 +4085,7 @@ CONFIG_HID_GENERIC=m # CONFIG_HID_ELECOM is not set # CONFIG_HID_ELO is not set # CONFIG_HID_EZKEY is not set +# CONFIG_HID_FT260 is not set # CONFIG_HID_GEMBIRD is not set # CONFIG_HID_GFRM is not set # CONFIG_HID_GLORIOUS is not set @@ -4003,11 +4122,13 @@ CONFIG_HID_GENERIC=m # CONFIG_HID_PETALYNX is not set # CONFIG_HID_PICOLCD is not set # CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PLAYSTATION is not set # CONFIG_HID_PRIMAX is not set # CONFIG_HID_RETRODE is not set # CONFIG_HID_ROCCAT is not set # CONFIG_HID_SAITEK is not set # CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SEMITEK is not set # CONFIG_HID_SONY is not set # CONFIG_HID_SPEEDLINK is not set # CONFIG_HID_STEAM is not set @@ -4051,7 +4172,7 @@ CONFIG_USB_HIDDEV=y # # I2C HID support # -# CONFIG_I2C_HID is not set +# CONFIG_I2C_HID_ACPI is not set # end of I2C HID support # @@ -4059,6 +4180,12 @@ CONFIG_USB_HIDDEV=y # # CONFIG_INTEL_ISH_HID is not set # end of Intel ISH HID support + +# +# AMD SFH HID Support +# +# CONFIG_AMD_SFH_HID is not set +# end of AMD SFH HID Support # end of HID support CONFIG_USB_OHCI_LITTLE_ENDIAN=y @@ -4153,7 +4280,7 @@ CONFIG_USB_STORAGE=m # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # CONFIG_USBIP_CORE is not set -# CONFIG_USB_CDNS3 is not set +# CONFIG_USB_CDNS_SUPPORT is not set # CONFIG_USB_MUSB_HDRC is not set # CONFIG_USB_DWC3 is not set # CONFIG_USB_DWC2 is not set @@ -4207,7 +4334,6 @@ CONFIG_USB_SERIAL_SIERRAWIRELESS=m # CONFIG_USB_SERIAL_SYMBOL is not set CONFIG_USB_SERIAL_TI=m # CONFIG_USB_SERIAL_CYBERJACK is not set -CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set @@ -4217,6 +4343,7 @@ CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_SSU100=m CONFIG_USB_SERIAL_QT2=m CONFIG_USB_SERIAL_UPD78F0730=m +# CONFIG_USB_SERIAL_XR is not set # CONFIG_USB_SERIAL_DEBUG is not set # @@ -4302,11 +4429,9 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y # LED drivers # # CONFIG_LEDS_APU is not set -CONFIG_LEDS_AS3645A=m CONFIG_LEDS_LM3530=m # CONFIG_LEDS_LM3532 is not set CONFIG_LEDS_LM3642=m -CONFIG_LEDS_LM3601X=m CONFIG_LEDS_PCA9532=m # CONFIG_LEDS_PCA9532_GPIO is not set CONFIG_LEDS_GPIO=m @@ -4320,6 +4445,7 @@ CONFIG_LEDS_PCA963X=m CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_INTEL_SS4200=m +# CONFIG_LEDS_LT3593 is not set CONFIG_LEDS_TCA6507=m CONFIG_LEDS_TLC591XX=m CONFIG_LEDS_LM355x=m @@ -4334,6 +4460,13 @@ CONFIG_LEDS_MLXREG=m # CONFIG_LEDS_USER is not set CONFIG_LEDS_NIC78BX=m # CONFIG_LEDS_TI_LMU_COMMON is not set + +# +# Flash and Torch LED drivers +# +CONFIG_LEDS_AS3645A=m +CONFIG_LEDS_LM3601X=m +# CONFIG_LEDS_RT8515 is not set # CONFIG_LEDS_SGM3140 is not set # @@ -4359,6 +4492,7 @@ CONFIG_LEDS_TRIGGER_PANIC=y CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_LEDS_TRIGGER_PATTERN is not set # CONFIG_LEDS_TRIGGER_AUDIO is not set +# CONFIG_LEDS_TRIGGER_TTY is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y @@ -4369,7 +4503,6 @@ CONFIG_EDAC_LEGACY_SYSFS=y CONFIG_EDAC_DECODE_MCE=m # CONFIG_EDAC_GHES is not set CONFIG_EDAC_AMD64=m -# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set CONFIG_EDAC_E752X=m CONFIG_EDAC_I82975X=m CONFIG_EDAC_I3000=m @@ -4385,6 +4518,7 @@ CONFIG_EDAC_SBRIDGE=m CONFIG_EDAC_SKX=m # CONFIG_EDAC_I10NM is not set CONFIG_EDAC_PND2=m +# CONFIG_EDAC_IGEN6 is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y @@ -4447,6 +4581,7 @@ CONFIG_RTC_I2C_AND_SPI=y # CONFIG_RTC_DRV_DS3232 is not set # CONFIG_RTC_DRV_PCF2127 is not set # CONFIG_RTC_DRV_RV3029C2 is not set +# CONFIG_RTC_DRV_RX6110 is not set # # Platform RTC drivers @@ -4475,6 +4610,7 @@ CONFIG_RTC_DRV_CMOS=y # # HID Sensor RTC drivers # +# CONFIG_RTC_DRV_GOLDFISH is not set CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -4486,9 +4622,14 @@ CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set CONFIG_INTEL_IDMA64=y +CONFIG_INTEL_IDXD_BUS=y CONFIG_INTEL_IDXD=y +# CONFIG_INTEL_IDXD_COMPAT is not set +# CONFIG_INTEL_IDXD_SVM is not set +# CONFIG_INTEL_IDXD_PERFMON is not set CONFIG_INTEL_IOATDMA=y # CONFIG_PLX_DMA is not set +# CONFIG_AMD_PTDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_DW_DMAC is not set @@ -4497,6 +4638,7 @@ CONFIG_INTEL_IOATDMA=y # CONFIG_DW_EDMA_PCIE is not set CONFIG_HSU_DMA=y # CONFIG_SF_PDMA is not set +# CONFIG_INTEL_LDMA is not set # # DMA Clients @@ -4512,8 +4654,10 @@ CONFIG_SYNC_FILE=y # CONFIG_SW_SYNC is not set # CONFIG_UDMABUF is not set # CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set # end of DMABUF options CONFIG_DCA=y @@ -4532,6 +4676,7 @@ CONFIG_UIO_PCI_GENERIC=m # CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=m +CONFIG_VIRTIO_PCI_LIB=m CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI_LEGACY=y @@ -4584,30 +4729,42 @@ CONFIG_XEN_HAVE_VPMU=y # end of Xen driver support # CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set # CONFIG_STAGING is not set CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACPI_WMI is not set # CONFIG_ACERHDF is not set # CONFIG_ACER_WIRELESS is not set +# CONFIG_AMD_PMC is not set +# CONFIG_ADV_SWBUTTON is not set # CONFIG_ASUS_WIRELESS is not set -# CONFIG_DCDBAS is not set -# CONFIG_DELL_SMBIOS is not set -# CONFIG_DELL_RBU is not set -# CONFIG_DELL_SMO8800 is not set +# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set # CONFIG_FUJITSU_TABLET is not set # CONFIG_GPD_POCKET_FAN is not set # CONFIG_HP_ACCEL is not set -# CONFIG_HP_WIRELESS is not set +# CONFIG_WIRELESS_HOTKEY is not set # CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_ATOMISP2_LED is not set # CONFIG_INTEL_ATOMISP2_PM is not set +# CONFIG_INTEL_SAR_INT1092 is not set +# CONFIG_INTEL_SKL_INT3472 is not set +# CONFIG_INTEL_PMC_CORE is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + # CONFIG_INTEL_HID_EVENT is not set -# CONFIG_INTEL_INT0002_VGPIO is not set -# CONFIG_INTEL_MENLOW is not set # CONFIG_INTEL_VBTN is not set -# CONFIG_SURFACE_3_POWER_OPREGION is not set -# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_INTEL_INT0002_VGPIO is not set +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set # CONFIG_PCENGINES_APU2 is not set # CONFIG_SAMSUNG_Q10 is not set # CONFIG_TOSHIBA_BT_RFKILL is not set @@ -4618,34 +4775,35 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_I2C_MULTI_INSTANTIATE is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_RST is not set -# CONFIG_INTEL_SMARTCONNECT is not set - -# -# Intel Speed Select Technology interface support -# -# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set -# end of Intel Speed Select Technology interface support - -# CONFIG_INTEL_TURBO_MAX_3 is not set -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -# CONFIG_INTEL_PMC_CORE is not set -# CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_INTEL_SCU_PCI is not set # CONFIG_INTEL_SCU_PLATFORM is not set CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set +CONFIG_SURFACE_PLATFORMS=y +# CONFIG_SURFACE_3_POWER_OPREGION is not set +# CONFIG_SURFACE_GPE is not set +# CONFIG_SURFACE_HOTPLUG is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_SURFACE_AGGREGATOR is not set CONFIG_HAVE_CLK=y -CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y + +# +# Clock driver for ARM Reference designs +# +# CONFIG_ICST is not set +# CONFIG_CLK_SP810 is not set +# end of Clock driver for ARM Reference designs + # CONFIG_COMMON_CLK_MAX9485 is not set # CONFIG_COMMON_CLK_SI5341 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI544 is not set # CONFIG_COMMON_CLK_CDCE706 is not set # CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_XILINX_VCU is not set # CONFIG_HWSPINLOCK is not set # @@ -4667,11 +4825,15 @@ CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # +CONFIG_IOMMU_IO_PGTABLE=y # end of Generic IOMMU Pagetable Support # CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +CONFIG_IOMMU_DEFAULT_DMA_LAZY=y # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_IOMMU_DMA=y +CONFIG_IOMMU_SVA_LIB=y CONFIG_AMD_IOMMU=y CONFIG_AMD_IOMMU_V2=y CONFIG_DMAR_TABLE=y @@ -4682,6 +4844,7 @@ CONFIG_INTEL_IOMMU_FLOPPY_WA=y # CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set CONFIG_IRQ_REMAP=y CONFIG_HYPERV_IOMMU=y +# CONFIG_VIRTIO_IOMMU is not set # # Remoteproc drivers @@ -4708,11 +4871,6 @@ CONFIG_HYPERV_IOMMU=y # end of Amlogic SoC drivers # -# Aspeed SoC drivers -# -# end of Aspeed SoC drivers - -# # Broadcom SoC drivers # # end of Broadcom SoC drivers @@ -4728,6 +4886,11 @@ CONFIG_HYPERV_IOMMU=y # end of i.MX SoC drivers # +# Enable LiteX SoC Builder specific drivers +# +# end of Enable LiteX SoC Builder specific drivers + +# # Qualcomm SoC drivers # # end of Qualcomm SoC drivers @@ -4737,7 +4900,6 @@ CONFIG_HYPERV_IOMMU=y # # Xilinx SoC drivers # -# CONFIG_XILINX_VCU is not set # end of Xilinx SoC drivers # end of SOC (System On Chip) specific Drivers @@ -4776,6 +4938,7 @@ CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_GENERIC_PHY=y # CONFIG_USB_LGM_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4812,6 +4975,7 @@ CONFIG_DAX=y # CONFIG_DEV_DAX is not set CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y +# CONFIG_NVMEM_RMEM is not set # # HW tracing support @@ -4860,7 +5024,6 @@ CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y -CONFIG_MANDATORY_FILE_LOCKING=y # CONFIG_FS_ENCRYPTION is not set # CONFIG_FS_VERITY is not set CONFIG_FSNOTIFY=y @@ -4884,11 +5047,11 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # # Caches # +CONFIG_NETFS_SUPPORT=m +CONFIG_NETFS_STATS=y CONFIG_FSCACHE=m CONFIG_FSCACHE_STATS=y -# CONFIG_FSCACHE_HISTOGRAM is not set # CONFIG_FSCACHE_DEBUG is not set -# CONFIG_FSCACHE_OBJECT_LIST is not set # CONFIG_CACHEFILES is not set # end of Caches @@ -4912,6 +5075,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii" CONFIG_FAT_DEFAULT_UTF8=y # CONFIG_EXFAT_FS is not set # CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # @@ -4931,6 +5095,8 @@ CONFIG_TMPFS_XATTR=y # CONFIG_TMPFS_INODE64 is not set CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y +CONFIG_HUGETLB_PAGE_FREE_VMEMMAP=y +# CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON is not set CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=m @@ -4971,6 +5137,7 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y +CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 # CONFIG_PSTORE_DEFLATE_COMPRESS is not set # CONFIG_PSTORE_LZO_COMPRESS is not set # CONFIG_PSTORE_LZ4_COMPRESS is not set @@ -4980,6 +5147,7 @@ CONFIG_PSTORE=y # CONFIG_PSTORE_CONSOLE is not set # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_RAM is not set +# CONFIG_PSTORE_BLK is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EROFS_FS is not set @@ -5052,7 +5220,6 @@ CONFIG_KEYS=y CONFIG_SECURITY_DMESG_RESTRICT=y # CONFIG_SECURITY is not set CONFIG_SECURITYFS=y -CONFIG_PAGE_TABLE_ISOLATION=y # CONFIG_INTEL_TXT is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=y @@ -5078,7 +5245,6 @@ CONFIG_INIT_STACK_NONE=y # end of Kernel hardening options # end of Security options -CONFIG_XOR_BLOCKS=m CONFIG_CRYPTO=y # @@ -5112,7 +5278,6 @@ CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_SIMD=m -CONFIG_CRYPTO_GLUE_HELPER_X86=m CONFIG_CRYPTO_ENGINE=m # @@ -5122,6 +5287,7 @@ CONFIG_CRYPTO_RSA=y CONFIG_CRYPTO_DH=m CONFIG_CRYPTO_ECC=m CONFIG_CRYPTO_ECDH=m +# CONFIG_CRYPTO_ECDSA is not set CONFIG_CRYPTO_ECRDSA=m # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set @@ -5174,8 +5340,7 @@ CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_XXHASH=m # CONFIG_CRYPTO_BLAKE2B is not set -# CONFIG_CRYPTO_BLAKE2S is not set -CONFIG_CRYPTO_BLAKE2S_X86=m +CONFIG_CRYPTO_BLAKE2S_X86=y CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_GHASH=y @@ -5184,10 +5349,7 @@ CONFIG_CRYPTO_POLY1305_X86_64=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_RMD256=m -CONFIG_CRYPTO_RMD320=m CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=m CONFIG_CRYPTO_SHA256_SSSE3=m @@ -5197,7 +5359,6 @@ CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_SHA3=m CONFIG_CRYPTO_SM3=m CONFIG_CRYPTO_STREEBOG=m -CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m @@ -5225,7 +5386,6 @@ CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_DES3_EDE_X86_64=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_X86_64=m CONFIG_CRYPTO_SEED=m @@ -5234,6 +5394,8 @@ CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_SERPENT_AVX_X86_64=m CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m CONFIG_CRYPTO_SM4=m +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -5287,6 +5449,7 @@ CONFIG_CRYPTO_DEV_QAT=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_C3XXX=m CONFIG_CRYPTO_DEV_QAT_C62X=m +# CONFIG_CRYPTO_DEV_QAT_4XXX is not set CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m @@ -5313,6 +5476,8 @@ CONFIG_SYSTEM_TRUSTED_KEYS="" # CONFIG_SYSTEM_BLACKLIST_KEYRING is not set # end of Certificates for signature checking +CONFIG_BINARY_PRINTF=y + # # Library routines # @@ -5352,6 +5517,7 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m CONFIG_CRYPTO_LIB_POLY1305=m CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_LIB_SM4=m # end of Crypto library routines CONFIG_LIB_MEMNEQ=y @@ -5412,6 +5578,7 @@ CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_SWIOTLB=y # CONFIG_DMA_CMA is not set # CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set CONFIG_SGL_ALLOC=y CONFIG_IOMMU_HELPER=y CONFIG_CHECK_SIGNATURE=y @@ -5440,7 +5607,6 @@ CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_COPY_MC=y CONFIG_ARCH_STACKWALK=y CONFIG_SBITMAP=y -# CONFIG_STRING_SELFTEST is not set # end of Library routines CONFIG_PLDMFW=y @@ -5454,6 +5620,7 @@ CONFIG_PLDMFW=y # CONFIG_PRINTK_TIME=y # CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 @@ -5468,15 +5635,15 @@ CONFIG_DEBUG_BUGVERBOSE=y # Compile-time checks and compiler options # # CONFIG_DEBUG_INFO is not set -CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y # CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set CONFIG_STACK_VALIDATION=y +# CONFIG_VMLINUX_MAP is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options @@ -5508,8 +5675,6 @@ CONFIG_PAGE_EXTENSION=y # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_OWNER is not set CONFIG_PAGE_POISONING=y -CONFIG_PAGE_POISONING_NO_SANITY=y -# CONFIG_PAGE_POISONING_ZERO is not set # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_ARCH_HAS_DEBUG_WX=y CONFIG_DEBUG_WX=y @@ -5530,11 +5695,15 @@ CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y # CONFIG_DEBUG_VIRTUAL is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y +# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y # CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set # end of Memory Debugging # CONFIG_DEBUG_SHIRQ is not set @@ -5592,6 +5761,7 @@ CONFIG_LOCK_DEBUGGING_SUPPORT=y # CONFIG_CSD_LOCK_WAIT_DEBUG is not set # end of Lock Debugging (spinlocks, mutexes, etc...) +# CONFIG_DEBUG_IRQFLAGS is not set CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set # CONFIG_DEBUG_KOBJECT is not set @@ -5620,7 +5790,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=21 # end of RCU Debugging # CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y @@ -5629,9 +5798,11 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_OBJTOOL_MCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set @@ -5644,8 +5815,6 @@ CONFIG_IO_STRICT_DEVMEM=y # # x86 Debugging # -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y # CONFIG_X86_VERBOSE_BOOTUP is not set # CONFIG_EARLY_PRINTK is not set # CONFIG_EFI_PGT_DUMP is not set @@ -5678,6 +5847,7 @@ CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set # CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_ARCH_USE_MEMTEST=y # CONFIG_MEMTEST is not set # CONFIG_HYPERV_TESTING is not set # end of Kernel Testing and Coverage diff --git a/packages/linux-kernel/build-accel-ppp.sh b/packages/linux-kernel/build-accel-ppp.sh index 90808609..45c3494e 100755 --- a/packages/linux-kernel/build-accel-ppp.sh +++ b/packages/linux-kernel/build-accel-ppp.sh @@ -22,7 +22,6 @@ cmake -DBUILD_IPOE_DRIVER=TRUE \ -DBUILD_VLAN_MON_DRIVER=TRUE \ -DCMAKE_INSTALL_PREFIX=/usr \ -DKDIR=${KERNEL_DIR} \ - -DLUA=TRUE \ -DLUA=5.3 \ -DMODULES_KDIR=${KERNEL_VERSION}${KERNEL_SUFFIX} \ -DCPACK_TYPE=Debian11 .. diff --git a/packages/linux-kernel/build-linux-firmware.sh b/packages/linux-kernel/build-linux-firmware.sh index 95d8ca56..83501e6e 100755 --- a/packages/linux-kernel/build-linux-firmware.sh +++ b/packages/linux-kernel/build-linux-firmware.sh @@ -38,15 +38,46 @@ if [ -d ${VYOS_FIRMWARE_DIR} ]; then 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 FILE in ${FW_FILES}; do - if [ -f ${LINUX_FIRMWARE}/${FILE} ]; then + # 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}")" + + 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} + cp -P "${CWD}/${LINUX_FIRMWARE_BUILD_DIR}/${FILE}" "${FW_DIR}" else echo "I: firmware file not found: ${FILE}" fi @@ -59,4 +90,5 @@ fpm --input-type dir --output-type deb --name ${VYOS_FIRMWARE_NAME} \ --description "Binary firmware for various drivers in the Linux kernel" \ --architecture all --version ${GIT_COMMIT} --deb-compression gz -C ${VYOS_FIRMWARE_DIR} +rm -rf "${LINUX_FIRMWARE_BUILD_DIR}" rm -rf ${VYOS_FIRMWARE_DIR} diff --git a/packages/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch b/packages/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch index b28f255e..c56ec40e 100644 --- a/packages/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch +++ b/packages/linux-kernel/patches/kernel/0001-linkstate-ip-device-attribute.patch @@ -6,7 +6,6 @@ Subject: [PATCH] VyOS: Add linkstate IP device attribute Backport of earlier Vyatta patch. (cherry picked from commit 7c5a851086686be14ae937c80d6cee34814dbefc) - --- Documentation/networking/ip-sysctl.rst | 11 +++++++++++ include/linux/inetdevice.h | 1 + @@ -19,12 +18,12 @@ Backport of earlier Vyatta patch. 8 files changed, 34 insertions(+) diff --git a/Documentation/networking/ip-sysctl.rst b/Documentation/networking/ip-sysctl.rst -index 25e6673a085a..4cd1134d3aac 100644 +index ba0e8e6337c0..845599a58e0c 100644 --- a/Documentation/networking/ip-sysctl.rst +++ b/Documentation/networking/ip-sysctl.rst -@@ -1425,6 +1425,17 @@ rp_filter - INTEGER - Default value is 0. Note that some distributions enable it - in startup scripts. +@@ -1526,6 +1526,17 @@ src_valid_mark - BOOLEAN + + Default value is 0. +link_filter - INTEGER + 0 - Allow packets to be received for the address on this interface @@ -41,7 +40,7 @@ index 25e6673a085a..4cd1134d3aac 100644 - 1 - Allows you to have multiple network interfaces on the same subnet, and have the ARPs for each interface be answered diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h -index 3515ca64e638..bfb49b5913e7 100644 +index a038feb63f23..8720f70360a7 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h @@ -133,6 +133,7 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev) @@ -53,11 +52,11 @@ index 3515ca64e638..bfb49b5913e7 100644 struct in_ifaddr { struct hlist_node hash; diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h -index dda61d150a13..9d96b27ec350 100644 +index d1f386430795..6f24c8827d88 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h -@@ -77,6 +77,7 @@ struct ipv6_devconf { - __s32 rpl_seg_enabled; +@@ -81,6 +81,7 @@ struct ipv6_devconf { + __u8 ioam6_enabled; struct ctl_table_header *sysctl_header; + __s32 link_filter; @@ -77,22 +76,22 @@ index e42d13b55cf3..8f5291976f04 100644 }; diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h -index 13e8751bf24a..2ea26a70bda2 100644 +index b243a53fa985..9a3e0c89d17c 100644 --- a/include/uapi/linux/ipv6.h +++ b/include/uapi/linux/ipv6.h -@@ -189,6 +189,7 @@ enum { - DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN, - DEVCONF_NDISC_TCLASS, - DEVCONF_RPL_SEG_ENABLED, +@@ -193,6 +193,7 @@ enum { + DEVCONF_IOAM6_ENABLED, + DEVCONF_IOAM6_ID, + DEVCONF_IOAM6_ID_WIDE, + DEVCONF_LINK_FILTER, DEVCONF_MAX }; diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c -index 123a6d39438f..1deb400805b0 100644 +index 4744c7839de5..4470bd7a9380 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c -@@ -2547,6 +2547,7 @@ static struct devinet_sysctl_table { +@@ -2552,6 +2552,7 @@ static struct devinet_sysctl_table { "route_localnet"), DEVINET_SYSCTL_FLUSHING_ENTRY(DROP_UNICAST_IN_L2_MULTICAST, "drop_unicast_in_l2_multicast"), @@ -101,20 +100,20 @@ index 123a6d39438f..1deb400805b0 100644 }; diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c -index 8b6eb384bac7..176a914acfee 100644 +index 6dcf034835ec..c1820333fd55 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c -@@ -5516,6 +5516,7 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf, - array[DEVCONF_DISABLE_POLICY] = cnf->disable_policy; - array[DEVCONF_NDISC_TCLASS] = cnf->ndisc_tclass; - array[DEVCONF_RPL_SEG_ENABLED] = cnf->rpl_seg_enabled; +@@ -5579,6 +5579,7 @@ static inline void ipv6_store_devconf(struct ipv6_devconf *cnf, + array[DEVCONF_IOAM6_ENABLED] = cnf->ioam6_enabled; + array[DEVCONF_IOAM6_ID] = cnf->ioam6_id; + array[DEVCONF_IOAM6_ID_WIDE] = cnf->ioam6_id_wide; + array[DEVCONF_LINK_FILTER] = cnf->link_filter; } static inline size_t inet6_ifla6_size(void) -@@ -6896,6 +6897,13 @@ static const struct ctl_table addrconf_sysctl[] = { +@@ -7020,6 +7021,13 @@ static const struct ctl_table addrconf_sysctl[] = { .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_douintvec, }, + { + .procname = "link_filter", @@ -122,15 +121,15 @@ index 8b6eb384bac7..176a914acfee 100644 + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec, -+ }, ++ }, { /* sentinel */ } diff --git a/net/ipv6/route.c b/net/ipv6/route.c -index 7e0ce7af8234..c4ef9f4d40e1 100644 +index 27274fc3619a..56e546ab8453 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c -@@ -687,6 +687,14 @@ static inline void rt6_probe(struct fib6_nh *fib6_nh) +@@ -672,6 +672,14 @@ static inline void rt6_probe(struct fib6_nh *fib6_nh) } #endif @@ -145,7 +144,7 @@ index 7e0ce7af8234..c4ef9f4d40e1 100644 /* * Default Router Selection (RFC 2461 6.3.6) */ -@@ -728,6 +736,8 @@ static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, +@@ -713,6 +721,8 @@ static int rt6_score_route(const struct fib6_nh *nh, u32 fib6_flags, int oif, if (!m && (strict & RT6_LOOKUP_F_IFACE)) return RT6_NUD_FAIL_HARD; @@ -155,5 +154,5 @@ index 7e0ce7af8234..c4ef9f4d40e1 100644 m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(fib6_flags)) << 2; #endif -- -2.20.1 +2.30.2 diff --git a/packages/linux-kernel/patches/kernel/0002-inotify-support-for-stackable-filesystems.patch b/packages/linux-kernel/patches/kernel/0002-inotify-support-for-stackable-filesystems.patch index 93e9154e..d020a473 100644 --- a/packages/linux-kernel/patches/kernel/0002-inotify-support-for-stackable-filesystems.patch +++ b/packages/linux-kernel/patches/kernel/0002-inotify-support-for-stackable-filesystems.patch @@ -19,7 +19,6 @@ for bug #303, and will allow that commit to be reverted. Bug #425 http://bugzilla.vyos.net/show_bug.cgi?id=425 (cherry picked from commit a93f1128bc83b5a6628da242e71c18ef05e81ea2) - --- fs/notify/inotify/Kconfig | 9 +++ fs/notify/inotify/inotify_user.c | 114 ++++++++++++++++++++++++++++++- @@ -45,7 +44,7 @@ index 1cc8be25df7e..bc4acd1a6ea4 100644 + + If unsure, say N. diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c -index 186722ba3894..1ce328e506c8 100644 +index 9fb7701d2f8a..a605abbf04ce 100644 --- a/fs/notify/inotify/inotify_user.c +++ b/fs/notify/inotify/inotify_user.c @@ -15,6 +15,7 @@ @@ -56,7 +55,7 @@ index 186722ba3894..1ce328e506c8 100644 #include <linux/fsnotify_backend.h> #include <linux/idr.h> #include <linux/init.h> /* fs_initcall */ -@@ -75,6 +76,93 @@ struct ctl_table inotify_table[] = { +@@ -89,6 +90,93 @@ struct ctl_table inotify_table[] = { }; #endif /* CONFIG_SYSCTL */ @@ -150,7 +149,7 @@ index 186722ba3894..1ce328e506c8 100644 static inline __u32 inotify_arg_to_mask(struct inode *inode, u32 arg) { __u32 mask; -@@ -334,8 +422,8 @@ static const struct file_operations inotify_fops = { +@@ -347,8 +435,8 @@ static const struct file_operations inotify_fops = { /* * find_inode - resolve a user-given path to a specific inode */ @@ -161,7 +160,7 @@ index 186722ba3894..1ce328e506c8 100644 { int error; -@@ -356,6 +444,28 @@ static int inotify_find_inode(const char __user *dirname, struct path *path, +@@ -369,6 +457,28 @@ static int inotify_find_inode(const char __user *dirname, struct path *path, return error; } @@ -191,7 +190,7 @@ index 186722ba3894..1ce328e506c8 100644 struct inotify_inode_mark *i_mark) { diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c -index 290983bcfbb3..c751b0c8d9e5 100644 +index 7bb0a47cb615..6dd5f1000151 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -15,6 +15,7 @@ @@ -202,7 +201,7 @@ index 290983bcfbb3..c751b0c8d9e5 100644 #include "overlayfs.h" MODULE_AUTHOR("Miklos Szeredi <miklos@szeredi.hu>"); -@@ -2040,6 +2041,18 @@ static void ovl_inode_init_once(void *foo) +@@ -2178,6 +2179,18 @@ static void ovl_inode_init_once(void *foo) inode_init_once(&oi->vfs_inode); } @@ -221,7 +220,7 @@ index 290983bcfbb3..c751b0c8d9e5 100644 static int __init ovl_init(void) { int err; -@@ -2055,18 +2068,24 @@ static int __init ovl_init(void) +@@ -2193,18 +2206,24 @@ static int __init ovl_init(void) err = ovl_aio_request_cache_init(); if (!err) { err = register_filesystem(&ovl_fs_type); @@ -295,5 +294,5 @@ index 6a24905f6e1e..4484f0760588 100644 + #endif /* _LINUX_INOTIFY_H */ -- -2.20.1 +2.30.2 diff --git a/packages/minisign/.gitignore b/packages/minisign/.gitignore index 27c4fdb8..bd3598bf 100644 --- a/packages/minisign/.gitignore +++ b/packages/minisign/.gitignore @@ -1,6 +1 @@ minisign/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/ndppd/.gitignore b/packages/ndppd/.gitignore index 779dfe52..0f24798d 100644 --- a/packages/ndppd/.gitignore +++ b/packages/ndppd/.gitignore @@ -1,6 +1 @@ ndppd/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/netfilter/.gitignore b/packages/netfilter/.gitignore new file mode 100644 index 00000000..5f482452 --- /dev/null +++ b/packages/netfilter/.gitignore @@ -0,0 +1,4 @@ +pkg-conntrack-tools/ +pkg-libnetfilter-conntrack/ +pkg-libnftnl/ +pkg-nftables/ diff --git a/packages/netfilter/Jenkinsfile b/packages/netfilter/Jenkinsfile new file mode 100644 index 00000000..d79076f0 --- /dev/null +++ b/packages/netfilter/Jenkinsfile @@ -0,0 +1,52 @@ +// 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@current')_ + +def pkgList = [ + // libnftnl + ['name': 'pkg-libnftnl', + 'scmCommit': 'debian/1.2.3-1', + 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-libnftnl.git', + 'buildCmd': 'dpkg-buildpackage -uc -us -tc -b'], + + // nftables + ['name': 'pkg-nftables', + 'scmCommit': 'debian/1.0.5-1', + 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-nftables.git', + 'buildCmd': '''sudo dpkg -i ../libnftnl*.deb; + sed -i "s/debhelper-compat.*/debhelper-compat (= 12),/" debian/control; + sudo apt-get update; sudo apt-get install -y libeditreadline-dev; + dpkg-buildpackage -uc -us -tc -b'''], + + // libnetfilter-conntrack + ['name': 'pkg-libnetfilter-conntrack', + 'scmCommit': 'debian/1.0.9-1', + 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-libnetfilter-conntrack.git', + 'buildCmd': 'dpkg-buildpackage -uc -us -tc -b'], + + // conntrack-tools + ['name': 'pkg-conntrack-tools', + 'scmCommit': 'debian/1%1.4.6-2', + 'scmUrl': 'https://salsa.debian.org/pkg-netfilter-team/pkg-conntrack-tools.git', + 'buildCmd': '''sudo dpkg -i ../libnetfilter*.deb && dpkg-buildpackage -uc -us -tc -b'''], +] + +// Start package build using library function from https://github.com/vyos/vyos-build +buildPackage('Netfilter', pkgList, null, true) diff --git a/packages/opennhrp/.gitignore b/packages/opennhrp/.gitignore index 03468475..cc02948b 100644 --- a/packages/opennhrp/.gitignore +++ b/packages/opennhrp/.gitignore @@ -1,6 +1 @@ opennhrp/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/openvpn-otp/.gitignore b/packages/openvpn-otp/.gitignore index 83a4b677..91d40208 100644 --- a/packages/openvpn-otp/.gitignore +++ b/packages/openvpn-otp/.gitignore @@ -1,6 +1 @@ openvpn-otp/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/owamp/.gitignore b/packages/owamp/.gitignore index 34df20d8..0826a5ef 100644 --- a/packages/owamp/.gitignore +++ b/packages/owamp/.gitignore @@ -1,6 +1 @@ owamp/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/pam_tacplus/.gitignore b/packages/pam_tacplus/.gitignore new file mode 100644 index 00000000..4c18b4a2 --- /dev/null +++ b/packages/pam_tacplus/.gitignore @@ -0,0 +1,2 @@ +pam_tacplus/ +pam_tacplus-debian/ diff --git a/packages/pam_tacplus/Jenkinsfile b/packages/pam_tacplus/Jenkinsfile new file mode 100644 index 00000000..b5af8eda --- /dev/null +++ b/packages/pam_tacplus/Jenkinsfile @@ -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@current')_ + +def pkgList = [ + ['name': 'pam_tacplus-debian', + 'scmCommit': '50c6fd7', + 'scmUrl': 'https://github.com/kravietz/pam_tacplus-debian', + 'buildCmd': '/bin/true'], + ['name': 'pam_tacplus', + 'scmCommit': '4f91b0d', + 'scmUrl': 'https://github.com/kravietz/pam_tacplus', + 'buildCmd': 'cd ..; ./build.sh'], +] + +// Start package build using library function from https://github.com/vyos/vyos-build +buildPackage('pam_tacplus', pkgList, null, true, "**/packages/pam_tacplus/*") diff --git a/packages/pam_tacplus/build.sh b/packages/pam_tacplus/build.sh new file mode 100755 index 00000000..fe4b06c8 --- /dev/null +++ b/packages/pam_tacplus/build.sh @@ -0,0 +1,15 @@ +#!/bin/sh +CWD=$(pwd) +set -e + +SRC=pam_tacplus +if [ ! -d ${SRC} ]; then + echo "Source directory does not exists, please 'git clone'" + exit 1 +fi + +cd ${SRC} +cp -a ../pam_tacplus-debian debian +rm -f debian/compat + +dpkg-buildpackage -uc -us -tc -b -d diff --git a/packages/pyhumps/.gitignore b/packages/pyhumps/.gitignore new file mode 100644 index 00000000..0cf480fa --- /dev/null +++ b/packages/pyhumps/.gitignore @@ -0,0 +1 @@ +humps/ diff --git a/packages/pyhumps/Jenkinsfile b/packages/pyhumps/Jenkinsfile new file mode 100644 index 00000000..2ed0f995 --- /dev/null +++ b/packages/pyhumps/Jenkinsfile @@ -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@current')_ + +def pkgList = [ + ['name': 'humps', + 'scmCommit': 'v3.8.0', + 'scmUrl': 'https://github.com/nficano/humps.git', + 'buildCmd': 'python setup.py --command-packages=stdeb.command bdist_deb; cp deb_dist/*.deb ..'], +] + +// Start package build using library function from https://github.com/vyos/vyos-build +buildPackage('humps', pkgList, null, false, "**/packages/pyhumps/*") diff --git a/packages/sstp-client/.gitignore b/packages/sstp-client/.gitignore new file mode 100644 index 00000000..5a3cee2b --- /dev/null +++ b/packages/sstp-client/.gitignore @@ -0,0 +1 @@ +sstp-client/ diff --git a/packages/sstp-client/Jenkinsfile b/packages/sstp-client/Jenkinsfile new file mode 100644 index 00000000..9ee4f2c7 --- /dev/null +++ b/packages/sstp-client/Jenkinsfile @@ -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@current')_ + +def pkgList = [ + ['name': 'sstp-client', + 'scmCommit': 'debian/1.0.18-1', + 'scmUrl': 'https://salsa.debian.org/debian/sstp-client', + 'buildCmd': 'dpkg-buildpackage -uc -us -tc -b'], +] + +// Start package build using library function from https://github.com/vyos/vyos-build +buildPackage('sstp-client', pkgList, null, true, "**/packages/sstp-client/*") diff --git a/packages/strongswan/.gitignore b/packages/strongswan/.gitignore index a96baff8..c6b0d6f0 100644 --- a/packages/strongswan/.gitignore +++ b/packages/strongswan/.gitignore @@ -1,6 +1 @@ strongswan/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/telegraf/build.sh b/packages/telegraf/build.sh index 77712412..46dfc88a 100755 --- a/packages/telegraf/build.sh +++ b/packages/telegraf/build.sh @@ -2,6 +2,8 @@ CWD=$(pwd) set -e +BUILD_ARCH=$(dpkg-architecture -qDEB_TARGET_ARCH) + SRC=telegraf if [ ! -d ${SRC} ]; then echo "Source directory does not exists, please 'git clone'" @@ -16,7 +18,7 @@ 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" +echo "I: Build Debian ${BUILD_ARCH} package" cd ${SRC} export PATH=/opt/go/bin:$PATH -LDFLAGS=-w make amd64.deb +LDFLAGS=-w make "${BUILD_ARCH}.deb" diff --git a/packages/wide-dhcpv6/.gitignore b/packages/wide-dhcpv6/.gitignore index 3b710873..5fd2ad64 100644 --- a/packages/wide-dhcpv6/.gitignore +++ b/packages/wide-dhcpv6/.gitignore @@ -1,6 +1 @@ wide-dhcpv6/ -*.deb -*.dsc -*.buildinfo -*.changes -*.git diff --git a/packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch b/packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch new file mode 100644 index 00000000..b5751325 --- /dev/null +++ b/packages/wide-dhcpv6/patches/0024-bind-to-single-socket.patch @@ -0,0 +1,17 @@ +diff --git a/dhcp6c.c b/dhcp6c.c +index 1caaaa5..04ce9c5 100644 +--- a/dhcp6c.c ++++ b/dhcp6c.c +@@ -217,6 +217,12 @@ main(argc, argv) + argv[0]); + exit(1); + } ++ ++ if (setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, argv[0], strlen(argv[0])) != 0) { ++ debug_printf(LOG_ERR, FNAME, "failed to bind %s", argv[0]); ++ exit(1); ++ } ++ + argv++; + } + diff --git a/scripts/build-config b/scripts/build-config deleted file mode 100755 index 4f4a8c08..00000000 --- a/scripts/build-config +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2019, 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 -# 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/>. -# -# File: build-config -# Purpose: -# This script serves the same purpose as ./configure in traditional -# autoconf setups. -# It takes build configuration options from command line, checks them, -# builds a config dictionary, augments it with some default and/or -# computed values and saves it to build/build-config.json -# for other build scripts to read. - -import argparse -import re -import sys -import os -import getpass -import platform -import json - -import defaults - -# argparse converts hyphens to underscores, -# so for lookups in the original options hash we have to -# convert them back -def field_to_option(s): - return re.sub(r'_', '-', s) - -def get_default_build_by(): - return "{user}@{host}".format(user= getpass.getuser(), host=platform.node()) - -def get_validator(optdict, name): - try: - return optdict[name][2] - except KeyError: - return None - -def load_config(filename): - with open(filename, 'r') as f: - print(f'Loading {filename}') - this_config = json.load(f) - - if not 'inherit_from' in this_config: - print(f'No inheritance detected') - return this_config - - inherited_config = load_config(this_config['inherit_from']) - del this_config['inherit_from'] - inherited_config.update(this_config) - return inherited_config - - -# Load the build flavor file -build_flavor = os.getenv('VYOS_BUILD_FLAVOR') -if build_flavor is None: - build_flavor = defaults.DEFAULT_BUILD_FLAVOR -try: - build_defaults = load_config(build_flavor) -except Exception as e: - print("Failed to open the build flavor file {0}: {1}".format(build_flavor, e)) - sys.exit(1) - - -# Options dict format: -# '$option_name_without_leading_dashes': { ('$help_string', $default_value_generator_thunk, $value_checker_thunk) } -options = { - 'architecture': ('Image target architecture (amd64 or i386 or armhf or arm64)', lambda: build_defaults['architecture'], lambda x: x in ['amd64', 'i386', 'armhf', 'arm64']), - 'build-by': ('Builder identifier (e.g. jrandomhacker@example.net)', get_default_build_by, None), - 'debian-mirror': ('Debian repository mirror for ISO build', lambda: build_defaults['debian_mirror'], None), - 'debian-security-mirror': ('Debian security updates mirror', lambda: build_defaults['debian_security_mirror'], None), - 'pbuilder-debian-mirror': ('Debian repository mirror for pbuilder env bootstrap', lambda: build_defaults['debian_mirror'], None), - 'vyos-mirror': ('VyOS package mirror', lambda: build_defaults["vyos_mirror"], None), - 'build-type': ('Build type, release or development', lambda: 'development', lambda x: x in ['release', 'development']), - 'version': ('Version number (release builds only)', None, None), - 'build-comment': ('Optional build comment', lambda: '', None) -} - -# Create the option parser -parser = argparse.ArgumentParser() -for k, v in options.items(): - help_string, default_value_thunk = v[0], v[1] - if default_value_thunk is None: - parser.add_argument('--' + k, type=str, help=help_string) - else: - parser.add_argument('--' + k, type=str, help=help_string, default=default_value_thunk()) - -# The debug option is a bit special since it's different type -parser.add_argument('--debug', help="Enable debug output", action='store_true') - -# Custom APT entry and APT key options can be used multiple times -parser.add_argument('--custom-apt-entry', help="Custom APT entry", action='append') -parser.add_argument('--custom-apt-key', help="Custom APT key file", action='append') -parser.add_argument('--custom-package', help="Custom package to install from repositories", action='append') - -args = vars(parser.parse_args()) - -# Validate options -for k, v in args.items(): - key = field_to_option(k) - func = get_validator(options, k) - if func is not None: - if not func(v): - print("{v} is not a valid value for --{o} option".format(o=key, v=v)) - sys.exit(1) - -# Some fixup for mirror settings. -# The idea is: if --debian-mirror is specified but --pbuilder-debian-mirror is not, -# use the --debian-mirror value for both lb and pbuilder bootstrap -if (args['debian_mirror'] != build_defaults["debian_mirror"]) and \ - (args['pbuilder_debian_mirror'] == build_defaults["debian_mirror"]): - args['pbuilder_debian_mirror'] = args['debian_mirror'] - -# Version can only be set for release builds, -# for dev builds it hardly makes any sense -if args['build_type'] == 'development': - if args['version'] is not None: - print("Version can only be set for release builds") - print("Use --build-type=release option if you want to set version number") - sys.exit(1) - -# Populate some defaults that are not configurable, -# but that are handy to have in the options hash -args['distribution'] = build_defaults["debian_distribution"] -args['build_dir'] = defaults.BUILD_DIR -args['pbuilder_config'] = defaults.PBUILDER_CONFIG -args['vyos_branch'] = build_defaults["vyos_branch"] -args['release_train'] = build_defaults["release_train"] - -# Add custom packages from build defaults -if not args['custom_package']: - args['custom_package'] = [] -args['custom_package'] = args['custom_package'] + build_defaults['custom_packages'] - -if not args['custom_apt_entry']: - args['custom_apt_entry'] = [] -args['custom_apt_entry'] = args['custom_apt_entry'] + build_defaults['additional_repositories'] - - -# Check the build environment and dependencies -env_check_retval = os.system("scripts/check-build-env") -if env_check_retval > 0: - print("Build environment check failed, fix the issues and retry") - -args['kernel_version'] = build_defaults['kernel_version'] -args['kernel_flavor'] = build_defaults['kernel_flavor'] -args['bootloaders'] = build_defaults['bootloaders'] - - -# Save to file -os.makedirs(defaults.BUILD_DIR, exist_ok=True) -print("Saving the build config to {0}".format(defaults.BUILD_CONFIG)) -with open(defaults.BUILD_CONFIG, 'w') as f: - json.dump(args, f, indent=4, sort_keys=True) - print("\n", file=f) - diff --git a/scripts/build-flavour b/scripts/build-flavour deleted file mode 100755 index 5e76672b..00000000 --- a/scripts/build-flavour +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# Copyright (C) 2016 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 -# 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/>. -# -# File: build-flavour -# Purpose: Adds various data files to the build config -# depending on the build flavour. - - -BUILD_TYPE=$(scripts/query-json build/build-config.json build_type) -BUILD_ARCH=$(scripts/query-json build/build-config.json architecture) - -# Add debug tools if it's a development image -if [ $BUILD_TYPE = "development" ]; then - cp data/package-lists/vyos-dev.list.chroot build/config/package-lists/ -fi - -# Install grub-pc if it's an x86 build -if [ $BUILD_ARCH = 'amd64' -o $BUILD_ARCH = 'i386' ]; then - cp data/package-lists/vyos-x86.list.chroot build/config/package-lists/ -fi - -# Install grub-efi-arm if it's an arm build -if [ $BUILD_ARCH = 'armhf' -o $BUILD_ARCH = 'armel' -o $BUILD_ARCH = 'arm' ]; then - cp data/package-lists/vyos-arm.list.chroot build/config/package-lists/ -fi diff --git a/scripts/build-vyos-image b/scripts/build-vyos-image new file mode 100755 index 00000000..f09791d9 --- /dev/null +++ b/scripts/build-vyos-image @@ -0,0 +1,497 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2022 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 +# 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/>. +# +# File: build-vyos-image +# Purpose: builds VyOS images using a fork of Debian's live-build tool + +import re +import os +import sys +import uuid +import glob +import shutil +import getpass +import platform +import argparse +import datetime +import functools + +import json + + +try: + import toml + import jinja2 + import git +except ModuleNotFoundError as e: + print("Cannot load a required library: {}".format(e)) + print("Please make sure the following Python3 modules are installed: toml jinja2 git") + +import vyos_build_utils as utils +import vyos_build_defaults as defaults + +# argparse converts hyphens to underscores, +# so for lookups in the original options hash we have to convert them back +def field_to_option(s): + return re.sub(r'_', '-', s) + +def get_default_build_by(): + return "{user}@{host}".format(user= getpass.getuser(), host=platform.node()) + +def get_validator(optdict, name): + try: + return optdict[name][2] + except KeyError: + return None + +def merge_dicts(source, destination): + """ Merge two dictionaries and return a new dict which has the merged key/value pairs. + Merging logic is as follows: + Sub-dicts are merged. + List values are combined. + Scalar values are set to those from the source dict. + """ + from copy import deepcopy + tmp = deepcopy(destination) + + for key, value in source.items(): + if key not in tmp: + tmp[key] = value + elif isinstance(source[key], dict): + tmp[key] = merge_dicts(source[key], tmp[key]) + elif isinstance(source[key], list): + tmp[key] = source[key] + tmp[key] + else: + tmp[key] = source[key] + + return tmp + +def has_nonempty_key(config, key): + if key in config: + if config[key]: + return True + return False + +def make_toml_path(dir, file_basename): + return os.path.join(dir, file_basename + ".toml") + + +if __name__ == "__main__": + ## Check if the script is running wirh root permissions + ## Since live-build requires privileged calls such as chroot(), + ## there's no real way around it. + if os.getuid() != 0: + print("E: this script requires root privileges") + sys.exit(1) + + ## Check if there are missing build dependencies + deps = { + 'packages': [ + 'sudo', + 'make', + 'live-build', + 'pbuilder', + 'devscripts', + 'python3-pystache', + 'python3-git', + 'qemu-utils' + ], + 'binaries': [] + } + + print("I: Checking if packages required for VyOS image build are installed") + try: + checker = utils.check_system_dependencies(deps) + except OSError as e: + print(e) + sys.exit(1) + + ## Load the file with default build configuration options + try: + with open(defaults.DEFAULTS_FILE, 'r') as f: + build_defaults = toml.load(f) + except Exception as e: + print("Failed to open the defaults file {0}: {1}".format(defaults.DEFAULTS_FILE, e)) + sys.exit(1) + + ## Get a list of available build flavors + build_flavors = list(map(lambda f: os.path.splitext(f)[0], os.listdir(defaults.BUILD_FLAVORS_DIR))) + + ## Set up the option parser + ## XXX: It uses values from the default configuration file for its option defaults, + ## which is why it's defined after loading the defaults.toml file data. + + # Options dict format: + # '$option_name_without_leading_dashes': { ('$help_string', $default_value_generator_thunk, $value_checker_thunk) } + options = { + 'architecture': ('Image target architecture (amd64 or arm64)', + lambda: build_defaults['architecture'], lambda x: x in ['amd64', 'arm64']), + 'build-by': ('Builder identifier (e.g. jrandomhacker@example.net)', get_default_build_by, None), + 'debian-mirror': ('Debian repository mirror', lambda: build_defaults['debian_mirror'], None), + 'debian-security-mirror': ('Debian security updates mirror', lambda: build_defaults['debian_security_mirror'], None), + 'pbuilder-debian-mirror': ('Debian repository mirror for pbuilder env bootstrap', lambda: build_defaults['debian_mirror'], None), + 'vyos-mirror': ('VyOS package mirror', lambda: build_defaults["vyos_mirror"], None), + 'build-type': ('Build type, release or development', lambda: 'development', lambda x: x in ['release', 'development']), + 'version': ('Version number (release builds only)', None, None), + 'build-comment': ('Optional build comment', lambda: '', None) + } + + # Create the option parser + parser = argparse.ArgumentParser() + for k, v in options.items(): + help_string, default_value_thunk = v[0], v[1] + if default_value_thunk is None: + parser.add_argument('--' + k, type=str, help=help_string) + else: + parser.add_argument('--' + k, type=str, help=help_string, default=default_value_thunk()) + + # The debug option is a bit special since it different type is different + parser.add_argument('--debug', help='Enable debug output', action='store_true') + + parser.add_argument('--dry-run', help='Check build configuration and exit', action='store_true') + + # Custom APT entry and APT key options can be used multiple times + parser.add_argument('--custom-apt-entry', help="Custom APT entry", action='append', default=[]) + parser.add_argument('--custom-apt-key', help="Custom APT key file", action='append', default=[]) + parser.add_argument('--custom-package', help="Custom package to install from repositories", action='append', default=[]) + + # Build flavor is a positional argument + parser.add_argument('build_flavor', help='Build flavor', nargs='?', action='store') + + args = vars(parser.parse_args()) + + debug = args["debug"] + + # Validate options + for k, v in args.items(): + key = field_to_option(k) + func = get_validator(options, k) + if func is not None: + if not func(v): + print("{v} is not a valid value for --{o} option".format(o=key, v=v)) + sys.exit(1) + + if not args["build_flavor"]: + print("E: Build flavor is not specified!") + print("E: For example, to build the generic ISO, run {} iso".format(sys.argv[0])) + print("Available build flavors:\n") + print("\n".join(build_flavors)) + sys.exit(1) + + # Some fixup for mirror settings. + # The idea is: if --debian-mirror is specified but --pbuilder-debian-mirror is not, + # use the --debian-mirror value for both lb and pbuilder bootstrap + if (args['debian_mirror'] != build_defaults["debian_mirror"]) and \ + (args['pbuilder_debian_mirror'] == build_defaults["debian_mirror"]): + args['pbuilder_debian_mirror'] = args['debian_mirror'] + + # Version can only be set for release builds, + # for dev builds it hardly makes any sense + if args['build_type'] == 'development': + if args['version'] is not None: + print("Version can only be set for release builds") + print("Use --build-type=release option if you want to set version number") + sys.exit(1) + + ## Inject some useful hardcoded options + args['build_dir'] = defaults.BUILD_DIR + args['pbuilder_config'] = os.path.join(defaults.BUILD_DIR, defaults.PBUILDER_CONFIG) + + ## Combine the arguments with non-configurable defaults + build_config = merge_dicts(args, build_defaults) + + ## Load the flavor file and mix-ins + with open(make_toml_path(defaults.BUILD_TYPES_DIR, build_config["build_type"]), 'r') as f: + build_type_config = toml.load(f) + build_config = merge_dicts(build_type_config, build_config) + + with open(make_toml_path(defaults.BUILD_ARCHES_DIR, build_config["architecture"]), 'r') as f: + build_arch_config = toml.load(f) + build_config = merge_dicts(build_arch_config, build_config) + + with open(make_toml_path(defaults.BUILD_FLAVORS_DIR, build_config["build_flavor"]), 'r') as f: + flavor_config = toml.load(f) + build_config = merge_dicts(flavor_config, build_config) + + ## Rename and merge some fields for simplicity + ## E.g. --custom-packages is for the user, but internally + ## it's added to the same package list as everything else + if has_nonempty_key(build_config, "custom_package"): + build_config["packages"] += build_config["custom_package"] + del build_config["custom_package"] + + ## Add architecture-dependent packages from the flavor + if has_nonempty_key(build_config, "architectures"): + arch = build_config["architecture"] + if arch in build_config["architectures"]: + build_config["packages"] += build_config["architectures"][arch]["packages"] + + ## Dump the complete config if the user enabled debug mode + if debug: + import json + print("D: Effective build config:\n") + print(json.dumps(build_config, indent=4)) + + ## Clean up the old build config and set up a fresh copy + lb_config_dir = os.path.join(defaults.BUILD_DIR, defaults.LB_CONFIG_DIR) + print(lb_config_dir) + shutil.rmtree(lb_config_dir, ignore_errors=True) + shutil.copytree("data/live-build-config/", lb_config_dir) + os.makedirs(lb_config_dir, exist_ok=True) + + ## Create the version file + + # Create a build timestamp + now = datetime.datetime.today() + build_timestamp = now.strftime("%Y%m%d%H%M") + + # FIXME: use aware rather than naive object + build_date = now.strftime("%a %d %b %Y %H:%M UTC") + + # Assign a (hopefully) unique identifier to the build (UUID) + build_uuid = str(uuid.uuid4()) + + # Initialize Git object from our repository + try: + repo = git.Repo('.') + + # 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" + + # Retrieve git branch name + git_branch = repo.active_branch.name + except Exception as e: + print("Could not retrieve information from git: {0}".format(str(e))) + build_git = "" + git_branch = "" + git_commit = "" + + # Create the build version string + if build_config['build_type'] == 'development': + try: + if not git_branch: + raise ValueError("git branch could not be determined") + + # Load the branch to version mapping file + with open('data/versions') as f: + version_mapping = json.load(f) + + branch_version = version_mapping[git_branch] + + version = "{0}-rolling-{1}".format(branch_version, build_timestamp) + except Exception as e: + print("Could not build a version string specific to git branch, falling back to default: {0}".format(str(e))) + version = "999.{0}".format(build_timestamp) + else: + # Release build, use the version from ./configure arguments + version = build_config['version'] + + if build_config['build_type'] == 'development': + lts_build = False + else: + lts_build = True + + version_data = { + 'version': version, + 'built_by': build_config['build_by'], + 'built_on': build_date, + 'build_uuid': build_uuid, + 'build_git': build_git, + 'build_branch': git_branch, + 'release_train': build_config['release_train'], + 'lts_build': lts_build, + '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={build_defaults['debian_distribution']} + ID=vyos + HOME_URL="{build_defaults['website_url']}" + SUPPORT_URL="{build_defaults['support_url']}" + BUG_REPORT_URL="{build_defaults['bugtracker_url']}" + """ + + chroot_includes_dir = os.path.join(defaults.BUILD_DIR, defaults.CHROOT_INCLUDES_DIR) + vyos_data_dir = os.path.join(chroot_includes_dir, "usr/share/vyos") + os.makedirs(vyos_data_dir, exist_ok=True) + with open(os.path.join(vyos_data_dir, 'version.json'), 'w') as f: + json.dump(version_data, f) + + # For backwards compatibility with 'add system image' script from older versions + # we need a file in the old format so that script can find out the version of the image + # for upgrade + os.makedirs(os.path.join(chroot_includes_dir, 'opt/vyatta/etc/'), exist_ok=True) + with open(os.path.join(chroot_includes_dir, 'opt/vyatta/etc/version'), 'w') as f: + print("Version: {0}".format(version), file=f) + + + # Define variables that influence to welcome message on boot + os.makedirs(os.path.join(chroot_includes_dir, 'usr/lib/'), exist_ok=True) + with open(os.path.join(chroot_includes_dir, 'usr/lib//os-release'), 'w') as f: + print(os_release, file=f) + + + ## Switch to the build directory, this is crucial for the live-build work work + ## because the efective build config files etc. are there + os.chdir(defaults.BUILD_DIR) + + ## Clean up earlier build state and artifacts + print("I: Cleaning the build workspace") + os.system("lb clean") + #iter(lambda p: shutil.rmtree(p, ignore_errors=True), + # ['config/binary', 'config/bootstrap', 'config/chroot', 'config/common', 'config/source']) + artifacts = functools.reduce( + lambda x, y: x + y, + map(glob.glob, ['*.iso', '*.raw', '*.img', '*.xz', '*.ova', '*.ovf'])) + iter(os.remove, artifacts) + + ## Create live-build configuration files + + # Add the additional repositories to package lists + print("I: Setting up additional APT entries") + vyos_repo_entry = "deb {0} {1} main\n".format(build_config['vyos_mirror'], build_config['vyos_branch']) + + apt_file = defaults.VYOS_REPO_FILE + + if debug: + print("D: Adding these entries to {0}:".format(apt_file)) + print("\t", vyos_repo_entry) + + with open(apt_file, 'w') as f: + f.write(vyos_repo_entry) + + # Add custom APT entries + if build_config.get('additional_repositories', False): + build_config['custom_apt_entry'] += build_config['additional_repositories'] + + if build_config.get('custom_apt_entry', False): + custom_apt_file = defaults.CUSTOM_REPO_FILE + entries = "\n".join(build_config['custom_apt_entry']) + if debug: + print("D: Adding custom APT entries:") + print(entries) + with open(custom_apt_file, 'w') as f: + f.write(entries) + f.write("\n") + + # Add custom APT keys + if has_nonempty_key(build_config, 'custom_apt_key'): + key_dir = defaults.ARCHIVES_DIR + for k in build_config['custom_apt_key']: + dst_name = '{0}.key.chroot'.format(os.path.basename(k)) + shutil.copy(k, os.path.join(key_dir, dst_name)) + + # Add custom packages + if has_nonempty_key(build_config, 'packages'): + package_list_file = defaults.PACKAGE_LIST_FILE + packages = "\n".join(build_config['packages']) + with open (package_list_file, 'w') as f: + f.write(packages) + + ## Create includes + if has_nonempty_key(build_config, "includes_chroot"): + for i in build_config["includes_chroot"]: + file_path = os.path.join(chroot_includes_dir, i["path"]) + os.makedirs(os.path.dirname(file_path), exist_ok=True) + with open(file_path, 'w') as f: + f.write(i["data"]) + + + ## Configure live-build + lb_config_tmpl = jinja2.Template(""" + lb config noauto \ + --architectures {{architecture}} \ + --bootappend-live "boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \ + --bootappend-live-failsafe "live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \ + --linux-flavours {{kernel_flavor}} \ + --linux-packages linux-image-{{kernel_version}} \ + --bootloader {{ bootloaders }} \ + --binary-images iso-hybrid \ + --checksums 'sha256 md5' \ + --debian-installer none \ + --distribution {{debian_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,ca-certificates,gnupg2" \ + --mirror-bootstrap {{debian_mirror}} \ + --mirror-chroot {{debian_mirror}} \ + --mirror-chroot-security {{debian_security_mirror}} \ + --mirror-binary {{debian_mirror}} \ + --mirror-binary-security {{debian_security_mirror}} \ + --archive-areas "main contrib non-free" \ + --firmware-chroot false \ + --firmware-binary false \ + --updates true \ + --security true \ + --backports true \ + --apt-recommends false \ + --apt-options "--yes -oAPT::Get::allow-downgrades=true" \ + --apt-indices false + "${@}" + """) + + lb_config_command = lb_config_tmpl.render(build_config) + + ## Pin release for VyOS packages + apt_pin = f"""Package: * +Pin: release n={build_config['release_train']} +Pin-Priority: 600 +""" + + with open(defaults.VYOS_PIN_FILE, 'w') as f: + f.write(apt_pin) + + print("I: Configuring live-build") + + if debug: + print("D: live-build configuration command") + print(lb_config_command) + + result = os.system(lb_config_command) + if result > 0: + print("E: live-build config failed") + sys.exit(1) + + ## In dry-run mode, exit at this point + if build_config["dry_run"]: + print("I: dry-run, not starting image build") + sys.exit(0) + + ## Add local packages + local_packages = glob.glob('../packages/*.deb') + if local_packages: + for f in local_packages: + shutil.copy(f, os.path.join(defaults.LOCAL_PACKAGES_PATH, os.path.basename(f))) + + ## Build the image + print("I: Starting image build") + if debug: + print("D: It's not like I'm building this specially for you or anything!") + res = os.system("lb build 2>&1") + if res > 0: + sys.exit(res) + + # Copy the image + shutil.copy("live-image-{0}.hybrid.iso".format(build_config["architecture"]), + "vyos-{0}-{1}.iso".format(version_data["version"], build_config["architecture"])) diff --git a/scripts/check-config b/scripts/check-config deleted file mode 100755 index d2236619..00000000 --- a/scripts/check-config +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2015 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 -# 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/>. -# -# File: check-config -# Purpose: -# Checks if the build config file (build/build-config.json) exists. -# This is to prevent accidental execution of plumbing make targets -# from going too far and failing with confusing errors. - - -import sys -import json - -import defaults - - -print("Checking build configuration") - -try: - with open(defaults.BUILD_CONFIG, 'r') as f: - build_config = json.load(f) -except: - print("Build config does not exist or is not a valid JSON file") - print("Please run the ./configure script and try again") - sys.exit(1) diff --git a/scripts/check-qemu-install b/scripts/check-qemu-install index 61e206a4..246f90b8 100755 --- a/scripts/check-qemu-install +++ b/scripts/check-qemu-install @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2019-2021, VyOS maintainers and contributors +# Copyright (C) 2019-2022, 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,7 +42,7 @@ import random import traceback import logging import re -import json +import toml from io import BytesIO from io import StringIO @@ -78,8 +78,8 @@ parser.add_argument('--qemu-cmd', help='Only generate QEMU launch command', args = parser.parse_args() -with open('data/defaults.json') as f: - vyos_defaults = json.load(f) +with open('data/defaults.toml') as f: + vyos_defaults = toml.load(f) class StreamToLogger(object): """ @@ -391,7 +391,7 @@ try: 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(f'{vyos_defaults["kernel_version"]}-{vyos_defaults["architecture"]}-vyos') c.expect(op_mode_prompt) c.sendline('show version frr') c.expect(op_mode_prompt) diff --git a/scripts/copy-image b/scripts/copy-image deleted file mode 100755 index 4196d06d..00000000 --- a/scripts/copy-image +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -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)" - -cp "$BUILD_DIR/live-image-$BUILD_ARCH.hybrid.iso" "$BUILD_DIR/vyos-$VERSION-$BUILD_ARCH.iso" diff --git a/scripts/live-build-config b/scripts/live-build-config deleted file mode 100755 index a797a32c..00000000 --- a/scripts/live-build-config +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2018 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 -# 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/>. -# -# File: live-build-config -# Purpose: -# Creates a live-build config command from template using the build config -# and executes it, to prepare the system for building the installation ISO. - - -import sys -import os -import shutil -import json - -import pystache - -import defaults -import util - -util.check_build_config() - -lb_config_tmpl = """ -lb config noauto \ - --architectures {{architecture}} \ - --bootappend-live "boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \ - --bootappend-live-failsafe "live components memtest noapic noapm nodma nomce nolapic nomodeset nosmp nosplash vga=normal console=ttyS0,115200 console=tty0 net.ifnames=0 biosdevname=0" \ - --linux-flavours {{kernel_flavor}} \ - --linux-packages linux-image-{{kernel_version}} \ - --bootloader {{bootloaders}} \ - --binary-images iso-hybrid \ - --checksums 'sha256 md5' \ - --debian-installer none \ - --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,ca-certificates,gnupg2" \ - --mirror-bootstrap {{debian_mirror}} \ - --mirror-chroot {{debian_mirror}} \ - --mirror-chroot-security {{debian_security_mirror}} \ - --mirror-binary {{debian_mirror}} \ - --mirror-binary-security {{debian_security_mirror}} \ - --archive-areas "main contrib non-free" \ - --firmware-chroot false \ - --firmware-binary false \ - --updates true \ - --security false \ - --backports true \ - --utc-time true \ - --debug \ - --apt-recommends false \ - --apt-options "--yes -oAPT::Get::allow-downgrades=true" \ - --apt-indices false - "${@}" -""" - -with open(defaults.BUILD_CONFIG, 'r') as f: - build_config = json.load(f) - -debug = build_config['debug'] - -# Add the additional repositories to package lists -print("Setting up additional APT entries") -vyos_repo_entry = "deb {0} {1} main\n".format(build_config['vyos_mirror'], build_config['vyos_branch']) - -apt_file = os.path.join(build_config['build_dir'], defaults.VYOS_REPO_FILE) - -if debug: - print("Adding these entries to {0}:".format(apt_file)) - print("\t", vyos_repo_entry) - -with open(apt_file, 'w') as f: - f.write(vyos_repo_entry) - -# Add custom APT entries -if build_config['custom_apt_entry']: - custom_apt_file = os.path.join(build_config['build_dir'], defaults.CUSTOM_REPO_FILE) - entries = "\n".join(build_config['custom_apt_entry']) - if debug: - print("Adding custom APT entries:") - print(entries) - with open(custom_apt_file, 'w') as f: - f.write(entries) - f.write("\n") - -# Add custom APT keys -if build_config['custom_apt_key']: - key_dir = os.path.join(build_config['build_dir'], defaults.ARCHIVES_DIR) - for k in build_config['custom_apt_key']: - dst_name = '{0}.key.chroot'.format(os.path.basename(k)) - shutil.copy(k, os.path.join(key_dir, dst_name)) - -# Add custom packages -if build_config['custom_package']: - package_list_file = os.path.join(build_config['build_dir'], defaults.CUSTOM_PACKAGE_LIST_FILE) - packages = "\n".join(build_config['custom_package']) - with open (package_list_file, 'w') as f: - f.write(packages) - -# Configure live-build - -lb_config_command = pystache.render(lb_config_tmpl, build_config) - -print("Configuring live-build") - -os.chdir(defaults.BUILD_DIR) -result = os.system(lb_config_command) -if result > 0: - print("live-build config failed") - sys.exit(1) diff --git a/scripts/query-json b/scripts/query-json deleted file mode 100755 index 2f1ea32f..00000000 --- a/scripts/query-json +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (C) 2016 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 -# 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/>. -# -# File: query-config -# Purpose: Extracts field values from a flat JSON file, -# for use in languages that can't handle JSON easily, -# (I'm looking at you, Bourne shell!) - - -import sys -import json - -import defaults -import util - -if len(sys.argv) < 3: - print("Usage: {0} <flat JSON file> <config field name>".format(sys.argv[0])) - sys.exit(1) - -# Note: lack of error handling is deliberate, if some field is expected to be there -# but isn't, it's better if the failure will be obvious and spectacular - -file = sys.argv[1] -key = sys.argv[2] - -with open(file, 'r') as f: - json_data = json.load(f) - -print(json_data[key]) diff --git a/scripts/defaults.py b/scripts/vyos_build_defaults.py index 5d489e48..975fcb71 100644 --- a/scripts/defaults.py +++ b/scripts/vyos_build_defaults.py @@ -18,19 +18,30 @@ import os +# Relative to the repository directory + BUILD_DIR = 'build' -BUILD_CONFIG = os.path.join(BUILD_DIR, 'build-config.json') +BUILD_CONFIG = os.path.join(BUILD_DIR, 'build-config.toml') + +DEFAULTS_FILE = 'data/defaults.toml' + +BUILD_TYPES_DIR = 'data/build-types' +BUILD_ARCHES_DIR = 'data/architectures' +BUILD_FLAVORS_DIR = 'data/build-flavors' + +# Relative to the build directory -PBUILDER_CONFIG = os.path.join(BUILD_DIR, 'pbuilderrc') -PBUILDER_DIR = os.path.join(BUILD_DIR, 'pbuilder') +PBUILDER_CONFIG = 'pbuilderrc' +PBUILDER_DIR = 'pbuilder' -LB_CONFIG_DIR = os.path.join(BUILD_DIR, 'config') -CHROOT_INCLUDES_DIR = os.path.join(LB_CONFIG_DIR, 'includes.chroot') +LB_CONFIG_DIR = 'config' +CHROOT_INCLUDES_DIR = 'config/includes.chroot' ARCHIVES_DIR = 'config/archives/' VYOS_REPO_FILE = 'config/archives/vyos.list.chroot' +VYOS_PIN_FILE = 'config/archives/release.pref.chroot' CUSTOM_REPO_FILE = 'config/archives/custom.list.chroot' -CUSTOM_PACKAGE_LIST_FILE = 'config/package-lists/custom.list.chroot' +PACKAGE_LIST_FILE = 'config/package-lists/custom.list.chroot' -DEFAULT_BUILD_FLAVOR = 'data/defaults.json' +LOCAL_PACKAGES_PATH = 'config/packages.chroot/' diff --git a/scripts/util.py b/scripts/vyos_build_utils.py index 7cc33364..ed358848 100644 --- a/scripts/util.py +++ b/scripts/vyos_build_utils.py @@ -21,7 +21,7 @@ import sys import os from distutils.spawn import find_executable -import defaults +import vyos_build_defaults as defaults def check_build_config(): if not os.path.exists(defaults.BUILD_CONFIG): @@ -60,6 +60,18 @@ class DependencyChecker(object): return self.__missing return None - def print_missing_deps(self): - print("Missing packages: " + " ".join(self.__missing['packages'])) - print("Missing binaries: " + " ".join(self.__missing['binaries'])) + def format_missing_dependencies(self): + msg = "E: There are missing system dependencies!\n" + if self.__missing['packages']: + msg += "E: Missing packages: " + " ".join(self.__missing['packages']) + if self.__missing['binaries']: + msg += "E: Missing binaries: " + " ".join(self.__missing['binaries']) + return msg + +def check_system_dependencies(deps): + checker = DependencyChecker(deps) + missing = checker.get_missing_dependencies() + if missing: + raise OSError(checker.format_missing_dependencies()) + else: + pass diff --git a/vars/buildPackage.groovy b/vars/buildPackage.groovy index b25b0eb5..42c449bc 100644 --- a/vars/buildPackage.groovy +++ b/vars/buildPackage.groovy @@ -42,7 +42,6 @@ def call(description=null, pkgList=null, buildCmd=null, buildArm=false, changesP when { anyOf { changeset "${changesPattern}" - changeset "**/data/defaults.json" triggeredBy cause: "UserIdCause" } } |