[libvirt] how to print size_t in LGPLv2+ program

Eric Blake eblake at redhat.com
Tue Aug 17 22:02:39 UTC 2010


On 08/17/2010 03:47 PM, Paul Eggert wrote:
> On 08/17/10 23:17, Eric Blake wrote:
> 
>> libvirt is currently LGPLv2+
> 
> Can this be changed to LPGLv3+?  That'd solve the problem.

True, but it would have knock-on effects on all sorts of other clients
of libvirt.  I'm re-adding the libvirt list for thoughts from anyone else.

> 
>> Is it worth relaxing the license on the *printf-posix family of modules
>> to LGPLv2+ from their current LGPLv3+, or is this too big of a request?
> 
> I dunno, at some point we should be encouraging people to switch
> to LGPLv3+.

It makes sense for the FSF to request that GNU projects use better
licenses.  Unfortunately, libvirt is not a GNU project; so it is more a
question as to how Red Hat wants to license it, rather than what the FSF
prefers.  At any rate, I think the ultimate decision on how libvirt is
licensed is rather political in nature, and will involve quite a bit of
discussion among more than just the software developers contributing to
libvirt.

But at least libvirt is LGPLv2+; unlike some projects (like git) that
are explicitly v2-only and can't do the upgrade.

Meanwhile, I tend to agree that relaxing printf-posix to LGPLv2+ is a
rather hefty sledge-hammer, and probably not appropriate for gnulib.

> 
>> since using umaxtostr penalizes 32-bit machines for converting to the
>> 64-bit intermediary, maybe it's worth adding a size_t variant?
> 
> That would be fine.  The *tostr routines were mainly written
> for two reasons.  First, for platforms that can't/couldn't portably
> and reliably output wide integers.  Second, speed.
> 
>> What a shame that POSIX omitted an <inttypes.h> PRIu* for size_t.
> 
> We could add one in gnulib, no?

In a quick google search, I found this use of PRIdS (which is geared
more for ssize_t, but the analog PRIuS would apply to size_t):
http://bytes.com/topic/c/answers/506972-64-bit-portability-size_t-printf-format-strings
However, S is awfully short; I'd prefer something a bit longer like
PRIuSIZE.

Is there any other project already using gnulib that has invented a
PRIuXXX name for size_t?  It would also be nice if we had some prior art
from glibc or even one of the BSD systems to copy a commonly-used name.

Meanwhile, the idea is slightly more appealing than relicensing lots of
gnulib or using the inttostr code; but it still requires auditing code
and forbidding "%zu" in favor of "%"PRIuSIZE (or whatever other name we
settle on).

Also, it seems like we might want to create a new intttypes-plus (or
inttypes-gnu) module, and leave the existing inttypes module as
providing just the namespace guaranteed by glibc, while requiring the
use of the new module to pollute the namespace with these new (but
useful) macros.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20100817/d769b016/attachment-0001.sig>


More information about the libvir-list mailing list