I know that launchpad has the policy of only allowing upload of source packages on PPA's (as also explained here).

Yet, a python .deb package has all the source in it and it seems silly that one cannot use the stdeb extension and need to build the package manually... Is there a way to get around this?

EDIT: From the first answers it seems I should clarify that I am developer who wrote the code, so I am really looking for the quicker way to make my program become a .deb in my ppa. I normally get .deb package in my system with:

python setup.py --command-packages=stdeb.command bdist_deb

give that this allow me to reuse my setup.py script, which is standard in all python programs. I had a look at the python packaging guide here but it looks like I'm missing something, as it's hard to believe that in order to achieve the same result than the above one-liner I should work 10 times more... ?

  • Another option is pkgme; don't know much about the pros and cons.
    – poolie
    Sep 14, 2011 at 20:30

3 Answers 3


Looking at the README for that package, it supports building a Debian source package from your Python package via either the py2dsc utility or the sdist_dsc distutils command.

Once you've got a Debian source package, you should be able to upload it to your PPA with commands like:

# Unpack the source package:
dpkg-source -x package_version.dsc
# Prepare a signed package upload:
cd package-version/
debuild -S -sa
# Upload the source package:
cd ..
dput $ARCHIVE package_version.upload

No this is not possible.

And this is a good thing. Ideally the goal of packaging from source is that you can clearly see which changes are only present in debian/ubuntu, and which sources come from upstream. Choosing in which directory files should be placed is a change which is distribution specific, it should be in a file which is distribution specific, seperate from the other sources.

Note that a source package can be very simple: run dh_make in a package containing your source, update the control and copyright file and add the file you want to copy to the install file. If an update to the sources is there, you only have to unpack them and update the changelog.


This worked for me:

python setup.py --command-packages=stdeb.command debianize

From their README:

The debianize command builds a debian/ directory directly alongside your setup.py.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.