From owner-cvs-src-old@FreeBSD.ORG Fri Jun 19 17:07:52 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17EEA1065678 for ; Fri, 19 Jun 2009 17:07:52 +0000 (UTC) (envelope-from brian@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DC8BA8FC18 for ; Fri, 19 Jun 2009 17:07:51 +0000 (UTC) (envelope-from brian@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5JH7pwc072222 for ; Fri, 19 Jun 2009 17:07:51 GMT (envelope-from brian@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5JH7pPA072221 for cvs-src-old@freebsd.org; Fri, 19 Jun 2009 17:07:51 GMT (envelope-from brian@repoman.freebsd.org) Message-Id: <200906191707.n5JH7pPA072221@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to brian@repoman.freebsd.org using -f From: Brian Somers Date: Fri, 19 Jun 2009 17:07:38 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/usr.sbin/pkg_install/add perform.c src/usr.sbin/pkg_install/create perform.c src/usr.sbin/pkg_install/info perform.c src/usr.sbin/pkg_install/lib lib.h pen.c url.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jun 2009 17:07:52 -0000 brian 2009-06-19 17:07:38 UTC FreeBSD src repository Modified files: usr.sbin/pkg_install/add perform.c usr.sbin/pkg_install/create perform.c usr.sbin/pkg_install/info perform.c usr.sbin/pkg_install/lib lib.h pen.c url.c Log: SVN rev 194497 on 2009-06-19 17:07:38Z by brian When running pkg_add -r, check & install our dependencies for each package rather than expecting our top level package to get all of the dependencies correct. Previously, the code depended on the top level package having all of the pkgdep lines in +CONTENTS correct and in the right order, but that doesn't always happen due to code such as this (in security/gnutls/Makefile): .if (defined(WITH_LZO) || exists(${LOCALBASE}/lib/liblzo2.so)) && !defined(WITHOUT_LZO) LIB_DEPENDS+= lzo2:${PORTSDIR}/archivers/lzo2 .... With such conditional dependencies, my 'sophox-packages' package won't install. The dependency tree looks like this: sophox-packages ... x11/gnome2 x11/gnome-applets net/libgweather devel/libsoup security/gnutls security/libgcrypt security/libgpg-error ... x11/gnome2 archivers/file-roller archivers/gtar archivers/lzop archivers/lzo2 ... gnutls doesn't depend on lzo2 initially, but lzo2 is dragged into the mix via other dependencies and is built by the initial 'make'. The subsequent package generation for gnutls adds a pkgdep line for lzo2 to gnutls' +CONTENTS but the pkgdeps in sophox-packages' +CONTENTS has gnutls *before* lzo2. As a result, sophox-packages cannot install; gnutls fails because lzo2 is missing, 82 more packages fail because gnutls is missing and the whole thing spirals into a super-confusing mess! MFC after: 3 weeks Revision Changes Path 1.87 +49 -13 src/usr.sbin/pkg_install/add/perform.c 1.84 +1 -2 src/usr.sbin/pkg_install/create/perform.c 1.56 +2 -4 src/usr.sbin/pkg_install/info/perform.c 1.74 +3 -3 src/usr.sbin/pkg_install/lib/lib.h 1.44 +23 -20 src/usr.sbin/pkg_install/lib/pen.c 1.11 +3 -2 src/usr.sbin/pkg_install/lib/url.c