Language Selection

English French German Italian Portuguese Spanish

Gnu Planet

Syndicate content
Planet GNU -
Updated: 2 days 16 hours ago

health @ Savannah: GNUHealth Hospital Management 4.2.2 patchset released

Sunday 17th of September 2023 02:03:35 PM

Dear community

GNU Health 4.2.2 patchset has been released !

Priority: High

Table of Contents

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

About GNU Health Patchsets

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

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

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

Updating your system with the GNU Health control Center

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

Please refer to the administration manual section ( )

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

Installation Notes

You must apply previous patchsets before installing this patchset. If your patchset level is 4.2.1, then just follow the general instructions. You can find the patchsets at GNU Health main download site at (

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

Pre-requisites for upgrade to 4.2.2: None

Now follow the general instructions at

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

When running "gnuhealth-control" for the first time, you will see the following message: "Please restart now the update with the new control center" Please do so. Restart the process and the update will continue.

  • Restart the GNU Health server

List of bugs and tasks related to this patchset

  • bug #64269: get_serial function of LabTest class in need conside add
  • bug #64386: Automatically update the appointment sequence when state is confirm
  • bug #64432: Gestational weeks show floating point instead of weeks
  • bug #64457: Patient automatic critical information entries should be unique
  • bug #64530: traceback on evaluation page of life if no institution is given
  • bug #64665: Product cost_price needs to be passed as an argument in stock moves

For detailed information about each issue, you can visit :
About each task, you can visit:

For detailed information you can read about Patches and Patchsets

GNU Health: Caminos Cruzados and GNU Solidario join forces in healthcare for Gambia with GNU Health

Friday 15th of September 2023 07:52:42 PM

We’re very happy to announce that “Caminos cruzados”, a Spanish non-for-profit organization, has signed an agreement with GNU Solidario to implement GNU Health in health institutions from Gambia.

María Eugenia Ramos, president of the organization traveled to Gran Canaria to meet with Luis Falcón, president of GNU Solidario to formalize the agreement and to plan the next actions in the Gambia.

During these three days we went through the main functionality of the GNU Health HMIS, with focus in the areas of Social Medicine, Primary Care and Public Health.

Classroom before the renovation (source: Caminos Cruzados)

Caminos Cruzados and GNU Solidario share the goals of health and education are indivisible entities. In fact education is health, and there is no healthy person or society without education.

Current state of some classrooms after renovation process (Source: Caminos Cruzados)

In the area of health, the NGO collaborates with the Ndungu Kebbeh health center, that takes care of a population around 8000 people, in addition to the surrounding villages.

Ndungu Kebbeh health center (Source: Caminos Cruzados)

We are very excited about this agreement, and can’t wait to start collaborating with Caminos Cruzados and the local team in Gambia to implement GNU Health in the different Health institutions. GNU Health will definitely help optimizing the internal processes and resources in the health institutions, and most importantly, will contribute to optimize the health promotion and disease prevention programs for the betterment of their people.


Caminos Cruzados:

GNU Solidario:

GNU Health:

FSF Blogs: GNU40 - Celebration in the US

Wednesday 13th of September 2023 03:21:58 PM
The GNU System is turning forty. In honor of this event, the Free Software Foundation (FSF) is organizing a hackday for families, students, and anyone interested in hacking. Come and celebrate with us with kith and kin!

unifont @ Savannah: Unifont 15.1.01 Released

Tuesday 12th of September 2023 06:48:32 PM

12 September 2023 Unifont 15.1.01 is now available.
This is a major release.  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.

This release also includes a new Hangul Syllables Johab 6/3/1 encoding proposed by Ho-Seok Ee.  New Hangul supporting software for this encoding allows formation of all double-width Hangul syllables, including those with ancient letters that are outside the Unicode Hangul Syllables range.  Details are in the ChangeLog file.

Download this release from GNU server mirrors at:

or if that fails,

or, as a last resort,

These files are also available on the website:

Font files are in the subdirectory

A more detailed description of font changes is available at

and of utility program changes at

Information about Hangul modifications is at


FSF Events: Free Software Directory meeting on IRC: Friday, September 15, starting at 12:00 EDT (16:00 UTC)

Tuesday 12th of September 2023 04:34:44 PM
Join the FSF and friends on Friday, September 15, from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

GNU Guix: A new Quality Assurance tool for Guix

Tuesday 12th of September 2023 02:30:00 PM

Maintaining and expanding Guix's collection of packages can be complicated. As a distribution with around 22,000 packages, spanning across around 7 architectures and with support for cross-compilation, it's quite common for problems to occur when making changes.

Quality Assurance (QA) is a general term to describe the approach taken to try and ensure something meets expectations. When applied to software, the term testing is normally used. While Guix is software, and has tests, much more than those tests are needed to maintain Guix as a distribution.

So what might quality relate to in the context of Guix as a distribution? This will differ from person to person, but these are some common concerns:

  • Packages successfully building (both now, and without any time bombs for the future)
  • The packaged software functioning correctly
  • Packages building on or for a specific architecture
  • Packages building reproducibly
  • Availability of translations for the package definitions
Tooling to help with Quality Assurance

There's a range of tools to help maintain Guix. The package linters are a set of simple tools, they cover basic things from the naming of packages to more complicated checkers that look for security issues for example.

The guix weather tool looks at substitute availability information and can indicate how many substitutes are available for the current Guix and system. The guix challenge tool is similar, but it highlights package reproducibility issues, which is when the substitutes and local store items (if available) differ.

For translations, Guix uses Weblate which can provide information on how many translations are available.

The QA front-page

Then there's the relatively new Quality Assurance (QA) front-page, the aim of which is to bring together some of the existing Quality Assurance related information, as well as new being a good place to do additional QA tasks.

The QA front-page started as a service to coordinate automated testing for patches. When a patch or patch series is submitted to, it is automatically applied to create a branch; then once the information is available from the Data Service about this branch, the QA front-page web interface lets you view which packages were modified and submits builds for these changes to the Build Coordinator behind to provide build information about the modified packages.

A very similar process applies for branches other than the master branch, the QA front-page queries to find out which branch is going to be merged next, then follows the same process for patches.

For both patches and branches the QA front-page displays information about the effects of the changes. When this information is available, it can assist with reviewing the changes and help get patches merged quicker. This is a work in progress though, and there's much more that the QA front-page should be able to do as providing clearer descriptions of the changes or any other problems that should be addressed.

How to get involved?

There's plenty of ways to get involved or contribute to the QA front-page.

If you submit patches to Guix, the QA front-page will attempt to apply the patches and show what's changed. You can click through from to via the QA badge by the status of the issue.

From the QA front-page, you can also view the list of branches which includes the requests for merging if they exist. Similar to the patch series, for the branch the QA front-page can display information about the package changes and substitute availability.

There's also plenty of ways to contribute to the QA front-page and connected tools. You can find some ideas and information on how to run the service in the README and if you have any questions or patches, please email


Thanks to Simon Tournier and Ludovic Courtès 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.

FSF Blogs: The GNU System is turning forty: Come and celebrate with us

Monday 11th of September 2023 10:35:00 PM
GNU is turning forty, and there are two different locations to join us for celebrations. Learn more.

FSF News: FSF job opportunity: Operations assistant

Monday 11th of September 2023 02:43:48 PM
The Free Software Foundation (FSF), a Massachusetts 501(c)(3) charity with a worldwide mission to protect and promote computer-user freedom, seeks a motivated and organized Boston-based individual to be our full-time operations assistant.

gnuboot @ Savannah: Testers needed for GNU Boot 0.1 RC1

Friday 8th of September 2023 09:09:59 PM


GNU Boot has published its first release candidate, and we need help
for testing, at first from people who are able to recover from
computers that don't boot anymore.

This is because, while we have very minimal changes on top of the code
used by the last Libreboot release that didn't contain nonfree
software, we didn't test all the images ourselves yet, so there is still
risks of ending up with computers that don't boot anymore.

If the code works fine, we will most likely be able to release it as-is
but we (the current maintainers) still have a lot of work to do before
the release.

For instance we still need to integrate the code from the website, find
good ways to deploy it, make sure that the installation documentation
works (for instance by asking for help from testers and fixing it), etc.

As for accepting patches, we're not ready yet to do that yet, but we
plan to have that done for the first release, or before that depending
on how things work.

For reporting what images work, you can reply to this mail (or open a
bug report).

The GNU Boot maintainers.

FSF Blogs: Call for sessions for LibrePlanet 2024: Cultivating Community now open

Wednesday 6th of September 2023 08:25:00 PM
The call for sessions for LibrePlanet 2024: Cultivating Community, the sixteenth edition of the Free Software Foundation's (FSF) conference on ethical technology and user freedom, is open.

FSF Events: GNU40: Hacker meeting in Switzerland

Monday 4th of September 2023 04:40:00 PM
The GNU System is turning forty. In honor of this event, the GNU Project is organizing a hacker meeting in Switzerland.

FSF Events: GNU40 - Celebration in the US

Friday 1st of September 2023 03:55:00 PM
The GNU System is turning forty. In honor of this event, the Free Software Foundation (FSF) is organizing a hackday for families, students, and anyone interested in hacking. Come and celebrate with us with kith and kin!

Simon Josefsson: Trisquel on ppc64el: Talos II

Friday 1st of September 2023 03:37:18 PM

The release notes for Trisquel 11.0 “Aramo” mention support for POWER and ARM architectures, however the download area only contains links for x86, and forum posts suggest there is a lack of instructions how to run Trisquel on non-x86.

Since the release of Trisquel 11 I have been busy migrating x86 machines from Debian to Trisquel. One would think that I would be finished after this time period, but re-installing and migrating machines is really time consuming, especially if you allow yourself to be distracted every time you notice something that Really Ought to be improved. Rabbit holes all the way down. One of my production machines is running Debian 11 “bullseye” on a Talos II Lite machine from Raptor Computing Systems, and migrating the virtual machines running on that host (including the VM that serves this blog) to a x86 machine running Trisquel felt unsatisfying to me. I want to migrate my computing towards hardware that harmonize with FSF’s Respects Your Freedom and not away from it. Here I had to chose between using the non-free software present in newer Debian or the non-free software implied by most x86 systems: not an easy chose. So I have ignored the dilemma for some time. After all, the machine was running Debian 11 “bullseye”, which was released before Debian started to require use of non-free software. With the end-of-life date for bullseye approaching, it seems that this isn’t a sustainable choice.

There is a report open about providing ppc64el ISOs that was created by Jason Self shortly after the release, but for many months nothing happened. About a month ago, Luis Guzmán mentioned an initial ISO build and I started testing it. The setup has worked well for a month, and with this post I want to contribute instructions how to get it up and running since this is still missing.

The setup of my soon-to-be new production machine:

  • Talos II Lite
  • POWER9 18-core v2 CPU
  • Inter-Tech 4U-4410 rack case with ASPOWER power supply
  • 8x32GB DDR4-2666 ECC RDIMM
  • HighPoint SSD7505 (the Rocket 1504 or 1204 would be a more cost-effective choice, but I re-used a component I had laying around)
  • PERC H700 aka LSI MegaRAID 2108 SAS/SATA (also found laying around)
  • 2x1TB NVMe
  • 3x18TB disks

According to the notes in issue 14 the ISO image is available at and the following commands download, integrity check and write it to a USB stick:

wget -q tar xfa debian-installer-images_20210731+deb11u8+11.0trisquel14_ppc64el.tar.gz ./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso echo '6df8f45fbc0e7a5fadf039e9de7fa2dc57a4d466e95d65f2eabeec80577631b7 ./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso' | sha256sum -c sudo wipefs -a /dev/sdX sudo dd if=./installer-ppc64el/20210731+deb11u8+11/images/netboot/mini.iso of=/dev/sdX conv=sync status=progress

Sadly, no hash checksums or OpenPGP signatures are published.

Power off your device, insert the USB stick, and power it up, and you see a Petitboot menu offering to boot from the USB stick. For some reason, the "Expert Install" was the default in the menu, and instead I select "Default Install" for the regular experience. For this post, I will ignore BMC/IPMI, as interacting with it is not necessary. Make sure to not connect the BMC/IPMI ethernet port unless you are willing to enter that dungeon. The VGA console works fine with a normal USB keyboard, and you can chose to use only the second enP4p1s0f1 network card in the network card selection menu.

If you are familiar with Debian netinst ISO’s, the installation is straight-forward. I complicate the setup by partitioning two RAID1 partitions on the two NVMe sticks, one RAID1 for a 75GB ext4 root filesystem (discard,noatime) and one RAID1 for a 900GB LVM volume group for virtual machines, and two 20GB swap partitions on each of the NVMe sticks (to silence a warning about lack of swap, I’m not sure swap is still a good idea?). The 3x18TB disks use DM-integrity with RAID1 however the installer does not support DM-integrity so I had to create it after the installation.

There are two additional matters worth mentioning:

  • Selecting the apt mirror does not have the list of well-known Trisquel mirrors which the x86 installer offers. Instead I have to input the archive mirror manually, and fortunately the hostname and path values are available as defaults, so I just press enter and fix this after the installation has finished. You may want to have the hostname/path of your local mirror handy, to speed things up.
  • The installer asks me which kernel to use, which the x86 installer does not do. I believe older Trisquel/Ubuntu installers asked this question, but that it was gone in aramo on x86. I select the default “linux-image-generic” which gives me a predictable 5.15 Linux-libre kernel, although you may want to chose “linux-image-generic-hwe-11.0” for a more recent 6.2 Linux-libre kernel. Maybe this is intentional debinst-behaviour for non-x86 platforms?

I have re-installed the machine a couple of times, and have now finished installing the production setup. I haven’t ran into any serious issues, and the system has been stable. Time to wrap up, and celebrate that I now run an operating system aligned with the Free System Distribution Guidelines on hardware that aligns with Respects Your Freedom — Happy Hacking indeed!

coreutils @ Savannah: coreutils-9.4 released [stable]

Tuesday 29th of August 2023 03:16:59 PM

This is to announce coreutils-9.4, a stable release.
This is a stabilization release coming about 19 weeks after the 9.3 release.
See the NEWS below for a summary of changes.

There have been 162 commits by 10 people in the 19 weeks since 9.3.
Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Andreas Schwab (1)      Jim Meyering (1)
  Bernhard Voelker (3)    Paul Eggert (60)
  Bruno Haible (11)       Pádraig Brady (80)
  Dragan Simic (3)        Sylvestre Ledru (2)
  Jaroslav Skarvada (1)   Ville Skyttä (1)

Pádraig [on behalf of the coreutils maintainers]

Here is the GNU coreutils home page:

For a summary of changes and contributors, see:;a=shortlog;h=v9.4
or run this command from a git-cloned coreutils directory:
  git shortlog v9.3..v9.4

Here are the compressed sources:   (15MB)   (5.8MB)

Here are the GPG detached signatures:

Use a mirror for higher download bandwidth:

Here are the SHA1 and SHA256 checksums:

  7dce42b8657e333ce38971d4ee512c4313b8f633  coreutils-9.4.tar.gz
  X2ANkJOXOwr+JTk9m8GMRPIjJlf0yg2V6jHHAutmtzk=  coreutils-9.4.tar.gz
  7effa305c3f4bc0d40d79f1854515ebf5f688a18  coreutils-9.4.tar.xz
  6mE6TPRGEjJukXIBu7zfvTAd4h/8O1m25cB+BAsnXlI=  coreutils-9.4.tar.xz

Verify the base64 SHA256 checksum with cksum -a sha256 --check
from coreutils-9.2 or OpenBSD's cksum since 2007.

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 coreutils-9.4.tar.gz.sig

The signature should match the fingerprint of the following key:

  pub   rsa4096/0xDF6FD971306037D9 2011-09-23 [SC]
        Key fingerprint = 6C37 DC12 121A 5006 BC1D  B804 DF6F D971 3060 37D9
  uid                   [ unknown] Pádraig Brady <>
  uid                   [ unknown] Pádraig Brady <>

If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.

  gpg --locate-external-key

  gpg --recv-keys DF6FD971306037D9

  wget -q -O- '' | gpg --import -

As a last resort to find the key, you can try the official GNU

  wget -q
  gpg --keyring gnu-keyring.gpg --verify coreutils-9.4.tar.gz.sig

This release was bootstrapped with the following tools:
  Autoconf 2.72c.32-cb6fb
  Automake 1.16.5
  Gnulib v0.1-6658-gbb5bb43a1e
  Bison 3.8.2


* Noteworthy changes in release 9.4 (2023-08-29) [stable]

** Bug fixes

  On GNU/Linux s390x and alpha, programs like 'cp' and 'ls' no longer
  fail on files with inode numbers that do not fit into 32 bits.
  [This bug was present in "the beginning".]

  'b2sum --check' will no longer read unallocated memory when
  presented with malformed checksum lines.
  [bug introduced in coreutils-9.2]

  'cp --parents' again succeeds when preserving mode for absolute directories.
  Previously it would have failed with a "No such file or directory" error.
  [bug introduced in coreutils-9.1]

  'cp --sparse=never' will avoid copy-on-write (reflinking) and copy offloading,
  to ensure no holes present in the destination copy.
  [bug introduced in coreutils-9.0]

  cksum again diagnoses read errors in its default CRC32 mode.
  [bug introduced in coreutils-9.0]

  'cksum --check' now ensures filenames with a leading backslash character
  are escaped appropriately in the status output.
  This also applies to the standalone checksumming utilities.
  [bug introduced in coreutils-8.25]

  dd again supports more than two multipliers for numbers.
  Previously numbers of the form '1024x1024x32' gave "invalid number" errors.
  [bug introduced in coreutils-9.1]

  factor, numfmt, and tsort now diagnose read errors on the input.
  [This bug was present in "the beginning".]

  'install --strip' now supports installing to files with a leading hyphen.
  Previously such file names would have caused the strip process to fail.
  [This bug was present in "the beginning".]

  ls now shows symlinks specified on the command line that can't be traversed.
  Previously a "Too many levels of symbolic links" diagnostic was given.
  [This bug was present in "the beginning".]

  pinky, uptime, users, and who no longer misbehave on 32-bit GNU/Linux
  platforms like x86 and ARM where time_t was historically 32 bits.
  Also see the new --enable-systemd option mentioned below.
  [bug introduced in coreutils-9.0]

  'pr --length=1 --double-space' no longer enters an infinite loop.
  [This bug was present in "the beginning".]

  shred again operates on Solaris when built for 64 bits.
  Previously it would have exited with a "getrandom: Invalid argument" error.
  [bug introduced in coreutils-9.0]

  tac now handles short reads on its input.  Previously it may have exited
  erroneously, especially with large input files with no separators.
  [This bug was present in "the beginning".]

  'uptime' no longer incorrectly prints "0 users" on OpenBSD,
  and is being built again on FreeBSD and Haiku.
  [bugs introduced in coreutils-9.2]

  'wc -l' and 'cksum' no longer crash with an "Illegal instruction" error
  on x86 Linux kernels that disable XSAVE YMM.  This was seen on Xen VMs.
  [bug introduced in coreutils-9.0]

** Changes in behavior

  'cp -v' and 'mv -v' will no longer output a message for each file skipped
  due to -i, or -u.  Instead they only output this information with --debug.
  I.e., 'cp -u -v' etc. will have the same verbosity as before coreutils-9.3.

  'cksum -b' no longer prints base64-encoded checksums.  Rather that
  short option is reserved to better support emulation of the standalone
  checksum utilities with cksum.

  'mv dir x' now complains differently if x/dir is a nonempty directory.
  Previously it said "mv: cannot move 'dir' to 'x/dir': Directory not empty",
  where it was unclear whether 'dir' or 'x/dir' was the problem.
  Now it says "mv: cannot overwrite 'x/dir': Directory not empty".
  Similarly for other renames where the destination must be the problem.
  [problem introduced in coreutils-6.0]

** Improvements

  cp, mv, and install now avoid copy_file_range on linux kernels before 5.3
  irrespective of which kernel version coreutils is built against,
  reinstating that behavior from coreutils-9.0.

  comm, cut, join, od, and uniq will now exit immediately upon receiving a
  write error, which is significant when reading large / unbounded inputs.

  split now uses more tuned access patterns for its potentially large input.
  This was seen to improve throughput by 5% when reading from SSD.

  split now supports a configurable $TMPDIR for handling any temporary files.

  tac now falls back to '/tmp' if a configured $TMPDIR is unavailable.

  'who -a' now displays the boot time on Alpine Linux, OpenBSD,
  Cygwin, Haiku, and some Android distributions

  'uptime' now succeeds on some Android distributions, and now counts
  VM saved/sleep time on GNU (Linux, Hurd, kFreeBSD), NetBSD, OpenBSD,
  Minix, and Cygwin.

  On GNU/Linux platforms where utmp-format files have 32-bit timestamps,
  pinky, uptime, and who can now work for times after the year 2038,
  so long as systemd is installed, you configure with a new, experimental
  option --enable-systemd, and you use the programs without file arguments.
  (For example, with systemd 'who /var/log/wtmp' does not work because
  systemd does not support the equivalent of /var/log/wtmp.)

GNUnet News: GSoC Work Product: GNUnet over QUIC

Saturday 26th of August 2023 10:00:00 PM
GSoC Work Product: GNUnet over QUIC

Hi, my name is Marshall and throughout the summer of 2023 I worked on developing a new communicator for the GNUnet transport service. I learned a lot about GNUnet through my development experience. Here are some details about the journey!

Goals of the Project.

The goal of this project was to develop a new transport, QUIC, for the Transport Next Generation (TNG) service . TNG is a successor to the previous transport plugins and will be running in the fall 2023 GNUnet release. At the time of writing, GNUnet currently supports transports over TCP, UDP, and UNIX sockets. I chose to implement a QUIC transport communicator due to the rising popularity and speed of this protocol. Because of this popularity, QUIC will be a great transport protocol for GNUnet traffic to sit on top of. QUIC is intended to be a faster alternative to TCP and tries to address some issues that TLS has.

What I completed.

One of the first steps was deciding on a library that can process QUIC packets and would be available to users running different operating systems. We chose to go with Cloudflare's Quiche library because the C API seemed simpler than other available libraries. Installing cloudflare-quiche via the Homebrew package manager (MacOS) did not actually install the libraries properly for linking with other C programs so I made a pull request in the Homebrew repository and fixed the formula . After this, I worked on handling the receiving functionality of the communicator. This involved reading from the socket then processing the QUIC packets using the Quiche library. Then I implemented the ability to send messages in a similar manner. One of the last steps involved connecting everything together with the transport service so that the communicator can receive information about peers and relay messages. Once I finished these tasks, the QUIC communicator got merged upstream and is currently an experimental feature. This is due to the packaging situation with Quiche as it is difficult for some users to install the library, and there still may be bugs lingering in the QUIC communicator. More testing and refinement is needed to offer a truly robust and reliable communicator. Link to source code: QUIC communicator .

The current state.

The QUIC communicator currently functions and passes basic communicator tests. That being said, there are some latency issues that need to be addressed. Since the communicator suite is designed to run alongside the new TNG service, it is currently not usable since TNG is still under development (as mentioned previously). Mentioned below are some other things that have yet to be implemented in the QUIC communicator, but will be fixed in the future.

Future Work.

We still need to develop a more permanent solution to the certificate generation so that the Quiche API functions properly. This certificate generation has been done in previous implementations (for example the HTTPS plugin). Currently, we are using static, example certificates. Adding timers to each QUIC connection so that a timeout will trigger a connection to close also needs to be implemented. Finally, we should look into lowering the latency by finding points where the communicator is too slow and optimizing it.

Challenges I Encountered.

One of the challenges was reverse engineering the Quiche C API because it has such limited documentation. I learned how to make use of the API by looking at the very simple example client and server examples that are provided in the Quiche repository. There is documentation for the Rust API which seems to operate pretty similarly, so this was helpful too at times. I overcame this challenge with the help and guidance of my mentor Martin Schanzenbach.

Final notes. Overall, my experience with GNUnet was fantastic. My mentors were friendly and consistently available when I needed help, and I thank them for that. I'm thankful for the GNUnet community for being welcoming and understanding toward new open source developers like myself. I had a lot of fun learning how GNUnet works while developing my project. I am looking forward to contributing to GNUnet in the future!

parallel @ Savannah: GNU Parallel 20230822 ('Chandrayaan') released [stable]

Thursday 24th of August 2023 04:31:43 AM

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

Quote of the month:

  GNU parallel is your friend. Unleash your cores! #GNU
    -- Blake L @BlakeDL@twitter

New in this release:

  • 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:

You can install GNU Parallel in just 10 seconds with:

    $ (wget -O - || lynx -source || curl || \
       fetch -o - ) >
    $ sha1sum | grep 883c667e01eed62f975ad28b6d50e22a
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
    $ md5sum | grep cc21b4c943fd03e93ae1ae49e28573c0
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
    $ sha512sum | grep ec113b49a54e705f86d51e784ebced224fdff3f52
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
    $ bash

Watch the intro video on

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,

If you like GNU Parallel:

  • Give a demo at your local user group/team/colleagues
  • Post the intro videos on Reddit/Diaspora*/forums/blogs/ lists
  • Get the merchandise
  • Request or write a review for your favourite blog or magazine
  • Request or build a package for your favourite distribution (if it is not already there)
  • Invite me for your next conference

If you use programs that use GNU Parallel for research:

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

If GNU Parallel saves you money:


GNU sql aims to give a simple, unified interface for accessing databases through all the different databases' command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.

The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell.

When using GNU SQL for a publication please cite:

O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.

About GNU Niceload

GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.

poke @ Savannah: GNU poke 3.3 released

Sunday 20th of August 2023 03:41:41 PM

I am happy to announce a new release of GNU poke, version 3.3.

This is a bugfix release in the 3.x series.

See the file NEWS in the distribution tarball for a list of issues
fixed in this release.

The tarball poke-3.3.tar.gz is now available at

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

Thanks to the people who contributed with code and/or documentation to
this release.

Happy poking!

Jose E. Marchesi
Frankfurt am Main
20 August 2023

gzip @ Savannah: gzip-1.13 released [stable]

Sunday 20th of August 2023 12:33:17 AM

This is to announce gzip-1.13, a stable release.
Thanks to Paul and Bruno for contributing.

There have been 50 commits by 3 people in the 71 weeks since 1.12.

See the NEWS below for a brief summary.

Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Bruno Haible (4)
  Jim Meyering (15)
  Paul Eggert (31)

 [on behalf of the gzip maintainers]

Here is the GNU gzip home page:

For a summary of changes and contributors, see:;a=shortlog;h=v1.13
or run this command from a git-cloned gzip directory:
  git shortlog v1.12..v1.13

Here are the compressed sources:   (1.3MB)   (820KB)

Here are the GPG detached signatures:

Use a mirror for higher download bandwidth:

Here are the SHA1 and SHA256 checksums:

  9cc4f2220c8028823433e9d869dc07610aefefb5  gzip-1.13.tar.gz
  IPyBiu666Hzb8gnTUUGtnTzzErNaXmvmG/z7+e3dISo=  gzip-1.13.tar.gz
  a793e107a54769576adc16703f97c39ee7afdd4e  gzip-1.13.tar.xz
  dFTraTXbF8ZlVXbC4bD6vv04tNCTbg+H9IzQYs6RoFc=  gzip-1.13.tar.xz

Verify the base64 SHA256 checksum with cksum -a sha256 --check
from GNU coreutils-9.2 or OpenBSD's cksum since 2007.

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 gzip-1.13.tar.gz.sig

The signature should match the fingerprint of the following key:

  pub   rsa4096/0x7FD9FCCB000BEEEE 2010-06-14 [SCEA]
        Key fingerprint = 155D 3FC5 00C8 3448 6D1E  EA67 7FD9 FCCB 000B EEEE
  uid                   [ unknown] Jim Meyering <>
  uid                   [ unknown] Jim Meyering <>
  uid                   [ unknown] Jim Meyering <>

If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.

  gpg --locate-external-key

  gpg --recv-keys 7FD9FCCB000BEEEE

  wget -q -O- '' | gpg --import -

As a last resort to find the key, you can try the official GNU

  wget -q
  gpg --keyring gnu-keyring.gpg --verify gzip-1.13.tar.gz.sig

This release was bootstrapped with the following tools:
  Autoconf 2.72c.32-cb6fb
  Automake 1.16i
  Gnulib v0.1-6631-g5651802c60


* Noteworthy changes in release 1.13 (2023-08-19) [stable]

** Changes in behavior

  zless now diagnoses gzip failures, if using less 623 or later.

  When SIGPIPE is ignored, gzip now exits with status 2 (warning)
  instead of status 1 (error) when writing to a broken pipe.  This is
  more useful with programs like 'less' that treat gzip exit status 2
  as a non-failure.

** Bug fixes

  'gzip -d' no longer fails to report invalid compressed data
  that uses a dictionary distance outside the input window.
  [bug present since the beginning]

  Port to C23, which does not allow K&R-style function definitions
  with parameters, and which does not define __alignas_is_defined.

More in Tux Machines

digiKam 7.7.0 is released

After three months of active maintenance and another bug triage, the digiKam team is proud to present version 7.7.0 of its open source digital photo manager. See below the list of most important features coming with this release. Read more

Dilution and Misuse of the "Linux" Brand

Samsung, Red Hat to Work on Linux Drivers for Future Tech

The metaverse is expected to uproot system design as we know it, and Samsung is one of many hardware vendors re-imagining data center infrastructure in preparation for a parallel 3D world. Samsung is working on new memory technologies that provide faster bandwidth inside hardware for data to travel between CPUs, storage and other computing resources. The company also announced it was partnering with Red Hat to ensure these technologies have Linux compatibility. Read more

today's howtos

  • How to install go1.19beta on Ubuntu 22.04 – NextGenTips

    In this tutorial, we are going to explore how to install go on Ubuntu 22.04 Golang is an open-source programming language that is easy to learn and use. It is built-in concurrency and has a robust standard library. It is reliable, builds fast, and efficient software that scales fast. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel-type systems enable flexible and modular program constructions. Go compiles quickly to machine code and has the convenience of garbage collection and the power of run-time reflection. In this guide, we are going to learn how to install golang 1.19beta on Ubuntu 22.04. Go 1.19beta1 is not yet released. There is so much work in progress with all the documentation.

  • molecule test: failed to connect to bus in systemd container - openQA bites

    Ansible Molecule is a project to help you test your ansible roles. I’m using molecule for automatically testing the ansible roles of geekoops.

  • How To Install MongoDB on AlmaLinux 9 - idroot

    In this tutorial, we will show you how to install MongoDB on AlmaLinux 9. For those of you who didn’t know, MongoDB is a high-performance, highly scalable document-oriented NoSQL database. Unlike in SQL databases where data is stored in rows and columns inside tables, in MongoDB, data is structured in JSON-like format inside records which are referred to as documents. The open-source attribute of MongoDB as a database software makes it an ideal candidate for almost any database-related project. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of the MongoDB NoSQL database on AlmaLinux 9. You can follow the same instructions for CentOS and Rocky Linux.

  • An introduction (and how-to) to Plugin Loader for the Steam Deck. - Invidious
  • Self-host a Ghost Blog With Traefik

    Ghost is a very popular open-source content management system. Started as an alternative to WordPress and it went on to become an alternative to Substack by focusing on membership and newsletter. The creators of Ghost offer managed Pro hosting but it may not fit everyone's budget. Alternatively, you can self-host it on your own cloud servers. On Linux handbook, we already have a guide on deploying Ghost with Docker in a reverse proxy setup. Instead of Ngnix reverse proxy, you can also use another software called Traefik with Docker. It is a popular open-source cloud-native application proxy, API Gateway, Edge-router, and more. I use Traefik to secure my websites using an SSL certificate obtained from Let's Encrypt. Once deployed, Traefik can automatically manage your certificates and their renewals. In this tutorial, I'll share the necessary steps for deploying a Ghost blog with Docker and Traefik.