From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Seiderer Date: Wed, 31 Mar 2021 23:52:21 +0200 Subject: [Buildroot] [PATCH v2] package/haveged: bump version to 1.9.14 In-Reply-To: <20210331200710.GH24043@scaer> References: <20210331185001.24790-1-ps.report@gmx.net> <20210331200710.GH24043@scaer> Message-ID: <20210331235221.4c1d1c4f@gmx.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Hello Yann, On Wed, 31 Mar 2021 22:07:10 +0200, "Yann E. MORIN" wrote: > Peter, All, > > On 2021-03-31 20:50 +0200, Peter Seiderer spake thusly: > > - add patch to fix uclibc compile (disable dependency on sys/auxv.h > > introduced with upstream commit [1]) > [--SNIP--] > > diff --git a/package/haveged/0001-Check-for-sys-auxv.h-before-using-it.patch b/package/haveged/0001-Check-for-sys-auxv.h-before-using-it.patch > > new file mode 100644 > > index 0000000000..042135f127 > > --- /dev/null > > +++ b/package/haveged/0001-Check-for-sys-auxv.h-before-using-it.patch > > @@ -0,0 +1,60 @@ > > +From 676abde95bab10e1d26e91682772514010143343 Mon Sep 17 00:00:00 2001 > > +From: Peter Seiderer > > +Date: Sun, 21 Mar 2021 17:00:08 +0100 > > +Subject: [PATCH] Check for sys/auxv.h before using it. > > + > > +- fixes uclibc-ng compile (does not provide sys/auxv.h header file) > > + > > +Fixes: > > + > > + haveged.c:22:10: fatal error: sys/auxv.h: No such file or directory > > + 22 | #include > > + | ^~~~~~~~~~~~ > > + > > +[Upstream: https://github.com/jirka-h/haveged/pull/59] > > Upstream has merged your patch, hwever I think it is flawed, see > below... > > > +Signed-off-by: Peter Seiderer > [--SNIP--] > > +diff --git a/src/haveged.c b/src/haveged.c > > +index b9cb77b..dad3072 100644 > > +--- a/src/haveged.c > > ++++ b/src/haveged.c > > +@@ -135,8 +137,10 @@ int main(int argc, char **argv) > > + { > > + volatile char *path = strdup(argv[0]); > > + volatile char *arg0 = argv[0]; > > ++#if defined(HAVE_SYS_AUXV_H) > > + if (path[0] != '/') > > + path = (char*)getauxval(AT_EXECFN); > > ++#endif This is the fallback in case haveged is started without an absolute path, note the buildroot start scripts use an absolute path... > > Are you sure this is correct? Later on in that file, 'path' is > assigned as thus: > > 200 path[0] = '/'; With the full context: 197 first_byte = arg0[0]; 198 if (access("/etc/initrd-release", F_OK) >= 0) { 199 arg0[0] = '@'; 200 path[0] = '/'; 201 } This is only used in case /etc/initrd-release exists... > > And then, 'path' is used to start the daemon: > > 527 else run_daemon(handle, path, argv); > > So, if the original argv[0] does not start with a '/' (e.g. because it > is called from the PATH), then 'path' will contain a mangled program > name: > > argv[0] = "haveged" > path = strdup(argv[0]) = "haveged" > > and thus with line 200: > path = "/aveged" > > Did I miss something? If not started with absolute path and /etc/initrd-release exists (both not valid for buildroot or easy to avoid)... And as good/usable as before upstream commit [1]..., only possible improvement would be to error out (with an early and meaningful error message) in case not started with absolute path and in case getauxval() is not available (instead of error out later with with some unusual path/executable name in the error message) and remove the redundant forcibly set of path[0]? Regards, Peter [1] https://github.com/jirka-h/haveged/commit/26d35af198da01220ba4f7a1b987f17012476c00 > > Regards, > Yann E. MORIN. > > > + static const char* cmds[] = { > > + "b", "buffer", "1", SETTINGR("Buffer size [KW], default: ",COLLECT_BUFSIZE), > > + "d", "data", "1", SETTINGR("Data cache size [KB], with fallback to: ", GENERIC_DCACHE ), > > +-- > > +2.30.2 > > + > > diff --git a/package/haveged/haveged.hash b/package/haveged/haveged.hash > > index df8c48e214..f55e004923 100644 > > --- a/package/haveged/haveged.hash > > +++ b/package/haveged/haveged.hash > > @@ -1,3 +1,3 @@ > > # Locally calculated > > -sha256 d17bd22fa1745daca5ac72e014ed3b0fe5720da4c115953124b1bf2a0aa2b04b haveged-1.9.13.tar.gz > > +sha256 938cb494bcad7e4f24e61eb50fab4aa0acbc3240c80f3ad5c6cf7e6e922618c3 haveged-1.9.14.tar.gz > > sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 COPYING > > diff --git a/package/haveged/haveged.mk b/package/haveged/haveged.mk > > index 3980f80132..5d76bdc3c9 100644 > > --- a/package/haveged/haveged.mk > > +++ b/package/haveged/haveged.mk > > @@ -4,14 +4,32 @@ > > # > > ################################################################################ > > > > -HAVEGED_VERSION = 1.9.13 > > +HAVEGED_VERSION = 1.9.14 > > HAVEGED_SITE = $(call github,jirka-h,haveged,v$(HAVEGED_VERSION)) > > HAVEGED_LICENSE = GPL-3.0+ > > HAVEGED_LICENSE_FILES = COPYING > > HAVEGED_SELINUX_MODULES = entropyd > > +# patch touching configure.ac > > +HAVEGED_AUTORECONF = YES > > + > > +# '--disable-init' as buildroot ships its own sysv/systemd init files > > +HAVEGED_CONF_OPTS = \ > > + --enable-daemon \ > > + --disable-diagnostic \ > > + --disable-init \ > > + --disable-nistest \ > > + --disable-enttest \ > > + --disable-olt \ > > + --enable-tune > > > > ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) > > -HAVEGED_CONF_OPTS += --enable-clock_gettime=yes > > +HAVEGED_CONF_OPTS += --enable-clock_gettime > > +endif > > + > > +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) > > +HAVEGED_CONF_OPTS += --enable-threads > > +else > > +HAVEGED_CONF_OPTS += --disable-threads > > endif > > > > define HAVEGED_INSTALL_INIT_SYSV > > -- > > 2.30.2 > > > > _______________________________________________ > > buildroot mailing list > > buildroot at busybox.net > > http://lists.busybox.net/mailman/listinfo/buildroot >