Opened 2 years ago

Last modified 18 months 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 2 years ago by jmroot (Joshua Root)

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.

comment:2 Changed 2 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 2 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 syntaxKeePassXC-devel, kmymoney4, ksh93, ksh93-devel, openjdk11, openjdk13, synkron, welle.io-devel: version should not contain the + character

comment:5 Changed 23 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:6 Changed 22 months ago by NicosPavlov <pavillon.nicolas@…>

In 72211c315dab37e02be530651e44b8d046c6c9dd/macports-ports (master):

kmymoney4: remove + character from version string (see #65073)

comment:7 Changed 18 months ago by tenzap

In 9860cf90590700b610d6355e1651bea75c4b59d4/macports-ports (master):

KeePassXC-devel: upgrade to latest commit of 2.7.x branch

on KeePassXC-devel:

  • patch-touch-id.diff is not needed anymore
  • -DWITH_XC_TOUCHID=OFF is not needed anymore

BTW: remove + character from version string (see #65073)

Note: See TracTickets for help on using tickets.