install looking in $WRKDIR/stage/*/site_perl/mach/5/ but */mach/5.20 exists

parv at pair.com parv at pair.com
Thu Sep 24 14:12:55 UTC 2015


In short, it was operator error.


in message <20150924131433.GA58316 at holstein.holy.cow>,
wrote parv at p thusly...
...
>   pkg-static: Unable to access file \
>     /misc/work/ports/misc/ports/devel/p5-subversion/work/stage/misc/local/lib/perl5/site_perl/mach/5/SVN/Repos.pm: \
>     No such file or directory
...
> So making a symbolic link from ...
>
>   $WRKDIR/stage/misc/local/lib/perl5/site_perl/mach/5
>
> ... to the directory actually existing ...
>
>   $WRKDIR/stage/misc/local/lib/perl5/site_perl/mach/5.20
>
> ... allows them to be installed but have to do for every one.

I see that */mach/5 path is from SITE_ARCH variable (after reading
pkg-plist) ...

  # make -V SITE_ARCH
  /misc/local/lib/perl5/site_perl/mach/5


... which in turn is derived SITE_ARCH_REL from from PERL_VER

  /misc/ports/Mk/Uses/perl5.mk:# SITE_ARCH        - Directory name where arch site specific perl packages go.
  /misc/ports/Mk/Uses/perl5.mk:SITE_ARCH_REL?=    ${SITE_PERL_REL}/${PERL_ARCH}/${PERL_VER}
  /misc/ports/Mk/Uses/perl5.mk:SITE_ARCH?=        ${LOCALBASE}/${SITE_ARCH_REL}
  /misc/ports/Mk/Uses/perl5.mk:QA_ENV+=   SITE_ARCH_REL=${SITE_ARCH_REL} LIBPERL=libperl.so.${PERL_VER}
  /misc/ports/Mk/Uses/perl5.mk:           SITE_ARCH=${SITE_ARCH_REL}
  /misc/ports/Mk/Uses/perl5.mk:           --install_path arch="${PREFIX}/${SITE_ARCH_REL}" \
  /misc/ports/Mk/Uses/perl5.mk:PACKLIST_DIR?=     ${PREFIX}/${SITE_ARCH_REL}/auto

... which produces the "5" ...

  #  make -V PERL_VER
  5


... oh, found the culprit (PERL_VERSION being 5.20 instead of 5.20.3
in /etc/make.conf) after seeing variable substitution ...

  Uses/perl5.mk
    10  # PERL_VERSION - Full version of perl5 (see below for current value).
    12  # PERL_VER - Short version of perl5 (major.minor without patchlevel)
    16  # the patch level. E.g., PERL_VERSION=5.14.4 would give
    47  .if defined(PERL_VERSION)
    63  # Force PERL_PORT here in case two identical PERL_VERSION.
    70  PERL_VER?= ${PERL_VERSION:C/\.[0-9]+$//}


... after reading Uses/perl5.mk further followed by
bsd.default-versions.mk, I have removed (commented out) PERL_VERSION &
PERL5_DEFAULT variables from (in) /etc/make.conf. That led to ...

  # make -V SITE_ARCH
  /misc/local/lib/perl5/site_perl/mach/5.20


WHEEEE!


  - parv

-- 



More information about the freebsd-perl mailing list