tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

RE: Unwrap?



Hi Masters,

 

I’ll reply to myself because w checked this on IRC with Riastradh in mean time -> Thanks!

Looks like software store source/work path in their compiled code as messages even on version it’s show how was compiled, sample below:

 

PowerDNS Recursor 5.2.0 (C) PowerDNS.COM BV

Using 64-bits mode. Built using gcc 12.4.0 on Jan 26 2025 15:15:27 by root%devil.e-utp.net@localhost.

PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it according to the terms of the GPL version 2.

Features: libcrypto-ecdsa libcrypto-ed25519 libcrypto-ed448 libcrypto-eddsa lua nod protobuf dnstap-framestream sodium curl DoT scrypt

Configured with: " '--sysconfdir=/usr/pkg/etc' '--with-libsodium' '--enable-dns-over-tls' '--prefix=/usr/pkg' '--build=x86_64--netbsd' '--host=x86_64--netbsd' '--mandir=/usr/pkg/man' '--enable-option-checking=yes' 'build_alias=x86_64--netbsd' 'host_alias=x86_64--netbsd' 'CC=gcc' 'CFLAGS=-O2 -pthread -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/lua-5.4 -I/usr/include/readline -I/usr/pkg/include/sodium' 'LDFLAGS=-Wl,-zrelro -L/usr/pkg/lib -pthread -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/pkg/lib' 'LIBS=' 'CPPFLAGS=-I/usr/pkg/include -I/usr/include -I/usr/pkg/include/lua-5.4 -I/usr/include/readline -I/usr/pkg/include/sodium' 'CXX=c++' 'CXXFLAGS=-O2 -pthread -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/lua-5.4 -I/usr/include/readline -I/usr/pkg/include/sodium' 'PKG_CONFIG=/usr/work/amd64/wip/powerdns-recursor5/work/.tools/bin/pkg-config' 'PKG_CONFIG_PATH=' 'PKG_CONFIG_LIBDIR=/usr/work/amd64/wip/powerdns-recursor5/work/.buildlink/lib/pkgconfig:/usr/work/amd64/wip/powerdns-recursor5/work/.buildlink/share/pkgconfig'"

 

As provided by Riastradh the best is check:

readelf -d /usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin/pdns_recursor | grep -e NEEDED -e RPATH

 

0x0000000000000001 (NEEDED)             Shared library: [libboost_context.so.1.87.0]

0x0000000000000001 (NEEDED)             Shared library: [libboost_system.so.1.87.0]

0x0000000000000001 (NEEDED)             Shared library: [libboost_filesystem.so.1.87.0]

0x0000000000000001 (NEEDED)             Shared library: [libsodium.so.26]

0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.1]

0x0000000000000001 (NEEDED)             Shared library: [liblua5.4.so.5]

0x0000000000000001 (NEEDED)             Shared library: [libedit.so.3]

0x0000000000000001 (NEEDED)             Shared library: [libfstrm.so.0]

0x0000000000000001 (NEEDED)             Shared library: [libcurl.so.4]

0x0000000000000001 (NEEDED)             Shared library: [libnghttp2.so.14]

0x0000000000000001 (NEEDED)             Shared library: [libidn2.so.0]

0x0000000000000001 (NEEDED)             Shared library: [libunistring.so.5]

0x0000000000000001 (NEEDED)             Shared library: [libintl.so.1]

0x0000000000000001 (NEEDED)             Shared library: [libssl.so.15]

0x0000000000000001 (NEEDED)             Shared library: [libcrypto.so.15]

0x0000000000000001 (NEEDED)             Shared library: [libz.so.1]

0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.9]

0x0000000000000001 (NEEDED)             Shared library: [libm.so.0]

0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]

0x0000000000000001 (NEEDED)             Shared library: [libc.so.12]

0x000000000000000f (RPATH)              Library rpath: [/usr/pkg/lib]

 

for affected binary to ensure that is not using files in work directory.

Once this part is done it’s worth to check strings.

strings /usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin/pdns_recursor | grep /usr/work/amd64/wip/powerdns-recursor5/work/ | wc -l

45

 

We have 45 strings with work path :-/

Once we are sure that they are not critical but only messages, we can take the binary out of the work directory, remove whole work directory and check that binary is still working as expected.

 

If so, the only way to make it “packageable” looks like:

CHECK_WRKREF_SKIP+= sbin/pdns_recursor

In Makefile.

 

I’ll continue working on that, deploy to some test boxes, once fine will upload to WIP.

 

Thanks,

 

 

From: Marcin Gondek
Sent: Sunday, January 26, 2025 12:28 PM
To: tech-pkg%NetBSD.org@localhost
Subject: Unwrap?

 

Hello Masters,

 

TL/DR: package is not yet in WIP.

 

I’m little playing with some package, have done to make it compile, even with rust part inside but I’m struggling with one topic:

 

ERROR: Binary file /usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin/pdns_recursor matches

ERROR: *** The above files still have references to the build directory.

ERROR:     This is possibly an error that should be fixed by unwrapping

ERROR:     the files or adding missing tools to the package makefile!

 

I’ve tried to skip it by

UNWRAP_PATTERNS+=       *pdns_recursor*

Seems to not working, how to debug why this error appear and analyze what could be root cause?

 

gmake[3]: Leaving directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0/settings/rust'

gmake[2]: Leaving directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0/settings/rust'

gmake[2]: Entering directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0'

gmake[3]: Entering directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0'

/usr/pkg/bin/gmkdir -p '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/bin'

  /bin/sh ./libtool   --mode=install /usr/bin/install -c -s -o root -g wheel -m 755 rec_control '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/bin'

libtool: install: /usr/bin/install -c -o root -g wheel -m 755 -s rec_control /usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/bin/rec_control

/usr/pkg/bin/gmkdir -p '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin'

  /bin/sh ./libtool   --mode=install /usr/bin/install -c -s -o root -g wheel -m 755 pdns_recursor '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin'

libtool: install: /usr/bin/install -c -o root -g wheel -m 755 -s pdns_recursor /usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin/pdns_recursor

/usr/pkg/bin/gmkdir -p '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/etc'

/usr/bin/install -c -o root -g wheel -m 644 recursor.yml-dist '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/etc'

/usr/pkg/bin/gmkdir -p '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/man/man1'

/usr/bin/install -c -o root -g wheel -m 644 pdns_recursor.1 rec_control.1 '/usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/man/man1'

gmake[3]: Leaving directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0'

gmake[2]: Leaving directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0'

gmake[1]: Leaving directory '/usr/work/amd64/wip/powerdns-recursor5/work/pdns-recursor-5.2.0'

=> Automatic manual page handling

=> Generating post-install file lists

=> Checking file-check results for pdns-recursor-5.2.0

=> Checking for non-existent script interpreters in pdns-recursor-5.2.0

=> Checking file permissions in pdns-recursor-5.2.0

=> Checking for PIE in pdns-recursor-5.2.0

=> Checking for RELRO in pdns-recursor-5.2.0

=> Checking for missing run-time search paths in pdns-recursor-5.2.0

=> Checking for work-directory references in pdns-recursor-5.2.0

ERROR: Binary file /usr/work/amd64/wip/powerdns-recursor5/work/.destdir/usr/pkg/sbin/pdns_recursor matches

ERROR: *** The above files still have references to the build directory.

ERROR:     This is possibly an error that should be fixed by unwrapping

ERROR:     the files or adding missing tools to the package makefile!

*** Error code 1

 

Stop.

make[1]: stopped making "package" in /srv/NetBSD/pkgsrc/wip/powerdns-recursor5

*** Error code 1

 

Stop.

make: stopped making "package" in /srv/NetBSD/pkgsrc/wip/powerdns-recursor5

devil#

 

Thanks,

--

Marcin Gondek / Drixter

http://fido.e-utp.net/

AS56662

 

Attachment: openpgp-digital-signature.asc
Description: PGP signature



Home | Main Index | Thread Index | Old Index