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.
Anything in caps represents a field you'll need to fill out based on your particular situation.
## make a place to contain your work mkdir WORKDIR cd WORKDIR ## get the packaging repository from Phabricator git ssh://email@example.com: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 quilt push quilt new NAME.patch # this is where you actually make the changes you want quilt edit PACKAGE-VERSION/PATH/TO/FILE quilt refresh quilt header --dep3 -e ## update the changelog dch # -i or -a, depending 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
- apt install ssh git php-curl php-cli devscripts tar quilt
- Follow "Installing Arcanist" here.
- .gitconfig TODO
- Packaging variables in .bashrc TODO
- Set up ssh TODO
- Add ssh key to Phab TODO
- ssh agent with keychain TODO
- .quiltrc from packaging guide
- arc set-config phabricator.uri "https://phab.lubuntu.me/"
- arc install-certificate
The above assumes a normal package. If it's native (i.e. doesn't use patches), or if the upstream source isn't well tracked, or if the package isn't already in the Ubuntu repos, etc., things will break.
Check out rDEFAULTSETTINGS and you'll find that in addition to the normal debian folder, there's also other files. Most notably there is a src folder which contains the code. This should be a clear sign that something is different, as Debian packages are nothing more than metadata that is applied to upstream source code. In this case, we do not use uscan to grab the source, nor quilt to manage patches, but just apply the changes to the code in the src folder and then proceed as normal.
Can't find source
Not in Phab
e.g. quilt folding a git diff or arc patching a fresh git clone to in turn arc diff --update an existing Differential revision
- gpg setup TODO
- bzr setup TODO