4

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.

5
  • How does that answer help me with creating my own PPA and packages based on another PPA's packages? – sschuberth Jun 30 '15 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 '15 at 9:02
  • Ask @NathanOsman in the chat. =) – A.B. Jun 30 '15 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 '15 at 9:17
  • Ask him here: chat.stackexchange.com/rooms/201/ask-ubuntu-general-room – A.B. Jun 30 '15 at 9:29
5
  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

    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 <sylvain.pineau@canonical.com>  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 <nathan@quickmediasolutions.com>  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

3
  • 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 '15 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. – Sylvain Pineau Jun 30 '15 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 '15 at 12:07

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.