[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Proposed patch management/build solution




As I mentioned Saturday, I'm interested in helping set up some sort of
system for managing patches that we are not comfortable sending back
to Debian packages yet.

I'm concerned that without such a system:

* Different people will each set up their own archives of packages
  with different mechanisms for  marking local changes

* Some of these archives may not include source packages and thus may
  violate the GPL or other licenses

*   It will not be easy or possible for a random person to rebuild the
    entire system, which could be critical for debugging

*  We may not easily be able to pull in new versions as Debian
   packages evolve, or we may accidentally lose changes we want to
   keep

I have a proposal for how I plan to do things.  My design goals are as
followss:

* Facilitate development by a group of people not just individuals

* Slightly more centralization than the standard Debian archive; the
  standard Debian archive has several conditions that make its
  decentralization work  that i don't think currently apply to this
  project.  I can go into detail if people like, but I'd rather do so
  off list.

* Single well defined format for describing NetBSD-specific changes

* Mandate that people describe  their changes and clearly label our
  versions as modified

* Set up version control.  What we are doing is clearly active
  development; it is easy to show that many problems result from not
  having good version control for active development software
  projects.

* Minimize bandwith.  Several of the people involved  seem to have
  limited Internet connections.  Requiring them to download large
  chunks of source over the net rather than from convenient local
  mirrors  would decrease their ability to contribute.

So, here's what I propose to do.  I want to set up a CVS repository
with two top level directories.  The first directory will be called
packages; it will contain  any  BSD-native packages we've developed.
It will contain their sources in a format compatible with
cvs-buildpackage.  I know at least one such package will exist.

The second directory will be called patches and will contain
directories corresponding to source packages we've had to patch to get
them to build on BSD.  Each source package directory will contain some
or all of the following:

* A file called version that contains the version of the source
  package these patches are for.

* A file called patch that will be applied after the dpkg-source -x

* A file called changelog.add that will be prepended to
  debian/changelog

* One or more files called after-foo-patch which will be applied after
  running debian/rules foo.  The most common example might be
  after-setup-patch which should help with DBS patches

I will also write a small native package that contains a script to
build a source package based on one of these patch directories and a
program to build all patched packages.

Then we can set up this CVS repository somewhere (presumably initially
sourceforge) and allow people to start committing their patches.  I
think this organization will really help me be able to debug things
and make forward progress; will it help others enough to be used?



Reply to: