This page documents the steps in rebuilding a package with modifications via Builder

Find What Needs to Change

First you must figure out what package the change needs to be in, and then download the source

 apt-get source packagename

Look through the code and packaging instructions, and find what you'll need to change. Make the change, and build the package:

 fakeroot debian/rules binary

Assuming a good build, install it

 dpkg -i ../packagename-version.deb

and check that your changes work as expected.

Script the Changes

Next you must make your changes automated. Remember that these changes will be applied to the current version and future versions. Thus, it is important to make the changes as robust as possible. For example, don't use diff if sed can do the same job.

Integrate with Builder

Use an existing Builder script such as gen-launchpad-integration as a base for the builder-specific boilerplate. Your code should go after the cd. Make sure to change all references to launchpad-integration.

You will also need to add a version line to config and an ensure-updated line to do-update.

Once you are happy, send your changes to the List. After the next do-update and push, your changes will be part of the repository.

Some packages can't be modified with a Builder script (e.g. when binary files need to be modified). In that case the package's source can be put into its own VCS repository and then modified. A checkout of that can then be integrated with Builder under the packages directory. If you want it to be included in the official build then put your VCS repo somewhere public and make it known on the mailing list.

The disadvantage of this approach is that changes to the upstream package must be tracked manually and that multiple versions need to be kept (e.g. deltah and deltah-security), so it should be avoided as much as possible.

Builder/ModifyingANewPackage (last edited 2010-07-04 12:57:41 by samgee2)