Planet GNU

Aggregation of development blogs from the GNU Project

May 26, 2016

liberty-eiffel @ Savannah

Liberty Eiffel release: 2016.05 (Bell)

We are happy to announce the first release since LibertyEiffel officially is under the umbrella of GNU, 2016.05, code-named "Bell" (after Alexander Graham Bell - Scottish engineer).

Get it from one of the following sources
- Tarball:
- Debian/Ubuntu packages: release main
- Git repository:

Looking forward to a promising time with an emerging community, stay tuned and have fun!

by Raphael Mack at May 26, 2016 09:07 PM

GNUnet News

GNU Hacker Meeting August 16-20 2016 (Rennes)

This is the official registration page for the 9th GNU Hacker Meeting 2016. Please read the instructions carefully.

The previous time, we had twice as many people register as showed up, resulting in significant unnecessary expenses. To avoid this, registration is not exactly free this time. Instead, if you are:

by Christian Grothoff at May 26, 2016 03:38 PM

May 25, 2016

Gary Benson

GNUnet News

Rust implementation of GNUnet with GSoC


I will be participating in Google Summer of Code this year with GNUnet. The project is on improving the Rust implementation of GNUnet utils. The primary objective is to add asynchronous IO in a way that is general, extensible and resemble the original GNUnet API. More details can be found here -

Jeff Burdges is my mentor and I will be working closely with him on this project.

by kc1212 at May 25, 2016 12:18 PM

May 23, 2016

freeipmi @ Savannah

FreeIPMI 1.5.2 Released

o Update configuration file parsing code to handle values up to 1024 characters in length.
o Set FD_CLOEXEC for ipmi driver device files opened within
o Support --read-fru, --write-fru, and --device-id option in
o Support --fru-file option in ipmi-fru.
o Various library updates in libfreeipmi to handle new features.

by Albert Chu at May 23, 2016 11:54 PM

May 22, 2016

make @ Savannah

GNU Make 4.2 Released!

The next stable version of GNU make, version 4.2, has been released and is available for download from

Please see the NEWS file that comes with the GNU make distribution for details on user-visible changes.

by Paul D. Smith at May 22, 2016 01:51 PM

parallel @ Savannah

GNU Parallel 20160522 ('TTIPleaks') released

GNU Parallel 20160522 ('TTIPleaks') has been released. It is available for download at:

Haiku of the month:

Programs using net
only spare capacity
niceload dash dash net
-- Ole Tange

New in this release:

  • niceload --net pauses the program if the internet connection is overloaded.
  • GNU Parallel was cited in: Host-pathogen co-evolution and the emergence of broadly neutralizing antibodies in chronic infections
  • GNU Parallel was cited in: The Evolution of C Programming Practices: A Study of the Unix Operating System 1973-2015 (It has the cutest thumbnail graphs I have ever seen scattered all over the text)
  • GNU Parallel was cited in: Comparative Cladistics: Fossils, Morphological Data Partitions and Lost Branches in the Fossil Tree of Life
  • Bug fixes and man page updates.

GNU Parallel - For people who live life in the parallel lane.

About GNU Parallel

GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.

If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.

GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.

You can find more about GNU Parallel at:

You can install GNU Parallel in just 10 seconds with: (wget -O - || curl | bash

Watch the intro video on

Walk through the tutorial (man parallel_tutorial). Your commandline will love you for it.

When using programs that use GNU Parallel to process data for publication please cite:

O. Tange (2011): GNU Parallel - The Command-Line Power Tool, ;login: The USENIX Magazine, February 2011:42-47.

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ lists
  • Get the merchandise
  • Request or write a review for your favourite blog or magazine
  • Request or build a package for your favourite distribution (if it is not already there)
  • Invite me for your next conference

If you use GNU Parallel for research:

  • Please cite GNU Parallel in you publications (use --bibtex)

If GNU Parallel saves you money:


GNU sql aims to give a simple, unified interface for accessing databases through all the different databases' command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.

The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell.

When using GNU SQL for a publication please cite:

O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.

About GNU Niceload

GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.

by Ole Tange at May 22, 2016 12:24 PM

May 20, 2016


GnuTLS 3.4.12

Released GnuTLS 3.3.23 and GnuTLS 3.4.12 which are bug fix releases in the previous and current stable branches.

by Nikos Mavrogiannopoulos ( at May 20, 2016 12:00 AM

May 18, 2016

FSF Blogs

Friday Free Software Directory IRC meetup: May 20th

Join the FSF and friends Friday, May 20th, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

May 18, 2016 07:11 PM

The Licensing and Compliance Lab interviews Kees Verruijt of CANboat

Kees Verruijt is a sailing software engineer from Harlingen, NL. He maintains CANboat, which he describes as "[a] small but effective set of command-line utilities to work with CAN networks on BOATs".

A valentine's day crypto robot

By Femnett/Maretron, LLP (Maretron, LLP) CC BY 2.5, via Wikimedia Commons

To help you understand a bit more about the technology on top of which CANboat works, we have provided a brief explanation below. The following text has been adapted from the CAN bus article on English Wikipedia (which was originally licensed under the terms of the Creative Commons Attribution-ShareAlike 3.0 License):

A Controller Area Network (CAN bus) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other without a host computer or server. It is a message-based protocol that was designed originally for multiplex electrical wiring within automobiles. Modern automobiles may have as many as 70 electronic control units (ECU) for various subsystems. Others are used for transmission, airbags, antilock braking/ABS, cruise control, electric power steering, audio systems, power windows, doors, mirror adjustment, battery and recharging systems for hybrid/electric cars, etc. Some of these form independent subsystems, but communications among others are essential. A subsystem may need to control actuators or receive feedback from sensors. The CAN standard was devised to fill this need. The use of CAN was adopted by the marine industry, because they also needed a plug-and-play communications standards used for connecting marine sensors and display units within ships and boats.

Could you provide a little info to landlubbers about the kinds of electronics and computers used in the marine world?

Marine electronics has a long history, it was way back in the 1960s when electronics were starting to make an appearance on recreational and commercial boats. Depth sensors, marine radios, wind sensors and geo-location devices were appearing on the market. In the beginning every manufacturer started creating their own networks, usually based on some variation of serial data, typically running at 4800 or 9600 baud. Electronic sensors enabled boaters to have displays with data such as compass heading, wind and boat speed. Two other major developments were the first auto-pilots (a device that keeps the boat on a particular heading) and position locators -- first based on land based radio signals and later on satellite radio signals. As you can imagine knowing where you are is much harder for a sailor than a landlubber as there are so few reliable points of reference out on the ocean! One of the first applications for a protocol used by devices made by different manufacturers was to pass heading data from the sensor network or from the satellite navigator to the auto-pilot.

The need for industry data standards lead to a group of US electronics dealers forming the National Maritime Electronics Association (NMEA), which interacted with the various manufacturers to standard protocol and data formats for devices. Membership for these manufacturers meant access to the large single US market, so soon manufacturers from Europe and Australia/New Zealand joined as well. In the 1980s this resulted in the NMEA 0180 and later 0183 standard. This standard is used every day by billions of users as (almost) all modern satellite navigation building blocks will transmit data using this protocol.

As the number of devices on board started to rise and new sensors and displays were added the manufacturers saw that a new standard would be needed. Like most such standard committees they chose a name that would reflect the hoped-for release year, so NMEA 2000 came to be. It took a few years more before the first NMEA 2000 devices to come to market, but today they're everywhere. NMEA 2000, or N2K, is based on CANbus. Development for CANbus was started by Bosch for use in the car industry, but it was soon adopted by many other industries as well. The marine version communicates at 250,000 baud, and allows you to hook up many devices to a single "backbone" meandering through your ship. Electrically its really neat -- no master device, no wasted bandwidth with high priority messages automatically taking precedence. The datagrams are easier to generate and parse in small microcontrollers as the format is in binary, with fixed bit length fields. In other words, when done correctly they map one-on-one to a C structure with the fields in a native C unsigned or signed integer value. This also has the effect of the data being harder to understand if you don't have access to the standard.

Where does CANboat fit into all this?

Use of the NMEA 2000 standard is encumbered by onerous copyright restrictions. The original documents are under copyright, and no member NMEA is allowed to publish them, not even in a different format. This resulted in manufacturers documenting just the list of sentences that their devices support. The NMEA nowadays does provide a list of all messages and what fields they contain, but not the precision or meaning of these fields.

CANboat gets around this by being written using only public sources, without access to the standard itself. The technical detail of which fields take up how many bits and what the used precision is was reverse engineered from live networks.

Nowadays CANboat is the only comprehensive NMEA 2000 database available in a free format. It also contains programs that can be used to read N2K data from the bus, convert it into text, XML or JSON and pass it on to other software.

What inspired you to create CANboat?

As I was building a new boat in 2008-2010 I wanted to have a single device that would show all the data available on board via a simple Web interface. I could join the NMEA and buy the NMEA 2000 standard (spending $3,000 USD or so) but then I couldn't actually release my program as free software. So I figured that the only way out was to reverse engineer the protocol from scratch. It took me about a week to write some code to interact with a CAN interface and only a few evenings before I had the first datagram done.

Soon I was able to have my dream of a tablet-friendly, HTML5(ish) page, in 2010. It took many evenings though over the last 6 years to add more and more N2K datagrams. Luckily, after making the sources GPL and putting them on Github I soon got a few collaborators from around the globe. All regular non-company specific NMEA 2000 messages are now decoded, most of them completely. CANboat is unique in that it also decodes. It is able to direct quite a number of company specific messages, but work on this is particularly slow as it requires a software developer with both access to a device producing them, a (perceived) need to use them and the will to put in hard hours doing the reverse engineering. This involves looking at hex dumps and fiddling until it makes sense.

How are people using it?

This has changed over time. In the early days everyone in the Marine Electronics community loved the idea but didn't necessarily use it -- partly because you need to have N2K on board. Andrew Mason of the University of Auckland, N.Z., was one of the first who grasped what I was doing and he created OpenSkipper using the CANboat database, and others soon joined.

Nowadays it is used by hobbyists (usually professional software developers with a boat) to monitor their onboard devices. And some even use it to control stuff -- for example turning a water maker off if the shore power fails or the generator shuts down. I use it myself to infer the boat's navigation status and automatically switch on the correct navigation lights. It uses the anchor winch state, engine RPM and GPS location to decide what lights should be on and which should be off.

CANboat is also used by people in the marine electronics industry -- software developers and hardware developers that are either contemplating entering the marine electronics world and are not yet NMEA members or haven't bought the standard yet. It is also used by companies that do have the standard but use it as a "lab instrument" to see what is going on and log data produces by new devices under development.

Probably the biggest set of users are those using it to feed NMEA 2000 data into Signal K servers. Signal K is probably even more exciting than CANboat. It is the outcome of an association of frustrated software developers who felt it was time for a completely new free standard for marine electronics, based on the ideas of "internet of things" and oriented towards reusing standards such as TCP, WS and JSON.

What features do you think really sets CANboat apart from similar software or projects (if there are any similar projects!)?

There are a few other projects that contain N2K parsers, but the ones that I have seen cater more towards very small microcontrollers, and focus on the most used data sentences only. CANboat is the only one with the ambition to cover all messages, and to cover company specific messages.

Why did you choose the GNU GPL version 3 (or later) as the license for CANboat?

I personally think the RFC method of publishing standards is a better one than the ISO/IEC style of charged access. I also don't like how the NMEA uses copyright law to prevents people with access to the standard to talk about content within the standard. Even the IEC doesn't do this. When I decided to make my work free software, I felt that I wanted to help non-professionals to gain access, but I also wanted to respect the NMEA as much as possible. I'm not trying to subvert their business model here, just offering an alternative for free software development. What I didn't want to see happening is that business would just use my work as a means to evade paying the NMEA without them contributing back to the community. This is why I made a deliberate choice for the GPL with its strong copyleft clause, which ensures this.

How can users (technical or otherwise) help contribute to CANboat?

If you've installed CANboat and you get "unknown PGN" messages you should, at the very least, create an issue on Github to make us aware of this. We can then decide to add at least minimal support for these. What would be even better is that you exercise the device that emits the PGNs and do the reverse engineering yourself. This is especially true if the PGNs are in the "company specific" range, as these tend to be hard for others to analyze if they don't have access to a live device.

Over the last five years the amount of community updates has steadily increased, so I'm not complaining, but this is still a mostly-one-person-effort right now.

What's the next big thing for CANboat?

The next big thing is support for Signal K. This is a brand new set of Internet age message and server specifications. If you are a marine electronics enthusiast that wants to build your own sensors and connect those into a network, you should not use NMEA 0183 or NMEA 2000, but Signal K. If you are a software enthusiast that wants to experiment with the data available on your NMEA 2000 network, by all means use CANboat, but use it to feed data into a Signal K server, and then use the Signal K data.

As Signal K is a work that stands on its own and does not require the use of either NMEA 0183 or 2000 it can be the next generation protocol for marine data interchange. This has been recognized by the NMEA as well, who now recommend the use of Signal K when creating new products that communicate over TCP/IP. Signal K code is Apache licensed and protocols and databases are CC BY-SA licensed.

Enjoy this interview? Check out our previous entry in this series, featuring Matt Lee of GNU Social.

May 18, 2016 06:48 PM

GNU Hurd development blog


GNU Hurd 0.8, GNU Mach 1.7, GNU MIG 1.7 released. Details.

We're pleased to announce new releases!

  • GNU Hurd 0.8, NEWS:

    Version 0.8 (2016-05-18)
    The netfs library is using the lockless reference-counting primitives
    for both peropen and node objects now, and the global reference
    counting lock has been removed.
    The integer hashing library gained a new interface to use non-integer
    keys.  It is now used in libdiskfs' and nfs' node cache, and the ftpfs
    Several bugs in our native fakeroot tool have been fixed improving
    stability and correctness of the translation.
    The devnode translator and the hurd-slab library have been merged into this
    The code has been cleaned up, and we fixed numerous bugs, most notably
    a crash in pfinet, a locking bug in libdiskfs, and an out-of-bounds
    access in ext2fs' block cache.

    Release tarballs may be downloaded from,, or checked out of Git, SHA1 checksums:

    38585aed93645704477d91d01136e1ae750a5ecb  hurd-0.8.tar.bz2
    531d5035427830e87828a79bf6794531250784d0  hurd-0.8.tar.bz2.sig
    6383479f30933d760c6d981fdd37df27adb5f0bb  hurd-0.8.tar.gz
    63f58d392cb6e0c0ebd71e725938a13a5cab2392  hurd-0.8.tar.gz.sig

    The GNU Hurd is the GNU project's replacement for the Unix kernel. It is a collection of servers that run on the Mach microkernel to implement file systems, network protocols, file access control, and other features that are implemented by the Unix kernel or similar kernels (such as Linux). More detailed: documentation, what is the GNU Hurd.

  • GNU Mach 1.7, NEWS:

    Version 1.7 (2016-05-18)
    The code has been updated to work with newer versions of GCC, and numerous bugs
    have been fixed throughout the code, including a pageout deadlock.  The code
    uses integer types from <stdint.h> now instead of the old Mach types.
    The VM cache policy change has been merged.  The kernel now caches
    unreferenced VM objects unconditionally instead of using a fixed
    The physical page allocator of the X15 kernel has been integrated, and
    is now used directly by the slab allocator.  This increases the kernel
    heap addressing important scalability issues.
    The gsync synchronization mechanism was added, similar to the Linux kernel's
    futexes, to allow efficient and powerful userland synchronization.
    Support for profiling kernel code from userland through sampling was added.

    Release tarballs may be downloaded from,, or checked out of Git, SHA1 checksums:

    4438c7c10f8eef019ada45b749c0796d620d08de  gnumach-1.7.tar.bz2
    6cdf299118066e3280dcc68f75477659fc783f7d  gnumach-1.7.tar.bz2.sig
    5474b2cdc01cb002149db08d745fdab741470c65  gnumach-1.7.tar.gz
    018aa0551e87c4b5eeb900934491811f46ab8b78  gnumach-1.7.tar.gz.sig

    GNU Mach is the GNU distribution of the Mach microkernel, upon which a GNU Hurd system is based. The microkernel provides an Inter Process Communication (IPC) mechanism that the Hurd uses to define interfaces for implementing in a distributed multi-server fashion the services a traditional operating system kernel provides. More detailed: documentation.

  • GNU MIG 1.7, NEWS:

    Version 1.7 (2016-05-18)
    * MIG now has a test suite.  It includes a set of valid and invalid
      definition files that MIG will try to process.  For valid
      definitions, GCC will compile the stubs to check if valid C code was
    * The generated code uses integer types from <stdint.h> now instead of
      the old Mach types.
    * Code that was hard-coding the word size has been identified and
    * Support for the obsolete kinds of RPC routines 'functions',
      'procedures', and 'simple procedures' has been removed.
    * MIG now emits code that casts objects translated from capabilities
      to the correct C type.

    Release tarballs may be downloaded from,, or checked out of Git, SHA1 checksums:

    25d87f0271678d044a8af1f45492a96bee32e486  mig-1.7.tar.bz2
    481dce92b8eb718231bf9d409c0e0c9337dc1f90  mig-1.7.tar.bz2.sig
    f1bd05d1b353653f49dbbb44a4624e65c7be0a2e  mig-1.7.tar.gz
    59f71517cd1be26635a27da423bcf75e2399a42e  mig-1.7.tar.gz.sig

    GNU MIG is the GNU distribution of the Mach 3.0 Interface Generator (MIG). This tool translates Remote Procedure Call (RPC) definition files to C code, and is required to compile any packages that are receiving or invoking RPCs, such as GNU Mach, GNU Hurd, and the GNU C Library (glibc) when compiled for the Hurd. More detailed: documentation.

  • glibc-2.19-hurd+libpthread-20160518

    Based on the glibc 2.19 release, we include additional changes for GNU Hurd support, and bundle GNU Hurd's libpthread.

    Snapshot tarballs may be downloaded from,, or checked out of Git, and SHA1 checksums:

    3722b7f52aac89c66f064e1e6d19ec9b92ffc9e0  glibc-2.19-hurd+libpthread-20160518.tar.bz2
    69dfe1297013056b4b0d6436a1b3906c1bb67a52  glibc-2.19-hurd+libpthread-20160518.tar.bz2.sig
    2795bacc85c799a028577089c422ff4ef9b876bc  glibc-2.19-hurd+libpthread-20160518.tar.gz
    a7af1d2500f35413003f08801e258f3666dfcb87  glibc-2.19-hurd+libpthread-20160518.tar.gz.sig

    The GNU C Library (glibc) implements a system's standard library functions (as described by ISO C, and POSIX, for example). An important part of the Hurd actually resides in glibc: here, the system interfaces are implemented on top of the Hurd IPC protocols. This is different to the Linux port, where most simple system interfaces are in fact simply forwarded to/implemented as system calls.

Many thanks to all the people who are helping!

If you want to give the Hurd a try, you may easily do so with Debian GNU/Hurd.

The GNU Hurd system currently runs on 32-bit x86 machines. To compile the Hurd, you need a toolchain configured to target i?86-gnu; you cannot use a toolchain targeting GNU/Linux.

Please read the FAQ. Bug reports should be sent to bug-hurd or filed on Requests for assistance should be sent to help-hurd or filed on You can also find us on the Freenode IRC network in the #hurd channel.

May 18, 2016 03:30 PM

Gary Benson

Full-system Infinity preview coming up

I’ve released bits and pieces of Infinity over the past year, but nothing that really brings everything together. Right now I’m working on an initial full-system release of everything to do with Infinity so far. It’s codenamed “First Flight”, and you’ll be able to actually use it, see how everything hangs together, and generally get a better idea of what the point of it all is.

First Flight will be just enough for GDB to attach to a live process or start with a core file. “info threads” should work, “print errno” will not. First Flight will comprise:

  • A new release of the note compiler I8C.
  • A glibc you can git clone and build to get a with Infinity notes for map_lwp2thr, thr_get_info and thr_iter.
  • A new release of the client library libi8x that can execute those notes.
  • A shim into libi8x.

The shim won’t be used in future releases—they’ll have support for Infinity built into GDB—but it’ll likely remain as a nice example of how to use libi8x.

I’m targeting June 23 as the release date for First Flight. You can follow how I’m doing on the Infinity Roadmap (thank you Sergio!)

by gbenson at May 18, 2016 01:22 PM

May 17, 2016

GNUnet News

libbrandt GSoC kickoff


I was accepted for a Google Summer of Code project and will be developing an auctioning library. During the community bonding period I have so far read four papers relevant to the topic, choosen a few algorithms with slightly different properties which I want to implement and reconstructed one of them within the pari/gp CLI (see attachment). I also started with a first draft of the library interface which will be published in a git repository shortly.

by Markus Teich at May 17, 2016 10:07 PM

gdbm @ Savannah

Version 1.12 available

GNU DBM version 1.12 is available for download

This is mostly a bug-fix release. Noteworthy new feature:

New configuration variable COMPATINCLUDEDIR

When used with --enable-libgdbm-compat, this variable points to the directory where the headers file dbm.h and ndbm.h will be installed.
Use this variable to avoid conflicts with already installed headers. E.g.:

./configure --enable-libgdbm-compat COMPATINCLUDEDIR=/usr/include/gdbm

by Sergey Poznyakoff at May 17, 2016 10:40 AM

Riccardo Mottola

DataBasin and DataBasinKit 0.9 released

After more than a year of work, finally a new release of DataBasin and its associated framework. This version features a Framework that can be used in threads and the application itself is capable of having concurrent connection classes to

On Windows

On OpenBSD

Countless bug fixes (thanks to the bug reports of my colleagues Diego, Moustapha, Matteo + Matteo).

Major new features are:
  • threadable DataBasinKit framework
  • concurrent, interruptible operations (e.g. select vs. update)
  • handle multiple errors as a result of update
  • filter new lines when writing CSVs
  • countless bugfixes, especially in select-identify corner cases

DataBasinKit allows you native connection to, allowing your application to integrate SOQL queries (SELECT, UPDATE similar operations), be it on Mac (Cocoa) or NetBSD, FreeBSD, OpenBSD, Linux or Solaris as well as Windows (MinGW).
DataBasin itself allows you to perform standard operations in a quick and agile interface: Extract accounts on Linux without the need of Java. Use the unique select-identify feature.

I am proud that Free Software can connect from a Free Software Operating System to a proprietary system and bridge the two worlds, enabling to do administrative work without being constrained to Java on Windows (read: DataLoader). Thanks to the many developers who continue supporting me in the development and keep these fine Operating Systems and tools alive.

by Riccardo ( at May 17, 2016 09:04 AM

May 16, 2016

cflow @ Savannah

Version 1.5 available

GNU cflow version 1.5 is available for download.

Changes in this release:

  • Correctly handle functions returning struct/union (fixes bug #31792)
  • Gracefully handle invalid inputs (fixes bug #44113)
  • Debugging output goes to stderr
  • Add a manpage
  • Consistent use of exit codes

by Sergey Poznyakoff at May 16, 2016 09:39 PM

tar @ Savannah

tar 1.29

GNU tar version 1.29 is available for download.

New in this release:

New options: --verbatim-files-from, --no-verbatim-files-from

The --verbatim-files-from option instructs tar to treat each line read from a file list as a file name, even if it starts with a dash.

File lists are supplied with the --files-from (-T) option. By default, each line read from a file list is first stripped off the leading and trailing whitespace and, if the result begins with a dash, it is treated as tar command line option.

Use the --verbatim-files-from option to disable this special handling. This facilitates the use of tar with file lists created automatically
(e.g. by find(1) command).

This option affects all --files-from options that occur after it in the command line. Its effect is cancelled by the --no-verbatim-files-from option.

--null option reads file names verbatim

The --null option implies --verbatim-files-from. I.e. each line read from null-delimited file lists is treated as a file name.

This restores the documented behavior, which was broken in version 1.27.

New options: --owner-map=FILE and --group-map=FILE

These two options provide fine-grained control over what user/group names (or IDs) should be mapped when adding files to archive.

For both options, FILE is a plain text file with user or group mappings. Empty lines are ignored. Comments are introduced with # sign (unless quoted) and extend to the end of the corresponding line. Each non-empty line defines translation for a single UID (GID). It must consist of two fields, delimited by any amount of whitespace:

OLDNAME is either a valid user (group) name or a ID prefixed with +. Unless NEWID is supplied, NEWNAME must also be either a valid name or a
+ID. Otherwise, both NEWNAME and NEWID need not be listed in the system user database.

New option --clamp-mtime

The new --clamp-mtime option changes the behavior of --mtime to only use the time specified if the file mtime is newer than the given time.
The --clamp-mtime option can only be used together with --mtime.

Typical use case is to make builds reproducible: to loose less information, it's better to keep the original date of an archive, except for files modified during the build process. In that case, using reference (and thus reproducible) timestamps for the latter is good enough.

See ReproducibleBuilds, for more information.

Deprecated --preserve option removed

Sparse file detection

Tar now uses SEEK_DATA/SEEK_HOLE on systems that support it. This allows for considerable speed-up in sparse-file detection.

New option --hole-detection is provided, that allows the user to select the algorithm used for hole detection. Available arguments


Use lseek(2) SEEK_DATA and SEEK_HOLE whence parameters.


Scan entire file before storing it to determine where holes are located.

The default is to use seek whenever possible, and fall back to raw otherwise.

by Sergey Poznyakoff at May 16, 2016 07:20 PM

liberty-eiffel @ Savannah

Bell Release Candidate 1

the first release candidate for the bell release is out. Please check it out from git, download the tarball or install the debian packages from rc main

We'd appreciate any feedback on problems with the installation or any kind of bugs you find - if they are critical or easy to fix, we'll do so before the release.

Stay tuned and have fun!

by Raphael Mack at May 16, 2016 07:00 AM

May 13, 2016

administration @ Savannah

Savannah suffering networking problems

Last Friday May 6th Savannah was moved to new hosting in the same datacenter with many various assorted related and unrelated changes. Since that time there have been wide spread reports of networking problems. The FSF admins are aware of the problem and are trying to resolve it.

by Bob Proulx at May 13, 2016 10:58 PM

May 12, 2016

FSF Blogs

ABYSS - the genesis of a fully free streaming software package used at LibrePlanet

"Make it better every year."

As an FSF intern during the winter and spring of 2016, I had the opportunity to be around FSF's tech team during LibrePlanet preparation, and we spent a lot of time making the streaming and recording work as well as possible so that people who were not in each talk could still watch it (all the recordings are already up on

Each room at the LibrePlanet conference has a streaming set-up staffed by a volunteer. There are many skilled volunteers, but we need to minimize the risk of failed recordings due to over-complex or error-prone software systems. So, in order to improve streaming we decided to quickly develop a GPLv3 program to provide a seamless interface for an audio and/or video streaming console.

As a newcomer to the free software community, I have been looking for ways to contribute by coding. The huge amount of projects in progress have overwhelmed me a bit. So, when it was proposed to create a piece of software to be used directly by the community at the conference, I was full of joy about beginning a project.

How it works

It all began with creating a new prototype, named ABYSS Broadcast Your Stream Successfully (ABYSS), for LibrePlanet 2016. The first goal of ABYSS was to move past command-line based streaming, by automating what we could. The second goal was to provide audio/video feedback for the volunteer at the station to monitor the streaming. I chose to write ABYSS in Python 3.4, using the Gstreamer 1.0 and GTK3+ modules.

Gstreamer pipelines are the core element of ABYSS. They allows ABYSS to behave slightly differently according to user actions or loss of the feed. With the GTK3+ graphical user interface, it is easy to switch from test mode -- for testing the audio and video chain without broadcasting -- to stream mode, which broadcasts the feeds. In the event of main camera source failure, ABYSS changes the pipeline to fetch the video source from a backup USB webcam and then starts broadcasting again. In addition, each stream is actually recorded locally in three forms to allow easy post-processing: audio-only, raw-video, and audio-video.

This early version (which I consider v0.1) was definitely a proving ground for ABYSS. It was used in each room during LibrePlanet (except for the Snowden opening keynote) and it performed well despite the relative lack of testing and some network problems at the venue.

The next version

ABYSS version 1.0 will integrate plenty of new functionality like:

  • better input/output devices management
  • a complete strategy in case of main feed loss
  • more resilient GStreamer pipelines
  • a control-room mode
  • a monitoring mode

The last two bullets are the most visible ones for users. Control-room mode will allow a user to effectively control several streams from a single computer. This will be an extension of the functionality of ABYSS 0.1. The monitoring mode, unlike control-room mode, will be a completely new functionality. It will allow users to simply watch what is being streamed on the computer next to the camera, so that user can check the framing/focus of the camera, for example, instead of worrying if feeds are even being broadcast. This mode is designed to cooperate with control-room mode. The stream will be launched/stopped only from the control-room computer and monitoring mode users will be free to focus on improving the quality of the stream by focusing only on the video and/or audio as inputs and leaving the remaining operations to the control-room mode user.

For a smaller set-up, the control-room mode will work as a standalone. Nevertheless, the real advantage of using computers for monitoring and one computer as a control-room is that you can centralize heavy duty feeds processing on one powerful control-room computer. The more powerful your workstation is, the better the stream quality will be.

Hack on ABYSS

If this post whets your appetite you can download ABYSS at;a=summary. If you are interested in this project you can reach me at Disclaimer: this is version 0.1, tested only on x86 computers running Trisquel 7. This is not a package, and you will probably have to download some other software to get it running.

To see the whole system of which ABYSS is a part, check out the documentation for the 2015 and 2016 LibrePlanet streaming systems on the LibrePlanet wiki.


I would like to end here with a special thanks to some people at the FSF: Lisa Marie Maginnis, senior sysadmin, for proposing this project to me and letting me do things my way. Ruben Rodriguez, senior sysadmin, for providing a working pipeline for LibrePlanet 2016 and giving ideas and advice on the upcoming ABYSS 1.0. And John Sullivan, executive director, for giving me the opportunity to do an internship at FSF headquarters. Nothing would have been done without them.

See you in one year at the next LibrePlanet, when ABYSS 1.0 will emerge from the depths.

Happy hacking

May 12, 2016 07:50 PM

Friday the 13th <insert scary sounds> Free Software Directory IRC meetup: May 13th

Join the FSF and friends Friday, May 13th, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

May 12, 2016 03:49 PM

May 11, 2016

FSF Blogs

Ethics in, ethics out -- promote user-respecting software development platforms

This post was written by FSF campaigns manager Zak Rogoff and community member Andrew Ferguson.

In April, the Free Software Foundation and the GNU Project announced evaluations of several major repository-hosting services. These services are the bedrock infrastructure that our community uses to collaborate and communicate while building software, and therefore a big part of what we put into the construction process that creates free software. Using the GNU Ethical Criteria for Code Repositories, the evaluations judge code-hosting services for their commitment to user privacy and freedom. Now we are asking you to help support sites that meet the criteria and improve those that do not.

Currently, Savannah and GitLab meet or surpass the baseline standards of the criteria. You can explore the completed evaluations on the evaluation page. The criteria page offers more information on the evaluation process, as well as the criteria themselves.

Ethical code hosting is important not just for developers, but for users of free software, too. Repositories usually provide Web sites with downloadable executable programs compiled from the code they host, and are thus a popular way for users to get up-to-date copies of free software. The sites also host issue trackers that let users submit bug reports and provide feedback to developers.

Because they are central to free software in so many ways, the practices of code hosting services have ripples into the world of free software, and software in general. The repository evaluations promote and honor good ethical practices by repositories, and make it easy for users to find services that respect them.

There are four things you can do to help, depending on how you participate in the free software community:

  • Share the criteria and evaluations with the administrators of hosting services, and discuss them in communities of developers that use such sites.
  • Propose a service to be evaluated, and/or contribute to the evaluation process. Start by joining the Repo Criteria Discuss email list.
  • If you are a developer, use code hosting services that score at least an acceptable rating per the criteria.
  • If you help administer a repository-hosting service, contact the experts at for help improving your score. We are friendly and eager to help!

"More volunteers with coding ability are needed to aid the development of existing repository services to help them meet these criteria," said Andrew Ferguson, a community member who played a leadership role in the evaluation project. "All community members are encouraged to write the administrators of code-hosting services, to build awareness and a motivation to improve their ethical evaluations. GitHub has responded to some requests from the free software community and has recently updated its license chooser to include the GPLv3 license. However more community advocacy is required, as GitHub still fails to meet the criteria."

Indeed, political pressure and technical assistance from the free software developer community are the best tools we have for improving the ethical practices of code hosting sites. We expect many successes in this journey in the years to come, as projects like the ethical criteria for code hosting repositories build awareness of the infrastructure of free software development.

May 11, 2016 02:57 PM

denemo @ Savannah

Version 2.0.8 is out.

New features:

Copy and Paste
Applies to note/chord attributes
CtrlC, Ctrl-V work for these
Copied marking is highlighted
Selection changes color when copied
Improved Acoustic Feedback
Trill makes a short trill sound on entry
Copy attributes sounds
Improved Visual Feedback
Status bar notices are animated
Characters are highlighted in Lyric Verses
Directives are made more legible when cursor is on them
Cadenza Time
For un-metered music
Music can still display in “bars”
New Commands
Tuplet Positioning
Curved Tuplet Brackets
Cadenza on/off uses Cadenza Time, sets smaller note size, editable text
Notes without stems
Multi-line text annotation
Bold, Italic etc now apply to selection
A guard prevents accidental syntax collision
Updated Manual
More detail
Now indexed
Bug Fixes
Command Center search now reliable
Standalone Multi-line text with backslash editing
Pasting into measures that precede a time signature change

by Richard Shann at May 11, 2016 09:58 AM

May 09, 2016


GnuTLS 3.5.0

Released GnuTLS 3.5.0 which is the first release of the new stable-next branch. An overview of the most prominent changes is provided at Nikos' blog.

by Nikos Mavrogiannopoulos ( at May 09, 2016 12:00 AM

May 08, 2016

guile-ncurses @ Savannah

guile-ncurses 1.7 released

There is a new release (1.7) of the guile-ncurses package.

guile-ncurses is a library for the creation of text user interfaces using the GNU Guile dialect of the Scheme programming language. The text user interface library is based on the Ncurses's base, form, panel, and menu libraries.

The NEWS for the present release is as follows.

This release is primarily about merging panels and windows into
a single Guile type.

Release 1.7
- the previously undocumented (ncurses curses) procedure 'window?' is now public and documented
- the previously undocumented (ncurses panel) procedure 'panel?' has been moved to (ncurses curses) and had been documented
- the (ncurses curses) procedure 'delwin' always returns #t now
- the (ncurses curses) procedures 'cursyncup', 'syncup', and
'syncdown' are no longer broken
- 'posix-explorer' demo program now works on Guile 1.8.8
- panels are now a sub-class of windows
- the #<panel> type is eliminated
- the (ncurses panel) procedures 'new-panel' and 'del-panel' are eliminated
- new (ncurses curses) procedures 'make-panel!' and 'del-panel!' convert/deconvert a plain window into a panel window
- all panel functions now operate on panel window #<window> types
- the previously undocumented 'window?' routine now returns #t
on plain windows and panel windows
- the previously undocumented 'panel?' routing now returns #t
on panel windows and #f on plain windows.
- the (ncurses curses) procedures 'newwin', 'derwin', and 'subwin' now have a key parameter #:panel that, when #t, creates the windows as panel windows.

The web-page for guile-ncurses is

The primary download location is

Or you can find a local mirror at

Please send any questions or bug report to the mailing list

To subscribe to the mailing list, see

by Mike Gran at May 08, 2016 11:04 PM

German Arias

New design of FisicaLab website

Well, I had to learn HTML and CSS to make a more nice website for FisicaLab. This is not a big work but I think in these days is important have an attractive website. So I hope you like:)

by Germán Arias at May 08, 2016 06:10 PM

May 05, 2016

FSF Blogs

Special Friday Free Software Directory IRC meetup and LIVE STREAM: May 6th

Join the FSF and friends Friday, May 6th, from 12pm to 3pm EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory. This week's meet-up will include a live video stream, featuring the FSF's licensing & compliance manager, Joshua Gay (see "screen capture" from our test run of the video stream, below).

Participate in supporting the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.

Tens of thousands of people visit each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.

While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!

If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today! There are also weekly FSD Meetings pages that everyone is welcome to contribute to before, during, and after each meeting.

XXZXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXe+-    ---       -==----=_==-=-=-===========---=- _-             ----===-==_+||InnnXXXXXXXXXXXXXXXXXXXXXZW#WWWm#XX#X
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXe1|+-         _       ==__=-----       -- --      -   -                -= - `_ -_-=-==+|IXXXXXXXXXXXXZXXXXXXXZWWWWW#ZZ#Z
XXXXXXXdXXXXXXXXXXXXXXXXXXXXXXXXXXXe1|`--             `       ===-                          _=                 - -   `-= _-=_=====+{3XXXXXXXXXXXXXXXXXXZ#WWWmZXX
XXXXXXXXXXXXXXXXXdXXXXXXXXXXXXX!|^---                          =--=                       _==-                          -_--=-=-=====+I3XXXXXXXXXXXXddXXZ#W#m##X
XXXXXXXXXXXXXXXXXdXXXXXXnXXe|^`                                -===_                    _===-                         --- _ -=`==-- ===<XXdXXX2XXXXXXXXXXX#WWWWm
XXXXXXXXXXXXXXXdXXXXXXXXX}--                                    -=====`_             _=====-                          -    -  _ _`` ====={XXXXX2XXXXXXXXXXXX##WW
X2XXdXXXXXXXXXXXXXXXXXd}=                                         _=======__ _`   =_=====-                                   -- `-` -=====I2XXXnXdX2XXXXXXXXXZWW
dXXnXXXXndXXXXXXXXXXX}`_-                                           --====`-=- =--=-_=--                                     _ ` -- ----===I2XXnXnXXXXXXXXdXXXX#
2Xn21nX1XXXX23XnXXXX>-                                                  --_ --- `- --                                 _      -       `=`_==={nXX21Xd22ndXnXXXXXX
XX232Xd1XXX1XX1Xnn}`                                                                                                                 __- ==_=<nnXndd23X2XXXXnXXn
33XnnXnn23Xn13321+                                                                                                                   --`- -===<3nnX13n22nXXX1dXd
nnnn3XnXXn1nX3nn+`                                                                                                                   -- _=-====<XXXXXXX1dXX2XdXn

May 05, 2016 05:30 PM

GNU Spotlight with Brandon Invergo: Twenty new GNU releases in the last month (as of April 25, 2016):

20 new GNU releases in the last month (as of April 25, 2016):

For announcements of most new GNU releases, subscribe to the info-gnu mailing list:

To download: nearly all GNU software is available from, or preferably one of its mirrors from You can use the url to be automatically redirected to a (hopefully) nearby and up-to-date mirror.

This month, we welcome Russell Hyer as a new co-maintainer of GNU PDF.

A number of GNU packages, as well as the GNU operating system as a whole, are looking for maintainers and other assistance: please see if you'd like to help. The general page on how to help GNU is at

If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see

As always, please feel free to write to us at with any GNUish questions or suggestions for future installments.

May 05, 2016 04:50 PM

librejs @ Savannah

GNU LibreJS 6.0.13 released

There's a new version of LibreJS - version 6.0.13.

LibreJS is a Mozilla add-on that prevents nonfree JavaScript programs
from running in your web browser.

Originally this release was going to be 6.0.11, but I had some trouble
registering this add-on with Mozilla which required me to increment
the version to 6.0.13.

Here's the changes since 6.0.10:
* Added Unlicense to the list of recognized licenses. Thanks
to Adam Plaice for the patch.

* Added some library whitelist updates from James Kruth.

* William Cummings pointed out a piece of code that was using
non-standard syntax that might not be supported in the future.
I've re-written this to use more standard syntax.

* Fixed a problem where the LibreJS icon wasn't displaying in
the add-ons view.

This project's website is here:

The source files are here: (462K)

And here's the xpi package you can install in your browser: (601K)

by Nik Nyby at May 05, 2016 01:32 AM

May 04, 2016

FSF Blogs

No one should have to use proprietary software to communicate with their government

Proprietary JavaScript is a threat to all users on the Web. When minified, the code can hide all sorts of nasty items, like spyware and other security risks. Savvy users can protect themselves by blocking scripts in their browser, or by installing the LibreJS browser extension and avoiding sites that require proprietary JavaScript in order to function. But some sites are harder to avoid than others. This is particularly the case when the site is required for citizens to communicate or interact with their own government. If no free alternative means are provided, then users can be blocked from participating in the democratic process.

The FSF long ago called on to free its JavaScript, but as of yet we have not succeeded in getting the message through. Increasingly, protecting and promoting free software requires interacting with government agencies, so this impediment directly impacts the FSF's core mission. Most recently, the Copyright Office refused our comment calling for an end to the DMCA's anti-circumvention provisions because we would not submit it via their proprietary interface. Kevin R. Amer, Senior Counsel for Policy and International Affairs told us they would not accept our DMCA comment unless we used Jacqueline C. Charlesworth, General Counsel and Associate Register of Copyrights confirmed once we had submitted that the submission was unacceptable. Over twelve hundred co-signers signed-on to amplify our voice, but the proprietary JavaScript on made sure that the Copyright Office's ears were shut.

On March 1st, 2016, the Copyright Office announced a call for comments on an update to their technology infrastructure. We submitted a comment urging them to institute a policy that requires all software they develop and distribute to be free software. Further, we also urged them to not require people to run proprietary software in order to communicate or submit comments to them. Unfortunately, once again, the Copyright Office requires the use of proprietary JavaScript in order to submit the comment and they are only accepting comments online unless a person lacks computer or Internet access. However, we mailed a copy via the post and we are posting it publicly in the hopes that they will read it and understand that their infrastructure is so broken that we cannot even tell them that it is broken. At this time, we have received no response from the Copyright Office, and once again our comment has not been published.

The most absurd part of all this is that other government agencies, while still using, are perfectly capable of offering alternatives to submission. At the end of 2015 we were able to submit comments to the Department of Education via the post. Our comments regarding the White House's Federal Source Code Policy could be submitted via email. While we urge those agencies to provide a simple Web form for submitting comments that does not rely on proprietary JavaScript, the fact that they do offer other ways to submit at least means that free software users are not completely shut out. The Copyright Office is the only agency we have dealt with that refuses to offer any method of submission that doesn't require proprietary software.

The threat of proprietary JavaScript won't go away on its own. We need your help to rid the Web of proprietary JavaScript, and to ensure that citizens in every country can communicate freely with their own government. Here's what you can do to help:

  • Help the Free JavaScript Campaign by joining the Free JavaScript Action Team. You can help in particular on the issue of government mandated proprietary JavaScript by finding and listing government run Web sites in your country that require proprietary JavaScript and planning actions to make those sites free.
  • If you microblog, please share the following message or your own. We strongly suggest that if you use Twitter, you do it in a way that avoids using proprietary software:

No one should be forced to use proprietary software to communicate with their government. cc @CopyrightOffice

  • Consider supporting our work on proprietary JavaScript and other kinds of government proprietary software requirements by making a donation.

May 04, 2016 04:45 PM