From owner-freebsd-ports@FreeBSD.ORG Sun Apr 20 14:58:33 2003 Return-Path: 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 3697E37B408 for ; Sun, 20 Apr 2003 14:58:33 -0700 (PDT) Received: from obsecurity.dyndns.org (adsl-67-115-75-1.dsl.lsan03.pacbell.net [67.115.75.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 832B243F75 for ; Sun, 20 Apr 2003 14:58:32 -0700 (PDT) (envelope-from kris@obsecurity.org) Received: from rot13.obsecurity.org (rot13.obsecurity.org [10.0.0.5]) by obsecurity.dyndns.org (Postfix) with ESMTP id 56EB466E42; Sun, 20 Apr 2003 14:58:32 -0700 (PDT) Received: by rot13.obsecurity.org (Postfix, from userid 1000) id 31165149F; Sun, 20 Apr 2003 14:58:32 -0700 (PDT) Date: Sun, 20 Apr 2003 14:58:32 -0700 From: Kris Kennaway To: Sergey Matveychuk Message-ID: <20030420215832.GC78660@rot13.obsecurity.org> References: <000b01c3074d$d189c890$0a2da8c0@sem> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="JWEK1jqKZ6MHAcjA" Content-Disposition: inline In-Reply-To: <000b01c3074d$d189c890$0a2da8c0@sem> User-Agent: Mutt/1.4i cc: ports@freebsd.org cc: kris@obsecurity.org Subject: Re: [kris@freebsd.org: cvs commit: ports/Mk bsd.port.mk] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Apr 2003 21:58:33 -0000 --JWEK1jqKZ6MHAcjA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Apr 20, 2003 at 07:02:09PM +0400, Sergey Matveychuk wrote: > Kris Kennaway wrote: > > The 'deinstall' improvement is particularly interesting. It should > > not be a huge amount of work to make a decent 'make upgrade' and 'make > > recursive-upgrade' target that does a portupgrade-like sequence of > > backup/deinstall/build/install on the current port (and its > > dependencies). I'd love it if someone felt like working on this! >=20 > I'v had this idea. And I'll plan to work for it within next week. >=20 > Has somebody comments or suggestion for it? I gave it a try, but the recursive-upgrade target is not so easy. I wrote a modified ALL-DEPENDS-LIST that recurses into children and sorts their dependencies in topological order, but it is very slow (~10 minutes for gnome2). Instead the way to do this would be to parse the dependencies listed in INDEX, which is what portupgrade does (like portupgrade, this would assume you have an up-to-date INDEX). I came to the conclusion that this wouldn't really fit inside bsd.port.mk, and it would be best to create a standalone pkg_upgrade tool that mirrors portupgrade. Writing it in sh might be possible, but it would probably get very complicated. As a first step I was thinking about writing some C code that wrote INDEX into a binary DB file, and which could read that into a tree structure in memory to discover the dependency graphs. I don't know when I'll get time to work on this though. Kris --JWEK1jqKZ6MHAcjA Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQE+oxgHWry0BWjoQKURAsZgAKDIL14W1elBfEfasO2Lxo702MfN5wCcCFJM nvR105eucmMCsRDx9tC6m38= =cgKs -----END PGP SIGNATURE----- --JWEK1jqKZ6MHAcjA--