Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Mar 1999 16:57:50 +0000
From:      Neil Blakey-Milner <nbm@mithrandr.moria.org>
To:        Satoshi the Wraith Asami <asami@FreeBSD.ORG>
Cc:        freebsd-ports@FreeBSD.ORG
Subject:   Re: CVSup and Fetch
Message-ID:  <19990327165750.A68075@rucus.ru.ac.za>
In-Reply-To: <199903271329.FAA22229@silvia.hip.berkeley.edu>; from Satoshi "the Wraith" Asami on Sat, Mar 27, 1999 at 05:29:54AM -0800
References:  <199903261302.IAA19553@istari.home.net> <199903261348.FAA18790@silvia.hip.berkeley.edu> <19990327152150.A57118@rucus.ru.ac.za> <199903271329.FAA22229@silvia.hip.berkeley.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat 1999-03-27 (05:29), Satoshi "the Wraith" Asami wrote:
>  * From: Neil Blakey-Milner <nbm@mithrandr.moria.org>
> 
>  * I think a better idea is to rather keep support for at least a release
>  * (theoretically 3 months), using checks around places in bsd.port.mk that
>  * use things in new versions.
> 
> You are vastly underestimating the magnitude of the problem. :)

Perhaps, but I think we'd better make sure people don't start getting
irritated because they have to use upgrade kits too often.

> For one thing, it's not only bsd.port.mk that needs those checks.
> Some changes in bsd.port.mk requires dozens or even hundreds of port
> Makefiles to be modified.  We can't reasonably try to make that to
> work.

Well, if you give me a few examples, I'll take a look and see whether
I've changed my mind about it.  Obviously I'd rather have ports people
spending more time updating port than laboriously changing a few hundred
ports to make sure they work due to some change in bsd.port.mk.

In implementing some form of LICENSE-based ports building - ie, I only
want to make ports that are BSD or GPL or Artistic, or similar licensed,
I added checks in pkg_info, and pkg_add, etc.  My patches don't need
us to change any ports necessarily, but will add some functionality if
people become used to placing LICENSE files in pkg/, or use the LICENSE
variable in their port. (so we don't have 500 copies of the GPL, etc)

I think the ports system is integrated enough with the individual
Makefiles that anything we want to do in a few ports should be
implemented in bsd.port.mk, with the Makefile setting a variable.

As an example, say we wanted to add something to a few ports that used
a new option we've added to fetch, pkg_create, or similar.  Let's
make it to use the fictional fetch argument "-g" which does something
exceptionally useful.

We have two options - either make a change to each of the ports to
FETCH_BEFORE_ARGS+= -g, or we set FETCH_FUNKY_G_ARGUMENT=1, and let
bsd.port.mk take care of it.

In bsd.port.mk we can do all the major version checking to make sure
the fetch version installed currently supports -g.  

If it's a necessary option, we can complain and ask them to install
the upgrade kit, or we can warn them and tell them there's added
functionality available if they use the upgrade kit, or we can just be
silent and ignore the option.

If the use of FETCH_FUNKY_G_ARGUMENT becomes deprecated, we remove the
check from bsd.port.mk, and it'll be ignored silently.

People are more likely to cvsup the entire ports collection than just
a few of them, and thus we don't run into any problems - they'll
get bsd.port.mk at the same time they get the port which uses
FETCH_FUNKY_G_ARGUMENT for some purpose.

If they don't, it's easy enough to shout^H^H^H^H^Hpolitely ask them to
track ports-Mk, since we've been doing that for ages already.

After 3 months, or a release, or whenever we decide, we bump 
BSDPORTMKVERSION, and remove the checks to see if fetch supports -g, 
because if they're using an old version they'll be caught by the check which
compares /var/db/pkg/.mkversion and BSDPORTMKVERSION, and they're likely to
upgrade.  This will only happen to them every few months, and they'll be
happy.

> And the fundamental flaw of your approach is that it will add more
> work to crunch time (just before the release).  It has been proven in
> the past over and over that anything that adds more work to an already
> busy time is not a good idea. :>

Yes, I realize that's a major problem, and I'm amazed at the turn-around
and fluidness of releases of late.  However, these sorts of changes
need not occur just before release, or just after release - because
we're just removing checks that are automatically fulfilled in the new
release, we're not going to run into trouble (well, in theory).

The removal of these checks will just keep things fluid, and since the
minimum BSDPORTMKVERSION will be bumped, older people won't trip over
the removed checks.  And the changes should be trivial enough that someone
not seriously involved in the release-making process can do them.

Enough of a lot of theoretical waffle (hmm... foood), if there's any
interest, I have no problems following up with patches and code.

(also, on a final note, would people be interested in my patches that add
functionality to pkg_* and bsd.port.mk to handle LICENSE files or variables,
considering package system rewrites?)

Neil
-- 
Neil Blakey-Milner
nbm@rucus.ru.ac.za


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?19990327165750.A68075>