Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
ca4234b
Add Bookworm slave container
saiarcot895 Jun 26, 2023
a8265f0
Update slave.mk to assume a Bookworm base image
saiarcot895 Aug 21, 2023
a6e7ac2
Update sonic-linux-kernel to use 6.1.38
saiarcot895 Aug 21, 2023
d7843bd
Switch to building for Bookworm
saiarcot895 Sep 8, 2023
0a5ae1b
Update Python build commands for Bookworm
saiarcot895 Sep 8, 2023
b37d7d6
sonic-yang-mgmt and sonic-yang-models: Update Python dependencies
saiarcot895 Sep 7, 2023
c5c1872
sonic-yang-models: Specify test dependencies under extra_requires
saiarcot895 Sep 7, 2023
92317e4
Update openssh to 9.2p1-2 (the version in Debian Bookworm)
saiarcot895 Sep 8, 2023
0e7b23f
Mark many (but not all) of the dockers as Bullseye dockers
saiarcot895 Sep 8, 2023
f93a430
For libyang, don't add an ordering dependency on frr for Bookworm
saiarcot895 Sep 8, 2023
fe81f9d
Disable kdump-tools, ntp, and libnss-tacplus
saiarcot895 Sep 8, 2023
725a114
Upgrade initramfs-tools to 0.142
saiarcot895 Sep 6, 2023
8fe4c09
Update bitarray to 2.8.1 and pyyaml to 6.0 for sonic-config-engine
saiarcot895 Sep 6, 2023
50ddb1d
Loosen help text test for sonic-yang-mgmt
saiarcot895 Sep 7, 2023
3ccf202
Temporarily disable tests for sonic-config-engine for Bookworm
saiarcot895 Sep 6, 2023
3adcf69
Temporarily disable tests for sonic-utilities for Bookworm
saiarcot895 Sep 6, 2023
3c2c79c
Remove reference to local copy of json.hpp, and use the version from …
saiarcot895 Sep 6, 2023
24bf402
Update sonic-utilities for changes in Python
saiarcot895 Sep 7, 2023
eb5a6bf
Update sonic-host-services for changes in Python
saiarcot895 Sep 7, 2023
4683663
Fix GCC 12 errors in sonic-swss-common
saiarcot895 Sep 7, 2023
5c66541
Update Debian build script for Bookworm
saiarcot895 Sep 6, 2023
25ebeb5
For Bookworm, use non-free-firmware instead of non-free
saiarcot895 Sep 6, 2023
fb2cb1b
Enable PR builds on bookworm branch
saiarcot895 Sep 8, 2023
aa54774
Add nlohmann-json3-dev to the Buster and Bullseye slave containers
saiarcot895 Sep 8, 2023
a2b38a3
Disable several platform modules for Bookworm
saiarcot895 Sep 8, 2023
245997e
Disable the PDDF platform module for the Bookworm upgrade
saiarcot895 Sep 8, 2023
fb0f210
Disable the DNX module for now, since the sources are in a separate repo
saiarcot895 Sep 8, 2023
1f1aa8a
Update saibcm-modules for Linux 6.1
saiarcot895 Sep 8, 2023
934104c
Update pyyaml in sonic-bgpcfgd and sonic-frr-mgmt-framework to 6.0
saiarcot895 Sep 9, 2023
ff829da
Disable FIPS for now
saiarcot895 Sep 9, 2023
f3d1529
Disable mirror snapshots
saiarcot895 Sep 9, 2023
530eeee
Disable version caching/pinning
saiarcot895 Sep 12, 2023
8005492
Disable some Mellanox components to get build working
saiarcot895 Sep 15, 2023
7c9598c
Disable some Marvell components to get build working
saiarcot895 Sep 15, 2023
beb1a99
Modify rasdaemon service on amd64 only
saiarcot895 Sep 17, 2023
d1f81a6
fixup! Disable some Mellanox components to get build working
saiarcot895 Sep 17, 2023
850821f
fixup! Update Debian build script for Bookworm
saiarcot895 Sep 17, 2023
355e3d0
fixup! Update sonic-utilities for changes in Python
saiarcot895 Sep 17, 2023
8444bcb
fixup! Add Bookworm slave container
saiarcot895 Sep 17, 2023
a98104c
[Nvidia] Fix mlnx-sai build failure
vivekrnv Sep 18, 2023
7fa7cf2
[Nvidia] Fix mlnx-sai build failure (#14)
vivekrnv Sep 18, 2023
732d69b
fixup! Update Debian build script for Bookworm
saiarcot895 Sep 18, 2023
109a2d2
fixup! Update Debian build script for Bookworm
saiarcot895 Sep 18, 2023
fe13061
Merge branch 'bookworm' of https://github.com/saiarcot895/sonic-build…
vivekrnv Sep 19, 2023
ac63b4c
[Nvidia] Remove unsupported targets and get a compiled mlnx build
vivekrnv Sep 19, 2023
98a99ad
Ignore issue
vivekrnv Sep 19, 2023
d4ca234
Enable iproute2 as the syncd is still bullseye
vivekrnv Sep 19, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .azure-pipelines/azure-pipelines-repd-build-variables.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
variables:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
VERSION_CONTROL_OPTIONS: ''
2 changes: 1 addition & 1 deletion .azure-pipelines/template-variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ variables:
SONIC_BUILD_RETRY_INTERVAL: 600
DOCKER_BUILDKIT: 0
DOCKER_BUILD_TIMEOUT: 3600
MIRROR_SNAPSHOT: y
MIRROR_SNAPSHOT: n
19 changes: 17 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ NOJESSIE ?= 1
NOSTRETCH ?= 1
NOBUSTER ?= 0
NOBULLSEYE ?= 0
NOBOOKWORM ?= 0

override Q := @
ifeq ($(QUIET),n)
Expand All @@ -29,6 +30,10 @@ ifeq ($(NOBULLSEYE),0)
BUILD_BULLSEYE=1
endif

ifeq ($(NOBOOKWORM),0)
BUILD_BOOKWORM=1
endif

PLATFORM_PATH := platform/$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM))
PLATFORM_CHECKOUT := platform/checkout
PLATFORM_CHECKOUT_FILE := $(PLATFORM_CHECKOUT)/$(PLATFORM).ini
Expand All @@ -47,9 +52,12 @@ ifeq ($(NOBUSTER), 0)
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster -f Makefile.work buster
endif
ifeq ($(NOBULLSEYE), 0)
$(MAKE_WITH_RETRY) BLDENV=bullseye -f Makefile.work $@
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=bullseye -f Makefile.work bullseye
endif
BLDENV=bullseye $(MAKE) -f Makefile.work docker-cleanup
ifeq ($(NOBOOKWORM), 0)
$(MAKE_WITH_RETRY) BLDENV=bookworm -f Makefile.work $@
endif
BLDENV=bookworm $(MAKE) -f Makefile.work docker-cleanup

jessie:
@echo "+++ Making $@ +++"
Expand All @@ -69,6 +77,12 @@ ifeq ($(NOBUSTER), 0)
$(MAKE) -f Makefile.work buster
endif

bullseye:
@echo "+++ Making $@ +++"
ifeq ($(NOBUSTER), 0)
$(MAKE) -f Makefile.work bullseye
endif

init:
@echo "+++ Making $@ +++"
$(MAKE) -f Makefile.work $@
Expand All @@ -82,6 +96,7 @@ define make_work
$(if $(BUILD_STRETCH),BLDENV=stretch $(MAKE) -f Makefile.work $@,)
$(if $(BUILD_BUSTER),BLDENV=buster $(MAKE) -f Makefile.work $@,)
$(if $(BUILD_BULLSEYE),BLDENV=bullseye $(MAKE) -f Makefile.work $@,)
$(if $(BUILD_BOOKWORM),BLDENV=bookworm $(MAKE) -f Makefile.work $@,)
endef

.PHONY: $(PLATFORM_PATH)
Expand Down
3 changes: 2 additions & 1 deletion Makefile.cache
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ SONIC_COMMON_DPKG_LIST := debian/control debian/changelog debian/rules \
SONIC_COMMON_BASE_FILES_LIST := sonic-slave-jessie/Dockerfile.j2 sonic-slave-jessie/Dockerfile.user.j2 \
sonic-slave-stretch/Dockerfile.j2 sonic-slave-stretch/Dockerfile.user.j2 \
sonic-slave-buster/Dockerfile.j2 sonic-slave-buster/Dockerfile.user.j2 \
sonic-slave-bullseye/Dockerfile.j2 sonic-slave-bullseye/Dockerfile.user.j2
sonic-slave-bullseye/Dockerfile.j2 sonic-slave-bullseye/Dockerfile.user.j2 \
sonic-slave-bookworm/Dockerfile.j2 sonic-slave-bookworm/Dockerfile.user.j2



Expand Down
4 changes: 3 additions & 1 deletion Makefile.work
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,9 @@ else
TARGET_BOOTLOADER = uboot
endif

ifeq ($(BLDENV), bullseye)
ifeq ($(BLDENV), bookworm)
SLAVE_DIR = sonic-slave-bookworm
else ifeq ($(BLDENV), bullseye)
SLAVE_DIR = sonic-slave-bullseye
else ifeq ($(BLDENV), buster)
SLAVE_DIR = sonic-slave-buster
Expand Down
11 changes: 6 additions & 5 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pr:
include:
- master
- 202???
- bookworm
paths:
exclude:
- .github
Expand All @@ -37,12 +38,12 @@ resources:
ref: master

variables:
- template: .azure-pipelines/azure-pipelines-repd-build-variables.yml@buildimage
- template: .azure-pipelines/template-variables.yml@buildimage
- template: .azure-pipelines/azure-pipelines-repd-build-variables.yml
- template: .azure-pipelines/template-variables.yml
- name: CACHE_MODE
value: rcache
- name: ENABLE_FIPS
value: y
value: n

stages:
- stage: BuildVS
Expand Down Expand Up @@ -119,9 +120,9 @@ stages:
- script: |
sudo apt-get update
sudo apt-get install -y make libtool m4 autoconf dh-exec debhelper cmake pkg-config \
libhiredis-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libnl-nf-3-dev swig3.0 \
libhiredis-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libnl-nf-3-dev swig \
libpython2.7-dev libboost-dev libboost-serialization-dev uuid-dev libzmq5 libzmq3-dev python3-pip \
cmake libgtest-dev libgmock-dev libyang-dev
cmake libgtest-dev libgmock-dev libyang-dev nlohmann-json3-dev
sudo pip3 install pytest
cd src/sonic-swss-common
./autogen.sh
Expand Down
35 changes: 12 additions & 23 deletions build_debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ set -x -e
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)

## docker engine version (with platform)
DOCKER_VERSION=5:24.0.2-1~debian.11~$IMAGE_DISTRO
DOCKER_VERSION=5:24.0.2-1~debian.12~$IMAGE_DISTRO
CONTAINERD_IO_VERSION=1.6.21-1
LINUX_KERNEL_VERSION=5.10.0-18-2
LINUX_KERNEL_VERSION=6.1.0-11-2

## Working directory to prepare the file system
FILESYSTEM_ROOT=./fsroot
Expand Down Expand Up @@ -367,6 +367,7 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
sysfsutils \
squashfs-tools \
grub2-common \
rsyslog \
screen \
hping3 \
tcptraceroute \
Expand All @@ -382,9 +383,9 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
python3-pip \
python-is-python3 \
cron \
libprotobuf23 \
libprotobuf32 \
libgrpc++1 \
libgrpc10 \
libgrpc29 \
haveged \
fdisk \
gpg \
Expand All @@ -393,11 +394,8 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
linux-perf \
resolvconf \
lsof \
sysstat

# default rsyslog version is 8.2110.0 which has a bug on log rate limit,
# use backport version
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -t bullseye-backports -y install rsyslog
sysstat \
zstd

# Have systemd create the auditd log directory
sudo mkdir -p ${FILESYSTEM_ROOT}/etc/systemd/system/auditd.service.d
Expand Down Expand Up @@ -439,14 +437,6 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
systemd-sysv \
ntp

# Workaround for issue: The udev rule may fail to be executed because the
# daemon-reload command is executed in parallel
# Github issue: https://github.com/systemd/systemd/issues/24668
# Github PR: https://github.com/systemd/systemd/pull/24673
# This workaround should be removed after a upstream already contains the fixes
sudo patch $FILESYSTEM_ROOT/lib/systemd/system/systemd-udevd.service \
files/image_config/systemd/systemd-udevd/fix-udev-rule-may-fail-if-daemon-reload-command-runs.patch

if [[ $TARGET_BOOTLOADER == grub ]]; then
if [[ $CONFIGURED_ARCH == amd64 ]]; then
GRUB_PKG=grub-pc-bin
Expand Down Expand Up @@ -523,13 +513,11 @@ done < files/image_config/sysctl/sysctl-net.conf

sudo augtool --autosave "$sysctl_net_cmd_string" -r $FILESYSTEM_ROOT

# Upgrade pip via PyPI and uninstall the Debian version
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install --upgrade pip
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get purge -y python3-pip
# Specify that we want to explicitly install Python packages into the system environment, and risk breakages
sudo cp files/image_config/pip/pip.conf $FILESYSTEM_ROOT/etc/pip.conf

# For building Python packages
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'setuptools==49.6.00'
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'wheel==0.35.1'
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install python3-setuptools python3-wheel

# docker Python API package is needed by Ansible docker module as well as some SONiC applications
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==6.1.1'
Expand Down Expand Up @@ -720,7 +708,8 @@ if [[ $TARGET_BOOTLOADER == uboot ]]; then
sudo LANG=C chroot $FILESYSTEM_ROOT mv /boot/u${INITRD_FILE} /boot/$INITRD_FILE
elif [[ $CONFIGURED_ARCH == arm64 ]]; then
sudo cp -v $PLATFORM_DIR/${sonic_asic_platform}-${CONFIGURED_ARCH}/sonic_fit.its $FILESYSTEM_ROOT/boot/
sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -f /boot/sonic_fit.its /boot/sonic_${CONFIGURED_ARCH}.fit
# TODO: fix for bookworm, probably needs arm64 patches in sonic-linux-kernel to be updated
#sudo LANG=C chroot $FILESYSTEM_ROOT mkimage -f /boot/sonic_fit.its /boot/sonic_${CONFIGURED_ARCH}.fit
fi
fi

Expand Down
20 changes: 13 additions & 7 deletions files/apt/sources.list.j2
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
# The configuration is generated by template
# Please add additional sources in /etc/apt/sources.list.d

{% if DISTRIBUTION == 'bookworm' -%}
{%- set nonfree_component='non-free-firmware' -%}
{%- else -%}
{%- set nonfree_component='non-free' -%}
{%- endif %}

{% for mirror_url in MIRROR_URLS.split(',') %}
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }} main contrib non-free
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }} main contrib non-free
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-updates main contrib non-free
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-updates main contrib non-free
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-backports main contrib non-free
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }} main contrib {{ nonfree_component }}
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }} main contrib {{ nonfree_component }}
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-updates main contrib {{ nonfree_component }}
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-updates main contrib {{ nonfree_component }}
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-backports main contrib {{ nonfree_component }}
{% endfor %}
{% for mirror_url in MIRROR_SECURITY_URLS.split(',') %}
{% set dist_separator='/' %}{% if 'packages.trafficmanager.net/debian' in mirror_url %}{% set dist_separator='_' %}{% endif %}
{% if DISTRIBUTION == 'stretch' or DISTRIBUTION == 'buster' %}
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}{{ dist_separator }}updates main contrib non-free
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}{{ dist_separator }}updates main contrib non-free
{% else %}
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-security main contrib non-free
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-security main contrib non-free
deb [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-security main contrib {{ nonfree_component }}
deb-src [arch={{ ARCHITECTURE }}] {{ mirror_url }} {{ DISTRIBUTION }}-security main contrib {{ nonfree_component }}
{% endif %}
{% endfor %}
Loading