1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#
# COMPILING THE DEBIAN SENDMAIL PACKAGE ON POTATO
#
I am writing this document to summarize the assistance that Richard A
Nelson (Rick) <cowboy@debian.org> 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 <corvar@theonering.net>
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.
|