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

Packaging software for Cheeseshop and Debian



Howdy all,

In the thread Message-ID: <[🔎] 87y7enxx7d.fsf@benfinney.id.au>, I asked
about package-private modules interacting with setuptools and the
Debian Python policy. In retrospect it seems I've got some more
fundamental learning to do.

I'm not well-versed in Python setuptools or distutils, so I'm probably
making many mistakes. I've read the documentation for both, but it's
not gelling in my mind.

Moreover, I want to package software using setuptools *and* package
the same software for Debian. Hence, I run into the issues familiar to
most on this list, where the practices of setuptools users and
developers clash with the practices of Debian packaging.

There doesn't seem to be a great deal of common ground: most of what
the setuptools folks recommend is contradicted by what the Debian
packagers of Python software recommend. No doubt both have their good
and bad arguments for their way of doing things.

Meanwhile, I'm stuck trying to learn how to satisfy both, because
complying with active conventions and standards is valuable enough to
work at.


So, I ask for help with this specific package, in the hope that I can
learn more general lessons about packaging software for both Python's
Cheeseshop and the Debian package system.

    <URL:http://cheeseshop.python.org/pypi/gracie/>
    <URL:http://pypi.python.org/packages/source/g/gracie/gracie-0.2.5.tar.gz>

When I run './setup.py bdist_egg', I get an egg containing *only* the
modules, not the program 'bin/gracied'. What am I doing wrong that is
omitting the program from the package? How do I ensure that it will be
installed properly from the package?

Also, when installing this package, the destination for the modules is
the system 'site-packages' directory. These modules, though, are
specific to this package and its programs; I'd prefer to have them
installed to a different place, but have no idea how to specify that
as part of the package metadata or in the 'setup.py'.

(I'm *not* talking about the install-time option of *overriding* the
default location, but rather to set the location default in the
'setup.py' or other package configuration.)


As for packaging this for Debian, what do I need to do in addition to
addressing the above? Bear in mind that I intend to continue
maintaining this as a setuptools package "upstream", for two reasons:
I want the benefits of setuptools as already described elsewhere, and
I want to know how to do this when I'm *not* the upstream developer.

Thanks for reading, and I hope my learning process can be instructive
to others.

-- 
 \     "Once consumers can no longer get free music, they will have to |
  `\     buy the music in the formats we choose to put out."  -- Steve |
_o__)                                  Heckler, VP of Sony Music, 2001 |
Ben Finney



Reply to: