On 2023/07/31 22:17:05 +0000, Klemens Nanni <k...@openbsd.org> wrote:
> 'make patch' on a WXNEEDED=Yes port without wxallowed fails after
> patching and before creating the patch cookie, so subsequent setting
> of the option and rerunning the target will try to patch again.
> 
> If the check is done right after extract, rerunning that target usually
> has higher chances of just working.
> 
> Is there a reason I'm not aware of that this is done after patch?
> 
> 
> I just forgot to set wxallowed on /usr/ports/pobj when building
> ungoogled-chromium where 'make clean && mount ... && make patch' takes
> considerably longer than 'mount ... && make extract' to recover from
> forgetting to set wxallowed.

I've been hit by this several times too (i.e. every time I look at
lang/sbcl) so fwiw I welcome this change!


Thanks,

> Index: bsd.port.mk
> ===================================================================
> RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
> retrieving revision 1.1595
> diff -u -p -r1.1595 bsd.port.mk
> --- bsd.port.mk       8 Jul 2023 10:20:16 -0000       1.1595
> +++ bsd.port.mk       31 Jul 2023 21:54:52 -0000
> @@ -2718,6 +2718,14 @@ ${_EXTRACT_COOKIE}: ${_WRKDIR_COOKIE}
>  
>  # run as _pbuild
>  _post-extract-finalize:
> +.if ${USE_WXNEEDED:L} == "yes"
> +     @wrktmp=`df -P ${WRKOBJDIR_${PKGPATH}} | awk 'END { print $$6 }'`; \
> +     if ! mount | grep -q " $${wrktmp} .*wxallowed"; then \
> +             echo "Fatal: ${WRKOBJDIR_${PKGPATH}} must be on a wxallowed 
> filesystem" \
> +                     "(in ${PKGPATH})" >&2; \
> +             false; \
> +     fi
> +.endif
>  .for _m in ${MODULES:T:U}
>  .  if defined(MOD${_m}_post-extract)
>       @${MOD${_m}_post-extract}
> @@ -2858,14 +2866,6 @@ ${_PATCH_COOKIE}: ${_EXTRACT_COOKIE}
>  
>  # Run as _pbuild
>  _post-patch-finalize:
> -.if ${USE_WXNEEDED:L} == "yes"
> -     @wrktmp=`df -P ${WRKOBJDIR_${PKGPATH}} | awk 'END { print $$6 }'`; \
> -     if ! mount | grep -q " $${wrktmp} .*wxallowed"; then \
> -             echo "Fatal: ${WRKOBJDIR_${PKGPATH}} must be on a wxallowed 
> filesystem" \
> -                     "(in ${PKGPATH})" >&2; \
> -             false; \
> -     fi
> -.endif
>  .if !empty(_LINKER_FLAGS) || ${_NONDEFAULT_LD:L} == "yes"
>       @printf '#!/bin/sh\nexec ${_LD_PROGRAM} ${_LINKER_FLAGS} "$$@"\n' 
> >${WRKDIR}/bin/ld
>       @chmod 555 ${WRKDIR}/bin/ld


Reply via email to