From owner-freebsd-ports@FreeBSD.ORG Tue Dec 19 15:16:39 2006 Return-Path: X-Original-To: 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 6B44116A403 for ; Tue, 19 Dec 2006 15:16:39 +0000 (UTC) (envelope-from infofarmer@gmail.com) Received: from nz-out-0506.google.com (nz-out-0506.google.com [64.233.162.233]) by mx1.FreeBSD.org (Postfix) with ESMTP id EE31F43CB2 for ; Tue, 19 Dec 2006 15:14:55 +0000 (GMT) (envelope-from infofarmer@gmail.com) Received: by nz-out-0506.google.com with SMTP id i11so726627nzh for ; Tue, 19 Dec 2006 07:14:47 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:sender:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition:x-google-sender-auth; b=WT5yD57UeIYmk/iJhXLM7jkbYLdjZFA6bn6LwNv2bBUQJnXqcasNReU2J/O/THLAKCgxHF/kjfYOegnTrg8mSOBlUzNBs/OFk7CbZJw7OYd/O5eSrtiVZBMBD4OygXi2Kz+X7Pbm1Nrs4a2mUDalGyQkg+vF7uF8OEOF8L8CqeA= Received: by 10.78.47.15 with SMTP id u15mr3950136huu.1166539671946; Tue, 19 Dec 2006 06:47:51 -0800 (PST) Received: by 10.78.167.16 with HTTP; Tue, 19 Dec 2006 06:47:51 -0800 (PST) Message-ID: Date: Tue, 19 Dec 2006 17:47:51 +0300 From: "Andrew Pantyukhin" Sender: infofarmer@gmail.com To: "FreeBSD Ports" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Google-Sender-Auth: c6234686a50aa5fc Cc: Subject: Detecting real python (perl/ruby/.so/...) dependencies 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: Tue, 19 Dec 2006 15:16:39 -0000 It's never clear what a program really needs. Ports solve this problem (mostly), but whenever you make an update or port something new, you face the same issue. Developers tend to maintain a list of dependencies, but you're in big luck if you find it up-to-date and accurate. It would be nice to verify anyway. So I need to find out what modules does a particu- lar python program require. I can grep for import, but many modules are present in our python bundle. Is there a way to see: 1) Which of the modules are present, and any single file for each of them, so we can map to installed packages 2) Which of the modules are not present Ideally, also 3) A hint as to where can I find a missing module, maybe from some CPAN-like repo 4) Whether the module is critical for the app, e.g. whether it's imported inside a try block I've seen something like this for Perl, but not for Python apps. If you successfully use an automa- ted way of detecting dependencies for Python (and maybe other languages like Perl, Tcl/Tk, Ruby, or maybe even C/C++, based on headers or something), please share. Thanks!