Skip to content

Commit 09d07a9

Browse files
author
Wirut Getbamrung
authored
Merge branch 'master' into upstream_silverstone-dp
2 parents 5ffac0c + 3a82ade commit 09d07a9

File tree

299 files changed

+10684
-7635
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

299 files changed

+10684
-7635
lines changed

Makefile

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,36 @@
11
# SONiC make file
22

33
NOJESSIE ?= 0
4+
NOSTRETCH ?= 0
45

56
%::
67
@echo "+++ --- Making $@ --- +++"
78
ifeq ($(NOJESSIE), 0)
8-
EXTRA_JESSIE_TARGETS=$(notdir $@) make -f Makefile.work jessie
9+
EXTRA_DOCKER_TARGETS=$(notdir $@) make -f Makefile.work jessie
910
endif
10-
BLDENV=stretch make -f Makefile.work $@
11+
ifeq ($(NOSTRETCH), 0)
12+
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=stretch make -f Makefile.work stretch
13+
endif
14+
BLDENV=buster make -f Makefile.work $@
1115

1216
jessie:
1317
@echo "+++ Making $@ +++"
1418
ifeq ($(NOJESSIE), 0)
1519
make -f Makefile.work jessie
1620
endif
1721

22+
stretch:
23+
@echo "+++ Making $@ +++"
24+
ifeq ($(NOSTRETCH), 0)
25+
make -f Makefile.work stretch
26+
endif
27+
1828
clean reset init configure showtag sonic-slave-build sonic-slave-bash :
1929
@echo "+++ Making $@ +++"
2030
ifeq ($(NOJESSIE), 0)
2131
make -f Makefile.work $@
2232
endif
33+
ifeq ($(NOSTRETCH), 0)
2334
BLDENV=stretch make -f Makefile.work $@
35+
endif
36+
BLDENV=buster make -f Makefile.work $@

Makefile.cache

+29-20
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
#
99
1010
11-
#
11+
#
1212
# This program is free software; you can redistribute it and/or modify
1313
# it under the terms of the GNU General Public License as published by
1414
# the Free Software Foundation; either version 2 of the License, or
1515
# (at your option) any later version.
16-
#
16+
#
1717
# This program is distributed in the hope that it will be useful,
1818
# but WITHOUT ANY WARRANTY; without even the implied warranty of
1919
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -73,7 +73,8 @@ SONIC_COMMON_FLAGS_LIST := $(CONFIGURED_PLATFORM) \
7373
SONIC_COMMON_DPKG_LIST := debian/control debian/changelog debian/rules \
7474
debian/compat debian/install debian/copyright
7575
SONIC_COMMON_BASE_FILES_LIST := sonic-slave-jessie/Dockerfile.j2 sonic-slave-jessie/Dockerfile.user \
76-
sonic-slave-stretch/Dockerfile.j2 sonic-slave-stretch/Dockerfile.user
76+
sonic-slave-stretch/Dockerfile.j2 sonic-slave-stretch/Dockerfile.user \
77+
sonic-slave-buster/Dockerfile.j2 sonic-slave-buster/Dockerfile.user
7778

7879

7980

@@ -105,7 +106,7 @@ MOD_CACHE_LOCK_TIMEOUT := 3600
105106
SONIC_DPKG_LOCAL_CACHE_DIR=${TARGET_PATH}/cache
106107
$(shell test -d $(SONIC_DPKG_LOCAL_CACHE_DIR) || \
107108
mkdir -p $(SONIC_DPKG_LOCAL_CACHE_DIR) && chmod 777 $(SONIC_DPKG_LOCAL_CACHE_DIR) )
108-
$(shell test -w $(SONIC_DPKG_CACHE_DIR) || sudo chmod 777 $(SONIC_DPKG_CACHE_DIR) )
109+
$(shell test -w $(SONIC_DPKG_CACHE_DIR) || sudo chmod 777 $(SONIC_DPKG_CACHE_DIR) )
109110

110111
DOCKER_LOCKFILE_SUFFIX := access
111112
DOCKER_LOCKFILE_TIMEOUT := 1200
@@ -172,8 +173,14 @@ define GET_MOD_DEP_SHA
172173
$(if $($(dfile)_MAIN_DEB),$($(dfile)_MAIN_DEB),$(dfile))) )
173174

174175
$(if $(MDEBUG), $(info $(1)_MOD_DEP_PKGS: $($(1)_MOD_DEP_PKGS)))
175-
$(eval $(1)_DEP_MOD_SHA := $(shell git hash-object \
176-
$(foreach dfile,$($(1)_MOD_DEP_PKGS), $($(dfile)_DEP_FLAGS_FILE) $($(dfile)_MOD_HASH_FILE) $($(dfile)_SMOD_HASH_FILE) ) \
176+
177+
# Warn if there is any missing dependency files
178+
$(eval $(1)_DEP_MOD_SHA_FILES := $(foreach dfile,$($(1)_MOD_DEP_PKGS), \
179+
$($(dfile)_DEP_FLAGS_FILE) $($(dfile)_MOD_HASH_FILE) $($(dfile)_SMOD_HASH_FILE)) )
180+
$(eval $(1)_DEP_FILES_MISSING := $(filter-out $(wildcard $($(1)_DEP_MOD_SHA_FILES)),$($(1)_DEP_MOD_SHA_FILES)) )
181+
$(if $($(1)_DEP_FILES_MISSING), $(warning "[ DPKG ] Dependecy file(s) are not found for $(1) : $($(1)_DEP_FILES_MISSING)))
182+
183+
$(eval $(1)_DEP_MOD_SHA := $(shell git hash-object $($(1)_DEP_MOD_SHA_FILES) \
177184
| sha1sum | awk '{print substr($$1,0,23);}'))
178185
endef
179186

@@ -240,7 +247,7 @@ define LOAD_FROM_CACHE
240247
# Update the cache_loaded variable
241248
$(if $(and $(CACHE_FILE_SELECT),$(filter $(RCACHE_OPTIONS),$(SONIC_DPKG_CACHE_METHOD))),
242249
$(if $(LOAD_DRV_DEB), $($(1)_CACHE_USER) tar -C $($(1)_BASE_PATH) -mxzvf $(CACHE_FILE_SELECT) 1>> $($(1)_DST_PATH)/$(1).log ,echo );
243-
echo "File $(CACHE_FILE_SELECT) is loaded from cache" >> $($(1)_DST_PATH)/$(1).log
250+
echo "File $(CACHE_FILE_SELECT) is loaded from cache into $($(1)_BASE_PATH)" >> $($(1)_DST_PATH)/$(1).log
244251
$(eval $(1)_CACHE_LOADED := Yes)
245252
$(shell touch $(CACHE_FILE_SELECT))
246253
echo "[ CACHE::LOADED ] $($(1)_CACHE_DIR)/$($(1)_MOD_CACHE_FILE)" >> $($(1)_DST_PATH)/$(1).log
@@ -315,7 +322,7 @@ define SHOW_WHY
315322
$(if $($(1)_PREREQ_PHONY), PHONY PREREQUISITES: $($(1)_PREREQ_PHONY)))" >> $($(1)_DST_PATH)/$(1).log
316323

317324
@echo "[ FLAGS FILE ] : [$($(1)_FILE_FLAGS)] " >> $($(1)_DST_PATH)/$(1).log
318-
@echo "[ FLAGS DEPENDS ] : [$($(1)_DEP_FLAGS)] " >> $($(1)_DST_PATH)/$(1).log
325+
@echo "[ FLAGS DEPENDS ] : [$($(1)_DEP_FLAGS_ALL)] " >> $($(1)_DST_PATH)/$(1).log
319326
@echo "[ FLAGS DIFF ] : [$($(1)_FLAGS_DIFF)] " >> $($(1)_DST_PATH)/$(1).log
320327
@echo "[ DEP DEPENDS ] : [$($(1)_DEP_FILES_MODIFIED)] " >> $($(1)_DST_PATH)/$(1).log
321328
@echo "[ SMDEP DEPENDS ] : [$($(1)_SMDEP_FILES_MODIFIED)] " >> $($(1)_DST_PATH)/$(1).log
@@ -455,19 +462,21 @@ $(foreach pkg, $(SONIC_MAKE_DEBS) $(SONIC_DPKG_DEBS) $(SONIC_ONLINE_DEBS) $(SONI
455462
# $(1) => target name
456463
# $(2) => target destination folder path
457464
# $(3) => target file extension
465+
# $(4) => additional flags
458466
#
459467
# It updates the _DEP_FLAGS variable if there is any change in the module flags.
460468

461469
define FLAGS_DEP_RULES
462470
ALL_DEP_FILES_LIST += $(foreach pkg,$(2), $(if $(filter none,$($(1)_CACHE_MODE)),$(addsuffix .$(3),$(addprefix $(pkg)/, $(1)))))
463471
$(addsuffix .$(3),$(addprefix $(2)/, $(1))) :: $(2)/%.$(3) :
464-
@$$(eval $$*_FILE_FLAGS := $$(shell test -f $$@ && cat $$@))
465-
@echo '$$($$*_DEP_FLAGS)' | cmp -s - $$@ || echo '$$($$*_DEP_FLAGS)' > $$@
466-
$$(eval $$*_FLAGS_DIFF := $$(filter-out $$($$*_FILE_FLAGS),$$($$*_DEP_FLAGS)) $$(filter-out $$($$*_DEP_FLAGS),$$($$*_FILE_FLAGS)))
472+
@$$(eval $$*_FILE_FLAGS := $$(shell test -f $$@ && cat $$@))
473+
@$$(eval $$*_DEP_FLAGS_ALL := $$(shell echo '$$($$*_DEP_FLAGS) $(4)' | sed -E 's/[ ]+/ /g' | sed -E 's/[ ]+$$$$//g'))
474+
@echo '$$($$*_DEP_FLAGS_ALL)' | cmp -s - $$@ || echo '$$($$*_DEP_FLAGS_ALL)' > $$@
475+
$$(eval $$*_FLAGS_DIFF := $$(filter-out $$($$*_FILE_FLAGS),$$($$*_DEP_FLAGS_ALL)) $$(filter-out $$($$*_DEP_FLAGS_ALL),$$($$*_FILE_FLAGS)))
467476
@$$(if $$(MDEBUG), $$(info FLAGS: $$@, DEP:$$?))
468477
endef
469-
$(eval $(call FLAGS_DEP_RULES, $(SONIC_MAKE_DEBS) $(SONIC_DPKG_DEBS) $(SONIC_ONLINE_DEBS) $(SONIC_COPY_DEBS), $(DEBS_PATH),flags) )
470-
$(eval $(call FLAGS_DEP_RULES, $(SONIC_MAKE_FILES), $(FILES_PATH),flags))
478+
$(eval $(call FLAGS_DEP_RULES, $(SONIC_MAKE_DEBS) $(SONIC_DPKG_DEBS) $(SONIC_ONLINE_DEBS) $(SONIC_COPY_DEBS), $(DEBS_PATH),flags,$(BLDENV)) )
479+
$(eval $(call FLAGS_DEP_RULES, $(SONIC_MAKE_FILES), $(FILES_PATH),flags,$(BLDENV)))
471480
$(eval $(call FLAGS_DEP_RULES, $(SONIC_PYTHON_STDEB_DEBS), $(PYTHON_DEBS_PATH),flags))
472481
$(eval $(call FLAGS_DEP_RULES, $(SONIC_PYTHON_WHEELS), $(PYTHON_WHEELS_PATH),flags))
473482
$(eval $(call FLAGS_DEP_RULES, $(SONIC_DOCKER_IMAGES) $(SONIC_DOCKER_DBG_IMAGES), $(TARGET_PATH),flags))
@@ -571,7 +580,7 @@ SONIC_CACHE_CLEAN_DEBS = $(addsuffix -clean,$(addprefix $(DEBS_PATH)/, \
571580
$(SONIC_DPKG_DEBS) \
572581
$(SONIC_DERIVED_DEBS) \
573582
$(SONIC_EXTRA_DEBS)))
574-
$(SONIC_CACHE_CLEAN_DEBS) :: $(DEBS_PATH)/%-clean : .platform $$(addsuffix -clean,$$(addprefix $(DEBS_PATH)/,$$($$*_MAIN_DEB)))
583+
$(SONIC_CACHE_CLEAN_DEBS) :: $(DEBS_PATH)/%-clean : .platform $$(addsuffix -clean,$$(addprefix $(DEBS_PATH)/,$$($$*_MAIN_DEB)))
575584
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \
576585
$($*_MOD_DEP_FILE) $($*_SMOD_DEP_FILE)
577586

@@ -581,7 +590,7 @@ SONIC_CACHE_CLEAN_FILES = $(addsuffix -clean,$(addprefix $(FILES_PATH)/, \
581590
$(SONIC_ONLINE_FILES) \
582591
$(SONIC_COPY_FILES) \
583592
$(SONIC_MAKE_FILES)))
584-
$(SONIC_CACHE_CLEAN_FILES) :: $(FILES_PATH)/%-clean : .platform
593+
$(SONIC_CACHE_CLEAN_FILES) :: $(FILES_PATH)/%-clean : .platform
585594
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \
586595
$($*_MOD_DEP_FILE) $($*_SMOD_DEP_FILE)
587596

@@ -592,31 +601,31 @@ SONIC_CACHE_CLEAN_TARGETS = $(addsuffix -clean,$(addprefix $(TARGET_PATH)/, \
592601
$(SONIC_DOCKER_DBG_IMAGES) \
593602
$(SONIC_SIMPLE_DOCKER_IMAGES) \
594603
$(SONIC_INSTALLERS)))
595-
$(SONIC_CACHE_CLEAN_TARGETS) :: $(TARGET_PATH)/%-clean : .platform
604+
$(SONIC_CACHE_CLEAN_TARGETS) :: $(TARGET_PATH)/%-clean : .platform
596605
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \
597606
$($*_MOD_DEP_FILE) $($*_SMOD_DEP_FILE)
598607

599608

600609
# Clean all the DEP and SHA files for all the PYTHON DEBS target
601610
SONIC_CACHE_CLEAN_STDEB_DEBS = $(addsuffix -clean,$(addprefix $(PYTHON_DEBS_PATH)/, \
602611
$(SONIC_PYTHON_STDEB_DEBS)))
603-
$(SONIC_CACHE_CLEAN_STDEB_DEBS) :: $(PYTHON_DEBS_PATH)/%-clean : .platform
612+
$(SONIC_CACHE_CLEAN_STDEB_DEBS) :: $(PYTHON_DEBS_PATH)/%-clean : .platform
604613
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \
605614
$($*_MOD_DEP_FILE) $($*_SMOD_DEP_FILE)
606615

607616

608617
# Clean all the DEP and SHA files for all the PYTHON WHEELS target
609618
SONIC_CACHE_CLEAN_WHEELS = $(addsuffix -clean,$(addprefix $(PYTHON_WHEELS_PATH)/, \
610619
$(SONIC_PYTHON_WHEELS)))
611-
$(SONIC_CACHE_CLEAN_WHEELS) :: $(PYTHON_WHEELS_PATH)/%-clean : .platform
620+
$(SONIC_CACHE_CLEAN_WHEELS) :: $(PYTHON_WHEELS_PATH)/%-clean : .platform
612621
@rm -f $($*_DEP_FLAGS_FILE) $($*_MOD_HASH_FILE) $($*_SMOD_HASH_FILE) \
613622
$($*_MOD_DEP_FILE) $($*_SMOD_DEP_FILE)
614623

615624
.PHONY: cclean
616625
cclean:: $(SONIC_CACHE_CLEAN_DEBS) $(SONIC_CACHE_CLEAN_FILES) $(SONIC_CACHE_CLEAN_TARGETS) \
617626
$(SONIC_CACHE_CLEAN_STDEB_DEBS) $(SONIC_CACHE_CLEAN_WHEELS)
618627

619-
.PHONY: clean
628+
.PHONY: clean
620629
clean:: cclean
621630

622631
# Clear all the local cache contents
@@ -653,7 +662,7 @@ show-%:
653662
)\
654663
)\
655664
)
656-
$(info )
665+
$(info )
657666

658667

659668

Makefile.work

+5-2
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,14 @@ ifeq ($(PLATFORM_ARCH),)
7676
override PLATFORM_ARCH = $(CONFIGURED_ARCH)
7777
endif
7878

79-
ifeq ($(BLDENV), stretch)
79+
ifeq ($(BLDENV), buster)
80+
SLAVE_DIR = sonic-slave-buster
81+
else ifeq ($(BLDENV), stretch)
8082
SLAVE_DIR = sonic-slave-stretch
8183
else
8284
SLAVE_DIR = sonic-slave-jessie
8385
endif
86+
8487
SLAVE_BASE_TAG = $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile && sha1sum $(SLAVE_DIR)/Dockerfile | awk '{print substr($$1,0,11);}')
8588
SLAVE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile | sha1sum | awk '{print substr($$1,0,11);}')
8689
SLAVE_BASE_IMAGE = $(SLAVE_DIR)
@@ -197,7 +200,7 @@ SONIC_BUILD_INSTRUCTION := make \
197200
HTTPS_PROXY=$(https_proxy) \
198201
SONIC_ENABLE_SYSTEM_TELEMETRY=$(ENABLE_SYSTEM_TELEMETRY) \
199202
SONIC_ENABLE_RESTAPI=$(ENABLE_RESTAPI) \
200-
EXTRA_JESSIE_TARGETS=$(EXTRA_JESSIE_TARGETS) \
203+
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
201204
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \
202205
$(SONIC_OVERRIDE_BUILD_VARS)
203206

build_debian.sh

+34-29
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
3535
# Version name differs between ARCH, copying same version as in sonic-slave docker
3636
DOCKER_VERSION=18.06.3~ce~3-0~debian
3737
else
38-
DOCKER_VERSION=5:18.09.8~3-0~debian-stretch
38+
DOCKER_VERSION=5:18.09.8~3-0~debian-$IMAGE_DISTRO
3939
fi
40-
LINUX_KERNEL_VERSION=4.9.0-11-2
40+
LINUX_KERNEL_VERSION=4.19.0-6
4141

4242
## Working directory to prepare the file system
4343
FILESYSTEM_ROOT=./fsroot
@@ -81,9 +81,9 @@ if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
8181
# qemu arm bin executable for cross-building
8282
sudo mkdir -p $FILESYSTEM_ROOT/usr/bin
8383
sudo cp /usr/bin/qemu*static $FILESYSTEM_ROOT/usr/bin || true
84-
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch $CONFIGURED_ARCH stretch $FILESYSTEM_ROOT http://deb.debian.org/debian
84+
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch $CONFIGURED_ARCH $IMAGE_DISTRO $FILESYSTEM_ROOT http://deb.debian.org/debian
8585
else
86-
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch $CONFIGURED_ARCH stretch $FILESYSTEM_ROOT http://debian-archive.trafficmanager.net/debian
86+
sudo http_proxy=$http_proxy debootstrap --variant=minbase --arch $CONFIGURED_ARCH $IMAGE_DISTRO $FILESYSTEM_ROOT http://debian-archive.trafficmanager.net/debian
8787
fi
8888

8989
## Config hostname and hosts, otherwise 'sudo ...' will complain 'sudo: unable to resolve host ...'
@@ -98,12 +98,12 @@ sudo LANG=C chroot $FILESYSTEM_ROOT /bin/bash -c 'echo "sysfs /sys sysfs default
9898
## Setup proxy
9999
[ -n "$http_proxy" ] && sudo /bin/bash -c "echo 'Acquire::http::Proxy \"$http_proxy\";' > $FILESYSTEM_ROOT/etc/apt/apt.conf.d/01proxy"
100100

101+
trap_push 'sudo LANG=C chroot $FILESYSTEM_ROOT umount /proc || true'
102+
sudo LANG=C chroot $FILESYSTEM_ROOT mount proc /proc -t proc
101103
## Note: mounting is necessary to makedev and install linux image
102104
echo '[INFO] Mount all'
103105
## Output all the mounted device for troubleshooting
104-
mount
105-
trap_push 'sudo umount $FILESYSTEM_ROOT/proc || true'
106-
sudo LANG=C chroot $FILESYSTEM_ROOT mount proc /proc -t proc
106+
sudo LANG=C chroot $FILESYSTEM_ROOT mount
107107

108108
## Pointing apt to public apt mirrors and getting latest packages, needed for latest security updates
109109
sudo cp files/apt/sources.list.$CONFIGURED_ARCH $FILESYSTEM_ROOT/etc/apt/sources.list
@@ -129,7 +129,7 @@ fi
129129
## 2. mount supports squashfs
130130
## However, 'dpkg -i' plus 'apt-get install -f' will ignore the recommended dependency. So
131131
## we install busybox explicitly
132-
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox
132+
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install busybox linux-base
133133
echo '[INFO] Install SONiC linux kernel image'
134134
## Note: duplicate apt-get command to ensure every line return zero
135135
sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/initramfs-tools-core_*.deb || \
@@ -184,11 +184,6 @@ if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
184184
cat files/initramfs-tools/modules.arm | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null
185185
fi
186186

187-
if [[ $CONFIGURED_ARCH == amd64 ]]; then
188-
## Install latest intel ixgbe driver
189-
sudo cp $files_path/ixgbe.ko $FILESYSTEM_ROOT/lib/modules/${LINUX_KERNEL_VERSION}-amd64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
190-
fi
191-
192187
## Install docker
193188
echo '[INFO] Install docker'
194189
## Install apparmor utils since they're missing and apparmor is enabled in the kernel
@@ -203,9 +198,9 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker
203198
sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add /tmp/docker.gpg
204199
sudo LANG=C chroot $FILESYSTEM_ROOT rm /tmp/docker.gpg
205200
sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \
206-
"deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian stretch stable"
201+
"deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian $IMAGE_DISTRO stable"
207202
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update
208-
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION}
203+
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION}
209204
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2
210205

211206
if [ "$INSTALL_KUBERNETES" == "y" ]
@@ -298,14 +293,16 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
298293
makedumpfile \
299294
conntrack \
300295
python-pip \
301-
python3-pip
296+
python3-pip \
297+
cron \
298+
haveged
302299

303300

304301
if [[ $CONFIGURED_ARCH == amd64 ]]; then
305302
## Pre-install the fundamental packages for amd64 (x86)
306303
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
307304
flashrom \
308-
mcelog
305+
rasdaemon
309306
fi
310307

311308
## Set /etc/shadow permissions to -rw-------.
@@ -325,9 +322,9 @@ sudo sed -i '/^#.* en_US.* /s/^#//' $FILESYSTEM_ROOT/etc/locale.gen && \
325322
sudo LANG=en_US.UTF-8 DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT update-locale "LANG=en_US.UTF-8"
326323
sudo LANG=C chroot $FILESYSTEM_ROOT bash -c "find /usr/share/i18n/locales/ ! -name 'en_US' -type f -exec rm -f {} +"
327324

328-
# Install certain fundamental packages from stretch-backports in order to get
325+
# Install certain fundamental packages from $IMAGE_DISTRO-backports in order to get
329326
# more up-to-date (but potentially less stable) versions
330-
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y -t stretch-backports install \
327+
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y -t $IMAGE_DISTRO-backports install \
331328
picocom
332329

333330
if [[ $CONFIGURED_ARCH == amd64 ]]; then
@@ -369,6 +366,12 @@ EOF
369366
sudo sed -i 's/^ListenAddress ::/#ListenAddress ::/' $FILESYSTEM_ROOT/etc/ssh/sshd_config
370367
sudo sed -i 's/^#ListenAddress 0.0.0.0/ListenAddress 0.0.0.0/' $FILESYSTEM_ROOT/etc/ssh/sshd_config
371368

369+
## Config rsyslog
370+
sudo augtool -r $FILESYSTEM_ROOT --autosave "
371+
rm /files/lib/systemd/system/rsyslog.service/Service/ExecStart/arguments
372+
set /files/lib/systemd/system/rsyslog.service/Service/ExecStart/arguments/1 -n
373+
"
374+
372375
## Config sysctl
373376
sudo mkdir -p $FILESYSTEM_ROOT/var/core
374377
sudo augtool --autosave "
@@ -425,14 +428,8 @@ set /files/etc/sysctl.conf/net.core.somaxconn 512
425428
426429
" -r $FILESYSTEM_ROOT
427430

428-
if [[ $CONFIGURED_ARCH == amd64 ]]; then
429-
# Configure mcelog to log machine checks to syslog
430-
sudo sed -i 's/^#syslog = yes/syslog = yes/' $FILESYSTEM_ROOT/etc/mcelog/mcelog.conf
431-
fi
432-
433-
## docker-py is needed by Ansible docker module
434-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT easy_install pip
435-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install 'docker-py==1.6.0'
431+
## docker Python API package is needed by Ansible docker module
432+
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install 'docker==4.1.0'
436433
## Note: keep pip installed for maintainance purpose
437434

438435
## Get gcc and python dev pkgs
@@ -460,6 +457,10 @@ if [ -f files/image_config/ntp/ntp ]; then
460457
sudo cp ./files/image_config/ntp/ntp $FILESYSTEM_ROOT/etc/init.d/
461458
fi
462459

460+
if [ -f files/image_config/ntp/ntp-systemd-wrapper ]; then
461+
sudo cp ./files/image_config/ntp/ntp-systemd-wrapper $FILESYSTEM_ROOT/usr/lib/ntp/
462+
fi
463+
463464
## Version file
464465
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic
465466
sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml > /dev/null <<EOF
@@ -497,8 +498,12 @@ if [ "${enable_organization_extensions}" = "y" ]; then
497498
fi
498499

499500
## Setup ebtable rules (rule file is in binary format)
500-
sudo sed -i 's/EBTABLES_LOAD_ON_START="no"/EBTABLES_LOAD_ON_START="yes"/g' ${FILESYSTEM_ROOT}/etc/default/ebtables
501+
sudo cp -f files/image_config/ebtables/ebtables.default $FILESYSTEM_ROOT/etc/default/ebtables
502+
sudo cp -f files/image_config/ebtables/ebtables.init $FILESYSTEM_ROOT/etc/init.d/ebtables
503+
sudo cp -f files/image_config/ebtables/ebtables.service $FILESYSTEM_ROOT/lib/systemd/system/ebtables.service
501504
sudo cp files/image_config/ebtables/ebtables.filter ${FILESYSTEM_ROOT}/etc
505+
sudo LANG=C chroot $FILESYSTEM_ROOT update-alternatives --set ebtables /usr/sbin/ebtables-legacy
506+
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable ebtables.service
502507

503508
## Debug Image specific changes
504509
## Update motd for debug image
@@ -559,7 +564,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT fuser -vm /proc
559564
sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /proc || true
560565
## Wait fuser fully kill the processes
561566
sleep 15
562-
sudo umount $FILESYSTEM_ROOT/proc || true
567+
sudo LANG=C chroot $FILESYSTEM_ROOT umount /proc || true
563568

564569
if [[ $CONFIGURED_ARCH == armhf || $CONFIGURED_ARCH == arm64 ]]; then
565570
# Remove qemu arm bin executable used for cross-building

0 commit comments

Comments
 (0)