RPM/CPAN spec generation

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

 



So, I've been tinkering with a process to "refresh" or generate a spec
file, with a couple goals in mind...  #1 of which is "make generation
and updating of Perl specs as routine and trivial as possible, so I
only have to think about the parts that actually require thinking."

* use CPAN-based metadata to drive the generation as much as possible,
e.g. META.yml
* drive/augment RPM metadata from CPAN-based metadata
* be repeatable, extensible, and as near trivial to use as practical
* be overridable on a per-package basis (e.g. force BR inclusion, etc)

It's still wicked early, but I have it going with generating new specs
(and srpms), and updating current ones.  There are some serious
caveats at the moment (e.g. doesn't handle subpackages very well at
all).  I've tried to be fairly pragmatic with respect to spec
updating/generation -- e.g. explicitly generate "requires" rpm
metadata -- but given how inadequate the current RPM Perl autoprov/req
scripts are I don't feel very bad about it at all.  (Now, if only more
META.yml's would include provides info...  Though that shouldn't be
too hard to rig ourselves.)  This is also made easier by certain RPM
macros we now have, e.g. %perl_default_filter to take care of the most
common auto-dep issues, etc.

Right now:
* CPANPLUS/META.yml-driven updates
* Software::License is used to help determine s/w license
* Moose::Role based plugins / extensions
* Template::Toolkit used for spec (re)generation
* very basic per-package overrides (see, e.g. perl-Moose in CVS and auto.ini)

Stuff I'll be working on in the near future[1]:
* more command options (e.g. write the spec to a file, already)
* the ability to query the system rpmdb / remote yum repos to
determine if the build/install requires are met
* missing dep subpackage generation (a la cpanspec)
* filter "suspect" requires (e.g. don't generate "Requires: Test::More")
* Fedora-specific options, e.g. "make new-source", kick off koji builds, etc
* clean up some of the uglier code liberated from CPANPLUS::Dist::RPM
and the old plugins system
* Document, tests, document, repeat

http://github.com/RsrchBoy/fedora-app-maintainertools
http://search.cpan.org/dist/Fedora-App-MaintainerTools/ (0.003 should
be out shortly)

e.g., when installed (or from the tarball):

new spec/srpm:

    maintainertool new-spec CGI-Compile

update an existing spec:

    maintainertool update-spec perl-Moose.spec

etc.  update-spec is probably best kept away from deviant spec files,
as it'll probably end up clobbering something.

                      -Chris

[1] Though with perhaps a slightly lower level of urgency given that
we're "not-frozen" now :)
-- 
Chris Weyl
Ex astris, scientia
--
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