Opened 3 years ago
Last modified 2 years ago
#65073 new defect
KeePassXC-devel, kmymoney4, ksh93, ksh93-devel, openjdk11, openjdk13, synkron, welle.io-devel: version should not contain the + character
Reported by: | amake (Aaron Madlon-Kay) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | NicosPavlov, ryandesign (Ryan Carsten Schmidt), usersxx, cooljeanius (Eric Gallager) | |
Port: | KeePassXC-devel kmymoney4 ksh93 ksh93-devel openjdk11 openjdk13 synkron welle.io-devel |
Description
The current version of openjdk11 is 11.0.15+10 but this causes problems when specifying the port+version on the command line:
% port installed openjdk11 The following ports are currently installed: openjdk11 @11.0.15+10_0+release+server openjdk11 @11.0.15+10_1+release+server (active) % sudo port uninstall openjdk11 @11.0.15+10_0 Error: port uninstall failed: Registry error: openjdk11 @11.0.15 not registered as installed
Using +
in version strings should probably be disallowed. It looks like there are only ~6 ports that have it.
Change History (7)
comment:1 Changed 3 years ago by jmroot (Joshua Root)
comment:2 Changed 3 years ago by amake (Aaron Madlon-Kay)
Thanks, that's interesting. I never knew about that.
In my case I am writing tooling to assist performing various MacPorts operations, and unfortunately I only have access to the version as reported by e.g. port installed
which does not disambiguate the variants.
comment:3 Changed 3 years ago by jmroot (Joshua Root)
If your tooling can run a little Tcl, you can access the registry2 API directly to obtain separate values instead of a composite portspec:
% rlwrap port-tclsh % package require macports 1.0 % mportinit % package require registry2 2.0 % set myports [registry::entry search name zlib] ::registry::entry0 % foreach p $myports { puts "name [$p name] version [$p version] revision [$p revision] variants [$p variants]" } name zlib version 1.2.12 revision 0 variants %
comment:4 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | NicosPavlov ryandesign added |
---|---|
Port: | KeePassXC-devel kmymoney4 ksh93 ksh93-devel synkron welle.io-devel added |
Summary: | openjdk{11,13}: +xx version suffix conflicts with variant syntax → KeePassXC-devel, kmymoney4, ksh93, ksh93-devel, openjdk11, openjdk13, synkron, welle.io-devel: version should not contain the + character |
comment:5 Changed 2 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
comment:6 Changed 2 years ago by NicosPavlov <pavillon.nicolas@…>
comment:7 Changed 2 years ago by tenzap
Note: See
TracTickets for help on using
tickets.
There is a syntax to disambiguate by adding a slash to separate the version and the variants:
sudo port uninstall openjdk11 @11.0.15+10_0/+release+server
But yes, using + in versions should still be avoided for exactly this reason.