From owner-freebsd-ports@FreeBSD.ORG Fri Sep 29 17:21:17 2006 Return-Path: X-Original-To: ports@freebsd.org Delivered-To: freebsd-ports@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 359EE16A40F for ; Fri, 29 Sep 2006 17:21:17 +0000 (UTC) (envelope-from michel@lpthe.jussieu.fr) Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by mx1.FreeBSD.org (Postfix) with ESMTP id 662BE43D5D for ; Fri, 29 Sep 2006 17:21:09 +0000 (GMT) (envelope-from michel@lpthe.jussieu.fr) Received: from parthe.lpthe.jussieu.fr (parthe.lpthe.jussieu.fr [134.157.10.1]) by shiva.jussieu.fr (8.13.7/jtpda-5.4) with ESMTP id k8THL8ia062151 for ; Fri, 29 Sep 2006 19:21:08 +0200 (CEST) X-Ids: 164 Received: from niobe.lpthe.jussieu.fr (niobe.lpthe.jussieu.fr [134.157.10.41]) by parthe.lpthe.jussieu.fr (Postfix) with ESMTP id 59D279FC31 for ; Fri, 29 Sep 2006 19:21:07 +0200 (CEST) Received: by niobe.lpthe.jussieu.fr (Postfix, from userid 2005) id 223C635; Fri, 29 Sep 2006 19:21:22 +0200 (CEST) Date: Fri, 29 Sep 2006 19:21:22 +0200 From: Michel Talon To: ports@freebsd.org Message-ID: <20060929172122.GA80952@lpthe.jussieu.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.1i X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0.2 (shiva.jussieu.fr [134.157.0.164]); Fri, 29 Sep 2006 19:21:08 +0200 (CEST) X-Virus-Scanned: ClamAV 0.88.2/1950/Thu Sep 28 16:11:54 2006 on shiva.jussieu.fr X-Virus-Status: Clean X-Miltered: at shiva.jussieu.fr with ID 451D5604.001 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! Cc: Subject: Yet another INDEX builder. 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: Fri, 29 Sep 2006 17:21:17 -0000 Hello, based on the documentation in http://www.lpthe.jussieu.fr/~talon/freebsdports.html i have written yet another index builder in python, which can be found here: http://www.lpthe.jussieu.fr/~talon/build_index.py I think it works relatively well and fast, and can provide building blocks for doing a package updater alternative to portupgrade. Of course, like the documentation, it is completely free. I would be happy if some people could test it on a real biproc machine, or a machine with fast disks, to see the timings (*) one gets. On my machine, a P4 3Ghz, oldish, it takes 23 minutes to complete building the INDEX, but the python script doesn't run more than 1 minute. Everything else is IO, i think. So one cannot expect any performance improvement by writing such a program in C. The program will not overwrite anything, it will write INDEX locally. A peculiarity is that it will output INDEX in topological sorted order. When basically loading the result of all make -V in each port from a pickle file, all the work of recursively extension of dependencies and topological sorting, including loading the file takes 5 seconds. Comparing that with the response time of portupgrade says something about its efficiency. (*) The program outputs timings. -- Michel TALON