CPANPLUS::Dist::Mageia - A CPANPLUS backend to build Mageia RPMs


version 2.103


    $ cpan2dist --format=CPANPLUS::Dist::Mageia Some::Random::Package


CPANPLUS::Dist::Mageia is a distribution class to create Mageia packages from CPAN modules, and all of their dependencies. This allows you to have the most recent copies of CPAN modules installed, using your package manager of choice, but without having to wait for central repositories to be updated.

You can either install them using the API provided in this package, or manually via the rpm command.

Some of the bleading edge CPAN modules have already been turned into Mageia packages for you, and you can make use of them by adding the Cauldron repositories (“core/release”).

Note that these packages are built automatically from CPAN and are assumed to have the same license as perl and come without support. Please always refer to the original CPAN package if you have questions.


my $bool = CPANPLUS::Dist::Mageia->format_available;

Return a boolean indicating whether or not you can use this package to create and install modules in your environment.

It will verify if you are on a Mageia system, and if you have all the necessary components avialable to build your own Mageia packages. You will need at least these dependencies installed: rpm, rpmbuild and gcc.

my $bool = $mga->init;

Sets up the CPANPLUS::Dist::Mageia object for use. Effectively creates all the needed status accessors.

Called automatically whenever you create a new CPANPLUS::Dist object.

my $bool = $mga->prepare;

Prepares a distribution for creation. This means it will create the RPM .spec file needed to build the RPM and source RPM. This will also satisfy any prerequisites the module may have.

Note that the .spec file will be as accurate as possible. However, some fields may be wrong (especially the description, and maybe the summary) since it relies on parsing POD to find this information.

Returns true on success and false on failure.

You may then call $mga->create on the object to create the RPM from the spec file, and then $mga->install on the object to actually install it.

my $bool = $mga->create;

Builds the RPM file from the spec file created during the create() step.

Returns true on success and false on failure.

You may then call $mga->install on the object to actually install it.

my $bool = $mga->install;

Installs the RPM using rpm -U. If run as a non-root user, uses sudo. This assumes that current user has sudo rights (without password for max efficiency) to run rpm.

Returns true on success and false on failure


Scan for proper license

Right now we assume that the license of every module is the same as perl itself. Although correct in almost all cases, it should really be probed rather than assumed.

Long description

Right now we provide the description as given by the module in its meta-data. However, not all modules provide this meta-data and rather than scanning the files in the package for it, we simply default to the name of the module.


CPANPLUS::Backend, CPANPLUS::Module, CPANPLUS::Dist, cpan2dist, rpm, urpmi

You can look for information on this module at:


Jerome Quelin


This software is copyright (c) 2011 by Jerome Quelin.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.