Planet GNU

Aggregation of development blogs from the GNU Project

July 30, 2014

FSF Blogs

Interview with logo

In this edition, we conducted an email-based interview with David Lohle from the Tox project, an all-in-one communication platform and protocol that ensures users full privacy and secure message delivery. The Tox core library is licensed under the terms of GNU GPL version 3, or (at your option) any later version. The library implements the Tox protocol and provides an API for clients, such as Venom and Toxic.

Tell us about yourself

We're the Tox Foundation, creators of Tox, a secure and distributed multimedia messenger. Our core developer team consists of people from Canada, Germany, the US, and more. Though we speak different languages and represent diverse cultures, we are dedicated to working together on our common goal: to create a product we think is necessary in a world where our privacy is often overlooked.

What inspired you to create Tox?

After the initial leaks from Edward Snowden, we decided to take a look at what chat programs we could use that would respect our privacy. Unfortunately, at the time, all other existing implementations were either too convoluted to convince our friends to use or were proprietary, so we decided that Tox was a necessary project.

How are people using it?

Right now, people are using Tox to talk with their family in a more secure way than what other big-name, proprietary competitors offer. People from all over the world are joining group chats to talk about their favorite hobbies, and friends are getting together to discuss weekend plans. We even have plugins that allow for Tox-to-IRC and vice versa conversations. Audio calling is available in a select few clients right now, so people are even using Tox to perhaps speak with one another while they play a video game. Tox itself is a protocol, so it can be adapted to anything you can imagine. Some people have even used Tox as a file sync, safely synchronizing between their computers.

What features do you think really sets Tox apart from similar software?

Perhaps it's not so much a feature as an ideology, but Tox focuses on simplicity and security without compromise. There are a lot of great privacy-minded instant messengers out there; unfortunately, they really fall short in the user experience department. If Tox's goal is to get secure messaging in the hands of the masses, then we need to develop a set of software with a minimal learning curve. Cryptography and security are complex tasks that require special care, and Tox takes it a step further by hiding most of the configuration and other steps it usually takes to set up a competing messenger program. However, this does not mean we prevent tinkering. We're excited to see more advanced users toy around and customize Tox to their own liking, but we're also excited to see that beginners can pick up Tox and not have to sit through a video tutorial detailing how to add a friend.

When we near a finalized product, we're not going to market Tox as a secure messenger as much as we do on it's simplicity and ease. By focusing on what people care about, such as group chats and a streamlined experience, we can achieve our goal of a safe, eavesdrop-free messaging platform for all.

Why did you choose the GPLv3 as Tox's license?

When we started Tox, we wanted a platform that was easily modified, shared, and redistributed—a community is a project's strongest asset. Since most of us already supported free software, our initial discussions wavered between using a permissive license versus a strong copyleft license, and we ultimately chose GPL Version 3 in the end. Its simplicity, clarity, and strong patent protection affords our community large freedoms in changing our software, while protecting us from malicious intents.

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

We greatly appreciate all efforts, no matter how small (we're even grateful for the grammar-related commits). If you know a programming language, and wish to help develop a client, you can visit and see what you can offer. If you fluently speak a language other than English, and want to help translate Tox clients into other locales, browse our wiki at for projects you could contribute to.

We're also very interested in other's constructive criticism, as no project is ever perfect. Feedback is what fuels Tox, so if you have something to say, drop us a comment at and we'll try our best to incorporate suggestions and improve from critique. Everyone can have a role in helping to push Tox forward, even if that just means telling your friends about us.

What's the next big thing for Tox?

We're currently working on implementing audio and video in all of the main Tox clients. It's a fairly momentous task, so it might take some time, but we feel it's imperative to have proper video calling in order to move forward. Due of the nature of Git and a large community, we're able to work on multiple tasks at once—group chatting, for example—but we're trying to focus most of our efforts on A/V.

Enjoyed this interview? Check out our previous entry in this series featuring Ciaran Gultnieks of F-Droid.

July 30, 2014 01:26 AM

July 29, 2014

FSF Blogs

FSF congratulates UK Government on choosing Open Document Format


According to a press release from the Cabinet Office, "The standards set out the document file formats that are expected to be used across all government bodies. Government will begin using open formats that will ensure that citizens and people working in government can use the applications that best meet their needs when they are viewing or working on documents together."

The Free Software Foundation applauds the British government's decision to make ODF its official file format. We are especially happy that the decision excludes use of Microsoft's OOXML format, which is not fully free and would prevent the goal of interoperability. Now British citizens can use free software like LibreOffice without worrying that they'll have trouble applying for a passport, reading court documents, or getting their pensions.

The British government's adoption of ODF will make it harder for laggards to ignore the standard file format, and could inspire other governments to make the switch. After all, it's unethical to spend public funds on proprietary software that hinders interoperability and forces citizens to use the same software or miss out on access to vital government documents.

What's so great about ODF?

Users can read and write OpenDocument files without agreeing to proprietary software licenses and programmers are free to write applications that support ODF without fear of patent claims or licensing issues. Governments, businesses, and archivists can use ODF to ensure critical documents can be read for years to come, without being forced to pay for updates to proprietary software.

Using free formats is one of the easiest and most important things we can do to defend software freedom. We also need to reject proprietary formats from Microsoft Office and Apple's iWork (.doc[x], .ppt[x], etc.). At the FSF, we use only free formats in our office and we're proud to work with the LibreOffice project as a member of the Document Foundation's Advisory Board.

So, all of you in the UK who've kept a copy of Microsoft Office around for official business, now you can ditch the proprietary office suite and upgrade to one that respects your freedom: LibreOffice.

July 29, 2014 08:57 PM

GNUnet News

Talk @ Oxford: A Public Key Infrastructure for Social Movements in the Age of Universal Surveillance

On March 3rd 2014 Christian Grothoff gave a talk on "A Public Key Infrastructure for Social Movements in the Age of Universal Surveillance" at Oxford. You can now find the video below.

by Christian Grothoff at July 29, 2014 12:08 PM

parted @ Savannah

Parted 3.2 released

Parted 3.2 has been released. This release includes many bug fixes
and new features.

Here are the compressed sources and a GPG detached signature[*]:

Use a mirror for higher download bandwidth:

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:

gpg --verify parted-3.2.tar.xz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

gpg --keyserver --recv-keys 8E45A0223348AAF0

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
Autoconf 2.69
Automake 1.14.1
Gettext 0.18.3
Gnulib v0.1-139-g98ca2c0
Gperf 3.0.4


  • Noteworthy changes in release 3.2 (2014-07-28) [stable]
    • New Features

Add resizepart command to resize a partition. This works even on
mounted partitions.

Add support for EAV DASD partitions, which are ECKD's with more than
65520 cylinders.

Add support for implicit FBA DASD partitions with a single immutable

Added support for recognizing btrfs filesystem. This simply displays
btrfs in the 'file system' column of the parted output.

Added new partition type flag, esp, to set the type to 0xEF on MS-DOS.
Also aliased to boot on GPT to set the UEFI ESP GUID.

Added new partition type flag, irst, for use with Intel Rapid Start
Technology. On MS-DOS disk labels it sets the type to 0x84 and on GPT
it sets the GUID to D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593.

You can now choose to ignore errors about partitions that overlap,
or are longer than the disk. This allows you to use parted to
repair the problem.

Add support for prep flag to GPT to select PowerPC Reference Platform
boot partition type.

    • Bug Fixes

libparted: fix mac partition tables on > 512 byte sector sizes

libparted: ped_partition_get_path() was returning "/dev/foo1" instead
of "/dev/foo" for loop labels.

partprobe: when called on a disk that has become a loop label,
remove any partitions left over from a previous label.

libparted: The loop label represents an unpartitioned disk, but creates
a dummy partition to represent the whole disk. This dummy partition
was actually being loaded into the kernel. Don't do that.

libparted: fix loop labels to not vanish if you don't create
a filesystem, and to not return an error syncing when you do.

libparted: remove all old partitions, even if new label does not allow
as many.

libparted: fat and ntfs boot sectors were misdetected as dos
partition tables instead of being treated as a loop label.

libparted: previously if you chose to ignore the warning about
the gpt thinking the disk was smaller than it appears to be on
disk, subsequent warnings on other disks would be suppressed.
Now parted will warn once per disk.

Fix filesystem detection on non 512 byte sector sizes

Fix linux partition sync code to flush partitions > 16

Do not reject a FAT boot sector as invalid because it has no
system ID string.

libparted: /dev/md/ symlink can change after libparted dereferences it,
instead it should just use the symlink as given by the caller in the
same way we do with /dev/mapper/.

libparted: On multipath systems new partitions would sometimes not
appear, reporting 'device-mapper: create ioctl failed: Device or
resource busy' until the system was rebooted. Added dm_udev_wait
calls to synchronize parted with udev.

Fix help text for disk_{set,toggle} to show disk flags instead
of partition flags.

Fix gpt to correctly handle non ASCII charcters in partition names

If a drive was 100 times an even multiple of two, sizes specified as
a percentage would trigger the exact placement rule and refuse to round
to the nearest half percent.

Avoid generating udev add/remove events for all unmodified partitions
when writing a new table.

Fix cache coherency issue by flushing partition block devices.
This had been mistakenly disabled in parted 2.0, and resulted
in parted sometimes identifying the previous filesystem type
after running an mkfs to format a partition to a new type.

libparted: fix gpt end of disk handling. Previously if the backup
copy of the gpt was not at the end of the disk and you chose to
ignore this error, parted would move it to the end of the disk
anyhow. It will now leave the backup in the same location if
you chose to ignore this error.

libparted: handle logical partitions starting immediately after
the EBR. Creating a logical partition one sector after the EBR
used to cause parted to complain that it could not inform the
kernel of the changes, but after a reboot, everything was fine.
Parted will now correctly inform the kernel of the changes, but
only set the length of the extended partition to 1 sector instead
of two, which would cause it to overlap the logical partition.

parted: fix EOF and ctrl-c handling. parted used to refuse to exit
in response to ctrl-c and would get stuck in an infinite loop
prompting for more input when it reached EOF on stdin.

libparted: Don't fail to manipulate partitions on dmraid disks that
have other partitions in use.

libparted: mac: a MAC partition table could have a block_size larger
than the one the kernel told us about. Upon reading that partition
table, libparted would ask if it's ok to use the larger block size.
If you were to respond in the affirmative, libparted would read the
larger number of bytes into a buffer of the shorter length,
overrunning it.

libparted: gpt: fix gpt_get_max_supported_partition_count to work
also on little-endian systems.

libparted: treat a disk with no pMBR as an msdos-labeled disk
even when it has valid GPT headers.

partprobe now tells the kernel to forget about any partitions
on a device that has no recognizable partition table.

dos: the range of random MBR signature values was artificially limited
to 0..999999, which mistakenly included 0. Now, we use the full 32-bit
range, but exclude 0.

    • Changes in behavior

When attempting to manipulate a mounted partition, parted now issues
a warning that you can choose to ignore, instead of an error.

When creating a loop label, it automatically comes with a partition
using the whole disk.

parted -l no longer lists device-mapper devices other than
dmraid whole disks.

Added new Linux-specific partition GUID type code
(0FC63DAF-8483-4772-8E79-3D69D8477DE4) for Linux filesystem data on GPT
disks. This type code is now assigned as the default partition type code
for new partitions holding Linux filesystems.

Added new "msftdata" flag to identify partitions holding NTFS or FAT
filesystems on GPT disks. This flag corresponds to a GPT type code of
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ("Microsoft Basic Data"). Since
Linux filesystem partitions formerly used this type code, this flag may
optionally be set on Linux partitions to make the partition table type
codes match former configurations in case the new Linux filesystem type
code causes problems with some utility. Note that this flag cannot be
removed from NTFS or FAT partitions within parted except by setting a
competing flag, such as "boot" (which sets the type code used by EFI
System partitions) or "msftres" (which sets the "Microsoft Reserved" type

by Phillip Susi at July 29, 2014 03:50 AM

easejs @ Savannah

GNU ease.js 0.2.3 released [stable]

This is the fourth release of the 0.2 series as part of the GNU project; it is primarily a maintenance release, but does introduce a significant (preview and undocumented) feature---parameterized traits. A generic `super` method has also been added to satisfy more sophisticated subtyping that `__super` alone cannot handle.

Changes between 0.2.2 and 0.2.3:

  • `super` method now provided by method override wrapper
    • Allows invoking arbitrary method on supertype to handle cases where `__super` is not sufficient
    • Documentation added to manual under the heading of ``Arbitrary Supertype Method Invocation''
    • Anyone relying on undocumented internal properties to achieve this effect should now use this method instead.
  • ease.js and its test cases now conform to ES5 strict mode
  • Began ease.js metadata storage refactoring; those relying on undocumented properties (e.g. _$$*$$) should take note
    • Please do not rely on undocumented behavior
  • Test runner now passes option arguments to Node.js
    • e.g. --debug and --debug-brk
  • [bugfix] Subtypes of prototype subtypes no longer clobber ease.js metadata

Trait support is currently under development and will be undocumented until v0.3.0; it is included currently as a preview and is functional and comprehensively tested, but incomplete.

  • [preview] Parameterized traits
    • C' = C.use( T( ...params ) ); ...params passed to T#__mixin by reference upon instantiation of C'
    • See NEWS (or website blog) and test cases for rationale and examples
  • [preview bugfix] Corrected __length metadata on trait virtual proxies
  • [preview bugfix] Corrected virtual non-overridden trait methods

by Mike Gerwitz at July 29, 2014 02:05 AM


July 28, 2014

GNUnet News

GNU Hacker Meeting 2014 at TU Munich

The registration is still open (and free) for the GNU Hacker Meeting 2014 in Munich. There will be several talks related to GNUnet and presumably plenty of discussions about the future of the GNU system as a whole. So if you are interested in GNU and free software, please register and stop by on August 15/16th (Friday/Saturday)!

by Christian Grothoff at July 28, 2014 10:00 PM

freeipmi @ Savannah

FreeIPMI 1.4.5 Released

FreeIPMI 1.4.5 - 07/28/14
o Fix libipmiconsole calculation bug w/ SOL character send size.
o Support Supermicro H8DGU and H8DG6 OEM sensors and events.
o Minor documentation updates.

by Albert Chu at July 28, 2014 06:11 PM

GNU Hackers Meeting

2014 Programme now available

The programme for the 8th GNU Hackers' Meeting has now been finalised and is online at

All are welcome and attendance at GHM is free of charge, but you must register at - please do so as soon as possible if you wish to take part.

The event is hosted by the Technische Universität in Munich, Germany.

The talks will be recorded and made available online shortly after the meeting.

by John Darrington at July 28, 2014 05:52 PM

GNU MediaGoblin

Welcome Jessica Tallon, MediaGoblin’s second full time hire

Dropdown menu for administrative features

I’m excited to announce that MediaGoblin has hired its second full-time programmer: Jessica Tallon! Those of you who follow MediaGoblin closely may recognize that name: Jessica joined us as part of our Outreach Program for Women participation last year (she wrote about her experiences with the program on this blog). Jessica has been working on federation support in the project.

Second milestone (60k) unlocked!

Since our crowdfunding campaign was a massive success, reaching its second milestone, that was enough funds to bring Jessica on full time. (You may be wondering: what about me (Chris Webber) then? Am I still full time on the project? The answer is “nearly”; I am full time without pay for now, but will be picking up a small amount of contracting to cover the bills so I will be at the status “nearly full time”… thus MediaGoblin will have mostly two full time people on staff at the moment!) You might notice that the number of dedicated resources on the project corresponds with the “number of goblins unlocked”. That’s no coincidence… we made no official announcements because we couldn’t be sure until everything was arranged, but the number of goblins on that page was the number of dedicated resources we hoped to pull in. Luckily, we were able to make an arrangement and pull in Jessica. That’s great news for MediaGoblin!

Already, the results are showing themselves. Jessica only joined a couple of weeks ago and already she has landed the first major milestone for federation (not federation itself, but the upload API… it’ll be in the next release, so more soon!) and has been helping get 0.7.0 out the door. The results speak for themselves!

But even though the results speak so clearly, there’s nothing like hearing right from the source! As such, Deb Nicholson was kind enough to interview Jessica… so without further ado, here is their conversation below!

Deb: You started working on GNU MediaGoblin through an Outreach Program for Women internship. What initially drew you to MediaGoblin, instead of one of the other fine projects that offer paid summer internships?

Jessica: MediaGoblin was a perfect fit for both me and what I wanted to work on. The welcoming community was something which was immediately apparent, I wanted to work on a project which was going to be welcoming and for me to feel like I could continue after OPW had concluded. I also wanted a project which would provide me with any help I might need while getting to grips with the code. It was clear that MediaGoblin was a perfect fit for me in that respect.

Deb: You spent last summer re-writing the PyPump library. Are projects besides GNU MediaGoblin using your work?

Jessica: I’ve seen several projects which are using PyPump as well as interest in helping develop the library itself. Spigot is a program written against PyPump that allows posting to RSS feeds to There is also PumpMigrate which migrates data from one account to another, this could be really useful both on and MediaGoblin to allow someone to move their account to a different instance.

Deb: You’ll be working on GNU MediaGoblin’s federation branch for the next year. What do you think the biggest or most challenging part is going to be?

Jessica: I think that there will be two big and difficult aspects I will encounter over the next year. The first will be across instance subscriptions which would allow you to subscribe to a collection or user and have updates to those be visible on your instance even though they exist and have been uploaded to another instance.

The second and possibly the most difficult but also most rewarding part will be the sharing of media. This will allow you to share some media uploaded from a mediagoblin instance via your own mediagoblin account possibly on another server or even a instance. Permissions on how users will be able to interact with the media by commenting, favoriting or re-sharing will make the problem interesting but brings challenges.

Deb: What do you think GNU MediaGoblin will look like in 3 years time?

Jessica: This is a very difficult, over the last year that I’ve been apart of the project I’ve seen so much happen. I think within 3 years we’ll have mature federation support which will make running your own instance easy without isolating yourself from the social aspects of sharing your media. There’s also lots I see happening from others in the project for easier deployability which will hopefully make deploying a MediaGoblin instance much more achievable for a lot more people.

I am so excited to see what unexpected changes occur over the next 3 years. There are so many contributors and it’s such a wonderful community and project that I know I’m always going to be blown away by what can be achieved by everyone involved.

by Christopher Allan Webber at July 28, 2014 04:20 PM

July 27, 2014

tar @ Savannah

tar 1.28

GNU tar version 1.28 is available for download.

New in this release:

New checkpoint action: totals

The --checkpoint-action=totals option instructs tar to output the total number of bytes transferred at each checkpoint.

Extended checkpoint format specification

New conversion specifiers are implemented. Some of them take optional arguments, supplied in curly braces between the percent
sign and the specifier letter.

New option --one-top-level

The option --one-top-level tells tar to extract all files into a subdirectory named by the base name of the archive (minus standard compression suffixes recognizable by --auto-compress). When used with an argument, as in --one-top-level=DIR, the files are extracted into the supplied directory. This ensures that no archive members are extracted outside of the specified directory, even if the archive is crafted so as to put them elsewhere.

New option --sort

The --sort=ORDER option instructs tar to sort directory entries according to ORDER. It takes effect when creating archives. Available _ORDER_s are: none (the default), name and inode. The latter may be absent, if the underlying system does not provide the necessary information.

Using --sort=name ensures the member ordering in the created archive is uniform and reproducible. Using --sort=inode reduces the number of disk seeks made when creating the archive and thus can considerably speed up archivation.

New exclusion options


Before dumping a directory check if it contains FILE, and if so read exclude patterns for this directory from it.


Same as above, but the exclusion patterns read from FILE remain in effect for any subdirectory, recursively.


Read exclude tags from VCS ignore files, where such files exist. Supported VCS's are: CVS, Git, Bazaar, Mercurial.

Tar refuses to read input from and write output to a tty device


This release includes official tar(1) and rmt(8) manpages. Distribution maintainers are kindly asked to use these instead of the home-made pages they have been providing so far.

by Sergey Poznyakoff at July 27, 2014 09:19 PM

July 25, 2014

FSF Events

Boston CiviCRM meetup -- August

We meet every month to talk about CiviCRM, a powerful free software tool for nonprofits. Our group brings together users, developers, administrators, and newcomers to:

  • Learn more about CiviCRM through skill sharing and showcases
  • Discuss how organizations are using it to engage with their constituents
  • Collaborate on custom modules, themes, and templates
  • Discuss future development of CiviCRM

July 25, 2014 03:11 PM

guix @ Savannah

GNU Guix 0.7 released

We are pleased to announce the next alpha release of GNU Guix, version 0.7.

This release is an important milestone for the project since it is the first to provide an image to install the GNU system from a USB stick.

Noteworthy features for the release are:

  • The GNU operating system can now be installed. Try it out!
  • To make it possible the guix system command has been augmented with new options, and support for 'operating-system' declarations has been vastly improved.
  • Programming has been simplified with the introduction of "G-expressions", which capture dependencies used by build-side expressions.
  • More than 130 packages have been added, including "big ones" like the GIMP and Maxima.

See the original announcement for details.

by Ludovic Courtès at July 25, 2014 07:28 AM

July 24, 2014

FSF Blogs

Friday Free Software Directory IRC meetup: July 25

Join the FSF and friends on Friday, July 25, from 2pm to 5pm EDT (18:00 to 21:00 UTC) to help improve 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!

July 24, 2014 04:52 AM

July 23, 2014

FSF Events

Richard Stallman to speak in Socorro, NM

Richard Stallman's speech will be nontechnical, admission is gratis, and the public is encouraged to attend.

Time and detailed location to be determined.

Please fill out our contact form, so that we can contact you about future events in and around Socorro.

July 23, 2014 02:42 PM

Richard Stallman - «El software libre en la ética y en la práctica» (Bogota, Colombia)

Richard Stallman hablará sobre las metas y la filosofía del movimiento del Software Libre, y el estado y la historia del sistema operativo GNU, el cual junto con el núcleo Linux, es actualmente utilizado por decenas de millones de personas en todo el mundo.

Esa charla de Richard Stallman formará parte del Congreso Nacional de Software Libre, no será técnica y será abierta al público; todos están invitados a asistir.

Favor de rellenar este formulario, para que podamos contactarle acerca de eventos futuros en la región de Bogotá.

July 23, 2014 12:30 PM


GnuTLS 3.3.6 and 3.2.16

Released GnuTLS 3.3.6, and GnuTLS 3.2.16, which are bug-fix releases on the next, and current stable branches respectively.

by Nikos Mavrogiannopoulos ( at July 23, 2014 12:00 AM

July 22, 2014

parallel @ Savannah

GNU Parallel 20140722 ('MH17') released

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

This release contains a major change in central parts of the code and should be considered beta quality. As always it passes the testsuite, so most functionality clearly works.

Thanks to Malcolm Cook for the brilliant idea to use a general perl expression as a replacement string.

Haiku of the month:

Are you tired of
inflexible replacements?
Use Perl expressions.
-- Ole Tange

New in this release:

  • {= perl expression =} can be used as replacement string. The expression should modify $_. E.g. {= s/\.gz$// =} to remove .gz from the string. This makes replacement strings extremely flexible.
  • Positional perl expressions (similar to {2}) are given as {=2 perl expression=} where 2 is the position.
  • One small backwards incompatability: {1}_{2} will replace {2} with the empty string if there is only one argument. Previously {2} would have been left untouched.
  • Replacement strings can be defined using --rpl. E.g. parallel --rpl '{.gz} s/\.gz$//' echo {.gz} ::: *.gz
  • The parenthesis around {= perl expression =} can be changed with --parens.
  • --tmux will direct the output to a tmux session instead of files. Each running jobs will be in its own window.
  • --halt 10% will stop spawning new jobs if 10% failed so far.
  • 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 is 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.


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 July 22, 2014 04:53 AM

July 21, 2014

Luca Saiu

Happy pi Approximation Day 2014

It’s 22/7 again. Last year on pi Approximation Day I published a simple Forth program based on an intuitive geometrical idea: see Happy pi approximation day 2013 (). I’ve been thinking about what to do in 2014 for some time, without finding anything as nice from the programming point of view. Sure, you can find series and continued fractions converging to pi, even rapidly; these methods work, but the corresponding programs are trivial to code and don’t provide any insight. So I chose another route: a practical experiment to approximate pi by cutting and weighing metal. The result turned out ... [Read more]

by Luca Saiu ( at July 21, 2014 10:10 PM

FSF Blogs

Introducing Tyler Livingston, a summer Licensing Team intern

Tyler Livingston

Hello. I am a rising Third Year law student at SMU Dedman School of Law in Dallas, TX. I am working hard to master the technical aspects of law, electronics, and software. My current interests involve protecting individuals and investigating new technology, particularly in the communications field by utilizing licenses for authorship, art, and inventions. Prior to law school, I attained a bachelor's degree in History at the University of Texas at Dallas.

Licensing is where I began to be involved with free software; the FSF in particular utilizes a great strategy of working within the current licensing jurisprudence by using copyleft to support freedom and empowerment for users over their computers and software. My computer science skills are lacking, but I have worked with UNIX systems in the past and am now finally feeling comfortable enough to make a permanent switch to enjoy software on my own terms. Other interests include electronics and travel (with a trip planned to Eastern Europe later this year).

Over the summer I will be working with the licensing department on various projects, including the Free Software Directory, publications, and hopefully a bit of the nitty-gritty licensing terms and compliance issues. The number one priority for my time at the FSF is to learn. Collaboration brings together society and carries with it several other natural positive externalities. I hope to integrate into the free software community because it is an integral cog of the free software movement. I am extremely excited to reach out to others and soak up as much as I can from this enthralling environment.

I encourage all to contact me at

More information about the FSF's internship program is available at

July 21, 2014 04:45 PM

July 18, 2014

coreutils @ Savannah

coreutils-8.23 released [stable]

by Pádraig Brady at July 18, 2014 11:35 PM

July 17, 2014

denemo @ Savannah

Release 1.1.8 is imminent

New Features:


Dynamics such as cresc. poco a poco
Text such as rall …
LilyPond takes care of the extents

Lyrics Enhancements

Lyric stanza numbers can be inserted
Available on lyrics pane menu
Lyric font style control
Melismata Insert

Text and Graphics

Graphic Title Pages
Multiple columns of text
Edit in external vector editor
Use for music books, verses …
Multi-line text, with embedded music snippets

Custom Ornaments/Symbols

Edit the Ornament Shape and Size
Re-define existing ornaments
Attach to notes or stand-alone

Custom Barlines

Define new barlines
Re-define existing barlines
Control over how/if they print in all positions

Chord Charts

Chord Symbols
With barlines, repeats
Text markings, pauses
Use for songs, jazz …
Display on smartphone while busking…

by Richard Shann at July 17, 2014 07:37 PM

gnatsweb @ Savannah

Status update on upcoming changes

Quite frankly, I have found that the current gnatsweb lacks the sufficient framing to make anything more useful out of it. Managing it as a monolithic perl CGI script just is not working out.

So, I've decided to:

1. Move the repository to Github, which gives me some better tools to manage updates
2. Move the functionality directly to Mojolicious without making a 'cleanup' release
3. Release the next version as a 'like for like' replacement

by Richard Elberger at July 17, 2014 02:55 AM

July 16, 2014

FSF Blogs

Friday Free Software Directory IRC meetup: July 18

Join the FSF and friends on Friday, July 18, from 2pm to 5pm EDT (18:00 to 21:00 UTC) to help improve 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!

July 16, 2014 07:22 PM

German Arias

First steps with Liberty-Eiffel


Well, after the release of Liberty-Eiffel as part of GNU I’m giving my first steps with Eiffel language. Some years ago I tried this language, but unfortunately I don’t found documentation in spanish. Now that I can read english, I will give me a try with this language. And, of course, I will also write spanish tutorials for upcoming users :)

The first thing I notice is a different terminology. An executable is called system and a set of classes is refereed as universe. The classes can be grouped in clusters into the universe. And the routines (operations) of a class, and its attributes, are called features. The routines are divided in functions or queries (which return a value) and procedures (which do not return a value). As opposed to C language, where we need a function named main, on Eiffel we can designate any procedure to start the execution.

But let start looking the example “Hello World!” that comes in the source tarball. First install Liberty-Eiffel, in my case I have the deb packages from Snapshots, because the stable packages for i386 are broken. The example is this, from — to the end of the lines are comments (I removed the original comments, but add others for explanation):


{ANY} mean that any other class can call this routine. In Eiffel we can limit the calls from certain classes. io is a class for input/output and the routine put_string write a message at default output. The source tarball, at work/eiffel.el, provide a major mode for Emacs. Save this program in a file with the name hello_world.e and compile this with:

se compile hello_world.e -o hello

In Eiffel is recommended have one class per file. The name of class capitalized and the name of the corresponding file in lowercase. Now run the executable:

Hello World.

Clap clap, our first program with Eiffel.

OK, here happened something magic. We don’t set any routine as the initial to start the execution. Liberty-Eiffel don’t implement 100% the ECMA standard in which, if the initial routine isn’t specified, is assumed it has the name make. So, I suppose in Liberty-Eiffel it is assumed to have the name main. But go ahead, Liberty use ACE files with the same purpose of makefiles in other languages. This is our ACE file for this example:


Again, from — to the end of the lines are comments. In cluster section there are two lines. The current directory, where is our file hello_world.e, and the paths of Liberty libraries, defined in Save this file in the same directory of our source file, and with the extension ace, for example hello.ace: Now you can compile the program with:

se compile hello.ace

To clean the compile products, except the executable, use:

se clean *.e

And that is all for now. In next posts I will share other examples while I learn this interesting language. Regards :)

by Germán Arias at July 16, 2014 07:32 AM

July 14, 2014

FSF Blogs

Tell the FCC: Net Neutrality is crucial to free software

UPDATE: The FCC has extended the comment deadline to Friday, July 18, 2014 at midnight. Why the extension? The FCC's servers are crashing--they can't seem to handle the number of public comments coming in. Keep 'em coming!

The agency has asked members of the public, along with industry leaders and entrepreneurs, to tell it why Internet Service Providers should be banned from traffic discrimination. This comment window is one of the best opportunities we've had to make an impact. Comments are due July 18, 2014. Submit your statement in support of Net Neutrality right away using the Electronic Frontier Foundation's free software commenting tool.

Net neutrality, the principle that all traffic on the Internet should be treated equally, should be a basic right for Internet users. It's also crucial for free software's continued growth and success. Here's why:

Media distribution giants that use Digital Restrictions Management and proprietary software to control what's on your computer have also been fighting for years to control the network. Without Net Neutrality, DRM-laden materials could be easier to access, while DRM-free competitors could be stuck in the slow lane. Web-based free software projects like GNU MediaGoblin could also suffer the slow treatment while competitors like YouTube shell out big bucks for speedier service. The bottom line--an Internet where the most powerful interests can pay for huge speed advantages could push smaller free software projects right off the map and make it harder for decentralized projects to flourish. That's not good for free software, and it's not good for other innovative voices for change in the digital world.

Tell the FCC: Net Neutrality will help free software flourish

Activists have worked for years to get to this moment. Over the last several months, things have really heated up--with Internet freedom lovers camping out outside of the FCC, serenading FCC Chairman Tom Wheeler with a special version "Which Side Are You On?" The comments flooding in to the agency have jammed the phones and crashed the FCC's email servers. And yet, Chairman Wheeler still thinks he can get away with ignoring overwhelming public outrage and wrecking the free Internet. We have to keep up our historic momentum in order to convince a cable-industry sympathizer like Chairman Wheeler to listen to the public and protect Net Neutrality.

The deadline for comments is July 18, 2014. Don't delay--comment now!

July 14, 2014 10:20 PM

gettext @ Savannah

Nick Clifton

July 2014 GNU Toolchain Update

Hi Guys,

  More toolchain goodness this month, with several new features making their way into the sources:

  * GCC can now produced compressed DWARF debug information, if it is supported by the rest of the toolchain:


    The type parameter is optional, and is used to specify the sort of compression to be used.  Accepted values are:

       * none      (don't compress debug sections)
       * zlib         (use zlib compression in ELF gABI format)
       * zlib-gnu (use zlib compression in traditional GNU format)

  * GCC has a new option to improve the optimization of ELF DSOs:


    Without this option the compiler has to assume that global symbols might be replaced by the dynamic linker and so it cannot perform any inter-procedural propagation, inlining and other optimizations on them.  While this feature is useful, for example, to rewrite memory allocation functions by a debugging implementation, it is expensive in the terms of code quality.

    With the new option enabled the compiler assumes that if interposition happens for functions the overwritting function will have precisely the same semantics (and side effects).  Similarly if interposition happens for variables, the constructor of the variable will be the same.

  * GCC has a couple of new options to disable warning messages.

    This disables warning about conversions between pointers that have incompatible types.  The option affects warnings that are not disabled by the -Wno-pointer-sign option (which only stops warnings about signed vs unsigned pointers).


    Stops warnings about implicit incompatible integer to pointer and pointer to integer conversions.

    There is also a new option to enable a new warning:


    which warns when the sizeof operator is applied to a parameter that is declared as an array in a function definition.

  * The GOLD linker now has support for the AArch64 and MIPS architectures.

  * The NEWLIB C library can now be configured with a very small footprint I/O library (--enable-newlib-nano-formatted-io).  Whilst a lot smaller in size than the default I/O support, it does have a few restrictions:

      + Long doubles are not supported.
      + Floating point support has to be explicitly requested by the program linking to either or both of: _printf_float and/or _scanf_float.

      + Wide character I/O functions are not affected by this configure option.
  * The STRINGS program supports a new command line option:

    which makes it include \n and \r characters in the strings that it displays.

  * The LD linker for COFF and PE based targets now supports a command line option:


    which makes it insert a real timestamp into the image, rather than the default value of zero.  This means that two identical binaries built at different times will compare differently, but it also means that the binaries will work with proprietary tools which cannot cope with zero timestamps.

  * The BINUTILS now have support for the AVR Tiny microcontrollers.

  * GCOV-TOOL is a new tool for manipulating profiling data.  With it you can:

      + Merge two sets of profiling data.
      + Scale or normalize the data.
      + Remove a subset of the data.

   This tool is part of the GCC sources.

July 14, 2014 08:57 AM

July 13, 2014

guix @ Savannah

Guix at OpenBio Codefest 2014

On Wednesday, July 9th, David Thompson gave a brief introduction to GNU Guix at the Open Bioinformatics Codefest 2014 hackathon. The objective of the Codefest is to give developers of bioinformatics software a chance to be fully focused on their projects for a few days and work in person. These developers are concerned with the reliability and reproducibility of their operating systems, and the limitations of their package management utilities.

See the slides on-line.

by David Thompson at July 13, 2014 08:26 PM

July 11, 2014

GNUnet News

Talk @ TUM: Peter Schaar on "Gibt es einen Schutz vor Totalüberwachung?"

On July 7th 2014 Peter Schaar (Head of the European Academy for Freedom of Information and Data Protection, former Bundesdatenschutzbeauftrager) gave a talk about technology, law and surveillance in German. You can find the video below.

by Christian Grothoff at July 11, 2014 11:21 AM