On Fri, Oct 06, 2023 at 09:18:31AM -0500, Eric Blake wrote: > On Sun, Sep 03, 2023 at 04:23:23PM +0100, Richard W.M. Jones wrote: > > Copy the human_size() function from common/utils/ into the new > > human-size.h header in common/include/. Remove human-size.c and > > combine the tests into one. > > --- > > common/include/human-size.h | 51 ++++++++++++++++++ > > This file was created by inheriting nbdkit's weaker BSD licensing... > > > common/include/test-human-size.c | 79 +++++++++++++++++++++++++--- > > common/utils/Makefile.am | 10 +--- > > common/utils/human-size.c | 56 -------------------- > > common/utils/human-size.h | 49 ------------------ > > ...while this file was originally created with libnbd's LGPLv2+ > licensing. By merging LGPLv2+ code into a file containing only a BSD > license header, you have created an ambiguity on what license should > be assumed when using human_size(). Could you explicitly clarify that > the relaxing of the license was intentional, so that it is safe to > then merge libnbd's code into nbdkit without dragging in LGPLv2+ code?
Yes, let's use the weaker (BSD) license for this new code. From the git history I authored both originally. > > +static inline char * > > +human_size (char *buf, uint64_t bytes, bool *human) > > +{ > > + static const char ext[][2] = { "E", "P", "T", "G", "M", "K", "" }; > > + size_t i; > > Code motion, so this is pre-existing, but this seems rather lengthy, > compared to a more compact: > > static const char ext[] = "EPTGMK"; > > > + > > + if (buf == NULL) { > > + buf = malloc (HUMAN_SIZE_LONGEST); > > + if (buf == NULL) > > + return NULL; > > + } > > + > > + /* Work out which extension to use, if any. */ > > + i = 6; > > + if (bytes != 0) { > > + while ((bytes & 1023) == 0) { > > + bytes >>= 10; > > + i--; > > + } > > + } > > + > > + /* Set the flag to true if we're going to add a human-readable > > extension. */ > > + if (human) > > + *human = ext[i][0] != '\0'; > > *human = ext[i] != '\0'; > > > + > > + snprintf (buf, HUMAN_SIZE_LONGEST, "%" PRIu64 "%s", bytes, ext[i]); > > snprintf (buf, HUMAN_SIZE_LONGEST, "%" PRIu64 ".1s", bytes, &ext[i]); > > > + return buf; > > +} > > + Do you want to suggest / push a patch for these bits? Thanks, Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs