[oi-dev] perl module update questions

Alexander Pyhalov alp at sfedu.ru
Tue Mar 17 04:41:18 UTC 2020


1) REQUIRED_PACKAGES is a list of packages which are used to resolve dependencies.
This doesn't mean that packages, built from such component, depends on all specified REQUIRED_PACKAGES (or only on them).
2) depend actions in manifest (besides depens fmri=__TBD) are not resolved, but used as is.
Likely you have to specify exact perl version in versioned manifest (better - via FMRI=__TBD style dependencies).

С уважением,
Александр Пыхалов,
программист отдела телекоммуникационной инфраструктуры
управления информационно-коммуникационной инфраструктуры ЮФУ


________________________________________
От: Tim Mooney <Tim.Mooney at ndsu.edu>
Отправлено: 16 марта 2020 г. 22:03
Кому: oi-dev at openindiana.org
Тема: Re: [oi-dev] perl module update questions

In regard to: Re: [oi-dev] perl module update questions, Alexander Pyhalov...:

> Have you run gmake REQUIRED_PACKAGES?

For all other types of software builds, I always build that target,
but for perl modules I've been trying to avoid REQUIRED_PACKAGES,
because it generally adds this to the end of the Makefile:

# Auto-generated dependencies
REQUIRED_PACKAGES += runtime/perl-522
REQUIRED_PACKAGES += runtime/perl-524
REQUIRED_PACKAGES += runtime/perl-530

I've been trying to avoid having a module built for e.g. perl 5.30
also depend on runtime/perl-524 and runtime/perl-522.

That's why I've been manually adding this to the .p5m:

# make this module depend upon only the perl version it was built for.
depend fmri=runtime/perl-$(PLV) type=require

Shouldn't that accomplish the same thing, but more precisely?

> On gmake publish only packages in REQUIRED_PACKAGES variable are
> examined as dependencies.  gmake REQUIRED_PACKAGES tries to populate
> this list , running resolve against all currently installed packages.

Are you saying that pkgdepend resolve does *not* look at any specific
'depend' lines in the manifest?

Tim

> ________________________________________
> От: Tim Mooney <Tim.Mooney at ndsu.edu>
> Отправлено: 16 марта 2020 г. 21:17
> Кому: oi-dev at openindiana.org
> Тема: Re: [oi-dev] perl module update questions
>
> In regard to: perl module update questions, Tim Mooney said (at 12:38pm on...:
>
>> All-
>>
>> I'm working my way through rebuilding hipster's perl modules for perl
>> 5.30.1 and I have a couple questions.
>
> I've run into a couple of perl modules for which the publish targets
> "pkgdepend resolve" phase outputs dependency errors like:
>
> /export/home/mooney/oi-userland/components/perl/DBI/build/manifest-i386-DBI-524.depend has unresolved dependency '
>     depend type=require fmri=__TBD pkg.debug.depend.file=perl \
>         pkg.debug.depend.path=usr/perl5/5.24/bin \
>         pkg.debug.depend.reason=usr/perl5/5.24/bin/dbiprof \
>         pkg.debug.depend.type=script'.
>
> Or
>
> /export/home/mooney/oi-userland/components/perl/Module-Build/build/manifest-i386-Module-Build-530.depend has unresolved dependency '
>     depend type=require fmri=__TBD pkg.debug.depend.file=perl \
>         pkg.debug.depend.path=usr/perl5/5.30/bin \
>         pkg.debug.depend.reason=usr/perl5/5.30/bin/config_data \
>         pkg.debug.depend.type=script'.
>
>
> What, specifically, is pkgdepend saying is missing?  The path (directory)
> usr/perl5/5.30/bin ?  Or is it saying that 'perl' is missing in
> usr/perl5/5.30/bin ?
>
> I can make pkgdepend ignore the error by doing:
>
> <transform file path=usr/perl5/$(PERLVER)/bin -> set pkg.depend.bypass-generate .* >
>
> but if there's a way to fix the dependency issue, rather than ignore it,
> I would prefer to take that approach.
>
> At first I thought it was because the perl module was missing a dependency
> on the perl runtime that it's built for.  However, including
>
>        depend fmri=runtime/perl-$(PLV) type=require
>
> in the .p5m, although probably a good idea anyway, doesn't resolve the
> issue.
>
> Then I thought it was because perl 5.22 and 5.24 don't actually have
> a 'dir' action for their bin directory, so maybe it was pkgdepend
> complaining that the runtime/perl-$(PLV) isn't actually claiming
> ownership of path=usr/perl/$(PERLVER)/bin .  However, adding dir
> actions like
>
> dir  path=usr/perl5/5.30
> dir  path=usr/perl5/5.30/bin
>
> for the runtime/perl-530 didn't make any difference for the modules
> built against perl 5.30.
>
> With those two tries not solving the dependency issue, I'm not sure what
> the right fix is.  Any suggestions?
>
> Thanks,
>
> Tim
> --
> Tim Mooney                                             Tim.Mooney at ndsu.edu
> Enterprise Computing & Infrastructure /
> Division of Information Technology    /                701-231-1076 (Voice)
> North Dakota State University, Fargo, ND 58105-5164
>
> _______________________________________________
> oi-dev mailing list
> oi-dev at openindiana.org
> https://openindiana.org/mailman/listinfo/oi-dev
>
> _______________________________________________
> oi-dev mailing list
> oi-dev at openindiana.org
> https://openindiana.org/mailman/listinfo/oi-dev
>

--
Tim Mooney                                             Tim.Mooney at ndsu.edu
Enterprise Computing & Infrastructure /
Division of Information Technology    /                701-231-1076 (Voice)
North Dakota State University, Fargo, ND 58105-5164




More information about the oi-dev mailing list