how to handle 'internal' logs for failed builds
Chris Jones
jonesc at hep.phy.cam.ac.uk
Thu Apr 4 14:39:17 UTC 2024
Hi,
I recently pushed an update to the root6 port. It works fine for me but
fails on all build bots, e.g.
https://build.macports.org/builders/ports-12_arm64-builder/builds/122227/steps/install-port/logs/stdio
the only error is this
'./configure' '--prefix'
'/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_root6/root6/work/build/FREETYPE-prefix'
'--with-pic' '--disable-shared' '--with-png=no' '--with-bzip2=no'
'--with-harfbuzz=no' '--with-brotli=no' 'CC=/usr/bin/clang -isysroot
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' 'CFLAGS=-O'
See also
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_root6/root6/work/build/FREETYPE-prefix/src/FREETYPE-stamp/FREETYPE-configure-*.log
So what is happening is the build internally packages its own versions
of some externals, freetype being one of them, and its this that fails
during configure for some reason.
The problem is the contents of that log are, of course, not in the
macports build log, so I cannot see what it is that is causing it, and
as it works for me I cannot look locally myself. I've tried looking at
my versions of the logs, and just guess what might be wrong, missing new
deps for instance, but that hasn't worked, so I really need to see whats
in that log from the build bots...
I tried adding this to the portfile, to basically echo the contents of
this log (and other ones, there are a few) to ui_debug
post-build {
ui_debug "Searching ${workpath}/build for third party build logs ..."
foreach log [ exec find ${workpath}/build -type f -and -name
"*.log" ] {
ui_debug "Contents of ${log} :-"
set f [open ${log}]
set lines [split [read $f] "\n"]
foreach line $lines {
ui_debug "${line}"
}
close $f
}
}
that works just fine.... as long as the build succeeds... If it fails,
the post-build block is not run.
So. Is there anything I can do here. Ideally something similar to the
above perhaps, but which will still run even if the build phase itself
fails... ?
cheers Chris
p.s. Yes, before anyone says it I hate these internal dep builds the
port does. Its something the upstream devs started doing a while back
and it just seems to get worse over time. I turn off the ones I can,
when there are configure options to do so and use macports deps instead,
but some of them like freetype just don't allow this..
More information about the macports-dev
mailing list