-
Notifications
You must be signed in to change notification settings - Fork 51
How to upload to Launchpad PPA repository (.deb packages)
How to publish eXe Learning on the Launchpad Personal Package Archive
- Team: https://launchpad.net/~exelearning/
- Team PPA: https://launchpad.net/~exelearning/+archive/exelearning
https://help.ubuntu.com/community/GnuPrivacyGuardHowto#Using_GnuPG_to_generate_a_key
$ gpg --gen-key
- select (1) RSA and RSA
- Keysize: accept 2048
- Valid for: accept 0
- Type name, email and comment (comment is optional)
- Type 0
- Type passphrase (twice)
- Follow instructions to help generate a random key
- Keep the Key ID and fingerprint text, you will need them in next step
$ sudo nano ~/.bashrc [.. add this ..] export GPGKEY=<key_id>
Restart GPG-agent and source ./bashrc, or restart session
https://help.ubuntu.com/community/GnuPrivacyGuardHowto#Uploading_the_key_to_Ubuntu_keyserver
http://askubuntu.com/questions/29889/how-do-i-check-if-my-openpgp-key-is-in-the-ubuntu-keyserver
https://help.launchpad.net/YourAccount/ImportingYourPGPKey
https://help.launchpad.net/ReadingOpenPgpMail
Export OpenPGP key to Ubuntu Keyserver and check that key is already exported (can take up to 30mins)
$ gpg --keyserver keyserver.ubuntu.com --send-keys <key_id> $ gpg --keyserver hkp://keyserver.ubuntu.com --search-key <e-mail>
Log into (or create) your Launchpad account
In your profile page, beside OpenPGP keys, click on the pencil icon to edit.
Under Import an OpenPGP key, type the fingerprint of the generated OpenPGP key.
A message encrypted with your public key will be sent to your signature e-mail. Decrypt the message and follow the instructions to confirm that the provided key is yours.
Import the eXe Learning version to upload from the forge Git repository, and merge latest changes from the release tag
$ git clone --branch ppa-<distribution> git+ssh://<username>@forja.cenatic.es//var/lib/gforge/chroot/scmrepos/git/iteexe/iteexe.git $ git merge <tagname> $ git mergetool ... Resolve posible conflicts on debian/changelog or others and commit ... $ git commit
https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage
$ cd iteexe iteexe$ debchange --newversion 3:<exeversion>ppa<n> Adapt version number to Ubuntu PPA guidelines iteexe$ debchange -r [.. Edit suggested changelog as needed, with release precise, save and exit editor ..]
- <exeversion></exeversion>ppa<n></n> → Keep the 'official' version number and add a ppa<n></n> suffix, where <n></n> is an incremental integer. Doing so, when the PPA version of eXe Learning is updated, package managemente software will detect it and install the new version.
Commit and tag changes into repository
$ git commit ... Commit message ... $ git tag -a <exeversion></exeversion>ppa<n></n> -m "eXe <exeversion></exeversion>, with the modifications needed to upload to Launchpad PPA." $ git push origin HEAD $ git push origin --tags
Check the commit id and save for next step
$ git show
Create a version file, wich contains just a single line with this format:
$ cd iteexe $ nano version <exeversion></exeversion>ppa<n></n>-r<commit></commit>
Git is no longer needed, clean up git files
$ sudo rm -R .git .gitignore
Download manual.zip from: https://www.dropbox.com/sh/nyd30mfssci9bhj/eFkeXSzHiO and unzip it under exe/webui/docs/manual.
$ cd iteexe/exe/webui/docs/manual $ wget https://www.dropbox.com/sh/nyd30mfssci9bhj/AAAHL6v0XVxl8ALa3BMu26uBa?dl=1 -O manual.zip $ unzip manual.zip $ rm manual.zip
We will upload a source file, wich will be built by Launchpad systems to i386 and amd64 architectures. There is no need of solving dependencies in the local machine. Launchpad will not accept unsigned packages (-uc or -us options).
iteexe$ debuild -S
- Type OpenPGP passphrase when asked
iteexe$ cd .. $ ls -l [..] iteexe [..] intef-exe_<exeversion></exeversion>ppa<n></n>.dsc [..] intef-exe_<exeversion></exeversion>ppa<n></n>_source.build [..] intef-exe_<exeversion></exeversion>ppa<n></n>_source.changes [..] intef-exe_<exeversion></exeversion>ppa<n></n>.tar.gz
https://help.launchpad.net/Packaging/PPA/Uploading
eXeLearning PPA belongs to a restricted Team, you must be authorized by an admin to upload packages. If you want to join the team, please contact an user with Administrator status: https://launchpad.net/~exelearning/+members.
In your local machine, install and set up dput:
$ sudo aptitude install dput $ sudo nano ~/.dput.cf [exelearning] fqdn = ppa.launchpad.net method = ftp incoming = ~exelearning/exelearning/ubuntu/ login = <your_launchpad_id></your_launchpad_id> allow_unsigned_uploads = 0
Upload package
$ dput exelearning intef-exe_<exeversion></exeversion>ppa<n></n>_source.changes
- Type Launchpad password when asked.
http://askubuntu.com/questions/30145/ppa-packaging-having-versions-of-packages-for-multiple-distros https://help.launchpad.net/Packaging/PPA/BuildingASourcePackage#Versioning
The intef-exe_<exeversion></exeversion>ppa<n></n> package built is targeted to Ubuntu release set on debian/changelog, so it will not be available to install on other Ubuntu versions.
From Launchpad profile page, under Personal Package Archives, click on PPA name (eXeLearning). Then click on View package details and Copy packages.
- Select package/s to copy and a new target distribution.
- Choose Copy existing binaries to skip rebuilding the package from sources.
https://help.launchpad.net/Packaging/PPA/InstallingSoftware
Add PPA to sources list and update Apt cache.
$ sudo add-apt-repository ppa:exelearning/exelearning $ sudo apt-get update
Check that Intef eXe Learning is now available on your distribution, and install
$ apt-cache search intef-exe $ apt-cache show intef-exe $ sudo apt-get install intef-exe
eXe Learning has been installed!