Re: graphics/xpaint updated to latest version

From: Danilo Egea Gondolfo <danilo_at_FreeBSD.org>
Date: Fri, 14 Jul 2023 16:20:35 UTC
On 14/07/2023 13:40, Nuno Teixeira wrote:

> Oldest version used a patch:
> ###
> --- Makefile.in.orig    2021-08-14 14:31:15 UTC
> +++ Makefile.in
> @@ -1203,16 +1203,15 @@ messages.h: preproc
>  messages.h: preproc
>         ./preproc > messages.h
>
> -XPaint.ad: app-defaults
> -       $(CC) $(CFLAGS) substads.c -o substads
> -       cd app-defaults ; \
> +XPaint.ad: substads app-defaults
> +       (cd app-defaults ; \
>         ../substads -appdefs \
>                     XPAINT_VERSION $(PACKAGE_VERSION) \
>                     XPAINT_SHAREDIR $(SHAREDIR) \
>                     XPAINT_PRINT_COMMAND "$(PRINT_CMD)" \
>                     XPAINT_PRINTER_LIST "$(PRINTER_LIST)" \
>                     XPAINT_POSTSCRIPT_VIEWER "$(POSTSCRIPT_VIEWER)" \
> -                   XPAINT_EXTERN_VIEWER "$(EXTERN_VIEWER)"
> +                   XPAINT_EXTERN_VIEWER "$(EXTERN_VIEWER)")
>         cp -p app-defaults/out/XPaint XPaint.ad
>
>  XPaint.ad.h: substads XPaint.ad
> ###
>
> that I'm not using here.
> Maybe this is related? Could you test it?
>
> Thanks
>
> Danilo Egea Gondolfo <danilo@freebsd.org> escreveu no dia sexta, 
> 14/07/2023 à(s) 13:30:
>
>     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
>
>
>
> -- 
> Nuno Teixeira
> FreeBSD Committer (ports)

Yeah apparently that addresses the problem. But as you are using 
USES=autoreconf, you need to patch Makefile.am actually.

This change seems to be enough:

-XPaint.ad: app-defaults
+XPaint.ad: substads app-defaults