Planet GNU

Aggregation of development blogs from the GNU Project

April 19, 2019

FSF Events

Meetup - with the FSF's John Sullivan and Donald Robertson, III (Bellingham, WA)

Free Software Foundation (FSF) executive director John Sullivan and licensing & compliance engineer Donald Robertson, III, will be hosting a meetup in Bellingham, WA, to show appreciation for your support of the FSF's work and to provide you with an opportunity to meet other FSF members and supporters. They will give a brief update on what the FSF is currently working on and will be curious to hear your thoughts, as well as answer any questions you may have.

This is an informal gathering for anyone who is interested in participating in the free software community or wants to learn more about the FSF; you don't have to be a current member to attend.

The FSF will be providing appetizers, including vegan- and vegetarian-friendly options.

Location: Melvin Brewing Pub, 2416 Meridian St., Bellingham, WA 98225; a short walk from the Number 3 bus stop on the corner of Holly St. and J St.

RSVP: It would be great if you could let us know by April 24, 2019, if you're coming to the meetup, but you're also welcome to just drop in. Contact us ZoĂŤ Kooyman, at campaigns@fsf.org, to RSVP, or if you have any questions.

Please fill out our contact form, so that we can contact you about future events in Bellingham area.

19 April, 2019 07:35PM

April 18, 2019

FSF Blogs

Volunteers needed! Help update "Introduction to the command line" manual

intro to the command line book cover

The current book is available online at the Web site of the partner in the original sprint, or it can be bought as a hard copy through the GNU Press store.

We will need writers and proofreaders to:

  • Write a new chapter to introduce Git (about 20 to 30 pages). The introduction should start by explaining how to get involved in an existing project, such as on GitLab.

  • Write a new chapter to introduce Python (about 20 to 30 pages). This should not try to impress the reader with fancy features (for instance, newbies may not need to know list comprehensions), but should prepare readers to use a few popular libraries such as Numpy, Matplotlib, and Jupyter to do something useful quickly.

  • Perform a general read-through to find outdated material and suggest small additions.

If you are interested in contributing or would like to know more, please get in touch with Andy Oram at andyo@praxagora.com. Andy has generously volunteered his time to edit the book and coordinate the project.

18 April, 2019 05:49PM

April 17, 2019

gnuastro @ Savannah

Gnuastro 0.9 released

The 9th release of GNU Astronomy Utilities (Gnuastro) is now available for download. Please see the announcement for details.

17 April, 2019 05:54PM by Mohammad Akhlaghi

FSF Events

Richard Stallman - "Computing, Freedom, and Privacy" (Lausanne, Switzerland)

The way digital technology is developing, it threatens our freedom, within our computers and in the internet. What are the threats? What must we change?

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

Location: auditoire 1031, bâtiment Anthropole (E 6.584301426, N 46.52366542) (métro UNIL-Chamberonne), Université de Lausanne (UNIL), CH-1015, Lausanne, Switzerland

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

17 April, 2019 01:05PM

April 14, 2019

GNU Hackers Meeting

Malfunction in ghm-planning (at) gnu.org

Due to a problem in the alias configuration, mails sent to ghm-planning before Sun Apr 14 8:00 CEST have been silently dropped.

If you sent a registration email and/or a talk proposal for the GHM 2019, please resend it.

Sorry for the inconvenience!

14 April, 2019 07:56AM by Jose E. Marchesi

April 12, 2019

GNU Hackers' Meeting 2019 in Madrid

Twelve years after it's first edition in Orense, the GHM is back to Spain! This time, we will be gathering in the nice city of Madrid for hacking, learning and meeting each other.

The event will have place from Wednesday 4 September to Friday 6
September, 2019.

Please visit http://www.gnu.org/ghm/2019 for more information on the venue and instructions on how to register and propose talks.

The website will be updated as we complete the schedule and the organizational details, so stay tuned!

12 April, 2019 08:03PM by Jose E. Marchesi

April 08, 2019

FSF Blogs

LibrePlanet 2019 wrap-up: Building the free software utopia

From the time of free software's inception, with Richard Stallman's announcement of the GNU Project in 1984, community has been a central part of its philosophy: we must be free to choose to share any software we use or create. Stallman wrote, "I consider that the golden rule requires that if I like a program I must share it with other people who like it," and from this point concluded that we must always be permitted to share our discoveries and innovations with others, in order to make their computing and their lives easier and better. Software that is free always has benefits beyond the individual, and the free software movement depends on a vibrant, ever-changing, committed pool of developers, activists, users, and enthusiasts to keep the dream alive and the movement growing.

Every year, the LibrePlanet conference brings together many members of that movement to celebrate our achievements, strategize how to deal with our setbacks, show off new ideas, and decide what new frontiers we will trailblaze together next. The 2019 conference included many introductions to, and updates from, new and familiar projects, discussions on copyleft and security, and explorations of free software in the business world, but one compelling theme was woven through both days of the conference: how do we maintain and increase the health of our all-important community?

The winners of the 2018 Free Software Awards, presented during Stallman's keynote speech on Saturday night, both reflected how crucial community engagement and advocacy are to the free software movement. Deborah Nicholson was given the Award for the Advancement of Free Software, recognizing her position as an exceptional opinion leader, activist, and community advocate. Her speech on Sunday, "Free software/utopia," emphasized her efforts to consciously sustain a positive development environment: she pointed out that even extremely dedicated contributors to a project can ruin the whole thing if they insist on negative and insulting behavior. If the free software movement is to grow, it must attract and maintain newcomers, and that means insisting on good behavior.

The Award for Projects of Social Benefit also reflected the community-building theme: the winner, OpenStreetMap, is a free, editable map of the world that owes its breadth and utility to the efforts of over one million volunteer community members. It's an amazing example of how huge numbers of motivated people can be inspired to do tremendous good together, and in addition to the obvious ethical benefit of it being free software, it's also helped to provide priceless information to humanitarian efforts, like the disaster response after the 2010 Haiti earthquake and after Hurricane Maria devastated Puerto Rico in 2017.

Other talks that explored aspects of the free software community included:

  • "Hackerspace Rancho ElectrĂłnico," in which activists Martha Esperilla and StefanĂ­a Acevedo described their radical hackerspace, which welcomes hackers, hacktivists, and free software users at all levels for workshops, talks, meetings, working groups, and more;
  • "Sharing global opportunities for new developers in the Wikipedia community," in which Srishti Sethi provided a gentle introduction to the world of Wikimedia for newcomers, with plenty of pointers on how to get started;
  • "Governing the software commons," in which Shauna Gordon-McKeon delineated some of the many forms of governance structures that dictate how people can and can't participate in the building and proliferation of free software projects;
  • "Sparking change: What free software can learn from successful social movements," in which Mary Kate Fain suggested lessons of past movements to use to mobilize our wider communities to fight against the abuses of proprietary software; and
  • "Meta-rules for codes of conduct," in which Katheryn Sutter explored the ways in which free software enthusiasts might be communicating poorly with each other, and how to create codes of conduct to enable us all to understand each other and treat each other with respect.

The sobering and inspiring closing keynote from Micky Metts, a prominent free software activist and member of the Agaric Design Collective, the MayFirst.org leadership committee, and Drupal, also emphasized gathering our forces to fight the evils of proprietary software. She delineated the increasingly sinister ways in which corporate technologies are creeping into our private lives, arguing that scenarios like Orwell's 1984 are closer than ever to fruition, and will keep advancing if we don't fight back with a bold new tide of free software and other creative solutions.

With all of this urgency, it's easy to forget that one of the key aspects of free software that attracts newcomers and keeps us in the fold is the joy of discovery and the fun of invention made possible when you have complete free reign over the code you use. And what better example of free software-powered fun is there than gigantic model rockets? Free software veteran Bdale Garbee opened up day two of the conference with the keynote speech, "Freedom is fun!", where we learned how Bdale has used free software design tools to build everything from rockets to his son's guitar. Free software is necessary to save privacy and democracy -- but there's a reason why so many people like to tinker with it in their free time, and that's because they enjoy it.

Between Saturday and Sunday, there were 66 speakers in over 40 sessions, with 53 volunteers and over 341 total participants. We also gave away raffle prizes generously donated by Vikings GmBH; Technoethical; Aleph Objects; ThinkPenguin; JMP; Altus Metrum, LLC; and Aeronaut, and we're extremely grateful to our generous sponsors, Red Hat and Private Internet Access. If you were at the conference or participating remotely, please fill out our feedback form by April 9 to let us know how to make next year even better. And whether you participated or not, keep an eye on our MediaGoblin instance for photos from the event, and videos of nearly every speech, coming soon!

Finally: while the LibrePlanet conference only happens once a year, the free software community needs your participation year-round. You can find local LibrePlanet teams at the LibrePlanet wiki, and if you're not already an FSF associate member, joining the FSF enables you to support the fight for software freedom and sustain the free software community all year round!

08 April, 2019 07:31PM

April 05, 2019

Summer internships at the FSF! Apply by April 30

Do you believe that free software is crucial to a free society? Do you want to help people learn why free software matters, and how to use it? Do you want to dig deep into software freedom issues like copyleft, Digital Restrictions Management (DRM), or surveillance and encryption? Or, do you want to learn systems administration, design, or other tasks using only free software?

These positions are unpaid, but the FSF will provide any appropriate documentation you might need to receive funding and school credit from outside sources. We also provide lunch expense reimbursement and a monthly transportation pass that will give you free access to local subways and buses (MBTA). We place an emphasis on providing hands-on educational opportunities for interns, in which they work closely with staff mentors on projects that match their skills and interest.

Interns can choose from the following fields of work:

Summer internships start in June and typically run for a period of twelve weeks. We prefer candidates who are able to work in our Boston office, but may consider remote interns. The deadline to apply is April 30.

To apply, send a letter of interest and a resume with two references to hiring@fsf.org. Please send all application materials in free software-friendly formats like .pdf, .odt, and .txt. Use "Summer internship application" as the subject line of your email. Please include links to your writing, design, or coding work if it applies -- personal, professional, or class work is acceptable. URLs are preferred, though email attachments in free formats are acceptable, too. Learn more about our internships, and direct any questions to info@fsf.org.

05 April, 2019 02:35PM

April 04, 2019

GNUnet News

2019-04-04: GNUnet 0.11.2 released

2019-04-04: GNUnet 0.11.2 released

We are pleased to announce the release of GNUnet 0.11.2.

This is a bugfix release for 0.11.0, mostly fixing minor bugs, improving documentation and fixing various build issues. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.2 release is still only suitable for early adopters with some reasonable pain tolerance.

Download links

(gnunet-gtk and gnunet-fuse were not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.2.)

Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try http://ftp.gnu.org/gnu/gnunet/

Note that GNUnet is now started using gnunet-arm -s. GNUnet should be stopped using gnunet-arm -e.

Noteworthy changes in 0.11.2

  • gnunet-qr was rewritten in C, removing our last dependency on Python 2.x
  • REST and GNS proxy configuration options for address binding were added
  • gnunet-publish by default no longer includes creation time
  • Unreliable message ordering logic in CADET was fixed
  • Various improvements to build system and documentation

The above is just the short list, our bugtracker lists 14 individual issues that were resolved since 0.11.0.

Known Issues

  • There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.
  • There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.
  • There are known moderate design issues in FS that also impact usability and performance.
  • There are minor implementation limitations in SET that create unnecessary attack surface for availability.
  • The RPS subsystem remains experimental.
  • Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.

In addition to this list, you may also want to consult our bug tracker at bugs.gnunet.org which lists about 190 more specific issues.

Thanks

This release was the work of many people. The following people contributed code and were thus easily identified: ng0, Christian Grothoff, Hartmut Goebel, Martin Schanzenbach, Devan Carpenter, Naomi Phillips and Julius Bünger.

04 April, 2019 01:00PM

April 03, 2019

2019-04-03: GNUnet 0.11.1 released

2019-04-03: GNUnet 0.11.1 released

We are pleased to announce the release of GNUnet 0.11.1.

This is a bugfix release for 0.11.0, mostly fixing minor bugs, improving documentation and fixing various build issues. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.1 release is still only suitable for early adopters with some reasonable pain tolerance.

Download links

(gnunet-gtk and gnunet-fuse were not released again, as there were no changes and the 0.11.0 versions are expected to continue to work fine with gnunet-0.11.1.)

Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try http://ftp.gnu.org/gnu/gnunet/

Note that GNUnet is now started using gnunet-arm -s. GNUnet should be stopped using gnunet-arm -e.

Noteworthy changes in 0.11.1

  • gnunet-qr was rewritten in C, removing our last dependency on Python 2.x
  • REST and GNS proxy configuration options for address binding were added
  • gnunet-publish by default no longer includes creation time
  • Unreliable message ordering logic in CADET was fixed
  • Various improvements to build system and documentation

The above is just the short list, our bugtracker lists 14 individual issues that were resolved since 0.11.0.

Known Issues

  • There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.
  • There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.
  • There are known moderate design issues in FS that also impact usability and performance.
  • There are minor implementation limitations in SET that create unnecessary attack surface for availability.
  • The RPS subsystem remains experimental.
  • Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.

In addition to this list, you may also want to consult our bug tracker at bugs.gnunet.org which lists about 190 more specific issues.

Thanks

This release was the work of many people. The following people contributed code and were thus easily identified: ng0, Christian Grothoff, Hartmut Goebel, Martin Schanzenbach, Devan Carpenter, Naomi Phillips and Julius Bünger.

03 April, 2019 04:00PM

March 29, 2019

FSF Events

Richard Stallman - "Copyright vs Community" (Copenhagen, Denmark)

Copyright developed in the age of the printing press, and was designed to fit with the system of centralized copying imposed by the printing press. But the copyright system does not fit well with computer networks, and only draconian punishments can enforce it.

The global corporations that profit from copyright are lobbying for draconian punishments, and to increase their copyright powers, while suppressing public access to technology. But if we seriously hope to serve the only legitimate purpose of copyright–to promote progress, for the benefit of the public–then we must make changes in the other direction.

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

Location: exact location to be determined, Danmarks Tekniske Universitet (Technical University of Denmark (DTU)), København, Danmark

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

Registration, which can be done anonymously, while not required, is appreciated; it will help us ensure we can accommodate all the people who wish to attend.

29 March, 2019 07:12PM

Richard Stallman - "Computing, freedom, and privacy" (Copenhagen, Denmark)

The way digital technology is developing, it threatens our freedom, within our computers and in the internet. What are the threats? What must we change?

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

Location: Lundbeckfond Auditorium, Københavns Biocenter (Copenhagen Biocenter), Københavns Universitet (University of Copenhagen (KU)), Ole Maaløes Vej 5, DK-2200 København N, Danmark

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

Registration, which can be done anonymously, while not required, is appreciated; it will help us ensure we can accommodate all the people who wish to attend.

29 March, 2019 07:05PM

Richard Stallman to speak in Copenhagen, Denmark

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

Location: exact location to be determined, IT-Universitetet i København (IT University of Copenhagen (ITU)), København, Danmark

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

Registration, which can be done anonymously, while not required, is appreciated; it will help us ensure we can accommodate all the people who wish to attend.

29 March, 2019 06:55PM

GNU Guix

Connecting reproducible deployment to a long-term source code archive

GNU Guix can be used as a “package manager” to install and upgrade software packages as is familiar to GNU/Linux users, or as an environment manager, but it can also provision containers or virtual machines, and manage the operating system running on your machine.

One foundation that sets it apart from other tools in these areas is reproducibility. From a high-level view, Guix allows users to declare complete software environments and instantiate them. They can share those environments with others, who can replicate them or adapt them to their needs. This aspect is key to reproducible computational experiments: scientists need to reproduce software environments before they can reproduce experimental results, and this is one of the things we are focusing on in the context of the Guix-HPC effort. At a lower level, the project, along with others in the Reproducible Builds community, is working to ensure that software build outputs are reproducible, bit for bit.

Work on reproducibility at all levels has been making great progress. Guix, for instance, allows you to travel back in time. That Guix can travel back in time and build software reproducibly is a great step forward. But there’s still an important piece that’s missing to make this viable: a stable source code archive. This is where Software Heritage (SWH for short) comes in.

When source code vanishes

Guix contains thousands of package definitions. Each package definition specifies the package’s source code URL and hash, the package’s dependencies, and its build procedure. Most of the time, the package’s source code is an archive (a “tarball”) fetched from a web site, but more and more frequently the source code is a specific revision checked out directly from a version control system.

The obvious question, then, is: what happens if the source code URL becomes unreachable? The whole reproducibility endeavor collapses when source code disappears. And source code does disappear, or, even worse, it can be modified in place. At GNU we’re doing a good job of having stable hosting that keeps releases around “forever”, unchanged (modulo rare exceptions). But a lot of free software out there is hosted on personal web pages with a short lifetime and on commercial hosting services that come and go.

By default Guix would look up source code by hash in the caches of our build farms. This comes for free: the “substitute” mechanism extends to all “build artifacts”, including downloads. However, with limited capacity, our build farms do not keep all the source code of all the packages for a long time. Thus, one could very well find oneself unable to rebuild a package months or years later, simply because its source code disappeared or moved to a different location.

Connecting to the archive

It quickly became clear that reproducible builds had “reproducible source code downloads”, so to speak, as a prerequisite. The Software Heritage archive is the missing piece that would finally allow us to reproduce software environments years later in spite of the volatility of code hosting sites. Software Heritage’s mission is to archive essentially “all” the source code ever published, including version control history. Its archive already periodically ingests release tarballs from the GNU servers, repositories from GitHub, packages from PyPI, and much more.

Software Heritage logo

We quickly settled on a scheme where Guix would fall back to the Software Heritage archive whenever it fails to download source code from its original location. That way, package definitions don’t need to be modified: they still refer to the original source code URL, but the downloading machinery transparently goes to Software Heritage when needed.

There are two types of source code downloads in Guix: tarball downloads, and version control checkouts. In the former case, resorting to Software Heritage is easy: Guix knows the SHA256 hash of the tarball so it can look it up by hash using the /content endpoint of the archive’s interface.

Fetching version control checkouts is more involved. In this case, the downloader would first resolve the commit identifier to obtain a Software Heritage revision. The actual code for that revision is then fetched through the vault.

The vault conveniently allows users to fetch the tarball corresponding to a revision. However, not all revisions are readily available as tarballs (understandably), so the vault has an interface that allows you to request the “cooking” of a specific revision. Cooking is asynchronous and can take some time. Currently, if a revision hasn’t been cooked yet, the Guix download machinery will request it and wait until it is available. The process can take some time but will eventually succeed.

Success! At this point, we have essentially bridged the gap between the stable archive that Software Heritage provides and the reproducible software deployment pipeline of Guix. This code was integrated in November 2018, making it the first free software distribution backed by a stable archive.

The challenges ahead

This milestone was encouraging: we had seemingly achieved our goal, but we also knew of several shortcomings. First, even though the software we package is still primarily distributed as tarballs, Software Heritage keeps relatively few of these tarballs. Software Heritage does ingest tarballs, notably those found on the GNU servers, but the primary focus is on preserving complete version control repositories rather than release tarballs.

It is not yet clear to us what to do with plain old tarballs. On one hand, they are here and cannot be ignored. Furthermore, some provide artifacts that are not in version control, such as configure scripts, and often enough they are accompanied by a cryptographic signature from the developers that allows recipients to authenticate the code—an important piece of information that’s often missing from version control history. On the other hand, version control tags are increasingly becoming the mechanism of choice to distribute software releases. It may be that tags will become the primary mechanism for software release distribution soon enough.

Version control tags turn out not to be ideal either, because they’re mutable and per-repository. Conversely, Git commit identifiers are unambiguous and repository-independent because they’re essentially content-addressed, but our package definitions often refer to tags, not commits, because that makes it clearer that we’re providing an actual release and not an arbitrary revision (this is another illustration of Zooko’s triangle).

This leads to another limitation that stems from the mismatch between the way Guix and Software Heritage compute hashes over version control checkouts: both compute a hash over a serialized representation of the directory, but they serialize the directory in a different way (SWH serializes directories as Git trees, while Guix uses “normalized archives” or Nars, the format the build daemon manipulates, which is inherited from Nix.) That prevents Guix from looking up revisions by content hash. The solution will probably involve changing Guix to support the same method as Software Heritage, and/or adding Guix’s method to Software Heritage.

Having to wait for “cooking” completion can also be problematic. The Software Heritage team is investigating the possibility to automatically cook all version control tags. That way, relevant revisions would almost always be readily available through the vault.

Similarly, we have no guarantee that software provided by Guix is available in the archive. Our plan is to extend Software Heritage such that it would periodically archive the source code of software packaged by Guix.

Going further

In the process of adding support for Software Heritage, Guix gained Guile bindings to the Software Heritage HTTP interface. Here’s a couple of things we can do:

(use-modules (guix swh))

;; Check whether SWH has ever crawled our repository.
(define o (lookup-origin "https://git.savannah.gnu.org/git/guix.git"))
⇒ #<<origin> id: 86312956 …>

;; It did! When was its last visit?
(define last-visit
  (first (origin-visits o)))

(date->string (visit-date last-visit))
⇒ "Fri Mar 29 10:07:45Z 2019"

;; Does it have our “v0.15.0” Git tag?
(lookup-origin-revision "https://git.savannah.gnu.org/git/guix.git" "v0.15.0")
⇒ #<<revision> id: "359fdda40f754bbf1b5dc261e7427b75463b59be" …>

Guix itself is a Guile library so when we combine the two, there are interesting things we can do:

(use-modules (guix) (guix swh)
             (gnu packages base)
             (gnu packages golang))

;; This is our GNU Coreutils package.
coreutils
⇒ #<package coreutils@8.30 gnu/packages/base.scm:342 1c67b40>

;; Does SWH have its tarball?
(lookup-content (origin-sha256 (package-source coreutils))
                "sha256")
⇒ #<<content> checksums: (("sha1" …)) data-url: …>

;; Our package for HashiCorp’s Configuration Language (HCL) is
;; built from a Git commit.
(define commit
  (git-reference-commit
    (origin-uri (package-source go-github-com-hashicorp-hcl))))

;; Is this particular commit available in the archive?
(lookup-revision commit)
⇒ #<<revision> id: "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8" …>

We’re currently using a subset of this interface, but there’s certainly more we could do. For example, we can compute archive coverage of the Guix packages; we can also request the archival of each package’s source code via the “save code” interface—though all this is subject to rate limiting.

Wrap-up

Software Heritage support in Guix creates a bridge from the stable source code archive to reproducible software deployment with complete provenance tracking. For the first time it gives us a software package distribution that can be rebuilt months or years later. This is particularly beneficial in the context of reproducible science: finally we can describe reproducible software environments, a prerequisite for reproducible computational experiments.

Going further, we can provide a complete software supply tool chain with provenance tracking that links revisions in the archive to bit-reproducible build artifacts produced by Guix. Oh and Guix itself is archived, so we have this meta-level where we could link Guix revisions to the revisions of packages it provides… There are still technical challenges to overcome, but that vision is shaping up.

About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.

29 March, 2019 02:50PM by Ludovic Courtès

March 28, 2019

osip @ Savannah

osip2 [5.1.0] & exosip2 [5.1.0]

I have released today newer versions for both osip2 & exosip2.

osip is very mature. There was only one tiny feature change to allow more flexible NAPTR request (such as ENUM). A very few bugs were discovered and fixed.

eXosip is also mature. However a few bugs around PRACK and retransmissions were reported and fixed. openssl support has also been updated to support more features, be more flexible and support all openssl versions. ENUM support has been introduced this year. See the ChangeLog for more!

In all case, upgrading is strongly recommanded. API changes are documented in the ChangeLog: there is not much!

28 March, 2019 07:50PM by Aymeric MOIZARD

March 27, 2019

FSF Blogs

GNU Spotlight with Mike Gerwitz: 13 new GNU releases!

For announcements of most new GNU releases, subscribe to the info-gnu mailing list: https://lists.gnu.org/mailman/listinfo/info-gnu.

To download: nearly all GNU software is available from https://ftp.gnu.org/gnu/, or preferably one of its mirrors from https://www.gnu.org/prep/ftp.html. You can use the URL https://ftpmirror.gnu.org/ to be automatically redirected to a (hopefully) nearby and up-to-date mirror.

A number of GNU packages, as well as the GNU operating system as a whole, are looking for maintainers and other assistance: please see https://www.gnu.org/server/takeaction.html#unmaint if you'd like to help. The general page on how to help GNU is at https://www.gnu.org/help/help.html.

If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see https://www.gnu.org/help/evaluation.html.

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

27 March, 2019 08:50PM

nano @ Savannah

GNU nano 4.0 was released

This version breaks with the close compatibility with Pico: nano no longer hard-wraps the current line by default when it becomes overlong, and uses smooth scrolling by default, plus two other minor changes. Further, in 3.0 indenting and unindenting became undoable, and now, with 4.0, also justifications have become undoable (to any depth), making that all of the user's actions are now undoable and redoable (with the M-U and M-E keystrokes).

27 March, 2019 06:36PM by Benno Schulenberg

March 25, 2019

FSF News

FSF job opportunity: campaigns manager

Reporting to the executive director, the campaigns manager works on our campaigns team to lead, plan, carry out, evaluate, and improve the FSF's advocacy and education campaigns. The team also works closely with other FSF departments, including licensing, operations, and tech. The position will start by taking responsibility for existing campaigns in support of the GNU Project, free software adoption, free media formats, and freedom on the network; and against Digital Restrictions Management (DRM), software patents, and proprietary software.

Examples of job responsibilities include, but are not limited to:

  • Planning and participating in online and physical actions to achieve our campaign goals;
  • Setting specific goals for each action and then measuring our success in achieving them;
  • Doing the writing and messaging work needed to effectively explain our campaigns and motivate people to support them;
  • Overseeing or doing the graphic design work to make our campaigns and their Web sites attractive;
  • Supporting and attending special events, including community-building activities and our annual LibrePlanet conference;
  • Assisting with annual online and mail fundraising efforts;
  • Working with our tech team on the technology choices and deployments -- especially of Web publication systems like Drupal and Plone -- for our campaign sites; and
  • Being an approachable, humble, and friendly representative of the FSF to our worldwide community of existing supporters and the broader public, both in person and online.

Ideal candidates have at least three to five years of work experience in online issue advocacy and free software; proficiency and comfort with professional writing and publications preferred. Because the FSF works globally and seeks to have our materials distributed in as many languages as possible, multilingual candidates will have an advantage. With our small staff of fourteen, each person makes a clear contribution. We work hard, but offer a humane and fun work environment at an office located in the heart of downtown Boston. The FSF is a mature but growing organization that provides great potential for advancement; existing staff get the first chance at any new job openings.

Benefits and salary

This job is a union position that must be worked on-site at the FSF's downtown Boston office. The salary is fixed at $63,253/year and is non-negotiable. Other benefits include:

  • Full individual or family health coverage through Blue Cross/Blue Shield's HMO Blue program;
  • Subsidized dental plan;
  • Four weeks of paid vacation annually;
  • Seventeen paid holidays annually;
  • Weekly remote work allowance;
  • Public transit commuting cost reimbursement;
  • 403(b) program through TIAA with employer match;
  • Yearly cost-of-living pay increases (based on government guidelines);
  • Healthcare expense reimbursement budget;
  • Ergonomic budget;
  • Relocation (to Boston area) expense reimbursement;
  • Conference travel and professional development opportunities; and
  • Potential for an annual performance bonus.

Application instructions

Applications must be submitted via email to hiring@fsf.org. The email must contain the subject line "Campaigns manager". A complete application should include:

  • Cover letter, including a brief example of a time you motivated and organized others to take action on an issue important to you;
  • Resume;
  • Two recent writing samples;
  • Links to any talks you have given (optional); and
  • Graphic design samples (optional).

All materials must be in a free format (such as plain text, PDF, or OpenDocument). Email submissions that do not follow these instructions will probably be overlooked. No phone calls, please.

Applications will be reviewed on a rolling basis until the position is filled. To guarantee consideration, submit your application by Sunday, April 28th.

The FSF is an equal opportunity employer and will not discriminate against any employee or application for employment on the basis of race, color, marital status, religion, age, sex, sexual orientation, national origin, handicap, or any other legally protected status recognized by federal, state or local law. We value diversity in our workplace.

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 fsf.org and gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at https://donate.fsf.org. We are based in Boston, MA, USA.

25 March, 2019 08:15PM

March 24, 2019

FSF Blogs

LibrePlanet Day 2: Welcoming everyone to the world of free software

Bdale Garbee with a microphone speaking at a podium at the LibrePlanet 2019 conference

One of the most important questions that free software is facing in the year 2019 is: how do we make the world of free software accessible to broader audiences? Vast numbers of people are using software every day -- how do we relate our message to something that is important to them, and then welcome them into our community? In order to achieve our mission, we need to invite people and get them to use, create, and proliferate ethical software, until all technology is free.

Many of the best talks at LibrePlanet 2019 echoed a message for the free software community to focus on building a culture that's respectful and encouraging for new people, respecting a wide variety of personalities and values. The first way to get people invested in the culture of free software is to make it fun, and that was the focus of the morning keynote, "Freedom is fun!", delivered by free software veteran Bdale Garbee. A prominent name in the free software world for decades, Bdale talked about how he has a habit of turning all of his hobbies into free software projects, starting with model rockets.

Bdale Garbee with giant model rocket

He detailed how some of the most prominent changes made to free software are made by people working through one particular problem and creating a unique solution that is valuable to them. The joy of experimenting and the magic of constantly improving systems through "people scratching their unique itches" provide far greater benefits than any company could ever create through the closed model of proprietary software. Bdale also stressed the value of inviting new people, as well as thanking people for their contributions. He urged all free software users and contributors to have fun, use your hobbies and interests as a way to experiment and develop, and to not hoard these new ideas... instead, share them!

close-up of an exhibitor table with computer parts laid out

Other morning sessions included Kate Chapman's presentation on the history and future of Free Software Award-winning OpenStreetMap, as well as Micah Altman's introduction to the important possibilities presented by the free software redistricting application DistrictBuilder. In another talk, on "Right to Repair and the DMCA," Nathan Proctor outlined how our right to repair and maintain products is a free software issue as well as an environmental issue. The throwaway culture is a direct consequence of the manufacturer's choice to restrict diagnostics and repair of any product owned by the individual.

In her talk on the "meta-rules for codes of conduct," Katheryn Sutter returned to the theme of inclusiveness by prying open many distinctions in the ways that free software enthusiasts and other communities can communicate well, and communicate poorly, and enumerating some of the ways we can come together in respectful and productive ways. Although we all agree on many values within the free software community, we may disagree on others, and it's hard to create codes of conduct that will satisfy everyone, across a variety of experiences and backgrounds. The idea of the code of conduct, then, is not to eliminate all disagreement or stifle participants; Sutter emphasized that the goal is to "create and protect safe places for conflict."

FSF board member Kat Walsh and speaker Alexandre Oliva posing on a bench

Sunday afternoon, Free Software Award winner and community-building champion Deborah Nicholson delivered a talk on "Free software/utopia," using examples from her work on GNU MediaGoblin, Outreachy, and other free software initiatives to demonstrate how to create and maintain projects that attract and welcome newcomers, and reward the time and care invested by contributors. She highlighted her efforts to consciously sustain a positive development environment; in her opinion, it's better for a project to lose one big contributor whose behavior is detrimental to the community than any small contributor who treats others with consideration.

Next came the Lightning Talks session, which provided attendees with an opportunity to give a five-minute presentation on their work and their ideas. Topics ranged from how we're facing an existential crisis because fewer hardware and firmware products fully support the use of free software, to how Purism managed to design a fully functioning Librem 5 Dev Kit with 100% free software. Projects shared included Mission Possible, a primary school program teaching children the four freedoms the FSF promotes, and Vegan on a Desert Island, a free software video game project answering the common question of what a vegan would do when stranded on a desert island. Blueprint, a team of UC Berkeley students working pro bono for nonprofits, talked about the mobile app that they're building for the Free Software Foundation. All of these talks gave a glimpse into the knowledge and creativity shared by the free software community -- the scheduled conference talks only scratch the surface of all of the multifaceted work that our supporters do every day!

Finally, the day ended on a bracing and sobering note with a keynote speech from Micky Metts, a prominent free software activist and member of the Agaric Design Collective, the MayFirst.org leadership committee, and Drupal. In her speech "How can we prevent the Orwellian 1984 digital world?", Micky talked about what's truly at stake if we fail in our efforts to make all software free: corporate technological entities already are intruding into our private lives in some truly terrifying ways, and the situation will only get worse if our movement doesn't grow and change for the better. Ultimately, free software must form the foundation of a movement to regain our personal power.

LibrePlanet volunteer captain Matt Lavallee posed in front of a staircase with a large group of LibrePlanet volunteers in matching purple LibrePlanet shirts

Over 341 people participated in LibrePlanet 2019, which was powered by 53 amazing volunteers, who ensured that everything from video streaming to IRC chats went smoothly. We also gave away raffle prizes generously donated by Vikings GmBH, Technoethical, Aleph Objects, ThinkPenguin, JMP, Altus Metrum, LLC, and Aeronaut, and we're extremely grateful to our generous sponsors, including Red Hat and Private Internet Access.

Between Saturday and Sunday, there were 66 speakers and over 40 sessions. Videos will be posted soon at https://media.libreplanet.org, so keep an eye out for announcements -- whether you were here in Cambridge, watched the livestream, or missed LibrePlanet entirely, there's so much more you'll want to see! And if you were at the conference, please fill out the feedback form, so we can make next year's LibrePlanet even better.

Photo credits: Copyright Š 2019 Free Software Foundation, by Madi Muhlberg, photos licensed under CC-BY 4.0.

24 March, 2019 10:50PM

March 23, 2019

FSF News

OpenStreetMap and Deborah Nicholson win 2018 FSF Awards

BOSTON, Massachusetts, USA -- Saturday, March 23, 2019 -- The Free Software Foundation (FSF) recognizes OpenStreetMap with the 2018 Free Software Award for Projects of Social Benefit and Deborah Nicholson with the Award for the Advancement of Free Software. FSF president Richard M. Stallman presented the awards today in a yearly ceremony during the LibrePlanet 2019 conference at the Massachusetts Institute of Technology (MIT).

The Award for Projects of Social Benefit is presented to a project or team responsible for applying free software, or the ideas of the free software movement, to intentionally and significantly benefit society. This award stresses the use of free software in service to humanity.

Richard Stallman with Free Software Awards winners Deborah Nicholson and Kate Chapman

This year the FSF awarded OpenStreetMap and the award was accepted by Kate Chapman, chairperson of the OpenStreetMap Foundation and co-founder of the Humanitarian OpenStreetMap Team (HOT).

OpenStreetMap is a collaborative project to create a free editable map of the world. Founded by Steve Coast in the UK in 2004, OpenStreetMap is built by a community of over one million community members and has found its application on thousands of Web sites, mobile apps, and hardware devices. OpenStreetMap is the only truly global service without restrictions on use or availability of map information.

Stallman emphasized the importance of OpenStreetMap in a time where geotech and geo-thinking are highly prevalent. "It has been clear for decades that map data are important. Therefore we need a free collection of map data. The name OpenStreetMap doesn't say so explicitly, but its map data is free. It is the free replacement that the Free World needs."

Kate thanked the Free Software Foundation and the large community of contributors of OpenStreetMap. "In 2004, much of the geospatial data was either extraordinarily expensive or unavailable. Our strong community of people committed to free and open map information has changed that. Without the leadership before us from groups such as the Free Software Foundation, we would not have been able to grow and develop to the resource we are today."

The Award for the Advancement of Free Software goes to an individual who has made a great contribution to the progress and development of free software through activities that accord with the spirit of free software.

Richard Stallman presenting Free Software Award to Deborah Nicholson

This year it was presented to Deborah Nicholson, who, motivated by the intersection of technology and social justice, advocates access to political information, unfettered freedom of speech and assembly, and civil liberties in our increasingly digital world. She joined the free software movement in 2006 after years of local organizing for free speech, marriage equality, government transparency and access to the political process. The Free Software Foundation recognizes her as an exceptional opinion leader, activist and community advocate.

Deborah is the director of community operations at the Software Freedom Conservancy, where she supports the work of its member organizations and facilitates collaboration with the wider free software community. She has served as the membership coordinator for the Free Software Foundation, where she created the Women's Caucus to increase recruitment and retention of women in the free software community. She has been widely recognized for her volunteer work with GNU MediaGoblin, a federated media-publishing platform, and OpenHatch, free software's welcoming committee. She continues her work as a founding organizer of the Seattle GNU/Linux Conference, an annual event dedicated to surfacing new voices and welcoming new people to the free software community.

Stallman praised her body of work and her unremitting and widespread contributions to the free software community. "Deborah continuously reaches out to, and engages, new audiences with her message on the need for free software in any version of the future."

Deborah continued: "Free software is critically important for autonomy, privacy and a healthy democracy -- but it can't achieve that if it is only accessible for some, or if it is alienating for large swathes of people. That's why it's so important that we continue surfacing new voices, making room for non-coders and welcoming new contributors into the free software community. I also find that in addition to helping us build a better, bigger movement, the work of welcoming is extremely rewarding."

Nominations for both awards are submitted by members of the public, then evaluated by an award committee composed of previous winners and FSF founder and president Richard Stallman.

More information about both awards, including the full list of previous winners, can be found at https://www.fsf.org/awards.

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 https://fsf.org and https://gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at https://my.fsf.org/donate. Its headquarters are in Boston, MA, USA.

More information about the FSF, as well as important information for journalists and publishers, is at https://www.fsf.org/press.

Media Contacts

John Sullivan
Executive Director
Free Software Foundation
+1 (617) 542 5942
campaigns@fsf.org

Photo credits: Copyright Š 2019 Madi Muhlberg, photos licensed under CC-BY 4.0.

23 March, 2019 11:30PM

OpenStreetMap and Deborah Nicholson win 2019 FSF Awards

BOSTON, Massachusetts, USA -- Saturday, March 23, 2019-- The Free Software Foundation (FSF) recognizes OpenStreetMap with the 2018 Free Software Award for Projects of Social Benefit and Deborah Nicholson with the Award for the Advancement of Free Software. FSF president Richard M. Stallman presented the awards today in a yearly ceremony during the LibrePlanet 2019 conference at the Massachusetts Institute of Technology (MIT).

The Award for Projects of Social Benefit is presented to a project or team responsible for applying free software, or the ideas of the free software movement, to intentionally and significantly benefit society. This award stresses the use of free software in service to humanity.

Richard Stallman with Free Software Awards winners Deborah Nicholson and Kate Chapman

This year the FSF awarded OpenStreetMap and the award was accepted by Kate Chapman, chairperson of the OpenStreetMap Foundation and co-founder of the Humanitarian OpenStreetMap Team (HOT).

OpenStreetMap is a collaborative project to create a free editable map of the world. Founded by Steve Coast in the UK in 2004, OpenStreetMap is built by a community of over one million community members and has found its application on thousands of Web sites, mobile apps, and hardware devices. OpenStreetMap is the only truly global service without restrictions on use or availability of map information.

Stallman emphasized the importance of OpenStreetMap in a time where geotech and geo-thinking are highly prevalent. "It has been clear for decades that map data are important. Therefore we need a free collection of map data. The name OpenStreetMap doesn't say so explicitly, but its map data is free. It is the free replacement that the Free World needs."

Kate thanked the Free Software Foundation and the large community of contributors of OpenStreetMap. "In 2004, much of the geospatial data was either extraordinarily expensive or unavailable. Our strong community of people committed to free and open map information has changed that. Without the leadership before us from groups such as the Free Software Foundation, we would not have been able to grow and develop to the resource we are today."

The Award for the Advancement of Free Software goes to an individual who has made a great contribution to the progress and development of free software through activities that accord with the spirit of free software.

Richard Stallman presenting Free Software Award to Deborah Nicholson

This year it was presented to Deborah Nicholson, who, motivated by the intersection of technology and social justice, advocates access to political information, unfettered freedom of speech and assembly, and civil liberties in our increasingly digital world. She joined the free software movement in 2006 after years of local organizing of free speech, marriage equality, government transparency and access to the political process. The Free Software Foundation recognizes her as an exceptional opinion leader, activist and community advocate.

Deborah is the director of community operations at the Software Freedom Conservancy, where she supports the work of its member organizations and facilitates collaboration with the wider free software community. She has served as the membership coordinator for the Free Software Foundation, where she created the Women's Caucus to increase recruitment and retention of women in the free software community. She has been widely recognized for her volunteer work with GNU MediaGoblin, a federated media-publishing platform, and OpenHatch, free software's welcoming committee. She continues her work as a founding organizer of the Seattle GNU/Linux Conference, an annual event dedicated to surfacing new voices and welcoming new people to the free software community.

Stallman praised her body of work and her unremitting and widespread contributions to the free software community. "Deborah continuously reaches out to, and engages, new audiences with her message on the need for free software in any version of the future."

Deborah continued: "Free software is critically important for autonomy, privacy and a healthy democracy -- but it can't achieve that if it is only accessible for some, or if it is alienating for large swathes of people. That's why it's so important that we continue surfacing new voices, making room for non-coders and welcoming new contributors into the free software community. I also find that in addition to helping us build a better, bigger movement, the work of welcoming is extremely rewarding."

Nominations for both awards are submitted by members of the public, then evaluated by an award committee composed of previous winners and FSF founder and president Richard Stallman.

More information about both awards, including the full list of previous winners, can be found at https://www.fsf.org/awards.

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 https://fsf.org and https://gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at https://my.fsf.org/donate. Its headquarters are in Boston, MA, USA.

More information about the FSF, as well as important information for journalists and publishers, is at https://www.fsf.org/press.

Media Contacts

John Sullivan
Executive Director
Free Software Foundation
+1 (617) 542 5942
campaigns@fsf.org

Photo credits: Copyright Š 2019 Madi Muhlberg, photos licensed under CC-BY 4.0.

23 March, 2019 10:59PM

March 21, 2019

parallel @ Savannah

GNU Parallel 20190322 ('FridayforFuture') released

GNU Parallel 20190322 ('FridayforFuture') has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/

The change in signalling makes this release experimental for users that send SIGTERM to GNU Parallel.

Quote of the month:

There are so many things to love about GNU parallel. You could honestly teach a whole parallel computing course with it and never have to leave it for a real language.
-- Aubrey Bailey @DNAvinci@twitter

New in this release:

  • SIGTERM is changed to SIGHUP, so sending SIGHUP will make GNU Parallel start no more jobs, but wait for running jobs to finish.
  • SIGTERM SIGTERM is changed to SIGTERM, so sending SIGTERM will make GNU Parallel kill all running jobs.
  • GNU Parallel now includes a cheat sheet: parallel_cheat.pdf
  • Bug fixes and man page updates.

Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

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

About GNU Parallel

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

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

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

You can find more about GNU Parallel at: http://www.gnu.org/s/parallel/

You can install GNU Parallel in just 10 seconds with:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Watch the intro video on http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

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

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

O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014.

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
  • Get the merchandise https://gnuparallel.threadless.com/designs/gnu-parallel
  • 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 programs that use GNU Parallel for research:

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

If GNU Parallel saves you money:

About GNU SQL

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.

21 March, 2019 10:15PM by Ole Tange

FSF News

Seven new devices from ThinkPenguin, Inc. now FSF-certified to Respect Your Freedom

BOSTON, Massachusetts, USA -- Thursday, March 21st, 2019 -- The Free Software Foundation (FSF) today awarded Respects Your Freedom (RYF) certification to seven devices from ThinkPenguin, Inc.: The Penguin Wireless G USB Adapter (TPE-G54USB2), the Penguin USB Desktop Microphone for GNU / Linux (TPE-USBMIC), the Penguin Wireless N Dual-Band PCIe Card (TPE-N300PCIED2), the PCIe Gigabit Ethernet Card Dual Port (TPE-1000MPCIE), the PCI Gigabit Ethernet Card (TPE-1000MPCI), the Penguin 10/100 USB Ethernet Network Adapter v1 (TPE-100NET1), and the Penguin 10/100 USB Ethernet Network Adapter v2 (TPE-100NET2). The RYF certification mark means that these products meet the FSF's standards in regard to users' freedom, control over the product, and privacy.

TPE-N300PCIED2_2

These are not the first devices from ThinkPenguin to receive RYF certification. This fresh batch joins four previously certified devices in the ThinkPenguin lineup. With these additions, ThinkPenguin becomes one of the largest retailers of RYF-certified devices.

"I'm excited about this announcement, because this collection of devices includes some for which there previously was no certified option. These certifications get us closer to our goal of making sure there is a certified device in each product category, to meet all users' needs," said the FSF's executive director, John Sullivan.

Today's certification broadly expands the availability of RYF-certified peripheral devices. The Penguin Wireless G USB Adapter and Penguin Wireless N Dual-Band PCIe Card enable wireless network connectivity. The PCIe Gigabit Ethernet Card Dual Port, PCI Gigabit Ethernet Card, Penguin 10/100 USB Ethernet Network Adapter v1, and Penguin 10/100 USB Ethernet Network Adapter v2 provide a direct Ethernet connection. Finally, the Penguin USB Desktop Microphone for GNU / Linux helps users to connect to one another by providing a freedom-respecting microphone.

"I've always believed that the biggest difficulty for users in the free software world has been in obtaining compatible hardware, and so I'm glad to be participating in the expansion of the RYF program" said Christopher Waid, founder and CEO of ThinkPenguin.

ThinkPenguin, Inc. was one of the first companies to receive RYF certification, gaining their first and second certifications in 2013, and adding several more over the years since.

"ThinkPenguin has excelled for years in providing users with the tools they need to control their own computing. We are excited by these new additions today, and look forward to what they have in store for the future," said the FSF's licensing and compliance manager, Donald Robertson, III.

To learn more about the Respects Your Freedom certification program, including details on the certification of these ThinkPenguin devices, please visit https://fsf.org/ryf.

Hardware sellers interested in applying for certification can consult https://www.fsf.org/resources/hw/endorsement/criteria.

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 https://fsf.org and https://gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at https://donate.fsf.org. Its headquarters are in Boston, MA, USA.

More information about the FSF, as well as important information for journalists and publishers, is at https://www.fsf.org/press.

About ThinkPenguin, Inc.

Started by Christopher Waid, founder and CEO, ThinkPenguin, Inc., is a consumer-driven company with a mission to bring free software to the masses. At the core of company is a catalog of computers and accessories with broad support for GNU/Linux. The company provides technical support for end-users and works with the community, distributions, and upstream projects to make GNU/Linux all that it can be.

Media Contacts

Donald Robertson, III
Licensing and Compliance Manager
Free Software Foundation
+1 (617) 542 5942
licensing@fsf.org

ThinkPenguin, Inc.
+1 (888) 39 THINK (84465) x703
media@thinkpenguin.com

Image Copyright 2016 ThinkPenguin, Inc., licensed under Creative Commons Attribution-ShareAlike 4.0.

21 March, 2019 08:45PM

March 18, 2019

health @ Savannah

GNU Health installer 3.4.1

Dear community

The GNU Health installer (gnuhealth-setup) has been updated to 3.4.1.

It basically fixes an issue due to the removal of the the pybarcode library from pypi (https://savannah.gnu.org/bugs/?55942)

We have also updated the documentation to always download the latest installer as the first step (https://en.wikibooks.org/wiki/GNU_Health/Installation#Downloading_and_Installing_GNU_Health)

This applies for new installations / migrations.

Best
Luis

18 March, 2019 01:59PM by Luis Falcon

March 15, 2019

GNU Guix

Documentation video creation

Over the last few months, I have been working as an Outreachy intern with the GNU Guix crowd to develop videos presenting and documenting the project. My goal in this round as an Outreachy intern for the December 2018 to March 2019 period consists of creating introductory documentation videos about different topics for people who would like to use GNU Guix, admins and/or those who would like to join Guix community and don’t know where to start. Even interested or having a clear documentation, they might feel overwhelmed by it. I experienced this issue in the past with people in another context.

My main tasks consist of creating a workflow for automating as much as possible the process of creating the videos, as well as, of course, creating the videos themselves. Creating the videos is not that easy as it might seem, I have to design them (I cannot automate that part), let the audio match the video, and matching the exact timing is quite difficult. Something very important that I should mention is that the workflow currently allows translations to other languages.

It is a work in progress for too many reasons, specially because it keeps being improved all the time.

Also, I had to study tools deeply both for the creation of the workflow and the videos because I did not know them beforehand or I knew just the basics.

After trying several approaches for the workflow, the current one consists of creating “pieces of videos” and gluing them together in the end.

These “pieces of videos” may consist of:

  • Slide videos: they contain only a sequence of one or more slides.
  • Command line session videos: they contain only Guix or shell commands and their output, without showing any slide at all.
Workflow for creating each slide video.

slide

The inputs are SVG files and audio files. First, SVGs are converted to PNGs (“the slides”). Then, a text file having the order in which each slide will appear and the duration of the audio that matches it is created. An audio text file containing all the audio files sorted to have a complete audio file is created too. Lastly, with the slides' text file that has the reference to the slide files and the glued audio file the final slide video is made.

Workflow for creating each command line session video.

cli

The input is a session text file that has commands or meta-commands that are used to simulate, for example, the typing of a command, or the printing of it’s output. This file is passed to a Guile script that is in charge of executing the commands defined in the input text file and take text snapshots at a fixed time interval. Then, all these files are converted to postscript format. After that, they are transformed to SVG format. Finally, the process is repeated and the audio and the slides are glued to have final command line session video.

Workflow for creating the final video.

gluing

Slide videos and command line videos are a “bunch of videos” that need to be glued into the final one. They are sorted, and using the same tool for video creation our final introductory video is created.

The code for this video creation workflow is available on Savannah. Enjoy!

About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.

15 March, 2019 11:00AM by Laura Lazzati

March 14, 2019

FSF News

Activists and experts gather in Cambridge for ethical tech conference to celebrate software freedom on March 23-24

CAMBRIDGE, Massachusetts, USA -- Thursday, March 14, 2019 -- Next weekend, the Free Software Foundation (FSF) presents the eleventh annual LibrePlanet free software conference in Cambridge, March 23-24, 2019, at the Stata Center at the Massachusetts Institute of Technology. LibrePlanet is an annual conference for people who care about their digital freedoms, bringing together software developers, policy experts, activists, and computer users to learn skills, share accomplishments, and tackle challenges facing the free software movement, including 3D printing, cryptography, medical devices, privacy, security, and current issues in software licensing. LibrePlanet 2019 will focus on the exploration of software freedom and how to bring to life trailblazing, principled new technologies.

LibrePlanet 2019 will include four keynotes. Tarek Loubani, an emergency physician, will talk about his work on making medical devices accessible through free designs that meet medical industry standards. Micky Metts, a member of the Agaric Design Collective, will talk about your collective and individual roles in maintaining your freedoms, with free software as the foundation. Bdale Garbee, longtime free software contributor and former Debian Project Leader, will tell us about the fun in free software, using personal anecdotes as examples. Richard Stallman, founder of the FSF and president of the board of directors, will discuss current issues facing user freedom, and announce the winners of the 2018 Free Software Foundation awards.

"What makes LibrePlanet great is how it brings everyone from old hand activists to new free software enthusiasts from around the world to exchange ideas, collaborate, and take on challenges to software freedom," said John Sullivan, executive director of the FSF. "We run the event using entirely free software, putting our ideals into action. This conference builds the software community, by offering opportunities for those who cannot attend to participate remotely via watching a multi-channel livestream and online voice and text conversations."

In addition to keynote presentations, LibrePlanet will include: 36 sessions; a party and a hack night on Saturday; an exhibit hall with exciting free software projects, nonprofits, and companies; and community organized meetups. Sessions include such topics as "The Tor Project: State of the Onion," "Australia's decryption law and free software," "Free software in the 3D printing community," and the "The Right to Repair & the DMCA." There will be talks on activism, case studies, communities, licensing and legal issues, and technical issues.

Attendees may register online until Tuesday, March 19 at 10:00 EDT, after which point they can register onsite at the conference, space permitting. Attendance is gratis for students and FSF members. Journalists interested in press passes should contact campaigns@fsf.org.

LibrePlanet is financially supported in part by Red Hat and Private Internet Access.

About LibrePlanet

LibrePlanet is the annual conference of the Free Software Foundation. What was once a small gathering of FSF members has grown into a larger event for anyone with an interest in the values of software freedom. LibrePlanet is always gratis for associate members of the FSF and students. Sign up for announcements about the LibrePlanet conference here.

LibrePlanet 2018 was held at MIT from March 24-25, 2018. About 350 attendees from all over the world came together for conversations, workshops, and keynotes centered around the theme of "Freedom Embedded." You can watch videos from past conferences at https://media.libreplanet.org, including keynotes by Deb Nicholson, Seth Schoen, and Benjamin Mako Hill.

About the Free Software Foundation

The FSF, 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 https://fsf.org and https://gnu.org, are an important source of information about GNU/Linux. Donations to support the FSF's work can be made at https://donate.fsf.org. Its headquarters are in Boston, MA, USA.

More information about the FSF, as well as important information for journalists and publishers, is at https://www.fsf.org/press.

Media Contact

Molly de Blanc
Campaigns Manager
Free Software Foundation
+1 (617) 542 5942
campaigns@fsf.org

14 March, 2019 09:01PM

March 11, 2019

coreutils @ Savannah

coreutils-8.31 released [stable]

11 March, 2019 12:48AM by Pádraig Brady

March 10, 2019

health @ Savannah

Thalamus 0.9.8 is out. HIS Migration from MongoDB to PosrgreSQL

Dear all

I am proud to announce the availability of Thalamus 0.9.8, which has been migrated from MongoDB to now interact with PostgreSQL .
(see related news https://savannah.gnu.org/forum/forum.php?forum_id=9366 )

Please make sure you update the package

$ pip3 install --user --upgrade thalamus

The interaction for the enduser and from GNU Health HMIS node will be transparent.

The Health Information System installation has been updated in Wikipedia. You can refer to https://en.wikibooks.org/wiki/GNU_Health/Federation_Technical_Guide#Installing_Thalamus

Please don't forget to report any issues you find to health@gnu.org

Bests
Luis

10 March, 2019 03:50AM by Luis Falcon

GNU Health HMIS 3.4.1 released

Dear community

GNU Health HMIS 3.4.1 patchset has been released !

Priority: High

Table of Contents

  • About GNU Health Patchsets
  • Updating your system with the GNU Health control Center
  • Summary of this patchset
  • Installation notes
  • List of issues related to this patchset

About GNU Health Patchsets

We provide "patchsets" to stable releases. Patchsets allow applying bug fixes and updates on production systems. Always try to keep your production system up-to-date with the latest patches.

Patches and Patchsets maximize uptime for production systems, and keep your system updated, without the need to do a whole installation.

NOTE: Patchsets are applied on previously installed systems only. For new, fresh installations, download and install the whole tarball (ie, gnuhealth-3.4.1.tar.gz)

Updating your system with the GNU Health control Center

Starting GNU Health 3.x series, you can do automatic updates on the GNU Health and Tryton kernel and modules using the GNU Health control center program.

Please refer to the administration manual section ( https://en.wikibooks.org/wiki/GNU_Health/Control_Center )

The GNU Health control center works on standard installations (those done following the installation manual on wikibooks). Don't use it if you use an alternative method or if your distribution does not follow the GNU Health packaging guidelines.

Summary of this patchset

Patch 3.4.1 fixes issues related to the generation of the Federation Account, and it adapts the ID field on the federation objects.

The gnuhealth-control program and the documentation / man page have also been updated.

It is important to know that since 3.4.1 and Thalamus 0.9.8, the Health Information System has been migrated from MongoDB to PostgreSQL.

Refer to the List of issues related to this patchset for a comprehensive list of fixed bugs.

Installation Notes

In most cases, GNU Health Control center (gnuhealth-control) takes care of applying the patches for you.

You must apply previous patchsets before installing this patchset.
You can find the patchsets at GNU Health main download site at GNU.org (https://ftp.gnu.org/gnu/health/)

Follow the general instructions at

After applying the patches, make a full update of your GNU Health database as explained in the documentation.

  • Restart the GNU Health Tryton server

List of issues and tasks related to this patchset

  • bug #55595: Remove unimplemented functionality fields from Federation Country
  • bug #55594: Traceback when creating a person without a system institution

For detailed information about each issue, you can visit https://savannah.gnu.org/bugs/?group=health
For detailed information about each task, you can visit https://savannah.gnu.org/task/?group=health

For detailed information you can read about Patches and Patchsets

10 March, 2019 03:37AM by Luis Falcon

March 06, 2019

unifont @ Savannah

GNU Unifont 12.0.01 Released

5 March 2019

GNU Unifont 12.0.01 is now available. This is a major release incorporating glyphs added in Unicode 12.0.0, which also was just released today.

Significant changes in this version include contributions from David Corbett and Johnnie Weaver. Notably, the Unifont Upper font has now reached 11,000 Unicode Plane 1 glyphs. New Unicode script ranges introduced in Unicode Standard version 12.0.0 that are included in this release are (in order of appearance in Unifont Upper): Elymaic, Tamil Supplement, Nandinagari, Egyptian Hieroglyph Format Controls, Small Kana Extension, Nyiakeng Puachue Hmong, Wancho, Ottoman Siyaq Numbers, Chess Symbols, and Symbols and Pictographs Extended-A. Full details are in the ChangeLog file.

This release also includes two new programs: unibmpbump and unihexrotate. unibmpbump, by Paul Hardy, adjusts images created by unihex2png but saved as Bitmap (".bmp") format files, for processing with unibmp2hex. unihexrotate, by David Corbett, rotates a set of glyphs in Unifont ".hex" format clockwise or counterclockwise by a specified number of quarter turns.

Download this release at:

https://ftpmirror.gnu.org/unifont/unifont-12.0.01/

or if that fails,

https://ftp.gnu.org/gnu/unifont/unifont-12.0.01/

or, as a last resort,

ftp://ftp.gnu.org/gnu/unifont/unifont-12.0.01/

Enjoy!

Paul Hardy
GNU Unifont Maintainer

06 March, 2019 05:49AM by Paul Hardy

March 02, 2019

health @ Savannah

GNU Health control center 3.4.1 is out !

Dear all

We just released GNU health control center 3.4.1 !

It mainly fixes an issue with the file format of the translation files from pootle on our GNU Health translation portal, when executing the getlang command.

You can update automatically the gnuhealth control center using the command

$ gnuhealth-control update

You can also find the program at our GNU FTP site (https://ftp.gnu.org/gnu/health/)

Best
Luis

02 March, 2019 07:26PM by Luis Falcon

February 28, 2019

GNUnet News

2019-02: GNUnet 0.11.0 released

2019-02: GNUnet 0.11.0 released

We are pleased to announce the release of GNUnet 0.11.0.

This is a major release after about five years of development. In terms of usability, users should be aware that there are still a large number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny (about 200 peers) and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.11.0 release is still only suitable for early adopters with some reasonable pain tolerance.

Download links

Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try http://ftp.gnu.org/gnu/gnunet/

Note that GNUnet is now started using gnunet-arm -s. GNUnet should be stopped using gnunet-arm -e.

Noteworthy changes in 0.11.0

  • The Web site and manuals have undergone significant rework. You can find an archive of the old Web site at old.gnunet.org.
  • The code now builds again on macOS. GNUnet on macOS is experimental. While it builds and seems to run fine, some tests are known to fail.
  • Build process now works properly with libidn2
  • Except for gnunet-qr, all Python code was migrated to Python 3.7.
  • Fixed security issues in secret sharing cryptography logic
  • Services running out of file descriptors on accept() no longer busy wait
  • Fixed crash in gnunet-gns2dns proxy
  • GNS responses are now padded to minimize information disclosure from the size
  • Fixed API issues and (rare) crash bugs in CADET
  • The experimental SecuShare code is not included in the release, you can now find it in the gnunet-secushare Git repository.
  • The Ascension tool (separate download) now allows importing DNS zones into GNS via AXFR.
  • GNUnet now includes a decentralised identity attribute sharing service: reclaimID. A ready-to-use client can be found in an external repo.
  • The code now builds again on NetBSD. GNUnet on NetBSD is experimental. While it builds and seems to run fine, full support requires more changes in the core of GNUnet It will soon be available via pkgsrc.
  • Many things changed on the build system side. If you package GNUnet for an operating system or otherwise package manager, make sure that you read the README.

The above is just the short list, our bugtracker lists over 100 individual issues that were resolved since 0.11.0pre66.

Known Issues

  • There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.
  • There are known moderate implementation limitations in CADET that negatively impact performance. Also CADET may unexpectedly deliver messages out-of-order.
  • There are known moderate design issues in FS that also impact usability and performance.
  • There are minor implementation limitations in SET that create unnecessary attack surface for availability.
  • The RPS subsystem remains experimental.
  • Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.

In addition to this list, you may also want to consult our bug tracker at bugs.gnunet.org which lists about 150 more specific issues.

28 February, 2019 12:00AM

February 26, 2019

dico @ Savannah

February 23, 2019

tar @ Savannah

Version 1.32

GNU tar version 1.32 is available for download.

New in this release:

  • Fix the use of --checkpoint without explicit --checkpoint-action
  • Fix extraction with the -U option

See http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00015.html,
for details

  • Fix iconv usage on BSD-based systems
  • Improve the testsuite

23 February, 2019 01:15PM by Sergey Poznyakoff

cflow @ Savannah

Version 1.6

Version 1.6 is available for download. New in this version:

New option --all (-A)

Produce graphs for all global functions in the program. Use this
option if your program contains functions which are not directly
reachable from main().

The output consist of separate flow graphs for each global function
defined in the program. These graphs will be placed after the graph
for main() (if it exists), and will be ordered lexicographically by
the function name.

New option --no-main

This option has the same effect as '--all', except that the graph for
main() function (if it exists) is treated same way as all the other
graphs, i.e. it will not be placed at the top of output, but in its
place as per the lexicographic ordering of function names.

23 February, 2019 12:54PM by Sergey Poznyakoff

mailutils @ Savannah

Version 3.6

Version 3.6 is available for download.

For the list of changes in this version, please see the NEWS file entry.

23 February, 2019 12:20PM by Sergey Poznyakoff

February 22, 2019

parallel @ Savannah

GNU Parallel 20190222 ('Baghuz') released

GNU Parallel 20190222 ('Baghuz') has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/

Quote of the month:

With GNU Parallel you sure can!
I like getting things done

--Kyle Lady @kylelady@twitter

New in this release:

  • --shard makes it possible to send input to the same jobslot based on the value in one column of the input. It is similar to sharding in databases.
  • --shellquote --shellquote will shell quote the input twice.
  • Parallelizing Freesurfer blog.cogneurostats.com/?p=148
  • Bug fixes and man page updates.

Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

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

About GNU Parallel

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

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

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

You can find more about GNU Parallel at: http://www.gnu.org/s/parallel/

You can install GNU Parallel in just 10 seconds with:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Watch the intro video on http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

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

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

O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014.

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
  • Get the merchandise https://gnuparallel.threadless.com/designs/gnu-parallel
  • 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 programs that use GNU Parallel for research:

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

If GNU Parallel saves you money:

About GNU SQL

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.

22 February, 2019 09:34PM by Ole Tange

February 21, 2019

GNU Guix

Guix Days: Bootstrapping ARM

During the Guix Days before FOSDEM, some of us discussed bootstrapping on ARM architectures. We focused on how to port Mes to ARM. This post consists of notes from that discussion.

Recap: i686/x86_64 Reduced Binary Seed

We started our discussion by reviewing the current status for i686-linux and x86_64-linux. Jan (janneke) Nieuwenhuizen gave a similar summary a few days later at FOSDEM, and you can read the slides online.

Previously, the size of Guix's binary seed totaled about 250 MB. Now, on the core-updates branch, it's been reduced to about 130 MB. This is nearly a 50% reduction in size, which is great progress! Using this 130 MB reduced binary seed, it's currently possible to bootstrap Guix for both i686-linux and x86_64-linux.

To bootstrap x86_64-linux, we actually "cheat" and bootstrap from the i686-linux bootstrap binaries. This is possible because an x86_64-linux system can natively run i686-linux executables, and also because Guix automatically cross-compiles for the host platform during the bootstrap process. In other words, on an x86_64-linux system, Guix uses the i686-linux bootstrap binaries to build a cross-compilation toolchain, which it then uses to build a final, normal x86_64-linux toolchain. Guix then uses this final toolchain to build everything else for the x86_64-linux system.

That's great news for owners of i686 and x86_64 machines! But what about ARM? Although we could cross-compile the bootstrap binaries for ARM from an x86_64 machine, this isn't great because it would increase the number of things a person or organization would have to verify in order to audit the system. Perhaps more importantly, it would force owners of ARM machines to implicitly trust an x86_64 machine. The dominant vendors of CPUs implementing the x86_64 architecture, Intel and AMD, both include a management engine in many of their products, which represents a serious risk to user freedom.

In the short term, cross-compilation is better than nothing, but in the long term, we'd prefer to bootstrap ARM without cross-compiling from another architecture. Concretely, we'll need to complete at least the following tasks.

TODO: Implement a Mes backend for ARM

We need to implement a new Mes backend for an ARM architecture. We should choose an ARM instruction set that can work on a variety of ARM platforms with minimal fuss. The following candidates were suggested:

  • ARMv4. We would need to avoid unaligned memory accesses because they can behave in different ways depending on the CPU. This is the latest version of ARM that GCC 2.95 supports, which matters because GCC 2.95 is the latest version that the Mes C Library supports.

  • ARMv7. If we avoid extensions and unaligned memory accesses, it might still work for our needs. It was mentioned in the session that TinyCC will probably work with either ARMv4 or ARMv7. In TinyCC, as a first step, it's probably fine to depend on ARMv7 since it's the most common recent architecture version (and it is more forgiving). Later, if we remove unaligned accesses, it will also work on ARMv4 and thus on basically all ARM CPUs.

After the session concluded, Danny Milosavljevic committed some changes to the wip-arm branch of mes which enabled many of the tests to pass - but some tests still fail, and you can help finish the work!

TODO: Port mescc-tools to ARM, also

The mes project depends upon the mescc-tools project, which also must be ported. The mescc-tools project contains an M1 macro assembler, which would need to be extended to support ARM branches. Currently, ARM branches are very broken.

TODO: Improve Guix integration and merge core-updates

Even if we had a new Mes backend and mescc-tools for ARM, there would still be more to do. The Guix integration is not quite complete - the core-updates branch still needs to be merged with master, and we'll need to fix any problems that arise. Even on i686-linux, the bottom of the bootstrap path is incomplete. Preliminary Guix code exists on the wip-bootstrap branch to achieve a scheme-only bootstrap, but help would be welcome!

You can help!

In summary, you can help the Mes project by doing any of the following things:

  • Help implement an ARMv7 (or ARMv4) backend for Mes! This entails machine code and assembly. It should be fun for anyone who wants to play around close to the metal.

  • Help port mescc-tools to ARM. This entails writing an assembler in M1 macro code and probably goes hand-in-hand with work on Mes itself.

  • Help firm up core-updates and merge it to master! This involves Guix package definitions and troubleshooting build failures. It should be fun for anyone who wants to learn more about the bigger picture of how Guix bootstraps all of its software from the new reduced binary seed.

  • Help complete the i686-linux and x86_64-linux bootstrap. You can hack on the bleeding edge scheme code in the wip-bootstrap branch, or maybe you can help extend the bootstrap path all the way down to approximately 500 bytes of auditable assembly code!

There's still plenty of meaty work left to be done! If you're interested, get in touch and we'll help you get started.

Think Big: Bootstrapping without an OS

In addition to the immediate tasks necessary for porting Mes to ARM, we also took some time to think about the long term hopes and dreams of the bootstrappable project.

We discussed how in the long term, in parallel with the aforementioned tasks, it should be possible to investigate how to bootstrap an entire system without relying on a OS or even a kernel running on the machine. For example, one can imagine loading the transitive closure of source (including a tiny, human-readable machine code program to kick off the entire process) into a computer as a kind of "firmware image". When the computer runs, it would execute this "firmware image" and eventually produce a fully bootstrapped system.

Think Bigger: Bootstrapping Hardware

We also briefly talked about how even after we achieve full source software bootstrap, we will still need to tackle the problem of "hardware bootstrap". It isn't clear what form this will eventually take, but surely free hardware design will play an important role in ensuring that we can trust our hardware, too.

About Bootstrappable Builds and Mes

Software is bootstrappable when it does not depend on a binary seed that cannot be built from source. Software that is not bootstrappable - even if it is free software - is a serious security risk for a variety of reasons. The Bootstrappable Builds project aims to reduce the number and size of binary seeds to a bare minimum.

GNU Mes is closely related to the Bootstrappable Builds project. Mes aims to create an entirely source-based bootstrapping path for the Guix System and other interested GNU/Linux distributions. The goal is to start from a minimal, easily inspectable binary (which should be readable as source) and bootstrap into something close to R6RS Scheme.

Currently, Mes consists of a mutual self-hosting scheme interpreter and C compiler. It also implements a C library. Mes, the scheme interpreter, is written in about 5,000 lines of code of simple C. MesCC, the C compiler, is written in scheme. Together, Mes and MesCC can compile a lightly patched TinyCC that is self-hosting. Using this TinyCC and the Mes C library, it is possible to bootstrap the entire Guix System for i686-linux and x86_64-linux.

About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.

21 February, 2019 11:00PM by Chris Marusich

February 19, 2019

Riccardo Mottola

ArcticFox has working DevTools again

The past release of 27.9.15 ArcticFox has the Developer Tools working again, they were broken previously because of excessive work on Private browsing.

You can see them here in full action:


ArcticFox continues the work as a fork of PaleMoon trying to catch up with past releases of FireFox.
It has been succesfully backported up to MacOS 10.6 SnowLeopard, is working reliably on Linux x86, amd64 and PowerPC 32bit and 64bit.

If you like the browser, we need your help!

19 February, 2019 03:46PM by Riccardo (noreply@blogger.com)

February 17, 2019

texinfo @ Savannah

Texinfo 6.6 released

We have released version 6.6 of Texinfo, the GNU documentation format.

It's available via a mirror (xz is much smaller than gz, but gz is available too just in case):

https://ftp.gnu.org/gnu/texinfo/texinfo-6.6.tar.xz
https://ftp.gnu.org/gnu/texinfo/texinfo-6.6.tar.gz

Please send any comments to bug-texinfo@gnu.org.
Full announcement:
http://lists.gnu.org/archive/html/info-gnu/2019-02/msg00004.html

17 February, 2019 09:03AM by Gavin D. Smith

freedink @ Savannah

GNU FreeDink 109.6

Here's a new release of GNU FreeDink :)
https://ftp.gnu.org/gnu/freedink/freedink-109.6.tar.gz
https://www.gnu.org/software/freedink/
https://play.freedink.org/

This is the first official announcement for the new 109.x line with updated technologies (SDL2, OpenGL), WebAssembly support and many fixes and improvements.

About GNU FreeDink:

Dink Smallwood is an adventure/role-playing game, similar to classic Zelda, made by RTsoft. Besides twisted humor, it includes the actual game editor, allowing players to create hundreds of new adventures called Dink Modules or D-Mods for short.

GNU FreeDink is a new and portable version of the game engine, which runs the original game as well as its D-Mods, with close compatibility, under multiple platforms.

17 February, 2019 12:48AM by Sylvain Beucler

February 16, 2019

remotecontrol @ Savannah

2019 Amazon Alexa vs. Google Home

https://www.androidcentral.com/thrifter-deal-honeywell-programmable-7-day-wi-fi-thermostat

Amazon is winning the hardware war with Google for device supremacy in the consumer market. Honeywell is almost giving their Alexa-enabled thermostat device away to customers as a rapid advancement maneuver.

16 February, 2019 12:59PM by Stephen H. Dawson DSL

February 12, 2019

health @ Savannah

GNU Health Federation Information System moves from MongoDB to PostgreSQL

Dear all

Thalamus is one of the components of the GNU Health project. It is the GNU Health Federation message and authentication server, and currently connects to MongoDB to manage the demographics and health data from all the participating nodes of the Federation.

As you may know, by the end of 2018, MongoDB decided to change license of the server to their Server Side Public License (SSPL)
(https://www.mongodb.com/blog/post/mongodb-now-released-under-the-server-side-public-license)

Due to the license change in MongoDB, many GNU/Linux distributions are no longer including the mongodb server (see references)

SSPL has not gotten the approval from OSI, and the Free Software Foundation is still reviewing it, but they have expressed concerns.

Versions of MongoDB server previous to October 2018 are still on GPL v3, but, sadly, MongoDB will no longer maintain them. No bugs fixes or security patches will be provided under this GPL license.

The combination of license change, rejection of large part of the Libre software community and the immediate end of support from GPL versions of MongoDB forced us to look for an alternative fast. I have taken the decision to move to a community-based platform that delivers the current GNU Health Federation functionality.

In this context, after evaluating different possibilities and listening to the community, I have chosen PostgreSQL to interact with Thalamus. PostgreSQL is a solid, community-based database server. The recent JSON(B) support provides the flexibility and scalability found in document oriented engines.

GNU Health has been using PostgreSQL since 2008 for its Hospital Management System functionality, so we are familiar with it. We are excited and looking forward to adopting PostgreSQL as our Person Master Index and Health Information System.

Development of the upcoming Thalamus server supporting PostreSQL has already started, and technical documentation will be updated accordingly.

All the best
--
Dr. Luis Falcon, M.D., BSc
President, GNU Solidario
GNU Health: Freedom and Equity in Healthcare
http://health.gnu.org
GPG Fingerprint :ACBF C80F C891 631C 68AA 8DC8 C015 E1AE 0098 9199

References:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915537#15
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/IQIOBOGWJ247JGKX2WD6N27TZNZZNM6C/
https://bugzilla.opensuse.org/show_bug.cgi?id=1122267

12 February, 2019 10:18PM by Luis Falcon

February 08, 2019

Christopher Allan Webber

Libre Lounge

Did I somehow not blog here that I started co-hosting a podcast named Libre Lounge with my friend Serge Wroclawski? We're talking about all sorts of topics facing user freedom. Take a look at the archive and you might find something you like!

At the time of writing we've also had on one guest, Karen Sandler. This was a really nice treat since the show Free as in Freedom, which Karen co-hosts, is clearly a big influence on Libre Lounge. Anyway, we plan to have on lots more guests in the future.

Hope you enjoy!

08 February, 2019 02:13PM by Christopher Lemmer Webber

February 07, 2019

Riccardo Mottola

GIMP 2.10.6 working on MacOS Leopard!

My white MacBook is a perfectly fine computer, has an excellent screen and keyboard (superior to later models I have) so even if it is running a legacy OS version, I'd love to continue using it and, perhaps, other of you are in the same situation.

Besides ArcticFox (which I got running on 10.6, but not on 10.5 yet) and various developer tools, the most essential tool I like to have is GIMP, also given the excellent LCD this Laptop has.

Some work from macports to get up-to-date tools and dependent libraries, I patched its package.

Little work was needed in GIMP itself, I shared all the patches upstream and I hope they will be accepted. The remaining issues are in GEGL, but different solutions are available: essentially realpath doesn't like a null argument.

Enjoy this screenshot as a proof.



Next question: will it work on PowerPC too? I hope so! Getting GIMP to work on 10.5 opens this possibility.

P.S.: this post was written directly on the MacBook i386 using TenFourFox running natively on Intel!

07 February, 2019 10:56PM by Riccardo (noreply@blogger.com)

GNU Guix

QA on non-Intel at Guix Days

During the second day of Guix Days (a FOSDEM fringe event) we split up into smaller working groups based on our areas of interest. I led a group which aimed to address some of the package issues which exist on non-Intel architectures. Of course not everyone has access to an ARM board, but with the qemu-binfmt-service service it is possible to use QEMU and the binfmt_misc functionality of the Linux kernel to emulate these systems. Many have reported that this system emulation is comparable in speed to many of the available ARM boards on the market. Yet another possibility would be to do the hacking on an x86_64 system and, when we had a working prototype, to test it with QEMU or on actual ARM hardware.

Our group decided to tackle Go, which was lacking support in Guix on armhf and aarch64. Upon checking the build logs from Cuirass and the source code for Go we determined that Go did indeed require the gold linker from the GNU Binutils. We didn't want to modify the copy of Binutils in Guix since it is part of our bootstrap story, so we quickly put together a new package definition which added the configure flag to enable gold.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     (substitute-keyword-arguments (package-arguments binutils)
       ((#:configure-flags flags)
        `(cons "--enable-gold=default" ,flags))))))

This was an obvious first step, and one which we knew would fail. Had it been this easy gold would have been enabled back in 2012 when it was first added. Our error came in the form of one of the binaries not being able to link against libstdc++.so, which is in the gcc:lib output. This was quickly added and we were off and building again.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     (substitute-keyword-arguments (package-arguments binutils)
       ((#:configure-flags flags)
        `(cons "--enable-gold=default" ,flags))))
    (inputs
     `(("gcc:lib" ,gcc "lib")))))

Once again this failed. What were we missing? The correct paths were included, the file was indeed in the gcc:lib output. We inspected the original binutils package again noticed that it was built against a static libgcc, so of course it wouldn't find the shared library. In order to work quickly we copied the configure flags rather than inheriting them from binutils and tried our build again.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     (substitute-keyword-arguments (package-arguments binutils)
       ((#:configure-flags flags)
        `(cons* "--enable-gold=default"
                "--enable-new-dtags"
                "--with-lib-path=/no-ld-lib-path"
                "--enable-install-libbfd"
                "--enable-deterministic-archives"))))
    (inputs
     `(("gcc:lib" ,gcc "lib")))))

This time we made it through the full build phase and we knew we were almost there. Our enthusiasm was quickly dampened when we got the error during the tests: unable to find the 'dc' program. What is this dc program? This isn't any package any of us had heard of before. It definitely wasn't packaged in Guix. A quick apt-cache search dc search in Ubuntu showed they didn't have package either. A second search of Ubuntu, apt-file search dc | grep '/bin/dc' quickly showed us it was in the bc package, and soon we were building binutils-gold again.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     (substitute-keyword-arguments (package-arguments binutils)
       ((#:configure-flags flags)
        `(cons* "--enable-gold=default"
                "--enable-new-dtags"
                "--with-lib-path=/no-ld-lib-path"
                "--enable-install-libbfd"
                "--enable-deterministic-archives"))))
    (native-inputs
     `(("bc" ,bc)))
    (inputs
     `(("gcc:lib" ,gcc "lib")))))

Approaching the end of the check phase we soon ran into another error, there was an unpatched /bin/sh somewhere in the source code which was generated during the check phase. Based on the build logs we were able to track down approximately where the code should be, so we downloaded the source tar xf $(guix build --source binutils) and started looking. There were many obvious /bin/sh calls which we cross-referenced with the build logs and the patch-source-shebangs phase, and this left us with some code in gold/Makefile.in, which by default is not included in the patch-source-shebangs and would need to be fixed manually.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'patch-source-shebangs 'patch-more-shebangs
           (lambda _
             (substitute* "gold/Makefile.in"
               (("/bin/sh") (which "sh")))
             #t)))
       ,@(substitute-keyword-arguments (package-arguments binutils)
         ((#:configure-flags flags)
          `(cons* "--enable-gold=default"
                  "--enable-new-dtags"
                  "--with-lib-path=/no-ld-lib-path"
                  "--enable-install-libbfd"
                  "--enable-deterministic-archives")))))
    (native-inputs
     `(("bc" ,bc)))
    (inputs
     `(("gcc:lib" ,gcc "lib")))))

One more build cycle later and we did it! /gnu/store/…-binutils-gold-2.31.1 existed! We now did two things, we copied our patch over to an aarch64 build machine and we started cleaning up our package definition on our x86_64 build machine, where we knew we had a working package definition.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'patch-source-shebangs 'patch-more-shebangs
           (lambda _
             (substitute* "gold/Makefile.in"
               (("/bin/sh") (which "sh")))
             #t)))
       ,@(substitute-keyword-arguments (package-arguments binutils)
         ((#:configure-flags flags)
          `(cons* "--enable-gold=default"
                  (delete "LDFLAGS=-static-libgcc" ,flags))))))
    (native-inputs
     `(("bc" ,bc)))
    (inputs
     `(("gcc:lib" ,gcc "lib")))))

Fortunately for us the changes in the code worked on x86_64 and we still got a working binutils-gold output. On our aarch64 side the build was progressing nicely and everything seemed fine... until we suddenly were presented with big red errors about unrelocatable code. How could it? Everything was working so well! Undeterred, we built the source again, this time targeting armhf and were unfortunately presented with similar errors. Deciding to address the test failures later (It's ARM! It's not as well tested as other architectures! Right?) we disabled the tests and unsurprisingly binutils-gold built on both aarch64 and armhf.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'patch-source-shebangs 'patch-more-shebangs
           (lambda _
             (substitute* "gold/Makefile.in"
               (("/bin/sh") (which "sh")))
             #t)))
       ,@(substitute-keyword-arguments (package-arguments binutils)
         ((#:tests? _ #f) #f)
         ((#:configure-flags flags)
          `(cons* "--enable-gold=default"
                  (delete "LDFLAGS=-static-libgcc" ,flags))))))
    (native-inputs
     `(("bc" ,bc)))
    (inputs
     `(("gcc:lib" ,gcc "lib")))))

Now for the real test. Due to bootstrapping issues with Go and aarch64, aarch64 uses Go@1.4 built for armhf. Go@1.11 failed to build until now because it was missing the gold linker. Surely using the gold linker would be a good test if our package worked. Since Go for aarch64 is 'more complex' due to the bootstrapping using armhf's Go, we decided to test armhf first. binutils-gold was added and our build started.

    (native-inputs
     `(("go" ,go-1.4)
+      ,@(match (%current-system)
+          ((or "armhf-linux" "aarch64-linux")
+           `(("gold" ,binutils-gold)))
+          (_ `()))
       ,@(package-native-inputs go-1.4)))

First build, success! /gnu/store/…-go-1.11.5 exists! OK, but does it actually work? guix build syncthing --system=armhf-linux. /gnu/store/…-syncthing-1.0.0 exists too! A quick check of guix refresh --list-dependent go@1.4 showed that we had unlocked 176 new packages for armhf. Even better, since they had all failed by default due to go@1.11 failing to build, for each package that did build meant one fewer package which failed to build which should take a big bite out of our build failures.

Our next test was syncthing for aarch64. /gnu/store/…-go-1.11.5 exists! /gnu/store/…-syncthing-1.0.0 ... does not. "unknown architecture 'armv7-a'." It seems that Go is confused which architecture it is building for. Unfortunately we were reaching the end of our time for hacking, so that will have to wait for another day. All that was left now was the test failures on binutils-gold for the ARM systems. Some attempts at cargo-culting other code failed (per-architecture tests we had and overriding flags in substitute-keyword-arguments we had, but not together), but after some attempts we were able to create a working package definition we were happy with.

(define-public binutils-gold
  (package
    (inherit binutils)
    (name "binutils-gold")
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-after 'patch-source-shebangs 'patch-more-shebangs
           (lambda _
             (substitute* "gold/Makefile.in"
               (("/bin/sh") (which "sh")))
             #t)))
       ,@(substitute-keyword-arguments (package-arguments binutils)
         ; Upstream is aware of unrelocatable test failures on arm*.
         ((#:tests? _ #f)
          (if (any (cute string-prefix? <> (or (%current-target-system)
                                               (%current-system)))
                   '("i686" "x86_64"))
              '#t '#f))
         ((#:configure-flags flags)
          `(cons* "--enable-gold=default"
                 (delete "LDFLAGS=-static-libgcc" ,flags))))))
     (native-inputs
      `(("bc" ,bc)))
     (inputs
      `(("gcc:lib" ,gcc "lib")))))

This patch was pushed to the master branch as 28317d499034b00cf1f08a9efd39bd2bc3425b19, and the commit following uses it as a native-input for Go@1.9 and Go@1.11. Go@1.4 was added in June 2016 and Go@1.6 that August, with our first go packages being added in October 2017. That same October Go@1.4 had support limited to Intel and armhf and in October 2018, in an effort to work toward a resolution, a patch was added to have aarch64 use Go@1.4 built for armhf for it's bootstrap path. Basically since the addition of the Go language support into Guix there was not a time when it was usable on armhf or aarch64. Hopefully we will soon finish getting full Go support on aarch64 and we can move all 352 dependents of Go@1.4 from "failing" to "succeeding" and have these architectures better supported.

About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.

07 February, 2019 08:30AM by Efraim Flashner

February 01, 2019

Christopher Allan Webber

I've been awarded the Samsung Stack Zero Grant

Good news everyone! I've been awarded the Samsung Stack Zero Grant. But why not quote them?

Christopher Lemmer Webber is the co-editor and co-author of the now-ubiquitous ActivityPub protocol. While it provides a great framework for creating, updating, and deleting content across applications, it doesn’t provide any standardised mechanism for secure authorisation. With Spritely, Webber will work on extending the protocol in a backward-compatible manner, while at the same time building tools and applications that showcase its use. This will enable developers to build applications that enable richer interactions through a federated standard.

This should fund my next couple of years of work on full time advancement of the fediverse.

You may remember that I've talked about Spritely before. In fact I am finally in launch-mode... I am currently sitting in a wizard's tower at a hackathon, getting out the first release of Golem, a Spritely artifact.

Anyway, I'll be at FOSDEM 2019 giving a talk and on a panel. And after that I'll be speaking at CopyleftConf. Maybe I'll see you?

More news soon...

01 February, 2019 12:26AM by Christopher Lemmer Webber

GNUnet News

2019-02: Topics for GSoC 2019

See the website for the updated list of GSoC job offerings.

01 February, 2019 12:00AM

January 29, 2019

GNU Guile

GNU Guile at FOSDEM

GNU Guile will be present this year again at FOSDEM, which is just a few days away. The Guiler’s lair this time (in addition to the Guix Days right before FOSDEM for some of us!) will be the minimalist languages track. Among the great talks this Saturday, don’t miss:

We’re looking forward to meeting you in Brussels!

29 January, 2019 01:50PM by Ludovic Courtès (guile-devel@gnu.org)

January 28, 2019

GNU Guix

Meet Guix at FOSDEM

As usual, GNU Guix will be present at FOSDEM in the coming days with a couple of talks:

The minimalist languages track will also feature talks about GNU Guile and about Racket that you should not miss under any circumstances!

Guix Days logo.

For the second time, we are also organizing the Guix Days as a FOSDEM fringe event, a two-day Guix workshop where contributors and enthusiasts will meet. The workshop takes place on Thursday Jan. 31st and Friday Feb. 1st at the Institute of Cultural Affairs (ICAB) in Brussels.

This year there will be few talks; instead, the event will consist primarily of “unconference-style” sessions focused on specific hot topics about Guix, the Shepherd, continuous integration, and related tools and workflows. We are also happy to welcome fellow Nix hackers, which should allow us to develop cross-distro cooperation.

Attendance to the workshop is free and open to everyone, though you are invited to register (there are only a few seats left!). Check out the workshop’s wiki page for registration and practical info. Hope to see you in Brussels!

About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.

28 January, 2019 11:00AM by Ludovic Courtès

January 26, 2019

bison @ Savannah

Bison 3.3 released [stable]

We are very happy to announce the release of Bison 3.3!

The new option --update replaces deprecated features with their modern
spelling, but also applies fixes such as eliminating duplicate directives,
etc. It is now possible to annotate rules with their number of expected
conflicts. Bison can be made relocatable. The symbol declaration syntax
was overhauled, and in particular, %nterm, that exists since the origins of
Bison, is now an officially supported (and documented!) feature. C++
parsers now feature genuine symbol constructors, and use noexcept/constexpr.
The GLR parsers in C++ now support the syntax_error exceptions. There are
also many smaller improvements, including a fix for a bug which is at least
31 years old.

Please see the NEWS below for more details.

Many thanks to Askar Safin, Derek Clegg, Étienne Renault, Frank Heckenbach,
Rici Lake, Wolfgang Thaller and the members of the Bison mailing lists for
their feedback during the development of this version.

Here are the compressed sources:
https://ftp.gnu.org/gnu/bison/bison-3.3.tar.gz (4.1MB)
https://ftp.gnu.org/gnu/bison/bison-3.3.tar.xz (2.1MB)

Here are the GPG detached signatures[*]:
https://ftp.gnu.org/gnu/bison/bison-3.3.tar.gz.sig
https://ftp.gnu.org/gnu/bison/bison-3.3.tar.xz.sig

Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html

[*] 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 bison-3.3.tar.gz.sig

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

gpg --keyserver keys.gnupg.net --recv-keys 0DDCAA3278D5264E

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
Autoconf 2.69
Automake 1.16.1
Flex 2.6.4
Gettext 0.19.8.1
Gnulib v0.1-2382-g34881aff4

NEWS

26 January, 2019 02:15PM by Akim Demaille

January 25, 2019

freeipmi @ Savannah

FreeIPMI 1.6.3 Released

http://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.3.tar.gz

FreeIPMI 1.6.3 - 01/23/19
-------------------------
o In ipmi-locate, support parsing SPMI tables exported via sysfs.
o Support Intel S2600GZ OEM sensor and SEL events.
o Support Intel S2600WP OEM sensor and SEL events.
o Support Gigabyte MG20-OP0-ZB OEM SEL events.
o Fix DISCRETE_READING workaround in libipmimonitoring.
o In libfreeipmi, add workaround for packets that are re-ordered
during sensor bridging.
o Minor bug fixes.
o Various documentation updates/fixes.

25 January, 2019 12:24AM by Albert Chu

January 21, 2019

parallel @ Savannah

GNU Parallel 20190122 ('Shutdown') released

GNU Parallel 20190122 ('Shutdown') has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/

Quote of the month:

Ok! GNU Parallel is one of the best things out there. Almost as good as vanilla ice cream.
-- @coffe@mastodon.art

New in this release:

  • 'env_parallel --end-session' makes it possible to nest 'env_parallel --session'
  • Bug fixes and man page updates.

Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html

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

About GNU Parallel

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

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

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

You can find more about GNU Parallel at: http://www.gnu.org/s/parallel/

You can install GNU Parallel in just 10 seconds with:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

Watch the intro video on http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

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

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

O. Tange (2018): GNU Parallel 2018, March 2018, https://doi.org/10.5281/zenodo.1146014.

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
  • Get the merchandise https://gnuparallel.threadless.com/designs/gnu-parallel
  • 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 programs that use GNU Parallel for research:

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

If GNU Parallel saves you money:

About GNU SQL

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.

21 January, 2019 02:44AM by Ole Tange

January 20, 2019

freedink @ Savannah

New FreeDink game data release

Here's a new release of freedink-data :)
https://ftp.gnu.org/gnu/freedink/freedink-data-1.08.20190120.tar.gz

It adds 4 new sounds replacements, 1 update sound, 1 new translation and 2 updated translations.

About GNU FreeDink:

Dink Smallwood is an adventure/role-playing game, similar to Zelda, made by RTsoft. Besides twisted humor, it includes the actual game editor, allowing players to create hundreds of new adventures called Dink Modules or D-Mods for short.

GNU FreeDink is a new and portable version of the game engine, which runs the original game as well as its D-Mods, with close
compatibility, under multiple platforms.

freedink-data contains the original game story, along with free sound and music replacements.
Your help is welcome to fill the gap!
https://www.gnu.org/software/freedink/doc/sounds/

20 January, 2019 05:18PM by Sylvain Beucler

January 16, 2019

Parabola GNU/Linux-libre

caution regarding the 'libidn2' package with systemd

if you are using systemd (the default parabola system) and have the 'libidn2' package installed, upgrading it could break your system until the next version of systemd is in the repos

if this has already happened to you, here is a temporary work-around:

sudo ln -s /usr/lib/libidn2.so /usr/lib/libidn2.so.0

refer to this bug report for follow-ups: https://labs.parabola.nu/issues/2139

16 January, 2019 03:44AM by bill auger

January 08, 2019

mdk @ Savannah

GNU MDK 1.2.10 released

This new release fixes some long standing bugs and adds compatibility with Guile 2.2 and Flex 2.6.

08 January, 2019 07:44PM by Jose Antonio Ortega Ruiz

January 07, 2019

mit-scheme @ Savannah

MIT/GNU Scheme 10.1.4 released

See the release notes.

07 January, 2019 03:01AM by Chris Hanson

January 03, 2019

recutils @ Savannah

recutils 1.8 released

I am happy to announce a new release of the GNU recutils, version 1.8.

The changes in this release are:

  • Utilities:
    • Fix the build of readrec with recent bash headers.
  • librec:
    • Fix evaluation of sexes containing #NAME expressions.
    • Make numeric results from aggregated functions signed.
  • readred:
    • readrec --help now shows the help message and returns, instead of waiting for input.
  • Emacs mode:
    • rec-mode.el now supports case-insensitive searches.
    • rec-mode.el now defines it's own faces.
    • ob-rec.el was switched to lexical binding to satisfy later org-mode versions.
  • It is now possible to run the testsuite in parallel.
  • Other fixes:
    • gnulib updated.
    • GNU/Hurd build fixed.
    • Aggregate functions now work properly in Aarch64 and powerpc.
  • Internal cleanup and code factorization.
  • Other bug fixes.

The release can be found in the GNU ftp:
ftp://ftp.gnu.org/gnu/recutils/recutils-1.8.tar.gz

Alternatively, http://ftpmirror.gnu.org/recutils/ will automatically
redirect to a nearby mirror.

==About GNU recutils==

GNU recutils is a set of tools and libraries to access human-editable,
text-based databases called recfiles. The data is stored as a
sequence of records, each record containing an arbitrary number of
named fields. Advanced capabilities usually found in other data
storage systems are supported by GNU recutils: data types, data
integrity (keys, mandatory fields, etc) as well as the ability of
records to refer to other records (sort of foreign keys). Despite its
simplicity, recfiles can be used to store medium-sized databases.

Please see the GNU recutils homepage for more information:
http://www.gnu.org/software/recutils

03 January, 2019 10:20AM by Jose E. Marchesi

January 02, 2019

tar @ Savannah

Version 1.31

Version 1.31 is available for download. New in this release:

  • Fix heap-buffer-overrun with --one-top-level.
  • Support for zstd compression.
  • The -K option interacts properly with member names given in the command line.
  • Fix CVE-2018-20482

02 January, 2019 07:17PM by Sergey Poznyakoff

January 01, 2019

diffutils @ Savannah

diffutils-3.7 released [stable]

01 January, 2019 02:52AM by Jim Meyering