Perl packaging guidelines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear list,

Following the recent thread on the Packaging list [1], and
since those questions arise fairly often during reviews, I
think it'd be a good idea to discuss some possible updates to
our packaging guidelines.

We all have different opinions on Perl packaging but I'd like to
find some common ground and set some standard how to do things
to unify our style.  At least a little bit.

First, the dependencies, both build- and run-time.
Personally I like to list every module which is actually used
since this means the package only fails to build when
there's an actual issue, not just a change in the dependency
chain.  I also think not listing some modules only because
it's unlikely they'd get removed from core makes packaging
harder and more confusing, rather than the opposite.
Of course, we could compose and maintain a list of exceptions,
modules not required to be explicitly listed even when used,
however that's just extra, needless effort.
Additionally, there's no guarantee perl itself gets pulled
in, therefore I think it too should be build-required if it's
actually called in the spec (and it always is).

Second, the %{__perl} macro.
What are the benefits of using this (subjectively) ugly macro
compared to simple 'perl'?  The only case in which I find it
useful is when we actually require the absolute path, e.g. in
shebang corrections.

Third, the MODULE_COMPAT macro.
Currently our guidelines enforce the following form:
perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
I propose the following forms are also accepted (the latter
two in case we accept simple 'perl' too):
perl(:MODULE_COMPAT_%(eval "$(%{__perl} -V:version)"; echo $version))
perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
perl(:MODULE_COMPAT_%(eval "$(perl -V:version)"; echo $version))

Fourth, ExtUtils::MakeMaker vs Module::Build.
Module::Build is currently being deprecated and removed from
core, ExtUtils::MakeMaker becoming, once again, the preferred
way.  Our guidelines should be updated to reflect that.

And fifth, installation paths.
I suppose the guidelines should explicitly state the vendor
paths should be used.


That's all I can think of now.  Please, do share your views.
Also, what would you like to change or improve?

Thanks,
Petr

[1] https://lists.fedoraproject.org/pipermail/packaging/2013-July/009274.html

Attachment: pgpbNZyvljMBg.pgp
Description: PGP signature

--
Fedora Extras Perl SIG
http://www.fedoraproject.org/wiki/Extras/SIGs/Perl
perl-devel mailing list
perl-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/perl-devel

[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite Information]
  Powered by Linux