# # COMPILING THE DEBIAN SENDMAIL PACKAGE ON POTATO # I am writing this document to summarize the assistance that Richard A Nelson (Rick) gave me in getting the sendmail-8.12.1-1 package to compile under Potato. Hopefully this will save him the effort of responding to other email from people as clueless as myself. Pre-requisites (supplied by potato): Linux 2.2.19 or 2.4.7+ for shm support. m4 debhelper 1.1.17+ groff bsdmainutils libopenldap-dev libwrap0-dev liblockfile-dev libpam0g-dev automake libtool libdb2-dev dpkg-dev Pre-requisites (that you must fulfill on your own): libsasl-dev Instructions on how to fulfill above dependency: 1) download from your nearest Debian source mirror the cyrus-sasl source. At the point of the writing of this document that was version 1.5.24-9. The source should be in "debian/pool/main/c/cyrus-sasl", you will need the following files (possibly replacing the version): cyrus-sasl_1.5.24-9.diff.gz cyrus-sasl_1.5.24-9.dsc cyrus-sasl_1.5.24.orig.tar.gz 2) extract the source using dpkg-source -x cyrus-sasl_1.5.24-9.dsc This should create a directory cyrus-sasl-1.5.24/ 3) compile+package sasl, this can be accomplished in different ways. For either of them you will need to cd into the source directory you just extracted (cd cyrus-sasl-1.5.24). Then you will need to execute one of the following sets of commands: debian/rules build as a normal user debian/rules binary as root or debian/rules binary as root or dpkg-buildpackage 4) install the resulting packages with a command similar to: cd ..;dpkg --install *1.5.24-9*deb At this time, all of the prerequisites should be fulfilled to build the sendmail-8.12.1-1 packages. Note: to get a functional sendmail binary, I had to uninstall libdb2-dev at this point. See note on libdb at the end of this document. If your sendmail binary segfaults on startup, try removing libdb2-dev and going through all the remaining steps again. Now on to the real reason why you are reading this, making a sendmail binary package: 1) download the sendmail source from your nearest Debian source mirror. At the point of the writing of this document that was version 8.12.1-1. The source should be in "debian/pool/main/s/sendmail", you will need the following files (possibly replacing the version): sendmail_8.12.1-1.diff.gz sendmail_8.12.1-1.dsc sendmail_8.12.1.orig.tar.gz 2) extract the source using dpkg-source -x sendmail_8.12.1-1.dsc This should create a directory named sendmail-8.12.1/ 3) modify debian portion to remove perl-5.6.1 dependancy and to fix a typo. Some or all of this step will possibly disappear from future versions. First cd sendmail-8.12.1/debian a) Fix typo in the debian rules file Search for the string "dh_testversion 2" if dh_testversion is immediately preceded by a / remove it. i.e. if you see /dh_testversion change it to dh_testversion *** Note: you no longer need to do this as of 8.12.1-2 ! b) Change directory into sendmail-8.12.1/debian/local. Edit the following files: Parse_mc.pm.in parse_mc.in update_conf.in update_mk.in commenting out the following lines: use warnings; no warnings qw(once); you may optionally also with to remove the -w for the first line of those files. 4) compile+package sendmail, this can be accomplished in different ways. For either of them you will need to cd into the source directory you extracted (cd sendmail-8.12.1). Then you will need to execute one of the following sets of commands: debian/rules build as a normal user debian/rules binary as root or debian/rules binary as root or dpkg-buildpackage 5) install the resulting packages with a command similar to: cd ..;dpkg --install *8.12.1-1*deb At this point you should have a working sendmail binary installed. It is time to start testing. If sendmail seg faults on start up (verify with sendmail -bD), you should read the following note on libdb, libdb2, and libdb3). Yours, William R Thomas A note on libdb, libdb2, and libdb3: Sendmail and all of the various libraries it uses must all use the same version of libdb. The quick, dirty, easy way to verify this is to use ldd to determine which libdb library is being used in the finished binaries: ldd /usr/lib/sendmail ldd /usr/lib/libnss_db.so ldd /usr/sbin/saslpasswd (if available) ldd /usr/sbin/slapd (if available) if everything has gone well, you should see that all of the above files are using the same version of libdb. To get everything on the same version of libdb, I needed to uninstall libdb2-dev previous to compiling the sendmail package.