https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/ Issue: net-libs/libssh2-1.11.0-r1 installs '.a' files without static-libs USE. Discovered on: amd64 (internal ref: ci) NOTE: https://projects.gentoo.org/qa/policy-guide/installed-files.html#pg0302.
Created attachment 866770 [details] build.log build log and emerge --info
I'm unsure here because the commit says: don't drop .a but at least it should have the static-libs IUSE or?
ci has reproduced this issue with version 1.11.0-r2 - Updating summary.
(In reply to Agostino Sarubbo from comment #2) > I'm unsure here because the commit says: don't drop .a > > but at least it should have the static-libs IUSE or? Which commit are we talking about? The only thing I found is this: commit d866d4705e1e4a092579a31df2815e3407950a19 Author: Jeroen Roovers <jer@gentoo.org> AuthorDate: Mon Oct 1 07:45:43 2018 Commit: Jeroen Roovers <jer@gentoo.org> CommitDate: Mon Oct 1 07:46:10 2018 net-libs/libssh2: Add USE=mbedtls, switch to cmake for building * Add support for net-libs/mbedtls * Switch to cmake as the autotools build is even more broken * Remove USE=static-libs as that inhibits building shared libs * Use REQUIRED_USE to force choosing a crypto backend Package-Manager: Portage-2.3.50, Repoman-2.3.11 Signed-off-by: Jeroen Roovers <jer@gentoo.org> Because at the time, cmake supported only one or the other. And since https://github.com/libssh2/libssh2/commit/4e2580628dd1f8dc51ac65ac747ebcf0e93fa3d1 it now supports building both at the same time -- and defaults to both, too. We simply need to pass the relevant option to disable it...
ok, commit e7fd1ad3b98eefd030d9437a74b6c645487fbaa6 Author: Sam James <sam@gentoo.org> AuthorDate: Tue May 30 14:40:08 2023 Commit: Sam James <sam@gentoo.org> CommitDate: Tue May 30 14:40:18 2023 net-libs/libssh2: add 1.11.0 Signed-off-by: Sam James <sam@gentoo.org> multilib_src_install_all() { einstalldocs - find "${ED}" -name '*.la' -delete || die + find "${ED}" -name '*.a' -delete || die } Interesting change! This version upgrade should have simply passed -DBUILD_STATIC_LIBS=OFF Instead, it broke the cmake config file and necessitated this: commit 2576cc8201b327f5af1a65735036955902ea59cd Author: Sam James <sam@gentoo.org> AuthorDate: Tue Aug 1 03:16:37 2023 Commit: Sam James <sam@gentoo.org> CommitDate: Tue Aug 1 03:16:58 2023 net-libs/libssh2: don't drop .a It breaks the installed CMake config file. Closes: https://bugs.gentoo.org/911386 Signed-off-by: Sam James <sam@gentoo.org> We should simply fix it correctly, though.
Disabling static libraries causes it to stop running the anemic testsuite (which is almost entirely based on docker or having a running sshd, and the only thing to run in portage is test_simple).
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7a9e46534418e86907fc9db4c80a32c54593b15 commit c7a9e46534418e86907fc9db4c80a32c54593b15 Author: Eli Schwartz <eschwartz@gentoo.org> AuthorDate: 2024-09-06 14:26:20 +0000 Commit: Eli Schwartz <eschwartz@gentoo.org> CommitDate: 2024-09-06 14:35:49 +0000 net-libs/libssh2: pass build option to disable static-libs And apply patch to make the (anemic) testsuite run under this scenario. Previously, we dropped USE=static-libs when switching to build with cmake, then upstream brought support for that back and defaulted it to on -- but we built it and deleted the raw file instead, which broke cmake-config since that does runtime file checks to verify whether all originally installed files that you aren't using, exist. Since we tell the build system not to build+install static libraries at all, the resulting cmake configs won't check for them! Bug: https://bugs.gentoo.org/911386 Closes: https://bugs.gentoo.org/911548 Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> ...s-run-the-tests-even-when-static-libs-are.patch | 66 +++++++++++++++++++++ net-libs/libssh2/libssh2-1.11.0-r3.ebuild | 69 ++++++++++++++++++++++ net-libs/libssh2/libssh2-9999.ebuild | 9 +-- 3 files changed, 140 insertions(+), 4 deletions(-)