Hi,

On 04/22/2012 03:16 PM, Pete Batard wrote:
> On 2012.04.21 09:47, Hans de Goede wrote:
>> While talking about syncing to Peter's tree, I've noticed that he has
>> added 2 fields to our new libusb_version struct. Luckily we only return and
>> never take a pointer to that struct so we can safely grow it. Thus I
>> suggest
>> that we also add those field to keep ABI compatibility with Peter's version
>> of the get_version API.
>
> Except these fields duplicate what we already have in the nano (the goal
> is to find out exactly from which commit a libusbx library was built),
> and, worse:
> 1. They cannot be used for standard Windows versioning of the DLL, as we
> only have an extra field that must contain a [0-65535] number.
> 2. They require invoking git during make, which of course means that if
> you're building from MSVC or WDK, this whole versioning falls apart.
> Also, if say you're using TortoiseGit on Windows to fetch the repo, and
> compile in a MinGW environment where git is not available (since git
> isn't installed by default there), you will fail to populate the last field.
>
>   From where I stand, I can only see these addons as an half-assed
> solution that will create more problems than it solves. The limitations
> above are the precise reason we went for a nano in libusbx... Thus I
> will have to vote on not carrying them out in libusbx.

I can understand you not being happy with these addons, but without them
code compiled against Peter's version of get_version may crash, so I strongly
prefer adding them (despite your concerns) and just setting them to some static
string (the empty string or something else) on platforms / compiler environments
where we cannot set them to something else. This way apps expecting them will:

1) Compile with libusbx
2) If compiled with libusb's version of get_version not crash

IMHO in this case maintaining ABI compatibility trumps your concerns about these
strings.

Regards,

Hans


------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to