[Dovecot] Patch: building dovecot-sieve against installed dovecot (Re: sieve discard)

Geert Hendrickx ghen at telenet.be
Thu Aug 9 11:33:15 EEST 2007


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@
> - at HAVE_DOVECOT_LIBS_TRUE@pkglibexec_PROGRAMS = sievec$(EXEEXT) \
> - at 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
> - at HAVE_DOVECOT_LIBS_TRUE@am_sievec_OBJECTS = sievec.$(OBJEXT) \
> - at 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 at sievec_DEPENDENCIES = libsieve.la \
>  @HAVE_DOVECOT_LIBS_TRUE@	$(dovecotdir)/src/lib/liblib.a
> + at HAVE_DOVECOT_LIBS_FALSE@sievec_DEPENDENCIES = libsieve.la \
> + at HAVE_DOVECOT_LIBS_FALSE@	$(dovecotdir)/liblib.a
>  am__sieved_SOURCES_DIST = sieved.c ../map.c
> - at HAVE_DOVECOT_LIBS_TRUE@am_sieved_OBJECTS = sieved.$(OBJEXT) \
> - at HAVE_DOVECOT_LIBS_TRUE@	map.$(OBJEXT)
> +am_sieved_OBJECTS = sieved.$(OBJEXT) \
> +	map.$(OBJEXT)
>  sieved_OBJECTS = $(am_sieved_OBJECTS)
>  @HAVE_DOVECOT_LIBS_TRUE at sieved_DEPENDENCIES = libsieve.la \
>  @HAVE_DOVECOT_LIBS_TRUE@	$(dovecotdir)/src/lib/liblib.a
> + at HAVE_DOVECOT_LIBS_FALSE@sieved_DEPENDENCIES = libsieve.la \
> + at 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 at sievec_LDADD = \
>  @HAVE_DOVECOT_LIBS_TRUE@	libsieve.la \
>  @HAVE_DOVECOT_LIBS_TRUE@	$(dovecotdir)/src/lib/liblib.a
> + at HAVE_DOVECOT_LIBS_FALSE@sievec_LDADD = \
> + at HAVE_DOVECOT_LIBS_FALSE@	libsieve.la \
> + at HAVE_DOVECOT_LIBS_FALSE@	$(dovecotdir)/liblib.a
>  
>  @HAVE_DOVECOT_LIBS_TRUE at sieved_LDADD = \
>  @HAVE_DOVECOT_LIBS_TRUE@	libsieve.la \
>  @HAVE_DOVECOT_LIBS_TRUE@	$(dovecotdir)/src/lib/liblib.a
> + at HAVE_DOVECOT_LIBS_FALSE@sieved_LDADD = \
> + at HAVE_DOVECOT_LIBS_FALSE@	libsieve.la \
> + at HAVE_DOVECOT_LIBS_FALSE@	$(dovecotdir)/liblib.a
>  
>  @HAVE_DOVECOT_LIBS_FALSE at notbuilt_sources = sievec.c sieved.c
>  @HAVE_DOVECOT_LIBS_TRUE at 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


More information about the dovecot mailing list