Bug 284417 - net/jose: Build failed on recent stable/14
Summary: net/jose: Build failed on recent stable/14
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Xavier Beaudouin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-28 17:12 UTC by Alexey
Modified: 2025-05-16 13:25 UTC (History)
6 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey 2025-01-28 17:12:54 UTC
Hello!

Tried to compipe net/jose on fresh stable/14 with fresh ports tree (all depended ports are upgraded recently from same ports tree)

===>  Patching for jose-14                                                                                                                                                                                                                                    
===>   jose-14 depends on executable: jq - found                                                                                                                                                                                                              ===>   jose-14 depends on executable: meson - found                                                                                                                                                                                                           ===>   jose-14 depends on executable: ninja - found                                                                                                                                                                                                           
===>   jose-14 depends on package: pkgconf>=1.3.0_1 - found                                                                                                                                                                                                   ===>   jose-14 depends on shared library: libjansson.so - found (/usr/local/lib/libjansson.so)                                                                                                                                                                ===>  Configuring for jose-14                                                                                                                                                                                                                                 
WARNING: Recommend using either -Dbuildtype or -Doptimization + -Ddebug. Using both is redundant since they override each other. See: https://mesonbuild.com/Builtin-options.html#build-type-options                                                          
The Meson build system                                                                                                                                                                                                                                        
Version: 1.6.1                                                                                                                                                                                                                                                
Source dir: /usr/ports/net/jose/work/jose-14                                                                                                                                                                                                                  
Build dir: /usr/ports/net/jose/work/jose-14/_build                                                                                                                                                                                                            
Build type: native build                                                                                                                                                                                                                                      
Project name: jose                                                                                                                                                                                                                                            
Project version: 14                                                                                                                                                                                                                                           
C compiler for the host machine: cc (clang 19.1.7 "FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)")                                                                                                   
C linker for the host machine: cc ld.lld 19.1.7                                                                                                                                                                                                               
Host machine cpu family: x86_64                                                                                                                                                                                                                               
Host machine cpu: x86_64                                                                                                                                                                                                                                      
Found pkg-config: YES (/usr/local/bin/pkgconf) 2.3.0                                                                                                                                                                                                          
Run-time dependency zlib found: YES 1.3.1
Run-time dependency threads found: YES
Run-time dependency jansson found: YES 2.14
Run-time dependency libcrypto found: YES 3.0.15
Program a2x skipped: feature docs disabled
Program jq found: YES (/usr/local/bin/jq)
Configuring jose.h using configuration
Checking if "-Wl,--version-script=..." : links: NO 
Program ./jose-alg found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-alg)
Program ./jose-fmt found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-fmt)
Program ./jose-b64-enc found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-b64-enc)
Program ./jose-b64-dec found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-b64-dec)
Program ./jose-jwk-eql found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwk-eql)
Program ./jose-jwk-exc found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwk-exc)
Program ./jose-jwk-gen found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwk-gen)
Program ./jose-jwk-pub found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwk-pub)
Program ./jose-jwk-use found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwk-use)
Program ./jose-jwk-thp found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwk-thp)
Program ./jose-jws-fmt found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jws-fmt)
Program ./jose-jws-ver found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jws-ver)
Program ./jose-jws-sig found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jws-sig)
Program ./jose-jwe-fmt found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwe-fmt)
Program ./jose-jwe-dec found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwe-dec)
Program ./jose-jwe-enc found: YES (/usr/ports/net/jose/work/jose-14/tests/./jose-jwe-enc)
Run-time dependency openssl found: YES 3.0.15
Build targets in project: 11

......
......
[ 71% 58/69] cc  -o lib/libjose.so.0.0.0 lib/libjose.so.0.0.0.p/misc.c.o lib/libjose.so.0.0.0.p/cfg.c.o lib/libjose.so.0.0.0.p/io.c.o lib/libjose.so.0.0.0.p/b64.c.o lib/libjose.so.0.0.0.p/hsh.c.o lib/libjose.so.0.0.0.p/hooks.c.o lib/libjose.so.0.0.0.p/jwk.c.o lib/libjose.so.0.0.0.p/jws.c.o lib/libjose.so.0.0.0.p/jwe.c.o lib/libjose.so.0.0.0.p/zlib_deflate.c.o lib/libjose.so.0.0.0.p/openssl_aescbch.c.o lib/libjose.so.0.0.0.p/openssl_aesgcm.c.o lib/libjose.so.0.0.0.p/openssl_aesgcmkw.c.o lib/libjose.so.0.0.0.p/openssl_aeskw.c.o lib/libjose.so.0.0.0.p/openssl_compat.c.o lib/libjose.so.0.0.0.p/openssl_dir.c.o lib/libjose.so.0.0.0.p/openssl_ec.c.o lib/libjose.so.0.0.0.p/openssl_ecdh.c.o lib/libjose.so.0.0.0.p/openssl_ecdhes.c.o lib/libjose.so.0.0.0.p/openssl_ecmr.c.o lib/libjose.so.0.0.0.p/openssl_ecdsa.c.o lib/libjose.so.0.0.0.p/openssl_hash.c.o lib/libjose.so.0.0.0.p/openssl_hmac.c.o lib/libjose.so.0.0.0.p/openssl_jwk.c.o lib/libjose.so.0.0.0.p/openssl_lock.c.o lib/libjose.so.0.0.0.p/openssl_misc.c.o lib/libjose.so.0.0.0.p/openssl_oct.c.o lib/libjose.so.0.0.0.p/openssl_pbes2.c.o lib/libjose.so.0.0.0.p/openssl_rsa.c.o lib/libjose.so.0.0.0.p/openssl_rsaes.c.o lib/libjose.so.0.0.0.p/openssl_rsassa.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,-soname,libjose.so.0 -fstack-protector-strong -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wl,-rpath,/usr/local/lib -Wl,-rpath-link,/usr/local/lib '-export-symbols-regex=^jose_.*' -Wl,--start-group /usr/lib/libz.so /usr/local/lib/libjansson.so /usr/lib/libcrypto.so -Wl,--end-group -pthread
FAILED: lib/libjose.so.0.0.0 
cc  -o lib/libjose.so.0.0.0 lib/libjose.so.0.0.0.p/misc.c.o lib/libjose.so.0.0.0.p/cfg.c.o lib/libjose.so.0.0.0.p/io.c.o lib/libjose.so.0.0.0.p/b64.c.o lib/libjose.so.0.0.0.p/hsh.c.o lib/libjose.so.0.0.0.p/hooks.c.o lib/libjose.so.0.0.0.p/jwk.c.o lib/libjose.so.0.0.0.p/jws.c.o lib/libjose.so.0.0.0.p/jwe.c.o lib/libjose.so.0.0.0.p/zlib_deflate.c.o lib/libjose.so.0.0.0.p/openssl_aescbch.c.o lib/libjose.so.0.0.0.p/openssl_aesgcm.c.o lib/libjose.so.0.0.0.p/openssl_aesgcmkw.c.o lib/libjose.so.0.0.0.p/openssl_aeskw.c.o lib/libjose.so.0.0.0.p/openssl_compat.c.o lib/libjose.so.0.0.0.p/openssl_dir.c.o lib/libjose.so.0.0.0.p/openssl_ec.c.o lib/libjose.so.0.0.0.p/openssl_ecdh.c.o lib/libjose.so.0.0.0.p/openssl_ecdhes.c.o lib/libjose.so.0.0.0.p/openssl_ecmr.c.o lib/libjose.so.0.0.0.p/openssl_ecdsa.c.o lib/libjose.so.0.0.0.p/openssl_hash.c.o lib/libjose.so.0.0.0.p/openssl_hmac.c.o lib/libjose.so.0.0.0.p/openssl_jwk.c.o lib/libjose.so.0.0.0.p/openssl_lock.c.o lib/libjose.so.0.0.0.p/openssl_misc.c.o lib/libjose.so.0.0.0.p/openssl_oct.c.o lib/libjose.so.0.0.0.p/openssl_pbes2.c.o lib/libjose.so.0.0.0.p/openssl_rsa.c.o lib/libjose.so.0.0.0.p/openssl_rsaes.c.o lib/libjose.so.0.0.0.p/openssl_rsassa.c.o -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,-soname,libjose.so.0 -fstack-protector-strong -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -Wl,-rpath,/usr/local/lib -Wl,-rpath-link,/usr/local/lib '-export-symbols-regex=^jose_.*' -Wl,--start-group /usr/lib/libz.so /usr/local/lib/libjansson.so /usr/lib/libcrypto.so -Wl,--end-group -pthread
cc: error: unknown argument: '-export-symbols-regex=^jose_.*'


the same problem as described at
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277905
but we have upstream patch already in the ports source tree

if I commented out at work/jose-14/lib/meson.build line:
flags = [ '-export-symbols-regex=^jose_.*' ]

in IF section
------
if host_machine.system() == 'freebsd'
  if not cc.links(code, args: flags + ',--undefined-version' , name: '-Wl,--version-script=...')
     flags = [ '-export-symbols-regex=^jose_.*' ]
  endif
else
------

and run make again, this port compiled success. Looks like we have upgraded clang 18 to 19 since last error and this break the checks again. Hope, as long as we have clang as defaul compiler, this have to be commented out at all for FreeBSD

With best regards
/Alexey
Comment 1 Xavier Beaudouin freebsd_committer freebsd_triage 2025-04-02 13:30:50 UTC
net/jose fails also on 13.5-RELEASE as well.
The proposes workaround works, but maybe the issue is deeper than that.
Comment 2 Jose Luis Duran freebsd_committer freebsd_triage 2025-04-17 12:24:52 UTC
There is this upstream Pull Request open:

https://github.com/latchset/jose/pull/163

If it gets accepted, it might be worth adding "freebsd" in addition to "darwin".
Comment 3 commit-hook freebsd_committer freebsd_triage 2025-05-16 13:23:53 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=dfe81170533bc874f1b1e79929045c65dbc8c2d2

commit dfe81170533bc874f1b1e79929045c65dbc8c2d2
Author:     Xavier Beaudouin <kiwi@FreeBSD.org>
AuthorDate: 2025-04-17 09:25:38 +0000
Commit:     Xavier Beaudouin <kiwi@FreeBSD.org>
CommitDate: 2025-05-16 13:22:31 +0000

    net/jose: Fix compilation on 13.5 and 14.x

    This patch removes a check that was previously added on PR 277905
    by adding a -export-symbols-regex=^jose_.* flag only on FreeBSD.

    The PR 277905 fix has been merged into upstream jose but it seems
    that something is still not handled correctly on FreeBSD 13.5 and
    14.x branches.

    This workaround is just temporary to make the port build again
    on 13.5 and 14. I will work with upstream to find the right
    long-term fix.

    PR:             284417, 277905
    Reported by:    Alexey <ucu8u1b-ol@avksrv.org>
    Approved by:    0mp (mentor)
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D49871

 net/jose/Makefile                          |  1 +
 net/jose/files/patch-lib_meson.build (new) | 11 +++++++++++
 2 files changed, 12 insertions(+)
Comment 4 Xavier Beaudouin freebsd_committer freebsd_triage 2025-05-16 13:25:12 UTC
The "temporaly" fix has been pushed. Waiting to josé maintainer to make a better fix in the future.