[Buildroot] [PATCH 18/21] ntp: convert to autotargets and bump to 4.2.6p2

Martin Banky martin.banky at gmail.com
Tue Sep 14 03:40:45 UTC 2010


Also added additional options for ntp and fixed a build issue when IPv6 support
is not available.

Signed-off-by: Martin Banky <Martin.Banky at gmail.com>
---
 CHANGES                                 |    2 +-
 package/ntp/Config.in                   |   44 +++++++
 package/ntp/ntp-4.2.4_p5-adjtimex.patch |   33 ------
 package/ntp/ntp-4.2.4_p5-nano.patch     |   36 ------
 package/ntp/ntp-4.2.6_p2-adjtimex.patch |   33 ++++++
 package/ntp/ntp-optional-ipv6.patch     |   24 ----
 package/ntp/ntp.mk                      |  192 +++++++++++++++++++-----------
 7 files changed, 199 insertions(+), 165 deletions(-)
 delete mode 100644 package/ntp/ntp-4.2.4_p5-adjtimex.patch
 delete mode 100644 package/ntp/ntp-4.2.4_p5-nano.patch
 create mode 100644 package/ntp/ntp-4.2.6_p2-adjtimex.patch
 delete mode 100644 package/ntp/ntp-optional-ipv6.patch

diff --git a/CHANGES b/CHANGES
index 0b2a6a5..e4e185c 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,7 +10,7 @@
 	Updated/fixed packages: alsa-lib, alsa-utils, autoconf, automake,
 	berkeleydb, bison, busybox, ccache, dropbear, fakeroot, genext2fs,
 	gmp, iptables, kismet, libdeamon, libelf, libogg, libvorbis, make,
-	module-init-tools, mpfr, nano, openvpn, qt, usbutils
+	module-init-tools, mpfr, nano, ntp, openvpn, qt, usbutils
 
 	Removed packages: dillo, libglib12, libgtk12, microwin, pcmcia
 
diff --git a/package/ntp/Config.in b/package/ntp/Config.in
index 6213141..1666503 100644
--- a/package/ntp/Config.in
+++ b/package/ntp/Config.in
@@ -11,3 +11,47 @@ config BR2_PACKAGE_NTP_SNTP
 	depends on BR2_PACKAGE_NTP
 	help
 	  Simple network time protocol program
+	  
+config BR2_PACKAGE_NTP_NTP-KEYGEN
+	bool "ntp-keygen"
+	depends on BR2_PACKAGE_NTP
+	help
+	  Create a NTP host key
+	  
+config BR2_PACKAGE_NTP_NTP-WAIT
+	bool "ntp-wait"
+	select BR2_PACKAGE_MICROPERL
+	depends on BR2_PACKAGE_NTP
+	help
+	  ntp-wait waits until the locally running ntpd is in state 4
+	  (synchronized). This could be useful at boot time, to delay the
+	  boot sequence until after "ntpd -g" has set the time.
+	  
+config BR2_PACKAGE_NTP_NTPDC
+	bool "ntpdc"
+	depends on BR2_PACKAGE_NTP
+	help
+	  The ntpdc utility program is used to query an NTP daemon about
+	  its current state and to request changes in that state.
+	  
+config BR2_PACKAGE_NTP_NTPQ
+	bool "ntpq"
+	depends on BR2_PACKAGE_NTP
+	help
+	  The ntpq utility program is used to query NTP servers requesting
+	  information about current state and/or changes in that state.
+	  
+config BR2_PACKAGE_NTP_NTPTRACE
+	bool "ntptrace"
+	select BR2_PACKAGE_MICROPERL
+	depends on BR2_PACKAGE_NTP
+	help
+	  ntptrace is a perl script that uses the ntpq utility program to
+	  follow the chain of NTP servers from a given host back to the
+	  primary time source
+	  
+config BR2_PACKAGE_NTP_TICKADJ
+	bool "tickadj"
+	depends on BR2_PACKAGE_NTP
+	help
+	  set time-related kernel variables
diff --git a/package/ntp/ntp-4.2.4_p5-adjtimex.patch b/package/ntp/ntp-4.2.4_p5-adjtimex.patch
deleted file mode 100644
index 40625fa..0000000
--- a/package/ntp/ntp-4.2.4_p5-adjtimex.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-https://support.ntp.org/bugs/show_bug.cgi?id=769
-http://bugs.gentoo.org/254030
-
---- ntp/util/tickadj.c
-+++ ntp/util/tickadj.c
-@@ -21,7 +21,8 @@
- # include <unistd.h>
- #endif /* HAVE_UNISTD_H */
- 
--#ifdef HAVE___ADJTIMEX		/* Linux */
-+/* proper handling here has been moved to upstream ntp bugzilla */
-+#ifdef linux
- 
- #include <sys/timex.h>
- struct timex txc;
-@@ -91,7 +92,7 @@
- 	}
- 
- 	if (!errflg) {
--		if (__adjtimex(&txc) < 0)
-+		if (adjtimex(&txc) < 0)
- 			perror("adjtimex");
- 		else if (!quiet)
- 			printf("tick     = %ld\ntick_adj = %d\n",
-@@ -146,7 +147,7 @@
- #endif
- 	}
-     
--	if (__adjtimex(&txc) < 0)
-+	if (adjtimex(&txc) < 0)
- 	{
- 		perror("adjtimex");
- 	}
diff --git a/package/ntp/ntp-4.2.4_p5-nano.patch b/package/ntp/ntp-4.2.4_p5-nano.patch
deleted file mode 100644
index f4097ee..0000000
--- a/package/ntp/ntp-4.2.4_p5-nano.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fixes the MOD_NANO build failure
-
-ntp_loopfilter.c: In function 'local_clock':
-ntp_loopfilter.c:571: error: 'MOD_NANO' undeclared (first use in this function)
-ntp_loopfilter.c:571: error: (Each undeclared identifier is reported only once
-ntp_loopfilter.c:571: error: for each function it appears in.)
-ntp_loopfilter.c: In function 'loop_config':
-ntp_loopfilter.c:896: error: 'MOD_NANO' undeclared (first use in this function)
-
-Taken from
-http://cvs.fedoraproject.org/viewvc/devel/ntp/ntp-4.2.4p7-nano.patch?revision=1.1&content-type=text/plain&view=co
-
-See the discussion at
-https://bugs.launchpad.net/ubuntu/+source/ntp/+bug/412242 for more
-details and links. The below fix is not a correct fix, but only a
-workaround. The real fix required changes to kernel/libc headers.
-
-Index: ntp-4.2.4p5/include/ntp_syscall.h
-===================================================================
---- ntp-4.2.4p5.orig/include/ntp_syscall.h	2010-05-14 17:34:48.000000000 +0200
-+++ ntp-4.2.4p5/include/ntp_syscall.h	2010-05-14 17:35:13.000000000 +0200
-@@ -14,6 +14,14 @@
- # include <sys/timex.h>
- #endif
- 
-+#if defined(ADJ_NANO) && !defined(MOD_NANO)
-+#define MOD_NANO ADJ_NANO
-+#endif
-+
-+#if defined(ADJ_TAI) && !defined(MOD_TAI)
-+#define MOD_TAI ADJ_TAI
-+#endif
-+
- #ifndef NTP_SYSCALLS_LIBC
- #ifdef NTP_SYSCALLS_STD
- # define ntp_adjtime(t)		syscall(SYS_ntp_adjtime, (t))
diff --git a/package/ntp/ntp-4.2.6_p2-adjtimex.patch b/package/ntp/ntp-4.2.6_p2-adjtimex.patch
new file mode 100644
index 0000000..40625fa
--- /dev/null
+++ b/package/ntp/ntp-4.2.6_p2-adjtimex.patch
@@ -0,0 +1,33 @@
+https://support.ntp.org/bugs/show_bug.cgi?id=769
+http://bugs.gentoo.org/254030
+
+--- ntp/util/tickadj.c
++++ ntp/util/tickadj.c
+@@ -21,7 +21,8 @@
+ # include <unistd.h>
+ #endif /* HAVE_UNISTD_H */
+ 
+-#ifdef HAVE___ADJTIMEX		/* Linux */
++/* proper handling here has been moved to upstream ntp bugzilla */
++#ifdef linux
+ 
+ #include <sys/timex.h>
+ struct timex txc;
+@@ -91,7 +92,7 @@
+ 	}
+ 
+ 	if (!errflg) {
+-		if (__adjtimex(&txc) < 0)
++		if (adjtimex(&txc) < 0)
+ 			perror("adjtimex");
+ 		else if (!quiet)
+ 			printf("tick     = %ld\ntick_adj = %d\n",
+@@ -146,7 +147,7 @@
+ #endif
+ 	}
+     
+-	if (__adjtimex(&txc) < 0)
++	if (adjtimex(&txc) < 0)
+ 	{
+ 		perror("adjtimex");
+ 	}
diff --git a/package/ntp/ntp-optional-ipv6.patch b/package/ntp/ntp-optional-ipv6.patch
deleted file mode 100644
index 20d6edf..0000000
--- a/package/ntp/ntp-optional-ipv6.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-[PATCH] ntpd: fix build without ipv6 support
-
-ntp_io.c was checkin the non-existing DISABLE_IPV6 define rather
-than WANT_IPV6 as defined in config.h, breaking the build if
-the toolchain doesn't have ipv6 support.
-
-Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
----
- ntpd/ntp_io.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: ntp-4.2.4p5/ntpd/ntp_io.c
-===================================================================
---- ntp-4.2.4p5.orig/ntpd/ntp_io.c
-+++ ntp-4.2.4p5/ntpd/ntp_io.c
-@@ -55,7 +55,7 @@
-  * Set up some macros to look for IPv6 and IPv6 multicast
-  */
- 
--#if defined(ISC_PLATFORM_HAVEIPV6) && !defined(DISABLE_IPV6)
-+#if defined(ISC_PLATFORM_HAVEIPV6) && defined(WANT_IPV6)
- 
- #define INCLUDE_IPV6_SUPPORT
- 
diff --git a/package/ntp/ntp.mk b/package/ntp/ntp.mk
index 78a4d2c..811c082 100644
--- a/package/ntp/ntp.mk
+++ b/package/ntp/ntp.mk
@@ -3,91 +3,141 @@
 # ntp
 #
 #############################################################
-NTP_VERSION:=4.2.4p5
-NTP_SOURCE:=ntp-$(NTP_VERSION).tar.gz
-NTP_SITE:=http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2
-NTP_DIR:=$(BUILD_DIR)/ntp-$(NTP_VERSION)
-NTP_CAT:=$(ZCAT)
-NTP_BINARY:=ntpdate/ntpdate
-NTP_TARGET_BINARY:=usr/bin/ntpdate
-
-$(DL_DIR)/$(NTP_SOURCE):
-	$(call DOWNLOAD,$(NTP_SITE),$(NTP_SOURCE))
-
-ntp-source: $(DL_DIR)/$(NTP_SOURCE)
-
-$(NTP_DIR)/.patched: $(DL_DIR)/$(NTP_SOURCE)
-	$(NTP_CAT) $(DL_DIR)/$(NTP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(NTP_DIR) package/ntp/ ntp\*.patch
-	$(SED) "s,^#if.*__GLIBC__.*_BSD_SOURCE.*$$,#if 0," \
-		$(NTP_DIR)/ntpd/refclock_pcf.c
-	$(SED) '/[[:space:](]index[[:space:]]*(/s/[[:space:]]*index[[:space:]]*(/ strchr(/g' $(NTP_DIR)/libisc/*.c $(NTP_DIR)/arlib/sample.c
-	$(SED) '/[[:space:](]rindex[[:space:]]*(/s/[[:space:]]*rindex[[:space:]]*(/ strrchr(/g' $(NTP_DIR)/ntpd/*.c
-	#$(SED) 's/\(^#[[:space:]]*include[[:space:]]*<sys\/var.h>\)/\/\/ \1/' $(NTP_DIR)/util/tickadj.c
-	$(CONFIG_UPDATE) $(NTP_DIR)
-	$(CONFIG_UPDATE) $(NTP_DIR)/sntp
-	touch $@
-
-$(NTP_DIR)/.configured: $(NTP_DIR)/.patched
-	(cd $(NTP_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		ac_cv_lib_md5_MD5Init=no \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-		$(DISABLE_IPV6) \
-		--with-shared \
+NTP_VERSION = 4.2.6p2
+NTP_SOURCE = ntp-$(NTP_VERSION).tar.gz
+NTP_SITE = http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2
+NTP_DIR = $(BUILD_DIR)/ntp-$(NTP_VERSION)
+NTP_CAT = $(ZCAT)
+
+NTP_CONF_ENV = ac_cv_lib_md5_MD5Init=no
+
+ifneq ($(BR2_INET_IPV6),y)
+NTP_CONF_ENV += isc_cv_have_in6addr_any=no
+endif
+
+NTP_CONF_OPT = --with-shared \
 		--program-transform-name=s,,, \
 		--without-crypto \
-		--disable-tickadj \
-	)
-	touch $@
+		--disable-tickadj
 
-$(NTP_DIR)/$(NTP_BINARY): $(NTP_DIR)/.configured
-	$(MAKE) -C $(NTP_DIR)
+define NTP_PATCH_FIXUPS
+	$(SED) "s,^#if.*__GLIBC__.*_BSD_SOURCE.*$$,#if 0," $(NTP_DIR)/ntpd/refclock_pcf.c
+	$(SED) '/[[:space:](]rindex[[:space:]]*(/s/[[:space:]]*rindex[[:space:]]*(/ strrchr(/g' $(NTP_DIR)/ntpd/*.c
+endef
 
-$(TARGET_DIR)/$(NTP_TARGET_BINARY): $(NTP_DIR)/$(NTP_BINARY)
-	install -m 755 $(NTP_DIR)/ntpd/ntpd $(TARGET_DIR)/usr/sbin/ntpd
-	install -m 755 $(NTP_DIR)/$(NTP_BINARY) $(TARGET_DIR)/$(NTP_TARGET_BINARY)
 ifeq ($(BR2_PACKAGE_NTP_SNTP),y)
+define NTP_INSTALL_SNTP
 	install -m 755 $(NTP_DIR)/sntp/sntp $(TARGET_DIR)/usr/bin/sntp
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTP-KEYGEN),y)
+define NTP_INSTALL_NTP-KEYGEN
+	install -m 755 $(NTP_DIR)/util/ntp-keygen $(TARGET_DIR)/usr/bin/ntp-keygen
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTP-WAIT),y)
+define NTP_INSTALL_NTP-WAIT
+	install -m 755 $(NTP_DIR)/scripts/ntp-wait $(TARGET_DIR)/usr/bin/ntp-wait
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTPDC),y)
+define NTP_INSTALL_NTPDC
+	install -m 755 $(NTP_DIR)/ntpdc/ntpdc $(TARGET_DIR)/usr/bin/ntpdc
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTPQ),y)
+define NTP_INSTALL_NTPQ
+	install -m 755 $(NTP_DIR)/ntpq/ntpq $(TARGET_DIR)/usr/bin/ntpq
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTPTRACE),y)
+define NTP_INSTALL_NTPTRACE
+	install -m 755 $(NTP_DIR)/scripts/ntptrace $(TARGET_DIR)/usr/bin/ntptrace
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_TICKADJ),y)
+define NTP_INSTALL_TICKADJ
+	install -m 755 $(NTP_DIR)/util/tickadj $(TARGET_DIR)/usr/bin/tickadj
+endef
 endif
+
+define NTP_INSTALL_TARGET_CMDS
+	install -m 755 $(NTP_DIR)/ntpd/ntpd $(TARGET_DIR)/usr/sbin/ntpd
+	$(NTP_INSTALL_SNTP)
+	$(NTP_INSTALL_NTP-KEYGEN)
+	$(NTP_INSTALL_NTP-WAIT)
+	$(NTP_INSTALL_NTPDC)
+	$(NTP_INSTALL_NTPQ)
+	$(NTP_INSTALL_NTPTRACE)
+	$(NTP_INSTALL_TICKADJ)
 	install -m 755 package/ntp/ntp.sysvinit $(TARGET_DIR)/etc/init.d/S49ntp
 	@if [ ! -f $(TARGET_DIR)/etc/default/ntpd ]; then \
 		install -m 755 -d $(TARGET_DIR)/etc/default ; \
 		install -m 644 package/ntp/ntpd.etc.default $(TARGET_DIR)/etc/default/ntpd ; \
 	fi
+endef
 
-ntp: $(TARGET_DIR)/$(NTP_TARGET_BINARY)
+ifeq ($(BR2_PACKAGE_NTP_SNTP),y)
+define NTP_UNINSTALL_SNTP
+	rm $(TARGET_DIR)/usr/bin/sntp
+endef
+endif
 
-ntp-clean:
-	rm -f $(TARGET_DIR)/usr/sbin/ntpd $(TARGET_DIR)/usr/bin/sntp \
-		$(TARGET_DIR)/etc/init.d/S49ntp \
-		$(TARGET_DIR)/$(NTP_TARGET_BINARY)
-	-$(MAKE) -C $(NTP_DIR) clean
+ifeq ($(BR2_PACKAGE_NTP_NTP-KEYGEN),y)
+define NTP_UNINSTALL_NTP-KEYGEN
+	rm $(TARGET_DIR)/usr/bin/ntp-keygen
+endef
+endif
 
-ntp-dirclean:
-	rm -rf $(NTP_DIR)
+ifeq ($(BR2_PACKAGE_NTP_NTP-WAIT),y)
+define NTP_UNINSTALL_NTP-WAIT
+	rm $(TARGET_DIR)/usr/bin/ntp-wait
+endef
+endif
 
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_NTP),y)
-TARGETS+=ntp
+ifeq ($(BR2_PACKAGE_NTP_NTPDC),y)
+define NTP_UNINSTALL_NTPDC
+	rm $(TARGET_DIR)/usr/bin/ntpdc
+endef
 endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTPQ),y)
+define NTP_UNINSTALL_NTPQ
+	rm $(TARGET_DIR)/usr/bin/ntpq
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_NTPTRACE),y)
+define NTP_UNINSTALL_NTPTRACE
+	rm $(TARGET_DIR)/usr/bin/ntptrace
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_NTP_TICKADJ),y)
+define NTP_UNINSTALL_TICKADJ
+	rm $(TARGET_DIR)/usr/bin/tickadj
+endef
+endif
+
+define NTP_UNINSTALL_TARGET_CMDS
+	rm $(TARGET_DIR)/usr/sbin/ntpd
+	$(NTP_UNINSTALL_SNTP)
+	$(NTP_UNINSTALL_NTP-KEYGEN)
+	$(NTP_UNINSTALL_NTP-WAIT)
+	$(NTP_UNINSTALL_NTPDC)
+	$(NTP_UNINSTALL_NTPQ)
+	$(NTP_UNINSTALL_NTPTRACE)
+	$(NTP_UNINSTALL_TICKADJ)
+	rm $(TARGET_DIR)/etc/init.d/S49ntp
+	rm $(TARGET_DIR)/etc/default/ntpd
+endef
+
+NTP_POST_PATCH_HOOKS += NTP_PATCH_FIXUPS
+
+$(eval $(call AUTOTARGETS,package,ntp))
-- 
1.7.2.3



More information about the buildroot mailing list