[patch] Call for testers: make CONFLICTS "prefix free"

Clement Laforet sheepkiller at cultdeadsheep.org
Sat Oct 11 13:34:46 PDT 2003


Hi guys !

Oliver Eikemeier has made an excellent job. Listing all conflicting
ports is very good idea, but currently CONFLICTS doesn't considers
PREFIX. Ports don't conflict if they are installed in different
locations !
I tested this patch with apache and INN, and before submiting a PR,
I'd rather get some feedback.

regards,
clem

Index: bsd.port.mk
===================================================================
RCS file: /WORK/REPO/ports/Mk/bsd.port.mk,v
retrieving revision 1.468
diff -u -r1.468 bsd.port.mk
--- bsd.port.mk	3 Sep 2003 19:50:24 -0000	1.468
+++ bsd.port.mk	11 Oct 2003 20:21:24 -0000
@@ -2990,15 +2990,25 @@
 .endfor
 	@if [ -s ${WRKDIR}/.CONFLICTS ]; then \
 		found=`cat ${WRKDIR}/.CONFLICTS | ${SED} -e s'|${PKG_DBDIR}/||g' | tr '\012' ' '`; \
-		${ECHO_MSG} "===>  ${PKGNAME} conflicts with installed package(s): "; \
+		conflicting=0; \
+		${ECHO_MSG} "===>  ${PKGNAME} may conflict with installed package(s): "; \
 		for entry in $$found; do \
-			${ECHO_MSG} "      $$entry"; \
+			${ECHO_MSG} -n "      $$entry:"; \
+		prfx=`${PKG_INFO} -q -p $${entry} 2> /dev/null | ${HEAD} -n 1 | ${SED} -ne '1s|^@cwd ||p'`; \
+		if [ "x$${PREFIX}" = "x$${prfx}" ]; then \
+			conflicting=1;\
+			${ECHO_MSG} " yes.";\
+			else \
+			${ECHO_MSG} " no.";\
+		fi;\
 		done; \
 		${ECHO_MSG}; \
+		if [ "x$${conflicting}" = "x1" ] ; then \
 		${ECHO_MSG} "      They install files into the same place."; \
 		${ECHO_MSG} "      Please remove them first with pkg_delete(1)."; \
 		${RM} -f ${WRKDIR}/.CONFLICTS; \
 		exit 1; \
+		fi ;\
 	fi
 .endif  # CONFLICTS
 .endif


More information about the freebsd-ports mailing list