diffutils upgrade
Matthew Dillon
dillon at apollo.backplane.com
Sat Mar 27 10:56:58 PST 2004
:This patch will upgrade diffutils to 2.8.1, before you patch your source
:with it you probably have to remove config/diff.
:
:Commit in 3-4 days if noone experience any breakage with it.
:
:http://eirikn.kerneled.com/dragonfly/diffutils-2.8.1.diff.bz2
:
:What is the preferd way to commit it? Using cvs (add|rm|commit) og cvs
:import?
:
:--=20
:Eirik Nygaard
Ok, a couple of things here.
First, great work on the patch!
For future reference, do not try to specify a patch for an official
archive that we are importing almost verbatim. Instead just specify
the official archive and provide a script to remove the files that
aren't going to be used after it has been unpacked. No biggy, but it
took me 10 minutes to get your patch to apply properly due to the fact
that it isn't really a proper patch.
The official dist unpacks as diffutils-2.8.1/... I am thinking that we
should use contrib/<NAME>s that are in fact exactly how the official
package would unpack (at least when such distributions use reasonable
names). This way we can update official packages simply
by unpacking a new one into contrib/, revectoring our build, and then
cleaning up the files for commit and later on physically removing the
older version from the repository (and by that I mean I would actually
rm -rf the older third party software from the repository and just
leave empty directories so people's cvs trees update properly).
This way if someone needs to revert to an older source base whos
contrib physical files have been removed, they can just unpack the
original contrib archives in contrib/ and not even worry about cleaning
up the files that would otherwise not be included in our version, and
build an older system.
So instead of trying to modify contrib/diff, leave contrib/diff alone
and put the new diffutils in contrib/diffutils-2.8.1, which is how the
official archive would unpack.
The remainder of your patch would then, as it currently does, patch
our build tree to compile the new diffutils. We wouldn't rename the
build tree :-).
So why do I want to do things this way? Well, it's a solution to an
age old problem that the FreeBSD tree has which is the amount of old
vendor junk building up in the CVS tree due to unfortunate choices in
how to treat contrib/ directories. By normalizing contrib/ the way we
are, we make it a whole lot easier to understand and maintain third
party code. In fact, eventually we may do away with contrib/ entirely
and make the buildworld download those portions in the same manner that
ports downloads .tar.gz's of third party software as a 'base'.
This should not be too much work for you... you already have the
official dist pared down properly, it's just a matter of renaming the
directory and revectoring the build tree to use the new path and then
committing the mess. Leave the original contents of contrib/diff alone,
I'll physically remove it from CVS once we have switched over.
-Matt
More information about the Submit
mailing list