diff --git a/build_debian.sh b/build_debian.sh index 297fc1da19d3..ab8bb81824a0 100755 --- a/build_debian.sh +++ b/build_debian.sh @@ -199,7 +199,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 c15cd4f9e805..84dbaca39854 100644 --- a/files/build_templates/sonic_debian_extension.j2 +++ b/files/build_templates/sonic_debian_extension.j2 @@ -102,6 +102,10 @@ sudo dpkg --root=$FILESYSTEM_ROOT -i target/debs/bash_*.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 000000000000..20d35da126a2 --- /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 6490dcb5dbda..803b87aaffdb 100644 --- a/slave.mk +++ b/slave.mk @@ -430,6 +430,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \ $(SONIC_UTILS) \ $(BASH) \ $(LIBWRAP) \ + $(NTP) \ $(LIBPAM_TACPLUS) \ $(LIBNSS_TACPLUS)) \ $$(addprefix $(TARGET_PATH)/,$$($$*_DOCKERS)) \ diff --git a/sonic-slave/Dockerfile b/sonic-slave/Dockerfile index dd526a898e8d..803fabcfb105 100644 --- a/sonic-slave/Dockerfile +++ b/sonic-slave/Dockerfile @@ -215,7 +215,12 @@ RUN apt-get update && apt-get install -y \ texlive-latex-extra \ texlive-latex-recommended \ # For bash - texi2html + texi2html \ +# For ntp + autogen \ + libopts25-dev \ + pps-tools \ + dh-apparmor # For linux build RUN apt-get -y build-dep linux diff --git a/src/ntp/Makefile b/src/ntp/Makefile new file mode 100644 index 000000000000..ad073289993c --- /dev/null +++ b/src/ntp/Makefile @@ -0,0 +1,35 @@ +SHELL = /bin/bash +.ONESHELL: +.SHELLFLAGS += -e + +MAIN_TARGET = ntp_$(NTP_VERSION_FULL)_amd64.deb + +DSC_FILE = ntp_$(NTP_VERSION_FULL).dsc +ORIG_FILE = ntp_$(NTP_VERSION).orig.tar.gz +DEBIAN_FILE = ntp_$(NTP_VERSION_FULL).debian.tar.xz + +DSC_FILE_URL = "https://sonicstorage.blob.core.windows.net/packages/debian/$(DSC_FILE)?sv=2015-04-05&sr=b&sig=HxuXOJsIfkj3lF2TlCShil7lFFf90Zh8oBNTfaka%2FNc%3D&se=2155-12-30T06%3A25%3A21Z&sp=r" +ORIG_FILE_URL = "https://sonicstorage.blob.core.windows.net/packages/debian/$(ORIG_FILE)?sv=2015-04-05&sr=b&sig=bZcv%2B25Ke%2FBcWWd8WdBuK9sMDkcF45Yd2hAmmHBHfTk%3D&se=2155-12-30T06%3A26%3A27Z&sp=r" +DEBIAN_FILE_URL = "https://sonicstorage.blob.core.windows.net/packages/debian/$(DEBIAN_FILE)?sv=2015-04-05&sr=b&sig=WGy6DcbTXo9FDRq%2F0gaiwV7oAYY86dHSUlvGaMrINBM%3D&se=2155-12-30T06%3A21%3A57Z&sp=r" + +$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% : + rm -rf ntp-$(NTP_VERSION) + wget -O "$(DSC_FILE)" $(DSC_FILE_URL) + wget -O "$(ORIG_FILE)" $(ORIG_FILE_URL) + wget -O "$(DEBIAN_FILE)" $(DEBIAN_FILE_URL) + + dpkg-source -x $(DSC_FILE) + + 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 000000000000..f44701e6764f --- /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 000000000000..c5fa8dfb7ba9 --- /dev/null +++ b/src/ntp/patch/series @@ -0,0 +1 @@ +0001-donot-disable-reader-kernel-enobufs.patch