Planet GNU

Aggregation of development blogs from the GNU Project

October 09, 2015

FSF Blogs

Creative Commons BY-SA 4.0 declared one-way compatible with GNU GPL version 3

On Thursday, October 8, Creative Commons (CC) announced the addition of the GNU General Public License version 3.0 (GPLv3) to the list of licenses compatible with the Creative Commons Attribution ShareAlike 4.0 (CC BY-SA 4.0) license. Compatibility means that a person can now take a work they received under the terms of CC BY-SA 4.0 and then distribute adaptations of that work under the terms of GPLv3. However, this compatibility is one-way only, meaning you can not release adaptations GPLv3-covered works under the terms of CC BY-SA 4.0.

The FSF provided extensive feedback throughout the drafting process of the 4.0 suite of CC licenses, and began discussing the possibility of one-way compatibility of CC BY-SA 4.0 and GPLv3 in 2011. As a steward of public licenses, CC has displayed tremendous leadership throughout the entire drafting process of the 4.0 license suite, and this leadership has continued through the license compatibility process. In January 2015, CC officially opened a public consultation on CC BY-SA 4.0 and GPLv3 compatibility. They facilitated this discussion via a public mailing list, and supported it by creating strong educational resources such as their analysis of GPLv3 and their analysis of BY-SA compatibility. One of the most important ways in which the community contributed to the compatibility discussion was by identifying various use cases in which a person may wish to combine a CC BY-SA licensed work with a piece of software or similar work. One increasingly common use case is with free hardware design projects, in which contributors to the project choose to put the entire repository (for example, an aggregate of art, design documents, and software) under the terms of the GNU GPL. Similar use cases are documented with games and the artwork distributed alongside the games.

While we do not anticipate that many people will choose GPLv3 for their adapted versions of CC BY-SA licensed works of art, we do expect compatibility will be especially useful for individuals working in niche areas where a creative work that is licensed under CC BY-SA needs to be adapted and melded into source code form and combined with some GPLv3-covered software. As Mike Linksvayer stated in CC's announcement, this important interoperability between two of the world's most popular copyleft licenses "not only removes a barrier, but helps inspire new and creative combinations of software and culture, design, education, and science, and the adoption of software best practices such as source control (e.g., through 'git') in these fields."

When combining works licensed under CC BY-SA with ones under GPLv3, individuals should use caution and make sure that they can actually comply with the source requirements of GPLv3, specifically that they are able to show that they can provide the source code, which is defined as the preferred form of the work for making modifications. Further, when licensing a CC BY-SA work under the terms of GPLv3, the FSF urges individuals to take advantage of Section 14 of the GNU GPLv3, which allows a licensor to specify a proxy to determine whether future versions of the GPL can be used, i.e., "GNU GPL version 3 or (at your option) any later version." Creative Commons has kindly provided instructions stating that "individuals can specify Creative Commons as their proxy (via so that if and when Creative Commons determines that a future version of the GPL is a compatible license, the adapted and combined work could be used under that later version of GPL."

Lastly, the FSF is grateful to all of the individuals who helped contribute to the compatibility discussion and process, including the many emails and questions we received from members of our community, but most especially to those individuals directly involved over the past five years, including: Sarah Hinchliff Pearson, Diane Peters, Lawrence Lessig, Mike Linksvayer, Kat Walsh, and Christopher Allan Webber from Creative Commons; Joshua Gay, Donald Robertson, III, Brett Smith, Richard Stallman, and John Sullivan of the Free Software Foundation, along with Eben Moglen of the Software Freedom Law Center and Aaron Williamson (who is now an attorney at Tor Ekeland).

October 09, 2015 09:19 PM

The party is over... but the fight for freedom is ready for another thirty years

On October 4, 1985, Richard Stallman founded the non-profit Free Software Foundation to support the free software movement, especially the GNU Project (begun in 1983), the GNU General Public License (created in 1989), and the four freedoms that define free software:

  • the freedom to run the program as you wish, for any purpose (freedom 0).
  • the freedom to study how the program works, and change it so it does your computing as you wish (freedom 1).
  • the freedom to redistribute copies so you can help your neighbor (freedom 2).
  • the freedom to distribute copies of your modified versions to others (freedom 3).

At thirty years old, the FSF was the first non-profit organization dedicated to free software, and is one of the oldest digital rights organizations in the world. This anniversary is a good reason to celebrate, and free software enthusiasts joined the festivities from all over, attending the party in Boston, watching the livestream of toasts by Allison Randal, Eben Moglen, Vernor Vinge, Karen Sandler, Bradley Kuhn, and Cory Doctorow, followed by an inspiring speech by Richard Stallman, and hosting their own celebrations by plugging in to our party network. We even surprised partygoers with a performance of "The Free Software Song" and the Bulgarian song from which it takes its melody, "Sadi moma bela loza," sung by members of the Boston-area Bulgarian groups Divi Zheni and Zornitsa.


The FSF also hosted a User Freedom Summit in Cambridge, with more than 80 attendees, who took part in a hackfest, an introduction to the decentralized Web, a discussion of the free software BIOS/UEFI replacement Libreboot, an intro to GnuPG email encryption, and Eben Moglen's look at the next fifteen years of the free software movement.

Our friends and supporters celebrated elsewhere, too. The Free Software Foundation Europe had a party in Berlin, with this beautiful cake, inspired by our 30th anniversary logo:

CC-BY-SA Matthias Kirschner


CC-BY-SA Daniel Pimentel

and a ton in other locations.

If you organized an event to celebrate the FSF's thirtieth anniversary, tell us about it! Send your photos or blog posts to -- we'd like to share them!

So, what does the FSF have planned for the next thirty years? Plenty. We're going to continue to fight for user freedom, alerting the public to the dangers of nonfree software in tiny computers everywhere, enforcing the GPL, and encouraging more people to use free software every day. We just upgraded our CiviCRM instance, which makes staying in touch with you even easier, and we've got more technology upgrades planned, to make our work more efficient. We have added new staff positions in the past two years, and we'd like a few more -- a bigger team will help us expand our reach, share urgent information with you faster, and deepen our relationships in the free software community.

But to do that, we need you. We have over 3,400 members, and more than two-thirds of our funding comes from individuals -- members and one-time or occasional donors of sums large and small. We rely on the free software community's generosity, and there are many ways to give. The third edition of Richard Stallman's essay collection, Free Software, Free Society, is now available in hardcover and paperback. And we still have commemorative FSF30 t-shirts, as well! Members enjoy a 20% discount on all purchases in the GNU Press shop.

Thanks for celebrating with us. In the coming weeks, keep an eye out for recordings from the User Freedom Summity and party, more on LibrePlanet 2016 (you can submit a session proposal through November 16), a community survey that will help us shape the next thirty years of the FSF, and guidelines for repositories that host free software projects, authored by Richard Stallman.

October 09, 2015 08:56 PM

guix @ Savannah

Guix-Tox talk at PyConFR, October 17th

Bonjour ! Cyril Roelandt of Red Hat who works on OpenStack will be giving a talk about Guix-Tox at PyConFR in Pau, France, on October 17th.

Guix-Tox is a young variant of the Tox "virtualenv" management tool for Python that uses guix environment as its back-end. In essence, while Tox restricts itself to building pure Python environments, Guix-Tox takes advantages of Guix to build complete environments, including dependencies that are outside Tox's control, thereby improving environment reproducibility. Cyril will demonstrate practical use cases with OpenStack.

If you're around, do not miss the talk. If you're a Pythonista, you can help by providing feedback on Guix-Tox!

About GNU Guix

GNU Guix is a functional package manager for the GNU system. The Guix System Distribution or GuixSD is an advanced distribution of the GNU system that relies on GNU Guix and respects the user's freedom.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. Guix uses low-level mechanisms from the Nix package manager, except that packages are defined as native Guile modules, using extensions to the Scheme language. GuixSD offers a declarative approach to operating system configuration management, and is highly customizable and hackable.

GuixSD can be used on an i686 or x86_64 machine. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and armv7.

by Ludovic Courtès at October 09, 2015 01:35 PM

FSF Events

Richard Stallman to speak in Paris, France

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

Speech topic, start time, and exact location to be determined.

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

October 09, 2015 11:00 AM

October 07, 2015

FSF Events

FSF copyright and licensing associate Donald Robertson - "Trading Freedom: The Threat of International Trade Agreements Like TPP, TTIP, and TISA" (SeaGL, Seattle, WA)

Don's speech will be part of SeaGL 2015; it will be nontechnical, admission is gratis, and the public is encouraged to attend:
The Free Software Foundation has campaigned for years against the dangers of the Trans-Pacific Partnership (TPP), an international trade agreement with grave consequences for software freedom. This agreement, negotiated in complete secrecy, threatens to lock its member countries into a potential future of spreading software patents, perpetual copyright restriction, and legal penalties for the circumvention of Digital Restrictions Management (DRM). While TPP secretly trundles along, other similarly terrible agreements loom on the horizon, threatening to ensnare most of the world in a web of restrictions. While trade agreements in the past have always presented issues, the threat to software freedom hidden in these hidden talks is an entirely new phenomena. Restrictions implemented in such treaties could be enforced for decades to come, and with little public input, the agreements that will eventually come out of these negotiations invariably will be anti-user.
This talk will begin with a primer on the process and general procedure for these types of agreements, focusing on how ordinary users and citizens (and even elected officials) are left out in favour of lobbyists and corporations. It will then delve in to the particular dangers that each agreement presents. While there is overlap between each, the restrictions hidden within the secret negotiations are each implemented in a slightly different fashion. Finally, the talk will cover what we at the FSF have been doing to campaign against these international agreements, and what the audience can do to join in this fight.

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

October 07, 2015 10:50 AM

October 06, 2015

GNU Remotecontrol

Newsletter – October 2015


TRENDSThe stuff going on in the big picture now

United States Electricity Price per KWH
Present and Past


July August Trend % Change
$0.142 $0.142 Same 0.00%


Year August Trend % Change % Since Difference
2005 $0.105 Same 0.00% 0.00% 0.00%
2006 $0.118 Increase 12.38% 12.38% 12.38%
2007 $0.121 Increase 2.54% 15.24% 2.86%
2008 $0.132 Increase 9.09% 25.71% 10.48%
2009 $0.130 Decrease -1.52% 23.81% -1.90%
2010 $0.133 Increase 2.31% 26.67% 2.86%
2011 $0.135 Increase 1.50% 28.57% 1.90%
2012 $0.133 Decrease -1.48% 26.67% -1.90%
2013 $0.137 Increase 3.01% 30.48% 3.81%
2014 $0.143 Increase 4.38% 36.19% 5.71%
2015 $0.142 Decrease -0.70% 35.24% -0.95%


United Kingdom Utility Prices
Present and Past


London by night

EYE CATCHINGThe stuff that has caught our eye

Demand Response
Accenture and Siemens announced a large effort, a joint venture called OMNETRIC Group, focused on the Smart Grid. They are starting in Brazil and expect to grow throughout Latin America. Schneider Electric and IPKeys Technologies announced a smaller effort, a partnership to monitor energy performance in near real-time, track energy savings, and actively participate in automated Demand Response events. A recent report provides insight to the $3.45B USD in spending on Smart Grid efforts since 2009. Another report shows Asia is growing in Demand Response at a much faster rate than the United States. The 2nd Demand Response World Forum has considerably grown in scope since last year. The United States Supreme Court will hear arguments 14 October 2015 to decide who has the authority to regulate Demand Response in the United States.

The market growth and pending court decision for Demand Response indicate the quickly growth trend to achieve Demand Response, at least in the United States. It is unlikely the court will defer a ruling in need of more information. The court ruling will either give the authority to the Federal or State level. Industries and market sectors will quickly move to align with this pending ruling.

Smart Grid – Consumer
An article provides an example of how to deploy residential energy efficiency in the market of today. The example found the ability to achieve a 28% reduction in annual energy consumption. Comcast has partnered with Crius Energy to provide energy efficiency strategies for the residential HVAC thermostat. Emerson has released their Sensi Wi-Fi enabled residential HVAC thermostat.

The majority of the network connected residential HVAC thermostats do not provide the device owner any ability to directly access their own device, their own property. The thermostat device connects through the Internet to the device manufacturer and the device owner connects to the manufacturer through the Internet. This is fine, until the day comes when the manufacturer is out of business. Additionally, there is no standardization in connecting to the device. Each manufacturer has their own proprietary technology combination. The market trend is to sell the lowest priced thermostat device by means of an energy efficiency strategy, then try to connect the device to the growing Demand Response trend. This combination means the device owner has their information provided to the utility partnering with the device manufacturer to achieve any Demand Response effort. No data privacy rights are provided to the device owner.

Smart Grid – Producer
The United States Department of Energy released more Quadrennial Technology Review information. The report shows rapid change in the structuring of energy production and consumption. IEEE Smart Grid introduced a Smart Grid Framework. They have an idea to establish Smart Grid Domains and Sub-Domains. This framework will assist in accomplishing their Transactive Control idea.

The United States and IEEE are rapidly seeking to update the national electrical grid with automation. The standards and frameworks abound, to enable public utilities to mature and join the Smart Grid. There is little discussion of data privacy for the residential customer. The pending Supreme Court decision for Demand Response will most likely contain the only data privacy rights the residential customer will receive for a long, long time.

Smart Grid – Security
Nest has released their Weave communication protocol to the general public. The Nest effort is a direct challenge to the Apple HomeKit. Nest Weave works with Wi-Fi and the ZigBee interpretation from the Thread Group. Apple HomeKit works with both Wi-Fi and ZigBee. It is unclear who will have the final responsibility for security. GNU remotecontrol has voiced much concern about ZigBee.

It does seem strange no network connected residential HVAC thermostat device manufacturer can develop an end-to-end security strategy. If they can, then they are unwilling to present such a strategy. Determining liability in the event of a security compromise will be difficult, if not impossible, for those suffering from the security compromise.


Status of our 2015 Plan


  • We are in TESTING stage.
  • We are approximately 40% finished with TESTING.
  • We are testing with both Apache and Nginx.
  • More work on the items addressed in the September 2015 newsletter.

Translation Subsystem

  • More work on the items addressed in the April 2015 newsletter.


  • More work on the items addressed in the April 2015 newsletter.

Talk to us with your comments and suggestions on our plan for the next year.


We speak with people all over the world about energy efficiency. We are constantly amazed at how cold climate cultures have little to no idea about air conditioning, while warm climate cultures have little to no idea about heating. They both care about ventilation and relative humidity. The help received by the GNU remotecontrol project is also amazing. We calculated the total contribution of labor in the millions of USD. This is not unique to a software project. All the same, we take this opportunity to acknowledge the many contributions from well over a hundred people who have helped GNU remotecontrol arrive at this point. We expect to release our latest work by the end of 2015. It is taking longer than we expected, but it will be well worth the wait. All of the reviewers who have seen the work are quite pleased with the changes since version 1.1. We have every reason to expect the general public will be similarly pleased.

Please contact us, if you would like to participate in the completion of version 2.0.

Many people have asked us about adding other types of thermostats to GNU remotecontrol. There are three questions that need to be answered before we can offer GNU remotecontrol support for any IP thermostat. These questions are:

  • How to CONNECT to it (NETWORK).
  • How to READ from it (CODE).
  • How to WRITE to it (CODE).

It is our hope to have dozens and dozens of thermostat types that work with GNU remotecontrol. Let us know if you designed or manufactured a device and you would like to test it with GNU remotecontrol.

EXISTING CODEThe stuff you may want to consider

We have 0 new bugs and 0 fixed bugs since our last Blog posting. Please review these changes and apply to your GNU remotecontrol installation, as appropriate.

We have 0 new tasks and 0 completed tasks since our last Blog posting. Please review these changes and apply to your GNU remotecontrol installation, as appropriate.

SECURITYThe stuff you REALLY want to consider

A recent article explained how the Internet of Things is bringing substantial risk to the homeowner of today. The article does not excite fear mongering, but it does clearly explain how easy it is to access a home using poorly secured Smart Home technologies.

GNU remotecontrol relies on OS file access restrictions, Apache authentication, MySQL authentication, and SSL encryption to secure your data. Talk to us you want to find out how you can further strengthen the security of your system, or you have suggestions for improving the security of our current system architecture.


Whatever you do…..don’t get beat up over your Energy Management strategy. GNU remotecontrol is here to help simplify your life, not make it more complicated. Talk to us if you are stuck or cannot figure out the best option for your GNU remotecontrol framework. The chances are the answer you need is something we have already worked through. We would be happy to help you by discussing your situation with you.


Why the Affero GPL?

GNU Affero General Public License LOGO

GNU remotecontrol LOGO

by gnuremotecontrol at October 06, 2015 07:56 PM

October 02, 2015

FSF Blogs

What do you have to say? Share it at LibrePlanet 2016

You've got until Monday, November 16th, 2015 at 10:00 in the morning EST (15:00 UTC) to submit your proposals. We can't wait to see what you come up with!

Every year, LibrePlanet brings together developers, policy experts, activists, hackers and end users. It's a place to learn new skills, share accomplishments and face challenges to computer user freedom together as a community. If you're new to the community, check out last year's conference site and session videos for a taste of what's to come.

What kind of sessions are we looking for?

LibrePlanet is defined by its combination of technical talks with non-technical sessions on free software activism, culture and current events. We are especially interested to see proposals from people who use free software or apply its values for social benefit, from academic research to community organizing, education to medicine and the arts.

We're committed to increasing the participation of speakers belonging to groups traditionally underrepresented at free software conferences, including women and people of color. If you're comfortable sharing demographic information, there is an area for it on the proposal form, but your proposal will not be judged negatively if you leave those fields blank.

It's important to us to provide sessions that are friendly to newcomers, as well as those that help experienced hackers push their technical skills. Whatever your experience level or the experience level of your audience, we want to include your session! (As a corollary of this, we welcome sessions for kids or teens.)

What makes LibrePlanet so special is the amazing contributions from our speakers, exhibitors, and volunteers. We can't wait to hear your ideas. Submit a proposal now!

Nominations are still open for the Free Software Awards

If you know a free software contributor or project that deserves celebration, don't hesitate to nominate them! This is your opportunity to publicly recognize people and projects that have inspired you. Your nominations will be reviewed by our awards committee and the winners will be announced at LibrePlanet 2016.

Learn more about the free software awards and submit a nomination.

That's all for now. See you in March!

If you'd like to sponsor LibrePlanet, please email us at

October 02, 2015 05:55 PM

Gary Benson

Infinity compiler update

I had hoped to make a first release of i8c today but I still have one open issue so you’ll have to wait until next week. Until then here’s some note source for you to ponder:

define test::factorial returns int
    argument int x
    extern func int (int) factorial

    load 1
    bne not_done_yet

    load 1

As hints I will a) point you at section 2.5 of the DWARF spec, and b) mention that argument and extern directives instruct the caller and runtime respectively to push entries onto the stack.

Your homework is to see how much of the language and runtime you can infer from this one function.

You may ask questions.

by gbenson at October 02, 2015 04:27 PM

Sylvain Beucler

Android Free developer tools rebuilds

I published some Free rebuilds of the Android SDK, NDK and ADT at:

As described in my previous post, Google is click-wrapping all developer binaries (including preview versions for which source code isn't published yet) with a non-free EULA, notably an anti-fork clause.

There's been some discussion on where to host this project at the campaign list.

Build instructions are provided, so feel free to check if the builds are reproducible, and contribute instructions for more tools!

October 02, 2015 11:18 AM

Christopher Allan Webber

Chicago GNU/Linux talk on Guix retrospective

GuixSD logo

Friends... friends! I gave a talk on Guix last night in Chicago, and it went amazingly well. That feels like an undersell actually; it went remarkably well. There were 25 people, and apparently there was quite the waitlist, but I was really happy with the set of people who were in the room. I haven't talked about Guix in front of an audience before and I was afraid it would be a dud, but it's hard to explain the reaction I got. It felt like there was a general consensus in the room: Guix is taking the right approach to things.

I didn't expect this! I know some extremely solid people who were in the audience, and some of them are working with other deployment technologies, so I expected at some point to be told "you are wrong", but that moment didn't come. Instead, I met a large amount of enthusiasm for the subject, a lot of curious questions, and well... there was some criticism of the talk, though it mostly came to presentation style and approach. Also, I had promised to give two talks, both about federation and about Guix, but instead I just gave the latter and splatted over the latter's time. Though people seemed to enjoy themselves enough that I was asked to come back again and give the federation talk as well.

Before coming to this talk, I had wondered whether I had gone totally off the yaks in heading in this direction, but giving this talk was worth it in at least that the community reaction has been a huge confidence booster. It's worth persuing!

So, here are some things that came out of the talk for me:

  • The talk was clear, and generally people said that though I went into the subject to quite some depth, things were well understood and unambiguous to them.
  • This is important, because it means that once people understood the details of what I was saying, it gave them a better opportunity to evaluate for whether it was true or not... and so the general sense of the room that this is the right approach was reassuring.
  • A two tier strategy for pushing early adoption with "practical developers" probably makes sense:
    • Developers seem really excited about the "universal virtualenv" aspect of Guix (using "guix environment") and this is probably a good feature to start gaining adoption.
    • Getting GuixOps working and solidly demonstrable
  • The talk was too long. I think everything I said was useful, but I literally filled two talk slots. There are some obvious things that can be cut or reduced from the talk.
  • In a certain sense, this is also because the talk was not one, but multiple talks. Each of these items could be cut to a brief slide or two and then expanded into its own talk:
    • An intro to functional programming. I'm glad to see this this intro was very clear, and though concise, could be reduced within the scope of this talk to two quick slides rather than four with code examples.
    • An "Intro to Guile"
    • Lisp history, community, and its need for outreach and diversity
    • "Getting over your parenthesis phobia"
  • I simply unfolded an orgmode tree while presenting the talk, and while this made things easy on me, it's not very interesting for most audience members (though my friend Aeva clearly enjoyed it)

Additionally, upon hearing my talk, my friend Karl Fogel seemed quite convinced about Guix's direction (and there's few people whose analysis I'd rate higher). He observed that Guix's fundamentals seem solid, but that what it probably needs is institutional adoption at this point to bring it to the next level, and he's probably right. He also pointed out that it's not too much for an organization to invest themselves in Guix at this point, considering that developers are using way less stable software than Guix to do deployments. He suggested I try to give this talk at various companies, which could be interesting... well, maybe you'll hear more about this in the future. Maybe as a trial run I should submit some podcast episodes to Hacker Public Radio or something!

Anyway, starting next week I'm putting my words to action and working on doing actual deployments using Guix. Now that'll be interesting to write about! So stay tuned, I guess!

PS: You can download the orgmode file of the talk or peruse the html rendered version or even better check out my talks repo!

by Christopher Allan Webber at October 02, 2015 12:50 AM

October 01, 2015

FSF News

FSF, Conservancy publish principles for community-oriented GPL enforcement

The FSF and Conservancy each lead worldwide efforts to ensure compliance with the GPL family of licenses. The principles they follow are designed to make copyleft license enforcement first and foremost serve the goal of protecting user freedom, which includes assisting companies to correctly distribute free software. This means carefully verifying violation reports, approaching companies privately rather than publicly shaming them, treating legal action as a last resort, and never prioritizing financial gain over defending the freedom of users.

"GPL enforcement is mostly an educational process working with people who have made honest mistakes, but it must be undertaken with care and thoughtfulness. Our goal is not to punish or censure violators, but to help them come into compliance. Abiding by these principles aids our work in bringing about that outcome," said FSF's licensing and compliance manager, Joshua Gay.

The FSF does license enforcement for programs that are part of the GNU Project, when their copyright is assigned to the FSF, and actively encourages developers to apply for their programs to become part of GNU. License violations can be reported by email following the instructions at

"These principles have guided our efforts in defending the rights of computer users since at least 2001. We wanted to collect them and write them down in one place both to bust some myths about our GNU GPL enforcement work, and to help other individuals and organizations get started with their own processes," said FSF's executive director, John Sullivan.

Conservancy has also released an announcement and will host the document on its website.

Conservancy's executive director Karen Sandler will be joining FSF licensing & compliance manager Joshua Gay and FSF copyright and licensing associate Donald R. Robertson, III, on Saturday, October 3rd for the User Freedom Summit in Cambridge, Massachusetts, where they will be running a workshop session titled Community Licensing Education & Outreach.

About the Free Software Foundation

The Free Software Foundation, founded in 1985, is dedicated to promoting computer users' right to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free (as in freedom) software -- particularly the GNU operating system and its GNU/Linux variants -- and free documentation for free software. The FSF also helps to spread awareness of the ethical and political issues of freedom in the use of software, and its Web sites, located at and, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at Its headquarters are in Boston, MA, USA. More information about the FSF, as well as important information for journalists and publishers, is at

About the GNU Operating System and Linux

Richard Stallman announced in September 1983 the plan to develop a free software Unix-like operating system called GNU. GNU is the only operating system developed specifically for the sake of users' freedom. See In 1992, the essential components of GNU were complete, except for one, the kernel. When in 1992 the kernel Linux was re-released under the GNU GPL, making it free software, the combination of GNU and Linux formed a complete free operating system, which made it possible for the first time to run a PC without non-free software. This combination is the GNU/Linux system. For more explanation, see

Media Contacts

Joshua Gay
Licensing & Compliance Manager
Free Software Foundation
+1 (617) 542 5942

October 01, 2015 04:20 PM

September 30, 2015

FSF Events

Richard Stallman - book launch (FSF 30th, Boston, MA)

Join the Free Software Foundation and friends in Boston, MA, to celebrate the culmination of our 30th year fighting for computer-user freedom, powered by supporters like you.

The festivities will include an address by Richard Stallman, and the launch of the third edition of his selected essays, Free Software, Free Society, which you can now order from the FSF store, both in hardcover and in paperback.

Please see the anniversary celebration's page for details, as well as information on how you can help us celebrate, whether on-site or virtually.

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

September 30, 2015 12:10 PM

User Freedom Summit (Cambridge, MA)

Join the Free Software Foundation and friends in Boston, MA, to celebrate the culmination of our 30th year fighting for computer-user freedom, powered by supporters like you.

The User Freedom Summit will be part of the festivities, which will include:

  • on October 3rd:
    • from 10:00 until 17:00: a mini conference, the FSF's User Freedom Summit, from 10:00 to 17:00, in Cambridge,
    • from 10:00 to 12:15, two sessions: Community licensing & outreach, and Introduction to federation
    • from 13:35 to 15:50, following a break, two sessions: Dip a toe in crypto, and Libreboot: a talk and demonstration
    • from 16:00 to 17:00, FSF from 30 to 45 (a talk by Eben Moglen, followed by a Q & A)
    • from 19:00 until 23:00: the FSF30 party, at CIC Boston, 50 Milk Street, Boston, MA 02109
      • an address by FSF founder Richard Stallman,
      • the launch of the third edition of his selected essays, Free Software, Free Society, which you can now order from the FSF store, both in hardcover and in paperback,
      • and, of course, social time for catching up with old friends and making new ones, on Milk St., in Boston!

Please see the anniversary celebration's page for details, as well as information on how you can help us celebrate, whether on-site or virtually.

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

September 30, 2015 11:30 AM

September 29, 2015

FSF Blogs

Interview with Noah Swartz of Privacy Badger

We conducted an email-based interview with Noah Swartz of Privacy Badger. Privacy Badger is a browser add-on that detects and blocks third party tracking. If Privacy Badger notices a third party site that it thinks is attempting to track your browsing around the web it blocks it and prevents it from writing or reading cookies and other identifying information about your browser. Additionally Privacy Badger works with EFF's newly drafted Do Not Track policy which aims to make user opt-out of online tracking a reality.

Noah Swartz is a Staff Technologist at EFF and works on Privacy Badger.

What inspired the creation of Privacy Badger?

Online tracking has become a pervasive and invisible reality of Web browsing. Users get a sense that it's happening when they're shown targeted ads, but that is only the tip of the iceberg when it comes to how the data collected about them is being used.

Why is a browser plug-in like Privacy Badger so necessary?

Advertisers and other online trackers have proposed to regulate themselves by allowing users to 'opt-out' of target ads. Unfortunately this 'opt-out' does nothing to stop the collection of user data. We felt that there had to be a stronger way for users to protect their browsing data, and a lever by which to push trackers into a place of respect for user privacy.

What features do you think really sets Privacy Badger apart from other privacy protecting software?

Privacy Badger doesn't use an explicit blacklist to decide what and what not to block. Instead it builds up its own list of what to block based on what looks like it's tracking you as you browse. This means that not only can advertisers not try to cajole EFF into making their domains exempt from being blocked by privacy badger, it also means that Privacy Badger will catch trackers that haven't been identified by other ad blocker's blacklists. Additionally Privacy Badger works in tandem with EFFs new Do Not Track policy, which we hope to see online tracers adopt as a way to respect user opt out.

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

Technical users are encouraged to contribute code. The repositories for the Firefox and Chrome versions are on github ( & and have many open bugs and feature requests that we'd love help with. Non-technical users are encouraged to use Privacy Badger and let us know about any issues they have. This includes things like visual nitpicks, broken sites, or platform specific bugs. Also we're working to translate Privacy Badger into many different languages, we'd welcome anyone able to help with that.

What's the next big thing for Privacy Badger?

We're looking into how to spot more types of tracking. Currently Privacy Badger checks for text cookies, HTML5 local storage cookies, and canvas finger printing. But there are many other ways in which your browser can be identified, we'd like to prevent those as well. Additionally there are other browsers we don't support, as well as no mobile browsers supported. Since the way people interact with the Web is becoming more through mobile platforms we think it's an important next step.

For more tools and resources on protecting your privacy, please check out our campaign against surveillance

Enjoy this interview? Check out our Licensing and Compliance Lab's interview series. In our last interview, we featured Joël Krähemann, maintainer of Advanced GTK+ Sequencer

September 29, 2015 09:04 PM

FSF Events

FSF program manager Georgia Young - "Scribus: Libre Desktop Publishing from Books to Zines" (SeaGL, Seattle, WA)

FSF program manager Georgia Young will be at this year's edition of SeaGL to speak on Scribus:

Whether creating a program for your free software conference or a zine for your friends, the GPL-licensed desktop publishing program Scribus is for you.

Working from my own experience creating print publications for the Free Software Foundation, and assuming no prior desktop publishing experience, I will give an overview of Scribus, explain how to install it, and walk through the creation of a simple, multi-page document. The discussion will cover why Scribus is the best choice for your project, and briefly examine other libre programs that complement it, including GIMP and Inkscape.

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

September 29, 2015 04:35 PM

September 28, 2015

FSF News

Taurinus X200 laptop now FSF-certified to respect your freedom

This is the first product of Libiquity to achieve RYF certification. The Taurinus X200 has the same architecture and certified software as the Libreboot X200, which was certified in January 2015. The Taurinus X200 can be purchased from Libiquity at

The Taurinus X200 is a refurbished and updated laptop based on the Lenovo ThinkPad X200, with all of the original low-level firmware and operating system software replaced. It runs the FSF-endorsed Trisquel GNU/Linux operating system and the free software boot system, Libreboot. Perhaps most importantly, all of Intel's Management Engine (ME) firmware and software has been removed from this laptop.

The FSF has previously written about Intel's ME, calling attention to how this proprietary software introduces a fundamental security flaw -- a back door -- into a person's machine that allows a perpetrator to remotely access the computer over a network. It enables powering the computer on and off, configuring and upgrading the BIOS, wiping the hard drives, reinstalling the operating system, and more. The functionality provided by the ME could be a very useful security and recovery measure, but only if the user has control over the software and the ability to install modified versions of it.

"With a rise in manufacturing of treacherous computing chips and each successive version of Intel's Management Engine becoming more treacherous than the last, it would seem that the public is being inundated with hardware that is defective by design. Therefore, it is refreshing to have companies like Libiquity making strong commitments to computer user freedom. The FSF is excited to be able to award the use of the RYF certification mark on yet another laptop," stated FSF's licensing & compliance manager, Joshua Gay.

Libiquity (a portmanteau of "liberty" and "ubiquity") defines its mission as "freedom everywhere, in personal electronics and embedded systems." In addition to providing hardware that respects your freedom, Libiquity also leads the development of ProteanOS, an FSF-endorsed distribution, and they work in partnership with and contribute to Libreboot.

"Libiquity is proud that its first hardware product, the Taurinus X200 subnotebook, has been certified by the FSF to respect its users' freedom and privacy. We are honored to be the first US company with an RYF-certified laptop product, and we look forward to further working with the FSF and the free software community to develop and offer additional freedom-respecting products and services in the future," stated founder and CEO, Patrick McDermott.

To learn more about the Respects Your Freedom hardware certification, including details on the certification of the Taurinus X200, visit Hardware sellers interested in applying for certification can consult

Subscribers to the FSF's Free Software Supporter newsletter will receive announcements about future Respects Your Freedom products.

About the Free Software Foundation

The Free Software Foundation, founded in 1985, is dedicated to promoting computer users' right to use, study, copy, modify, and redistribute computer programs. The FSF promotes the development and use of free (as in freedom) software -- particularly the GNU operating system and its GNU/Linux variants -- and free documentation for free software. The FSF also helps to spread awareness of the ethical and political issues of freedom in the use of software, and its Web sites, located at and, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at Its headquarters are in Boston, MA, USA.

More information about the FSF, as well as important information for journalists and publishers, is at

About Libiquity

Founded by CEO Patrick McDermott, Libiquity is a privately held New Jersey, USA company that provides world-class technologies which put customers in control of their computing. The company develops and sells electronics products, provides firmware and embedded systems services, and leads the development of the innovative and flexible ProteanOS embedded operating system. More information about Libiquity and its offerings can be found on its Web site at

Media Contacts

Joshua Gay
Licensing & Compliance Manager
Free Software Foundation
+1 (617) 542 5942

Patrick McDermott
Founder and CEO
Libiquity LLC

September 28, 2015 09:40 PM

Riccardo Mottola

Nasty DataBasin bug fixed

DataBasin's Select-Identify, an invaluable tool for many working with, showed erratic behaviour: extremely hard to reproduce even by sometimes re-running the same query on the same data set, the operation would just stop without any error in the console log, trapped exception or else.

After extensive debugging I found the problem in the queryMore method of the API implementation in DataBasinKit. If queryMore had to return just one record, it would malfunction.
Technically this happened because the size reported by in the queryMore is not the size of the objects of the queryMore, but of the original query.

The problem affects thus anything using queryMore: If you would select and had a batch size in download of 500, you would get a problem with 501, 1001, 1501 records and so on. 500 or 502 would just work fine. Combine this that the query size of the selectIdentify is dynamic and you get the idea on how difficult it was to reproduce.

Now it is fixed and the upcoming 0.9 version will have this fixed. All currently released DataBasin versions are affected by this bug.

by Riccardo ( at September 28, 2015 03:19 PM

September 27, 2015

Christopher Allan Webber

Userops Acid Test v0.1

Hello all!

So a while ago we started talking about this userops thing. Basically, the idea is "deployment for the people", focusing on user computing / networking freedom (in contrast to "devops", benefits to large institutions are sure to come as a side effect, but are not the primary focus. There's kind of a loose community surrounding the term now, and a number of us are working towards solutions. But I think something that has been missing for me at least is something to test against. Everyone in the group wants to make deployment easiser. But what does that mean?

This is an attempt to sketch out requirements. Keep in mind that I'm writing out this draft on my own, so it might be that I'm missing some things. And of course, some of this can be interpreted in multiple ways. But it seems to me that if we want to make running servers something for mere mortals to do for themselves, their friends, and their families, these are some of the things that are needed:

  1. Free as in Freedom:

    I think this one's a given. If your solution isn't free and open source software, there's no way it can deliver proper network freedoms. I feel like this goes without saying, but it's not considered a requirement in the "devops" world... but the focus is different there. We're aiming to liberate users, so your software solution should of course itself start with a foundation of freedom.

  2. Reproducible:

    It's important to users that they be able to have the same system produced over and over again. This is important for experimenting with a setup before deployment, for ensuring that issues are reproducible and friends and communities helping each other debug problems when they run into them. It's also important for security; you should be able to be sure that the system you have described is the system you are really running, and that if someone has compromised your system, that you are able to rebuild it. And you shouldn't be relying on someone to build a binary version of your system for you, unless there's a way to rebuild that binary version yourself and you have a way to be sure that this binary version corresponds to the system's description and source. (Use the source, Luke!)

    Nonetheless, I've noticed that when people talk about reproducibility, they sometimes are talking about two distinct but highly related things.

    1. Reproducible packages:

      The ability to compile from source any given package in a distribution, and to have clear methods and procedures to do so. While has been a given in the free software world for a long time, there's been a trend in the devops-type world towards a determination that packaging and deployment in modern languages has gotten too complex, so simply rely on some binary deployment. For reasons described above and more, you should be able to rebuild your packages... *and* all of your packages' dependencies... and their dependencies too. If you can't do this, it's not really reproducible.

      An even better goal is to guarantee not only that packages can be built, but that they are byte-for-byte identical to each other when built upon all their previous dependencies on the same architecture. The Debian Reproducibility Project is a clear example of this principle in action.

    2. Reproducible systems:

      Take the package reproducibility description above, and apply it to a whole system. It should be possible to, one way or another, either describe or keep record of (or even better, both) the system that is to be built, and rebuild it again. Given selected packages, configuration files, and anything else that is not "user data" (which is addressed in the next section), it should be possible to have the very same system that existed previously.

      As with many things on this list, this is somewhat of a gradient. But one extrapoliation, if taken far enough, I believe is a useful one (and ties in with the "recoverable sytem" part): systems should not be necessarily dependent upon the date and time they are deployed. That is to say, if I deployed a system yesterday, I should be able to redeploy that same system today on an entirely new system using all the packages that were installed yesterday, even if my distribution now has newer, updated packages. It should be possible for a system to be reproducible towards any state, no matter what fixed point in time we were originally referring to.

  3. Recoverable:

    Few things are more stressful than having a computer that works, is doing something important for you, and then something happens... and suddenly it doesn't, and you can't get back to the point where your computer was working anymore. Maybe you even lost important data!

    If something goes wrong, it should be possible to set things right again. A good userops system should do this. There are two domains to which this applies:

    1. Recoverable data:

      In other words, backups. Anything that's special, mutable data that the user wants to keep fits in this territory. As much as possible, a userops system should seek to make running backups easy. Identifying based on system configuration which files to copy and helping to provide this information to a backup system, or simply only leaving all mutable user data in an easy-to-back-up location would help users from having to determine what to back up on their own, which can be easily overwhelming and error-prone for an individual.

      Some data (such as data in many SQL databases) is a bit more complex than just copying over files. For something like this, it would be best if a system could help with setting up this data to be moved to a more appropriate backup serialization.

    2. Recoverable system:

      Linking somewhat to the "reproducible system" concept, a user should be able to upgrade without fear of becoming stuck. Upgrade paralysis is something I know I and many others have experienced. Sometimes it even appears that an upgrade will go totally fine, and you may have tested carefully to make sure it will, but you do an upgrade, and suddenly things are broken. The state of the system has moved to a point where you can't get back! This is a problem.

      If a user experiences a problem in upgrading their system software and configuration, they should have a good means of rolling back. I believe this will remove much of the anxiety out of server administration especially for smaller scale deployments... I know it would for me.

  4. Friendly GUI

    It should be possible to install the system via a friendly GUI. This probably should be optional; there may be lower level interfaces to the deployment system that some users would prefer to use. But many things probably can be done from a GUI, and thus should be able to be.

    Many aspects of configuring a system require filling in shared data between components; a system should generally follow a Don't Repeat Yourself type philosophy. A web application may require the configuration details of a mail transfer agent, and the web application may also need to provide its own details to a web server such as Nginx or Apache. Users should have to fill in these details in one place each, and they should propagate configuration to the other components of the system.

  5. Scriptable

    Not everyone should have to work with this layer directly, but everyone benefits from scriptability. Having your system be scriptable means that users can properly build interfaces on top of your system and additional components that extend it beyond directions you may be able to do directly. For example, you might not have to build a web interface yourself; if your system exposes its internals in a language capable enough of building web applications, someone else can do that for you. Similarly with provisioning, etc.

    Working with the previous section, bonus points if the GUI can "guide users" into learning how to work with more lower level components; the Blender UI is a good example of this, with most users being artists who are not programmers, but hovering over user interface elements exposes their Python equivalents, and so many artists do not start out as developers, but become so in working to extend the program for their needs bit by bit. (Emacs has similar behavior, but is already built for developers, so is not as good of an example.) "Self Extensibility" is another way to look at this.

  6. Collaboration friendly:

    Though many individuals will be deploying on their own, many server deployments are set up to serve a community. It should be possible for users to help each other collaborate on deployment. This may mean a variety of things, from being able to collaborate on configuration, to having an easy means to reproduce a system locally.

    Additionally, many deployments share steps. Users should be able to help each other out and share "recipes" of deployment steps. The most minimalist (and least useful) version of this is something akin to snippet sharing on a wiki. Most likely, wikis already exist, so more interestingly, it should be possible to share deployment strategies via code that is proceduralized in some form. As such, in an ideal form, deployment recipes should be made available similar to how packages are in present distributions, with the appropriate slots left open for customization for a particular deployment.

  7. Fleet manageable:

    Many users have not one but many computers to take care of these days. Keeping so many systems up to date can be very hard; being able to do so for many systems at once (especially if your system allows them to share configuration components) can help a user actually keep on track of things and lead to less neglected systems.

    There may be different sets, or "fleets", of computers to take care of... you may find that a user discovers that she needs to both take care of a set of computers for her (and maybe her loved ones') personal use, but she also has servers to take care of for a hobby project, and another set of servers for work.

    Not all users require this, and perhaps this can be provided on another layer via some other scripting. But enough users are in "maintainance overload" of keeping track of too many computers that this should probably be provided.

  8. Secure

    One of the most important and yet open ended requirements, proper security is critical. Security decisions usually involve tradeoffs, so what security decisions are made is left somewhat open ended, but there should be a focus of security within your system. Most importantly, good security hygeine should be made easy for your users, ideally as easy or easier than not following good hygeiene.

    Particular areas of interest include: encrypted communication, preferring or enforcing key based authentication over passwords, isolating and sandboxing applications.

To my knowledge, at this time no system provides all the features above in a way that is usable for many everyday users. (I've also left some ambiguity in how to achieve these properties above, so in a sense, this is not a pass/fail type test, but rather a set of properties to measure a system against.) In an ideal future, more Userops type systems will provide the above properties, and ideally not all users will have to think too much about their benefits. (Though it's always great to give the opportunity to users who are interested in thinking about these things!) In the meanwhile, I hope this document will provide a useful basis for implementing and thinking about mapping one's implementation against!

by Christopher Allan Webber at September 27, 2015 04:20 PM

GNUCash News

September 25, 2015

FSF Blogs

EPA opposed DMCA exemptions that could have revealed Volkswagen fraud

We have written previously about the organizations and individuals who opposed exemptions to the Digital Millennium Copyright Act's (DMCA) anti-circumvention provisions. These drones oppose the rights of users to backup, modify, and study the software and devices that we own. The DMCA's anti-circumvention provisions create legal penalties for simply accessing your software under your own terms, and raises those penalties even higher should you dare to share the tools needed to do so. It creates real penalties for anyone who wants to avoid Digital Restrictions Management (DRM) controls. The granting of exemptions to these totalitarian rules is a broken and half-hearted attempt to limit the damage these rules bring, granting for 3 years a reprieve for certain specified devices and software.

The Environmental Protection Agency (EPA) side-stepped this process and sent a letter separately directly to the Copyright Office. In the letter they argued that users should not be able to access and modify the software on their own vehicles. In their estimation, this would enable users to violate emissions controls. So it would be better for them if the hammer of the DMCA remained hanging over the head of every user or researcher who wanted to access the software on their vehicle.

Of course, just a few months after telling the Copyright Office that users couldn't be trusted with access to their devices, the EPA revealed a major scandal involving Volkswagen. It turns out that Volkswagen had for many years cheated the emissions test performed by the EPA. Volkswagen had surreptitiously included some code in their diesel vehicles that would detect the EPA's tests and have the car change its performance in order to meet EPA mandates. Once the test was over, the code would revert the vehicle to its normal, high-polluting functioning. This scam apparently went on for years before it was detected by researchers.

Of course the irony is that if users and researchers had the right to access the software on their cars, they might have discovered this fraud years ago. As Eben Moglen, founder of the Software Freedom Law Center noted "If Volkswagen knew that every customer who buys a vehicle would have a right to read the source code of all the software in the vehicle, they would never even consider the cheat, because the certainty of getting caught would terrify them.” Volkswagen is already a contributor on the kernel Linux, and as Bradley M. Kuhn, President and Distinguished Technologist of the Software Freedom Conservancy pointed out it is likely that Volkswagen vehicles already contain some free software. But some is not all, and clearly they kept much of their software secret in order to hide their scam. If all the software on the vehicles was free software they never could have perpetrated this scheme.

Researchers also could have discovered the fraud had they not been hindered by the DMCA's anti-circumvention provisions, as Kit Walsh of the Electronic Frontier Foundation argued. The EPA of course failed to understand all this when drafting their letter promoting the use of DRM.

But there is a more galling fact at play here. What the EPA argued in their letter was that the exemption should not be granted under the DMCA as a means for enforcing efficiency standards. That clearly isn't the stated purpose of the DMCA's anti-circumvention provisions, and highlights one of the fundamental problems with DRM. That a government agency would try to commandeer the DRM of private actors, not to enforce copyright but as a means to enforce something wholly unrelated, demonstrates a central truth: DRM is not about copyright; it's about control. It's about dominating users. It's about spying on them. It's about installing rootkits onto their computers. It has nothing to do with rights, and everything to do with restriction.

We can't let governments and corporation use DRM to take over our lives. This is what you can do today to fight back:

If you microblog, please share the following message (or your own) with the hashtag #DRMshame. We strongly suggest that if you use Twitter to publicly call the EPA and Volkswagen out, you do it in a way that avoids using proprietary software:

  • @EPA You should be ashamed of yourself for trying to use Digital Restrictions Management #DRMshame
  • @VW All software on your vehicles needs to be free software without DRM to restore our trust #DRMshame

Here's what else you can do.:

September 25, 2015 08:05 PM

Universal Permissive License added to license list

We recently updated our list of various licenses and comments about them to include the Universal Permissive License (UPL). The UPL is a lax, non-copyleft license that is compatible with the GNU GPL. The UPL contains provisions dealing explicitly with the grant of patent licenses, whereas many other simple lax licenses only have an implicit grant. While making the grant perfectly clear is a reasonable goal, we still recommend using Apache 2.0 for simple programs that don't require copyleft. For more extensive programs, a copyleft license like the GNU GPL should be used to ensure that all users can enjoy software freedom.

September 25, 2015 06:36 PM

Universal Permissive License added to license list

We recently updated our list of various licenses and comments about them to include the Universal Permissive License (UPL). The UPL is a lax, non-copyleft license that is compatible with the GNU GPL. The UPL contains provisions dealing explicitly with the grant of patent licenses, whereas many other simple lax licenses only have an implicit grant. While making the grant perfectly clear is a reasonable goal, we still recommend using Apache 2.0 for simple programs that don't require copyleft. For more extensive programs, a copyleft license like the GNU GPL should be used to ensure that all users can enjoy software freedom.

September 25, 2015 05:57 PM

Nick Clifton

September 2015 GNU Toolchain Update

Hi Guys,

  There are lots of things to report in this month's update...

  * The G++ ABI has been increased to version 10.
    This adds mangling of attributes that affect type identity, such as ia32 calling convention attributes (e.g. stdcall).

    ABI conflicts can be detected with -Wabi.  This option can also be used with an explicit version number to warn about compatibility with a particular version level, e.g. -Wabi=2 to warn about changes relative to ABI version 2.

  * GCC has a new configure time option: --enable-default-ssp.  This turns on -fstack-protector-strong by default.

  * Several new warning options have been added to GCC:

   -Wtemplates Warns when a primary template declaration is encountered.
   -Wmultiple-inheritance Warns when a class is defined with multiple direct base classes.
   -Wvirtual-inheritance Warns when a class is defined with a virtual direct base classes.
    -Wnamespaces    Warns when a namespace definition is opened.

    These warnings are provided to support coding rules that disallow certain features of C++.  The warning are automatically disabled when parsing system header files.

      Warns whenever a constant static variable is unused aside from its declaration.  This warning is enabled by -Wunused-variable for C, but not for C++.   In C++ this is normally not an error since const variables take the place of #define's in C++.

      Warns if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.  If a type A depends on a type B with no or internal linkage, defining it in multiple translation units would be an ODR violation because the meaning of B is different in each translation unit.  If A only appears in a single translation unit, the best way to silence the warning is to give it internal linkage by putting it in an anonymous namespace as well.  The compiler doesn't give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions.

  * Some new target specific options have been added as well:

    For AArch64 targets the command line option -mtls-size=<size> can be used to specify bit size of immediate TLS offsets.  Valid values are 12, 24, 32, 48.

    Also for AArch64, the option -mpc-relative-literal-loads enables PC relative literal loads.  If this option is used, literal pools are assumed to have a range of up to 1MiB and an appropriate instruction sequence is used.

    For MIPS targets the option -mcompact-branches=<when> can be used to control the form of generated branches.  A value of never ensures that compact branch instructions will never be generated.  Always means that a compact branch instruction will be generated if available.  Otherwise a delay slot form of the branch will be used instead.  A value of optimal (which is the default) will cause a delay slot branch to be used if one is available in the current ISA and the delay slot is successfully filled.  If the delay slot is not filled, a compact branch will be chosen if one is available.

    For S/390 systems the option -mhtm can be used to enable the builtins that support the transactional execution facility.  This option is enabled by default when -march=zEC12 is used.

    Also for the S/390 the -mvx option enables the generation of code using the vector extension instructions.  This option involves a change to the ABI that affects vector types.  It is enabled by default when -march=z13 is used.
    A second option: -mzvector can be used to enable vector as a new language type, and to enable builtin functions associated with the z13 vector instructions.  This option is disabled by default.

    The Intel x86_64 Skylake architecture is now supported as a parameter to the -march= and -mtune command line options.  The values skylake or skylake-avx512 can be used.

    The Xtensa target has a new option -mauto-litpools which will intersperse literal pools in the text section, possibly with multiple pools per function.  This option allows the compilation of very big functions, which may not be possible when the -mtext-section-literals is used on its own.

  * The linker has enhanced its handling of orphan sections.  (Orphan sections are section in the input files whose placement is not specified by the linker script being used).  The new option: --orphan-handling=[place|warn|error|discard] tells the linker what to do.  The default is place which gives the current behaviour, warn and error issue a warning or error message respectively, and discard will silently discard any and all orphan sections.

  * The new PowerPC64 specific linker command line option --no-save-restore-funcs tells the linker not to provide the out-of-line register save and restore functions used by -Os compiled code.  The default is to provide any such referenced function for a normal final link, but not do so for a relocatable link.

  * The GAS assembler now supports symbol and label names that are enclosed in double quotes (").  This allows them to contain characters that are not part of valid symbol names in high level languages.

  * The STRINGS program has a new command line option --output-separator=<str> to provide a character or sequence of characters to be used as separators between the strings that are emitted.

  * GDB 7.10 has been released.
    GDB 7.10 brings new targets, features and improvements, including:

   + Improved support for accessing shared libraries directly from the target system when debugging remotely.
   + Various Guile and Python scripting improvements, including (but not limited to):
     ** Support for auto-loading Python/Guile scripts contained in a special section named `.debug_gdb_scripts'.
     ** Support for writing a frame unwinder in Python.
   + Support for record-replay and reverse debugging on Aarch64 Linux.
   + GDB now has support for fork events on extended-remote Linux targets
     (Linux kernels 2.5.60 and later).
   + Support for DTrace USDT (Userland Static Defined Tracing) probes on x86_64 GNU/Linux targets.
   + Vector ABI support on S/390 GNU/Linux targets.
   + GDB now reads the GDBHISTSIZE environment variable rather than HISTSIZE to determine the size of GDB's command history.
   + Support for setting the parity when connecting to the target using a serial interface.
   + It is now possible to limit the number of candidates to be considered during completion.
   + Support for Sun's version of the "stabs" debug file format has been removed.
   + Support for the following targets and native configurations has been removed:
     ** HP/PA running HP-UX (hppa*-*-hpux*)
     ** Itanium running HP-UX (ia64-*-hpux*)
     Support for the "-xdb" command-line switch (HP-UX XDB compatibility mode) has also been removed.


September 25, 2015 12:18 PM

autoconf-archive @ Savannah

Noteworthy changes in release 2015.09.25

The Archive no longer releases an "lzip"-compressed tarball. The only supported format now is "xz". The rationale is that xz so widely supported that it seems pointless to archive two release archives on our servers for no apparent reason.

AX_PYTHON_DEVEL changed to provide PYTHON_LIBS, not PYTHON_LDFLAGS. This change breaks scripts written with previous versions in mind! The rationale is that -L and -l are LIBS arguments, not LDFLAGS arguments. Returning output in PYTHON_LDFLAGS suggested wrongly that they should be used in LDFLAGS, which can cause the -L and -l arguments to be ignored when they are not in the expected position in the list of command line arguments. This is a problem, for instance, with the command line generated by AC_LINK_IFELSE.

AX_CXX_COMPILE_STDCXX_11 now supports Cray's crayCC compiler (CCE 8.4).

AX_PYTHON, AX_PYTHON_EMBED now support Python 3.4.

AX_LIB_ORACLE_OCI now supports Oracle 12.

AX_EXT now supports AVX2/AVX512 and other CPU extensions.

The new macro AX_GNU_AUTOTEST was added. The macro supports multiple test-suites, Makefiles in different locations and many more features.

AX_CXX_COMPILE_STDCXX_11 now checks for attribute support with C++11 macro. Some compilers pass the other tests while not implementing this part of the C++11 specification. The test used also does not cause warnings with GCC or Clang, and can be used with -Werror.

The new macro AX_PROG_BISON_VERSION can be used to check for specific versions of bison.

The new macro AX_PROG_FLEX_VERSION can be used to check for specific versions of flex.

AX_APPEND_FLAG no longer fails if the given flag contains a ','.

AX_LUA now supports Lua 5.3.

AX_BERKELEY_DB_CXX now supports FreeBSD.

AX_CXX_COMPILE_STDCXX_11 now support HP aCC.


The new macro AX_PYTHON_MODULE_VERSION has been added.

AX_LIB_POSTGRESQL provides a new output variable POSTGRESQL_LIBS.

AX_PATH_GENERIC now supports flags that contain spaces.

AX_BOOST_BASE now supports native Windows header only libraries.

by Peter Simons at September 25, 2015 11:30 AM

September 23, 2015

Christopher Allan Webber

Wisp: Lisp, minus the parentheses

Arne Babenhauserheide has built a really cool syntax alternative for Scheme, Wisp (not to be confused with a different lisp-related-wisp), or in standards version, SRFI 119. It looks pretty nice:

;; hello world example
display                             ;    (display
  string-append "Hello " "World!"   ;      (string-append "Hello " "World!"))
display "Hello Again!"              ;    (display "Hello Again!")

;; hello world function
define : hello who                  ;    (define (hello who)
  display                           ;      (display 
    string-append "Hello " who "!"  ;        (string-append "Hello " who "!")))

Actually, let's see that in emacs, just to be sure.

Wisp and hello world

How about something slightly more substantial? How about a real life Guix package for GNU Grep:

Wisp, Emacs, Guix and Grep

Wow, not bad... not bad at all! I'd say that's quite readable! (Too bad the lines don't line up exactly in that screenshot; that's not the code but rather my emacs theme bolding the wisp code.)

What's nice is that unlike most s-expression alternatives, it doesn't lack any of the power of Lisp; it's "just lisp" with the parentheses hidden by vaguely pythonesque indentation, which means even macros work.

Now me personally? I've learned to love the parens, and there's nothing that beats an editor that knows how to do cool structural s-expression editing and navigation. But I admit that learning to read through all the parentheses was a tough thing for me initally, and certainly for many others. Maybe this can help boil the lisp frog for some.

Now what would really be hylarious would be to port this to Hy...

by Christopher Allan Webber at September 23, 2015 10:05 PM

September 21, 2015

Sylvain Beucler

Rebuilding Android proprietary SDK binaries

Going back to Android recently, I saw that all tools binaries from the Android project are now click-wrapped by a quite ugly proprietary license, among others an anti-fork clause (details below). Apparently those T&C are years old, but the click-wrapping is newer.

This applies to the SDK, the NDK, Android Studio, and all the essentials you download through the Android SDK Manager.

Since I keep my hands clean of smelly EULAs, I'm working on rebuilding the Android tools I need.
We're talking about hours-long, quad-core + 8GB-RAM + 100GB-disk-eating builds here, so I'd like to publish them as part of a project who cares.

As a proof-of-concept, the Replicant project ships a 4.2 SDK and I contributed build instructions for ADT and NDK (which I now use daily).

(Replicant is currently stuck to a 2013 code base though.)

I also have in-progress instructions on my hard-drive to rebuild various newer versions of the SDK/API levels, and for the NDK whose releases are quite hard to reproduce (no git tags, requires fixes committed after the release, updates are partial rebuilds, etc.) - not to mention that Google doesn't publish the source code until after the official release (closed development) :/ And in some cases like Android Support Repository [not Library] I didn't even find the proper source code, only an old prebuilt.

Would you be interested in contributing, and would you recommend a structure that would promote Free, rebuilt Android *DK?

The legalese

Anti-fork clause:

3.4 You agree that you will not take any actions that may cause or result in the fragmentation of Android, including but not limited to distributing, participating in the creation of, or promoting in any way a software development kit derived from the SDK.

So basically the source is Apache 2 + GPL, but the binaries are non-free. By the way this is not a GPL violation because right after:

3.5 Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not this License Agreement.

Still, AFAIU by clicking "Accept" to get the binary you still accept the non-free "Terms and Conditions".

(Incidentally, if Google wanted SDK forks to spread and increase fragmentation, introducing an obnoxious EULA is probably the first thing I'd have recommended. What was its legal team thinking?)

Indemnification clause:

12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Google, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) any non-compliance by you with this License Agreement.

Usage restriction:

3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable and non-exclusive license to use the SDK solely to develop applications to run on the Android platform.

3.3 You may not use the SDK for any purpose not expressly permitted by this License Agreement. Except to the extent required by applicable third party licenses, you may not: (a) copy (except for backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create derivative works of the SDK or any part of the SDK; or (b) load any part of the SDK onto a mobile handset or any other hardware device except a personal computer, combine any part of the SDK with other software, or distribute any software or device incorporating a part of the SDK.

If you know the URLs, you can still direct-download some of the binaries which don't embed the license, but all this feels fishy. GNU licensing didn't answer me (yet). Maybe debian-legal has an opinion?

In any case, the difficulty to reproduce the *DK builds is worrying enough to warrant an independent rebuild.

Did you notice this?

September 21, 2015 10:03 PM

parallel @ Savannah

GNU Parallel 20150922 ('Aylan Kurdi') released [stable]

GNU Parallel 20150922 ('Aylan Kurdi') [stable] has been released. It is available for download at:

No new functionality was introduced so this is a good candidate for a stable release.

Haiku of the month:

Jobs in parallel
faster run than single jobs
Use GNU Parallel.
-- Ole Tange

New in this release:

  • GNU Parallel was cited in: DockBench: An Integrated Informatic Platform Bridging the Gap between the Robust Validation of Docking Protocols and Virtual Screening Simulations
  • 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.

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 September 21, 2015 06:31 PM

September 20, 2015


September 19, 2015

FSF Blogs

It's Software Freedom Day!

Software Freedom Day means hundreds of fun, educational events, planned by activists all over the globe using resources provided by the Digital Freedom Foundation. Here's a map where you can find an event near you.

Software Freedom Day

Have you encountered a bug in one of your favorite free software projects, or is there a feature you think might make a project even better? Let the developers know today by submitting a bug report or feature request. If you've never done this before, it's easy. Just review the existing open items first to see if someone else has already taken action. Many GNU projects, from the LibreJS Web browser add-on to the GIMP image editor, make it easy for users to submit a bug report for review by developers.

As in past years, the Free Software Foundation encourages the free software community to spend this holiday introducing a friend to free software. Our User Liberation video will help explain what free software is and why it's important. Our Email Self-Defense site is a straightforward guide to email encryption using free software, and the Free Software Directory is a great place to browse for free software for specific tasks. You can place these shareable badges on your social media account, Web site, or blog to spread the word about free software online.

If you do submit a bug for Software Freedom Day, tell us about it! Use your GNU social,, or Twitter account (but read our critique of Twitter first) to tell us about it by tagging us @fsf. We'd love to reshare your effort with the free software community.

Of course, you can help support, celebrate, and educate others about free software year-round. The FSF celebrates its 30th anniversary in two weeks, on Saturday, October 3rd. You can find a birthday event in your region (or plan one of your own) in our party network, or RSVP to our birthday party and User Freedom Summit if you can be in Boston on October 3rd. And you can wear your free software pride with our commemorative FSF30 t-shirt, available for preorder now.

Free software is worth celebrating every day, but we hope you find a way to make Software Freedom Day 2015 extra special. Submit a bug report, teach a friend, or spend some time hacking on your own free software.

As always, happy hacking.

September 19, 2015 04:00 AM