Language Selection

English French German Italian Portuguese Spanish

Gnu Planet

Syndicate content
Planet GNU -
Updated: 51 min 36 sec ago

Andy Wingo: are ephemerons primitive?

4 hours 39 min ago

Good evening :) A quick note, tonight: I've long thought that ephemerons are primitive and can't be implemented with mark functions and/or finalizers, but today I think I have a counterexample.

For context, one of the goals of the GC implementation I have been working on on is to replace Guile's current use of the Boehm-Demers-Weiser (BDW) conservative collector. Of course, changing a garbage collector for a production language runtime is risky, and for Guile one of the mitigation strategies for this work is that the new collector is behind an abstract API whose implementation can be chosen at compile-time, without requiring changes to user code. That way we can first switch to BDW-implementing-the-new-GC-API, then switch the implementation behind that API to something else.

Abstracting GC is a tricky problem to get right, and I thank the MMTk project for showing that this is possible -- you have user-facing APIs that need to be implemented by concrete collectors, but also extension points so that the user can provide some compile-time configuration too, for example to provide field-tracing visitors that take into account how a user wants to lay out objects.

Anyway. As we discussed last time, ephemerons are usually have explicit support from the GC, so we need an ephemeron abstraction as part of the abstract GC API. The question is, can BDW-GC provide an implementation of this API?

I think the answer is "yes, but it's very gnarly and will kill performance so bad that you won't want to do it."

the contenders

Consider that the primitives that you get with BDW-GC are custom mark functions, run on objects when they are found to be live by the mark workers; disappearing links, a kind of weak reference; and finalizers, which receive the object being finalized, can allocate, and indeed can resurrect the object.

BDW-GC's finalizers are a powerful primitive, but not one that is useful for implementing the "conjunction" aspect of ephemerons, as they cannot constrain the marker's idea of graph connectivity: a finalizer can only prolong the life of an object subgraph, not cut it short. So let's put finalizers aside.

Weak references have a tantalizingly close kind of conjunction property: if the weak reference itself is alive, and the referent is also otherwise reachable, then the weak reference can be dereferenced. However this primitive only involves the two objects E and K; there's no way to then condition traceability of a third object V to E and K.

We are left with mark functions. These are an extraordinarily powerful interface in BDW-GC, but somewhat expensive also: not inlined, and going against the grain of what BDW-GC is really about (heaps in which the majority of all references are conservative). But, OK. They way they work is, your program allocates a number of GC "kinds", and associates mark functions with those kinds. Then when you allocate objects, you use those kinds. BDW-GC will call your mark functions when tracing an object of those kinds.

Let's assume firstly that you have a kind for ephemerons; then when you go to mark an ephemeron E, you mark the value V only if the key K has been marked. Problem solved, right? Only halfway: you also have to handle the case in which E is marked first, then K. So you publish E to a global hash table, and... well. You would mark V when you mark a K for which there is a published E. But, for that you need a hook into marking V, and V can be any object...

So now we assume additionally that all objects are allocated with user-provided custom mark functions, and that all mark functions check if the marked object is in the published table of pending ephemerons, and if so marks values. This is essentially what a proper ephemeron implementation would do, though there are some optimizations one can do to avoid checking the table for each object before the mark stack runs empty for the first time. In this case, yes you can do it! Additionally if you register disappearing links for the K field in each E, you can know if an ephemeron E was marked dead in a previous collection. Add a pre-mark hook (something BDW-GC provides) to clear the pending ephemeron table, and you are in business.

yes, but no

So, it is possible to implement ephemerons with just custom mark functions. I wouldn't want to do it, though: missing the mostly-avoid-pending-ephemeron-check optimization would be devastating, and really what you want is support in the GC implementation. I think that for the BDW-GC implementation in whippet I'll just implement weak-key associations, in which the value is always marked strongly unless the key was dead on a previous collection, using disappearing links on the key field. That way a (possibly indirect) reference from a value V to a key K can indeed keep K alive, but oh well: it's a conservative approximation of what should happen, and not worse than what Guile has currently.

Good night and happy hacking!

FSF Events: Free Software Directory meeting on IRC: Friday, November 25, starting at 12:00 EST (17:00 UTC)

Friday 25th of November 2022 03:10:04 AM
Join the FSF and friends on Friday, November 25, from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory.

hyperbole @ Savannah: Installing Hyperbole from GNU-devel ELPA Packages

Thursday 24th of November 2022 10:33:37 PM
Installing the latest development version of Hyperbole

The latest development version of Hyperbole can be installed directly from the GNU-devel ELPA Packages using built-in Emacs Package Manager.

The Elpa GNU-devel package repository provides a development version of Hyperbole. It pulls from the latest Hyperbole development branch to get the tip version and makes an installable package.  This is done on a daily basis. Installing this does not require any new package manager software.  Since Hyperbole is a mature package, this version is usually fine to use and is updated on a day-to-day basis.  But new features are tested on this branch and once in awhile it may break for a short time before a fix is pushed.

To download and install this version of the Hyperbole, you should add the following lines to your personal Emacs initialization file, typically "~/.emacs". (For further details, see info page "(emacs)Init File", or Init-File).

(when (< emacs-major-version 27)
  (error "Hyperbole requires Emacs 27 or above; you are running version %d" emacs-major-version))
(require 'package)
(add-to-list 'package-archives '("gnu-devel" . ""))
(unless (package-installed-p 'hyperbole)
  (package-install 'hyperbole))
(hyperbole-mode 1)

Now save the file and restart Emacs.  Hyperbole will then be downloaded and compiled for use with your version of Emacs; give it a minute or two. You may see a bunch of compilation warnings but these can be safely ignored.

FSF Blogs: Baby gnus, hoodies, and more: Show your support for free software through the GNU Press shop

Wednesday 23rd of November 2022 09:25:01 PM
New stuff in the GNU Press shop

parallel @ Savannah: GNU Parallel 20221122 ('Херсо́н') released

Tuesday 22nd of November 2022 07:03:29 PM

GNU Parallel 20221122 ('Херсо́н') has been released. It is available for download at: lbry://@GnuParallel:4

Quote of the month:

  [GNU Parallel] is the most amazing tool ever invented for bioinformatics!
    -- Istvan Albert

New in this release:

  • Support for IPv6 adresses and _ in hostnames in --sshlogin.
  • Use --total-jobs for --eta/--bar if generating jobs is slow.
  • A lot of bug fixed in --latest-line.
  • Better support for MSYS2.
  • Better Text::CSV error messages.
  • --bar supports UTF8.
  • GNU Parallel is now on Mastodon:
  • Bug fixes and man page updates.

GNU Parallel - For people who live life in the parallel lane.

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

About GNU Parallel

GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.

If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.

GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.

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

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

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

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

You can find more about GNU Parallel at:

You can install GNU Parallel in just 10 seconds with:

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

Watch the intro video on

Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.

When using programs that use GNU Parallel to process data for publication please cite:

O. Tange (2018): GNU Parallel 2018, March 2018,

If you like GNU Parallel:

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

If you use programs that use GNU Parallel for research:

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

If GNU Parallel saves you money:


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

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

When using GNU SQL for a publication please cite:

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

About GNU Niceload

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

FSF Blogs: LibrePlanet CFS closing very soon. Submit today!

Monday 21st of November 2022 10:55:00 PM
Final call for sessions: Submit by November 28 at 10:00 EST (15:00 UTC) for consideration.

Luca Saiu: Announcing make-gallery, a simple web image gallery generator

Monday 21st of November 2022 12:33:00 AM
I wrote a script generating an image gallery suitable to be included in web pages. Since it can be generally useful I cleaned it up and published it, of course as free software (; you are welcome to download a copy of ‘make-gallery’ from . The software is released under the GNU General Public Licence ( version 3 or later; the generated code is in the public domain. I hate the web I have never made a mystery of my personal dislike for the web with its gratuitous ever-growing complexity, inefficiency, lack of expressivity, hostility to the developer and to ... [Read more]

hyperbole @ Savannah: GNU Hyperbole 8.0.0, the Epiphany release, is now available on GNU ELPA

Sunday 20th of November 2022 10:28:42 PM


  • Overview


GNU Hyperbole 8.0.0, the Epiphany release, is now available on GNU ELPA.
Hyperbole is a unique hypertextual information management Emacs package
that works across all Emacs modes, letting the computer do the hard work
while you benefit from its sophisticated context-sensitive linking and
navigation capabilities.  Hyperbole has always been one of the best
documented Emacs packages.  With Version 8 comes excellent test coverage:
over 200 automated tests to ensure quality. We hope you'll give it a try.

What's new in this release is described here:

  Everything back until release 7.1.3 is new since the last major
  release announcement (over a year ago), so updates are extensive.

If you prefer video introductions, visit the videos linked to below; otherwise,
skip to the next section.

GNU Hyperbole Videos


  • Introduction


Hyperbole is like Markdown for hypertext.  Hyperbole automatically
recognizes dozens of common patterns in any buffer regardless of mode
and can instantly activate them as hyperbuttons with a single key:
email addresses, URLs, grep -n outputs, programming backtraces,
sequences of Emacs keys, programming identifiers, Texinfo and Info
cross-references, Org links, Markdown links and on and on.  All you do
is load Hyperbole and then your text comes to life with no extra
effort or complex formatting.

Hyperbole interlinks all your working information within Emacs for
fast access and editing, not just within special modes.  Every button
is automatically assigned a type and new types can be developed for
your own buttons with simple function definitions.  You can create
your own buttons by simply dragging between two buffers.

But Hyperbole is also a hub controller for your information supplying
built-in capabilities of contact management/hierarchical record
lookup, legal-numbered outlines with hyperlinkable views and a unique
window and frame manager.  It is even Org-compatible so you can use
all of Org's capabilities together with Hyperbole.

Hyperbole is unique, powerful, extensively documented, and free.  Like
Emacs, Org, Counsel and Helm, Hyperbole has many different uses all
based around the theme of reducing cognitive load and improving your
everyday information management.  It reduces cognitive load by using
a single Action Key, {M-RET}, across many different contexts
which automatically chooses the best action

Then as you grow with it across time, it helps you build new capabilities
that continue to speed your work.


  • Installing and Using Hyperbole


To install within GNU Emacs, use:

   {M-x package-install RET hyperbole RET}

   Hyperbole installs in less than a minute and can be uninstalled even
   faster if ever need be.  Give it a try.

Then to invoke its minibuffer menu, use:

   {C-h h} or {M-x hyperbole RET}

The best way to get a feel for many of its capabilities is to invoke the
all new, interactive DEMO and explore sections of interest:

   {C-h h d d}

To permanently activate Hyperbole in your Emacs initialization file, add
the line:

   (hyperbole-mode 1)

Hyperbole is a minor mode that may be disabled at any time with:

   {C-u 0 hyperbole-mode RET}

The Hyperbole home page with screenshots is here:

For use cases, see:

For what users think about Hyperbole, see:


The Hyperbole Team

gnulib @ Savannah: Gnulib helps you get away from fork() + exec()

Sunday 20th of November 2022 04:27:43 PM

Spawning a new process has traditionally been coded by a fork() call, followed by an execv/execl/execlp/execvp call in the child process. This is often referred to as the fork + exec idiom.

In 90% of the cases, there is something better: the posix_spawn/posix_spawnp functions.

Why is that better?

First, it's faster. The glibc implementation of posix_spawn, on Linux, uses a specialized system call (clone3) with a custom child-process stack, that makes it outperform the fork + exec idiom already now. And another speedup of 30% is being considered, see .

Second, it's more portable. While most Unix-like operating systems nowadays have both fork and posix_spawn, there are platforms which don't have fork(), namely Windows (excluding Cygwin). Comes in Gnulib for portability: Gnulib provides a posix_spawn implementation not only for the Unix platforms which lack it (today, that's only HP-UX), but also for Windows. In fact, Gnulib's posix_spawn implementation is the world's first for Windows platforms; the mingw libraries don't have one.

Why only in 90% of the cases?

Typically, between the fork and exec part, the application code will set up or configure some things in the child process. Such as closing file descriptors (this is necessary when pipes are involved), changing the current directory, and things like that.

posix_spawn has a certain set of setup / configuration "actions" that are supported. Namely, searching for the program in $PATH, opening files, shuffling arounds or closing file descriptors, and setting the tty-related process group. If that's all that the application code needs, then posix_spawn fits the bill. That should be 90% of the cases in practice.

How to do the change?

Before you replace a bit of fork + exec code with posix_spawn, you need to understand the main difference: The setup / configuration "actions" are encoded as C system calls in the old approach. Whereas with posix_spawn they are specified declaratively, by constructing an "actions" object in memory.

When you have done this change, you would test it on a glibc system.

And finally, for portability, import the Gnulib modules corresponding to all the posix_spawn* functions that you need.

FSF Blogs: FSF Giving Guide: Put freedom first in your giving this year

Friday 18th of November 2022 10:40:00 PM
The 2022 Giving Guide (v13) is here!

lightning @ Savannah: GNU lightning 2.2.0 release

Wednesday 16th of November 2022 03:15:11 PM

GNU lightning 2.2.0 released!

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


Download release:

  GNU Lightning 2.2.0 extends the 2.1.4 release adding support for
Darwin aarch64, tested on Apple M1.

  Now there is the new --enable-devel-strong-type-checking configure
option, not enabled by default, but code that works with that option
will work on Apple M1.

  This release required significant rework as the Apple abi in aarch64
requires arguments to be truncated and zero/sign extended, unlike all
other ports. Jit generation will understand it, and use the system ABI,
avoiding double truncate and zero/sign extension.

  Due to the significant rework, the library major number was bumped,
and the opportunity used to reorder the jit_code_t enumeration.

FSF Events: Free Software Directory meeting on IRC: Friday, November 18, starting at 12:00 EST (17:00 UTC)

Tuesday 15th of November 2022 07:20:56 PM
Join the FSF and friends on Friday, November 18, from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory.

FSF Events: Sourceware infrastructure - A presentation and community Q&A

Tuesday 15th of November 2022 05:20:00 PM
The Free Software Foundation (FSF) will host a conversation with the Sourceware overseers, and the Software Freedom Conservancy on the current Sourceware infrastructure and future plans.

GNUnet News: NGI Zero Entrust: "GNS to DNS Migration and Zone Management"

Sunday 13th of November 2022 11:00:00 PM
NGI Zero Entrust: "GNS to DNS Migration and Zone Management"

We are happy to announce that we have successfully aquired funding for further GNS development and polishing!

The GNU Name System specification is in its final stages . Migration paths and large-scale testing as well as generating interest in running GNS zones and registrars is the next logical step. Hence, this project aims to

  1. Facilitate the management of GNS zones by administrators.
  2. Provide users with means to resolve real-world names by (partially) mirroring the DNS root zone.

Ad 1.: To ease adoption, a framework for GNS registrars will be developed for zone management. The registrar framework will allow GNS zone administrators to provide a web-interface for subdomain registration by other users. The services may also be provided for a fee similar to how DNS domain registrars operate to cover running costs. The framework is envisioned to support integration of privacy-friendly payments with GNU Taler .

Ad 2.: We are already hosting and shipping a zone for as part of our GNS implementation. To demonstrate how existing DNS registrars could migrate zones from DNS to GNS we plan to run multiple GNS zones ourselves which contain the zone information from real-world DNS top-level domains. This will also show how GNS can be used to secure the existing DNS namespace from censorship and outages when used in parallel. A selection of existing top-level domains for which open data exists will be hosted and served through GNS in order to facilitate the daily use of the name system. We are are planning to integrate at least three DNS zones and publish them through GNS for users to resolve in a default GNUnet installation.

Watch this space and the mailing list for updates!

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

GNU Taler news: Richard Stallman's Business Pitch for Taler Systems SA

Thursday 10th of November 2022 11:00:00 PM
To fund further development of GNU Taler, Taler Systems SA is still looking for investors. Our chief moral officer has recorded a special business pitch for those that are interested.

poke @ Savannah: Binary Tools devroom @ FOSDEM 2023

Tuesday 8th of November 2022 07:48:30 PM

GNU poke will be part of the Binary Tools devroom at the next edition of FOSDEM, to be celebrated 4th and 5th February 2023 in Brussels.

Below is the Call For Proposals for the devroom.  Hope to see you there, is gonna be fun! :)


   25th November     CFP deadline
   15th December     Announcement of selected activities
   4 & 5th February  Conference dates

About the devroom

  The Binary Tools Devroom at FOSDEM 2023 is an informal, technical,
  event oriented to authors, users and enthusiasts of FLOSS
  programs that deal with binary data.

  This includes binary editors, libraries to encode and decode data,
  parser generators, binary data description languages and frameworks,
  binary formats and encodings, assemblers, debuggers, reverse
  engineering suites, and the like.

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

Suggested Topics

  Here is a non-exhaustive list of binary tools about which we would
  like to have activities:

   - GNU poke
   - fq
   - radare2
   - kaitai struct
   - binwalk
   - wireshark

   Both using (like a nice hack) and developing the tools are on-topic.
   Activities on increasing collaboration between the tools are
   particularly encouraged.


   Proposals should be made through the FOSDEM Pentabarf submission tool]. You
   do not need to create a new Pentabarf account if you already have one from a
   past year.

   Please select the "Binary Tools Devroom" as the track and ensure
   you include the following information when submitting a proposal:

   - The name of the person, or persons, doing the proposed activity.


   - A short bio (one paragraph) for each person.
   - If desired, a photo 8-)
   - The title of the activity.
   - Activity abstract.
   - Duration of the activity: 15 minutes or 30 minutes.

   The deadline for submissions is November 25th, 2022. FOSDEM will be
   held on the weekend of February 4-5, 2023 and the Binary Tools
   devroom will take place on Sunday, February 5, 2023 in Brussels,


  The organizers of the devroom can be reached by sending email to

  We are also in the #binary-tools IRC channel at

  Please do not hesitate to contact us if you have any inquiry or
  suggestion for the devroom.

texinfo @ Savannah: Texinfo 7.0 released

Monday 7th of November 2022 09:15:01 PM

We have released version 7.0 of Texinfo, the GNU documentation format.

It's available via a mirror (xz is much smaller than gz, but gz is available too just in case):

Please send any comments to

Full announcement:

sed @ Savannah: sed-4.9 released [stable]

Sunday 6th of November 2022 10:47:49 PM

This is to announce sed-4.9, a stable release.

There have been 51 commits by 9 people in the nearly three years since 4.8.

See the NEWS below for a brief summary.

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

  Antonio Diaz Diaz (1)
  Assaf Gordon (5)
  Chris Marusich (1)
  Jim Meyering (28)
  Marvin Schmidt (1)
  Oğuz (1)
  Paul Eggert (11)
  Renaud Pacalet (1)
  Tobias Stoeckmann (2)

Jim [on behalf of the sed maintainers]

Here is the GNU sed home page:

For a summary of changes and contributors, see:;a=shortlog;h=v4.9
or run this command from a git-cloned sed directory:
  git shortlog v4.8..v4.9

To summarize the 2383 gnulib-related changes, run these commands
from a git-cloned sed directory:
  git checkout v4.9
  git submodule summary v4.8

Here are the compressed sources:   (2.2MB)   (1.4MB)

Here are the GPG detached signatures:

Use a mirror for higher download bandwidth:

Here are the SHA1 and SHA256 checksums:

69ad1f6be316fff4b23594287f16dfd14cd88093  sed-4.9.tar.gz
0UeKGPAzpzrBaCKQH2Uz0wtr5WG8vORv/Xq86TYCKC4  sed-4.9.tar.gz
8ded1b543f1f558cbd5d7b713602f6a8ee84bde4  sed-4.9.tar.xz
biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE  sed-4.9.tar.xz

The SHA256 checksum is base64 encoded, instead of the
hexadecimal encoding that most checksum tools default to.

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 sed-4.9.tar.gz.sig

The signature should match the fingerprint of the following key:

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

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

  gpg --locate-external-key

  gpg --recv-keys 7FD9FCCB000BEEEE

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

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

  wget -q
  gpg --keyring gnu-keyring.gpg --verify sed-4.9.tar.gz.sig

This release was bootstrapped with the following tools:
  Autoconf 2.72a.65-d081
  Automake 1.16i
  Gnulib v0.1-5550-g0524746392


* Noteworthy changes in release 4.9 (2022-11-06) [stable]

** Bug fixes

  'sed --follow-symlinks -i' no longer loops forever when its operand
  is a symbolic link cycle.
  [bug introduced in sed 4.2]

  a program with an execution line longer than 2GB can no longer trigger
  an out-of-bounds memory write.

  using the R command to read an input line of length longer than 2GB
  can no longer trigger an out-of-bounds memory read.

  In locales using UTF-8 encoding, the regular expression '.' no
  longer sometimes fails to match Unicode characters U+D400 through
  U+D7FF (some Hangul Syllables, and Hangul Jamo Extended-B) and
  Unicode characters U+108000 through U+10FFFF (half of Supplemental
  Private Use Area plane B).
  [bug introduced in sed 4.8]

  I/O errors involving temp files no longer confuse sed into using a
  FILE * pointer after fclosing it, which has undefined behavior in C.

** New Features

  The 'r' command now accepts address 0, allowing inserting a file before
  the first line.

** Changes in behavior

   Sed now prints the less-surprising variant in a corner case of
   POSIX-unspecified behavior.  Before, this would print "n".
   Now, it prints "X":

    printf n | sed 'sn\nnXn'; echo

Parabola GNU/Linux-libre: systemd encrypted boot may be broken by upgrade to openssl v3 (systemd-cryptsetup), and various errors - suggest to postpone upgrading

Sunday 6th of November 2022 11:33:58 AM

until is resolved

FS#76440 : systemd-cryptsetup still refers to after upgrading to openssl3


UPDATE 2022-11-08: fixed in cryptsetup 2.5.0-4

GNU Taler news: GNU Taler v0.9 released

Friday 4th of November 2022 11:00:00 PM
We are happy to announce the release of GNU Taler v0.9.0.

More in Tux Machines

today's howtos

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

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

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

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

  • How To Install MongoDB on AlmaLinux 9 - idroot

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

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

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

Red Hat Hires a Blind Software Engineer to Improve Accessibility on Linux Desktop

Accessibility on a Linux desktop is not one of the strongest points to highlight. However, GNOME, one of the best desktop environments, has managed to do better comparatively (I think). In a blog post by Christian Fredrik Schaller (Director for Desktop/Graphics, Red Hat), he mentions that they are making serious efforts to improve accessibility. Starting with Red Hat hiring Lukas Tyrychtr, who is a blind software engineer to lead the effort in improving Red Hat Enterprise Linux, and Fedora Workstation in terms of accessibility. Read more

Today in Techrights

Android Leftovers