                Welcome to the badlands production of Sendmail
                            2001/08/07 12:00:00

If you're reading this, I'll assume you'd like to build your own private
copy of sendmail using the Debian supplied version as a starting point.

I've tried (hard) to make this as easy as possible, and would greatly
appreciate any feedback.

I've built sendmail 8.7.6 - 8.12.0
on Debian slink - sid with this setup.

I see a few reasons to build sendmail yourself:
	1) You want to build the current package on an older/newer Debian release
	2) You want to port to a different architecture
	3) You want additional features not included in the stock distribution
	4) You want to remove features from the stock distribution
	5) You want to further customize/patch the stock distribution

First, you'll need to locate, download, and unpack the source from a
Debian site (which, I guess you've already done that if you are reading this).

Then, what you do depends upon why you're building:

	1) You want to build the current package on an older/newer Debian release:
	   Hopefully, autoconf will automagically take care of things for you!
		A) Build the package using whatever tools you're used to:
		   dpkg-buildpackage -rfakeroot -uc -us
		   debuild -rfakeroot -uc -us
		   etc.
		B) If you get a successful build, great ! install it and enjoy !!!
		C) If you get any build errors, contact me and we'll figure out what
		   to do... probably will be a simple update to the autoconf setup.

	2) You want to port to a different architecture:
	   This is pretty much like 1) except that you're more likely to run
	   into problems ;-(  Likely error candidates are kernel/library headers
	   and lack of support for desired add-ons (other -dev packages).

	   See Known Issues below and Follow the directions for 1) above.

	3) You want additional features not included in the stock distribution:
	   This should be fairly rare, as the stock distribution includes just
	   about everything !!!

	   Follow the directions for 5) below and let me know - I'll most likely
	   add the support to the stock package, especially if it doesn't conflict
	   with other options.

	4) You want to remove features from the stock distribution:
	   This is likely to be due to some kind of library conflict, or a
	   desire to reduce the package size.

	   To remove most features, just make sure you *DO NOT* have the -dev
	   package for that feature installed - autoconf will do the rest !
	   In these cases, Follow the directions for 1) above.

	   Otherwise, Follow the directions for 5) below.

	5) You want to further customize/patch the stock distribution:
		A) Decide which features you wish to support (LDAP,SASL,TLS, etc.)
		B) Install the apropriate -dev packages (libssl-dev, etc.)
		C) Evaluate the following files for updates:
			debian/build/site.config.m4.in    ==> Sendmail compile config
			debian/cf/ostype/debian.m4.in     ==> Common .mc file config
			debian/cf/domain/debian-msp.m4.in ==> MSP .mc file config
			debian/cf/domain/debian-mta.m4.in ==> MTA .mc file config
		D) Examine debian/rules for possible overrides (listed in the
		   header... Don't change debian/rules because it will get replaced
		   by the configure step.
		E) Create any necessary patches (or contact me for assistance).
		   Patches go in debian/patches/${version}/ and must be able
		   to be applied with -p0 from debian/..  There's almost always
		   at least one existing patch you can peek at for an example.
		F) Build the package as outlined in 1) above.
		G) Please pass the patch on to me, with any description you have
		   so that if it is common, it can get added to the Debian stock
		   distribution, and maybe forwarded upstream (with your approval).

Known issues:
	Arch:
		arm:	1)
		m68k:	2)
	Sendmail:
		<8.10.0	3)
	Misc:
		IPV6	4)

	1) Shared memory support requires a 2.2.x; x>=19 or 2.4.x kernel to
	   compile on.  Runtime support also requires said kernels, but the
	   support can be turned on/off at runtime, so the real constraint
	   is having an appropriate kernel for building on.
		- Can be overridden via configure option (see top of debia/rules)
		- Defaulted by a arch test in configure - if you hit this on
		  your arch, let me know and I'll update the test.

	2) Compiler miss-optimizing long-long values
		- Supported via a patch making the test variables volatile so
		  the beast builds.  I don't know of any runtime problems, but hey...

	3) Sendmail <8.10.0  will *NOT* compile against libdb3-dev!
		- Install libdb2-dev for the compilation (db2 and db3 can coexist
		  with newer libc/libdbx packages) - you can then reinstall libdb3-dev
		  if you need it for other things.

	4) IPV6 support requires the bind-8 developement package (bind-dev)
	   because the libc folk have changed things above and beyond bind-8,
	   and sendmail can't figure out what to do.

PS: This is obviously a *very* rough draft, please let me know how to make
	it more useful for you!

--
Rick Nelson (cowboy@debian.org)
