Dislike the way port conflicts are handled now

b. f. bf1783 at googlemail.com
Sun Jan 17 15:41:50 UTC 2010

On 1/17/10, Martin Wilke <miwi at freebsd.org> wrote:
> On Sun, 17 Jan 2010 11:44:05 +0100
> Pav Lucistnik <pav at FreeBSD.org> wrote:
>> Greg Larkin píše v so 16. 01. 2010 v 18:02 -0500:

>> I will agree that `portupgrade -o` is way too useful feature.
>> I'd vote for reverting to the old behaviour.

portupgrade and other tools can easily be patched to work with  the
new behavior, by defining DISABLE_CONFLICTS for the targets preceding
installation.  Since the new behavior is generally more efficient, and
safer, and since the people who will need to defer the check for some
reason are in the minority, I vote that we keep the new behavior, and
offer a chance to opt out of it with something like the attached
patch. I didn't add any extra warnings, since I assumed that those who
choose to defer the checks already know that this may lead to problems
in some cases.


>> > I thought portmgr might have some insight into additional reasons
>> > for making the change, such as fixing a problem with pointyhat
>> > builds, etc. At the moment, I'm neutral on the change, since it
>> > hasn't caused me any grief, but I did some research for the folks
>> > who posted the original questions.
>> It was done because someone thought it is a good idea and submitted a
>> PR about it.
> Howdy,
> For some ports is the conflict check too late see example here.
> http://lists.freebsd.org/pipermail/freebsd-gecko/2009-December/000577.html
> I agree that we need a new pre-fetch hook in bsd.port.mk if a conflict
> present is. But that need a bit work and it is on my todo list...
> - Martin
-------------- next part --------------
--- bsd.port.mk.orig	2010-01-17 09:46:09.000000000 -0500
+++ bsd.port.mk	2010-01-17 10:36:02.000000000 -0500
@@ -541,6 +541,10 @@
 #				  pattern meta-characters "*", "?", "[", "]", and "!".
 #				  Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_*
+# LATE_CONFLICTS	- If set, this port will defer the check for conflicts until immediately
+#			before the install target, to allow conflicting ports to be fetched and built.
+#			This may expose build errors due to the presence of conflicting ports.
 # Various directory definitions and variables to control them.
 # You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR.
@@ -4253,9 +4257,17 @@
+.if defined(LATE_CONFLICTS)
+_LATE_CONFLICT_CHECK=	check-conflicts
+_EARLY_CONFLICT_CHECK=	check-conflicts
 _SANITY_SEQ=	${_CHROOT_SEQ} pre-everything check-makefile \
 				check-categories check-makevars check-desktop-entries \
-				check-conflicts check-depends check-deprecated \
+				${_EARLY_CONFLICT_CHECK} check-depends check-deprecated \
 				check-vulnerable buildanyway-message options-message
 _FETCH_DEP=		check-sanity
 _FETCH_SEQ=		fetch-depends pre-fetch pre-fetch-script \
@@ -4275,8 +4287,8 @@
 _BUILD_SEQ=		build-message pre-build pre-build-script do-build \
 				post-build post-build-script
 _INSTALL_DEP=	build
-_INSTALL_SEQ=	install-message run-depends lib-depends apply-slist pre-install \
-				pre-install-script generate-plist check-already-installed
+_INSTALL_SEQ=	install-message ${_LATE_CONFLICT_CHECK} run-depends lib-depends \
+				apply-slist pre-install pre-install-script generate-plist check-already-installed
 _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \
 				pre-su-install-script create-users-groups do-install \
 				install-desktop-entries post-install post-install-script \

More information about the freebsd-questions mailing list