diff options
author | Eli Schwartz <eschwartz93@gmail.com> | 2024-06-10 21:10:49 -0400 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-06-14 07:44:44 +0100 |
commit | b8b74017825d8e7be72e07c4a2ab68f7df06f023 (patch) | |
tree | 0c2cf8c9cff185464df747370b6eafd049649bf6 /app-crypt | |
parent | sys-cluster/openmpi: force disable building against system pmix (diff) | |
download | gentoo-b8b74017825d8e7be72e07c4a2ab68f7df06f023.tar.gz gentoo-b8b74017825d8e7be72e07c4a2ab68f7df06f023.tar.bz2 gentoo-b8b74017825d8e7be72e07c4a2ab68f7df06f023.zip |
app-crypt/ccid: make sure elibtoolize is applied
Needed to e.g. pass LTO warning flags through to the linker. In theory
it would be nice to run a full eautoreconf, since eautoconf is already
run, but the package errors out with automake since a patch deletes the
use of flex in configure.ac while it is still required for the actual
build.
Actually-correct patch created & fix submitted upstream, since there was
never a good reason to hack around this locally:
https://github.com/LudovicRousseau/CCID/pull/140
Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-crypt')
4 files changed, 121 insertions, 11 deletions
diff --git a/app-crypt/ccid/ccid-1.5.4.ebuild b/app-crypt/ccid/ccid-1.5.4.ebuild index 6652a82c38c2..005b7c99b1e9 100644 --- a/app-crypt/ccid/ccid-1.5.4.ebuild +++ b/app-crypt/ccid/ccid-1.5.4.ebuild @@ -29,7 +29,7 @@ PATCHES=( src_prepare() { default - eautoconf + eautoreconf } src_configure() { diff --git a/app-crypt/ccid/ccid-1.5.5.ebuild b/app-crypt/ccid/ccid-1.5.5.ebuild index d701d5ebd5cf..a7a1290a0795 100644 --- a/app-crypt/ccid/ccid-1.5.5.ebuild +++ b/app-crypt/ccid/ccid-1.5.5.ebuild @@ -29,7 +29,7 @@ PATCHES=( src_prepare() { default - eautoconf + eautoreconf } src_configure() { diff --git a/app-crypt/ccid/files/ccid-1.5.4-remove-flex-configure-dependency.patch b/app-crypt/ccid/files/ccid-1.5.4-remove-flex-configure-dependency.patch index 564532c9ab42..b0c8122b6ec6 100644 --- a/app-crypt/ccid/files/ccid-1.5.4-remove-flex-configure-dependency.patch +++ b/app-crypt/ccid/files/ccid-1.5.4-remove-flex-configure-dependency.patch @@ -1,16 +1,71 @@ -Bug: https://bugs.gentoo.org/221361 -Reverts upstream commit eec7cdf0 +From 5bd94d9670ad10df9f14349dfa098d0a2e40ab08 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz93@gmail.com> +Date: Mon, 10 Jun 2024 22:02:37 -0400 +Subject: [PATCH] make building work again when flex is not installed +This explicitly reverts commit eec7cdf03dda2bd26e320ead73b91da5a9d86443 +because it was a bad idea. + +The motivating bug report was https://github.com/LudovicRousseau/PCSC/issues/124 +and the issue there occurred when building from a git clone, running +./bootstrap && ./configure && make, and having: + +- configure succeed +- make "succeeeds" at having $LEX run, do nothing and fail to generate + required sources +- compiling nonexistent files fail with highly confusing errors + +The autoconf manual has always documented the correct way to handle this +is to check if lex is unavailable, and set it to the famous automake +wrapper "missing", which checks if a program is missing at build time +rather than at ./configure time, and fails the build if the rule cannot +be run. This means: + +When building from a git clone, if flex is not available then +- configure succeeds +- make fails to run $LEX, and tells you to install flex + +The previous attempt to fix the highly confusing error instead resulted +in configure erroring out, and saying flex is required, even when it is +*not* required because a `make dist` tarball was used, which contains +pregenerated tokenparser.c for the express purpose of making flex +unnecessary. + +See autoconf documentation on $LEX: +https://www.gnu.org/software/autoconf/manual/autoconf-2.72/html_node/Particular-Programs.html#index-AC_005fPROG_005fLEX-1 + +And automake documentation on why to use "missing": +https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html + +Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> +--- + configure.ac | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d291f2b..a5af2eb 100644 --- a/configure.ac +++ b/configure.ac -@@ -32,11 +32,6 @@ AC_PROG_CPP - AC_PROG_INSTALL +@@ -33,10 +33,10 @@ AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_LN_S --AC_PROG_LEX([noyywrap]) + AC_PROG_LEX([noyywrap]) -if test $LEX = ":" -then - AC_MSG_ERROR([no lex or flex found]) -fi ++AS_IF([test $LEX = ":"], [ ++ AM_MISSING_PROG(MISSINGLEX, [flex]) ++ LEX=$MISSINGLEX] ++) AM_PROG_AR PKG_PROG_PKG_CONFIG + +@@ -354,4 +354,3 @@ AC_CONFIG_FILES(Makefile + examples/Makefile) + + AC_OUTPUT +- +-- +2.44.2 + diff --git a/app-crypt/ccid/files/ccid-1.5.5-remove-flex-configure-dependency.patch b/app-crypt/ccid/files/ccid-1.5.5-remove-flex-configure-dependency.patch index a124c50d1161..1ffb74fc61aa 100644 --- a/app-crypt/ccid/files/ccid-1.5.5-remove-flex-configure-dependency.patch +++ b/app-crypt/ccid/files/ccid-1.5.5-remove-flex-configure-dependency.patch @@ -1,13 +1,68 @@ -Bug: https://bugs.gentoo.org/221361 -Reverts upstream commit eec7cdf0 & 41270c2 +From 7e2207a07979b6c1b206024e83e22ca2bbd4e17c Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz93@gmail.com> +Date: Mon, 10 Jun 2024 22:02:37 -0400 +Subject: [PATCH] make building work again when flex is not installed +This explicitly reverts commit eec7cdf03dda2bd26e320ead73b91da5a9d86443 +because it was a bad idea. + +The motivating bug report was https://github.com/LudovicRousseau/PCSC/issues/124 +and the issue there occurred when building from a git clone, running +./bootstrap && ./configure && make, and having: + +- configure succeed +- make "succeeeds" at having $LEX run, do nothing and fail to generate + required sources +- compiling nonexistent files fail with highly confusing errors + +The autoconf manual has always documented the correct way to handle this +is to check if lex is unavailable, and set it to the famous automake +wrapper "missing", which checks if a program is missing at build time +rather than at ./configure time, and fails the build if the rule cannot +be run. This means: + +When building from a git clone, if flex is not available then +- configure succeeds +- make fails to run $LEX, and tells you to install flex + +The previous attempt to fix the highly confusing error instead resulted +in configure erroring out, and saying flex is required, even when it is +*not* required because a `make dist` tarball was used, which contains +pregenerated tokenparser.c for the express purpose of making flex +unnecessary. + +See autoconf documentation on $LEX: +https://www.gnu.org/software/autoconf/manual/autoconf-2.72/html_node/Particular-Programs.html#index-AC_005fPROG_005fLEX-1 + +And automake documentation on why to use "missing": +https://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html + +Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> +--- + configure.ac | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index eb2370f..c012f2a 100644 --- a/configure.ac +++ b/configure.ac -@@ -33,7 +33,5 @@ +@@ -33,7 +33,10 @@ AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_LN_S --AC_PROG_LEX([noyywrap]) + AC_PROG_LEX([noyywrap]) -AS_IF([test $LEX = ":"], [AC_MSG_ERROR([no lex or flex found])]) ++AS_IF([test $LEX = ":"], [ ++ AM_MISSING_PROG(MISSINGLEX, [flex]) ++ LEX=$MISSINGLEX] ++) AM_PROG_AR PKG_PROG_PKG_CONFIG + +@@ -331,4 +334,3 @@ AC_CONFIG_FILES(Makefile + examples/Makefile) + + AC_OUTPUT +- +-- +2.44.2 |