Bug 175523 - pkgng: mail/dovecot2-pigeonhole conflicts with mail/dovecot2
Summary: pkgng: mail/dovecot2-pigeonhole conflicts with mail/dovecot2
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Mark Felder
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-23 06:30 UTC by Matthieu Volat
Modified: 2013-07-16 19:00 UTC (History)
0 users

See Also:


Attachments
pigeonhole.txt (9.24 KB, text/plain)
2013-07-02 17:38 UTC, Mark Felder
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matthieu Volat 2013-01-23 06:30:00 UTC
As of now, mail/dovecot2-pigeonhole cannot be installed using pkgng due to conflicts with the base dovecot2 system (files are installed at same place).

There is at least a problem with :
${PREFIX}/share/doc/dovecot/example-config/conf.d/20-managesieve.conf
when making install : 

===>   Registering installation for dovecot-pigeonhole-0.3.3_1
pkg: lstat(/usr/local/libdata/ldconfig/dovecot-pigeonhole/): Not a directory
Installing dovecot-pigeonhole-0.3.3_1...pkg: dovecot-pigeonhole-0.3.3_1 conflicts with dovecot-2.1.12 (installs files into the same place).  Problematic file: /usr/local/share/doc/dovecot/example-config/conf.d/20-managesieve.conf
*** [fake-pkg] Error code 70

Stop in /usr/ports/mail/dovecot2-pigeonhole.
*** [install] Error code 1

Stop in /usr/ports/mail/dovecot2-pigeonhole.
*** [reinstall] Error code 1

Stop in /usr/ports/mail/dovecot2-pigeonhole.

How-To-Repeat: 1. Configure ports to use pkg-ng
2. install mail/dovecot2
3. try to install mail/dovecot2-pigeonhole
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-01-23 06:30:09 UTC
Maintainer of mail/dovecot2-pigeonhole,

Please note that PR ports/175523 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/175523

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2013-01-23 06:30:10 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 nagy.attila 2013-01-28 08:01:16 UTC
Hi,

Never used pkg-ng, but as far as I can see, this file is installed by 
the pigeonhole port, they are not shared.
So the problem is that they (there is 90-sieve.conf also, which goes 
into the same directory) are installed into a common directory?
Comment 4 Matthieu Volat 2013-02-08 19:33:47 UTC
Sorry for the delay,

It seems to be the problem indeed, I'm not really sure about a fix since I recently tried to migrate to pkg-ng.

Here was the answer from bapt when I sumbited the problem on the freebsd ports mailing list:
http://lists.freebsd.org/pipermail/freebsd-ports/2013-January/080860.html

I'm not sure from here how to manage things...

-- 
Matthieu Volat <mazhe@alkumuna.eu>
Comment 5 stenn 2013-03-17 21:26:45 UTC
The proposed fix in
http://lists.freebsd.org/pipermail/freebsd-ports/2013-January/080860.html did
not work for me.

The message I get is:

...
===>   Registering installation for dovecot-2.1.15 as automatic
pkg: unknown keyword stopdaemon, ignoring @stopdaemon
pkg: lstat(/usr/local/libdata/ldconfig/dovecot2/): Not a directory
pkg: duplicate directory listing: /usr/local/share/doc/dovecot/, ignoring
Installing dovecot-2.1.15...pkg: dovecot-2.1.15 conflicts with
dovecot-pigeonhole-0.3.3_1 (installs files into the same place).
Problematic file:
/usr/local/share/doc/dovecot/example-config/conf.d/20-managesieve.conf
*** [fake-pkg] Error code 70

Stop in /usr/ports/mail/dovecot2.
*** [install] Error code 1
Comment 6 andriys 2013-03-28 10:22:02 UTC
Try uninstalling mail/dovecot2-pigeonhole before rebuilding the
mail/dovecot2. It should fix the problem. After the mail/dovecot2 you
should be able to reinstall mail/dovecot2-pigeonhole again without
problem.

As to the root cause of the problem, it is this line in the
mail/dovecot2/pkg-plist:

%%PORTDOCS%%@dirrmtry %%DOCSDIR%%

What happens is (as far as I understand) it picks everything that is
placed in the /usr/local/share/doc/dovecot and tries to put it into
the package. If you build dovecot2 for the first time it what it is
expected to do. But if you are rebuilding the dovecot2 on a system
that has dovecot2-pigeonhole installed already, it picks up files
installed by the dovecot2-pigeonhole as well, and that's what leads to
a reported problem.

Best regards,
Andriy.
Comment 7 andriys 2013-03-30 11:41:00 UTC
The mail/dovecot2 port is (IMO) broken, and should eventually be
fixed. I've just shared a (temporary) solution that worked for me. We
have a dedicated VM where we incrementally updating our packages using
portmaster, rebuilding the repo using 'pkg repo' and then deploying
the resulting packages using pkgng on a number of production machines,
so (temporarily) removing dovecot2-pigeonhole while rebuilding
dovecot2 was acceptable for us. Alternatively, you can try to do the
following before the upgrade, but I haven't checked this solution
myself:

# rm -r /usr/local/share/doc/dovecot
# rm -r /usr/local/share/examples/dovecot

When you do this, make sure you upgrade mail/dovecot2 first before
upgrading mail/dovecot2-pigeonhole.

2013/3/30 Harlan Stenn <stenn@ntp.org>
>
> So this seems to mean that we will have to stop dovecot, uninstall
> pigeonhole, upgrade dovect, reinstall pigeonhole, and then restart
> dovecot each time we have to upgade dovecot?
Comment 8 Remko Lodder freebsd_committer freebsd_triage 2013-06-29 15:07:00 UTC
The problem described in the PR bites me over and over again as well. It's impractical because everytime there is an update, I need to schedule much more time to
update the ports then needed. While deinstalling pigeonhole, reinstalling dovecot2, reinstalling pigeonhole is a working workaround, it's not something I would actively
keep pursuing. 

Is there anything I can do to help and get rid of this "issue"?

Thanks
Remko

-- 
/"\   With kind regards,			| remko@elvandar.org
\ /   Remko Lodder			| remko@FreeBSD.org
X    FreeBSD					| http://www.evilcoder.org
/ \   The Power to Serve		| Quis custodiet ipsos custodes
Comment 9 Mark Felder freebsd_committer freebsd_triage 2013-07-02 17:38:14 UTC
Here's an overhaul of this port so it doesn't conflict with dovecot.  
Please test! I'd like to see this committed soon as this fix is relevant  
to my interests as well.

https://redports.org/buildarchive/20130702155500-8155/
Comment 10 Mark Felder freebsd_committer freebsd_triage 2013-07-02 17:39:17 UTC
Responsible Changed
From-To: freebsd-ports-bugs->feld

I'll take it.
Comment 11 Mark Linimon 2013-07-03 01:09:01 UTC
----- Forwarded message from Mark Felder <feld@feld.me> -----

Date: Tue, 02 Jul 2013 11:50:00 -0500
From: Mark Felder <feld@feld.me>
To: freebsd-ports-bugs@freebsd.org
Subject: Re: ports/175523: pkgng: mail/dovecot2-pigeonhole conflicts with mail/dovecot2
User-Agent: Opera Mail/12.15 (FreeBSD)

I can confirm it works when you enable the plugin:


Escape character is '^]'.
"IMPLEMENTATION" "Dovecot Pigeonhole"
"SIEVE" "fileinto reject envelope encoded-character vacation
subaddress comparator-i;ascii-numeric relational regex imap4flags copy
include variables body enotify environment mailbox date ihave"
"NOTIFY" "mailto"
"SASL" "PLAIN"
"STARTTLS"
"VERSION" "1.0"
OK "Dovecot ready."


I just need another user to confirm it's functional before I can commit

----- End forwarded message -----
Comment 12 Mark Felder freebsd_committer freebsd_triage 2013-07-08 17:00:33 UTC
Hello maintainer,

Matthieu Volat has confirmed this works for him as well. I simply need  
confirmation that these changes are OK to commit or the maintainer timeout  
of 2 weeks needs to occur.


Thanks!
Comment 13 dfilter service freebsd_committer freebsd_triage 2013-07-16 18:51:27 UTC
Author: feld
Date: Tue Jul 16 17:51:12 2013
New Revision: 323115
URL: http://svnweb.freebsd.org/changeset/ports/323115

Log:
  - Fix conflict with mail/dovecot2
  
  PR:		ports/175523
  Approved by:	crees (mentor)

Modified:
  head/mail/dovecot2-pigeonhole/Makefile
  head/mail/dovecot2-pigeonhole/pkg-plist

Modified: head/mail/dovecot2-pigeonhole/Makefile
==============================================================================
--- head/mail/dovecot2-pigeonhole/Makefile	Tue Jul 16 17:25:45 2013	(r323114)
+++ head/mail/dovecot2-pigeonhole/Makefile	Tue Jul 16 17:51:12 2013	(r323115)
@@ -3,7 +3,7 @@
 
 PORTNAME=	dovecot-pigeonhole
 PORTVERSION=	0.4.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	mail
 MASTER_SITES=	http://www.rename-it.nl/dovecot/${DOVECOTVERSION}/
 DISTNAME=	${PORTNAME:C/-/-${DOVECOTVERSION}-/}-${PORTVERSION}
@@ -12,15 +12,17 @@ MAINTAINER=	bra@fsn.hu
 COMMENT=	Sieve plugin for the Dovecot 'deliver' LDA and LMTP
 
 LICENSE=	LGPL21
+LICENSE_FILE=	${WRKSRC}/COPYING
 
-BUILD_DEPENDS:=	dovecot>=${DOVECOTVERSION}:${PORTSDIR}/mail/dovecot${DOVECOTVERSION:R}
-RUN_DEPENDS:=	dovecot>=${DOVECOTVERSION}:${PORTSDIR}/mail/dovecot${DOVECOTVERSION:R}
+BUILD_DEPENDS:=	dovecot>=${DOVECOTVERSION}:${PORTSDIR}/mail/dovecot2
+RUN_DEPENDS:=	dovecot>=${DOVECOTVERSION}:${PORTSDIR}/mail/dovecot2
 
 DOVECOTVERSION=	2.2
 
 GNU_CONFIGURE=	yes
-CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
-CONFIGURE_ARGS=	--prefix=${PREFIX} \
+CONFIGURE_TARGET=	--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
+CONFIGURE_ARGS=	--exec-prefix=${PREFIX} \
+		--without-dovecot-install-dirs \
 		--docdir=${DOCSDIR} \
 		--with-dovecot="${LOCALBASE}/lib/dovecot"
 LDFLAGS+=	-L${LOCALBASE}/lib
@@ -28,50 +30,17 @@ USE_LDCONFIG=	${PREFIX}/lib/dovecot
 
 MAN1=		sieve-dump.1 sieve-filter.1 sieve-test.1 sievec.1 sieved.1
 MAN7=		pigeonhole.7
+PORTDOCS=	doc/extensions/* doc/plugins/* doc/rfc/*
 
-DOCSDIR=	${PREFIX}/share/doc/${PORTNAME:S/-/\//}
-
-OPTIONS_DEFINE=	DOCS EXAMPLES
-
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MDOCS}
-EXTENSIONDOCS=	editheader.txt include.txt spamtest-virustest.txt \
-		vacation.txt vnd.dovecot.duplicate.txt
-PORTDOCS=	AUTHORS COPYING COPYING.LGPL INSTALL NEWS README TODO \
-		script-location-dict.txt ${EXTENSIONDOCS}
-.endif
-
-.if ${PORT_OPTIONS:MEXAMPLES}
-EXAMPLESDIR=	${PREFIX}/share/examples/${PORTNAME:S/-/\//}
-PORTEXAMPLES=	*.sieve
-.endif
+.include <bsd.port.pre.mk>
 
 post-patch:
 	@${REINPLACE_CMD} -E '\
-		s!^(install-data-am:) install-sieve_docDATA!\1!; \
+	s!^(install-data-am:) install-sieve_docDATA!\1!; \
 		s!^(uninstall-am:) uninstall-sieve_docDATA!\1!;' \
 		${WRKSRC}/doc/Makefile.in
-.if ${PORT_OPTIONS:MDOCS}
-.for f in ${EXTENSIONDOCS}
-	@${LN} -f ${WRKSRC}/doc/extensions/${f} ${WRKSRC}/
-.endfor
-	@${LN} -f ${WRKSRC}/doc/script-location-dict.txt ${WRKSRC}/
-.endif
 
 post-install:
-.if ${PORT_OPTIONS:MDOCS}
-	@${INSTALL} ${_SHROWNGRP} -m ${BINMODE} -d ${DOCSDIR}
-.for f in ${PORTDOCS}
-	@${INSTALL_DATA} ${WRKSRC}/${f} ${DOCSDIR}
-.endfor
-	@${ECHO_MSG} "===> Documentation installed in ${DOCSDIR}"
-.endif
-.if ${PORT_OPTIONS:MEXAMPLES}
-	@${INSTALL} ${_SHROWNGRP} -m ${BINMODE} -d ${EXAMPLESDIR}
-	@${INSTALL_DATA} ${WRKSRC}/examples/*.sieve ${EXAMPLESDIR}
-	@${ECHO_MSG} "===> Examples installed in ${EXAMPLESDIR}"
-.endif
 	@${CAT} ${PKGMESSAGE}
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>

Modified: head/mail/dovecot2-pigeonhole/pkg-plist
==============================================================================
--- head/mail/dovecot2-pigeonhole/pkg-plist	Tue Jul 16 17:25:45 2013	(r323114)
+++ head/mail/dovecot2-pigeonhole/pkg-plist	Tue Jul 16 17:51:12 2013	(r323115)
@@ -1,63 +1,66 @@
+%%DOCSDIR%%/example-config/conf.d/20-managesieve.conf
+%%DOCSDIR%%/example-config/conf.d/90-sieve-extprograms.conf
+%%DOCSDIR%%/example-config/conf.d/90-sieve.conf
 bin/sieve-dump
 bin/sieve-filter
 bin/sieve-test
 bin/sievec
-include/dovecot/sieve/edit-mail.h
-include/dovecot/sieve/pigeonhole-config.h
-include/dovecot/sieve/rfc2822.h
-include/dovecot/sieve/sieve-actions.h
-include/dovecot/sieve/sieve-address-parts.h
-include/dovecot/sieve/sieve-address.h
-include/dovecot/sieve/sieve-ast.h
-include/dovecot/sieve/sieve-binary-dumper.h
-include/dovecot/sieve/sieve-binary-private.h
-include/dovecot/sieve/sieve-binary.h
-include/dovecot/sieve/sieve-code-dumper.h
-include/dovecot/sieve/sieve-code.h
-include/dovecot/sieve/sieve-commands.h
-include/dovecot/sieve/sieve-common.h
-include/dovecot/sieve/sieve-comparators.h
-include/dovecot/sieve/sieve-config.h
-include/dovecot/sieve/sieve-dump.h
-include/dovecot/sieve/sieve-error-private.h
-include/dovecot/sieve/sieve-error.h
-include/dovecot/sieve/sieve-ext-copy.h
-include/dovecot/sieve/sieve-ext-enotify.h
-include/dovecot/sieve/sieve-ext-environment.h
-include/dovecot/sieve/sieve-ext-variables.h
-include/dovecot/sieve/sieve-extensions.h
-include/dovecot/sieve/sieve-generator.h
-include/dovecot/sieve/sieve-interpreter.h
-include/dovecot/sieve/sieve-lexer.h
-include/dovecot/sieve/sieve-limits.h
-include/dovecot/sieve/sieve-match-types.h
-include/dovecot/sieve/sieve-match.h
-include/dovecot/sieve/sieve-message.h
-include/dovecot/sieve/sieve-objects.h
-include/dovecot/sieve/sieve-parser.h
-include/dovecot/sieve/sieve-plugins.h
-include/dovecot/sieve/sieve-result.h
-include/dovecot/sieve/sieve-runtime-trace.h
-include/dovecot/sieve/sieve-runtime.h
-include/dovecot/sieve/sieve-script-private.h
-include/dovecot/sieve/sieve-script.h
-include/dovecot/sieve/sieve-script-file.h
-include/dovecot/sieve/sieve-settings.h
-include/dovecot/sieve/sieve-smtp.h
-include/dovecot/sieve/sieve-stringlist.h
-include/dovecot/sieve/sieve-types.h
-include/dovecot/sieve/sieve-validator.h
-include/dovecot/sieve/sieve.h
-lib/dovecot/lib90_sieve_plugin.a
-lib/dovecot/lib90_sieve_plugin.la
-lib/dovecot/lib90_sieve_plugin.so
-lib/dovecot/libdovecot-sieve.a
-lib/dovecot/libdovecot-sieve.la
-lib/dovecot/libdovecot-sieve.so
-lib/dovecot/libdovecot-sieve.so.0
+include/dovecot-2.2-pigeonhole/sieve/edit-mail.h
+include/dovecot-2.2-pigeonhole/sieve/pigeonhole-config.h
+include/dovecot-2.2-pigeonhole/sieve/rfc2822.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-actions.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-address-parts.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-address.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-ast.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-binary-dumper.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-binary-private.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-binary.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-code-dumper.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-code.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-commands.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-common.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-comparators.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-config.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-dump.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-error-private.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-error.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-ext-copy.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-ext-enotify.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-ext-environment.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-ext-variables.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-extensions.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-generator.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-interpreter.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-lexer.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-limits.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-match-types.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-match.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-message.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-objects.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-parser.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-plugins.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-result.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-runtime-trace.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-runtime.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-script-file.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-script-private.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-script.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-settings.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-smtp.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-stringlist.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-types.h
+include/dovecot-2.2-pigeonhole/sieve/sieve-validator.h
+include/dovecot-2.2-pigeonhole/sieve/sieve.h
+lib/dovecot-2.2-pigeonhole/libdovecot-sieve.a
+lib/dovecot-2.2-pigeonhole/libdovecot-sieve.la
+lib/dovecot-2.2-pigeonhole/libdovecot-sieve.so
+lib/dovecot-2.2-pigeonhole/libdovecot-sieve.so.0
 lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.a
 lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.la
 lib/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
+lib/dovecot/lib90_sieve_plugin.a
+lib/dovecot/lib90_sieve_plugin.la
+lib/dovecot/lib90_sieve_plugin.so
 lib/dovecot/settings/libmanagesieve_login_settings.a
 lib/dovecot/settings/libmanagesieve_login_settings.la
 lib/dovecot/settings/libmanagesieve_login_settings.so
@@ -69,15 +72,14 @@ lib/dovecot/sieve/lib90_sieve_extprogram
 lib/dovecot/sieve/lib90_sieve_extprograms_plugin.so
 libexec/dovecot/managesieve
 libexec/dovecot/managesieve-login
-share/doc/dovecot/example-config/conf.d/20-managesieve.conf
-share/doc/dovecot/example-config/conf.d/90-sieve.conf
-share/doc/dovecot/example-config/conf.d/90-sieve-extprograms.conf
-@dirrmtry share/doc/dovecot/example-config/conf.d
-@dirrmtry share/doc/dovecot/example-config
-@dirrmtry share/doc/dovecot
 @dirrmtry libexec/dovecot
-@dirrm lib/dovecot/sieve
-@dirrm lib/dovecot/settings
+@dirrmtry lib/dovecot/sieve
+@dirrmtry lib/dovecot/settings
+@dirrmtry lib/dovecot/doveadm
+@dirrmtry lib/dovecot-2.2-pigeonhole
 @dirrmtry lib/dovecot
-@dirrm include/dovecot/sieve
-@dirrmtry include/dovecot
+@dirrm include/dovecot-2.2-pigeonhole/sieve
+@dirrm include/dovecot-2.2-pigeonhole
+@dirrm %%DOCSDIR%%/example-config/conf.d
+@dirrm %%DOCSDIR%%/example-config
+@dirrm %%DOCSDIR%%
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 14 Mark Felder freebsd_committer freebsd_triage 2013-07-16 18:52:19 UTC
State Changed
From-To: feedback->closed

Maintainer timeout. Patch committed.