[Distutils] Re: CPAN functionality for python

Rene Liebscher R.Liebscher at gmx.de
Tue Feb 27 04:44:51 EST 2001

Sean Reifschneider wrote:
> On Tue, Feb 27, 2001 at 10:02:46AM +0100, Rene Liebscher wrote:
> >3. feed the meta data and the directory in distutils
> >   bdist_{rpm|debian|...) and create a package for the
> >   users prefered system (RPM,...)
> As I understand it, the bdist_* can create a binary RPM from a set of
> pre-compiled binaries?  Can this be used in conjunction with the other
> distutils tools to actually take the source file and turn it into
> the binaries on a given platform?

The bdist_* commands do an install in a temporary directory and create
from this a package (RPM,...).
I think it is not a big deal to provide an already existing directory
create from it a package.

rob at cvs/distutils >python setup.py bdist_rpm --help
Global options:
  --verbose (-v)  run verbosely (default)
  --quiet (-q)    run quietly (turns verbosity off)
  --dry-run (-n)  don't actually do anything
  --help (-h)     show detailed help message

Options for 'bdist_rpm' command:
  --bdist-base         base directory for creating built distributions
  --rpm-base           base directory for creating RPMs (defaults to
                       under --bdist-base; must be specified for RPM 2)
  --dist-dir (-d)      directory to put final RPM files in (and .spec
files if
  --python             path to Python interpreter to hard-code in the
                       file (default: "python")
  --fix-python         hard-code the exact path to the current Python
                       interpreter in the .spec file
  --spec-only          only regenerate spec file
  --source-only        only generate source RPM
  --binary-only        only generate binary RPM
  --use-bzip2          use bzip2 instead of gzip to create source
  --distribution-name  name of the (Linux) distribution to which this
                       applies (*not* the name of the module
  --group              package classification [default:
  --release            RPM release number
  --serial             RPM serial number
  --vendor             RPM "vendor" (eg. "Joe Blow <joe at example.com>")
                       [default: maintainer or author from setup script]
  --packager           RPM packager (eg. "Jane Doe
                       <jane at example.net>")[default: vendor]
  --doc-files          list of documentation files (space or
  --changelog          path to RPM changelog
  --icon               name of icon file
  --provides           capabilities provided by this package
  --requires           capabilities required by this package
  --conflicts          capabilities which conflict with this package
  --build-requires     capabilities required to build this package
  --obsoletes          capabilities made obsolete by this package
  --keep-temp (-k)     don't clean up RPM build directory
  --no-keep-temp       clean up RPM build directory [default]
  --use-rpm-opt-flags  compile with RPM_OPT_FLAGS when building from
  --no-rpm-opt-flags   do not pass any RPM CFLAGS to compiler
  --rpm3-mode          RPM 3 compatibility mode (default)
  --rpm2-mode          RPM 2 compatibility mode

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help
May be it is enough to specify --bdist-base and --binary-only.
The other option could get values from some downloaded meta data.

> If so, that's exactly what we need...
> Once I have the archive network back-end done, I'm going to start looking at
> the client.  I'm getting fairly close to a bare-bones server as it is
> (without the admin tools -- adding a package requires some SQL).
> I've only looked passingly at the distutils, but will obviously have to
> get further into it shortly.
> Thanks,
> Sean
> --
>  Any sufficiently advanced technology is indistinguishable from a rigged demo.
> Sean Reifschneider, Inimitably Superfluous <jafo at tummy.com>
> tummy.com - Linux Consulting since 1995. Qmail, KRUD, Firewalls, Python

More information about the Python-list mailing list