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:
1 2 3 4 5 |
$ 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:
1 2 |
$ bzr commit $ bzr stat |
At the end, my ~/canonical/staging directory was like that and bzr stat returned no changes for compiz, nux, unity:
1 2 3 4 5 6 7 8 9 10 |
$ 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
1 |
# apt-get install ubuntu-dev-tools |
Compiz patch and packagement
1 |
$ cd ~/canonical/staging/compiz |
Changelog modification:
1 2 3 4 5 |
$ 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:
1gpg --list-keys - The change in the changelog should contain a version (eg yakkety) :s/UNRELEASED/desired_ubuntu_version
Compiz build:
1 |
$ debuild -S |
(I was prompt to enter passphrase for the gpg key.)
Note: since compiz was a bzr branch I could have used:
1 |
$ 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Β $ 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:
1 2 3 |
$ cd ~/canonical/staging/unity $ dch -i $ debuild -S |
there must be more new files in ~/canonical/staging:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
. βββ 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):
1 2 3 4 5 6 |
[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:
1 2 3 |
$ 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.