On 25/07/11 03:49, Cesar Strauss wrote:
> This requires line ...
>
> <requires eq="mingw32-libpthreadgc-%-mingw32-%-dll-2.tar" />
>
> ... should in theory match this release line ...
>
> <release
> tarname="libpthreadgc-2.9.0-mingw32-pre-20110507-2-dll-2.tar.lzma" />
>
> ... but mingw-get gives:
>
> mingw-get.exe: *** ERROR ***
> pthreads-w32-2.9.0-mingw32-pre-20110507-2-dev.tar.lzma: requires...
> mingw-get.exe: *** ERROR *** mingw32-libpthreadgc-%-mingw32-%-dll-2.tar:
> unresolved dependency (type 'eq')
> mingw-get.exe: *** ERROR *** mingw32-libpthreadgc-%-mingw32-%-dll-2.tar:
> cannot identify any providing package
>
> The problem seems to be that mingw-get doesn't apply the '%' to the
> release status part (pre-20110507-2).
It should do; if not, it is a bug which needs investigation.
> What about:
>
> 1) If '%' is given on the version part, the release status must also
> match that of the dependent package (besides the version itself).
The intent of the '%' token is that the version of the required package
should identically match the version of the requiring package. Despite
placement, IMO, the release status qualifiers should associate with the
package version, rather than with the subsystem version. Thus:
pthreads-w32-2.9.0-mingw32-pre-20110507-2-dev.tar.lzma
implies a fully qualified package version of 2.9.0-pre-20110507-2; the
'%' token representing the package version in the 'requires' spec must
match the similarly qualified DLL package version /exactly/. Thus:
libpthreadgc-2.9.0-mingw32-pre-20110507-2-dll-2.tar.lzma
(and no other candidate) /should/ be selected, as the /only/ possible
candidate package to match the requirement spec.
> 2) If '*' is given on the version part, the release status part should
> be ignored when comparing package versions.
No. It cannot be ignored. The '*' token means match anything at all,
even nothing, so it may relax the match requirement; however, it must
still be considered in the version comparison, as may be required to
establish correct release chronology.
> Also, the following (to be used in mingw32-gcc4.xml) selects the 2.8.0
> version instead of the 2.9.0-pre version:
>
> <requires eq="libpthreadgc-*-mingw32-*-dll-2.tar" />
This would also indicate a bug: '*' should match both version 2.8.0 and
version 2.9.0-pre-20110507-2, and the comparison algorithm should then
identify 2.9... as newer, (and hence preferred), without progressing
beyond the 9 vs 8 comparison in the minor version field.
I'll investigate when I can find the time, (which is very limited right
now). If anyone would like to try to beat me to it, please feel free.
Otherwise, it may be prudent to raise a formal bug report ticket.
--
Regards,
Keith.
|