Change logs for bit-babbler source package in Stretch

  • bit-babbler (0.6) unstable; urgency=medium
    
      * Update the libvirt Suggests to include libvirt-clients, since libvirt-bin
        got split into a bunch of pieces in Jessie (because GNOME, see #679074),
        and -clients is where virsh has moved to now.
    
      * Add configure tests for the functions udev_device_get_tags_list_entry and
        udev_device_get_sysattr_list_entry which were added in udev 154 and 167
        respectively.  The RHEL/CentOS 6 release appears to ship with udev 147,
        so we can't use them there, and it won't be fully EOL for some time yet.
        That's not a big deal, we only use them to output extra device information
        when the debug level is cranked up, so we can just omit that code on any
        systems where they aren't supported.
    
      * Include xlocale.h explicitly on platforms where we need that for strtod_l.
    
      * Initialise struct addrinfo more portably.  There's little point to trying
        to be clever with static initialisers while g++ has limited support for
        them in C++ code, just do it in a way that will work everywhere.
    
      * Add an explicit guard rather than a platform check around the code to
        append a wstring as UTF-8 and disable it by default for all platforms now.
        We don't actually need or use that anywhere here right now, and there are
        more platforms than MSW where wchar_t is unspecified and/or insane.  So
        we'll worry about enabling it again if we ever do need it here, since we
        do want this to be portable to those still.
    
      * Automatically add -D_REENTRANT for compilers that don't do that themselves
        when -pthread is used.
    
      * Preserve the Chi^2 statistic when long term results need to be normalised
        to prevent wrap around, and improve the precision on scaling the other
        metrics to minimise discontinuities, especially on machines with a 32-bit
        size_t where the normalisation is more likely to be needed in practice.
        Many thanks to George Tsegas for his extensive testing, and careful and
        critical attention to questioning all of the results of that.
    
      * Fix the framing/status check to handle devices plugged into USB 1.0 ports.
        Apparently there are still a few of those left in the wild.
    
     -- Ron Lee <email address hidden>  Fri, 17 Jun 2016 23:36:55 +0930
  • bit-babbler (0.5) unstable; urgency=medium
    
      * Add more options to optimise for minimal power consumption.  The defaults
        before now were mostly focussed on keeping a good supply of fresh entropy
        being regularly mixed into the kernel pool, and on minimising the risk of
        starvation delays when demand is high.  But there's an equally important
        group of users who not only want good entropy, but also want to minimise
        idle power usage as much as possible.  So we now have some extra tunables
        to better support that too.
    
        The rate at which new entropy is mixed into the kernel pool even when it
        has not fallen below its low water mark is now directly configurable, as
        is the rate at which we throttle down requesting more entropy from the
        hardware when real demand for it falls.  Tuning these can minimise how
        often we are responsible for waking the CPU on an otherwise idle system.
    
        It is also now possible to configure the devices to be released when we
        expect to be idle beyond a given period of time, which will allow them to
        be powered down and suspended, and only woken again when we do need more
        entropy from them.  There are new udev rules which automatically enable
        the USB autosuspend feature of the Linux kernel for them when they are
        plugged in, which means this will work without needing to manually set
        all that up (unless you want to further tweak the parameters there too).
    
      * Don't create the control socket by default when only a limited number of
        output --bytes are requested.  It can still be enabled explicitly if you
        do want it available while they are being read, but that's normally of
        fairly limited use, and it's otherwise just annoying to have to remember
        to explicitly disable it when extracting a block of entropy in this way,
        and confusing to users if it complains they don't have permission to
        (re)create it in the default location.
    
      * Defer device initialisation until the pool threads have been started.
        Most users won't really notice any difference from that, but when you
        have 100 devices in a machine together then even small delays quickly
        add up to become a thumb twiddling pause if they are serialised rather
        than being run in parallel.
    
      * Better support for pass-through to libvirt managed virtual machines when
        there is more than one BitBabbler device in the host.
    
        This is still more painful than it really ought to be, but we now have a
        big enough hammer pounding on enough of the rough edges in libvirt support
        for things to work like USB devices should be expected to work.  They can
        be hotplugged dynamically without admin intervention to the guest machines
        you want them assigned to, and assigned to guest machines without fragile
        hacks based on which USB port they are plugged into.
    
     -- Ron Lee <email address hidden>  Wed, 23 Dec 2015 00:38:47 +1030
  • bit-babbler (0.4) unstable; urgency=medium
    
      * Switch to using libusb-1.0 now.  It turns out that libusb-0.1 doesn't
        actually work on kFreeBSD, it only builds there ...  which isn't very
        helpful.  The kFreeBSD port actually uses FreeBSD's own libusb which also
        provides a compatibility API for libusb-1.0 - and we need to jump through
        a few small extra hoops to use it, but it has the advantage of actually
        working, which is a plus.  This also means we immediately get much better
        support and lots of bugfixes for non-Debian platforms too, so this should
        work everywhere that current releases of libusb do now.
    
      * Drop libftdi.  This is partly a consequence of the above, since a version
        of it built with libusb-1.0 isn't widely available, and partly a result of
        realising we weren't really using anything from it that we couldn't just
        do more easily and more directly though libusb ourselves anyway.  Our code
        ended up being significantly refactored and simplified as a result of this
        and it opened the way for a number of additional easy improvements too.
    
      * Drop the --device-num option for selecting devices.  Having an arbitrary
        enumeration isn't really all that useful in hotplug environments, and the
        --device-id option now transparently supports selecting devices by their
        serial number, or by either their logical or physical address on the bus,
        so the duplication there was only becoming a source of confusion.
    
      * More speed and efficiency tuning.  As a result of now having more direct
        control over the device we've been able to notably reduce some of the
        overheads of streaming data out of it, which means we're now using less
        CPU cycles with an increase in throughput for the same device clock rate.
    
      * Make the libudev build dependency conditional on linux-any so the kFreeBSD
        buildds will actually want to build it.  We can't do much for Hurd until
        someone actually ports libusb-1.0 to it.
    
      * Make the use of signals which may not exist on all platforms conditional,
        which should enable this to build on MIPS, Sparc, and Alpha too.
    
     -- Ron Lee <email address hidden>  Sat, 05 Dec 2015 04:40:11 +1030
  • bit-babbler (0.3) unstable; urgency=medium
    
      * Include a simple example script for reading from the UDP socket.
      * Include the documentation for configuring virtual machine pass-through
        in the binary package as well.
      * Document how to deal with cgroups mandatory access control when using
        devices inside libvirt managed virtual machines.
      * Initial upload to Debian, Closes: #805979
    
     -- Ron Lee <email address hidden>  Tue, 24 Nov 2015 23:15:24 +1030