Message ID | 20190414155153.4317-1-fontaine.fabrice@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [v2,1/1] package/ngircd: fix static build with openssl and atomic | expand |
On Sun, 14 Apr 2019 17:51:53 +0200 Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > Fixes: > - http://autobuild.buildroot.org/results/72345ebd144bed824329618e66721a98eba3be22 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> This was still causing the AC_CHECK_LIB error here, which was in fact due to the use of PKG_CHECK_MODULES without having host-pkgconf in the dependencies. With this, ngircd built fine, but unfortunately, there is still an issue. > +# We're patching configure.ng, but package cannot autoreconf with > +# automake >= 1.12 because de-ANSI-fication has been removed so apply the same > +# tweaks that are done by upstream in autogen.sh > +define NGIRCD_REMOVE_DE_ANSI_FICATION > + sed -e "s|^__ng_PROTOTYPES__|AC_C_PROTOTYPES|g" \ > + $(@D)/configure.ng > $(@D)/configure.ac > + > + sed -e "s|^__ng_Makefile_am_template__|AUTOMAKE_OPTIONS = ${SERIAL_TESTS} #ansi2knr|g" \ This ${SERIAL_TESTS} > + $(@D)/src/portab/Makefile.ng > $(@D)/src/portab/Makefile.am > + for i in ipaddr/Makefile ngircd/Makefile testsuite/Makefile tool/Makefile; do \ > + sed -e "s|^__ng_Makefile_am_template__|AUTOMAKE_OPTIONS = ${SERIAL_TESTS} #../portab/ansi2knr|g" \ and here, cause check-package to complain: package/ngircd/ngircd.mk:23: use $() to delimit variables, not ${} package/ngircd/ngircd.mk:26: use $() to delimit variables, not ${} so we need to find a way to either silence those warnings, or work around them. Perhaps we could simply include a patch ? The tarball already has the configure.ac and Makefile.am generated, they only need to be tweaked for de-ansi-fication, and a patch may be a good alternative. What do you think ? Best regards, Thomas
On 15/04/2019 22:10, Thomas Petazzoni wrote: > On Sun, 14 Apr 2019 17:51:53 +0200 > Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > >> Fixes: >> - http://autobuild.buildroot.org/results/72345ebd144bed824329618e66721a98eba3be22 >> >> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > This was still causing the AC_CHECK_LIB error here, which was in fact > due to the use of PKG_CHECK_MODULES without having host-pkgconf in the > dependencies. With this, ngircd built fine, but unfortunately, there is > still an issue. > >> +# We're patching configure.ng, but package cannot autoreconf with >> +# automake >= 1.12 because de-ANSI-fication has been removed so apply the same >> +# tweaks that are done by upstream in autogen.sh >> +define NGIRCD_REMOVE_DE_ANSI_FICATION >> + sed -e "s|^__ng_PROTOTYPES__|AC_C_PROTOTYPES|g" \ Pretty please, be consistent with sed delimiters: $ git grep -h '\(SED\|sed\|-e\).*\bs[@!|,#+%^:]' -- \*.mk | \ grep -o '\bs[@!|,#+%^:]' | sort | uniq -c 23 s# 56 s% 60 s, 50 s: 2 s@ 3 s^ 11 s| So comma or percent please. >> + $(@D)/configure.ng > $(@D)/configure.ac >> + >> + sed -e "s|^__ng_Makefile_am_template__|AUTOMAKE_OPTIONS = ${SERIAL_TESTS} #ansi2knr|g" \ > > This ${SERIAL_TESTS} > >> + $(@D)/src/portab/Makefile.ng > $(@D)/src/portab/Makefile.am >> + for i in ipaddr/Makefile ngircd/Makefile testsuite/Makefile tool/Makefile; do \ >> + sed -e "s|^__ng_Makefile_am_template__|AUTOMAKE_OPTIONS = ${SERIAL_TESTS} #../portab/ansi2knr|g" \ > > and here, cause check-package to complain: > > package/ngircd/ngircd.mk:23: use $() to delimit variables, not ${} > package/ngircd/ngircd.mk:26: use $() to delimit variables, not ${} Huh? How could this ever have worked? make will replace the ${SERIAL_TESTS} with the empty string, since the SERIAL_TESTS variable is not defined. Fabrice, did you actually test this? Or maybe the SERIAL_TESTS is empty anyway? Anyway: $$ will fix the issue, both for make and for check-package. Regards, Arnout > > so we need to find a way to either silence those warnings, or work > around them. Perhaps we could simply include a patch ? > > The tarball already has the configure.ac and Makefile.am generated, > they only need to be tweaked for de-ansi-fication, and a patch may be a > good alternative. > > What do you think ? > > Best regards, > > Thomas >
On Mon, 15 Apr 2019 23:08:00 +0200 Arnout Vandecappelle <arnout@mind.be> wrote: > > package/ngircd/ngircd.mk:23: use $() to delimit variables, not ${} > > package/ngircd/ngircd.mk:26: use $() to delimit variables, not ${} > > Huh? How could this ever have worked? make will replace the ${SERIAL_TESTS} > with the empty string, since the SERIAL_TESTS variable is not defined. Fabrice, > did you actually test this? Or maybe the SERIAL_TESTS is empty anyway? SERIAL_TESTS would be "serial-tests" in our case: https://github.com/ngircd/ngircd/blob/master/autogen.sh#L190 https://www.gnu.org/software/automake/manual/html_node/Serial-Test-Harness.html I guess it's only used when you run "make check", so we don't really care in the context of Buildroot. Thomas
diff --git a/package/ngircd/0001-configure.ng-use-pkg-config-to-find-openssl-dependen.patch b/package/ngircd/0001-configure.ng-use-pkg-config-to-find-openssl-dependen.patch new file mode 100644 index 0000000000..bf05f99dc4 --- /dev/null +++ b/package/ngircd/0001-configure.ng-use-pkg-config-to-find-openssl-dependen.patch @@ -0,0 +1,35 @@ +From 75f669b9a00a76f0abf35cce8b9f80711aff7600 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Thu, 11 Apr 2019 23:24:36 +0200 +Subject: [PATCH] configure.ng: use pkg-config to find openssl dependencies + +openssl can depends on lz or latomic so use pkg-config to find those +dependencies and fallback to existing mechanism + +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[Upstream status: https://github.com/ngircd/ngircd/pull/256] +--- + configure.ng | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/configure.ng b/configure.ng +index 57ae8bb8..899d00f7 100644 +--- a/configure.ng ++++ b/configure.ng +@@ -464,8 +464,11 @@ AC_ARG_WITH(openssl, + CPPFLAGS="-I$withval/include $CPPFLAGS" + LDFLAGS="-L$withval/lib $LDFLAGS" + fi +- AC_CHECK_LIB(crypto, BIO_s_mem) +- AC_CHECK_LIB(ssl, SSL_new) ++ PKG_CHECK_MODULES([OPENSSL], [libssl libcrypto], ++ [LIBS="$LIBS $OPENSSL_LIBS" CFLAGS="$CFLAGS $OPENSSL_CFLAGS"], ++ [AC_CHECK_LIB(crypto, BIO_s_mem) ++ AC_CHECK_LIB(ssl, SSL_new)] ++ ) + AC_CHECK_FUNCS(SSL_new, x_ssl_openssl=yes, + AC_MSG_ERROR([Can't enable openssl]) + ) +-- +2.20.1 + diff --git a/package/ngircd/ngircd.mk b/package/ngircd/ngircd.mk index 5fa86afdd5..582da563ac 100644 --- a/package/ngircd/ngircd.mk +++ b/package/ngircd/ngircd.mk @@ -9,6 +9,25 @@ NGIRCD_SOURCE = ngircd-$(NGIRCD_VERSION).tar.xz NGIRCD_SITE = https://arthur.barton.de/pub/ngircd NGIRCD_LICENSE = GPL-2.0+ NGIRCD_LICENSE_FILES = COPYING +# We're patching configure.ac +NGIRCD_AUTORECONF = YES + +# We're patching configure.ng, but package cannot autoreconf with +# automake >= 1.12 because de-ANSI-fication has been removed so apply the same +# tweaks that are done by upstream in autogen.sh +define NGIRCD_REMOVE_DE_ANSI_FICATION + sed -e "s|^__ng_PROTOTYPES__|AC_C_PROTOTYPES|g" \ + $(@D)/configure.ng > $(@D)/configure.ac + + sed -e "s|^__ng_Makefile_am_template__|AUTOMAKE_OPTIONS = ${SERIAL_TESTS} #ansi2knr|g" \ + $(@D)/src/portab/Makefile.ng > $(@D)/src/portab/Makefile.am + for i in ipaddr/Makefile ngircd/Makefile testsuite/Makefile tool/Makefile; do \ + sed -e "s|^__ng_Makefile_am_template__|AUTOMAKE_OPTIONS = ${SERIAL_TESTS} #../portab/ansi2knr|g" \ + $(@D)/src/$$i.ng > $(@D)/src/$$i.am ; \ + done +endef + +NGIRCD_PRE_CONFIGURE_HOOKS += NGIRCD_REMOVE_DE_ANSI_FICATION ifeq ($(BR2_PACKAGE_LINUX_PAM),y) NGIRCD_CONF_OPTS += --with-pam=$(STAGING_DIR)/usr @@ -18,8 +37,8 @@ NGIRCD_CONF_OPTS += --without-pam endif ifeq ($(BR2_PACKAGE_OPENSSL),y) -NGIRCD_CONF_OPTS += --with-openssl=$(STAGING_DIR)/usr -NGIRCD_DEPENDENCIES += openssl +NGIRCD_CONF_OPTS += --with-openssl +NGIRCD_DEPENDENCIES += host-pkgconf openssl else NGIRCD_CONF_OPTS += --without-openssl ifeq ($(BR2_PACKAGE_GNUTLS),y)
Fixes: - http://autobuild.buildroot.org/results/72345ebd144bed824329618e66721a98eba3be22 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- Changes v1 -> v2 (after review of Thomas Petazzoni): - Do not call autogen.sh, use AUTORECONF and apply the same tweaks than autogen.sh to remove de-ANSI-fication ...-pkg-config-to-find-openssl-dependen.patch | 35 +++++++++++++++++++ package/ngircd/ngircd.mk | 23 ++++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 package/ngircd/0001-configure.ng-use-pkg-config-to-find-openssl-dependen.patch