Re: Language specific versions - man pages

Alexander Hansen <[email protected]> Mon, 24 Jul 2017 09:25:44 -0700
Newsgroups gmane.os.apple.fink.devel
Message-ID <[email protected]>
> On Jul 23, 2017, at 15:45, Scott Hannahs via Fink-devel <[email protected]> wrote:
> 
> Once again….  Since I am updating some of my fink packages, I should do them all!
> 
> I seem to be unclear on how a language version typed build installs non-version typed man pages?
> 
> I am updating config-inifiles-pm as it has gone horribly out of date.  It is a fairly vanilla bare bones .info file.  But the build -m gives the error:
> 
> Validating .deb dir /sw/src/fink.build/root-config-inifiles-pm5162-2.94-5...
> Error: File in a language-versioned package does not have a pathname specific to that version.
> 	Offending file: /sw/share/man/man3/Config::IniFiles.3pm
> 
> Well, yes, the man page is not versioned.  So where should I put it?  Should it be versioned?  Or should the man page be the same for both 
> 
> The type is the normal:
> Type: perl (5.16.2 5.18.2)
> 
> And my dependencies are:
> # Dependencies
> Depends: <<
>    perl%type_pkg[perl]-core,
>    scalar-list-utils-pm%type_pkg[perl],
>    io-stringy-pm
> <<
> 
> The install phase uses whatever is done for default testing and installation for perl modules:
> # Install Phase:
> UpdatePOD: true
> DocFiles: Changes LICENSE MANIFEST README
> 
> I think I can build it as a non-typed language file but it has a dependency on scalar-list-utils-pm which is typed.  It seems that once you have a version specific file any builds that depend on that version must also be version specific.
> 
> Do I explicitly write out the install phase and then change the man page to Config::IniFiles-pm5162.3pm or something ugly like that?  Google only points me to a failed build world list that Hanspeter posted and the manual seems to show that man pages for different versions are all in the same location.  (i.e. there is no /$version/ sub directory for man1 and man3).  From the fink manual:
> 
> If the type is perl $version with the version specified (e.g., $version might be 5.6.0), then the default becomes:
> 
> perl$version Makefile.PL \
> PERL=perl$version PREFIX=%p \
> INSTALLPRIVLIB=%p/lib/perl5/$version \
> INSTALLARCHLIB=%p/lib/perl5/$version/$perlarchdir \
> INSTALLSITELIB=%p/lib/perl5/$version \
> INSTALLSITEARCH=%p/lib/perl5/$version/$perlarchdir \
> INSTALLMAN1DIR=%p/share/man/man1 \
> INSTALLMAN3DIR=%p/share/man/man3 \
> INSTALLSITEMAN1DIR=%p/share/man/man1 \
> INSTALLSITEMAN3DIR=%p/share/man/man3 \
> INSTALLBIN=%p/bin \
> INSTALLSITEBIN=%p/bin \
> INSTALLSCRIPT=%p/bin
> make
> make test
> 
> -Scott
> 


It looks like the manual needs updating.  There is actually a relatively easy workaround available, which is the perl-versioned locations available in MANPATH:

$ printenv MANPATH
/sw/share/man:/sw/lib/perl5/5.18.2/man:/usr/local/share/man:/usr/share/man:/opt/X11/share/man:/Applications/Xcode.app/Contents/Developer/usr/share/man:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man:/sw/lib/perl5-core/5.16.2/man:/sw/lib/perl5/5.16.2/man

If you install the manpages under %p/lib/perl5/%type_raw[perl]/man they will be available automatically.
-- 
Alexander Hansen, Ph.D.
Fink User Liaison


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Fink-devel mailing list
[email protected]
List archive:
https://sourceforge.net/p/fink/mailman/fink-devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel