Moving to fedora-packaging...
Seeking assistance from .x86_64 packaging gurudom.
Issues we're trying to solve here are:
* The package should be buildable without having all of the run-time requirements met (there are things that are called out as both BuildRequires: and Requires: that are really only the latter.
* When building on an x86_64 architecture, we should look for the libmilter stuff in /usr/lib64 and /lib64 also. (Wasn't sure if this goes in the configure.in file, or should be an additional conditional argument passed into %configure instead...)
* It's not building any symbol-table exports for the debuginfo package, and I don't know why.
Can someone walk me through these issues?
David will post patches if we can get official blessings.
Thanks,
-Philip
P.s. Can the list admin please take .eml off the prohibited attachment suffix list?
Philip Prindeville wrote:
Hmmm...
I run sendmail/cyrus-imapd/spamassassin/mimedefang on an x86_64 machine (FC5 on an Athalon64 2800+) and it works fine.
To keep the mail server simple, however, I wanted to build mimedefang-2.58 on a different machine, so I went ahead and grabbed all of the dependencies.
I have to say, I was a bit configured. It seems that the build-time dependencies have been muddled with the run-time dependencies.
You don't need:
BuildRequires: perl-Digest-SHA1 perl-MIME-tools perl-IO-stringy perl-MailTools
in the .spec file, do you? Can we yank this? I just pulled it out and things built fine (oh, after adding "--disable-check-perl-modules" to the ./configure line).
Further, if you install sendmail-devel but don't actually have sendmail installed on the machine (since your building, but not actually running)... then you might run afoul of the following scenario. sendmail-devel installs (on an x86_64 architecture) /usr/lib64/libmilter.a only.
So, from configure.in:
AC_PATH_PROG(LIBMILTER, libmilter.a, no, $MILTERLIB:$SMPATH:/usr/local/lib:/lib:/usr/lib:/usr/lib/libmilter) SMPATH=`echo ../sendmail-*/obj.*/libsm` AC_PATH_PROG(LIBSM, libsm.a, no, $SMPATH:/usr/local/lib:/lib:/usr/lib:/usr/lib/libmilter)
dnl find libmilter.so in case we have shared libraries AC_PATH_PROG(LIBMILTERSO, libmilter.so, no, $MILTERLIB:$SMPATH:/usr/local/lib:/lib:/usr/lib:/usr/lib/libmilter)
should we add /lib64 and /usr/lib64 before /lib and /usr/lib, respectively?
I changed the .spec file to include:
./configure ... --with-libmilter=/usr/lib64 ...
and it seems to build... but it might make more sense to fix this in the configure.in file instead, as above.
Opinions?
Oh, and do we need the symbol file for /usr/bin/mimedefang to put into mimedefang-debuginfo-2.58?
-Philip
--- mimedefang.spec 2006-11-19 17:22:04.000000000 -0700 +++ mimedefang2.spec 2006-11-19 19:00:14.000000000 -0700 @@ -132,21 +132,22 @@ %{?_without_antivirus: %{expand: %%define with_antivirus 0}}
Summary: Email filtering application using sendmail's milter interface Name: mimedefang Version: 2.58 -Release: 1 +Release: 2 License: GPL Group: Networking/Mail Source0: http://www.roaringpenguin.com/%%7Bname%7D/%%7Bname%7D-%%7Bversion%7D.tar.gz Url: http://www.roaringpenguin.com/%%7Bname%7D Vendor: Roaring Penguin Software Inc. Buildroot: %{_tmppath}/%{name}-root Requires: sendmail > 8.12.0 Requires: perl-Digest-SHA1 perl-MIME-tools perl-IO-stringy perl-MailTools BuildRequires: sendmail-devel > 8.12.0 -BuildRequires: perl-Digest-SHA1 perl-MIME-tools perl-IO-stringy perl-MailTools +BuildRequires: autoconf > 2.55 +Patch99: mimedefang-libmilter64.patch
%description MIMEDefang is an e-mail filter program which works with Sendmail 8.11 and later. MIMEDefang filters all e-mail messages sent via SMTP. MIMEDefang splits multi-part MIME messages into their components and @@ -165,13 +166,17 @@ willingness of your e-mail users to commit to security, or they will complain loudly about MIMEDefang.
%prep %setup -q -n %{name}-%{version} -./configure --prefix=%{_prefix} \ +%patch99 -p0 -b .libmilter64 +autoconf +%configure --prefix=%{_prefix} \ --mandir=%{_mandir} \ + --enable-debug \ --sysconfdir=/etc \ + --disable-check-perl-modules \ --with-spooldir=%{dir_spool} \ --with-quarantinedir=%{dir_quarantine} \ %if %{with_antivirus} --with-user=%{user} %else --- /dev/null 2006-10-20 13:24:12.475602750 -0600 +++ ../SOURCES/mimedefang-libmilter64.patch 2006-11-19 17:17:55.000000000 -0700 @@ -0,0 +1,19 @@ +*** configure.in.bak 2006-11-06 08:01:23.000000000 -0700 +--- configure.in 2006-11-19 17:17:06.000000000 -0700 +*************** +*** 625,631 **** + + dnl find libmilter.a and libsm.a + SMPATH=`echo ../sendmail-*/obj.*/libmilter` +! AC_PATH_PROG(LIBMILTER, libmilter.a, no, $MILTERLIB:$SMPATH:/usr/local/lib:/lib:/usr/lib:/usr/lib/libmilter) + SMPATH=`echo ../sendmail-*/obj.*/libsm` + AC_PATH_PROG(LIBSM, libsm.a, no, $SMPATH:/usr/local/lib:/lib:/usr/lib:/usr/lib/libmilter) + +--- 625,631 ---- + + dnl find libmilter.a and libsm.a + SMPATH=`echo ../sendmail-*/obj.*/libmilter` +! AC_PATH_PROG(LIBMILTER, libmilter.a, no, $MILTERLIB:$SMPATH:/usr/local/lib:/lib64:/lib:/usr/lib64:/usr/lib:/usr/lib/libmilter) + SMPATH=`echo ../sendmail-*/obj.*/libsm` + AC_PATH_PROG(LIBSM, libsm.a, no, $SMPATH:/usr/local/lib:/lib:/usr/lib:/usr/lib/libmilter) +
packaging@lists.fedoraproject.org