CPAN2AUR(1) User Contributed Perl Documentation CPAN2AUR(1)

cpan2aur - AUR maintainer utility for CPAN perl modules

cpan2aur [-v -f] <Module::Names /pkg/dirs/>
cpan2aur [-v -f] --directory <Module::Names>
cpan2aur [-v -f] --upload [Module::Names filenames.src.tar.gz
cpan2aur [-v -f] --check <file-names.src.tar.gz /pkg/dirs/>
-h, --help            Display this usage message.
-m, --man             Display full help manual page.
-v, --verbose         Allow CPANPLUS to be more verbose.
-f, --force           Overwrite files without asking.
-d, --directory       Create a source package directory with a standard
             template file.
-r, --reverse         Convert a PKGBUILD in the current directory to a
                      template file (
TODO: The upload feature is currently disabled due to AUR v4.0 changing
to a Git backend and HTTP Uploads removed.
-u, --upload  [dir]   Upload the generated source package to the AUR.
             [file]   * If a dir is specified cd to that dir and
           [module]     convert to a PKGBUILD to a
                        source package, then upload it.
                      * If a file is specified, upload it if it appears
                        to be a source package.
                      * If a module is specified, package and upload it.
                      * If nothing is specified, act upon the current
-c, --check   <dir>   Check if a source package or directory (with a
             <file>   source package or PGKBUILD in it) is outdated.
                      If so, then --upload a new version.
-n, --name <username> Specify a different username to login to the AUR,
                      instead of the last one used.
-p, --pass <password> Specify a password to use to login to AUR.
-m, --mono            Disable color output, use monochrome black/white.
-i, --inc     <dir>   Rebuild the source package, incrementing the
             <file>   release number.
(Unlike GNU options, single-letter options need their own hyphens
 example: -u -d)

This is a utility made for creating and uploading perl packages for the AUR (Archlinux User Repository). cpan2aur's simplest usage, without any flags, creates AUR source packages:

  • If you specify a Module::Name we create a source package file in the current directory.
  • If you specify a directory we will generate that template directory's source package.

With the -d or --directory flag cpan2aur will create a directory to contain the source package and generate a "" template inside it. This is best when starting to maintain a new AUR package that requires manual PKGBUILD tweaking.

Templates are a powerful way to make maintaining packages on the AUR easier. Most of the time you will not have to update the template, you will just use the --upload flag on a source package directory containing a template. This will convert the template to a PKGBUILD by filling in the new info for the new CPAN version.

With the -u or --upload flag cpan2aur will upload a source package to the AUR. It will try to Do The Right Thing (tm) for command line arguments. Arguments can be source package files, directories for source packages, or module/distribution names.

We store previous logins inside the file "~/.cpan2aur". The last username that was used will be retried. To use a different username, use the -n or --name flag or delete the "~/.cpan2aur" file.

You can even use the --check flag to check if a new version of the perl distribution is available on CPAN. If it is, cpan2aur will go through the --upload process. This is done by checking the versions of previously build .src.tar.gz files or PKGBUILDs.

For example, I keep a copy of the source packages I maintain inside my "~/aur" directory. Some of these packages I have created directories and files for, because they require more customization.

[juster@virtuarch ~]$ cd ~/aur
[juster@virtuarch aur]$ ls
perl-alpm-0.05-1.src.tar.gz  perl-text-csv-xs-0.70-1.src.tar.gz
perl-sepia                   perl-text-xsv-0.21-1.src.tar.gz
perl-text-csv                perl-tkx
[juster@virtuarch aur]$

Now to check and see if any of these packages need updating, I just use the --check flag to find new versions and upload them automatically.

[juster@virtuarch aur]$ cpan2aur --check perl-*
==> Checking if perl-alpm-0.05-1.src.tar.gz is up to date...
==> Looking up module for ALPM on CPAN...
perl-alpm-0.05-1.src.tar.gz is up to date.
==> Checking if perl-sepia is up to date...
==> Looking up module for Sepia on CPAN...
perl-sepia is up to date.
==> Checking if perl-text-csv is up to date...
==> Looking up module for Text-CSV on CPAN...
perl-text-csv is up to date.
==> Checking if perl-text-csv-xs-0.70-1.src.tar.gz is up to date...
==> Looking up module for Text-CSV_XS on CPAN...
perl-text-csv-xs-0.70-1.src.tar.gz is up to date.
==> Checking if perl-text-xsv-0.21-1.src.tar.gz is up to date...
==> Looking up module for Text-xSV on CPAN...
perl-text-xsv-0.21-1.src.tar.gz is up to date.
==> Checking if perl-tkx is up to date...
==> Looking up module for Tkx on CPAN...
perl-tkx is up to date.
[juster@virtuarch aur]$

It's kind of boring since I don't have anything outdated to upload but I hope you get the idea...

Created by: Justin Davis "<juster at cpan dot org>"

Serendipitously maintained by: John D Jones III "<jnbek at cpan dot org>"

Copyright 2010-2015 Justin Davis, all rights reserved.

Copyright 2015 John D Jones III, all rights reserved

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

2023-07-25 perl v5.38.0