Page MenuHomeFreeBSD

www/apache24: resolve plist error and strip issue, pet poudriere warnings
ClosedPublic

Authored by brnrd on Jan 18 2021, 4:50 AM.

Details

Summary

The root cause is the port is performing strip for non-binary files at post-install target.

strip leaves temporary files named like sbin/ecp.fQXqex4S if it failed to strip. As a result, poudriere complains there's a orphaned file.

Error: Orphaned: sbin/ecp.fQXqex4S

And what is worse, actually binaries are not stripped at all. If even a single file fails to strip, all files are not stripped. In the following example, not only c.plaintext but {a,b,c}.binary are not stripped.

$ strip a.binary b.binary c.plaintext d.binary

I've changed post-install target to perform strip only for executables and shared libraries. Also pet the following poudrier warnings & errors.

Warning: 'sbin/checkgid' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: 'sbin/htcacheclean' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: 'sbin/httpd' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: 'sbin/rotatelogs' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Warning: 'sbin/fcgistarter' is not stripped consider trying INSTALL_TARGET=install-strip or using ${STRIP_CMD}
Error: /usr/local/bin/ab is linked to /usr/local/lib/libdb-5.3.so.0 from databases/db5 but it is not declared as a dependency
Warning: you need USES+=bdb
Error: /usr/local/bin/ab is linked to /usr/local/lib/libgdbm.so.6 from databases/gdbm but it is not declared as a dependency
Warning: you need LIB_DEPENDS+=libgdbm.so:databases/gdbm

See also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252792

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

meta requested review of this revision.Jan 18 2021, 4:50 AM
meta updated this revision to Diff 82449.

Bump PORTREVISION due to package change (binaries are stripped)

brnrd added a reviewer: meta.
brnrd added a subscriber: brnrd.

I've seen these warnings too, but haven't experienced errors.

I've got a different way of solving this, will push this here soon for you to check.

Makefile
20 ↗(On Diff #82450)

Dependency is from apr not from Apache httpd

22 ↗(On Diff #82450)

Dependency is from apr not from Apache httpd

Use build/rules.mk to strip binaries

  • Doesn't work for modules
  • Emits errors for strip on non-binaries, but these scripts are installed anyway
  • no ecp.random files found in stagedir

Check build log https://brnrd.eu/poudriere/data/122libre-default-ports_ssl/2021-01-31_16h19m09s/logs/apache24-2.4.46_1.log

Mind you, this is built with apr without database support.

strip: file format not recognized
strip: file format not recognized
strip: file format not recognized
/usr/bin/strip /wrkdirs/usr/ports/www/apache24/work/stage/usr/local/libexec/apache24/mod_*.so

Hi, FreeBSD 13 stop with an error: http://joneumbox.org/data/13amd64-ports/2021-02-01_20h18m22s/logs/errors/apache24-2.4.46.log

> Running Q/A tests (stage-qa)

Error: /usr/local/bin/ab is linked to /usr/local/lib/libdb-5.3.so.0 from databases/db5 but it is not declared as a dependency
Warning: you need USES+=bdb
Error: /usr/local/bin/ab is linked to /usr/local/lib/libgdbm.so.6 from databases/gdbm but it is not declared as a dependency
Warning: you need LIB_DEPENDS+=libgdbm.so:databases/gdbm

> Checking for pkg-plist issues (check-plist)

> Parsing plist

> Checking for items in STAGEDIR missing from pkg-plist

Error: Orphaned: %%DATADIR%%/build/ecp.8y3PHp73
Error: Orphaned: %%DATADIR%%/build/ecp.IYZ0QIkf
Error: Orphaned: %%DATADIR%%/build/ecp.V6f4cfIk

> Checking for items in pkg-plist which are not in STAGEDIR

> Error: Plist issues found.

  • Error code 1
meta requested changes to this revision.Feb 8 2021, 1:19 PM

Same result as joneum.

This revision now requires changes to proceed.Feb 8 2021, 1:19 PM

Add cleanup of strip temp files.

We're still using the build/rules.mk features wherever possible.
See elfcopy for the temp filename, seems stable

LGTM. Also take care of suppressing errors of stage-qa.

This revision is now accepted and ready to land.Feb 15 2021, 6:14 AM
This revision was automatically updated to reflect the committed changes.