On Thu, Mar 07, 2019 at 06:54:02PM -0700, Andrew Hewus Fresh wrote:
> Reading through the rest, and avoiding installing dependencies, we could
> just check for bad permissions if $WRKSRC exists, which it probably does
> if you've been working on the port.

This works well directly afer extraction.  But if the build creates
non readable files, portcheck fails if you run it after make build.
I don't know wheter this happens in practice or how to fix this and
I have no better idea.  To test the problem I did a build with a
retrictive umask.

bluhm

> 
> This does specifically check that FIX_EXTRACT_PERMISSIONS is "No" and
> the ports infrastructure checks that it is "Yes" (case insensitive) so
> you could set "FIX_EXTRACT_PERMISSIONS=ignore" to silence this check.
> 
> 
> Index: infrastructure/bin/portcheck
> ===================================================================
> RCS file: /cvs/ports/infrastructure/bin/portcheck,v
> retrieving revision 1.126
> diff -u -p -r1.126 portcheck
> --- infrastructure/bin/portcheck      16 Nov 2018 10:08:38 -0000      1.126
> +++ infrastructure/bin/portcheck      7 Mar 2019 20:54:09 -0000
> @@ -790,6 +790,31 @@ check_distfiles() {
>       local dist_subdir=$1; shift
>       local portref=$(portref "$dir")
>  
> +     local wrkdist fix_extract_permissions
> +     local show_items="WRKDIST FIX_EXTRACT_PERMISSIONS"
> +     local read_ok=false
> +
> +     (cd -- "$dir"; make "${make_args[@]}" show="$show_items" || true) 
> </dev/null |&
> +     read -pr wrkdist &&
> +     read -pr fix_extract_permissions &&
> +     read_ok=true
> +
> +     if $read_ok; then
> +             exec 3<&p
> +             exec 3<&-
> +             wait
> +     else
> +             error=true
> +             return
> +     fi
> +
> +     if [ "$fix_extract_permissions" = No -a -e "$wrkdist" \
> +         -a $( find "$wrkdist" ! \( \
> +             \( -type d -a -perm -0555 \) -o -perm -0444 \
> +         \) | wc -l ) -gt 0 ]; then
> +             err "${portref}missing FIX_EXTRACT_PERMISSIONS"
> +     fi
> +
>       # do not care about absent distfiles, this is fine for meta ports
>       while (($# > 1)); do
>               # try to catch "version-only" names, but not anything more

Reply via email to