forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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: LudovicRousseau/CCID#140 Signed-off-by: Eli Schwartz <[email protected]> Signed-off-by: Sam James <[email protected]>
- Loading branch information
1 parent
b462e21
commit b8b7401
Showing
4 changed files
with
121 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,7 +29,7 @@ PATCHES=( | |
src_prepare() { | ||
default | ||
|
||
eautoconf | ||
eautoreconf | ||
} | ||
|
||
src_configure() { | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,7 +29,7 @@ PATCHES=( | |
src_prepare() { | ||
default | ||
|
||
eautoconf | ||
eautoreconf | ||
} | ||
|
||
src_configure() { | ||
|
65 changes: 60 additions & 5 deletions
65
app-crypt/ccid/files/ccid-1.5.4-remove-flex-configure-dependency.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]> | ||
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 <[email protected]> | ||
--- | ||
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 | ||
|
63 changes: 59 additions & 4 deletions
63
app-crypt/ccid/files/ccid-1.5.5-remove-flex-configure-dependency.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 <[email protected]> | ||
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 <[email protected]> | ||
--- | ||
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 | ||
|