Creating a PPA for nux, compiz and unity

Here’s a short guide with the steps I followed to create a ppa with a modified version of compiz, nux and unity.

Building the source

Here’s how I organized the code. I checked out everything in a directory called “staging” in ~/canonical:

$ tree -d ~/canonical/staging/ -L 1
/home/eleni/canonical/staging/
├── compiz
├── nux
└── unity

where, I applied my changes, built and tested the branch  following the steps described in this blog post.

I made sure all my changes were commited:

$ bzr commit 
$ bzr stat

At the end, my ~/canonical/staging directory was like that and bzr stat returned no changes for compiz, nux, unity:

$ tree -d ~/canonical/staging/ -L 1
/home/eleni/canonical/staging/
├── bin
├── compiz
├── etc
├── include
├── lib
├── nux
├── share
└── unity

Creating the .change, .dsc, tarballs

Before I create the ppa, I had to pack compiz, nux and unity.

Here’s what I did:

Tools installation

# apt-get install ubuntu-dev-tools

Compiz patch and packagement

$ cd ~/canonical/staging/compiz

Changelog modification:

$ export DEBFULLNAME="my_name"
$ export DEBEMAIL="my_email"
$ export DEBSIGN_KEYID="my_gpg_key_id"

$ dch -i

Notes:

  • The email had to be the one used by the gpg key
  • The gpg key had to be imported into launchpad (see: https://help.launchpad.net/YourAccount/ImportingYourPGPKey)
  • The key id can be found by typing:
     gpg --list-keys
  • The change in the changelog should contain a version (eg yakkety) :s/UNRELEASED/desired_ubuntu_version

Compiz build:

$ debuild -S

(I was prompt to enter passphrase for the gpg key.)

Note: since compiz was a bzr branch I could have used:

$ bzr bd -S

instead of debuild.

After this step there were some new .dsc, .changes and .tar.gz files in the ~/canonical/staging directory. Something like that:

 $ tree -L 1
.
├── bin
├── compiz
├── compiz_0.9.12.2+16.10.20160526-0ubuntu3.dsc
├── compiz_0.9.12.2+16.10.20160526-0ubuntu3_source.changes
├── compiz_0.9.12.2+16.10.20160526-0ubuntu3.tar.gz
├── etc
├── include
├── lib
├── libexec
├── nux
├── share
└── unity

Unity

Same as above:

$ cd ~/canonical/staging/unity
$ dch -i
$ debuild -S

there must be more new files in ~/canonical/staging:

.
├── bin
├── compiz
├── compiz_0.9.12.2+16.10.20160526-0ubuntu3.dsc
├── compiz_0.9.12.2+16.10.20160526-0ubuntu3_source.changes
├── compiz_0.9.12.2+16.10.20160526-0ubuntu3.tar.gz
├── etc
├── include
├── lib
├── libexec
├── nux
├── share
├── unity
├── unity_7.5.0+16.10.20160606.1-0ubuntu2.dsc
├── unity_7.5.0+16.10.20160606.1-0ubuntu2_source.changes
└── unity_7.5.0+16.10.20160606.1-0ubuntu2.tar.gz

Nux

Same as before for unity and compiz.

Creating and configuring the ppa

First, I created the ppa on launchpad:

I went to my user’s page and under PPAs I selected “Add a new PPA” and I created a ppa named “lgfx”.

Then I locally configured dput to use sftp (https://help.launchpad.net/Packaging/PPA/Uploading#SFTP_and_older_versions_of_Ubuntu).

I edited the ~/.dput.cf to contain these lines (this step can be skipped):

[lgfx]
fqdn = ppa.launchpad.net
method = sftp
incoming = ~hikiko/lgfx/
login = hikiko
allow_unsigned_uploads = 0

where lgfx is my ppa name and hikiko my bzr/launchpad username.

Uploading packages to the ppa

In ~/canonical/staging:

$ dput ppa:hikiko/lgfx <compiz .changes filename>
$ dput ppa:hikiko/lgfx <nux .changes filename>
$ dput ppa:hikiko/lgfx <unity .changes filename>

Updating the ppa

Everytime I need to submit a change to a lgfx ppa package (lgfx nux, lgfx compiz or lgfx unity), I build the modified code locally and then I run dch, debuild, dput for the package.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s