Planet GNU
planet.gnu.org.web.brid.gy
Planet GNU
@planet.gnu.org.web.brid.gy
coreutils-9.10 released [stable]
<p><br /> </p> <blockquote class="verbatim"><p> This is to announce coreutils-9.10, a stable release.<br /> <br /> Notable changes include:<br /> - Options in man pages link directly into the full web docs<br /> - timeout(1) now kills the command for all terminating signals<br /> - paste(1) is now multi-byte character aware<br /> - cp(1) fixes an unlikely infinite loop introduced in v9.9<br /> - The multi-call binary is 3.2% smaller<br /> <br /> There have also been many bug fixes and other changes<br /> as summarized in the NEWS below.<br /> <br /> There have been 288 commits by 10 people in the 12 weeks since 9.9.<br /> Thanks to everyone who has contributed!<br /> The following people contributed changes to this release:<br /> <br /> Bernhard Voelker (1)<br /> Bruno Haible (1)<br /> Christopher Illarionova (2)<br /> Collin Funk (92)<br /> Dmitry V. Levin (1)<br /> Egmont Koblinger (3)<br /> Paul Eggert (14)<br /> Padraig Brady (159)<br /> Sylvestre Ledru (5)<br /> oech3 (10)<br /> <br /> Padraig [on behalf of the coreutils maintainers]<br /> ==================================================================<br /> <br /> Here is the GNU coreutils home page:<br /> https://gnu.org/s/coreutils/<br /> <br /> Here are the compressed sources:<br /> https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.gz (15MB)<br /> https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz (6.3MB)<br /> <br /> Here are the GPG detached signatures:<br /> https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.gz.sig<br /> https://ftp.gnu.org/gnu/coreutils/coreutils-9.10.tar.xz.sig<br /> <br /> Use a mirror for higher download bandwidth:<br /> https://www.gnu.org/order/ftp.html<br /> <br /> Here are the SHA256 and SHA3-256 checksums:<br /> <br /> SHA256 (coreutils-9.10.tar.gz) = 4L3h+2hQlEf8cjzyUX6KjH+kZ2mRm7dJDtNQoukjhWI=<br /> SHA3-256 (coreutils-9.10.tar.gz) = ajdC0yoxKq5sDXyeL9nMXNSZ26du/3QtZCEo4PNZZkA=<br /> SHA256 (coreutils-9.10.tar.xz) = FlNamt8LEANzZOLWEqrT2fTso6NElJztdNEvr0vVHSU=<br /> SHA3-256 (coreutils-9.10.tar.xz) = jUv9Ki9gdL5VuXEhDhGyuR+Md4r2PAnkJ9JCw1xdoWY=<br /> <br /> Verify the base64 SHA256 checksum with 'cksum -a sha256 --check'<br /> from coreutils-9.2 or OpenBSD's cksum since 2007.<br /> <br /> Verify the base64 SHA3-256 checksum with 'cksum -a sha3 --check'<br /> from coreutils-9.8.<br /> <br /> Use a .sig file to verify that the corresponding file (without the<br /> .sig suffix) is intact. First, be sure to download both the .sig file<br /> and the corresponding tarball. Then, run a command like this:<br /> <br /> gpg --verify coreutils-9.10.tar.xz.sig<br /> <br /> The signature should match the fingerprint of the following key:<br /> <br /> pub rsa4096/0xDF6FD971306037D9 2011-09-23 [SC]<br /> Key fingerprint = 6C37 DC12 121A 5006 BC1D B804 DF6F D971 3060 37D9<br /> uid [ultimate] Pádraig Brady &lt;P@draigBrady.com&gt;<br /> uid [ultimate] Pádraig Brady &lt;pixelbeat@gnu.org&gt;<br /> <br /> If that command fails because you don't have the required public key,<br /> or that public key has expired, try the following commands to retrieve<br /> or refresh it, and then rerun the 'gpg --verify' command.<br /> <br /> gpg --locate-external-key P@draigBrady.com<br /> <br /> gpg --recv-keys DF6FD971306037D9<br /> <br /> wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=coreutils&amp;download=1' | gpg --import -<br /> <br /> As a last resort to find the key, you can try the official GNU<br /> keyring:<br /> <br /> wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg<br /> gpg --keyring gnu-keyring.gpg --verify coreutils-9.10.tar.xz.sig<br /> <br /> This release is based on the coreutils git repository, available as<br /> <br /> git clone https://https.git.savannah.gnu.org/git/coreutils.git<br /> <br /> with commit 89b2cd58ac895e3fc0d24d8f10e7e4ba132e7fb6 tagged as v9.10.<br /> <br /> For a summary of changes and contributors, see:<br /> <br /> https://gitweb.git.savannah.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.10<br /> <br /> or run this command from a git-cloned coreutils directory:<br /> <br /> git shortlog v9.9..v9.10<br /> <br /> This release was bootstrapped with the following tools:<br /> Autoconf 2.72.101-9513b<br /> Automake 1.18.1<br /> Gnulib 2026-01-24 1c5e0277c2143dd570d8c88f8923eed2afd8e13b<br /> Bison 3.8.2<br /> <br /> NEWS<br /> <br /> * Noteworthy changes in release 9.10 (2026-02-04) [stable]<br /> <br /> ** Bug fixes<br /> <br /> cp, install, and mv no longer enter an infinite loop copying sparse files<br /> with SEEK_HOLE. E.g., this was seen on ext4 when copying sparse files with<br /> extents that are being actively updated, and copy offload is not being used.<br /> [bug introduced in coreutils-9.9]<br /> <br /> 'date' no longer fails with format directives that return an empty string.<br /> [bug introduced in coreutils-9.9]<br /> <br /> 'dd seek=N of=FILE' no longer continues copying, overwriting FILE if it<br /> exists, if ftruncate fails.<br /> [bug introduced in coreutils-9.1]<br /> <br /> du and ls no longer modify strings returned by getenv.<br /> POSIX says this is not portable.<br /> [bug introduced in fileutils-4.1.6]<br /> <br /> 'fmt' now correctly diagnoses read errors.<br /> Previously fmt generated a generic error for any read error.<br /> [bug introduced in coreutils-9.0]<br /> <br /> md5sum --text correctly translates CRLF line endings with the MSYS2 runtime.<br /> This also applies to the sha*sum and b2sum utilities.<br /> [This bug was present in "the beginning".]<br /> <br /> 'numfmt' no longer drops custom suffixes from numbers it cannot fully parse.<br /> [bug introduced with numfmt in coreutils-8.21]<br /> <br /> 'tail -f --pid' can no longer exit upon receiving a non terminating signal.<br /> On older Linux systems it may have failed with "Interrupted system call".<br /> [bug introduced in coreutils-7.5]<br /> <br /> 'timeout' will now propagate all terminating signals to the monitored command.<br /> Previously 'timeout' could have exited and left the monitored command running.<br /> [bug introduced with timeout in coreutils-7.0]<br /> <br /> wc now documents its --debug option, currently used to<br /> indicate the line count acceleration being used.<br /> [bug introduced in coreutils-9.0]<br /> <br /> When built with `clang -fno-inline`, memory allocation issues are again<br /> handled in a defined manner. Previously programs may have crashed etc.<br /> after a failure to allocate memory.<br /> [bug introduced in coreutils-9.0]<br /> <br /> ** New Features<br /> <br /> configure accepts a new --enable-single-binary=hardlinks mode to build the<br /> selected programs as hard links to a multi-call binary called "coreutils".<br /> This augments the existing "symlinks" and "shebangs" modes already<br /> supported by the --enable-single-binary option.<br /> <br /> 'stat' and 'tail' now know about the "guest-memfd" file system type.<br /> stat -f -c%T now reports the file system type,<br /> and tail -f uses polling for this file system.<br /> <br /> 'tail' now accepts the --debug option, which is currently used to<br /> detail the --follow implementation being used.<br /> <br /> 'du' now supports the short option -A corresponding to the existing long<br /> option --apparent-size, for compatibility with FreeBSD.<br /> <br /> ** Changes in behavior<br /> <br /> All commands now markup option names in --help and man pages,<br /> with bold attributes, and hyperlinks into the online manual on gnu.org.<br /> The links can be configured with the --enable-manual-url configure option,<br /> and the bold highlighting with --disable-bold-man-page-references.<br /> At runtime all markup can be disabled with the TERM=dumb env var value.<br /> <br /> 'fmt' -w,--width no longer includes '\n' in the width of a line.<br /> I.e., the specified width is interpreted to be an _inclusive_ maximum.<br /> <br /> 'ls --hyperlink' now uses more standard format hyperlinks.<br /> 'ESC\' (ST) is now used as a delimiter, instead of '\a' (BEL).<br /> <br /> 'ptx' -t is no longer a no-op, and now sets the default width to 100 columns.<br /> <br /> 'timeout' now honors ignored signals and will not propagate them. E.g.,<br /> timeout(1) in a shell backgrounded job, will not terminate upon receiving<br /> SIGINT or SIGQUIT, as these are ignored by default in shell background jobs.<br /> <br /> 'timeout -v -s 0' now prints the signal number 0 instead of EXIT.<br /> <br /> The multi-call binary now only processes --help or --version options<br /> if it is installed with a name ending with "coreutils". This allows<br /> for more consistent handling of these options with unsupported commands.<br /> <br /> ** Improvements<br /> <br /> The multi-call binary built with configure --enable-single-binary<br /> is reduced in size by 3.2% through the more efficient reuse of the cksum<br /> utility by the md5sum and sha*sum utilities.<br /> <br /> 'cksum' now validates its options more consistently.<br /> E.g., `cksum --text --tag` now fails like `cksum --tag --text` already did.<br /> <br /> 'cksum', 'du', and 'wc' now exit promptly upon receiving a write<br /> error, which is significant when processing many input files.<br /> <br /> csplit, ls, and sort, now handle a more complete set of terminating signals.<br /> <br /> 'du' now processes directories with 10,000 or more entries up to 9 times<br /> faster on the Lustre file system.<br /> <br /> 'paste' now supports multi-byte --delimiters characters.<br /> <br /> 'pinky' will now exit immediately upon receiving a write error, which is<br /> significant when reading large plan or project files.<br /> <br /> 'readlink' and 'realpath' will now exit promptly upon receiving a write error,<br /> which is significant when canonicalizing multiple file names longer than<br /> PATH_MAX.<br /> <br /> 'timeout' on Linux will always terminate the child in the case where the<br /> timeout process itself dies, like when it receives a KILL signal for example.<br /> <br /> ** Build-related<br /> <br /> Programs now port to C23 platforms that strictly check types when<br /> qualifier-generic functions like strchr are used.<br /> <br /> 'chcon' and 'runcon' stub binaries will be built on systems without<br /> libselinux, when configured using --with-selinux.<br /> <br /> 'kill' and 'uptime' are no longer built by default. These programs can be<br /> built with the --enable-install-program=kill,uptime configure option.<br /> </p></blockquote> <p><br /> </p>
savannah.gnu.org
February 4, 2026 at 2:10 PM
GNU Parallel 20260122 ('Maduro') released [stable]
<p>GNU Parallel 20260122 ('Maduro') has been released. It is available for download at: lbry://@GnuParallel:4 <br /> <br /> Quote of the month: <br /> <br /> 64コアで、64並列でsimlationを回してtopコマンドで状況を見るのは心地よい。簡単に並列処理を実現できるGNU parallelコマンドは素晴らしい。 <br /> -- Daisuke Iizuka @diizuka@twitter <br /> <br /> New in this release: <br /> </p> <ul> <li>No new features. </li> <li>Bug fixes. </li> </ul> <p> <br /> GNU Parallel - For people who live life in the parallel lane. <br /> <br /> 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. <br /> <br /> </p> <h2>About GNU Parallel</h2> <p> <br /> 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. <br /> <br /> 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. <br /> <br /> 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. <br /> <br /> For example you can run this to convert all jpeg files into png and gif files and have a progress bar: <br /> <br /> parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif <br /> <br /> Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs: <br /> <br /> find . -name '*.jpg' | <br /> parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200 <br /> <br /> You can find more about GNU Parallel at: <a href="http://www.gnu.org/s/parallel/">http://www.gnu ... rg/s/parallel/</a> <br /> <br /> You can install GNU Parallel in just 10 seconds with: <br /> <br /> $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \ <br /> fetch -o - <a href="http://pi.dk/3">http://pi.dk/3</a> ) &gt; install.sh <br /> $ sha1sum install.sh | grep c555f616391c6f7c28bf938044f4ec50 <br /> 12345678 c555f616 391c6f7c 28bf9380 44f4ec50 <br /> $ md5sum install.sh | grep 707275363428aa9e9a136b9a7296dfe4 <br /> 70727536 3428aa9e 9a136b9a 7296dfe4 <br /> $ sha512sum install.sh | grep b24bfe249695e0236f6bc7de85828fe1f08f4259 <br /> 83320d89 f56698ec 77454856 895edc3e aa16feab 2757966e 5092ef2d 661b8b45 <br /> b24bfe24 9695e023 6f6bc7de 85828fe1 f08f4259 6ce5480a 5e1571b2 8b722f21 <br /> $ bash install.sh <br /> <br /> Watch the intro video on <a href="http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1">http://www.youtub ... L284C9FF2488BC6D1</a> <br /> <br /> Walk through the tutorial (man parallel_tutorial). Your command line will love you for it. <br /> <br /> When using programs that use GNU Parallel to process data for publication please cite: <br /> <br /> O. Tange (2018): GNU Parallel 2018, March 2018, <a href="https://doi.org/10.5281/zenodo.1146014">https://doi.org/1 ... 81/zenodo.1146014</a>. <br /> <br /> If you like GNU Parallel: <br /> </p> <ul> <li>Give a demo at your local user group/team/colleagues </li> <li>Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists </li> <li>Get the merchandise <a href="https://gnuparallel.threadless.com/designs/gnu-parallel">https://gnuparall ... igns/gnu-parallel</a> </li> <li>Request or write a review for your favourite blog or magazine </li> <li>Request or build a package for your favourite distribution (if it is not already there) </li> <li>Invite me for your next conference </li> </ul> <p> <br /> If you use programs that use GNU Parallel for research: <br /> </p> <ul> <li>Please cite GNU Parallel in you publications (use --citation) </li> </ul> <p> <br /> If GNU Parallel saves you money: <br /> </p> <ul> <li>(Have your company) donate to FSF <a href="https://my.fsf.org/donate/">https://my.f ... .org/donate/</a> </li> </ul> <p> <br /> </p> <h2>About GNU SQL</h2> <p> <br /> 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. <br /> <br /> The database is addressed using a DBURL. If commands are left out you will get that database's interactive shell. <br /> <br /> When using GNU SQL for a publication please cite: <br /> <br /> O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32. <br /> <br /> </p> <h2>About GNU Niceload</h2> <p> <br /> 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.<br /> </p>
savannah.gnu.org
January 31, 2026 at 11:04 PM
GNU gettext 1.0 released
<p>Download from <a href="https://ftp.gnu.o">https:/ ... p.gnu.o</a> ... ttext-0.26.tar.gz <br /> <br /> New in this release: <br /> <br /> </p> <ul> <li>Improvements for maintainers and distributors: <ul> <li>In a po/ directory, the PO files are now exactly those that the translators submitted or committed in version control, or a translation project's daemon committed on behalf of the translators. They are no longer regularly updated with respect to the POT file in the same directory. </li> <li>The advantage for maintainers is that the maintainer may commit the PO files in version control, without getting <ul> <li>lots of modified files shown by "git status", </li> <li>frequent merge conflicts when merging between branches, </li> <li>a voluminous version control history. </li> </ul> </li> <li>The advantage for distributors is that the role of files in a release tarball are clearer: The PO files are source code, whereas the POT file and the *.gmo files are generated files. </li> <li>ATTENTION translators! Translators who work directly on a package's source code (without going through a translation project) now need to run "msginit" before starting work on a PO file. </li> <li>A new program 'po-fetch' is provided, that fetches the translated PO files from a translation project's site on the internet, and updates the LINGUAS file accordingly. </li> <li>In a po/ directory, a new script 'fetch-po' is now added by 'gettextize'. It provides the standard interface for fetching the translated PO files. It typically either invokes the 'po-fetch' program or does nothing. </li> </ul> </li> </ul> <p> <br /> </p> <ul> <li>Improvements for translators: <ul> <li>msginit: <ul> <li>When the PO file already exists, 'msginit' now updates it w.r.t. the POT file, like 'msgmerge' would do. Previously, 'msginit' failed with an error message in this situation. </li> </ul> </li> <li>Pretranslation: <ul> <li>Two new programs, 'msgpre' and 'spit', are provided, that implement machine translation through a locally installed Large Language Model (LLM). 'msgpre' applies to an entire PO file, 'spit' to a single message. </li> <li>The documentation has a new chapter "Pretranslation". </li> </ul> </li> </ul> </li> </ul> <p> <br /> </p> <ul> <li>Improvements for maintainers: <ul> <li>xgettext: <ul> <li>The refactoring suggestion when a translatable string contains an URL or email address can now be inhibited through a command-line option '--no-check=url' or '--no-check=email', or through a comment in the source code of the form </li> </ul> </li> </ul> </li> </ul> <p><br /> </p> <blockquote class="verbatim"><p> /* xgettext: no-url-check */<br /> </p></blockquote> <p>or <br /> <br /> </p> <blockquote class="verbatim"><p> /* xgettext: no-email-check */<br /> </p></blockquote> <p> <br /> </p> <ul> <li>Programming languages support: <ul> <li>OCaml: <ul> <li>xgettext now supports OCaml. </li> <li>'msgfmt -c' now verifies the syntax of translations of OCaml format strings. </li> <li>A new example 'hello-ocaml' has been added. </li> </ul> </li> <li>Rust: <ul> <li>xgettext now recognizes 'gettextrs::gettext' invocations, like 'gettext' invocations. </li> </ul> </li> </ul> </li> </ul> <p> <br /> </p> <ul> <li>libgettextpo library: <ul> <li>The function 'po_message_get_format' now supports distinguishing whether a negative format string mark, such as 'no-c-format', is set or not. </li> <li>The new functions po_message_has_workflow_flag, po_message_set_workflow_flag, po_message_workflow_flags_iterator, po_flag_next, po_flag_iterator_free can be used to manipulate or inspect the workflow flags of a message. </li> <li>The new functions po_message_has_sticky_flag, po_message_set_sticky_flag, po_message_sticky_flags_iterator, po_flag_next, po_flag_iterator_free can be used to manipulate or inspect the sticky flags of a messsage. </li> </ul> </li> </ul> <p> <br /> </p> <ul> <li>Emacs PO mode: <ul> <li>Restore syntax highlighting in Emacs version 30 or newer. </li> </ul> </li> </ul>
savannah.gnu.org
January 29, 2026 at 6:34 PM
GNU Guix 1.5.0 released
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. # Guix ecosystem 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. # Stronger distribution 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. ### Team activity 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 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 Full-Source Bootstrap: Building from source all the way down * Zig reproduced without binaries * Restoring Zig bootstrap chain in Guix (in Simplified Chinese) * Adding a fully bootstrapped Mono # Improved CLI 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. # Security improvements 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. # Widened architecture support 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! # Fundraising campaign 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! # Acknowledgments 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 � #### 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, 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.
guix.gnu.org
January 23, 2026 at 3:05 PM
Meet Guix at FOSDEM
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** : * In _Name resolution in package management systems — A reproducibility perspective_, Gábor Boskovits will look will look at how several package managers refer to packages and how this affects reproducibility. 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: * Sergio Pastor Pérez will give a talk entitled _BLUE — A generic build system crafted entirely in Guile_. There are clear connections with Guix but BLUE could well become the new standard build system for Guile developers! * In _Modern Development Tools and Practices for GNU Guile_ Andrew Tropin will talk about live programming at the REPL, in particular with the Ares/Arei interactive development environment. * On the same theme, Jessica Talon of Spritely will talk about _Guile development outside of Emacs_—addressing a real need of Guile and Guix outreach efforts. * In _Lisp is clay: the power of composable DSLs_, the inimitable Christine Lemmer-Webber will talk about this Lisp foundation that makes Spritely and Guix so powerful. * David Thompson (also of Spritely!) will talk about _Functional reactive programming with propagators_, which sounds like an exciting topic for any functional programming person and any programmer who’s worked on user interfaces and other kinds of “reactive” programs. * Simon Josefsson will talk about _Guix Container Images — and what you can do with them_, showing how to add Guix container images to registries and how to use them in continuous integration and continuous delivery (CI/CD) pipelines. You can have more Guix bliss on **Sunday afternoon** : * In a talk entitled _Package management in the hands of users: dream and reality_, I (Ludovic Courtès) will reflect on successes and failures bringing package management to HPC supercomputer users. * Samuel Thibault will share _Updates on GNU/Hurd progress_, which includes Guix goodness and good news for a practical empowering operating system. **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.
guix.gnu.org
January 22, 2026 at 12:53 PM
Summary 2025
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) | +-------+--------------+ * The Esperanto translation was installed by GNU Translation Managers 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
savannah.gnu.org
January 12, 2026 at 10:26 PM
The People of Emacs
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 of 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.
kelar.org
December 31, 2025 at 3:32 PM
Everyone brings something to the table
Join us in thanking the people and projects who make free software possible
www.fsf.org
December 27, 2025 at 12:11 AM