Skip to content

Fix rpath option of NetBSD CI#3495

Open
dougnazar wants to merge 1 commit into
networkupstools:masterfrom
dougnazar:fix_netbsd_ci
Open

Fix rpath option of NetBSD CI#3495
dougnazar wants to merge 1 commit into
networkupstools:masterfrom
dougnazar:fix_netbsd_ci

Conversation

@dougnazar

Copy link
Copy Markdown
Contributor
  • Tell compiler to pass -R option to linker instead of a remark

Signed-off-by: Doug Nazar <nazard@nazar.ca>
@github-actions

github-actions Bot commented Jun 21, 2026

Copy link
Copy Markdown

A ZIP file with standard source tarball and another tarball with pre-built docs for commit fc63968 is temporarily available: NUT-tarballs-PR-3495.zip.

@AppVeyorBot

Copy link
Copy Markdown

Build nut 2.8.5.4851-master completed (commit cd9725a5f7 by @dougnazar)

@dougnazar

Copy link
Copy Markdown
Contributor Author

So just installed NetBSD 9.4 & 10.1 to play with. Both use GCC, however the CI seems to use a beta of 11 and Clang. With GCC, -R/usr/pkg/lib is valid and sets the rpath. This doesn't work with Clang, and requires the -Wl,-R/usr/pkg/lib format, which is valid with both compilers.

@jimklimov jimklimov added bug portability We want NUT to build and run everywhere possible labels Jun 22, 2026
@jimklimov jimklimov added this to the 2.8.6 milestone Jun 22, 2026
@jimklimov jimklimov added CI Entries related to continuous integration infrastructure (here CI = tools + scripts + recipes) NetBSD labels Jun 22, 2026
@jimklimov

Copy link
Copy Markdown
Member

Failed some one scenario on FreeBSD 15 for reasons unrelated to this PR - but as it seems close to the subject of build recipe improvements, I'll rant a bit about it, maybe eventually this would help find the problem?..

So here goes:

Since the last month's migration/update of that worker from FreeBSD 12, once in a few hundred builds (maybe 3-5 times overall so far) it fails to render a random doc or man page and fails (usually the distcheck scenario), e.g. per https://ci.networkupstools.org/job/nut/job/nut/job/PR-3495/1/artifact/.ci.MD5_943b61e3c232124d845ec607e54b0caf.all-logs.tar.gz :

...
  CCLD     nutdrv_hashx
  DOC-MAN-HTML	Generating nutupsdrv.html
  CCLD     nutdrv_siemens-sitop
a2x: ERROR: "xsltproc" --nonet --nonet --path %%LOCALBASE%%/share/xsl/docbook/manpages/ --stringparam callout.graphics 0 --stringparam navig.graphics 0 --stringparam admon.textlabel 1 --stringparam admon.graphics 0  "/usr/local/lib/python3.11/site-packages/asciidoc/resources/docbook-xsl/manpage.xsl" "/mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub/docs/man/tmp/man8.nutupsdrv.8.78768/nutupsdrv.xml" returned non-zero exit status 5

mv: rename ./tmp/man8.nutupsdrv.8.78768/nutupsdrv.8 to ./nutupsdrv.8: No such file or directory
--- nutupsdrv.8 ---
*** [nutupsdrv.8] Error code 1

make[5]: stopped making "all-man all-html" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub/docs/man
  SUBDIR-MAKE	FAILURE: 'make all' in drivers

make[3]: stopped making "all-fanout-subdirs" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub
make[5]: 1 error

make[5]: stopped making "all-man all-html" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub/docs/man
--- all-optional ---

make[4]: stopped making "all" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub/docs/man
  SUBDIR-MAKE	FAILURE: 'make all' in docs/man
--- all/docs/man ---

make[3]: stopped making "all-fanout-subdirs" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub
--- ../docs/ChangeLog.pdf ---

make[5]: stopped making "all-am" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub/docs
--- all-recursive ---

make[4]: stopped making "all" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub/docs
  SUBDIR-MAKE	FAILURE: 'make all' in docs
--- all/docs ---

make[3]: stopped making "all-fanout-subdirs" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub
--- all-fanout-maybe ---

make[2]: stopped making "all" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495/nut-2.8.5.534.1/_build/sub
--- distcheck ---
*** [distcheck] Error code 1

make[1]: stopped making "distcheck" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495
make[1]: 1 error

make[1]: stopped making "distcheck" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495
--- distcheck-light ---

make: stopped making "distcheck-light" in /mnt/tmpfs/.abuild/jenkins-nut/workspace/nut_nut_PR-3495

==================================
--- all/drivers ---

Maybe it is some (mis-)feature of bmake that I haven't stepped on before. There were troubles with a version leading up to NetBSD 11 release, found by NUT build farm and fixed before that release. Maybe something else cropped up in recent development and got published. Maybe it is some resource contention, or the use of tmpfs, or (even saw that some time back, I think with ancient gmake when multi-CPU systems were entering the mass market) the Make program confirming a goal as done and moving on to another ,before the filesystem confirms that a write completed and a created file can actually be read by the whoever depends on it.

So at face value, it randomly can not parse an asciidoc=>xml=>someting final, and move back that final result. For some reason, here it claims failure of a ton of "fanout" branches although I think only docs/man (maybe docs as parent) should be implicated.

@dougnazar

Copy link
Copy Markdown
Contributor Author

I saw the Makefile mention that a2x has issues running in parallel and you try to work around it. Error 5 is an issue with a stylesheet so maybe something is getting stomped on. Perhaps running make -j1 all/docs/man all/docs before the distcheck would help work around it? Possibly with a retry? It seems hard to reproduce. I tried several times on a few machines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug CI Entries related to continuous integration infrastructure (here CI = tools + scripts + recipes) NetBSD portability We want NUT to build and run everywhere possible

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants