[oi-dev] perl module update questions

Tim Mooney Tim.Mooney at ndsu.edu
Tue Mar 10 21:35:47 UTC 2020


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

>>> 1) I've found one or two cases like
>
> >>  oi-userland/components/perl/xml-simple/xml-simple-PERLVER.p5m
>
>>> where the .p5m file contains an explicit dependency upon the
>>> non-perl-specific metapackage:
>
>>>        depend fmri=library/perl-5/xml-parser type=require
>
>>> Should all of the perl-version-specific packages have this dependency
>>> relation?
>
> Yes, all version-specific packages should depend on non-version-specific package, and that one should provide (and automatically provides) conditional dependency on version-specific package, I mean:
>
> depend fmri=library/perl-5/xml-parser-522 at 2.44,5.11-2018.0.0.0 predicate=runtime/perl-522 type=conditional
> depend fmri=library/perl-5/xml-parser-524 at 2.44,5.11-2018.0.0.0 predicate=runtime/perl-524 type=conditional

Thanks Alexander!  That helps a lot.

I will make a point of adding the non-perl-specific dependency to any
perl module packages that are missing it, as I update them.

>>> 2) If I publish e.g. xml-parser, with my runtime/perl-530 installed,
>>> there are 4 xml-parser packages generated:
>
>>>       library/perl-5/xml-parser                         2.44-2020.0.0.1
>
>>> What's the correct terminology for the first package
>>> (library/perl-5/xml-parser)?  Is it a mediator?
>
> No, mediator is a special image attribute which manages default program implementation.
> Don't know a correct terminology for this common package.

Ok, understood.  I just wanted to try use the correct terminology (if
there was one).

>>> 3) many of the perl modules currently have a 'history' file.  This seems
>>> to trigger some additional behavior from the publish target, apparently
>>> via make-rules/history.mk.  In these cases, publish is generating an
>>> additional versioned package and adding it to my repo.  The package
>>> doesn't have any file contents, though, and it's flagged as "obsolete".
>>> What's the purpose of all of that?
>
> It generates packages whith pkg.obsolete or pkg.renamed attribute, which
> makes pkg remove this package on update or replace it with another
> package. This is a mechanism of removing old packages.

Ah, that makes sense.

I think that means that I don't need to do anything with any of the
history files *yet*, but if the runtime/perl-530 and the updated modules
pass testing and eventually become the new default, then eventually
we'll want to add the -522 and -524 module packages to the history file,
so that they too become obsolete and are replaced by the -530 module
packages.

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




More information about the oi-dev mailing list