On Mon, May 13, 2019 at 12:59:27PM +0100, Stuart Henderson wrote:
> On 2019/05/10 09:30, Andrew Hewus Fresh wrote:
> > p5-Ref-Util-XS could use TEST_DEPENDS=devel/p5-Readonly, as an XS module
> > is not a candidate for PKG_ARCH=* so that needs to be removed
> 
> This teaches portcheck to look for plists containing shared/static
> libraries that are marked PKG_ARCH=*. Any comments/ok?

OK afresh1@

Probably should add a similar check to portgen to avoid setting
PKG_ARCH=* if we find something.  I added it to my TODO list.



> Index: portcheck
> ===================================================================
> RCS file: /cvs/ports/infrastructure/bin/portcheck,v
> retrieving revision 1.126
> diff -u -p -r1.126 portcheck
> --- portcheck 16 Nov 2018 10:08:38 -0000      1.126
> +++ portcheck 13 May 2019 11:56:39 -0000
> @@ -851,10 +851,12 @@ sub_checks() {
>                       make "${make_args[@]}" show="$vars" | {
>                               local comment fullpkgname modules pkg_arch
>                               local wantlib perm_pkg_cdrom perm_pkg_ftp
> +                             local arch_independent=false
>                               read -r comment
>                               read -r fullpkgname
>                               read -r modules
>                               read -r pkg_arch
> +                             [[ $pkg_arch == "*" ]] && arch_independent=true
>                               read -r wantlib
>                               read -r wantlib_ss
>                               read -r perm_pkg_cdrom
> @@ -865,7 +867,7 @@ sub_checks() {
>                                           "COMMENT${subpkg%-}, please"
>                               fi
>  
> -                             if [[ $pkg_arch == "*" && -n $wantlib ]]; then
> +                             if $arch_independent && [[ -n $wantlib ]]; then
>                                       if [[ $subpkg != - || -n $wantlib_ss 
> ]]; then
>                                               err "${portref}non-empty 
> $wantlib_var for" \
>                                                   "arch-independent package"
> @@ -881,7 +883,8 @@ sub_checks() {
>                                           print-plist-with-depends || true) \
>                                           </dev/null |&
>                                       check_plist "$portref" "$fullpkgname" \
> -                                         "$flavor" "${subpkg%-}" "$modules"
> +                                         "$flavor" "${subpkg%-}" "$modules" \
> +                                         "$arch_independent"
>                                       check_lib_depends "$portref" "$subpkg" \
>                                           "$modules" "$wantlib"
>                                       wait
> @@ -935,6 +938,8 @@ sub_checks() {
>  #
>  #   * @rcscript items and pkg-readmes have @mode, @owner and @group reset.
>  #
> +#   * PKG_ARCH is not set to * if a library is present.
> +#
>  check_plist() {
>       $debugging && echo "CALLED: check_plist($*)" >&2
>  
> @@ -943,6 +948,7 @@ check_plist() {
>       local flavor_list=$1; shift
>       local subpkg=$1; shift
>       local modules_list=$1; shift
> +     local arch_independent=$1; shift
>  
>       local flavor is_static=false
>       for flavor in $flavor_list; do
> @@ -982,6 +988,7 @@ check_plist() {
>  
>       local qml_found=false qt5_qml_found=false non_qt5_qml_found=false
>       local qt4_dep=false qt5_dep=false qt5declarative_dep=false
> +     local lib_found=false
>  
>       local owner_set=false group_set=false mode_set=false
>       local readme_seen=false
> @@ -1071,6 +1078,7 @@ check_plist() {
>                       ;;
>               lib/qt5/qml/*)
>                       qml_found=true
> +                     lib_found=true
>                       qt5_qml_found=true
>                       ;;
>               */qmldir)
> @@ -1078,6 +1086,10 @@ check_plist() {
>                       non_qt5_qml_found=true
>                       ;;
>  
> +             *.so|*.a|*.so.*)
> +                     lib_found=true
> +                     ;;
> +
>               share/dbus-1/system-services/*)
>                       dbus_suid_dep_needed=true
>                       ;;
> @@ -1204,6 +1216,9 @@ check_plist() {
>       $qt5_dep && ! $qt4_dep && $non_qt5_qml_found &&
>               err "${portref}depends on Qt5 but installs QML files" \
>                   "outside PREFIX/lib/qt5/qml/"
> +
> +     $lib_found && $arch_independent &&
> +             err "${portref}arch-independent package contains library files"
>  
>       # dbus,-suid
>       if $dbus_suid_dep_needed && ! $dbus_suid_dep && ! $is_dbus_suid; then
> 

-- 
andrew - http://afresh1.com

A printer consists of three main parts:
        the case, the jammed paper tray and the blinking red light.

Reply via email to