Message ID | 20191021213839.46139-1-matthew.weber@rockwellcollins.com |
---|---|
State | Superseded |
Headers | show |
Series | [v4,1/2] package/jitterentropy-library: new package | expand |
Hello Matt, On Mon, 21 Oct 2019 16:38:38 -0500 Matt Weber <matthew.weber@rockwellcollins.com> wrote: > diff --git a/package/jitterentropy-library/0001-Makefile-cleanup-install.patch b/package/jitterentropy-library/0001-Makefile-cleanup-install.patch > new file mode 100644 > index 0000000000..5234b072b1 > --- /dev/null > +++ b/package/jitterentropy-library/0001-Makefile-cleanup-install.patch > @@ -0,0 +1,43 @@ > +From f94975948ff259f86b14d36d3f3ede2e41e41ff4 Mon Sep 17 00:00:00 2001 > +From: Matt Weber <matthew.weber@rockwellcollins.com> > +Date: Mon, 9 Sep 2019 20:42:14 -0500 > +Subject: [PATCH] Makefile: cleanup install > + > +- drop install of man pages Please leave the man page installation in place, so that the patch is acceptable upstream, and submit the patch as a pull request on Github. > +- don't strip library install > +- force symlink creation > +- create include folder before copying headers The only thing that could be controversial here is the removal of the library stripping. If upstream does not want to remove it, then I'd suggest: INSTALL_STRIP = install -s with: $(INSTALL_STRIP) -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ so that we can override INSTALL_STRIP from the Buildroot .mk file. This should make the change acceptable upstream. > +JITTERENTROPY_LIBRARY_VERSION = 2.1.2 > +JITTERENTROPY_LIBRARY_SITE = $(call github,smuellerDD,$(JITTERENTROPY_LIBRARY_NAME),v$(JITTERENTROPY_LIBRARY_VERSION)) > +JITTERENTROPY_LIBRARY_LICENSE = GPL-2.0, BSD-3-Clause > +JITTERENTROPY_LIBRARY_LICENSE_FILES = COPYING COPYING.bsd COPYING.gplv2 > +JITTERENTROPY_LIBRARY_INSTALL_STAGING = YES > + > +define JITTERENTROPY_LIBRARY_BUILD_CMDS > + # CFLAGS is being forced to not optimize for the case where Clang doesn't > + # respect "#pragma GCC optimize" in jitterentropy-base.c > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="-O0" Why do we care about Clang ? It is not supported as a Buildroot compiler for the moment. When it will, perhaps we will have some BR2_TOOLCHAIN_USES_GCC and BR2_TOOLCHAIN_USES_CLANG options, so that packages can do whatever hacks they need depending on the compiler being used. Best regards, Thomas
Thomas, On Tue, Oct 22, 2019 at 2:13 AM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello Matt, > > On Mon, 21 Oct 2019 16:38:38 -0500 > Matt Weber <matthew.weber@rockwellcollins.com> wrote: > > > diff --git a/package/jitterentropy-library/0001-Makefile-cleanup-install.patch b/package/jitterentropy-library/0001-Makefile-cleanup-install.patch > > new file mode 100644 > > index 0000000000..5234b072b1 > > --- /dev/null > > +++ b/package/jitterentropy-library/0001-Makefile-cleanup-install.patch > > @@ -0,0 +1,43 @@ > > +From f94975948ff259f86b14d36d3f3ede2e41e41ff4 Mon Sep 17 00:00:00 2001 > > +From: Matt Weber <matthew.weber@rockwellcollins.com> > > +Date: Mon, 9 Sep 2019 20:42:14 -0500 > > +Subject: [PATCH] Makefile: cleanup install > > + > > +- drop install of man pages > > Please leave the man page installation in place, so that the patch is > acceptable upstream, and submit the patch as a pull request on Github. Sure, I was debating on how to handle this. I'll do some rework and send out a refreshed patch to the project and here. > > > +- don't strip library install > > +- force symlink creation > > +- create include folder before copying headers > > The only thing that could be controversial here is the removal of the > library stripping. If upstream does not want to remove it, then I'd suggest: > > INSTALL_STRIP = install -s > > with: > > $(INSTALL_STRIP) -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ > > so that we can override INSTALL_STRIP from the Buildroot .mk file. > > This should make the change acceptable upstream. Thank you for that example. > > > +JITTERENTROPY_LIBRARY_VERSION = 2.1.2 > > +JITTERENTROPY_LIBRARY_SITE = $(call github,smuellerDD,$(JITTERENTROPY_LIBRARY_NAME),v$(JITTERENTROPY_LIBRARY_VERSION)) > > +JITTERENTROPY_LIBRARY_LICENSE = GPL-2.0, BSD-3-Clause > > +JITTERENTROPY_LIBRARY_LICENSE_FILES = COPYING COPYING.bsd COPYING.gplv2 > > +JITTERENTROPY_LIBRARY_INSTALL_STAGING = YES > > + > > +define JITTERENTROPY_LIBRARY_BUILD_CMDS > > + # CFLAGS is being forced to not optimize for the case where Clang doesn't > > + # respect "#pragma GCC optimize" in jitterentropy-base.c > > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="-O0" > > Why do we care about Clang ? It is not supported as a Buildroot > compiler for the moment. When it will, perhaps we will have some > BR2_TOOLCHAIN_USES_GCC and BR2_TOOLCHAIN_USES_CLANG options, so that > packages can do whatever hacks they need depending on the compiler > being used. > Romain did some testing and found it. I can drop it for this series. Regards, Matt
diff --git a/DEVELOPERS b/DEVELOPERS index 906ccae006..9a64fccb60 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1541,6 +1541,7 @@ F: package/iperf/ F: package/iperf3/ F: package/iputils/ F: package/iw/ +F: package/jitterentropy-library/ F: package/kvm-unit-tests/ F: package/kvmtool/ F: package/libcsv/ diff --git a/package/Config.in b/package/Config.in index c8ff524e83..c7bb726812 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1400,6 +1400,7 @@ menu "Hardware handling" source "package/gnu-efi/Config.in" source "package/hackrf/Config.in" source "package/hidapi/Config.in" + source "package/jitterentropy-library/Config.in" source "package/lcdapi/Config.in" source "package/let-me-create/Config.in" source "package/libaio/Config.in" diff --git a/package/jitterentropy-library/0001-Makefile-cleanup-install.patch b/package/jitterentropy-library/0001-Makefile-cleanup-install.patch new file mode 100644 index 0000000000..5234b072b1 --- /dev/null +++ b/package/jitterentropy-library/0001-Makefile-cleanup-install.patch @@ -0,0 +1,43 @@ +From f94975948ff259f86b14d36d3f3ede2e41e41ff4 Mon Sep 17 00:00:00 2001 +From: Matt Weber <matthew.weber@rockwellcollins.com> +Date: Mon, 9 Sep 2019 20:42:14 -0500 +Subject: [PATCH] Makefile: cleanup install + +- drop install of man pages +- don't strip library install +- force symlink creation +- create include folder before copying headers + +Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> +--- + Makefile | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/Makefile b/Makefile +index 5e31276..575ee2d 100644 +--- a/Makefile ++++ b/Makefile +@@ -47,16 +47,13 @@ scan: $(OBJS) + scan-build --use-analyzer=/usr/bin/clang $(CC) -shared -Wl,-soname,lib$(NAME).so.$(LIBMAJOR) -o lib$(NAME).so.$(LIBVERSION) $(OBJS) $(LDFLAGS) + + install: +- install -d -m 0755 $(DESTDIR)$(PREFIX)/share/man/man3 +- install -m 644 doc/$(NAME).3 $(DESTDIR)$(PREFIX)/share/man/man3/ +- gzip -9 $(DESTDIR)$(PREFIX)/share/man/man3/$(NAME).3 + install -d -m 0755 $(DESTDIR)$(PREFIX)/$(LIBDIR) +- install -m 0755 -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ ++ install -d -m 0755 $(DESTDIR)$(PREFIX)/$(INCDIR) ++ install -m 0755 lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/ + install -m 0644 jitterentropy.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ + install -m 0644 jitterentropy-base-user.h $(DESTDIR)$(PREFIX)/$(INCDIR)/ +- $(RM) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) +- ln -s lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) +- ln -s lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so ++ ln -sf lib$(NAME).so.$(LIBVERSION) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so.$(LIBMAJOR) ++ ln -sf lib$(NAME).so.$(LIBMAJOR) $(DESTDIR)$(PREFIX)/$(LIBDIR)/lib$(NAME).so + + clean: + @- $(RM) $(NAME) +-- +2.17.1 + diff --git a/package/jitterentropy-library/Config.in b/package/jitterentropy-library/Config.in new file mode 100644 index 0000000000..02f8ff6164 --- /dev/null +++ b/package/jitterentropy-library/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_JITTERENTROPY_LIBRARY + bool "libjitterentropy" + help + Hardware RNG based on CPU timing jitter. + + https://github.com/smuellerDD/jitterentropy-library diff --git a/package/jitterentropy-library/jitterentropy-library.hash b/package/jitterentropy-library/jitterentropy-library.hash new file mode 100644 index 0000000000..5846f2147d --- /dev/null +++ b/package/jitterentropy-library/jitterentropy-library.hash @@ -0,0 +1,5 @@ +# Locally computed +sha256 38519115c6b750b7fa15547826123a7821b271535c168823259e609b42847223 jitterentropy-library-2.1.2.tar.gz +sha256 c3352794eff829a3c8097b77e4cbc9f1faf5c3f47a8abed960a0f411cbc6ab9f COPYING +sha256 13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239 COPYING.bsd +sha256 e6d6a009505e345fe949e1310334fcb0747f28dae2856759de102ab66b722cb4 COPYING.gplv2 diff --git a/package/jitterentropy-library/jitterentropy-library.mk b/package/jitterentropy-library/jitterentropy-library.mk new file mode 100644 index 0000000000..62aea1b516 --- /dev/null +++ b/package/jitterentropy-library/jitterentropy-library.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# jitterentropy-library +# +################################################################################ + +JITTERENTROPY_LIBRARY_VERSION = 2.1.2 +JITTERENTROPY_LIBRARY_SITE = $(call github,smuellerDD,$(JITTERENTROPY_LIBRARY_NAME),v$(JITTERENTROPY_LIBRARY_VERSION)) +JITTERENTROPY_LIBRARY_LICENSE = GPL-2.0, BSD-3-Clause +JITTERENTROPY_LIBRARY_LICENSE_FILES = COPYING COPYING.bsd COPYING.gplv2 +JITTERENTROPY_LIBRARY_INSTALL_STAGING = YES + +define JITTERENTROPY_LIBRARY_BUILD_CMDS + # CFLAGS is being forced to not optimize for the case where Clang doesn't + # respect "#pragma GCC optimize" in jitterentropy-base.c + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) $(TARGET_CONFIGURE_OPTS) CFLAGS="-O0" +endef + +define JITTERENTROPY_LIBRARY_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr install +endef + +define JITTERENTROPY_LIBRARY_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr install +endef + +$(eval $(generic-package))
New library to support rng-tools using a CPU source as a backup entropy source when a kernel provided rng isn't present. Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> --- Changes v4 [Matt - Added include folder creation in Makefile cleanup patch to cover case of when it might not exist on a rebuild [Romain - Force no optimization for case where Clang is used to compile and doesn't respect GCC pragmas v1 -> v3 - No changes --- DEVELOPERS | 1 + package/Config.in | 1 + .../0001-Makefile-cleanup-install.patch | 43 +++++++++++++++++++ package/jitterentropy-library/Config.in | 6 +++ .../jitterentropy-library.hash | 5 +++ .../jitterentropy-library.mk | 27 ++++++++++++ 6 files changed, 83 insertions(+) create mode 100644 package/jitterentropy-library/0001-Makefile-cleanup-install.patch create mode 100644 package/jitterentropy-library/Config.in create mode 100644 package/jitterentropy-library/jitterentropy-library.hash create mode 100644 package/jitterentropy-library/jitterentropy-library.mk