When looking for a recent version of CMake 3.2 for Ubuntu 15.04 I came across this PPA. However, instead of CMake 3.2.1 I'd like to use version 3.2.3. How can I easily build upon the existing work done for that PPA to achieve that? I imagine some workflow like

  1. copy the packages from the PPA to my own newly created PPA
  2. somehow download the existing build recipes for version 3.2.1 (Using dget?)
  3. increase the version string in some file, adjust the changelog etc.
  4. push the build recipes back to Launchpad to see if it builds

So far I've only been able to find instructions on how to create new PPAs / packages from upstream sources (involving Bazaar branches and what not), but no easy instructions how to build upon existing PPA packages (preferably without involving Bazaar).

Note that I have no experience whatsoever with building / publishing PPAs, and that I'm starting from scratch.

  • How does that answer help me with creating my own PPA and packages based on another PPA's packages?
    – sschuberth
    Jun 30, 2015 at 8:56
  • Of course not. But I was assuming that there must be some sort for build recipe as part of the existing PPA packages that says something like "download cmake version X from server Y and apply patches Z". And I'd simply like to make X say 3.2.3 instead of 3.2.1 so the proper sources get downloaded.
    – sschuberth
    Jun 30, 2015 at 9:02
  • Ask @NathanOsman in the chat. =)
    – A.B.
    Jun 30, 2015 at 9:06
  • I already wrote him a mail, but I'd not like to bother other PPA maintainers too much, but instead to the work myself if possible.
    – sschuberth
    Jun 30, 2015 at 9:17
  • Ask him here: chat.stackexchange.com/rooms/201/ask-ubuntu-general-room
    – A.B.
    Jun 30, 2015 at 9:29

1 Answer 1

  1. Download cmake 3.2.3 from here.

  2. Extract the tarball, the path should be cmake-3.2.3.

  3. Now rename the tarball:

    mv cmake-3.2.3.tar.gz cmake_3.2.3.orig.tar.gz
  4. Download the packaging part from the ppa for 15.04.

  5. Extract cmake_3.2.1-1ppa3~vivid1.debian.tar.xz into cmake-3.2.3

      ├── debian
      │   ├── changelog
  6. Update the debian/changelog as follow (just change the signature):

    cmake (3.2.3-1ppa1~vivid1) vivid; urgency=medium
      * New upstream release.
     -- Sylvain Pineau <[email protected]>  Tue, 30 Jun 2015 11:24:26 +0200
    cmake (3.2.1-1ppa3~vivid1) vivid; urgency=medium
      * Fix path to icons in cmake-qt-gui.
     -- Nathan Osman <[email protected]>  Mon, 30 Mar 2015 17:59:20 -0700
  7. Install the build dependencies:

    sudo apt-get build-dep cmake
    sudo apt-get install liblzma-dev
  8. Build a new source package for cmake with:

    cd cmake-3.2.3
    dpkg-buildpackage -S
  9. Upload the source package to your ppa with:

    cd ..
    dput ppa:<user_name>/<ppa_name> cmake_3.2.3-1ppa1~vivid1_source.changes
  10. Monitor the build progress in your ppa homepage

  • Thanks a lot, that works. I just had to do apt-get build-dep cmake before to install the build dependencies. Is there any value in using dch here instead of editing the changelog manually?
    – sschuberth
    Jun 30, 2015 at 13:20
  • @sschuberth Sorry for the missing step (I did it as well but forgot to paste it). If you're familiar with the dch syntax that's even better. Manual edits are too error-prone so it's a good reason to rely on dch. Jun 30, 2015 at 13:44
  • 1
    Thanks again. Even if it probably is quite specific to my use-case I've wrapped the steps in a script, maybe that's useful to someone.
    – sschuberth
    Jul 1, 2015 at 12:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .