bit-babbler (0.6~bpo8+1) jessie-backports; urgency=medium * Rebuild for jessie-backports. -- Nicholas D Steeves Thu, 01 Dec 2016 23:47:57 -0500 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 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 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 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 Tue, 24 Nov 2015 23:15:24 +1030 bit-babbler (0.2) unstable; urgency=low * Add the option to read entropy directly from a UDP socket too. * Permit TCP to be used for the control socket. Not all platforms have unix domain sockets, and some people might actually want to be able to access it remotely anyway. * Guard the Linux specific code (for feeding the kernel entropy) to only build on Linux, and get it to build with the mingw-w64 cross compiler. * Add a system group bit-babbler, and a udev rule which grants permission to access the device(s) to people in that group. This is mostly useful for people who want to stream bits directly out of the devices and don't need or want the privilege required to be able to write entropy directly to the kernel pool. -- Ron Lee Sat, 27 Jun 2015 01:17:17 +0930 bit-babbler (0.1) unstable; urgency=low * Initial release -- Ron Lee Tue, 24 Feb 2015 09:23:18 +1030