To my knowledge Gentoo just became the first GNU/Linux distro ever packaging and distributing a program that happens to be written in Algol 68... have no doubt, others will follow shortly ;)
Aggregation of development blogs from the GNU Project
To my knowledge Gentoo just became the first GNU/Linux distro ever packaging and distributing a program that happens to be written in Algol 68... have no doubt, others will follow shortly ;)
I am happy to announce the first release of godcc, version 1.0.
The tarball godcc-1.0.tar.gz is now available at https://jemarch.net/godcc-1.0.tar.gz.
godcc (https://jemarch.net) is a full-fledged command-line interface to Compiler Explorer instances such as https://godbolt.org. It currently supports getting listings, compiling source files and formatting sources.
Happy godccing!
This is to announce coreutils-9.10, a stable release.
Notable changes include:
- Options in man pages link directly into the full web docs
- timeout(1) now kills the command for all terminating signals
- paste(1) is now multi-byte character aware
- cp(1) fixes an unlikely infinite loop introduced in v9.9
- The multi-call binary is 3.2% smaller
There have also been many bug fixes and other changes
as summarized in the NEWS below.
There have been 288 commits by 10 people in the 12 weeks since 9.9.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Bernhard Voelker (1)
Bruno Haible (1)
Christopher Illarionova (2)
Collin Funk (92)
Dmitry V. Levin (1)
Egmont Koblinger (3)
Paul Eggert (14)
Padraig Brady (159)
Sylvestre Ledru (5)
oech3 (10)
Padraig [on behalf of the coreutils maintainers]
==================================================================
Here is the GNU coreutils home page:
https://gnu.org/s/coreutils/
Here are the compressed sources:
https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.gz (15MB)
https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz (6.3MB)
Here are the GPG detached signatures:
https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.gz.sig
https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA256 and SHA3-256 checksums:
SHA256 (coreutils-9.10.tar.gz) = 4L3h+2hQlEf8cjzyUX6KjH+kZ2mRm7dJDtNQoukjhWI=
SHA3-256 (coreutils-9.10.tar.gz) = ajdC0yoxKq5sDXyeL9nMXNSZ26du/3QtZCEo4PNZZkA=
SHA256 (coreutils-9.10.tar.xz) = FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU=
SHA3-256 (coreutils-9.10.tar.xz) = jUv9Ki9gdL5VuXEhDhGyuR+Md4r2PAnkJ9JCw1xdoWY=
Verify the base64 SHA256 checksum with 'cksum -a sha256 --check'
from coreutils-9.2 or OpenBSD's cksum since 2007.
Verify the base64 SHA3-256 checksum with 'cksum -a sha3 --check'
from coreutils-9.8.
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.10.tar.xz.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 [ultimate] Pádraig Brady <P@draigBrady.com>
uid [ultimate] Pádraig Brady <pixelbeat@gnu.org>
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 P@draigBrady.com
gpg --recv-keys DF6FD971306037D9
wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=coreutils&download=1' | gpg --import -
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify coreutils-9.10.tar.xz.sig
This release is based on the coreutils git repository, available as
git clone https://https.git.savannah.gnu.org/git/coreutils.git
with commit 89b2cd58ac895e3fc0d24d8f10e7e4ba132e7fb6 tagged as v9.10.
For a summary of changes and contributors, see:
https://gitweb.git.savannah.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.10
or run this command from a git-cloned coreutils directory:
git shortlog v9.9..v9.10
This release was bootstrapped with the following tools:
Autoconf 2.72.101-9513b
Automake 1.18.1
Gnulib 2026-01-24 1c5e0277c2143dd570d8c88f8923eed2afd8e13b
Bison 3.8.2
NEWS
* Noteworthy changes in release 9.10 (2026-02-04) [stable]
** Bug fixes
cp, install, and mv no longer enter an infinite loop copying sparse files
with SEEK_HOLE. E.g., this was seen on ext4 when copying sparse files with
extents that are being actively updated, and copy offload is not being used.
[bug introduced in coreutils-9.9]
'date' no longer fails with format directives that return an empty string.
[bug introduced in coreutils-9.9]
'dd seek=N of=FILE' no longer continues copying, overwriting FILE if it
exists, if ftruncate fails.
[bug introduced in coreutils-9.1]
du and ls no longer modify strings returned by getenv.
POSIX says this is not portable.
[bug introduced in fileutils-4.1.6]
'fmt' now correctly diagnoses read errors.
Previously fmt generated a generic error for any read error.
[bug introduced in coreutils-9.0]
md5sum --text correctly translates CRLF line endings with the MSYS2 runtime.
This also applies to the sha*sum and b2sum utilities.
[This bug was present in "the beginning".]
'numfmt' no longer drops custom suffixes from numbers it cannot fully parse.
[bug introduced with numfmt in coreutils-8.21]
'tail -f --pid' can no longer exit upon receiving a non terminating signal.
On older Linux systems it may have failed with "Interrupted system call".
[bug introduced in coreutils-7.5]
'timeout' will now propagate all terminating signals to the monitored command.
Previously 'timeout' could have exited and left the monitored command running.
[bug introduced with timeout in coreutils-7.0]
wc now documents its --debug option, currently used to
indicate the line count acceleration being used.
[bug introduced in coreutils-9.0]
When built with `clang -fno-inline`, memory allocation issues are again
handled in a defined manner. Previously programs may have crashed etc.
after a failure to allocate memory.
[bug introduced in coreutils-9.0]
** New Features
configure accepts a new --enable-single-binary=hardlinks mode to build the
selected programs as hard links to a multi-call binary called "coreutils".
This augments the existing "symlinks" and "shebangs" modes already
supported by the --enable-single-binary option.
'stat' and 'tail' now know about the "guest-memfd" file system type.
stat -f -c%T now reports the file system type,
and tail -f uses polling for this file system.
'tail' now accepts the --debug option, which is currently used to
detail the --follow implementation being used.
'du' now supports the short option -A corresponding to the existing long
option --apparent-size, for compatibility with FreeBSD.
** Changes in behavior
All commands now markup option names in --help and man pages,
with bold attributes, and hyperlinks into the online manual on gnu.org.
The links can be configured with the --enable-manual-url configure option,
and the bold highlighting with --disable-bold-man-page-references.
At runtime all markup can be disabled with the TERM=dumb env var value.
'fmt' -w,--width no longer includes '\n' in the width of a line.
I.e., the specified width is interpreted to be an _inclusive_ maximum.
'ls --hyperlink' now uses more standard format hyperlinks.
'ESC\' (ST) is now used as a delimiter, instead of '\a' (BEL).
'ptx' -t is no longer a no-op, and now sets the default width to 100 columns.
'timeout' now honors ignored signals and will not propagate them. E.g.,
timeout(1) in a shell backgrounded job, will not terminate upon receiving
SIGINT or SIGQUIT, as these are ignored by default in shell background jobs.
'timeout -v -s 0' now prints the signal number 0 instead of EXIT.
The multi-call binary now only processes --help or --version options
if it is installed with a name ending with "coreutils". This allows
for more consistent handling of these options with unsupported commands.
** Improvements
The multi-call binary built with configure --enable-single-binary
is reduced in size by 3.2% through the more efficient reuse of the cksum
utility by the md5sum and sha*sum utilities.
'cksum' now validates its options more consistently.
E.g., `cksum --text --tag` now fails like `cksum --tag --text` already did.
'cksum', 'du', and 'wc' now exit promptly upon receiving a write
error, which is significant when processing many input files.
csplit, ls, and sort, now handle a more complete set of terminating signals.
'du' now processes directories with 10,000 or more entries up to 9 times
faster on the Lustre file system.
'paste' now supports multi-byte --delimiters characters.
'pinky' will now exit immediately upon receiving a write error, which is
significant when reading large plan or project files.
'readlink' and 'realpath' will now exit promptly upon receiving a write error,
which is significant when canonicalizing multiple file names longer than
PATH_MAX.
'timeout' on Linux will always terminate the child in the case where the
timeout process itself dies, like when it receives a KILL signal for example.
** Build-related
Programs now port to C23 platforms that strictly check types when
qualifier-generic functions like strchr are used.
'chcon' and 'runcon' stub binaries will be built on systems without
libselinux, when configured using --with-selinux.
'kill' and 'uptime' are no longer built by default. These programs can be
built with the --enable-install-program=kill,uptime configure option.
04 February, 2026 12:58PM by Pádraig Brady
Download from https:/ ... p.gnu.o ... ttext-0.26.tar.gz
New in this release:
/* xgettext: no-url-check */
or
/* xgettext: no-email-check */
29 January, 2026 05:30PM by Bruno Haible
GNU Parallel 20260122 ('Maduro') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
64コアで、64並列でsimlationを回してtopコマンドで状況を見るのは心地よい。簡単に並列処理を実現できるGNU parallelコマンドは素晴らしい。
-- Daisuke Iizuka @diizuka@twitter
New in this release:
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.
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 ... rg/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 c555f616391c6f7c28bf938044f4ec50
12345678 c555f616 391c6f7c 28bf9380 44f4ec50
$ md5sum install.sh | grep 707275363428aa9e9a136b9a7296dfe4
70727536 3428aa9e 9a136b9a 7296dfe4
$ sha512sum install.sh | grep b24bfe249695e0236f6bc7de85828fe1f08f4259
83320d89 f56698ec 77454856 895edc3e aa16feab 2757966e 5092ef2d 661b8b45
b24bfe24 9695e023 6f6bc7de 85828fe1 f08f4259 6ce5480a 5e1571b2 8b722f21
$ bash install.sh
Watch the intro video on http://www.youtub ... L284C9FF2488BC6D1
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/1 ... 81/zenodo.1146014.
If you like GNU Parallel:
If you use programs that use GNU Parallel for research:
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.
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.
27 January, 2026 11:44PM by Ole Tange
We are pleased to announce the release of GNUÂ Guix version 1.5.0!
The release comes with ISO-9660 installation images, virtual machine
images, and with tarballs to install the package manager on top of your
GNU/Linux distro, either from source or from binaries—check out the
download page. Guix users can
update by running guix pull.
It’s been 3 years since the previous
release.
That’s a lot of time, reflecting both the fact that, as a rolling
release, users continuously get new features and update by running
guix pull; but it also shows a lack of processes, something that we
had to address before another release could be made.
During that time, Guix received about 71,338 commits by 744 people, which include many new features; the project also got a new decision-making process, migrated to Codeberg and started a fundraising campaign. That’s just the surface among so many great changes, so keep reading!
Illustration by Luis Felipe, published under CC-BY-SAÂ 4.0.
This post provides highlights for all the hard work that went into this release. There’s a lot to talk about so make yourself comfortable, relax, and enjoy.
To start with, the Guix ecosystem has seen many exciting developments to the way we collaborate and make decisions!
Firstly, the project adopted with unanimity a new consensus-based decision making process. This process fills a need to be able to gather consensus on significant changes to the project, something that was getting very complicated with the growing number of contributors to the project.
Now, the process provides a clear framework for any contributor to propose and implement important changes. These can be submitted as Guix Consensus Documents (GCDs), each GCD goes through the multiple steps of consensus decision making before being accepted or withdrawn.
Secondly, using this process, the project was able to collectively migrate to Codeberg. This means that all repositories, and bug trackers are now at the same place on Codeberg and that contributions are now made with pull requests instead of patch series.
Thirdly, a new release process was adopted to bring an annual release cycle to Guix. This release is the first to follow this process, with hopefully many others to come!
Lastly, a “Planet� website for Guix is now available at https://planet.guix.gnu.org. It aggregates blogs from various Guix hackers and contributors to bring you the latest and greatest in Guix news.
Three years is a long time for free and open source software! Enough time for 12,525 new packages and 29,932 package updates to the Guix repository. Here are the best highlights:
To start, KDE Plasma 6.5 is now available with the new
plasma-desktop-service-type!

Continuing on desktops; GNOME has been updated from version 42 to 46
and now uses Wayland by default. The gnome-desktop-service-type was
made more modular to better customize the default set of GNOME
applications.
Guix System is now using version 1.0 of the GNUÂ Shepherd, which now supports timed services, kexec reboot and has new services for system logs and log rotation which are now used by Guix System instead of Rottlog and syslogd.
There are around 40 new system services to choose from, including Forgejo Runner, RabbitMQ, iwd, and dhcpcd to name a few.
setuid-programs has been replaced with privileged-programs in
operating-system definitions to support giving specific Linux
capabilities. Additonally, the nss-certs package is now included in
%base-packages.
More than 12,500 packages were added, keeping Guix in the top-ten biggest distributions according to Repology! Among the many noteworthy updates, we now have GCC 15.2.0, Emacs 30.2, Icecat and Librewolf 140, LLVM 21.1.8 and Linux-libre 6.17.12.
In the last release, we introduced structured cooperation using
teams.
There are now 50 teams distributing the many aspects of the
distribution. We have per-language teams like python, rust and
zig ensuring updates for packages and build systems as well as
thematic teams like electronics, hpc and bioinformatics working
on specific application domains. Here are what some of these teams
have been up to:
The HPC team published their annual activity report 2024, showing the exciting developments of Guix in High-Performance Computing.
The electronics team is maintaining free software based Electronic Design Automation (EDA) packages to cover the needs of professionals and hobbyists in the domain with tools such as KiCad, LibrePCB, Xschem, Qucs-S and Ringdove EDA, as well as Verilog, SystemVerilog and VHDL compilers and a toolchain for programmable designs on GateMate FPGAs. They are also collaborating with the Free Silicon Foundation (F-Si) to push free software in the EDA space!
The science team has been able to add a myriad of Astronomy related packages, accompanied by the Python team bringing the move to the new pyproject.toml-based build system as well as the NumPy 2 update.
Finally, the rust team created a new packaging model to efficiently package rust crates, and was able to migrate the Rust collection, 150+ packages with 3,600+ libraries, in just under two weeks; making the Rust packaging process much easier for everyone.
Full-source bootstraps of the Zig and Mono compilers are now available, and the existing bootstrap of Guix has been reduced once again!
Full-source bootstraps are Guix’s solution to the trusting trust problem: compilers are usually compiled by themselves, so how can you build a compiler without trusting an existing binary? Read these posts to learn more about this fascinating problem:
The guix graph command has new backends for GraphML and
CycloneDXÂ JSON, meaning Guix can now be used to generate complete
Software Bill of Material
(SBOM) down
to the first bootstrap binary!
guix shell containers have been improved with a --nesting
option to use Guix within the container and a --emulate-fhs option
that can be used to run software expecting a Filesystem Hierarchy
Standard (FHS) compliant filesystem.
The guix pack command also received new backends to create RPM
packages and AppImages that can be used to publish your Guix packages
to non-Guix
users.
Lastly, a new guix locate
command
is now available to find which packages provide a given file.
It is now possible to run the Guix daemon without root privileges, reducing the impact of privilege escalation vulnerabilities.
This “rootless� mode is now the default when installing Guix 1.5.0 on
distros other than Guix System; on Guix System, it currently has to be
explicitly enabled by setting (privileged? #f) in
guix-configuration. Existing
installation on distros other than Guix System can also be migrated
to
“rootless�.
This is possible thanks to the user namespaces. It might be possible that on your system, the user namespaces are not allowed for guix due to the lack of an AppArmor profile. Because of that, we’ve also included AppArmor profiles that are installed by default on foreign systems.
Finally, the Guix daemon received security fixes for CVE-2024-27297, CVE-2024-52867, CVE-2025-46415, CVE-2025-46416 and CVE-2025-59378.
Release tarballs are now available for the RISC-V 64-bit architecture (riscv64-linux).
The x86_64 architecture saw some development as well, with the experimental support of the GNUÂ Hurd kernel (x86_64-gnu), aiming to be another significant step in the adoption and development of the Hurd. Overall support for the Hurd was greatly improved, it is now an option in the installer, childhurds can be automatically created with a system service and it can even run on a Thinkpad X60!
Surprisingly, making a completely free software distribution does not come for free! The Guix project needs your help to pay the infrastructure costs of build farms, web servers and QA tools that are essential to making this release happen.
If you appreciate all of the work that is done to bring you this one-of-a-kind distro: please donate to the Guix Foundation!
For the release, thanks to all the release team members: Rutherther, Rodion Goritskov, Efraim Flashner, and Noé Lopez. Thanks as well to the release helpers: Andreas Enge, Mothacehe, Dariqq and Ludovic Courtès.
For creating the release process, thanks to Steve George.
For their Guix contributions, thanks to the 744 wonderful people who
contributed and whose names we don’t list here (it would be a bit
long).
They can be listed with git log --oneline v1.4.0..v1.5.0 --format="%an" | sort -u. Every commit counts and is always
appreciated �
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, RISC-V 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.
23 January, 2026 02:00PM by Noé Lopez
It’s that time of the year again: next week is FOSDEM time! As in previous years, many Guix people will be in Brussels. Right after FOSDEM, about sixty of us will gather on February 2–3 for the Guix Days!

First things first: Guix presence at FOSDEM. On Saturday, January 31st:
On Sunday, February 1st, the Declarative & Minimalistic Computing track will once again be a Guile & Guix lair. The whole track is amazing, with top-notch talks and speakers; particularly relevant to Guix and Guile hackers are the following:
You can have more Guix bliss on Sunday afternoon:
Guix Days will take place on Monday and Tuesday right after FOSDEM, at our usual venue. Sixty people already registered, which is our maximum capacity—don’t just show up and hope for the best.
As always, this will be unconference style: we’ll make the program as we go, discussing hot topics such as the crowdfunding campaign, an update on Guix Foundation, processes and governance, as well as the more technical topics we’re fond of.

This year marks the tenth anniversary of the Guile/Declarative & Minimalistic Computing track, and the eighth Guix Days. Shout out to our friends Pjotr Prins and Manolis Ragkousis, who have spearheaded the two events during all these years, and to all the volunteers who helped them on the way! This yearly Brussels gathering has been instrumental in building, shaping, and strengthening our community; to those who can be present, it’s the energizing and refreshing moment of the year. To Pjotr, to Manolis: thank you!
Guix Days graphics are copyright © 2024 Luis Felipe López Acevedo, under CC-BY-SA 4.0, available from Luis’ Guix graphics repository. Picture of “Au Bon Vieux Temps” sign © 2025 Ludovic Courtès, under CC-BY-SA 4.0.
22 January, 2026 01:00PM by Ludovic Courtès
Following up on my initial announcement about Debian Libre Live I am happy to report on continued progress and the release of Debian Libre Live version 13.3.0.
Since both this and the previous 13.2.0 release are based on the stable Debian trixie release, there really isn’t a lot of major changes but instead incremental minor progress for the installation process. Repeated installations has a tendency to reveal bugs, and we have resolved the apt sources list confusion for Calamares-based installations and a couple of other nits. This release is more polished and we are not aware of any known remaining issues with them (unlike for earlier versions which were released with known problems), although we conservatively regard the project as still in beta. A Debian Libre Live logo is needed before marking this as stable, any graphically talented takers? (Please base it on the Debian SVG upstream logo image.)
We provide GNOME, KDE, and XFCE desktop images, as well as text-only “standard” image, which match the regular Debian Live images with non-free software on them, but also provide a “slim” variant which is merely 750MB compared to the 1.9GB “standard” image. The slim image can still start a debian installer, and can still boot into a minimal live text-based system.
The GNOME, KDE and XFCE desktop images feature the Calamares installer, and we have performed testing on a variety of machines. The standard and slim images does not have a installer from the running live system, but all images support a boot menu entry to start the installer.
With this release we also extend our arm64 support to two tested platforms. The current list of successfully installed and supported systems now include the following hardware:
This is a very limited set of machines, but the diversity in CPUs and architecture should hopefully reflect well on a wide variety of commonly available machines. Several of these machines are crippled (usually GPU or WiFI) without adding non-free software, complain at your hardware vendor and adapt your use-cases and future purchases.
The images are as follows, with SHA256SUM checksums and GnuPG signature on the 13.3.0 release page.
Curious how the images were made? Fear not, for the Debian Libre Live project README has documentation, the run.sh script is short and the .gitlab-ci.yml CI/CD Pipeline definition file brief.
Happy Libre OS hacking!
13 January, 2026 01:53PM by simon
Dear GNU CCT:
Here is summary of GNU website from GNU:
2025 had a splash of activity; a few teams who were dormant in 2024 made
a notable progress, in terms of new translations or updating the existing ones.
General Statistics
About 2/3 new translations were made by the Chinese (zh-cn) team this year;
then the Greek and Albanian teams followed. The Polish and Dutch teams
considerably reduced the amount of their outdated translations.
Currently, the total amount of translations is over 3400; the overall percentage
of outdated translations was about 5% lower than in 2024.
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--+
| el | 5 ( 81.9Ki) | 19 (41%) |
+-------+--------------+------------+
| eo * | 1 ( 33.6Ki) | |
+-------+--------------+------------+
| es | 4 ( 34.2Ki) | 2.0 (0.9%) |
+-------+--------------+------------+
| fr | 1 ( 7.9Ki) | 1.4 (0.4%) |
+-------+--------------+------------+
| ml | 1 ( 11.2Ki) | 29 (88%) |
+-------+--------------+------------+
| nl | 0 ( 0.0Ki) | 26 (20%) |
+-------+--------------+------------+
| pl | 1 ( 9.9Ki) | 16 (10%) |
+-------+--------------+------------+
| ru | 2 ( 26.9Ki) | 2.2 (0.7%) |
+-------+--------------+------------+
| sq | 4 ( 73.9Ki) | 9.0 (10%) |
+-------+--------------+------------+
| tr | 4 ( 52.5Ki) | 1.9 (1.4%) |
+-------+--------------+------------+
| zh-cn | 39 (797.9Ki) | 1.3 (0.5%) |
+-------+--------------+------------+
+-------+--------------+
| total | 62 (1130Ki) |
+-------+--------------+
without establishing a new team.
For the reference: 2 new articles were added, amounting to 27Ki (vs. 4 articles
and 44Ki in 2024); the number of commits (about 500 changes in approximately
90 English files) was almost twice as many as in 2024.
Orphaned Teams, New and Reformed Teams
No teams were orphaned, and no new teams were established. Greek and Dutch
teams changed their status to active without a reorganization. A volunteer
requested creating the Georgian team, with no further progress.
Thank you for your contribution.
I wish you all a happy and successful 2026.
Happy hacking.
wxie
07 January, 2026 07:46AM by Wensheng XIE
GNU Emacs has been my primary computing environment of choice for over a decade. Emacs has enabled me to perform a wide array of tasks involving human and computer languages, such as reading and writing notes, emails, chats, programs, and more, all in a cohesive and consistent environment that I can tailor exactly to my needs and liking.
Coming from a Vim background, I started my Emacs journey trying some configuration frameworks that provided vi-like key bindings, and after a few Emacs bankruptcies, ended up with my current homegrown configuration that I wrote from scratch gradually over the last 7 years, with inspiration from the configurations of some folks who shared theirs publicly. Though my configuration has been mostly stable for a few years now and I consciously keep the number of external packages I use very small, I occasionally add small bits and pieces to my configuration when I’m inspired after learning about a neat feature or package on the blogs aggregated on Planet Emacslife, the messages sent to the Emacs mailing lists, or the videos from the annual EmacsConf conference.
I like getting a glimpse of other people’s worlds through the lens of their creative works such as writings, be it prose or Emacs Lisp. That’s only possible when people share freely, free as in freedom. I’m thankful to Richard Stallman for his foresight to imbue GNU Emacs with that freedom from the very beginning and for his lifelong fight for computer user freedom, and to the many other folks who have joined the free software movement since then and have fought the good fight.
I’ve been inspired and encouraged by many awesome Emacs people through the years. People like Corwin Brust with his joyful creative energy around Emacs and the road to software freedom, Sacha Chua and her philosophy of leading a life of learning, sharing, and scaling, Gopar and his enthusiasm for Emacs and its intersection with the Python world, folks like Protesilaos Stavrou and Greg Farough who discovered Emacs initially as non-programmers yet were enamoured by its embodiment of software freedom in practice and went on to integrate it into their everyday lives, and shoshin of the Cicadas cooperative at the intersection of humanity and technology sharing his passion for the human element and community by developing and contributing input methods for his ancestral language of Lakota to GNU Emacs. I’m deeply inspired by each of these wonderful people, and grateful for having known them and for each of their unique perspectives and life stories with which they have enriched my experience in Emacs and the free software world.
As wonderful and impactful as Emacs has been in the lives of the many who have come to know it throughout the decades that it’s been around, it would not have become what it has been, what it is today, and what it may become in the future without its community of passionate users and contributors. The People of Emacs are all of us. Here’s to many more of us, enjoying many more years of Emacs and software freedom together even if spread far apart.
Take care, and so long for now.
Inspired by the Emacs Carnival theme for this month, The People of Emacs. Thanks to George Jones for hosting.
Recently I have been using Gemini, a sort of a modernized Gopher, more and more, and have finally decided to create and maintain my own Gemini capsule, that you can find at
The plan, moving forward, is to publish basically the same contents in both www and gemini versions of this homepage.
Salud!
Recently I have been using Gemini, a sort of a modernized Gopher, more and more, and have finally decided to create and maintain my own Gemini capsule, that you can find at
The plan, moving forward, is to publish basically the same contents in both www and gemini versions of this homepage.
Salud!
GNU Parallel 20251222 ('Bondi') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
Used? gnu parallel is my new favorite toy
-- Eytan Adar @eytan.adar.prof
New in this release:
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.
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 ... rg/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 c555f616391c6f7c28bf938044f4ec50
12345678 c555f616 391c6f7c 28bf9380 44f4ec50
$ md5sum install.sh | grep 707275363428aa9e9a136b9a7296dfe4
70727536 3428aa9e 9a136b9a 7296dfe4
$ sha512sum install.sh | grep b24bfe249695e0236f6bc7de85828fe1f08f4259
83320d89 f56698ec 77454856 895edc3e aa16feab 2757966e 5092ef2d 661b8b45
b24bfe24 9695e023 6f6bc7de 85828fe1 f08f4259 6ce5480a 5e1571b2 8b722f21
$ bash install.sh
Watch the intro video on http://www.youtub ... L284C9FF2488BC6D1
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/1 ... 81/zenodo.1146014.
If you like GNU Parallel:
If you use programs that use GNU Parallel for research:
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.
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 December, 2025 01:34AM by Ole Tange
This is a bugfix release for gnunet 0.26.1. It fixes some regressions and minor bugs.
You can find a detailed list of changes in the git log and noteworthy changes in the NEWS file.
The GPG key used to sign is: D842 3BCB 326C 7907 0339 29C7 939E 6BE1 E29F C3CC
Note that due to mirror synchronization, not all links may be functional early after the release. For direct access try https://ftp.gnu.org/gnu/gnunet/
Dear community
I am happy to announce that since patchset 5.0.5, GNU Health Information system is ready for Python 3.14.
All GNU Health HIS packages have been updated so they allow Python 3.14. The GNU Health GTK client and GNU Health control installation and instance manager have also been upgraded.
Operating systems like Void Linux already upgraded to Python 3.14, and now you can enjoy this Pi.thon release in GNUHealth.
As usual, backup your database, local modules/packages and GNU Health filesystem before upgrading, and report any issue you may find.
For detailed information and changes, please visit the GNU Health HIS repositories at Codeberg (https://codeberg. ... org/gnuhealth/his)
You can download the source code directly from GNU.org and the packages from PyPI.
Happy hacking ❤️
16 December, 2025 12:46PM by Luis Falcon
Dear community
The patchset 5.0.4 of GNU Health Information System is out!
This is a small patch related to the calendar package.
If you use the vanilla / standard installation, you can update the server and the dependencies from the gnuhealth control center (https://docs.gnuh ... ontrolcenter.html)
As usual, before you upgrade your instance, make sure you have made a backup of your DB instance and "attach" resource !
Happy hacking ❤️
5bbd80c38: health_calendar: Fix issue #164 - AttributeError when creating work schedule Tue Dec 2 11:13:26 2025 +0000 Luis Falcon
For more information, please check our Codeberg page:
https://codeberg. ... org/gnuhealth/his
13 December, 2025 08:53PM by Luis Falcon
GNU mailutils version 3.21 is available for download. Short list of changes in this version follows. Refer to its NEWS file for a detailed discussion.
11 December, 2025 02:31PM by Sergey Poznyakoff
Version 1.7 of GNU radius is available for download.
This is a maintenance release.
Noteworthy changes:
11 December, 2025 12:07PM by Sergey Poznyakoff
I am pleased to announce the availability of Planet Guix, an Atom and RSS aggregator covering all things Guix. You can browse posts on the website or use your favourite feed reader to subscribe to the aggregate feed.
Planet Guix already has subscriptions to 19 blogs from around the community;
if you write about Guix (no matter how infrequently) and would like your blog to
be included, or if you would like to suggest another blog I missed, please
create a pull request against the repository in
Codeberg — you'll see that the
subscriptions are simply configured as association lists in planet/config.scm.
Back in September, Sébastien Gendre asked on the help-guix mailing list if there were any plans to create a Planet website for Guix. The discussion drifted into how this might be implemented in Guile, and I thought it sounded like an interesting project for the dark autumn evenings.
The original Planet aggregator was written in Python and many Planet websites are still using its successor, Venus. The Venus code base has not seen much activity in the last decade and still uses Python 2, which was sunset in 2020. This was all the incentive I needed to implement a new Planet aggregator and static site generator in Guile.
We already know from the likes of Haunt that Guile has all the tools needed to generate a static web site. Both Atom and RSS are XML formats, and Guile also has great support for working with XML. The Guile Planet implementation uses the following built-in modules:
(web client)
to fetch the feeds.(sxml simple)
for reading the Atom/RSS feeds and writing the aggregate Atom feed.(sxml xpath) for
searching the feeds to extract the data of interest.(sxml transform)
for sanitizing HTML in the entry summaries.Many feeds include HTML content in the entry summary, which we need to parse.
This is where htmlprag
from guile-lib comes in. I used this both
to parse HTML embedded in feeds and to generate the static content from an
SXML data
structure.
With these libraries to hand the code for the planet aggregator almost wrote itself!
I was trying to keep dependencies to a minimum, but
guile-filesystem
is too useful to do without and, later in the development process, I pulled in
guile-srfi-235 which
provides some useful combinators. At the moment I'm only using apply-chain to
build a function for post-processing one of the feeds, but why re-invent the
wheel?
I initially deployed the Planet to a test site running on one of my servers, but the idea was received enthusiastically by the Guix maintainers and I was happy that they wanted to host it on their infrastructure.
Of course they are using Guix to manage their virtual machines in Hetzner cloud!
While they could have picked up the Planet code and run with it, instead they
pointed me at the server configuration
and invited me to make a pull request against hydra/guix-hetzner-2.scm.
They suggested I base the configuration on their existing
static-web-site-configuration so I started reading the code which proved very
educational (I admit that I had to sleep on it for a week before coming up
with a plan!)
The static-web-site-configuration did almost everything needed to build the
Planet aggregator, only the build step runs like a Guix package build in an
isolated environment with no network - so we cannot fetch the feeds in this
build step.
Luckily, I had already implemented functionality in the Planet code base to
build the static site from feeds cached on disk. So it was simply a case of
adding support for a pre-build script to the static-web-site-configuration
and using this step to download the feeds.
The pull request was merged after some short discussion, and a few days later the site was live in its new home.
This was my second time contributing to the Guix project and I'm pleased to report that it was a smooth experience both times. When it came to the deployment, I was glad that I was encouraged to add the service configuration myself instead of being spoon-fed: working with computers, you learn best by doing.
I'd like to give a shout-out to @civodul, @cbaines, and @apteryx for their help with the deployment, and to the several people who sent merge requests to add their blogs before I even got around to writing this announcement.
I think the Planet site is already a great place to discover people writing about Guix, and I hope it grows and becomes an asset to the community. Happy reading!
05 December, 2025 12:00PM by Ray Miller
I am delighted to announce a new release of GNU a2ps, the “anything to
PostScript” system.
This is to announce a2ps-4.15.8, a stable release. This release fixes a
buffer overflow, and a failure to build on some older systems.
There have been 13 commits by 1 people in the 21 weeks since 4.15.7.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Reuben Thomas (13)
Reuben
[on behalf of the a2ps maintainers]
==================================================================
Here is the GNU a2ps home page:
https://gnu.org/s/a2ps/
Here are the compressed sources and a GPG detached signature:
https://ftpmirror.gnu.org/a2ps/a2ps-4.15.8.tar.gz
https://ftpmirror.gnu.org/a2ps/a2ps-4.15.8.tar.gz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA256 and SHA3-256 checksums:
File: a2ps-4.15.8.tar.gz
SHA256 sum: 8d13915a36ebbfa8e7b236b350cc81adc714acb217a18e8d8c60747c0ad353f9
SHA3-256 sum: 0dce19c25df3be0ce1fc2b92710c33a724595b3617686cbb904ab60dcdd15b34
Verify the SHA256 checksum with either sha256sum, sha256, or
shasum -a 256.
Verify the SHA3-256 checksum with cksum -a sha3 --check
from coreutils-9.8.
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 a2ps-4.15.8.tar.gz.sig
The signature should match the fingerprint of the following key:
pub rsa2048 2013-12-11 [SC]
2409 3F01 6FFE 8602 EF44 9BB8 4C8E F3DA 3FD3 7230
uid Reuben Thomas <rrt@sc3d.org>
uid keybase.io/rrt <rrt@keybase.io>
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 rrt@sc3d.org
gpg --recv-keys 4C8EF3DA3FD37230
wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=a2ps&download=1' | gpg --import -
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify a2ps-4.15.8.tar.gz.sig
This release is based on the a2ps git repository, available as
git clone https://https.git.savannah.gnu.org/git/a2ps.git
with commit c41304d1745017322adb12ba40e7f06984e7f14e tagged as v4.15.8.
For a summary of changes and contributors, see:
https://gitweb.git.savannah.gnu.org/gitweb/?p=a2ps.git;a=shortlog;h=v4.15.8
or run this command from a git-cloned a2ps directory:
git shortlog v4.15.7..v4.15.8
This release was bootstrapped with the following tools:
Autoconf 2.72
Automake 1.18.1
Gnulib 2025-12-04 481064c5c22c8137188eecb6662ebea03fc6d0b8
NEWS
* Noteworthy changes in release 4.15.8 (2025-12-04) [stable]
* Bug fixes:
- Fix a buffer overflow when a long value supplied to -E.
- Include some header files with system paths, not user paths.
* Build system:
- Fix building on systems that need gnulib's malloc wrapper.
- Remove a generated file from git.
- Update the version of gettext used.
* Documentation:
- Update copyright notices to point to GPL online.
04 December, 2025 05:34PM by Reuben Thomas
We are pleased to announce the release of GNU Guile 3.0.11! This release is mainly a bug-fix release, though it does include a number of new features, including support for SRFI 197: Pipeline Operators, support for SRFI 207: String-notated bytevectors (bytestrings), and JIT (just-in-time) compilation for the RISC-V architecture.
It also overhauls SRFI-64 (testing) and includes many other improvements. For full details, see the release notes and check out the download page.
Happy Guile hacking!
01 December, 2025 02:00PM by Rob Browning (guile-devel@gnu.org)
Hello and welcome to my November free software activities report. I’ve been working on a number of things throughout this month but they’re not quite ready for reporting yet, so this month’s report will be quite short.
EmacsConf: I recorded the video for my Gnus talk for this year’s conference. The video will be available along with the the other EmacsConf talks from the conference website, but if you’re feeling particularly impatient you can sneak a peek at it. :)
GNU Spotlight: I prepared and sent the November GNU Spotlight to the FSF campaigns team for publication on the FSF’s community blog and the monthly Free Software Supporter newsletter.
Take care, and so long for now.
I am very happy to announce that, after almost a year in the works, today the Algol 68 front-end has been merged in GCC proper in its development trunk branch. This means that we are no longer off-tree, and that GCC 16 will be featuring a full-fledged and modern Algol 68 compiler once it gets released.

This doesn't mean the work is done. The modules system, which is already functional, needs to be completed and polished, parallel clauses are still to be implemented, and the quality of the generated code should be generally improved. We also want to replace the boehm GC with a tightly integrated customized, exact one, and to continue modernizing and expanding the language, always carefully and respectfully, via GNU extensions: exception handling, FFI, etc.
At this point I would like to thank Marcel van der Veer, Pietro Monteiro, Mohammad-Reza Nabipoor, Thomas Schwinge, Sam James, Matthias Klose, Iain Buclaw, Andrew Pinski, Segher Boessenkool, Iain Sandoe, the GCC global reviewers and the overall GCC community. Without their help, and Marcel's nifty Algol 68 parser, this front-end would simply not exist.
And now, the real fun starts... ;)
Happy algoling!
The debian-with-guix-container project build and publish container images of Debian GNU/Linux stable with GNU Guix installed.
The images are like normal Debian stable containers but have the guix tool and a reasonable fresh guix pull.
Supported architectures include amd64 and arm64. The multi-arch container is called:
registry.gitlab.com/debdistutils/guix/debian-with-guix-container:stable
It may also be accessed via debian-with-guix at Docker Hub as:
docker.io/jas4711/debian-with-guix:stable
The container images may be used like this:
$ podman run --privileged -it --hostname guix --rm registry.gitlab.com/debdistutils/guix/debian-with-guix-container:stable
root@guix:/# hello
bash: hello: command not found
root@guix:/# guix describe
guix c9eb69d
repository URL: https://gitlab.com/debdistutils/guix/mirror.git
branch: master
commit: c9eb69ddbf05e77300b59f49f4bb5aa50cae0892
root@guix:/# LC_ALL=C.UTF-8 /root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild &
[1] 21
root@guix:/# GUIX_PROFILE=/root/.config/guix/current; . "$GUIX_PROFILE/etc/profile"
root@guix:/# guix describe
Generation 2 Nov 28 2025 10:14:11 (current)
guix c9eb69d
repository URL: https://gitlab.com/debdistutils/guix/mirror.git
branch: master
commit: c9eb69ddbf05e77300b59f49f4bb5aa50cae0892
root@guix:/# guix install --verbosity=0 hello
accepted connection from pid 55, user root
The following package will be installed:
hello 2.12.2
hint: Consider setting the necessary environment variables by running:
GUIX_PROFILE="/root/.guix-profile"
. "$GUIX_PROFILE/etc/profile"
Alternately, see `guix package --search-paths -p "/root/.guix-profile"'.
root@guix:/# GUIX_PROFILE="/root/.guix-profile"
root@guix:/# . "$GUIX_PROFILE/etc/profile"
root@guix:/# hello
Hello, world!
root@guix:/#
Below is an example GitLab pipeline job that demonstrate how to run guix install to install additional dependencies, and then download and build a package that pick up the installed package from the system.
test-wget-configure-make-libksba-amd64:
image: registry.gitlab.com/debdistutils/guix/debian-with-guix-container:stable
before_script:
- env LC_ALL=C.UTF-8 /root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild $GUIX_DAEMON_ARG &
- GUIX_PROFILE=/root/.config/guix/current; . "$GUIX_PROFILE/etc/profile"
- guix describe
- guix install libgpg-error
- GUIX_PROFILE="/root/.guix-profile"; . "$GUIX_PROFILE/etc/profile"
- apt-get install --update -y --no-install-recommends build-essential wget ca-certificates bzip2
script:
- wget https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz2
- tar xfa libksba-1.6.7.tar.bz2
- cd libksba-1.6.7
- ./configure
- make V=1
- make check VERBOSE=t V=1
The images were initially created for use in GitLab CI/CD Pipelines but should work for any use.
The images are built in a GitLab CI/CD pipeline, see .gitlab-ci.yml.
The containers are derived from official Debian stable images with Guix installed and a successful run of guix pull, built using buildah invoked from build.sh using image/Containerfile that runs image/setup.sh.
The pipeline also push images to the GitLab container registry, and then also to Docker Hub.
Guix binaries are downloaded from the Guix binary tarballs project because of upstream download site availability and bandwidth concerns.
Enjoy these images! Hopefully they can help you overcome the loss of Guix in Debian which made it a mere apt-get install guix away before.
There are several things that may be improved further. An alternative to using podman --privileged is to use --security-opt seccomp=unconfined --cap-add=CAP_SYS_ADMIN,CAP_NET_ADMIN which may be slightly more fine-grained.
For ppc64el support I ran into an error message that I wasn’t able to resolve:
guix pull: error: while setting up the build environment: cannot set host name: Operation not permitted
For riscv64, I can’t even find a Guix riscv64 binary tarball for download, is there one anywhere?
For arm64 containers, it seems that you need to start guix-daemon with --disable-chroot to get something to work, at least on GitLab.com’s shared runners, otherwise you will get this error message:
guix install: error: clone: Invalid argument
Building the images themselves also require disabling some security functionality, and I was not able to build images with buildah without providing --cap-add=CAP_SYS_ADMIN,CAP_NET_ADMIN otherwise there were errors like this:
guix pull: error: cloning builder process: Operation not permitted
guix pull: error: clone: Operation not permitted
guix pull: error: while setting up the build environment: cannot set loopback interface flags: Operation not permitted
Finally on amd64 it seems --security-opt seccomp=unconfined is necessary, otherwise there is an error message like this, even if you use --disable-chroot:
guix pull: error: while setting up the child process: in phase setPersonality: cannot set personality: Function not implemented
This particular error is discussed upstream, but I think generally that these error suggest that guix-daemon could use more optional use of features: if some particular feature is not available, gracefully fall back to another mode of operation, instead of exiting with an error. Of course, it should never fall back to an insecure mode of operation, unless the user requests that.
Happy Hacking!
28 November, 2025 04:32PM by simon
The 24th 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 ... -11/msg00001.html
27 November, 2025 01:35AM by Mohammad Akhlaghi
The initial injustice of proprietary software often leads to further injustices: malicious functionalities.
The introduction of unjust techniques in nonfree software, such as back doors, DRM, tethering, and others, has become ever more frequent. Nowadays, it is standard practice.
We at the GNU Project show examples of malware that has been introduced in a wide variety of products and dis-services people use everyday, and of companies that make use of these techniques.
Apple's Operating Systems Are Malware
This puts users in danger of privacy breaches in exchange for permission to modify the software that runs in a device they own. Users should be free to modify this and all software as they wish, without interference from the manufacturer or developer.
Back in 2013 (when the company was owned by Google) someone found a way to crack the bootloader restrictions. Android developers also provide a lock/unlock method.
Note that those articles mention “open source”; the GNU Project recommends the expression free/libre software instead.
Google's Software is Malware
The problem here is not that there's a system that provides trust on the origin of the software. A system like that might be useful, but the end user should still be able to select which organization provides that service, or maybe set up such an organization or renounce the service altogether.
Making this verification exclusive to Google makes us question which is the threat here. Is it a user installing malware inadvertently? Or is it the user installing software that makes Google lose money?
This will also kill projects such as F-Droid that promote privacy and freedom by distributing free (as in freedom) apps.
25 November, 2025 03:00PM by Rob Musial
Does your Linux box take forever to boot? The command you’re looking for is systemd-analyze blame
24 November, 2025 08:41AM by gbenson
GNU Parallel 20251122 ('Mamdani') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
ainda não inventaram palavras capazes de expressar minha gratidão aos desenvolvedores do GNU Parallel
-- @nueidris.kawaii.social
New in this release:
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.
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 ... rg/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 c555f616391c6f7c28bf938044f4ec50
12345678 c555f616 391c6f7c 28bf9380 44f4ec50
$ md5sum install.sh | grep 707275363428aa9e9a136b9a7296dfe4
70727536 3428aa9e 9a136b9a 7296dfe4
$ sha512sum install.sh | grep b24bfe249695e0236f6bc7de85828fe1f08f4259
83320d89 f56698ec 77454856 895edc3e aa16feab 2757966e 5092ef2d 661b8b45
b24bfe24 9695e023 6f6bc7de 85828fe1 f08f4259 6ce5480a 5e1571b2 8b722f21
$ bash install.sh
Watch the intro video on http://www.youtub ... L284C9FF2488BC6D1
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/1 ... 81/zenodo.1146014.
If you like GNU Parallel:
If you use programs that use GNU Parallel for research:
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.
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 November, 2025 05:27AM by Ole Tange
This is a bugfix release for gnunet 0.26.0. It fixes some regressions and minor bugs.
The GPG key used to sign is: 3D11063C10F98D14BD24D1470B0998EF86F59B6A
Note that due to mirror synchronization, not all links may be functional early after the release. For direct access try https://ftp.gnu.org/gnu/gnunet/
The Debian Libre Live Images allows you to run and install Debian GNU/Linux without non-free software.
The general goal is to provide a way to use Debian without reliance on non-free software, to the extent possible within the Debian project.
One challenge are the official Debian live and installer images. Since the 2022 decision on non-free firmware, the official images for bookworm and trixie contains non-free software.
The Debian Libre Live Images project provides Live ISO images for Intel/AMD-compatible 64-bit x86 CPUs (amd64) built without any non-free software, suitable for running and installing Debian. The images are similar to the Debian Live Images distributed as Debian live images.
One advantage of Debian Libre Live Images is that you do not need to agree to the distribution terms and usage license agreements of the non-free blobs included in the official Debian images. The rights to your own hardware won’t be crippled by the legal restrictions that follows from relying on those non-free blobs. The usage of your own machine is no longer limited to what the non-free firmware license agreements allows you to do. This improve your software supply-chain situation, since you no longer need to consider their implication on your computing environment for your liberty, privacy or security. Inclusion of non-free firmware is a vehicle for xz-style attacks. For more information about the advantages of free software, see the FSF’s page on What is Free Software?.
Enough talking, show me the code! Err, binaries! Download images:
wget https://gitlab.com/api/v4/projects/74667529/packages/generic/debian-libre-live/main/live-image-amd64.hybrid.iso
wget https://gitlab.com/api/v4/projects/74667529/packages/generic/debian-libre-live/main/live-image-amd64.hybrid.iso.SHA256SUMS
sha256sum -c live-image-amd64.hybrid.iso.SHA256SUMS
Run in a virtual machine:
kvm -cdrom live-image-amd64.hybrid.iso -m 8G
Burn to an USB drive for installation on real hardware:
sudo dd if=live-images-amd64.hybrid.iso of=/dev/sdX # use sdX for USB drive
Images are built using live-build from the Debian Live Team. Inspiration has been taken from Reproducible Live Images and Kali Live.
The images are built by GitLab CI/CD shared runners. The pipeline .gitlab-ci.yml container job creates a container with live-build installed, defined in container/Containerfile. The build job then invokes run.sh that includes a run to lb build, and then upload the image to the package registry.
This is a first initial public release, calibrate your expectations! The primary audience are people already familiar with Debian. There are known issues. I have performed successful installations on a couple of different machines including laptops like Lenovo X201, Framework AMD Laptop 13″ etc.
Are you able to install Debian without any non-free software on some hardware using these images?
Happy Hacking!
12 November, 2025 11:16PM by simon
We are pleased to announce the release of GNUnet 0.26.0.
GNUnet is an alternative network stack for building secure, decentralized and
privacy-preserving distributed applications.
Our goal is to replace the old insecure Internet protocol stack.
Starting from an application for secure publication of files, it has grown to
include all kinds of basic protocol components and applications towards the
creation of a GNU internet.
This is a new major release. Major versions may break protocol compatibility with the 0.25.X versions. Please be aware that Git master is thus henceforth (and has been for a while) INCOMPATIBLE with the 0.25.X GNUnet network, and interactions between old and new peers will result in issues. In terms of usability, users should be aware that there are still a number of known open issues in particular with respect to ease of use, but also some critical privacy issues especially for mobile users. Also, the nascent network is tiny and thus unlikely to provide good anonymity or extensive amounts of interesting information. As a result, the 0.26.0 release is still only suitable for early adopters with some reasonable pain tolerance .
If it were not for compatibility-breaking changes in the crypto API of libgnunetutil this would only be a maintenance release. The changes hopefully protect users of the library from misuse of GNUnet's cryptographic key objects in ways that may be detrimental to security. Since this change breaks backwards compatibility, this is a new major release.
The GPG key used to sign is: 3D11063C10F98D14BD24D1470B0998EF86F59B6A
Note that due to mirror synchronization, not all links might be functional early after the release. For direct access try http://ftp.gnu.org/gnu/gnunet/
A detailed list of changes can be found in the git log , the NEWS .
In addition to this list, you may also want to consult our bug tracker at bugs.gnunet.org which lists about 190 more specific issues.
This release was the work of many people. The following people contributed code and were thus easily identified: Christian Grothoff, Florian Dold, TheJackiMonster, ch3, and Martin Schanzenbach.
Dear community
I am happy to announce that the GNU Health Hospital Information System 5.0.3 patchset has been released!
In addition to the patches, you will notice a tarball significantly smaller than previous bundles, mainly from not excluding large translation files that need work. You can of course always download the most current translation of any GNU Health package from our weblate instance at Codeberg.(https://translate ... ojects/gnuhealth/)
If you use the vanilla / standard installation, you can update the server and the dependencies from the gnuhealth control center (https://docs.gnuh ... ontrolcenter.html)
As usual, before you upgrade your instance, make sure you have made a backup of your DB instance and "attach" resource !
Happy hacking ❤️
2025-11-11 * [SKIP CI] Backport po files from devel branch. (c7f8f3a3c) (Feng Shu)
2025-11-11 * Add tryton/health_icd9procs/locale/el.po (5acbb83f2) (Feng Shu)
2025-11-10 * [SKIP CI] Backport po files from devel branch. (57aeec18f) (Feng Shu)
2025-11-07 * [SKIP CI] Backport po files from devel branch. (489f1b225) (Feng Shu)
2025-11-05 * Fix bug core:Dx command should filter by arguments #153 (dc410b014) (Luis Falcon)
2025-11-05 * [SKIP CI] Backport po files from devel branch. (40a327c3b) (Feng Shu)
2025-11-05 * Update tryton/health/locale/health.pot (a41f324ed) (Feng Shu)
2025-11-05 * [SKIP CI] Backport po files from devel branch. (583837f1b) (Feng Shu)
2025-11-05 * fix bug core: healthprof attribute duplicated in gnuhealth.patient.disease model (2c6976f6b) (Luis Falcon)
2025-11-04 * Readd sv.po file, for Umeaman will become a team leader for Swedish. [do not merge] (31ef5422c) (Feng Shu)
2025-11-04 * [SKIP CI] Backport po files from devel branch. (bc914fc3d) (Feng Shu)
2025-11-02 * Delete health module po files which translate progress < 30%, [do not merge] (48e76223a) (Feng Shu)
2025-10-29 * [SKIP CI] Backport po files from devel branch. (c2497b4de) (Feng Shu)
2025-10-28 * translation: Missing translation terms. #156. Fix spanish string for time in health_surgery (c76d20d36) (Luis Falcon)
2025-10-28 * Issue #155. Clean po files, backport from devel branch [do not merge] (59b8f3eb5) (Feng Shu)
2025-10-28 * Issue #155. genetics_uniprot: Remove empty translation po files (01806d006) (Luis Falcon)
2025-10-28 * [SKIP CI] Backport po files from devel branch. (e719e0f9c) (Feng Shu)
2025-10-28 * Update tryton/health/locale/health.pot [do not merge] (3b9ec6200) (Feng Shu)
2025-10-28 * Merge remote-tracking branch 'origin/po-backport' into patchset/5.0.3 (b6847391a) (Feng Shu)
2025-10-27 * [SKIP CI] Backport po files from devel branch. (32c1903b2) (po-backport)
2025-10-25 * Update package version to 5.0.3 (bbcc6c9ed) (Luis Falcon)
2025-10-25 * Fix bug #150. core: Include children in the family history (46f6293ad) (Luis Falcon)
For a more detailed list, please go to our project page at Codeberg:
https://codeberg. ... org/gnuhealth/his
12 November, 2025 05:52PM by Luis Falcon
The GNU Health Conference 2025 will take place December 20th, and it will be online!
Join us and get the latest on Free Software in healthcare and social medicine!
#GHCon2025
More info and registration:
https://www.gnuhe ... h.org/ghcon/2025/
11 November, 2025 08:51AM by Luis Falcon
unrtf 0.21.11 is released, fixing recently submitted security issues and a number of older bugs. Until the tar file can be uploaded to the proper location on ftp.gnu,org, you can find it on the project home page
11 November, 2025 06:59AM by Jean-Francois Dockes
This is to announce coreutils-9.9, a stable release.
This is primarily a stabilization release,
details of which are summarized in the NEWS below.
There have been 106 commits by 10 people in the 7 weeks since 9.8.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Bernhard Voelker (4) Mathieu Bordere (1)
Bruno Haible (4) Nicolas Boichat (1)
Collin Funk (28) Paul Eggert (9)
Grisha Levit (1) Pádraig Brady (57)
Hannes Braun (1) Sylvestre Ledru (1)
Pádraig [on behalf of the coreutils maintainers]
==================================================================
Here is the GNU coreutils home page:
https://gnu.org/s/coreutils/
Here are the compressed sources:
https://ftp.gnu.org/gnu/coreutils/coreutils-9.9.tar.gz (15MB)
https://ftp.gnu.org/gnu/coreutils/coreutils-9.9.tar.xz (6.1MB)
Here are the GPG detached signatures:
https://ftp.gnu.org/gnu/coreutils/coreutils-9.9.tar.gz.sig
https://ftp.gnu.org/gnu/coreutils/coreutils-9.9.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA1 and SHA256 checksums:
File: coreutils-9.9.tar.gz
SHA1 sum: c66ec935ab7e0ef32c40153fcf67dcf67579171a
SHA256 sum: 91a719fcf923de686016f2c8d084a8be1f793f34173861273c4668f7c65af94a
File: coreutils-9.9.tar.xz
SHA1 sum: 456b5c69f3ce8fbdbe926a11652673ecf12bfc44
SHA256 sum: 19bcb6ca867183c57d77155eae946c5eced88183143b45ca51ad7d26c628ca75
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.9.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 [ultimate] Pádraig Brady <P@draigBrady.com>
uid [ultimate] Pádraig Brady <pixelbeat@gnu.org>
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 P@draigBrady.com
gpg --recv-keys DF6FD971306037D9
wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=coreutils&download=1' | gpg --import -
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify coreutils-9.9.tar.gz.sig
This release is based on the coreutils git repository, available as
git clone https://https.git.savannah.gnu.org/git/coreutils.git
with commit 0ae5bdc7a8311efd3efe43363050710d6ea1c367 tagged as v9.9.
For a summary of changes and contributors, see:
https://gitweb.git.savannah.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.9
or run this command from a git-cloned coreutils directory:
git shortlog v9.8..v9.9
This release was bootstrapped with the following tools:
Autoconf 2.72.97-cf8b9
Automake 1.18.1
Gnulib 2025-11-06 862a81c0e15448adde6a6e7473ec47e3a4bd91a6
Bison 3.8.2
NEWS
* Noteworthy changes in release 9.9 (2025-11-10) [stable]
** Bug fixes
`basenc --base58` would not operate correctly with input > 15561475 bytes.
[bug introduced with --base58 in coreutils-9.8]
'cksum --check' now supports base64 encoded input in untagged format:
- for all length adjustable algorithms (blake2b, sha2, sha3),
- if that base64 input starts with a tag like "SHA1" etc.
Previously an error was given, about invalid input format.
[bug introduced in coreutils-9.2]
'cksum --check -a sha2' has better support for tagged format. Previously
an unneeded but explicit '-a sha2' did not match standard tags like SHA256.
Also non standard SHA2 tags with a bad length resulted in undefined behavior.
[bug introduced in coreutils-9.8]
'cp' restores performance with transparently compressed files, which
regressed due to the avoidance of copy offload, seen with OpenZFS at least.
[bug introduced in coreutils-9.8]
`env` on macOS, for now only when built with --disable-nls,
will no longer always set a __CF_USER_TEXT_ENCODING environment variable.
[bug introduced in coreutils-9.8]
'nice' now limits the adjusted niceness value to its supported range on
GNU/Hurd.
[This bug was present in "the beginning".]
'numfmt' no longer reads out-of-bounds memory with trailing blanks in input.
[bug introduced with numfmt in coreutils-8.21]
'numfmt' no longer outputs invalid characters with multi-byte blanks in input.
[bug introduced in coreutils-9.5]
'rm -d DIR' no longer fails on Ceph snapshot directories.
Although these directories are nonempty, 'rmdir DIR' succeeds on them.
[bug introduced in coreutils-8.16]
'sort --compress-program' now diagnoses if it can't write more data to an
exited compressor. Previously sort could have exited silently in this case.
[bug introduced in coreutils-6.8]
'tail' outputs the correct number of lines again for non-small -n values.
Previously it may have output too few lines.
[bug introduced in coreutils-9.8]
'unexpand' no longer triggers a heap buffer overflow with --tabs arguments
that use the GNU extension /NUM or +NUM formats.
[bug introduced in coreutils-8.28]
** Changes in behavior
'cp' with default options may again, like with versions before v9.8,
miss opportunities to create holes with file systems that support
SEEK_HOLE only trivially. This change is a consequence of the
abovementioned copy offload fix.
'sort --compress-program' will continue without compressing temporary files
if the specified program cannot be executed. Also malformed shell scripts
without a "shebang line" will no longer be executed.
** New Features
'numfmt' now accepts the --unit-separator=SEP option, to output or accept
a separator between the number and unit. For e.g. "1234 M".
** Improvements
'fmt', 'date', 'nl', and 'pr' will now exit promptly upon receiving a write
error, which is significant when reading large / unbounded inputs.
install, sort, and split now use posix_spawn() to invoke child programs more
efficiently and more independently from their own memory usage.
'numfmt':
- parses numbers with a non-breaking space character before a unit
- parses numbers containing grouping characters from the current locale
- supports a multi-byte --delimiter character
- no longer processes input indefinitely in the presence of write errors
wc -l now operates 10% faster on hosts that support AVX512 instructions.
** Build-related
chcon and runcon are not built by default if selinux headers are not present,
or if the --without-selinux configure option is specified.
This can be overridden with the --with-selinux configure option.
nproc no longer fails to build with Android API level <= 20.
[build issue introduced in coreutils-9.8]
10 November, 2025 02:16PM by Pádraig Brady
\x1B[38;5;105m and \x1B[38;5;141m are a great combo.
06 November, 2025 10:48PM by gbenson
It's been a month since we started the fundraising campaign to Sustain and Strengthen Guix. So far we've raised €6562 which is around 40% of our €15000 annual goal. If you'd like to support the project's fundraiser there's still time, pop over to the donate page now!
There have been a range of donations, both one-off and recurring. A few people have made large one-off donations, one of over €2150!There have been a couple between €500-€250 and a few more in the €100 range. These are big contributions to our goal, so I want to thank those individuals for helping out so generously.
Just over 100 people (115 right now) have stepped forward to become recurring supporters, pledging a monthly amount to help the project. This is key because it means the project knows there's a regular stream of donations that can pay for the shared resources that we all use. There's been great support with a few people donating €30-€50 a month which is fantastic, the rest at the €10-€15 a month - and one person managed to use the recurring button multiple times to get precisely the amount they wanted to donate monthly!
The result is that Open Collective estimates €657.50 a month of recurring donations, and Stripe estimates €720 a month of recurring donations. This is significant because if each person is able to continue giving monthly then annually we'd estimate around €16500 of donations. The maths is simple, the impact significant - a recurring donation of €10 a month is worth €120 a year, that's why recurring donations make such a difference!
Of course, people's situations change and they may stop supporting Guix - we've had a couple of cancellations already. So in terms of the actual money we've received we're at ~40% of the €15000 target which I think is pretty good!
Thanks to everyone who's supported Guix by donating, you're making a difference and we really appreciate it!
If you haven't done it yet, and would like to jump in to support the project then now's a great time! A recurring donation is ideal, but we appreciate any support you can give and every donation gets us a bit closer!
Guix is a global community of people, we've had donations from so many places. Where ever you are, it's amazing to think of so many people enjoying, supporting and contributing to Guix.
As we're distributed all over the globe we don't have that many ways to keep people informed about the project. I'm sure there are many Guix users who don't know the project needs support. You can help spread the word that Guix is running a fundraiser by talking about it and using this badge. Put it on your social media, your web site or your Git forge account! Thanks to Luis Felipe for creating it.
The next few weeks will tell us how many people are able to donate to Guix and the annual budget the project has so that it's sustainable.Then we'll be able plan where we can sustain Guix and where we can do new things to strengthen the project.
My goal is for the next blog post is to provide an update on both our fundraising campaign and how we're using the donations that we've received.
03 November, 2025 11:00AM by Steve George
1 November 2025 Unifont 17.0.03 is now available.
This is a minor release aligned with Unicode 17.0.0.
This release updates and adds over 100 Chinese ideographs.
Download this release from GNU server mirrors at:
https://ftpmirror ... /unifont-17.0.03/
or if that fails,
https://ftp.gnu.o ... /unifont-17.0.03/
or, as a last resort,
ftp://ftp.gnu.org ... /unifont-17.0.03/
These files are also available on the unifoundry.com website:
https://unifoundr ... /unifont-17.0.03/
Font files are in the subdirectory
https://unifoundr ... 0.03/font-builds/
A more detailed description of font changes is available at
https://unifoundr ... nifont/index.html
and of utility program changes at
https://unifoundr ... nt-utilities.html
Enjoy!
Paul Hardy
GNU Unifont Maintainer
01 November, 2025 07:13PM by Paul Hardy
From Arch:
The dovecot 2.4 release branch has made breaking changes which result in it being incompatible with any <= 2.3 configuration file.
Thus, the dovecot service will no longer be able to start until the configuration file was migrated, requiring manual intervention.
For guidance on the 2.3-to-2.4 migration, please refer to the following upstream documentation: Upgrading Dovecot CE from 2.3 to 2.4
Furthermore, the dovecot 2.4 branch no longer supports their replication feature, it was removed. For users relying on the replication feature or who are unable to perform the 2.4 migration right now, we provide alternative packages available in [extra]:
- dovecot23
- pigeonhole23
- dovecot23-fts-elastic
- dovecot23-fts-xapian
The dovecot 2.3 release branch is going to receive critical security fixes from upstream until stated otherwise.
01 November, 2025 07:07PM by bill auger
Hello and welcome to my October free software activities report.
GNU Spotlight: I prepared and sent the October GNU Spotlight to the FSF campaigns team, who will review and publish it on the FSF’s community blog and as part of the next issue of the monthly Free Software Supporter newsletter.
bug#79629: I noticed that I was unable to customize the
holiday-other-holidays variable using the setopt macro:
my change did not seem to take effect. As Eli Zaretskii
helpfully pointed out, this was because customizing
holiday-other-holidays did not recompute the value of
calendar-holidays, which is computed once, when the package
is loaded.
So I prepared and sent a patch 500a2d0cc55 to recompute
calendar-holidays when its components are set.
bbabc1db258: While reading about custom-reevaluate-setting
in the Startup Summary node of the GNU Emacs Lisp reference manual
I noticed a small typo, so I committed a patch to fix it.
The Free Software Foundation celebrated its fortieth birthday on 4 October 2025 online and in person in Boston! I was not able to attend the event in person, so I recorded a video for the FSF40 volunteer panel held at the venue.
This month at work one of our Elasticsearch clusters experienced
partial failure, and we needed to extract document IDs from a backup
of one of the cluster’s shards. Elasticsearch uses Lucene under the
hood and each shard is a standalone Lucene index, so I used Lucene’s
Java API to write a little GetIDS class to query the index for
all of its documents, and for each document print its _id field,
decoding the binary-valued BytesRef as needed. The gotcha was
that all of the BytesRefs seemed to have a -1 byte in the
beginning, throwing off the recommended BytesRef.utf8ToString()
method, so I had to reimplement that method’s logic in my program
and have it use an adjusted offset + 1 and length - 1 instead.
That’s about it for this month’s report.
Take care, and so long for now.