On 27/03/2022 14:22, Achim Gratz wrote:
Jon Turney writes:
A few comments after looking at:
lib/pkg_info.cygport: implement automatic determination of the
appropriate perl5_0xy requirement
1. In __list_deps(), this should look at the files list in $@, not at
files in $D, as that causes it to identify a perl5_0xy dependency for
all subpackages, irrespective of which package (if any) contains the
files in the vendor_perl directory.
2. This only identifies the perl5_0xy requirement for packages which
own files in the vendor_perl directory, not for packages which contain
executables or shared libraries dynamically linked with
cygperl5_xy.dll. That should at least be mentioned in the patch
commentary.
I've fixed both of these on the to-upstream branch I think.
Thanks.
I tried testing this on rxvt-unicode. It correctly adds the perl5_032
dependency due to linkage
But it also emits a bogus dependency on 'Carp'.
@@ -412,6 +413,7 @@ __list_deps() {
do
if [ -f ${d}/${pldep//:://}.pm ]
then
+ case "${d##*/}" in 5.[0-9][0-9])
plver+="$pldep " ;; esac
Is the mistake thinking pldep here is a pathname, not a module name?
alldeps+=" "${d}/${pldep//:://}.pm;
break;
fi
@@ -419,6 +421,17 @@ __list_deps() {
done
fi
+ plver=( $( echo "${plver}" | tr ' ' '\n' | sed -e
's/.*\///;s/5/perl5/;s/\./_0/' | sort -ru ) )
+ if [ "${#plver[@]}" -gt 1 ]
+ then
+ warning "More than one targeted Perl version: ${plver[*]},"
+ warning "using only the latest as dependency: ${plver[0]}."
+ fi
+ if [ "${#plver[@]}" -gt 0 ] && [ "${PN}" != "perl_base" ]
+ then
+ echo "${plver[0]}"
+ fi
+
if check_prog php-config
then
phpmoddir=$(php-config --extension-dir)