Create the development environment

Set up a VirtualBox virtual machine and operate from it.

Check out the package

This example makes a small packaging change to the bluez package in the apertis:15.09:target project. This can all be done on a desktop machine — just make sure to download an ospack image with the appropriate architecture (probably amd64).

Branch the package in OBS:

osc branch apertis:15.09:target/bluez osc co home:$username:branches:apertis:15.09:target/bluez

Apply changes

Unpack the sources, make your changes and rebuild the source package

cd /path/to/home\:$username\:branches\:apertis\:15.09\:target/bluez dpkg-source -x bluez_4.101-0ubuntu25co5.dsc sudo apt-get build-dep bluez cd bluez-4.101 # Make your packaging changes; remember to update debian/changelog dpkg-buildpackage -S -us -uc echo $?  # should be 0

Commit the changes

Then, once the source package has been built successfully in the container, execute the following commands from your normal development machine to push the changes to OBS to be built:

cd home\:$username\:branches\:apertis\:15.09\:target/bluez osc addremove  # add new files, remove old ones osc st  # check status osc ci  # commit changes

or if you have osc-plugins-dput installed (recommended),

 osc dput home:$username:branches:apertis:15.09:target bluez_4.101-0ubuntu25co6_source.changes

Submit for review

In order to get your changes reviewed, generate a diff for Phabricator using:

# Download old .dsc file from OBS debdiff ~/Downloads/bluez_4.101-0ubuntu25co5.dsc ./bluez_4.101-0ubuntu25co6.dsc > ~/Downloads/bluez.diff

Further reading