Timo, is this ok with you? It allows building dovecot-sieve against an installed dovecot package (if --enable-header-install additionally installs liblib.a) including sievec and sieved (needed for pysieved). Geert On Thu, Aug 02, 2007 at 10:11:38AM +0200, Geert Hendrickx wrote:
On Wed, Aug 01, 2007 at 10:17:32PM +0200, Geert Hendrickx wrote:
On Wed, Aug 01, 2007 at 03:02:38PM +0300, Timo Sirainen wrote:
sievec and sieved binaries are built only if you use 2) method, because they need to link with Dovecot's libraries. They can be used to compile and decompile Sieve scripts. You probably don't need these.
According to the Makefile, they only need liblib.a to build. Can't this file be installed as well with --enable-header-install (you may want to rename this flag then), so that dovecot-sieve can fully be built against an installed dovecot package?
If dovecot with --enable-header-install installs liblib.a in the same dir as dovecot-config, the following patch for dovecot-sieve makes this work:
--- src/libsieve/Makefile.in.orig 2007-07-20 10:19:20.000000000 +0200 +++ src/libsieve/Makefile.in 2007-08-02 09:54:11.000000000 +0200 @@ -38,8 +38,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@HAVE_DOVECOT_LIBS_TRUE@pkglibexec_PROGRAMS = sievec$(EXEEXT) \ -@HAVE_DOVECOT_LIBS_TRUE@ sieved$(EXEEXT) +pkglibexec_PROGRAMS = sievec$(EXEEXT) \ + sieved$(EXEEXT) subdir = src/libsieve DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog NEWS \ @@ -62,17 +62,21 @@ pkglibexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(pkglibexec_PROGRAMS) am__sievec_SOURCES_DIST = sievec.c ../map.c ../imparse.c -@HAVE_DOVECOT_LIBS_TRUE@am_sievec_OBJECTS = sievec.$(OBJEXT) \ -@HAVE_DOVECOT_LIBS_TRUE@ map.$(OBJEXT) imparse.$(OBJEXT) +am_sievec_OBJECTS = sievec.$(OBJEXT) \ + map.$(OBJEXT) imparse.$(OBJEXT) sievec_OBJECTS = $(am_sievec_OBJECTS) @HAVE_DOVECOT_LIBS_TRUE@sievec_DEPENDENCIES = libsieve.la \ @HAVE_DOVECOT_LIBS_TRUE@ $(dovecotdir)/src/lib/liblib.a +@HAVE_DOVECOT_LIBS_FALSE@sievec_DEPENDENCIES = libsieve.la \ +@HAVE_DOVECOT_LIBS_FALSE@ $(dovecotdir)/liblib.a am__sieved_SOURCES_DIST = sieved.c ../map.c -@HAVE_DOVECOT_LIBS_TRUE@am_sieved_OBJECTS = sieved.$(OBJEXT) \ -@HAVE_DOVECOT_LIBS_TRUE@ map.$(OBJEXT) +am_sieved_OBJECTS = sieved.$(OBJEXT) \ + map.$(OBJEXT) sieved_OBJECTS = $(am_sieved_OBJECTS) @HAVE_DOVECOT_LIBS_TRUE@sieved_DEPENDENCIES = libsieve.la \ @HAVE_DOVECOT_LIBS_TRUE@ $(dovecotdir)/src/lib/liblib.a +@HAVE_DOVECOT_LIBS_FALSE@sieved_DEPENDENCIES = libsieve.la \ +@HAVE_DOVECOT_LIBS_FALSE@ $(dovecotdir)/liblib.a DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles @@ -266,10 +270,16 @@ @HAVE_DOVECOT_LIBS_TRUE@sievec_LDADD = \ @HAVE_DOVECOT_LIBS_TRUE@ libsieve.la \ @HAVE_DOVECOT_LIBS_TRUE@ $(dovecotdir)/src/lib/liblib.a +@HAVE_DOVECOT_LIBS_FALSE@sievec_LDADD = \ +@HAVE_DOVECOT_LIBS_FALSE@ libsieve.la \ +@HAVE_DOVECOT_LIBS_FALSE@ $(dovecotdir)/liblib.a
@HAVE_DOVECOT_LIBS_TRUE@sieved_LDADD = \ @HAVE_DOVECOT_LIBS_TRUE@ libsieve.la \ @HAVE_DOVECOT_LIBS_TRUE@ $(dovecotdir)/src/lib/liblib.a +@HAVE_DOVECOT_LIBS_FALSE@sieved_LDADD = \ +@HAVE_DOVECOT_LIBS_FALSE@ libsieve.la \ +@HAVE_DOVECOT_LIBS_FALSE@ $(dovecotdir)/liblib.a
@HAVE_DOVECOT_LIBS_FALSE@notbuilt_sources = sievec.c sieved.c @HAVE_DOVECOT_LIBS_TRUE@notbuilt_sources =
This means a complete dovecot-sieve package (including sievec and sieved) can be compiled against either a built dovecot sourcetree or an installed dovecot package with --enable-header-install.
I guess this will not be included in 1.0.x, but if it can be included in 1.1.x, I can add the patch to the pkgsrc package for now.
Geert