Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Aug 2000 22:39:55 -0700
From:      Jeremy Lea <reg@FreeBSD.ORG>
To:        Satoshi - Ports Wraith - Asami <asami@FreeBSD.ORG>
Cc:        Kris Kennaway <kris@FreeBSD.ORG>, ports@FreeBSD.ORG
Subject:   Re: Proposal: PORTREVISION and PORTEPOCH
Message-ID:  <20000828223955.B323@shale.csir.co.za>
In-Reply-To: <vqc4s44oocq.fsf@bubble.hip.berkeley.edu>; from asami@FreeBSD.ORG on Mon, Aug 28, 2000 at 06:19:48PM -0700
References:  <Pine.BSF.4.21.0008200434470.24448-100000@freefall.freebsd.org> <vqc4s44oocq.fsf@bubble.hip.berkeley.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

On Mon, Aug 28, 2000 at 06:19:48PM -0700, Satoshi Asami wrote:
> This is of course not a problem of this proposal, just a manifest of
> an old problem that could be triggerred with having more different
> versions in the user's machine.  I need someone to work with me on the
> pkg_* tools so we'll have better upgrade support, any takers?

I started on this, and have a design in mind.  The first part was my
pkg_which tool, which I've been asked to wrap into pkg_info
(http://people.freebsd.org/~reg/).  The idea is to detect which
port/package installed a binary/library, and use it rather than the info
from the makefiles.

The support for bsd.port.mk would involve doing a pkg_which on each
immediate dependency:

for $$f in ${RUN_DEPENDS}; do
  pkg_info -qf `pkg_which $$f` | egrep '(@pkgdep|@name)' |
    sed -e 's/@pkgdep //' -e 's/@name //'
done | sort -u

etc. in the package-depends-list target.

pkg_add is a bit harder, since we need to added a comment after each
@pkgdep line which has is something like:

@pkgdep gtk-1.2.8
@comment libdep gtk12.2

And then do the dependency logic inside pkg_add, so that if an earlier
version installed libgtk12.so.2 then it would be used.  The @pkgdep line
would be rewritten with the installed depend's version.  If no version is
found then we look for gtk-1.2.8.tgz.

After that, basic upgrading is a matter of deinstalling the current
verison, except any files ending in .so.X and then installing the new
version, and patching up the +REQUIRED_BY files, and @pkgdep lines, and
adding the .so.x files into the new packaging list.

My vote would be for writing the port epoch and minor version into the
packaging list, and forgetting it in the package names:

@comment epoch 1
@comment minor 2

The are numbers which are more important to the tools than to the users. 
Well maybe the minor should be in the port name.  The epoch is less of a
user thing...  I'd also vote for bumping the minor no matter what
changed - then there's no judgement call on what is important and what
is not.

In the libdep line above, it would also be possible to have a minimum
required version:

@comment libdep gtk12.2:1.2.6

Regards,
 -Jeremy

-- 
FreeBSD - Because the best things in life are free...
                                           http://www.freebsd.org/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000828223955.B323>