On Tue, Sep 30, 2025 at 10:43:19AM +0200, Robin Candau wrote:
> On 9/30/25 9:28 AM, Óscar García Amor wrote:
> > Hello folks,
> > 
> 
> Hey
> 
> > Let me tell you, I've been maintaining the Telegraf[1] package in AUR
> > for some time now, and whenever I update it (or generate it), I have to
> > do it in a container because it's not possible with the `extra-x86_64-
> > build` command.
> > 
> > If you look at the PKGBUILD, there is a point where the configuration
> > is generated with the newly created binary itself. It is the last line
> > of `build()`, `./build/telegraf config > telegraf.conf`. It is at this
> > point that the execution stops completely if I build the package with
> > `extra-x86_64-build`.
> > 
> > Can you think of any reason why this might happen or how it could be
> > fixed? This step is necessary because there is no other way to generate
> > the base configuration.
> > 
> 
> For some reason it seems like, despite the "config" argument (which you
> would expect to solely generate the config), the telegraf binary runs as a
> daemon and therefore never stops unless you kill it. The `--once` flag,
> which supposedly should prevent this to happen according to the help
> message, does not help here.

The above was discussed further downthread, included for context only.

> A sketchy workaround is to run `timeout 2s ./build/telegraf config >
> telegraf.conf || true`
> 
> The timeout command will kill the process after 2s (to ensure it doesn't run
> endlessly) and the `|| true` part will ensure the build doesn't fail due to
> the error exit code produced by the process being killed by `timeout`.
> As I said, it's a bit of a sketchy workaround but should allow the build to
> succeed in a clean chroot.

In similar cases, I've found it useful to do something like:

  timeout 2s ... || [ "$?" -eq 124 ] 

...or whatever code the previous command will exit with in the timeout case.
This helps stop the execution of the whole thing if the program exits with
a different code - if it encounters a different error, not the timeout.

(of course, if this is certain to be Bash, [[ $? -eq 124 ]] is valid too)

G'luck,
Peter

-- 
Peter Pentchev  [email protected] [email protected] [email protected]
PGP key:        https://www.ringlet.net/roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13

Attachment: signature.asc
Description: PGP signature

Reply via email to