Merge branch 'equuleus' of github.com:vyos/vyos-build into current

* 'equuleus' of github.com:vyos/vyos-build: (68 commits)
  systemd: cryptsetup: we do not support encrypted volumes
  systemd: igmpproxy: service is handled by VyOS CLI
  systemd: ntp: service is handled by VyOS CLI
  systemd: man: do not rebuild man db once a day
  systemd: pcscd: disable SmartCard service
  systemd: apt: disable daily update service
  ndisc6: add ICMPv6 Neighbor Discovery tool
  rsyslog: disabling rsyslog causes start issues if required
  syslog: T1834:  'del system syslog' doesn't stop rsyslog
  syslog: T1834:  'del system syslog' doesn't stop rsyslog
  Jenkins: archive ISO on failed builds if possible
  vyos-qat: adding pkg dependency
  Kernel: T1800: update to Linux 4.19.84
  hooks: synchronize Linux Firmware with current branch
  Kernel: T1791: update to Linux 4.19.82
  T1773: update Dockerfile for changes to libvyosconfig
  kernel-version: fixing typo
  Kernel: update to 4.19.76 in defaults.json
  acpid: enable acpid to enable power button triggered shutdowns
  systemd-disable - heartbeat.service disabled
  ...
This commit is contained in:
Christian Poessinger 2019-12-18 12:41:59 +01:00
commit e2559c975d
21 changed files with 645 additions and 344 deletions

12
Jenkinsfile vendored
View File

@ -102,6 +102,14 @@ pipeline {
sh 'sudo make iso' sh 'sudo make iso'
} }
} }
stage('Test') {
steps {
sh """
cd build
sudo ../scripts/check-qemu-install --debug live-image-amd64.hybrid.iso
"""
}
}
} }
post { post {
success { success {
@ -139,6 +147,10 @@ pipeline {
} }
} }
} }
failure {
archiveArtifacts artifacts: 'build/live-image-amd64.hybrid.iso',
allowEmptyArchive: true
}
cleanup { cleanup {
echo 'One way or another, I have finished' echo 'One way or another, I have finished'
// the 'build' directory got elevated permissions during the build // the 'build' directory got elevated permissions during the build

View File

@ -2,15 +2,11 @@
"architecture": "amd64", "architecture": "amd64",
"debian_mirror": "http://deb.debian.org/debian", "debian_mirror": "http://deb.debian.org/debian",
"debian_security_mirror": "http://deb.debian.org/debian-security", "debian_security_mirror": "http://deb.debian.org/debian-security",
"debian_distribution": "jessie", "debian_distribution": "buster",
"vyos_mirror": "http://dev.packages.vyos.net/repositories/current", "vyos_mirror": "http://dev.packages.vyos.net/repositories/current",
"vyos_branch": "current", "vyos_branch": "current",
"kernel_version": "4.19.89", "kernel_version": "4.19.89",
"kernel_flavor": "amd64-vyos", "kernel_flavor": "amd64-vyos",
"additional_repositories": [ "additional_repositories": [],
"deb http://repo.saltstack.com/apt/debian/8/amd64/2017.7 jessie main",
"deb http://repo.powerdns.com/debian jessie-rec-41 main",
"deb http://archive.debian.org/debian/ jessie-backports main"
],
"custom_packages": [] "custom_packages": []
} }

View File

@ -1,32 +1,53 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux) Version: GnuPG v2.0.22 (GNU/Linux)
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
c9HOeh3wbjjt4uONvxeleE+jM9v63Q== ZaWqqNRfZheOU5hUVJjW6cv7xqaWIn9J/7vatmdeX8H1cVWpSk/e1QT1Fop7I71e
=gflA 4skDn8YI6JIZgFBrqe1O3YHOQDZbMO9zR5jNpVD7XXLyGsRvjnkH/ybugBeiVCqt
7x2I8OnDQggFnBrishMjVrEmBAduE3JICC1IbCCtVG67h07E/BC7XJVgME8Hvfwl
EBTo8Y6CWcrsJZfAQKU+3wi5feFVLIbhNceiGcxmi7uJML+hGoSf92Pmn7i9p5su
ywy4XF+aWvd4R3CMYywOiukB3rItic7gp0tpcMK7AwessGqvD/luz2cNY1IqDKak
w7jGbGUT54zKO3tpt73dYGyf3SUHQ9aNAaGuSxjq/c9v9X4KpzmAi82rt4wSkDVa
/5SkxsU9aP6lql2MrZm//Pj3hjyipTLUFhndbjeJDgBRROMJdokNkFIIaweJGAg2
wNwBC6HRIYXLyOsV+Azf1gqSpCEqdKVLJkBduuChtd7N9xoUahag2yya+ujwpcN6
nlmnhZt+yfgi0uO2cPmsof9PkJi+cb44IAgkvG96Zj2JbLHSlGipyYTHLYS46RC4
CkaF3DSwDXVU+lBqJz+WkOywpMGUKtZwPbpy7ZJVf2JL8Rf0D95sIaeICwARAQAB
iQIfBBgBAgAJBQJdPzK7AhsMAAoJELK9zt4uv5wG45IP/2YEQzyn2qiqHInLEmXE
R7fefmkiTy925juASQiR/LGOCSfCOnMKBMkyi63XvQuhAALU6RxgK69yLZJYWQ+a
gh+vrrndCzprCM4PohuupknA8nAY+FvC5xoOZVkZ/+vUP344ukxN9Fz1d9oU3G5a
luoA23G1qs7kHJw/xzN1BFNqie2mIzMAOI0Wu0BZxmYmD3Ph0KMbUD08jX6ImDF6
EnqS0VhCgXfWhPBqh5TOG35Fi5ZCmupbgqBJQZg5fLIWS3Hk2qBm70FR3iLdjiYu
w165hBlqcJ2YfvVBKVvMNRVB9BtF7BfzCM3/y/4V82EZ7qQJ+jE30N+/vwrAOrUd
QVlFsC5eYDOkRb3XXhijXZhoKoeXTwY7TGNntavVMYZ2W4EFoX2OH8/2A7KEYhqc
3cjEJ7EoM6hkmm6xmU82oQ8Moll1SgQbkNKlZYDPMs7Ppr4zBJjnVYVcP9e1RLFO
0POJbtG7CCAstcvMu/3Yw7Il/TOGvc3TNBPrkYtriDj+B900W5sEc33iUV9VRAAi
Bkfs0XMSQVIcMdquu2LGfNWBjd/YCZVQ8OzFYoZJeq18oxeZ9/tE4NE3KyUBmqil
5/WicCYtxgxByAvhN5dFn+nPfoEMQ/e9Zhs2ImrrSy12Ehg1swRjAK39NrjySDFT
FhyPysWJ4aNKtAYgVuQguPTt
=rJUC
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,52 +1,53 @@
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux) Version: GnuPG v2.0.22 (GNU/Linux)
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
8vzPzaWHhkOkU8/J/Ci7+vNtUOZb FhyPysWJ4aNKtAYgVuQguPTt
=Ld8S =rJUC
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
exit 0
# hack umountfs script to cleanly unmount live systems # hack umountfs script to cleanly unmount live systems
sed \ sed \

View File

@ -39,6 +39,20 @@ systemctl disable strongswan.service
systemctl disable frr.service systemctl disable frr.service
systemctl disable salt-minion.service systemctl disable salt-minion.service
systemctl disable nginx.service systemctl disable nginx.service
systemctl disable pacemaker.service
systemctl disable corosync.service
systemctl disable wpa_supplicant.service
systemctl disable squid.service
systemctl disable heartbeat.service
systemctl disable apt-daily.service
systemctl disable apt-daily.timer
systemctl disable apt-daily-upgrade.timer
systemctl disable apt-daily-upgrade.service
systemctl disable pcscd.service systemctl disable pcscd.service
systemctl disable man-db.timer
systemctl disable ntp.service
systemctl disable igmpproxy.service
systemctl disable cryptsetup.service
systemctl enable vyos-hostsd.service systemctl enable vyos-hostsd.service
systemctl enable acpid.service

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
exit 0
echo I: Download grub-efi packages. echo I: Download grub-efi packages.
mkdir -p /usr/share/vyos/packages mkdir -p /usr/share/vyos/packages

View File

@ -1,20 +1,20 @@
menuentry "VyOS (KVM console)" { menuentry "VyOS (KVM console)" {
linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=ttyS0,115200 console=tty0 linux /boot//vmlinuz boot=live quiet rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/ console=ttyS0,115200 console=tty0
initrd /boot//initrd.img initrd /boot//initrd.img
} }
menuentry "VyOS (Serial console)" { menuentry "VyOS (Serial console)" {
linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=tty0 console=ttyS0,115200 linux /boot//vmlinuz boot=live quiet rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/ console=tty0 console=ttyS0,115200
initrd /boot//initrd.img initrd /boot//initrd.img
} }
menuentry "Lost password change (KVM console)" { menuentry "Lost password change (KVM console)" {
linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=ttyS0,115200 console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset linux /boot//vmlinuz boot=live quiet rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/ console=ttyS0,115200 console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset
initrd /boot//initrd.img initrd /boot//initrd.img
} }
menuentry "Lost password change (Serial console)" { menuentry "Lost password change (Serial console)" {
linux /boot//vmlinuz boot=live quiet rootdelay=5 vyos-union=/boot/ console=tty0 console=ttyS0,115200 init=/opt/vyatta/sbin/standalone_root_pw_reset linux /boot//vmlinuz boot=live quiet rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/ console=tty0 console=ttyS0,115200 init=/opt/vyatta/sbin/standalone_root_pw_reset
initrd /boot//initrd.img initrd /boot//initrd.img
} }

View File

@ -4,8 +4,7 @@ ipcalc
sipcalc sipcalc
mtr-tiny mtr-tiny
whois whois
netcat netcat-openbsd
netcat6
socat socat
telnet telnet
nano nano

View File

@ -2,5 +2,5 @@ grub2
grub-pc grub-pc
qemu-guest-agent qemu-guest-agent
hyperv-daemons hyperv-daemons
vyos-xe-guest-utilities
vyos-netplug vyos-netplug
vyos-xe-guest-utilities

View File

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

View File

@ -16,7 +16,7 @@
# Must be run with --privileged flag, recommended to run the container with a # Must be run with --privileged flag, recommended to run the container with a
# volume mapped in order to easy export images # volume mapped in order to easy export images
FROM debian:jessie FROM debian:buster
LABEL authors="VyOS Maintainers <maintainers@vyos.io>" LABEL authors="VyOS Maintainers <maintainers@vyos.io>"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
@ -63,33 +63,20 @@ RUN apt-get update && apt-get install -y \
python3-coverage \ python3-coverage \
python3-sphinx \ python3-sphinx \
python3-pystache \ python3-pystache \
python3-git \
python3-pip \
python3-psutil \ python3-psutil \
pkg-config \ pkg-config \
debhelper \ debhelper \
gosu \
po4a \
cpio \
jq jq
#
# Setup Debian Jessie Backports repository
#
COPY no--check-valid-until /etc/apt/apt.conf.d/
RUN echo "deb http://archive.debian.org/debian/ jessie-backports main" \
> /etc/apt/sources.list.d/jessie-backports.list
RUN apt-get update && apt-get install -y -t jessie-backports \
python3-git \
python3-pip \
gosu
# Package needed for mdns-repeater # Package needed for mdns-repeater
RUN apt-get update && apt-get install -y -t jessie-backports \ RUN apt-get update && apt-get install -y \
dh-systemd dh-systemd
#
# Remove Debian Jessie Backports repository
#
RUN rm -f /etc/apt/sources.list.d/jessie-backports.list \
/etc/apt/apt.conf.d/no--check-valid-until
# #
# Building libvyosconf requires a full configured OPAM/OCaml setup # Building libvyosconf requires a full configured OPAM/OCaml setup
# #
@ -145,7 +132,7 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libpcap-dev \ libpcap-dev \
libpq-dev \ libpq-dev \
libmysqlclient-dev \ default-libmysqlclient-dev \
libgeoip-dev \ libgeoip-dev \
librabbitmq-dev \ librabbitmq-dev \
libjansson-dev \ libjansson-dev \
@ -158,11 +145,12 @@ RUN apt-get update && apt-get install -y \
# Packages needed for kernel # Packages needed for kernel
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
kernel-package \
libncurses5-dev \ libncurses5-dev \
flex \ flex \
bison \ bison \
libelf-dev \ libelf-dev \
bc \
kmod \
dkms dkms
# Packages needed for Accel-ppp # Packages needed for Accel-ppp
@ -191,16 +179,7 @@ RUN export RTRLIB_VERSION="0.6.3" && \
cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \ cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../librtr*_amd64.deb ../librtr*_all.deb dpkg -i ../librtr*_amd64.deb ../librtr*_all.deb
#
# Setup VyOS Debian repository
#
COPY vyos-dev.key /tmp/vyos-dev.key
RUN apt-key add /tmp/vyos-dev.key
RUN echo "deb http://dev.packages.vyos.net/repositories/current/debian/ current main" \
> /etc/apt/sources.list.d/vyos.list
# Packages needed to build frr itself # Packages needed to build frr itself
# libyang-dev packages are hsoted on dev.packages.vyos.net see
# https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst # https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst
# for more info # for more info
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -214,11 +193,6 @@ RUN apt-get update && apt-get install -y \
python3-pytest \ python3-pytest \
texinfo texinfo
#
# Cleanup VyOS Debian Repository
#
RUN rm -f /etc/apt/sources.list.d/vyos.list
# Packages needed for conntrack-tools # Packages needed for conntrack-tools
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libnetfilter-conntrack-dev \ libnetfilter-conntrack-dev \
@ -241,16 +215,10 @@ RUN apt-get update && apt-get install -y \
# Packages needed for ipaddrcheck # Packages needed for ipaddrcheck
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libcidr0 \
libcidr-dev \
check check
# As there is no Debian Jessie/Stretch package for libcidr available but this
# is required for ipaddrcheck we have to build it from source
RUN git clone https://github.com/wikimedia/analytics-libcidr.git && \
cd analytics-libcidr && \
git checkout 026c611d90a1 && \
dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../libcidr*.deb
# Packages needed for lldpd # Packages needed for lldpd
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libbsd-dev \ libbsd-dev \
@ -303,15 +271,12 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
python-all \ python-all \
python2.7-dev \ python2.7-dev \
libmysqld-dev libmariadb-dev
# Update live-build # Packages needed for Qemu test-suite
RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \ RUN apt-get update && apt-get install -y \
apt-get update && apt-get install -y -t stretch \ python3-pexpect \
live-build && \ qemu-kvm
rm -f /etc/apt/sources.list.d/stretch.list && \
apt-get update && \
rm -rf /var/lib/apt/lists/*
# Install packer # Install packer
RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \
@ -320,6 +285,36 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe
curl -K- | gzip -d > /usr/bin/packer && \ curl -K- | gzip -d > /usr/bin/packer && \
chmod +x /usr/bin/packer chmod +x /usr/bin/packer
#
# live-build: building with local packages fails due to missing keys
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941691
# https://salsa.debian.org/live-team/live-build/merge_requests/30
#
RUN wget https://salsa.debian.org/jestabro-guest/live-build/commit/63425b3e4f7ad3712ced4c9a3584ef9851c0355a.patch && \
git clone https://salsa.debian.org/live-team/live-build.git && \
cd live-build && \
git checkout debian/1%20190311 && \
patch -p1 < ../63425b3e4f7ad3712ced4c9a3584ef9851c0355a.patch && \
dch -n "Applying fix for missing archive keys" && \
dpkg-buildpackage -us -uc && \
sudo dpkg -i ../live-build*.deb
#
# live-build: building in docker fails with mounting /proc | /sys
#
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919659
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921815
# https://salsa.debian.org/installer-team/debootstrap/merge_requests/26
#
RUN wget https://salsa.debian.org/klausenbusk-guest/debootstrap/commit/a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
git clone https://salsa.debian.org/installer-team/debootstrap && \
cd debootstrap && \
git checkout 1.0.114 && \
patch -p1 < ../a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
dch -n "Applying fix for docker image compile" && \
dpkg-buildpackage -us -uc && \
sudo dpkg -i ../debootstrap*.deb
# Allow password-less 'sudo' for all users in group 'sudo' # Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod

View File

@ -1,4 +1,4 @@
# Copyright (C) 2018 VyOS maintainers and contributors # Copyright (C) 2019 VyOS maintainers and contributors
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# in order to easy exprort images built to "external" world # in order to easy exprort images built to "external" world
@ -16,15 +16,11 @@
# Must be run with --privileged flag, recommended to run the container with a # Must be run with --privileged flag, recommended to run the container with a
# volume mapped in order to easy export images # volume mapped in order to easy export images
FROM multiarch/debian-debootstrap:arm64-jessie-slim FROM multiarch/debian-debootstrap:arm64-buster-slim
LABEL authors="VyOS Maintainers <maintainers@vyos.io>" LABEL authors="VyOS Maintainers <maintainers@vyos.io>"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
COPY no--check-valid-until /etc/apt/apt.conf.d/
RUN echo "deb http://archive.debian.org/debian jessie main" \
> /etc/apt/sources.list
# Standard shell should be bash not dash # Standard shell should be bash not dash
RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ RUN echo "dash dash/sh boolean false" | debconf-set-selections && \
dpkg-reconfigure dash dpkg-reconfigure dash
@ -64,40 +60,18 @@ RUN apt-get update && apt-get install -y \
python3-coverage \ python3-coverage \
python3-sphinx \ python3-sphinx \
python3-pystache \ python3-pystache \
python3-git \
python3-pip \
pkg-config \ pkg-config \
debhelper \ debhelper \
gosu \
live-build \
jq jq
#
# Setup Debian Jessie Backports repository
#
COPY no--check-valid-until /etc/apt/apt.conf.d/
RUN echo "deb http://archive.debian.org/debian/ jessie-backports main" \
> /etc/apt/sources.list.d/jessie-backports.list
RUN apt-get update && apt-get install -y -t jessie-backports \
python3-git \
python3-pip
RUN echo "deb http://deb.debian.org/debian buster main" \
> /etc/apt/sources.list.d/buster.list
RUN apt-get update && apt-get install -y \
golang \
gosu
RUN rm -f /etc/apt/sources.list.d/buster.list
# Package needed for mdns-repeater # Package needed for mdns-repeater
RUN apt-get update && apt-get install -y -t jessie-backports \ RUN apt-get update && apt-get install -y \
dh-systemd dh-systemd
#
# Remove Debian Jessie Backports repository
#
RUN rm -f /etc/apt/sources.list.d/jessie-backports.list \
/etc/apt/apt.conf.d/no--check-valid-until
# #
# Building libvyosconf requires a full configured OPAM/OCaml setup # Building libvyosconf requires a full configured OPAM/OCaml setup
# #
@ -142,7 +116,7 @@ RUN eval $(opam env --root=/opt/opam --set-root) && \
git clone https://github.com/vyos/libvyosconfig.git && \ git clone https://github.com/vyos/libvyosconfig.git && \
cd libvyosconfig && git checkout 9a80a5d3 && \ cd libvyosconfig && git checkout 9a80a5d3 && \
dpkg-buildpackage -uc -us -tc -b && \ dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../libvyosconfig0_*_arm64.deb dpkg -i ../libvyosconfig0_*.deb
# Packages needed for vyatta-cfg # Packages needed for vyatta-cfg
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -152,9 +126,12 @@ RUN apt-get update && apt-get install -y \
# Packages needed for vyatta-iproute # Packages needed for vyatta-iproute
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
iptables-dev \
libatm1-dev \ libatm1-dev \
libcap-dev \
libdb-dev \ libdb-dev \
iptables-dev libelf-dev \
libselinux1-dev
# Packages needed for vyatta-webgui # Packages needed for vyatta-webgui
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -165,7 +142,7 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libpcap-dev \ libpcap-dev \
libpq-dev \ libpq-dev \
libmysqlclient-dev \ default-libmysqlclient-dev \
libgeoip-dev \ libgeoip-dev \
librabbitmq-dev \ librabbitmq-dev \
libjansson-dev \ libjansson-dev \
@ -178,11 +155,12 @@ RUN apt-get update && apt-get install -y \
# Packages needed for kernel # Packages needed for kernel
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
kernel-package \
libncurses5-dev \ libncurses5-dev \
flex \ flex \
bison \ bison \
libelf-dev libelf-dev \
bc \
kmod
# Packages needed for vyos-accel-ppp # Packages needed for vyos-accel-ppp
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -193,6 +171,7 @@ RUN apt-get update && apt-get install -y \
# Prerequisites for building rtrlib # Prerequisites for building rtrlib
# see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html # see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
graphviz \
doxygen \ doxygen \
libssh-dev \ libssh-dev \
libssl-dev libssl-dev
@ -202,18 +181,9 @@ RUN export RTRLIB_VERSION="0.6.3" && \
wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \ wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \
tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \ tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \
cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \ cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../librtr*_arm64.deb ../librtr*_all.deb dpkg -i ../librtr*.deb
#
# Setup VyOS Debian repository
#
COPY vyos-dev.key /tmp/vyos-dev.key
RUN apt-key add /tmp/vyos-dev.key
RUN echo "deb http://dev.packages.vyos.net/repositories/current/debian/ current main" \
> /etc/apt/sources.list.d/vyos.list
# Packages needed to build frr itself # Packages needed to build frr itself
# libyang-dev packages are hsoted on dev.packages.vyos.net see
# https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst # https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst
# for more info # for more info
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -227,11 +197,6 @@ RUN apt-get update && apt-get install -y \
python3-pytest \ python3-pytest \
texinfo texinfo
#
# Cleanup VyOS Debian Repository
#
RUN rm -f /etc/apt/sources.list.d/vyos.list
# Packages needed for conntrack-tools # Packages needed for conntrack-tools
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libnetfilter-conntrack-dev \ libnetfilter-conntrack-dev \
@ -248,18 +213,16 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
whois whois
# Packages needed for vyos-xe-guest-utilities
RUN apt-get update && apt-get install -y \
golang
# Packages needed for ipaddrcheck # Packages needed for ipaddrcheck
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libcidr0 \
libcidr-dev \
check check
# As there is no Debian Jessie/Stretch package for libcidr available but this
# is required for ipaddrcheck we have to build it from source
RUN git clone https://github.com/wikimedia/analytics-libcidr.git && \
cd analytics-libcidr && \
git checkout 026c611d90a1 && \
dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../libcidr*.deb
# Packages needed for lldpd # Packages needed for lldpd
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libbsd-dev \ libbsd-dev \
@ -312,23 +275,31 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
python-all \ python-all \
python2.7-dev \ python2.7-dev \
libmysqld-dev libmariadb-dev
# Update live-build
RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \
apt-get update && apt-get install -y -t stretch \
live-build && \
rm -f /etc/apt/sources.list.d/stretch.list && \
apt-get update && \
rm -rf /var/lib/apt/lists/*
# Install packer # Install packer
RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \
jq -r -M '.current_version')"; \ jq -r -M '.current_version')"; \
echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_arm.zip" |\ echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_arm64.zip" |\
curl -K- | gzip -d > /usr/bin/packer && \ curl -K- | gzip -d > /usr/bin/packer && \
chmod +x /usr/bin/packer chmod +x /usr/bin/packer
#
# live-build: building in docker fails with mounting /proc | /sys
#
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919659
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921815
# https://salsa.debian.org/installer-team/debootstrap/merge_requests/26
#
RUN wget https://salsa.debian.org/klausenbusk-guest/debootstrap/commit/a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
git clone https://salsa.debian.org/installer-team/debootstrap && \
cd debootstrap && \
git checkout 1.0.114 && \
patch -p1 < ../a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
dch -n "Applying fix for docker image compile" && \
dpkg-buildpackage -us -uc && \
sudo dpkg -i ../debootstrap*.deb
# Allow password-less 'sudo' for all users in group 'sudo' # Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod

View File

@ -1 +0,0 @@
Acquire::Check-Valid-Until "0";

View File

@ -1,4 +1,4 @@
# Copyright (C) 2018 VyOS maintainers and contributors # Copyright (C) 2019 VyOS maintainers and contributors
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# in order to easy exprort images built to "external" world # in order to easy exprort images built to "external" world
@ -16,17 +16,11 @@
# Must be run with --privileged flag, recommended to run the container with a # Must be run with --privileged flag, recommended to run the container with a
# volume mapped in order to easy export images # volume mapped in order to easy export images
FROM multiarch/debian-debootstrap:armhf-jessie-slim FROM multiarch/debian-debootstrap:armhf-buster-slim
LABEL authors="VyOS Maintainers <maintainers@vyos.io>" LABEL authors="VyOS Maintainers <maintainers@vyos.io>"
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
COPY no--check-valid-until /etc/apt/apt.conf.d/
RUN echo "deb http://deb.debian.org/debian jessie main" \
> /etc/apt/sources.list \
&& echo "deb http://security.debian.org/debian-security jessie/updates main" \
>> /etc/apt/sources.list
# Standard shell should be bash not dash # Standard shell should be bash not dash
RUN echo "dash dash/sh boolean false" | debconf-set-selections && \ RUN echo "dash dash/sh boolean false" | debconf-set-selections && \
dpkg-reconfigure dash dpkg-reconfigure dash
@ -66,40 +60,18 @@ RUN apt-get update && apt-get install -y \
python3-coverage \ python3-coverage \
python3-sphinx \ python3-sphinx \
python3-pystache \ python3-pystache \
python3-git \
python3-pip \
pkg-config \ pkg-config \
debhelper \ debhelper \
gosu \
live-build \
jq jq
#
# Setup Debian Jessie Backports repository
#
COPY no--check-valid-until /etc/apt/apt.conf.d/
RUN echo "deb http://archive.debian.org/debian/ jessie-backports main" \
> /etc/apt/sources.list.d/jessie-backports.list
RUN apt-get update && apt-get install -y -t jessie-backports \
python3-git \
python3-pip
RUN echo "deb http://deb.debian.org/debian buster main" \
> /etc/apt/sources.list.d/buster.list
RUN apt-get update && apt-get install -y \
golang \
gosu
RUN rm -f /etc/apt/sources.list.d/buster.list
# Package needed for mdns-repeater # Package needed for mdns-repeater
RUN apt-get update && apt-get install -y -t jessie-backports \ RUN apt-get update && apt-get install -y \
dh-systemd dh-systemd
#
# Remove Debian Jessie Backports repository
#
RUN rm -f /etc/apt/sources.list.d/jessie-backports.list \
/etc/apt/apt.conf.d/no--check-valid-until
# #
# Building libvyosconf requires a full configured OPAM/OCaml setup # Building libvyosconf requires a full configured OPAM/OCaml setup
# #
@ -107,7 +79,7 @@ RUN apt-get update && apt-get install -y \
libffi-dev \ libffi-dev \
libpcre3-dev libpcre3-dev
RUN curl https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \ RUN curl -k https://raw.githubusercontent.com/ocaml/opam/2.0.2/shell/install.sh --output /tmp/opam_install.sh && \
sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \ sed -i 's/read BINDIR/BINDIR=""/' /tmp/opam_install.sh && sh /tmp/opam_install.sh && \
opam init --root=/opt/opam --comp=4.07.0 --disable-sandboxing opam init --root=/opt/opam --comp=4.07.0 --disable-sandboxing
@ -144,7 +116,7 @@ RUN eval $(opam env --root=/opt/opam --set-root) && \
git clone https://github.com/vyos/libvyosconfig.git && \ git clone https://github.com/vyos/libvyosconfig.git && \
cd libvyosconfig && git checkout 9a80a5d3 && \ cd libvyosconfig && git checkout 9a80a5d3 && \
dpkg-buildpackage -uc -us -tc -b && \ dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../libvyosconfig0_*_armhf.deb dpkg -i ../libvyosconfig0_*.deb
# Packages needed for vyatta-cfg # Packages needed for vyatta-cfg
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -154,9 +126,12 @@ RUN apt-get update && apt-get install -y \
# Packages needed for vyatta-iproute # Packages needed for vyatta-iproute
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
iptables-dev \
libatm1-dev \ libatm1-dev \
libcap-dev \
libdb-dev \ libdb-dev \
iptables-dev libelf-dev \
libselinux1-dev
# Packages needed for vyatta-webgui # Packages needed for vyatta-webgui
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -167,7 +142,7 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libpcap-dev \ libpcap-dev \
libpq-dev \ libpq-dev \
libmysqlclient-dev \ default-libmysqlclient-dev \
libgeoip-dev \ libgeoip-dev \
librabbitmq-dev \ librabbitmq-dev \
libjansson-dev \ libjansson-dev \
@ -180,11 +155,12 @@ RUN apt-get update && apt-get install -y \
# Packages needed for kernel # Packages needed for kernel
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
kernel-package \
libncurses5-dev \ libncurses5-dev \
flex \ flex \
bison \ bison \
libelf-dev libelf-dev \
bc \
kmod
# Packages needed for vyos-accel-ppp # Packages needed for vyos-accel-ppp
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -195,6 +171,7 @@ RUN apt-get update && apt-get install -y \
# Prerequisites for building rtrlib # Prerequisites for building rtrlib
# see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html # see http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-debian8.html
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
graphviz \
doxygen \ doxygen \
libssh-dev \ libssh-dev \
libssl-dev libssl-dev
@ -204,18 +181,9 @@ RUN export RTRLIB_VERSION="0.6.3" && \
wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \ wget -P /tmp https://github.com/rtrlib/rtrlib/archive/v${RTRLIB_VERSION}.tar.gz && \
tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \ tar xf /tmp/v${RTRLIB_VERSION}.tar.gz -C /tmp && \
cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \ cd /tmp/rtrlib-${RTRLIB_VERSION} && dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../librtr*_armhf.deb ../librtr*_all.deb dpkg -i ../librtr*.deb
#
# Setup VyOS Debian repository
#
COPY vyos-dev.key /tmp/vyos-dev.key
RUN apt-key add /tmp/vyos-dev.key
RUN echo "deb http://dev.packages.vyos.net/repositories/current/debian/ current main" \
> /etc/apt/sources.list.d/vyos.list
# Packages needed to build frr itself # Packages needed to build frr itself
# libyang-dev packages are hsoted on dev.packages.vyos.net see
# https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst # https://github.com/FRRouting/frr/blob/master/doc/developer/building-libyang.rst
# for more info # for more info
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@ -229,11 +197,6 @@ RUN apt-get update && apt-get install -y \
python3-pytest \ python3-pytest \
texinfo texinfo
#
# Cleanup VyOS Debian Repository
#
RUN rm -f /etc/apt/sources.list.d/vyos.list
# Packages needed for conntrack-tools # Packages needed for conntrack-tools
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libnetfilter-conntrack-dev \ libnetfilter-conntrack-dev \
@ -250,18 +213,16 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
whois whois
# Packages needed for vyos-xe-guest-utilities
RUN apt-get update && apt-get install -y \
golang
# Packages needed for ipaddrcheck # Packages needed for ipaddrcheck
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libcidr0 \
libcidr-dev \
check check
# As there is no Debian Jessie/Stretch package for libcidr available but this
# is required for ipaddrcheck we have to build it from source
RUN git clone https://github.com/wikimedia/analytics-libcidr.git && \
cd analytics-libcidr && \
git checkout 026c611d90a1 && \
dpkg-buildpackage -uc -us -tc -b && \
dpkg -i ../libcidr*.deb
# Packages needed for lldpd # Packages needed for lldpd
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
libbsd-dev \ libbsd-dev \
@ -314,23 +275,31 @@ RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
python-all \ python-all \
python2.7-dev \ python2.7-dev \
libmysqld-dev libmariadb-dev
# Update live-build
RUN echo 'deb http://ftp.debian.org/debian stretch main' | tee -a /etc/apt/sources.list.d/stretch.list && \
apt-get update && apt-get install -y -t stretch \
live-build && \
rm -f /etc/apt/sources.list.d/stretch.list && \
apt-get update && \
rm -rf /var/lib/apt/lists/*
# Install packer # Install packer
RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packer | \ RUN export LATEST="$(curl -k -s https://checkpoint-api.hashicorp.com/v1/check/packer | \
jq -r -M '.current_version')"; \ jq -r -M '.current_version')"; \
echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_arm.zip" |\ echo "url https://releases.hashicorp.com/packer/"$LATEST"/packer_"$LATEST"_linux_arm.zip" |\
curl -K- | gzip -d > /usr/bin/packer && \ curl -k -K- | gzip -d > /usr/bin/packer && \
chmod +x /usr/bin/packer chmod +x /usr/bin/packer
#
# live-build: building in docker fails with mounting /proc | /sys
#
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919659
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=921815
# https://salsa.debian.org/installer-team/debootstrap/merge_requests/26
#
RUN wget https://salsa.debian.org/klausenbusk-guest/debootstrap/commit/a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
git clone https://salsa.debian.org/installer-team/debootstrap && \
cd debootstrap && \
git checkout 1.0.114 && \
patch -p1 < ../a9a603b17cadbf52cb98cde0843dc9f23a08b0da.patch && \
dch -n "Applying fix for docker image compile" && \
dpkg-buildpackage -us -uc && \
sudo dpkg -i ../debootstrap*.deb
# Allow password-less 'sudo' for all users in group 'sudo' # Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \ RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod

View File

@ -1 +0,0 @@
Acquire::Check-Valid-Until "0";

View File

@ -1 +0,0 @@
Acquire::Check-Valid-Until "0";

View File

@ -1,32 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)
mQENBFOQPGwBCADjm8Oq3kaJQh0rI33XVfd9mNq5ffay884SlDCbG1hkLVf8tnGV
cjH7/nFfJdW/6Gr4dj4LQuHHnin5QeWnlHfuOySlOEsJCNP5dm14oEjy7epSXOv2
A3m2tPDDqwMgfrOyw1gN+Clit9QIujiRzbcakqearyNxcVNvinIVunNiWbAyIhvc
uI6yfMjno4q/O83c7e1zBqJj9t9guQjBuqaJrmZVf985/6ue9yWzSI4JtzxVmhKI
dfCxHWE7BiEt2hnZPSVGcb4q6cBrkpcra7Ny55eoyN51wQGokPv3a9/8b3r5speR
gene2MTvD/3eZOtTvMN000f/gJX4E6o8xx+fABEBAAG0R1Z5T1MgTWFpbnRhaW5l
cnMgKERldmVsb3BtZW50IGFuZCB0ZXN0aW5nIHJlcG9zKSA8bWFpbnRhaW5lcnNA
dnlvcy5uZXQ+iQE4BBMBAgAiBQJTkDxsAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIe
AQIXgAAKCRAywkm9DfBLXJbHB/4xlwn+6cZGEWWNZgXwUTMeHubZItl1o3Tbrzaa
E3EqYyHJMYb3gBLOomlw7JLw5qT/247tlPC8ricl+BpeE5vYA3a08mIpcymROFh6
pKJLNvdZHjrVN9yH2xYifI5sIDyuPga8Bgq/BMRiB1ragS/on2aUs75+tsEI32NI
JO8+jIav0Nd6n/Wmw55ioTXS3fx6VDb64D80luOf1ve5LFDs8Oz2I+ZjSf7mPMY/
b9qQHNb/300k/tIeK2F4G7LFu6o/1YMlrv0Ry7j9BsLzIkmTh0pX4mSVvF6IrxsZ
WJRKu3uQDH2qccjptZDq4jHo/ow+aWT8rakjOgL9nJgKD5u/uQENBFOQPGwBCAC0
zHpsmcfUIDyflGL+vwHV/3L02/vItHXfIkugL+wFB9C9i6nWA1KqNJwqNflJLGQF
y+vHXs0oa3oMKj7S3p2zTbuU8s9Vz2Cg5c15sy7yGjh/LTwVOR5ZJrgbRJxTTp9K
j5bkrx/DbDjIQ5szyjZ5N1ZAUyUx5Z/xMB3mTnLxDASvaoq+/F6WNcYY7NzjI7M0
SFtnZLj6MFUVTmSbyYdGQc/Cxu5Utl7WKJUqHW5z10vJruZsdKV2+vf98yqhAJ+v
wPhKUoVD+KtCH/CrHFrVq0hCKIMtyPLtaTeR/QnCNDEsV4p82HB9KQOYEADEL3/A
a7Dntf3Xi+5eO/3MlnshABEBAAGJAR8EGAECAAkFAlOQPGwCGwwACgkQMsJJvQ3w
S1z+wwf9GnVn9GhbB1FhKQdavljp9rUzz8FvH3tRpftdhhJ8B0PVAMl4QRcIXrgD
nyd1K9ggzyWa4Z/9PygvH0Njv4YWlZh900wei9uVD8am1ncgQ/Jqlb36WvXyr8W/
VPzQDtKAOkUz6RhKQ4V6I0PBK9nGeqeFkeH1bF1uGXkKpa0hGWffyOT1VasaZVXT
UN4VAYNzBwkoU0mIYK73CPi7e4YJrtOp/i8MGDL3pxKaZEEZJdc4/dZassqBuwSG
MRr2kecj9f53KWI0jLQdLgTMJQxscotfzhsWoF/842sUCbezwV3/4FtBhlNeqUHA
c9HOeh3wbjjt4uONvxeleE+jM9v63Q==
=gflA
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -11,7 +11,7 @@ current_working_directory = os.getcwd()
repo_root = subprocess.check_output('git rev-parse --show-toplevel', shell=True, universal_newlines=True).rstrip('\n') repo_root = subprocess.check_output('git rev-parse --show-toplevel', shell=True, universal_newlines=True).rstrip('\n')
repo_sha = subprocess.check_output('git rev-parse --short=12 HEAD', shell=True, universal_newlines=True).rstrip('\n') repo_sha = subprocess.check_output('git rev-parse --short=12 HEAD', shell=True, universal_newlines=True).rstrip('\n')
def add_package(name, url=None, commit='HEAD', branch='current', tag=None, custombuild_cmd=None): def add_package(name, url=None, commit='HEAD', branch='equuleus', tag=None, custombuild_cmd=None):
""" """
Build up source package with URL and build commands executed during the later Build up source package with URL and build commands executed during the later
called build_package step. called build_package step.
@ -157,8 +157,6 @@ vyos_packages = ['vyatta-bash',
'vyatta-cfg-qos', 'vyatta-cfg-qos',
'vyatta-op-qos', 'vyatta-op-qos',
'vyatta-cfg-op-pppoe', 'vyatta-cfg-op-pppoe',
'vyatta-conntrack',
'vyatta-conntrack-sync',
'vyatta-nat', 'vyatta-nat',
'vyatta-config-mgmt', 'vyatta-config-mgmt',
'vyatta-config-migrate', 'vyatta-config-migrate',
@ -177,17 +175,18 @@ vyos_packages = ['vyatta-bash',
'vyos-replace', 'vyos-replace',
'vyos-nhrp', 'vyos-nhrp',
'vyos-world', 'vyos-world',
'vyos-1x',
'vyatta-iproute', 'vyatta-iproute',
'vyos-vmwaretools-scripts', 'vyos-vmwaretools-scripts',
'vyos-netplug',
'vyos-xe-guest-utilities',
'vyatta-biosdevname', 'vyatta-biosdevname',
'vyos-opennhrp', 'vyos-opennhrp',
'vyos-salt-minion', 'vyos-salt-minion',
'xl2tpd',
'mdns-repeater', 'mdns-repeater',
'udp-broadcast-relay', 'udp-broadcast-relay',
'vyos-1x',
'vyatta-conntrack',
'vyatta-conntrack-sync',
'vyos-xe-guest-utilities',
'vyos-netplug',
'pmacct', 'pmacct',
'ddclient', 'ddclient',
'igmpproxy', 'igmpproxy',
@ -207,9 +206,6 @@ pkg_special.append( add_package('ipaddrcheck', branch='master'))
# Packages where we directly build the upstream source # Packages where we directly build the upstream source
pkg_special.append( add_package('hvinfo', url='https://github.com/dmbaturin/hvinfo.git', branch='master') ) pkg_special.append( add_package('hvinfo', url='https://github.com/dmbaturin/hvinfo.git', branch='master') )
pkg_special.append( add_package('lldpd', url='https://github.com/vincentbernat/lldpd.git', branch='master', tag='1.0.3') )
pkg_special.append( add_package('ethtool', url='https://salsa.debian.org/kernel-team/ethtool.git', branch='master', tag='debian/1%4.19-1') )
pkg_special.append( add_package('bgpq3', url='https://salsa.debian.org/debian/bgpq3.git', branch='master', tag='debian/0.1.33-1') )
# VyOS strongswan ships additional python3-vici packages required by vyos-1x and this is not build by default # VyOS strongswan ships additional python3-vici packages required by vyos-1x and this is not build by default
vyos_strongswan_build_cmd = "dpkg-buildpackage -b -us -uc -tc && " \ vyos_strongswan_build_cmd = "dpkg-buildpackage -b -us -uc -tc && " \

364
scripts/check-qemu-install Executable file
View File

@ -0,0 +1,364 @@
#!/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: check-qemu-install
# Purpose:
# This script installs a system on a emulated qemu host to verify
# that the iso produced is installable and boots.
# after the iso is booted from disk it also tries to execute the
# vyos-smoketest script to verify checks there.
#
# For now it will not fail on failed smoketest but will fail on
# install and boot errors.
# Arguments:
# iso iso image to install
# [disk] disk filename to use, if none is provided it
# is autogenerated
# [--keep] Keep the disk image after completion
# [--logfile] name of logfile to save, defaulting to stdout
# [--silent] only print on errors
# [--debug] print all communication with the device
import pexpect
import sys
import os
import time
import argparse
import subprocess
import random
import traceback
import logging
import re
from io import BytesIO, StringIO
from datetime import datetime
EXCEPTION = 0
now = datetime.now()
parser = argparse.ArgumentParser(description='Install and start a test VyOS vm.')
parser.add_argument('iso', help='ISO file to install')
parser.add_argument('disk', help='name of disk image file',
nargs='?',
default='testinstall-{}-{}.img'.format(now.strftime('%Y%m%d-%H%M%S'),
"%04x" % random.randint(0,65535)))
parser.add_argument('--keep', help='Do not remove disk-image after installation',
action='store_true',
default=False)
parser.add_argument('--silent', help='Do not show output on stdout unless an error has occured',
action='store_true',
default=False)
parser.add_argument('--debug', help='Send all debug output to stdout',
action='store_true',
default=False)
parser.add_argument('--logfile', help='Log to file')
parser.add_argument('--no-kvm', help='Disable use of kvm',
action='store_true',
default=False)
args = parser.parse_args()
class StreamToLogger(object):
"""
Fake file-like stream object that redirects writes to a logger instance.
"""
def __init__(self, logger, log_level=logging.INFO):
self.logger = logger
self.log_level = log_level
self.linebuf = b''
self.ansi_escape = re.compile(r'\x1B[@-_][0-?]*[ -/]*[@-~]')
def write(self, buf):
self.linebuf += buf
#print('.')
while b'\n' in self.linebuf:
f = self.linebuf.split(b'\n', 1)
if len(f) == 2:
self.logger.debug(self.ansi_escape.sub('', f[0].decode(errors="replace").rstrip()))
self.linebuf = f[1]
#print(f)
def flush(self):
pass
# Setting up logger
log = logging.getLogger()
log.setLevel(logging.DEBUG)
stl = StreamToLogger(log)
formatter = logging.Formatter('%(asctime)s + %(relativeCreated)-7d - %(levelname)5s - %(message)s')
handler = logging.StreamHandler(sys.stdout)
if args.silent:
handler.setLevel(logging.ERROR)
elif args.debug:
handler.setLevel(logging.DEBUG)
else:
handler.setLevel(logging.INFO)
handler.setFormatter(formatter)
log.addHandler(handler)
if args.logfile:
filehandler = logging.FileHandler(args.logfile)
filehandler.setLevel(logging.DEBUG)
filehandler.setFormatter(formatter)
log.addHandler(filehandler)
if args.silent:
output = BytesIO()
else:
output = sys.stdout.buffer
if not os.path.isfile(args.iso):
log.error("Unable to find iso image to install")
sys.exit(1)
if args.no_kvm:
log.error("KVM forced off by command line")
kvm=False
elif not os.path.exists("/dev/kvm"):
log.error("KVM is not enabled on host, proceeding with software emulation")
kvm=False
else:
kvm=True
# Creating diskimage!!
if not os.path.isfile(args.disk):
log.info("Creating Disk image {}".format(args.disk))
c = subprocess.check_output(["qemu-img", "create", args.disk, "2G"])
log.debug(c.decode())
else:
log.info("Diskimage already exists, using the existing one")
try:
#################################################
# Installing image to disk
#################################################
log.info("Installing system")
cmd = """qemu-system-x86_64 \
-name "TESTVM" \
-m 1G \
-nic user,model=virtio,mac=52:54:99:12:34:56,hostfwd=tcp::2299-:22 \
-machine accel=kvm \
{CPU} \
-smp 2 \
-vnc 0.0.0.0:99 \
-nographic \
-boot d -cdrom {CD} \
{KVM} \
-drive format=raw,file={DISK}
""".format(CD=args.iso, DISK=args.disk, KVM="" if kvm else "--no-kvm", CPU="-cpu host" if kvm else "")
log.debug("Executing command: {}".format(cmd))
c = pexpect.spawn(cmd, logfile=stl)
#################################################
# Logging into VyOS system
#################################################
try:
c.expect('Automatic boot in', timeout=10)
c.sendline('')
except pexpect.TIMEOUT:
log.warning("Did not find grub countdown window, ignoring")
log.info('Waiting for login prompt')
c.expect('[Ll]ogin:', timeout=300)
c.sendline('vyos')
c.expect('[Pp]assword:', timeout=10)
c.sendline('vyos')
c.expect(r'vyos@vyos:~\$')
log.info('Logged in!')
#################################################
# Installing into VyOS system
#################################################
log.info("Starting installer")
c.sendline('install image')
c.expect('\nWould you like to continue?.*:')
c.sendline('yes')
log.info("Partitioning disk")
c.expect('\nPartition.*:')
c.sendline('')
c.expect('\nInstall the image on.*:')
c.sendline('')
c.expect(r'\nContinue\?.*:')
c.sendline('Yes')
c.expect('\nHow big of a root partition should I create?.*:')
c.sendline('')
log.info('Disk partitioned, installing')
c.expect('\nWhat would you like to name this image?.*:')
c.sendline('')
log.info('Copying files')
c.expect('\nWhich one should I copy to.*:', timeout=300)
c.sendline('')
log.info('Files Copied!')
c.expect('\nEnter password for user.*:')
c.sendline('vyos')
c.expect('\nRetype password for user.*:')
c.sendline('vyos')
c.expect('\nWhich drive should GRUB modify the boot partition on.*:')
c.sendline('')
c.expect(r'\nvyos@vyos:~\$')
log.info('system installed, shutting down')
#################################################
# Powering down installer
#################################################
log.info("Shutting down installation system")
c.sendline('poweroff')
c.expect(r'\nAre you sure you want to poweroff this system.*\]')
c.sendline('Y')
for i in range(30):
log.info("Waiting for shutdown...")
if not c.isalive():
log.info("VM is shut down!")
break
time.sleep(10)
else:
log.error("VM Did not shut down after 300sec, killing")
c.close()
#################################################
# Booting installed system
#################################################
log.info("Booting installed system")
cmd = """qemu-system-x86_64 \
-name "TESTVM" \
-m 1G \
-nic user,model=virtio,mac=52:54:99:12:34:56,hostfwd=tcp::2299-:22
-machine accel=kvm \
{CPU} \
-smp 2 \
-vnc 0.0.0.0:99 \
-nographic \
{KVM} \
-drive format=raw,file={DISK}
""".format(DISK=args.disk, KVM="" if kvm else "--no-kvm", CPU="-cpu host" if kvm else "")
log.debug('Executing command: {}'.format(cmd))
c = pexpect.spawn(cmd, logfile=stl)
#################################################
# Logging into VyOS system
#################################################
try:
c.expect('The highlighted entry will be executed automatically in', timeout=10)
c.sendline('')
except pexpect.TIMEOUT:
log.warning("Did not find grub countdown window, ignoring")
log.info('Waiting for login prompt')
c.expect('[Ll]ogin:', timeout=300)
c.sendline('vyos')
c.expect('[Pp]assword:', timeout=10)
c.sendline('vyos')
c.expect(r'vyos@vyos:~\$')
log.info('Logged in!')
#################################################
# Executing test-suite
#################################################
log.info("Executing test-suite ")
def cr(child, command):
child.sendline(command)
i = child.expect(['\n +Invalid command:',
'\n +Set failed',
'No such file or directory',
r'\n\S+@\S+[$#]'])
if i==0:
raise Exception('Invalid command detected')
elif i==1:
raise Exception('Set syntax failed :/')
elif i==2:
log.error("Did not find VyOS-smoketest, this should be an exception")
#raise Exception("WTF? did not find VyOS-smoketest, this should be an exception")
cr(c, '/usr/bin/vyos-smoketest')
log.info("Smoke test status")
#data = c.before.decode()
#################################################
# Powering off system
#################################################
log.info("Powering off system ")
c.sendline('poweroff')
c.expect(r'\nAre you sure you want to poweroff this system.*\]')
c.sendline('Y')
log.info("Shutting down virtual machine")
for i in range(30):
log.info("Waiting for shutdown...")
if not c.isalive():
log.info("VM is shut down!")
break
time.sleep(10)
else:
log.error("VM Did not shut down after 300sec")
raise Exception("VM Did not shut down after 300sec")
c.close()
except pexpect.exceptions.TIMEOUT:
log.error("Timeout waiting for VyOS system")
log.error(traceback.format_exc())
EXCEPTION = 1
except pexpect.exceptions.ExceptionPexpect:
log.error("Exeption while executing QEMU")
log.error("Is qemu working on this system?")
log.error(traceback.format_exc())
EXCEPTION = 1
except Exception:
log.error("An unknown error occured when installing the VyOS system")
traceback.print_exc()
EXCEPTION = 1
#################################################
# Cleaning up
#################################################
log.info("Cleaning up")
if not args.keep:
log.info("Removing disk file: {}".format(args.disk))
try:
os.remove(args.disk)
except Exception:
log.error("Exception while removing diskimage")
log.error(traceback.format_exc())
EXCEPTION = 1
if EXCEPTION:
log.error("Hmm... System got an exception while processing")
log.error("The ISO is not considered usable")
sys.exit(1)

View File

@ -35,8 +35,8 @@ util.check_build_config()
lb_config_tmpl = """ lb_config_tmpl = """
lb config noauto \ lb config noauto \
--architectures {{architecture}} \ --architectures {{architecture}} \
--bootappend-live "boot=live components hostname=vyos username=live nopersistence noautologin nonetworking union=overlay console=ttyS0,115200 console=tty0" \ --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" \ --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-flavours {{kernel_flavor}} \
--linux-packages linux-image-{{kernel_version}} \ --linux-packages linux-image-{{kernel_version}} \
--bootloader syslinux,grub-efi \ --bootloader syslinux,grub-efi \
@ -46,7 +46,7 @@ lb config noauto \
--iso-application "VyOS" \ --iso-application "VyOS" \
--iso-publisher "{{build_by}}" \ --iso-publisher "{{build_by}}" \
--iso-volume "VyOS" \ --iso-volume "VyOS" \
--debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-transport-https" \ --debootstrap-options "--variant=minbase --exclude=isc-dhcp-client,isc-dhcp-common,ifupdown --include=apt-transport-https,gnupg2" \
--mirror-bootstrap {{debian_mirror}} \ --mirror-bootstrap {{debian_mirror}} \
--mirror-chroot {{debian_mirror}} \ --mirror-chroot {{debian_mirror}} \
--mirror-chroot-security {{debian_security_mirror}} \ --mirror-chroot-security {{debian_security_mirror}} \
@ -55,9 +55,9 @@ lb config noauto \
--archive-areas "main contrib non-free" \ --archive-areas "main contrib non-free" \
--firmware-chroot false \ --firmware-chroot false \
--firmware-binary false \ --firmware-binary false \
--updates false \ --updates true \
--security true \ --security true \
--apt-options "--yes -oAcquire::Check-Valid-Until=false" \ --apt-options "--yes -oAPT::Default-Release="equuleus" -oAPT::Get::allow-downgrades=true" \
--apt-indices false --apt-indices false
"${@}" "${@}"
""" """
@ -69,19 +69,16 @@ debug = build_config['debug']
# Add the additional repositories to package lists # Add the additional repositories to package lists
print("Setting up additional APT entries") print("Setting up additional APT entries")
vyos_repo_entry = "deb {0}/vyos {1} main\n".format(build_config['vyos_mirror'], build_config['vyos_branch']) vyos_repo_entry = "deb {0} {1} main\n".format(build_config['vyos_mirror'], build_config['vyos_branch'])
vyos_debian_repo_entry = "deb {0}/debian {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) apt_file = os.path.join(build_config['build_dir'], defaults.VYOS_REPO_FILE)
if debug: if debug:
print("Adding these entries to {0}:".format(apt_file)) print("Adding these entries to {0}:".format(apt_file))
print("\t", vyos_repo_entry) print("\t", vyos_repo_entry)
print("\t", vyos_debian_repo_entry)
with open(apt_file, 'w') as f: with open(apt_file, 'w') as f:
f.write(vyos_repo_entry) f.write(vyos_repo_entry)
f.write(vyos_debian_repo_entry)
# Add custom APT entries # Add custom APT entries
if build_config['custom_apt_entry']: if build_config['custom_apt_entry']: