From owner-freebsd-ports-bugs@FreeBSD.ORG Wed Oct 18 21:30:34 2006 Return-Path: <owner-freebsd-ports-bugs@FreeBSD.ORG> X-Original-To: freebsd-ports-bugs@hub.freebsd.org Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5192516A4B3 for <freebsd-ports-bugs@hub.freebsd.org>; Wed, 18 Oct 2006 21:30:34 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 05FDF43DA9 for <freebsd-ports-bugs@hub.freebsd.org>; Wed, 18 Oct 2006 21:30:24 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k9ILUOtg051658 for <freebsd-ports-bugs@freefall.freebsd.org>; Wed, 18 Oct 2006 21:30:24 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k9ILUOtq051657; Wed, 18 Oct 2006 21:30:24 GMT (envelope-from gnats) Resent-Date: Wed, 18 Oct 2006 21:30:24 GMT Resent-Message-Id: <200610182130.k9ILUOtq051657@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Robert Woolley<freebsd@rwoolley.com> Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3D6F016A403 for <freebsd-gnats-submit@FreeBSD.org>; Wed, 18 Oct 2006 21:26:02 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id DBA5043D45 for <freebsd-gnats-submit@FreeBSD.org>; Wed, 18 Oct 2006 21:26:01 +0000 (GMT) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k9ILQ1BZ090572 for <freebsd-gnats-submit@FreeBSD.org>; Wed, 18 Oct 2006 21:26:01 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.13.1/8.13.1/Submit) id k9ILQ13w090571; Wed, 18 Oct 2006 21:26:01 GMT (envelope-from nobody) Message-Id: <200610182126.k9ILQ13w090571@www.freebsd.org> Date: Wed, 18 Oct 2006 21:26:01 GMT From: Robert Woolley<freebsd@rwoolley.com> To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.0 Cc: Subject: ports/104551: Portmanager creates spurious malformed dependencies in the package database X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports <freebsd-ports-bugs.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-ports-bugs>, <mailto:freebsd-ports-bugs-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-ports-bugs> List-Post: <mailto:freebsd-ports-bugs@freebsd.org> List-Help: <mailto:freebsd-ports-bugs-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-ports-bugs>, <mailto:freebsd-ports-bugs-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 18 Oct 2006 21:30:34 -0000 >Number: 104551 >Category: ports >Synopsis: Portmanager creates spurious malformed dependencies in the package database >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Oct 18 21:30:24 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Robert Woolley >Release: 6.1 >Organization: >Environment: FreeBSD gumby.localdomain 6.1-RELEASE-p10 FreeBSD 6.1-RELEASE-p10 #7: Sat Oct 14 22:35:50 BST 2006 root@gumby.localdomain:/usr/obj/data/FreeBSD-src/sys/MUSTARD i386 >Description: After running portmanager, pkgdb will sometimes find numerous stale dependencies on strings that aren't package names. These don't seem to do any harm to portmanager, but they have to be deleted before portupgrade can be used. It may create more severe problems for portmaster, I haven't tried it. Portmanager performs a runtime patch on bsd.port.mk, which causes the makefile to call back into portmanger with the undocumented command "package-depends". This enables portmanager to set PKG_ARGS, which in turn sets the package dependencies. Unfortunately, portmanager doesn't suppress all of it's debug messages when invoked with "package-depends" and the resulting unwanted strings end-up in PKG_ARGS. >How-To-Repeat: Find a port that depends on a forbidden port and run portmanager /<origin> package-depends e.g multimedia/win32-codecs is forbidden when built WITH_QUICKTIME # setenv WITH_QUICKTIME yes && portmanager /multimedia/mplayer package-depends This shows the unwanted debug messages. Upgrading the same port (mplayer) will reproduce the package database corruption. >Fix: All of the portmanager debug message lines start with "MGPMr", so a simple solution is just to filter them out. The following patch patches the patchfile that is used to patch bsd.port.mk. I've been using it for several weeks without a problem, but the PR webpage say it's the wrong content type when I try to attach it. $ cat /usr/ports/sysutils/portmanager/files/patch-patch-bsd.port.mk-0.3.6 --- portmanager/patch-bsd.port.mk-0.3.6.orig Mon Dec 12 20:32:34 2005 +++ portmanager/patch-bsd.port.mk-0.3.6 Wed Sep 20 15:00:17 2006 @@ -5,7 +5,7 @@ .endif .if !defined(PKG_ARGS) -PKG_ARGS= -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} -+PORTMANAGER= ${LOCALBASE}/bin/portmanager /${PKGORIGIN} package-depends ++PORTMANAGER= ${LOCALBASE}/bin/portmanager /${PKGORIGIN} package-depends | ${GREP} -v -E "^MGPMr" +PKG_ARGS= -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${PORTMANAGER} | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} +###PKG_ARGS= -v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS} .if !defined(NO_MTREE) >Release-Note: >Audit-Trail: >Unformatted: