Building Window Maker for Debian
--------------------------------

* The patches

  debian/rules scans debian/patches/ for files named *.diff and these
  are sorted _alphabetically_ before being applied.

  You can apply these patches by calling

  	$ debian/rules patch-wmaker-stamp

  and remove them with

  	$ debian/rules unpatch-wmaker

  Why are some patches in debian/patches and others are stored in the
  debian .diff?
  
	  For starters I (still) dislike the idea of doing:

		$ dpkg -x package.dsc

	  and being left with something that is not the source from
	  which the package is built.  It makes NMUs harder for both the
	  NMUer and the maintainer, mostly because people tend to get it
	  wrong (since it's undocumented).  I use CVS for (almost all
	  of) my packages, and I like to be able to take a look at the
	  source used to build certain release of a package _without_
	  having to check out that release.  On the other hand, I try to
	  send patches upstream, and over the years I've learned that
	  Debian's source package format is really not the best thing to
	  use in this context.  Merging between debian's source and
	  upstream's (after accepting patches) is messy.

	  The system used by this package is a compromise between these
	  two things: "most" of the patches are applied directly by just
	  unpacking the Debian sources, and some are left out.  The
	  things that are left out (those stored in debian/patches) are
	  in general things that should go upstream.  Things that aren't
	  really Debian specific.  Security fixes, patches submitted
	  upstream by other people, that kind of thing.  This keeps the
	  patches nicely separated, makes it easy to send the upstream,
	  to take them out and to update them if that becomes necessary.
	  In general, if it's Debian specific, patch the sources
	  directly.  If it should go upstream, put it in debian/patches.

  The easiest way to generate patches is to use CVS.  Patches coming out
  of 'cvs diff -u whaterver/you.modded' will just work if you put them
  in debian/patches.  If you can't use CVS for whatever reason, just:

  $ diff -u wmaker.orig wmaker > your.patch

  will do the right thing.

* Building options

  The following make variables are used to pass options to the configure
  script:

	XLOCALE  := --disable-locale
	MODELOCK := --enable-modelock

	XINERAMA := --enable-xinerama

	(*) These are not used by default

  Since these are make variables, you can do something like:

  	$ SOUND=--disable-sound debian/rules build

  If you want to build a debugging version, this will do it:

  $ export DEB_BUILD_OPTIONS=nostrip,debug,noopt
  $ fakeroot debian/rules binary

-- 
vim: tw=72 ft=text
