Page MenuHomePhabricator

Packaging Tutorial
Updated 10 Days AgoPublic

This is a tutorial which hopes to make it easy for new contributors to figure out how to fix a bug in Lubuntu. Note that this is specific to repositories that Lubuntu hosts on Phabricator, i.e. those components that differentiate Lubuntu from other Ubuntu flavorsβ€” most notably, LXQt. Everything else is handled upstream in Ubuntu. The process there will be similar.

Packaging is a vast and complex subject, especially given the many upstreams (Ubuntu, Debian, the developer themselves) and the changing processes/requirements among them. We have our own guide that proves some links to further resources.

Long story short

WARNING: This is a high-level overview that is useful as a reference once you understand the process. If you are new, DO NOT just follow this but read the links below first.
NOTE: Anything in CAPS is to be considered a variable and not to be taken literally.
IMPORTANT: You must be using the current development version for the build process below to work.
IMPORTANT: You must use the ssh clone link or pushing your changes will not work. DO NOT USE THE http LINK!!!!
## make a place to contain your work
mkdir WORKDIR
cd WORKDIR

## get the packaging repository from Phabricator
git clone ssh://git@phab.lubuntu.me:2222/source/PACKAGE.git
cd PACKAGE

## make sure you're on the development branch
git checkout ubuntu/CODENAME

## get the upstream source code
uscan --download-current-version
tar -x --strip-components=1 -f ../PACKAGE_*.orig.tar.xz

## make a new patch
mkdir debian/patches # just in case it doesn't exist
quilt push -a  # just in case there are patches, we apply them all
quilt new NAME.patch
# this is where you actually make the changes you want
quilt edit PATH/TO/FILE 
quilt refresh
quilt header --dep3 -e

## update the changelog
dch # -i or -a, depending (see below)
dch -r --distribution CODENAME

## test build the package
sudo apt update; sudo apt build-dep PACKAGE
debuild -d --no-sign

## get rid of source
rm -rf !(debian) .pc/ # requires bash and `shopt -s extglob`

## push your changes
git add -A
arc diff
# fill out the template accordingly, starting with the commit message
# please add a reference to the associated task in the description e.g. T2
# don't forget to add @tsimonq2, @wxl as reviewers

## make additional changes if requested
# get a new working copy (git clone, git checkout)
# then apply the changes from your differential revision
# NOTE: not necessary if you already have the original working version
arc patch Dn --nobranch # here n is the number of your differential revision
# make changes then push
git add -A
arc diff
# this time you won't have to fill out the template, just a commit message

## now a developer merges your revision
# get a new working copy and arc patch as above
# merge!
arc land --onto ubuntu/CODENAME
NOTE: always πŸ‘ add πŸ‘ a πŸ‘ changelog πŸ‘ entry πŸ‘ 🀣

Digging deeper

IMPORTANT: You must complete the packaging requirements if you want the above to work (don't skip this!)
IMPORTANT: The following is required reading if you want the above to make sense

Bonus points

Last Author
wxl
Last Edited
Fri, Apr 12, 5:55 PM

Event Timeline

wxl created this document.Mon, Apr 8, 4:52 PM
wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)Mon, Apr 8, 4:54 PM
wxl edited the content of this document. (Show Details)Mon, Apr 8, 5:33 PM
wxl edited the content of this document. (Show Details)Mon, Apr 8, 6:54 PM
wxl edited the content of this document. (Show Details)Wed, Apr 10, 3:42 PM
wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)Wed, Apr 10, 3:53 PM
wxl edited the content of this document. (Show Details)Wed, Apr 10, 3:56 PM
wxl edited the content of this document. (Show Details)Wed, Apr 10, 4:02 PM
wxl edited the content of this document. (Show Details)Wed, Apr 10, 4:04 PM
wxl edited the content of this document. (Show Details)Wed, Apr 10, 5:45 PM
wxl edited the content of this document. (Show Details)
wxl edited the content of this document. (Show Details)Wed, Apr 10, 6:22 PM
wxl edited the content of this document. (Show Details)Fri, Apr 12, 5:55 PM