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
|
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)
|