Planet GNU

Aggregation of development blogs from the GNU Project

March 02, 2021

FSF News

PRESS: Hardware hacker and academic Nadya Peek to keynote LibrePlanet 2021

BOSTON, Massachusetts, USA -- Tuesday, March 2, 2021 -- The Free Software Foundation (FSF) today announced digital fabrication expert and University of Washington assistant professor Nadya Peek as a keynote speaker for LibrePlanet 2021. The annual technology and social justice conference will be held online on March 20 and 21, 2021, with the theme "Empowering Users."

02 March, 2021 09:47PM

Applied Pokology

Padding and aligning data in GNU poke

It is often the case in binary formats that certain elements are separated by some data that is not really used for any meaningful purpose other than occupy that space. The reason for keeping that space varies from case to case; sometimes to reserve it for future use, sometimes to make sure that the following data is aligned to some particular alignment. This is known as "padding". There are several ways to implement padding in GNU poke. This article shows these techniques and discusses their advantages and disadvantages.

02 March, 2021 12:00AM

March 01, 2021

Learning the Poke language in Y minutes

Mohammad-Reza Nabipoor has written a nice short tutorial called "Learn the Poke Language in Y minutes". The tutorial has the form of a Poke program itself, and I think it really highlights the most uncommon (and useful!) features of our domain-specific language.

01 March, 2021 12:00AM

February 26, 2021

poke @ Savannah

GNU poke 1.0 released

I am happy to announce the first release of GNU poke, version 1.0.

The tarball poke-1.0.tar.gz is now available at
https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz.

  GNU poke (http://www.jemarch.net/poke) is an interactive, extensible
  editor for binary data.  Not limited to editing basic entities such
  as bits and bytes, it provides a full-fledged procedural,
  interactive programming language designed to describe data
  structures and to operate on them.

This release is the product of 3 years of work resulting in 4126
commits, made by 19 contributors.

The program is far from being perfect and there are known bugs and
limitations in place.  We also have lots of awesome ideas still to be
implemented, extensions we want to add, pickles for many data formats
to write, documentation to improve, and lots of work in
progress... the GUI, the machine-interface... working in poke is so
fun that it is difficult to stop :'D

But it is time to start the releasing cycles so everyone can benefit
from poke, which is already immensely useful for many activities like
systems programming, testing of software, design and documentation of
file formats and protocols, reverse engineering, and much more.
Releasing often will hopefully also bring in more developers to our
little but enthusiastic community... there is so much to do!

In any case, we wish you have fun with poke and that you find it
useful.

Please send us comments, suggestions, bug reports, patches,
questions, complaints, bitcoins, or whatever, to poke-devel@gnu.org.

Many of the poke developers and users populate the #poke IRC channel
at irc.freenode.net, and you are more than welcome to join us there
and say hello.

Now it is time to mention the names of all the people who have
contributed with code and/or documentation to this release.  In
certain but no significant order they are:

   John Darrington
   Tim Rühsen
   Luca Saiu
   Bruno Haible
   Mohammad-Reza Nabipoor
   Eric Blake
   Egeyar Bagcioglu
   Kostas Chasialis
   Darshit Shah
   Dan Čermák
   David Faust
   Carlo Caione
   Henner Zeller
   Aurelien Aptel
   Indu Bhagat
   Darkstar
   Michael Drüing
   Pierre-Evariste Dagand

My gratitude to you all!  It is a real pleasure to hack with you.

Finally, as a personal note, I would like to dedicate this release to
my father Eduardo.  For this is also your work in a sense, and I love
you very much.

And this is all for now.
Happy poking!

--
Jose E. Marchesi
Frankfurt am Main
26 February 2021

26 February, 2021 10:06AM by Jose E. Marchesi

libredwg @ Savannah

libredwg-0.12.3 released

Add llvmfuzz and oss-fuzz integration, fixed many minor fuzzing errors. libfuzzer is much better than afl++ and honggfuzz.

See https://www.gnu.org/software/libredwg/ and https://github.com/LibreDWG/libredwg/blob/0.12.3/NEWS

Here are the compressed sources:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.3.tar.gz (17.4MB)
http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.3.tar.xz (9MB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.3.tar.gz.sig
http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.3.tar.xz.sig

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

Here are more binaries:
https://github.com/LibreDWG/libredwg/releases/tag/0.12.3

Here are the SHA256 checksums:

47933ccc0230c66c571606f7a5897fa1fb0f664fba871b883f1a785783f58a33  libredwg-0.12.3.tar.gz
b31a33466ba23312119138d0ac022399841ee0f40d9bbd970410a2fc471e15ee  libredwg-0.12.3.tar.xz

[*] 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 libredwg-0.12.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 B4F63339E65D6414

and rerun the gpg --verify command.

26 February, 2021 09:23AM by Reini Urban

February 25, 2021

FSF Blogs

New changes to Twitter make it even worse for free software users

There are many complicated debates happening right now around Twitter and its role in public discourse. These discussions are important, but we also shouldn't forget a very basic and clear principle -- whatever its policies are about who can and can't post or how, it's of fundamental importance that Twitter should not require users to run nonfree software in order to use the site.

25 February, 2021 06:05PM

February 24, 2021

Applied Pokology

Using maps in GNU poke

Editing data with GNU poke mainly involves creating mapped values and storing them in Poke variables. However, this may not be that convenient when poking several files simultaneously, and when the complexity of the data increases. poke provides a convenient mechanism for this: maps and map files.

24 February, 2021 12:00AM

February 23, 2021

poke @ Savannah

GNU poke 0.91 pre-released in alpha.gnu.org

GNU poke (http://www.jemarch.net/poke) is an interactive, extensible editor for binary data.  Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them.

The pre-release poke-0.91.tar.gz is now available at
https://alpha.gnu.org/gnu/poke/poke-0.91.tar.gz.

The planned date for releasing 1.0 is Friday 27 February 2021, but this may change depending on the amount of problems found in this pre-release, and the subsequent needed additional pre-releases.

Please report any problem found with the pre-release, comments or
patches to poke-devel@gnu.org.

On behalf of the poke developers, thanks!

--
Jose E. Marchesi    jemarch@gnu.org
GNU Project         http://www.gnu.org

23 February, 2021 10:23PM by Jose E. Marchesi

February 22, 2021

GNU Taler news

How to issue a Central Bank Digital Currency

2021-2: "How to issue a Central Bank Digital Currency" published

We are happy to announce the publication of our paper on "How to Issue a Central Bank Digital Currency" by the Swiss National Bank.

With the emergence of Bitcoin and recently proposed stablecoins from BigTechs, such as Diem (formerly Libra), central banks face a choice of either leaving the field to private actors or offering their own digital alternative to physical cash. We do not address whether a central bank should issue a central bank digital currency (CBDC). Instead, we demonstrate how a central bank could do so, if desired or needed. We propose a token-based system without distributed ledger technology and show how earlier-deployed, software-only electronic cash can be improved upon to preserve transaction privacy, meet regulatory requirements in a compelling way, and offer a level of quantum-resistant protection against systemic privacy risk. Neither monetary policy nor financial stability would be materially affected because our CBDC would replicate physical cash rather than bank deposits.

Download links

22 February, 2021 11:00PM

libredwg @ Savannah

libredwg-0.12.2 released

Minor bugfix:

  • Fixed extending the write buffer for the 2 CRC bytes. Occurs very seldomly (GH #315)

See https://www.gnu.org/software/libredwg/ and https://github.com/LibreDWG/libredwg/blob/0.12.2/NEWS

Here are the compressed sources:
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.2.tar.gz   (17.4MB)
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.2.tar.xz   (9MB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.2.tar.gz.sig
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.2.tar.xz.sig

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

Here are more binaries:
  https://github.com/LibreDWG/libredwg/releases/tag/0.12.2

Here are the SHA256 checksums:

8b4c0ddbd52598c5849e2c4b267411e557f282f336ef497afc919d516c0c394e  libredwg-0.12.2.tar.gz
9227f4cb8a4aa1b785038e2c583affe0d84194c97dca4794e143258b0302fb85  libredwg-0.12.2.tar.xz
6fe27f0e1f73b8ba1c9eb20a9597fe2781207c68cb3f8883e52c60f7b3ea2c27  libredwg-0.12.2-win32.zip
92d6fddb5dbe108edf8381e8c87889edd082d1c75b48b30bda8ca1b5fab00628  libredwg-0.12.2-win64.zip

[*] 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 libredwg-0.12.2.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 B4F63339E65D6414`

and rerun the `gpg --verify` command.

22 February, 2021 05:47PM by Reini Urban

February 21, 2021

parallel @ Savannah

GNU Parallel 20210222 ('Ang Sang Su Kyi') released

GNU Parallel 20210222 ('Ang Sang Su Kyi') has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/

Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4

It does not have to be as detailed as Juan's. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.

Quote of the month:

  GNU Parallel is a priceless timesaver
    -- June "Wakalix" @TWakalix@twitter

 

New in this release:

  • --filter only run jobs where the filter is true. The filter can contain replacement strings and Perl code such as: '{1} < {2}+1'
  • --template takes a text file as a template with replacement strings. Then it replaces the replacement strings and saves it under a new filename.
  • --plus implements {0%} {0#} replacement string for zero padded slot and sequence.
  • Warn that you probably mean -d '\r\n' if the first 3 values end in \r\n (DOS newline).
  • {= perlexpression =} must return the same value, if run twice on the same input.
  • Man pages available as .rst-format.
  • Bug fixes and man page updates.

News about GNU Parallel:

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.

If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.

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.

For example you can run this to convert all jpeg files into png and gif files and have a progress bar:

  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif

Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:

  find . -name '*.jpg' |
    parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200

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 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
       fetch -o - http://pi.dk/3 ) > install.sh
    $ sha1sum install.sh | grep 3374ec53bacb199b245af2dda86df6c9
    12345678 3374ec53 bacb199b 245af2dd a86df6c9
    $ md5sum install.sh | grep 029a9ac06e8b5bc6052eac57b2c3c9ca
    029a9ac0 6e8b5bc6 052eac57 b2c3c9ca
    $ sha512sum install.sh | grep f517006d9897747bed8a4694b1acba1b
    40f53af6 9e20dae5 713ba06c f517006d 9897747b ed8a4694 b1acba1b 1464beb4
    60055629 3f2356f3 3e9c4e3c 76e3f3af a9db4b32 bd33322b 975696fc e6b23cfb
    $ bash install.sh

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 February, 2021 09:58PM by Ole Tange

February 18, 2021

Mike Gran

Guile Potluck 2021

 Hello All-

In celebration of the (slightly belated) 10-year anniversary of Guile v2.0, we're having another Guile Potluck!  The Guile Potluck is a randomly annual event to give people a chance to show off their Guile projects and skills.  Think of it as a game jam, but, not constrained to games. 

To participate, on or before Mar 6, send an email to guile-user@gnu.org with Potluck in the subject line. Please include instructions on how to find your entry, which could be anything you like.  For example,

   - a script showing off some feature of Guile or your favorite Guile library
   - a blog post describing something interesting about Guile
   - an updated release of a neglected library
   - a mini-game
   - a graphical or audio demoscene-type demo
   
There probably won't be any prizes.  But there will definitely be an e-mail and blog post about the entries.

I'd love to see y'all participate. Feel free to e-mail me at spk121@yahoo.com if you'd like to discuss anything directly.

And please forward this info along, if you know of any other corners of the internet that might be interested.

Regards,
Mike Gran



18 February, 2021 08:09PM by Mike (noreply@blogger.com)

February 17, 2021

FSF News

PRESS: Guardian Project's Nathan Freitas to keynote LibrePlanet 2021

BOSTON, Massachusetts, USA -- Wednesday, February 17, 2021 -- The Free Software Foundation (FSF) today announced Guardian Project director Nathan Freitas as its second keynote speaker for LibrePlanet 2021. The annual technology and social justice conference will be held online on March 20 and 21, 2021, with the theme "Empowering Users."

17 February, 2021 10:25PM

poke @ Savannah

GNU poke 0.90 pre-released in alpha.gnu.org

GNU poke (http://www.jemarch.net/poke) is an interactive, extensible
editor for binary data.  Not limited to editing basic entities such as
bits and bytes, it provides a full-fledged procedural, interactive
programming language designed to describe data structures and to operate on them.

The pre-release poke-0.90.tar.gz is now available at
https://alpha.gnu.org/gnu/poke/poke-0.90.tar.gz.

The planned date for releasing 1.0 is Friday 27 February 2021, but this may change depending on the amount of problems found in this pre-release, and the subsequent needed additional pre-releases.

Please report any problem found with the pre-release, comments or
patches to poke-devel@gnu.org.

In behalf of the poke developers, thanks!

--
Jose E. Marchesi    jemarch@gnu.org
GNU Project         http://www.gnu.org

17 February, 2021 09:05PM by Jose E. Marchesi

February 14, 2021

health @ Savannah

GNU Health Hospital Management component 3.8 released!

Dear community:

I am very proud to announce the release of the series 3.8 from the GNU Health Hospital Management Information System (HMIS) component!

Twelve years old, the GNU Health project has now become a Libre digital Health ecosystem, with different solutions to meet different realities, integrating them in the Federation.

The year 2020, the year of the COVID-19 pandemic, has put our societies against the ropes, and challenging the public health system of every country around the globe.
The GNU Health community responded swiftly to this formidable challenge. Within hours of the official World Health Organization announcement, we were able to deliver the new ICD-10 codes of the COVID-19 disease; Include the pathology in the person record when it was confirmed by laboratory and setting the disease as a notifiable disease so the Min. of Health could have uptodate epidemiological information.

GNU Health has played a crucial role in many public health systems, not only by providing real-time observatory of COVID-19, but also, very importantly, study the impact of the socioeconomic conditions in both the incidence and severity of the disease on the underprivileged.

Our community keeps growing! A notable example is that GNU Health is now also part of the KDE community! KDE has adopted MyGNUHealth, the GH Personal Health record.
We are very grateful to KDE for trusting us! Most GNU/Linux users will have in their favorite GNU/Linux distribution a Personal Health Record focused on privacy and integrated with Libre devices and trackers. MyGNUHealth also runs on the PinePhone!

What is new in GNU Health 3.8 series

  • New Dentistry package with odontogram and dental procedures
  • Enhanced Page of Life generation (PoL)
  • Use FODT (Flat ODT) format for reports
  • Integrated infectious diseases Contact Tracing
  • Epidemiological observatory
  • International Classification of diseases, 11th revision (ICD-11)
  • Improved integration with Weblate (now 23 languages!)
  • Updated the UNIPROT protein natural variants DB from 2020
  • The HL7 FHIR server is now ported to Python3
  • New repositories for the components (HMIS, client, plugins, Thalamus...)

Development focus

In addition of the GH HMIS server, we will focus the development in the following  areas of the GNU Health ecosystem:

  • MyGNUHealth: The GNU Health application for desktop and mobile devices
  • The GNU Health Federation Portal

The GH Federation Portal has already started. It is a VueJS application and provides a single point of entry for individuals, health professionals and epidemiologists to the GNU Health Information system.

The GNU Health Federation integrates information from many health institutions and people from a region or country. The GH Federation portal will allow to manage resources, as well as the main point for analytics and reporting of massive demographics and epidemiological data generated nationwide. People, health centers and research institutions can benefit from the GNU Health Federation and from the GNU Health ecosystem in general.

Upgrading from GNU Health 3.6

  • Make a FULL BACKUP your kernel, database and attach directories !!!
  • Follow the instructions on the Wikibooks.

As always, no matter how hard we try to avoid them, there will be bugs, so please test the new system, upgrade process, languages, and give us your feedback via them via health@gnu.org

The community server has been already migrated to 3.8.0, so you just need to download the GNU Health HMIS client and enjoy it.

Free Software day

Finally, today is the Free Software day. We have chosen this date as the release date of the GH HMIS component, as a way to remind and stress the importance of Libre Software and Open Science in our society.

Happy and Healthy Hacking !

--
Dr. Luis Falcon, M.D.
President, GNU Solidario
Advancing Social Medicine
https://www.gnuhealth.org

14 February, 2021 10:27PM by Luis Falcon

February 13, 2021

freeipmi @ Savannah

FreeIPMI 1.6.7 Released

FreeIPMI 1.6.7 - 02/12/21
-----------------------------------
o Do not require IPMI access when running ipmi-fru with the --fru-file option.
o Fix default permissions of various config and system files.
o Minor documentation updates.

https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.7.tar.gz

13 February, 2021 10:45PM by Albert Chu

mailutils @ Savannah

Version 3.12

Version 3.12 of GNU mailutils is available for download.  This version includes the following bugfixes:

13 February, 2021 12:46PM by Sergey Poznyakoff

tar @ Savannah

Version 1.34

Version 1.34 of GNU tar is available for download (see the download directory for archives in other formats).  This version fixes the following bugs:

13 February, 2021 11:53AM by Sergey Poznyakoff

February 12, 2021

FSF Events

FSF Blogs

Register to attend the FSF's March 22nd seminar on free software licensing

Registration for the next seminar of free software licensing is now open. While registration is open to the public, this seminar is a special opportunity for legal professionals and law students who can potentially earn Continued Legal Education (CLE) credits for participating (approval pending).

12 February, 2021 09:55PM

Sylvain Beucler

Godot GDScript REPL

When experimenting with Godot and its GDScript language, I realized that I missed a good old REPL (Read-Eval-Print Loop) to familiarize myself with the language and API.

This is now possible with this new Godot Editor plugin :)

Try it at:
https://godotengine.org/asset-library/asset/857

12 February, 2021 09:33AM

February 11, 2021

FSF Blogs

LibrePlanet needs you: Volunteer remotely!

LibrePlanet, the world's premier free software conference, is coming up soon. We have two great days of talks planned, with over forty speakers from all over the globe, on March 20th and 21st, 2021.

11 February, 2021 08:30PM

February 10, 2021

Celebrate I Love Free Software Day on Feb. 14th by staying connected

10 February, 2021 09:50PM

GNU Guix

Join GNU Guix through Outreachy

We are happy to announce that GNU Guix offers a three-month paid internship through Outreachy, the inclusion program for groups traditionally underrepresented in free software and tech.

The initial application deadline is on Feb. 22, 2021 at 4PM UTC.

For further information, check out the timeline, information about the application process, and the eligibility rules.

If you’d like to contribute to computing freedom, Scheme, functional programming, or operating system development, now is a good time to join us. Let’s get in touch on the mailing lists and on the #guix channel on the Freenode IRC network!

Prospective mentors and applicants are encouraged to collect the draft proposals on the Guix Outreachy 2021 summer ideas page.

In the ongoing round, we have the pleasure to work with Magali Lemes as an Outreachy intern, who is working on the guix git log command.

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 Hurd or the Linux kernel, 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.

10 February, 2021 06:30PM by Gábor Boskovits

www-zh-cn @ Savannah

Free Software Foundation awarded perfect score from Charity Navigator, plus eighth consecutive four-star rating

Dear GNU CTT:

Thank you very much for the hard work in the past years.
Wish you all a good, happy and healthy Chinese New Year!

We are proud to know that:

Boston, Massachusetts, USA -- February 9th, 2021 -- The Free Software Foundation (FSF) has been awarded a four-star and 100% rating, the highest possible, from Charity Navigator, the largest independent evaluator of US-based nonprofit charities. The FSF was also selected for Charity Navigator's "Top Ten List" as one of "10 Charities Worth Watching." These designations exemplify the FSF's strong financial health and commitment to accountability and transparency.
Using objective analysis, Charity Navigator awards only the most fiscally responsible organizations a four-star rating, with metrics including governance, ethical practices, operations in accordance with industry best practices, and openness with donors and stakeholders. This is the eighth year in a row the FSF has received a four-star rating, a record attained by only six percent of the 160,000 charities evaluated by Charity Navigator. The FSF also earned perfect scores on "Financial Health" and "Accountability & Transparency," resulting in the organization's first-ever 100% rating, an accomplishment less than one percent of all charities evaluated by Charity Navigator are able to achieve. This is the second time the FSF has placed in the list of "10 Charities Worth Watching."
"The Free Software Foundation's exceptional four-star rating sets it apart from its peers and demonstrates its trustworthiness to the public,” according to Michael Thatcher, President and CEO of Charity Navigator. “Only a quarter of charities rated by Charity Navigator receive the distinction of our four-star rating. This adds the FSF to a preeminent group of charities working to overcome our world’s most pressing challenges. Based on its four-star rating, people can trust that their donations are going to a financially responsible and ethical charity when they decide to support the Free Software Foundation."
FSF executive director, John Sullivan, shared: "This is truly an accomplishment requiring the whole organization's efforts. It reflects excellence by our board of directors in its leadership, especially overseeing the FSF's financial management and key organizational policies, and by our whole staff, doing their work with exceptional efficiency and diligence, focused precisely on the FSF's mission. This is full validation of our supporters' confidence that when you contribute to the FSF, that hard-earned money will substantially advance the cause of software freedom."
The FSF's Charity Navigator profile can be visited at https://www.charitynavigator.org/index.cfm?bay=search.summary&orgid=8557.

10 February, 2021 01:30AM by Wensheng XIE

February 09, 2021

FSF News

Free Software Foundation awarded perfect score from Charity Navigator, plus eighth consecutive four-star rating

Boston, Massachusetts, USA -- February 9th, 2021 -- The Free Software Foundation (FSF) has been awarded a four-star and 100% rating, the highest possible, from Charity Navigator, the largest independent evaluator of US-based nonprofit charities. The FSF was also selected for Charity Navigator's "Top Ten List" as one of "10 Charities Worth Watching." These designations exemplify the FSF's strong financial health and commitment to accountability and transparency.

09 February, 2021 07:21PM

GNU Guix

Risk of local privilege escalation via setuid programs

On Guix System, setuid programs were, until now, installed as setuid-root and setgid-root (in the /run/setuid-programs directory). However, most of these programs are meant to run as setuid-root, but not setgid-root. Thus, this setting posed a risk of local privilege escalation (users of Guix on a “foreign distro” are unaffected).

This bug has been fixed and users are advised to upgrade their system, with commands along the lines of:

guix pull
sudo guix system reconfigure /run/current-system/configuration.scm

This issue is tracked as bug #46305; you can read the thread for more information. There are no known exploitation of this issue to date. Many thanks to Duncan Overbruck for reporting it.

Please report any issues you may have to guix-devel@gnu.org. See the security web page for information on how to report security issues.

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 Hurd or the Linux kernel, 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.

09 February, 2021 04:00PM by Ludovic Courtès

February 04, 2021

Riccardo Mottola

Arctic Fox 27.11.0 release

 This 2020 with COVID, quarantines and lockdown was and is a strange year, but it allowed me to take care of Arctic Fox quite a bit. A lot of work is going on in my Arctic Fox fork, which Matt dutifully imports.

Thousands of commits flew in into this new release, tackling JavaScript upgrades, build fixes, further metro removal, JIT optimizations. SO much was imported from Firefox that this is really exciting!

Arctic Fox continues to run very well on MacOS-X 10.7 for example, on my MacBook Pro:



But also Linux is fully supported, of course. 



Linux/PowerPC works as before, but still no JIT of course. Roy continues his fork with WindowsXP support which differs only by a minimal set of patches.


SPARC64 support was pursued, now NetBSD/SPARC64 compiles fully, but.... the browser crashes on startup. Help seeked!

The same goes for ARM, ARM64 and MIPS: we would love to get these platforms working again: they were probably lost in PaleMoon.


Arctic Fox thus continues the pursue of PaleMoon and Firefox heritage but with enhanced compatibility on more platforms, no Rust and legacy OS/Compiler support. If you like this, please help!

04 February, 2021 11:06AM by Riccardo (noreply@blogger.com)

February 03, 2021

FSF Blogs

February 02, 2021

GNU Guix

Meet Guix at FOSDEM

As usual, GNU Guix will be present at FOSDEM on February 6th and 7th. Due to the pandemic, this year’s edition takes place on-line. The downside is that we’ll miss beautiful Brussels, but on the up side hopefully people who cannot join physically will be able to attend this year, and the event’s carbon footprint will be much lower.

We’re happy to say that there will be several talks about Guix and related projects!

Sunday, the Declarative and Minimalistic Computing track will be home to several Guix talks:

Do not miss all the other exciting talks in this track, some by Guile and Guix hackers!

For the fourth time, we are also organizing a FOSDEM fringe event on Monday, February 8th, a one-day Guix workshop where contributors and enthusiasts will meet, on-line. Being an on-line event, we hope to attract people (maybe you?) who wouldn’t have come to the in-person meeting but will be happy to learn about what’s cooking in Guix and share their experience, needs, and ideas.

Again 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.

Attendance to the workshop is free and open to everyone, though you are invited to register (there are only a few seats left!). Join our BigBlueButton instance on Monday 8th, and check out the workshop’s wiki page for practical info. Hope to see you on-line!

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 Hurd or the Linux kernel, 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.

02 February, 2021 03:00PM by Ludovic Courtès

February 01, 2021

FSF Events

LibrePlanet 2021: Empowering Users

Join us online for LibrePlanet 2021: Empowering Users, the FSF's annual conference on technology and social justice.

01 February, 2021 05:00AM

January 31, 2021

libredwg @ Savannah

libredwg-0.12.1 released

LibreDWG version 0.12.1 - 2021/01/31 - beta:

Major bugfixes:
  * fixed dwg_bmp() and dwgbmp for >= r2004. Wrong dat offset.
  * Fixed EED with code 3 for layer handles. (Fixes GH #310, shanzhugit)
  * Fixed bit_convert_TU utf8 conversion with ubsan, wrong endian-ness.
  Various fuzzing errors detected and fuzzed by Chew Kin Zhong (See GH #304):
  * Fix possible null-deref with broken DWG's in dwg_get_first_object.
  * Fix possible null-deref with broken DWG's in dwg_find_class with empty
    CLASS.dxfname. (GH #309)
  * Fix possible null-deref with broken DWG's in dwglayers with empty
    LAYER.name. (GH #308)
  * Fix short integer overflow in EED checks when decoding malcrafted DWG's,
    which also led to encode buffer overflows. (GH #307)
  * Fix possible null-derefs with broken DWG's in json export. (GH #306)
  * Fix possible null-deref with broken DWG's in dwg_next_entity iterator. (GH #305)
  * Fix wrong TFF overflow check for static strings, where we cannot set
    the string nor the size. (GH #304)
  * Fix heap-overflows and invalid free's when decoding broken 3DSOLID's
    in malcrafted DWG's. Only accept version 1 and 2. (GH #304)
Minor features:
  * Added string converters with known TU sizes: bit_TU_to_utf8_len, bit_read_TU_len.

See https://www.gnu.org/software/libredwg/ and [NEWS](https://github.com/LibreDWG/libredwg/blob/0.12.1/NEWS)

Here are the compressed sources:
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.1.tar.gz   (17.4MB)
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.1.tar.xz   (9MB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.1.tar.gz.sig
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.1.tar.xz.sig

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

Here are more binaries:
  https://github.com/LibreDWG/libredwg/releases/tag/0.12.1

Here are the SHA256 checksums:

```
5a71bcb391f9da29e268e86edda3911ae0763fcdba3b21a3c139510474098542  libredwg-0.12.1.tar.gz
dedf502b7085bed716d4ffb669d1b699a988eabd928a48d13e30176b43823128  libredwg-0.12.1.tar.xz
cfa8e91e12761b14d3d6826cf3b5b336d12db74d805a99defe45bb25f029ae17  libredwg-0.12.1-win32.zip
1fd2a4c6c682a7ed9263d0c30780545b8c82f038fc483a206d7eeaf4d41c5cc1  libredwg-0.12.1-win64.zip
```

[*] 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 libredwg-0.12.1.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 B4F63339E65D6414`

and rerun the `gpg --verify` command.

31 January, 2021 05:04PM by Reini Urban

January 30, 2021

Sylvain Beucler

Android SDK 11 Rebuild

Android Rebuilds provides freely-licensed builds of Android development tools from a Mountain View-based company.
Proprietary binaries are rebuilt from source, build recipes are reverse-engineered.

SDK 11 (API 30) is mostly available, as unattended Docker build scripts, build documentation as well as convenience binaries.
Only the x86 system image currently fails to build.

30 January, 2021 09:25AM

January 28, 2021

parted @ Savannah

parted-3.4 released [stable]

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

Here is Parted's home page:

    http://www.gnu.org/software/parted/

For a summary of all changes and contributors, see:
  https://git.savannah.gnu.org/cgit/parted.git/log/?h=v3.4

or run this command from a git-cloned parted directory:
  git shortlog v3.3..v3.4 (appended below)

Here are the compressed sources and a GPG detached signature[*]:
  http://ftp.gnu.org/gnu/parted/parted-3.4.tar.xz
  http://ftp.gnu.org/gnu/parted/parted-3.4.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 parted-3.4.tar.xz.sig

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

  gpg --keyserver keys.gnupg.net --recv-keys 117E8C168EFE3A7F

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.16.1
  Gettext 0.21
  Gnulib v0.1-4131-g252c4d944a
  Gperf 3.1

NEWS

  • Noteworthy changes in release 3.4 (2021-01-27) [stable]

  Include local gnulib change to version-etc.c date.
  This means including a non-public gnulib commit in this release.
  cfg.mk: disable submodule checks to work around broken upstream gnulib

================================================================
Here is a log of the commits since parted 3.3

Alper Nebi Yasak (1):
      libparted: Add ChromeOS Kernel partition flag

Brian C. Lane (49):
      maint: post-release administrivia
      Switch gpt-header-move and msdos-overlap to python3
      maint: Add note about gpg key selection for gnupload
      tests: Test incomplete resizepart command
      Fix end_input usage in do_resizepart
      libparted: Add support for MSDOS partition type bls_boot (0xea)
      libparted: Add support for bls_boot to GPT disks
      NEWS: Add bls_boot to new features
      parted: Preserve resizepart End when prompted for busy partition
      tests: Add a test for resizepart on a busy partition
      tests: Update all the dmsetup tests to use ENABLE_DEVICE_MAPPER
      bsd: Fix gcc complaints when using boot_code pointer
      dos: Fix gcc complaints when using boot_code pointer
      linux: Fix gcc complains about signed sccanf variables
      tests: Fix unsigned warning in duplicate.c
      hfs: Fix gcc 10 bounds check warning
      hfs/advfs: Fix gcc 10 warnings about cast alignment
      hfs/advfs_plus: Fix gcc 10 warnings about cast alignment
      hfs/hfs: Fix gcc 10 warnings about cast alignment
      ext2: Fix gcc 10 warnings about cast alignment
      nilfs2: Fix gcc 10 warnings about cast alignment
      ntfs:  Fix gcc 10 warnings about cast alignment
      ufs:  Fix gcc 10 warnings about cast alignment
      ped_assert: Fix incorrect exception option
      ui: Fix command_line_get_disk_flag
      ui: Fix gcc 10 warning about snprintf truncating an int
      hfs/reloc: Fix gcc 10 warnings about cast alignment
      hfs/reloc_plus: Fix gcc 10 warnings about cast alignment
      fs/r/fat: Remove disabled code
      fs/r/hfs: Remove disabled code
      libparted: Remove disabled code
      libparted/fs: Fix GCC warnings suggesting pure for PED_ASSERT functions
      labels/bsd.c: Drop alpha_bootblock_checksum from bsd_probe
      maint: Update to latest gnulib
      maint: Update bootstrap script from latest gnulib
      maint: Bump library REVISION number for release
      configure.ac (AC_PREREQ): Require 2.64
      maint: Update copyright statements to 2020
      po/POTFILES.in: Remove xstrtol-error.c
      libparted: Check for NULL flag_name in ped_partition_flag_get_by_name
      libparted/fs: Add ./lib to include search path
      version 3.3.52
      maint: post-release administrivia
      README-release: Add information for updating the Translation Project
      maint: Update copyright statements to 2021
      Include local gnulib change to version-etc.c date
      cfg.mk: disable submodule checks to work around broken upstream gnulib
      NEWS: Mention the non-public gnulib commit
      version 3.4

Joe Slater (1):
      t6001-psep: modify device manage support detection

Max Campbell (1):
      Removed reference to ped_file_system_create

Petr Lautrbach (1):
      Do not link to libsepol or libselinux

Romain Perier (2):
      Add support for the F2FS filesystem
      tests: Add f2fs to the fs probe test

Shin'ichiro Kawasaki (6):
      libparted: Fix a GCC warning -Wunused-but-set-variable
      libparted: Fix warnings from GCC 8 -Wunused-variable and -Warray-bounds
      libparted: Fix warnings from GCC's -Wimplicit-fallthrough
      libparted: Avoid a GCC warning for unused functions
      libparted: Fix warnings from GCC 8 -Wsuggest-attribute=pure
      libparted: Fix warnings from GCC 8 -Wsuggest-attribute=const

28 January, 2021 12:43AM by Brian C. Lane

January 25, 2021

gnuastro @ Savannah

Gnuastro 0.14 released

The 14th release of Gnuastro is now available. See the full announcement for more.

25 January, 2021 12:40PM by Mohammad Akhlaghi

January 23, 2021

Sylvain Beucler

Android Emulator Rebuild

Android Rebuilds provides freely-licensed builds of Android development tools from a Mountain View-based company.

The Emulator package moved to a separate component and build system.

Emulator 30 is now available, as unattended Docker build scripts, build documentation as well as convenience binaries.

23 January, 2021 01:02PM

January 22, 2021

parallel @ Savannah

GNU Parallel 20210122 ('Capitol Riots') released

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

Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4

It does not have to be as detailed as Juan's. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.

Quote of the month:

  I think many people would be surprised to learn that GNU parallel is "just" a single Perl script.
    -- Peter Menzel @ptr_menzel@twitter

 

New in this release:

  • --memsuspend suspends jobs when there is little memory free. This way you can run jobs in parallel that add up to more RAM than is available.
  • $PARALLEL_ARGHOSTGROUPS and the replacement string {agrp} will give the hostgroup given on the argument when using --hostgroup.
  • Handy time functions for {= =}: yyyy_mm_dd_hh_mm_ss() yyyy_mm_dd_hh_mm() yyyy_mm_dd() yyyymmddhhmmss() yyyymmddhhmm() yyyymmdd() hash($str)
  • Bug fixes and man page updates.

News about GNU Parallel:

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.

If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.

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.

For example you can run this to convert all jpeg files into png and gif files and have a progress bar:

  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif

Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:

  find . -name '*.jpg' |
    parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200

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 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
       fetch -o - http://pi.dk/3 ) > install.sh
    $ sha1sum install.sh | grep 3374ec53bacb199b245af2dda86df6c9
    12345678 3374ec53 bacb199b 245af2dd a86df6c9
    $ md5sum install.sh | grep 029a9ac06e8b5bc6052eac57b2c3c9ca
    029a9ac0 6e8b5bc6 052eac57 b2c3c9ca
    $ sha512sum install.sh | grep f517006d9897747bed8a4694b1acba1b
    40f53af6 9e20dae5 713ba06c f517006d 9897747b ed8a4694 b1acba1b 1464beb4
    60055629 3f2356f3 3e9c4e3c 76e3f3af a9db4b32 bd33322b 975696fc e6b23cfb
    $ bash install.sh

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 January, 2021 12:22AM by Ole Tange

January 20, 2021

GNU Guix

Adding translations to Guix’ website

As part of GNU, Guix aims to bring freedom to computer users all over the world, no matter the languages they (prefer to) speak. For example, Guix users asking for help can expect an answer even if they do so in languages other than English.

We also offer translated software for people more comfortable with a language other than English. Thanks to many people who contribute translations, GNU Guix and the packages it distributes can be used in various languages, which we value greatly. We are happy to announce that Guix’ website can now be translated in the same manner. If you want to get a glimpse on how the translation process works, first from a translator’s, then from a programmer’s perspective, read on.

The process for translators is kept simple. Like lots of other free software packages, Guix uses GNU Gettext for its translations, with which translatable strings are extracted from the source code to so-called PO files. If this is new to you, the magic behind the translation process is best understood by taking a look at one of them. Download a PO file for your language at the Fedora Weblate instance.

Even though PO files are text files, changes should not be made with a text editor but with PO editing software. Weblate integrates PO editing functionality. Alternatively, translators can use any of various free-software tools for filling in translations, of which Poedit is one example, and (after logging in) upload the changed file. There also is a special PO editing mode for users of GNU Emacs. Over time translators find out what software they are happy with and what features they need.

Help with translations is much appreciated. Since Guix integrates with the wider free software ecosystem, if you intend to become a translator, it is worth taking a look at the styleguides and the work of other translators. You will find some at your language’s team at the Translation Project (TP).

So much for the translation of ordinary source code. With Po4a, we can also use Gettext’s tooling to translate Guix’ manual and cookbook. But all this was not true of its web presence. That’s why after a lengthy process, the website of GNU Guix has undergone an update. It now supports translation into other languages. Such support is known as internationalization (“i18n”).

Guix’ website is written in a variant of HTML (in which web pages are usually written) that integrates better with the Scheme programming language. Instead of XML tags, we use SXML. This allows web authors to mix code and text. It looks like this:

`(section
  (h2 "On packaging")
  (p
   "Packages are "
   (a (@ (href ,(manual-url "Defining-Packages.html"))) "defined")
   " as native "
   (a (@ (href ,(gnu-url "software/guile"))) "Guile")
   " modules."))

However, this mixing makes it more difficult to extract the strings to be translated. We therefore cannot take the same approach as gnu.org, which uses a software package called GNUnited Nations to extract from pure HTML mark-up. Translators are not always coders and we would prefer to show them only the textual part, like this:

msgid "Packages are <1>defined</1> as native <2>Guile</2> modules."

Our new, custom i18n system does this. The website authors need to mark translatable expressions in the same way ordinary strings are usually marked in Guile Scheme programs:

`(section
  ,(G_ `(h2 "On packaging"))
  ;; TRANSLATORS: Defining Packages is a section name
  ;; in the English (en) manual.
  ,(G_ `(p
         "Packages are "
         ,(G_ (manual-href "defined" (G_ "en") (G_ "Defining-Packages.html")))
         " as native "
         ,(G_ `(a (@ (href ,(gnu-url "software/guile"))) "Guile"))
         " modules.")))

Translators can arbitrarily change the ordering:

#. TRANSLATORS: Defining Packages is a section name
#. in the English (en) manual.
#: apps/base/templates/about.scm:64
msgid "Packages are <1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native <2>Guile</2> modules."
msgstr "Pakete werden als reine <2>Guile</2>-Module <1>definiert<1.1>de</1.1><1.2>Pakete-definieren.html</1.2></1>."

Details are documented here. We hope it strikes the right balance between simplicity for the website’s developers and translator comfort. Still missing is a way to translate blog posts like the one you are reading here.

With ideas for and by a more diverse community, we can look forward to a bright multi-lingual future. Please get in touch with your language’s team or us Guix developers if you want to help make Guix’ website available in your language as well!

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 Hurd or the Linux kernel, 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.

20 January, 2021 12:00PM by Florian Pelz

January 16, 2021

libsigsegv @ Savannah

libsigsegv 2.13 is released

libsigsegv version 2.13 is released.

New in this release:

  • Added support for macOS/arm64.
  • Added support for Solaris OpenIndiana.
  • Added support for catching stack overflow on Solaris 11/SPARC.
  • Added support for catching stack overflow on 64-bit Haiku.
  • Provide a correct value for SIGSTKSZ on 64-bit Solaris/x86. The one defined by this system is too small.
  • Improved support for Linux/RISC-V, Linux/nds32.
  • Improved support for Android.
  • Improved support for FreeBSD/x86, FreeBSD/x86_64, FreeBSD/arm, FreeBSD/arm64.
  • Improved support for 64-bit ABI on Solaris/x86_64.
  • NOTE: Support for Cygwin and native Windows is currently not up-to-date.

Download: https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.13.tar.gz

16 January, 2021 11:14PM by Bruno Haible

January 13, 2021

gnulib @ Savannah

Gnulib provides versatile bit-set implementations

Gnulib features bitset, a module to support operations on lists of bits.

Its API is rich, and includes:

  • all the expected operations on single bit (set, toggle, test, etc.);
  • all the traditional binary bitwise operators (and, or, xor), often in two flavors (return new values, or perform in place);
  • some useful ternary operations, such as ((a ∧ b) ∨ c), ((a ∧ ¬b) ∨ c), etc.  Also in two flavors;
  • many predicates (empty, equal, intersects, disjoint, subset and so forth);
  • and of course, object creation, destruction, printing, iteration, reverse iteration, etc.

The following example, taken from Bison, shows the bitset module in action.  It's a fix-point computation of `N`, a bitset of the "useful" symbols (a symbol is useful if it can actually correspond to a piece of text.  Think for instance of `a: a b; b: a;`, `a` and `b` are useless).

static void
useless_nonterminals (bitset N, bitset P)
{
  /* N is the bitset as built.  Np is set being built this iteration.
     P is bitset of all productions which have a RHS all in N.  */
  bitset Np = bitset_create (nnterms, BITSET_FIXED);
  while (true)
    {
      bitset_copy (Np, N);
      for (rule_number r = 0; r < nrules; ++r)
        if (!bitset_test (P, r)
            && useful_production (r, N))
          {
            bitset_set (Np, rules[r].lhs->number);
            bitset_set (P, r);
          }
      if (bitset_equal_p (N, Np))
        break;
      bitset_swap (N, Np);
    }
  bitset_free (N);
  N = Np;
}

Like several other gnulib modules, bitset's API actually sits on top of several implementations, with different performance profiles.  Indeed bitsets can have a fixed size, or being resizable; they can be tailored for dense sets (think of an array of bits), or sparse (think of list of bits, or alternatively an table of segments of dense bits).  The module also includes a dedicated implementation for small bitsets, fitting in machine words, which is automatically selects when appropriate.  It even features another implementation, stats, which wraps a "genuine" implementation to gather statistical data about the use of the bitsets, to help you tune your use of bitset.

All this in a very transparent manner: an argument provided to the constructor (see `BITSET_FIXED` in the example above).

Gnulib hosts another module, bitsetv, which uses the bitset module to provide support for matrices of bits.

Both modules were crafted in 2002 by Michael Hayes for GCC, but, to the best of our knowledge, it was never adopted there.  However, the Bison team imported into Bison and maintained it over the years, and later contributed it to gnulib.

13 January, 2021 12:17PM by Akim Demaille

January 09, 2021

findutils @ Savannah

GNU findutils 4.8.0 released

This is to announce findutils-4.8.0, a stable release.
See the NEWS below for more details.

GNU findutils is a set of software tools for finding files that match
certain criteria and for performing various operations on them.
Findutils includes the programs "find", "xargs" and "locate".
More information about findutils is available at:
  https://www.gnu.org/software/findutils/

Please report bugs and problems with this release via the the
GNU Savannah bug tracker:
  https://savannah.gnu.org/bugs/?group=findutils

Please send general comments and feedback about the GNU findutils
package to the mailing list (<mailto:bug-findutils@gnu.org):
  https://lists.gnu.org/mailman/listinfo/bug-findutils

There have been 96 commits by 8 people in the 71 weeks since 4.7.0:
  Andreas Metzler (5)             James Youngman (7)
  Bernhard Voelker (78)           Kamil Dudka (1)
  Bjarni Ingi Gislason (2)        Kim Thor (1)
  Hugo Gabriel Eyherabide (1)     Peter Frost (1)

This release was bootstrapped with the following tools:
   Autoconf 2.69
   Automake 1.16.2
   M4 1.4.18
   Gnulib v0.1-4349-g8ed1d1f9f

Please consider supporting the Free Software Foundation in its fund
raising appeal; see <https://www.fsf.org/appeal/>.

Thanks to everyone who has contributed!

Have a nice day,
Bernhard Voelker [on behalf of the GNU findutils maintainers]

================================================================================

Here are the compressed sources:
  https://ftp.gnu.org/pub/gnu/findutils/findutils-4.8.0.tar.xz

Here are the GPG detached signatures[*]:
  https://ftp.gnu.org/pub/gnu/findutils/findutils-4.8.0.tar.xz.sig

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

Here is the SHA1 checksum:

  b702a37d3a33038102659777ba1fe99835bb19fe  findutils-4.8.0.tar.xz

[*] 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 findutils-4.8.0.tar.xz.sig

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

gpg --keyserver keys.gnupg.net --recv-keys A5189DB69C1164D33002936646502EF796917195

and rerun the 'gpg --verify' command.

================================================================================

NEWS

  • Upcoming changes

For consistency with planned changes to POSIX, the semantics of 'find -mount'
may be different from that of 'find -xdev' in future releases.

  • Noteworthy changes in release 4.8.0 (2020-01-09) [stable]
    • Changes in xargs

'xargs -t' no longer outputs a trailing blank to stderr after the last argument
of each constructed command line to be executed.  [#57291]

xargs now warns when more than one of the conflicting options --max-lines (-L,
-l), --replace (-i/-I) and --max-args (-n) are specified on the command line.
[#52137]

    • Bug Fixes

find no longer crashes when an XFS filesystem is heavily changed during the run.
Discussed at: <https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html>

find -used works again.  This predicate was not working properly since adding
the support for sub-second timestamp resolution for various predicates in
FINDUTILS_4_3_3-1 back in 2007.
Discussed at: <https://lists.gnu.org/r/bug-findutils/2019-11/msg00010.html>

    • Improvements

'find -D exec' now diagnoses all -exec, -execdir, -ok and -okdir runs including
the call arguments and the exit code of the launched process. [#59083]

    • Documentation Changes

The documentation of 'find -printf %Ak' has been improved: it now refers to the
strftime(3) documentation for a complete list of supported conversion
specifiers, and documents the 'F' conversion specifier ('yyyy-mm-dd').

The man pages (find.1, locate.1, locatedb.5, updatedb.1, and xargs.1) now
consistently end with the sections "REPORTING BUGS", "COPYRIGHT" and "SEE ALSO",
with the latter referring to the online page on the GNU web server.

The "EXAMPLES" section in the find.1 man page now shows the examples in a better
structure and uses consistent formatting.

Various man page fixes - syntax issues and typos.
[#59745, #59330, #59012, #58193, #57807, #57775]

Other documentation changes:

#58654: doc: clarify that 'find -perm +MODE' is unrelated to umask

#58458: doc: improve section 'Hard links', especially fix the description
        regarding 'find -L -samefile FILE'.

#58205: find.1: clarify double dash '--' option

#58149: 'xargs --help' now mentions that --replace (-I, -i) splits the input
        at newline characters.

#57025: doc: enhance description of tests accepting numeric arguments in find.1
        [see also #49640].

#54730: Add additional valuable example of find -quit

#48135: Fix testsuite error on Hurd and BSD related to ln

#35253: Clarify descriptions of -printf %f, %h.

    • Changes to the build process

The configure option --without-fts has been removed.  The attempt to use
it stopped configure with an error message since 4.5.18 (2015) anyway.

-eof-

09 January, 2021 07:09PM by Bernhard Voelker

wget @ Savannah

GNU Wget 1.21.1 Released

Noteworthy changes in this release:

  • Fix compilation on MacOS and Solaris 9
  • Remove bashism from configure.ac
  • Fix a compilation warning on 32-bit systems

09 January, 2021 10:36AM by Darshit Shah

GNU Wget 1.21 Released

Noteworthy changes in this release:

  • Improve the number of translated strings
  • Remove all uses of alloca. In some places the length of untrusted strings has been used, e.g. strings from the command line or from remote.
  • Fix buffer overflows in progress bar code in some locales
  • Fix two null pointer accesses
  • Amend cookie file header to be recognized by the 'file' command
  • Post Handshake Authentication for OpenSSL
  • Require gettext version 0.19.3+
  • Add configure flags --enable-fsanitize-ubsan, --enable-fsanitize-asan and --enable-fsanitize-msan for gcc and clang
  • Make several smaller fixes, enhance fuzzing, enhance building

09 January, 2021 10:34AM by Darshit Shah

January 07, 2021

tar @ Savannah

Version 1.33

Version 1.33 of GNU tar is available for download.  Summary of changes in this version:

  • POSIX extended format headers do not include PID by default.
  • --delay-directory-restore works for archives with reversed member ordering.
  • Fix extraction of a symbolic link hardlinked to another symbolic link.
  • Wildcards in exclude-vcs-ignore mode don't match slash.
  • Fix the --no-overwrite-dir option.
  • Fix handling of chained renames in incremental backups.
  • Link counting works for file names supplied with -T
  • Accept only position-sensitive (file-selection) options in file list files.

07 January, 2021 03:05PM by Sergey Poznyakoff

GNU Guile

GNU Guile 3.0.5 released

We are delighted to announce the release of GNU Guile 3.0.5. This release adds optimizations that can turn chains of repeated comparisons, such as those produced by the case and (sometimes) the match macros, into efficient O(1) table dispatches. For full details, see the NEWS entry. See the release note for signatures, download links, and all the rest. Happy hacking!

07 January, 2021 12:50PM by Andy Wingo (guile-devel@gnu.org)

January 05, 2021

gnucobol @ Savannah

Release of GnuCOBOL 3.1.2

New GnuCOBOL features

  • XML GENERATE statement

   (note: runtime support needs additional library libxml2)

  • JSON GENERATE statement

   (note: runtime support needs additional library cJSON or JSON-C)

  
  • CONTINUE AFTER statement (COBOL 202x) implemented, also handle fractions

   of seconds in C$SLEEP now

  
  • TYPEDEF and SAME AS (COBOL 2002) implemented, including the MicroFocus

   and RM/COBOL variants

  • >>TURN (COBOL 2002) directive implemented, allowing some exception checks

   to be turned on/off per source as desired

  • Improved support for different compiler extensions (ACUCOBOL, IBM,

   Fujitsu, MicroFocus COBOL, Microsoft COBOL, RM/COBOL, CA Realia and more)

  • file handling: include support for a callable EXTFH interface also provided

   by several compilers including Micro Focus
   This allows users to insert an external file handler while retaining
   all of the normal COBOL I/O functions with a possible callback to libcob.
   To have the compiled program call `yourfh()` for file I/O use:
   `cobc -fcallfh=yourfh`
   In turn `yourfh()` may call `EXTFH()` to use I/O functions from GnuCOBOL.
   The external file handler can also be directly invoked from COBOL, too,
   using `CALL "EXTFH"`.
    * Note: Not each flag contained in the FCD3 is handled already  *

  • file handling: added support for [RE]WRITE FILE file FROM source
  • file handling: name mapping adjusted (improved MF and ACU-compatibility):

   entries starting with a period or number are not resolved any more,
   periods in the external identifier are always replaced by underscore
    -> MY.FILE is resolved by DD_MY_FILE, dd_MY_FILE, MIFILE now;
   prefixes "-F " and "-D " are removed from external names;
   if filename is not absolute after translation, COB_FILE_PATH is now
   still applied;
   File name mapping now applies both to COBOL statements and CALLable
   CBL_ and C$ file routines.

  
  • Screen I/O: initial mouse support (for details see runtime.cfg),

   use of CURSOR clause in SPECIAL-NAMES for positioning on ACCEPT

  • on abort a stack trace will be genereated, this can be suppressed by

   runtime configuration option COB_STRACK_TRACE

  • the dump that is generated on abort (depending on -fdump at compile-time)

   was heavily improved and combines consecutive identical OCCURS items,
   leading to smaller dump files

  • changes in handling COPY statement:

   * copybook names that contain an extension aren't searched with additional
     extensions [as post-rc1-change this may be set to old behaviour by
     defining COB_MULTI_EXTENSION when building GnuCOBOL/cobc]
   * library names are now tested for environment "COB_COPY_LIB_libname",
     allowing the directory to specified externally (also as no-directory
     by exporting with empty value) and has a fallback (with a warning) to
     be effectively ignored (as previous versions did this)

Removed functions

  • SCREEN SECTION, REPORT-WRITER module: removed non-standard extension

   "LINE / COL signed-integer" (inadvertently available since 2.2/3.0rc1);
   which will now raise an error "unsigned integer expected";
   if used replace by standard "LINE / COL +/- integer"

Obsolete features

(will be removed in the next version if no explicit user requests are raised)

  • support for Borland C compiler and linker
  • -fif-cutoff flag for cobc (currently disabled, see entry below in 3.0rc1)
  • old OpenCOBOL-only-EXTFH

Changes to the COBOL compiler (cobc) options

  • new options:

   -f[no]-ec=exception-name to tune the exception checks similar to the >>TURN
       directive, you may also leave out the "EC-" prefix here, example to
       enable all checks but disable all bound checks but OCCURS DEPENDING ON:
       cobc -debug -fno-ec=bound -fec=bound-odo

  • adjustments to warning options:

   -Wextra "new" option to enable every possible warning that is not dialect
       specific (this option used to be called -W)
   -Wadditional  new warning group for all warnings that don't have a group
       on their own
   -Wno-error and -Wno-error=<warning> to treat (specific <warning>s) not as error
   -Wdangling-text for raising the warning "source text after program area",
       not included in -Wall any more
   -Wno-ignored-error allows to suppress messages that normally would be an
       error and are only allowed because they are never executed
   -Wcorresponding is now enabled by default

   -f[no]-diagnostics-show-option, enabled by default, shows the
    command line option responsible for the diagnostic message

   extra information to a warning (or error) is now marked as "note:"

  • the interal Xref got a huge speedup, has all references in ascending order

   now and includes the total amount of direct references

  • the interal listing got a speedup and has all error references in

   ascending order now

  • cobc -g (and configure --enable-debug) use the most expressive

   debugging options available on the system

  • cobc -g now auto-includes references to the COBOL source file and to

   all ENTRY and SECTION elements to ease source level debugging

  

Changes in the COBOL runtime (libcob)

  • Messages from the COBOL runtime are also translated now (if installed).

   To prevent this disable translations in general with using the configure
   option --disable-nls (or by deactivating ENABLE_NLS in config.h).

  • libcob.h does no longer auto-include gmp.h (behavior since 2.x), if you link

   against libcob and need cob_decimal include gmp.h/mpir.h yourself before;
   otherwise you do not need it in your include path any more

  • execution times of INSPECT and INITIALIZE with OCCURS were heavily cut down
  • convenience functions for direct C access to COBOL fields and for debugging

   were added, see new C-API documentation

  • first-time file-locking under Win32
  • Breaking change: previously the return-code of registered error handlers

   (by CBL_ERROR_PROC) were ignored. This was changed according to the
   documentation for CBL_ERROR_PROC -> a RETURN-VALUE of ZERO skips further
   error handlers to be called, including the internal one.

New build features

  • Running the internal tests by make check now fails if the testsuite has any

   unexpected result.

  • The modules and test programs in the NIST COBOL-85 test suite (tests/cobol85)

   may now be build and/or tested and/or the test results checked separately.
   You now may also run the tests with a previous installed version of GnuCOBOL
   (or a version specified by a manual temporary setup).
   For details see tests/cobol85/README.

  • new configure option --with-math=ARG to specify which math multiple precision

   library is to be used, where ARG may be: check (default), gmp, mpir

  • new configure options --with-xml2 / -without-xml2 to explicit force/disable

   XML runtime support, otherwise it will be included if found as working

  • new configure option --with-json / -without-json to explicit force/disable

   JSON runtime support, otherwise it will be included if found as working
   Note: As a special case you may built-in cJSON by placing its source in
   the folder "libcob". If it is included there, this version will be compiled
   into libcob. It may be enforced with --with-json=local,
   like --with-json=cjson and --with-json=json-c enforce the given library.

  • To adjust the build system for GMP/MPIR you may use the new variables

   GMP_CFLAGS / MPIR_CFLAGS and GMP_LIBS / MPIR_LIBS.
   If unset configure will try pkg-config.

  • To adjust configure to use libxml2 you may use the new variables XML2_CFLAGS

   and XML2_LIBS. If unset configure will use pkg-config / xml2-config.

  • To adjust configure to use libcjson you may use the new variables CJSON_CFLAGS

   and CJSON_LIBS, similar JSON_C_CFLAGS and JSON_C_LIBS for libjson-c.
   If unset configure will use pkg-config.

  • new configure option --enable-hardening to either enable GNU C's

   hardening options or leave as-is, or disable (which previous versions
   effectively did)

  • build system: defaults.h is not created or included any more, all configure

   provided defines are now found in the single header config.h

  • Any time after `make` you can call `pre-inst-env` script to use the still-

   uninstalled binaries. Samples:
   pre-inst-env cobc -xj prog.cob
   pre-inst-env cobcrun -M prog start
   pre-inst-env may also be called without parameters to start a new shell
   session with the environment adjusted to use the uninstalled version.

General

  • Too much bug fixes to list here (please check ChangeLogs for full details),

  includes the following CVEs:

 

   compiler (may be triggered with special crafted source files)
   CVE-2019-14468, CVE-2019-14486, CVE-2019-14528, CVE-2019-14541,
   CVE-2019-16396, CVE-2019-16395

  • GnuCOBOL's getopt implementation honors POSIXLY_CORRECT now:

  if set to any value the option parsing in cobc, cobcrun and CBL_GC_GETOPT
  stops at the first nonoption, otherwise it stays with the old behaviour and
  re-orders nonoptions to the end)

Known issues in 3.1

  • testsuite:

  * if built with vbisam, cisam or disam, depending on the version used, some
    tests will lead to UNEXPECTED PASS, while others may fail
  * possibly failing tests (false positives):
    * temporary path invalid
    * compiler outputs (assembler)
    * compile from stdin
  * NIST: OBNC1M.CBL false positive (the test runner uses a nonportable way of
    emulating a program kill)

  • the recent additions of ">> TURN" and "variable LIKE variable" may not work

   as expected in all cases

  • features that are known to not be portable to every environment yet

   (especially when using a different compiler than GCC)
    * function with variable-length RETURNING item
    * USAGE POINTER, which may need to be manually aligned

05 January, 2021 06:24PM by Simon Sobisch

mailutils @ Savannah

Version 3.11.1

Version 3.11.1 of GNU mailutils is available for download.  This version fixes a bug in the library function mu_url_create_hint that caused MH inc to coredump when called without explicit -file option. It also includes updated localizations.

05 January, 2021 02:14PM by Sergey Poznyakoff

January 03, 2021

www-zh-cn @ Savannah

2020 summary

Dear www-zh-cn-translators:

Thank you all for the great effort in 2020.

Despite the difficulties from many directions, we as a team have achieved something proudly.

1. This year, the total number of new translations was more than
in 2019.  The Turkish team made an impressive progress, both
in terms of new translations and in terms of updating the existing
ones.  Other notably good teams are Chinese ("Simplified"),
Spanish and French.  The Japanese team considerably reduced
the amount of outdated translations throughout the year.

The table below shows the number and size of newly translated
articles and the translations to convert to the PO format
in important directories (as of 2020-12-31).

+--team--+------new-------+---to convert---+-*-outdated-+
|  cs    |   0 (  0.0Ki)  |   0 (  0.0Ki)  |  32 (66%)  |
+--------+----------------+----------------+------------+
|  es    |  20 (256.4Ki)  |   0 (  0.0Ki)  | 1.2 (0.6%) |
+--------+----------------+----------------+------------+
|  fa    |   1 ( 12.4Ki)  |   1 (  9.4Ki)  |  24 (89%)  |
+--------+----------------+----------------+------------+
|  fr    |  12 (101.4Ki)  |   0 (  0.0Ki)  | 0.3 (0.1%) |
+--------+----------------+----------------+------------+
|  it    |   0 (  0.0Ki)  |   0 (  0.0Ki)  |  50 (38%)  |
+--------+----------------+----------------+------------+
|  ja    |   0 (  0.0Ki)  |   0 (  0.0Ki)  |  25 (17%)  |
+--------+----------------+----------------+------------+
|  ml    |   2 ( 27.3Ki)  |   0 (  0.0Ki)  |  14 (47%)  |
+--------+----------------+----------------+------------+
|  pl    |   1 ( 11.3Ki)  |   1 (181.0Ki)  |  48 (33%)  |
+--------+----------------+----------------+------------+
|  pt-br |   4 ( 18.9Ki)  |   0 (  0.0Ki)  |  6.2 (4%)  |
+--------+----------------+----------------+------------+
|  ru    |   4 ( 32.1Ki)  |   0 (  0.0Ki)  | 1.1 (0.4%) |
+--------+----------------+----------------+------------+
|  sq    |   8 ( 69.7Ki)  |   0 (  0.0Ki)  |  1.7 (5%)  |
+--------+----------------+----------------+------------+
|  tr    |  57 (662.3Ki)  |   0 (  0.0Ki)  | 0.6 (1.1%) |
+--------+----------------+----------------+------------+
|  zh-cn |  36 (425.8Ki)  |   0 (  0.0Ki)  | 1.8 (1.3%) |
+--------+----------------+----------------+------------+
|  zh-tw |   5 ( 41.2Ki)  |  16 (232.6Ki)  |  4.8 (15%) |
+--------+----------------+----------------+------------+
+--------+----------------+----------------+
| total  | 150 (1658.9Ki) |  68 (1763.3Ki) |
+--------+----------------+----------------+

2. We have 3 new members joining us as contributors, namely
hahawang
shankangke
nios34

Warmly welcome and thank you.

Happy GNU year, and thank you for your contributions!
wxie

03 January, 2021 03:10AM by Wensheng XIE

January 02, 2021

alive @ Savannah

GNU Alive 2.0.3 available

GNU Alive 2.0.3 is available.  Full announcement:

GNU Alive is a keep-alive program for internet connections.

02 January, 2021 12:25AM by Thien-Thi Nguyen

December 31, 2020

Riccardo Mottola

ArcticFox now on Raspberry 3 - ARM support is back!

Just completed these days... ArcticFox now runs fine on Raspberry PI 3, it also compiled natively on it on Raspbian!

Coming from PaleMoon which had dropped ARM support, it took quite some time, but it is kicking again and the classic browser is a good companion on the Raspberry!

It runs surprisingly good and you can even watch youtube videos. Obligatory screenshot as proof:


In fact, this same post was written on my RPI3. While I was able to fix neon support in graphics, I have issues doing a cortex-a53 optimized build. I also have issues compiling on the newer RPI3 which as a newer Raspbian/RpiOS, with similar errors. However, seeing ARM support back is a good feeling .

31 December, 2020 07:12PM by Riccardo (noreply@blogger.com)

libredwg @ Savannah

libredwg-0.12 released

New add API to easily create new DWGs (or DXFs) from scratch, for CAD programs.
New dwgadd helper.
Removed deprecated old API functions.

New features:
  * Add a new experimental dwg_add_ENTITY/OBJECT API for easier CAD write support,
    starting with GauchoCAD and SolveSpace. Most entities and some objects.
    Similar to the VBA interface and object model, just with our names.
  * cmake support enhanced to programs and LTO. Should be usable now by its own,
    but MSVC is untested.
  * Add a new experimental dwgadd helper, to create fresh DWG's easily from scratch.
  * Added support for many more object/entity types:
    Now stable: ACSH_CONE_CLASS ACSH_TORUS_CLASS BLOCKALIGNMENTPARAMETER
      BLOCKALIGNMENTGRIP BLOCKLOOKUPGRIP BLOCKROTATIONGRIP
    Now unstable:
      ALDIMOBJECTCONTEXTDATA ASSOC2DCONSTRAINTGROUP ASSOCACTIONPARAM
      ASSOCARRAYACTIONBODY ASSOCARRAYMODIFYPARAMETERS
      ASSOCARRAYPATHPARAMETERS ASSOCARRAYPOLARPARAMETERS
      ASSOCARRAYRECTANGULARPARAMETERS ASSOCASMBODYACTIONPARAM
      ASSOCCOMPOUNDACTIONPARAM ASSOCDIMDEPENDENCYBODY ASSOCFACEACTIONPARAM
      ASSOCOBJECTACTIONPARAM ASSOCOSNAPPOINTREFACTIONPARAM
      ASSOCPATHACTIONPARAM ASSOCPOINTREFACTIONPARAM ASSOCVARIABLE
      ASSOCVERTEXACTIONPARAM BLKREFOBJECTCONTEXTDATA
      BLOCKALIGNEDCONSTRAINTPARAMETER BLOCKANGULARCONSTRAINTPARAMETER
      BLOCKARRAYACTION BLOCKDIAMETRICCONSTRAINTPARAMETER
      BLOCKHORIZONTALCONSTRAINTPARAMETER BLOCKLINEARCONSTRAINTPARAMETER
      BLOCKLOOKUPACTION BLOCKLOOKUPPARAMETER BLOCKPARAMDEPENDENCYBODY
      BLOCKPOINTPARAMETER BLOCKPOLARGRIP BLOCKPOLARPARAMETER
      BLOCKPOLARSTRETCHACTION BLOCKRADIALCONSTRAINTPARAMETER
      BLOCKREPRESENTATION BLOCKSTRETCHACTION BLOCKUSERPARAMETER
      BLOCKVERTICALCONSTRAINTPARAMETER BLOCKXYGRIP DATALINK EVALUATION_GRAPH
      FCFOBJECTCONTEXTDATA GRADIENT_BACKGROUND GROUND_PLANE_BACKGROUND
      IBL_BACKGROUND IMAGE_BACKGROUND LEADEROBJECTCONTEXTDATA
      MTEXTOBJECTCONTEXTDATA PARTIAL_VIEWING_FILTER PARTIAL_VIEWING_INDEX
      PLANESURFACE POINTCLOUD POINTCLOUDCOLORMAP POINTCLOUDDEF
      POINTCLOUDDEFEX POINTCLOUDDEF_REACTOR POINTCLOUDDEF_REACTOR_EX
      POINTCLOUDEX RENDERENTRY RENDERENVIRONMENT RENDERGLOBAL
      SKYLIGHT_BACKGROUND SOLID_BACKGROUND TEXTOBJECTCONTEXTDATA
    Debugging changes: Renamed ATEXT to ARCALIGNEDTEXT,
      Added POLARGRIPENTITY.
  * Added dwg_obj_generic_handlevalue(), dwg_obj_generic_dwg(),
API breaking changes:
  * Disable old deprecated functional API, all object-specific field getters
    and setters. Re-enable with -DUSE_DEPRECATED_API
  * Renamed UNDERLAY to {PDF,DGN,DWF}UNDERLAY and likewise PDFDEFINITION, ...
  * Disable static for Windows. This shrinks the released Windows zip file
    from 41MB to 24MB. The 0.10.1 had 20MB, 0.6.1 15MB.
Minor features:
  * fix more C++ compatiblity: restrict is __restrict, disable __nonnull.
    Now successfully used in SolveSpace.
  * Add gperf hash tables for all objects and dxfclasses, for faster lookup
    dxfnames to create classes, and object names with most properties.
    Previously lookup was linear, now constant. Needs also less memory.
  * Simplified API: dwg_obj_generic_parent(), dwg_ent_generic_parent() to take void*.
  * Added public geometry helpers: dwg_geom_angle_normalize(), dwg_geom_normalize(),
    dwg_geom_cross(), dwg_geom_transform_OCS()
Major bugfixes:
  * Enable python shared lib, add -no-undefined and PYTHON_LIBS.

Here are the compressed sources:
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.tar.gz   (17.4 MB)
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.tar.xz   (9 MB)

Here are the GPG detached signatures[*]:
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.tar.gz.sig
  http://ftp.gnu.org/gnu/libredwg/libredwg-0.12.tar.xz.sig

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

Here are more binaries:
  https://github.com/LibreDWG/libredwg/releases/tag/0.12

Here are the SHA256 checksums:

fe35c931529c1bdbc2d5d1d7ca3dff2d70615271f8f7b77318b9a20873e7fe0e  libredwg-0.12.tar.gz
a85573cd100d303e01b7e75bb80d7b87d927a4c7c017848c0998aa11ffa3aa7c  libredwg-0.12.tar.xz

[*] 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 libredwg-0.12.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 B4F63339E65D6414

and rerun the 'gpg --verify' command.

31 December, 2020 05:16PM by Reini Urban

Riccardo Mottola

DataBasin 1.1 S released

DataBasin 1.1S and DataBasinKit have finally been released, after a long time-span.

This release is dedicated to my late friend and colleague Steven Rovelli (hence the "S" in the release name) who parted from us too young. He was an enthusiastic user of DataBasin and used and supported it inside our company, for countless AMS tasks. COVID-19 carried him away and he will be sorely missed.

This release is marks also the move from the GAP svn repository, to standalone projects on GitHub.

DataBasin sports some interesting news:

  • Improved interface with ComboBoxes to select update/insert objects and preferences to filter out more system objects
  • remember last successful login username
  • getUpdated / getDeleted
  • Undelete
  • Improved support for sub-objects and lists and unpacking (from DataBasinKit), this allows for example to use sub-queries, provided the related object is one (LIMIT 1)
  • support for enabling Assignment Rules in create/update

The core DataBasinKit has also many improvements,, some of them are not completely appreciated from the GUI interface, but useful for other programs wishing to use the API:

  • enhanced and rewritten handling of sub-objects and object-lists in query results: this allows to have SObject lists interpreted as such when using subqueries.
  • getUpdated and getDeleted
  • undelete
  • possiblity trigger Assignment Rules in create & update

31 December, 2020 01:14PM by Riccardo (noreply@blogger.com)

December 30, 2020

gnulib @ Savannah

Gnulib supports portable multithreading

There are three main motivations for using multiple threads in a program:

  • To get computational tasks done is less time, by using more than one CPU core at once.
  • For event handling. The older approach with signals and/or file descriptors in non-blocking mode leads to brittle and racey programs. Using separate threads that use read() or write() produces more reliable programs with simpler and thus more maintainable code.
  • To otherwise simplify the logic of background tasks.

For the first case, the OpenMP standard and its implementation in GCC, libgomp, provide all you need. It uses multiple threads under the hood. Use the Autoconf macro AC_OPENMP for portability.

For the other cases, or when you want to control the threads yourself, you'll need to choose a multithreading API. Two such APIs are available across all platforms, through Gnulib:

POSIX multithreading and ISO C multithreading are similar. ISO C multithreading contains only the essential APIs, whereas POSIX multithreading has more features. For example, while both have locks/mutexes, only POSIX has spin-locks. And when creating a thread, only POSIX allows to specify thread attributes, such as its stack size or its scheduling priority. Also, lock initialization is straightforward in POSIX, but clumsy in ISO C.

Without Gnulib, none of these two APIs can be used across platforms:

  • The POSIX API is generally available on all Unix platforms for the last ten years, with some bugs on older platforms such as HP-UX. On native Windows, there is a buggy implementation called 'winpthreads' for mingw (and mingw only — not usable with MSVC).
  • The ISO C API is available only starting with glibc 2.28, FreeBSD 10, and NetBSD 9. Buggy implementations are also available in AIX 7 and Solaris 11.4.

With Gnulib, you can use either of these APIs across platforms:

  • For the POSIX API, Gnulib adds an implementation for native Windows and fixes for the known bugs on Unix systems.
  • For the ISO C API, Gnulib adds an implementation or fixes, as needed to make things work right.

My personal recommendation is:

  • Use the POSIX API, except possibly for teaching computer science. If, at some point, you need thread attributes or spin-locks, you would be stuck with the ISO C API.
  • On native Windows, use the POSIX API together with the configure option '--enable-threads=windows'. This option avoids the buggy 'winpthreads' library and instead uses the Gnulib implementation of the POSIX threads.

30 December, 2020 03:10PM by Bruno Haible

December 24, 2020

unifont @ Savannah

Unifont 13.0.05 Released

24 December 2020 Unifont 13.0.05 is now available.  This is a minor release with adjustments to existing glyphs and completion of the Under ConScript Unicode Registry (UCSUR) Braille Extended script.  See http://unifoundry.com/unifont/ for further details.

Download this release from GNU server mirrors at:

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

or if that fails,

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

or, as a last resort,

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

These files are also available on the unifoundry.com website:

     https://unifoundry.com/pub/unifont/unifont-13.0.05/

Font files are in the subdirectory

     https://unifoundry.com/pub/unifont/unifont-13.0.05/font-builds/

24 December, 2020 01:10PM by Paul Hardy

www-zh-cn @ Savannah

Welcome our new member - hahawang

Dear www-zh-cn-translators:

It's a good time to welcome our new member:

User Details:
-------------
Name:    王哈哈
Login:   hahawang
Email:   hahwang@yandex.com

We thank hahawang for his commitment for contributing to GNU Chinese Translation.
We wish hahawang has a wonderful and successful free journey.

24 December, 2020 09:28AM by Wensheng XIE

December 23, 2020

mailutils @ Savannah

Version 3.11

Version 3.11 of GNU mailutils is available for download.

See the NEWS file entry for a list of noteworthy changes in this release.

23 December, 2020 02:31PM by Sergey Poznyakoff

gnulib @ Savannah

Gnulib helps you write efficient algorithms

When writing algorithmic code, the classical approach is to define the data structures, write the algorithm, debug it, and then profile it. It often occurs that you notice that a certain list, set, or map can get large and that this costs CPU time. Then, you change the data structure, adapt the code (often substantial changes), debug it again, and finally profile it again.

Gnulib has a set of container types, that you can use for your data structures, and that can make this process easier. With these types, changing the data structure is a one-liner change, no second debugging is needed, and you can proceed to the final profiling right away.

How does this work? The Gnulib container types have the same API across different implementations, each with different performance characteristics. Since 2018, the available container types are:

  • Lists (array, circ. array, link, tree, hash)
  • Set (array, hash, linkedhash)
  • Ordered set (array, tree)
  • Map (array, hash, linkedhash)
  • Ordered map (array, tree)

The performance characteristics are documented. So, a typical change replaces

  result->entries_reversed =
    gl_list_create_empty (GL_LINKEDHASH_LIST, entry_equals, entry_hashcode,
                          NULL, true);

with

  result->entries_reversed =
    gl_list_create_empty (GL_RBTREEHASH_LIST, entry_equals, entry_hashcode,
                          NULL, true);

and the corresponding commit message was: Speed up from O(n²) to O(n).

23 December, 2020 01:42PM by Bruno Haible

gdbm @ Savannah

Version 1.19

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

  • Pre-read the memory mapped regions on systems that support it.
  • gdbmtool: tagged initialization of structured data.
  • Preserve locking type during database reorganization.

23 December, 2020 12:59PM by Sergey Poznyakoff

December 21, 2020

Christopher Allan Webber

Vote for Amy Guy on the W3C TAG (if you can)

My friend Amy Guy is running for election on the W3C TAG (Technical Architecture Group). The TAG is an unusual group that sets a lot of the direction of the future of standards that you and I use everyday on the web. Read their statement on running, and if you can, ie if you're one of those unusual people labeled as "AC Representative", please consider voting for them. (Due to the nature of the W3C's organizational and funding structure, only paying W3C Members tend to qualify... if you know you're working for an organization that has paying membership to the W3C, find out who the AC rep is and strongly encourage them to vote for Amy.)

So, why vote for Amy? Quite simply, they're running on a platform of putting the needs of users first. Despite all the good intents and ambitions of those who have done founding work in these spaces, this perspective tends to get increasingly pushed to the wayside as engineers are pressured to shift their focus on the needs of their immediate employers and large implementors. I'm not saying that's bad; sometimes this even does help advance the interest of users too, but... well we all know the ways in which it can end up not doing so. And I don't know about you, but the internet and the web have felt an awful lot at times like they've been slipping from those early ideals. Amy's platform shares in a growing zeitgeist (sadly, still in the wispiest of stages) of thinking and reframing from the perspective of user empowerment, privacy, safety, agency, autonomy. Amy's platform reminds me of RFC 8890: The Internet Is For End Users. That's a perspective shift we desperately need right now... for the internet and the web both.

That's all well and good for the philosophical-alignment angle. But what about the "Technical" letter in TAG? Amy's standing there is rock-solid. And I know because I've had the pleasure of working side-by-side with Amy on several standards (including ActivityPub, of which we are co-authors.

Several times I watched with amazement as Amy and I talked about some changes we thought were necessary and Amy just got in the zone, this look of intense hyperfocus (really, someone should record the Amy Spec Editing Zone sometime, it's quite a thing to see), and they refactored huge chunks of the spec to match our discussion. And Amy knows, and deeply cares, about so many aspects of the W3C's organization and structure.

So, if you can vote for, or know how to get your organization to vote for, an AC rep... well, I mean do what you want I guess, but if you want someone who will help... for great justice, vote Amy Guy to the W3C TAG!

21 December, 2020 09:07PM by Christopher Lemmer Webber