Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 911548 - net-libs/libssh2-1.11.0-r2 installs '.a' files without static-libs USE
Summary: net-libs/libssh2-1.11.0-r2 installs '.a' files without static-libs USE
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Netmon project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: static-libs
  Show dependency tree
 
Reported: 2023-08-01 07:38 UTC by Agostino Sarubbo
Modified: 2024-09-06 14:39 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,305.69 KB, text/plain)
2023-08-01 07:38 UTC, Agostino Sarubbo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2023-08-01 07:38:01 UTC
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.
Comment 1 Agostino Sarubbo gentoo-dev 2023-08-01 07:38:04 UTC
Created attachment 866770 [details]
build.log

build log and emerge --info
Comment 2 Agostino Sarubbo gentoo-dev 2023-08-01 07:39:34 UTC
I'm unsure here because the commit says: don't drop .a

but at least it should have the static-libs IUSE or?
Comment 3 Agostino Sarubbo gentoo-dev 2023-08-30 06:57:33 UTC
ci has reproduced this issue with version 1.11.0-r2 - Updating summary.
Comment 4 Eli Schwartz gentoo-dev 2024-09-06 01:42:58 UTC
(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...
Comment 5 Eli Schwartz gentoo-dev 2024-09-06 01:46:38 UTC
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.
Comment 6 Eli Schwartz gentoo-dev 2024-09-06 04:40:03 UTC
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).
Comment 7 Larry the Git Cow gentoo-dev 2024-09-06 14:39:38 UTC
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(-)