Planet GNU

Aggregation of development blogs from the GNU Project

February 28, 2024

www-zh-cn @ Savannah

LibrePlanet 2024: Cultivating Community - Agenda is fresh out!

https://www.fsf.org/blogs/community/exciting-talks-hands-on-workshops-and-thrilling-discussions-await-you-at-libreplanet-2024

Examples for sessions on cultivating community we are looking forward to are:

    "Fostering and renewing community in a long-lived free software project" by T. Kim Nguyen;
    "Empowering youth in the digital age: A path to success" by Leonardo Champion;
    "Connecting community organizations and technological activists for software freedom" by Christina Haralanova;
    "Hosting freedom - A behind-the-scenes tour with the Savannah Hackers" by Corwin Brust; or
    "It is easy to contribute to GNU" by Wensheng Xie.

I will be talking there. If you have anything to say, please let me know.


Please

https://my.fsf.org/civicrm/event/info?reset=1&id=125
or
https://my.fsf.org/civicrm/event/info?reset=1&id=126

Happy Hacking
wxie

28 February, 2024 02:56PM by Wensheng XIE

parallel @ Savannah

GNU Parallel 20240222 ('Навальный') released [stable]

GNU Parallel 20240222 ('Навальный') has been released. It is available for download at: lbry://@GnuParallel:4

Quote of the month:
 
  Stop paralyzing start parallelizing
    -- @harshgandhi100@YouTube
 
New in this release:

  • No new functionality
  • Bug fixes and man page updates.

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 883c667e01eed62f975ad28b6d50e22a
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
    $ 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.

28 February, 2024 12:17AM by Ole Tange

February 27, 2024

FSF Blogs

Exciting talks, hands-on workshops, and thrilling discussions await you at LibrePlanet 2024

In this blog post, we're sharing with you all the sessions that have been confirmed for LibrePlanet 2024: Cultivating Community.

27 February, 2024 08:40PM

February 26, 2024

FOSDEM 2024: two days on software freedom

We depend on software as a society. In such a world, software freedom has to be protected. Free Software Foundation's (FSF) Licensing and Compliance Manager, Krzysztof Siewicz is sharing his personal account of FOSDEM 2024.

26 February, 2024 08:35PM

FSF Events

Free Software Directory meeting on IRC: Friday, March 01, starting at 12:00 EST (17:00 UTC)

Join the FSF and friends on Friday, March 01, from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory.

26 February, 2024 05:58PM

libredwg @ Savannah

libredwg-0.13.3 released

A minor bugfix release, mostly fixes missing dwg2ps.1

See https://www.gnu.org/software/libredwg/ and https://git.savannah.gnu.org/cgit/libredwg.git/tree/NEWS?h=0.13.3

Here are the compressed sources:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.3.tar.gz (20.1MB)
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.3.tar.xz (10.1MB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.3.tar.gz.sig
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.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.13.3

Here are the SHA256 checksums:


[*] 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.13.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 --recv-keys B4F63339E65D6414

and rerun the gpg --verify command.

26 February, 2024 09:46AM by Reini Urban

February 25, 2024

unifont @ Savannah

Unifont 15.1.05 Released

24 February 2024 Unifont 15.1.05 is now available.  This release adds the 222 CJK Unified Ideographs Extension D glyphs (U+2B740..U+2B81D) and 335 Plane 2 and Plane 3 common Cantonese ideographs, as well as other additions amounting to almost 600 ideograph additions, from Boris Zhang, Yzy32767, and others.

This release also replaces the Hangul blocks outside the Hangul Syllables range with new glyphs from Ho-seok Ee that are now consistent with the style of the Hangul Syllables glyphs.

Other minor changes are also included.  Details are in the ChangeLog file.

This release no longer builds TrueType fonts by default, as announced over the past year.  They have been replaced with their OpenType equivalents.  TrueType fonts can still be built manually by typing "make truetype" in the font directory.

Download this release from GNU server mirrors at:

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

or if that fails,

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

or, as a last resort,

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

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

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

Font files are in the subdirectory

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

A more detailed description of font changes is available at

      https://unifoundry.com/unifont/index.html

and of utility program changes at

      https://unifoundry.com/unifont/unifont-utilities.html

Information about Hangul modifications is at

      https://unifoundry.com/hangul/index.html

and

      http://unifoundry.com/hangul/hangul-generation.html

25 February, 2024 01:56AM by Paul Hardy

February 24, 2024

libunistring @ Savannah

GNU libunistring-1.2 released

Download from https://ftp.gnu.org/gnu/libunistring/libunistring-1.2.tar.gz

This is a stable release.

New in this release:

  • The data tables and algorithms have been updated to Unicode version 15.1.0.
  • New functions u8_pcpy, u16_pcpy, u32_pcpy, similar to mempcpy.
  • New functions uc_indic_conjunct_break_name, uc_indic_conjunct_break_byname, uc_indic_conjunct_break.
  • New functions uc_is_property_prepended_concatenation_mark, uc_is_property_id_compat_math_start, uc_is_property_id_compat_math_continue, uc_is_property_ids_unary_operator and new constants UC_PROPERTY_PREPENDED_CONCATENATION_MARK, UC_PROPERTY_ID_COMPAT_MATH_START, UC_PROPERTY_ID_COMPAT_MATH_CONTINUE, UC_PROPERTY_IDS_UNARY_OPERATOR.
  • New constant _libunistring_unicode_version.
  • The UTF-8 decoder functions, especially u8_mbtouc, are now more Unicode Standard compliant.
  • The *printf functions no longer support the %n directive, for security reasons.
  • Fixed a bug in the *printf functions: In the %U, %lU, %llU directives, a negative width given as an argument did not trigger left-justification.
  • The functions u16_strstr and u32_strstr now operate in worst-case linear time.

24 February, 2024 04:38PM by Bruno Haible

February 22, 2024

gettext @ Savannah

GNU gettext 0.22.5 released

Download from https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.5.tar.gz

This is a bug-fix release.

New in this release:

  • The replacements for the printf()/fprintf()/... functions that are provided through <libintl.h> on native Windows and NetBSD now enable GCC's format string analysis (-Wformat).


  • Bug fixes:
    • xgettext's processing of Vala files with printf method invocations has been corrected (regression in 0.22).
    • Build fixes on macOS.

22 February, 2024 01:38AM by Bruno Haible

February 21, 2024

GNUnet News

NGI Webinar: The GNU Name System and the road to publishing an RFC

21 February, 2024 11:00PM

February 12, 2024

FSF Blogs

Free software is not antithetical to commercial success

Gabriel Cezarin Popovici, intern with the Free Software Foundation's (FSF) campaigns team, explains why developing free software and earning money do not have to exclude each other.

12 February, 2024 09:50PM

February 10, 2024

libredwg @ Savannah

libredwg-0.13.2 released

A minor bugfix release, fixes error: cannot find input file: `test/xmlsuite/Makefile.in'

See https://www.gnu.org/software/libredwg/ and https://git.savannah.gnu.org/cgit/libredwg.git/tree/NEWS?h=0.13.2

Here are the compressed sources:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.2.tar.gz (20.1MB)
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.2.tar.xz (10.1MB)

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.2.tar.gz.sig
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.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.13.2

Here are the SHA256 checksums:

7c517bc58267fb97ae063568969b16b248b74cb0bfe4a8232eec4f751d9468ff  libredwg-0.13.2.tar.gz
9ab76010a6536ebf86df50f4973cb6cb2fc8aa2677084b8d22ac8320052d9329  libredwg-0.13.2.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.13.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 --recv-keys B4F63339E65D6414

and rerun the gpg --verify command.

10 February, 2024 06:13PM by Reini Urban

GNU Guix

Guix Days 2024 and FOSDEM recap

Guix contributors and users got together in Brussels to explore Guix's status, chat about new ideas and spend some time together enjoying Belgian beer! Here's a recap of what was discussed.

Day 1

The first day kicked off with an update on the project's health, given by Efraim Flashner representing the project's Maintainer collective. Efraim relayed that the project is doing well, with lots of exciting new features coming into the archive and new users taking part. It was really cool listening to all the new capabilities - thank-you to all our volunteer contributors who are making Guix better! Efraim noted that the introduction of Teams has improved collaboration - equally, that there's plenty of areas we can improve. For example, concern remains over the "bus factor" in key areas like infrastructure. There's also a desire to release more often as this provides an updated installer and lets us talk about new capabilities.

Christopher Baines gave a general talk about the QA infrastructure and the ongoing work to develop automated builds. Chris showed a diagram of the way the services interact which shows how complex it is. Increasing automation is very valuable for users and contributors, as it removes tedious and unpleasant drudgery!

Then, Julien Lepiller, representing the Guix Foundation, told us about the work it does. Julien also brought some great stickers! The Guix Foundation is a non-profit association that can receive donations, host activities and support the Guix project. Did you know that it's simple and easy to join? Anyone can do so by simply filling in the form and paying the 10 Euro membership fee. Contact the Guix Foundation if you'd like to know more.

The rest of the day was taken up with small groups discussing topics:

  • Goblins, Hoot and Guix: Christine Lemmer-Webber gave an introduction to the Spritely Institute's mission to create decentralized networks and community infrastructure that respects user freedom and security. There was a lot of interesting discussion about how the network capabilities could be used in Guix, for example enabling distributed build infrastructure.

  • Infrastructure: There was a working session on how the projects infrastructure works and can be improved. Christopher Baines has been putting lots of effort into the QA and build infrastructure.

  • Guix Home: Gábor Boskovits coordinated a session on Guix Home. It was exciting to think about how Guix Home introduces the "Guix way" in a completely different way from packages. This could introduce a whole new audience to the project. There was interest in improving the overall experience so it can be used with other distributions (e.g. Fedora, Arch Linux, Debian and Ubuntu).

  • Release management: Julien Lepiller led us through a discussion of release management, explaining the ways that all the parts fit together. The most important part that has to be done is testing the installation image which is a manual process.

Day 2

The second day's sessions:

  • Funding: A big group discussed funding for the project. Funding is important because it determines many aspects of what the group can achieve. Guix is a global project so there are pools of money in the United States and Europe (France). Andreas Enge and Julien Lepiller represented the group that handle finance, giving answers on the practical elements. Listening to their description of this difficult and involved work, I was struck how grateful we all are that they're willing to do it!

  • Governance: Guix is a living project that continues to grow and evolve. The governance discussion concerned how the project continues to chart a clear direction, make good decisions and bring both current and new users on the journey. There was reflection on the need for accountability and quick decision making, without onerous bureaurcacy, while also acknowledging that everyone is a volunteer. There was a lot of interest in how groups can join together, perhaps using approaches like Sociocracy.

    Simon Tournier has been working on an RFC process, which the project will use to discuss major changes and make decisions. Further discussion is taking place on the development mailing-list if you'd like to take part.

  • Alternative Architectures: The Guix team continues to work on alternative architectures. Efraim had his 32-bit PowerPC (Powerbook G4) with him, and there's continued work on PowerPC64, ARM64 and RISC-V 64. The big goal is a complete source bootscrap across all architectures.

  • Hurd: Janneke Nieuwenhuizen led a discussion around GNU Hurd, which is a microkernel-based architecture. Activity has increased in the last couple of years, and there's support for SMP and 64-bit (x86) is work in progress. There's lots of ideas and excitement about getting Guix to work on Hurd.

  • Guix CLI improvements: Jonathan coordinated a discussion about the state of the Guix CLI. A consistent, self-explaining and intuitive experience is important for our users. There are 39 top-level commands, that cover all the functionality from package management through to environment and system creation! Various improvements were discussed, such as making extensions available and improving documentation about the REPL work-flow.

FOSDEM 2024 videos

Guix Days 2024 took place just before FOSDEM 2024. FOSDEM was a fantastic two days of interesting talks and conversations. If you'd like to watch the GUIX-related talks the videos are being put online:

Join Us

There's lots happening in Guix and many ways to get involved. We're a small and friendly project that values user freedom and a welcoming community. If this recap has inspired your interest, take a look at the raw notes and join us!

10 February, 2024 06:00PM by Steve George

libredwg @ Savannah

libredwg-0.13.1 bugfix release

A minor bugfix release, but broken.
error: cannot find input file: `test/xmlsuite/Makefile.in'
You can safely patch the test/xmlsuite error away.

See https://www.gnu.org/software/libredwg/ and https://git.savannah.gnu.org/cgit/libredwg.git/tree/NEWS?h=0.13.1

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

Here are the GPG detached signatures[*]:
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.1.tar.gz.sig
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.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.13.1

Here are the SHA256 checksums:

4f0a8920a0d500c5df02ea4cddad0665397642ed39852bc401580a253ac5b911  libredwg-0.13.1.tar.gz
33bca643ec730143d252f6ddd2bb1d69062416f3a94b05b9e90eb8ccdbe149a4  libredwg-0.13.1.tar.xz
34fa0603fc8a0c4d9550096420a807457a3be34f99042568f2264f426e922f9c  libredwg-0.13.1-win32.zip
89d67be07fd08a88adfe1870587ffa3fe8a121eebb915c92d01b7ab95bc4e572  libredwg-0.13.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.13.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 --recv-keys B4F63339E65D6414

and rerun the gpg --verify command.

10 February, 2024 08:42AM by Reini Urban

February 08, 2024

lightning @ Savannah

GNU lightning 2.2.3 released!

GNU lightning is a library to aid in making portable programs
that compile assembly code at run time.

Development:
http://git.savannah.gnu.org/cgit/lightning.git

Download release:
ftp://ftp.gnu.org/gnu/lightning/lightning-2.2.3.tar.gz

  GNU Lightning 2.2.3 main new features:

  • PowerPC port now optimize for a variable stack frame size and only create a stack frame if a non leaf function.
  • New callee test to ensure register values saved on the stack are not corrupted when calling a jit or C function. While no problem was found in any port, the new test was added to make sure there were no failures.
  • Add back the jit_hmul interface, from Lightning 1.x. There are special cases where it is desirable to only know the high part of a multiplication.
  • Correct wrong implementation of zero right shift with two registers output.
  • Add new pre and post increment for load and store instructions.
  • Several minor bug fixes.

08 February, 2024 06:51PM by Paulo César Pereira de Andrade

February 04, 2024

libredwg @ Savannah

libredwg-0.13 released

Can now also read and write all DWG formats pre-R13.
See https://www.gnu.org/software/libredwg/ and https://github.com/LibreDWG/libredwg/blob/0.13/NEWS
Now we'll finish work on encode support for r2004+.

Here are the compressed but broken sources:
error: cannot find input file: `test/xmlsuite/Makefile.in'

http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.tar.gz (17.4MB)
http://ftp.gnu.org/gnu/libredwg/libredwg-0.13.tar.xz (9MB)

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

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

You can safely patch the test/xmlsuite error away.

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

Here are the SHA256 checksums:

9682b0c5e6d91720666118059c67bf614e407a49b1a3c13312fe6a6c8f41d9cf  libredwg-0.13.tar.gz
dd906f59d71b26c13fd2420f50fc50bea666fd54acc764d8c344f7f89d5ab94e  libredwg-0.13.tar.xz
cc5df6456cdc7d0c9ebcd2eb798b81a80aab6b3a8f5417d4598262f3d2120886  libredwg-0.13-win32.zip
34774d2cd1c87f00a1d647f6c172ff92d02bab4ebe586badd883772fb746218b  libredwg-0.13-win64.zip


[*] Use a .sig file to verify that the coresponding 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.13.tar.gz.sig

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

gpg --recv-keys B4F63339E65D6414

and rerun the gpg --verify command.

04 February, 2024 09:53AM by Reini Urban

February 03, 2024

gnuastro @ Savannah

Gnuastro 0.22 released

The 22st release of GNU Astronomy Utilities (Gnuastro) is now available. See the full announcement for all the new features in this release and the many bugs that have been found and fixed: https://lists.gnu.org/archive/html/info-gnuastro/2024-02/msg00000.html

03 February, 2024 11:19PM by Mohammad Akhlaghi

February 01, 2024

FSF Blogs

January 31, 2024

GNU Taler news

GNU libmicrohttpd 1.0 released

We are glad to announce the release of GNU libmicrohttpd v1.0, and future plans for the library.

31 January, 2024 11:00PM

NLnet open call with funding opportunities for GNU Taler integrators

Join us on our journey towards informational self-determination in payments! As part of NGI TALER, NLnet Foundation is running an open call and will award grants to third parties working on GNU Taler enhancements globally. The application process is simple and the first submission deadline is April 1st 2024.

31 January, 2024 11:00PM

January 30, 2024

FSF Blogs

A recap of 2023 by MediaGoblin co-maintainer Ben Sturmfels

An update from MediaGoblin co-maintainer Ben Sturmfels on the impressive work they did in 2023.

30 January, 2024 04:00PM

January 27, 2024

freeipmi @ Savannah

FreeIPMI 1.6.12 & 1.6.13 Released

FreeIPMI 1.6.12 - 11/19/23
--------------------------
o Use poll() over select() to avoid fd limit in openipmi driver.
o Fix potential portability problems on systems without cbrt().
o Minor documentation updates.

FreeIPMI 1.6.13 - 01/26/24
--------------------------
o Fix build issues on systems where inb/outb are declared with
  inline assembly.
o Add additional sensor/event interpretations.

27 January, 2024 12:59AM by Albert Chu

January 24, 2024

parallel @ Savannah

GNU Parallel 20240122 ('Frederik X') released

GNU Parallel 20240122 ('Frederik X') has been released. It is available for download at: lbry://@GnuParallel:4

Quote of the month:

  GNU Parallel alone provides more value than moreutils
    -- Ferret7446@news.ycombinator.com
 
New in this release:

  • --sshlogin supports ranges: server[01-12,15] 10.0.[1-10].[2-254]
  • --plus enables {slot-1} and {seq-1} = {%}-1 and {#}-1 to count from 0.
  • env_parallel.{sh,ash,dash,bash,ksh,zsh} are now the same script.
  • Bug fixes and man page updates.


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 883c667e01eed62f975ad28b6d50e22a
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
    $ 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.

24 January, 2024 03:19AM by Ole Tange

January 23, 2024

FSF News

January 22, 2024

gprofng-gui @ Savannah

gprofng GUI 1.1 released

gprofng GUI is a full-fledged graphical interface for the gprofng profiler, which is part of the GNU binutils.

The tarball gprofng-gui-1.1.tar.gz is now available at https://ftp.gnu.org/gnu/gprofng-gui/gprofng-gui-1.1.tar.gz.

--
Vladimir Mezentsev
Jose E. Marchesi
22 January 2024

22 January, 2024 06:08PM by Jose E. Marchesi

January 19, 2024

GNU Guix

Guix at FOSDEM 2024

It's not long to FOSDEM 2024, where Guixers will come together to learn and hack. As usual there's some great talks and opportunities to meet other users and contributors.

FOSDEM is Europe's biggest Free Software conference. It's aimed at developers and anyone who's interested in the Free Software movement. While it's an in-person conference there are live video streams and lots of ways to participate remotely.

The schedule is varied with development rooms covering many interests. Here are some of the talks that are of particular interest to Guixers:

Saturday, 3rd Febuary

Sunday, 4th February

The Declarative and Minimalistic Computing track takes place Sunday morning. Important topics are:

  • Minimalism Matters: sustainable computing through smaller, resource efficient systems
  • Declarative Programming: reliable and reproducible systems by minimising side-effects

Guix-related talks are:

  • "Scheme in the Browser with Guile Hoot and WebAssembly" by Robin Templeton (11:00 CET). A talk covering bringing Scheme to WebAssembly through the Guile Hoot toolchain. Addressing the current state of Guile Hoot with examples, and how recent Wasm proposals might improve the situation in the future.
  • "RISC-V Bootstrapping in Guix and Live-Bootstrap" by Ekaitz Zarraga (11:20 CET). An update on the RISC-V bootstrapping effort in Guix and Live-bootstrap. Covering what's been done, what's left to do and some of the lessons learned.
  • "Self-hosting and autonomy using guix-forge" by Arun Isaac (11:40 CET). This talk demonstrates the value of Guix's declarative configuration to simplify deploying and maintaining complex services. Showing guix-forge, a project that makes it easy to self-host an efficient software forge.
  • "Spritely, Guile, Guix: a unified vision for user security" by Christine Lemmer-Webber (12:00 CET). Spritely's goal is to create networked communities that puts people in control of their own identity and security. This talk will present a unified vision of how Spritely, Guile, and Guix can work together to bring user freedom and security to everyone!

This year the track commemorates Joe Armstrong, who was the principal inventor of Erlang. His focus on concurrency, distribution and fault-tolerence are key topics in declarative and minimalistic computing. This article is a great introduction to his legacy. Along with "The Mess We're In", a classic where he discusses why software is getting worse with time, and what can be done about it.

On Sunday afternoon, the Distributions devroom has another Guix talk:

  • "Supporting architecture psABIs with GNU Guix" by Efraim Flashner (14:30 CET). Guix maintainer Efraim will be giving a talk about improving Guix's performance. Demonstrating how to use psABI targets that keep older hardware compatible while providing optimized libraries for newer hardware.

Guix Days (Thursday and Friday)

Guix Days will be taking place on the Thursday and Friday before FOSDEM. This is an "unconference-style" event, where the community gets together to focus on Guix's development. All the details are on the Libreplanet Guix Wiki.

Participating

Come and join in the fun, whether you're a new Guix user or seasoned hacker! If you're not in Brussels you can still take part:

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, AArch64, and POWER9 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.

19 January, 2024 03:00PM by Steve George

January 17, 2024

www @ Savannah

January 16, 2024

GNU Taler news

New EU project NGI TALER will bring private and secure online payments to the Eurozone

We are excited to announce the creation of a European project December 1st 2023, which will run for the next 36 months. This Next Generation Internet pilot named "NGI TALER" is operated by a consortium of 11 partners from 8 European countries with the mandate to roll out an innovative electronic payment system for the greater benefit of European citizens, merchants, and banks. This payment system is different from current online payment methods, like credit cards or bank transfers, in that it offers privacy for the buyer: neither merchants nor banks can trace or link the payments. It is also a no-risk payment option for the merchant as there is no equivalent of fake or stolen credit cards, as payments are cleared and confirmed instantly. The payment system is socially, ecologically and fiscally responsible: it is not a new currency, there is no energy-consuming proof-of-work or proof-of-stake method and clearing is processed much faster than payments by credit cards. NGI TALER enforce [...]

16 January, 2024 11:00PM

January 15, 2024

remotecontrol @ Savannah

Another home thermostat found vulnerable to attack

https://www.foxnews.com/tech/another-home-thermostat-found-vulnerable-to-attack

A network cable connection to any thermostat is still a safer and overall less expensive long term choice.

15 January, 2024 04:31PM by Stephen H. Dawson DSL

January 14, 2024

GNU Taler news

NGI Taler project launched

We are excited to announce the creation of an EU-funded consortium with the central objective to launch GNU Taler as a privacy-preserving payment system across Europe. You can find more information on the consortium page.

14 January, 2024 11:00PM

cpio @ Savannah

GNU cpio version 2.15

GNU cpio version 2.15 is available for download. This is a bug-fixing release.  Short summary of changes:

  • Fix the operation of --no-absolute-filenames --make-directories.
  • Restore access and modification times of symlinks in copy-in and copy-pass modes.

14 January, 2024 12:21PM by Sergey Poznyakoff

GNU Guix

Building packages targeting psABIs

Starting with version 2.33, the GNU C library (glibc) grew the capability to search for shared libraries using additional paths, based on the hardware capabilities of the machine running the code. This was a great boon for x86_64, which was first released in 2003, and has seen many changes in the capabilities of the hardware since then. While it is extremely common for Linux distributions to compile for a baseline which encompasses all of an architecture, there is performance being left on the table by targeting such an old specification and not one of the newer revisions.

One option used internally in glibc and in some other performance-critical libraries is indirect functions, or IFUNCs (see also here) The loader, ld.so uses them to pick function implementations optimized for the available CPU at load time. GCC's functional multi-versioning (FMV) generates several optimized versions of functions, using the IFUNC mechanism so the approprate one is selected at load time. These are strategies which most performance-sensitive libraries do, but not all of them.

With the --tune using package transformation option, Guix implements so-called package multi-versioning which creates package variants using compiler flags set to use optimizations targeted for a specific CPU.

Finally - and we're getting to the central topic of this post! - glibc since version 2.33 supports another approach: ld.so would search not just the /lib folder, but also the glibc-hwcaps folders, which for x86_64 included /lib/glibc-hwcaps/x86-64-v2, /lib/glibc-hwcaps/x86-64-v3 and /lib/glibc-hwcaps/x86-64-v4, corresponding to the psABI micro-architectures of the x86_64 architecture (psABI stands for processor supplement of the application binary interface and refers to the document that specifies among other things those x86-64-v* levels). This means that if a library was compiled against the baseline of the architecture then it should be installed in /lib, but if it were compiled a second time, this time using (depending on the build instructions) -march=x86-64-v2, then the libraries could be installed in /lib/glibc-hwcaps/x86-64-v2 and then glibc, using ld.so, would choose the correct library at runtime.

These micro-architectures aren't a perfect match for the different hardware available, it is often the case that a particular CPU would satisfy the requirements of one tier and part of the next but would therefore only be able to use the optimizations provided by the first tier and not by the added features that the CPU also supports.

This of course shouldn't be a problem in Guix; it's possible, and even encouraged, to adjust packages to be more useful for one's needs. The problem comes from the search paths: ld.so will only search for the glibc-hwcaps directory if it has already found the base library in the preceding /lib directory. This isn't a problem for distributions following the File System Hierarchy (FHS), but for Guix we will need to ensure that all the different versions of the library will be in the same output.

With a little bit of planning this turns out to not be as hard as it sounds. Lets take for example, the GNU Scientific Library, gsl, a math library which helps with all sorts of numerical analysis. First we create a procedure to generate our 3 additional packages, corresponding to the psABIs that are searched for in the glibc-hwcaps directory.

(define (gsl-hwabi psabi)
  (package/inherit gsl
    (name (string-append "gsl-" psabi))
    (arguments
     (substitute-keyword-arguments (package-arguments gsl)
       ((#:make-flags flags #~'())
        #~(append (list (string-append "CFLAGS=-march=" #$psabi)
                        (string-append "CXXFLAGS=-march=" #$psabi))
                  #$flags))
       ((#:configure-flags flags #~'())
        #~(append (list (string-append "--libdir=" #$output
                                       "/lib/glibc-hwcaps/" #$psabi))
                  #$flags))
       ;; The building machine can't necessarily run the code produced.
       ((#:tests? _ #t) #f)
       ((#:phases phases #~%standard-phases)
        #~(modify-phases #$phases
            (add-after 'install 'remove-extra-files
              (lambda _
                (for-each (lambda (dir)
                            (delete-file-recursively (string-append #$output dir)))
                          (list (string-append "/lib/glibc-hwcaps/" #$psabi "/pkgconfig")
                                "/bin" "/include" "/share"))))))))
    (supported-systems '("x86_64-linux" "powerpc64le-linux"))
    (properties `((hidden? . #t)
                  (tunable? . #f)))))

We remove some directories and any binaries since we only want the libraries produced from the package; we want to use the headers and any other bits from the main package. We then combine all of the pieces together to produce a package which can take advantage of the hardware on which it is run:

(define-public gsl-hwcaps
  (package/inherit gsl
    (name "gsl-hwcaps")
    (arguments
     (substitute-keyword-arguments (package-arguments gsl)
       ((#:phases phases #~%standard-phases)
        #~(modify-phases #$phases
            (add-after 'install 'install-optimized-libraries
              (lambda* (#:key inputs outputs #:allow-other-keys)
                (let ((hwcaps "/lib/glibc-hwcaps/"))
                  (for-each
                    (lambda (psabi)
                      (copy-recursively
                        (string-append (assoc-ref inputs (string-append "gsl-" psabi))
                                       hwcaps psabi)
                        (string-append #$output hwcaps psabi))
                  '("x86-64-v2" "x86-64-v3" "x86-64-v4"))))))))
    (native-inputs
     (modify-inputs (package-native-inputs gsl)
                    (append (gsl-hwabi "x86-64-v2")
                            (gsl-hwabi "x86-64-v3")
                            (gsl-hwabi "x86-64-v4"))))
    (supported-systems '("x86_64-linux"))
    (properties `((tunable? . #f)))))

In this case the size of the final package is increased by about 13 MiB, from 5.5 MiB to 18 MiB. It is up to you if the speed-up from providing an optimized library is worth the size trade-off.

To use this package as a replacement build input in a package package-input-rewriting/spec is a handy tool:

(define use-glibc-hwcaps
 (package-input-rewriting/spec
   ;; Replace some packages with ones built targeting custom packages build
   ;; with glibc-hwcaps support.
   `(("gsl" . ,(const gsl-hwcaps)))))

(define-public inkscape-with-hwcaps
  (package
    (inherit (use-glibc-hwcaps inkscape))
    (name "inkscape-with-hwcaps")))

Of the Guix supported architectures, x86_64-linux and powerpc64le-linux can both benefit from this new capability.

Through the magic of newer versions of GCC and LLVM it is safe to use these libraries in place of the standard libraries while compiling packages; these compilers know about the glibc-hwcap directories and will purposefully link against the base library during build time, with glibc's ld.so choosing the optimized library at runtime.

One possible use case for these libraries is creating guix packs of packages to run on other systems. By substituting these libraries it becomes possible to crate a guix pack which will have better performance than a standard package used in a guix pack. This works even when the included libraries don't make use of the IFUNCs from glibc or functional multi-versioning from GCC. Providing optimized yet portable pre-compiled binaries is a great way to take advantage of this feature.

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, AArch64 and POWER9 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.

14 January, 2024 12:00PM by Efraim Flashner

January 12, 2024

FSF News

FSF job opportunity: Outreach and communications coordinator

The Free Software Foundation (FSF), a Massachusetts 501(c)(3) charity with a worldwide mission to protect computer user freedom, seeks a motivated and talented individual, if possible Boston-based, to be our full-time outreach and communications coordinator.

12 January, 2024 08:49PM

January 08, 2024

micron @ Savannah

Version 1.4

GNU micron version 1.4 is available for download.

08 January, 2024 09:08PM by Sergey Poznyakoff

January 06, 2024

mailutils @ Savannah

GNU mailutils version 3.17

GNU mailutils version 3.17 is available for download. This is a maintenance release, including some new features:

Use of TLS in pop3d and imap4d


If not explicitly specified, the TLS mode to use (ondemand, connect, etc.) is derived from the configured port.  E.g., for imap4d, port 143 implies ondemand mode, and port 993 implies connection mode.

The global tls-mode setting is used only when the mode cannot be determined otherwise, i.e. neither per-server tls-mode is given nor the port gives any clues as to the TLS mode to use.

06 January, 2024 03:20PM by Sergey Poznyakoff

anubis @ Savannah

GNU anubis version 4.3

GNU anubis version 4.3 is available for download. This is a maintenance release, including some new features:

anubisusr requires GnuTLS


New configuration statement: use-pam

 
Used in CONTROL section, this boolean statement enables or disables the use of the Pluggable Authentication Module interface for accounting and session management.

New configuration statement: identd-keyfile


Sets the name of the file with shared keys used for decrypting replies from the auth service.  It is used in traditional mode if anubis receives an encrypted response from the client's identd server (e.g. if they are running pidentd with encryption).

06 January, 2024 11:42AM by Sergey Poznyakoff

January 02, 2024

Luca Saiu

Languages and complexity, Part I: why I love Anki

Lately I have not been as active in GNU (https://www.gnu.org) as I would have liked—which I plan to change. Apart from work I was busy with happy family life next to E.; and, I guess, with contemplating the dismal state of the West as it descends further and further into tyranny amid the general indifference. Maybe in part seeking solace from the news I focused with renewed intensity on my hobby, studying the Russian language for no reason much more practical than my love for Nineteenth-Century novels. I have heard more than one Russian teacher vocally disapproving of literature as ... [Read more]

02 January, 2024 06:47PM by Luca Saiu (positron@gnu.org)

January 01, 2024

www-zh-cn @ Savannah

Summary 2023

Dear CTT translators:

Thank you very much for your contribution in the past year.
We have done a good job as always.

1. keep on localizing www.gnu.org to Simplified Chinese
2. help review the new translation of GNU licence: GFDL
3. welcomed several new members, including Jing
4. welcomed several contributors: Ventus Uta, Peaksol, and Chen Jingge

The following is the summary from GNU. Please take you time to read.

Dear GNU translators!

2023 was a very quiet year; the total number of new translations
was four times as low as in 2022, and in terms of size the amount
was twice as low.  Most translations were made in the "Simplified"
Chinese and in the Turkish team.  A few unmaintained translations
were decommissioned this year, so the total number of translations
didn't grow, for the first time since the start of CVS logs in 2001.

      General Statistics

In most working teams, the amount of outdated translations was
unprecedently close to zero.  We could only wish more teams were
active; as a result, the average percentage of outdated translations
remained as high as in 2022, and grew slowly.

The table below shows the number and size of newly translated
articles in important directories and typical number of outdated
GNUNified translations throughout the year.

+--team--+------new-----+--outdated---+
|  es    |  0 (  0.0Ki) | 0.4 ( 0.2%) |
+--------+--------------+-------------+
|  fa    |  2 ( 29.1Ki) |  25 (  81%) |
+--------+--------------+-------------+
|  fr    |  2 ( 46.8Ki) | 0.1 (0.04%) |
+--------+--------------+-------------+
|  ja    |  0 (  0.0Ki) |  35 (  25%) |
+--------+--------------+-------------+
|  pl    |  0 (  0.0Ki) |  67 (  45%) |
+--------+--------------+-------------+
|  ru    |  4 ( 68.6Ki) | 0.3 ( 0.1%) |
+--------+--------------+-------------+
|  sq    |  0 (  0.0Ki) | 1.5 (   2%) |
+--------+--------------+-------------+
|  tr    |  5 (195.1Ki) | 0.3 ( 0.2%) |
+--------+--------------+-------------+
|  zh-cn | 12 (214.7Ki) | 0.8 ( 0.3%) |
+--------+--------------+-------------+
+--------+--------------+
| total  | 25 (554.3Ki) |
+--------+--------------+

For the reference: 2 new articles were added, amounting to 47Ki
(which is considerably less than in 2022); the number of commits
(about 400 changes in approximately 100 English files) was just
a little lower than in 2022.

      Orphaned Teams, New and Reformed Teams

No teams were orphaned, and no new teams were established.

Volunteers requested taking over the teams for Esperanto, Punjabi,
Marathi, Indonesian, Brazilian Portuguese, Arabic---in all cases
with little further outcome.

      Changes in the Page Regeneration System

GNUN 1.4 was released this year, fixing a few minor bugs, updating
the HTML validation script for new xmllint, supporting localized
URLs in templates, and a configure option to reduce the number
of generated locales used for the sorting feature.

Happy GNU year, and thank you for your contributions!

Happy Hacking
wxie

01 January, 2024 04:18AM by Wensheng XIE

December 31, 2023

pspp @ Savannah

PSPP 2.0.0 has been released

I'm very pleased to announce the release of a new version of GNU PSPP.  PSPP is a program for statistical analysis of sampled data.  It is a free replacement for the proprietary program SPSS.

Changes from 1.6.2-pre2 to 2.0.0:

  • The CTABLES command is now implemented.
  • FREQUENCIES now honors the LAYERED setting on SPLIT FILE.
  • AGGREGATE:
    • New aggregation functions CGT, CLT, CIN, and COUT.
    • Break variables are now optional.
  • ADD FILES, MATCH FILES, and UPDATE now allow string variables with the same name to have different widths.
  • CROSSTABS now calculates significance of Pearson and Spearman correlations in symmetric measures.
  • DISPLAY MACROS is now implemented.
  • SET SUMMARY is now implemented.
  • SHOW ENVIRONMENT is now implemented.
  • Removed the MODIFY VARS command, which is not in SPSS.
  • Building from a Git repository, which previously required GIMP, now requires rsvg-convert from librsvg2 instead.
  • The pspp-dump-sav program is no longer installed by default.
  • Improved the search options in the syntax editor.
  • Localisations for the ar (Arabic) and ta (Tamil) locales have been added.  Other translations have been updated.
  • Journaling is now enabled by default when PSPP or PSPPIRE is started interactively.  In PSPPIRE, use Edit|Options to override the default.

Please send PSPP bug reports to bug-gnu-pspp@gnu.org.

31 December, 2023 11:20PM by Ben Pfaff

gnuboot @ Savannah

GNU Boot December 2023 News

GNU Boot December 2023 News


Announcements:


The last project announcement was made in the gnuboot mailing
list[1][2] at a time where we didn't have a website or an announce
mailing list yet.

So this announce and the next ones will be published in multiple
places:

- On the gnuboot[3] and gnuboot-announce[4] mailing lists

- On the GNU Boot website[5].

GNU Boot 0.1 RC3:


We just released GNU Boot 0.1 RC3. We also need help from testers for
this release, especially because few intrusive changes were made.

We also release GNU Boot 0.1 RC2 just before but some bugs that don't
affect the installable images were introduced in the last minute fixes
so we ended up making an RC3 as well (some tests were broken and some
website pages also needed fixes).

Nonfree software found in the source release of GNU Boot 0.1 RC1.


In the GNU Boot source release (gnuboot-0.1-rc1_src.tar.xz) we found
the 3 files (F12MicrocodePatch03000002.c, F12MicrocodePatch0300000e.c,
F12MicrocodePatch03000027.c) that contain microcode in binary form,
without corresponding source code. GNU Boot 0.1 RC1 corresponding
source code tarball was remade without these files (and renamed). The
images for the Asus KCMA-D8, KFSN4-DRE and KGPE-D16 were also removed
as they may contain the nonfree code as well. The rest of the files
are unaffected.

Website:


Since the last announce a lot of work was done on the code to deploy
the website to make to make it easy for contributors and maintainers
to do changes to the website and review them.

The website has also been published. Not everything is ready in
it, but it contains enough to understand how to contribute to GNU Boot.

The pages that are not ready yet were also published with a special
banner to indicate that.

Since we now have a website, contribution instructions[6], and even a
list of areas where we are looking for contributions[6], we can now
accept patches.

The website is also now integrated in the GNU Boot source code and we
have special code to make it easy to test it locally (and deploy it
semi-automatically). So it should make contributions easier.

Testing:


We would also like to thank all the people who tested GNU Boot 0.1 RC1
since the last announce, especially since this can be a lot of
work, especially because there are many computers to test.

The following computers were tested with GNU Boot 0.1 RC1 and they all
boot fine:

  • Lenovo Thinkpad R400, T400, T500, T60, W500, X60, X60T, X200, X301
  • Asus: KGPE-D16
  • Apple: MacBook 2.1


Since some popular computers were tested[7], we are now also looking
for testers and contributions on the installation instructions. Even
if GNU Boot 0.1 RC3 has already been published, it's probably easier
to do the tests with GNU Boot 0.1 RC1 and a computer that was already
tested (unless the computer is an Asus KCMA-D8, see above for more
details) as there is no changes that could affect the installation
instructions between 0.1 RC1 and 0.1 RC3.

The following computers / mainboards weren't tested yet with the 0.1
RC1 yet so we also need testers for them (ideally on the 0.1 RC3):

  • Chromebook: C201
  • Intel: D410PT, D510MO, D945GCLF2D
  • Gigabyte: D945GCLF, GA-G41M-ES2L
  • Asus: KCMA-D8, KFSN4-DRE
  • Apple: MacBook 1.1, iMac 5,2
  • Lenovo Thinkpads: R500, T400s, X60s, X200s, X200T, X60T.


And as stated above we also need to re-test with the RC3 the computers
that were already tested with the RC1 to make sure that we didn't
break anything.

GNU Boot running nonfree software:


GNU Boot is still in its early stages and many of the directions the
project can take are still being evaluated.

So it's a good time to warn people that in some cases GNU Boot does
run nonfree software on computers other than laptops, and that it
may change in the future (we have to decide how to deal with this
problem).

The issue is that ATI and Nvidia external GPUs do contain nonfree
software. That nonfree software is stored on the card in a memory chip.

At least in some configurations[8], if such GPU is present, GNU Boot
downloads and executes that software. Then later on in the boot,
Linux-libre also downloads and execute another nonfree software from
that same GPU.

If we decide to block that (it's relatively easy to do that in GNU
Boot) then users won't be able to use such GPU anymore. If we don't
block it, many users will not know about this freedom issue and will
think that they only run free software while nonfree software is
being executed behind their back.

This is also why the FSF RYF (Respect Your freedom) certification[9] is
important: it takes care of details like that and these GPUs or systems
with such GPUs are not certified by it.

Work in progress and future directions:


Work also started to improve the build system to make it easier to
understand and contribute. We also started adding tests along the way.

Though we still use old versions of Coreboot especially for the Asus
KCMA-D8, KFSN4-DRE and KGPE D16. Compiling GNU Boot images for these
computers requires specific distributions like PureOS 10 (byzantium)
or Trisquel 10 (nabia).

We plan to try to change that after the GNU Boot 0.1 release.

To do it we plan to update the versions of the software we build (like
Coreboot, GRUB, etc) but also to progressively switch to Guix to build
more and more parts of the images.

So far we managed to use Guix to building a GRUB payload (part of
that work was already upstreamed in Guix) and to build a custom Flashrom
that can be used to do installation on the I945 Thinkpads (X60, T60,
etc) but more work is needed (code cleanup, documentation, making it
easy to use for contributors) before we can integrate that code.

Integrating it now instead of waiting for the release would increase
the risk of introducing new bugs and inconsistencies (for instance in
the documentation), and reduce the amount of help we can get, and
since it is a big task there is also the risk of never finishing
it[10]. So we chose to do that step by step without breaking the
documentation or current usage of GNU Boot.

As for the website we are currently using Untitled, a static website
generator that use files in markdown with a custom header format.

We plan to migrate at least part of the website to Texinfo to generate a
proper manual with it and we already have code to convert from the
special markdown used to Texinfo, but the conversion sometimes needs
some manual intervention.

We're also not ready yet to do that conversion as keeping the markdown
a bit longer might make it easier for contributors to help us fix the
website.

We also evaluated Haunt, a static website generator that supports
markdown and Texinfo and that is also used by Guix for their website.

We managed to validate that we could easily write code to make it use
the custom markdown used by untitled. However we didn't invest time in
trying to make it generate a website (by default it generate blog
posts), so if some people already know haunt well or want to learn it
and are interested in helping it could be very useful. For that the
best would be to contact us on the gnuboot mailing list.

This is also important because according to its author, Untitled has
some design issues (and it is written in shell scripts) and so it will
most likely be rewritten from scratch in another programming language
by its author at some point.

In the meantime we sent patches upstream to fix some of the issues we
had with it and the patches were accepted.

Toward the 0.1 release:


What is missing before we release GNU Boot 0.1 is basically more
testing and help on the website, especially the installation
instructions.

References:



 [1]"Testers needed for GNU Boot 0.1 RC1".

 [2]https://lists.gnu.org/archive/html/gnuboot/2023-09/msg00000.html

 [3]https://lists.gnu.org/mailman/listinfo/gnuboot

 [4]https://lists.gnu.org/mailman/listinfo/gnuboot-announce

 [5]https://gnu.org/software/gnuboot/web/news/gnuboot-december-2023.html

 [6]https://www.gnu.org/software/gnuboot/web/git.html

 [7]https://savannah.gnu.org/bugs/?64754

 [8]We know for sure that when SeaBIOS is used, it will download and
    execute nonfree software from GPU cards that are added to the
    computer. But we're not sure what happens if SeaBIOS is not
    used. An easy way to find out is if the GPU works under GNU/Linux
    and that the display is initialized, then at least some nonfree
    bytecode has been downloaded and executed by the operating system.

 [9]https://ryf.fsf.org/

[10]See "General tips on maintaining GNU software" in
    https://www.gnu.org/software/maintainer-tips for more details
    about common issues when maintaining a new project.

31 December, 2023 12:04AM by Adrien Bourmault

December 23, 2023

health @ Savannah

GNU Health Hospital Management 4.4 released!

Dear community:

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


What is new in GNUHealth Hospital Management 4.4 series


The following is a summary of the main new features included in GH 4.4 .

  • Improve ergonomics on patient health condition model
  • Menu for dental treatments
  • Include synchronization with Orthanc server using Tryton scheduler
  • Add age_str field to gnuhealth.patient.disease
  • Refactor FHIR server
  • Include surgery stock moves
  • New packages health_surgery_protocols and health_stock_surgery
  • Update documentation on existing modules
  • Expand information and management of surgical protocols
  • Support generate DICOM Modality Worklists
  • Operating room scheduler
  • QR Code bracelet / wristband in demographics. No need to enter the patient / clinical section to print the QR.
  • pot template generator
  • Support Stone Web Viewer and Osimis Web Viewer link.
  • Add service_updated to health_services* packages
  • Automatically create patient upon entering demographics
  • Move samples/interfaces/* to script directory
  • Add ICD-10 or ICD-11 parent to disease_categories
  • Update functionality in Health Genetics packages
  • Include ambulatory care reporting
  • Support no-patient labtest
  • Make age string returned by compute_age_from_dates function translatable.
  • Add code field to GnuHealthTestCritearea and let lab interface script use it
  • Write a example Interface with pandas.


Genomics and medical genetics package


A particular mention to the health_genetics packages because major work and significant improvements have been done for this version.
I've spent quite a bit of time on this to be ready for this new release. I am confident GNU Health genetics functionality can be a valuable tool for genomics and medical genetics, both in research and clinical practice.

The following is a summary of changes in health_genetics and health_genetics_uniprot packages:

  • Rename gnuhealth.disease.gene model to gnuhealth.gene
  • Rename disease_genes xml data files to human_genes
  • Update views and references in related modules
  • Include hgnc_id
  • The primary key is now the HGNC identifier
  • Add symbol aliases
  • Update gene type selection
  • Include locus group and type
  • Update Gene form and tree view
  • Include name aliases, omim, ensembl and refseq accession ids to gnuhealth.gene model
  • Gene related proteins are now managed in main health_genetics package
  • Update and remove obsolete references of natural variants and phenotypes
  • Use human genes datafiles for Genome Reference Consortium Human build 38 (grch38) and alternative loci
  • Include xrefs, protein and keywords in genetic diseases
  • Improve field descriptions
  • Simplify protein-related views and terms
  • Use Inheritance pattern
  • Include MIM reference in protein diseases tree view
  • Use xrefs in tree view to broaden search
  • Update protein diseases datafile
  • Update variants phenotypes datafile to v 2023_03_june28 from  Uniprot


Upgrading from GNU Health 4.2


The GNUHealth 4.4 will benefit from the stability of using Tryton 6.0! Still, at GH level there are significant changes on the data dictionary and kernel.

As usual: 

  • Make a FULL BACKUP your kernel, database and attach directories !!
  • Follow the instructions in the manual / Wikibooks


Development focus


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

  • The Documentation Portal: It's now a reality! Little by little we are integrating the information on https://docs.gnuhealth.org . We now have a dedicated server that will host the documentation for the GNUHealth ecosystem components. The docmentation portal is a read-only resource, focusing on stability and quality. Wikibooks will work as the great community wiki that has been helping us for over a decade. Wikibooks will also work for development discussion and host the latest screenshots at Wikimedia commons.

 

  • MyGNUHealth: The GNU Health Personal Health Record app for desktop and mobile devices is now at 2.0 and on Kivy framework! We can now port it to different platforms (Android, MacOS, ..) using pretty much the same codebase.



  • Thalamus and the Federation Portal. The GNU Health Federation integrates information from many health institutions and individuals 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 will benefit from the GNU Health Federation and the GNU Health ecosystem in general.


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 4.4.0, so you just need to download the GNU Health HMIS client.


Happy and Healthy Hacking!
Luis

23 December, 2023 11:28PM by Luis Falcon

parallel @ Savannah

GNU Parallel 20231222 ('Sundhnúkagígur') released

GNU Parallel 20231222 ('Sundhnúkagígur') has been released. It is available for download at: lbry://@GnuParallel:4

Quote of the month:

  Parallel is so damn good! You’ve got to use it.
    -- @ThePrimeTimeagen@youtube.com
 
New in this release:

  • --combine-exec combines GNU Parallel with any executable.
  • Bug fixes and man page updates.


News about GNU Parallel:


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 883c667e01eed62f975ad28b6d50e22a
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
    $ 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.

23 December, 2023 06:51PM by Ole Tange

December 22, 2023

autoconf @ Savannah

Autoconf 2.72 released

Autoconf 2.72 has been released, see the release announcement:
https://lists.gnu.org/archive/html/autotools-announce/2023-12/msg00003.html

22 December, 2023 07:37PM by Zack Weinberg

December 19, 2023

remotecontrol @ Savannah

Tennessee Tech's research will impact hundreds of businesses

https://www.tntech.edu/news/releases/22-23/tech-tapped-to-lead-multi-state-consortium-on-electric-grid-modernization-backed-with-largest-grant-in-tech-history.php

https://www.tennessean.com/story/sponsor-story/tennessee-tech/2023/11/22/tennessee-techs-research-will-impact-hundreds-of-businesses/71658586007/

"This is expected to include seven rural electric utilities, one energy tech startup, 60 electrical engineering firms and 400 freelance software developers. The work will impact 191 counties across Tennessee, Ohio, Pennsylvania and West Virginia."

"Students will experiment in a real-time simulated environment so electric utilities can provide cost-effective testing and solutions prior to the implementation."

19 December, 2023 09:39PM by Stephen H. Dawson DSL

December 15, 2023

GNUnet News

Update for NGI Zero Entrust: GNS to DNS Migration and Zone Management

Update for NGI Zero Entrust: GNS to DNS Migration and Zone Management

We are happy to announce that we have successfully completed two Milestones:

  • Milestone 2a: A GNS Registrar Backend.
  • Milestone 2b: A GNS Registrar Frontend.

The resulting code can be found in the usual place . There are no tarballs available for the time being. The component is built with simplicity and privacy in mind: There are no accounts required; we also refrained from using JavaScript for the front end (for now). This component effectively replaces the "first-come, first-served" GNS name registration service previously shipped as part of GNUnet. Hence the service at https://fcfs.gnunet.org has been replaced. The registrar integrates with GNU Taler , allowing you to test both functionalities at the same time! Don't worry, you do not have to use actual money, as you can use the demo currency from the Taler demonstrator to register names for a relatively small portion of the play money you receive when you sign up there.

We encourage you to try it out now and register you own zone key. We plan to ship this zone in the default configuration of the upcoming GNUnet 0.21 release under the domain ".pin.gns.alt". Note that current releases are incompatible with GNUnet, and this also applies to the node connected to our registrar deployment.

Watch this space and the mailing list for updates!

This work is generously funded by NLnet as part of their NGI Zero Entrust Programme .

15 December, 2023 11:00PM

December 08, 2023

GNU Taler news

Live demo of the GNU Taler payment system at the g0v-hackath59n in Taiwan

Christian Grothoff will give a live demonstration of GNU Taler at the g0v hackath59n in the afternoon sessions.

08 December, 2023 11:00PM

December 04, 2023

FSF News

US Federal employees and retirees: Contribute conveniently through the Combined Federal Campaign

BOSTON, Massachusetts, USA -- Monday, December 4, 2023 -- The Free Software Foundation, today, highlighted its participation as a charity in the 2023 Combined Federal Campaign, which is focused on human rights this week.

04 December, 2023 10:06PM

December 01, 2023

Gary Benson

GitLab YAML Docker Registry client

Have you written a Docker Registry API client in GitLab CI/CD YAML? I have.

# Delete candidate image from CI repository.
clean-image:
  stage: .post
  except:
    - main

  variables:
    AUTH_API: "$CI_SERVER_URL/jwt/auth"
    SCOPE: "repository:$CI_PROJECT_PATH"
    REGISTRY_API: "https://$CI_REGISTRY/v2/$CI_PROJECT_PATH"

  before_script:
    - >
      which jq >/dev/null
      || (sudo apt-get update
      && sudo apt-get -y install jq)

  script:
    - echo "Deleting $CANDIDATE_IMAGE"
    - >
      TOKEN=$(curl -s
      -u "$CI_REGISTRY_USER:$CI_REGISTRY_PASSWORD"
      "$AUTH_API?service=container_registry&scope=$SCOPE:delete,pull"
      | jq -r .token)
    - >
      DIGEST=$(curl -s -I
      -H "Authorization: Bearer $TOKEN"
      -H "Accept: application/vnd.docker.distribution.manifest.v2+json"
      "$REGISTRY_API/manifests/$CI_COMMIT_SHORT_SHA"
      | tr -d "\r"
      | grep -i "^docker-content-digest: "
      | sed "s/^[^:]*: *//")
    - >
      curl -s
      -X DELETE
      -H "Authorization: Bearer $TOKEN"
      "$REGISTRY_API/manifests/"$(echo $DIGEST | sed "s/:/%3A/g")

01 December, 2023 02:13PM by gbenson

November 30, 2023

FSF News

EmacsConf joins Free Software Foundation fiscal sponsorship program

BOSTON, Massachusetts, USA -- Thursday, November 30, 2023 -- The Free Software Foundation (FSF) announced today that EmacsConf will join the Working Together for Free Software Fund. The one and only conference dedicated to the joy of Emacs is joining just before their event on December 2 and 3, 2023.

30 November, 2023 10:31PM

November 28, 2023

Worldwide community of activists protest OverDrive and others forcing DRM upon libraries

BOSTON, Massachusetts, USA -- Tuesday, November 28, 2023 -- The Free Software Foundation (FSF) has announced its Defective by Design campaign's 17th annual International Day Against DRM (IDAD). It will protest uses of Digital Restrictions Management technology's hold over public libraries around the world, exemplified by corporations like OverDrive and Follett Destiny. IDAD will take place digitally and worldwide on December 8, 2023.

28 November, 2023 09:25PM

Greg Casamento

Objective-C end of life?? Not a chance...

Recently, I saw this article regarding ObjCs "end of life" from JetBrains.

The tiobe index seems to disagree. It’s also important to remember that jetbrains recently had to take down their AppCode application (which sucked) since it didn’t sell.
Jetbrains is the creator of the kotlin language so they have a vested interest in their android customers. I would take their “index” with a grain of salt to say the least.

While it is certain that Apple won’t be investing into thing beyond ObjC 2.0, it is foolhardy to think that ObjC is going away anytime soon since there is an enormous installed base of stable code, not the least of which is Foundation and AppKit themselves. Also consider CocoaPods.

So, no, not worried about it. Also… look at Java and COBOL. For years people have declared the end of both languages. Java is still popular, though not in vogue and COBOL while not one of the “cool kids” has literally billions of lines of code being maintained and new code being written every year. This (admittedly biased as it is by the CTO of MicroFocus) article gives some reasons why….

Here is the article about COBOL...

Plus… Apple already has a mechanism for automatically allowing objc and swift to work together. Take a look at the frameworks in Xcode and you’ll notice some files called *.apinotes. These are YAML files that are used by the compiler to allow easy integration into swift projects. So, essentially, if Apple writes an ObjC version of a framework they get the swift version for absolutely free (minus the cost of writing the YAML file). If they write a swift only version they don’t get that benefit.

So, yeah, in conclusion… Yes, ObjC is NOT on the rise, but reports of its demise have been greatly exaggerated! ;)

PS. That being said, Apple dumping ObjC might spell a boom for us as all of the people who have installed codebases would suddenly need support for it either on macOS (on which we don’t currently work) or on other platforms. Something to think about…

PPS. All of the above being said. I admit I wouldn’t be terribly shocked to hear from Apple that “we have dropped support for the legacy objc language to provide you with the best support for our new swift language to make it the ‘greatest developer experience in the world’” or some grotesque BS like that. Lol

GC

28 November, 2023 04:41AM by Unknown (noreply@blogger.com)

November 24, 2023

GNU Guix

Write package definitions in a breeze

More than 28,000 packages are available in Guix today, not counting third-party channels. That’s a lot—the 5th largest GNU/Linux distro! But it’s nothing if the one package you care about is missing. So even you, dear reader, may one day find yourself defining a package for your beloved deployment tool. This post introduces a new tool poised to significantly lower the barrier to writing new packages.

Introducing Guix Packager

Defining packages for Guix is not all that hard but, as always, it’s much harder the first time you do it, especially when starting from a blank page and/or not being familiar with the programming environment of Guix. Guix Packager is a new web user interface to get you started—try it!. It arrived right in time as an aid to the packaging tutorial given last week at the Workshop on Reproducible Software Environments.

Screenshot showing the Guix Packager interface.

The interface aims to be intuitive: fill in forms on the left and it produces a correct, ready-to-use package definition on the right. Importantly, it helps you avoid pitfalls that trip up many newcomers:

  • When you add a dependency in one of the “Inputs” fields, it adds the right variable name in the generated code and imports the right package module.
  • Likewise, you can choose a license and be sure the license field will refer to the right variable representing that license.
  • You can turn tests on and off, and add configure flags. These translate to a valid arguments field of your package, letting you discover the likes of keyword arguments and G-expressions without having to first dive into the manual.

Pretty cool, no?

Implementation

All the credit for this tool goes to co-worker and intrepid hacker Philippe Virouleau. A unique combination of paren aversion and web development superpowers—unique in the Guix community—led Philippe to develop the whole thing in a glimpse (says Ludovic!).

The purpose was to provide a single view to be able to edit a package recipe, therefore the application is a single-page application (SPA) written in using the UI library Philippe is most comfortable with: React, and MaterialUI for styling the components. It's built with TypeScript, and the library part actually defines all the types needed to manipulate Guix packages and their components (such as build systems or package sources). One of the more challenging parts was to be able to provide fast and helpful “search as you type” results over the 28k+ packages. It required a combination of MaterialUI's virtualized inputs, as well as caching the packages data in the browser's local storage, when possible (packaging metadata itself is fetched from https://guix.gnu.org/packages.json, a generic representation of the current package set).

While the feature set provides a great starting point, there are still a few things that may be worth implementing. For instance, only the GNU and CMake build systems are supported so far; it would make sense to include a few others (Python-related ones might be good candidates).

Running a local (development) version of the application can happen on top of Guix, since—obviously—it's been developed with the node version packaged in Guix, using the quite standard packages.json for JavaScript dependencies installed through npm. Contributions welcome!

Lowering the barrier to entry

This neat tool complements a set of steps we’ve taken over time to make packaging in Guix approachable. Indeed, while package definitions are actually code written in the Scheme language, the package “language” was designed from the get-go to be fully declarative—think JSON with parens instead of curly braces and semicolons. More recently we simplified the way package inputs are specified with an eye on making package definitions less intimidating.

The guix import command also exists to make it easier to simplify packaging: it can generate a package definition for anything available in other package repositories such as PyPI, CRAN, Crates.io, and so forth. If your preference goes to curly braces rather than parens, it can also convert a JSON package description to Scheme code. Once you have your first .scm file, guix build prints hints for common errors such missing module imports (those #:use-module stanzas). We also put effort into providing reference documentation, a video tutorial, and a tutorial for more complex packages.

Do share your experience with us and until then, happy packaging!

Acknowledgments

Thanks to Felix Lechner and Timothy Sample for providing feedback on an earlier draft of this post.

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, AArch64 and POWER9 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.

24 November, 2023 02:30PM by Ludovic Courtès, Philippe Virouleau

November 23, 2023

parallel @ Savannah

GNU Parallel 20231122 ('Grindavík') released

GNU Parallel 20231122 ('Grindavík') has been released. It is available for download at: lbry://@GnuParallel:4

Quote of the month:

  Got around to using GNU parallel for the first time from a suggestion by @jdwasmuth ... now I'm wishing I started using this years ago
    -- Stefan Gavriliuc @GavriliucStefan@twitter

New in this release:

  • -a file1 -a +file2 will link file2 to file1 similar to ::::+
  • --bar shows total time when all jobs are done.
  • Bug fixes and man page updates.


News about GNU Parallel:


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 883c667e01eed62f975ad28b6d50e22a
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
    $ 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.

23 November, 2023 10:50PM by Ole Tange

November 22, 2023

gnuastro @ Savannah

Gnuastro development job at CEFCA/Spain for ESA's ARRAKIHS mission

A (scientific) software developer position that has just opened up in CEFCA for the development of Gnuastro for the data reduction pipeline of European Space Agency (ESA's) newly approved ARRAKIHS mission (to be launched in 2030), as well as other data from our Astronomical Observatory of Javalambre (OAJ):

https://www.cefca.es/cefca_en/reference_0119
(For 2 years, deadline: January 15th 2024)

ARRAKIHS is expected to last until ~2035 and we will be applying for future grants to keep the core pipeline team until the end of the project.

The job will be based in Teruel/Spain, which is a beautiful city (recognized as a UNESCO World heritage for its "Mudejar" architecture). Teruel just 1.5 hours from Valencia by car and with a population of 35000 people, everything is nicely within reach and you will not waste hours every day in traffic or long commutes as in large cities! Our observatory (OAJ) is also just 1.5 hours away by car (we have one of the darkest skies with fewest cloudy nights in continental Europe)!

As the ARRAKIHS pipeline engineer, the successful applicant will also be visiting other ARRAKIHS consortium members: IFCA/Santander, ESAC/Madrid; UCM/Madrid, IAA/Granada, EPFL/Switzerland, Univ. Lund/Sweden, Univ. Innsbruck/Austria.

The job will involve major developments in Gnuastro for the missing features or things that can be improved for Low Surface Brightness optimized reduction pipelines and high-level science from it (Gnuastro's MakeCatalog for example).

Once tested in the ARRAKIHS/OAJ pipelines, all those features will be brought into the core of Gnuastro for everyone to use in any pipeline! This is thus a major development in Gnuastro's history!

Anyone with a B.Sc degree or higher can apply! So please share this email with anyone you think may be interested. People with a M.Sc or PhD are also welcome to apply; it is "scientific"/Research software engineer position after all; and we expect to publish many papers on the algorithms/tools that we develop.

If you can't wait to get your hands dirty, and want to improve your profile for the application, there is a nice checklist in our Google Summer of Code guidelines to help you get started and fix a bug or two until the deadline to include in the application (you have almost two months from now):

https://savannah.gnu.org/support/?110827#comment0

Please don't hesitate to ask any questions from the contact person in the main announcement above; we'd be happy to help clarify any doubts.

22 November, 2023 11:23PM by Mohammad Akhlaghi

November 20, 2023

GNUnet News

RFC 9498: The GNU Name System

RFC 9498: The GNU Name System

We are happy to announce that our The GNU Name System (GNS) specification is now published as RFC 9498 .

GNS addresses long-standing security and privacy issues in the ubiquitous Domain Name System (DNS) . Previous attempts to secure DNS ( DNSSEC ) fail to address critical security issues such as end-to-end security, query privacy, censorship, and centralization of root zone governance. After 40 years of patching, it is time for a new beginning.

The GNU Name System is our contribution towards a decentralized and censorship-resistant domain name resolution system that provides a privacy-enhancing alternative to the Domain Name System (DNS).

As part of our work on RFC 9498, we have also contributed to the specification of the .alt top-level domain to be used by alternative name resolution systems and have established the GANA registry for ".alt" .

GNS is implemented according to RFC 9598 in GNUnet 0.20.0. It is also implemented as part of GNUnet-Go .

We thank all reviewers for their comments. In particular, we thank D. J. Bernstein, S. Bortzmeyer, A. Farrel, E. Lear, and R. Salz for their insightful and detailed technical reviews. We thank J. Yao and J. Klensin for the internationalization reviews. We thank Dr. J. Appelbaum for suggesting the name "GNU Name System" and Dr. Richard Stallman for approving its use. We thank T. Lange and M. Wachs for their earlier contributions to the design and implementation of GNS. We thank J. Yao and J. Klensin for the internationalization reviews. We thank NLnet and NGI DISCOVERY for funding work on the GNU Name System.

The work does not stop here: We encourage further implementations of RFC 9498 to learn more both in terms of technical documentation and actual deployment experiences. Further, we are currently working on the specification of the R 5 N DHT and BFT Set Reconciliation which are underlying building blocks of GNS in GNUnet and not covered by RFC 9498.

20 November, 2023 11:00PM

November 19, 2023

gettext @ Savannah

GNU gettext 0.22.4 released

Download from https://ftp.gnu.org/pub/gnu/gettext/gettext-0.22.4.tar.gz

This is a bug-fix release.

New in this release:

  • Bug fixes:
    • AM_GNU_GETTEXT now recognizes a statically built libintl on macOS and AIX.
    • Build fixes on AIX.

19 November, 2023 09:32PM by Bruno Haible

November 10, 2023

poke @ Savannah

Debuggers and Analysis Tools CfP @ FOSDEM 2024

Guinevere Piazera Larsen sent us the CfP for the upcoming Debuggers and Analysis Tools at FOSDEM 2024!:

We are excited to announce that the call for proposals is now open for the Debuggers and Analysis Tools developer room at the upcoming FOSDEM 2024, to be hosted on Saturday, February 3rd 2024 in Brussels, Belgium.

This devroom is a collaborative effort and is organized by dedicated people from projects such as GDB, SystemTap, Valgrind, GNU poke, Elfutils, binutils, Libabigail, and the like.

Important Dates:

   1st December 2023    Submission deadline
   8th December 2023    Acceptance notifications
   15th December 2023   Final Schedule announcement
   3rd February 2024    Conference dates

## CFP Introduction

This devroom is geared towards authors, users and enthusiasts of Free Software programs involved with debugging and analyzing ELF programs using all the binary information available (including DWARF data).

The goal of the devroom is for developers to get in touch with each other and with users of their tools, have interesting and hopefully productive discussions, and finally what is most important: to have fun.

The format of the expected presentations will cover a range that
includes:

    * Talks oriented towards developers of these projects
    * Presentation / Introductory Workshops for users of these programs
    * Activities oriented towards collaboration & standardization between these programs


All presentation slots are 25 minutes, with 15 minutes recommended for presentations, and 10 minutes for Q&A. This way we can have 8 slots and bio breaks, covering many topics!

### What is FOSDEM?

*FOSDEM is a free event for software developers to meet, share ideas and collaborate.*

Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels.

FOSDEM 2024 will take place on Saturday 3 and Sunday 4 February 2024.

It will be an in-person event at the *ULB Solbosch Campus, Brussels, Belgium, Europe.* If you aren't there, you can watch the live streams from the main tracks and developer rooms.

### Important stuff:

- FOSDEM is free to attend. There is no registration.
- [FOSDEM website](https://fosdem.org/)
- [FOSDEM code of conduct](https://fosdem.org/2024/practical/conduct/)
- [FOSDEM Schedule](https://fosdem.org/2024/schedule/)

### Desirable topics:

In this devroom, we're interested in any projects that directly reads binary files and analyses or manipulates them directly. Some projects and tools that fit the devroom are:

- GDB
- LLDB
- Ghidra
- Valgrind
- Dyninst
- GNU poke
- Binutils
- SystemTap
- Elfutils
- Libabigail
- Radare2

And any other debugging or binary analysis tool or framework
projects that might be of interest to Free Software enthusiasts.

### Topic overlap

There are over 50 developer rooms this year, and multiple main tracks, so there may be overlap with some other events.
If the topic would fit more than one devroom, you are free to choose which to submit to, but we encourage you to consider the focus of the talk, and see which devroom is best matched.

Full list of devrooms
[here](https://fosdem.org/2024/news/2023-11-08-devrooms-announced/).

### How to submit your proposal

To submit a talk, please visit the [FOSDEM 2024 Pretalx
website](https://pretalx.fosdem.org/fosdem-2024/cfp).

Click *Submit a proposal*. Make sure you choose the "Debuggers and analysis tools" devroom in the track drop-down menu (so that we see it rather than another devroom's organisers)

### What should be in your submission

- name
- short bio
- contact info
- title
- abstract (what you're going talk about, supports markdown)

Optional:

- description (more detail description, supports markdown)
- submission notes (for the organiser only, not made public)
- session image (if you have an illustration to go with the talk)
- additional speaker/s (if more than one person presenting)

Afterwards, click "Continue".
The second page will include fields for:

- Extra materials for reviewers (optional, for organisers only)
- Additional information about the speaker (optional).
- Resources to be used during the talk

All presentations will be recorded and made available under Creative Commons licenses. In the Submission notes field, please indicate that you agree that your presentation will be licensed under the CC-By-SA-4.0 or CC-By-4.0 license and that you agree to have your presentation recorded.

For example:

    "If my presentation is accepted for FOSDEM, I hereby agree to
license all recordings, slides, and other associated materials under the Creative Commons Attribution Share-Alike 4.0 International License.

    Sincerely,

    <NAME>."

Once you've completed the required sections, submit and we'll get
back to you soon!

### Things to be aware of

  • The reference time will be Brussels local lime (CET)

<https://www.timeanddate.com/worldclock/belgium/brussels>

  • There will be a Q/A session after the talk is over.

  Please make sure that you will be available on the
  day of the event.

  • If you're not able to attend the talk in-person, live stream links

  will be available on the FOSDEM schedule page:
<https://fosdem.org/2024/schedule/>.

  • FOSDEM Matrix channels are specific to each devroom,

  the general link is: </#/#fosdem:fosdem.org>

  • *Matrix bridge to the LibreSOC IRC channel*:

<https://matrix.to/#/#_oftc_#libre-soc:matrix.org>


### Contact

If you have any question about this devroom, please send a message to debuggers-and-analysis-devroom-manager at fosdem dot org.

Organizers of the devroom can also be reached on IRC at #dadevroom@irc.libera.chat

10 November, 2023 03:14PM by Jose E. Marchesi

November 02, 2023

pspp @ Savannah

PSPP 2.0.0-pre3 has been released

I'm very pleased to announce the release of a new version of GNU PSPP.  PSPP is a program for statistical analysis of sampled data.  It is a free replacement for the proprietary program SPSS.

Changes from 2.0.0-pre2 to 2.0.0-pre3:

  • Testsuite fix.
  • User string fix.
  • Arabic translation update.

Please send PSPP bug reports to bug-gnu-pspp@gnu.org.

02 November, 2023 09:36PM by Ben Pfaff

November 01, 2023

PSPP 2.0.0-pre2 has been released

I'm very pleased to announce the release of a new version of GNU PSPP.  PSPP is a program for statistical analysis of sampled data.  It is a free replacement for the proprietary program SPSS.

Changes from 1.6.2 to 2.0.0-pre2:

  • The CTABLES command is now implemented.
  • FREQUENCIES now honors the LAYERED setting on SPLIT FILE.
  • AGGREGATE:
    • New aggregation functions CGT, CLT, CIN, and COUT.
    • Break variables are now optional.
  • ADD FILES, MATCH FILES, and UPDATE now allow string variables with the same name to have different widths.
  • CROSSTABS now calculates significance of Pearson and Spearman correlations in symmetric measures.
  • DISPLAY MACROS is now implemented.
  • SET SUMMARY is now implemented.
  • SHOW ENVIRONMENT is now implemented.
  • Removed the MODIFY VARS command, which is not in SPSS.
  • Building from a Git repository, which previously required GIMP, now requires rsvg-convert from librsvg2 instead.
  • The pspp-dump-sav program is no longer installed by default.
  • Improved the search options in the syntax editor.
  • Localisations for the ar (Arabic) and ta (Tamil) locales have been added.
  • Journaling is now enabled by default when PSPP or PSPPIRE is started interactively.  In PSPPIRE, use Edit|Options to override the default.

Please send PSPP bug reports to bug-gnu-pspp@gnu.org.

01 November, 2023 03:34AM by Ben Pfaff

October 31, 2023

gprofng-gui @ Savannah

gprofng GUI 1.0 released

We are are happy to announce the first release of GNU gprofng-gui, version 1.0.

gprofng-gui is a full-fledged graphical interface for the gprofng
profiler, which is part of the GNU binutils.

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

--
Vladimir Mezentsev
Jose E. Marchesi
31 October 2023

31 October, 2023 09:18AM by Jose E. Marchesi