How to repackage FrameL as libframe
This document describes the steps involved in repackaging FrameL as the lscsoft libframe. This document is not a step-by-step recipe, it is an overview written assuming the reader is familiar with GNU build scripts and RPM and DEB packaging tools.
Steps:
- The libframe source tree can be checked out of the lscsoft cvs repository's lsware module.
- Obtain the latest FrameL source release. The URL can be found in the .spec.in file in the libframe source tree. If that URL is out of date, correct it.
- In the libframe source tree is a copy of the FrameL source tar ball. Delete the old one, copy the new one into place, and add to cvs. This is done to act as a record of precisely what FrameL source tree the lscsoft repackage corresponds to.
- Elsewhere, untar the FrameL source tree and compare, file-by-file to the existing contents of libframe's source tree. Note any files that are new to the source tree, and any files that are no longer in the source tree.
- Remove all files from libframe that are no longer part of the FrameL source tree, and move all the rest from the FrameL source tree into the libframe source, even those that have not changed. NOTE: this step must be done with extreme care. A mistake cannot be tolerated. Ideally you would simply untar the FrameL source directly into the libframe tree, but if you did so you would not notice if files had been deleted or added, so you must manually do the equivalent.
- Update build scripts based on changes to the contents of the source
tree (new header files, deleted header files, new C source files, deleted C
source files, etc.):
- all Makefile.am,
- configure.ac if directories have been added or removed,
- all *.install files in the debian directory,
- the libframe.spec.in file
- Check version numbers in files:
- update the package version number in the configure.ac file,
- check the correctness of the release number in the libframe.spec.in file,
- add a new entry to the changelog file in the debian directory
- Commit, attempt to build packages, if the packages build then tag and rebuild (build released packages from a tagged tree!).
$Id: libframe_howto.html,v 1.3 2007/09/05 23:38:45 duncan Exp $