Skip to content

Commit

Permalink
Changes for building community master in broadcom LSF servers-Jan'24
Browse files Browse the repository at this point in the history
  • Loading branch information
Kalimuthu-Velappan authored and mohan-selvaraj committed Feb 21, 2024
1 parent cdc6491 commit 486e018
Show file tree
Hide file tree
Showing 11 changed files with 35 additions and 30 deletions.
14 changes: 8 additions & 6 deletions Makefile.work
Original file line number Diff line number Diff line change
Expand Up @@ -311,8 +311,8 @@ endif
ifeq ($(DOCKER_BUILDER_WORKDIR),)
override DOCKER_BUILDER_WORKDIR := "/sonic"
endif

DOCKER_RUN := docker run --rm=true --privileged --init \
HOSTNET := --network=host
DOCKER_RUN := docker run $(HOSTNET) --rm=true --privileged --init \
-v $(DOCKER_BUILDER_MOUNT) \
-v "$(DOCKER_LOCKDIR):$(DOCKER_LOCKDIR)" \
-w $(DOCKER_BUILDER_WORKDIR) \
Expand All @@ -331,6 +331,7 @@ ifneq ($(DOCKER_BUILDER_USER_MOUNT),)
DOCKER_RUN += $(foreach mount,$(subst $(comma), ,$(DOCKER_BUILDER_USER_MOUNT)), $(addprefix -v , $(mount)))
endif

DOCKER_RUN += --mount type=tmpfs,destination=/bld-tmp,tmpfs-mode=1777
ifdef SONIC_BUILD_QUIETER
DOCKER_RUN += -e "SONIC_BUILD_QUIETER=$(SONIC_BUILD_QUIETER)"
endif
Expand Down Expand Up @@ -444,7 +445,8 @@ DOCKER_BASE_LOG = $(SLAVE_DIR)/$(SLAVE_BASE_IMAGE)_$(SLAVE_BASE_TAG).log
DOCKER_LOG = $(SLAVE_DIR)/$(SLAVE_IMAGE)_$(SLAVE_TAG).log


DOCKER_SLAVE_BASE_BUILD = docker build --no-cache \
DOCKER_AUTH:=docker login -u sonicbrcm -p 4b5d1f28-6f43-41da-a794-88805ee8fc2d
DOCKER_SLAVE_BASE_BUILD = $(DOCKER_AUTH);docker build $(HOSTNET) --no-cache \
-t $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) \
--build-arg http_proxy=$(http_proxy) \
--build-arg https_proxy=$(https_proxy) \
Expand All @@ -454,10 +456,10 @@ DOCKER_SLAVE_BASE_BUILD = docker build --no-cache \
$(SLAVE_DIR) \
$(SPLIT_LOG) $(DOCKER_BASE_LOG)

DOCKER_BASE_PULL = docker pull \
$(REGISTRY_SERVER):$(REGISTRY_PORT)$(REGISTRY_SERVER_PATH)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
DOCKER_BASE_PULL = $(DOCKER_AUTH);docker pull \
$(REGISTRY_SERVER):$(REGISTRY_PORT)/$(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)

DOCKER_USER_BUILD = docker build --no-cache \
DOCKER_USER_BUILD = $(DOCKER_AUTH);docker build $(HOSTNET) --no-cache \
--build-arg user=$(USER) \
--build-arg uid=$(shell id -u) \
--build-arg guid=$(shell id -g) \
Expand Down
5 changes: 5 additions & 0 deletions build_debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ if [ "$IMAGE_TYPE" = "aboot" ]; then
TARGET_BOOTLOADER="aboot"
fi

FILESYSTEM_BASE=/sonic/build
mkdir -p ${FILESYSTEM_BASE}
sudo mount -t tmpfs -o size=16G tmpfs ${FILESYSTEM_BASE} || true
FILESYSTEM_ROOT=${FILESYSTEM_BASE}/fsroot

## Check if not a last stage of RFS build
if [[ $RFS_SPLIT_LAST_STAGE != y ]]; then

Expand Down
2 changes: 1 addition & 1 deletion rules/bash.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# Bash major release-number corresponding to Debian-11 (Bullseye)
BASH_VERSION_MAJOR = 5.1
# Bash complete release-number. This image contains all 5.1 fixes up to patch '2'.
BASH_VERSION_FULL = $(BASH_VERSION_MAJOR)-2
BASH_VERSION_FULL = $(BASH_VERSION_MAJOR)-2+deb11u1

export BASH_VERSION_MAJOR BASH_VERSION_FULL

Expand Down
8 changes: 4 additions & 4 deletions rules/config
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
# SONIC_CONFIG_BUILD_JOBS - set number of jobs for parallel build.
# Corresponding -j argument will be passed to make command inside docker
# container.
SONIC_CONFIG_BUILD_JOBS = 1
SONIC_CONFIG_BUILD_JOBS = 8

# SONIC_CONFIG_MAKE_JOBS - set number of parallel make jobs per package.
# Corresponding -j argument will be passed to make/dpkg commands that build separate packages
SONIC_CONFIG_MAKE_JOBS = $(shell nproc)
SONIC_CONFIG_MAKE_JOBS = 8

# DEFAULT_BUILD_LOG_TIMESTAMP - add timestamp in build log
# Supported format: simple, none
Expand Down Expand Up @@ -118,8 +118,8 @@ FRR_USER_GID = 300
# rcache : Use cache if exists, but dont update the cache
# cache : Same as rwcache
# SONIC_DPKG_CACHE_SOURCE - Stores the cache location details
SONIC_DPKG_CACHE_METHOD ?= none
SONIC_DPKG_CACHE_SOURCE ?= /var/cache/sonic/artifacts
SONIC_DPKG_CACHE_METHOD ?= cache
SONIC_DPKG_CACHE_SOURCE ?= /projects/csg_sonic/dpkg_cache/community/

# Default VS build memory preparation
DEFAULT_VS_PREPARE_MEM = yes
Expand Down
3 changes: 3 additions & 0 deletions rules/functions
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,12 @@ define SETUP_OVERLAYFS_FOR_DPKG_ADMINDIR
upperdir=$(shell mktemp -d -p $(DPKG_ADMINDIR_PATH))
workdir=$(shell mktemp -d -p $(DPKG_ADMINDIR_PATH))
mergedir=$(shell mktemp -d -p $(DPKG_ADMINDIR_PATH))
#echo sudo mount -t overlay overlay -olowerdir=/var/lib/dpkg,upperdir=$$upperdir,workdir=$$workdir $$mergedir
sudo mount -t overlay overlay -olowerdir=/var/lib/dpkg,upperdir=$$upperdir,workdir=$$workdir $$mergedir
export SONIC_DPKG_ADMINDIR=$$mergedir
trap "sudo umount $$mergedir && rm -rf $$mergedir $$upperdir $$workdir" EXIT
#mergedir=$(echo -n /var/lib/dpkg)
#export SONIC_DPKG_ADMINDIR=/var/lib/dpkg
endef


Expand Down
2 changes: 1 addition & 1 deletion scripts/build_kvm_image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ create_disk()

prepare_installer_disk()
{
fallocate -l 4096M $INSTALLER_DISK
fallocate -x -l 4096M $INSTALLER_DISK

mkfs.vfat $INSTALLER_DISK

Expand Down
11 changes: 1 addition & 10 deletions scripts/collect_docker_version_files.sh
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,7 @@ docker cp -L $DOCKER_CONTAINER:/usr/local/share/buildinfo/log ${BUILD_LOG_PATH}/

# Save the cache contents from docker build
LOCAL_CACHE_FILE=target/vcache/${DOCKER_IMAGE_NAME}/cache.tgz
CACHE_ENCODE_FILE=${DOCKER_PATH}/vcache/cache.base64
sleep 1; sync ${CACHE_ENCODE_FILE}

# Decode the cache content into gz format
SRC_VERSION_PATH=files/build/versions
if [[ -e ${CACHE_ENCODE_FILE} ]]; then

cat ${CACHE_ENCODE_FILE} | base64 -d >${LOCAL_CACHE_FILE}
rm -f ${CACHE_ENCODE_FILE}
fi

# Version package cache
IMAGE_DBGS_NAME=${DOCKER_IMAGE_NAME//-/_}_image_dbgs
Expand All @@ -70,7 +61,7 @@ else
GLOBAL_CACHE_DIR=/vcache/${DOCKER_IMAGE_NAME}
fi

if [[ ! -z ${SONIC_VERSION_CACHE} && -e ${CACHE_ENCODE_FILE} ]]; then
if [[ ! -z ${SONIC_VERSION_CACHE} ]]; then

# Select version files for SHA calculation
VERSION_FILES="${SRC_VERSION_PATH}/dockers/${DOCKER_IMAGE_NAME}/versions-*-${DISTRO}-${ARCH} ${SRC_VERSION_PATH}/default/versions-*"
Expand Down
10 changes: 6 additions & 4 deletions slave.mk
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ BOOKWORM_FILES_PATH = $(TARGET_PATH)/files/bookworm
DBG_IMAGE_MARK = dbg
DBG_SRC_ARCHIVE_FILE = $(TARGET_PATH)/sonic_src.tar.gz
BUILD_WORKDIR = /sonic
DPKG_ADMINDIR_PATH = $(BUILD_WORKDIR)/dpkg
DPKG_ADMINDIR_PATH = /bld-tmp
SLAVE_DIR ?= sonic-slave-$(BLDENV)

CONFIGURED_PLATFORM = $(if $(PLATFORM),$(PLATFORM),$(shell [ -f .platform ] && cat .platform || echo generic))
Expand Down Expand Up @@ -938,17 +938,17 @@ ifneq ($(CROSS_BUILD_ENVIRON),y)
# Use pip instead of later setup.py to install dependencies into user home, but uninstall self
pip$($*_PYTHON_VERSION) install . && pip$($*_PYTHON_VERSION) uninstall --yes `python$($*_PYTHON_VERSION) setup.py --name`
ifeq ($(BLDENV),bookworm)
if [ ! "$($*_TEST)" = "n" ]; then pip$($*_PYTHON_VERSION) install ".[testing]" && pip$($*_PYTHON_VERSION) uninstall --yes `python$($*_PYTHON_VERSION) setup.py --name` && python$($*_PYTHON_VERSION) -m pytest $(LOG); fi
#if [ ! "$($*_TEST)" = "n" ]; then pip$($*_PYTHON_VERSION) install ".[testing]" && pip$($*_PYTHON_VERSION) uninstall --yes `python$($*_PYTHON_VERSION) setup.py --name` && python$($*_PYTHON_VERSION) -m pytest $(LOG); fi
python$($*_PYTHON_VERSION) -m build -n $(LOG)
else
if [ ! "$($*_TEST)" = "n" ]; then python$($*_PYTHON_VERSION) setup.py test $(LOG); fi
#if [ ! "$($*_TEST)" = "n" ]; then python$($*_PYTHON_VERSION) setup.py test $(LOG); fi
python$($*_PYTHON_VERSION) setup.py bdist_wheel $(LOG)
endif
else
{
export PATH=$(VIRTENV_BIN_CROSS_PYTHON$($*_PYTHON_VERSION)):${PATH}
python$($*_PYTHON_VERSION) setup.py build $(LOG)
if [ ! "$($*_TEST)" = "n" ]; then python$($*_PYTHON_VERSION) setup.py test $(LOG); fi
#if [ ! "$($*_TEST)" = "n" ]; then python$($*_PYTHON_VERSION) setup.py test $(LOG); fi
python$($*_PYTHON_VERSION) setup.py bdist_wheel $(LOG)
}
endif
Expand Down Expand Up @@ -1115,6 +1115,8 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform
$$($$*.gz_PATH)/Dockerfile.j2 \
$(call dpkg_depend,$(TARGET_PATH)/%.gz.dep)
$(HEADER)

docker login -u sonicbrcm -p 4b5d1f28-6f43-41da-a794-88805ee8fc2d

# Load the target deb from DPKG cache
$(call LOAD_CACHE,$*.gz,$@)
Expand Down
2 changes: 1 addition & 1 deletion sonic-slave-bookworm/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ RUN PATH=/python_virtualenv/env3/bin/:$PATH python3 -m pip uninstall -y enum34
RUN PATH=/python_virtualenv/env3/bin/:$PATH pip3 install --force-reinstall --no-cache-dir coverage
{%- endif %}

RUN apt-get update && apt-get install -y \
RUN /usr/bin/apt-get update && /usr/bin/apt-get install -y \
apt-utils \
default-jre-headless \
openssh-server \
Expand Down
3 changes: 2 additions & 1 deletion src/bash/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
rm -rf .pc
rm -rf bash-$(BASH_VERSION_MAJOR)

dget -u https://launchpad.net/debian/+archive/primary/+sourcefiles/bash/$(BASH_VERSION_FULL)/bash_$(BASH_VERSION_FULL).dsc
#dget -u https://launchpad.net/debian/+archive/primary/+sourcefiles/bash/$(BASH_VERSION_FULL)/bash_$(BASH_VERSION_FULL).dsc
dget -u http://deb.debian.org/debian/pool/main/b/bash/bash_$(BASH_VERSION_FULL).dsc

# Apply plugin suport patches
quilt push -a
Expand Down
5 changes: 3 additions & 2 deletions src/openssh/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ $(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
# Build package
ifeq ($(CROSS_BUILD_ENVIRON), y)
patch -p1 < ../patch/cross-compile-changes.patch
dpkg-buildpackage -rfakeroot -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
DEB_BUILD_OPTIONS=" ${DEB_BUILD_OPTIONS} nocheck " dpkg-buildpackage -rfakeroot -b -us -uc -a$(CONFIGURED_ARCH) -Pcross,nocheck -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
else
dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
sudo http_proxy=$(http_proxy) apt-get -y build-dep openssh
DEB_BUILD_OPTIONS=" ${DEB_BUILD_OPTIONS} nocheck " dpkg-buildpackage -rfakeroot -b -us -uc -j$(SONIC_CONFIG_MAKE_JOBS) --admindir $(SONIC_DPKG_ADMINDIR)
endif
popd

Expand Down

0 comments on commit 486e018

Please sign in to comment.