Version number of openjdk6 port
John Baldwin
jhb at freebsd.org
Fri Apr 15 16:42:41 UTC 2011
On Friday, April 08, 2011 4:28:18 pm Jung-uk Kim wrote:
> On Friday 08 April 2011 03:48 pm, John Baldwin wrote:
> > On 4/8/11 3:11 PM, Jung-uk Kim wrote:
> > > On Friday 08 April 2011 10:39 am, John Baldwin wrote:
> > >> Please consider using a better version number for the openjdk6
> > >> port. Right now it uses a version number of 'b20_7' which due to
> > >> the way package version works, is considered less than 0:
> > >>
> > >> % pkg_version -t 0 b20_7
> > >>
> > >>
> > >> Why does this matter? cfengine uses 'pkg_info -E pkg_name>0' to
> > >> test if a package is installed.
> > >
> > > Then, I would say cfengine is broken. "0" in that version match
> > > string is package dependent, not major, minor, or whatever. For
> > > example:
> > >
> > > %pkg_info -E 'avahi>0.6.20'
> > > avahi-0.6.29
> > > %pkg_info -E 'openjdk6>b0'
> > > openjdk6-b22_4
> > > %pkg_info -E 'mplayer>1.0.r0'
> > > mplayer-1.0.r20110329
> >
> > Hmm, I can probably workaround this then using an explicit
> > comparison rule (so it doesn't use >0). It would be nice if we had
> > an official way to match a package with "any version". Perhaps
> > "pkg_info -E 'pkg-*'" if we assume that package names can never
> > have dashes in them (to avoid problems, with, say, 'foo-*' matching
> > both foo-1.0 and foo-bar-1.0.). Oh, we already have those types of
> > packages:
> >
> > xorg-7.5 X.Org complete distribution metaport
> > xorg-apps-7.5_1 X.org apps meta-port
> >
> > The problem is how can software generically say "is any version of
> > the foo package installed". It would seem we don't support that
> > currently?
>
> The key here is package origin, not the package name itself.
>
> %pkg_info -qO java/openjdk6
> openjdk6-b22_4
> %pkg_info -qO x11/xorg-apps
> xorg-apps-7.5.1
>
> It is always safe to find its origin because there may be prefixes and
> postfixes.
>
> %pkg_info -qoX ko-openoffice.org
> editors/openoffice.org-3-devel
>
> I think this would be the worse case in the ports tree:
>
> %pkg_info -qo apr-ipv6-devrandom-gdbm-db42-1.4.2.1.3.10
> devel/apr1
Unfortunately our package system is way too simple to handle something like
that. What you get is a file and you can't say 'pkg_add java/openjdk6', you
have to give it a path. Even if you try to use pkg_add -r, then you are still
passing different things. I.e. if my directive was 'install the openjdk6'
package, how is it supposed to map that to 'java/openjdk6' to query if it is
already installed?
--
John Baldwin
More information about the freebsd-java
mailing list