<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet GNU</title>
	<link>https://planet.gnu.org/</link>
	<language>en</language>
	<description>Planet GNU - https://planet.gnu.org/</description>


<item>
	<title>www @ Savannah: Malware in Proprietary Software - 2024 Catch-up</title>
	<guid>https://savannah.gnu.org/news/?id=10716</guid>
	<link>https://savannah.gnu.org/news/?id=10716</link>
     <description>  &lt;p&gt;The initial injustice of proprietary software often leads to further injustices: &lt;a href=&quot;https://www.gnu.org/proprietary/proprietary.html&quot;&gt;malicious functionalities&lt;/a&gt;.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;Here are our latest additions&lt;/h3&gt;
&lt;h4&gt;November 2024&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gnu.org/proprietary/malware-cars.html&quot;&gt;Malware In Cars&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kia cars were built with a back door that enabled the company&#39;s server to locate them and take control of them. The car&#39;s owner had access to these controls through the Kia server. This in itself is not objectionable. However, that Kia itself had such control is Orwellian, and ought to be illegal. The icing on the Orwellian cake is that the server had a security fault which &lt;a href=&quot;https://samcurry.net/hacking-kia&quot;&gt;allowed absolutely anyone to activate those controls&lt;/a&gt; for any Kia car. Many people will be outraged at that security bug, but this was presumably an accident. The fact that Kia had such control over cars after selling them to customers is what outrages us, and that must have been intentional on Kia&#39;s part.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BMW has &lt;a href=&quot;https://www.forbes.com/sites/alistaircharlton/2023/09/07/bmw-drops-controversial-heated-seats-subscription-to-refocus-on-software-services/&quot;&gt;retreated from making car owners pay for a subscription to the heated seats feature&lt;/a&gt;. Customers rejected it. Bravo for them! Instead BMW plans to require subscriptions for digital services and disservices—things related to the Orwellian tracking done by any “connected” car.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/proprietary/proprietary-addictions.html&quot;&gt;Proprietary Addictions&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theguardian.com/lifeandstyle/2024/nov/03/addicted-to-love-how-dating-apps-exploit-their-users&quot;&gt;Dating apps exploit their users&lt;/a&gt;; fundamental features require an expensive subscription, and they are designed to be addictive.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.gnu.org/proprietary/malware-apple.html&quot;&gt;Apple&#39;s Operating Systems Are Malware&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/security/2023/12/exploit-used-in-mass-iphone-infection-campaign-targeted-secret-hardware-feature/&quot;&gt;A back door in Apple devices&lt;/a&gt;, present and abused from at least 2019 until 2023, allowed crackers to have full control over them by sending iMessage texts that installed malware without any action on the user&#39;s part. Infections, among other things, gave the intruders access to owners&#39; microphone recordings, photos, location and other personal data.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;July 2024&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gnu.org/proprietary/proprietary-obsolescence.html&quot;&gt;Proprietary Obsolescence&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2024/05/pleas-for-open-sourcing-refunds-as-spotify-plans-to-brick-car-thing-devices/&quot;&gt;Spotify sold a music streaming device but they no longer support it&lt;/a&gt;. Due to its proprietary nature, it can no longer be updated or even used. Users requested Spotify to make the software that runs on the device libre, and Spotify refused, so these devices are now e-waste. Spotify is now offering refunds to save the purchasers from losing money on these products, but this wouldn&#39;t prevent the products from being e-waste, and wouldn&#39;t save users from being jerked around by Spotify. This is an example of how software that is not free controls the user instead of the user controlling the software. It is also an important lesson for us to insist the software in a device be libre before we buy it.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;May 2024&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gnu.org/proprietary/malware-microsoft.html&quot;&gt;Microsoft&#39;s Software is Malware&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2024/3/15/24101887/microsoft-bing-popups-windows-11-google-chrome&quot;&gt;Microsoft is using malware tactics to get users to switch to their web browser&lt;/a&gt;, Microsoft Edge, and their search engine, Microsoft Bing. When users launch the Google Chrome browser Microsoft injects a pop up advertisement in the corner of the screen advising users to switch to Bing. Microsoft also imported users Chrome browsing data without their knowledge or consent.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;April 2024&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gnu.org/proprietary/malware-cars.html&quot;&gt;Malware In Cars&lt;/a&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20240311120515/https://www.nytimes.com/2024/03/11/technology/carmakers-driver-tracking-insurance.html&quot;&gt;GM is spying on drivers&lt;/a&gt; who own or rent their cars, and give away detailed driving data to insurance companies through data brokers. These companies then analyze the data, and hike up insurance prices if they think the data denotes “risky driving.” For the car to make this data available to anyone but the owner or renter of the car should be a crime. If the car is owned by a rental company, that company should not have access to it either.
&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Fri, 17 Jan 2025 19:04:37 +0000</pubDate>

</item> 
<item>
	<title>coreutils @ Savannah: coreutils-9.6 released [stable]</title>
	<guid>https://savannah.gnu.org/news/?id=10715</guid>
	<link>https://savannah.gnu.org/news/?id=10715</link>
     <description>  &lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;blockquote class=&quot;verbatim&quot;&gt;&lt;p&gt; This is to announce coreutils-9.6, a stable release.&lt;br /&gt;
See the NEWS below for a summary of changes.&lt;br /&gt;
&lt;br /&gt;
There have been 263 commits by 15 people in the 42 weeks since 9.5.&lt;br /&gt;
Thanks to everyone who has contributed!&lt;br /&gt;
The following people contributed changes to this release:&lt;br /&gt;
&lt;br /&gt;
  Bernhard Voelker (5)&lt;br /&gt;
  Bruce Jerrick (1)&lt;br /&gt;
  Bruno Haible (5)&lt;br /&gt;
  Collin Funk (16)&lt;br /&gt;
  Daniel Hofstetter (1)&lt;br /&gt;
  Evgeny Nizhibitsky (1)&lt;br /&gt;
  Lukáš Zaoral (1)&lt;br /&gt;
  Masatake YAMATO (1)&lt;br /&gt;
  Nikolaos Chatzikonstantinou (1)&lt;br /&gt;
  Nikolay Nechaev (3)&lt;br /&gt;
  Paul Eggert (123)&lt;br /&gt;
  Pádraig Brady (95)&lt;br /&gt;
  Richard Purdie (1)&lt;br /&gt;
  Sam Russell (2)&lt;br /&gt;
  Sylvestre Ledru (7)&lt;br /&gt;
&lt;br /&gt;
Pádraig [on behalf of the coreutils maintainers]&lt;br /&gt;
==================================================================&lt;br /&gt;
&lt;br /&gt;
Here is the GNU coreutils home page:&lt;br /&gt;
    https://gnu.org/s/coreutils/&lt;br /&gt;
&lt;br /&gt;
Here are the compressed sources:&lt;br /&gt;
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.gz   (15MB)&lt;br /&gt;
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.xz   (5.9MB)&lt;br /&gt;
&lt;br /&gt;
Here are the GPG detached signatures:&lt;br /&gt;
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.gz.sig&lt;br /&gt;
  https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.xz.sig&lt;br /&gt;
&lt;br /&gt;
Use a mirror for higher download bandwidth:&lt;br /&gt;
  https://www.gnu.org/order/ftp.html&lt;br /&gt;
&lt;br /&gt;
Here are the SHA1 and SHA256 checksums:&lt;br /&gt;
&lt;br /&gt;
  File: coreutils-9.6.tar.gz&lt;br /&gt;
  SHA1 sum:   1da82e96486e0eedbd5257c8190f2cf9fcb71c2e&lt;br /&gt;
  SHA256 sum: 2bec616375002c92c1ed5ead32a092b174fe44c14bc736d32e5961053b821d84&lt;br /&gt;
&lt;br /&gt;
  File: coreutils-9.6.tar.xz&lt;br /&gt;
  SHA1 sum:   0ede2895e6089a02b67473b9761abcc18ce8dcb0&lt;br /&gt;
  SHA256 sum: 7a0124327b398fd9eb1a6abde583389821422c744ffa10734b24f557610d3283&lt;br /&gt;
&lt;br /&gt;
Use a .sig file to verify that the corresponding file (without the&lt;br /&gt;
.sig suffix) is intact.  First, be sure to download both the .sig file&lt;br /&gt;
and the corresponding tarball.  Then, run a command like this:&lt;br /&gt;
&lt;br /&gt;
  gpg --verify coreutils-9.6.tar.xz.sig&lt;br /&gt;
&lt;br /&gt;
The signature should match the fingerprint of the following key:&lt;br /&gt;
&lt;br /&gt;
  pub   rsa4096/0xDF6FD971306037D9 2011-09-23 [SC]&lt;br /&gt;
        Key fingerprint = 6C37 DC12 121A 5006 BC1D  B804 DF6F D971 3060 37D9&lt;br /&gt;
  uid                   [ultimate] Pádraig Brady &amp;lt;P@draigBrady.com&amp;gt;&lt;br /&gt;
  uid                   [ultimate] Pádraig Brady &amp;lt;pixelbeat@gnu.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If that command fails because you don&#39;t have the required public key,&lt;br /&gt;
or that public key has expired, try the following commands to retrieve&lt;br /&gt;
or refresh it, and then rerun the &#39;gpg --verify&#39; command.&lt;br /&gt;
&lt;br /&gt;
  gpg --locate-external-key P@draigBrady.com&lt;br /&gt;
&lt;br /&gt;
  gpg --recv-keys DF6FD971306037D9&lt;br /&gt;
&lt;br /&gt;
  wget -q -O- &#39;https://savannah.gnu.org/project/release-gpgkeys.php?group=coreutils&amp;amp;download=1&#39; | gpg --import -&lt;br /&gt;
&lt;br /&gt;
As a last resort to find the key, you can try the official GNU&lt;br /&gt;
keyring:&lt;br /&gt;
&lt;br /&gt;
  wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg&lt;br /&gt;
  gpg --keyring gnu-keyring.gpg --verify coreutils-9.6.tar.xz.sig&lt;br /&gt;
&lt;br /&gt;
This release is based on the coreutils git repository, available as&lt;br /&gt;
&lt;br /&gt;
  git clone https://git.savannah.gnu.org/git/coreutils.git&lt;br /&gt;
&lt;br /&gt;
with commit e2a405981ff5441dcfb217797699c94968218aca tagged as v9.6.&lt;br /&gt;
&lt;br /&gt;
For a summary of changes and contributors, see:&lt;br /&gt;
&lt;br /&gt;
  https://git.sv.gnu.org/gitweb/?p=coreutils.git;a=shortlog;h=v9.6&lt;br /&gt;
&lt;br /&gt;
or run this command from a git-cloned coreutils directory:&lt;br /&gt;
&lt;br /&gt;
  git shortlog v9.5..v9.6&lt;br /&gt;
&lt;br /&gt;
This release was bootstrapped with the following tools:&lt;br /&gt;
  Autoconf 2.72.70-9ff9&lt;br /&gt;
  Automake 1.16.5&lt;br /&gt;
  Gnulib 2025-01-17 2481e7a50d6535582856626b53009f419e2e05e2&lt;br /&gt;
  Bison 3.8.2&lt;br /&gt;
&lt;br /&gt;
NEWS&lt;br /&gt;
&lt;br /&gt;
* Noteworthy changes in release 9.6 (2025-01-17) [stable]&lt;br /&gt;
&lt;br /&gt;
** Bug fixes&lt;br /&gt;
&lt;br /&gt;
  cp fixes support for --update=none-fail, which would have been&lt;br /&gt;
  rejected as an invalid option.&lt;br /&gt;
  [bug introduced in coreutils-9.5]&lt;br /&gt;
&lt;br /&gt;
  cp,mv --update no longer overrides --interactive or --force.&lt;br /&gt;
  [bug introduced in coreutils-9.3]&lt;br /&gt;
&lt;br /&gt;
  csplit no longer creates empty files given empty input.&lt;br /&gt;
  [This bug was present in &quot;the beginning&quot;.]&lt;br /&gt;
&lt;br /&gt;
  ls and printf fix shell quoted output in the edge case of escaped&lt;br /&gt;
  first and last characters, and single quotes in the string.&lt;br /&gt;
  [bug introduced in coreutils-8.26]&lt;br /&gt;
&lt;br /&gt;
  ls -l no longer outputs &quot;Permission denied&quot; errors on NFS&lt;br /&gt;
  which may happen with files without read permission, and which resulted&lt;br /&gt;
  in inaccurate indication of ACLs (missing &#39;+&#39; flag after mode).&lt;br /&gt;
  [bug introduced in coreutils-9.4]&lt;br /&gt;
&lt;br /&gt;
  ls -l no longer outputs &quot;Not supported&quot; errors on virtiofs.&lt;br /&gt;
  [bug introduced in coreutils-9.4]&lt;br /&gt;
&lt;br /&gt;
  mv works again with macFUSE file systems.  Previously it would&lt;br /&gt;
  have exited with a &quot;Function not implemented&quot; error.&lt;br /&gt;
  [bug introduced in coreutils-8.28]&lt;br /&gt;
&lt;br /&gt;
  nproc gives more consistent results on systems with more than 1024 CPUs.&lt;br /&gt;
  Previously it would have ignored the affinity mask on such systems.&lt;br /&gt;
  [bug introduced with nproc in coreutils-8.1]&lt;br /&gt;
&lt;br /&gt;
  numfmt --from=iec-i now works with numbers without a suffix.&lt;br /&gt;
  Previously such numbers were rejected with an error.&lt;br /&gt;
  [bug introduced with numfmt in coreutils-8.21]&lt;br /&gt;
&lt;br /&gt;
  printf now diagnoses attempts to treat empty strings as numbers,&lt;br /&gt;
  as per POSIX. For example, &quot;printf &#39;%d&#39; &#39;&#39;&quot; now issues a diagnostic&lt;br /&gt;
  and fails instead of silently succeeding.&lt;br /&gt;
  [This bug was present in &quot;the beginning&quot;.]&lt;br /&gt;
&lt;br /&gt;
  pwd no longer outputs an erroneous double slash on systems&lt;br /&gt;
  where the system getcwd() was completely replaced.&lt;br /&gt;
  [bug introduced in coreutils-9.2]&lt;br /&gt;
&lt;br /&gt;
  &#39;shuf&#39; generates more-random output when the output is small.&lt;br /&gt;
  [bug introduced in coreutils-8.6]&lt;br /&gt;
&lt;br /&gt;
  `tail --follow=name` no longer waits indefinitely for watched&lt;br /&gt;
  file names that are moved elsewhere within the same file system.&lt;br /&gt;
  [bug introduced in coreutils-8.24]&lt;br /&gt;
&lt;br /&gt;
  `tail --follow` without --retry, will consistently exit with failure status&lt;br /&gt;
  where inotify is not used, when all followed files become inaccessible.&lt;br /&gt;
  [This bug was present in &quot;the beginning&quot;.]&lt;br /&gt;
&lt;br /&gt;
  `tail --follow --pid=PID` will now exit when the PID dies,&lt;br /&gt;
  even in the presence of blocking inputs like unopened fifos.&lt;br /&gt;
  [This bug was present in &quot;the beginning&quot;.]&lt;br /&gt;
&lt;br /&gt;
  &#39;tail -c 4096 /dev/zero&#39; no longer loops forever.&lt;br /&gt;
  [This bug was present in &quot;the beginning&quot;.]&lt;br /&gt;
&lt;br /&gt;
** Changes in behavior&lt;br /&gt;
&lt;br /&gt;
  &#39;factor&#39; now buffers output more efficiently in some cases.&lt;br /&gt;
&lt;br /&gt;
  install -C now dereferences symlink sources when comparing,&lt;br /&gt;
  rather than always treating as different and performing the copy.&lt;br /&gt;
&lt;br /&gt;
  kill -l and -t now list signal 0, as it&#39;s a valid signal to send.&lt;br /&gt;
&lt;br /&gt;
  ls&#39;s -f option now simply acts like -aU, instead of also ignoring&lt;br /&gt;
  some earlier options.  For example &#39;ls -fl&#39; and &#39;ls -lf&#39; are now&lt;br /&gt;
  equivalent because -f no longer ignores an earlier -l.  The new&lt;br /&gt;
  behavior is more orthogonal and is compatible with FreeBSD.&lt;br /&gt;
&lt;br /&gt;
  stat -f -c%T now reports the &quot;fuseblk&quot; file system type as &quot;fuse&quot;,&lt;br /&gt;
  given that there is no longer a distinct &quot;ctl&quot; fuse variant file system.&lt;br /&gt;
&lt;br /&gt;
** New Features&lt;br /&gt;
&lt;br /&gt;
  cksum -a now supports the &quot;crc32b&quot; option, which calculates the CRC&lt;br /&gt;
  of the input as defined by ITU V.42, as used by gzip for example.&lt;br /&gt;
  For performance pclmul instructions are used where supported.&lt;br /&gt;
&lt;br /&gt;
  ls now supports the --sort=name option,&lt;br /&gt;
  to explicitly select the default operation of sorting by file name.&lt;br /&gt;
&lt;br /&gt;
  printf now supports indexed arguments, using the POSIX:2024 specified&lt;br /&gt;
  %&amp;lt;i&amp;gt;$ format, where &#39;&amp;lt;i&amp;gt;&#39; is an integer referencing a particular argument,&lt;br /&gt;
  thus allowing repetition or reordering of printf arguments.&lt;br /&gt;
&lt;br /&gt;
  test supports the POSIX:2024 specified &#39;&amp;lt;&#39; and &#39;&amp;gt;&#39; operators with strings,&lt;br /&gt;
  to compare the string locale collating order.&lt;br /&gt;
&lt;br /&gt;
  timeout now supports the POSIX:2024 specified -f, and -p short options,&lt;br /&gt;
  corresponding to --foreground, and --preserve-status respectively.&lt;br /&gt;
&lt;br /&gt;
** Improvements&lt;br /&gt;
&lt;br /&gt;
  cksum -a crc, makes use of AVX2, AVX512, and ARMv8 SIMD extensions&lt;br /&gt;
  for time reductions of up to 40%, 60%, and 80% respectively.&lt;br /&gt;
&lt;br /&gt;
  &#39;head -c NUM&#39;, &#39;head -n NUM&#39;, &#39;nl -l NUM&#39;, &#39;nproc --ignore NUM&#39;,&lt;br /&gt;
  &#39;tail -c NUM&#39;, &#39;tail -n NUM&#39;, and &#39;tail --max-unchanged-stats NUM’&lt;br /&gt;
  no longer fail merely because NUM stands for 2**64 or more.&lt;br /&gt;
&lt;br /&gt;
  sort operates more efficiently when used on pseudo files with&lt;br /&gt;
  an apparent size of 0, like those in /proc.&lt;br /&gt;
&lt;br /&gt;
  stat and tail now know about the &quot;bcachefs&quot;, and &quot;pidfs&quot; file system types.&lt;br /&gt;
  stat -f -c%T now reports the file system type,&lt;br /&gt;
  and tail -f uses inotify for these file systems.&lt;br /&gt;
&lt;br /&gt;
  wc now reads a minimum of 256KiB at a time.&lt;br /&gt;
  This was previously 16KiB and increasing to 256KiB was seen to increase&lt;br /&gt;
  wc -l performance by about 10% when reading cached files on modern systems.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Fri, 17 Jan 2025 15:51:19 +0000</pubDate>

</item> 
<item>
	<title>GNU Guix: Guix User and Contributor Survey 2024: The Results (part 1)</title>
	<guid>https://guix.gnu.org/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-1//</guid>
	<link>https://guix.gnu.org/blog/2025/guix-user-and-contributor-survey-2024-the-results-part-1//</link>
     <description>  &lt;p&gt;The results from the Guix User and Contributor Survey (2024) are in! This is the first time the Guix community has run this type of survey, and we&#39;re excited to share the results. The goal of the survey was to collect the views of both users and contributors, understanding how people adopt Guix, what they love and they&#39;re experiences contributing to the project.&lt;/p&gt;&lt;p&gt;There were 943 full responses to the survey, of this 53% were users and 32% were contributors. The table of survey participants is as follows:&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 1: Participant breakdown&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;User&lt;/td&gt;&lt;td&gt;496&lt;/td&gt;&lt;td&gt;52.60&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Contributor&lt;/td&gt;&lt;td&gt;297&lt;/td&gt;&lt;td&gt;31.50&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Previous user&lt;/td&gt;&lt;td&gt;92&lt;/td&gt;&lt;td&gt;9.76&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Previous contributor&lt;/td&gt;&lt;td&gt;58&lt;/td&gt;&lt;td&gt;6.15&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;First, &lt;b&gt;thank-you to everyone&lt;/b&gt; who made the effort to fill out the survey. For a volunteer community project it&#39;s fantastic to see over 900 people took part. It&#39;s notable that 150 people took the survey who were previous users or contributors — it&#39;s really great that people are willing to make this effort to share their experiences — thanks so much!&lt;/p&gt;&lt;p&gt;With this many participants we can see the range of view points and experience across our whole community, many of the comments were enlightening and are worth reading.  There are links in many of the questions so anyone that&#39;s interested can go through them.&lt;/p&gt;&lt;p&gt;As the results are extensive I&#39;ve split them into three separate posts, in this post we&#39;ll focus on the first 10 questions of the survey which focused on how users learnt about Guix and their experiences adopting it.&lt;/p&gt;&lt;h3&gt;User backgrounds and experience&lt;/h3&gt;&lt;p&gt;The survey started by asking participants, &lt;b&gt;How knowledgeable a Linux are you?&lt;/b&gt; (Q1).&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 2: Participant&#39;s Linux knowledge&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Beginner (e.g. just getting started)&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;2%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Explorer (e.g. comfortable installing it and using graphical apps)&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;2%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Intermediate (e.g. comfortable with the command-line and configuring many aspects)&lt;/td&gt;&lt;td&gt;445&lt;/td&gt;&lt;td&gt;47%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Advanced (e.g. you correct the Arch Linux Wiki!)&lt;/td&gt;&lt;td&gt;248&lt;/td&gt;&lt;td&gt;26%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Expert (e.g. able to contribute to large Free Software projects!)&lt;/td&gt;&lt;td&gt;212&lt;/td&gt;&lt;td&gt;22%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No answer&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0.21%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Note that all the percentages in this table, and throughout the posts are rounded to make them easier to refer to.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Figure 1&lt;/em&gt; shows this graphically:&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;2024 Guix user survey: GNU/Linux knowledge graph&quot; src=&quot;https://guix.gnu.org/static/blog/img/2024-guix-survey-q1.png&quot; style=&quot;width: 85%; height: 85%;&quot; /&gt;&lt;figcaption style=&quot;font-weight: bold;&quot;&gt;Figure 1: Survey participants GNU/Linux knowledge&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The next question (Q2) was, &lt;b&gt;How long have you been using Guix?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 3: Guix experience&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Less than 1 year&lt;/td&gt;&lt;td&gt;245&lt;/td&gt;&lt;td&gt;26%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Between 1 and 2 years&lt;/td&gt;&lt;td&gt;218&lt;/td&gt;&lt;td&gt;23%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Between 2 and 4 years&lt;/td&gt;&lt;td&gt;234&lt;/td&gt;&lt;td&gt;25%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;More than 4 years&lt;/td&gt;&lt;td&gt;160&lt;/td&gt;&lt;td&gt;17%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;I&#39;ve stopped using Guix&lt;/td&gt;&lt;td&gt;83&lt;/td&gt;&lt;td&gt;9%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No answer&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0.3%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Figure 2&lt;/em&gt; shows these results as a bar chart:&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;2024 Guix user survey: GNU Guix experience graph&quot; src=&quot;https://guix.gnu.org/static/blog/img/2024-guix-survey-q2.png&quot; style=&quot;width: 85%; height: 85%;&quot; /&gt;&lt;figcaption style=&quot;font-weight: bold;&quot;&gt;Figure 2: Survey participants GNU Guix experience&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;These two questions already tell us some interesting things about Guix users:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Guix users generally have a lot of Linux experience: 50% said they were Intermediates who were &quot;&lt;em&gt;comfortable with the command-line and configuring many aspects&lt;/em&gt;&quot;. A further 26% said they were Advanced, and 22% said they were experts.&lt;/li&gt;&lt;li&gt;Conversely, very few users (~4%) are beginners or exploring Linux users.&lt;/li&gt;&lt;li&gt;Many Guix users are new to Guix itself.&lt;/li&gt;&lt;li&gt;Guix&#39;s user-base is growing! Almost 75% of the user-base are recent converts to Guix, having used it for less than 4 years.&lt;/li&gt;&lt;li&gt;It&#39;s a similar distribution of users to Nix&#39;s. Their &lt;a href=&quot;https://discourse.nixos.org/t/nix-community-survey-2024-results/55403&quot;&gt;2024 survey&lt;/a&gt; showed dramatic growth (~65%) in users from 0-2 years, Guix&#39;s is 49%.&lt;/li&gt;&lt;li&gt;It&#39;s fantastic to see new users are exploring and trying out Guix.&lt;/li&gt;&lt;li&gt;Unfortunately, 9% of users are no longer using Guix, but care enough to fill out the survey - so what can be done to help them come back?!&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Adopting Guix&lt;/h3&gt;&lt;p&gt;The next few questions explored how participants adopted Guix. It&#39;s important that new users have a great adoption experience so they&#39;ll keep using Guix. Conversely, if the initial experience is too difficult, they may simply move onto something else without seeing it&#39;s benefits!&lt;/p&gt;&lt;p&gt;The first question asked, (Q4) &lt;b&gt;Why were you initially interested in Guix?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This question tells us what users had heard about Guix, and what they discovered during their initial investigation. The answers could impact how the project talks about Guix&#39;s strengths and capabilities.&lt;/p&gt;&lt;p&gt;For this question users could select more than one answer and many did so. The most selected choice was &lt;b&gt;&quot;Declarative configuration&quot;&lt;/b&gt; where 82% of participants were interested in Guix because it had this quality.  The option &lt;b&gt;&quot;Scheme, Guile, and Lisp are cool&quot;&lt;/b&gt; was second, where 72% of the survey&#39;s participants were intrigued by Guix because of this aspect. The &lt;b&gt;&quot;Reproducibility&quot;&lt;/b&gt; choice came third with 70% interested in this capability. The detailed results were:&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 4: Reason for adopting Guix&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reliability and transactions&lt;/td&gt;&lt;td&gt;537&lt;/td&gt;&lt;td&gt;57%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Declarative configuration&lt;/td&gt;&lt;td&gt;772&lt;/td&gt;&lt;td&gt;82%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reproducibility&lt;/td&gt;&lt;td&gt;658&lt;/td&gt;&lt;td&gt;70%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Reproducible scientific workflows&lt;/td&gt;&lt;td&gt;199&lt;/td&gt;&lt;td&gt;21%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Fresh packages with latest versions&lt;/td&gt;&lt;td&gt;207&lt;/td&gt;&lt;td&gt;22%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scheme, Guile and Lisp are cool&lt;/td&gt;&lt;td&gt;677&lt;/td&gt;&lt;td&gt;72%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Friendly community&lt;/td&gt;&lt;td&gt;256&lt;/td&gt;&lt;td&gt;27%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FSF certified project (100% Free Software)&lt;/td&gt;&lt;td&gt;404&lt;/td&gt;&lt;td&gt;43%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alternative architectures (e.g. ARM)&lt;/td&gt;&lt;td&gt;90&lt;/td&gt;&lt;td&gt;10%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GNU Hurd&lt;/td&gt;&lt;td&gt;122&lt;/td&gt;&lt;td&gt;13%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Package management on another Linux distribution&lt;/td&gt;&lt;td&gt;319&lt;/td&gt;&lt;td&gt;34%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;As a tool for packaging my own software&lt;/td&gt;&lt;td&gt;267&lt;/td&gt;&lt;td&gt;28%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;There were 110 choices of &#39;Other&#39; where participants could add their own comments, they&#39;re all &lt;a href=&quot;https://codeberg.org/futurile/guix-survey/src/branch/main/2024-survey/Q4-guix-interest-comments.md&quot;&gt;available to read&lt;/a&gt;. Looking through them some themes came through:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Development environments:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;General solution to rvm,pyenv etc&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;As a Docker replacement for software development&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Documentation:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Initial interest in Nix, but hearing about Guix having more pleasant documentation also swayed me towards using Guix instead&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Documentation (not exhaustive but well-structured), simplicity of the CLI&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Free Software &amp;amp; GNU:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;The possibility of releasing the GNU operating system version 1.0&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;100% free software yes, FSF no (FSFE are fine)&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Being a GNU project helped me decide between Guix and Nix.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Use for Continuous Integration:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;used for CI, replacing docker with free software and user control&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sandboxes and security:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Sandbox environment&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Security: containerized environments integrated in the OS.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Package definitions:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Writing packages for GNU Guix seemed more intuitive than for Gentoo Linux (Guix&#39;s hashes &amp;gt; Gentoo&#39;s slots)&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Ease of packaging&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;An alternative to Nix:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Wanted to check out alternatives to Nix. Particularly interested in 1) grafting, 2) measures against ld.so stat storm, 3) performant guix packs without proot&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Use Nix a lot, want to explore that design space more&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Guile Scheme and Lisp:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;One language for everything&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Not nixlang&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;homogeneity of the configuration (one language for everything)&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Full source:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Full Source Bootstrap &amp;amp; Strict Policy to compile all software from source&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Full source auditability&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The next question the survey asked was, &lt;b&gt;Which aspect of Guix did you initially adopt?&lt;/b&gt; (Q5). This is users initial entry point into using Guix.&lt;/p&gt;&lt;p&gt;The detailed results were:&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 5: Initial aspect of Guix adopted&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Package manager on top of another Linux distro (guix package)&lt;/td&gt;&lt;td&gt;336&lt;/td&gt;&lt;td&gt;36%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dotfiles and home environment management on another Linux distro (guix home)&lt;/td&gt;&lt;td&gt;41&lt;/td&gt;&lt;td&gt;4%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Isolated development and runtime environments on another Linux distro (guix shell)&lt;/td&gt;&lt;td&gt;58&lt;/td&gt;&lt;td&gt;6%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GNU/Linux distro as a graphical desktop (guix system)&lt;/td&gt;&lt;td&gt;434&lt;/td&gt;&lt;td&gt;46%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;GNU/Linux distro as a server (guix system)&lt;/td&gt;&lt;td&gt;47&lt;/td&gt;&lt;td&gt;5%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;As a software build and deployment tool (guix image, guix package or guix deploy)&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;2%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Other&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;1%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Figure 3&lt;/em&gt; shows this as a bar chart:&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;2024 Guix user survey: GNU Guix adoption bar chart&quot; src=&quot;https://guix.gnu.org/static/blog/img/2024-guix-survey-q5.png&quot; style=&quot;width: 85%; height: 85%;&quot; /&gt;&lt;figcaption style=&quot;font-weight: bold;&quot;&gt;Figure 3: Guix initial adoption aspect&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The summary is that almost 50% of users initially experienced Guix as a GNU/Linux distro: 44% in a graphical desktop configuration and a further 5% in a server configuration. Just over a third of users (36%) initial experience Guix as a package manager on top of another Linux distro. I found this surprising as I&#39;d expected most users to use Guix as a hosted package manager first, what an interesting result! We can also see there&#39;s lots of room to develop Guix Home as an adoption path.&lt;/p&gt;&lt;h3&gt;Adoption challenges&lt;/h3&gt;&lt;p&gt;Adopting any new technology is difficult and time-consuming, so discovering what elements users find difficult is important. Q7 delved into this by asking, &lt;b&gt;What were the biggest challenges getting started with Guix?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The results were:&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 6: Adoption challenges&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Installing Guix as a package manager on a GNU/Linux distribution&lt;/td&gt;&lt;td&gt;80&lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Installing Guix System as a full Linux distribution&lt;/td&gt;&lt;td&gt;236&lt;/td&gt;&lt;td&gt;25%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Level of Linux knowledge needed to use Guix&lt;/td&gt;&lt;td&gt;102&lt;/td&gt;&lt;td&gt;11%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Difficulties with the reference material (i.e. the manual)&lt;/td&gt;&lt;td&gt;236&lt;/td&gt;&lt;td&gt;25%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shortage of how-to tutorials and videos&lt;/td&gt;&lt;td&gt;297&lt;/td&gt;&lt;td&gt;32%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shortage of examples (e.g. examples of usage)&lt;/td&gt;&lt;td&gt;431&lt;/td&gt;&lt;td&gt;46%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Inexperience with Lisp syntax and/or Guile Scheme&lt;/td&gt;&lt;td&gt;374&lt;/td&gt;&lt;td&gt;40%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Differences between Guix&#39;s approach and other Linux distros&lt;/td&gt;&lt;td&gt;321&lt;/td&gt;&lt;td&gt;34%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;It was so long ago I can&#39;t possibly remember!&lt;/td&gt;&lt;td&gt;44&lt;/td&gt;&lt;td&gt;5%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Other&lt;/td&gt;&lt;td&gt;218&lt;/td&gt;&lt;td&gt;23%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;Figure 4&lt;/em&gt; shows this as a bar chart:&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;2024 Guix user survey: GNU Guix adoption challenges bar chart&quot; src=&quot;https://guix.gnu.org/static/blog/img/2024-guix-survey-q7.png&quot; style=&quot;width: 85%; height: 85%;&quot; /&gt;&lt;figcaption style=&quot;font-weight: bold;&quot;&gt;Figure 4: Guix adoption challenges&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;As we can see the biggest challenge is a  &lt;b&gt;Shortage of examples (e.g examples of usage)&lt;/b&gt;. And, if we consider shortage of how-to tutorials (32%) to be similar then overall we can see there&#39;s a clear need for focused goal-orientated documentation with examples. Inexperience with &lt;b&gt;Lisp syntax and or Guile Scheme&lt;/b&gt; and &lt;b&gt;Differences between Guix&#39;s approach and other Linux distros&lt;/b&gt; both speak to the unique nature of Guix and the approach it takes: perhaps there are implications for how Guix&#39;s tooling can make initial adoption as easy as possible.&lt;/p&gt;&lt;p&gt;There were 218 comments, which are &lt;a href=&quot;https://codeberg.org/futurile/guix-survey/src/branch/main/2024-survey/Q7-guix-adoption-challenges-comments.md&quot;&gt;worth reading through&lt;/a&gt;. I&#39;ve summarised them into broad themes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Conceptual complexity&lt;/b&gt;: comments about the overall knowledge required being too much. Examples are:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Understanding the concepts on which guix runs&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;managing storage space, generations, GC roots, profiles; generally grasping the concepts&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Some interesting free software is only available for other distros, it&#39;s hard to adapt to a system without file system hierarchy&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Lack of drivers&lt;/b&gt;: issues caused by drivers not being available. Examples are:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;can&#39;t really use linux-libre on the machine I installed it on (lack drivers)&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Getting an initial installation with working non-free wifi&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;hiding nonguix&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Efficiency&lt;/b&gt;: comments regarding overall resource usage making Guix slow or unusable. Example comments are:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;The evaluation of Guix is slow and resource-intensive. My laptop was no match for it, I had to change it.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Guix experimentation is still too slow. Make experimenting faster for new users by identifying rate limiting steps and speeding them up&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Slow network when download guix substitute&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Missing packages and services&lt;/b&gt;: issues where Guix doesn&#39;t contain a required package or service.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;missing packages I needed and getting them upstreamed after I packaged them&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Unpackaged free software, and nonfree software&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Coming from Nix: smaller, less up-to-date package set, substantially fewer home services&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Quality and reliability&lt;/b&gt;: issues of quality and reliability that made Guix difficult to use. Some comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;hard time fixing config errors with reports&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Broken integration between some components (packages and services)&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Basic setup is pretty easy on paper, but in practice sometimes it breaks my system and I need to fiddle with shell profiles and environment variables and installing extra packages to get Guix programs play nice with native programs. And I feel like this kind of breakage isn&#39;t acknowledged or addressed enough.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Practical guides, how-to&#39;s and examples&lt;/b&gt;: situations where a lack of direct instructions or examples made Guix difficult to use.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Guix-unique bugs and issues that I can&#39;t find an answer to online&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Lack of docs mostly, common patterns, the fact that&#39;s it&#39;s a pain the butt to make things works for some ecosystems on the Guix distro (e.g any app written in Golang, Rust, JS,TS..)&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Error messages&lt;/b&gt;: poor experience caused by error messages that are difficult to understand. Example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Horrible error messages&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Difficult guile scheme error messages!!&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Hard-to-understand error messages&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Configuring on a hosted distribution)&lt;/b&gt;: issues caused when using Guix on top of another distribution. Some comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;I found the setting of numerous variables and the comments recommending I do so contradictory and so confusing&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;SELinux blocked installation of packages: remount&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Problems using it on a foreign distro. Guix Home particularly assumes that you are using guix system, I had to tweak the .profile a lot to get it working.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Encrypted boot / LUKS&lt;/b&gt;: encryption in various forms unavailable or missing certain features:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Very poor support for full disk encryption.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Also using a LUKS encrypted root file-system was a challenge at the time i started Guix&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Language ecosystems (e.g. Rust, PHP)&lt;/b&gt;: issues due to missing packages, or attempts to package, from certain language ecosystems.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Missing packages, and the difficulty of packaging rust or npm packages on guix dissuaded me from contributing them&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Mac availability&lt;/b&gt;: situations where being unavailable on Mac meant Guix could not be adopted.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Linux only. nix has macos support too which would help adoption in a team environment.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;No MacOS official distribution&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;Adoption satisfaction score&lt;/h3&gt;&lt;p&gt;The survey asked (Q6), &lt;b&gt;How satisfied were you with your experience adopting Guix?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This question explores the users overall satisfaction with the initial steps of researching, installing and initially using Guix. The question asked the participant to score their satisfaction on one of 5 levels.&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 7: Guix adoption satisfaction&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Very Dissatisfied&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;2%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dissatisfied&lt;/td&gt;&lt;td&gt;113&lt;/td&gt;&lt;td&gt;12%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Neutral&lt;/td&gt;&lt;td&gt;154&lt;/td&gt;&lt;td&gt;16%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Satisfied&lt;/td&gt;&lt;td&gt;408&lt;/td&gt;&lt;td&gt;43%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Very Satisfied&lt;/td&gt;&lt;td&gt;226&lt;/td&gt;&lt;td&gt;24%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Can&#39;t remember&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;2%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;See &lt;em&gt;Figure 5&lt;/em&gt; for a visual representation: &lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;2024 Guix user survey: GNU Guix initial adoption satisfaction score&quot; src=&quot;https://guix.gnu.org/static/blog/img/2024-guix-survey-q6.png&quot; style=&quot;width: 85%; height: 85%;&quot; /&gt;&lt;figcaption style=&quot;font-weight: bold;&quot;&gt;Figure 5: Guix initial adoption satisfaction bar chart&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This is probably the most important question in the entire survey when it comes to growing the number of Guix users. Overall, it&#39;s positive with Very Satisfied (24%) and Satisfied (43%) meaning that the majority of users are happy with their initial experience. The comments above show there&#39;s lots of room to find small ways to move users initial experience from Satisfied to being overjoyed! Unfortunately, on the other end of the scale 14% of users who were unhappy and the 16% neutral show some of the bigger challenges!&lt;/p&gt;&lt;h3&gt;Which GNU/Linux distribution do you use Guix on?&lt;/h3&gt;&lt;p&gt;As we saw earlier just over a third of users (36%) initial adopt Guix as a package manager on top of another GNU/Linux distribution. Question 8 asked, &lt;b&gt;Which GNU/Linux distribution did you use Guix on top of?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The results:&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 8: Hosting Linux distributions&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alpine Linux&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;0.95%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Arch Linux&lt;/td&gt;&lt;td&gt;81&lt;/td&gt;&lt;td&gt;8.59%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Fedora Linux&lt;/td&gt;&lt;td&gt;33&lt;/td&gt;&lt;td&gt;3.50%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gentoo Linux&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;2.01%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NixOS&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;2.33%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ubuntu&lt;/td&gt;&lt;td&gt;111&lt;/td&gt;&lt;td&gt;11.77%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Other&lt;/td&gt;&lt;td&gt;170&lt;/td&gt;&lt;td&gt;18.03%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I errored when creating this question and somehow missed out Debian! Over 117 answers in the &#39;Other&#39; category said Debian so it&#39;s the most popular distribution to use Guix on, Ubuntu is second (111) and then Arch Linux was third (81). There were also plenty of mentions of OpenSUSE, RHEL/CentOS and Void Linux.&lt;/p&gt;&lt;h3&gt;Why did you stop using Guix?&lt;/h3&gt;&lt;p&gt;Question 9 was targeted at those that had previously used Guix but had stopped. It asked, &lt;b&gt;You previously used Guix but stopped, why?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;This was a comment question and we got some fantastic answers. There were 147 comments from participants, which lines up well with the 150 people who took the survey and classed themselves as a &#39;Previous user&#39; or &#39;Previous contributor&#39;.&lt;/p&gt;&lt;p&gt;This was a free form text answer, the &lt;a href=&quot;https://codeberg.org/futurile/guix-survey/src/branch/main/2024-survey/Q9-guix-previous-users-comments.md&quot;&gt;full comment are well worth a read through&lt;/a&gt; . As before I&#39;ve clustered the comments into themes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Complexity of maintenance too high&lt;/b&gt;: many commented that the overall experience of using Guix was too time-consuming and complex. A slow configuration feedback loop, inefficiency, and the overall maintenance burden were all concerns. Example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;I needed to switch to a distribution that required less of my attention when I started my new job. I switched to NixOS with the intention of going back to Guix at a later date, but I am now reliant on so many parts of the nix ecosystem that I don&#39;t think I&#39;ll ever actually switch back.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I was doing more work trying to make my setup perfect or fix issues with it rather than working on my other projects. A lot of things with my setup either broke with time or were just not compatible (My setup couldn&#39;t handle printing, screen sharing, audio, suspending/hibernation and I just didn&#39;t know how to fix all that) and I couldn&#39;t deal with it any longer, I simply went back to whatever worked for me earlier.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Learning curve too difficult&lt;/b&gt;: many aspects of Guix are completely different from how other distributions achieve the same result. In some instances this learning curve was too difficult and/or there was not enough assistance. Example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Mainly the learning curve is huge for a long-time *nix systems user. I knew it would be difficult to adapt, but for each and every little thing I would need to go dig how to fix something. Doing proper power management on my laptop, setting up mail (I&#39;ve been using Gnus for years, but still...!), compile and test mainline kernels on my laptop, etc. It&#39;s awesome to learn all those things, but they all require time. And that&#39;s where I had to give up: I wanted a (reliable) system I could use for my day-to-day work, Guix would be great... if I could spend a few weeks only learning it (and Lisp!).&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;But the problem ends up to be that the whole ecosystem around guix basically assumes super knowledge about what scheme is, how to use it and worse of all deep comfort and will to use emacs as the main interface to it all. It&#39;s too high of a hurdle to dedicate when just wanting to write some files, evaluate them, declare some packages, shells, etc. I have zero interest and will to use or learn emacs and putting it so much upfront does a huge disservice to the whole project.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Lack of drivers within the distribution&lt;/b&gt;: the lack of drivers to enable hardware was the most commented on specific issue. Some examples of those comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;As a long time Arch user I found it difficult to configure Guix for daily use. I need proprietary video drivers (and possibly other bits to get everything working?) and I don&#39;t remember if I ever got those up and running.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I have a lot of respect for the technical side of the project, but the politics of free software absolutism (to the point where we are supposed to tell people to replace perfectly functional hardware in order to use Guix, instead of telling them about Nonguix) and the user hostile email based contribution workflow made me realize Guix would likely never reach critical mass, so my time is best applied elsewhere.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Unavailable proprietary software&lt;/b&gt;: proprietary software not being available was also mentioned (not quite as much as drivers), often in comments that focused on Guix not being practical as a distribution for professional use. Some specific comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Lack of proprietary software, primarily CUDA, MKL, etc.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Although I like FSF license purity, NixOS was much more amenable to get working on various hardware &amp;amp; did not preclude using Nvidia CUDA.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Efficiency and resource usage&lt;/b&gt;: there were comments about guix pull taking too long, whether this was actually the fault of Guix pull locally or remote servers, the overall experience was mentioned multiple times. Some example comments were:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;The core tooling was far too slow (e.g. pulling updates, etc.); Nix is slow, but nowhere near as slow as Guix (was back then, but I&#39;m not aware of the kind of order of magnitude improvements that would have been required). Core functionality was not reliable enough for a server operating system (shepherd, logging, system rollback). Arcane contribution requirements (no provisions for non-Emacs users, e.g. regarding code formatting; baroque and counterproductive changelog and commit factoring requirements); I didn&#39;t mind the email/patch based workflow btw&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Guix pull is too slow. The guix ci servers are inaccessible from my location, requiring a proxy. Guix System does not have a large enough community to be reliable and universal enough for daily use (in my opinion)&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Missing packages and services&lt;/b&gt;: there were lots of comments about both missing packages or services and this making it difficult to use Guix. Example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Much of the software I needed wasn&#39;t packaged, and it eventually became frustrating. I tried to package what I could, but some things felt extremely difficult, E.g., `jujutsu` `ghc`. However unfortunate it may be, I also rely on various pieces of nonfree software, and Guix was working against me in that regard. I do not like that I have to use nonfree software, but I often have no choice.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Still use to some extent as package manager on foreign distro. For desktop use, waited for usable KDE Plasma packaging, and for laptop, coverage of working builds for ARM. Hoping to return; there is progress on both of these fronts. Size of store and speed of guix pull where also issues (on limited hardware).&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Out of date packages&lt;/b&gt;: meaning that although there was a package within Guix it was lagging, with particular concern about security implications. Example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Outdated or absent FOSS software (ex: Gnome, KDE, etc)&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Too many packages updates were lagging behind, this was raising concerns for me from a security point of view&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Quality and reliability&lt;/b&gt;: general issues with quality and reliability that undermined the users belief that the project was ready for real use. Examples:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;An upgrade broke the system and crippled it from booting. Moved on to other distribution&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I like the whole idea of guix. But it feels like it is not really ready.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Guix not fully supporting disk encryption&lt;/b&gt;: full disk encryption in a variety of forms came up multiple times as a Guix weakness. Examples:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Guix does not support an unencrypted /boot partition. But also does not fully support LUKS2 due to grub.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I love Guix System, but it still misses a few quality-of-life improvements, such as better support for full disk encryption on install (entering two passwords!) and faster servers for South America. I kid you not, it takes me several hours to install a base system with MATE!&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Missing guides/how-to&#39;s and examples&lt;/b&gt;: we&#39;ve already seen that lack of specific how-to documentation was an issue, there were various comments to that:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Examples were insufficient, documentation expected much more in-depth linux knowledge. I would like to try again using it, as I love the concepts of it and I find that I resonate with the people representing Guix, and while I am on NixOS currently I find some social aspects of the Nix project concerning.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I switched back to NixOS due to more Community support&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Free Software as a constraint&lt;/b&gt;: Free Software and GNU as an organisation were commented on as a constraint to having a practical, usable system that met user&#39;s needs. Note that the next bullet is the reverse of this. Some example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;No ease of access to the tools I depend on without jumping through hoops. VSCode, Chrome, Discord, all required flatpaks. Gnome was extremely out of date and didn&#39;t work well with flatpaks making it even harder to use them. NVIDIA drivers unavailable. I would have to work entirely around Guix to make it usable for the real world. I can&#39;t just convince my friends to stop using Discord. I can&#39;t just convince my job to not depend on VSCode extensions. I have spent my time using VSCode Calva for my personal Clojure projects as well. I would have to spend a lot of time creating my own repository and writing guix packages for everything just to make it usable for myself. The GNU should be trying to meet users where they are to help liberate them, instead of creating an alternate reality where user needs are not addressed. This is a non-starter in the year 2024.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Exclusion of all references to non-free software (and no suggested step-by-step easy setup) made a full-featured initial installation untenable.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Not enough GNU&lt;/b&gt;: there were also some comments that the Guix project was not sufficiently supportive of GNU and/or Richard Stallman:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;I am disappointed that you veered off the course of freedom and added nonguix. Also that you hate on RMS.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I stopped using Guix after it ran a campaign against Richard Stallman. I don&#39;t plan to return back.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Language ecosystem issues&lt;/b&gt;: as tools like Docker, and languages like Go and Rust become more important, friction with them is more of an issue for users:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;my use case is to package tooling for other distros and use it to build docker images reproducibly for use in CI environments. it does not work for this use case very well. can&#39;t run guix daemon inside a container&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Lack of packages, stance on 100% reproducibility which makes packaging software with transitive dependencies hard, slow evaluator, obscure communication and collaboration mediums, patches take months to even get a review, cryptic error messages.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Nix is more modern or practical&lt;/b&gt;: many users seem to have explored Guix as an alternative to Nix. Example comments:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;I looked at Guix as an alternative to NixOS, and like its design a lot, but struggle with the 100% free software approach as I need some non-free software (for various reasons, hardware support, required by work, etc.). I&#39;m aware of the non-guix channel which mostly solves this, but having to compile most things myself got too cumbersome for me — I wish there was a more complete substitute server for that channel, or perhaps even a derivation based on guix with a less strict free-software policy more akin to those of NixOS or debian.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;There were too many packages missing or so out of date as to be de-facto missing. Using Guix was therefore much harder to use than Nix, where I had more packages (both Free and non-Free) and they were more up to date.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Old-fashioned communications&lt;/b&gt;: here were some comments about communications within the project being old-fashioned, both from general users and those that had tried to contribute:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;There seems to be shortage of packages and slow development. Email or only free software is definitely an hindrance to many people to daily drive guix. It has become hit and miss for me, so staying with nixos as its rich and I can followup on its development easily on git repo, discourse, matrix and all.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;The main two reasons are that I find the irc/email/emacs flow very hard to work with and I do not feel safe in the mailing lists.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Unavailable on Mac OSX&lt;/b&gt;: there were a few comments that in a professional context the fact that Guix isn&#39;t available for MacOS made it difficult to use:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Being unavailable on macOS. I have my nix home manager setup on both linux and macOS. Also the lack of a number of packages was a challenge. Like typst, bottom, hugo, tree, ruff, and sd for example. I am interested in becoming a maintainer but I want my setup to also work in macOS.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Incompatibility with hosting Linux distro&lt;/b&gt;: running Guix on top of another distribution was confusing, particularly for graphical programs:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;Guix home breaking Fedora. Troubles with binary applications due to the non-fsh nature.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Setting up the package manager &amp;amp; daemon was confusing. The command &quot;guix pull&quot; felt excessively slow. A lot of packages were not up to date. Breaking the FHS&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;Poor contributor experience&lt;/b&gt;: the patch process itself, slow reviews and inconsistency in response were all mentioned as issues. Examples:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;&quot;I still use Guix, but am a previous contributor. Important patches (for me) which I submitted were/are ignored, so I’ve stopped contributing.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;Perceived Inconsistent patch reviews. I did create couple of patches for guix, I do believe to contribute to project that I use. Sometimes I see patches getting stuck without feedback on them (not necessarily mine), the process to review patches is unclear to me and most likely to most people. Also guix lack automation to help everyone understand what is going on, if patches break rules, if this trivial change could be merged easily, etc. maybe it’s there for you, but I dont see that.&quot;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;&quot;I was passed over for commit access (even though I surpassed the 50 commit requirement) because I could only find 2 people to vouch for me, not 3. Then my patches stopped being merged, and some 2-year-pending patches I sent were closed without good reason. With the way Guix is run and how they treat contributors, it is an insulting/degrading process that I am no longer willing to put myself through.&quot;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;As we can see there are a wide variety of reasons why users stopped using Guix, many of them are similar to the challenges that many users find, but they&#39;re even more powerfully felt by these users. It&#39;s really useful to have these themes and comments captured, as contributors may be able to pick up some of these issues and work to resolve them!&lt;/p&gt;&lt;h3&gt;How important is Guix?&lt;/h3&gt;&lt;p&gt;Focusing back on all users, the next question was, (Q10) &lt;b&gt;How important is Guix in your computing environment?&lt;/b&gt;&lt;/p&gt;&lt;p&gt;There was a good range of answers:&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;caption&gt;&lt;b&gt;Table 9: Adoption challenges&lt;/b&gt;&lt;/caption&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Category&lt;/th&gt;&lt;th&gt;Count&lt;/th&gt;&lt;th&gt;Percentage&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Not using&lt;/td&gt;&lt;td&gt;97&lt;/td&gt;&lt;td&gt;10%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tinkering&lt;/td&gt;&lt;td&gt;156&lt;/td&gt;&lt;td&gt;17%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Slightly important&lt;/td&gt;&lt;td&gt;147&lt;/td&gt;&lt;td&gt;16%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Moderately important&lt;/td&gt;&lt;td&gt;194&lt;/td&gt;&lt;td&gt;21%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Important&lt;/td&gt;&lt;td&gt;133&lt;/td&gt;&lt;td&gt;14%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Essential&lt;/td&gt;&lt;td&gt;216&lt;/td&gt;&lt;td&gt;23%&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;A visual representation:&lt;/p&gt;&lt;figure&gt;&lt;img alt=&quot;2024 Guix user survey: GNU Guix&#39;s importance in users computing environments bar chart&quot; src=&quot;https://guix.gnu.org/static/blog/img/2024-guix-survey-q10.png&quot; style=&quot;width: 85%; height: 85%;&quot; /&gt;&lt;figcaption style=&quot;font-weight: bold;&quot;&gt;Figure 6: Guix&#39;s importance in users computing environments&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This is an interesting mixture which is probably reflective of many new users, and how Guix is used as a package manager on top of another distribution. Over a third of users consider it to be essential/important where it would be difficult to replace, while the bottom third are tinkering or exploring it.&lt;/p&gt;&lt;h3&gt;Some thoughts&lt;/h3&gt;&lt;p&gt;We&#39;ve looked at the first 10 questions of the survey which covered the composition of the Guix community, initial adoption and satisfaction, and challenges that led to users moving away from Guix. The first thing to say is how fantastic the response has been to the survey, it&#39;s amazing to have over 900 participants!&lt;/p&gt;&lt;p&gt;Some big take-aways:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Interest in declarative configuration, reproducibility along with Scheme, Guile and Lisp are bringing in lots of new user - around 50% have been using Guix for less than 2 years&lt;/li&gt;&lt;li&gt;Guix users are knowledgable Linux users who are comfortable being hands-on with their system&lt;/li&gt;&lt;li&gt;Around 50% of users adopt Guix as a GNU/Linux distribution, 36% as a hosted package manager on top of another Linux distro&lt;/li&gt;&lt;li&gt;The survey produced great feedback from current and previous users on areas where the project can improve&lt;/li&gt;&lt;li&gt;Around 67% of users were satisfied (or very satisfied) with their initial adoption experience&lt;/li&gt;&lt;li&gt;Guix is essential or important for over a third of users, part of their environment for the next third, and being explored by the last 27% of users&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The next post will cover more of the survey — which parts of Guix are most used, what sorts of deployments are being used, architectures and drivers details, and how users view contributing to the project financially.&lt;/p&gt; </description> 
	<pubDate>Thu, 16 Jan 2025 08:00:00 +0000</pubDate>

</item> 
<item>
	<title>freeipmi @ Savannah: FreeIPMI 1.6.15 released</title>
	<guid>https://savannah.gnu.org/news/?id=10714</guid>
	<link>https://savannah.gnu.org/news/?id=10714</link>
     <description>  &lt;p&gt;o In ipmi-config, fix incorrect output of
&lt;br /&gt;
  IPv6_Dynamic_Address_Source_Type.
&lt;br /&gt;
o In ipmi-oem, increase precision of Dell cumulative energy output.
&lt;br /&gt;
o Do not advertise options that are only available when special debugging is compiled into FreeIPMI.
&lt;br /&gt;
o Fix build errors with implicit-function-declaration.
&lt;br /&gt;
o libfreeipmi: remove unnecessary / duplicate parameter checks.
&lt;br /&gt;
o Fix gcc 14.x build failures.
&lt;br /&gt;
o Minor documentation updates.
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.15.tar.gz&quot;&gt;https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.15.tar.gz&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Thu, 16 Jan 2025 06:56:27 +0000</pubDate>

</item> 
<item>
	<title>FSF Events: Free Software Directory meeting on IRC: Friday, January 17, starting at 12:00 EST (17:00 UTC)</title>
	<guid>http://www.fsf.org/events/fsd-2025-01-17-irc</guid>
	<link>http://www.fsf.org/events/fsd-2025-01-17-irc</link>
     <description>  Join the FSF and friends on Friday, January 17 from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory. </description> 
	<pubDate>Fri, 10 Jan 2025 16:30:34 +0000</pubDate>

</item> 
<item>
	<title>FSF News: Anchoring the FSF in its values</title>
	<guid>http://www.fsf.org/news/anchoring-the-fsf-in-its-values</guid>
	<link>http://www.fsf.org/news/anchoring-the-fsf-in-its-values</link>
    
	<pubDate>Fri, 10 Jan 2025 15:25:00 +0000</pubDate>

</item> 
<item>
	<title>FSF Blogs: FSF associate members to decide the logo for the FSF&#39;s fortieth anniversary</title>
	<guid>http://www.fsf.org/blogs/community/fsf-anniversary-logo-contest-1</guid>
	<link>http://www.fsf.org/blogs/community/fsf-anniversary-logo-contest-1</link>
    
	<pubDate>Thu, 09 Jan 2025 13:40:00 +0000</pubDate>

</item> 
<item>
	<title>GNUnet News: libgnunetchat 0.5.2</title>
	<guid>https://gnunet.org/en/news/2025-01-libgnunetchat-0.5.2.html</guid>
	<link>https://gnunet.org/en/news/2025-01-libgnunetchat-0.5.2.html</link>
     <description>  &lt;article id=&quot;newspost-content&quot;&gt;
 
  &lt;h1&gt;
   libgnunetchat 0.5.2 released
  &lt;/h1&gt;
  &lt;p&gt;
   We are pleased to announce the release of libgnunetchat 0.5.2.
   &lt;br /&gt;
   This is a minor new release bringing compatibility with the major changes in latest GNUnet release 0.23.0. A few API updates and fixes are included. Additionally the messaging client applications using libgnunetchat got updated to stay compatible. This release will also require your GNUnet to be at least 0.23.0 because of that.
  &lt;/p&gt;
  &lt;h4&gt;
   Download links
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.5.2.tar.gz&quot;&gt;
     libgnunetchat-0.5.2.tar.gz
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/libgnunetchat-0.5.2.tar.gz.sig&quot;&gt;
     libgnunetchat-0.5.2.tar.gz.sig
    &lt;/a&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   The GPG key used to sign is:
   &lt;a href=&quot;https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A&quot;&gt;
    3D11063C10F98D14BD24D1470B0998EF86F59B6A
   &lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
   Note that due to mirror synchronization, not all links may be functional
early after the release. For direct access try
   &lt;a href=&quot;http://ftp.gnu.org/gnu/gnunet/&quot;&gt;
    http://ftp.gnu.org/gnu/gnunet/
   &lt;/a&gt;
  &lt;/p&gt;
  &lt;h4&gt;
   Noteworthy changes in 0.5.2
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    Implement iteration of tags by chat contact
   &lt;/li&gt;
   &lt;li&gt;
    Adjust types and API to improve consistency
   &lt;/li&gt;
   &lt;li&gt;
    Add more test cases and fix some older test cases
   &lt;/li&gt;
   &lt;li&gt;
    Adjust IV derivation for file encryption/decryption key
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   A detailed list of changes can be found in the
   &lt;a href=&quot;https://git.gnunet.org/libgnunetchat.git/tree/ChangeLog&quot;&gt;
    ChangeLog
   &lt;/a&gt;
   .
  &lt;/p&gt;
  &lt;h2&gt;
   Messenger-GTK 0.10.2
  &lt;/h2&gt;
  &lt;p&gt;
   This minor release will add optional notification sounds and contact filtering via tags. But mostly the release is intended to reflect changes in libgnunetchat 0.5.2.
  &lt;/p&gt;
  &lt;h4&gt;
   Download links
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.10.2.tar.gz&quot;&gt;
     messenger-gtk-0.10.2.tar.gz
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/messenger-gtk-0.10.2.tar.gz.sig&quot;&gt;
     messenger-gtk-0.10.2.tar.gz.sig
    &lt;/a&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   Keep in mind the application is still in development. So there may still be major bugs keeping you from getting a reliable connection. But if you encounter such issue, feel free to consult our bug tracker at
   &lt;a href=&quot;https://bugs.gnunet.org/&quot;&gt;
    bugs.gnunet.org
   &lt;/a&gt;
   .
  &lt;/p&gt;
  &lt;h2&gt;
   messenger-cli 0.3.1
  &lt;/h2&gt;
  &lt;p&gt;
   This release will apply necessary changes to fix build issues with libgnunetchat 0.5.2.
  &lt;/p&gt;
  &lt;ul&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/messenger-cli-0.3.1.tar.gz&quot;&gt;
     messenger-cli-0.3.1.tar.gz
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/messenger-cli-0.3.1.tar.gz.sig&quot;&gt;
     messenger-cli-0.3.1.tar.gz.sig
    &lt;/a&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
 
&lt;/article&gt; </description> 
	<pubDate>Tue, 07 Jan 2025 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>FSF Blogs: Psychological care should grant you freedom and protection</title>
	<guid>http://www.fsf.org/blogs/community/psychological-care-should-grant-you-freedom-and-protection</guid>
	<link>http://www.fsf.org/blogs/community/psychological-care-should-grant-you-freedom-and-protection</link>
     <description>  The rise of proprietary parenting apps promising to improve mental health is concerning. Psychological care should grant you all the freedoms and protection you deserve! </description> 
	<pubDate>Tue, 07 Jan 2025 21:50:00 +0000</pubDate>

</item> 
<item>
	<title>FSF Blogs: FSF associate members to decide the logo for the FSF&#39;s fortieth anniversary</title>
	<guid>http://www.fsf.org/blogs/community/fsf-anniversary-logo-contest-voting</guid>
	<link>http://www.fsf.org/blogs/community/fsf-anniversary-logo-contest-voting</link>
    
	<pubDate>Mon, 06 Jan 2025 21:25:00 +0000</pubDate>

</item> 
<item>
	<title>remotecontrol @ Savannah: Hackers Terrify US Intelligence After Infiltrating Guam</title>
	<guid>https://savannah.gnu.org/news/?id=10712</guid>
	<link>https://savannah.gnu.org/news/?id=10712</link>
     <description>  &lt;p&gt;&lt;a href=&quot;https://www.bloomberg.com/news/features/2025-01-03/chinese-cyber-hackers-terrify-us-intelligence-after-infiltrating-guam&quot;&gt;https://www.bloomberg.com/news/features/2025-01-03/chinese-cyber-hackers-terrify-us-intelligence-after-infiltrating-guam&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Fri, 03 Jan 2025 22:18:25 +0000</pubDate>

</item> 
<item>
	<title>FSF Blogs: FSD meeting recap 2025-01-03</title>
	<guid>http://www.fsf.org/blogs/licensing/fsd-meeting-recap-2025-01-03</guid>
	<link>http://www.fsf.org/blogs/licensing/fsd-meeting-recap-2025-01-03</link>
     <description>  Check out the important work our volunteers accomplished at today&#39;s Free Software Directory (FSD) IRC meeting. </description> 
	<pubDate>Fri, 03 Jan 2025 21:25:00 +0000</pubDate>

</item> 
<item>
	<title>FSF Blogs: Free Software Supporter -- Issue 201, January 2025</title>
	<guid>http://www.fsf.org/blogs/community/fss-issue-201-january-2025</guid>
	<link>http://www.fsf.org/blogs/community/fss-issue-201-january-2025</link>
     <description>  Welcome to the Free Software Supporter, the Free Software Foundation&#39;s (FSF) monthly news digest and action update -- being read by you and 231,379 other activists. </description> 
	<pubDate>Fri, 03 Jan 2025 18:10:00 +0000</pubDate>

</item> 
<item>
	<title>mailutils @ Savannah: GNU Mailutils Version 3.18</title>
	<guid>https://savannah.gnu.org/news/?id=10711</guid>
	<link>https://savannah.gnu.org/news/?id=10711</link>
     <description>  &lt;p&gt;Version 3.18 of GNU Mailutils is &lt;a href=&quot;https://ftp.gnu.org/gnu/mailutils/mailutils-3.18.tar.gz&quot;&gt;available for download&lt;/a&gt;.
&lt;br /&gt;
A short summary of changes follows.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;New debugging shortcut: all&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
Using &lt;b&gt;all&lt;/b&gt; in mailutils debug level specification enables all debugging categories.  Syntactically, &lt;i&gt;all&lt;/i&gt; can be used wherever an actual category name is allowed, thus, e.g., &lt;b&gt;all.!=prot&lt;/b&gt; enables all levels except &lt;b&gt;prot&lt;/b&gt; in all debugging categories.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;mail: fix and document interaction between mailutils configuration files and mail command files.&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
In particular, mail variables that correspond to some mailutils configuration settings, now correctly reflect their value.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Bugfixes&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minor fix in handling of the &lt;b&gt;EHLO&lt;/b&gt; command in smtp client.  
&lt;/li&gt;
&lt;li&gt;Improve docs.
&lt;/li&gt;
&lt;li&gt;Minor fix in &lt;b&gt;mhn&lt;/b&gt; and related tests.
&lt;/li&gt;
&lt;li&gt;mail utility: use the &lt;b&gt;mailer&lt;/b&gt; configuration capability.
&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Fri, 03 Jan 2025 16:38:15 +0000</pubDate>

</item> 
<item>
	<title>FSF Events: Free Software Directory meeting on IRC: Friday, January 10, starting at 12:00 EST (17:00 UTC)</title>
	<guid>http://www.fsf.org/events/fsd-2025-01-10-irc</guid>
	<link>http://www.fsf.org/events/fsd-2025-01-10-irc</link>
     <description>  Join the FSF and friends on Friday, January 10 from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory. </description> 
	<pubDate>Thu, 02 Jan 2025 17:19:49 +0000</pubDate>

</item> 
<item>
	<title>FSF Events: Free Software Directory meeting on IRC: Friday, January 3, starting at 12:00 EST (17:00 UTC)</title>
	<guid>http://www.fsf.org/events/fsd-2025-01-03-irc</guid>
	<link>http://www.fsf.org/events/fsd-2025-01-03-irc</link>
     <description>  Join the FSF and friends on Friday, January 3 from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory. </description> 
	<pubDate>Thu, 02 Jan 2025 17:16:27 +0000</pubDate>

</item> 
<item>
	<title>www-zh-cn @ Savannah: Summary 2024</title>
	<guid>https://savannah.gnu.org/news/?id=10710</guid>
	<link>https://savannah.gnu.org/news/?id=10710</link>
     <description>  &lt;p&gt;Dear GNU CTT:
&lt;br /&gt;

&lt;br /&gt;
Thank you for your contribution and effort.
&lt;br /&gt;

&lt;br /&gt;
I am very proud of the performance in 2024 for this team.
&lt;br /&gt;

&lt;br /&gt;
Here is summary from GNU translation team for 2024.
&lt;br /&gt;

&lt;br /&gt;
Dear GNU translators!
&lt;br /&gt;

&lt;br /&gt;
2024 repeated the general traits of 2023: most active teams kept doing
&lt;br /&gt;
a good job updating the translations, and a few new translations were
&lt;br /&gt;
made.  Currently, the total amount of translations is over 3350.
&lt;br /&gt;

&lt;br /&gt;
      General Statistics
&lt;br /&gt;

&lt;br /&gt;
Most new translations were made by the Chinese (zh-cn) team this year;
&lt;br /&gt;
then the Polish and French teams follow.  The Turkish team, although
&lt;br /&gt;
it published no new translations this year, made a notable progress
&lt;br /&gt;
in terms of keeping its translation up-to-date.
&lt;br /&gt;

&lt;br /&gt;
The table below shows the number and size of newly translated
&lt;br /&gt;
articles in important directories and typical number of outdated
&lt;br /&gt;
GNUNified translations throughout the year.
&lt;br /&gt;

&lt;br /&gt;
+-team--+-----new-----+--outdated--+
&lt;br /&gt;
|  de   | 1 (9.7Ki) * |  124 (61%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  es   | 1 (  5.2Ki) | 0.5 (0.2%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  fr   | 4 ( 42.0Ki) | 0.5 (0.1%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  ja   | 2 (  9.9Ki) |  48 ( 34%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  pl   | 6 ( 85.4Ki) |  54 ( 37%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  ru   | 2 ( 20.7Ki) | 0.3 (0.1%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  sq   | 2 ( 17.1Ki) | 2.3 (2.9%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
|  tr   | 0 (  0.0Ki) | 0.1 (0.1%) |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
| zh-cn | 23 ( 543Ki) |     0 &amp;amp;    |
&lt;br /&gt;
+-------+-------------+------------+
&lt;br /&gt;
+-------+-------------+
&lt;br /&gt;
| total | 39 ( 723Ki) |
&lt;br /&gt;
+-------+-------------+
&lt;br /&gt;

&lt;br /&gt;
I wish you all a freer, healthier, and more peaceful 2025.
&lt;br /&gt;

&lt;br /&gt;
Happy hacking
&lt;br /&gt;
wxie&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jan 2025 01:52:27 +0000</pubDate>

</item> 
<item>
	<title>Jose E. Marchesi: Algol 68 Front-End for GCC</title>
	<guid>http://jemarch.net</guid>
	<link>http://jemarch.net</link>
     <description>  &lt;p&gt;
          Just posted a WIP series for an Algol 68 front-end for
          GCC. It is about time to have support for the best
          programming language ever designed in the best optimizing
          compiler ever made ;)
        &lt;/p&gt;
        &lt;p&gt;
          Thanks to Marcel van der Veer for his awesome parser, that I
          took the liberty to borrow from Algol 68 Genie.  Free
          Software for the win!
        &lt;/p&gt;
        &lt;p&gt;
          &lt;a href=&quot;https://inbox.sourceware.org/gcc-patches/20250101020952.18404-1-jose.marchesi@oracle.com&quot;&gt;WIP patch series in gcc-patches...&lt;/a&gt;
        &lt;/p&gt; </description> 
	<pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>

</item> 
<item>
	<title>gcide @ Savannah: GCIDE version 0.54</title>
	<guid>https://savannah.gnu.org/news/?id=10709</guid>
	<link>https://savannah.gnu.org/news/?id=10709</link>
     <description>  &lt;p&gt;Version 0.54 of GNU Collaborative International Dictionary of Englis is &lt;a href=&quot;https://ftp.gnu.org/gnu/gcide/gcide-0.54.tar.gz&quot;&gt;available for download&lt;/a&gt;. 
&lt;br /&gt;

&lt;br /&gt;
The dictionary corpus underwent a thorough spell-checking.  A number of articles has been fixed or upgraded.  All files has been reformatted to limit physical line length to 72 characters.
&lt;br /&gt;

&lt;br /&gt;
If you are using &lt;a href=&quot;https://savannah.gnu.org/projects/dico/&quot;&gt;GNU dico&lt;/a&gt; to consult the dictionary, please upgrade to &lt;a href=&quot;https://savannah.gnu.org/news/?id=10708&quot;&gt;version 2.12&lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Tue, 31 Dec 2024 12:23:54 +0000</pubDate>

</item> 
<item>
	<title>dico @ Savannah: GNU dico version 2.12</title>
	<guid>https://savannah.gnu.org/news/?id=10708</guid>
	<link>https://savannah.gnu.org/news/?id=10708</link>
     <description>  &lt;p&gt;GNU dico version 2.12 is &lt;a href=&quot;https://ftp.gnu.org/gnu/dico/dico-2.12.tar.gz&quot;&gt;available for download&lt;/a&gt;.
&lt;br /&gt;

&lt;br /&gt;
This versions provides important improvements in the &lt;b&gt;gcide&lt;/b&gt; module:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;idxgcide skips duplicated headwords.
&lt;/li&gt;
&lt;li&gt;Fixed some gcide entities, introduced missing ones.
&lt;/li&gt;
&lt;li&gt;Fixed Ancient Greek transliteration.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;New option: &quot;watch&quot;&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
When given this option, the module will watch for modifications in the dictionary corpus files and rebuild the index file when necessary.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;HTML output&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
HTML output is enabled by the &quot;html&quot; module option.  It is produced only after &quot;OPTION MIME&quot; command command.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;Input conversions&lt;/h3&gt;
&lt;p&gt;
&lt;br /&gt;
The argument to &lt;b&gt;DEFINE&lt;/b&gt; or &lt;b&gt;MATCH&lt;/b&gt; command can optionally be modified before being used in actual search.  This allows, for example, to input search terms in transliteration instead of in the actual script.
&lt;br /&gt;

&lt;br /&gt;
Conversions are implemented by loadable modules and are associated with individual databases.
&lt;br /&gt;

&lt;br /&gt;
This version is shipped with the new module &lt;b&gt;greek_kbd&lt;/b&gt;, which implements Greek transliteration.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;Dicoweb&lt;/h3&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Switch to Python 3.11+ with type hints
&lt;/li&gt;
&lt;li&gt;Upgrade Django to version 4.2
&lt;/li&gt;
&lt;li&gt;Improve desktop and mobile views using HTML5
&lt;/li&gt;
&lt;li&gt;Implement a dark mode
&lt;/li&gt;
&lt;li&gt;Use Poetry and pyproject.toml
&lt;/li&gt;
&lt;li&gt;Integrate Pylint and Mypy for development
&lt;/li&gt;
&lt;li&gt;Implement various fixes and improvements
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;pcre module now requires libpcre2&lt;/h3&gt;
&lt;p&gt;
&lt;br /&gt;
Support for obsolescent libpcre has been withdrawn.&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Tue, 31 Dec 2024 10:14:10 +0000</pubDate>

</item> 
<item>
	<title>GNU Artanis: Demystify GNU Artanis service deployment in product environment</title>
	<guid>https://artanis.dev/blog/demystify-artanis-deployment-2.html</guid>
	<link>https://artanis.dev/blog/demystify-artanis-deployment-2.html</link>
    
	<pubDate>Mon, 30 Dec 2024 06:51:47 +0000</pubDate>

</item> 
<item>
	<title>GNU Guix: Adding a fully-bootstrapped Mono</title>
	<guid>https://guix.gnu.org/blog/2024/adding-a-fully-bootstrapped-mono//</guid>
	<link>https://guix.gnu.org/blog/2024/adding-a-fully-bootstrapped-mono//</link>
     <description>  &lt;p&gt;We used to have a Mono package.  It was introduced on August 8 2016 by commit
763b3d50b6249b43fceda51445bbeb1f5f5fd7d0, at Mono version 4.4.1.0, but it was
later &lt;a href=&quot;https://issues.guix.gnu.org/55026&quot;&gt;discovered&lt;/a&gt; in April of 2022 that the
release tarball that it was built from included prebuilt binaries.  Further
research revealed that these binaries were not optional.  Due to this, a
decision was made to remove the Mono package, carried out on September 1, 2022.&lt;/p&gt;&lt;p&gt;We now once again have a Mono package, due to a &lt;a href=&quot;https://issues.guix.gnu.org/74609&quot;&gt;patch
series&lt;/a&gt; I submitted on November 29, which
after some revisions was committed on December 22.  This patch series introduced
a full, 17-mono-package sequence that takes us from a mono-1.2.6 built fully
from source to mono-6.12.0 built fully from source, using only packages that
already have full bootstrap paths.  I make no promise that this is the shortest
or most optimal path, but it exists and I have verified it works.&lt;/p&gt;&lt;p&gt;As I&#39;ve spent what is probably an unreasonable amount of time working toward
this, I thought I&#39;d share some of my thoughts, experiences, and commentary.
Sorry in advance if it gets a bit rambly or lecture-ish.&lt;/p&gt;&lt;h1&gt;Prologue&lt;/h1&gt;&lt;p&gt;I started down this road because someone I&#39;m working on a project with decided
to depend on a C# package that requires C# 12.0 features, and my personal Mono
package based on the tarball releases (which include bootstrap binaries) only
went up to C# 7.0.  This meant that the C# package in question de facto required
strictly Microsoft&#39;s (er, I mean, &quot;the .NET foundation&quot;&#39;s) .NET implementation —
hereafter referred to as &quot;dotnet&quot; — and a very recent version no less.  The
bootstrapping story with dotnet is &lt;a href=&quot;https://github.com/dotnet/source-build/issues/1930&quot;&gt;very
bad&lt;/a&gt;; even beginning to
untangle it would probably require a relatively modern C# compiler, and
something that at least sort of understands MSBuild.  And there&#39;s not much point
to &quot;bootstrapping&quot; dotnet from something that isn&#39;t bootstrapped itself.  So I
figured I may as well start with Mono.&lt;/p&gt;&lt;h1&gt;History&lt;/h1&gt;&lt;p&gt;While Mono is today probably the most well-known alternative to Microsoft&#39;s .NET
offerings, it is not the only one.  Indeed, in the early 2000s there were at
least 2 competing free software implementations: Mono, and DotGNU&#39;s Portable.NET
(abbreviated pnet).  They differed in goals, licenses, and methods: Portable.NET
was a GNU project concerned with, among other things, limiting the ability of
Microsoft to impose vendor lock-in via its proprietary .NET implementation and
software patents.  As a GNU project, it used the GPL for its runtime and
compiler, and the GPL with a linking exception for its standard library,
pnetlib.  Mono, on the other hand, used a mix of many copyleft and permissive
licenses: X11 for the standard library, GPL for the compiler (later
dual-licensed to add an X11 option), and LGPL for the runtime, with GPL and LGPL
code also offered &quot;under commercial terms for when the GPL and the LGPL are not
suitable&quot;.  In 2016 after its acquisition by Microsoft, the runtime was
relicensed to use the Expat (MIT) license.&lt;/p&gt;&lt;p&gt;But perhaps most importantly to us, while Mono opted to write its C# compiler,
mcs, in... C#, Portable.NET&#39;s runtime and C# compiler were both written in C.
Portable.NET along with the entire DotGNU project (except for LibJIT) was
decommissioned in 2012, but the source is still available, and it still works
fine (with a few modifications for compatibility with newer versions of its
dependencies).  In September of 2022, Adam Faiz &lt;a href=&quot;https://issues.guix.gnu.org/57625&quot;&gt;submitted
patches&lt;/a&gt; to package pnet and pnetlib, along
with one of their dependencies named treecc.  These packages were based on the
last release of Portable.NET, version 0.8.0, released in 2007.  I initially used
these packages as the basis for my bootstrap efforts, and even managed to get
mono-1.2.6 built using them, but later discovered that using a more recent
version from git made it much easier.  For example, while pnet-0.8.0 can do
pointer arithmetic inside unsafe code blocks, it doesn&#39;t support the &lt;code&gt;+=&lt;/code&gt; or
&lt;code&gt;-=&lt;/code&gt; operators specifically, which requires lots of patching (after all, who
would use &lt;code&gt;x = x + y&lt;/code&gt; when you could do &lt;code&gt;x += y&lt;/code&gt;?).  There are many other
similar improvements in the git version, so for this patch series I&#39;ve decided
to go with pnet-git.&lt;/p&gt;&lt;h1&gt;The start&lt;/h1&gt;&lt;p&gt;After building mono-1.2.6, I tried a few later versions, and the third or fourth
one would always fail with errors about missing methods.  It turns out that the
reason for this is that, contrary to what their marketing suggests, C# and Java
are not &quot;write once, run everywhere&quot;.  This is because their compilers rely on
the details of the libraries that the program will be run with at compile-time.
This is used, for example, to do overload resolution.  Suppose, for example,
that a certain implementation of the &lt;code&gt;==&lt;/code&gt; operator is present in version 1.0 of
a library, and then in version 2.0 of a library a more specific implementation
is introduced.  Now code that is compiled against version 2.0 may instead
automatically reference the more-specific implementation, as is in accordance
with the rules of C#.  But when it is run with version 1.0, it will fail because
that implementation doesn&#39;t exist.  In my case, for some reason the initial mcs
and core libraries being built to compile the rest of Mono were being compiled
against a 2.0 library and then run with a 1.0 library.  It turns out that this
was because mcs uses mono&#39;s code for producing assemblies (.NET dlls and exes),
and mono decides which version to put in an assembly it writes based on &quot;which
runtime version&quot; is being used, and that version is decided at startup based
on... the version that was put in the assembly it is running.  So for example,
mono-1.9.1 would produce 2.0 assemblies because mono-1.2.6 produced 2.0
assemblies because pnet produced 2.0 assemblies.  So I modified Mono&#39;s runtime
in mono-1.9.1 to allow for this version to be overridden via environment
variable, and set it to &lt;code&gt;v1.1.4322&lt;/code&gt;, and things went a lot more smoothly after
that.&lt;/p&gt;&lt;p&gt;From there on it was mostly the usual trial-and-error process of identifying
where things had bitrotted.  I made sure to unvendor libgc wherever possible,
though eventually by mono-4.9.0 they explicitly dropped support in their
configure script for using any libgc other than what was bundled, so at that
point I switched to using their homebrewed sgen garbage collector.&lt;/p&gt;&lt;h1&gt;A concerning development&lt;/h1&gt;&lt;p&gt;Once I got to mono-2.11.4, though, things took a turn for the interesting: Mono
started using git submodules, and the &lt;code&gt;(recursive? #t)&lt;/code&gt; clones were all failing.
It turns out that this is because their submodules reference github.com using
the &lt;code&gt;git://&lt;/code&gt; protocol.&lt;/p&gt;&lt;p&gt;This is notable for a few reasons.&lt;/p&gt;&lt;p&gt;First, GitHub dropped support for the &lt;code&gt;git://&lt;/code&gt; protocol in 2021, so
recursive clones won&#39;t work now.  This means I have to explicitly list
out every submodule, its commit, and its sha256 hash, for every Mono
version until they switched to using http or https.  mono-2.11.4 has
only 4 submodules, but that doesn&#39;t last for long: by mono-4.9.0 it has
14 submodules.  A significant portion of these patches is just listing
these submodules and their hashes.  It&#39;s a bit annoying.&lt;/p&gt;&lt;p&gt;The more concerning reason, though, is &lt;em&gt;why&lt;/em&gt; GitHub dropped support for the
&lt;code&gt;git://&lt;/code&gt; protocol: it is unencrypted and unauthenticated.  This is mitigated
somewhat by the use of sha-1 hashes to identify commits in the referenced
submodules, putting a significant computational burden on anyone who would try
to alter what was fetched corresponding to a given submodule.  Significantly
more risky, though, is the process of &lt;em&gt;updating&lt;/em&gt; submodules that use &lt;code&gt;git://&lt;/code&gt;
URLs.  It is quite unlikely that a developer is going to independently clone one
of the submodules over https, navigate to a desirable commit, copy the sha-1
hash, and manually update the submodule reference&#39;s commit.  They&#39;re far more
likely to run &lt;code&gt;cd submodule; git pull; cd ..; git add submodule; git commit ...&lt;/code&gt;
or an equivalent.&lt;/p&gt;&lt;p&gt;Of course, any changes a network man-in-the-middle might try to make here would
still be reflected in the commit history, so even if a developer did that, they
or any of their fellow committers could spot anything strange or malicious and
point it out.  Also, the changes couldn&#39;t be propagated to others trying to pull
them who weren&#39;t on a network path containing the MITM because the
potentially-malicious commit wouldn&#39;t be present in the real submodule&#39;s
repository.  So the transparency of git clearly showing changes to text files,
combined with the fact that surely no git hosting platform would just allow
arbitrary entities to make whatever commits they want accessible under any
arbitrary repository URL, rather mitigate this security issue.&lt;/p&gt;&lt;p&gt;This usage of &lt;code&gt;git://&lt;/code&gt; URLs lasted all the way until September 28, 2021, when
GitHub&#39;s removal of support for it forced the developers to change them to
https.&lt;/p&gt;&lt;h1&gt;Meanwhile, in reality&lt;/h1&gt;&lt;p&gt;On November 28, 2016, Mono added a submodule named roslyn-binaries.
Unsurprisingly, it included binary blobs for Microsoft&#39;s Roslyn compiler (which
I believe had been open-sourced shortly prior).  From here on, Mono&#39;s build
system would default to using these binaries for building on little-endian
systems (though another compiler could be specified with the &lt;code&gt;--with-csc&lt;/code&gt;
configure flag).  I happen to know that it is extremely unlikely that many Mono
developers used this configure flag.  I know this because the 5.0 series is an
absolute pain in the neck to build from source, because they consistently depend
on new C# features &lt;em&gt;before&lt;/em&gt; they implement them.&lt;/p&gt;&lt;p&gt;To go on a brief tangent: does anyone remember back when youtube-dl was
temporarily taken down from GitHub due to the RIAA&#39;s DMCA request?  Many were
unhappy about that.  One such unhappy person made news when they &lt;a href=&quot;https://gist.github.com/lrvick/02088ee5466ca51116bdaf1e709ddd7c&quot;&gt;made the full
contents of youtube-dl&#39;s repository available to access through the DMCA request
repository&lt;/a&gt;.
It turns out that there are many actions that one can take on GitHub that will
make arbitrary commits available under arbitrary repository URLs.&lt;/p&gt;&lt;p&gt;So, in reality, for the span of time from November 28, 2016 to
September 28, 2021, anybody sitting on the network path between GitHub
and any Mono developer updating the roslyn-binaries submodule could
decide on any arbitrary new commit to be used.  Of course, merely
inspecting the diff for the commit will reveal nothing of use, because
the contents are binary blobs.  And not only are these blobs those of a
compiler, they are the blobs of a compiler that is sure to be used to
compile another compiler, which will then be redistributed as an opaque,
non-bootstrappable binary blob to be used for compiling other compilers.&lt;/p&gt;&lt;p&gt;You would be hard-pressed to find a more fertile breeding ground for &lt;a href=&quot;https://users.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf&quot;&gt;Ken
Thompson / Trusting Trust
attacks&lt;/a&gt;.
If every agent of the NSA (and whatever other agencies, including those of other
countries, had access to the appropriate network traffic) somehow failed to
capitalize on 6 years of opportunity to compromise an entire software ecosystem
using only a basic MITM of unencrypted traffic, they deserve to be sacked.
Whether such an attack actually occurred or not, this is a case study in
carelessness and why bootstrappability is so important; discovering all this
made me quite worried about having used a Mono version built from blobs
previously, and has convinced me that, as time-wasting and tedious as this
project has been, it is nevertheless probably an important one.&lt;/p&gt;&lt;h1&gt;Another note on roslyn-binaries&lt;/h1&gt;&lt;p&gt;If you&#39;re going to write a self-hosting compiler, the least you can do is keep
it self-hosting.  Deciding to write a self-hosting compiler is a valid choice,
of course, with its own merits and demerits, but there is something bitterly
poetic about Mono starting out requiring specifically Microsoft&#39;s C# compiler in
order to build (Mono did its initial bootstrapping using Microsoft&#39;s proprietary
csc), achieving independence through self-hosting, being acquired by Microsoft,
and thereafter coming crawling back to Microsoft&#39;s C# compiler once more before
eventually dying.&lt;/p&gt;&lt;p&gt;The funny thing is that it&#39;s not even necessary.  The dependencies on new C#
features are all in Mono&#39;s standard library (which increasingly borrowed code
from Microsoft&#39;s corefx library), not in Mono&#39;s compiler.&lt;/p&gt;&lt;h1&gt;More binary submodules?&lt;/h1&gt;&lt;p&gt;Even before roslyn-binaries, there was binary-reference-assemblies, which
contained prebuilt &quot;reference&quot; blobs for the various versions of the standard
libraries.  These exist, I assume, precisely because of the library
incompatibility problems regarding overloading that I mentioned earlier.  While
later versions of Mono included sources and a build system for producing these
reference binaries, mono-4.9.0 and earlier did not.  Mono&#39;s build system still
demanded &lt;em&gt;something&lt;/em&gt; to install, though, so I told it to use the real standard
library of the input Mono version.  When I did get to a Mono version that at
least claimed to support regenerating the reference binaries, I found that it
didn&#39;t work with mcs due to differences in which libraries had to be referenced,
so I had to patch it to add a bunch of references determined through trial and
error.&lt;/p&gt;&lt;p&gt;The xunit-binaries submodule was also added sometime before mono-5.1.0.  This
dependency makes it impossible to run the full test suite without binary blobs.
Presumably for this reason, Debian elects to only run tests within the
&lt;code&gt;mono/mini/&lt;/code&gt; and &lt;code&gt;mono/tests/&lt;/code&gt; subdirectories.  For my part, I&#39;ve disabled all
tests except for those of mono-6.12.0, the final version, limited to the two
aforementioned subdirectories.  This is because it would take extra time for the
builds, because several of the tests depend on binary blobs bundled into the
Mono repository itself (which my thorough cleaning of all dlls and exes from the
sources removes), because a large chunk of the tests depend on binary blobs in
xunit-binaries in later versions, and because &quot;expect some test failures&quot; is
part of the Mono documentation and I don&#39;t have the time to figure out for the
Mono developers every reason why each of 17 versions of their test suite is
broken.&lt;/p&gt;&lt;h1&gt;The long march through the 5.0s&lt;/h1&gt;&lt;p&gt;The 5.0 series was when Microsoft acquired Mono, and it shows.  You&#39;ll notice I
needed to introduce &lt;code&gt;pre-&lt;/code&gt; packages for various versions because in several
cases a tagged release could not build the following tagged release.  For that
matter, they couldn&#39;t build the &lt;code&gt;pre-&lt;/code&gt; package either, but it at least took
fewer patches to get them working.  The reason for this is that Mono added a
dependency on Microsoft&#39;s corefx library source code, and it usually started
using C# features well before mcs was able to compile them.  Because of this,
despite taking 8 versions to get from 1.2.6 to 4.9.0, it took another 8 versions
to get through the 5.0 series, and 5 of them required nontrivial patching to
massage the source into a form compilable by mcs.&lt;/p&gt;&lt;h1&gt;The final stretch&lt;/h1&gt;&lt;p&gt;Eventually I realized that the dependencies on new features were all coming from
corefx, not from Mono&#39;s compiler.  Consequently, the only reason for this
particular bootstrap-hostile ordering of builds is that it happened to be the
order the Mono devs committed things.  So I just cherry-picked every commit I
could find touching &lt;code&gt;mcs/mcs&lt;/code&gt; (magit was quite useful for this) and applied it
to 5.10.0 to produce what is essentially the 6.12.0 compiler, then used it to
jump straight to building 6.12.0.&lt;/p&gt;&lt;p&gt;Use of this technique earlier on in the bootstrap process may be of interest to
anyone looking to shorten the chain of packages.&lt;/p&gt;&lt;h1&gt;The finishing touches&lt;/h1&gt;&lt;p&gt;My initial goal was to package dotnet, and I had tried to progress toward that
from mono-4.9.0 for a period, but with no success.  During that time, though, I
did encounter a bug in Mono&#39;s xbuild condition parser, which I wrote a patch
for, and included in mono-6.12.0.&lt;/p&gt;&lt;p&gt;I also discovered that xbuild would wrongly complain about missing references
even when the proper assemblies were in &lt;code&gt;MONO_PATH&lt;/code&gt; or &lt;code&gt;MONO_GAC_PREFIX&lt;/code&gt;,
because xbuild would erroneously only consider the path
&lt;code&gt;/gnu/store/...mono-6.12.0/lib/mono/gac&lt;/code&gt; when looking for global assembly
caches, completely ignoring &lt;code&gt;MONO_GAC_PREFIX&lt;/code&gt;.  So I wrote a patch to fix that,
and included it in mono-6.12.0.&lt;/p&gt;&lt;p&gt;Having witnessed how much nicer it is to package things that use rpath / runpath
than things that use environment variables (like python) and therefore require
constant wrapping of executables and use of propagated-inputs, I devised a patch
that would extend Mono&#39;s per-assembly config files to support a &lt;code&gt;&amp;lt;runpath&amp;gt;&lt;/code&gt;
element.  For example, if you have a file &lt;code&gt;/tmp/dir2/test2.exe&lt;/code&gt;, and there is
also a file &lt;code&gt;/tmp/dir2/test2.exe.config&lt;/code&gt;, and its contents are&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
  &amp;lt;runpath path=&quot;/tmp/dir1&quot;/&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and it references &lt;code&gt;test1.dll&lt;/code&gt;, it will first look for it at
&lt;code&gt;/tmp/dir1/test1.dll&lt;/code&gt;.  Note that, of course, &lt;code&gt;test1.dll&lt;/code&gt; still needs to be
accessible to the compiler at compile-time through &lt;code&gt;MONO_PATH&lt;/code&gt; or an
explicitly-specified path passed on the mcs command line.&lt;/p&gt;&lt;p&gt;It is my hope that this feature will be of use to anybody interested in
developing a build system.&lt;/p&gt;&lt;h1&gt;Future work&lt;/h1&gt;&lt;p&gt;Mono had several difficult points in bootstrapping and packaging, but at the end
of the day it still met the basic description of a software package:
well-defined environment-supplied inputs and sources, a user-supplied install
prefix, and files installed under that prefix.&lt;/p&gt;&lt;p&gt;The dotnet world is an entirely different beast.  The first step of most build
systems I have encountered from that realm is downloading an entire toolchain,
among other dependencies, as a binary blob.  They heavily depend on the exact
packages they specify being available exactly where they say to install them.
There is no &quot;install&quot;, there are no &quot;install directories&quot; to my knowledge.  A
build that doesn&#39;t contact nuget.org is an aberration.  I am at a loss how to
build these things, much less package them.  I badly need help.&lt;/p&gt;&lt;p&gt;There are also some portability issues with the current bootstrap path.  While
Portable.NET can fall back to an interpreter written in C where LibJIT isn&#39;t
supported, old versions of Mono have no such capability.  Strictly speaking,
there is some bitrotted code for an interpreter that used to work, but has
stopped working by mono-1.2.6.  It was left unmaintained until it was eventually
removed in 2014, only to be &lt;a href=&quot;https://www.mono-project.com/news/2017/11/13/mono-interpreter/&quot;&gt;revived in
2017&lt;/a&gt;.  This
poses a dilemma for anybody wanting to bootstrap Mono on a platform that wasn&#39;t
supported by mono-1.2.6&#39;s JIT compiler.  There are a number of possible ways to
try resolving this, ranging from backporting the new interpreter, to fixing up
the old one for every version prior to the new interpreter, to forward-porting
the old compiler and class libraries to the new interpreter, etc.&lt;/p&gt;&lt;p&gt;The most interesting option, though, in my opinion, would be to port mcs to
Portable.NET.  This would achieve the intended portability, while also allowing
individual builds to be much faster since we&#39;re only building mcs, not the
runtime and class library each time.  It would also allow us to make much bigger
version jumps, since, as we discovered earlier, many of the new C# feature
dependencies in Mono come from the class library rather than the compiler.  Such
a shortened bootstrap could also make the bootstrap path more appealing for
other distributions to use instead of binaries.&lt;/p&gt;&lt;h1&gt;Closing thoughts&lt;/h1&gt;&lt;blockquote&gt;&lt;p&gt;&quot;You wish now that our places had been exchanged.  That I had died, and DotGNU
had lived?&quot;&lt;/p&gt;&lt;p&gt;&quot;... Yes.  I wish that.&quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Maintenance of Mono was recently transferred over to WineHQ.  With that
announcement this statement was placed at https://www.mono-project.com:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&quot;We want to recognize that the Mono Project was the first .NET implementation
on Android, iOS, Linux, and other operating systems. The Mono Project was a
trailblazer for the .NET platform across many operating systems. It helped
make cross-platform .NET a reality and enabled .NET in many new places and we
appreciate the work of those who came before us.&quot;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I would like to clarify that, &lt;a href=&quot;https://www.mono-project.com/archived/mailpostearlystory/&quot;&gt;according to Miguel de Icaza
himself&lt;/a&gt;, DotGNU
&quot;started working on the system about the same time&quot;.  According to &lt;a href=&quot;https://lwn.net/2002/0103/a/dotgnu.php3&quot;&gt;this DotGNU
newsletter&lt;/a&gt;, Portable.NET began &quot;in
January 2001&quot;.  While it&#39;s unclear exactly when Portable.NET reached various
milestones, and the significance of the various milestones varies somewhat (for
example, Mono probably does not care that Portable.NET also includes a Java and
C compiler), I think that there is cause to dispute the claim that Mono was &quot;the
first&quot; .NET implementation on Linux.&lt;/p&gt;&lt;p&gt;On a related note, if we haven&#39;t looked at the possibility of using Portable.NET
in the Java bootstrap process, it may be worth visiting at some point.&lt;/p&gt;&lt;p&gt;Thank you to the DotGNU project, for the .NET implementation that made this
bootstrap possible, Adam Faiz, for the initial packaging of it that let me jump
straight in, the Mono project, for... Mono, and you, for your time.&lt;/p&gt; </description> 
	<pubDate>Sun, 29 Dec 2024 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>GNU Artanis: Demystify GNU Artanis service deployment in product environment</title>
	<guid>https://artanis.dev/blog/demystify-artanis-deployment.html</guid>
	<link>https://artanis.dev/blog/demystify-artanis-deployment.html</link>
    
	<pubDate>Sun, 29 Dec 2024 14:10:56 +0000</pubDate>

</item> 
<item>
	<title>GNU Artanis: Build Artanis-0.6 on Ubuntu-24.04</title>
	<guid>https://artanis.dev/blog/build-0.6-ubuntu.html</guid>
	<link>https://artanis.dev/blog/build-0.6-ubuntu.html</link>
    
	<pubDate>Sat, 28 Dec 2024 11:48:57 +0000</pubDate>

</item> 
<item>
	<title>GNU Artanis: MVC in GNU Artanis</title>
	<guid>https://artanis.dev/blog/mvc-in-artanis.html</guid>
	<link>https://artanis.dev/blog/mvc-in-artanis.html</link>
    
	<pubDate>Fri, 27 Dec 2024 17:49:16 +0000</pubDate>

</item> 
<item>
	<title>FSF Events: Free Software Directory meeting on IRC: Friday, December 27, starting at 12:00 EST (17:00 UTC)</title>
	<guid>http://www.fsf.org/events/fsd-2024-12-27-irc</guid>
	<link>http://www.fsf.org/events/fsd-2024-12-27-irc</link>
     <description>  Join the FSF and friends on Friday, December 27 from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory. </description> 
	<pubDate>Tue, 24 Dec 2024 20:33:55 +0000</pubDate>

</item> 
<item>
	<title>parallel @ Savannah: GNU Parallel 20241222 (&#39;Bashar&#39;) released [stable]</title>
	<guid>https://savannah.gnu.org/news/?id=10706</guid>
	<link>https://savannah.gnu.org/news/?id=10706</link>
     <description>  &lt;p&gt;GNU Parallel 20241222 (&#39;Bashar&#39;) has been released. It is available for download at: lbry://@GnuParallel:4
&lt;br /&gt;

&lt;br /&gt;
Quote of the month:
&lt;br /&gt;

&lt;br /&gt;
  &quot;Do this with gnu parallel&quot; is the Copilot hack of the day
&lt;br /&gt;
    -- Chase Clark @chasingmicrobes.bsky.social
&lt;br /&gt;
  
&lt;br /&gt;
New in this release:
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No new features. This is a candidate for a stable release.
&lt;/li&gt;
&lt;li&gt;Bug fixes and man page updates.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
GNU Parallel - For people who live life in the parallel lane.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU Parallel&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
&lt;br /&gt;

&lt;br /&gt;
  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
&lt;br /&gt;

&lt;br /&gt;
Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
&lt;br /&gt;

&lt;br /&gt;
  find . -name &#39;*.jpg&#39; |
&lt;br /&gt;
    parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
&lt;br /&gt;

&lt;br /&gt;
You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
You can install GNU Parallel in just 10 seconds with:
&lt;br /&gt;

&lt;br /&gt;
    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
&lt;br /&gt;
       fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
&lt;br /&gt;
    $ sha1sum install.sh | grep 883c667e01eed62f975ad28b6d50e22a
&lt;br /&gt;
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
&lt;br /&gt;
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
&lt;br /&gt;
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
&lt;br /&gt;
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
&lt;br /&gt;
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
&lt;br /&gt;
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
&lt;br /&gt;
    $ bash install.sh
&lt;br /&gt;

&lt;br /&gt;
Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
&lt;br /&gt;

&lt;br /&gt;
When using programs that use GNU Parallel to process data for publication please cite:
&lt;br /&gt;

&lt;br /&gt;
O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
&lt;br /&gt;

&lt;br /&gt;
If you like GNU Parallel:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give a demo at your local user group/team/colleagues
&lt;/li&gt;
&lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
&lt;/li&gt;
&lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Request or write a review for your favourite blog or magazine
&lt;/li&gt;
&lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
&lt;/li&gt;
&lt;li&gt;Invite me for your next conference
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
If you use programs that use GNU Parallel for research:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
If GNU Parallel saves you money:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU SQL&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; 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.
&lt;br /&gt;

&lt;br /&gt;
The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
&lt;br /&gt;

&lt;br /&gt;
When using GNU SQL for a publication please cite:
&lt;br /&gt;

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

&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU Niceload&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Tue, 24 Dec 2024 00:11:30 +0000</pubDate>

</item> 
<item>
	<title>gtypist @ Savannah: GNU Typist 2.10 released</title>
	<guid>https://savannah.gnu.org/news/?id=10705</guid>
	<link>https://savannah.gnu.org/news/?id=10705</link>
     <description>  &lt;p&gt;This is a major release
&lt;br /&gt;

&lt;br /&gt;
Changes in 2.10:
&lt;br /&gt;

&lt;br /&gt;
  - new welcome screen
&lt;br /&gt;
  - new P lesson series for programmers
&lt;br /&gt;
  - fixes for various lessons
&lt;br /&gt;
  - new Romanian lessons
&lt;br /&gt;
  - expand the S lesson series with a new quotation and a few more passages from Shakespeare
&lt;br /&gt;
  - jump over whitespace characters at the beginning of lines in lessons
&lt;br /&gt;
  - fix the terminal resize bug
&lt;br /&gt;
  - fix a few compilation warnings
&lt;br /&gt;
  - add the Romanian translation
&lt;br /&gt;
  - updates to a few translations
&lt;br /&gt;
  - few updates to the documentation
&lt;br /&gt;
  - update the project license to GPL3+
&lt;br /&gt;
  - remove or update the lessons incompatible with the new license
&lt;br /&gt;
  - update the KTouch lesson import script
&lt;br /&gt;
  - fix warnings from help2man generated manual pages
&lt;br /&gt;
  - fix a few comments
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
Sources for this release can be downloaded here:
&lt;br /&gt;

&lt;br /&gt;
  &lt;a href=&quot;https://ftp.gnu.org/gnu/gtypist/gtypist-2.10.tar.gz&quot;&gt;https://ftp.gnu.org/gnu/gtypist/gtypist-2.10.tar.gz&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Mon, 23 Dec 2024 22:02:58 +0000</pubDate>

</item> 
<item>
	<title>texinfo @ Savannah: Texinfo 7.2 released</title>
	<guid>https://savannah.gnu.org/news/?id=10704</guid>
	<link>https://savannah.gnu.org/news/?id=10704</link>
     <description>  &lt;p&gt;We have released version 7.2 of Texinfo, the GNU documentation format.
&lt;br /&gt;

&lt;br /&gt;
It&#39;s available via a mirror (xz is much smaller than gz, but gz is available too just in case):
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://ftpmirror.gnu.org/texinfo/texinfo-7.2.tar.xz&quot;&gt;http://ftpmirror.gnu.org/texinfo/texinfo-7.2.tar.xz&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://ftpmirror.gnu.org/texinfo/texinfo-7.2.tar.gz&quot;&gt;http://ftpmirror.gnu.org/texinfo/texinfo-7.2.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Please send any comments to bug-texinfo@gnu.org.
&lt;br /&gt;

&lt;br /&gt;
Full announcement:
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;https://lists.gnu.org/archive/html/bug-texinfo/2024-12/msg00043.html&quot;&gt;https://lists.gnu.org/archive/html/bug-texinfo/2024-12/msg00043.html&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Mon, 23 Dec 2024 18:37:03 +0000</pubDate>

</item> 
<item>
	<title>Simon Josefsson: Guix Container Images for GitLab CI/CD</title>
	<guid>https://blog.josefsson.org/?p=2050</guid>
	<link>https://blog.josefsson.org/2024/12/18/guix-container-images-for-gitlab-ci-cd/</link>
     <description>  &lt;p&gt;I am using &lt;a href=&quot;https://docs.gitlab.com/ee/ci/&quot;&gt;GitLab CI/CD&lt;/a&gt; pipelines for several upstream projects (&lt;a href=&quot;https://gitlab.com/libidn/libidn/-/pipelines&quot;&gt;libidn&lt;/a&gt;, &lt;a href=&quot;https://gitlab.com/libidn/libidn2/-/pipelines&quot;&gt;libidn2&lt;/a&gt;, &lt;a href=&quot;https://gitlab.com/gsasl/gsasl/-/pipelines&quot;&gt;gsasl&lt;/a&gt;, &lt;a href=&quot;https://gitlab.com/gsasl/inetutils/-/pipelines&quot;&gt;inetutils&lt;/a&gt;, &lt;a href=&quot;https://gitlab.com/gnutls/libtasn1/-/pipelines&quot;&gt;libtasn1&lt;/a&gt;, &lt;a href=&quot;https://gitlab.com/gsasl/libntlm/-/pipelines&quot;&gt;libntlm&lt;/a&gt;, …) and a long-time concern for these have been that there is too little testing on &lt;a href=&quot;https://guix.gnu.org/&quot;&gt;GNU Guix&lt;/a&gt;.  Several attempts have been made, and &lt;a href=&quot;https://lists.gnu.org/archive/html/help-guix/2024-02/msg00066.html&quot;&gt;earlier this year Ludo’ came really close&lt;/a&gt; to finish this.  My earlier effort to &lt;a href=&quot;https://blog.josefsson.org/2024/07/10/towards-idempotent-rebuilds/&quot;&gt;idempotently rebuild Debian&lt;/a&gt; recently led me to &lt;a href=&quot;https://alioth-lists.debian.net/pipermail/reproducible-builds/Week-of-Mon-20241216/014927.html&quot;&gt;think about re-bootstrapping Debian&lt;/a&gt;.  Since Debian is a binary distribution, it re-use earlier binary packages when building new packages.  The prospect of re-bootstrapping Debian in a reproducible way by rebuilding all of those packages going back to the beginning of time does not appeal to me.  Instead, wouldn’t it be easier to build Debian trixie (or some future release of Debian) from Guix, by creating a small bootstrap sandbox that can start to build Debian packages, and then make sure that the particular Debian release can idempotently rebuild itself in a reproducible way?  Then you will eventually end up with a reproducible and re-bootstrapped Debian, which pave the way for a trustworthy release of &lt;a href=&quot;https://trisquel.info/&quot;&gt;Trisquel&lt;/a&gt;.  Fortunately, such an endeavour appears to offer many rabbit holes.  Preparing Guix container images for use in GitLab pipelines is one that I jumped into in the last few days, and just came out of.&lt;/p&gt;



&lt;p&gt;Let’s go directly to the point of this article: here is a GitLab pipeline job that runs in a native Guix container image that builds &lt;code&gt;libksba&lt;/code&gt; after installing the &lt;code&gt;libgpg-error&lt;/code&gt; dependency from Guix using the pre-built substitutes.&lt;/p&gt;



&lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;test-amd64-latest-wget-configure-make-libksba:
  image: registry.gitlab.com/debdistutils/guix/container:latest
  before_script:
  - lndir /gnu/store/*profile/etc/ /etc
  - rm -f /etc/group
  - groupadd --system guixbuild
  - for i in $(seq -w 1 10); do useradd -g guixbuild -G guixbuild -d /var/empty -s $(command -v nologin) -c &quot;Guix build user $i&quot; --system guixbuilder$i; done
  - export HOME=/
  - export LANG=C.UTF-8
  - guix-daemon --disable-chroot --build-users-group=guixbuild &amp;amp;
  - guix archive --authorize &amp;lt; /share/guix/ci.guix.gnu.org.pub
  - guix archive --authorize &amp;lt; /share/guix/bordeaux.guix.gnu.org.pub
  - guix describe
  - guix package -i libgpg-error
  - GUIX_PROFILE=&quot;//.guix-profile&quot;
  - . &quot;$GUIX_PROFILE/etc/profile&quot;
  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&lt;/code&gt;&lt;/pre&gt;



&lt;p&gt;You can put that in a &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; and push it to GitLab and you will end up with a &lt;a href=&quot;https://gitlab.com/jas/gitlab-guix-libksba-build/-/jobs/8679024875&quot;&gt;nice pipeline job&lt;/a&gt; output.&lt;/p&gt;



&lt;p&gt;As you may imagine, there are several things that are sub-optimal in the &lt;code&gt;before_script&lt;/code&gt; above that ought to be taken care of by the Guix container image, and I hope to be able to remove as much of the ugliness as possible.  However that doesn’t change that these images are useful now, and I wanted to announce this work to allow others to start testing them and possibly offer help. I have started to make use of these images in some projects, see for example the &lt;a href=&quot;https://gitlab.com/gsasl/libntlm/-/commit/1824d8af27403c8ccd7a53d53efbcd01d3a4fb36&quot;&gt;libntlm commit&lt;/a&gt; for that.&lt;/p&gt;



&lt;p&gt;You are welcome to join me in the &lt;a href=&quot;https://gitlab.com/debdistutils/guix/container&quot;&gt;Guix container images for GitLab CI/CD&lt;/a&gt; project!  Issues and merge requests are welcome – happy hacking folks!&lt;/p&gt; </description> 
	<pubDate>Wed, 18 Dec 2024 18:43:38 +0000</pubDate>

</item> 
<item>
	<title>GNU Taler news: GNU Taler 0.14 released</title>
	<guid>https://taler.net/en/news/2024-25.html</guid>
	<link>https://taler.net/en/news/2024-25.html</link>
     <description>  &lt;article&gt;
              We are happy to announce the release of GNU Taler v0.14. 
           &lt;/article&gt; </description> 
	<pubDate>Sun, 15 Dec 2024 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>libiconv @ Savannah: GNU libiconv 1.18 released</title>
	<guid>https://savannah.gnu.org/news/?id=10703</guid>
	<link>https://savannah.gnu.org/news/?id=10703</link>
     <description>  &lt;p&gt;The GNU libiconv package provides the basis for character set conversion of text, for systems that don&#39;t use glibc.
&lt;br /&gt;
It contains an implementation of the iconv() POSIX:2024 API and of the &#39;iconv&#39; program, in a way that is mostly glibc compatible.
&lt;br /&gt;

&lt;br /&gt;
New in this release:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Many more transliterations, in particular also of Emoji characters.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The iconv_open function is now POSIX:2024 compliant: it recognizes a suffix &lt;span class=&quot;nomarkup&quot;&gt;//NON_IDENTICAL_DISCARD&lt;/span&gt; in the &#39;tocode&#39; argument, with the effect that characters that cannot be represented in the target character set will be silently discarded. Whereas the suffix &lt;span class=&quot;nomarkup&quot;&gt;//IGNORE&lt;/span&gt; in the &#39;tocode&#39; argument has the effect of discarding not only characters that cannot be represented in the target character set, but also invalid multibyte sequences in the input. Accordingly, the iconvctl function accepts requests ICONV_GET_DISCARD_INVALID, ICONV_SET_DISCARD_INVALID, ICONV_GET_DISCARD_NON_IDENTICAL, ICONV_SET_DISCARD_NON_IDENTICAL.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The iconv_open function and the iconv program now support multiple suffixes, such as &lt;span class=&quot;nomarkup&quot;&gt;//TRANSLIT//IGNORE&lt;/span&gt;, not only one.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GB18030 is now an alias for GB18030:2005. A new converter for GB18030:2022 is added. Since this encoding merely cleans up a few private-use-area mappings, you can continue to use the GB18030 converter, for backward compatibility. Its Unicode to GB18030 conversion direction has been enhanced, to help transitioning away from PUA code points.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When converting from/to an EBCDIC encoding, a non-standard way of converting newlines can be requested
&lt;ul&gt;
&lt;li&gt;at the C level, by calling iconvctl with argument ICONV_SET_FROM_SURFACE or ICONV_SET_TO_SURFACE, or
&lt;/li&gt;
&lt;li&gt;from the iconv program, by setting the environment variable ICONV_EBCDIC_ZOS_UNIX to a non-empty value.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Special support for z/OS: The iconv program adds a charset metadata tag to its output file. (Contributed by Mike Fulton.)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For conversions from UCS-2, UCS-4, UTF-16, UTF-32, invoking iconv(cd,NULL,NULL,...) now preserves the byte order state.
&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Sun, 15 Dec 2024 13:35:15 +0000</pubDate>

</item> 
<item>
	<title>FSF Events: Free Software Directory meeting on IRC: Friday, December 20, starting at 12:00 EST (17:00 UTC)</title>
	<guid>http://www.fsf.org/events/fsd-2024-12-20-irc</guid>
	<link>http://www.fsf.org/events/fsd-2024-12-20-irc</link>
     <description>  Join the FSF and friends on Friday, December 20 from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory. </description> 
	<pubDate>Fri, 13 Dec 2024 15:40:00 +0000</pubDate>

</item> 
<item>
	<title>GNU Guix: The Shepherd 1.0.0 released!</title>
	<guid>https://guix.gnu.org/blog/2024/the-shepherd-1.0.0-released//</guid>
	<link>https://guix.gnu.org/blog/2024/the-shepherd-1.0.0-released//</link>
     <description>  &lt;p&gt;Finally, twenty-one years after its
&lt;a href=&quot;https://lists.gnu.org/archive/html/guile-user/2003-04/msg00007.html&quot;&gt;inception&lt;/a&gt;
(twenty-one!), the Shepherd leaves &lt;a href=&quot;https://0ver.org/&quot;&gt;ZeroVer&lt;/a&gt;
territory to enter a glorious 1.0 era.  This 1.0.0 release is published
today because we think Shepherd has become a solid tool, meeting user
experience standards one has come to expect since systemd changed the
game of free init systems and service managers alike.  It’s also a major
milestone for &lt;a href=&quot;https://guix.gnu.org&quot;&gt;Guix&lt;/a&gt;, which has been relying on
the Shepherd from a time when doing so counted as &lt;em&gt;dogfooding&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;To celebrate this release, the amazing Luis Felipe López Acevedo
designed a new logo,
&lt;a href=&quot;https://git.savannah.gnu.org/cgit/shepherd/graphics.git&quot;&gt;available&lt;/a&gt;
under CC-BY-SA, and the project got &lt;a href=&quot;https://gnu.org/software/shepherd&quot;&gt;a proper web
site&lt;/a&gt;!&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Logo of the Shepherd.&quot; src=&quot;https://guix.gnu.org/static/blog/img/shepherd-logo.svg&quot; /&gt;&lt;/p&gt;&lt;p&gt;Let’s first look at what the Shepherd actually &lt;em&gt;is&lt;/em&gt; and what it can
do for you.&lt;/p&gt;&lt;h1&gt;At a glance&lt;/h1&gt;&lt;p&gt;The Shepherd is a minimalist but featureful service manager and as such,
it &lt;em&gt;herds services&lt;/em&gt;: it keeps track of services, their state and their
dependencies, and it can start, stop, and restart them when needed.
It’s a simple job; doing it right and providing users with insight and
control over services is a different story.&lt;/p&gt;&lt;p&gt;The Shepherd consists of two commands: &lt;code&gt;shepherd&lt;/code&gt; is the daemon that
manages services, and &lt;code&gt;herd&lt;/code&gt; is the command that lets you interact with
it to inspect and control the status of services.  The &lt;code&gt;shepherd&lt;/code&gt;
command can run as the first process (PID 1) and serve as the “init
system”, as is the case on &lt;a href=&quot;https://guix.gnu.org/manual/devel/en/html_node/Getting-Started-with-the-System.html&quot;&gt;Guix
System&lt;/a&gt;;
or it can manage services for unprivileged users, as is the case with
&lt;a href=&quot;https://guix.gnu.org/manual/devel/en/html_node/Home-Configuration.html&quot;&gt;Guix
Home&lt;/a&gt;.
For example, running &lt;code&gt;herd status ntpd&lt;/code&gt; as root allows me to know what
the Network Time Protocol (NTP) daemon is up to:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ sudo herd status ntpd
● Status of ntpd:
  It is running since Fri 06 Dec 2024 02:08:08 PM CET (2 days ago).
  Main PID: 11359
  Command: /gnu/store/s4ra0g0ym1q1wh5jrqs60092x1nrb8h9-ntp-4.2.8p18/bin/ntpd -n -c /gnu/store/7ac2i2c6dp2f9006llg3m5vkrna7pjbf-ntpd.conf -u ntpd -g
  It is enabled.
  Provides: ntpd
  Requires: user-processes networking
  Custom action: configuration
  Will be respawned.
  Log file: /var/log/ntpd.log

Recent messages (use &#39;-n&#39; to view more or less):
  2024-12-08 18:35:54  8 Dec 18:35:54 ntpd[11359]: Listen normally on 25 tun0 128.93.179.24:123
  2024-12-08 18:35:54  8 Dec 18:35:54 ntpd[11359]: Listen normally on 26 tun0 [fe80::e6b7:4575:77ef:eaf4%12]:123
  2024-12-08 18:35:54  8 Dec 18:35:54 ntpd[11359]: new interface(s) found: waking up resolver
  2024-12-08 18:46:38  8 Dec 18:46:38 ntpd[11359]: Deleting 25 tun0, [128.93.179.24]:123, stats: received=0, sent=0, dropped=0, active_time=644 secs
  2024-12-08 18:46:38  8 Dec 18:46:38 ntpd[11359]: Deleting 26 tun0, [fe80::e6b7:4575:77ef:eaf4%12]:123, stats: received=0, sent=0, dropped=0, active_time=644 secs&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It’s running, and it’s logging messages: the latest ones are shown here
and I can open &lt;code&gt;/var/log/ntpd.log&lt;/code&gt; to view more.  Running &lt;code&gt;herd stop ntpd&lt;/code&gt; would terminate the &lt;code&gt;ntpd&lt;/code&gt; process, and there’s also a &lt;code&gt;start&lt;/code&gt; and
a &lt;code&gt;restart&lt;/code&gt; action.&lt;/p&gt;&lt;p&gt;Services can also have &lt;em&gt;custom actions&lt;/em&gt;; in the example above, we see
there’s a &lt;code&gt;configuration&lt;/code&gt; action.  As it turns out, that action is a
handy way to get the file name of the &lt;code&gt;ntpd&lt;/code&gt; configuration file:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ head -2 $(sudo herd configuration ntpd)
driftfile /var/run/ntpd/ntp.drift
pool 2.guix.pool.ntp.org iburst&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Of course a typical system runs quite a few services, many of which
depend on one another.  The &lt;code&gt;herd graph&lt;/code&gt; command returns a
representation of that &lt;em&gt;service dependency graph&lt;/em&gt; that can be piped to
&lt;code&gt;dot&lt;/code&gt; or &lt;code&gt;xdot&lt;/code&gt; to visualize it; here’s what I get on my laptop:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Example of a service dependency graph.&quot; src=&quot;https://guix.gnu.org/static/blog/img/service-graph.svg&quot; /&gt;&lt;/p&gt;&lt;p&gt;It’s quite a big graph (you can zoom in for details!) but we can learn a
few things from it.  Each node in the graph is a service; rectangles are
for “regular” services (typically daemons like &lt;code&gt;ntpd&lt;/code&gt;), round nodes
correspond to &lt;em&gt;one-shot services&lt;/em&gt; (services that perform one action and
immediately stop), and diamonds are for &lt;em&gt;timed services&lt;/em&gt; (services that
execute code periodically).&lt;/p&gt;&lt;h1&gt;Blurring the user/developer line&lt;/h1&gt;&lt;p&gt;A unique feature of the Shepherd is that you configure and extend it in
its own implementation language: in &lt;a href=&quot;https://www.gnu.org/software/guile&quot;&gt;Guile
Scheme&lt;/a&gt;.  That does &lt;em&gt;not&lt;/em&gt; mean you
need to be an expert in that programming language to get started.
Instead, we try to make sure anyone can start simple for their
configuration file and gradually get to learn more if and when they feel
the need for it.  With this approach, we &lt;em&gt;keep the user in the loop&lt;/em&gt;,
&lt;a href=&quot;https://www.wingolog.org/archives/2011/10/19/the-user-in-the-loop&quot;&gt;as Andy Wingo put
it&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;A Shepherd configuration file is a Scheme snippet that goes like this:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(register-services
  (list (service &#39;(ntpd) …)
        …))

(start-in-the-background &#39;(ntpd …))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Here we define &lt;code&gt;ntpd&lt;/code&gt; and get it started as soon as &lt;code&gt;shepherd&lt;/code&gt; has read
the configuration file.  The ellipses can be filled in with more
services.&lt;/p&gt;&lt;p&gt;As an example, our &lt;code&gt;ntpd&lt;/code&gt; service is defined like this:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(service
  &#39;(ntpd)
  #:documentation &quot;Run the Network Time Protocol (NTP) daemon.&quot;
  #:requirement &#39;(user-processes networking)
  #:start (make-forkexec-constructor
           (list &quot;…/bin/ntpd&quot;
                 &quot;-n&quot; &quot;-c&quot; &quot;/…/…-ntpd.conf&quot; &quot;-u&quot; &quot;ntpd&quot; &quot;-g&quot;)
           #:log-file &quot;/var/log/ntpd.log&quot;)
  #:stop (make-kill-destructor)
  #:respawn? #t)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The important parts here are &lt;code&gt;#:start&lt;/code&gt; bit, which says how to start the
service, and &lt;code&gt;#:stop&lt;/code&gt;, which says how to stop it.  In this case we’re
just spawning the &lt;code&gt;ntpd&lt;/code&gt; program but other startup mechanisms are
supported by default: inetd, socket activation &lt;em&gt;à la&lt;/em&gt; systemd, and
timers.  Check out the manual for
&lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Service-Examples.html&quot;&gt;examples&lt;/a&gt;
and a
&lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Defining-Services.html&quot;&gt;reference&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;There’s no limit to what &lt;code&gt;#:start&lt;/code&gt; and &lt;code&gt;#:stop&lt;/code&gt; can do.  In Guix System
you’ll find services that &lt;a href=&quot;https://guix.gnu.org/en/blog/2017/running-system-services-in-containers/&quot;&gt;run daemons in
containers&lt;/a&gt;,
that mount/unmount file systems (as can be guessed from the graph
above), that set up/tear down a static networking configuration, and a
variety of other things.  The
&lt;a href=&quot;https://github.com/BIMSBbioinfo/swineherd&quot;&gt;Swineherd&lt;/a&gt; project goes as
far as extending the Shepherd to turn it into a tool to manage system
containers—similar to what the Docker daemon does.&lt;/p&gt;&lt;p&gt;Note that when writing service definitions for Guix System and Guix
Home, you’re targeting a &lt;a href=&quot;https://guix.gnu.org/manual/devel/en/html_node/Shepherd-Services.html&quot;&gt;thin
layer&lt;/a&gt;
above the Shepherd programming interface.  As is customary in Guix, this
is &lt;em&gt;multi-stage programming&lt;/em&gt;: G-expressions specified in the &lt;code&gt;start&lt;/code&gt; and
&lt;code&gt;stop&lt;/code&gt; fields are staged and make it into the resulting Shepherd
configuration file.&lt;/p&gt;&lt;h1&gt;New since 0.10.x&lt;/h1&gt;&lt;p&gt;For those of you who were already using the Shepherd, here are the
highlights compared to the 0.10.x series:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Support for &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Timers.html&quot;&gt;&lt;em&gt;timed
services&lt;/em&gt;&lt;/a&gt;
has been added: these services spawn a command or run Scheme code
periodically according to a predefined calendar.&lt;/li&gt;&lt;li&gt;&lt;code&gt;herd status SERVICE&lt;/code&gt; now shows high-level information about
services (main PID, command, addresses it is listening to, etc.)
instead of its mere “running value”.  It also shows recently-logged
messages.&lt;/li&gt;&lt;li&gt;To make it easier to discover functionality, that command also
displays &lt;em&gt;custom actions&lt;/em&gt; applicable to the service, if any.  It
also lets you know if a replacement is pending, in which case you
can restart the service to upgrade it.&lt;/li&gt;&lt;li&gt;&lt;code&gt;herd status root&lt;/code&gt; is no longer synonymous with &lt;code&gt;herd status&lt;/code&gt;;
instead it shows information about the &lt;code&gt;shepherd&lt;/code&gt; process itself.&lt;/li&gt;&lt;li&gt;On Linux, &lt;code&gt;reboot --kexec&lt;/code&gt; lets you reboot straight into a new Linux
kernel previously loaded with &lt;a href=&quot;https://linux.die.net/man/8/kexec&quot;&gt;&lt;code&gt;kexec --load&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The service collection has grown:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;The new &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Log-Rotation-Service.html&quot;&gt;log rotation
service&lt;/a&gt;
is responsible for periodically rotating log files, compressing
them, and eventually deleting them.  It’s very much like similar log
rotation tools from the 80’s since &lt;code&gt;shepherd&lt;/code&gt; logs to plain text
files like in the good ol’ days.&lt;/p&gt;&lt;p&gt;There’s a couple of be benefits that come from its integration into
the Shepherd.  First, it already knows all the files that services
log to, so no additional configuration is needed to teach it about
these files.  Second, log rotation is &lt;em&gt;race free&lt;/em&gt;: no single line of
log can be lost in the process.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The new &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/System-Log-Service.html&quot;&gt;system log
service&lt;/a&gt;
what’s traditionally devoted to a separate &lt;code&gt;syslogd&lt;/code&gt; program.  The
advantage of having it in &lt;code&gt;shepherd&lt;/code&gt; is that it can start logging
earlier and integrates nicely with the rest of the system.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Timer-Service.html&quot;&gt;timer
service&lt;/a&gt;
provides functionality similar to the venerable &lt;code&gt;at&lt;/code&gt; command,
allowing you to run a command at a particular time:&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;code&gt;herd schedule timer at 07:00 -- mpg123 alarm.mp3&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Transient-Service-Maker.html&quot;&gt;transient service
maker&lt;/a&gt;
lets you run a command in the background as a transient service (it
is similar in spirit to the &lt;code&gt;systemd-run&lt;/code&gt; command):&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;code&gt;herd spawn transient -d $PWD -- make -j4&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;The GOOPS interface that was deprecated in 0.10.x &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Legacy-GOOPS-Interface.html&quot;&gt;is now
gone&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As always, the &lt;a href=&quot;https://git.savannah.gnu.org/cgit/shepherd.git/tree/NEWS?id=dd911ac772989a7630b9f4d58f8b747cbc1c33fe&quot;&gt;&lt;code&gt;NEWS&lt;/code&gt;
file&lt;/a&gt;
has additional details.&lt;/p&gt;&lt;p&gt;In the coming weeks, we will most likely gradually move service
definitions in Guix from
&lt;a href=&quot;https://guix.gnu.org/manual/devel/en/html_node/Scheduled-Job-Execution.html#index-mcron_002dservice_002dtype&quot;&gt;mcron&lt;/a&gt;
to timed services and similarly replace
&lt;a href=&quot;https://guix.gnu.org/manual/devel/en/html_node/Log-Rotation.html#index-rottlog_002dservice_002dtype&quot;&gt;Rottlog&lt;/a&gt;
and
&lt;a href=&quot;https://guix.gnu.org/manual/devel/en/html_node/Base-Services.html#index-syslog_002dservice_002dtype&quot;&gt;&lt;code&gt;syslogd&lt;/code&gt;&lt;/a&gt;.
This should be an improvement for Guix users and system administrators!&lt;/p&gt;&lt;h1&gt;Cute code&lt;/h1&gt;&lt;p&gt;I did mention that the Shepherd is minimalist, and it really is: 7.4K
lines of Scheme, excluding tests, according to SLOCCount.  This is in
large part thanks to the use of a high-level memory-safe language and
due to the fact that it’s extensible—peripheral features can live
outside the Shepherd.&lt;/p&gt;&lt;p&gt;Significant benefits also come from the concurrency framework: the
&lt;em&gt;concurrent sequential processes&lt;/em&gt; (CSP) model and
&lt;a href=&quot;https://github.com/wingo/fibers&quot;&gt;Fibers&lt;/a&gt;.  Internally, the state of
each service &lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/Service-Internals.html&quot;&gt;is encapsulated in a
fiber&lt;/a&gt;.
Accessing a service’s state amounts to sending a message to its fiber.
This way to structure code is itself very much inspired by the &lt;em&gt;actor
model&lt;/em&gt;.  This results in simpler code (no dreaded event loop, no
callback hell) and better separation of concern.&lt;/p&gt;&lt;p&gt;Using a high-level framework like Fibers does come with its challenges.
For example, we had the case of a &lt;a href=&quot;https://github.com/wingo/fibers/issues/109&quot;&gt;memory leak in Fibers under certain
conditions&lt;/a&gt;, and we
certainly don’t want that in PID 1.  But the challenge really lies in
squashing those low-level bugs so that the foundation is solid.  The
Shepherd itself is free from such low-level issues; its logic is easy to
reason about and that alone is immensely helpful, it allows us to extend
the code without fear, and it avoids concurrency bugs that plague
programs written in the more common event-loop-with-callbacks style.&lt;/p&gt;&lt;p&gt;In fact, thanks to all this, the Shepherd is probably the &lt;em&gt;coolest init
system&lt;/em&gt; to hack on.  It even comes with a
&lt;a href=&quot;https://www.gnu.org/software/shepherd/manual/html_node/REPL-Service.html&quot;&gt;REPL&lt;/a&gt;
for live hacking!&lt;/p&gt;&lt;h1&gt;What’s next&lt;/h1&gt;&lt;p&gt;There’s a number of down-to-earth improvements that can be made in the
Shepherd, such as adding support for dynamically-reconfigurable services
(being able to restart a service but with different options),
integration with control groups (“cgroups”) on Linux, proper integration
for software suspend, etc.&lt;/p&gt;&lt;p&gt;In the longer run, we envision an exciting journey towards a
&lt;a href=&quot;https://spritely.institute/news/spritely-nlnet-grants-december-2023.html&quot;&gt;distributed and capability-style
Shepherd&lt;/a&gt;.
&lt;a href=&quot;https://spritely.institute/goblins/&quot;&gt;Spritely Goblins&lt;/a&gt; provides the
foundation for this; using it looks like a natural continuation of the
design work of the Shepherd: Goblins is an actor model framework!
Juliana Sims has been working on adapting the Shepherd to Goblins
and we’re eager to see what comes out of it in the coming year.  Stay
tuned!&lt;/p&gt;&lt;h1&gt;Enjoy!&lt;/h1&gt;&lt;p&gt;In the meantime, we hope you enjoy the Shepherd 1.0 as much as we
enjoyed making it.  Four people contributed code that led to this
release, but there are &lt;a href=&quot;https://www.gnu.org/software/shepherd/contribute&quot;&gt;other ways to
help&lt;/a&gt;: through
graphics and web design, translation, documentation, and more.  Join us!&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href=&quot;https://www.gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-released/&quot;&gt;Shepherd web
site&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; </description> 
	<pubDate>Thu, 12 Dec 2024 12:00:00 +0000</pubDate>

</item> 
<item>
	<title>GNUnet News: GNUnet 0.23.0</title>
	<guid>https://gnunet.org/en/news/2024-12-0.23.0.html</guid>
	<link>https://gnunet.org/en/news/2024-12-0.23.0.html</link>
     <description>  &lt;article id=&quot;newspost-content&quot;&gt;
 
  &lt;h1&gt;
   GNUnet 0.23.0 released
  &lt;/h1&gt;
  &lt;p&gt;
   We are pleased to announce the release of GNUnet 0.23.0.
   &lt;br /&gt;
   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.
  &lt;/p&gt;
  &lt;p&gt;
   This is a new major release.
  It breaks protocol compatibility with the 0.22.0X versions.
  Please be aware that Git master is thus henceforth (and has been for a
  while)
   &lt;b&gt;
    INCOMPATIBLE
   &lt;/b&gt;
   with
  the 0.22.0X 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
   &lt;b&gt;
    a number of known open issues
   &lt;/b&gt;
   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.23.0 release is still
   &lt;b&gt;
    only suitable for early adopters
  with some reasonable pain tolerance
   &lt;/b&gt;
   .
  &lt;/p&gt;
  &lt;h4&gt;
   Download links
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-0.23.0.tar.gz&quot;&gt;
     gnunet-0.23.0.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-0.23.0.tar.gz.sig&quot;&gt;
     signature
    &lt;/a&gt;
    )
   &lt;/li&gt;
   &lt;li&gt;
    &lt;a href=&quot;https://buildbot.gnunet.org/releases/gnunet-0.23.0-meson.tar.xz&quot;&gt;
     gnunet-0.23.0-meson.tar.xz
    &lt;/a&gt;
    (
    &lt;a href=&quot;https://buildbot.gnunet.org/releases/gnunet-0.23.0-meson.tar.xz.sig&quot;&gt;
     signature
    &lt;/a&gt;
    )
    &lt;i&gt;
     NEW: Test tarball made using the meson build system.
    &lt;/i&gt;
   &lt;/li&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.23.0.tar.gz&quot;&gt;
     gnunet-gtk-0.23.0.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.23.0.tar.gz.sig&quot;&gt;
     signature
    &lt;/a&gt;
    )
   &lt;/li&gt;
   &lt;li&gt;
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.23.0.tar.gz&quot;&gt;
     gnunet-fuse-0.23.0.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.23.0.tar.gz.sig&quot;&gt;
     signature
    &lt;/a&gt;
    )
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   The GPG key used to sign is:
   &lt;a href=&quot;https://www.gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A&quot;&gt;
    3D11063C10F98D14BD24D1470B0998EF86F59B6A
   &lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
   Note that due to mirror synchronization, not all links might be functional
  early after the release. For direct access try
   &lt;a href=&quot;http://ftp.gnu.org/gnu/gnunet/&quot;&gt;
    http://ftp.gnu.org/gnu/gnunet/
   &lt;/a&gt;
  &lt;/p&gt;
  &lt;h4&gt;
   Changes
  &lt;/h4&gt;
  &lt;p&gt;
   A detailed list of changes can be found in the
   &lt;a href=&quot;https://git.gnunet.org/gnunet.git/log/?h=v0.23.0&quot;&gt;
    git log
   &lt;/a&gt;
   , the
   &lt;a href=&quot;https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.23.0&quot;&gt;
    NEWS
   &lt;/a&gt;
   and
the
   &lt;a href=&quot;https://bugs.gnunet.org/changelog_page.php?version_id=456&quot;&gt;
    bug tracker
   &lt;/a&gt;
   .
Noteworthy highlights are
  &lt;/p&gt;
  &lt;ul&gt;
   &lt;li&gt;
    Code review: A number of issues found during a code review have been addressed.
   &lt;/li&gt;
   &lt;li&gt;
    &lt;tt&gt;
     util
    &lt;/tt&gt;
    : A
    &lt;tt&gt;
     GNUNET_OS_ProjectData
    &lt;/tt&gt;
    must now be passed to some APIs that are commonly used by third parties using libgnunetutil (e.g. Taler, GNUnet-Gtk) as to properly handle cases where the GNUnet installation directory is different from the third-party directory.
   &lt;/li&gt;
   &lt;li&gt;
    &lt;tt&gt;
     Build System
    &lt;/tt&gt;
    :
    Improved build times by outsourcing handbook to prebuilt files and only generating GANA source files manually.
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;h4&gt;
   Known Issues
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    There are known major design issues in the CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.
   &lt;/li&gt;
   &lt;li&gt;
    There are known moderate implementation limitations in CADET that negatively impact performance.
   &lt;/li&gt;
   &lt;li&gt;
    There are known moderate design issues in FS that also impact usability and performance.
   &lt;/li&gt;
   &lt;li&gt;
    There are minor implementation limitations in SET that create unnecessary attack surface for availability.
   &lt;/li&gt;
   &lt;li&gt;
    The RPS subsystem remains experimental.
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   In addition to this list, you may also want to consult our bug tracker at
   &lt;a href=&quot;https://bugs.gnunet.org/&quot;&gt;
    bugs.gnunet.org
   &lt;/a&gt;
   which lists about 190 more specific issues.
  &lt;/p&gt;
  &lt;h4&gt;
   Thanks
  &lt;/h4&gt;
  &lt;p&gt;
   This release was the work of many people. The following people contributed code and were thus easily identified:
Christian Grothoff, TheJackiMonster, oec, ch3, and Martin Schanzenbach.
  &lt;/p&gt;
  
 
&lt;/article&gt; </description> 
	<pubDate>Sun, 08 Dec 2024 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>GNU Artanis: The best practice to port Scheme application to Artanis</title>
	<guid>https://artanis.dev/blog/artanis-port-best-practice.html</guid>
	<link>https://artanis.dev/blog/artanis-port-best-practice.html</link>
    
	<pubDate>Tue, 03 Dec 2024 18:08:51 +0000</pubDate>

</item> 
<item>
	<title>unifont @ Savannah: Unifont 16.0.02 Released</title>
	<guid>https://savannah.gnu.org/news/?id=10700</guid>
	<link>https://savannah.gnu.org/news/?id=10700</link>
     <description>  &lt;p&gt;&lt;b&gt;1 December 2024&lt;/b&gt; Unifont 16.0.02 is now available.  This is a minor release with many glyph improvements.  See the ChangeLog file for details.
&lt;br /&gt;

&lt;br /&gt;
Download this release from GNU server mirrors at:
&lt;br /&gt;

&lt;br /&gt;
     &lt;a href=&quot;https://ftpmirror.gnu.org/unifont/unifont-16.0.02/&quot;&gt;https://ftpmirror.gnu.org/unifont/unifont-16.0.02/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
or if that fails,
&lt;br /&gt;

&lt;br /&gt;
     &lt;a href=&quot;https://ftp.gnu.org/gnu/unifont/unifont-16.0.02/&quot;&gt;https://ftp.gnu.org/gnu/unifont/unifont-16.0.02/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
or, as a last resort,
&lt;br /&gt;

&lt;br /&gt;
     &lt;a href=&quot;ftp://ftp.gnu.org/gnu/unifont/unifont-16.0.02/&quot;&gt;ftp://ftp.gnu.org/gnu/unifont/unifont-16.0.02/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
These files are also available on the unifoundry.com website:
&lt;br /&gt;

&lt;br /&gt;
     &lt;a href=&quot;https://unifoundry.com/pub/unifont/unifont-16.0.02/&quot;&gt;https://unifoundry.com/pub/unifont/unifont-16.0.02/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Font files are in the subdirectory
&lt;br /&gt;

&lt;br /&gt;
     &lt;a href=&quot;https://unifoundry.com/pub/unifont/unifont-16.0.02/font-builds/&quot;&gt;https://unifoundry.com/pub/unifont/unifont-16.0.02/font-builds/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
A more detailed description of font changes is available at
&lt;br /&gt;

&lt;br /&gt;
      &lt;a href=&quot;https://unifoundry.com/unifont/index.html&quot;&gt;https://unifoundry.com/unifont/index.html&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
and of utility program changes at
&lt;br /&gt;

&lt;br /&gt;
      &lt;a href=&quot;https://unifoundry.com/unifont/unifont-utilities.html&quot;&gt;https://unifoundry.com/unifont/unifont-utilities.html&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Information about Hangul modifications is at
&lt;br /&gt;

&lt;br /&gt;
      &lt;a href=&quot;https://unifoundry.com/hangul/index.html&quot;&gt;https://unifoundry.com/hangul/index.html&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
and
&lt;br /&gt;

&lt;br /&gt;
      &lt;a href=&quot;http://unifoundry.com/hangul/hangul-generation.html&quot;&gt;http://unifoundry.com/hangul/hangul-generation.html&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Sun, 01 Dec 2024 19:25:29 +0000</pubDate>

</item> 
<item>
	<title>gettext @ Savannah: GNU gettext 0.23 released</title>
	<guid>https://savannah.gnu.org/news/?id=10699</guid>
	<link>https://savannah.gnu.org/news/?id=10699</link>
     <description>  &lt;p&gt;Download from &lt;a href=&quot;https://ftp.gnu.org/pub/gnu/gettext/gettext-0.23.tar.gz&quot;&gt;https://ftp.gnu.org/pub/gnu/gettext/gettext-0.23.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
New in this release:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internationalized data formats:
&lt;ul&gt;
&lt;li&gt;XML:
&lt;ul&gt;
&lt;li&gt;The escaping of characters such as &amp;amp; &amp;lt; &amp;gt; has been changed:
&lt;ul&gt;
&lt;li&gt;No escaping is done any more by xgettext, when creating a POT file.
&lt;/li&gt;
&lt;li&gt;Instead, extra escaping can be requested for the msgfmt pass, when merging into an XML file.
&lt;/li&gt;
&lt;li&gt;The default value of &#39;escape&#39; in the &amp;lt;gt:escapeRule&amp;gt; was &quot;yes&quot;; now it is &quot;no&quot;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;This means that existing translations of older POT files may no longer fully apply. As a maintainer of a package that has translatable XML files, you need to regenerate the POT file and pass it on to your translators.
&lt;/li&gt;
&lt;li&gt;XML schemas for .its and .loc files are now provided.
&lt;/li&gt;
&lt;li&gt;The value of the xml:lang attribute, inserted by msgfmt, now conforms to W3C standards.
&lt;/li&gt;
&lt;li&gt;&#39;msgfmt --xml&#39; accept an option --replace-text, that causes the output to be a mono-lingual XML file instead of a multi-lingual XML file.
&lt;/li&gt;
&lt;li&gt;xgettext and &#39;msgfmt --xml&#39; now support DocBook XML files.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Desktop: xgettext now produces POT files with correct line numbers.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Programming languages support:
&lt;ul&gt;
&lt;li&gt;Python:
&lt;ul&gt;
&lt;li&gt;xgettext now assumes source code for Python 3 rather than Python 2. This affects the interpretation of escape sequences in string literals.
&lt;/li&gt;
&lt;li&gt;xgettext now recognizes the f-string syntax.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Scheme:
&lt;ul&gt;
&lt;li&gt;xgettext now supports the option &#39;-L Guile&#39; as an alternative to &#39;-L Scheme&#39;.  They are nearly equivalent.  They differ in the interpretation of escape sequences in string literals: While &#39;xgettext -L Scheme&#39; assumes the R6RS and R7RS syntax of string literals, &#39;xgettext -L Guile&#39; assumes the syntax of string literals understood by Guile 2.x and 3.0 (without command-line option &#39;--r6rs&#39; or &#39;--r7rs&#39;, and before a &#39;#!r6rs&#39; directive is seen).
&lt;/li&gt;
&lt;li&gt;xgettext now recognizes comments of the form &#39;#; &amp;lt;expression&amp;gt;&#39;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Java: xgettext now has an improved recognition of format strings when the String.formatted method is used.
&lt;/li&gt;
&lt;li&gt;JavaScript:
&lt;ul&gt;
&lt;li&gt;xgettext now parses template literals inside JSX correctly.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;xgettext has a new option --tag that customizes the behaviour of tagged template literals.
&lt;/li&gt;
&lt;li&gt;C#:
&lt;ul&gt;
&lt;li&gt;The build system and tools now also support &#39;dotnet&#39; (.NET) as C# implementation.  In order to declare a preference for &#39;dotnet&#39; over &#39;mono&#39;, you can use the configure option &#39;--enable-csharp=dotnet&#39;.
&lt;/li&gt;
&lt;li&gt;xgettext now recognizes strings with embedded expressions (a.k.a. interpolated strings).
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;awk: xgettext now recognizes string concatenation by juxtaposition.
&lt;/li&gt;
&lt;li&gt;Smalltalk: xgettext now recognizes the string concatenation operator &#39;,&#39;.
&lt;/li&gt;
&lt;li&gt;Vala: xgettext now has an improved recognition of format strings when the string.printf method is used.
&lt;/li&gt;
&lt;li&gt;Glade: xgettext has improved support for GtkBuilder 4.
&lt;/li&gt;
&lt;li&gt;Tcl: With the recently released Tcl 9.0, characters outside the Unicode BMP in Tcl message catalogs (.msg files) will work regardless of the locale&#39;s encoding.
&lt;/li&gt;
&lt;li&gt;Perl:
&lt;ul&gt;
&lt;li&gt;xgettext now reports warnings instead of fatal errors.
&lt;/li&gt;
&lt;li&gt;xgettext now recognizes strings with embedded expressions (a.k.a. interpolated strings).
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;PHP:
&lt;ul&gt;
&lt;li&gt;xgettext now recognizes strings with embedded expressions.
&lt;/li&gt;
&lt;li&gt;xgettext now scans Heredoc and Nowdoc strings correctly.
&lt;/li&gt;
&lt;li&gt;xgettext now regards the format string directives %E, %F, %g, %G, %h, %H as valid.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Runtime behaviour:
&lt;ul&gt;
&lt;li&gt;In the C.UTF-8 locale, like in the C locale, the *gettext() functions now return the msgid untranslated. This is relevant for GNU systems, Linux with musl libc, FreeBSD, NetBSD, OpenBSD, Cygwin, and Android.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Documentation:
&lt;ul&gt;
&lt;li&gt;The section &quot;Preparing Strings&quot; now gives more advice how to deal with string concatenation and strings with embedded expressions.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;xgettext:
&lt;ul&gt;
&lt;li&gt;Most of the diagnostics emitted by xgettext are now labelled as &quot;warning&quot; or &quot;error&quot;.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;msgmerge:
&lt;ul&gt;
&lt;li&gt;The option &#39;--sorted-output&#39; is now deprecated.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;libgettextpo library:
&lt;ul&gt;
&lt;li&gt;This library is now multithread-safe.
&lt;/li&gt;
&lt;li&gt;The function &#39;po_message_set_format&#39; now supports resetting a format string mark.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Sun, 01 Dec 2024 14:04:15 +0000</pubDate>

</item> 
<item>
	<title>GNU Taler news: libeufin independent security audit report and developer response published</title>
	<guid>https://taler.net/en/news/2024-26.html</guid>
	<link>https://taler.net/en/news/2024-26.html</link>
     <description>  &lt;article&gt;
                We received a grant from NLnet   foundation to pay for the development of libeufin for   regional- and event-currencies.  NGI   assists these projects by paying for independent security   audits. Thus, we are happy that   RadicallyOpenSecurity   performed an external crystal-box security audit of the   libeufin component   of GNU Taler.   You can find the final   report here.   We already addressed all significant findings and   compiled a  response   detailing the changes. We thank RadicallyOpenSecurity for their work,   and NLnet and the European   Commission&#39;s Horizion 2020 NGI initiative   for funding this work. 
           &lt;/article&gt; </description> 
	<pubDate>Thu, 28 Nov 2024 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>Parabola GNU/Linux-libre: i686 users - manual intervention required</title>
	<guid>tag:parabolagnulinux.org,2024-11-28:/news/i686-users-manual-intervention-required/</guid>
	<link>https://parabolagnulinux.org/news/i686-users-manual-intervention-required/</link>
     <description>  &lt;p&gt;i686 users will probably be unable to upgrade, due to a problem with the latest archlinux32-keyring 20241114-1&lt;/p&gt;
&lt;p&gt;the solution is posted on the bug tracker 
&lt;a href=&quot;https://labs.parabola.nu/issues/3679&quot;&gt;https://labs.parabola.nu/issues/3679&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Thu, 28 Nov 2024 22:00:08 +0000</pubDate>

</item> 
<item>
	<title>remotecontrol @ Savannah: Smart gadgets’ failure to commit to software support could be illegal, FTC warns</title>
	<guid>https://savannah.gnu.org/news/?id=10698</guid>
	<link>https://savannah.gnu.org/news/?id=10698</link>
     <description>  &lt;p&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2024/11/smart-gadgets-failure-to-commit-to-software-support-could-be-illegal-ftc-warns/&quot;&gt;https://arstechnica.com/gadgets/2024/11/smart-gadgets-failure-to-commit-to-software-support-could-be-illegal-ftc-warns/&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Thu, 28 Nov 2024 12:38:21 +0000</pubDate>

</item> 
<item>
	<title>GNU Guix: Guix/Hurd on a Thinkpad X60</title>
	<guid>https://guix.gnu.org/blog/2024/hurd-on-thinkpad//</guid>
	<link>https://guix.gnu.org/blog/2024/hurd-on-thinkpad//</link>
     <description>  &lt;p&gt;A lot has happened with respect to &lt;a href=&quot;https://hurd.gnu.org&quot;&gt;the Hurd&lt;/a&gt;
since our &lt;a href=&quot;https://guix.gnu.org/en/blog/2020/childhurds-and-substitutes/&quot;&gt;&lt;em&gt;Childhurds and GNU/Hurd
Substitutes&lt;/em&gt;&lt;/a&gt;
post.  As long as two years ago some of you &lt;a href=&quot;https://logs.guix.gnu.org/hurd/2022-05-15.log#070056&quot;&gt;have been
asking&lt;/a&gt; for a
progress update and although there &lt;a href=&quot;https://dezyne.org/janneke/logs/%23guix/2023-05-28.log.html#113945&quot;&gt;have been
rumours&lt;/a&gt;
on a new blog post for over a year, &lt;a href=&quot;https://logs.guix.gnu.org/guix/2023-03-11.log#221532&quot;&gt;we
were&lt;/a&gt; kind of
&lt;a href=&quot;https://logs.guix.gnu.org/guix/2023-05-13.log#165020&quot;&gt;waiting for&lt;/a&gt;
the &lt;a href=&quot;https://logs.guix.gnu.org/guix/2023-09-16.log#163627&quot;&gt;rumoured x86_64
support&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;With all the exciting progress on the Hurd coming available after the
recent (last?) &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-devel/2024-08/msg00195.html&quot;&gt;merger of
&lt;code&gt;core-updates&lt;/code&gt;&lt;/a&gt;
we thought it better &lt;a href=&quot;https://logs.guix.gnu.org/guix/2023-09-16.log#163627&quot;&gt;not to
wait&lt;/a&gt; any
longer.  So here is a short overview of our Hurd work over the past
years:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Update &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-03/msg02186.html&quot;&gt;Hurd to 3ff7053, gnumach 1.8+git20220827, and fix build
failures&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-guix/2023-05/msg00526.html&quot;&gt;native compilation fix for
gcc-boot0&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Initial &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg00633.html&quot;&gt;rumpdisk
support&lt;/a&gt;,
more on this below, which &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00427.html&quot;&gt;needed to
wait&lt;/a&gt;
for:&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A libc &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg00973.html&quot;&gt;specific to
Hurd&lt;/a&gt;,
updating gnumach to 1.8+git20221224 and hurd to 0.9.git20230216,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Some 40 native &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00643.html&quot;&gt;package build fixes for the
Hurd&lt;/a&gt;
so that all development dependencies of the guix package are now
available,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A hack to use Git source in commencement to &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-07/msg00630.html&quot;&gt;update and fix cross
build and native build for the
Hurd&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Support for buiding &lt;code&gt;guix&lt;/code&gt; natively on the Hurd by splitting the
&lt;a href=&quot;https://lists.gnu.org/archive/html/bug-guix/2023-08/msg00190.html&quot;&gt;build into more steps for 32-bit
hosts&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Even nicer offloading support for Childhurds by &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-09/msg01505.html&quot;&gt;introducing Smart
Hurdloading&lt;/a&gt;
so that now both the Bordeaux and Berlin build farms build
packages for i586-gnu,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Locale fixes for &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-guix/2023-10/msg00223.html&quot;&gt;wrong &lt;code&gt;glibc-utf8-locales&lt;/code&gt; package used on
GNU/Hurd&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;More locale fixes to &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-11/msg01749.html&quot;&gt;use &lt;code&gt;glibc-utf8-locales/hurd&lt;/code&gt; in
%standard-patch-inputs&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;And even more locale fixes for &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-11/msg01932.html&quot;&gt;using the right locales on
GNU/Hurd&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-12/msg00343.html&quot;&gt;new glibc
2.38&lt;/a&gt;
allowing us to do &lt;code&gt;(define-public glibc/hurd glibc)&lt;/code&gt;—i.e., once
again use the same glibc for Linux and Hurd alike, and: Better
Hurd support!,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Creation of &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-commits/2024-01/msg01382.html&quot;&gt;&lt;code&gt;hurd-team&lt;/code&gt;
branch&lt;/a&gt;
with build fixes, updating gnumach to 1.8+git20230410 and hurd to
0.9.git20231217,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A constructive meeting with sixteen people during the &lt;a href=&quot;https://guix.gnu.org/en/blog/2024/guix-days-2024-recap/&quot;&gt;Guix
Days&lt;/a&gt;
just before &lt;a href=&quot;https://archive.fosdem.org/2024/&quot;&gt;FOSDEM &#39;24&lt;/a&gt; &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-02/msg00035.html&quot;&gt;with
notes&lt;/a&gt;
that contain some nice ideas,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Another &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-commits/2024-02/msg00941.html&quot;&gt;new glibc
2.39&lt;/a&gt;;
even better Hurd support, opening the door to &lt;code&gt;x86_64&lt;/code&gt; support,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Yet another &lt;a href=&quot;https://mail.gnu.org/archive/html/guix-patches/2024-08/msg00627.html&quot;&gt;restoring of i586-gnu (32-bit GNU/Hurd)
support&lt;/a&gt;,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;The installer just &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-10/msg01132.html&quot;&gt;learnt about the
Hurd&lt;/a&gt;!
More on this below, and finally,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Another set of updates: gnumach (1.8+git20240714), mig
(1.8+git20231217), hurd (0.9.git20240714), netdde (c0ef248d),
rumpkernel (f1ffd640), and &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-11/msg00708.html&quot;&gt;initial support for x86_64-gnu, aka
the 64bit
Hurd&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1&gt;NetDDE and Rumpdisk support&lt;/h1&gt;&lt;p&gt;Back in 2020, Ricardo Wurmus &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=d30d3e3f60df511e484adb3e459625b3251b0917&quot;&gt;added the NetDDE
package&lt;/a&gt;
that provides Linux 2.6 network drivers.  At the time we didn&#39;t get to
integrate and use it though and meanwhile it bitrotted.&lt;/p&gt;&lt;p&gt;After we &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00449.html&quot;&gt;resurrected the NetDDE
build&lt;/a&gt;,
and with &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00455.html&quot;&gt;kind help of the Hurd
developers&lt;/a&gt;
we finally managed to &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9c1957921a1f53973c9b4b895f6d6d5fa63fe2dd&quot;&gt;support NetDDE for the
Hurd.&lt;/a&gt;.
This allows the usage of the Intel 82573L Gigabit Ethernet Controller
of the Thinkpad X60 (and many other network cards, possibly even
WIFI).  Instead of using the builtin kernel driver in GNU Mach, it
would be running &lt;em&gt;as a userland driver&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;What sparked this development was upstream&#39;s NetBSD rumpdisk support
that would allow using modern hard disks such as SSDs, again running
as a userland driver.  Hard disk support builtin in GNU Mach was
once considered to be a nice hack but it only supported disks up to
128 GiB…&lt;/p&gt;&lt;p&gt;First, we needed to &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00400.html&quot;&gt;fix the cross build on
Guix&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;After the &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg00633.html&quot;&gt;initial attempt at rumpdisk support for the
Hurd&lt;/a&gt;
it &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg00659.html&quot;&gt;took
(v2)&lt;/a&gt;
&lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg00746.html&quot;&gt;some
(v3)&lt;/a&gt;
&lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg00755.html&quot;&gt;work
(v4)&lt;/a&gt;
to finally arrive at &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2023-05/msg01049.html&quot;&gt;rumpdisk support for the Hurd, really, &lt;code&gt;*&lt;/code&gt;really&lt;code&gt;*&lt;/code&gt;
(v5)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Sadly when actually using them, booting hangs:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;start: pci.arbiter:&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;What did not really help is that upstream&#39;s rumpkernel archive &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2023-06/msg00099.html&quot;&gt;was
ridiculously
large&lt;/a&gt;.
We managed to work with upstream to remove unused bits from the
archive.  Upstream created a new archive that instead of 1.8 GiB (!) now
“only” weighs 670 MiB.&lt;/p&gt;&lt;p&gt;Anyway, after a lot of building, rebuilding, and debugging and some
more with &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00271.html&quot;&gt;kind help from
upstream&lt;/a&gt;
we finally got Rumpdisk and NetDDE &lt;a href=&quot;https://toot.aquilenet.fr/@civodul/110848429561223704&quot;&gt;to run in a
Childhurd&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;NetDDE and Rumpdisk userland processes in a Childhurd&quot; src=&quot;https://guix.gnu.org/static/blog/img/netdde-and-rumpdisk-processes.png&quot; /&gt;&lt;/p&gt;&lt;h1&gt;Initial Guix/Hurd on the Thinkpad X60&lt;/h1&gt;&lt;p&gt;Now that the last (!) &lt;code&gt;core-updates&lt;/code&gt; merge has finally happened (thanks
everyone!), the recipe of installing Guix/Hurd has been much
simpfilied.  It goes something along these lines.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Install Guix/Linux on your X60,&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Reserve a partition and format it for the Hurd:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;mke2fs -o hurd -L hurd /dev/sdaX&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;In your &lt;code&gt;config.scm&lt;/code&gt;, add some code to add GRUB menuentries for
booting the Hurd, and mount the Hurd partition under &lt;code&gt;/hurd&lt;/code&gt;:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(use-modules (srfi srfi-26)
             (ice-9 match)
             (ice-9 rdelim)
             (ice-9 regex)
             (gnu build file-systems))

(define %hurd-menuentry-regex
  &quot;menuentry \&quot;(GNU with the Hurd[^{\&quot;]*)\&quot;.*multiboot ([^ \n]*) +([^\n]*)&quot;)
(define (text-&amp;gt;hurd-menuentry text)
  (let* ((m (string-match %hurd-menuentry-regex text))
         (label (match:substring m 1))
         (kernel (match:substring m 2))
         (arguments (match:substring m 3))
         (arguments (string-split arguments #\space))
         (root (find (cute string-prefix? &quot;root=&quot; &amp;lt;&amp;gt;) arguments))
         (device-spec (match (string-split root #\=)
                        ((&quot;root&quot; device) device)))
         (device (hurd-device-name-&amp;gt;device-name device-spec))
         (modules (list-matches &quot;module ([^\n]*)&quot; text))
         (modules (map (cute match:substring &amp;lt;&amp;gt; 1) modules))
         (modules (map (cute string-split &amp;lt;&amp;gt; #\space) modules)))
    (menu-entry
     (label label)
     (device device)
     (multiboot-kernel kernel)
     (multiboot-arguments arguments)
     (multiboot-modules modules))))

(define %hurd-menuentries-regex
  &quot;menuentry \&quot;(GNU with the Hurd[^{\&quot;]*)\&quot; \\{([^}]|[^\n]\\})*\n\\}&quot;)
(define (grub.cfg-&amp;gt;hurd-menuentries grub.cfg)
  (let* ((entries (list-matches %hurd-menuentries-regex grub.cfg))
         (entries (map (cute match:substring &amp;lt;&amp;gt; 0) entries)))
    (map text-&amp;gt;hurd-menuentry entries)))

(define (hurd-menuentries)
  (let ((grub.cfg (with-input-from-file &quot;/hurd/boot/grub/grub.cfg&quot;
                    read-string)))
    (grub.cfg-&amp;gt;hurd-menuentries grub.cfg)))

...
(operating-system
   ...
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)
               (targets &#39;(&quot;/dev/sda&quot;))
               (menu-entries (hurd-menuentries))))
  (file-systems (cons* (file-system
                         (device (file-system-label &quot;guix&quot;))
                         (mount-point &quot;/&quot;)
                         (type &quot;ext4&quot;))
                       (file-system
                         (device (file-system-label &quot;hurd&quot;))
                         (mount-point &quot;/hurd&quot;)
                         (type &quot;ext2&quot;))
                       %base-file-systems))
  ...)&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Create a &lt;code&gt;config.scm&lt;/code&gt; for your Hurd system.  You can get
inspiration from &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/examples/bare-hurd.tmpl&quot;&gt;bare-hurd.tmpl&lt;/a&gt;
and inherit from &lt;code&gt;%hurd-default-operating-system&lt;/code&gt;.  Use
&lt;code&gt;grub-minimal-bootloader&lt;/code&gt; and add a &lt;code&gt;static-networking-service-type&lt;/code&gt;.
Something like:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(use-modules (srfi srfi-1) (ice-9 match))
(use-modules (gnu) (gnu system hurd))

(operating-system
  (inherit %hurd-default-operating-system)
  (bootloader (bootloader-configuration
               (bootloader grub-minimal-bootloader)
               (targets &#39;(&quot;/dev/sda&quot;))))
  (kernel-arguments &#39;(&quot;noide&quot;))
...
  (services
    (cons*
      (service static-networking-service-type
               (list %loopback-static-networking
                     (static-networking
                      (addresses
                       (list
                        (network-address
                         (device &quot;eth0&quot;)
                         (value &quot;192.168.178.37/24&quot;))))
                      (routes
                       (list (network-route
                              (destination &quot;default&quot;)
                              (gateway &quot;192.168.178.1&quot;))))
                      (requirement &#39;())
                      (provision &#39;(networking))
                      (name-servers &#39;(&quot;192.168.178.1&quot;)))))
    ...)))&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Install the Hurd.  Assuming you have an &lt;code&gt;ext2&lt;/code&gt; filesystem mounted
on &lt;code&gt;/hurd&lt;/code&gt;, do something like:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;guix system build --target=i586-pc-gnu vuurvlieg.hurd --verbosity=1
sudo -E guix system init --target=i586-pc-gnu --skip-checks \
    vuurvlieg.hurd /hurd
sudo -E guix system reconfigure vuurvlieg.scm&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Reboot and...&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Hurray!&lt;/p&gt;&lt;p&gt;We now have &lt;a href=&quot;https://todon.nl/@janneke/110451493405777898&quot;&gt;Guix/Hurd running on
Thinkpad&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Guix/Hurd GRUB menu on ThinkpadX60&quot; src=&quot;https://guix.gnu.org/static/blog/img/thinkpad-hurd-bootmenu.jpeg&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Guix/Hurd running on ThinkpadX60&quot; src=&quot;https://guix.gnu.org/static/blog/img/thinkpad-hurd-login.jpeg&quot; /&gt;&lt;/p&gt;&lt;h1&gt;Guix/Hurd on Real Iron&lt;/h1&gt;&lt;p&gt;While the initial manual install on the X60 was an inspiring
milestone, we can do better.  As mentioned above, just recently the
&lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-10/msg01132.html&quot;&gt;installer learnt about the
Hurd&lt;/a&gt;,
right after some smaller problems were addressed, like &lt;code&gt;guix system init&lt;/code&gt; creating essential devices for the Hurd, not attempting to run a
cross-built &lt;code&gt;grub-install&lt;/code&gt; to install Grub, soft-coding the hard-coded
&lt;code&gt;part:1:device:wd0&lt;/code&gt; root file-system, adding support for booting
Guix/Hurd more than once.&lt;/p&gt;&lt;p&gt;To install Guix/Hurd, first, build a 32bit installation image and copy
it to a USB stick:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;guix system image --image-type=iso9660 --system=i686-linux gnu/system/install.scm
dd if=/gnu/store/cabba9e-image.iso of=/dev/sdX status=progress
sync&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;then boot it on a not-too-new machine that has wired internet
(although installation over WIFI is possible, there is currently no
WIFI support for the installed Hurd to use it).  On the new &lt;code&gt;Kernel&lt;/code&gt;
page:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Installer Kernel page&quot; src=&quot;https://guix.gnu.org/static/blog/img/installer-kernel-page.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;choose &lt;code&gt;Hurd&lt;/code&gt;.  Do not choose a desktop environment, that&#39;s not
available yet.  On the &lt;code&gt;Network management&lt;/code&gt; page:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Installer Network management page&quot; src=&quot;https://guix.gnu.org/static/blog/img/installer-network-management-page.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;choose the new &lt;code&gt;Static networking service&lt;/code&gt;.  In the final
&lt;code&gt;Configuration file&lt;/code&gt; step, don&#39;t forget to edit:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Installer Configuration file page&quot; src=&quot;https://guix.gnu.org/static/blog/img/installer-configuration-file-page.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;and fill-in your &lt;code&gt;IP&lt;/code&gt; and &lt;code&gt;GATEWAY&lt;/code&gt;:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Installer Edit static networking&quot; src=&quot;https://guix.gnu.org/static/blog/img/installer-nano-edit-static-networking.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;You may want to add some additional packages such as &lt;code&gt;git-minimal&lt;/code&gt;
from &lt;code&gt;(gnu packages version-control)&lt;/code&gt; and &lt;code&gt;sqlite&lt;/code&gt; from &lt;code&gt;(gnu packages sqlite)&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;If you also intend to do Guix development on the Hurd—e.g., debugging
and fixing native package builds—then you might want to include all
dependencies to build the guix package, see the
&lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/system/examples/devel-hurd.tmpl?h=hurd-team&quot;&gt;&lt;code&gt;devel-hurd.tmpl&lt;/code&gt;&lt;/a&gt;
for inspiration on how to do that.  Note that any package you add must
already have support for cross-building.&lt;/p&gt;&lt;p&gt;Good luck, and let us know if it works for you and on what kind of
machine, or why it didn&#39;t!&lt;/p&gt;&lt;h1&gt;What&#39;s next?&lt;/h1&gt;&lt;p&gt;In &lt;a href=&quot;https://guix.gnu.org/en/blog/2020/a-hello-world-virtual-machine-running-the-hurd/&quot;&gt;an earlier
post&lt;/a&gt;
we tried to answer the question “Why bother with the Hurd anyway?”  An
obvious question because it is &lt;a href=&quot;https://xkcd.com/1508&quot;&gt;all too easy to get
discouraged&lt;/a&gt;, to downplay or underestimate the
potential social impact of GNU and the Hurd.&lt;/p&gt;&lt;p&gt;The most pressing problem currently is that the &lt;a href=&quot;https://issues.guix.gnu.org/73181&quot;&gt;guix-daemon fails
when invoking &lt;code&gt;guix authenticate&lt;/code&gt; on the
Hurd&lt;/a&gt;, which means that we cannot
easily keep our substitutes up to date.  &lt;code&gt;guix pull&lt;/code&gt; is known to work
but only by pulling from a local branch doing something like:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;mkdir -p ~/src/guix
cd src/guix
git clone https://git.savannah.gnu.org/git/guix.git master
guix pull --url=~/src/guix/master&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;kinda like we did it in the old days.  Sometimes it seems that guix
does not grok the sqlite store database.  This is needs to be resolved
but as &lt;code&gt;sqlite&lt;/code&gt; does read it this can be easily worked around by doing
something like:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;mv /var/guix/db/db.sqlite /var/guix/db/db.sqlite.orig
sqlite3 /var/guix/db/db.sqlite.orig .dump &amp;gt; /var/guix/db/db.sqlite.dump
sqlite3 -init /var/guix/db/db.sqlite.dump /var/guix/db/db.sqlite .quit&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Also, the boot process still fails to handle an unclean root file
system.  Whenever the Hurd has suffered an unclean shutdown, cleaning
it must currently be done manually, e.g., by booting from the
installer USB stick.&lt;/p&gt;&lt;p&gt;Upstream now has decent support for 64bit (x86_64) albeit &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2024-07/msg00058.html&quot;&gt;with more
bugs and fewer
packages&lt;/a&gt;.
As mentioned in the overview &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-11/msg00708.html&quot;&gt;we are now
working&lt;/a&gt;
&lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-11/msg00925.html&quot;&gt;to have
that&lt;/a&gt;
&lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-11/msg01326.html&quot;&gt;in
Guix&lt;/a&gt;
and &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-patches/2024-11/msg01676.html&quot;&gt;have
made&lt;/a&gt;
&lt;a href=&quot;https://todon.nl/@janneke/113457925305954698&quot;&gt;some progress&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Hello Guix 64bit Hurd&quot; src=&quot;https://guix.gnu.org/static/blog/img/hello-guix-x86_64-gnu.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;more on that in another post.  Other interesting task for Guix
include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Have &lt;code&gt;guix system reconfigure&lt;/code&gt; work on the Hurd,&lt;/li&gt;&lt;li&gt;Figure out WiFi support with NetDDE (and add it to installer!),&lt;/li&gt;&lt;li&gt;An &lt;a href=&quot;https://issues.guix.gnu.org/43857&quot;&gt;isolated build
environment&lt;/a&gt; (or better
wait for, err, contribute to the &lt;a href=&quot;https://guix.gnu.org/en/blog/2023/a-build-daemon-in-guile/&quot;&gt;Guile
guix-daemon&lt;/a&gt;?),&lt;/li&gt;&lt;li&gt;An installer running the Hurd, and,&lt;/li&gt;&lt;li&gt;Packages, packages, packages!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We tried to make Hurd development as easy and as pleasant as we could.
As you have seen, things start to work pretty nicely and there is
still plenty of work to do in Guix.  In a way this is “merely
packaging” the amazing work of others.  Some of the real work that
needs to be done and which is being discussed and is in progress right
now includes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://nlnet.nl/project/Hurd-Audio/&quot;&gt;Audio support&lt;/a&gt; (this is
sponsored by &lt;a href=&quot;https://nlnet.nl&quot;&gt;NLnet&lt;/a&gt;, thanks!),&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lists.gnu.org/archive/html//bug-hurd/2024-05/msg00002.html&quot;&gt;Rumpnet&lt;/a&gt;,&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2024-09/msg00053.html&quot;&gt;SMP&lt;/a&gt;,&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://lists.gnu.org/archive/html/bug-hurd/2024-03/msg00114.html&quot;&gt;AArch64&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All these tasks look daunting, and indeed that’s a lot of work ahead.
But the development environment is certainly an advantage.  Take an
example: surely anyone who’s hacked on device drivers or file systems
before would have loved to be able to GDB into the code, restart it, add
breakpoints and so on—that’s exactly the experience that the Hurd
offers.  As for Guix, it will make it easy to test changes to the
micro-kernel and to the Hurd servers, and that too has the potential to
speed up development and make it a very nice experience.&lt;/p&gt;&lt;p&gt;Join &lt;code&gt;#guix&lt;/code&gt; and &lt;code&gt;#hurd&lt;/code&gt; on
&lt;a href=&quot;https://guix.gnu.org/en/contact/irc/&quot;&gt;&lt;code&gt;libera.chat&lt;/code&gt;&lt;/a&gt; or the &lt;a href=&quot;https://guix.gnu.org/en/contact&quot;&gt;mailing
lists&lt;/a&gt; and get involved!&lt;/p&gt;&lt;h5&gt;Addendum&lt;/h5&gt;&lt;p&gt;It &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-devel/2024-11/msg00276.html&quot;&gt;has been brought to our
attention&lt;/a&gt;
that people haven&#39;t heard that &lt;a href=&quot;https://wiki.debian.org/Debian_GNU/Hurd&quot;&gt;Debian
GNU/Hurd&lt;/a&gt; has been a reality
for some years now.  While Guix GNU/Hurd has an exciting future,
please be aware that it lacks many packages and services, including
Xorg.  If you would simply like to install the Hurd on bare metal
running your favorite window manager (eg: i3, icewm, etc.)  or
lightweight desktop environment (Xfce) right now, then &lt;a href=&quot;https://cdimage.debian.org/cdimage/ports/latest/hurd-i386/20220824/&quot;&gt;installing
Debian
GNU/Hurd&lt;/a&gt;
is a good choice.  Though we hope to catch up to them soon!&lt;/p&gt; </description> 
	<pubDate>Sun, 24 Nov 2024 18:00:00 +0000</pubDate>

</item> 
<item>
	<title>gnuboot @ Savannah: GNU Boot November 2024 News</title>
	<guid>https://savannah.gnu.org/news/?id=10697</guid>
	<link>https://savannah.gnu.org/news/?id=10697</link>
     <description>  &lt;p&gt;A lot has changed since the two last news from the GNU Boot project.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;GNU Boot install party in Paris the 7 and 8 December 2024&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
People involved in the GNU Boot project will be organizing a 100% free
&lt;br /&gt;
software install party within a bigger event that also has a regular
&lt;br /&gt;
install party. There will also be a presentation about 100% free
&lt;br /&gt;
software in there. The event will be mainly in French.
&lt;br /&gt;

&lt;br /&gt;
More details are available in French and in English in the following
&lt;br /&gt;
link:
&lt;br /&gt;
&lt;a href=&quot;https://lists.gnu.org/archive/html/help-guix/2024-11/msg00112.html&quot;&gt;https://lists.gnu.org/archive/html/help-guix/2024-11/msg00112.html&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;GNU Boot 0.1 RC4&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
Many changes were made since the RC3 and since then we fixed an
&lt;br /&gt;
important bug that prevented Trisquel from booting (If during the
&lt;br /&gt;
Trisquel installation you chose &quot;LVM2&quot; and didn&#39;t encrypt the
&lt;br /&gt;
storage, GNU Boot images with GRUB would not find the Trisquel
&lt;br /&gt;
installation).
&lt;br /&gt;

&lt;br /&gt;
Because of that we decided to do a new RC4 (release candidate 4)
&lt;br /&gt;
and to publish new GNU Boot images.
&lt;br /&gt;

&lt;br /&gt;
There are still some work needed before doing a 0.1 release as we want
&lt;br /&gt;
to make it easier for less technical users to install and use GNU
&lt;br /&gt;
Boot, but more and more of the project structure are getting in place
&lt;br /&gt;
(website, manual, automatic tests, guix, good development procedures,
&lt;br /&gt;
enabling build on all distributions, etc) which then makes it easier
&lt;br /&gt;
to contribute.
&lt;br /&gt;

&lt;br /&gt;
We also decided to use Guix for more of the software components
&lt;br /&gt;
we build, and since this is a big change, we will need people to
&lt;br /&gt;
help more with testing.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Nonfree software found again, no supported device affected.&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
The last announcement we made was &quot;Nonfree software found in GNU Boot
&lt;br /&gt;
releases again, many distros affected&quot;[1].
&lt;br /&gt;

&lt;br /&gt;
Some people misunderstood it (maybe we could have been more clear):
&lt;br /&gt;
the nonfree software that we found was code that GNU Boot didn&#39;t use,
&lt;br /&gt;
so it was easy to remove and it didn&#39;t affect the supported devices in
&lt;br /&gt;
any way.
&lt;br /&gt;

&lt;br /&gt;
Finding nonfree software in 100% free distribution is also common:
&lt;br /&gt;
this is part of the work to ensure these distribution remains 100%
&lt;br /&gt;
free.
&lt;br /&gt;

&lt;br /&gt;
The first time it happened in GNU Boot we publicized it to explain why
&lt;br /&gt;
we were re-releasing some of the GNU Boot files as it could be very
&lt;br /&gt;
scary if this happens without any public communication.
&lt;br /&gt;

&lt;br /&gt;
The second time we published a news about it mainly to help propagate
&lt;br /&gt;
the information to the affected distributions and this is probably why
&lt;br /&gt;
it was misunderstood: it was mainly targeted at GNU Boot users and
&lt;br /&gt;
maintainers of the affected packages. We also contacted upstream and
&lt;br /&gt;
some affected distributions directly as well but contacting everybody
&lt;br /&gt;
takes a lot of time so having a news about it helps. At least Debian
&lt;br /&gt;
and Trisquel fixed the issue but we still need to contact some
&lt;br /&gt;
distributions.
&lt;br /&gt;

&lt;br /&gt;
After that, and probably thanks to the previous news, Leah Rowe
&lt;br /&gt;
contacted us on one of the GNU Boot mailing lists[2] to notify us that
&lt;br /&gt;
she also found additional similar nonfree software in GNU Boot.
&lt;br /&gt;

&lt;br /&gt;
So we confirmed that and promptly removed them and re-made again the
&lt;br /&gt;
source release. And here again even if the work was delayed a bit,
&lt;br /&gt;
this was fast to do and it doesn&#39;t affect the supported devices in any
&lt;br /&gt;
way.
&lt;br /&gt;

&lt;br /&gt;
But we also need help contacting distributions again because one of
&lt;br /&gt;
the issue she found is very serious because it affects many
&lt;br /&gt;
distributions and also important devices that GNU Boot doesn&#39;t
&lt;br /&gt;
support.
&lt;br /&gt;

&lt;br /&gt;
The ARM trusted firmware ships a nonfree hdcp.bin binary in its source
&lt;br /&gt;
code. ARM trusted firmware is a dependency of u-boot that is used to
&lt;br /&gt;
support many ARM computers in other distributions (like Guix, Debian,
&lt;br /&gt;
etc).
&lt;br /&gt;

&lt;br /&gt;
As contacting affected distributions is a tedious task, we also need
&lt;br /&gt;
help to propagate the information and contact them especially because
&lt;br /&gt;
we don&#39;t know if Leah intend or not to do that work (so far she didn&#39;t
&lt;br /&gt;
reply when asked twice about it), so it&#39;s probably up to the GNU Boot
&lt;br /&gt;
community as a whole (which also includes its maintainers and readers
&lt;br /&gt;
of this news) to help here.
&lt;br /&gt;

&lt;br /&gt;
The details are in the commit 343515aee7ef34695ac45830fad419d9562f9c15
&lt;br /&gt;
(&quot;coreboot: blobs.list: arm-trusted-firmware: Remove RK3399 hdcp.bin
&lt;br /&gt;
firmware.&quot;) in the GNU Boot source code[3].
&lt;br /&gt;

&lt;br /&gt;
[1]&lt;a href=&quot;https://savannah.gnu.org/news/?id=10684&quot;&gt;https://savannah.gnu.org/news/?id=10684&lt;/a&gt;
&lt;br /&gt;
[2]&lt;a href=&quot;https://lists.gnu.org/archive/html/gnuboot-patches/2024-10/msg00028.html&quot;&gt;https://lists.gnu.org/archive/html/gnuboot-patches/2024-10/msg00028.html&lt;/a&gt;
&lt;br /&gt;
[3]&lt;a href=&quot;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=343515aee7ef34695ac45830fad419d9562f9c15&quot;&gt;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=343515aee7ef34695ac45830fad419d9562f9c15&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Website and documentation&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
Jordán (isf) has been contributing some Spanish translations of the
&lt;br /&gt;
most important website pages (the landing, status and how to
&lt;br /&gt;
contribute pages). This is important as it could help get more
&lt;br /&gt;
contributors. These contributions also helped us improve the process
&lt;br /&gt;
for accepting pseudonymous contributions and enabled us to fix issues.
&lt;br /&gt;

&lt;br /&gt;
The work on improving the website in general also continued. Many of
&lt;br /&gt;
the website pages were reviewed and improved (there is a lot of work
&lt;br /&gt;
there and mentioning it all would make the news way too long).
&lt;br /&gt;

&lt;br /&gt;
The website also now shows the git revision from which it is build and
&lt;br /&gt;
we also helped the FSF fix some server configuration that created
&lt;br /&gt;
issue with the deployment of the GNU Boot website (more details are in
&lt;br /&gt;
the commit message[1]) by reporting the issue to them and testing the
&lt;br /&gt;
fix.
&lt;br /&gt;

&lt;br /&gt;
Patches for making a manual are also being reviewed. While there isn&#39;t
&lt;br /&gt;
much in the manual yet, it also enables to better organize the
&lt;br /&gt;
documentation and it has the potential to make GNU Boot more
&lt;br /&gt;
accessible to less technical people.
&lt;br /&gt;

&lt;br /&gt;
The next goals is to look how to merge part of the website inside the
&lt;br /&gt;
manual and continue improving both the website and the manual.
&lt;br /&gt;

&lt;br /&gt;
[1]&lt;a href=&quot;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=d1df672383f6eb8d4218fdef7fbe9ec5e41803e4&quot;&gt;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=d1df672383f6eb8d4218fdef7fbe9ec5e41803e4&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Authenticating GNU Boot source code&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
We now have the ability to verify the source code when downloading it
&lt;br /&gt;
from git. This is important to avoid certain type of attacks and it
&lt;br /&gt;
also enables to write code to automatically download, verify and build
&lt;br /&gt;
the GNU Boot source code.
&lt;br /&gt;

&lt;br /&gt;
The source can be verified with the following command (it requires to
&lt;br /&gt;
have Guix installed):
&lt;br /&gt;
 $ guix git authenticate $(git rev-parse HEAD) \
&lt;br /&gt;
  &quot;E23C 26A5 DEEE C5FA 9CDD  D57A 57BC 26A3 6871 16F6&quot; \
&lt;br /&gt;
  -k origin/keyring
&lt;br /&gt;

&lt;br /&gt;
If the authentication works it will print a message like that:
&lt;br /&gt;

&lt;br /&gt;
    guix git: successfully
&lt;br /&gt;
    authenticated commit 05c09293d9660ea1f26b5b705a089b466a0aa718
&lt;br /&gt;

&lt;br /&gt;
The 05c09293d9660ea1f26b5b705a089b466a0aa718 might be different in
&lt;br /&gt;
your case.
&lt;br /&gt;

&lt;br /&gt;
The &quot;E23C 26A5 DEEE C5FA 9CDD D57A 57BC 26A3 6871 16F6&quot; part in the
&lt;br /&gt;
command above is Adrien Bourmault (neox)&#39;s GPG key.
&lt;br /&gt;

&lt;br /&gt;
How to use that will be documented more in depth in the upcoming GNU
&lt;br /&gt;
Boot manual that is currently being reviewed. Its importance will also
&lt;br /&gt;
be explained in more details for people not familiar with the security
&lt;br /&gt;
issues it&#39;s meant to solve. Also note that we also welcome help for
&lt;br /&gt;
reviewing patches.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Licensing&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
The GNU Boot source code has a complex history. It is based on the
&lt;br /&gt;
last fully free software releases of Libreboot. And the Libreboot
&lt;br /&gt;
source code history is very complex.
&lt;br /&gt;

&lt;br /&gt;
We found some missing authorship information in some of the files that
&lt;br /&gt;
come from Libreboot and so we started such information from the
&lt;br /&gt;
various git repositories that were used at some point by Libreboot or
&lt;br /&gt;
some of the projects it was based on.
&lt;br /&gt;

&lt;br /&gt;
To help with this task we also added a page on the GNU Boot website
&lt;br /&gt;
(&lt;a href=&quot;https://www.gnu.org/software/gnuboot/web/docs/history/&quot;&gt;https://www.gnu.org/software/gnuboot/web/docs/history/&lt;/a&gt;) to track the
&lt;br /&gt;
status of the reconstruction of the missing authorship and to document
&lt;br /&gt;
the GNU Boot source code history.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Upstream contributions and easier building of GNU Boot&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
GNU Boot is just a distribution and like most distributions, it tries
&lt;br /&gt;
to collaborate with various upstream projects whenever possible.
&lt;br /&gt;

&lt;br /&gt;
Since GNU Boot relies on Guix, we improved the Guix documentation
&lt;br /&gt;
directly to help people install Guix on Trisquel and Parabola. We also
&lt;br /&gt;
helped Trisquel fix security issues in the Guix package by bug
&lt;br /&gt;
reporting and testing fixes (some bugs still need to be fixed in
&lt;br /&gt;
Parabola and Debian, and reporting issues upstream takes time).
&lt;br /&gt;

&lt;br /&gt;
Since we also advise to use PureOS or Trisquel to build GNU Boot we
&lt;br /&gt;
also enabled people with Guix to produce PureOS or Trisquel chroots
&lt;br /&gt;
with Debootstrap. This was done through contributions to Debootstrap,
&lt;br /&gt;
and to the Guix Debootstrap package. We could then mention that in the
&lt;br /&gt;
GNU Boot build documentation
&lt;br /&gt;
(&lt;a href=&quot;https://www.gnu.org/software/gnuboot/web/docs/build/&quot;&gt;https://www.gnu.org/software/gnuboot/web/docs/build/&lt;/a&gt;) and added a
&lt;br /&gt;
script (in contrib/start-guix-daemon.py) to support building GNU Boot
&lt;br /&gt;
in chroots. However there are still issue with the build in chroots
&lt;br /&gt;
that need to be fixed to producing all released files. Instructions on
&lt;br /&gt;
how to do build in chroots is also lacking.
&lt;br /&gt;

&lt;br /&gt;
In addition we also added the ability to build GNU Boot with Trisquel
&lt;br /&gt;
11 (aramo).
&lt;br /&gt;

&lt;br /&gt;
An apt-cacher-ng package was also contributed in Guix upstream as it
&lt;br /&gt;
can then be used to speed-up one of the automatic tests used in GNU
&lt;br /&gt;
Boot but the support for apt-cacher-ng was not integrated yet in GNU
&lt;br /&gt;
Boot. Last year we also contributed a GRUB package in Guix but we
&lt;br /&gt;
didn&#39;t have the occasion to use it yet. It will probably happen soon
&lt;br /&gt;
though.
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;Building GNU Boot&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
How to build GNU Boot has changed a lot since GNU Boot 0.1 RC3.
&lt;br /&gt;

&lt;br /&gt;
Before Guix could only be optionally used to build the website.
&lt;br /&gt;

&lt;br /&gt;
In addition to that, Guix is now integrated in the build system so we
&lt;br /&gt;
can now rely on Guix packages to build GNU Boot images. This also
&lt;br /&gt;
means that you need to install Guix to build GNU Boot images.
&lt;br /&gt;

&lt;br /&gt;
We currently use Guix packages to build some tests. We also build some
&lt;br /&gt;
installation utilities for the I945 ThinkPads (ThinkPad X60, X60s,
&lt;br /&gt;
X60T and T60) but we don&#39;t have documentation for less technical
&lt;br /&gt;
people yet on how to use them. We also would need help for testing
&lt;br /&gt;
these computers as we have no idea if they still work fine or which
&lt;br /&gt;
fully free distributions still work on them in practice.
&lt;br /&gt;

&lt;br /&gt;
We now also support the &#39;./configure&#39; and &#39;make&#39; commands to build GNU
&lt;br /&gt;
Boot but not yet the &#39;make install&#39; command as to work we would need
&lt;br /&gt;
to adapt many of the scripts that are used during the build to be
&lt;br /&gt;
compatible with that.
&lt;br /&gt;

&lt;br /&gt;
There is also less visible work that was done, like cleaning up a lot
&lt;br /&gt;
of code, adding tests for code quality, documenting a bit the GNU Boot
&lt;br /&gt;
source code structure, and so on.
&lt;br /&gt;

&lt;br /&gt;
Work on making GNU Boot reproducible also started. See
&lt;br /&gt;
&lt;a href=&quot;https://reproducible-builds.org/&quot;&gt;https://reproducible-builds.org/&lt;/a&gt; or
&lt;br /&gt;
&lt;a href=&quot;https://en.wikipedia.org/wiki/Reproducible_builds&quot;&gt;https://en.wikipedia.org/wiki/Reproducible_builds&lt;/a&gt; for more detail on
&lt;br /&gt;
the issue.
&lt;br /&gt;

&lt;br /&gt;
We took an extremely strict approach and put the checksum of some of
&lt;br /&gt;
the things we build directly into GNU Boot and verify it the checksum
&lt;br /&gt;
during the compilation. This enables us to automatically detect
&lt;br /&gt;
issues without having to do anything.
&lt;br /&gt;

&lt;br /&gt;
We started to enable that for easy things, and we also added the
&lt;br /&gt;
infrastructure to also use that in Guix packages as well by validating
&lt;br /&gt;
one of the packages we use during automatic testing.
&lt;br /&gt;

&lt;br /&gt;
However at one point this guix package stopped being
&lt;br /&gt;
reproducible. Since we wanted to keep that code (especially as it was
&lt;br /&gt;
showing a good example of how to do it), we fixed the bug instead of
&lt;br /&gt;
removing the test.
&lt;br /&gt;

&lt;br /&gt;
This then helped us detect a very subtle and interesting bug in one of
&lt;br /&gt;
the components we use for automatic tests.
&lt;br /&gt;

&lt;br /&gt;
The bug could not be caught during testing because some time
&lt;br /&gt;
information stored inside the FAT32 file system has a granularity of a
&lt;br /&gt;
day, and since all the testing happened the same day, it was caught
&lt;br /&gt;
only later on.
&lt;br /&gt;

&lt;br /&gt;
This bug was then fixed and the details are in the fix[1]. A bug
&lt;br /&gt;
report was also opened upstream because bugs were found in diffoscope
&lt;br /&gt;
along the way[2]. We still need to do some testing though to
&lt;br /&gt;
understand if the bug is in diffoscope or one of the underlying
&lt;br /&gt;
libraries (libguestfs) and then to report the remaining bugs to the
&lt;br /&gt;
distributions we used during this work.
&lt;br /&gt;

&lt;br /&gt;
We also made it easier to update the checksum in the Guix package. If
&lt;br /&gt;
you package software with Guix, this change is also a good example of
&lt;br /&gt;
how not to break the &#39;--without-tests&#39; option when you override the
&lt;br /&gt;
tests in the package you contribute. The commit message[3] and the
&lt;br /&gt;
change have more details and references on all that.
&lt;br /&gt;

&lt;br /&gt;
[1]&lt;a href=&quot;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=4c3de49fbb3b43940b43f8fdccc8e51ee7df8f46&quot;&gt;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=4c3de49fbb3b43940b43f8fdccc8e51ee7df8f46&lt;/a&gt;
&lt;br /&gt;
[2]&lt;a href=&quot;https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/390&quot;&gt;https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/390&lt;/a&gt;
&lt;br /&gt;
[3]&lt;a href=&quot;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=40fcb94e2f7ab1df8d320f78311e623f801d8602&quot;&gt;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=40fcb94e2f7ab1df8d320f78311e623f801d8602&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h4&gt;LVM2 bug&lt;/h4&gt;
&lt;p&gt;
&lt;br /&gt;
WodeShengli reported a very important bug[1]: GNU Boot images with
&lt;br /&gt;
GRUB can&#39;t find LVM2 partitions if the partition itself is not
&lt;br /&gt;
encrypted. For instance if you have LVM2 and no encryption at all or
&lt;br /&gt;
if the disk is encrypted and that on top you have LVM2, GNU Boot will
&lt;br /&gt;
not find the partition.
&lt;br /&gt;

&lt;br /&gt;
Since this is an extremely serious usability issue (because images
&lt;br /&gt;
with GRUB are supposed to work out of the box) we spent time to fix
&lt;br /&gt;
it.
&lt;br /&gt;

&lt;br /&gt;
The issue was that the GRUB configuration we ship hardcoded the name
&lt;br /&gt;
of the LVM volumes to try to boot from. Fixing it required to be able
&lt;br /&gt;
loop over all the partitions being found, but we found no command to
&lt;br /&gt;
do that in GRUB (which is probably why the LVM partition names were
&lt;br /&gt;
hardcoded in the first place).
&lt;br /&gt;

&lt;br /&gt;
So we started adding GRUB command options to do that but while the
&lt;br /&gt;
code worked fine, it didn&#39;t integrate in GRUB well. So we contacted
&lt;br /&gt;
GRUB looking for help as we would have needed to upstream our command
&lt;br /&gt;
option in GRUB anyway.
&lt;br /&gt;

&lt;br /&gt;
And we were told that GRUB already had a way to do what we were
&lt;br /&gt;
looking for so we used that to fix the issue.
&lt;br /&gt;

&lt;br /&gt;
We also added tests that automatically download the Trisquel installer
&lt;br /&gt;
and installs Trisquel with LVM2 and test if GNU Boot can boot the new
&lt;br /&gt;
Trisquel installation[2].
&lt;br /&gt;

&lt;br /&gt;
While this test is skipped for 32bit computers, it is still good to
&lt;br /&gt;
have as some people will run it. The test also paves the way to add
&lt;br /&gt;
more tests that would enable us to improve further the GRUB
&lt;br /&gt;
configuration without breaking the boot.
&lt;br /&gt;

&lt;br /&gt;
[1]&lt;a href=&quot;https://savannah.gnu.org/bugs/index.php?65663&quot;&gt;https://savannah.gnu.org/bugs/index.php?65663&lt;/a&gt;
&lt;br /&gt;
[2]&lt;a href=&quot;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=860b00bf1e798d86c8bb2a70d77633599dfa1da2&quot;&gt;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=860b00bf1e798d86c8bb2a70d77633599dfa1da2&lt;/a&gt;
&lt;br /&gt;
[3]&lt;a href=&quot;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=9cc02ddde1e164fabfbddc8bbd3832ef9468d92d&quot;&gt;https://git.savannah.gnu.org/cgit/gnuboot.git/commit/?id=9cc02ddde1e164fabfbddc8bbd3832ef9468d92d&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Sat, 23 Nov 2024 19:05:25 +0000</pubDate>

</item> 
<item>
	<title>parallel @ Savannah: GNU Parallel 20241122 (&#39;Ahoo Daryaei&#39;) released</title>
	<guid>https://savannah.gnu.org/news/?id=10696</guid>
	<link>https://savannah.gnu.org/news/?id=10696</link>
     <description>  &lt;p&gt;GNU Parallel 20241122 (&#39;Ahoo Daryaei&#39;) has been released. It is available for download at: lbry://@GnuParallel:4
&lt;br /&gt;

&lt;br /&gt;
Quote of the month:
&lt;br /&gt;

&lt;br /&gt;
  GNU parallel is so satisfying
&lt;br /&gt;
    -- James Coman @jcoman.bsky.social
&lt;br /&gt;

&lt;br /&gt;
New in this release:
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;--pipe --block works similar to --pipepart --block if --block size is negative.
&lt;/li&gt;
&lt;li&gt;DBURLs can be written with / instead of %2F for sqlite and CSV.
&lt;/li&gt;
&lt;li&gt;Bug fixes and man page updates.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;News about GNU Parallel:
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Embarrassingly GNU parallel &lt;a href=&quot;https://dengin.xyz/blog/2024/10/24/embarrassingly-gnu-parallel/&quot;&gt;https://dengin.xyz/blog/2024/10/24/embarrassingly-gnu-parallel/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GNU Parallel for Your Terminal Tasks &lt;a href=&quot;https://erolrecep.github.io/posts/gnuparallel_for_your_terminal_tasks/&quot;&gt;https://erolrecep.github.io/posts/gnuparallel_for_your_terminal_tasks/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;How to leverage GNU parallel to utilize multiple cores while running AUGUSTUS &lt;a href=&quot;https://lifescienceshub.wixsite.com/lifesciencehub/post/how-to-leverage-gnu-parallel-to-utilize-multiple-cores-while-running-augustus&quot;&gt;https://lifescienceshub.wixsite.com/lifesciencehub/post/how-to-leverage-gnu-parallel-to-utilize-multiple-cores-while-running-augustus&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GNU Parallel: The Good Parts &lt;a href=&quot;https://diekmeier.de/posts/2024-11-17-gnu-parallel/&quot;&gt;https://diekmeier.de/posts/2024-11-17-gnu-parallel/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Put your CPU to work with GNU Parallel &lt;a href=&quot;https://www.redhat.com/en/blog/gnu-parallel&quot;&gt;https://www.redhat.com/en/blog/gnu-parallel&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
GNU Parallel - For people who live life in the parallel lane.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU Parallel&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
&lt;br /&gt;

&lt;br /&gt;
  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
&lt;br /&gt;

&lt;br /&gt;
Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
&lt;br /&gt;

&lt;br /&gt;
  find . -name &#39;*.jpg&#39; |
&lt;br /&gt;
    parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
&lt;br /&gt;

&lt;br /&gt;
You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
You can install GNU Parallel in just 10 seconds with:
&lt;br /&gt;

&lt;br /&gt;
    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
&lt;br /&gt;
       fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
&lt;br /&gt;
    $ sha1sum install.sh | grep 883c667e01eed62f975ad28b6d50e22a
&lt;br /&gt;
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
&lt;br /&gt;
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
&lt;br /&gt;
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
&lt;br /&gt;
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
&lt;br /&gt;
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
&lt;br /&gt;
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
&lt;br /&gt;
    $ bash install.sh
&lt;br /&gt;

&lt;br /&gt;
Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
&lt;br /&gt;

&lt;br /&gt;
When using programs that use GNU Parallel to process data for publication please cite:
&lt;br /&gt;

&lt;br /&gt;
O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
&lt;br /&gt;

&lt;br /&gt;
If you like GNU Parallel:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give a demo at your local user group/team/colleagues
&lt;/li&gt;
&lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
&lt;/li&gt;
&lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Request or write a review for your favourite blog or magazine
&lt;/li&gt;
&lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
&lt;/li&gt;
&lt;li&gt;Invite me for your next conference
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
If you use programs that use GNU Parallel for research:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
If GNU Parallel saves you money:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU SQL&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; 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.
&lt;br /&gt;

&lt;br /&gt;
The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
&lt;br /&gt;

&lt;br /&gt;
When using GNU SQL for a publication please cite:
&lt;br /&gt;

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

&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU Niceload&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Fri, 22 Nov 2024 22:22:18 +0000</pubDate>

</item> 
<item>
	<title>www-zh-cn @ Savannah: Welcome our new member - bingchuanjuzi</title>
	<guid>https://savannah.gnu.org/news/?id=10694</guid>
	<link>https://savannah.gnu.org/news/?id=10694</link>
     <description>  &lt;p&gt;Hi, All:
&lt;br /&gt;

&lt;br /&gt;
Please join me in welcoming our new member:
&lt;br /&gt;

&lt;br /&gt;
User Details:
&lt;br /&gt;
-------------
&lt;br /&gt;
Name:    Haoran Du
&lt;br /&gt;
Login:   bingchuanjuzi
&lt;br /&gt;
Email:   &lt;a href=&quot;mailto:dududu233@outlook.com&quot;&gt;dududu233@outlook.com&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
I wish bingchuanjuzi a wonderful journey in GNU CTT.
&lt;br /&gt;

&lt;br /&gt;
Happy Hacking
&lt;br /&gt;
wxie&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Thu, 21 Nov 2024 02:01:47 +0000</pubDate>

</item> 
<item>
	<title>libtool @ Savannah: libtool-2.5.4 released [stable]</title>
	<guid>https://savannah.gnu.org/news/?id=10693</guid>
	<link>https://savannah.gnu.org/news/?id=10693</link>
     <description>  &lt;p&gt;Libtoolers!
&lt;br /&gt;

&lt;br /&gt;
The Libtool Team is pleased to announce the release of libtool 2.5.4.
&lt;br /&gt;

&lt;br /&gt;
GNU Libtool hides the complexity of using shared libraries behind a
&lt;br /&gt;
consistent, portable interface. GNU Libtool ships with GNU libltdl, which
&lt;br /&gt;
hides the complexity of loading dynamic runtime libraries (modules)
&lt;br /&gt;
behind a consistent, portable interface.
&lt;br /&gt;

&lt;br /&gt;
There have been 49 commits by 16 people in the 8 weeks since 2.5.3.
&lt;br /&gt;

&lt;br /&gt;
See the NEWS below for a brief summary.
&lt;br /&gt;

&lt;br /&gt;
Thanks to everyone who has contributed!
&lt;br /&gt;
The following people contributed changes to this release:
&lt;br /&gt;

&lt;br /&gt;
  Adrien Destugues (1)
&lt;br /&gt;
  Alastair McKinstry (6)
&lt;br /&gt;
  Bruno Haible (1)
&lt;br /&gt;
  Ileana Dumitrescu (27)
&lt;br /&gt;
  Jerome Duval (1)
&lt;br /&gt;
  Jonathan Nieder (2)
&lt;br /&gt;
  Joshua Root (1)
&lt;br /&gt;
  Khalid Masum (1)
&lt;br /&gt;
  Markus Mützel (1)
&lt;br /&gt;
  Martin Storsjö (1)
&lt;br /&gt;
  Richard Purdie (1)
&lt;br /&gt;
  Sergey Poznyakoff (1)
&lt;br /&gt;
  Tim Schumacher (1)
&lt;br /&gt;
  Vincent Lefevre (2)
&lt;br /&gt;
  mintsuki (1)
&lt;br /&gt;
  streaksu (1)
&lt;br /&gt;

&lt;br /&gt;
Ileana
&lt;br /&gt;
 [on behalf of the libtool maintainers]
&lt;br /&gt;
==================================================================
&lt;br /&gt;

&lt;br /&gt;
Here is the GNU libtool home page:
&lt;br /&gt;
    &lt;a href=&quot;https://gnu.org/s/libtool/&quot;&gt;https://gnu.org/s/libtool/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
For a summary of changes and contributors, see:
&lt;br /&gt;
  &lt;a href=&quot;https://git.sv.gnu.org/gitweb/?p=libtool.git;a=shortlog;h=v2.5.4&quot;&gt;https://git.sv.gnu.org/gitweb/?p=libtool.git;a=shortlog;h=v2.5.4&lt;/a&gt;
&lt;br /&gt;
or run this command from a git-cloned libtool directory:
&lt;br /&gt;
  git shortlog v2.5.3..v2.5.4
&lt;br /&gt;

&lt;br /&gt;
Here are the compressed sources:
&lt;br /&gt;
  &lt;a href=&quot;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz&quot;&gt;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz&lt;/a&gt;   (2.0MB)
&lt;br /&gt;
  &lt;a href=&quot;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz&quot;&gt;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz&lt;/a&gt;   (1.1MB)
&lt;br /&gt;

&lt;br /&gt;
Here are the GPG detached signatures:
&lt;br /&gt;
  &lt;a href=&quot;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz.sig&quot;&gt;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz.sig&lt;/a&gt;
&lt;br /&gt;
  &lt;a href=&quot;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz.sig&quot;&gt;https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz.sig&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Use a mirror for higher download bandwidth:
&lt;br /&gt;
  &lt;a href=&quot;https://www.gnu.org/order/ftp.html&quot;&gt;https://www.gnu.org/order/ftp.html&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Here are the SHA1 and SHA256 checksums:
&lt;br /&gt;

&lt;br /&gt;
  77227188ead223ed8ba447301eda3761cb68ef57  libtool-2.5.4.tar.gz
&lt;br /&gt;
  2o67LOTc9GuQCY2vliz/po9LT2LqYPeY0O8Skp7eat8=  libtool-2.5.4.tar.gz
&lt;br /&gt;
  9781a113fe6af1b150571410b29d3eee2e792516  libtool-2.5.4.tar.xz
&lt;br /&gt;
  +B9YYGZrC8fYS63e+mDRy5+m/OsjmMw7rKavqmAmZnU=  libtool-2.5.4.tar.xz
&lt;br /&gt;

&lt;br /&gt;
Verify the base64 SHA256 checksum with cksum -a sha256 --check
&lt;br /&gt;
from coreutils-9.2 or OpenBSD&#39;s cksum since 2007.
&lt;br /&gt;

&lt;br /&gt;
Use a .sig file to verify that the corresponding file (without the
&lt;br /&gt;
.sig suffix) is intact.  First, be sure to download both the .sig file
&lt;br /&gt;
and the corresponding tarball.  Then, run a command like this:
&lt;br /&gt;

&lt;br /&gt;
  gpg --verify libtool-2.5.4.tar.gz.sig
&lt;br /&gt;

&lt;br /&gt;
The signature should match the fingerprint of the following key:
&lt;br /&gt;

&lt;br /&gt;
  pub   rsa4096 2021-09-23 [SC]
&lt;br /&gt;
        FA26 CA78 4BE1 8892 7F22  B99F 6570 EA01 146F 7354
&lt;br /&gt;
  uid   Ileana Dumitrescu &amp;lt;ileanadumi95@protonmail.com&amp;gt;
&lt;br /&gt;
  uid   Ileana Dumitrescu &amp;lt;ileanadumitrescu95@gmail.com&amp;gt;
&lt;br /&gt;

&lt;br /&gt;
If that command fails because you don&#39;t have the required public key,
&lt;br /&gt;
or that public key has expired, try the following commands to retrieve
&lt;br /&gt;
or refresh it, and then rerun the &#39;gpg --verify&#39; command.
&lt;br /&gt;

&lt;br /&gt;
  gpg --locate-external-key &lt;a href=&quot;mailto:ileanadumi95@protonmail.com&quot;&gt;ileanadumi95@protonmail.com&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
  gpg --recv-keys 6570EA01146F7354
&lt;br /&gt;

&lt;br /&gt;
  wget -q -O- &#39;&lt;a href=&quot;https://savannah.gnu.org/project/release-gpgkeys.php?group=libtool&amp;amp;download=1&quot;&gt;https://savannah.gnu.org/project/release-gpgkeys.php?group=libtool&amp;amp;download=1&lt;/a&gt;&#39; | gpg --import -
&lt;br /&gt;

&lt;br /&gt;
As a last resort to find the key, you can try the official GNU
&lt;br /&gt;
keyring:
&lt;br /&gt;

&lt;br /&gt;
  wget -q &lt;a href=&quot;https://ftp.gnu.org/gnu/gnu-keyring.gpg&quot;&gt;https://ftp.gnu.org/gnu/gnu-keyring.gpg&lt;/a&gt;
&lt;br /&gt;
  gpg --keyring gnu-keyring.gpg --verify libtool-2.5.4.tar.gz.sig
&lt;br /&gt;

&lt;br /&gt;
This release was bootstrapped with the following tools:
&lt;br /&gt;
  Autoconf 2.72e
&lt;br /&gt;
  Automake 1.17
&lt;br /&gt;
  Gnulib v1.0-1108-gea58a72d4d
&lt;br /&gt;

&lt;br /&gt;
NEWS
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Noteworthy changes in release 2.5.4 (2024-11-20) [stable]
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
** New features:
&lt;br /&gt;

&lt;br /&gt;
  - New libtool command line flag, --no-finish, to skip executing
&lt;br /&gt;
    finish_cmds that would alter the shared library cache during testing.
&lt;br /&gt;

&lt;br /&gt;
  - New libtool command line flag, --reorder-cache=DIRS, to reorder the
&lt;br /&gt;
    shared library cache, only on OpenBSD.
&lt;br /&gt;

&lt;br /&gt;
** Bug fixes:
&lt;br /&gt;

&lt;br /&gt;
  - Fix incorrect use of workarounds designed for Darwin versions that
&lt;br /&gt;
    don&#39;t have -single_module support.
&lt;br /&gt;

&lt;br /&gt;
  - Fix errors when executing &#39;make distclean&#39; and &#39;make maintainer-clean&#39;.
&lt;br /&gt;

&lt;br /&gt;
  - Fix bug where the constructed rpath omit directories, instead of
&lt;br /&gt;
    appending them to the end.
&lt;br /&gt;

&lt;br /&gt;
  - Fix configure error for when variable &#39;multlib&#39; is unset.
&lt;br /&gt;

&lt;br /&gt;
  - Fix searching for -L in link paths being over-greedy and incorrectly
&lt;br /&gt;
    handling paths with -L in them.
&lt;br /&gt;

&lt;br /&gt;
  - Avoid using AC_TRY_EVAL macro, &quot;dangerous and undocumented&quot;.
&lt;br /&gt;

&lt;br /&gt;
  - Fix linking libraries at runtime with tcc by adding run path.
&lt;br /&gt;

&lt;br /&gt;
  - Fix path comparison by removing trailing slashes on install commands.
&lt;br /&gt;

&lt;br /&gt;
  - Fix linking for mingw with lld by prefering response files over the
&lt;br /&gt;
    linker script.
&lt;br /&gt;

&lt;br /&gt;
  - Fix &#39;-Fe&#39; usage with linking in MSVC.
&lt;br /&gt;

&lt;br /&gt;
  - Fix &#39;--no-warnings&#39; flag.
&lt;br /&gt;

&lt;br /&gt;
  - Fix handling xlc(1)-specific options.
&lt;br /&gt;

&lt;br /&gt;
  - Fix Haiku support.
&lt;br /&gt;

&lt;br /&gt;
** Changes in supported systems or compilers:
&lt;br /&gt;

&lt;br /&gt;
  - Support additional flang-based compilers, &#39;f18&#39; and &#39;f95&#39;.
&lt;br /&gt;

&lt;br /&gt;
  - Support for &#39;netbsdelf*-gnu&#39;.
&lt;br /&gt;

&lt;br /&gt;
  - Support for &#39;*-mlibc&#39;, and subsequently Ironclad and Managarm.
&lt;br /&gt;

&lt;br /&gt;
  - Support for SerenityOS.
&lt;br /&gt;

&lt;br /&gt;
  - Support for wasm32-emscripten.
&lt;br /&gt;

&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Wed, 20 Nov 2024 20:27:33 +0000</pubDate>

</item> 
<item>
	<title>GNU Guix: Take the Guix User and Contributor Survey</title>
	<guid>https://guix.gnu.org/blog/2024/guix-user-contributor-survey-2024//</guid>
	<link>https://guix.gnu.org/blog/2024/guix-user-contributor-survey-2024//</link>
     <description>  &lt;p&gt;To understand the views of the Guix community we&#39;re running a survey that we&#39;d
love &lt;strong&gt;you&lt;/strong&gt; to take part in! The
&lt;a href=&quot;https://guix.limesurvey.net/&quot;&gt;Guix User and Contributor Survey&lt;/a&gt; is live
now, and should take about 10 minutes to fill out. Perfect for doing with a cup
of tea and a biscuit!&lt;/p&gt;&lt;p&gt;The Guix project continues to grow and change, with new contributors and users
joining our community. We decided to run this survey as it&#39;s the best way to
gather good quality feedback across the widest cross-section of the community.
Of course, there&#39;s lots of interesting topics a survey could ask about! We
decided to focus on how Guix is used, and how contributors take part in the
project.&lt;/p&gt;&lt;p&gt;The survey is being run on
&lt;a href=&quot;https://en.wikipedia.org/wiki/LimeSurvey&quot;&gt;LimeSurvey&lt;/a&gt; which is a Free Software
project and has been used by many other projects for similar surveys. The
survey&#39;s hosted on the &lt;a href=&quot;https://www.limesurvey.org/&quot;&gt;LimeSurvey SaaS&lt;/a&gt; so that we
don&#39;t have the additional task of operating the software. No personal data is
asked for (e.g. email addresses), no tracking data is being
collected (e.g. IP addresses) and the entries are anonymised.&lt;/p&gt;&lt;p&gt;We&#39;ll be making the results and the anonymised data available under the
&lt;a href=&quot;https://creativecommons.org/public-domain/cc0/&quot;&gt;Creative Commons CCO&lt;/a&gt;:
that way anyone can analyse the data for further insights.&lt;/p&gt;&lt;p&gt;We hope the results of the survey will be used to understand both the Guix
project&#39;s strengths and areas we can improve. Which is why your input is
so important.  If you can, please take the survey!&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://guix.limesurvey.net/&quot;&gt;Take the survey now!&lt;/a&gt;&lt;/p&gt; </description> 
	<pubDate>Sun, 10 Nov 2024 10:01:00 +0000</pubDate>

</item> 
<item>
	<title>GNUnet News: GNUnet 0.22.2</title>
	<guid>https://gnunet.org/en/news/2024-10-0.22.2.html</guid>
	<link>https://gnunet.org/en/news/2024-10-0.22.2.html</link>
     <description>  &lt;article id=&quot;newspost-content&quot;&gt;
 
  &lt;h1&gt;
   GNUnet 0.22.2
  &lt;/h1&gt;
  &lt;p&gt;
   This is a bugfix release for gnunet 0.22.1.
It fixes some regressions and minor bugs.
  &lt;/p&gt;
  &lt;p&gt;
  &lt;/p&gt;
  &lt;h4&gt;
   Links
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    Source:
    &lt;a href=&quot;https://ftpmirror.gnu.org/gnunet/gnunet-0.22.2.tar.gz&quot;&gt;
     https://ftpmirror.gnu.org/gnunet/gnunet-0.22.2.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;https://ftpmirror.gnu.org/gnunet/gnunet-0.22.2.tar.gz.sig&quot;&gt;
     https://ftpmirror.gnu.org/gnunet/gnunet-0.22.2.tar.gz.sig
    &lt;/a&gt;
    )
   &lt;/li&gt;
   &lt;li&gt;
    Source (meson):
    &lt;a href=&quot;https://buildbot.gnunet.org/releases/gnunet-0.22.2-meson.tar.gz&quot;&gt;
     https://buildbot.gnunet.org/releases/gnunet-0.22.2-meson.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;https://buildbot.gnunet.org/releases/gnunet-0.22.2-meson.tar.gz.sig&quot;&gt;
     https://buildbot.gnunet.org/releases/gnunet-0.22.2-meson.tar.gz.sig
    &lt;/a&gt;
    )
   &lt;/li&gt;
   &lt;li&gt;
    Detailed list of changes:
    &lt;a href=&quot;https://git.gnunet.org/gnunet.git/log/?h=v0.22.2&quot;&gt;
     https://git.gnunet.org/gnunet.git/log/?h=v0.22.2
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    NEWS:
    &lt;a href=&quot;https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.22.2&quot;&gt;
     https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.22.2
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    The list of closed issues in the bug tracker:
    &lt;a href=&quot;https://bugs.gnunet.org/changelog_page.php?version_id=459&quot;&gt;
     https://bugs.gnunet.org/changelog_page.php?version_id=459
    &lt;/a&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   The GPG key used to sign is:
   &lt;a href=&quot;https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A&quot;&gt;
    3D11063C10F98D14BD24D1470B0998EF86F59B6A
   &lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
   Note that due to mirror synchronization, not all links may be functional
early after the release. For direct access try
   &lt;a href=&quot;https://ftp.gnu.org/gnu/gnunet/&quot;&gt;
    https://ftp.gnu.org/gnu/gnunet/
   &lt;/a&gt;
  &lt;/p&gt;
 
&lt;/article&gt; </description> 
	<pubDate>Mon, 28 Oct 2024 23:00:00 +0000</pubDate>

</item> 
<item>
	<title>Parabola GNU/Linux-libre: manual intervention required for local pacman repositories</title>
	<guid>tag:parabolagnulinux.org,2024-10-24:/news/manual-intervention-required-for-local-pacman-repositories/</guid>
	<link>https://parabolagnulinux.org/news/manual-intervention-required-for-local-pacman-repositories/</link>
     <description>  &lt;p&gt;NOTE: pacman v7 is currently in [libre-testing]; but it will be promoted to libre soon&lt;/p&gt;
&lt;p&gt;from arch:&lt;/p&gt;
&lt;p&gt;With the release of [version 7.0.0] pacman has added support for
downloading packages as a separate user with dropped privileges.&lt;/p&gt;
&lt;p&gt;For users with local repos however this might imply that the download
user does not have access to the files in question, which can be fixed
by assigning the files and folder to the &lt;code&gt;alpm&lt;/code&gt; group and ensuring the
executable bit (&lt;code&gt;+x&lt;/code&gt;) is set on the folders in question.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ chown :alpm -R /path/to/local/repo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remember to [merge the .pacnew] files to apply the new default.&lt;/p&gt;
&lt;p&gt;Pacman also introduced [a change] to improve checksum stability for
git repos that utilize &lt;code&gt;.gitattributes&lt;/code&gt; files. This might require a
one-time checksum change for &lt;code&gt;PKGBUILD&lt;/code&gt;s that use git sources.&lt;/p&gt; </description> 
	<pubDate>Thu, 24 Oct 2024 06:11:30 +0000</pubDate>

</item> 
<item>
	<title>www-ru @ Savannah: Разговор о свободных программах в Москве</title>
	<guid>https://savannah.gnu.org/news/?id=10688</guid>
	<link>https://savannah.gnu.org/news/?id=10688</link>
     <description>  &lt;p&gt;Компьютеры и сети содействуют нам в борьбе за свободу: они помогают посвятить время и силы важным общественным инициативам, организовывать протесты, защищаться от цензуры.
&lt;br /&gt;

&lt;br /&gt;
Но свободны ли наши компьютеры?  И свободны ли мы как пользователи?
&lt;br /&gt;

&lt;br /&gt;
Обсудим эти вопросы 25 октября в 19:00 в &lt;a href=&quot;https://ospace.org/&quot;&gt;Открытом пространстве&lt;/a&gt; с Глебом Ерофеевым — активистом движения за свободные программы и волонтёром проекта &quot;ГНУ&quot;, который в 1983 году запустил философ и активист Ричард Столлман.
&lt;br /&gt;

&lt;br /&gt;
Команда проекта &quot;ГНУ&quot; занимается разработкой свободного софта и техноэтическим активизмом, чтобы дать пользователям контроль над их компьютерами и искоренить несправедливость, которую приносят в общество собственнические программы.
&lt;br /&gt;

&lt;br /&gt;
Адрес: Плетешковский пер., 8с1 (м. &quot;Бауманская&quot;).
&lt;br /&gt;

&lt;br /&gt;
Участие бесплатно.  Приветствуются пожертвования в пользу пространства.&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Wed, 23 Oct 2024 13:17:54 +0000</pubDate>

</item> 
<item>
	<title>FSF News: FSF is working on freedom in machine learning applications</title>
	<guid>http://www.fsf.org/news/fsf-is-working-on-freedom-in-machine-learning-applications</guid>
	<link>http://www.fsf.org/news/fsf-is-working-on-freedom-in-machine-learning-applications</link>
     <description>  BOSTON (October 22, 2024) -- The Free Software Foundation (FSF) has announced today that it is working on a statement of criteria for free machine learning applications, which will require the software, as well as the raw training data and associated scripts, to grant users the four freedoms. </description> 
	<pubDate>Tue, 22 Oct 2024 21:40:00 +0000</pubDate>

</item> 
<item>
	<title>FSF News: FSF associate members to assist in review of current board members</title>
	<guid>http://www.fsf.org/news/fsf-associate-members-to-assist-in-review-current-board-members</guid>
	<link>http://www.fsf.org/news/fsf-associate-members-to-assist-in-review-current-board-members</link>
    
	<pubDate>Mon, 21 Oct 2024 20:00:00 +0000</pubDate>

</item> 
<item>
	<title>parallel @ Savannah: GNU Parallel 20241022 (&#39;Sinwar Nasrallah&#39;) released [stable]</title>
	<guid>https://savannah.gnu.org/news/?id=10687</guid>
	<link>https://savannah.gnu.org/news/?id=10687</link>
     <description>  &lt;p&gt;GNU Parallel 20241022 (&#39;Sinwar Nasrallah&#39;) has been released. It is available for download at: lbry://@GnuParallel:4
&lt;br /&gt;

&lt;br /&gt;
Quote of the month:
&lt;br /&gt;

&lt;br /&gt;
  GNU Parallel is one of the most helpful tools I&#39;ve been using recently, and it&#39;s just something like: parallel -j4 &#39;gzip {}&#39; ::: folder/*.csv
&lt;br /&gt;
     -- Milton Pividori @miltondp@twitter
&lt;br /&gt;
  
&lt;br /&gt;
New in this release:
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No new features. This is a candidate for a stable release.
&lt;/li&gt;
&lt;li&gt;Bug fixes and man page updates.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
News about GNU Parallel:
&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Separate arguments with a custom separator in GNU Parallel &lt;a href=&quot;https://boxofcuriosities.co.uk/post/separate-arguments-with-a-custom-separator-in-gnu-parallel&quot;&gt;https://boxofcuriosities.co.uk/post/separate-arguments-with-a-custom-separator-in-gnu-parallel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GNU parallel is underrated &lt;a href=&quot;https://amontalenti.com/2021/11/10/parallel&quot;&gt;https://amontalenti.com/2021/11/10/parallel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Unlocking the Power of Supercomputers: My HPC Adventure with 2800 Cores and GNU Parallel &lt;a href=&quot;https://augalip.com/2024/03/10/unlocking-the-power-of-supercomputers-my-hpc-adventure-with-2800-cores-and-gnu-parallel/&quot;&gt;https://augalip.com/2024/03/10/unlocking-the-power-of-supercomputers-my-hpc-adventure-with-2800-cores-and-gnu-parallel/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Converting WebP Images to PNG Using parallel and dwebp &lt;a href=&quot;https://bytefreaks.net/gnulinux/bash/converting-webp-images-to-png-using-parallel-and-dwebp&quot;&gt;https://bytefreaks.net/gnulinux/bash/converting-webp-images-to-png-using-parallel-and-dwebp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
GNU Parallel - For people who live life in the parallel lane.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU Parallel&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
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.
&lt;br /&gt;

&lt;br /&gt;
For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
&lt;br /&gt;

&lt;br /&gt;
  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
&lt;br /&gt;

&lt;br /&gt;
Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
&lt;br /&gt;

&lt;br /&gt;
  find . -name &#39;*.jpg&#39; |
&lt;br /&gt;
    parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
&lt;br /&gt;

&lt;br /&gt;
You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
You can install GNU Parallel in just 10 seconds with:
&lt;br /&gt;

&lt;br /&gt;
    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
&lt;br /&gt;
       fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
&lt;br /&gt;
    $ sha1sum install.sh | grep 883c667e01eed62f975ad28b6d50e22a
&lt;br /&gt;
    12345678 883c667e 01eed62f 975ad28b 6d50e22a
&lt;br /&gt;
    $ md5sum install.sh | grep cc21b4c943fd03e93ae1ae49e28573c0
&lt;br /&gt;
    cc21b4c9 43fd03e9 3ae1ae49 e28573c0
&lt;br /&gt;
    $ sha512sum install.sh | grep ec113b49a54e705f86d51e784ebced224fdff3f52
&lt;br /&gt;
    79945d9d 250b42a4 2067bb00 99da012e c113b49a 54e705f8 6d51e784 ebced224
&lt;br /&gt;
    fdff3f52 ca588d64 e75f6033 61bd543f d631f592 2f87ceb2 ab034149 6df84a35
&lt;br /&gt;
    $ bash install.sh
&lt;br /&gt;

&lt;br /&gt;
Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
&lt;br /&gt;

&lt;br /&gt;
When using programs that use GNU Parallel to process data for publication please cite:
&lt;br /&gt;

&lt;br /&gt;
O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
&lt;br /&gt;

&lt;br /&gt;
If you like GNU Parallel:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give a demo at your local user group/team/colleagues
&lt;/li&gt;
&lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
&lt;/li&gt;
&lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Request or write a review for your favourite blog or magazine
&lt;/li&gt;
&lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
&lt;/li&gt;
&lt;li&gt;Invite me for your next conference
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
If you use programs that use GNU Parallel for research:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
If GNU Parallel saves you money:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU SQL&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; 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.
&lt;br /&gt;

&lt;br /&gt;
The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
&lt;br /&gt;

&lt;br /&gt;
When using GNU SQL for a publication please cite:
&lt;br /&gt;

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

&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;h2&gt;About GNU Niceload&lt;/h2&gt;
&lt;p&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Mon, 21 Oct 2024 19:31:05 +0000</pubDate>

</item> 
<item>
	<title>GNU Health: GHCon2024, the GNU Health Conference . Palermo, Italy</title>
	<guid>https://my.gnusolidario.org/?p=2052</guid>
	<link>https://my.gnusolidario.org/2024/10/19/ghcon2024-the-gnu-health-conference-palermo-italy/</link>
     <description>  &lt;p&gt;Dear community:&lt;br /&gt;&lt;br /&gt;We’re excited to announce the IX International GNU Health Conference, that will take place in beautiful Sicily, Italy, at the University of Palermo this December 15th.&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-large is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2053&quot; height=&quot;312&quot; src=&quot;https://my.gnusolidario.org/wp-content/uploads/2024/10/image-1024x312.png&quot; style=&quot;width: 584px; height: auto;&quot; width=&quot;1024&quot; /&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;Mount Etna rising over suburbs of Catania, Sicily (Wikimedia)&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;The GNU Health Conference (GHCon) is the annual conference that brings together enthusiasts and developers of GNU Health, the Libre digital  health ecosystem. The conference will have thematic sessions, lightning talks and implementation cases to get to know the GNU Health and other Free/Libre software communities from around the world.&lt;/p&gt;



&lt;p&gt;We will show the upcoming features of the Health and Hospital Information System, standards, security, privacy, the GNU Health Federation and MyGNUHealth (the Personal Health Record).&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;


&lt;div class=&quot;wp-block-image&quot;&gt;
&lt;figure class=&quot;aligncenter size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2080&quot; height=&quot;275&quot; src=&quot;https://my.gnusolidario.org/wp-content/uploads/2024/10/image-2.png&quot; width=&quot;763&quot; /&gt;&lt;figcaption class=&quot;wp-element-caption&quot;&gt;GHCon2024 – The IX International GNU Health Conference&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;


&lt;p&gt;&lt;br /&gt;The XVII International Workshop on eHealth in Emerging Economies (IWEEE)  is about Social Medicine and addressing the reality of the underprivileged around the world. There will be workshops to debate, and share experiences from humanitarian organizations and from those working in field of Social Medicine.&lt;br /&gt;&lt;br /&gt;In the evening we will announce and honor the winners of the &lt;strong&gt;GNU Health Social Medicine awards.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We are counting on you to get the most out of the conference. Most importantly, we want you to have fun, feel at home, and enjoy being part&lt;br /&gt; of the GNU Health community.&lt;/p&gt;



&lt;p&gt;Looking forward to seeing you in Sicily!&lt;br /&gt;&lt;br /&gt;Happy Hacking!&lt;br /&gt;&lt;br /&gt;GHCon2024 homepage: &lt;a href=&quot;https://www.gnuhealth.org/ghcon&quot;&gt;https://www.gnuhealth.org/ghcon&lt;/a&gt;&lt;br /&gt;Registration: &lt;a href=&quot;https://my.gnusolidario.org/ghcon2024-registration/&quot;&gt;https://my.gnusolidario.org/ghcon2024-registration/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;



&lt;p&gt;Follow us in Mastodon (&lt;a href=&quot;https://mastodon.social/@gnuhealth&quot;&gt;https://mastodon.social/@gnuhealth&lt;/a&gt;) for the latest news.&lt;/p&gt;



&lt;p&gt;You can share the news using the tag &lt;strong&gt;#GHCon2024&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;



&lt;p&gt;&lt;/p&gt;



&lt;p&gt;&lt;/p&gt; </description> 
	<pubDate>Sat, 19 Oct 2024 17:30:49 +0000</pubDate>

</item> 
<item>
	<title>gnuboot @ Savannah: Nonfree software found in GNU Boot releases again, many distros affected.</title>
	<guid>https://savannah.gnu.org/news/?id=10684</guid>
	<link>https://savannah.gnu.org/news/?id=10684</link>
     <description>  &lt;p&gt;The GNU Boot project previously found nonfree microcode in the first
&lt;br /&gt;
RC1 release (in gnuboot-0.1-rc1_src.tar.xz to be exact).
&lt;br /&gt;

&lt;br /&gt;
This was announced in the &quot;GNU Boot December 2023 News&quot;
&lt;br /&gt;
(&lt;a href=&quot;https://lists.gnu.org/archive/html/gnuboot-announce/2023-12/msg00000.html&quot;&gt;https://lists.gnu.org/archive/html/gnuboot-announce/2023-12/msg00000.html&lt;/a&gt;). It
&lt;br /&gt;
was fixed by re-making the affected tarball by hand with the nonfree
&lt;br /&gt;
software removed and by contacting Canoeboot that had the same issue,
&lt;br /&gt;
and by bug reporting and proposing patches to fix the issue in Guix as
&lt;br /&gt;
well (they are still pending as we need to find a reviewer familiar
&lt;br /&gt;
with Coreboot).
&lt;br /&gt;

&lt;br /&gt;
But recently we found a more problematic issue that also affects many
&lt;br /&gt;
more distributions and all the previous GNU Boot release candidates.
&lt;br /&gt;

&lt;br /&gt;
The vboot source code used in Coreboot and in the vboot-utils package
&lt;br /&gt;
available in many GNU/Linux distributions contains nonfree code in
&lt;br /&gt;
their test data in tests/futility/data (nonfree microcode, nonfree
&lt;br /&gt;
BIOS, nonfree Management Engine firmwares, etc).
&lt;br /&gt;

&lt;br /&gt;
So we had to re-release all the affected tarballs (like
&lt;br /&gt;
gnuboot-0.1-rc1_src.tar.xz, gnuboot-0.1-rc2_src.tar.xz, etc).
&lt;br /&gt;

&lt;br /&gt;
We made and we improved the process along the way (we now store the
&lt;br /&gt;
changes in tag inside our git repository and simply regenerate the
&lt;br /&gt;
tarballs with the build system that is available for a given tag).
&lt;br /&gt;

&lt;br /&gt;
We are also in the process of contacting distributions and/or
&lt;br /&gt;
coordinating with them and we also need help as there are many
&lt;br /&gt;
distributions to contact.
&lt;br /&gt;

&lt;br /&gt;
To do that we started contacting the free GNU/Linux distros
&lt;br /&gt;
(&lt;a href=&quot;https://www.gnu.org/distros/free-distros.html&quot;&gt;https://www.gnu.org/distros/free-distros.html&lt;/a&gt;) that ship the vboot
&lt;br /&gt;
source code. We also contacted Replicant that is a free Android distro
&lt;br /&gt;
that also ships vboot source code.
&lt;br /&gt;

&lt;br /&gt;
We also started to contact common distros that require certain
&lt;br /&gt;
repositories to only have free software (so far we only contacted
&lt;br /&gt;
Debian as that will help Trisquel fix the issue, but we also need to
&lt;br /&gt;
contact Fedora for instance). Finding which distro to contact is made
&lt;br /&gt;
much easier thanks to GNU&#39;s review of common distros policies
&lt;br /&gt;
(&lt;a href=&quot;https://www.gnu.org/distros/common-distros.html&quot;&gt;https://www.gnu.org/distros/common-distros.html&lt;/a&gt;).
&lt;br /&gt;

&lt;br /&gt;
We coordinate that work on our bug report system at Savannah,
&lt;br /&gt;
especially in the &lt;i&gt;&lt;a href=&quot;https://savannah.gnu.org/bugs/?66246&quot;&gt;bug #66246&lt;/a&gt;&lt;/i&gt;
&lt;br /&gt;
(&lt;a href=&quot;https://savannah.gnu.org/bugs/index.php?66246&quot;&gt;https://savannah.gnu.org/bugs/index.php?66246&lt;/a&gt;).&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Sat, 19 Oct 2024 13:27:22 +0000</pubDate>

</item> 
<item>
	<title>health @ Savannah: GHcon2024, the GNUHealth Conference will be in Palermo, Italy - December 15th</title>
	<guid>https://savannah.gnu.org/news/?id=10683</guid>
	<link>https://savannah.gnu.org/news/?id=10683</link>
     <description>  &lt;p&gt;Dear community:
&lt;br /&gt;

&lt;br /&gt;
We&#39;re excited to announce the IX International GNU Health Conference, that will take place in beautiful Sicily, Italy, at the University of Palermo this December 15th.
&lt;br /&gt;

&lt;br /&gt;
The GNU Health Conference (GHCon) is the annual conference that brings together enthusiasts and developers of GNU Health, the Libre digital health ecosystem. The conference will have thematic sessions, lightning talks and implementation cases to get to know the GNU Health and other Free/Libre software communities from around the world.
&lt;br /&gt;

&lt;br /&gt;
We will show the upcoming features of the Health and Hospital Information System, standards, security, privacy, the GNU Health Federation and MyGNUHealth (the Personal Health Record)
&lt;br /&gt;

&lt;br /&gt;
The XVII International Workshop on eHealth in Emerging Economies (IWEEE) is about Social Medicine and addressing the reality of the underprivileged around the world. There will be workshops to debate, and share experiences from humanitarian organizations and from those working in field of Social Medicine.
&lt;br /&gt;

&lt;br /&gt;
In the evening we will announce and honor the winners of the GNU Health Social Medicine awards.
&lt;br /&gt;

&lt;br /&gt;
We are counting on you to get the most out of the conference. Most importantly, we want you to have fun, feel at home, and enjoy being part of the GNU Health community.
&lt;br /&gt;

&lt;br /&gt;
Happy Hacking!
&lt;br /&gt;

&lt;br /&gt;
Homepage: &lt;a href=&quot;https://www.gnuhealth.org/ghcon&quot;&gt;https://www.gnuhealth.org/ghcon&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Registration: &lt;a href=&quot;https://my.gnusolidario.org/ghcon2024-registration/&quot;&gt;https://my.gnusolidario.org/ghcon2024-registration/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Follow us in Mastodon (&lt;a href=&quot;https://mastodon.social/@gnuhealth&quot;&gt;https://mastodon.social/@gnuhealth&lt;/a&gt;) for the latest news.
&lt;br /&gt;

&lt;br /&gt;
You can share the news using the tag #GHCon2024&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Sat, 19 Oct 2024 08:46:46 +0000</pubDate>

</item> 
<item>
	<title>libunistring @ Savannah: GNU libunistring-1.3 released</title>
	<guid>https://savannah.gnu.org/news/?id=10682</guid>
	<link>https://savannah.gnu.org/news/?id=10682</link>
     <description>  &lt;p&gt;Download from &lt;a href=&quot;https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.gz&quot;&gt;https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.gz&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
This is a stable release.
&lt;br /&gt;

&lt;br /&gt;
New in this release:
&lt;br /&gt;

&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The data tables and algorithms have been updated to Unicode version 16.0.0.
&lt;/li&gt;
&lt;li&gt;New function uc_is_property_modifier_combining_mark and new constant UC_PROPERTY_MODIFIER_COMBINING_MARK.
&lt;/li&gt;
&lt;li&gt;Fixed a bug in the *printf functions: The %ls and %lc directives could lead to a crash on Solaris and MSVC.
&lt;/li&gt;
&lt;/ul&gt; </description> 
	<pubDate>Wed, 16 Oct 2024 18:49:44 +0000</pubDate>

</item> 
<item>
	<title>GNUnet News: GNUnet 0.22.1</title>
	<guid>https://gnunet.org/en/news/2024-10-0.22.1.html</guid>
	<link>https://gnunet.org/en/news/2024-10-0.22.1.html</link>
     <description>  &lt;article id=&quot;newspost-content&quot;&gt;
 
  &lt;h1&gt;
   GNUnet 0.22.1
  &lt;/h1&gt;
  &lt;p&gt;
   This is a bugfix release for gnunet 0.22.0.
It addresses some issues in HELLO URI handling and formatting as
well as regressions in the DHT subsystem along with other bug fixes.
  &lt;/p&gt;
  &lt;p&gt;
  &lt;/p&gt;
  &lt;h4&gt;
   Links
  &lt;/h4&gt;
  &lt;ul&gt;
   &lt;li&gt;
    Source:
    &lt;a href=&quot;https://ftpmirror.gnu.org/gnunet/gnunet-0.22.1.tar.gz&quot;&gt;
     https://ftpmirror.gnu.org/gnunet/gnunet-0.22.1.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;https://ftpmirror.gnu.org/gnunet/gnunet-0.22.1.tar.gz.sig&quot;&gt;
     https://ftpmirror.gnu.org/gnunet/gnunet-0.22.1.tar.gz.sig
    &lt;/a&gt;
    )
   &lt;/li&gt;
   &lt;li&gt;
    Source (meson):
    &lt;a href=&quot;https://buildbot.gnunet.org/releases/gnunet-0.22.1-meson.tar.gz&quot;&gt;
     https://buildbot.gnunet.org/gnunet-0.22.1-meson.tar.gz
    &lt;/a&gt;
    (
    &lt;a href=&quot;https://buildbot.gnunet.org/gnunet-0.22.1-meson.tar.gz.sig&quot;&gt;
     https://buildbot.gnunet.org/gnunet-0.22.1-meson.tar.gz.sig
    &lt;/a&gt;
    )
   &lt;/li&gt;
   &lt;li&gt;
    Detailed list of changes:
    &lt;a href=&quot;https://git.gnunet.org/gnunet.git/log/?h=v0.22.1&quot;&gt;
     https://git.gnunet.org/gnunet.git/log/?h=v0.22.1
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    NEWS:
    &lt;a href=&quot;https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.22.1&quot;&gt;
     https://git.gnunet.org/gnunet.git/tree/NEWS?h=v0.22.1
    &lt;/a&gt;
   &lt;/li&gt;
   &lt;li&gt;
    The list of closed issues in the bug tracker:
    &lt;a href=&quot;https://bugs.gnunet.org/changelog_page.php?version_id=457&quot;&gt;
     https://bugs.gnunet.org/changelog_page.php?version_id=457
    &lt;/a&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p&gt;
   The GPG key used to sign is:
   &lt;a href=&quot;https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A&quot;&gt;
    3D11063C10F98D14BD24D1470B0998EF86F59B6A
   &lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
   Note that due to mirror synchronization, not all links may be functional
early after the release. For direct access try
   &lt;a href=&quot;https://ftp.gnu.org/gnu/gnunet/&quot;&gt;
    https://ftp.gnu.org/gnu/gnunet/
   &lt;/a&gt;
  &lt;/p&gt;
 
&lt;/article&gt; </description> 
	<pubDate>Wed, 09 Oct 2024 22:00:00 +0000</pubDate>

</item> 
<item>
	<title>FSF News: Free Software Foundation to serve on &quot;artificial intelligence&quot; safety consortium</title>
	<guid>http://www.fsf.org/news/fsf-serves-on-nist</guid>
	<link>http://www.fsf.org/news/fsf-serves-on-nist</link>
     <description>  BOSTON (October 8, 2024) -- The Free Software Foundation (FSF) has
announced that it is taking part in the US National Institute of
Standards and Technology (NIST)&#39;s consortium on the safety of
(so-called) artificial intelligence, particularly with reference to
&quot;generative&quot; AI systems. The FSF will ensure the free software
perspective is adequately represented in these discussions. </description> 
	<pubDate>Wed, 09 Oct 2024 14:05:00 +0000</pubDate>

</item> 
<item>
	<title>health @ Savannah: Time to take back the Internet</title>
	<guid>https://savannah.gnu.org/news/?id=10677</guid>
	<link>https://savannah.gnu.org/news/?id=10677</link>
     <description>  &lt;p&gt;It’s no news. They’re stealing the Internet from us and we must do something about it. What it used to be a fun, collaborative hacking space is now ruled by corporations and narcissistic billionaires. Proprietary centralized social networks have become a space for hate, discrimination and propaganda. The messages that you see are those that they want you to see. Your data is no longer yours. They have become a massive thought control machine. You read what they want you to read and, in the end, you will end up writing and doing what they want you to write and to do. It’s a matter of time and money, and they have both.
&lt;br /&gt;

&lt;br /&gt;
These corporate-driven social networks are deceiving. They make us fall into false assumptions in a distorted reality. This delusion hits both individuals and organizations. For instance, in GNU Solidario and GNU Health, we fight for Social Medicine and for the rights of human and non-human animals. When we want to share an event, to make a fundraising campaign or to denounce human or animal rights violations we want the message to reach out as many people as possible. We could think, why not share it with our followers on Twitter / X? Experience has it, corporate social networks have not really made a difference in the outcomes. They will promote or “shadow ban” the message depending on who wrote it. You can guess the results for those who fight against neoliberal capitalism.
&lt;br /&gt;

&lt;br /&gt;
Social pressure exists, and is not trivial to overcome. Many fear that leaving proprietary centralized social networks that have been using for years will result in losing the status and contacts they’ve built throughout the years. Again, it’s not really a big deal. And we have great news, there are decentralized, community-driven alternatives! Some of those alternatives are Mastodon, Friendica or Diaspora. Not only social networks, today there is an free software alternative to pretty much any proprietary solution (search engines, scientific programs, multimedia, office suites, databases, games…)
&lt;br /&gt;

&lt;br /&gt;
There is a correlation between Free Software, freedom and privacy. The more Free Software, the more freedom and privacy you enjoy. The contrary also applies: Proprietary software is inversely proportional to our freedom, both at individual and collective level. There is no transparency, no privacy, no control, no rights in proprietary applications, networks or clouds.
&lt;br /&gt;

&lt;br /&gt;
In the last decades, the tech giants have been busy in a campaign to dismantle the Free Software philosophy and community. The “open source” euphemism is one of them. Richard Stallman (creator of the GNU project and the Free Software Foundation) has been warning us about the dangers of “Open Source”. Free societies are built with free software, not with open source. I know some members in the free software community use both terms interchangeably, but I am convinced using the “Free Software” terms not only delivers software, but also freedom to our society.
&lt;br /&gt;

&lt;br /&gt;
Internet is no longer fun or empathetic. It has become a hostile and toxic environment, the medium for corporations and elites that increase concentration of power, social gradient and create very unjust societies. They use our data to control individuals and governments. We certainly don’t want to be part of that.
&lt;br /&gt;

&lt;br /&gt;
It is our moral duty to bring back spirit of solidarity that RMS delivered in the late 80’s, and that made possible the GNU movement, the best operating systems, programming languages, web servers and database engines for everyone. The GNU project was the inspiration for projects like GNU Health, helping millions around the globe, delivering freedom and equity in healthcare.
&lt;br /&gt;

&lt;br /&gt;
In the end, it is up to us to embrace federated, community driven social networks and free software applications. Millions of individuals, activists, free software projects, NGOs and even the European Union have already joined the Fediverse and Mastodon. It only takes an initial push to break the social pressure to set ourselves and our societies free.
&lt;br /&gt;

&lt;br /&gt;
Citing our friends from GNUnet: “You broke the Internet… we’ll build a GNU one”.
&lt;br /&gt;

&lt;br /&gt;
Happy hacking!
&lt;br /&gt;

&lt;br /&gt;
Follow us in Mastodon: &lt;a href=&quot;https://mastodon.social/@gnuhealth&quot;&gt;https://mastodon.social/@gnuhealth&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Original post: &lt;a href=&quot;https://my.gnusolidario.org/2024/09/26/time-to-take-back-the-internet/&quot;&gt;https://my.gnusolidario.org/2024/09/26/time-to-take-back-the-internet/&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt; </description> 
	<pubDate>Thu, 26 Sep 2024 18:08:49 +0000</pubDate>

</item> 
</channel>
</rss>
