From owner-freebsd-ports@FreeBSD.ORG Sun Jan 28 23:52:43 2007 Return-Path: X-Original-To: freebsd-ports@freebsd.org Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0512B16A404; Sun, 28 Jan 2007 23:52:43 +0000 (UTC) (envelope-from jon.passki@hursk.com) Received: from davie.textdrive.com (davie.textdrive.com [207.7.108.101]) by mx1.freebsd.org (Postfix) with ESMTP id E603713C4A5; Sun, 28 Jan 2007 23:52:42 +0000 (UTC) (envelope-from jon.passki@hursk.com) Received: from [10.1.2.34] (v-209-98-139-33.mn.visi.com [209.98.139.33]) by davie.textdrive.com (Postfix) with ESMTP id 7DECEBDFA4; Sun, 28 Jan 2007 23:26:16 +0000 (GMT) Mime-Version: 1.0 (Apple Message framework v752.3) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Jon Passki Date: Sun, 28 Jan 2007 17:25:56 -0600 To: freebsd-ports@freebsd.org X-Pgp-Agent: GPGMail 1.1.2 (Tiger) X-Mailer: Apple Mail (2.752.3) Cc: Subject: pkg-plist, +CONTENTS, make package, and the ports cluster X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Jan 2007 23:52:43 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, Ports such as mysql-server, apache22 and many others I've noticed have a disconnect between pkg-plist entries and what actually gets installed. Some especially annoying components missed are etc/rc.d scripts or in the case of gettext, a library file. In the short term I was going to create a PR for some of these ports. My major assumption, with variables enumerated, a +CONTENTS file should be a subset of a pkg-plist file. With this, my basic approach was to diff the +CONTENTS file from the build system and the +CONTENTS file from the install via pkg_add system (ignoring comments, sample output below). Should these files be the same? When would they not be (again, stripping comments)? This output could be used to check the pkg-plist file, accepting that variables in the pkg-plist will need to be enumerated. Is this a decent method? In the long term, would this be something that makes sense for the ports cluster to check on? Are there situations where a port may install something that a pkg-plist file should never record? Cheers, Jon [apache22 sample diff output] grep -v "^@comment" [bulidbox]/var/db/pkg/apache-2.2.4/+CONTENTS > / tmp/+CONTENTS_make_package_apache22 grep -v "^@comment" [installbox]/var/db/pkg/apache-2.2.4/+CONTENTS > / tmp/+CONTENTS_make_install_apache22 diff -u /tmp/+CONTENTS_make_install_apache22 /tmp/ +CONTENTS_make_package_apache22 | wc -l 755 diff -u /tmp/+CONTENTS_make_install_apache22 /tmp/ +CONTENTS_make_package_apache22 | grep '^-' | wc -l 737 diff -u /tmp/+CONTENTS_make_install_apache22 /tmp/ +CONTENTS_make_package_apache22 | grep '^+' | wc -l 14 diff -u /tmp/+CONTENTS_make_install_apache22 /tmp/ +CONTENTS_make_package_apache22 | head - --- /tmp/+CONTENTS_make_install_apache22 Sun Jan 28 21:52:47 2007 +++ /tmp/+CONTENTS_make_package_apache22 Sun Jan 28 21:53:39 2007 @@ -567,739 +567,16 @@ @unexec rmdir %D/etc/apache22 2> /dev/null || echo "===> If you plan to do not reinstall apache22, you can safely remove %D/etc/apache22." @exec /sbin/ldconfig -m /usr/local/lib @unexec /sbin/ldconfig -R - -share/doc/apache22/LICENSE - -share/doc/apache22/NOTICE - -share/doc/apache22/bind.html - -share/doc/apache22/bind.html.de -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (Darwin) iD8DBQFFvTEUZpJsLIS+QSIRAs8XAJ9aleKmRSkPATrLwSzW77F0AE6NsACdEMgb VOoNLhcNV/4KgPKXj05GV9M= =LFvx -----END PGP SIGNATURE-----