From owner-freebsd-ports@FreeBSD.ORG Wed May 21 03:32:05 2014 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 735B4341 for ; Wed, 21 May 2014 03:32:05 +0000 (UTC) Received: from mail-pb0-x22c.google.com (mail-pb0-x22c.google.com [IPv6:2607:f8b0:400e:c01::22c]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48A4C2276 for ; Wed, 21 May 2014 03:32:05 +0000 (UTC) Received: by mail-pb0-f44.google.com with SMTP id rq2so954423pbb.31 for ; Tue, 20 May 2014 20:32:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=cyvx6cnphiVMNN92E/pr5XBsTLIvkp53pgcD5A0LH5w=; b=Vbyt8oBQGENZHdxUd4w5EHgAr/0l6l87kVbby/kpAm8zx4NVhi+IuyEVz2EH8ymKBI aR2czk0KmXjMLsLEu47oC63e1tk1K9aUe3dHVe6kOt17RQDVqNbmDmjyUe/4szie4zSB YqkvzUX83/3XJxsARE+UVMukzV2s1/ZvDLMUQD7xAmIRxoJrssci4Xh19EwXGK2TqPpd 0x8IAuPJOiVwJfJ1sx9lMTtmSgoaEjZpkzLAo3UNMCbSCE8erdAN9nHlpe9rooRmlzhJ +OhwHONKvu6vRQ1aPNpyyXkQ2qRorQXULszatnrGdve2QAGgBaEUV9RESEAdy1O/iadR kikw== MIME-Version: 1.0 X-Received: by 10.66.242.204 with SMTP id ws12mr55912198pac.10.1400643124790; Tue, 20 May 2014 20:32:04 -0700 (PDT) Sender: kob6558@gmail.com Received: by 10.66.73.34 with HTTP; Tue, 20 May 2014 20:32:04 -0700 (PDT) In-Reply-To: References: <86305.1400624755@server1.tristatelogic.com> Date: Tue, 20 May 2014 20:32:04 -0700 X-Google-Sender-Auth: g2Tyka7T7NSD6qMzAT3pOiQIpY4 Message-ID: Subject: Re: PORT META: Installed files conflict between ports From: Kevin Oberman To: Robert Backhaus Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: Freebsd_mailinglist_PORTS , "Ronald F. Guilmette" X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 May 2014 03:32:05 -0000 On Tue, May 20, 2014 at 6:53 PM, Robert Backhaus wrote: > The fact that those two ports install conflicting binaries isn't a problem. > The problem is that you were allowed to install the second port. > > With mplayer, there is a correct CONFLICTS line in mplayer2, but does not > appear to be one in mplayer. But both samba ports seem to have the correct > CONFLICTS line, but that may have been fixed after you installed the port. > > > On 21 May 2014 08:25, Ronald F. Guilmette wrote: > > > > > I just submitted the following PR: > > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=190027 > > > > I was a bit flabberghasted to believe that such file conflicts between > > ports was even possible. Seeing that it is possible prompted me to > > write the attached small Perl script, which can quickly find all such > > cases among a set of installed ports on a given system. > > > > To use this simple script, place it somewhere on your path and name > > it "pccheck" (Port Conflict Check). Then do the following: > > > > cd /var/db/pkg > > pccheck * > > > > That will tell you if any of your installed ports have installed any > > files which any other of your installed ports also believe that they > > also have installed. > > > > When I ran it on my system, I got this, which is worrying, to say the > > least: > > > > mplayer2-2.0.20130428_4: Conflict -- file=/usr/local/bin/mplayer > > pkg=mplayer-1.1.r20140418 > > mplayer2-2.0.20130428_4: Conflict -- > file=/usr/local/man/man1/mplayer.1.gz > > pkg=mplayer-1.1.r20140418 > > samba36-nmblookup-3.6.23: Conflict -- file=/usr/local/bin/nmblookup > > pkg=samba36-3.6.23 > > samba36-nmblookup-3.6.23: Conflict -- > > file=/usr/local/man/man1/nmblookup.1.gz pkg=samba36-3.6.23 > > samba36-nmblookup-3.6.23: Conflict -- > > file=/usr/local/man/man5/smb.conf.5.gz pkg=samba36-3.6.23 > > > > How does this sort of problem even creep in (to the ports tree)? Is > > there nothing in place which prevents it from arising? > > > > > > > ============================================================================ > > #!/usr/bin/perl -w > > > > use strict; > > > > my $origin; > > my %installed_files; > > > > foreach my $arg (@ARGV) { > > next unless (-d "$arg"); > > open (IFILE, "<$arg/+CONTENTS") || die "$arg: Open failed\n"; > > while (my $line = ) { > > chop $line; > > if ($line =~ m/^\@/) { > > if ($line =~ m/^\@conflicts /) { > > # print STDERR ("$arg: $line\n"); > > # do nothing > > } elsif ($line =~ m/^\@cwd /) { > > $origin = $'; > > } else { > > # do nothing > > } > > } else { > > next if ($line =~ m/^\+[A-Z]/); > > die "$arg: Origin not defined\n" unless (defined ($origin)); > > my $fullpath = "$origin/$line"; > > # print "$fullpath\n"; > > if (exists ($installed_files{$fullpath})) { > > print STDERR ("$arg: Conflict -- file=$fullpath > > pkg=$installed_files{$fullpath}\n"); > > } else { > > $installed_files{$fullpath} = $arg; > > } > > } > > } > > close (IFILE); > > } > > > The old pkg system did not check or block the installation of files over existing files installed by a different port. pkgng does, so these will all be eventually caught. It is not clear to me whether the pkg2pkgng conversion process will catch these. Since the loading of identical packing list files into the SQL database should not be possible, I woul axpect it to, bu it may just spit out error messages and either replace the old entry with the new or leave the old one in place. -- R. Kevin Oberman, Network Engineer, Retired E-mail: rkoberman@gmail.com