From cf08eb996477cc9bcf43af0d0848b090a65d42df Mon Sep 17 00:00:00 2001 From: Praveen Chaudhary Date: Sat, 26 Jan 2019 20:20:13 -0800 Subject: [PATCH 1/4] [ntp]: Build 4.2.6 locally. Need to build NTP 4.2.6 locally due to a Bug in NTP 4.2.6. Changes: 1.) Remove 'apt-get ntp' step from build_debian.sh. 2.) Add NTP package as part of base image in slave.mk. 3.) NTP Makefile for Sonic Build System rules/ntp.mk. 4.) NTP Source Makefile src/ntp/Makefile. 5.) Patch to fix the issure src/ntp/patch. Signed-off-by: Praveen Chaudhary --- build_debian.sh | 1 - .../build_templates/sonic_debian_extension.j2 | 4 +++ rules/ntp.mk | 13 ++++++++ slave.mk | 1 + sonic-slave/Dockerfile | 6 ++++ src/ntp/Makefile | 28 +++++++++++++++++ ...-donot-disable-reader-kernel-enobufs.patch | 31 +++++++++++++++++++ src/ntp/patch/series | 1 + 8 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 rules/ntp.mk create mode 100644 src/ntp/Makefile create mode 100644 src/ntp/patch/0001-donot-disable-reader-kernel-enobufs.patch create mode 100644 src/ntp/patch/series diff --git a/build_debian.sh b/build_debian.sh index d7ff053581e..7e74175d451 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -210,7 +210,6 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in vim \ tcpdump \ dbus \ - ntp \ ntpstat \ openssh-server \ python \ diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index cf3a9cfb087..a400e93d5a7 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -120,6 +120,10 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/python-sonic-utilities_*.deb || # in bash.bashrc, so we copy a version of the file with it enabled here. sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/ +# Install NTP version 4.2.6 this way until required fix is available for Jessie. +sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/ntp_4.2.6*.deb || \ + sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f + # Install SONiC Device Data (and its dependencies via 'apt-get -y install -f') sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/sonic-device-data_*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f diff --git a/rules/ntp.mk b/rules/ntp.mk new file mode 100644 index 00000000000..20d35da126a --- /dev/null +++ b/rules/ntp.mk @@ -0,0 +1,13 @@ +# ntp_4.2.6.p5+dfsg-7+deb8u2.deb + +NTP_VERSION_MAJOR = 4.2.6 +NTP_VERSION_SUFFIX = .p5+dfsg +NTP_VERSION_SUFFIX_NUM = 7+deb8u2 +NTP_VERSION_FULL = $(NTP_VERSION_MAJOR)$(NTP_VERSION_SUFFIX)-$(NTP_VERSION_SUFFIX_NUM) +NTP_VERSION = $(NTP_VERSION_MAJOR)$(NTP_VERSION_SUFFIX) + +export NTP_VERSION NTP_VERSION_FULL + +NTP = ntp_$(NTP_VERSION_FULL)_amd64.deb +$(NTP)_SRC_PATH = $(SRC_PATH)/ntp +SONIC_MAKE_DEBS += $(NTP) diff --git a/slave.mk b/slave.mk index b99c3926532..817d45d3dd6 100644 --- a/slave.mk +++ b/slave.mk @@ -515,6 +515,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $(PYTHON_CLICK) \ $(SONIC_UTILS) \ $(BASH) \ + $(NTP) \ $(LIBPAM_TACPLUS) \ $(LIBNSS_TACPLUS)) \ $$(addprefix $(TARGET_PATH)/,$$($$*_DOCKERS)) \ diff --git a/sonic-slave/Dockerfile b/sonic-slave/Dockerfile index 7af451c22da..b27ebfeb051 100644 --- a/sonic-slave/Dockerfile +++ b/sonic-slave/Dockerfile @@ -237,6 +237,12 @@ RUN apt-get update && apt-get install -y \ qemu-kvm \ libvirt-bin +# For ntp + autogen \ + libopts25-dev \ + pps-tools \ + dh-apparmor + # For jenkins slave RUN apt-get -y install ca-certificates-java=20161107~bpo8+1 openjdk-8-jdk diff --git a/src/ntp/Makefile b/src/ntp/Makefile new file mode 100644 index 00000000000..0475320d8c1 --- /dev/null +++ b/src/ntp/Makefile @@ -0,0 +1,28 @@ +SHELL = /bin/bash +.ONESHELL: +.SHELLFLAGS += -e + +MAIN_TARGET = ntp_$(NTP_VERSION_FULL)_amd64.deb + +NTP_URL = http://cdn-fastly.deb.debian.org/debian/pool/main/n/ntp + +DSC_FILE = ntp_$(NTP_VERSION_FULL).dsc +DSC_FILE_URL = $(NTP_URL)/$(DSC_FILE) + +$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : + rm -rf ntp-$(NTP_VERSION) + dget -u $(DSC_FILE_URL) + + pushd ntp-$(NTP_VERSION) + + git init + git add -f * + git commit -m "original source files" + + stg init + stg import -s ../patch/series + + dpkg-buildpackage -us -uc -b -j$(SONIC_CONFIG_MAKE_JOBS) + popd + + mv $* $(DEST)/ diff --git a/src/ntp/patch/0001-donot-disable-reader-kernel-enobufs.patch b/src/ntp/patch/0001-donot-disable-reader-kernel-enobufs.patch new file mode 100644 index 00000000000..f44701e6764 --- /dev/null +++ b/src/ntp/patch/0001-donot-disable-reader-kernel-enobufs.patch @@ -0,0 +1,31 @@ +commit 1534de6d3ef2d188d1e2697f7180786ee5a8a9dc +Author: Praveen Chaudhary +Date: Sat Feb 2 20:12:53 2019 -0800 + + [ntp_io.c]: Do not disable reader for error ENOBUFS. + + Signed-off-by: Praveen Chaudhary + +diff --git a/ntpd/ntp_io.c b/ntpd/ntp_io.c +index f2a2404..fe5c94d 100644 +--- a/ntpd/ntp_io.c ++++ b/ntpd/ntp_io.c +@@ -4430,10 +4430,14 @@ process_routing_msgs(struct asyncio_reader *reader) + cnt = read(reader->fd, buffer, sizeof(buffer)); + + if (cnt < 0) { +- msyslog(LOG_ERR, +- "i/o error on routing socket %m - disabling"); +- remove_asyncio_reader(reader); +- delete_asyncio_reader(reader); ++ if (errno == ENOBUFS) { ++ msyslog(LOG_ERR, "routing socket reports: %m"); ++ } else { ++ msyslog(LOG_ERR, ++ "i/o error on routing socket %m - disabling"); ++ remove_asyncio_reader(reader); ++ delete_asyncio_reader(reader); ++ } + return; + } + diff --git a/src/ntp/patch/series b/src/ntp/patch/series new file mode 100644 index 00000000000..c5fa8dfb7ba --- /dev/null +++ b/src/ntp/patch/series @@ -0,0 +1 @@ +0001-donot-disable-reader-kernel-enobufs.patch From 3de08818471ca53c4db4290a98525de252d5d0fb Mon Sep 17 00:00:00 2001 From: Praveen Chaudhary Date: Tue, 5 Feb 2019 11:11:25 -0800 Subject: [PATCH 2/4] [sonic-slave-stretch/Dockerfile]: Added stretch related changes. Signed-off-by: Praveen Chaudhary --- files/build_templates/sonic_debian_extension.j2 | 2 +- rules/ntp.mk | 1 + sonic-slave-stretch/Dockerfile | 5 +++++ sonic-slave/Dockerfile | 6 ------ 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/files/build_templates/sonic_debian_extension.j2 b/files/build_templates/sonic_debian_extension.j2 index 3a8c6b77a4d..46c243148b9 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -121,7 +121,7 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i $python_debs_path/python-sonic-utilities_*. sudo cp -f $IMAGE_CONFIGS/bash/bash.bashrc $FILESYSTEM_ROOT/etc/ # Install NTP version 4.2.6 this way until required fix is available for Jessie. -sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/ntp_4.2.6*.deb || \ +sudo dpkg --root=$FILESYSTEM_ROOT -i $debs_path/ntp_4.2.6*.deb || \ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install -f # Install SONiC Device Data (and its dependencies via 'apt-get -y install -f') diff --git a/rules/ntp.mk b/rules/ntp.mk index 20d35da126a..668e663ce94 100644 --- a/rules/ntp.mk +++ b/rules/ntp.mk @@ -11,3 +11,4 @@ export NTP_VERSION NTP_VERSION_FULL NTP = ntp_$(NTP_VERSION_FULL)_amd64.deb $(NTP)_SRC_PATH = $(SRC_PATH)/ntp SONIC_MAKE_DEBS += $(NTP) +SONIC_STRETCH_DEBS += $(NTP) diff --git a/sonic-slave-stretch/Dockerfile b/sonic-slave-stretch/Dockerfile index 717ee25419d..de088c77f19 100644 --- a/sonic-slave-stretch/Dockerfile +++ b/sonic-slave-stretch/Dockerfile @@ -213,6 +213,11 @@ RUN apt-get update && apt-get install -y \ python3-colorama \ # For initramfs bash-completion +# For ntp + autogen \ + libopts25-dev \ + pps-tools \ + dh-apparmor # For linux build RUN apt-get -y build-dep linux diff --git a/sonic-slave/Dockerfile b/sonic-slave/Dockerfile index b27ebfeb051..7af451c22da 100644 --- a/sonic-slave/Dockerfile +++ b/sonic-slave/Dockerfile @@ -237,12 +237,6 @@ RUN apt-get update && apt-get install -y \ qemu-kvm \ libvirt-bin -# For ntp - autogen \ - libopts25-dev \ - pps-tools \ - dh-apparmor - # For jenkins slave RUN apt-get -y install ca-certificates-java=20161107~bpo8+1 openjdk-8-jdk From ad24350c9eb2ce51f9b18ef75d08daa09f955e0f Mon Sep 17 00:00:00 2001 From: Praveen Chaudhary Date: Tue, 5 Feb 2019 11:17:45 -0800 Subject: [PATCH 3/4] [slave.mk]: Add NTP build with base installers. --- slave.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/slave.mk b/slave.mk index d6c4b615cdf..d84112e731e 100644 --- a/slave.mk +++ b/slave.mk @@ -533,8 +533,6 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $(LINUX_KERNEL) \ $(SONIC_DEVICE_DATA) \ $(PYTHON_CLICK) \ - $(SONIC_UTILS) \ - $(BASH) \ $(NTP) \ $(LIBPAM_TACPLUS) \ $(LIBNSS_TACPLUS)) \ From 4652f93b09cc75dec2e214a107cdcffe6b62eab7 Mon Sep 17 00:00:00 2001 From: Praveen Chaudhary Date: Tue, 5 Feb 2019 11:24:44 -0800 Subject: [PATCH 4/4] [sonic-slave-stretch/Dockerfile]: Resolve build issues from build 369. --- sonic-slave-stretch/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonic-slave-stretch/Dockerfile b/sonic-slave-stretch/Dockerfile index de088c77f19..16f2c9914ff 100644 --- a/sonic-slave-stretch/Dockerfile +++ b/sonic-slave-stretch/Dockerfile @@ -212,7 +212,7 @@ RUN apt-get update && apt-get install -y \ python3-pytest \ python3-colorama \ # For initramfs - bash-completion + bash-completion \ # For ntp autogen \ libopts25-dev \