I just want to use an Ubuntu package from the official Ubuntu repos, modify its source just a tiny bit (it will not affect dependencies or anything) and then upload it into a Launchpad PPA I made for it.

I don't want to become a professional Ubuntu package maintainer, so reading all the docs about creating an Ubuntu package from scratch is overkill for me.

So, are there some simple steps to take for this task?

PS: I'm doing this because of this bug in bpython and other things I may not like about Ubuntu packages in the official Ubuntu repos.

  • I assume it's about sharing for good. May 22 '12 at 16:57
  • @harisibrahimkv As Andrejs Cainikovs said: sharing. And maybe there will be more than this package I want to modify. Installing them all from source is not very comfortable.
    – dAnjou
    May 22 '12 at 16:59
  • 1
    If you have a fix, find a corresponding bug against the package (or file a new one), and include the patch. That way the patch gets shared and included in future Ubuntu versions (this way you also don't become a professional maintainer, since all maintainers are pretty much volunteers already)
    – Thomas Ward
    May 29 '12 at 16:47
  • Please remember to accept/upvote the best answer(s) to your question when possible (tick/check mark on the left). This way, the question is marked as "answered" and future readers can refer to it knowing the solution works. Thank you...:)
    – ish
    Sep 8 '12 at 7:48

So, are there some simple steps to take for this task?

It is only "simple" if you start with a package that exists in the Ubuntu or Debian repositories. Here's an outline:

  1. Use apt-get source to download the sources/diffs for the package and apply them.
  2. Go in inside the directory, apply your patches/make your changes.
  3. Use dch to update the Changelog with what you modded and "name" your custom version (usually a `ppa1~series1 type designation).
  4. Run debuild -S -sd or debuild -S -sa, depending on whether your original package sources exist in the target series repository or not.
  5. gpg-sign the package when prompted (the key'll need to be registered on Launchpad).
  6. Use dput to upload the xxxxxx.changes file to Launchpad, which will also include the diffs and maybe the source depending on what debuild switches you built
  7. Relax and keep checking your PPA for the build status/updates.

If you are backporting or using bleeding-edge Debian Sid sources, etc., it's a good idea to set up a chroot and between step 3 and 4, run dpkg-buildpackage -us -uc to nip any dependency issues in the bud.

  • Of course, I just had no time to try it yet, sorry.
    – dAnjou
    Jun 3 '12 at 11:15
  • 1
    When I was trying to do this, I found one step was missing. Before you debuild the package, you need to "dpkg-source --commit" if you've made changes to the package. This creates a patchfile containing your changes. debuild failed until I did that.
    – mandreko
    Jan 16 '14 at 15:43

Why not go one step further and share your bug fix with all other Ubuntu users?

The packaging guide has a fairly straightforward howto on the topic. You don't have to "read all the docs".

  • Not an answer to my question but definitely something I will consider doing. Thanks.
    – dAnjou
    May 30 '12 at 9:39
  • Actually it is. Publishing in a PPA isn't very different to getting the bug fix into the archives.
    – tumbleweed
    May 30 '12 at 10:14
  • Except that I don't have to wait for the next release because my change will not be considered as a security issue. Or am I missing something?
    – dAnjou
    May 30 '12 at 12:19
  • Right, but the work required is substantially the same, just different paperwork :) If it's a serious issue it can be fixed in -updates. And, if nobody fixes the issue in the next release, it won't be fixed then either.
    – tumbleweed
    May 30 '12 at 19:11

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.