Date: Fri, 7 May 2004 14:01:05 -0400 From: Garance A Drosihn <drosih@rpi.edu> To: "Jacques A. Vidrine" <nectar@freebsd.org>, Kris Kennaway <kris@obsecurity.org> Cc: cvs-ports@freebsd.org Subject: Re: discussion on package-version numbers... (PR 56961) Message-ID: <p0602040ebcc178ae7b88@[128.113.24.47]> In-Reply-To: <20040506220855.GI2316@madman.celabo.org> References: <20040416163635.GB49780@madman.celabo.org> <4080151C.1070200@fillmore-labs.com> <20040416173857.GA50670@madman.celabo.org> <20040416174418.GC50670@madman.celabo.org> <40802354.3030202@fillmore-labs.com> <20040417152242.GA5543@madman.celabo.org> <20040506190729.GD1777@madman.celabo.org> <p0602040bbcc04f36c2aa@[128.113.24.47]> <20040506212442.GF2316@madman.celabo.org> <20040506213641.GA93452@xor.obsecurity.org> <20040506220855.GI2316@madman.celabo.org>
next in thread | previous in thread | raw e-mail | index | archive | help
At 5:08 PM -0500 5/6/04, Jacques A. Vidrine wrote: >On Thu, May 06, 2004 at 02:36:41PM -0700, Kris Kennaway wrote: > > On Thu, May 06, 2004 at 04:24:42PM -0500, Jacques A. Vidrine wrote: >> > > Some ports use "p1" for "patchlevel 1", some use it for "prerelease > > version 1". Since we can't have it both ways, committers need > > to remember to use pkg_version -t and some careful foresight to > > avoid running version numbers backwards. However ultimately there > > will be continue to be mistakes made, even if version monotonicity > > is somehow enforced at commit-time. > >That's true, mistakes will happen. But simpler conventions could >make the mistakes more obvious. > >Strawman version grammar > > <version> ::= <major> (<letter> (<minor>)? )? '_' <revision> ',' <epoch> > <major> ::= <dotted> > <minor> ::= <dotted> > <dotted> ::= <integer> ('.' <dotted>)? > <revision> ::= <integer> > <epoch> ::= <integer> > <letter> ::= 'a'..'z' > <integer> ::= 32-bit integer Is it fair to say that the real problem is that we are trying to impose order on version-numbers which are being picked by the 10,000 different developers of the original programs that we are creating ports for? So, basically, no matter what scheme we come up with, we have absolutely no way to force any of the original authors to conform to our scheme. None. We can not do it. It will not happen. We have no way to make it happen. Even if we pick something that works today, there is nothing we can do to prevent 1,000 of those independent developers deciding on some new version-numbering scheme for *their* products tomorrow, and thus break whatever clever grammar we dreamed up today. If so, then let's just give up on that. Alternate idea for handling versions: <portversion> -> *our* idea of the version of the sources for this port. Make it a date string. [personal twist on that idea: make the month a letter from A-L, instead of 01-12] <portrevision> -> incremented when *our* files for a port changes (our makefiles, our patches, etc), but we are still basing the port on the same sources from the original developer. <origversion> -> the version which the original developer tagged on their source files. So, a full portname might look like: bash2-2003E16.0-2.05b.007 We use the '2003E16.0' part for all our own FreeBSD-ports processing, and we basically ignore whatever version the original author gave their source. The *author's* version is only there for humans to eyeball and nod at, when they want to compare what they have installed on FreeBSD to what they have on other operating systems. It is not to be used by ports- processing, since we have no control over those values. . . . . . . or was my initial premise not fair to say? :-) -- Garance Alistair Drosehn = gad@gilead.netel.rpi.edu Senior Systems Programmer or gad@freebsd.org Rensselaer Polytechnic Institute or drosih@rpi.edu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?p0602040ebcc178ae7b88>