Re: graphics/xpaint updated to latest version

From: Danilo Egea Gondolfo <danilo_at_FreeBSD.org>
Date: Fri, 14 Jul 2023 12:30:24 UTC
On 14/07/2023 12:42, Nuno Teixeira wrote:

> Hello Danilo,
>
> My tests don't show that under poudriere with ALLOW_MAKE_JOBS=yes on 2 
> parallel jobs.
>
> Should we wait for build packagers to see its results?
>
> Thanks,
>
> Danilo Egea Gondolfo <danilo@freebsd.org> escreveu no dia sexta, 
> 14/07/2023 à(s) 12:27:
>
>     On 14/07/2023 11:12, Nuno Teixeira wrote:
>
>>     Hello all,
>>
>>     xpaint has been updated to lastest version.
>>     Try out new features!
>>
>>     I'm working on this update for more than 1 year but only
>>     yesterday I did have the courage and nerves to build *all*
>>     releases until 3.1.4 as a way to understand the best way to
>>     "hack" configures and Makefiles and stuff.
>>
>>     Please give it a try and tell me if anything needs to be fixed, etc.
>>
>>     Cheers!
>>
>>     https://cgit.freebsd.org/ports/commit/?id=973a707c70478448af77004a07eab1f85c2f6757
>>
>>     -- 
>>     Nuno Teixeira
>>     FreeBSD Committer (ports)
>
>     Hi Eduardo,
>
>     xpaint seems to not be multi-jobs-safe. The build will eventually
>     fail with this:
>
>     cd app-defaults ; \
>     ../substads -appdefs \
>                 XPAINT_VERSION 3.1.4 \
>                 XPAINT_SHAREDIR /usr/local/share/xpaint \
>                 XPAINT_PRINT_COMMAND "lp -d" \
>                 XPAINT_PRINTER_LIST "lpstat -p | cut -d' ' -f 2" \
>                 XPAINT_POSTSCRIPT_VIEWER "evince" \
>                 XPAINT_EXTERN_VIEWER "display"
>     /bin/sh: ../substads: Text file busy
>     gmake[1]: *** [Makefile:1205: XPaint.ad] Error 126
>     gmake[1]: *** Waiting for unfinished jobs....
>     gmake[1]: Leaving directory
>     '/usr/ports/graphics/xpaint/work/xpaint-3.1.4'
>
>     You might want to use MAKE_JOBS_UNSAFE=yes.
>
>
>
>
> -- 
> Nuno Teixeira
> FreeBSD Committer (ports)

That's because it's a race condition :)

See:

[danilo@capeta /usr/ports/graphics/xpaint]$ while : ; do make clean 
 >/dev/null ; make >/dev/null 2>&1 ; if [ $? -ne 0 ] ; then echo 
'Failed' ; else echo 'Worked' ; fi ; done
Worked
Worked
Failed
Worked
Worked
Worked
Worked
Worked
Worked
Worked
Worked
Worked
Failed
Worked
Worked
Worked
Worked
Worked
Worked
Worked
Failed
Failed
Worked
Worked
Worked
Worked
Worked