← Back to team overview

torios team mailing list archive

Howdy Toriosidors!

 

Hi,
I decided to send along my bzr cheat sheet to the entire list, just in
case ANYONE WANTS TO HELP :P
Or... if someone just wants to package their own program and make a PPA.
OR if someone wants to maintain a package.
OR any other reason I can't think of!

Keep Calm and Tori On

-- 
Regards

-Israel
ToriOS Team

/*TO GET SET UP TO USE BZR && PBUILDER*/

//install all the things you need
sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file packaging-dev

// make your gpg key
gpg --gen-key
//remember your passphrase!!!!
/* now open up ~/.bashrc
 * gpg --list-keys
 * look at the line from the keyring generateion
 * that starts with sec  2048R/######## 2014-01-04
 * the # part is your GPGkey
 * add the following line, substituting the real
 * key for the #
 */
export GPGKEY=########
//i.e. export GPGKEY=259E7E4E
//refresh your bash
source ~/.bashrc
//send the key to ubuntu keyservers
gpg --send-keys --keyserver keyserver.ubuntu.com $GPGKEY
//$GPGKEY works with the line you entered into .bashrc

/* Now for launchpad
 * find your fingerprint with:
 */
gpg --fingerprint
https://launchpad.net/~/+editpgpkeys

/*You will get an encrypted e-mail
 * thunderbird has an extention to decrypt e-mail...
 * however you can save the text from:
 -----BEGIN PGP MESSAGE-----
 * to
 -----END PGP MESSAGE-----
 * as a txt file (in this example gpg.txt)
 * now run:
 */
gpg --decrypt gpg.txt
//and go to the link.... you are done!!


//make your ssh key
ssh-keygen -t rsa
//choose default filename, enter a password 2x
//open the file, pico doesn't copy the comment on the end... so use gedit (maybe others)
gedit ~/.ssh/id_rsa.pub
goto  https://launchpad.net/~/+editsshkeys

//Configure bzr
//bzr whoami "Name <email@xxxxxxxx>
bzr whoami "Doctor Who <thedoctor@xxxxxxxx>"
//bzr launchpad-login lpname
bzr launchpad-login drwho

//configure BASH
gedit ~/.bashrc
//add these lines
//export DEBFULLNAME="Name Comment(optional)"
export DEBFULLNAME="Doctor Who"
//export DEBEMAIL="email@xxxxxxxxx"
export DEBEMAIL="thedoctor@xxxxxxxx"
//restart bash
source ~/.bashrc

//pbuilder-dist <release> create VERY IMPORTANT!!!!!!!!!!!!!!!!
//this makes the chroot environment for whatever release you need
pbuilder-dist trusty create

/***PACKAGE BUILDING***/

/*TO START YOUR BRANCH*/
//cd into the directory you want to be in to do your work i.e. cd ~/programming/bzr
//bzr branch ubuntu:<dist>/<package> <new_directory_name>
//bzr branch lp:ubuntu/lmms is the most current version
//bzr branch lp:<packagename> works with code hosted on launchpad
//i.e. bzr branch lp:tardis
bzr branch ubuntu:utopic/lmms lmms

/*TO MERGE WITH EXISTING SOURCE PACKAGE with --version &number &locationOftar */
//
bzr merge-upstream  ../relativePath/to/program.tar.gz
//OR, if the watch file is done right
bzr merge-upstream
//this will automatically download and merge the upstream based on what is in the watch file.

//then, edit the debian/changelog & commit your changes with:
bzr commit

/*TO TEST YOUR FIX*/
//this command is one I have needed occasionally... but it isn't as good as below
//bzr builddeb -S --package-merge

//Run this and THEN pbuilder each time you change something to test the fix
bzr builddeb -- -S -us -uc
//cd .. out of the BASE directory to where the dsc file is
//pbuilder-dist <dist> build <package>_<version#>-<ubuntu revision#>.dsc
pbuilder-dist trusty build lmms_1.0.2-0ubuntu1.dsc 
//if using bzr merge-upstream lp:lmms

//cd ~/pbuilder/<dist>_result/
cd ~/pbuilder/trusty_result/
//remove any currently installed versions and install newly built version
//be sure to remove any old deb files you may have used...though the newer version will be the only installed one... sometimes it can cause problems
sudo apt-get autoremove lmms && sudo dpkg -i lmms*.deb

/***COMMITING THE PACKAGE***/
/*TO EDIT CHANGELOG*/
dch -i
//though, personally I like to use a text editor and simply manually edit it.
//i.e. gedit/geany/mousepad/etc...

bzr commit

/*TO PUSH THE CHANGE TO LAUNCHPAD*/
//bzr push lp:/~<user>/ubuntu/<dist>/<package>/<specific package with version #>
bzr push lp:/~israeldahl/ubuntu/trusty/lmms/lmms_1.1.0
//If you are hosting your code on lp it is different
//bzr push lp:<project-name>
bzr push lp:tardis
//or for a sub branch
bzr push lp:tardis/testing


/*HELPFUL COMMANDS*/

//shows status of your branch (i.e. CURRENT)
bzr status

/*** Adding *ANY* file into the /debian directory***/
bzr add

// make a launchpad repo
//This is a command I don't use often.. it makes the +junk branch (IIRC)
bzr init-repo trusty_lmms

//this proposes it for a merger
//which is only useful if you are fixing up an existing program
bzr lp-propose


//this is just so I can copy and paste it as the rules file
//tiny dh rules file
#!/usr/bin/make -f
%:
	dh $@