From owner-freebsd-ports@FreeBSD.ORG Mon Nov 26 15:54:36 2007 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A63D116A479; Mon, 26 Nov 2007 15:54:36 +0000 (UTC) (envelope-from sat@cenkes.org) Received: from heka.cenkes.org (heka.cenkes.org [208.79.80.110]) by mx1.freebsd.org (Postfix) with ESMTP id 0911013C4D3; Mon, 26 Nov 2007 15:54:36 +0000 (UTC) (envelope-from sat@cenkes.org) Received: from amilo.cenkes.org (ppp85-141-134-84.pppoe.mtu-net.ru [85.141.134.84]) (Authenticated sender: sat) by heka.cenkes.org (Postfix) with ESMTP id E4DD3242F82D; Mon, 26 Nov 2007 18:54:34 +0300 (MSK) Date: Mon, 26 Nov 2007 18:54:32 +0300 From: Andrew Pantyukhin To: Alex Dupre Message-ID: <20071126155430.GB1637@amilo.cenkes.org> References: <20071123202524.GS66812@amilo.cenkes.org> <47474D80.5090206@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <47474D80.5090206@FreeBSD.org> X-OS: FreeBSD 8.0-CURRENT amd64 User-Agent: Mutt/1.5.16 (2007-06-09) Cc: freebsd-ports Subject: Re: how to distinguish direct/indirect requirements? X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: infofarmer@FreeBSD.org List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Nov 2007 15:54:36 -0000 On Fri, Nov 23, 2007 at 11:00:32PM +0100, Alex Dupre wrote: > Andrew Pantyukhin wrote: > > You can cd some/port/&&make depends > > One way only. It would be more useful to know which installed ports > directly depend on a specific port. As an obvious working (but not nearly correct) example: pkg_direct_req #!/bin/sh indirect_reqs=`pkg_info -Rx "$1"|egrep -v '(:|^$)'` pkg_origin=`pkg_info -ox "$1"|grep -m1 /` for i in $indirect_reqs;do req_origin=`pkg_info -o "$i"|grep /` depdirs=`cd /usr/ports/$req_origin;make -V _DEPEND_DIRS` if echo $depdirs|grep -qw $pkg_origin;then echo $i is a direct req fi done