From owner-ports-jp@jp.freebsd.org  Fri Sep 26 22:53:22 1997
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta7/8.7.3) id WAA25810
	Fri, 26 Sep 1997 22:53:22 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.7+2.7Wbeta7/8.7.3) with ESMTP id WAA25802
	for <ports-jp@jp.freebsd.org>; Fri, 26 Sep 1997 22:53:20 +0900 (JST)
From: itojun@itojun.org
Received: from localhost (itojun@localhost.itojun.org [127.0.0.1])
	by coconut.itojun.org (8.8.5/3.6Wbeta6) with ESMTP id WAA14287
	for <ports-jp@jp.freebsd.org>; Fri, 26 Sep 1997 22:53:19 +0900 (JST)
To: ports-jp@jp.freebsd.org
X-Template-Reply-To: itojun@itojun.org
X-Template-Return-Receipt-To: itojun@itojun.org
X-PGP-Fingerprint: F8 24 B4 2C 8C 98 57 FD  90 5F B4 60 79 54 16 E2
Date: Fri, 26 Sep 1997 22:53:18 +0900
Message-ID: <14283.875281998@coconut.itojun.org>
Reply-To: ports-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=20]
X-Sequence: ports-jp 1716
Subject: [ports-jp 1716] ports conflict resolusion just before install
Errors-To: owner-ports-jp@jp.freebsd.org
Sender: owner-ports-jp@jp.freebsd.org

	port$B$r(Binstall$B$9$kD>A0$K!"4{$K(Binstall$B$5$l$F$$$k%U%!%$%k$r(B
	$B>e=q$-$7$F$7$^$o$J$$$+8!CN$9$k5!9=$r$D$/$j$^$7$?!#(B
	$B$3$s$J$b$s$G$$$+$,$G$7$g$&(B?

	pkg/PLIST$B$N%U%!%$%k$,$"$k$+$J$$$+D4$Y$k$@$1$G$b$$$$$s$G$9$,!"(B
	$B$=$l$@$H$I$N(Bport/package$B$H>WFM$7$F$k$N$+$o$+$i$J$$$N$G!#(B

	$B$"$H$O(Bpkg/PLIST$B$H$+(B+CONTENTS$B$N(Bparser$B$r$h$j@5$7$/$9$l$P$h$$$N$@$H(B
	$B;W$$$^$9!#(B

itojun



# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	pkgchk.pl
#	hoge
#
echo x - pkgchk.pl
sed 's/^X//' >pkgchk.pl << 'END-of-pkgchk.pl'
X#! /usr/bin/perl
X
X# Copyright(c) 1997 by Jun-ichiro Itoh <itojun@itojun.org>.
X# All rights reserved.
X# Freely redistributable.  Absolutely no warranty.
X# $Id$
X
X$errcnt = 0;
X$prefix = (defined $ENV{'PREFIX'}) ? $ENV{'PREFIX'} : '/usr/local';
X$curdir = $prefix;
X
Xopen(IN, "< pkg/PLIST");
Xwhile (<IN>) {
X	s/\n$//;
X	if (/^\@cwd (\s+)/) {
X		$curdir = $1;
X	} elsif (/^@/) {
X		;	# ignore
X	} else {
X		$install{"$curdir/$_"}++;
X	}
X}
Xclose(IN);
X
X$curdir = $prefix;
Xforeach $name (</var/db/pkg/*/+CONTENTS>) {
X	$pkgname = $name;
X	$pkgname =~ s#^/var/db/pkg/##;
X	$pkgname =~ s#/\+CONTENTS$##;
X	open(IN, "<$name");
X	while (<IN>) {
X		s/\n$//;
X		if (/^\@cwd (\s+)/) {
X			$curdir = $1;
X		} elsif (/^@/) {
X			;	# ignore
X		} else {
X			if ($install{"$curdir/$_"}) {
X				print STDERR "CONFLICT: $curdir/$_ ".
X					"($pkgname)\n";
X				$errcnt++;
X			}
X		}
X	}
X
X	close(IN);
X}
Xexit $errcnt;
END-of-pkgchk.pl
echo x - hoge
sed 's/^X//' >hoge << 'END-of-hoge'
X--- bsd.port.mk-	Wed Aug 20 22:29:47 1997
X+++ bsd.port.mk	Fri Sep 26 22:50:20 1997
X@@ -1096,6 +1096,18 @@
X 	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} build-depends lib-depends misc-depends
X .endif
X .if make(real-install)
X+.if !defined(NO_PKG_CHECK) && !defined(FORCE_PKG_REGISTER)
X+	@if ! /tmp/pkgchk.pl; then \
X+		${ECHO_MSG} "===>  ${PKGNAME} installs files that conflicts with the currently"; \
X+		${ECHO_MSG} "      installed ports/packages."; \
X+		${ECHO_MSG} "      Resolve conflicts before invoking \"make install\", by removing"; \
X+		${ECHO_MSG} "      already-installed ports/packages by pkg_delete."; \
X+		${ECHO_MSG} "      If you really wish to overwrite old files, set the variable"; \
X+		${ECHO_MSG} "      \"FORCE_PKG_REGISTER\" in your environment or the"; \
X+		${ECHO_MSG} "      \"make intsall\" command line."; \
X+		exit 1; \
X+	fi
X+.endif
X .if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER)
X 	@if [ -d ${PKG_DBDIR}/${PKGNAME} ]; then \
X 		${ECHO_MSG} "===>  ${PKGNAME} is already installed - perhaps an older version?"; \
END-of-hoge
exit

