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)