From owner-freebsd-current Wed Jun 28 6:23:54 2000 Delivered-To: freebsd-current@freebsd.org Received: from ns.internet.dk (ns.internet.dk [194.19.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 6DA6D37B65B for ; Wed, 28 Jun 2000 06:23:48 -0700 (PDT) (envelope-from leifn@neland.dk) Received: (from uucp@localhost) by ns.internet.dk (8.9.3/8.9.3) with UUCP id PAA44766; Wed, 28 Jun 2000 15:22:33 +0200 (CEST) (envelope-from leifn@neland.dk) Received: from localhost (localhost [127.0.0.1]) by arnold.neland.dk (8.9.3/8.9.3) with ESMTP id PAA46057; Wed, 28 Jun 2000 15:13:43 +0200 (CEST) (envelope-from leifn@neland.dk) Date: Wed, 28 Jun 2000 15:13:43 +0200 (CEST) From: Leif Neland To: Alexander Leidinger Cc: schuerge@wjpserver.CS.Uni-SB.DE, freebsd-current@FreeBSD.ORG Subject: Re: Check for ports updates In-Reply-To: <200006281233.OAA68885@Magelan.Leidinger.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Any reason not to put this into bsd.port.mk? make update On Wed, 28 Jun 2000, Alexander Leidinger wrote: > On 28 Jun, Leif Neland wrote: > > > The steps needed for upgrading a package (from ports) would be: > > > > make install > > > > append foo-1.1/+REQUIRED_BY to foo-1.2/+REQUIRED_BY > > > > traverse /var/db/pkg/* and remove foo-1.1/replace with foo-1.2 > > > > "subtract" foo-1.2/+CONTENT from foo-1.1/+CONTENT, only removing files > > needed only in foo-1.1 > > > > remove /var/db/pkg/foo-1.1 > > cd /usr/ports/foo/bar > make > mv /var/db/pkg/bar-x.y.z/+REQUIRED_BY . > pkg_delete bar-a.b.c > make install > mv +REQUIRED_BY /var/db/pkg/bar-d.e.f > port_update.sh bar a.b.c d.e.f > > port_update.sh: > ---snip--- > #!/bin/sh > > # Syntax: port_update.sh > # yes, I know it's ugly > > if [ ! $3 ]; then > echo "$0 " > exit 1 > fi > > for i in `cat /var/db/pkg/${1}-${3}/+REQUIRED_BY`; do > echo -n "Updating ${i}... " > perl -npi -e "s:\@pkgdep\ ${1}\-${2}:\@pkgdep\ ${1}\-${3}:g" /var/db/pkg/${i}/+CONTENTS > echo "done" > done > ---snip--- > > Lazy disclaimer: > - works for me > - I think I know what I'm doing here (and what the limitations are > (e.g. bar == libxyz && libmajorversion(old) != > libmajorversion(new))). > > Bye, > Alexander. > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message