This package fails to build on an unstable system. Attached relevant logs and emerge --info
Created attachment 765270 [details] emerge_info emerge --info
Created attachment 765271 [details] libical-3.0.14:20220216-182442.log build log
I'm on no-multilib profile and also I have x32 support disabled This error doesn't happen in version 3.0.12
-- Found BerkeleyDB: /usr/include (found version "/* This file is auto-generated by multilib-build.eclass * as a multilib-friendly wrapper. For the original content, * please see the files that are #included below. */ #if defined(__x86_64__) /* amd64 */ # if defined(__ILP32__) /* x32 ABI */ # error "abi_x86_x32 not supported by the package." # else /* 64-bit ABI */ # include <x86_64-pc-linux-gnu/db6.0/db.h> # endif #elif defined(__i386__) /* plain x86 */ # error "abi_x86_32 not supported by the package." #elif defined(__mips__) # if(_MIPS_SIM == _ABIN32) /* n32 */ # error "abi_mips_n32 not supported by the package." # elif(_MIPS_SIM == _ABI64) /* n64 */ # error "abi_mips_n64 not supported by the package." # elif(_MIPS_SIM == _ABIO32) /* o32 */ # error "abi_mips_o32 not supported by the package." # endif #elif defined(__sparc__) # if defined(__arch64__) # error "abi_sparc_64 not supported by the package." # else # error "abi_sparc_32 not supported by the package." # endif #elif defined(__s390__) # if defined(__s390x__) # error "abi_s390_64 not supported by the package." # else # error "abi_s390_32 not supported by the package." # endif #elif defined(__powerpc__) || defined(__ppc__) # if defined(__powerpc64__) || defined(__ppc64__) # error "abi_ppc_64 not supported by the package." # else # error "abi_ppc_32 not supported by the package." # endif #elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */ # include <x86_64-pc-linux-gnu/db6.0/db.h> #else # error "No ABI matched, please report a bug to bugs.gentoo.org" #endif ./* This file is auto-generated by multilib-build.eclass * as a multilib-friendly wrapper. For the original content, * please see the files that are #included below. */ #if defined(__x86_64__) /* amd64 */ # if defined(__ILP32__) /* x32 ABI */ # error "abi_x86_x32 not supported by the package." # else /* 64-bit ABI */ # include <x86_64-pc-linux-gnu/db6.0/db.h> # endif #elif defined(__i386__) /* plain x86 */ # error "abi_x86_32 not supported by the package." #elif defined(__mips__) # if(_MIPS_SIM == _ABIN32) /* n32 */ # error "abi_mips_n32 not supported by the package." # elif(_MIPS_SIM == _ABI64) /* n64 */ # error "abi_mips_n64 not supported by the package." # elif(_MIPS_SIM == _ABIO32) /* o32 */ # error "abi_mips_o32 not supported by the package." # endif #elif defined(__sparc__) # if defined(__arch64__) # error "abi_sparc_64 not supported by the package." # else # error "abi_sparc_32 not supported by the package." # endif #elif defined(__s390__) # if defined(__s390x__) # error "abi_s390_64 not supported by the package." # else # error "abi_s390_32 not supported by the package." # endif #elif defined(__powerpc__) || defined(__ppc__) # if defined(__powerpc64__) || defined(__ppc64__) # error "abi_ppc_64 not supported by the package." # else # error "abi_ppc_32 not supported by the package." # endif #elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */ # include <x86_64-pc-linux-gnu/db6.0/db.h> #else # error "No ABI matched, please report a bug to bugs.gentoo.org" #endif ./* This file is auto-generated by multilib-build.eclass * as a multilib-friendly wrapper. For the original content, * please see the files that are #included below. */ #if defined(__x86_64__) /* amd64 */ # if defined(__ILP32__) /* x32 ABI */ # error "abi_x86_x32 not supported by the package." # else /* 64-bit ABI */ # include <x86_64-pc-linux-gnu/db6.0/db.h> # endif #elif defined(__i386__) /* plain x86 */ # error "abi_x86_32 not supported by the package." #elif defined(__mips__) # if(_MIPS_SIM == _ABIN32) /* n32 */ # error "abi_mips_n32 not supported by the package." # elif(_MIPS_SIM == _ABI64) /* n64 */ # error "abi_mips_n64 not supported by the package." # elif(_MIPS_SIM == _ABIO32) /* o32 */ # error "abi_mips_o32 not supported by the package." # endif #elif defined(__sparc__) # if defined(__arch64__) # error "abi_sparc_64 not supported by the package." # else # error "abi_sparc_32 not supported by the package." # endif #elif defined(__s390__) # if defined(__s390x__) # error "abi_s390_64 not supported by the package." # else # error "abi_s390_32 not supported by the package." # endif #elif defined(__powerpc__) || defined(__ppc__) # if defined(__powerpc64__) || defined(__ppc64__) # error "abi_ppc_64 not supported by the package." # else # error "abi_ppc_32 not supported by the package." # endif #elif defined(SWIG) /* https://sourceforge.net/p/swig/bugs/799/ */ # include <x86_64-pc-linux-gnu/db6.0/db.h> #else # error "No ABI matched, please report a bug to bugs.gentoo.org" #endif ") -- Found BerkeleyDB libraries: /usr/lib64/libdb.so;/usr/lib64/libdb_cxx.so;/usr/lib64/GNU.Gettext.dll;/usr/lib64/libdb_stl.so [...] [64/107] : && /usr/bin/x86_64-pc-linux-gnu-gcc -fPIC -Os -pipe -march=native -fdiagnostics-color=always -frecord-gcc-switches -fexceptions -Wformat -fstack-clash-protection -fcf-protection=full -fasynchronous-unwind-tables -ftree-vectorize -Wimplicit-function-declaration -Wno-error=implicit-function-declaration -fvisibility=hidden -Wno-deprecated -Wall -Wno-unknown-pragmas -Wextra -Winit-self -Wunused -Wno-div-by-zero -Wundef -Wpointer-arith -Wtype-limits -Wwrite-strings -Werror=return-type -Wunused-but-set-variable -Wlogical-op -Wsizeof-pointer-memaccess -Wformat -Wformat-security -Wredundant-decls -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -shared -Wl,-soname,libicalss.so.3 -o lib/libicalss.so.3.0.14 src/libicalss/CMakeFiles/icalss.dir/icalcalendar.c.o src/libicalss/CMakeFiles/icalss.dir/icalclassify.c.o src/libicalss/CMakeFiles/icalss.dir/icalcluster.c.o src/libicalss/CMakeFiles/icalss.dir/icalgauge.c.o src/libicalss/CMakeFiles/icalss.dir/icaldirset.c.o src/libicalss/CMakeFiles/icalss.dir/icalfileset.c.o src/libicalss/CMakeFiles/icalss.dir/icalset.c.o src/libicalss/CMakeFiles/icalss.dir/icalspanlist.c.o src/libicalss/CMakeFiles/icalss.dir/icalmessage.c.o src/libicalss/CMakeFiles/icalss.dir/icalsslexer.c.o src/libicalss/CMakeFiles/icalss.dir/icalssyacc.c.o src/libicalss/CMakeFiles/icalss.dir/icalbdbset.c.o -Wl,-rpath,/var/tmp/portage/dev-libs/libical-3.0.14/work/libical-3.0.14_build/lib: lib/libical.so.3.0.14 -ldb -ldb_cxx /usr/lib64/GNU.Gettext.dll -ldb_stl -licuuc -licui18n && : FAILED: lib/libicalss.so.3.0.14 : && /usr/bin/x86_64-pc-linux-gnu-gcc -fPIC -Os -pipe -march=native -fdiagnostics-color=always -frecord-gcc-switches -fexceptions -Wformat -fstack-clash-protection -fcf-protection=full -fasynchronous-unwind-tables -ftree-vectorize -Wimplicit-function-declaration -Wno-error=implicit-function-declaration -fvisibility=hidden -Wno-deprecated -Wall -Wno-unknown-pragmas -Wextra -Winit-self -Wunused -Wno-div-by-zero -Wundef -Wpointer-arith -Wtype-limits -Wwrite-strings -Werror=return-type -Wunused-but-set-variable -Wlogical-op -Wsizeof-pointer-memaccess -Wformat -Wformat-security -Wredundant-decls -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -shared -Wl,-soname,libicalss.so.3 -o lib/libicalss.so.3.0.14 src/libicalss/CMakeFiles/icalss.dir/icalcalendar.c.o src/libicalss/CMakeFiles/icalss.dir/icalclassify.c.o src/libicalss/CMakeFiles/icalss.dir/icalcluster.c.o src/libicalss/CMakeFiles/icalss.dir/icalgauge.c.o src/libicalss/CMakeFiles/icalss.dir/icaldirset.c.o src/libicalss/CMakeFiles/icalss.dir/icalfileset.c.o src/libicalss/CMakeFiles/icalss.dir/icalset.c.o src/libicalss/CMakeFiles/icalss.dir/icalspanlist.c.o src/libicalss/CMakeFiles/icalss.dir/icalmessage.c.o src/libicalss/CMakeFiles/icalss.dir/icalsslexer.c.o src/libicalss/CMakeFiles/icalss.dir/icalssyacc.c.o src/libicalss/CMakeFiles/icalss.dir/icalbdbset.c.o -Wl,-rpath,/var/tmp/portage/dev-libs/libical-3.0.14/work/libical-3.0.14_build/lib: lib/libical.so.3.0.14 -ldb -ldb_cxx /usr/lib64/GNU.Gettext.dll -ldb_stl -licuuc -licui18n && : /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: i386 architecture of input file `/usr/lib64/GNU.Gettext.dll' is incompatible with i386:x86-64 output /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.1/../../../../x86_64-pc-linux-gnu/bin/ld: lib/libicalss.so.3.0.14: unable to sort relocs - they are of an unknown size collect2: error: ld returned 1 exit status Obviously /usr/lib64/GNU.Gettext.dll doesn't exist
You're going to need to do some digging if possible to find where it's picking up the DLL from.
This is a bit out of my element, since I know nothing about this package or its dependencies, but the build failure has been annoying me for a few days now. It seems to be related to the change from FindBDB to FindBerkeleyDB in 3.0.13. The module hard codes a read of /usr/include/db.dh searching for the version of the package to add to its find_library search. Since the installed db.h is a wrapper, it doesn't find what it's looking for, and instead treats the entire contents of db.h as the version. Passing the entire contents of that file as part of find_library call does not lead to good things. Changing the read directly in the cmake module to /usr/include/x86_64-pc-linux-gnu/db6.0/db.h resulted in the build working on my machine, but clearly that's not a generic solution.
(In reply to Jason Lynch from comment #6) > It seems to be related to the change from FindBDB to FindBerkeleyDB in > 3.0.13. The module hard codes a read of /usr/include/db.dh searching for the > version of the package to add to its find_library search. Since the > installed db.h is a wrapper, it doesn't find what it's looking for, and > instead treats the entire contents of db.h as the version. Just to be clear, it doesn't actually hard code "/usr/include/db.h", but instead db.h in the directory returned by find_path searching for db.h (which finds the /usr/include/db.h file).
Relevant commits in .14: - https://github.com/libical/libical/commit/905cbb44d02c8e8f922099432cc6b6a1beeddd88 - https://github.com/libical/libical/commit/4f0a0b6470a821ae186ac5451e55d30417eab80a (kind of, we could set the _ROOT variable) - https://github.com/libical/libical/commit/2000285cf2b5544450b6181fe208aa01cd3265bb
Not necessarily related but possibly: https://github.com/libical/libical/issues/545
*** Bug 834675 has been marked as a duplicate of this bug. ***
Created attachment 770786 [details, diff] libical-3.0.14-findberkeley-adjustment.patch Now we are getting somewhere. Here is a workaround for the problem.
Out of interest, is anyone hitting this actually using libical's berkdb support?
(In reply to Sam James from comment #12) > Out of interest, is anyone hitting this actually using libical's berkdb > support? I for one. Patch works for me. If the same cmake module appears elsewhere, that would create other candidates for this problem.
(In reply to Attila Tóth from comment #13) > (In reply to Sam James from comment #12) > > Out of interest, is anyone hitting this actually using libical's berkdb > > support? > > I for one. Patch works for me. If the same cmake module appears elsewhere, > that would create other candidates for this problem. I'm asking because we're looking at dumping berkdb anyway (bug 837629 and the news item mentioned there). I don't doubt it works for you, just wondering how much effort to put into a generic patch for this given it's deprecated.
(In reply to Sam James from comment #14) > (In reply to Attila Tóth from comment #13) > > (In reply to Sam James from comment #12) > > > Out of interest, is anyone hitting this actually using libical's berkdb > > > support? > > > > I for one. Patch works for me. If the same cmake module appears elsewhere, > > that would create other candidates for this problem. > > I'm asking because we're looking at dumping berkdb anyway (bug 837629 and > the news item mentioned there). > > I don't doubt it works for you, just wondering how much effort to put into a > generic patch for this given it's deprecated. This functionality is not crucial for me. Dropping it would not cause any harm on my behalf.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3d116714ea660c4e4e0eab01f9c699bd71ef704 commit c3d116714ea660c4e4e0eab01f9c699bd71ef704 Author: Sam James <sam@gentoo.org> AuthorDate: 2022-04-19 13:14:21 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2022-04-19 15:05:06 +0000 dev-libs/libical: drop berkdb support Fails to build and we're looking at dropping berkdb support as much as possible overall in Gentoo anyway. Closes: https://bugs.gentoo.org/833498 Signed-off-by: Sam James <sam@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/25105 Signed-off-by: Sam James <sam@gentoo.org> dev-libs/libical/libical-3.0.14-r1.ebuild | 117 ++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7db9509ddd953cc27281b41786c3fcb1a67160e commit e7db9509ddd953cc27281b41786c3fcb1a67160e Author: Andreas Sturmlechner <asturm@gentoo.org> AuthorDate: 2022-05-18 15:01:20 +0000 Commit: Andreas Sturmlechner <asturm@gentoo.org> CommitDate: 2022-05-18 15:05:56 +0000 dev-libs/libical: Drop obsolete 3.0.14 (r0) broken with IUSE=berkdb Bug: https://bugs.gentoo.org/833498 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> dev-libs/libical/libical-3.0.14.ebuild | 114 --------------------------------- 1 file changed, 114 deletions(-)