Bug 249974 - security/seahorse: link failure on 11.x (old ld(1))
Summary: security/seahorse: link failure on 11.x (old ld(1))
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Baptiste Daroussin
URL:
Keywords: patch-ready, regression
: 250196 (view as bug list)
Depends on:
Blocks:
 
Reported: 2020-09-29 01:31 UTC by John Hein
Modified: 2020-10-16 15:52 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (gnome)


Attachments
[patch] avoid old ld(1) due to link problems after switch to meson (709 bytes, patch)
2020-09-29 01:38 UTC, John Hein
no flags Details | Diff
[patch] avoid old ld(1) due to link problems after switch to meson (v2) (720 bytes, patch)
2020-10-07 18:49 UTC, John Hein
jcfyecrayz: maintainer-approval? (bapt)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John Hein 2020-09-29 01:31:08 UTC
seahorse fails to link on 11.x with the old default ld(1).


[151/151] cc  -o src/seahorse src/seahorse.p/meson-generated_.._.._data_seahorse-resources.c.o src/seahorse.p/meson-generated_.._seahorse-shell-search-provider-generated.c.o src/seahorse.p/meson-generated_application.c.o src/seahorse.p/meson-generated_import-dialog.c.o src/seahorse.p/meson-generated_key-manager.c.o src/seahorse.p/meson-generated_key-manager-item-row.c.o src/seahorse.p/meson-generated_main.c.o src/seahorse.p/meson-generated_search-provider.c.o src/seahorse.p/meson-generated_sidebar.c.o -L/usr/local/lib -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -O2 -pipe -fstack-protector-strong -DLDAP_DEPRECATED -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong -Wl,--start-group libegg/liblibeggdatetime.a libegg/liblibtreemultidnd.a common/libcommon.a libseahorse/liblibseahorse.a gkr/libseahorse-gkr.a ssh/libseahorse-ssh.a pgp/libseahorse-pgp.a pkcs11/libseahorse-pkcs11.a /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so /usr/local/lib/libgobject-2.0.so /usr/local/lib/libgio-2.0.so -Wl,--export-dynamic /usr/local/lib/libgmodule-2.0.so -pthread /usr/local/lib/libgtk-3.so /usr/local/lib/libgdk-3.so /usr/local/lib/libpangocairo-1.0.so /usr/local/lib/libpango-1.0.so /usr/local/lib/libatk-1.0.so /usr/local/lib/libcairo-gobject.so /usr/local/lib/libcairo.so -lpthread /usr/local/lib/libgdk_pixbuf-2.0.so /usr/local/lib/libhandy-0.0.so /usr/local/lib/libsecret-1.so /usr/local/lib/libgcr-ui-3.so /usr/local/lib/libgcr-base-3.so /usr/local/lib/libgck-1.so /usr/local/lib/libp11-kit.so /usr/local/lib/libpwquality.so /usr/local/lib/libgpgme.so /usr/local/lib/libassuan.so /usr/local/lib/libgpg-error.so -lldap -llber /usr/local/lib/libsoup-2.4.so /usr/local/lib/libavahi-common.so /usr/local/lib/libavahi-client.so /usr/local/lib/libavahi-glib.so -Wl,--end-group
FAILED: src/seahorse 
cc  -o src/seahorse src/seahorse.p/meson-generated_.._.._data_seahorse-resources.c.o src/seahorse.p/meson-generated_.._seahorse-shell-search-provider-generated.c.o src/seahorse.p/meson-generated_application.c.o src/seahorse.p/meson-generated_import-dialog.c.o src/seahorse.p/meson-generated_key-manager.c.o src/seahorse.p/meson-generated_key-manager-item-row.c.o src/seahorse.p/meson-generated_main.c.o src/seahorse.p/meson-generated_search-provider.c.o src/seahorse.p/meson-generated_sidebar.c.o -L/usr/local/lib -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -O2 -pipe -fstack-protector-strong -DLDAP_DEPRECATED -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong -Wl,--start-group libegg/liblibeggdatetime.a libegg/liblibtreemultidnd.a common/libcommon.a libseahorse/liblibseahorse.a gkr/libseahorse-gkr.a ssh/libseahorse-ssh.a pgp/libseahorse-pgp.a pkcs11/libseahorse-pkcs11.a /usr/local/lib/libglib-2.0.so /usr/local/lib/libintl.so /usr/local/lib/libgobject-2.0.so /usr/local/lib/libgio-2.0.so -Wl,--export-dynamic /usr/local/lib/libgmodule-2.0.so -pthread /usr/local/lib/libgtk-3.so /usr/local/lib/libgdk-3.so /usr/local/lib/libpangocairo-1.0.so /usr/local/lib/libpango-1.0.so /usr/local/lib/libatk-1.0.so /usr/local/lib/libcairo-gobject.so /usr/local/lib/libcairo.so -lpthread /usr/local/lib/libgdk_pixbuf-2.0.so /usr/local/lib/libhandy-0.0.so /usr/local/lib/libsecret-1.so /usr/local/lib/libgcr-ui-3.so /usr/local/lib/libgcr-base-3.so /usr/local/lib/libgck-1.so /usr/local/lib/libp11-kit.so /usr/local/lib/libpwquality.so /usr/local/lib/libgpgme.so /usr/local/lib/libassuan.so /usr/local/lib/libgpg-error.so -lldap -llber /usr/local/lib/libsoup-2.4.so /usr/local/lib/libavahi-common.so /usr/local/lib/libavahi-client.so /usr/local/lib/libavahi-glib.so -Wl,--end-group
/usr/bin/ld: undefined reference to symbol `atk_relation_new' (try adding -latk-1.0)
/usr/local/lib/libatk-1.0.so: could not read symbols: Bad value
cc: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
+ [ -n 'Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer.' ]
+ echo '===> Compilation failed unexpectedly.'
===> Compilation failed unexpectedly.


The problem has to do with the old ld(1) implementation of --start-group and --end-group.  If you put just the .a libs between --start-group and --end-group, it works with the old ld(1).  If you include .so's (which doesn't make much sense really for what --start-group and --end-group are there for), then the old ld(1) gets confused somehow and can't find symbols sometimes.  This could be considered a meson bug since it brackets too much between --start-group and --end-group.  I'm seeing this on other ports, too (e.g., bug 249418).
Comment 1 John Hein 2020-09-29 01:38:15 UTC
Created attachment 218395 [details]
[patch] avoid old ld(1) due to link problems after switch to meson

Use -fuse-lld=lld to avoid link errors using old ld(1) on 11.x

While here, pet portlint issues (placement of USES) & do sorting.  No need to bump PORTREVISION.

Request maintainer-approval from recent committer (since gnome@ is not responsive of late).
Comment 2 John Hein 2020-10-07 18:49:40 UTC
Created attachment 218598 [details]
[patch] avoid old ld(1) due to link problems after switch to meson (v2)

Refresh patch after r551608.

Effectively no change.  Still:

 - fix link failure on 11.x
 - address portlint warning (USES ordering)
 - request maintainer-approval from recent committer that broke it

QA:
 - poudriere testport on 11/amd64 and 11/i386 - ok
Comment 3 ddrinnon 2020-10-10 00:08:57 UTC
*** Bug 250196 has been marked as a duplicate of this bug. ***
Comment 4 John Hein 2020-10-16 15:52:52 UTC
Timeout?

FYI, log of build failure from FreeBSD package builder...

http://beefy3.nyi.freebsd.org/data/114amd64-quarterly/551243/logs/seahorse-3.36.2.log