Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://planet.ubuntu.com/rss20.xml

  1. <?xml version="1.0"?>
  2. <rss version="2.0">
  3.  
  4. <channel>
  5. <title>Planet Ubuntu</title>
  6. <link>http://planet.ubuntu.com/</link>
  7. <language>en</language>
  8. <description>Planet Ubuntu - http://planet.ubuntu.com/</description>
  9.  
  10. <item>
  11. <title>The Fridge: Ubuntu Weekly Newsletter Issue 888</title>
  12. <guid isPermaLink="false">https://fridge.ubuntu.com/?p=10490</guid>
  13. <link>https://fridge.ubuntu.com/2025/04/21/ubuntu-weekly-newsletter-issue-888/</link>
  14. <description>&lt;figure class=&quot;wp-block-image&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://fridge.ubuntu.com/wp-content/uploads/2020/02/c9d7/header.png&quot; /&gt;&lt;/figure&gt;
  15.  
  16.  
  17.  
  18. &lt;p&gt;Welcome to the Ubuntu Weekly Newsletter, &lt;strong&gt;Issue 888 for the week of April 13 – 19, 2025&lt;/strong&gt;. The full version of this issue is available &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-weekly-newsletter-issue-888/59139&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
  19.  
  20.  
  21.  
  22. &lt;p&gt;In this issue we cover:&lt;/p&gt;
  23.  
  24.  
  25.  
  26. &lt;ul&gt;&lt;li&gt;Ubuntu 25.04 (Plucky Puffin) released&lt;/li&gt;&lt;li&gt;Questing Quokka Release Notes&lt;/li&gt;&lt;li&gt;Extended Security Maintenance for Ubuntu 20.04 (Focal Fossa) begins May 29, 2025&lt;/li&gt;&lt;li&gt;Welcome New Members and Developers&lt;/li&gt;&lt;li&gt;Ubuntu Stats&lt;/li&gt;&lt;li&gt;Hot in Support&lt;/li&gt;&lt;li&gt;LXD: Weekly news #391&lt;/li&gt;&lt;li&gt;Other Meeting Reports&lt;/li&gt;&lt;li&gt;Upcoming Meetings and Events&lt;/li&gt;&lt;li&gt;UbuCon Korea 2025 발표 제안서 모집 안내&lt;/li&gt;&lt;li&gt;CFP is now closed for UbuCon Asia 2025&lt;/li&gt;&lt;li&gt;LoCo Events&lt;/li&gt;&lt;li&gt;Lubuntu Council Elections 2025&lt;/li&gt;&lt;li&gt;Canonical News&lt;/li&gt;&lt;li&gt;In the Blogosphere&lt;/li&gt;&lt;li&gt;Featured Audio and Video&lt;/li&gt;&lt;li&gt;Updates and Security for Ubuntu 20.04, 22.04, 24.04, and 24.10&lt;/li&gt;&lt;li&gt;And much more!&lt;/li&gt;&lt;/ul&gt;
  27.  
  28.  
  29.  
  30. &lt;p&gt;&lt;strong&gt;The Ubuntu Weekly Newsletter is brought to you by:&lt;/strong&gt;&lt;/p&gt;
  31.  
  32.  
  33.  
  34. &lt;ul&gt;&lt;li&gt;Krytarik Raido&lt;/li&gt;&lt;li&gt;Bashing-om&lt;/li&gt;&lt;li&gt;Chris Guiver&lt;/li&gt;&lt;li&gt;Wild Man&lt;/li&gt;&lt;li&gt;Din Mušić – LXD&lt;/li&gt;&lt;li&gt;And many others&lt;/li&gt;&lt;/ul&gt;
  35.  
  36.  
  37.  
  38. &lt;p&gt;If you have a story idea for the Weekly Newsletter, join the &lt;a href=&quot;https://lists.ubuntu.com/mailman/listinfo/Ubuntu-news-team&quot;&gt;Ubuntu News Team mailing list&lt;/a&gt; and submit it. Ideas can also be added to the &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-weekly-newsletter-ideas/40053&quot;&gt;wiki&lt;/a&gt;!&lt;/p&gt;
  39.  
  40.  
  41.  
  42. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignleft&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://fridge.ubuntu.com/wp-content/uploads/2015/05/ab28/CCL.png&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  43.  
  44.  
  45.  
  46. &lt;p&gt;&lt;a href=&quot;https://fridge.ubuntu.com/2025/04/21/ubuntu-weekly-newsletter-issue-888/&quot;&gt;&lt;/a&gt;.&lt;/p&gt;</description>
  47. <pubDate>Mon, 21 Apr 2025 21:48:17 +0000</pubDate>
  48. </item>
  49. <item>
  50. <title>Faizul &quot;Piju&quot; 9M2PJU: Understanding Yagi-Uda’s dipole Program for Antenna Analysis</title>
  51. <guid isPermaLink="false">https://hamradio.my/?p=7074</guid>
  52. <link>https://hamradio.my/2025/04/understanding-yagi-udas-dipole-program-for-antenna-analysis/</link>
  53. <description>&lt;h1 class=&quot;wp-block-heading&quot; id=&quot;h-&quot;&gt;&lt;/h1&gt;
  54.  
  55.  
  56.  
  57. &lt;p&gt;The &lt;code&gt;dipole&lt;/code&gt; program is part of the Yagi-Uda project, a collection of tools designed for the analysis and optimization of Yagi-Uda antennas. This particular tool calculates the impedance of a single dipole, making it a useful utility for antenna engineers and amateur radio enthusiasts.&lt;/p&gt;
  58.  
  59.  
  60.  
  61. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-installation-on-ubuntu-debian&quot;&gt;Installation on Ubuntu/Debian&lt;/h2&gt;
  62.  
  63.  
  64.  
  65. &lt;p&gt;To install the Yagi-Uda software suite, including &lt;code&gt;dipole&lt;/code&gt;, run the following command:&lt;/p&gt;
  66.  
  67.  
  68.  
  69. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;sudo apt install yagiuda
  70. &lt;/code&gt;&lt;/pre&gt;
  71.  
  72.  
  73.  
  74. &lt;p&gt;This package includes several tools for Yagi-Uda antenna analysis and design, making it a valuable addition for those working with antennas.&lt;/p&gt;
  75.  
  76.  
  77.  
  78. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;image-65-1024x778 Understanding Yagi-Uda's dipole Program for Antenna Analysis&quot; class=&quot;wp-image-7078&quot; height=&quot;778&quot; src=&quot;https://hamradio.my/wp-content/uploads/2025/03/image-65-1024x778.png&quot; title=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
  79.  
  80.  
  81.  
  82. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-usage&quot;&gt;Usage&lt;/h2&gt;
  83.  
  84.  
  85.  
  86. &lt;p&gt;To compute the impedance of a dipole, use the following command:&lt;/p&gt;
  87.  
  88.  
  89.  
  90. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;dipole &amp;lt;frequency&amp;gt; &amp;lt;length&amp;gt; &amp;lt;diameter&amp;gt;
  91. &lt;/code&gt;&lt;/pre&gt;
  92.  
  93.  
  94.  
  95. &lt;p&gt;For example, to calculate the impedance of a dipole at 7.1 MHz with a length of 20 meters and a diameter of 1.5 mm, run:&lt;/p&gt;
  96.  
  97.  
  98.  
  99. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;dipole 7.100mhz 20m 1.5mm
  100. &lt;/code&gt;&lt;/pre&gt;
  101.  
  102.  
  103.  
  104. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;h-example-output&quot;&gt;Example Output:&lt;/h3&gt;
  105.  
  106.  
  107.  
  108. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;Self impedance of a dipole:
  109. 7.100000 MHz,  length 20.000000 m, diameter 1.500000 mm, is
  110. Z = 62.418686  -48.363233 jX Ohms
  111. &lt;/code&gt;&lt;/pre&gt;
  112.  
  113.  
  114.  
  115. &lt;p&gt;This output indicates:&lt;/p&gt;
  116.  
  117.  
  118.  
  119. &lt;ul class=&quot;wp-block-list&quot;&gt;
  120. &lt;li&gt;&lt;strong&gt;Frequency:&lt;/strong&gt; 7.1 MHz&lt;/li&gt;
  121.  
  122.  
  123.  
  124. &lt;li&gt;&lt;strong&gt;Length:&lt;/strong&gt; 20 meters&lt;/li&gt;
  125.  
  126.  
  127.  
  128. &lt;li&gt;&lt;strong&gt;Diameter:&lt;/strong&gt; 1.5 mm&lt;/li&gt;
  129.  
  130.  
  131.  
  132. &lt;li&gt;&lt;strong&gt;Impedance (Z):&lt;/strong&gt; 62.42 – j48.36 Ω&lt;/li&gt;
  133. &lt;/ul&gt;
  134.  
  135.  
  136.  
  137. &lt;p&gt;The &lt;strong&gt;negative reactance (-48.36 Ω)&lt;/strong&gt; suggests the dipole is capacitive, meaning it is &lt;strong&gt;too long&lt;/strong&gt; at this frequency. To achieve resonance (purely resistive impedance), the dipole length should be slightly reduced.&lt;/p&gt;
  138.  
  139.  
  140.  
  141. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;image-64-1024x778 Understanding Yagi-Uda's dipole Program for Antenna Analysis&quot; class=&quot;wp-image-7077&quot; height=&quot;778&quot; src=&quot;https://hamradio.my/wp-content/uploads/2025/03/image-64-1024x778.png&quot; title=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
  142.  
  143.  
  144.  
  145. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-related-tools&quot;&gt;Related Tools&lt;/h2&gt;
  146.  
  147.  
  148.  
  149. &lt;p&gt;The Yagi-Uda project includes additional tools that help with various aspects of antenna design and optimization:&lt;/p&gt;
  150.  
  151.  
  152.  
  153. &lt;ul class=&quot;wp-block-list&quot;&gt;
  154. &lt;li&gt;&lt;code&gt;first&lt;/code&gt; – Initial calculations for antenna design&lt;/li&gt;
  155.  
  156.  
  157.  
  158. &lt;li&gt;&lt;code&gt;input&lt;/code&gt; – Processes input parameters for analysis&lt;/li&gt;
  159.  
  160.  
  161.  
  162. &lt;li&gt;&lt;code&gt;output&lt;/code&gt; – Displays calculated results&lt;/li&gt;
  163.  
  164.  
  165.  
  166. &lt;li&gt;&lt;code&gt;optimise&lt;/code&gt; – Helps refine antenna parameters for better performance&lt;/li&gt;
  167. &lt;/ul&gt;
  168.  
  169.  
  170.  
  171. &lt;p&gt;Each of these tools contributes to designing and analyzing Yagi-Uda antennas effectively.&lt;/p&gt;
  172.  
  173.  
  174.  
  175. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-supported-platforms&quot;&gt;Supported Platforms&lt;/h2&gt;
  176.  
  177.  
  178.  
  179. &lt;p&gt;The Yagi-Uda project was primarily developed for UNIX-based systems, including Linux distributions such as Ubuntu and Debian. While efforts were made to port it to other operating systems, its primary focus remains on UNIX environments.&lt;/p&gt;
  180.  
  181.  
  182.  
  183. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-reporting-bugs&quot;&gt;Reporting Bugs&lt;/h2&gt;
  184.  
  185.  
  186.  
  187. &lt;p&gt;If you encounter any issues while using &lt;code&gt;dipole&lt;/code&gt; or other Yagi-Uda tools, you can report them to Dr. David Kirkby (G8WRB) at &lt;code&gt;david.kirkby@onetel.net&lt;/code&gt;. Providing clear, reproducible steps will help ensure that reported bugs are addressed efficiently.&lt;/p&gt;
  188.  
  189.  
  190.  
  191. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-conclusion&quot;&gt;Conclusion&lt;/h2&gt;
  192.  
  193.  
  194.  
  195. &lt;p&gt;For amateur radio operators and engineers working with Yagi-Uda antennas, the &lt;code&gt;dipole&lt;/code&gt; program is a valuable tool for analyzing a single dipole’s impedance. With an easy installation process on Debian-based systems, it is an accessible and practical choice for antenna analysis.&lt;/p&gt;
  196. &lt;p&gt;The post &lt;a href=&quot;https://hamradio.my/2025/04/understanding-yagi-udas-dipole-program-for-antenna-analysis/&quot;&gt;Understanding Yagi-Uda’s dipole Program for Antenna Analysis&lt;/a&gt; appeared first on &lt;a href=&quot;https://hamradio.my&quot;&gt;Hamradio.my - Amateur Radio, Tech Insights and Product Reviews&lt;/a&gt; by &lt;a href=&quot;https://hamradio.my/author/9m2pju/&quot;&gt;9M2PJU&lt;/a&gt;.&lt;/p&gt;</description>
  197. <pubDate>Sat, 19 Apr 2025 12:06:02 +0000</pubDate>
  198. </item>
  199. <item>
  200. <title>Ubuntu MATE: Ubuntu MATE 25.04 Release Notes</title>
  201. <guid isPermaLink="false">https://ubuntu-mate.org/blog/ubuntu-mate-plucky-puffin</guid>
  202. <link>https://ubuntu-mate.org/blog/ubuntu-mate-plucky-puffin-release-notes/</link>
  203. <description>&lt;p&gt;Ubuntu MATE 25.04 is ready to soar! 🪽 Celebrating our 10th anniversary as an official Ubuntu flavour with the reliable MATE Desktop experience you love, built on the latest Ubuntu foundations. Read on to learn more 👓️&lt;/p&gt;
  204.  
  205. &lt;h2 id=&quot;a-decade-of-mate&quot;&gt;A Decade of MATE&lt;/h2&gt;
  206.  
  207. &lt;p&gt;This release marks the 10th anniversary of Ubuntu MATE becoming an official Ubuntu flavour. From our humble beginnings, we’ve developed a loyal following of users who value a traditional desktop experience with modern capabilities. Thanks to our amazing community, contributors, and users who have been with us throughout this journey. Here’s to many more years of Ubuntu MATE! 🥂&lt;/p&gt;
  208.  
  209. &lt;h2 id=&quot;what-changed-in-ubuntu-mate-2504&quot;&gt;What changed in Ubuntu MATE 25.04?&lt;/h2&gt;
  210.  
  211. &lt;p&gt;Here are the highlights of what’s new in the Plucky Puffin release:&lt;/p&gt;
  212.  
  213. &lt;ul&gt;
  214.  &lt;li&gt;Celebrating 10 years as an official Ubuntu flavour! 🎂&lt;/li&gt;
  215.  &lt;li&gt;Optional full disk encryption in the installer 🔐
  216.    &lt;ul&gt;
  217.      &lt;li&gt;Enhanced advanced partitioning options&lt;/li&gt;
  218.      &lt;li&gt;Better interaction with existing BitLocker-enabled Windows installations&lt;/li&gt;
  219.      &lt;li&gt;Improved experience when installing alongside other operating systems&lt;/li&gt;
  220.    &lt;/ul&gt;
  221.  &lt;/li&gt;
  222. &lt;/ul&gt;
  223.  
  224. &lt;h2 id=&quot;major-applications&quot;&gt;Major Applications&lt;/h2&gt;
  225.  
  226. &lt;p&gt;Accompanying &lt;strong&gt;MATE Desktop&lt;/strong&gt; 🧉 and &lt;strong&gt;Linux 6.14&lt;/strong&gt; 🐧 are &lt;strong&gt;Firefox 137&lt;/strong&gt; 🔥🦊,
  227. &lt;strong&gt;Evolution 3.56&lt;/strong&gt; 📧, &lt;strong&gt;LibreOffice 25.2.2&lt;/strong&gt; 📚&lt;/p&gt;
  228.  
  229. &lt;p&gt;See the &lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687&quot;&gt;Ubuntu 25.04 Release Notes&lt;/a&gt;
  230. for details of all the changes and improvements that Ubuntu MATE benefits from.&lt;/p&gt;
  231.  
  232. &lt;div class=&quot;jumbotron&quot;&gt;
  233.  
  234.    &lt;h2&gt;Download Ubuntu MATE 25.04&lt;/h2&gt;
  235.  
  236.    &lt;p&gt;Available for 64-bit desktop computers!&lt;/p&gt;
  237.  
  238.  
  239.    
  240.        &lt;a class=&quot;btn&quot; href=&quot;https://ubuntu-mate.org/download/&quot;&gt;Download&lt;/a&gt;
  241.    
  242.  
  243. &lt;/div&gt;
  244.  
  245. &lt;h2 id=&quot;upgrading-to-ubuntu-mate-2504&quot;&gt;Upgrading to Ubuntu MATE 25.04&lt;/h2&gt;
  246.  
  247. &lt;p&gt;The upgrade process to Ubuntu MATE 25.04 is the same as Ubuntu.&lt;/p&gt;
  248.  
  249. &lt;ul&gt;
  250.  &lt;li&gt;&lt;a href=&quot;https://help.ubuntu.com/community/PluckyUpgrades&quot;&gt;Ubuntu 25.04 Upgrade Process&lt;/a&gt;&lt;/li&gt;
  251. &lt;/ul&gt;
  252.  
  253. &lt;p&gt;There are no offline upgrade options for Ubuntu MATE. Please ensure you have
  254. network connectivity to one of the official mirrors or to a locally accessible
  255. mirror and follow the instructions above.&lt;/p&gt;</description>
  256. <pubDate>Sat, 19 Apr 2025 04:48:24 +0000</pubDate>
  257. </item>
  258. <item>
  259. <title>The Fridge: Ubuntu 25.04 (Plucky Puffin) Released</title>
  260. <guid isPermaLink="false">https://fridge.ubuntu.com/?p=10484</guid>
  261. <link>https://fridge.ubuntu.com/2025/04/17/ubuntu-25-04-plucky-puffin-released/</link>
  262. <description>&lt;p&gt;Ubuntu 25.04, codenamed “Plucky Puffin”, is here. This release continues Ubuntu’s proud tradition of integrating the latest and greatest open-source technologies into a high-quality, easy-to-use Linux distribution. The team has been hard at work through this cycle, partnering with the community and our partners, to introduce new features and fix bugs.&lt;/p&gt;
  263. &lt;p&gt;Ubuntu 25.04 introduces GNOME 48 with triple buffering for smoother performance, HDR settings, and new features like a Wellbeing Panel and Preserve Battery Health mode. A new modern PDF reader, Papers, is now the default.&lt;/p&gt;
  264. &lt;p&gt;The installer now offers a smoother experience when installing alongside other operating systems, with better BitLocker support, and advanced partitioning.&lt;/p&gt;
  265. &lt;p&gt;Built on the Linux 6.14 kernel, this release brings a new scheduling system with sched_ext, enhanced Wine/Proton gaming support through the new NTSYNC driver, and better container tooling via decoupled bpftools and linux-perf.&lt;/p&gt;
  266. &lt;p&gt;Developer experience takes a leap forward with the introduction of devpacks. These snap bundles deliver the latest Go and Spring ecosystems, alongside updated toolchains for Python, Rust, .NET, LLVM, OpenJDK, and more.&lt;/p&gt;
  267. &lt;p&gt;Ubuntu 25.04 also expands confidential computing to on-premise environments with AMD SEV-SNP host support, and introduces a new ARM64 Desktop ISO for next-gen hardware.&lt;/p&gt;
  268. &lt;p&gt;Networking and identity management see continued improvements, including secure time sync with NTS, better Active Directory (AD) integration, cloud authentication against EntraID and Google identity, and DNS-aware wait-online logic with Netplan.&lt;/p&gt;
  269. &lt;p&gt;The newest Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity, and Xubuntu are also being released today. More details can be found for these at their individual release notes under the Official Flavours section:&lt;/p&gt;
  270. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687#heading--official-flavours&quot;&gt;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687#heading–official-flavours&lt;/a&gt;&lt;/p&gt;
  271. &lt;p&gt;Maintenance updates will be provided for 9 months for all flavours releasing with 25.04.&lt;/p&gt;
  272. &lt;h3&gt;How to get Ubuntu 25.04 Plucky Puffin&lt;/h3&gt;
  273. &lt;p&gt;In order to download Ubuntu 25.04, simply visit:&lt;/p&gt;
  274. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/download&quot;&gt;https://ubuntu.com/download&lt;/a&gt;&lt;/p&gt;
  275. &lt;p&gt;Users of Ubuntu 24.10 will be offered an automatic upgrade to 25.04 if they have selected to be notified of all releases rather than just LTS upgrades. For further information about upgrading, see:&lt;/p&gt;
  276. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/download/desktop/upgrade&quot;&gt;https://ubuntu.com/download/desktop/upgrade&lt;/a&gt;&lt;/p&gt;
  277. &lt;p&gt;As always, upgrades to the latest version of Ubuntu are entirely free of charge.&lt;/p&gt;
  278. &lt;p&gt;We recommend that all users read the release notes, which document caveats, workarounds for known issues, as well as more in-depth notes on the release itself. They are available at:&lt;/p&gt;
  279. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes&quot;&gt;https://discourse.ubuntu.com/t/plucky-puffin-release-notes&lt;/a&gt;&lt;/p&gt;
  280. &lt;p&gt;Find out what’s new in this release with a graphical overview:&lt;/p&gt;
  281. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/desktop&quot;&gt;https://ubuntu.com/desktop&lt;/a&gt;&lt;/p&gt;
  282. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/desktop/features&quot;&gt;https://ubuntu.com/desktop/features&lt;/a&gt;&lt;/p&gt;
  283. &lt;p&gt;If you have a question, or if you think you may have found a bug but aren’t sure, you can try asking in any of the following places:&lt;/p&gt;
  284. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://matrix.to/#/#support:ubuntu.com&quot;&gt;https://matrix.to/#/#support:ubuntu.com&lt;/a&gt;&lt;/p&gt;
  285. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://discourse.ubuntu.com/support&quot;&gt;https://discourse.ubuntu.com/support&lt;/a&gt;&lt;/p&gt;
  286. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://lists.ubuntu.com/mailman/listinfo/ubuntu-users&quot;&gt;https://lists.ubuntu.com/mailman/listinfo/ubuntu-users&lt;/a&gt;&lt;/p&gt;
  287. &lt;h3&gt;Help Shape Ubuntu&lt;/h3&gt;
  288. &lt;p&gt;If you would like to help shape Ubuntu, take a look at the list of ways you can participate at:&lt;/p&gt;
  289. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/community/contribute&quot;&gt;https://ubuntu.com/community/contribute&lt;/a&gt;&lt;/p&gt;
  290. &lt;h3&gt;About Ubuntu&lt;/h3&gt;
  291. &lt;p&gt;Ubuntu is a full-featured Linux distribution for desktops, laptops, IoT, cloud, and servers, with a fast and easy installation and regular releases. A tightly-integrated selection of excellent applications is included, and an incredible variety of add-on software is just a few clicks away.&lt;/p&gt;
  292. &lt;p&gt;Professional services including support are available from Canonical and hundreds of other companies around the world. For more information about support, visit:&lt;/p&gt;
  293. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com/support&quot;&gt;https://ubuntu.com/support&lt;/a&gt;&lt;/p&gt;
  294. &lt;h3&gt;More Information&lt;/h3&gt;
  295. &lt;p&gt;You can learn more about Ubuntu and about this release on our website listed below:&lt;/p&gt;
  296. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://ubuntu.com&quot;&gt;https://ubuntu.com&lt;/a&gt;&lt;/p&gt;
  297. &lt;p&gt;To sign up for future Ubuntu announcements, please subscribe to Ubuntu’s very low volume announcement list at:&lt;/p&gt;
  298. &lt;p style=&quot;margin-left: 15px;&quot;&gt;&lt;a href=&quot;https://lists.ubuntu.com/mailman/listinfo/ubuntu-announce&quot;&gt;https://lists.ubuntu.com/mailman/listinfo/ubuntu-announce&lt;/a&gt;&lt;/p&gt;
  299.  
  300.  
  301. &lt;p&gt;&lt;em&gt;Originally posted to the &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-announce/2025-April/000311.html&quot;&gt;ubuntu-announce mailing list&lt;/a&gt; on Thu Apr 17 16:18:26 UTC 2025 by Utkarsh Gupta, on behalf of the Ubuntu Release Team.&lt;/em&gt;&lt;/p&gt;</description>
  302. <pubDate>Thu, 17 Apr 2025 22:42:53 +0000</pubDate>
  303. </item>
  304. <item>
  305. <title>Xubuntu: Xubuntu 25.04 released!</title>
  306. <guid isPermaLink="false">https://xubuntu.org/?p=5647</guid>
  307. <link>https://xubuntu.org/news/xubuntu-25-04-released/</link>
  308. <description>&lt;p&gt;The Xubuntu team is happy to announce the immediate release of Xubuntu 25.04.&lt;/p&gt;
  309.  
  310.  
  311.  
  312. &lt;p&gt;Xubuntu 25.04, codenamed &lt;strong&gt;Plucky Puffin&lt;/strong&gt;, is a regular release and will be supported for 9 months, until January 2026.&lt;/p&gt;
  313.  
  314.  
  315.  
  316. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-5648&quot; height=&quot;800&quot; src=&quot;https://xubuntu.org/wp-content/uploads/2025/04/2e04/xubuntu-25.04.png&quot; width=&quot;1280&quot; /&gt;Xubuntu 25.04, featuring the latest updates from Xfce 4.20 and GNOME 48.&lt;/figure&gt;
  317.  
  318.  
  319.  
  320. &lt;p&gt;Xubuntu 25.04 features the latest Xfce 4.20, GNOME 48, and MATE 1.26 updates. &lt;strong&gt;Xfce 4.20&lt;/strong&gt; features many bug fixes and minor improvements, modernizing the Xubuntu desktop while maintaining a familiar look and feel. &lt;strong&gt;GNOME 48&lt;/strong&gt; apps are tightly integrated and have full support for dark mode. Users of &lt;strong&gt;QEMU and KVM&lt;/strong&gt; will be delighted to find new stability with the desktop session—the long-running &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1861609&quot;&gt;X server crash&lt;/a&gt; has been resolved in Xubuntu 25.04 and backported to all supported Xubuntu releases.&lt;/p&gt;
  321.  
  322.  
  323.  
  324. &lt;p&gt;The &lt;strong&gt;final release images&lt;/strong&gt; for &lt;strong&gt;Xubuntu Desktop&lt;/strong&gt; and &lt;strong&gt;Xubuntu Minimal&lt;/strong&gt; are available as torrents and direct downloads from &lt;a href=&quot;https://xubuntu.org/download/&quot;&gt;xubuntu.org/download/&lt;/a&gt;.&lt;/p&gt;
  325.  
  326.  
  327.  
  328. &lt;p&gt;As the main server might be busy the first few days after the release, we recommend using the torrents if possible.&lt;/p&gt;
  329.  
  330.  
  331.  
  332. &lt;p&gt;We want to thank everybody who contributed to this release of Xubuntu!&lt;/p&gt;
  333.  
  334.  
  335.  
  336. &lt;h2&gt;Highlights and Known Issues&lt;/h2&gt;
  337.  
  338.  
  339.  
  340. &lt;h3&gt;Highlights&lt;/h3&gt;
  341.  
  342.  
  343.  
  344. &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Xfce 4.20&lt;/strong&gt;, released in December 2024, is included and contains many new features. Early Wayland support has been added, but is not available in Xubuntu.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;GNOME 48&lt;/strong&gt; apps, including &lt;em&gt;Font Viewer&lt;/em&gt; (gnome-font-viewer) and &lt;em&gt;Mines&lt;/em&gt; (gnome-mines), include a refreshed appearance and usability improvements.&lt;/li&gt;&lt;/ul&gt;
  345.  
  346.  
  347.  
  348. &lt;h3&gt;Known Issues&lt;/h3&gt;
  349.  
  350.  
  351.  
  352. &lt;ul&gt;&lt;li&gt;The shutdown prompt may not be displayed at the end of the installation. Instead, you might just see a Xubuntu logo, a black screen with an underscore in the upper left-hand corner, or a black screen. Press Enter, and the system will reboot into the installed environment. (LP: &lt;a href=&quot;https://bugs.launchpad.net/ubuntu-release-notes/+bug/1944519&quot;&gt;#1944519&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;You may experience choppy audio or poor system performance while playing audio, but only in some virtual machines (observed in VMware and VirtualBox).&lt;/li&gt;&lt;li&gt;OEM installation options are not currently supported or available.&lt;/li&gt;&lt;/ul&gt;
  353.  
  354.  
  355.  
  356. &lt;p&gt;Please refer to the &lt;a href=&quot;https://wiki.xubuntu.org/releases/25.04/release-notes&quot;&gt;Xubuntu Release Notes&lt;/a&gt; for more obscure known issues, information on affecting bugs, bug fixes, and a list of new package versions.&lt;/p&gt;
  357.  
  358.  
  359.  
  360. &lt;p&gt;The main &lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687&quot;&gt;Ubuntu Release Notes&lt;/a&gt; cover many other packages we carry and more generic issues.&lt;/p&gt;
  361.  
  362.  
  363.  
  364. &lt;h2&gt;Support&lt;/h2&gt;
  365.  
  366.  
  367.  
  368. &lt;p&gt;&lt;strong&gt;For support&lt;/strong&gt; with the release, navigate to &lt;a href=&quot;https://xubuntu.org/help/&quot;&gt;Help &amp;amp; Support&lt;/a&gt; for a complete list of methods to get help.&lt;/p&gt;</description>
  369. <pubDate>Thu, 17 Apr 2025 20:59:18 +0000</pubDate>
  370. </item>
  371. <item>
  372. <title>Scarlett Gately Moore: KDE Applications 25.04 Snaps and Kubuntu Plucky Puffin 25.04 Released!</title>
  373. <guid isPermaLink="false">https://www.scarlettgatelymoore.dev/?p=1884</guid>
  374. <link>https://www.scarlettgatelymoore.dev/kde-applications-25-04-snaps-and-kubuntu-plucky-puffin-25-04-released/</link>
  375. <description>&lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1885&quot; height=&quot;576&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/PlasmaPP-1024x576.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
  376.  
  377.  
  378.  
  379. &lt;p&gt;Very busy releasetastic week! The versions being the same is a complete coincidence &lt;img alt=&quot;😆&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.1.0/72x72/1f606.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  380.  
  381.  
  382.  
  383. &lt;p&gt;&lt;a href=&quot;https://kde.org/announcements/gear/25.04.0&quot;&gt;https://kde.org/announcements/gear/25.04.0&lt;/a&gt;&lt;/p&gt;
  384.  
  385.  
  386.  
  387. &lt;p&gt;Which can be downloaded here: &lt;a href=&quot;https://snapcraft.io/publisher/kde&quot;&gt;https://snapcraft.io/publisher/kde&lt;/a&gt; !&lt;/p&gt;
  388.  
  389.  
  390.  
  391. &lt;figure class=&quot;wp-block-embed is-type-wp-embed is-provider-kubuntu wp-block-embed-kubuntu&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;
  392. &lt;blockquote class=&quot;wp-embedded-content&quot; data-secret=&quot;cYMsQIkIFv&quot;&gt;&lt;a href=&quot;https://kubuntu.org/news/kubuntu-25-04-plucky-puffin-released/&quot;&gt;Kubuntu 25.04 Plucky Puffin released&lt;/a&gt;&lt;/blockquote&gt;
  393. &lt;/div&gt;&lt;/figure&gt;
  394.  
  395.  
  396.  
  397. &lt;p&gt;In addition to all the regular testing I am testing our snaps in a non KDE environment, so far it is not looking good in Xubuntu. We have kernel/glibc crashes on startup for some and for file open for others. I am working on a hopeful fix.&lt;/p&gt;
  398.  
  399.  
  400.  
  401. &lt;p&gt;Next week I will have ( I hope ) my final surgery.  If you can spare any change to help bring me over the finish line, I will be forever grateful &lt;img alt=&quot;🙂&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.1.0/72x72/1f642.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  402.  
  403.  
  404.  
  405. &lt;ul class=&quot;wp-block-list&quot;&gt;
  406. &lt;li&gt;&lt;a href=&quot;https://gofund.me/561ae227&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;GoFundMe&lt;/a&gt;&lt;/li&gt;
  407.  
  408.  
  409.  
  410. &lt;li&gt;&lt;a href=&quot;https://www.patreon.com/c/sgmoore&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Patreon&lt;/a&gt;&lt;/li&gt;
  411.  
  412.  
  413.  
  414. &lt;li&gt;&lt;a href=&quot;https://github.com/sponsors/ScarlettGatelyMoore?o=sd&amp;amp;sc=t&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;
  415.  
  416.  
  417.  
  418. &lt;li&gt;&lt;a href=&quot;https://donorbox.org/open-source-survival-fund&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Donorbox&lt;/a&gt;&lt;/li&gt;
  419. &lt;/ul&gt;</description>
  420. <pubDate>Thu, 17 Apr 2025 19:00:50 +0000</pubDate>
  421. </item>
  422. <item>
  423. <title>Lubuntu Blog: Lubuntu 25.04 (Plucky Puffin) Released!</title>
  424. <guid isPermaLink="false">https://lubuntu.me/?p=4126</guid>
  425. <link>https://lubuntu.me/plucky-released/</link>
  426. <description>The Lubuntu Team is proud to announce Lubuntu 25.04, codenamed Plucky Puffin. Lubuntu 25.04 is the 28th release of Lubuntu, the 14th release of Lubuntu with LXQt as the default desktop environment. With 25.04 being an interim release, it will be supported until January of 2026. If you're a 24.10 user, please upgrade to 25.04 […]</description>
  427. <pubDate>Thu, 17 Apr 2025 18:27:20 +0000</pubDate>
  428. </item>
  429. <item>
  430. <title>Ubuntu Studio: Ubuntu Studio 25.04 Released</title>
  431. <guid isPermaLink="false">https://ubuntustudio.org/?p=2980</guid>
  432. <link>https://ubuntustudio.org/2025/04/ubuntu-studio-25-04-released/</link>
  433. <description>&lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2981&quot; height=&quot;223&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2025/04/6c42/finalbanner.png&quot; width=&quot;600&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  434.  
  435.  
  436.  
  437. &lt;p id=&quot;block-08eb94aa-8521-4ed2-adb1-72f6f4094411&quot;&gt;The Ubuntu Studio team is pleased to announce the release of Ubuntu Studio 25.04 code-named “Plucky Puffin”. This marks Ubuntu Studio’s 36th release. This release is a Regular release and as such, it is supported for 9 months, until January 2026.&lt;/p&gt;
  438.  
  439.  
  440.  
  441. &lt;p id=&quot;block-895e2f57-e719-450c-a4c8-9405017a7e75&quot;&gt;Since it’s just out, you may experience some issues, so you might want to wait a bit before upgrading. Please see the &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-studio-25-04-release-notes/53099&quot;&gt;release notes&lt;/a&gt; for a more complete list of changes and known issues. Listed here are some of the major highlights.&lt;/p&gt;
  442.  
  443.  
  444.  
  445. &lt;p&gt;&lt;em&gt;This release is dedicated to the memory of &lt;a href=&quot;https://discourse.ubuntu.com/t/remembering-and-thanking-steve-langasek/52665&quot;&gt;Steve Langasek&lt;/a&gt;. Without Steve, Ubuntu Studio would not be where it is today. He provided invaluable guidance, insight, and instruction to our leader, Erich Eickmeyer, who not only learned how to package applications but learned how to do it properly. We owe him an eternal debt of gratitude.&lt;/em&gt;&lt;/p&gt;
  446.  
  447.  
  448.  
  449. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;aligncenter size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2990&quot; height=&quot;405&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2025/04/f9e4/UbuntuStudio25.04small.png&quot; width=&quot;720&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  450.  
  451.  
  452.  
  453. &lt;p id=&quot;block-aef9a406-e305-4f97-a130-f522c2f1ce7e&quot;&gt;You can download Ubuntu Studio 25.04 from our &lt;a href=&quot;https://ubuntustudio.org/download&quot;&gt;download page&lt;/a&gt;.&lt;/p&gt;
  454.  
  455.  
  456.  
  457. &lt;h2 id=&quot;block-6ca66e3a-8d42-42a8-a0cf-a8ed86e6025f&quot;&gt;Special Notes&lt;/h2&gt;
  458.  
  459.  
  460.  
  461. &lt;p id=&quot;block-708043b1-523e-4fb9-92ca-720e3316371a&quot;&gt;The Ubuntu Studio 25.04 disk image (ISO) exceeds 4 GB and cannot be downloaded to some file systems such as FAT32 and may not be readable when burned to a standard DVD. For this reason, we recommend downloading to a compatible file system. When creating a boot medium, we recommend &lt;a href=&quot;https://ubuntu.com/tutorials/create-a-usb-stick-on-ubuntu#1-overview&quot;&gt;creating a bootable USB stick&lt;/a&gt; with the ISO image or burning to a Dual-Layer DVD.&lt;/p&gt;
  462.  
  463.  
  464.  
  465. &lt;p&gt;Minimum installation media requirements: Dual-Layer DVD or 8GB USB drive.&lt;/p&gt;
  466.  
  467.  
  468.  
  469. &lt;p id=&quot;block-fa4be379-b904-4919-9502-c73469ca31ef&quot;&gt;Images can be obtained from this link: &lt;a href=&quot;https://cdimage.ubuntu.com/ubuntustudio/releases/25.04/release/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://cdimage.ubuntu.com/ubuntustudio/releases/25.04/release/&lt;/a&gt;&lt;/p&gt;
  470.  
  471.  
  472.  
  473. &lt;p id=&quot;block-bf39c734-e080-4549-9621-044e9241d48c&quot;&gt;Full updated information, including &lt;strong&gt;Upgrade Instructions,&lt;/strong&gt; are available in the &lt;strong&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-studio-25-04-release-notes/53099&quot;&gt;Release Notes&lt;/a&gt;&lt;/strong&gt;&lt;a href=&quot;https://wiki.ubuntu.com/GroovyGorilla/Beta/UbuntuStudio&quot;&gt;.&lt;/a&gt;&lt;/p&gt;
  474.  
  475.  
  476.  
  477. &lt;p&gt;Upgrades from 24.10 should be enabled within a month after release, so we appreciate your patience. Upgrades from 25.04 LTS will be enabled after 24.10 reaches End-Of-Life in July 2025.&lt;/p&gt;
  478.  
  479.  
  480.  
  481. &lt;h2&gt;New This Release&lt;/h2&gt;
  482.  
  483.  
  484.  
  485. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright is-resized&quot;&gt;&lt;img alt=&quot;GIMP 3.0: Wilber logo by Aryeom&quot; height=&quot;100&quot; src=&quot;https://www.gimp.org/images/frontpage/wilber-big.png&quot; width=&quot;100&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  486.  
  487.  
  488.  
  489. &lt;h3&gt;GIMP 3.0!&lt;/h3&gt;
  490.  
  491.  
  492.  
  493. &lt;p&gt;The long-awaited GIMP 3.0 is included by default. GIMP is now capable of non-destructive editing with filters, better Photoshop PSD export, and so very much more! Check out the &lt;a href=&quot;https://www.gimp.org/news/2025/03/16/gimp-3-0-released/&quot;&gt;GIMP 3.0 release announcement&lt;/a&gt; for more information.&lt;/p&gt;
  494.  
  495.  
  496.  
  497. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright is-resized&quot;&gt;&lt;img alt=&quot;Pencil2D Icon&quot; height=&quot;128&quot; src=&quot;https://www.pencil2d.org/images/pencil_icon.png&quot; width=&quot;128&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  498.  
  499.  
  500.  
  501. &lt;h3&gt;Pencil2D&lt;/h3&gt;
  502.  
  503.  
  504.  
  505. &lt;p&gt;Ubuntu Studio now includes &lt;strong&gt;&lt;a data-id=&quot;pencil2d.org&quot; data-type=&quot;URL&quot; href=&quot;http://pencil2d.org&quot;&gt;Pencil2D&lt;/a&gt;&lt;/strong&gt;! This is a 2D animation and drawing application that is sure to be helpful to animators. You can use basic clipart to make animations!&lt;/p&gt;
  506.  
  507.  
  508.  
  509. &lt;p&gt;The basic features of Pencil2D are:&lt;/p&gt;
  510.  
  511.  
  512.  
  513. &lt;ul&gt;&lt;li&gt;layers support (separated layer for bitmap, vector and soud part)&lt;/li&gt;&lt;li&gt;bitmap drawing&lt;/li&gt;&lt;li&gt;vector drawing&lt;/li&gt;&lt;li&gt;sound support&lt;/li&gt;&lt;/ul&gt;
  514.  
  515.  
  516.  
  517. &lt;h3&gt;LibreOffice No Longer in Minimal Install&lt;/h3&gt;
  518.  
  519.  
  520.  
  521. &lt;p&gt;The LibreOffice suite is now part of the full desktop install. This will save space for those wishing for a minimalistic setup for their needs.&lt;/p&gt;
  522.  
  523.  
  524.  
  525. &lt;h3&gt;Invada Studio Plugins&lt;/h3&gt;
  526.  
  527.  
  528.  
  529. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2983&quot; height=&quot;61&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2025/04/47bb/invada-logo1.png&quot; width=&quot;183&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  530.  
  531.  
  532.  
  533. &lt;p&gt;Beginning this release we are including the Invada Studio Plugins first created by Invada Records Australia. This includes distortion, delay, dynamics, filter, phaser, reverb, and utility audio plugins.&lt;/p&gt;
  534.  
  535.  
  536.  
  537. &lt;h3&gt;PipeWire 1.2.7&lt;/h3&gt;
  538.  
  539.  
  540.  
  541. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2766&quot; height=&quot;70&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2024/04/be34/Pipewire_logo.svg_.png&quot; width=&quot;324&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  542.  
  543.  
  544.  
  545. &lt;p&gt;This release contains &lt;strong&gt;PipeWire 1.2.7&lt;/strong&gt;. One major feature this has over 1.2.4 is that &lt;code&gt;v4l2loopback&lt;/code&gt; support is available via the &lt;code&gt;pipewire-v4l2&lt;/code&gt; package which is not installed by default.&lt;/p&gt;
  546.  
  547.  
  548.  
  549. &lt;p&gt;PipeWire’s JACK compatibility is configured to use out-of-the-box and is zero-latency internally. System latency is configurable via &lt;a data-id=&quot;2797&quot; data-type=&quot;page&quot; href=&quot;https://ubuntustudio.org/audio-configuration/&quot;&gt;Ubuntu Studio Audio Configuration&lt;/a&gt;.&lt;/p&gt;
  550.  
  551.  
  552.  
  553. &lt;p&gt;However, if you would rather use straight JACK 2 instead, that’s also possible. Ubuntu Studio Audio Configuration can disable and enable PipeWire’s JACK compatibility on-the-fly. From there, you can simply use JACK via QJackCtl.&lt;/p&gt;
  554.  
  555.  
  556.  
  557. &lt;h3&gt;Ardour 8.12&lt;/h3&gt;
  558.  
  559.  
  560.  
  561. &lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;alignright size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1977&quot; height=&quot;73&quot; src=&quot;https://ubuntustudio.org/wp-content/uploads/2020/06/2a76/ardour.png&quot; width=&quot;84&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  562.  
  563.  
  564.  
  565. &lt;p&gt;This is, as of this writing, the latest release of Ardour, packed with the latest bugfixes.&lt;/p&gt;
  566.  
  567.  
  568.  
  569. &lt;p&gt;To help support Ardour’s funding, you may obtain later versions directly from ardour.org. To do so, please &lt;a data-id=&quot;https://ardour.org&quot; data-type=&quot;URL&quot; href=&quot;https://ardour.org&quot;&gt;one-time purchase or subscribe to Ardour from their website.&lt;/a&gt; If you wish to get later versions of Ardour from us, you will have to wait until the next regular release of Ubuntu Studio, due in October 2025.&lt;/p&gt;
  570.  
  571.  
  572.  
  573. &lt;h2&gt;Deprecation of Mailing Lists&lt;/h2&gt;
  574.  
  575.  
  576.  
  577. &lt;p&gt;Our mailing lists are getting inundated with spam and there is no proper way to fix the filtering. It uses an outdated version of MailMan, so this release announcement will be the last release announcement we send out via email. To get support, we encourage using &lt;a data-id=&quot;https://discourse.ubuntu.com&quot; data-type=&quot;URL&quot; href=&quot;https://discourse.ubuntu.com&quot;&gt;Ubuntu Discourse&lt;/a&gt; for support, and for community clicking the notification bell in the &lt;a href=&quot;https://discourse.ubuntu.com/c/flavors/ubuntustudio/188&quot;&gt;Ubuntu Studio category&lt;/a&gt; there.&lt;/p&gt;
  578.  
  579.  
  580.  
  581. &lt;h2 id=&quot;block-c7a21be7-9349-421e-a098-c0d2919f320a&quot;&gt;Frequently Asked Questions&lt;/h2&gt;
  582.  
  583.  
  584.  
  585. &lt;p id=&quot;block-163f794a-f451-40b0-bbbd-6f26c6cbe8e8&quot;&gt;&lt;strong&gt;Q:&lt;/strong&gt; Does Ubuntu Studio contain snaps?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; Yes. Mozilla’s distribution agreement with Canonical changed, and Ubuntu was forced to no longer distribute Firefox in a native .deb package. We have found that, after numerous improvements, Firefox now performs just as well as the native .deb package did.&lt;/p&gt;
  586.  
  587.  
  588.  
  589. &lt;p&gt;Thunderbird also became a snap so that the maintainers can get security patches delivered faster.&lt;/p&gt;
  590.  
  591.  
  592.  
  593. &lt;p id=&quot;block-342134d3-a024-4b7b-b768-76c758b20acd&quot;&gt;Additionally, Freeshow is an Electron-based application. Electron-based applications cannot be packaged in the Ubuntu repositories in that they cannot be packaged in a traditional Debian source package. While such apps do have a build system to create a .deb binary package, it circumvents the source package build system in Launchpad, which is required when packaging for Ubuntu. However, Electron apps also have a facility for creating snaps, which can be uploaded and included. Therefore, for Freeshow to be included in Ubuntu Studio, it had to be packaged as a snap.&lt;/p&gt;
  594.  
  595.  
  596.  
  597. &lt;p&gt;We have additional snaps that are Ubuntu-specific, such as the Firmware Updater and the Security Center. Contrary to popular myth, Ubuntu does not have any plans to switch all packages to snaps, nor do we.&lt;/p&gt;
  598.  
  599.  
  600.  
  601. &lt;p id=&quot;block-2266cee7-0ea1-49cf-8340-594da42a09d7&quot;&gt;&lt;strong&gt;Q&lt;/strong&gt;: Will you make an ISO with {my favorite desktop environment}?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; To do so would require creating an entirely new flavor of Ubuntu, which would require going through the Official Ubuntu Flavor application process. Since we’re completely volunteer-run, we don’t have the time or resources to do this. Instead, we recommend you download the &lt;a href=&quot;https://ubuntu.com/download/flavours&quot;&gt;official flavor for the desktop environment of your choice&lt;/a&gt; and use &lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-installer&quot;&gt;Ubuntu Studio Installer&lt;/a&gt; to get Ubuntu Studio – which does *not* convert that flavor to Ubuntu Studio but adds its benefits.&lt;/p&gt;
  602.  
  603.  
  604.  
  605. &lt;p id=&quot;block-48669a69-39bc-4971-b46b-c7da87133d24&quot;&gt;&lt;strong&gt;Q: &lt;/strong&gt;What if I don’t want all these packages installed on my machine?&lt;br /&gt;&lt;strong&gt;A: &lt;/strong&gt;Simply use the &lt;strong&gt;Ubuntu Studio Installer&lt;/strong&gt; to remove the features of Ubuntu Studio you don’t want or need!&lt;/p&gt;
  606.  
  607.  
  608.  
  609. &lt;h2&gt;Get Involved!&lt;/h2&gt;
  610.  
  611.  
  612.  
  613. &lt;p&gt;A wonderful way to contribute is to get involved with the project directly! We’re always looking for new volunteers to help with packaging, documentation, tutorials, user support, and MORE! &lt;a href=&quot;https://ubuntustudio.org/contribute/&quot;&gt;Check out all the ways you can contribute!&lt;/a&gt;&lt;/p&gt;
  614.  
  615.  
  616.  
  617. &lt;p&gt;&lt;strong&gt;Our project leader, Erich Eickmeyer, is now working on Ubuntu Studio at least part-time, and is hoping that the users of Ubuntu Studio can give enough to generate a monthly part-time income. We’re not there, but if every Ubuntu Studio user donated monthly, we’d be there! Your donations are appreciated! If other distributions can do it, surely we can! See the sidebar for ways to give&lt;/strong&gt;!&lt;/p&gt;
  618.  
  619.  
  620.  
  621. &lt;h2&gt;Special Thanks&lt;/h2&gt;
  622.  
  623.  
  624.  
  625. &lt;p&gt;Huge special thanks for this release go to:&lt;/p&gt;
  626.  
  627.  
  628.  
  629. &lt;ul&gt;&lt;li&gt;&lt;strong&gt;Eylul Dogruel&lt;/strong&gt;: Artwork, Graphics Design&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Ross Gammon&lt;/strong&gt;: Upstream Debian Developer, Testing, Email Support&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Sebastien Ramacher&lt;/strong&gt;:&lt;strong&gt; &lt;/strong&gt;Upstream Debian Developer&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Dennis Braun&lt;/strong&gt;: Upstream Debian Developer&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Rik Mills&lt;/strong&gt;: Kubuntu Council Member, help with Plasma desktop&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Scarlett Moore: &lt;/strong&gt;Kubuntu Project Lead, help with Plasma desktop&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Len Ovens:&lt;/strong&gt; Testing, insight&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Mauro Gaspari&lt;/strong&gt;: Tutorials, Promotion, and Documentation, Testing, keeping Erich sane&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Simon Quigley: &lt;/strong&gt;Qt6 Megastuff&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Erich Eickmeyer&lt;/strong&gt;: Project Leader, Packaging, Development, Direction, Treasurer&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Steve Langasek: &lt;/strong&gt;You are missed.&lt;/li&gt;&lt;/ul&gt;</description>
  630. <pubDate>Thu, 17 Apr 2025 17:08:25 +0000</pubDate>
  631. </item>
  632. <item>
  633. <title>Kubuntu General News: Kubuntu 25.04 Plucky Puffin released</title>
  634. <guid isPermaLink="false">https://kubuntu.org/?p=5313</guid>
  635. <link>https://kubuntu.org/news/kubuntu-25-04-plucky-puffin-released/</link>
  636. <description>&lt;p&gt;The Kubuntu Team is happy to announce that Kubuntu 25.04 has been released.&lt;/p&gt;
  637.  
  638.  
  639.  
  640. &lt;p&gt;Codenamed “Plucky Puffin”, Kubuntu 25.04 continues our tradition of giving you Friendly Computing by integrating the latest and greatest open source technologies into a high-quality, easy-to-use Linux distribution.&lt;/p&gt;
  641.  
  642.  
  643.  
  644. &lt;p&gt;The release features the latest KDE Plasma 6.3 desktop, KDE Gear 24.12.3, kernel 6.14, and many other updated applications and libraries.&lt;/p&gt;
  645.  
  646.  
  647.  
  648. &lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-5314&quot; height=&quot;1080&quot; src=&quot;https://kubuntu.org/wp-content/uploads/2025/04/6ed6/PlasmaPP.png&quot; style=&quot;width: 800px;&quot; width=&quot;1920&quot; /&gt;&lt;/p&gt;
  649.  
  650.  
  651.  
  652. &lt;p&gt;Applications for core day-to-day usage are included and updated, such as Firefox, and LibreOffice.&lt;/p&gt;
  653.  
  654.  
  655.  
  656. &lt;p&gt;In addition to the applications on our install media, 25.04 benefits from the huge number of applications in the Ubuntu archive, plus those installable via snap or other methods.&lt;/p&gt;
  657.  
  658.  
  659.  
  660. &lt;p&gt;Please refer to our &lt;a href=&quot;https://wiki.ubuntu.com/PluckyPuffin/ReleaseNotes/Kubuntu&quot;&gt;release notes&lt;/a&gt; for further details.&lt;/p&gt;
  661.  
  662.  
  663.  
  664. &lt;p&gt;&lt;a href=&quot;https://cdimage.ubuntu.com/kubuntu/releases/25.04/release/&quot;&gt;Download Kubuntu 25.04&lt;/a&gt; or learn how to &lt;a href=&quot;https://help.ubuntu.com/community/PluckyUpgrades/Kubuntu&quot;&gt;upgrade from 24.10&lt;/a&gt;.&lt;/p&gt;
  665.  
  666.  
  667.  
  668. &lt;p id=&quot;block-6fe03394-3a4e-4925-b7bb-6aed03b483fb&quot;&gt;&lt;strong&gt;Note: For upgrades from 24.10, there may a delay of a few hours to days between the official release announcements and the Ubuntu Release Team enabling upgrades.&lt;/strong&gt;&lt;/p&gt;</description>
  669. <pubDate>Thu, 17 Apr 2025 16:18:03 +0000</pubDate>
  670. </item>
  671. <item>
  672. <title>Ubuntu Blog: Canonical Releases Ubuntu 25.04 Plucky Puffin</title>
  673. <guid isPermaLink="true">https://ubuntu.com//blog/canonical-releases-ubuntu-25-04-plucky-puffin</guid>
  674. <link>https://ubuntu.com//blog/canonical-releases-ubuntu-25-04-plucky-puffin</link>
  675. <description>&lt;h3 class=&quot;wp-block-heading&quot;&gt;The latest interim release of Ubuntu introduces “devpacks” for popular frameworks like Spring, along with performance enhancements across a broad range of hardware.&lt;/h3&gt;
  676. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1080&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1920,h_1080/https://ubuntu.com/wp-content/uploads/d140/Plucky_Puffin_Wallpaper_Colour_1920x1080.png&quot; width=&quot;1920&quot; /&gt;&lt;/figure&gt;
  677. &lt;p&gt;&lt;strong&gt;17 April 2025&lt;/strong&gt;&lt;/p&gt;
  678. &lt;p&gt;Today Canonical announced the release of Ubuntu 25.04, codenamed “Plucky Puffin,” available to download and install from &lt;a href=&quot;https://ubuntu.com/download&quot;&gt;ubuntu.com/download&lt;/a&gt;.  &lt;/p&gt;
  679. &lt;p&gt;Ubuntu 25.04 delivers the latest GNOME 48 with support for triple buffering and an improved install and boot experience. The introduction of a “devpack” for Spring expands toolchain availability in Ubuntu. Advancements in silicon enablement with Canonical’s partners deliver performance improvements for AI workloads on Intel GPUs, and support for confidential computing on AMD SEV-SNP.&lt;/p&gt;
  680. &lt;blockquote class=&quot;p-pull-quote--small&quot;&gt;
  681. &lt;p class=&quot;p-pull-quote__quote&quot;&gt;Plucky Puffin combines the very latest in open source desktop technology with a focus on making high quality developer tooling readily available on Ubuntu. Ubuntu 25.04 delivers performance improvements across Intel GPUs, and a new purpose-built ISO for ARM64 hardware enthusiasts. Our increasing support for confidential computing with AMD SEV-SNP makes Ubuntu the target platform to deploy AI workloads securely and at scale on both public clouds and private data centers.&lt;/p&gt;
  682. &lt;span class=&quot;p-pull-quote__citation&quot;&gt;Jon Seager, VP of Ubuntu Engineering at Canonical&lt;/span&gt;
  683. &lt;/blockquote&gt;
  684. &lt;div&gt;
  685. &lt;a class=&quot;p-button--positive&quot; href=&quot;https://ubuntu.com/download&quot;&gt;Download Ubuntu 25.04 for free&lt;/a&gt;
  686. &lt;/div&gt;
  687. &lt;h2 class=&quot;wp-block-heading&quot;&gt;GNOME 48 brings user experience improvements&lt;/h2&gt;
  688. &lt;p&gt;Ubuntu 25.04 delivers GNOME 48, in line with Canonical’s commitment to ship the freshest Gnome releases possible. Among other enhancements in GNOME, this version brings new features like a “Preserve Battery Health” mode that helps extend the lifespan of laptop batteries by optimizing charge cycles. A new “Wellbeing Panel” provides screen-time tracking, and helps users manage their usage habits. With GNOME 48, Ubuntu gains HDR support out of the box, and the Canonical-developed triple buffering patches, which deliver higher performance and a smoother UX on desktops with lower rendering power. These patches are now part of the GNOME upstream project for the first time, benefitting all users of the GNOME desktop environment.&lt;/p&gt;
  689. &lt;p&gt;Plucky Puffin ships with “Papers” as its default new PDF reader. Papers offers a more modern design, improved performance and a more user-friendly experience. &lt;/p&gt;
  690. &lt;p&gt;Following the retirement of Mozilla’s geolocation service, Ubuntu 25.04 uses &lt;a href=&quot;https://beacondb.net/&quot;&gt;a new geolocation provider: BeaconDB&lt;/a&gt;. This new geolocation service enables automatic timezone detection, weather forecasting and night light features in the desktop.&lt;/p&gt;
  691. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Linux 6.14 kernel delivers improved scheduling&lt;/h2&gt;
  692. &lt;p&gt;This release delivers the latest Linux kernel, following Canonical’s new policy. Kernel developers can now make use of &lt;a href=&quot;https://canonical.com/blog/crafting-new-linux-schedulers-with-sched-ext-rust-and-ubuntu&quot;&gt;a new scheduling system&lt;/a&gt;, &lt;code&gt;sched_ext&lt;/code&gt;, which provides a mechanism to implement scheduling policies as eBPF programs. This enables developers to defer scheduling decisions to standard user-space programs and implement fully functional hot-swappable Linux schedulers, using any language, tool, library, or resource accessible in user-space.&lt;/p&gt;
  693. &lt;p&gt;A new &lt;code&gt;NTSYNC&lt;/code&gt; driver that emulates WinNT sync primitives is also available, delivering better performance potential for Windows games running on Wine and Proton (Steam Play). &lt;/p&gt;
  694. &lt;p&gt;The &lt;code&gt;bpftools&lt;/code&gt; and &lt;code&gt;linux-perf&lt;/code&gt; tools have been decoupled from the kernel version, making dependency management easier for developers working with containers. These tools are now shipped in their own packages.&lt;/p&gt;
  695. &lt;p&gt;Other features can be found in &lt;a href=&quot;https://kernelnewbies.org/Linux_6.14&quot;&gt;the Linux 6.14 upstream changelog&lt;/a&gt;.&lt;/p&gt;
  696. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Enhanced installer and boot experience&lt;/h2&gt;
  697. &lt;p&gt;The installer delivers an improved user experience for those installing Ubuntu alongside other operating systems, with advanced partitioning and encryption options, as well as better interaction with existing BitLocker-enabled Windows installations.&lt;/p&gt;
  698. &lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1080&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1920,h_1080/https://ubuntu.com/wp-content/uploads/7428/25.04-Installer-Screenshots.png&quot; width=&quot;1920&quot; /&gt;&lt;/figure&gt;
  699. &lt;p&gt;To further improve the boot experience in future releases, Ubuntu Desktop and Ubuntu Server will include Dracut as an alternative to initramfs-tools. Plucky Puffin offers Dracut as an experimental feature, &lt;a href=&quot;https://discourse.ubuntu.com/t/dracut-will-be-supported-in-ubuntu-25-04/56556&quot;&gt;enabling users to test it&lt;/a&gt; ahead of its inclusion in Ubuntu 25.10.&lt;/p&gt;
  700. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Cutting-edge toolchains and devpacks&lt;/h2&gt;
  701. &lt;p&gt;Ubuntu 25.04 comes with the latest toolchains for Python, Golang, Rust, .NET, LLVM, OpenJDK and GCC.&lt;/p&gt;
  702. &lt;p&gt;Additional early access upstream versions such as OpenJDK 24ea, OpenJDK 25ea, and GCC 15 are also available. The .NET plugin in Snapcraft delivers improvements for .Net content snaps, and provides increased parity with MSBuild options.&lt;/p&gt;
  703. &lt;p&gt;With this release, Canonical is expanding toolchain availability on Ubuntu to a broader set of developer tools like formatters and linters, delivering the latest versions in snap bundles known as “devpacks.” &lt;/p&gt;
  704. &lt;p&gt;The first of these is a new “devpack-for-spring” snap that brings the latest Spring Framework and Spring Boot projects to Ubuntu, enabling application developers to more easily build and test their applications using the latest Spring project versions – Spring Framework 6.1 and 6.2, and Spring Boot 3.3 and 3.4.&lt;/p&gt;
  705. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Improved manageability and networking controls &lt;/h2&gt;
  706. &lt;p&gt;Canonical continues to deliver identity and access management features for system administrators which will be available in all Ubuntu LTS releases, including many enhancements &lt;a href=&quot;https://documentation.ubuntu.com/authd/en/latest/&quot;&gt;to Authd&lt;/a&gt;, Ubuntu’s new authentication service for cloud identity providers. This service now supports &lt;a href=&quot;https://ubuntu.com/blog/google-authd-broker-ubuntu-desktop-server&quot;&gt;Google IAM&lt;/a&gt; in addition &lt;a href=&quot;https://ubuntu.com/blog/authd-oidc-authentication-for-ubuntu-desktop-server&quot;&gt;to Entra ID&lt;/a&gt;. &lt;a href=&quot;https://documentation.ubuntu.com/adsys/en/stable/&quot;&gt;ADSys, the Active Directory Group Policy client for Ubuntu&lt;/a&gt;, supports the latest Polkit and comes with improvements and bug fixes to certificates enrolment. &lt;/p&gt;
  707. &lt;p&gt;The availability of NTS-enabled time servers allows Ubuntu 25.04 to &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-server-gazette-issue-1-network-online-target-network-time-security-matrix-chat/56135&quot;&gt;use securely provided network time by default&lt;/a&gt;.&lt;/p&gt;
  708. &lt;p&gt;NetworkManager now includes support for wpa-psk-sha256 secured WiFi networks and allows routing-policy configuration on the backend.&lt;/p&gt;
  709. &lt;p&gt;Plucky Puffin is also the first release that uses Netplan and systemd-networkd’s wait-online feature to check for DNS resolution, providing a &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-server-gazette-issue-1-network-online-target-network-time-security-matrix-chat/56135&quot;&gt;more reliable way to wait for a system to be considered online.&lt;/a&gt;&lt;/p&gt;
  710. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Hardware enablement highlights&lt;/h2&gt;
  711. &lt;p&gt;Canonical continues to enable Ubuntu across a broad range of hardware. The introduction of &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-desktop-on-arm64-history-benefits-and-what-s-next/57775&quot;&gt;a new ARM64 Desktop ISO&lt;/a&gt; makes it easier for early adopters to install Ubuntu Desktop on ARM64 virtual machines and laptops.&lt;/p&gt;
  712. &lt;blockquote class=&quot;p-pull-quote--small&quot;&gt;
  713. &lt;p class=&quot;p-pull-quote__quote&quot;&gt;Qualcomm Technologies is proud to collaborate with Canonical and is fully committed to enabling a seamless Ubuntu experience on devices powered by Snapdragon®. Ubuntu’s new ARM64 ISO paves the way for future Snapdragon enablement, enabling us to drive AI innovation and adoption together.&lt;/p&gt;
  714. &lt;span class=&quot;p-pull-quote__citation&quot;&gt;Leendert van Doorn, SVP, Engineering at Qualcomm Technologies, Inc.&lt;/span&gt;
  715. &lt;/blockquote&gt;
  716. &lt;p&gt;Ubuntu 25.04 introduces full-featured support for Intel® Core™ Ultra 200V series with built-in Intel® Arc™ GPUs and Intel® Arc™ B580 and B570 “Battlemage” discrete GPUs. The new additions include improved GPU and CPU ray tracing rendering performance in applications with Intel Embree support, such as Blender (v4.2+). Ray tracing hardware acceleration on the GPU improves frame rendering by 20-30%, due to a 2-4x speed-up for the ray tracing component. These GPUs now also have support enabled for hardware accelerated video encoding of AVC, JPEG, HEVC, and AV1, thus improving performance when using these formats when compared to software encoding. Developers will have access to the Intel Compute Runtime with newly introduced CCS optimizations and debugging support for Intel X&lt;sup&gt;e&lt;/sup&gt; GPUs, enabling easier development and improved AI workload speeds.&lt;/p&gt;
  717. &lt;blockquote class=&quot;p-pull-quote--small&quot;&gt;
  718. &lt;p class=&quot;p-pull-quote__quote&quot;&gt;Canonical and Intel have a long-term collaboration to ensure that Intel hardware and software work seamlessly with Ubuntu, and have delivered again by enabling our best-in-class Xe2 built-in and discrete GPUs.&lt;/p&gt;
  719. &lt;span class=&quot;p-pull-quote__citation&quot;&gt;Hillarie Prestopine, VP and GM of GPU and System Software Engineering at Intel Corporation&lt;/span&gt;
  720. &lt;/blockquote&gt;
  721. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Confidential computing support extended to on-premises use cases &lt;/h2&gt;
  722. &lt;p&gt;Confidential computing represents a significant paradigm shift in security architecture, protecting virtual machine workloads from unauthorized access. This technology shields sensitive code and data at runtime from privileged system software and other VMs, by operating within a hardware-protected Trusted Execution Environment, keeping data encrypted while in system memory. &lt;/p&gt;
  723. &lt;p&gt;Canonical has long recognized confidential computing as an area of strategic importance. Ubuntu was the first Linux distribution to support confidential VMs as a guest OS across major public cloud providers, with built-in support for AMD SEV-SNP and Intel TDX technologies.&lt;/p&gt;
  724. &lt;p&gt;Today, Canonical is pleased to announce that Ubuntu now supports AMD SEV-SNP on virtualization hosts, made possible by QEMU 9.2. This will enable enterprises to deploy confidential VMs in on-premise data centers using Ubuntu as both the host and guest operating system. &lt;/p&gt;
  725. &lt;blockquote class=&quot;p-pull-quote--small&quot;&gt;
  726. &lt;p class=&quot;p-pull-quote__quote&quot;&gt;Canonical’s continued investment in confidential computing reflects the importance of protecting workloads in increasingly complex environments. With Ubuntu 25.04 now having AMD SEV-SNP host support, customers can take full advantage of AMD hardware-based security features to help isolate virtual machines, safeguard memory integrity, and reduce attack surfaces. We’re proud to collaborate with Canonical to extend secure, scalable solutions across enterprise infrastructure.&lt;/p&gt;
  727. &lt;span class=&quot;p-pull-quote__citation&quot;&gt;Frank Gorishek, Corporate Vice President, Software Development, AMD&lt;/span&gt;
  728. &lt;/blockquote&gt;
  729. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Next steps&lt;/h3&gt;
  730. &lt;div class=&quot;p-cta-block&quot;&gt;
  731. &lt;a class=&quot;p-button--positive&quot; href=&quot;https://ubuntu.com/download&quot;&gt;Download Ubuntu 25.04 for free&lt;/a&gt;
  732. &lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687&quot;&gt;Read the 25.04 release notes ›&lt;/a&gt;
  733. &lt;/div&gt;
  734. &lt;h2 class=&quot;wp-block-heading&quot;&gt;About Canonical &lt;/h2&gt;
  735. &lt;p&gt;Canonical, the publisher of Ubuntu, provides open source security, support and services. Our portfolio covers critical systems, from the smallest devices to the largest clouds, from the kernel to containers, from databases to AI. With customers that include top tech brands, emerging startups, governments and home users, Canonical delivers trusted open source for everyone. &lt;/p&gt;
  736. &lt;p&gt;Learn more at &lt;a href=&quot;https://canonical.com/&quot;&gt;canonical.com&lt;/a&gt;&lt;/p&gt;
  737. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  738. &lt;p class=&quot;u-text--muted p-text--x-small&quot;&gt;&lt;i&gt;Snapdragon is a product of Qualcomm Technologies, Inc. and/or its subsidiaries. Snapdragon is a trademark or registered trademark of Qualcomm Incorporated.&lt;/i&gt;&lt;/p&gt;</description>
  739. <pubDate>Thu, 17 Apr 2025 15:23:01 +0000</pubDate>
  740. </item>
  741. <item>
  742. <title>Podcast Ubuntu Portugal: E344 Sistemas Operatíveis</title>
  743. <guid isPermaLink="false">https://hub.podcastubuntuportugal.org/s/4tn94DPco2JJN9N/download/e344.mp3</guid>
  744. <link>https://podcastubuntuportugal.org/e344/</link>
  745. <description>&lt;p&gt;Passámos uma semana interessante e infernal, a ler programas eleitorais sobre software livre enquanto gatos se roçam em microfones; falámos de novidades de domótica e assistentes de música; meta-motores de busca privados, livres e fresquinhos, actualização do GIMP para 3.0, antecipação salivante do Ubuntu 25.04 que sai nesta quinta-feira; quem ganha num combate entre Fedora e Ubuntu; e ainda parvoíces sobre carochos da Adobe e metadonas metafóricas.&lt;/p&gt;
  746. &lt;p&gt;Já sabem: oiçam, subscrevam e partilhem!&lt;/p&gt;
  747. &lt;ul&gt;
  748. &lt;li&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-schedule/36461&quot;&gt;https://discourse.ubuntu.com/t/plucky-puffin-release-schedule/36461&lt;/a&gt;&lt;/li&gt;
  749. &lt;li&gt;&lt;a href=&quot;https://direitosdigitais.pt/noticias/159-d3-disponibiliza-motor-de-pesquisa-respeitador-da-privacidade&quot;&gt;https://direitosdigitais.pt/noticias/159-d3-disponibiliza-motor-de-pesquisa-respeitador-da-privacidade&lt;/a&gt;&lt;/li&gt;
  750. &lt;li&gt;&lt;a href=&quot;https://searx.direitosdigitais.pt/&quot;&gt;https://searx.direitosdigitais.pt/&lt;/a&gt;&lt;/li&gt;
  751. &lt;li&gt;&lt;a href=&quot;https://www.phoronix.com/news/Ubuntu-25.04-JPEG-XL-Default&quot;&gt;https://www.phoronix.com/news/Ubuntu-25.04-JPEG-XL-Default&lt;/a&gt;&lt;/li&gt;
  752. &lt;li&gt;&lt;a href=&quot;https://www.phoronix.com/review/fedora-42-ubuntu-2504-zen5&quot;&gt;https://www.phoronix.com/review/fedora-42-ubuntu-2504-zen5&lt;/a&gt;&lt;/li&gt;
  753. &lt;li&gt;&lt;a href=&quot;https://youtu.be/o4Vctz1_KYE?list=PLKsVm4cWHDQBtg2CwzJVoCvx4Mc2yTy7C&quot;&gt;https://youtu.be/o4Vctz1_KYE?list=PLKsVm4cWHDQBtg2CwzJVoCvx4Mc2yTy7C&lt;/a&gt;&lt;/li&gt;
  754. &lt;li&gt;&lt;a href=&quot;https://www.music-assistant.io/&quot;&gt;https://www.music-assistant.io/&lt;/a&gt;&lt;/li&gt;
  755. &lt;li&gt;&lt;a href=&quot;https://youtu.be/yfbuoeRrYeg?t=73&quot;&gt;https://youtu.be/yfbuoeRrYeg?t=73&lt;/a&gt;&lt;/li&gt;
  756. &lt;li&gt;&lt;a href=&quot;https://slimbook.com/shop/product/dock-gen5-8in14k60rj45100w-1569?category=17#attr=&quot;&gt;https://slimbook.com/shop/product/dock-gen5-8in14k60rj45100w-1569?category=17#attr=&lt;/a&gt;&lt;/li&gt;
  757. &lt;li&gt;&lt;a href=&quot;https://www.amazon.es/dp/B0CZDDTDDT&quot;&gt;https://www.amazon.es/dp/B0CZDDTDDT&lt;/a&gt;&lt;/li&gt;
  758. &lt;li&gt;&lt;a href=&quot;https://www.amazon.es/dp/B0C2H9HVH3&quot;&gt;https://www.amazon.es/dp/B0C2H9HVH3&lt;/a&gt;&lt;/li&gt;
  759. &lt;li&gt;&lt;a href=&quot;https://www.gimp.org/&quot;&gt;https://www.gimp.org/&lt;/a&gt;&lt;/li&gt;
  760. &lt;li&gt;&lt;a href=&quot;https://sushitech-startup.metro.tokyo.lg.jp/en/&quot;&gt;https://sushitech-startup.metro.tokyo.lg.jp/en/&lt;/a&gt;&lt;/li&gt;
  761. &lt;li&gt;LoCo PT: &lt;a href=&quot;https://loco.ubuntu.com/teams/ubuntu-pt/&quot;&gt;https://loco.ubuntu.com/teams/ubuntu-pt/&lt;/a&gt;&lt;/li&gt;
  762. &lt;li&gt;Nitrokey: &lt;a href=&quot;https://shop.nitrokey.com/shop?aff_ref=3&quot;&gt;https://shop.nitrokey.com/shop?aff_ref=3&lt;/a&gt;&lt;/li&gt;
  763. &lt;li&gt;Mastodon: &lt;a href=&quot;https://masto.pt/@pup&quot;&gt;https://masto.pt/@pup&lt;/a&gt;&lt;/li&gt;
  764. &lt;li&gt;Youtube: &lt;a href=&quot;https://youtube.com/PodcastUbuntuPortugal&quot;&gt;https://youtube.com/PodcastUbuntuPortugal&lt;/a&gt;&lt;/li&gt;
  765. &lt;/ul&gt;
  766. &lt;h3 id=&quot;apoios&quot;&gt;Apoios&lt;/h3&gt;
  767. &lt;p&gt;Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal.
  768. E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8.
  769. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem.
  770. Se estiverem interessados em outros bundles não listados nas notas usem o link &lt;a href=&quot;https://www.humblebundle.com/?partner=PUP&quot;&gt;https://www.humblebundle.com/?partner=PUP&lt;/a&gt; e vão estar também a apoiar-nos.&lt;/p&gt;
  771. &lt;h3 id=&quot;atribuição-e-licenças&quot;&gt;Atribuição e licenças&lt;/h3&gt;
  772. &lt;p&gt;Este episódio foi produzido por Diogo Constantino, Miguel e Tiago Carrondo e editado pelo &lt;a href=&quot;https://senhorpodcast.pt/&quot;&gt;Senhor Podcast&lt;/a&gt;.
  773. O website é produzido por Tiago Carrondo e o &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website&quot;&gt;código aberto&lt;/a&gt; está licenciado nos termos da &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website/main/LICENSE&quot;&gt;Licença MIT&lt;/a&gt;. (&lt;a href=&quot;https://creativecommons.org/licenses/by/4.0/)&quot;&gt;https://creativecommons.org/licenses/by/4.0/)&lt;/a&gt;. A música do genérico é: “Won’t see it comin’ (Feat Aequality &amp;amp; N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da &lt;a href=&quot;https://creativecommons.org/publicdomain/zero/1.0/&quot;&gt;CC0 1.0 Universal License&lt;/a&gt;.
  774. Este episódio e a imagem utilizada estão licenciados nos termos da licença: &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/&quot;&gt;Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)&lt;/a&gt;, &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode&quot;&gt;cujo texto integral pode ser lido aqui&lt;/a&gt;. Estamos abertos a licenciar para permitir outros tipos de utilização, &lt;a href=&quot;https://podcastubuntuportugal.org/contactos&quot;&gt;contactem-nos&lt;/a&gt; para validação e autorização.&lt;/p&gt;</description>
  775. <pubDate>Thu, 17 Apr 2025 00:00:00 +0000</pubDate>
  776.        <enclosure url="https://hub.podcastubuntuportugal.org/s/4tn94DPco2JJN9N/download/e344.mp3" length="31113044" type="audio/mpeg"/>
  777. </item>
  778. <item>
  779. <title>Stuart Langridge: Serving streaming video that adapts to bandwidth from your own website</title>
  780. <guid isPermaLink="false">tag:www.kryogenix.org,2025-04-16:/days/2025/04/16/serving-streaming-video-that-adapts-to-bandwidth-from-your-own-website/</guid>
  781. <link>https://www.kryogenix.org/days/2025/04/16/serving-streaming-video-that-adapts-to-bandwidth-from-your-own-website/</link>
  782. <description>&lt;p&gt;Recently, I was involved in an event where a video was shown, and the event was filmed. It would be nice to put the video of the event up somewhere so other people who weren't there could watch it. Obvious answer: upload it to YouTube. However, the video that was shown &lt;em&gt;at&lt;/em&gt; the event is Copyrighted Media Content and therefore is disallowed by YouTube and the copyright holder; it's not demonetised (which wouldn't be a problem), it's flat-out blocked. So YouTube is out.&lt;/p&gt;
  783. &lt;p&gt;I'd like the video I'm posting to stick around for a long time; this is a sort of archival, reference thing where not many people will ever want to watch it but those that do might want to do so in ten years. So I'm loath to find some other random video hosting site, which will probably go bust, or pivot to selling online AI shoes or something. And the best way to ensure that something keeps going long-term is to put it on your own website, and use decent HTML, because that means that even in ten or twenty years it'll still work where the latest flavour-of-the-month thing will go the way of other old technologies and fade away and stop working over time. HTML won't do that.&lt;/p&gt;
  784. &lt;p&gt;But... it's an hour long and in full HD. 2.6GB of video. And one of the benefits of YouTube is that they'll make the video adaptive: it'll fit the screen, and the bandwidth, of whatever device someone's watching it on. If someone wants to look at this from their phone and its slightly-shaky two bars of 4G connection, they probably don't want to watch the loading spinner for an hour while it buffers a full HD video; they can ideally get a cut down, lower-quality but quicker to serve, version. But... how is this possible?&lt;/p&gt;
  785. &lt;p&gt;There are two aspects to doing this. One is that you serve up different &lt;em&gt;resolutions&lt;/em&gt; of video, based on the viewer's screen size. This is exactly the same problem as is solved for images by the &lt;code&gt;&amp;lt;picture&amp;gt;&lt;/code&gt; element to provide responsive images (where if you're on a 400px-wide screen you get a 400px version of the background image, not the 2000px full-res version), and indeed the magic words to search for here are &lt;em&gt;responsive video&lt;/em&gt;. And the person you will find who is explaning all this is &lt;a href=&quot;https://bsky.app/profile/scottjehl.com&quot;&gt;Scott Jehl&lt;/a&gt;, who has written &lt;a href=&quot;https://scottjehl.com/posts/using-responsive-video/&quot;&gt;a good description of how to do responsive video&lt;/a&gt; which explains it all in detail. You make versions of the video at different resolutions, and serve whichever one best matches the screen you're on, just like responsive images. Nice work; just what the doctor ordered.&lt;/p&gt;
  786. &lt;p&gt;But there's also a second aspect to this: responsive video adapts to screen size, but it doesn't adapt to bandwidth. What we want, in addition to the responsive stuff, is that on poor connections the viewer gets a lower-bandwidth version as well as a lower-resolution version, and that the viewer's browser can dynamically switch from moment to moment between different versions of the video to match their current network speed. This task is the job of &lt;a href=&quot;https://en.wikipedia.org/wiki/HTTP_Live_Streaming&quot;&gt;HTTP Live Streaming&lt;/a&gt;, or HLS. To do this, you essentially encode the video in a bunch of different qualities and screen sizes, so you've got a bunch of separate videos (which you've probably already done above for the responsive part) and then (and this is the key) you chop up each video into a load of small segments. That way, instead of the browser downloading the whole one hour of video at a particular resolution, it only downloads the next &lt;em&gt;segment&lt;/em&gt; at its current choice of resolution, and then if you suddenly get more (or less) bandwidth, it can switch to getting segment 2 from a &lt;em&gt;different&lt;/em&gt; version of the video which better matches where you currently are.&lt;/p&gt;
  787. &lt;p&gt;Doing this sounds hard. Fortunately, all hard things to do with video are handled by ffmpeg. There's a nice writeup by Mux on &lt;a href=&quot;https://www.mux.com/articles/how-to-convert-mp4-to-hls-format-with-ffmpeg-a-step-by-step-guide&quot;&gt;how to convert an mp4 video to HLS with ffmpeg&lt;/a&gt;, and it works great. I put myself together a &lt;a href=&quot;https://gist.github.com/stuartlangridge/c0ae266306604c7db23e9855eea83976&quot;&gt;little Python script&lt;/a&gt; to construct the ffmpeg command line to do it, but you can do it yourself; the script just does some of the boilerplate for you. Very useful.&lt;/p&gt;
  788. &lt;p&gt;So now I can serve up a video which adapts to the viewer's viewing conditions, and that's just what I wanted. I have to pay for the bandwidth now (which is the &lt;em&gt;other&lt;/em&gt; benefit of having YouTube do it, and one I now don't get) but that's worth it for this, I think. Cheers to Scott and Mux for explaining all this stuff.&lt;/p&gt;</description>
  789. <pubDate>Wed, 16 Apr 2025 08:26:00 +0000</pubDate>
  790. </item>
  791. <item>
  792. <title>Ubuntu Blog: Ubuntu 20.04 LTS End Of Life – activate ESM to keep your fleet of devices secure and operational</title>
  793. <guid isPermaLink="true">https://ubuntu.com//blog/ubuntu-20-04-eol-for-devicesional</guid>
  794. <link>https://ubuntu.com//blog/ubuntu-20-04-eol-for-devicesional</link>
  795. <description>&lt;figure class=&quot;wp-block-image size-full&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;2160&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_3840,h_2160/https://ubuntu.com/wp-content/uploads/2e97/30.png&quot; width=&quot;3840&quot; /&gt;&lt;/figure&gt;
  796. &lt;p&gt;Focal Fossa will reach the End of Standard Support in May 2025, also known as End Of Life (EOL). Ubuntu 20.04 LTS has become a critical component for millions of IoT and embedded devices worldwide, including kiosks, digital signage solutions, industrial appliances, and robotic systems. The release has been foundational for companies innovating in various industries, from healthcare to manufacturing. Like every Ubuntu LTS reaching the end of its standard support, Focal Fossa will transition to Extended Security Maintenance (ESM). This blog post will guide developers and businesses through their options and explain how to activate ESM for ongoing support. &lt;/p&gt;
  797. &lt;p&gt;Before we dive in, let’s revisit why Ubuntu releases have an EOL.&lt;/p&gt;
  798. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Why do Ubuntu releases reach EOL?&lt;/h2&gt;
  799. &lt;p&gt;Every Ubuntu LTS version offers 5 years of standard support, during which Canonical provides bug fixes and security updates for over 2,300 core packages. Continually improving and maintaining the security of Ubuntu over the standard support period requires substantial engineering resources – especially to meet the needs of our customers, and the many critical infrastructures that rely on us..&lt;/p&gt;
  800. &lt;p&gt;However, our community and users always look forward to experiencing newer Ubuntu versions equipped with the latest packages. Thus, as we launch newer distributions, we inevitably have to reallocate resources. As a result, older LTS versions enter the ESM phase.&lt;/p&gt;
  801. &lt;figure class=&quot;wp-block-image&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;489&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1600,h_489/https://ubuntu.com/wp-content/uploads/3336/image.png&quot; width=&quot;1600&quot; /&gt;&lt;/figure&gt;
  802. &lt;p&gt;ESM offers continuous vulnerability management for critical and high-severity Common Vulnerabilities and Exposures (CVEs). Although we stop improving features of the LTS distribution, we maintain its security. Many organizations depend on ESM when immediate migration isn’t feasible to keep their infrastructures stable and secure. &lt;/p&gt;
  803. &lt;p&gt;ESM is a paid subscription service, as ongoing security updates still require dedicated engineering resources. However, subscribing to ESM is significantly more cost-effective than performing these maintenance tasks in-house. There are also free subscriptions for personal use.&lt;/p&gt;
  804. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Migrate to a supported LTS distribution &lt;/h2&gt;
  805. &lt;p&gt;Migration planning shouldn’t be left until the last minute. Devices on Ubuntu 20.04 will soon cease receiving standard updates, leaving them eventually vulnerable. Ensuring your device’s security and operational excellence typically means migrating to a newer, supported version of Ubuntu.&lt;/p&gt;
  806. &lt;p&gt;Your best option is migration to a supported LTS, like Ubuntu 24.04. Ubuntu 24.04 continues the familiar environment of 20.04, with updated security enhancements, improved performance, and the latest hardware enablement. It provides continuity for workloads, minimizing disruption and maximizing the lifespan of your device deployments.&lt;/p&gt;
  807. &lt;figure class=&quot;wp-block-image size-full is-resized&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;720&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1280,h_720/https://ubuntu.com/wp-content/uploads/a957/UbuntuCoreVideoThumbnail.jpg&quot; width=&quot;1280&quot; /&gt;&lt;/figure&gt;
  808. &lt;p&gt;Device manufacturers might want to consider migrating to &lt;a href=&quot;https://ubuntu.com/core&quot;&gt;Ubuntu Core&lt;/a&gt;, specifically optimized for IoT and embedded environments. Ubuntu Core features – such as built-in OTA updates, full disk encryption and secure boot, strict confinement, and robust device recovery – make managing fleets much simpler. Additionally, Ubuntu Core extends standard support up to 10 years, significantly delaying the need for future migration.&lt;/p&gt;
  809. &lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=F2MJeuGV0Q0&quot;&gt;You can find a straightforward explanation of how Ubuntu Core works and some key use cases here&lt;/a&gt;. &lt;/p&gt;
  810. &lt;p&gt;If your resources are limited, consider packaging your applications using snaps, which neatly bundle applications with all their dependencies. Snaps provide a streamlined way to manage software without introducing unnecessary abstraction layers, which reduces attack surfaces and maintenance workload. Your snapped applications will effortlessly run across Ubuntu Desktop, Server, or Core.&lt;/p&gt;
  811. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Can’t migrate? Get 20.04 ESM&lt;/h2&gt;
  812. &lt;p&gt;Sometimes migrating is complex or impractical, due to dependency challenges or logistical issues like deployed devices in the market. If your organization needs more time to migrate, activating ESM provides an extra 5 years of support.&lt;/p&gt;
  813. &lt;p&gt;ESM is part of the &lt;a href=&quot;https://ubuntu.com/pro&quot;&gt;Ubuntu Pro&lt;/a&gt; subscription, delivering critical security updates for more than 2,300 packages included in Ubuntu Main. Here you find packages such as Python, OpenSSL, OpenVPN, network-manager, sed, curl, systemd, udev, bash, OpenSSH, login, libc… For the complete list of what’s included in Ubuntu Main, you can visit the &lt;a href=&quot;https://packages.ubuntu.com/&quot;&gt;Ubuntu Packages Search tool&lt;/a&gt;. &lt;/p&gt;
  814. &lt;p&gt;But there is more. With &lt;a href=&quot;https://ubuntu.com/pro&quot;&gt;Ubuntu Pro&lt;/a&gt;, you can access security coverage to an additional 23,000 packages beyond the operating system. For example, Boost, Qt, OpenCV, PCL, python-(argcomplete, opencv, pybind11, png…), cython, eigen, GTK, FFMPEG… These are some of the many packages covered in Universe that are now getting security maintenance from Canonical. If you want to see how many packages could benefit from this additional security in your devices, simply &lt;a href=&quot;https://ubuntu.com/pro/tutorial&quot;&gt;follow the next steps&lt;/a&gt;. &lt;/p&gt;
  815. &lt;p&gt;Ubuntu Universe also includes well-used applications such as the &lt;a href=&quot;https://ubuntu.com/robotics/what-is-ros&quot;&gt;Robot Operating System&lt;/a&gt; (ROS), where Canonical provides services such as &lt;a href=&quot;https://ubuntu.com/robotics/ros-esm&quot;&gt;ROS ESM&lt;/a&gt; for the upcoming EOL of ROS 1 Noetic.&lt;/p&gt;
  816. &lt;figure class=&quot;wp-block-image&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;561&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1600,h_561/https://ubuntu.com/wp-content/uploads/ce10/image.png&quot; width=&quot;1600&quot; /&gt;&lt;/figure&gt;
  817. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Option 1: Purchase ESM through the Ubuntu Pro store&lt;/h3&gt;
  818. &lt;p&gt;For small numbers of devices, purchasing ESM directly through the Ubuntu Pro Store is straightforward. Simply go to the &lt;a href=&quot;https://ubuntu.com/pro/subscribe&quot;&gt;Ubuntu Pro Store&lt;/a&gt; and complete your purchase. &lt;/p&gt;
  819. &lt;p&gt; &lt;a class=&quot;p-button--small p-button--positive&quot; href=&quot;https://ubuntu.com/pro/subscribe&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt; Go to the Store&lt;/a&gt;&lt;/p&gt;
  820. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Option 2: Purchase ESM through Canonical’s Ubuntu Pro for Devices&lt;/h3&gt;
  821. &lt;p&gt;If you have a large fleet of devices, need to add support for estates that grow over time, or prefer one-time pricing over a subscription, we have an alternative option for you; &lt;a href=&quot;https://ubuntu.com/pro/devices&quot;&gt;Ubuntu Pro for Devices&lt;/a&gt;. It will not only grant you access to the Ubuntu Pro subscription (and so to ESM), but Ubuntu Pro for Devices will also apply a beneficial discount-based model depending on your compute module.&lt;/p&gt;
  822. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/pro/devices#get-in-touch&quot;&gt;Get in touch with a sales representative to get Ubuntu Pro through our Devices plan&lt;/a&gt;.&lt;/p&gt;
  823. &lt;h2 class=&quot;wp-block-heading&quot;&gt;What is included in the Ubuntu Pro subscription &lt;/h2&gt;
  824. &lt;p&gt;ESM is part of the &lt;a href=&quot;https://ubuntu.com/pro&quot;&gt;Ubuntu Pro&lt;/a&gt; subscription. Besides getting ESM, customers can also enjoy other services like: &lt;/p&gt;
  825. &lt;ul&gt;
  826. &lt;li&gt;Ubuntu systems management with &lt;a href=&quot;https://ubuntu.com/landscape&quot;&gt;Landscape&lt;/a&gt;&lt;/li&gt;
  827. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/security/livepatch&quot;&gt;Kernel Livepatch&lt;/a&gt; service to avoid reboots&lt;/li&gt;
  828. &lt;li&gt;&lt;a href=&quot;https://ubuntu.com/security/certifications&quot;&gt;Security certification&lt;/a&gt; (e.g. FIPS and CIS)&lt;/li&gt;
  829. &lt;li&gt;24/7, open source &lt;a href=&quot;https://ubuntu.com/support&quot;&gt;software support&lt;/a&gt; for the full stack&lt;/li&gt;
  830. &lt;/ul&gt;
  831. &lt;p&gt;For more information about Ubuntu Pro visit our &lt;a href=&quot;https://ubuntu.com/pro&quot;&gt;webpage&lt;/a&gt;, the &lt;a href=&quot;https://ubuntu.com/legal/ubuntu-pro-description&quot;&gt;service description&lt;/a&gt; or &lt;a href=&quot;https://ubuntu.com/security/esm#get-in-touch&quot;&gt;get in touch with one of our sales representatives&lt;/a&gt;. &lt;/p&gt;
  832. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Activating ESM &lt;/h2&gt;
  833. &lt;p&gt;Security updates during ESM are accessed via a dedicated repository. This requires a subscription token, which you can get through your Ubuntu Pro account after subscribing.&lt;/p&gt;
  834. &lt;p&gt;To enable ESM, you just need to follow the instructions in your welcome email: &lt;/p&gt;
  835. &lt;ol&gt;
  836. &lt;li&gt;Install the Ubuntu Pro client&lt;/li&gt;
  837. &lt;li&gt;Attach your token to an Ubuntu machine&lt;/li&gt;
  838. &lt;li&gt;Activate ESM &lt;/li&gt;
  839. &lt;li&gt;Run apt upgrade will now allow you to install available updates&lt;/li&gt;
  840. &lt;/ol&gt;
  841. &lt;p&gt;For more detailed instructions, please visit the official &lt;a href=&quot;https://documentation.ubuntu.com/pro/account-setup/&quot;&gt;documentation of Ubuntu Pro&lt;/a&gt;.&lt;/p&gt;
  842. &lt;figure class=&quot;wp-block-image&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;373&quot; src=&quot;https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_1600,h_373/https://ubuntu.com/wp-content/uploads/0bc6/image.png&quot; width=&quot;1600&quot; /&gt;&lt;/figure&gt;
  843. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Enabling ESM on fleets of devices&lt;/h2&gt;
  844. &lt;p&gt;Depending on your management infrastructure, there are various ways of enabling ESM in your fleet of machines. An Ubuntu Pro subscription gives you access to &lt;a href=&quot;https://landscape.canonical.com/&quot;&gt;Landscape&lt;/a&gt;, which facilitates this process.   &lt;/p&gt;
  845. &lt;p&gt;Landscape is a management and administration tool for Ubuntu. It allows you to monitor your systems through a management agent installed on each machine. The agent communicates with the Landscape server to update an automatically selected set of essential health metrics. Landscape allows you to remotely update and upgrade machines, and manage users and permissions.&lt;/p&gt;
  846. &lt;p&gt;Using remote script execution, Landscape can interact with the Ubuntu Pro client. It can also distribute tokens in air gapped environments.  &lt;/p&gt;
  847. &lt;p&gt;Learn more about &lt;a href=&quot;https://docs.ubuntu.com/landscape/en/landscape-install-quickstart&quot;&gt;Landscape in our documentation&lt;/a&gt;.   &lt;/p&gt;
  848. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Summary&lt;/h2&gt;
  849. &lt;p&gt;With Ubuntu 20.04 reaching EOL in May 2025, businesses must proactively manage their devices. Working on an unsupported release introduces security risks no organization can afford. Although migrating to a newer LTS remains our primary recommendation, we acknowledge the challenges involved. When migration isn’t immediately feasible, activating ESM provides the necessary extension to securely bridge your organization to its next update cycle.&lt;/p&gt;
  850. &lt;p&gt;&lt;a href=&quot;https://ubuntu.com/security/esm#get-in-touch&quot;&gt;Get in touch&lt;/a&gt; for tailored advice on the best migration or support options for your organization. &lt;/p&gt;</description>
  851. <pubDate>Wed, 16 Apr 2025 03:16:00 +0000</pubDate>
  852. </item>
  853. <item>
  854. <title>David Mohammed: Ubuntu Budgie 25.04 release notes</title>
  855. <guid isPermaLink="false">https://ubuntubudgie.org/?p=3898</guid>
  856. <link>https://ubuntubudgie.org/2025/04/ubuntu-budgie-25-04-release-notes/</link>
  857. <description>&lt;p&gt;Ubuntu Budgie 25.04 (Plucky Puffin) is a Standard Release with 9 months of support by your distro maintainers and Canonical, from April 2025 to Jan 2026. These release notes showcase the key takeaways for 24.10 upgraders to 25.04. Please note – there is no direct upgrade path from 24.04.2 to 25.04; you must uplift to 24.10 first or perform a fresh install. In these release notes the areas…&lt;/p&gt;
  858. &lt;p&gt;&lt;a href=&quot;https://ubuntubudgie.org/2025/04/ubuntu-budgie-25-04-release-notes/&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
  859. <pubDate>Tue, 15 Apr 2025 17:31:49 +0000</pubDate>
  860. </item>
  861. <item>
  862. <title>Salih Emin: Git turns 20! : A conversation with creator Linus Torvalds</title>
  863. <guid isPermaLink="false">http://utappiablog.wordpress.com/?p=49839</guid>
  864. <link>https://utappiablog.wordpress.com/2025/04/11/git-turns-20-a-conversation-with-creator-linus-torvalds/</link>
  865. <description>Watch a conversation reflecting on the 20th anniversary of Git, the version control system created by Linus Torvalds. He discusses his initial motivations for developing Git as a response to the limitations of existing systems like CVS and BitKeeper, and his desire to establish a better tool for the open-source community. Torvalds explains the processes […]</description>
  866. <pubDate>Fri, 11 Apr 2025 13:41:22 +0000</pubDate>
  867. </item>
  868. <item>
  869. <title>Podcast Ubuntu Portugal: E343 Atum De Cebolada Tech</title>
  870. <guid isPermaLink="false">https://hub.podcastubuntuportugal.org/s/P74EMWkwW27J5yT/download/e343.mp3</guid>
  871. <link>https://podcastubuntuportugal.org/e343/</link>
  872. <description>&lt;p&gt;A Joana Simões, a.k.a. Princesa Leia, voltou com muitas novidades sobre o universo OSGeo, conferências com S.U.S.H.I, controladores de jogos fofinhos que podem ser usados para tudo e anéis espertos; o Diogo continuou a espancar verbalmente a Mozilla com uma tábua com pregos, enquanto relatava as últimas novidades de Firefox e conselhos sobre relógios espertos e o Miguel trouxe um bode.&lt;/p&gt;
  873. &lt;p&gt;Já sabem: oiçam, subscrevam e partilhem!&lt;/p&gt;
  874. &lt;ul&gt;
  875. &lt;li&gt;8-10 Maio: SushiTech Tokyo - Sustainable High City Tech &lt;a href=&quot;https://sushitech-startup.metro.tokyo.lg.jp/en/&quot;&gt;https://sushitech-startup.metro.tokyo.lg.jp/en/&lt;/a&gt;&lt;/li&gt;
  876. &lt;li&gt;PineTime, o relógio esperto da Pine64: &lt;a href=&quot;https://pine64.org/devices/pinetime/&quot;&gt;https://pine64.org/devices/pinetime/&lt;/a&gt;&lt;/li&gt;
  877. &lt;li&gt;Controlador fofinho 8bitdo: &lt;a href=&quot;https://www.8bitdo.com/&quot;&gt;https://www.8bitdo.com/&lt;/a&gt;&lt;/li&gt;
  878. &lt;li&gt;Qjoypad: &lt;a href=&quot;https://qjoypad.sourceforge.net/&quot;&gt;https://qjoypad.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
  879. &lt;li&gt;Antimicrox: &lt;a href=&quot;https://github.com/AntiMicroX/antimicrox&quot;&gt;https://github.com/AntiMicroX/antimicrox&lt;/a&gt;&lt;/li&gt;
  880. &lt;li&gt;Game Pad Navigation: &lt;a href=&quot;https://github.com/nirvn/GamepadNavigation&quot;&gt;https://github.com/nirvn/GamepadNavigation&lt;/a&gt;&lt;/li&gt;
  881. &lt;li&gt;A Tia Rute escreveu sobre o Encontro de Tecnologia Popular em Setúbal: &lt;a href=&quot;https://pt.mondediplo.com/2025/04/o-cuidado-como-pratica-de-resistencia-ou-de-existencia-na-tecnologia.html&quot;&gt;https://pt.mondediplo.com/2025/04/o-cuidado-como-pratica-de-resistencia-ou-de-existencia-na-tecnologia.html&lt;/a&gt;&lt;/li&gt;
  882. &lt;li&gt;A Europa tem de libertar-se do software proprietário norte-americano e optar por Software Livre internacional, respeitador dos Direitos Digitais (em Alemão): &lt;a href=&quot;https://republik.ch/2025/03/31/die-us-regierung-hat-die-moeglichkeit-auf-viele-politikermails-in-europa-zuzugreifen&quot;&gt;https://republik.ch/2025/03/31/die-us-regierung-hat-die-moeglichkeit-auf-viele-politikermails-in-europa-zuzugreifen&lt;/a&gt;&lt;/li&gt;
  883. &lt;li&gt;Firefox 136: &lt;a href=&quot;https://www.omgubuntu.co.uk/2025/03/firefox-136-released-with-vertical-tabs-new-sidebar-more&quot;&gt;https://www.omgubuntu.co.uk/2025/03/firefox-136-released-with-vertical-tabs-new-sidebar-more&lt;/a&gt;&lt;/li&gt;
  884. &lt;li&gt;Firefox 137: &lt;a href=&quot;https://www.omgubuntu.co.uk/2025/04/firefox-137-new-features&quot;&gt;https://www.omgubuntu.co.uk/2025/04/firefox-137-new-features&lt;/a&gt;&lt;/li&gt;
  885. &lt;li&gt;Não usem Brave: &lt;a href=&quot;https://thelibre.news/no-really-dont-use-brave/&quot;&gt;https://thelibre.news/no-really-dont-use-brave/&lt;/a&gt;&lt;/li&gt;
  886. &lt;li&gt;Keepass e Snaps: &lt;a href=&quot;https://www.omgubuntu.co.uk/2025/02/keepassxc-snap-update-adds-native-messaging-support-i-e-browser-integration&quot;&gt;https://www.omgubuntu.co.uk/2025/02/keepassxc-snap-update-adds-native-messaging-support-i-e-browser-integration&lt;/a&gt;&lt;/li&gt;
  887. &lt;li&gt;Correcção de bug Nvidia:  &lt;a href=&quot;https://www.phoronix.com/news/NVIDIA-Ubuntu-2025-SnR&quot;&gt;https://www.phoronix.com/news/NVIDIA-Ubuntu-2025-SnR&lt;/a&gt;&lt;/li&gt;
  888. &lt;li&gt;LoCo PT: &lt;a href=&quot;https://loco.ubuntu.com/teams/ubuntu-pt/&quot;&gt;https://loco.ubuntu.com/teams/ubuntu-pt/&lt;/a&gt;&lt;/li&gt;
  889. &lt;li&gt;Nitrokey: &lt;a href=&quot;https://shop.nitrokey.com/shop?aff_ref=3&quot;&gt;https://shop.nitrokey.com/shop?aff_ref=3&lt;/a&gt;&lt;/li&gt;
  890. &lt;li&gt;Mastodon: &lt;a href=&quot;https://masto.pt/@pup&quot;&gt;https://masto.pt/@pup&lt;/a&gt;&lt;/li&gt;
  891. &lt;li&gt;Youtube: &lt;a href=&quot;https://youtube.com/PodcastUbuntuPortugal&quot;&gt;https://youtube.com/PodcastUbuntuPortugal&lt;/a&gt;&lt;/li&gt;
  892. &lt;/ul&gt;
  893. &lt;h3 id=&quot;apoios&quot;&gt;Apoios&lt;/h3&gt;
  894. &lt;p&gt;Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal.
  895. E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8.
  896. Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem.
  897. Se estiverem interessados em outros bundles não listados nas notas usem o link &lt;a href=&quot;https://www.humblebundle.com/?partner=PUP&quot;&gt;https://www.humblebundle.com/?partner=PUP&lt;/a&gt; e vão estar também a apoiar-nos.&lt;/p&gt;
  898. &lt;h3 id=&quot;atribuição-e-licenças&quot;&gt;Atribuição e licenças&lt;/h3&gt;
  899. &lt;p&gt;Este episódio foi produzido por Diogo Constantino, Miguel e Tiago Carrondo e editado pelo &lt;a href=&quot;https://senhorpodcast.pt/&quot;&gt;Senhor Podcast&lt;/a&gt;.
  900. O website é produzido por Tiago Carrondo e o &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website&quot;&gt;código aberto&lt;/a&gt; está licenciado nos termos da &lt;a href=&quot;https://gitlab.com/podcastubuntuportugal/website/main/LICENSE&quot;&gt;Licença MIT&lt;/a&gt;. (&lt;a href=&quot;https://creativecommons.org/licenses/by/4.0/)&quot;&gt;https://creativecommons.org/licenses/by/4.0/)&lt;/a&gt;. A música do genérico é: “Won’t see it comin’ (Feat Aequality &amp;amp; N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da &lt;a href=&quot;https://creativecommons.org/publicdomain/zero/1.0/&quot;&gt;CC0 1.0 Universal License&lt;/a&gt;.
  901. Este episódio e a imagem utilizada estão licenciados nos termos da licença: &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/&quot;&gt;Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)&lt;/a&gt;, &lt;a href=&quot;https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode&quot;&gt;cujo texto integral pode ser lido aqui&lt;/a&gt;. Estamos abertos a licenciar para permitir outros tipos de utilização, &lt;a href=&quot;https://podcastubuntuportugal.org/contactos&quot;&gt;contactem-nos&lt;/a&gt; para validação e autorização.&lt;/p&gt;</description>
  902. <pubDate>Thu, 10 Apr 2025 00:00:00 +0000</pubDate>
  903.        <enclosure url="https://hub.podcastubuntuportugal.org/s/P74EMWkwW27J5yT/download/e343.mp3" length="33475185" type="audio/mpeg"/>
  904. </item>
  905. <item>
  906. <title>Salih Emin: uCareSystem 25.04.09 | Shellcheck Approved</title>
  907. <guid isPermaLink="false">http://utappiablog.wordpress.com/?p=49824</guid>
  908. <link>https://utappiablog.wordpress.com/2025/04/09/ucaresystem-25-04-09-shellchecked-aproved/</link>
  909. <description>I’m pleased to announce the uCareSystem 25.04.09, the latest version of the all-in-one system maintenance tool for Ubuntu, Linux Mint, Debian and its derivatives, used by thousands ! This release brings some major changes internal changes, fixes and improvements under the hood. A new version of uCareSystem is out, and this time the focus is […]</description>
  910. <pubDate>Wed, 09 Apr 2025 11:37:26 +0000</pubDate>
  911. </item>
  912. <item>
  913. <title>Scarlett Gately Moore: KDE Snap Updates, Kubuntu Updates, More life updates!</title>
  914. <guid isPermaLink="false">https://www.scarlettgatelymoore.dev/?p=1865</guid>
  915. <link>https://www.scarlettgatelymoore.dev/kde-snap-updates-kubuntu-updates-more-life-updates/</link>
  916. <description>&lt;figure class=&quot;wp-block-image aligncenter size-full is-resized&quot;&gt;&lt;img alt=&quot;Icy morning Witch Wells Az&quot; class=&quot;wp-image-152&quot; height=&quot;2040&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/331261813_890048595635057_5783061028004673687_n.jpg&quot; style=&quot;width: 451px; height: auto;&quot; width=&quot;1530&quot; /&gt;Icy morning Witch Wells Az&lt;/figure&gt;
  917.  
  918.  
  919.  
  920. &lt;p&gt;&lt;strong&gt;Life:&lt;/strong&gt;&lt;/p&gt;
  921.  
  922.  
  923.  
  924. &lt;p&gt;Last week we were enjoying springtime, this week winter has made a comeback! Good news on the broken arm front, the infection is gone, so they can finally deal with the broken issue again. I will have a less invasive surgery April 25th to pull the bones back together so they can properly knit back together! If you can spare any change please consider a donation to my continued healing and recovery, or just support my work &lt;img alt=&quot;🙂&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.1.0/72x72/1f642.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  925.  
  926.  
  927.  
  928. &lt;ul class=&quot;wp-block-list&quot;&gt;
  929. &lt;li&gt;&lt;a href=&quot;https://gofund.me/561ae227&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;GoFundMe&lt;/a&gt;&lt;/li&gt;
  930.  
  931.  
  932.  
  933. &lt;li&gt;&lt;a href=&quot;https://www.patreon.com/c/sgmoore&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Patreon&lt;/a&gt;&lt;/li&gt;
  934.  
  935.  
  936.  
  937. &lt;li&gt;&lt;a href=&quot;https://github.com/sponsors/ScarlettGatelyMoore?o=sd&amp;amp;sc=t&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;
  938.  
  939.  
  940.  
  941. &lt;li&gt;&lt;a href=&quot;https://donorbox.org/open-source-survival-fund&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;Donorbox&lt;/a&gt;&lt;/li&gt;
  942. &lt;/ul&gt;
  943.  
  944.  
  945.  
  946. &lt;p&gt;&lt;strong&gt;Kubuntu:&lt;/strong&gt;&lt;/p&gt;
  947.  
  948.  
  949.  
  950. &lt;p&gt;While testing Beta I came across some crashy apps ( Namely PIM ) due to apparmor. I have uploaded fixed profiles for kmail, akregator, akonadiconsole, konqueror, tellico&lt;/p&gt;
  951.  
  952.  
  953.  
  954. &lt;p&gt;&lt;strong&gt;KDE Snaps:&lt;/strong&gt;&lt;/p&gt;
  955.  
  956.  
  957.  
  958. &lt;p&gt;Added sctp support in Qt &lt;a href=&quot;https://invent.kde.org/neon/snap-packaging/kde-qt6-core-sdk/-/commit/bbcb1dc39044b930ab718c8ffabfa20ccd2b0f75&quot;&gt;https://invent.kde.org/neon/snap-packaging/kde-qt6-core-sdk/-/commit/bbcb1dc39044b930ab718c8ffabfa20ccd2b0f75&lt;/a&gt;&lt;/p&gt;
  959.  
  960.  
  961.  
  962. &lt;p&gt;This will allow me to finish a pyside6 snap and fix FreeCAD build.&lt;/p&gt;
  963.  
  964.  
  965.  
  966. &lt;p&gt;Changed build type to Release in the kf6-core24-sdk which will reduce the size of kf6-core24 significantly. &lt;/p&gt;
  967.  
  968.  
  969.  
  970. &lt;p&gt;Fixed a few startup errors in kf5-core24 and kf6-core24 snapcraft-desktop-integration.&lt;/p&gt;
  971.  
  972.  
  973.  
  974. &lt;p&gt;Soumyadeep fixed wayland icons in &lt;a href=&quot;https://invent.kde.org/neon/snap-packaging/kf6-core-sdk/-/merge_requests/3&quot;&gt;https://invent.kde.org/neon/snap-packaging/kf6-core-sdk/-/merge_requests/3&lt;/a&gt;&lt;/p&gt;
  975.  
  976.  
  977.  
  978. &lt;p&gt;KDE Applications 25.03.90 RC released to –candidate ( I know it says 24.12.3, version won’t be updated until 25.04.0 release )&lt;/p&gt;
  979.  
  980.  
  981.  
  982. &lt;p&gt;Kasts core24 fixed in  –candidate&lt;img alt=&quot;&quot; class=&quot;wp-image-1866&quot; height=&quot;492&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/kasts.png&quot; style=&quot;width: 600px;&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
  983.  
  984.  
  985.  
  986. &lt;p&gt;Kate now core24 with Breeze theme! –candidate &lt;img alt=&quot;&quot; class=&quot;wp-image-1867&quot; height=&quot;420&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/kate-1.png&quot; style=&quot;width: 600px;&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
  987.  
  988.  
  989.  
  990. &lt;p&gt;Neochat: Fixed missing QML and 25.04 dependencies in –candidate &lt;img alt=&quot;&quot; class=&quot;wp-image-1868&quot; height=&quot;471&quot; src=&quot;https://www.scarlettgatelymoore.dev/wp-content/uploads/neochat-1.png&quot; style=&quot;width: 600px;&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
  991.  
  992.  
  993.  
  994. &lt;p&gt;Kdenlive now with Galxnimate animations! –candidate &lt;/p&gt;
  995.  
  996.  
  997.  
  998. &lt;p&gt;Digikam 8.6.0 now with scanner support in –stable&lt;/p&gt;
  999.  
  1000.  
  1001.  
  1002. &lt;p&gt;Kstars 3.7.6 released to –stable for realz, removed store rejected plugs.&lt;/p&gt;
  1003.  
  1004.  
  1005.  
  1006. &lt;p&gt;Thanks for stopping by!&lt;/p&gt;</description>
  1007. <pubDate>Mon, 07 Apr 2025 12:13:49 +0000</pubDate>
  1008. </item>
  1009. <item>
  1010. <title>Ubuntu MATE: Ubuntu MATE 24.10 Release Notes</title>
  1011. <guid isPermaLink="false">https://ubuntu-mate.org/blog/ubuntu-mate-oracular-oriole</guid>
  1012. <link>https://ubuntu-mate.org/blog/ubuntu-mate-oracular-oriole-release-notes/</link>
  1013. <description>&lt;p&gt;Ubuntu MATE 24.10 is more of what you like, stable MATE Desktop on top of current Ubuntu. Read on to learn more 👓️&lt;/p&gt;
  1014.  
  1015. &lt;p class=&quot;center&quot;&gt;&lt;img alt=&quot;Ubuntu MATE 24.10&quot; src=&quot;https://ubuntu-mate.org/images/blog/oracular/screenshot.png&quot; /&gt;
  1016. &lt;strong&gt;Ubuntu MATE 24.10&lt;/strong&gt;&lt;/p&gt;
  1017.  
  1018. &lt;h2 id=&quot;thank-you-&quot;&gt;Thank you! 🙇&lt;/h2&gt;
  1019.  
  1020. &lt;p&gt;&lt;strong&gt;My sincere thanks to everyone who has played an active role in improving Ubuntu MATE for this release 👏
  1021. I’d like to acknowledge the close collaboration with the Ubuntu Foundations team and the Ubuntu flavour teams, in particular &lt;a href=&quot;https://launchpad.net/~eeickmeyer&quot;&gt;Erich Eickmeyer&lt;/a&gt; who pushed critical fixes while I was travelling.
  1022. Thank you!&lt;/strong&gt; 💚&lt;/p&gt;
  1023.  
  1024. &lt;h2 id=&quot;what-changed-since-the-ubuntu-mate-2404-lts&quot;&gt;What changed since the Ubuntu MATE 24.04 LTS?&lt;/h2&gt;
  1025.  
  1026. &lt;p&gt;Here are the highlights of what’s changed since the &lt;a href=&quot;https://ubuntu-mate.org/blog/ubuntu-mate-noble-numbat-release-notes/&quot;&gt;release of Ubuntu MATE 24.04&lt;/a&gt;&lt;/p&gt;
  1027.  
  1028. &lt;ul&gt;
  1029.  &lt;li&gt;Ships stable &lt;a href=&quot;https://mate-desktop.org&quot;&gt;MATE Desktop&lt;/a&gt; 1.26.2 with a handful of bug fixes 🐛&lt;/li&gt;
  1030.  &lt;li&gt;Switched back to Slick Greeter (replacing Arctica Greeter) due to race-condition in the boot process which results the display manager failing to initialise.
  1031.    &lt;ul&gt;
  1032.      &lt;li&gt;Returning to Slick Greeter reintroduces the ability to easily configure the login screen via a graphical application, something users have been requesting be re-instated 👍&lt;/li&gt;
  1033.    &lt;/ul&gt;
  1034.  &lt;/li&gt;
  1035.  &lt;li&gt;Ubuntu MATE 24.10 .iso 📀 is now 3.3GB 🤏 Down from 4.1GB in the 24.04 LTS release.
  1036.    &lt;ul&gt;
  1037.      &lt;li&gt;This is thanks to some fixes in the installer that no longer require as many packages in the live-seed.&lt;/li&gt;
  1038.    &lt;/ul&gt;
  1039.  &lt;/li&gt;
  1040. &lt;/ul&gt;
  1041.  
  1042. &lt;p class=&quot;center&quot;&gt;&lt;img alt=&quot;Login Window Configuration&quot; src=&quot;https://ubuntu-mate.org/images/blog/oracular/login-window.png&quot; /&gt;
  1043. &lt;strong&gt;Login Window&lt;/strong&gt;&lt;/p&gt;
  1044.  
  1045. &lt;h2 id=&quot;what-didnt-change-since-the-ubuntu-mate-2404-lts&quot;&gt;What didn’t change since the Ubuntu MATE 24.04 LTS?&lt;/h2&gt;
  1046.  
  1047. &lt;p&gt;If you follow upstream MATE Desktop development, then you’ll have noticed that Ubuntu MATE 24.10 doesn’t ship with the recently released MATE Desktop 1.28 🧉&lt;/p&gt;
  1048.  
  1049. &lt;p&gt;I have prepared packaging for MATE Desktop 1.28, along with the associated components but encountered some bugs and regressions 🐞 I wasn’t able to get things to a standard I’m happy to ship be default, so it is tried and true MATE 1.26.2 one last time 🪨&lt;/p&gt;
  1050.  
  1051. &lt;h2 id=&quot;major-applications&quot;&gt;Major Applications&lt;/h2&gt;
  1052.  
  1053. &lt;p&gt;Accompanying &lt;strong&gt;MATE Desktop 1.26.2&lt;/strong&gt; 🧉 and &lt;strong&gt;Linux 6.11&lt;/strong&gt; 🐧 are &lt;strong&gt;Firefox 131&lt;/strong&gt; 🔥🦊,
  1054. &lt;strong&gt;Celluloid 0.27&lt;/strong&gt; 🎥, &lt;strong&gt;Evolution 3.54&lt;/strong&gt; 📧, &lt;strong&gt;LibreOffice 24.8.2&lt;/strong&gt; 📚&lt;/p&gt;
  1055.  
  1056. &lt;p&gt;See the &lt;a href=&quot;https://discourse.ubuntu.com/t/oracular-oriole-release-notes/44878/1&quot;&gt;Ubuntu 24.10 Release Notes&lt;/a&gt;
  1057. for details of all the changes and improvements that Ubuntu MATE benefits from.&lt;/p&gt;
  1058.  
  1059. &lt;div class=&quot;jumbotron&quot;&gt;
  1060.  
  1061.    &lt;h2&gt;Download Ubuntu MATE 24.10&lt;/h2&gt;
  1062.  
  1063.    &lt;p&gt;Available for 64-bit desktop computers!&lt;/p&gt;
  1064.  
  1065.  
  1066.    
  1067.        &lt;a class=&quot;btn&quot; href=&quot;https://ubuntu-mate.org/download/&quot;&gt;Download&lt;/a&gt;
  1068.    
  1069.  
  1070. &lt;/div&gt;
  1071.  
  1072. &lt;h2 id=&quot;upgrading-to-ubuntu-mate-2410&quot;&gt;Upgrading to Ubuntu MATE 24.10&lt;/h2&gt;
  1073.  
  1074. &lt;p&gt;The upgrade process to Ubuntu MATE 24.10 is the same as Ubuntu.&lt;/p&gt;
  1075.  
  1076. &lt;ul&gt;
  1077.  &lt;li&gt;&lt;a href=&quot;https://help.ubuntu.com/community/OracularUpgrades&quot;&gt;Ubuntu 24.10 Upgrade Process&lt;/a&gt;&lt;/li&gt;
  1078. &lt;/ul&gt;
  1079.  
  1080. &lt;p&gt;There are no offline upgrade options for Ubuntu MATE. Please ensure you have
  1081. network connectivity to one of the official mirrors or to a locally accessible
  1082. mirror and follow the instructions above.&lt;/p&gt;</description>
  1083. <pubDate>Sun, 06 Apr 2025 16:54:02 +0000</pubDate>
  1084. </item>
  1085. <item>
  1086. <title>St&amp;eacute;phane Graber: LXC/LXCFS/Incus 6.0.4 LTS release</title>
  1087. <guid isPermaLink="false">https://stgraber.org/?p=1723</guid>
  1088. <link>https://stgraber.org/2025/04/04/lxc-lxcfs-incus-6-0-4-lts-release/</link>
  1089. <description>&lt;h1 class=&quot;wp-block-heading&quot;&gt;Introduction&lt;/h1&gt;
  1090.  
  1091.  
  1092.  
  1093. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://linuxcontainers.org/static/img/containers.png&quot; /&gt;&lt;/figure&gt;
  1094.  
  1095.  
  1096.  
  1097. &lt;p&gt;The &lt;a href=&quot;https://linuxcontainers.org/incus/&quot;&gt;Linux Containers project&lt;/a&gt; maintains Long Term Support (LTS) releases for its core projects. Those come with 5 years of support from upstream with the first two years including bugfixes, minor improvements and security fixes and the remaining 3 years getting only security fixes.&lt;/p&gt;
  1098.  
  1099.  
  1100.  
  1101. &lt;p&gt;This is now the fourth round of bugfix releases for LXC, LXCFS and Incus 6.0 LTS.&lt;/p&gt;
  1102.  
  1103.  
  1104.  
  1105. &lt;h1 class=&quot;wp-block-heading&quot;&gt;LXC&lt;/h1&gt;
  1106.  
  1107.  
  1108.  
  1109. &lt;p&gt;&lt;a href=&quot;https://linuxcontainers.org/lxc/&quot;&gt;LXC&lt;/a&gt; is the oldest Linux Containers project and the basis for almost every other one of our projects. This low-level container runtime and library was first released in August 2008, led to the creation of projects like Docker and today is still actively used directly or indirectly on millions of systems.&lt;/p&gt;
  1110.  
  1111.  
  1112.  
  1113. &lt;p&gt;Announcement: &lt;a href=&quot;https://discuss.linuxcontainers.org/t/lxc-6-0-4-lts-has-been-released/23390&quot;&gt;https://discuss.linuxcontainers.org/t/lxc-6-0-4-lts-has-been-released/23390&lt;/a&gt;&lt;/p&gt;
  1114.  
  1115.  
  1116.  
  1117. &lt;p&gt;Highlights of this point release:&lt;/p&gt;
  1118.  
  1119.  
  1120.  
  1121. &lt;ul class=&quot;wp-block-list&quot;&gt;
  1122. &lt;li&gt;Switch to the Zabbly MAC address prefix&lt;/li&gt;
  1123.  
  1124.  
  1125.  
  1126. &lt;li&gt;New LXC_IPV6_ENABLE lxc-net configuration key to turn IPv6 on/off&lt;/li&gt;
  1127.  
  1128.  
  1129.  
  1130. &lt;li&gt;Fixed ability to attach to application containers with non-root entry point&lt;/li&gt;
  1131. &lt;/ul&gt;
  1132.  
  1133.  
  1134.  
  1135. &lt;h1 class=&quot;wp-block-heading&quot;&gt;LXCFS&lt;/h1&gt;
  1136.  
  1137.  
  1138.  
  1139. &lt;p&gt;&lt;a href=&quot;https://linuxcontainers.org/lxcfs/&quot;&gt;LXCFS&lt;/a&gt; is a FUSE filesystem used to workaround some shortcomings of the Linux kernel when it comes to reporting available system resources to processes running in containers. The project started in late 2014 and is still actively used by Incus today as well as by some Docker and Kubernetes users.&lt;/p&gt;
  1140.  
  1141.  
  1142.  
  1143. &lt;p&gt;Announcement: &lt;a href=&quot;https://discuss.linuxcontainers.org/t/lxcfs-6-0-4-lts-has-been-released/23389&quot;&gt;https://discuss.linuxcontainers.org/t/lxcfs-6-0-4-lts-has-been-released/23389&lt;/a&gt;&lt;/p&gt;
  1144.  
  1145.  
  1146.  
  1147. &lt;p&gt;Highlights of this point release:&lt;/p&gt;
  1148.  
  1149.  
  1150.  
  1151. &lt;ul class=&quot;wp-block-list&quot;&gt;
  1152. &lt;li&gt;Properly handle SLAB reclaimable memory in meminfo&lt;/li&gt;
  1153.  
  1154.  
  1155.  
  1156. &lt;li&gt;Handle empty cpuset strings&lt;/li&gt;
  1157.  
  1158.  
  1159.  
  1160. &lt;li&gt;Fix potential sleep interval overflows&lt;/li&gt;
  1161. &lt;/ul&gt;
  1162.  
  1163.  
  1164.  
  1165. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Incus&lt;/h1&gt;
  1166.  
  1167.  
  1168.  
  1169. &lt;p&gt;&lt;a href=&quot;https://linuxcontainers.org/incus/&quot;&gt;Incus&lt;/a&gt; is our most actively developed project. This virtualization platform is just over a year old but has already seen over 3500 commits by over 120 individual contributors. Its first LTS release made it usable in production environments and significantly boosted its user base.&lt;/p&gt;
  1170.  
  1171.  
  1172.  
  1173. &lt;p&gt;Announcement: &lt;a href=&quot;https://discuss.linuxcontainers.org/t/incus-6-0-4-lts-has-been-released/23391&quot;&gt;https://discuss.linuxcontainers.org/t/incus-6-0-4-lts-has-been-released/23391&lt;/a&gt;&lt;/p&gt;
  1174.  
  1175.  
  1176.  
  1177. &lt;p&gt;Highlights of this point release:&lt;/p&gt;
  1178.  
  1179.  
  1180.  
  1181. &lt;ul class=&quot;wp-block-list&quot;&gt;
  1182. &lt;li&gt;Instance network ACLs on bridge networks&lt;/li&gt;
  1183.  
  1184.  
  1185.  
  1186. &lt;li&gt;Enhanced QEMU scriptlets&lt;/li&gt;
  1187.  
  1188.  
  1189.  
  1190. &lt;li&gt;VM memory dumps&lt;/li&gt;
  1191.  
  1192.  
  1193.  
  1194. &lt;li&gt;Extended OVN network state information&lt;/li&gt;
  1195.  
  1196.  
  1197.  
  1198. &lt;li&gt;Extended server preseed file support&lt;/li&gt;
  1199.  
  1200.  
  1201.  
  1202. &lt;li&gt;ACME DNS-01 support&lt;/li&gt;
  1203.  
  1204.  
  1205.  
  1206. &lt;li&gt;API wide collection filtering&lt;/li&gt;
  1207.  
  1208.  
  1209.  
  1210. &lt;li&gt;SMBIOS11 VM provisioning support&lt;/li&gt;
  1211.  
  1212.  
  1213.  
  1214. &lt;li&gt;IOMMU support for VMs&lt;/li&gt;
  1215.  
  1216.  
  1217.  
  1218. &lt;li&gt;VRF support for routed NICs&lt;/li&gt;
  1219.  
  1220.  
  1221.  
  1222. &lt;li&gt;New MAC address range&lt;/li&gt;
  1223.  
  1224.  
  1225.  
  1226. &lt;li&gt;USB NICs in VMs&lt;/li&gt;
  1227.  
  1228.  
  1229.  
  1230. &lt;li&gt;USB disks in VMs&lt;/li&gt;
  1231.  
  1232.  
  1233.  
  1234. &lt;li&gt;Configurable DNS servers in networks&lt;/li&gt;
  1235.  
  1236.  
  1237.  
  1238. &lt;li&gt;Extra IPv4 routes through DHCP&lt;/li&gt;
  1239. &lt;/ul&gt;
  1240.  
  1241.  
  1242.  
  1243. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Distrobuilder&lt;/h1&gt;
  1244.  
  1245.  
  1246.  
  1247. &lt;p&gt;&lt;a href=&quot;https://linuxcontainers.org/distrobuilder&quot;&gt;Distrobuilder&lt;/a&gt; is our image building tool, used to build all our &lt;a href=&quot;https://images.linuxcontainers.org&quot;&gt;public images&lt;/a&gt;.&lt;/p&gt;
  1248.  
  1249.  
  1250.  
  1251. &lt;p&gt;Due to the nature of this tool, it doesn’t get LTS releases as its feature set is extremely stable but still needs to receive very frequent updates to handle changes in the various Linux distributions that it builds. Distrobuilder 3.2 was released at the same time as the LTS releases, providing an up to date snapshot of that project.&lt;/p&gt;
  1252.  
  1253.  
  1254.  
  1255. &lt;p&gt;Announcement: &lt;a href=&quot;https://discuss.linuxcontainers.org/t/distrobuilder-3-2-has-been-released/23385&quot;&gt;https://discuss.linuxcontainers.org/t/distrobuilder-3-2-has-been-released/23385&lt;/a&gt;&lt;/p&gt;
  1256.  
  1257.  
  1258.  
  1259. &lt;p&gt;Highlights from this release:&lt;/p&gt;
  1260.  
  1261.  
  1262.  
  1263. &lt;ul class=&quot;wp-block-list&quot;&gt;
  1264. &lt;li&gt;Improve Windows driver handling&lt;/li&gt;
  1265.  
  1266.  
  1267.  
  1268. &lt;li&gt;Support for newer NixOS releases&lt;/li&gt;
  1269.  
  1270.  
  1271.  
  1272. &lt;li&gt;systemd generator handles newer Linux distributions&lt;/li&gt;
  1273.  
  1274.  
  1275.  
  1276. &lt;li&gt;Support for Alpaquita&lt;/li&gt;
  1277. &lt;/ul&gt;
  1278.  
  1279.  
  1280.  
  1281. &lt;h1 class=&quot;wp-block-heading&quot;&gt;What’s next?&lt;/h1&gt;
  1282.  
  1283.  
  1284.  
  1285. &lt;p&gt;We’re expecting another LTS bugfix release for the 6.0 branches in the third quarter of 2025.&lt;br /&gt;In the mean time, Incus will keep going with its usual monthly feature release cadence.&lt;/p&gt;
  1286.  
  1287.  
  1288.  
  1289. &lt;h1 class=&quot;wp-block-heading&quot;&gt;Thanks&lt;/h1&gt;
  1290.  
  1291.  
  1292.  
  1293. &lt;p&gt;This LTS release update was made possible thanks to funding provided by the Sovereign Tech Fund (now part of the Sovereign Tech Agency).&lt;/p&gt;
  1294.  
  1295.  
  1296.  
  1297. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://www.sovereign.tech&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1648&quot; height=&quot;326&quot; src=&quot;https://stgraber.org/wp-content/uploads/2024/12/ST-Fund-Logo-Default-Black-RGB-1024x326.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1298.  
  1299.  
  1300.  
  1301. &lt;blockquote class=&quot;wp-block-quote is-layout-flow wp-block-quote-is-layout-flow&quot;&gt;
  1302. &lt;p&gt;The Sovereign Tech Fund supports the development, improvement, and maintenance of open digital infrastructure. Its goal is to sustainably strengthen the open source ecosystem, focusing on security, resilience, technological diversity, and the people behind the code.&lt;/p&gt;
  1303. &lt;/blockquote&gt;
  1304.  
  1305.  
  1306.  
  1307. &lt;p&gt;Find out more at: &lt;a href=&quot;https://www.sovereign.tech&quot;&gt;https://www.sovereign.tech&lt;/a&gt;&lt;/p&gt;</description>
  1308. <pubDate>Fri, 04 Apr 2025 12:00:00 +0000</pubDate>
  1309. </item>
  1310. <item>
  1311. <title>Elizabeth K. Joseph: A VisionFive 2 and a Raspberry Pi 1 B</title>
  1312. <guid isPermaLink="false">https://princessleia.com/journal/?p=17828</guid>
  1313. <link>https://princessleia.com/journal/2025/04/a-visionfive-2-and-a-raspberry-pi-1-b/</link>
  1314. <description>&lt;p&gt;A couple weeks ago I was playing around with a multiple architecture CI setup with another team, and that led me to pull out my StarFive VisionFive 2 SBC again to see where I could make it this time with an install.&lt;/p&gt;
  1315. &lt;p&gt;I left off about a year ago when I succeeded in getting an older version of Debian on it, but attempts to get the tooling to install a more broadly supported version of U-Boot to the SPI flash were unsuccessful. Then I got pulled away to other things, effectively just bringing my VF2 around to events as a prop for my multiarch talks – which it did beautifully! I even had one conference attendee buy one to play with while sitting in the audience of my talk. Cool.&lt;/p&gt;
  1316. &lt;p&gt;I was delighted to learn how much progress had been made since I last looked. Canonical has published more formalized documentation: &lt;a href=&quot;https://canonical-ubuntu-boards.readthedocs-hosted.com/en/latest/how-to/starfive-visionfive-2/&quot;&gt;Install Ubuntu on the StarFive VisionFive 2&lt;/a&gt; in the place of what had been a rather cluttered wiki page. So I got all hooked up and began my latest attempt.&lt;/p&gt;
  1317. &lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;https://princessleia.com/images/journalpics/032025/visionfive2_install_philly.jpg&quot;&gt;&lt;img src=&quot;https://princessleia.com/images/journalpics/032025/visionfive2_install_philly_sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  1318. &lt;p&gt;My first step was to grab the pre-installed server image. I got that installed, but struggled a little with persistence once I unplugged the USB UART adapter and rebooted. I then decided just to move forward with the &lt;a href=&quot;https://canonical-ubuntu-boards.readthedocs-hosted.com/en/latest/how-to/starfive-visionfive-2/#install-u-boot-to-the-spi-flash&quot;&gt;Install U-Boot to the SPI flash&lt;/a&gt; instructions. I struggled a bit here for two reasons:&lt;/p&gt;
  1319. &lt;ol&gt;
  1320. &lt;li&gt;The documentation today leads off with having you download the livecd, but you actually want the pre-installed server image to flash U-Boot, the livecd step doesn’t come until later. Admittedly, the instructions do &lt;em&gt;say&lt;/em&gt; this, but I wasn’t reading carefully enough and was more focused on the steps.&lt;/li&gt;
  1321. &lt;li&gt;I couldn’t get the 24.10 pre-installed image to work for flashing U-Boot, but once I went back to the 24.04 pre-installed image it worked.&lt;/li&gt;
  1322. &lt;/ol&gt;
  1323. &lt;p&gt;And then I had to fly across the country. We’re spending a couple weeks around spring break here at our vacation house in Philadelphia, but the good thing about SBCs is that they’re incredibly portable and I just tossed my gear into my backpack and brought it along.&lt;/p&gt;
  1324. &lt;p&gt;Thanks to Emil Renner Berthing (esmil) on the &lt;a href=&quot;https://discourse.ubuntu.com/t/getting-started-with-matrix/41000&quot;&gt;Ubuntu Matrix server&lt;/a&gt; for providing me with enough guidance to figure out where I had gone wrong above, and got me on my way just a few days after we arrived in Philly.&lt;/p&gt;
  1325. &lt;p&gt;With the newer U-Boot installed, I was able to use the Ubuntu 24.04 livecd image on a micro SD Card to install Ubuntu 24.04 on an NVMe drive! That’s another new change since I last looked at installation, using my little NVMe drive as a target was a lot simpler than it would have been a year ago. In fact, it was rather anticlimactic, hah!&lt;/p&gt;
  1326. &lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;https://princessleia.com/images/journalpics/032025/visionfive2_nvme.jpg&quot;&gt;&lt;img src=&quot;https://princessleia.com/images/journalpics/032025/visionfive2_nvme_sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  1327. &lt;p&gt;And with that, I was fully logged in to my new system.&lt;/p&gt;
  1328. &lt;p&gt;&lt;code&gt;elizabeth@r2kt:~$ cat /proc/cpuinfo&lt;br /&gt;
  1329. processor : 0&lt;br /&gt;
  1330. hart : 2&lt;br /&gt;
  1331. isa : rv64imafdc_zicntr_zicsr_zifencei_zihpm_zba_zbb&lt;br /&gt;
  1332. mmu : sv39&lt;br /&gt;
  1333. uarch : sifive,u74-mc&lt;br /&gt;
  1334. mvendorid : 0x489&lt;br /&gt;
  1335. marchid : 0x8000000000000007&lt;br /&gt;
  1336. mimpid : 0x4210427&lt;br /&gt;
  1337. hart isa : rv64imafdc_zicntr_zicsr_zifencei_zihpm_zba_zbb&lt;/code&gt;&lt;/p&gt;
  1338. &lt;p&gt;It has 4 cores, so here’s the full output: &lt;a href=&quot;https://princessleia.com/txt/vf2-cpus.txt&quot;&gt;vf2-cpus.txt&lt;/a&gt;&lt;/p&gt;
  1339. &lt;p&gt;What will I do with this little single board computer? I don’t know yet. I joked with my husband that I’d “install Debian on it and forget about it like everything else” but I really would like to get past that. I have my little multiarch demo CI project in the wings, and I’ll probably loop it into that.&lt;/p&gt;
  1340. &lt;p&gt;Since we were in Philly, I had a look over at my long-neglected Raspberry Pi 1B that I have here. When we first moved in, I used it as an ssh tunnel to get to this network from California. It was great for that! But now we have a more sophisticated network setup between the houses with a VLAN that connects them, so the ssh tunnel is unnecessary. In fact, my poor Raspberry Pi fell off the WiFi network when we switched to 802.1X just over a year ago and I never got around to getting it back on the network. I connected it to a keyboard and monitor and started some investigation. Honestly, I’m surprised the little guy was still running, but it’s doing fine!&lt;/p&gt;
  1341. &lt;p&gt;And it had been chugging along running Rasbian based on Debian 9. Well, that’s worth an upgrade. But not just an upgrade, I didn’t want to stress the device and SD card, so I figured flashing it with the latest version of Raspberry Pi OS was the right way to go. It turns out, it’s been a long time since I’ve done a Raspberry Pi install.&lt;/p&gt;
  1342. &lt;p&gt;I grabbed the &lt;a href=&quot;https://www.raspberrypi.com/software/&quot;&gt;Raspberry Pi Imager&lt;/a&gt; and went on my way. It’s really nice. I went with the Raspberry Pi OS Lite install since it’s the RP1, I didn’t want a GUI. The imager asked the usual installation questions, loaded up my SSH key, and I was ready to load it up in my Pi.&lt;/p&gt;
  1343. &lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;https://princessleia.com/images/journalpics/032025/raspberripi1b_imager_2025.png&quot;&gt;&lt;img src=&quot;https://princessleia.com/images/journalpics/032025/raspberripi1b_imager_2025_sm.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  1344. &lt;p&gt;The only thing I need to finish sorting out is networking. The old USB WiFi adapter I have it in doesn’t initialize until after it’s booted up, so wpa_supplicant on boot can’t negotiate with the access point. I’ll have to play around with it. And what will I use this for once I do, now that it’s not an SSH tunnel? I’m not sure yet.&lt;/p&gt;
  1345. &lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;https://princessleia.com/images/journalpics/032025/raspberry_pi_1_dusty_case.jpg&quot;&gt;&lt;img src=&quot;https://princessleia.com/images/journalpics/032025/raspberry_pi_1_dusty_case_sm.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
  1346. &lt;p&gt;I realize this blog post isn’t very deep or technical, but I guess that’s the point. We’ve come a long way in recent years in support for non-x86 architectures, so installation has gotten a lot easier across several of them. If you’re new to playing around with architectures, I’d say it’s a really good time to start. You can hit the ground running with some wins, and then play around as you go with various things you want to help get working. It’s a lot of fun, and the years I spent playing around with Debian on Sparc back in the day definitely laid the groundwork for the job I have at IBM working on mainframes. You never know where a bit of technical curiosity will get you.&lt;/p&gt;</description>
  1347. <pubDate>Thu, 03 Apr 2025 20:43:31 +0000</pubDate>
  1348. </item>
  1349. <item>
  1350. <title>Colin Watson: Free software activity in March 2025</title>
  1351. <guid isPermaLink="false">tag:www.chiark.greenend.org.uk,2025-04-01:/~cjwatson/blog/activity-2025-03.html</guid>
  1352. <link>https://www.chiark.greenend.org.uk/~cjwatson/blog/activity-2025-03.html</link>
  1353. <description>&lt;p&gt;Most of my Debian contributions this month were
  1354. &lt;a href=&quot;https://www.freexian.com/about/debian-contributions/&quot;&gt;sponsored&lt;/a&gt; by Freexian.&lt;/p&gt;
  1355. &lt;p&gt;You can also support my work directly via
  1356. &lt;a href=&quot;https://liberapay.com/cjwatson&quot;&gt;Liberapay&lt;/a&gt;.&lt;/p&gt;
  1357. &lt;h2&gt;OpenSSH&lt;/h2&gt;
  1358. &lt;p&gt;Changes in dropbear 2025.87 &lt;a href=&quot;https://bugs.debian.org/1100948&quot;&gt;broke OpenSSH’s regression
  1359. tests&lt;/a&gt;.  I cherry-picked the fix.&lt;/p&gt;
  1360. &lt;p&gt;I reviewed and merged &lt;a href=&quot;https://salsa.debian.org/ssh-team/openssh/-/merge_requests/32&quot;&gt;patches from Luca
  1361. Boccassi&lt;/a&gt; to
  1362. send and accept the &lt;code&gt;COLORTERM&lt;/code&gt; and &lt;code&gt;NO_COLOR&lt;/code&gt; environment variables.&lt;/p&gt;
  1363. &lt;h2&gt;Python team&lt;/h2&gt;
  1364. &lt;p&gt;Following up on &lt;a href=&quot;https://www.chiark.greenend.org.uk/~cjwatson/blog/activity-2025-02.html&quot;&gt;last month&lt;/a&gt;, I fixed some
  1365. more uscan errors:&lt;/p&gt;
  1366. &lt;ul&gt;
  1367. &lt;li&gt;python-ewokscore&lt;/li&gt;
  1368. &lt;li&gt;python-ewoksdask&lt;/li&gt;
  1369. &lt;li&gt;python-ewoksdata&lt;/li&gt;
  1370. &lt;li&gt;python-ewoksorange&lt;/li&gt;
  1371. &lt;li&gt;python-ewoksutils&lt;/li&gt;
  1372. &lt;li&gt;python-processview&lt;/li&gt;
  1373. &lt;li&gt;python-rsyncmanager&lt;/li&gt;
  1374. &lt;/ul&gt;
  1375. &lt;p&gt;I upgraded these packages to new upstream versions:&lt;/p&gt;
  1376. &lt;ul&gt;
  1377. &lt;li&gt;bitstruct&lt;/li&gt;
  1378. &lt;li&gt;django-modeltranslation (maintained by Freexian)&lt;/li&gt;
  1379. &lt;li&gt;django-yarnpkg&lt;/li&gt;
  1380. &lt;li&gt;flit&lt;/li&gt;
  1381. &lt;li&gt;isort&lt;/li&gt;
  1382. &lt;li&gt;jinja2 (fixing &lt;a href=&quot;https://bugs.debian.org/1099690&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;-2025-27516&lt;/a&gt;)&lt;/li&gt;
  1383. &lt;li&gt;mkdocstrings-python-legacy&lt;/li&gt;
  1384. &lt;li&gt;mysql-connector-python (fixing
  1385.  &lt;a href=&quot;https://bugs.debian.org/1093881&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;-2025-21548&lt;/a&gt;)&lt;/li&gt;
  1386. &lt;li&gt;psycopg3&lt;/li&gt;
  1387. &lt;li&gt;pydantic-extra-types&lt;/li&gt;
  1388. &lt;li&gt;pydantic-settings&lt;/li&gt;
  1389. &lt;li&gt;pytest-httpx (fixing a &lt;a href=&quot;https://bugs.debian.org/1099269&quot;&gt;build failure with httpx
  1390.  0.28&lt;/a&gt;)&lt;/li&gt;
  1391. &lt;li&gt;python-argcomplete&lt;/li&gt;
  1392. &lt;li&gt;python-cymem&lt;/li&gt;
  1393. &lt;li&gt;python-djvulibre&lt;/li&gt;
  1394. &lt;li&gt;python-ecdsa&lt;/li&gt;
  1395. &lt;li&gt;python-expandvars&lt;/li&gt;
  1396. &lt;li&gt;python-holidays&lt;/li&gt;
  1397. &lt;li&gt;python-json-log-formatter&lt;/li&gt;
  1398. &lt;li&gt;python-keycloak (fixing a &lt;a href=&quot;https://bugs.debian.org/1099273&quot;&gt;build failure with httpx
  1399.  0.28&lt;/a&gt;)&lt;/li&gt;
  1400. &lt;li&gt;python-limits&lt;/li&gt;
  1401. &lt;li&gt;python-mastodon (in the course of which I found
  1402.  &lt;a href=&quot;https://bugs.debian.org/1101140&quot;&gt;#1101140&lt;/a&gt; in blurhash-python and
  1403.  proposed a &lt;a href=&quot;https://salsa.debian.org/xmpp-team/slidge/-/merge_requests/1&quot;&gt;small
  1404.  cleanup&lt;/a&gt; to slidge)&lt;/li&gt;
  1405. &lt;li&gt;python-model-bakery&lt;/li&gt;
  1406. &lt;li&gt;python-multidict&lt;/li&gt;
  1407. &lt;li&gt;python-pip&lt;/li&gt;
  1408. &lt;li&gt;python-rsyncmanager&lt;/li&gt;
  1409. &lt;li&gt;python-service-identity&lt;/li&gt;
  1410. &lt;li&gt;python-setproctitle&lt;/li&gt;
  1411. &lt;li&gt;python-telethon&lt;/li&gt;
  1412. &lt;li&gt;python-trio&lt;/li&gt;
  1413. &lt;li&gt;python-typing-extensions&lt;/li&gt;
  1414. &lt;li&gt;responses&lt;/li&gt;
  1415. &lt;li&gt;setuptools-scm&lt;/li&gt;
  1416. &lt;li&gt;trove-classifiers&lt;/li&gt;
  1417. &lt;li&gt;zope.testrunner&lt;/li&gt;
  1418. &lt;/ul&gt;
  1419. &lt;p&gt;In bookworm-backports, I updated python-django to 3:4.2.19-1.&lt;/p&gt;
  1420. &lt;p&gt;Although Debian’s upgrade to python-click 8.2.0 was
  1421. &lt;a href=&quot;https://bugs.debian.org/1098507#74&quot;&gt;reverted&lt;/a&gt; for the time being, I fixed a
  1422. number of related problems anyway since we’re going to have to deal with it eventually:&lt;/p&gt;
  1423. &lt;ul&gt;
  1424. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098539&quot;&gt;celery&lt;/a&gt; (&lt;a href=&quot;https://github.com/celery/celery/pull/9590&quot;&gt;contributed
  1425.  upstream&lt;/a&gt;)&lt;/li&gt;
  1426. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098575&quot;&gt;magic-wormhole&lt;/a&gt; (closed in Debian
  1427.  without action, but &lt;a href=&quot;https://github.com/magic-wormhole/magic-wormhole/pull/584&quot;&gt;contributed
  1428.  upstream&lt;/a&gt;)&lt;/li&gt;
  1429. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098599&quot;&gt;python-flasgger&lt;/a&gt; (&lt;a href=&quot;https://github.com/flasgger/flasgger/pull/633&quot;&gt;contributed
  1430.  upstream&lt;/a&gt;)&lt;/li&gt;
  1431. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098630&quot;&gt;sqlfluff&lt;/a&gt; (closed in Debian without
  1432.  action, but &lt;a href=&quot;https://github.com/sqlfluff/sqlfluff/pull/6706&quot;&gt;contributed
  1433.  upstream&lt;/a&gt;)&lt;/li&gt;
  1434. &lt;/ul&gt;
  1435. &lt;p&gt;dh-python dropped its dependency on python3-setuptools in 6.20250306, which
  1436. was long overdue, but it had quite a bit of fallout; in most cases this was
  1437. simply a question of adding build-dependencies on python3-setuptools, but in
  1438. a few cases there was a missing build-dependency on
  1439. python3-typing-extensions which had previously been pulled in as a
  1440. dependency of python3-setuptools.  I fixed these bugs resulting from this:&lt;/p&gt;
  1441. &lt;ul&gt;
  1442. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100195&quot;&gt;beangrow&lt;/a&gt;&lt;/li&gt;
  1443. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100196&quot;&gt;beangulp&lt;/a&gt;&lt;/li&gt;
  1444. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100198&quot;&gt;beanprice&lt;/a&gt;&lt;/li&gt;
  1445. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100197&quot;&gt;beanquery&lt;/a&gt;&lt;/li&gt;
  1446. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100199&quot;&gt;beautifulsoup4&lt;/a&gt;&lt;/li&gt;
  1447. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100213&quot;&gt;django-choices-field&lt;/a&gt;&lt;/li&gt;
  1448. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100214&quot;&gt;django-modeltranslation&lt;/a&gt; (maintained by Freexian)&lt;/li&gt;
  1449. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100217&quot;&gt;flake8-class-newline&lt;/a&gt;&lt;/li&gt;
  1450. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100216&quot;&gt;flake8-quotes&lt;/a&gt;&lt;/li&gt;
  1451. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100246&quot;&gt;nodeenv&lt;/a&gt;&lt;/li&gt;
  1452. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100287&quot;&gt;pygments-ansi-color&lt;/a&gt;&lt;/li&gt;
  1453. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100257&quot;&gt;pytest-mypy-plugins&lt;/a&gt;&lt;/li&gt;
  1454. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100256&quot;&gt;python-agilent&lt;/a&gt;&lt;/li&gt;
  1455. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100258&quot;&gt;python-aiohttp-security&lt;/a&gt;&lt;/li&gt;
  1456. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100259&quot;&gt;python-aiohttp-session&lt;/a&gt;&lt;/li&gt;
  1457. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100265&quot;&gt;python-djvulibre&lt;/a&gt;&lt;/li&gt;
  1458. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100264&quot;&gt;python-ewoksutils&lt;/a&gt;&lt;/li&gt;
  1459. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100269&quot;&gt;python-jsonlines&lt;/a&gt;&lt;/li&gt;
  1460. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100271&quot;&gt;python-mastodon&lt;/a&gt;&lt;/li&gt;
  1461. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100277&quot;&gt;python-pydash&lt;/a&gt;&lt;/li&gt;
  1462. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100282&quot;&gt;python-pytest-venv&lt;/a&gt;&lt;/li&gt;
  1463. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100283&quot;&gt;python-redfish&lt;/a&gt;&lt;/li&gt;
  1464. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100285&quot;&gt;python-ring-doorbell&lt;/a&gt;&lt;/li&gt;
  1465. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100287&quot;&gt;python-sluurp&lt;/a&gt;&lt;/li&gt;
  1466. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100288&quot;&gt;python-sqlite-migrate&lt;/a&gt;&lt;/li&gt;
  1467. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100291&quot;&gt;python-trubar&lt;/a&gt;&lt;/li&gt;
  1468. &lt;/ul&gt;
  1469. &lt;p&gt;We agreed to &lt;a href=&quot;https://bugs.debian.org/1100231&quot;&gt;remove python-pytest-flake8&lt;/a&gt;.
  1470. In support of this, I removed unnecessary build-dependencies from
  1471. pytest-pylint, python-proton-core, python-pyzipper, python-tatsu,
  1472. python-tatsu-lts, and python-tinycss, and filed &lt;a href=&quot;https://bugs.debian.org/1101178&quot;&gt;#1101178 on
  1473. eccodes-python&lt;/a&gt; and &lt;a href=&quot;https://bugs.debian.org/1101179&quot;&gt;#1101179 on
  1474. rpmlint&lt;/a&gt;.&lt;/p&gt;
  1475. &lt;p&gt;There was a &lt;a href=&quot;https://bugs.debian.org/1099935&quot;&gt;dnspython autopkgtest regression on
  1476. s390x&lt;/a&gt;.  I independently tracked that down
  1477. to a pylsqpack bug and came up with a reduced test case before realizing
  1478. that Pranav P had already been working on it; we then worked together on it
  1479. and I uploaded their patch to Debian.&lt;/p&gt;
  1480. &lt;p&gt;I fixed various other build/test failures:&lt;/p&gt;
  1481. &lt;ul&gt;
  1482. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1087781&quot;&gt;aiomysql&lt;/a&gt; (closed with no action needed)&lt;/li&gt;
  1483. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/lazr.uri/-/commit/d4a50b86d6fadc7345a7dc85ef0dbcf854bdaf3b&quot;&gt;lazr.uri&lt;/a&gt;&lt;/li&gt;
  1484. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1101045&quot;&gt;m2crypto&lt;/a&gt; (thanks to Sebastian Andrzej Siewior)&lt;/li&gt;
  1485. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/mkdocstrings/-/commit/1c663daa5bee65ac5d4db36bf5f2b7a2e875254a&quot;&gt;mkdocstrings&lt;/a&gt;&lt;/li&gt;
  1486. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1090106&quot;&gt;mystic&lt;/a&gt;&lt;/li&gt;
  1487. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100252&quot;&gt;poetry-plugin-export&lt;/a&gt;&lt;/li&gt;
  1488. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/poetry/-/commit/364c8db9537acf09e69bdfe859d267d0fdfd6002&quot;&gt;poetry&lt;/a&gt;&lt;/li&gt;
  1489. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1101617&quot;&gt;pydantic-extra-types&lt;/a&gt;&lt;/li&gt;
  1490. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1097668&quot;&gt;pymilter&lt;/a&gt;&lt;/li&gt;
  1491. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1099271&quot;&gt;python-a2wsgi&lt;/a&gt; (&lt;a href=&quot;https://github.com/abersheeran/a2wsgi/pull/66&quot;&gt;contributed
  1492.  upstream&lt;/a&gt;)&lt;/li&gt;
  1493. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1099051&quot;&gt;python-anyio&lt;/a&gt;&lt;/li&gt;
  1494. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1093017&quot;&gt;python-cymem&lt;/a&gt;&lt;/li&gt;
  1495. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-django-timescaledb/-/commit/1527b5ec91656f69c0ac75468b3a56924fdd67ae&quot;&gt;python-django-timescaledb&lt;/a&gt;
  1496.  (only partially successful)&lt;/li&gt;
  1497. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-ewokscore/-/commit/cdf90be20bb6d48dfbf8dfb3b5afe302d22503f6&quot;&gt;python-ewokscore&lt;/a&gt;&lt;/li&gt;
  1498. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1092042&quot;&gt;python-ewoksorange&lt;/a&gt;&lt;/li&gt;
  1499. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-httpx-sse/-/commit/56c64f0199cce1fd4c5262146815b00829376c89&quot;&gt;python-httpx-sse&lt;/a&gt;&lt;/li&gt;
  1500. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098875&quot;&gt;python-ml-collections&lt;/a&gt;&lt;/li&gt;
  1501. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100276&quot;&gt;python-opt-einsum&lt;/a&gt; (&lt;a href=&quot;https://github.com/dgasmith/opt_einsum/pull/250&quot;&gt;contributed
  1502.  upstream&lt;/a&gt;)&lt;/li&gt;
  1503. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1090282&quot;&gt;python-passlib&lt;/a&gt;&lt;/li&gt;
  1504. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1101252&quot;&gt;python-pdoc&lt;/a&gt;&lt;/li&gt;
  1505. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1099498&quot;&gt;python-ppmd&lt;/a&gt; (with a
  1506.  &lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-ppmd/-/commit/3f18f3e35eac5d2c90cbfe402dabaa0e21cc553c&quot;&gt;follow-up&lt;/a&gt;)&lt;/li&gt;
  1507. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1092043&quot;&gt;python-processview&lt;/a&gt;&lt;/li&gt;
  1508. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1099275&quot;&gt;python-respx&lt;/a&gt;&lt;/li&gt;
  1509. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-rsyncmanager/-/compare/debian%2F0.1.3-2.1...debian%2F0.1.3-3&quot;&gt;python-rsyncmanager&lt;/a&gt;
  1510.  (contributed upstream:
  1511.  &lt;a href=&quot;https://gitlab.esrf.fr/payno/rsyncmanager/-/commit/ccc5f66dc702f63753fa5f45b1c3d3d37f879595&quot;&gt;ccc5f66dc7&lt;/a&gt;,
  1512.  &lt;a href=&quot;https://gitlab.esrf.fr/payno/rsyncmanager/-/commit/51c15ca8d119cffe32b24d26b9686b9877217a1e&quot;&gt;51c15ca8d1&lt;/a&gt;)&lt;/li&gt;
  1513. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100289&quot;&gt;python-sphobjinv&lt;/a&gt;&lt;/li&gt;
  1514. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1099277&quot;&gt;python-urllib3&lt;/a&gt;&lt;/li&gt;
  1515. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098810&quot;&gt;pytrainer&lt;/a&gt;&lt;/li&gt;
  1516. &lt;li&gt;&lt;a href=&quot;https://salsa.debian.org/python-team/packages/tlv8-python/-/commit/1d386d168d5983537adea903d2963cfd7ba630d6&quot;&gt;tlv8-python&lt;/a&gt;&lt;/li&gt;
  1517. &lt;/ul&gt;
  1518. &lt;p&gt;I &lt;a href=&quot;https://salsa.debian.org/python-team/packages/python-moto/-/commit/b5ca2ee8cfbc197436b13d88445ee34e7f83864e&quot;&gt;enabled more tests in
  1519. python-moto&lt;/a&gt;
  1520. and &lt;a href=&quot;https://github.com/getmoto/moto/pull/8669&quot;&gt;contributed a supporting fix
  1521. upstream&lt;/a&gt;.&lt;/p&gt;
  1522. &lt;p&gt;I sponsored Maximilian Engelhardt to &lt;a href=&quot;https://bugs.debian.org/1100340&quot;&gt;reintroduce
  1523. zope.sqlalchemy&lt;/a&gt;.&lt;/p&gt;
  1524. &lt;p&gt;I fixed various odds and ends of bugs:&lt;/p&gt;
  1525. &lt;ul&gt;
  1526. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098888&quot;&gt;catfish: does not start because of a missing dependency&lt;/a&gt;&lt;/li&gt;
  1527. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100077&quot;&gt;jupyterhub: creates /usr/alembic.ini&lt;/a&gt;&lt;/li&gt;
  1528. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1035201&quot;&gt;pgzero: please add autopkgtests (to add coverage for python3-numpy)&lt;/a&gt;&lt;/li&gt;
  1529. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1100081&quot;&gt;pyspread: creates /usr/pyspread/share/applications/ instead of using /usr/share/applications/&lt;/a&gt;&lt;/li&gt;
  1530. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1101112&quot;&gt;python-aiosmtpd: python3-aiosmtpd-doc/trixie misses Breaks and Replaces
  1531.  for python3-aiosmtpd/bookworm&lt;/a&gt;&lt;/li&gt;
  1532. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1078638&quot;&gt;python-dateutil: will &lt;span class=&quot;caps&quot;&gt;FTBFS&lt;/span&gt; during trixie support
  1533.  period&lt;/a&gt; (&lt;a href=&quot;https://github.com/dateutil/dateutil/pull/1422&quot;&gt;contributed
  1534.  upstream&lt;/a&gt;)&lt;/li&gt;
  1535. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1082011&quot;&gt;python-passlib: bcrypt warning&lt;/a&gt;&lt;/li&gt;
  1536. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1067158&quot;&gt;python-pip: pip3-* manual pages could be aliased&lt;/a&gt;&lt;/li&gt;
  1537. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1092252&quot;&gt;python3-deprecation: installs deprecation-2.0.7.egg-info instead of 2.1.0-2&lt;/a&gt;&lt;/li&gt;
  1538. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1095175&quot;&gt;quodlibet: crashes on start if libmodplug1 is not installed&lt;/a&gt;&lt;/li&gt;
  1539. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/974496&quot;&gt;reparser: autopkgtest must be marked superficial&lt;/a&gt;&lt;/li&gt;
  1540. &lt;/ul&gt;
  1541. &lt;p&gt;I contributed a &lt;a href=&quot;https://salsa.debian.org/python-team/tools/dh-python/-/commit/20f7f6767dd7c82feb699d5218427ab2c127326c&quot;&gt;small documentation improvement to
  1542. pybuild-autopkgtest(1)&lt;/a&gt;.&lt;/p&gt;
  1543. &lt;h2&gt;Rust team&lt;/h2&gt;
  1544. &lt;p&gt;I &lt;a href=&quot;https://bugs.debian.org/1088744&quot;&gt;upgraded rust-asn1 to 0.20.0&lt;/a&gt;.&lt;/p&gt;
  1545. &lt;h2&gt;Science team&lt;/h2&gt;
  1546. &lt;p&gt;I finally gave in and joined the &lt;a href=&quot;https://salsa.debian.org/science-team&quot;&gt;Debian Science
  1547. Team&lt;/a&gt; this month, since it often has
  1548. a lot of overlap with the Python team, and Freexian maintains several
  1549. packages under it.&lt;/p&gt;
  1550. &lt;p&gt;I fixed a uscan error in hdf5-blosc (maintained by Freexian), and upgraded
  1551. it to a new upstream version.&lt;/p&gt;
  1552. &lt;p&gt;I fixed &lt;a href=&quot;https://bugs.debian.org/1099022&quot;&gt;python-vispy: missing dependency on numpy
  1553. abi&lt;/a&gt;.&lt;/p&gt;
  1554. &lt;h2&gt;Other bits and pieces&lt;/h2&gt;
  1555. &lt;p&gt;I fixed &lt;a href=&quot;https://bugs.debian.org/1061480&quot;&gt;debconf should automatically be noninteractive if input is
  1556. /dev/null&lt;/a&gt;.&lt;/p&gt;
  1557. &lt;p&gt;I fixed a build failure with &lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; 15 in
  1558. &lt;a href=&quot;https://bugs.debian.org/1098195&quot;&gt;yubihsm-shell&lt;/a&gt; (maintained by Freexian).&lt;/p&gt;
  1559. &lt;p&gt;Prompted by a &lt;span class=&quot;caps&quot;&gt;CI&lt;/span&gt; failure in
  1560. &lt;a href=&quot;https://freexian-team.pages.debian.net/debusine/&quot;&gt;debusine&lt;/a&gt;, I submitted a
  1561. large batch of spelling fixes and some improved static analysis to incus
  1562. (&lt;a href=&quot;https://github.com/lxc/incus/pull/1777&quot;&gt;#1777&lt;/a&gt;,
  1563. &lt;a href=&quot;https://github.com/lxc/incus/pull/1778&quot;&gt;#1778&lt;/a&gt;) and
  1564. &lt;a href=&quot;https://github.com/lxc/distrobuilder/pull/910&quot;&gt;distrobuilder&lt;/a&gt;.&lt;/p&gt;
  1565. &lt;p&gt;After regaining access to the repository, I fixed &lt;a href=&quot;https://gitlab.gnome.org/GNOME/telegnome/-/issues/2&quot;&gt;telegnome: missing app
  1566. icon in ‘About’
  1567. dialogue&lt;/a&gt; and made a
  1568. new 0.3.7 release.&lt;/p&gt;</description>
  1569. <pubDate>Tue, 01 Apr 2025 12:17:35 +0000</pubDate>
  1570. </item>
  1571. <item>
  1572. <title>St&amp;eacute;phane Graber: Announcing Incus 6.11</title>
  1573. <guid isPermaLink="false">https://stgraber.org/?p=1718</guid>
  1574. <link>https://stgraber.org/2025/03/31/announcing-incus-6-11/</link>
  1575. <description>&lt;p&gt;The Incus team is pleased to announce the release of Incus 6.11!&lt;/p&gt;
  1576.  
  1577.  
  1578.  
  1579. &lt;p&gt;Without a doubt, the headline feature for this release is initial support for Linstor as a new storage driver for those looking for an alternative to Ceph! But that’s far from all that this Incus release brings to the table. It also comes with a lot of new VM, OCI and networking features!&lt;/p&gt;
  1580.  
  1581.  
  1582.  
  1583. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://linuxcontainers.org/incus/try-it/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1719&quot; height=&quot;373&quot; src=&quot;https://stgraber.org/wp-content/uploads/2025/03/image-1024x373.png&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  1584.  
  1585.  
  1586.  
  1587. &lt;p&gt;The highlights for this release are:&lt;/p&gt;
  1588.  
  1589.  
  1590.  
  1591. &lt;ul class=&quot;wp-block-list&quot;&gt;
  1592. &lt;li&gt;Linstor storage driver&lt;/li&gt;
  1593.  
  1594.  
  1595.  
  1596. &lt;li&gt;New MAC address range&lt;/li&gt;
  1597.  
  1598.  
  1599.  
  1600. &lt;li&gt;USB NICs in VMs&lt;/li&gt;
  1601.  
  1602.  
  1603.  
  1604. &lt;li&gt;USB disks in VMs&lt;/li&gt;
  1605.  
  1606.  
  1607.  
  1608. &lt;li&gt;Tracking of VM machine definition&lt;/li&gt;
  1609.  
  1610.  
  1611.  
  1612. &lt;li&gt;Configurable OCI entrypoint&lt;/li&gt;
  1613.  
  1614.  
  1615.  
  1616. &lt;li&gt;Unprivileged ICMP (ping) in OCI containers&lt;/li&gt;
  1617.  
  1618.  
  1619.  
  1620. &lt;li&gt;Unprivileged low ports in OCI containers&lt;/li&gt;
  1621.  
  1622.  
  1623.  
  1624. &lt;li&gt;Allocated CPU time in instance state API&lt;/li&gt;
  1625.  
  1626.  
  1627.  
  1628. &lt;li&gt;Configurable DNS servers&lt;/li&gt;
  1629.  
  1630.  
  1631.  
  1632. &lt;li&gt;Extra IPv4 routes through DHCP&lt;/li&gt;
  1633.  
  1634.  
  1635.  
  1636. &lt;li&gt;Configurable IPv4 DHCP lease expiry on OVN&lt;/li&gt;
  1637.  
  1638.  
  1639.  
  1640. &lt;li&gt;OVN logical switch name now part of network state&lt;/li&gt;
  1641. &lt;/ul&gt;
  1642.  
  1643.  
  1644.  
  1645. &lt;p&gt;The full announcement and changelog can be &lt;a href=&quot;https://discuss.linuxcontainers.org/t/incus-6-11-has-been-released/23322&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;found here&lt;/a&gt;.&lt;br /&gt;And for those who prefer videos, here’s the release overview video:&lt;/p&gt;
  1646.  
  1647.  
  1648.  
  1649. &lt;figure class=&quot;wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio&quot;&gt;&lt;div class=&quot;wp-block-embed__wrapper&quot;&gt;
  1650.  
  1651. &lt;/div&gt;&lt;/figure&gt;
  1652.  
  1653.  
  1654.  
  1655. &lt;p&gt;You can take the latest release of Incus up for a spin through our online demo service at: &lt;a href=&quot;https://linuxcontainers.org/incus/try-it/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://linuxcontainers.org/incus/try-it/&lt;/a&gt;&lt;/p&gt;
  1656.  
  1657.  
  1658.  
  1659. &lt;p&gt;And as always, my company is offering commercial support on Incus, ranging from by-the-hour support contracts to one-off services on things like initial migration from LXD, review of your deployment to squeeze the most out of Incus or even feature sponsorship. You’ll find all details of that here: &lt;a href=&quot;https://zabbly.com/incus&quot;&gt;https://zabbly.com/incus&lt;/a&gt;&lt;/p&gt;
  1660.  
  1661.  
  1662.  
  1663. &lt;p&gt;Donations towards my work on this and other open source projects is also always appreciated, you can  find me on &lt;a href=&quot;https://github.com/sponsors/stgraber&quot;&gt;Github Sponsors&lt;/a&gt;, &lt;a href=&quot;https://patreon.com/stgraber&quot;&gt;Patreon&lt;/a&gt; and &lt;a href=&quot;https://ko-fi.com/stgraber&quot;&gt;Ko-fi&lt;/a&gt;.&lt;/p&gt;
  1664.  
  1665.  
  1666.  
  1667. &lt;p&gt;Enjoy!&lt;/p&gt;</description>
  1668. <pubDate>Mon, 31 Mar 2025 18:07:23 +0000</pubDate>
  1669. </item>
  1670. <item>
  1671. <title>Lubuntu Blog: Lubuntu Plucky Puffin Beta Released!</title>
  1672. <guid isPermaLink="false">https://lubuntu.me/?p=4122</guid>
  1673. <link>https://lubuntu.me/plucky-beta/</link>
  1674. <description>Thanks to the hard work of our contributors, we are happy to announce the release of Lubuntu's Plucky Beta, which will become Lubuntu 25.04. This is a snapshot of the daily images. Approximately two months ago, we posted an Alpha-level update. While some information is duplicated below, that contains an accurate, concise technical summary of […]</description>
  1675. <pubDate>Thu, 27 Mar 2025 21:02:47 +0000</pubDate>
  1676. </item>
  1677. <item>
  1678. <title>Kubuntu General News: Kubuntu Plucky Puffin (25.04) Beta released</title>
  1679. <guid isPermaLink="false">https://kubuntu.org/?p=5289</guid>
  1680. <link>https://kubuntu.org/news/kubuntu-plucky-puffin-25-04-beta-released/</link>
  1681. <description>&lt;p id=&quot;block-14926ea1-8934-4a9d-a6d4-1e5a4dc2385c&quot;&gt;&lt;br /&gt;The beta of Kubuntu Plucky Puffin (to become 25.04 in April) has now been released, and is available for&lt;strong&gt; &lt;a href=&quot;http://cdimage.ubuntu.com/kubuntu/releases/25.04/beta/&quot;&gt;download&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
  1682.  
  1683.  
  1684.  
  1685. &lt;p id=&quot;block-340c98c0-df05-4300-9959-2a00031b46fe&quot;&gt;This milestone features images for Kubuntu and other Ubuntu flavours.&lt;/p&gt;
  1686.  
  1687.  
  1688.  
  1689. &lt;p id=&quot;block-57b1b111-6f2e-48ca-a632-948e4e380449&quot;&gt;Pre-releases of Kubuntu Plucky Puffin are not recommended for:&lt;/p&gt;
  1690.  
  1691.  
  1692.  
  1693. &lt;ul id=&quot;block-e87ca1d1-fc16-40e9-8488-783791f3d7c9&quot;&gt;&lt;li&gt;Anyone needing a stable system&lt;/li&gt;&lt;li&gt;Regular users who are not aware of pre-release issues&lt;/li&gt;&lt;li&gt;Anyone in a production environment with data or workflows that need to be reliable&lt;/li&gt;&lt;/ul&gt;
  1694.  
  1695.  
  1696.  
  1697. &lt;p id=&quot;block-a7ac8e5a-c0ea-40d6-9935-0801afa87167&quot;&gt;They are, however, recommended for:&lt;/p&gt;
  1698.  
  1699.  
  1700.  
  1701. &lt;ul id=&quot;block-8af94b9b-f227-43af-b378-0b6114aafd62&quot;&gt;&lt;li&gt;Regular users who want to help us test by finding, reporting, and/or fixing bugs&lt;/li&gt;&lt;li&gt;Kubuntu, KDE, and Qt developers&lt;/li&gt;&lt;li&gt;Other Ubuntu flavour developers&lt;/li&gt;&lt;/ul&gt;
  1702.  
  1703.  
  1704.  
  1705. &lt;p id=&quot;block-c7f67569-d2dd-4fb4-9bbf-9ea3cfb55d5a&quot;&gt;The Beta includes some software updates that are ready for broader testing. However, it is an early set of images, so you should expect some bugs.&lt;/p&gt;
  1706.  
  1707.  
  1708.  
  1709. &lt;p&gt;Highlights include an update to KDE Plasma 6.3.&lt;/p&gt;
  1710.  
  1711.  
  1712.  
  1713. &lt;p id=&quot;block-e835eb9d-3f0a-49c2-881a-9cd9def95d55&quot;&gt;&lt;strong&gt;We STRONGLY advise testers to read the &lt;/strong&gt;&lt;a href=&quot;https://wiki.ubuntu.com/PluckyPuffin/Beta/Kubuntu&quot;&gt;&lt;strong&gt;Kubuntu 25.04 Beta release notes&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; before installing, and in particular the section on ‘&lt;a href=&quot;https://wiki.ubuntu.com/PluckyPuffin/Beta/Kubuntu#Known_issues&quot;&gt;Known issues’&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
  1714.  
  1715.  
  1716.  
  1717. &lt;p id=&quot;block-941105d9-2071-403f-ba5c-68b3cc0c2d65&quot;&gt;&lt;/p&gt;
  1718.  
  1719.  
  1720.  
  1721. &lt;p id=&quot;block-7fc1f52f-f0ff-4426-94c0-2e291f2e2793&quot;&gt;You can also find more information about the entire 25.04 release (base, kernel, graphics etc) in the &lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687&quot;&gt;main Ubuntu Beta release notes&lt;/a&gt; and &lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-announce/2025-March/000309.html&quot;&gt;announcement.&lt;/a&gt;&lt;/p&gt;</description>
  1722. <pubDate>Thu, 27 Mar 2025 20:47:15 +0000</pubDate>
  1723. </item>
  1724. <item>
  1725. <title>Ubuntu Studio: Ubuntu Studio 25.04 Beta Released</title>
  1726. <guid isPermaLink="false">https://ubuntustudio.org/?p=2971</guid>
  1727. <link>https://ubuntustudio.org/2025/03/ubuntu-studio-25-04-beta-released/</link>
  1728. <description>&lt;div class=&quot;wp-block-image&quot;&gt;&lt;figure class=&quot;aligncenter is-resized&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;223&quot; src=&quot;https://ubuntucommunity.s3.us-east-2.amazonaws.com/original/3X/3/e/3e23056a25237ecee946caf83510c35802d33c6c.jpeg&quot; width=&quot;600&quot; /&gt;&lt;/figure&gt;&lt;/div&gt;
  1729.  
  1730.  
  1731.  
  1732. &lt;p id=&quot;block-dfae7f3f-d386-4297-b510-560ae7fce8a5&quot;&gt;The Ubuntu Studio team is pleased to announce the beta release of Ubuntu Studio 25.04, codenamed “Plucky Puffin”.&lt;/p&gt;
  1733.  
  1734.  
  1735.  
  1736. &lt;p id=&quot;block-ebf85cba-74ad-4dc6-a731-f595c9f28a72&quot;&gt;While this beta is reasonably free of any showstopper installer bugs, you will find some bugs within. This image is, however, mostly representative of what you will find when Ubuntu Studio 25.04 is released on April 17, 2025.&lt;/p&gt;
  1737.  
  1738.  
  1739.  
  1740. &lt;p&gt;We encourage everyone to try this image and report bugs to improve our final release.&lt;/p&gt;
  1741.  
  1742.  
  1743.  
  1744. &lt;h2 id=&quot;block-6ca66e3a-8d42-42a8-a0cf-a8ed86e6025f&quot;&gt;Special Notes&lt;/h2&gt;
  1745.  
  1746.  
  1747.  
  1748. &lt;p id=&quot;block-708043b1-523e-4fb9-92ca-720e3316371a&quot;&gt;The Ubuntu Studio 25.04 image (ISO) exceeds 4 GB and cannot be downloaded to some file systems such as FAT32 and may not be readable when burned to a DVD. For this reason, we recommend downloading to a compatible file system. When creating a boot medium, we recommend &lt;a href=&quot;https://ubuntu.com/tutorials/create-a-usb-stick-on-ubuntu#1-overview&quot;&gt;creating a bootable USB stick&lt;/a&gt; with the ISO image or burning to a Dual-Layer DVD.&lt;/p&gt;
  1749.  
  1750.  
  1751.  
  1752. &lt;p id=&quot;block-fa4be379-b904-4919-9502-c73469ca31ef&quot;&gt;Images can be obtained from this link: &lt;a href=&quot;https://cdimage.ubuntu.com/ubuntustudio/releases/25.04/beta/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;https://cdimage.ubuntu.com/ubuntustudio/releases/25.0&lt;/a&gt;&lt;a href=&quot;https://cdimage.ubuntu.com/ubuntustudio/releases/25.04/beta/&quot; rel=&quot;noreferrer noopener&quot; target=&quot;_blank&quot;&gt;4/beta/&lt;/a&gt;&lt;/p&gt;
  1753.  
  1754.  
  1755.  
  1756. &lt;p id=&quot;block-bf39c734-e080-4549-9621-044e9241d48c&quot;&gt;Full updated information, including &lt;strong&gt;Upgrade Instructions,&lt;/strong&gt; are available in the &lt;strong&gt;&lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-studio-25-04-release-notes/&quot;&gt;Release Notes&lt;/a&gt;&lt;/strong&gt;&lt;a href=&quot;https://wiki.ubuntu.com/GroovyGorilla/Beta/UbuntuStudio&quot;&gt;.&lt;/a&gt;&lt;/p&gt;
  1757.  
  1758.  
  1759.  
  1760. &lt;h2 id=&quot;block-aaaf14ed-800d-473e-abc2-4f2db719e0d7&quot;&gt;New Features This Release&lt;/h2&gt;
  1761.  
  1762.  
  1763.  
  1764. &lt;p&gt;This release is more evolutionary rather than revolutionary. While we work hard to bring new features, this one was not one where we had anything major to report. Here are a few highlights:&lt;/p&gt;
  1765.  
  1766.  
  1767.  
  1768. &lt;ul id=&quot;block-05beff49-852b-4564-9df3-018c2354c56e&quot;&gt;&lt;li&gt;&lt;strong&gt;Plasma 6.3&lt;/strong&gt; is now the default desktop environment, an upgrade from Plasma 6.1.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;PipeWire&lt;/strong&gt; continues to improve with every release.. Version 1.2.7&lt;/li&gt;&lt;li&gt;The &lt;strong&gt;Default Panel Icons&lt;/strong&gt; are now back. The default panel now populates depending on which applications are available, so that there are never empty icons if you choose the minimal install, and then install one or more of our featured applications. This refresh to the default is done every reboot, so it’s not a live update. Additionally, it must be refreshed manually from the User side either by selecting the Global Theme or removing the panel and adding “Ubuntu Studio Default Panel”.&lt;/li&gt;&lt;li&gt;While not included in this Beta, &lt;strong&gt;Darktable&lt;/strong&gt; will be upgraded to 5.0.0 before final release.&lt;/li&gt;&lt;/ul&gt;
  1769.  
  1770.  
  1771.  
  1772. &lt;h2 id=&quot;block-c3e434c7-367a-4777-b799-a3fd6a35e1b3&quot;&gt;Major Package Upgrades&lt;/h2&gt;
  1773.  
  1774.  
  1775.  
  1776. &lt;ul id=&quot;block-e855e703-e523-4f63-940a-d1071d6b8dbf&quot;&gt;&lt;li&gt;&lt;strong&gt;Ardour&lt;/strong&gt; version 8.12.0&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Qtractor&lt;/strong&gt; version 1.5.3&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Audacity &lt;/strong&gt;version 3.7.3&lt;/li&gt;&lt;li&gt;&lt;strong&gt;digiKam&lt;/strong&gt; version 8.5.0&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Kdenlive &lt;/strong&gt;version 24.12.3&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Krita &lt;/strong&gt;version 5.2.9&lt;/li&gt;&lt;li&gt;&lt;strong&gt;GIMP&lt;/strong&gt; version 3.0.0&lt;/li&gt;&lt;/ul&gt;
  1777.  
  1778.  
  1779.  
  1780. &lt;p id=&quot;block-5f0d720e-bce2-4330-9654-b7cd8589e194&quot;&gt;There are many other improvements, too numerous to list here. We encourage you to look around the freely-downloadable ISO image.&lt;/p&gt;
  1781.  
  1782.  
  1783.  
  1784. &lt;h2 id=&quot;block-8f4aa3cc-9bd2-4090-a685-153ad6761131&quot;&gt;Known Issues&lt;/h2&gt;
  1785.  
  1786.  
  1787.  
  1788. &lt;ul id=&quot;block-c6eb8dde-1349-461b-886c-937bdbed611d&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://launchpad.net/bugs/2062402&quot;&gt;The installer was supposed to be able to keep the screen from locking, &lt;/a&gt;but this will still happen after 15 minutes. Please keep the screen active during installation. As a workaround if you know you will be keeping your machine unattended during installation, press Alt-Space to invoke Krunner (this even works from the Install Ubuntu Studio versus the Try Ubuntu Studio live environment) and type “System Settings”. From there, search for “Screen Locking” and deactivate “Lock automatically after…”.&lt;br /&gt;&lt;br /&gt;Another possible workaround is to click on “Switch User” and then re-login as “Live User” without a password if this happens.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You will be prompted, upon first login of any new user, to reboot to apply proper audio configurations for audio production. This is intentional and is a workaround for the installer’s inability to &lt;a href=&quot;https://launchpad.net/bugs/2063899&quot;&gt;configure the first user as part of the “audio” group or for new users to be added to the audio group automatically.&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Installer background and slideshow still show the Oracular Oriole mascot. This is work in progress, to be fixed in a daily release sometime between now and final release.&lt;/li&gt;&lt;/ul&gt;
  1789.  
  1790.  
  1791.  
  1792. &lt;p id=&quot;block-cac00ac7-cbaa-4df0-a2b1-579dfba8e8a8&quot;&gt;Official Ubuntu Studio release notes can be found at &lt;a href=&quot;https://discourse.ubuntu.com/t/ubuntu-studio-25-04-release-notes/&quot;&gt;https://discourse.ubuntu.com/t/ubuntu-studio-25-04-release-notes/&lt;/a&gt;&lt;/p&gt;
  1793.  
  1794.  
  1795.  
  1796. &lt;p id=&quot;block-8127ec85-81e1-49ae-8132-7d07e86e6647&quot;&gt;Further known issues, mostly pertaining to the desktop environment, can be found at &lt;a href=&quot;https://wiki.ubuntu.com/PluckyPuffin/ReleaseNotes/Kubuntu&quot;&gt;https://wiki.ubuntu.com/PluckyPuffin/ReleaseNotes/Kubuntu&lt;/a&gt;&lt;/p&gt;
  1797.  
  1798.  
  1799.  
  1800. &lt;p id=&quot;block-547b9794-57c5-49eb-a8cb-884c89bb51a8&quot;&gt;Additionally, the main Ubuntu release notes contain more generic issues: &lt;a href=&quot;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/&quot;&gt;https://discourse.ubuntu.com/t/plucky-puffin-release-notes/&lt;/a&gt;&lt;/p&gt;
  1801.  
  1802.  
  1803.  
  1804. &lt;h2 id=&quot;block-82f8513f-6640-43f9-bde7-5c17da0aa520&quot;&gt;How You Can Help&lt;/h2&gt;
  1805.  
  1806.  
  1807.  
  1808. &lt;p&gt;Please test using the test cases on &lt;a href=&quot;https://iso.qa.ubuntu.com&quot;&gt;https://iso.qa.ubuntu.com&lt;/a&gt;. All you need is a &lt;a href=&quot;https://launchpad.net&quot;&gt;Launchpad&lt;/a&gt; account to get started.&lt;/p&gt;
  1809.  
  1810.  
  1811.  
  1812. &lt;p&gt;&lt;strong&gt;Additionally, we need financial contributions. Our project lead, Erich Eickmeyer, is working long hours on this project and trying to generate a part-time income. &lt;a data-id=&quot;56&quot; data-type=&quot;page&quot; href=&quot;https://ubuntustudio.org/contribute/&quot;&gt;Go here&lt;/a&gt; to see how you can contribute financially (options are also in the sidebar).&lt;/strong&gt;&lt;/p&gt;
  1813.  
  1814.  
  1815.  
  1816. &lt;h2 id=&quot;block-c7a21be7-9349-421e-a098-c0d2919f320a&quot;&gt;Frequently Asked Questions&lt;/h2&gt;
  1817.  
  1818.  
  1819.  
  1820. &lt;p id=&quot;block-163f794a-f451-40b0-bbbd-6f26c6cbe8e8&quot;&gt;&lt;strong&gt;Q:&lt;/strong&gt; Does Ubuntu Studio contain snaps?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; Yes. Mozilla’s distribution agreement with Canonical changed, and Ubuntu was forced to no longer distribute Firefox in a native .deb package. We have found that, after numerous improvements, Firefox now performs just as well as the native .deb package did.&lt;/p&gt;
  1821.  
  1822.  
  1823.  
  1824. &lt;p&gt;Thunderbird is also a snap this cycle in order for the maintainers to get security patches delivered faster.&lt;/p&gt;
  1825.  
  1826.  
  1827.  
  1828. &lt;p id=&quot;block-342134d3-a024-4b7b-b768-76c758b20acd&quot;&gt;Additionally, Freeshow is an Electron-based application. Electron-based applications cannot be packaged in the Ubuntu repositories in that they cannot be packaged in a traditional Debian source package. While such apps do have a build system to create a .deb binary package, it circumvents the source package build system in Launchpad, which is required when packaging for Ubuntu. However, Electron apps also have a facility for creating snaps, which can be uploaded and included. Therefore, for Freeshow to be included in Ubuntu Studio, it had to be packaged as a snap.&lt;br /&gt;&lt;br /&gt;Also, to keep theming consistent, all included themes are snapped in addition to the included .deb versions so that snaps stay consistent with out themes.&lt;/p&gt;
  1829.  
  1830.  
  1831.  
  1832. &lt;p&gt;We are working with Canonical to make sure that the quality of snaps goes up with each release, so we please ask that you give snaps a chance instead of writing them off completely.&lt;/p&gt;
  1833.  
  1834.  
  1835.  
  1836. &lt;p id=&quot;block-c5b30c83-d27b-4fd0-a958-bc418f83bf2a&quot;&gt;&lt;strong&gt;Q:&lt;/strong&gt; If I install this Beta release, will I have to reinstall when the final release comes out?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; No. If you keep it updated, your installation will automatically become the final release. However, if Audacity returns to the Ubuntu repositories before final release, then you might end-up with a double-installation of Audacity. Removal instructions of one or the other will be made available in a future post.&lt;/p&gt;
  1837.  
  1838.  
  1839.  
  1840. &lt;p id=&quot;block-2266cee7-0ea1-49cf-8340-594da42a09d7&quot;&gt;&lt;strong&gt;Q&lt;/strong&gt;: Will you make an ISO with {my favorite desktop environment}?&lt;br /&gt;&lt;strong&gt;A:&lt;/strong&gt; To do so would require creating an entirely new flavor of Ubuntu, which would require going through the Official Ubuntu Flavor application process. Since we’re completely volunteer-run, we don’t have the time or resources to do this. Instead, we recommend you download the &lt;a href=&quot;https://ubuntu.com/download/flavours&quot;&gt;official flavor for the desktop environment of your choice&lt;/a&gt; and use &lt;a href=&quot;https://ubuntustudio.org/ubuntu-studio-installer&quot;&gt;Ubuntu Studio Installer&lt;/a&gt; to get Ubuntu Studio – which does *not* convert that flavor to Ubuntu Studio but adds its benefits.&lt;/p&gt;
  1841.  
  1842.  
  1843.  
  1844. &lt;p id=&quot;block-48669a69-39bc-4971-b46b-c7da87133d24&quot;&gt;&lt;strong&gt;Q: &lt;/strong&gt;What if I don’t want all these packages installed on my machine?&lt;br /&gt;&lt;strong&gt;A: &lt;/strong&gt;We now include a minimal install option. Install using the minimal install option, then use &lt;strong&gt;Ubuntu Studio Installer &lt;/strong&gt;to install what you need for your very own content creation studio.&lt;/p&gt;</description>
  1845. <pubDate>Thu, 27 Mar 2025 18:28:42 +0000</pubDate>
  1846. </item>
  1847. <item>
  1848. <title>Faizul &quot;Piju&quot; 9M2PJU: How to Install the Latest CHIRP on Ubuntu</title>
  1849. <guid isPermaLink="false">https://hamradio.my/?p=7265</guid>
  1850. <link>https://hamradio.my/2025/03/how-to-install-the-latest-chirp-on-ubuntu/</link>
  1851. <description>&lt;h1 class=&quot;wp-block-heading&quot; id=&quot;h-&quot;&gt;&lt;/h1&gt;
  1852.  
  1853.  
  1854.  
  1855. &lt;p&gt;CHIRP is a powerful open-source tool for programming amateur radios, supporting brands like Baofeng, Kenwood, and Yaesu. With the transition from &lt;code&gt;chirp-daily&lt;/code&gt; to &lt;code&gt;chirp-next&lt;/code&gt;, Ubuntu users need a new approach to install the latest version. This guide provides a step-by-step method to install CHIRP, configure dependencies, and troubleshoot common issues.&lt;/p&gt;
  1856.  
  1857.  
  1858.  
  1859. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  1860.  
  1861.  
  1862.  
  1863. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-step-1-install-required-dependencies&quot;&gt;&lt;strong&gt;Step 1: Install Required Dependencies&lt;/strong&gt;&lt;/h2&gt;
  1864.  
  1865.  
  1866.  
  1867. &lt;p&gt;Before installing CHIRP, ensure your system has the necessary dependencies. Open a terminal and execute:&lt;/p&gt;
  1868.  
  1869.  
  1870.  
  1871. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;sudo apt update &amp;amp;&amp;amp; sudo apt install python3-wxgtk4.0 pipx
  1872. &lt;/code&gt;&lt;/pre&gt;
  1873.  
  1874.  
  1875.  
  1876. &lt;ul class=&quot;wp-block-list&quot;&gt;
  1877. &lt;li&gt;&lt;code&gt;python3-wxgtk4.0&lt;/code&gt;: Provides the graphical components for CHIRP.&lt;/li&gt;
  1878.  
  1879.  
  1880.  
  1881. &lt;li&gt;&lt;code&gt;pipx&lt;/code&gt;: Ensures a clean and isolated installation of CHIRP.&lt;/li&gt;
  1882. &lt;/ul&gt;
  1883.  
  1884.  
  1885.  
  1886. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  1887.  
  1888.  
  1889.  
  1890. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-step-2-download-the-latest-chirp-package&quot;&gt;&lt;strong&gt;Step 2: Download the Latest CHIRP Package&lt;/strong&gt;&lt;/h2&gt;
  1891.  
  1892.  
  1893.  
  1894. &lt;p&gt;The latest CHIRP version is distributed as a Python wheel (&lt;code&gt;.whl&lt;/code&gt;). Download it from the official CHIRP website:&lt;/p&gt;
  1895.  
  1896.  
  1897.  
  1898. &lt;ol class=&quot;wp-block-list&quot;&gt;
  1899. &lt;li&gt;Visit: &lt;strong&gt;&lt;a href=&quot;https://archive.chirpmyradio.com/chirp_next&quot;&gt;https://archive.chirpmyradio.com/chirp_next&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
  1900.  
  1901.  
  1902.  
  1903. &lt;li&gt;Download the most recent &lt;code&gt;chirp-YYYYMMDD-py3-none-any.whl&lt;/code&gt; file.&lt;/li&gt;
  1904.  
  1905.  
  1906.  
  1907. &lt;li&gt;Save it to your &lt;code&gt;Downloads&lt;/code&gt; folder for easy access.&lt;/li&gt;
  1908. &lt;/ol&gt;
  1909.  
  1910.  
  1911.  
  1912. &lt;p&gt;Alternatively, download it via &lt;code&gt;wget&lt;/code&gt;:&lt;/p&gt;
  1913.  
  1914.  
  1915.  
  1916. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;cd ~/Downloads
  1917. wget https://archive.chirpmyradio.com/chirp_next/next-20250321/chirp-20250321-py3-none-any.whl
  1918. &lt;/code&gt;&lt;/pre&gt;
  1919.  
  1920.  
  1921.  
  1922. &lt;p&gt;(Replace &lt;code&gt;20250321&lt;/code&gt; with the latest available version.)&lt;/p&gt;
  1923.  
  1924.  
  1925.  
  1926. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  1927.  
  1928.  
  1929.  
  1930. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-step-3-install-chirp-using-pipx&quot;&gt;&lt;strong&gt;Step 3: Install CHIRP Using Pipx&lt;/strong&gt;&lt;/h2&gt;
  1931.  
  1932.  
  1933.  
  1934. &lt;p&gt;With the &lt;code&gt;.whl&lt;/code&gt; file downloaded, install CHIRP via &lt;code&gt;pipx&lt;/code&gt;:&lt;/p&gt;
  1935.  
  1936.  
  1937.  
  1938. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;pipx install --system-site-packages ~/Downloads/chirp-20250321-py3-none-any.whl
  1939. &lt;/code&gt;&lt;/pre&gt;
  1940.  
  1941.  
  1942.  
  1943. &lt;p&gt;(Ensure you use the correct file name for your version.)&lt;/p&gt;
  1944.  
  1945.  
  1946.  
  1947. &lt;p&gt;After installation, CHIRP should be available system-wide.&lt;/p&gt;
  1948.  
  1949.  
  1950.  
  1951. &lt;p&gt;To add a shortcut for CHIRP to your application menu after installing it via &lt;code&gt;pipx&lt;/code&gt;, first create a desktop entry file in the &lt;code&gt;~/.local/share/applications/&lt;/code&gt; directory. Open a terminal and run &lt;code&gt;nano ~/.local/share/applications/chirp.desktop&lt;/code&gt; to create a new file. In this file, add the following content:&lt;/p&gt;
  1952.  
  1953.  
  1954.  
  1955. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;&lt;code&gt;[Desktop Entry]&lt;br /&gt;Name=CHIRP&lt;br /&gt;Comment=Open-source radio programming software&lt;br /&gt;Exec=/home/&lt;strong&gt;YOUR_USERNAME&lt;/strong&gt;/.local/bin/chirp&lt;br /&gt;Icon=chirp&lt;br /&gt;Terminal=false&lt;br /&gt;Type=Application&lt;br /&gt;Categories=Utility;HamRadio;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
  1956.  
  1957.  
  1958.  
  1959. &lt;p&gt;Make sure to replace &lt;code&gt;&lt;code&gt;/home/&lt;strong&gt;YOUR_USERNAME&lt;/strong&gt;/.local/bin/chirp&lt;/code&gt;&lt;/code&gt; with the correct path to the CHIRP executable. Once the file is created, save it and make it executable by running &lt;code&gt;chmod +x ~/.local/share/applications/chirp.desktop&lt;/code&gt;. After that, refresh the application menu by running &lt;code&gt;update-desktop-database ~/.local/share/applications&lt;/code&gt; or restarting your desktop environment. Your CHIRP application should now appear in the application menu, ready to launch with a custom shortcut.&lt;/p&gt;
  1960.  
  1961.  
  1962.  
  1963. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  1964.  
  1965.  
  1966.  
  1967. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-step-4-ensure-chirp-is-in-your-path&quot;&gt;&lt;strong&gt;Step 4: Ensure CHIRP Is in Your PATH&lt;/strong&gt;&lt;/h2&gt;
  1968.  
  1969.  
  1970.  
  1971. &lt;p&gt;If CHIRP is not recognized as a command, update your PATH:&lt;/p&gt;
  1972.  
  1973.  
  1974.  
  1975. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;pipx ensurepath
  1976. &lt;/code&gt;&lt;/pre&gt;
  1977.  
  1978.  
  1979.  
  1980. &lt;p&gt;Restart your terminal or log out and log back in. You can now run CHIRP using:&lt;/p&gt;
  1981.  
  1982.  
  1983.  
  1984. &lt;pre class=&quot;wp-block-code&quot;&gt;&lt;code&gt;chirp
  1985. &lt;/code&gt;&lt;/pre&gt;
  1986.  
  1987.  
  1988.  
  1989. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  1990.  
  1991.  
  1992.  
  1993. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-step-5-configure-serial-port-permissions&quot;&gt;&lt;strong&gt;Step 5: Configure Serial Port Permissions&lt;/strong&gt;&lt;/h2&gt;
  1994.  
  1995.  
  1996.  
  1997. &lt;p&gt;If CHIRP cannot detect your radio, you may need to grant serial port access.&lt;/p&gt;
  1998.  
  1999.  
  2000.  
  2001. &lt;ol class=&quot;wp-block-list&quot;&gt;
  2002. &lt;li&gt;Identify your radio’s device name: &lt;code&gt;dmesg | grep ttyUSB&lt;/code&gt; This should return something like &lt;code&gt;/dev/ttyUSB0&lt;/code&gt;.&lt;/li&gt;
  2003.  
  2004.  
  2005.  
  2006. &lt;li&gt;Grant access to your user: &lt;code&gt;sudo usermod -a -G $(stat -c %G /dev/ttyUSB0) $USER&lt;/code&gt;&lt;/li&gt;
  2007.  
  2008.  
  2009.  
  2010. &lt;li&gt;Log out and back in or reboot your system for the changes to take effect.&lt;/li&gt;
  2011. &lt;/ol&gt;
  2012.  
  2013.  
  2014.  
  2015. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  2016.  
  2017.  
  2018.  
  2019. &lt;p&gt;&lt;/p&gt;
  2020.  
  2021.  
  2022.  
  2023. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-updating-chirp&quot;&gt;&lt;strong&gt;Updating CHIRP&lt;/strong&gt;&lt;/h2&gt;
  2024.  
  2025.  
  2026.  
  2027. &lt;p&gt;To update CHIRP in the future:&lt;/p&gt;
  2028.  
  2029.  
  2030.  
  2031. &lt;ol class=&quot;wp-block-list&quot;&gt;
  2032. &lt;li&gt;Download the latest &lt;code&gt;.whl&lt;/code&gt; file.&lt;/li&gt;
  2033.  
  2034.  
  2035.  
  2036. &lt;li&gt;Uninstall the current version: &lt;code&gt;pipx uninstall chirp&lt;/code&gt;&lt;/li&gt;
  2037.  
  2038.  
  2039.  
  2040. &lt;li&gt;Reinstall using the latest &lt;code&gt;.whl&lt;/code&gt; following &lt;strong&gt;Step 3&lt;/strong&gt; above.&lt;/li&gt;
  2041. &lt;/ol&gt;
  2042.  
  2043.  
  2044.  
  2045. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  2046.  
  2047.  
  2048.  
  2049. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-troubleshooting-common-issues&quot;&gt;&lt;strong&gt;Troubleshooting Common Issues&lt;/strong&gt;&lt;/h2&gt;
  2050.  
  2051.  
  2052.  
  2053. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;h-chirp-doesn-t-start&quot;&gt;CHIRP Doesn’t Start&lt;/h3&gt;
  2054.  
  2055.  
  2056.  
  2057. &lt;ul class=&quot;wp-block-list&quot;&gt;
  2058. &lt;li&gt;Ensure &lt;code&gt;pipx ensurepath&lt;/code&gt; has been executed.&lt;/li&gt;
  2059.  
  2060.  
  2061.  
  2062. &lt;li&gt;Restart your terminal or log out and back in.&lt;/li&gt;
  2063. &lt;/ul&gt;
  2064.  
  2065.  
  2066.  
  2067. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;h-serial-port-access-denied&quot;&gt;Serial Port Access Denied&lt;/h3&gt;
  2068.  
  2069.  
  2070.  
  2071. &lt;ul class=&quot;wp-block-list&quot;&gt;
  2072. &lt;li&gt;Check user group permissions with: &lt;code&gt;ls -l /dev/ttyUSB0&lt;/code&gt;&lt;/li&gt;
  2073.  
  2074.  
  2075.  
  2076. &lt;li&gt;Add your user to the required group (e.g., &lt;code&gt;dialout&lt;/code&gt; or &lt;code&gt;uucp&lt;/code&gt;).&lt;/li&gt;
  2077. &lt;/ul&gt;
  2078.  
  2079.  
  2080.  
  2081. &lt;h3 class=&quot;wp-block-heading&quot; id=&quot;h-wxpython-or-python-issues&quot;&gt;wxPython or Python Issues&lt;/h3&gt;
  2082.  
  2083.  
  2084.  
  2085. &lt;ul class=&quot;wp-block-list&quot;&gt;
  2086. &lt;li&gt;Verify Python version: &lt;code&gt;python3 --version&lt;/code&gt;&lt;/li&gt;
  2087.  
  2088.  
  2089.  
  2090. &lt;li&gt;Check wxPython installation: &lt;code&gt;python3 -c &quot;import wx; print(wx.__version__)&quot;&lt;/code&gt;&lt;/li&gt;
  2091.  
  2092.  
  2093.  
  2094. &lt;li&gt;If wxPython is missing or outdated, install it manually: &lt;code&gt;pip3 install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04 wxPython&lt;/code&gt;&lt;/li&gt;
  2095. &lt;/ul&gt;
  2096.  
  2097.  
  2098.  
  2099. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;img alt=&quot;Screenshot-From-2025-03-27-21-34-25-1024x795 How to Install the Latest CHIRP on Ubuntu&quot; class=&quot;wp-image-7267&quot; height=&quot;795&quot; src=&quot;https://hamradio.my/wp-content/uploads/2025/03/Screenshot-From-2025-03-27-21-34-25-1024x795.png&quot; title=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;
  2100.  
  2101.  
  2102.  
  2103. &lt;hr class=&quot;wp-block-separator has-alpha-channel-opacity&quot; /&gt;
  2104.  
  2105.  
  2106.  
  2107. &lt;h2 class=&quot;wp-block-heading&quot; id=&quot;h-final-thoughts&quot;&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/h2&gt;
  2108.  
  2109.  
  2110.  
  2111. &lt;p&gt;By following this guide, you’ll have the latest CHIRP version running smoothly on Ubuntu. Whether you’re programming Baofeng, Kenwood, or other compatible radios, CHIRP simplifies configuration and channel management.&lt;/p&gt;
  2112.  
  2113.  
  2114.  
  2115. &lt;p&gt;Happy radio programming! &lt;img alt=&quot;🎙&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.1.0/72x72/1f399.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;img alt=&quot;📡&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.1.0/72x72/1f4e1.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  2116. &lt;p&gt;The post &lt;a href=&quot;https://hamradio.my/2025/03/how-to-install-the-latest-chirp-on-ubuntu/&quot;&gt;How to Install the Latest CHIRP on Ubuntu&lt;/a&gt; appeared first on &lt;a href=&quot;https://hamradio.my&quot;&gt;Hamradio.my - Amateur Radio, Tech Insights and Product Reviews&lt;/a&gt; by &lt;a href=&quot;https://hamradio.my/author/9m2pju/&quot;&gt;9M2PJU&lt;/a&gt;.&lt;/p&gt;</description>
  2117. <pubDate>Thu, 27 Mar 2025 13:39:09 +0000</pubDate>
  2118. </item>
  2119. <item>
  2120. <title>Luke Faraone: I'm running for the OSI board... maybe</title>
  2121. <guid isPermaLink="false">tag:blogger.com,1999:blog-1354659632607599854.post-8137871464316542520</guid>
  2122. <link>https://blog.luke.wf/2025/02/im-running-for-osi-board-maybe.html</link>
  2123. <description>&lt;p&gt;The Open Source Initiative has two classes of board seats: Affiliate seats, and Individual Member seats. &lt;/p&gt;&lt;p&gt;In the upcoming election, each affiliate can nominate a candidate, and each affiliate can cast a vote for the Affiliate candidates, but there's only 1 Affiliate seat available. I initially expressed interest in being nominated as an Affiliate candidate via Debian. But since &lt;a href=&quot;https://ebb.org/bkuhn/&quot;&gt;Bradley Kuhn&lt;/a&gt; is also running for an Affiliate seat with a similar platform to me, especially with regards to the OSAID, I decided to run as part of an aligned &quot;ticket&quot; as an Individual Member to avoid contention for the 1 Affiliate seat.&lt;/p&gt;&lt;p&gt;Bradley and I discussed running on a similar ticket around 8/9pm Pacific, and I submitted my candidacy around 9pm PT on 17 February. &lt;/p&gt;&lt;p&gt;I was dismayed when I received the following mail from &lt;span style=&quot;white-space: normal;&quot;&gt;Nick Vidal:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;background-color: white; color: #222222; font-size: small;&quot;&gt;Dear Luke,&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;background-color: white; color: #222222; font-size: small;&quot;&gt;Thank you for your interest in the OSI Board of Directors election. Unfortunately, we are unable to accept your application as it was submitted after the official deadline of Monday Feb 17 at 11:59 pm UTC. To ensure a fair process,&lt;b&gt; we must adhere to the deadline for all candidates.&lt;/b&gt;&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;background-color: white; color: #222222; font-size: small;&quot;&gt;We appreciate your enthusiasm and encourage you to stay engaged with OSI’s mission. We hope you’ll consider applying in the future or contributing in other meaningful ways.&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;background-color: white; color: #222222; font-size: small;&quot;&gt;Best regards,&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;&quot; /&gt;&lt;span face=&quot;Arial, Helvetica, sans-serif&quot; style=&quot;background-color: white; color: #222222; font-size: small;&quot;&gt;OSI Election Teams&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;Nowhere on the &lt;a href=&quot;https://opensource.org/blog/osis-board-of-directors-in-2025-details-about-the-elections&quot;&gt;&quot;OSI’s board of directors in 2025: details about the elections&quot;&lt;/a&gt; page do they list a timezone for closure of nominations; they simply list Monday 17 February. &lt;/p&gt;&lt;p&gt;The OSI's contact address is in California, so it seems arbitrary and capricious to retroactively define all of these processes as being governed by UTC.&lt;/p&gt;&lt;p&gt;I was not able to participate in the &quot;potential board director&quot; info sessions accordingly, but people who attended heard that the importance of accommodating differing TZ's was discussed during the info session, and that OSI representatives mentioned they try to accommodate TZ's of everyone. This seems in sharp contrast with the above policy. &lt;/p&gt;&lt;p&gt;I urge the OSI to reconsider this policy and allow me to stand for an Individual seat in the current cycle. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Upd&lt;/b&gt;, N.B.: to people writing about this, I use they/them pronouns&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description>
  2124. <pubDate>Sat, 22 Mar 2025 16:30:44 +0000</pubDate>
  2125. <author>noreply@blogger.com (Luke Faraone)</author>
  2126. </item>
  2127. <item>
  2128. <title>Colin Watson: Free software activity in February 2025</title>
  2129. <guid isPermaLink="false">tag:www.chiark.greenend.org.uk,2025-03-02:/~cjwatson/blog/activity-2025-02.html</guid>
  2130. <link>https://www.chiark.greenend.org.uk/~cjwatson/blog/activity-2025-02.html</link>
  2131. <description>&lt;p&gt;Most of my Debian contributions this month were
  2132. &lt;a href=&quot;https://www.freexian.com/about/debian-contributions/&quot;&gt;sponsored&lt;/a&gt; by Freexian.&lt;/p&gt;
  2133. &lt;p&gt;You can also support my work directly via
  2134. &lt;a href=&quot;https://liberapay.com/cjwatson&quot;&gt;Liberapay&lt;/a&gt;.&lt;/p&gt;
  2135. &lt;h2&gt;OpenSSH&lt;/h2&gt;
  2136. &lt;p&gt;OpenSSH upstream released
  2137. &lt;a href=&quot;https://www.openssh.com/releasenotes.html#9.9p2&quot;&gt;9.9p2&lt;/a&gt; with fixes for
  2138. &lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;-2025-26465 and &lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;-2025-26466.  I got a heads-up on this in advance from
  2139. the Debian security team, and prepared updates for all of testing/unstable,
  2140. bookworm (Debian 12), bullseye (Debian 11), buster (Debian 10, &lt;span class=&quot;caps&quot;&gt;LTS&lt;/span&gt;), and
  2141. stretch (Debian 9, &lt;span class=&quot;caps&quot;&gt;ELTS&lt;/span&gt;).  jessie (Debian 8) is also still in &lt;span class=&quot;caps&quot;&gt;ELTS&lt;/span&gt; for a few
  2142. more months, but wasn’t affected by either vulnerability.&lt;/p&gt;
  2143. &lt;p&gt;Although I’m not particularly active in the Perl team, I fixed a
  2144. &lt;a href=&quot;https://bugs.debian.org/1096245&quot;&gt;libnet-ssleay-perl build failure&lt;/a&gt; because
  2145. it was blocking openssl from migrating to testing, which in turn was
  2146. blocking the above openssh fixes.&lt;/p&gt;
  2147. &lt;p&gt;I also sent a minor &lt;a href=&quot;https://bugzilla.mindrot.org/show_bug.cgi?id=3788&quot;&gt;&lt;code&gt;sshd -T&lt;/code&gt;
  2148. fix&lt;/a&gt; upstream, simplified
  2149. a number of autopkgtests using the newish &lt;a href=&quot;https://bugs.debian.org/906424&quot;&gt;&lt;code&gt;Restrictions:
  2150. needs-sudo&lt;/code&gt;&lt;/a&gt; facility, and prepared for
  2151. &lt;a href=&quot;https://bugs.debian.org/1098760&quot;&gt;removing the obsolete &lt;code&gt;slogin&lt;/code&gt; symlink&lt;/a&gt;.&lt;/p&gt;
  2152. &lt;h2&gt;PuTTY&lt;/h2&gt;
  2153. &lt;p&gt;I upgraded to the &lt;a href=&quot;https://www.chiark.greenend.org.uk/~sgtatham/putty/&quot;&gt;new upstream version
  2154. 0.83&lt;/a&gt;.&lt;/p&gt;
  2155. &lt;h2&gt;&lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt; 15 build failures&lt;/h2&gt;
  2156. &lt;p&gt;I fixed build failures with &lt;a href=&quot;https://gcc.gnu.org/gcc-15/porting_to.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;GCC&lt;/span&gt;
  2157. 15&lt;/a&gt; in a few packages:&lt;/p&gt;
  2158. &lt;ul&gt;
  2159. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1096829&quot;&gt;icoutils&lt;/a&gt; (&lt;a href=&quot;https://savannah.nongnu.org/bugs/index.php?66812&quot;&gt;contributed
  2160.  upstream&lt;/a&gt;)&lt;/li&gt;
  2161. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1096891&quot;&gt;kali&lt;/a&gt;&lt;/li&gt;
  2162. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1097550&quot;&gt;parted&lt;/a&gt;&lt;/li&gt;
  2163. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1097681&quot;&gt;python-setproctitle&lt;/a&gt;&lt;/li&gt;
  2164. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098064&quot;&gt;vigor&lt;/a&gt;&lt;/li&gt;
  2165. &lt;/ul&gt;
  2166. &lt;h2&gt;Python team&lt;/h2&gt;
  2167. &lt;p&gt;A lot of my Python team work is driven by its &lt;a href=&quot;https://udd.debian.org/dmd/?email1=team%2Bpython%40tracker.debian.org&amp;amp;nosponsor1=on&amp;amp;email2=&amp;amp;email3=&amp;amp;packages=&amp;amp;ignpackages=&amp;amp;format=html&amp;amp;onlytesting=on&quot;&gt;maintainer
  2168. dashboard&lt;/a&gt;.
  2169. Now that we’ve finished the transition to Python 3.13 as the default
  2170. version, and inspired by a recent &lt;a href=&quot;https://lists.debian.org/debian-devel/2025/02/msg00134.html&quot;&gt;debian-devel thread started by
  2171. Santiago&lt;/a&gt;, I
  2172. thought it might be worth spending a bit of time on the “uscan error”
  2173. section.  &lt;a href=&quot;https://wiki.debian.org/debian/watch&quot;&gt;&lt;code&gt;uscan&lt;/code&gt;&lt;/a&gt; is typically
  2174. scraping upstream web sites to figure out whether new versions are
  2175. available, and so it’s easy for its configuration to become outdated or
  2176. broken.  Most of this work is pretty boring, but it can often reveal
  2177. situations where we didn’t even realize that a Debian package was out of
  2178. date.  I fixed these packages:&lt;/p&gt;
  2179. &lt;ul&gt;
  2180. &lt;li&gt;cssutils (this in particular was very out of date due to a new and active
  2181.  upstream maintainer since 2021)&lt;/li&gt;
  2182. &lt;li&gt;django-assets&lt;/li&gt;
  2183. &lt;li&gt;django-celery-email&lt;/li&gt;
  2184. &lt;li&gt;django-sass&lt;/li&gt;
  2185. &lt;li&gt;django-yarnpkg&lt;/li&gt;
  2186. &lt;li&gt;json-tricks&lt;/li&gt;
  2187. &lt;li&gt;mercurial-extension-utils&lt;/li&gt;
  2188. &lt;li&gt;pydbus&lt;/li&gt;
  2189. &lt;li&gt;pydispatcher&lt;/li&gt;
  2190. &lt;li&gt;pylint-celery&lt;/li&gt;
  2191. &lt;li&gt;pyspread&lt;/li&gt;
  2192. &lt;li&gt;pytest-pretty&lt;/li&gt;
  2193. &lt;li&gt;python-apptools&lt;/li&gt;
  2194. &lt;li&gt;python-django-libsass (&lt;a href=&quot;https://github.com/torchbox/django-libsass/pull/59&quot;&gt;contributed a packaging fix
  2195.  upstream&lt;/a&gt; in passing)&lt;/li&gt;
  2196. &lt;li&gt;python-django-postgres-extra&lt;/li&gt;
  2197. &lt;li&gt;python-django-waffle&lt;/li&gt;
  2198. &lt;li&gt;python-ephemeral-port-reserve&lt;/li&gt;
  2199. &lt;li&gt;python-ifaddr&lt;/li&gt;
  2200. &lt;li&gt;python-log-symbols&lt;/li&gt;
  2201. &lt;li&gt;python-msrest&lt;/li&gt;
  2202. &lt;li&gt;python-msrestazure&lt;/li&gt;
  2203. &lt;li&gt;python-netdisco&lt;/li&gt;
  2204. &lt;li&gt;python-pathtools&lt;/li&gt;
  2205. &lt;li&gt;python-user-agents&lt;/li&gt;
  2206. &lt;li&gt;sinntp&lt;/li&gt;
  2207. &lt;li&gt;wchartype&lt;/li&gt;
  2208. &lt;/ul&gt;
  2209. &lt;p&gt;I upgraded these packages to new upstream versions:&lt;/p&gt;
  2210. &lt;ul&gt;
  2211. &lt;li&gt;cssutils (&lt;a href=&quot;https://github.com/jaraco/cssutils/pull/62&quot;&gt;contributed a packaging tweak
  2212.  upstream&lt;/a&gt;)&lt;/li&gt;
  2213. &lt;li&gt;django-iconify&lt;/li&gt;
  2214. &lt;li&gt;django-sass&lt;/li&gt;
  2215. &lt;li&gt;domdf-python-tools&lt;/li&gt;
  2216. &lt;li&gt;extra-data (fixing a &lt;a href=&quot;https://bugs.debian.org/1095343&quot;&gt;numpy 2.0 failure&lt;/a&gt;)&lt;/li&gt;
  2217. &lt;li&gt;flufl.i18n&lt;/li&gt;
  2218. &lt;li&gt;json-tricks&lt;/li&gt;
  2219. &lt;li&gt;jsonpickle&lt;/li&gt;
  2220. &lt;li&gt;mercurial-extension-utils&lt;/li&gt;
  2221. &lt;li&gt;mod-wsgi&lt;/li&gt;
  2222. &lt;li&gt;nbconvert&lt;/li&gt;
  2223. &lt;li&gt;orderly-set&lt;/li&gt;
  2224. &lt;li&gt;pydispatcher (&lt;a href=&quot;https://github.com/mcfletch/pydispatcher/pull/9&quot;&gt;contributed a Python 3.12 fix
  2225.  upstream&lt;/a&gt;)&lt;/li&gt;
  2226. &lt;li&gt;pylint&lt;/li&gt;
  2227. &lt;li&gt;pytest-rerunfailures&lt;/li&gt;
  2228. &lt;li&gt;python-asyncssh&lt;/li&gt;
  2229. &lt;li&gt;python-box (&lt;a href=&quot;https://github.com/cdgriffith/Box/pull/290&quot;&gt;contributed a packaging fix
  2230.  upstream&lt;/a&gt;)&lt;/li&gt;
  2231. &lt;li&gt;python-charset-normalizer&lt;/li&gt;
  2232. &lt;li&gt;python-django-constance&lt;/li&gt;
  2233. &lt;li&gt;python-django-guid&lt;/li&gt;
  2234. &lt;li&gt;python-django-pgtrigger&lt;/li&gt;
  2235. &lt;li&gt;python-django-waffle&lt;/li&gt;
  2236. &lt;li&gt;python-djangorestframework-simplejwt&lt;/li&gt;
  2237. &lt;li&gt;python-formencode&lt;/li&gt;
  2238. &lt;li&gt;python-holidays (&lt;a href=&quot;https://github.com/vacanza/holidays/pull/2273&quot;&gt;contributed a test fix
  2239.  upstream&lt;/a&gt;)&lt;/li&gt;
  2240. &lt;li&gt;python-legacy-cgi&lt;/li&gt;
  2241. &lt;li&gt;python-marshmallow-polyfield (fixing a &lt;a href=&quot;https://bugs.debian.org/1098600&quot;&gt;test
  2242.  failure&lt;/a&gt;)&lt;/li&gt;
  2243. &lt;li&gt;python-model-bakery&lt;/li&gt;
  2244. &lt;li&gt;python-mrcz (fixing a &lt;a href=&quot;https://bugs.debian.org/1095373&quot;&gt;numpy 2.0
  2245.  failure&lt;/a&gt;)&lt;/li&gt;
  2246. &lt;li&gt;python-netdisco&lt;/li&gt;
  2247. &lt;li&gt;python-npe2&lt;/li&gt;
  2248. &lt;li&gt;python-persistent&lt;/li&gt;
  2249. &lt;li&gt;python-pkginfo (fixing a &lt;a href=&quot;https://bugs.debian.org/1098603&quot;&gt;test failure&lt;/a&gt;)&lt;/li&gt;
  2250. &lt;li&gt;python-proto-plus&lt;/li&gt;
  2251. &lt;li&gt;python-requests-ntlm&lt;/li&gt;
  2252. &lt;li&gt;python-roman&lt;/li&gt;
  2253. &lt;li&gt;python-semantic-release&lt;/li&gt;
  2254. &lt;li&gt;python-setproctitle&lt;/li&gt;
  2255. &lt;li&gt;python-stdlib-list&lt;/li&gt;
  2256. &lt;li&gt;python-trustme&lt;/li&gt;
  2257. &lt;li&gt;python-typeguard (fixing a &lt;a href=&quot;https://bugs.debian.org/1098615&quot;&gt;test
  2258.  failure&lt;/a&gt;)&lt;/li&gt;
  2259. &lt;li&gt;python-tzlocal&lt;/li&gt;
  2260. &lt;li&gt;pyzmq&lt;/li&gt;
  2261. &lt;li&gt;setuptools-scm&lt;/li&gt;
  2262. &lt;li&gt;sqlfluff&lt;/li&gt;
  2263. &lt;li&gt;stravalib&lt;/li&gt;
  2264. &lt;li&gt;tomopy&lt;/li&gt;
  2265. &lt;li&gt;trove-classifiers&lt;/li&gt;
  2266. &lt;li&gt;xhtml2pdf (fixing &lt;a href=&quot;https://bugs.debian.org/1084986&quot;&gt;&lt;span class=&quot;caps&quot;&gt;CVE&lt;/span&gt;-2024-25885&lt;/a&gt;)&lt;/li&gt;
  2267. &lt;li&gt;xonsh&lt;/li&gt;
  2268. &lt;li&gt;zodbpickle&lt;/li&gt;
  2269. &lt;li&gt;zope.deprecation&lt;/li&gt;
  2270. &lt;li&gt;zope.testrunner&lt;/li&gt;
  2271. &lt;/ul&gt;
  2272. &lt;p&gt;In bookworm-backports, I updated python-django to 3:4.2.18-1 (issuing
  2273. &lt;a href=&quot;https://backports.debian.org/news/BSA-121_Security_Update_for_python-django/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;BSA&lt;/span&gt;-121&lt;/a&gt;)
  2274. and added new backports of python-django-dynamic-fixture and
  2275. python-django-pgtrigger, all of which are dependencies of
  2276. &lt;a href=&quot;https://freexian-team.pages.debian.net/debusine/&quot;&gt;debusine&lt;/a&gt;.&lt;/p&gt;
  2277. &lt;p&gt;I went through all the build failures related to python-click 8.2.0 (which
  2278. was confusingly &lt;a href=&quot;https://github.com/pallets/click/pull/2844&quot;&gt;tagged but not fully released
  2279. upstream&lt;/a&gt; and posted an
  2280. &lt;a href=&quot;https://bugs.debian.org/1098507#17&quot;&gt;analysis&lt;/a&gt;.&lt;/p&gt;
  2281. &lt;p&gt;I fixed or helped to fix various other build/test failures:&lt;/p&gt;
  2282. &lt;ul&gt;
  2283. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1095084&quot;&gt;cython&lt;/a&gt;&lt;/li&gt;
  2284. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1095019&quot;&gt;dask&lt;/a&gt;&lt;/li&gt;
  2285. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1095339&quot;&gt;deepdish&lt;/a&gt;&lt;/li&gt;
  2286. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1094905&quot;&gt;hickle&lt;/a&gt; (&lt;a href=&quot;https://github.com/telegraphic/hickle/pull/186&quot;&gt;contributed
  2287.  upstream&lt;/a&gt;)&lt;/li&gt;
  2288. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1095356&quot;&gt;mdp&lt;/a&gt; (&lt;a href=&quot;https://github.com/mdp-toolkit/mdp-toolkit/pull/105&quot;&gt;contributed
  2289.  upstream&lt;/a&gt;)&lt;/li&gt;
  2290. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098578&quot;&gt;mypy&lt;/a&gt;&lt;/li&gt;
  2291. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1094040&quot;&gt;pillow&lt;/a&gt;&lt;/li&gt;
  2292. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098590&quot;&gt;pynput&lt;/a&gt;&lt;/li&gt;
  2293. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1094085&quot;&gt;python-fonticon-fontawesome6&lt;/a&gt;&lt;/li&gt;
  2294. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1098602&quot;&gt;python-persistent&lt;/a&gt; (&lt;a href=&quot;https://github.com/zopefoundation/persistent/pull/214&quot;&gt;contributed
  2295.  upstream&lt;/a&gt;)&lt;/li&gt;
  2296. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1056874&quot;&gt;python-srsly&lt;/a&gt;&lt;/li&gt;
  2297. &lt;/ul&gt;
  2298. &lt;p&gt;I &lt;a href=&quot;https://github.com/zopefoundation/zope.testrunner/pull/192&quot;&gt;dropped support for the old &lt;code&gt;setup.py ftest&lt;/code&gt;
  2299. command&lt;/a&gt; from
  2300. zope.testrunner upstream.&lt;/p&gt;
  2301. &lt;p&gt;I fixed various odds and ends of bugs:&lt;/p&gt;
  2302. &lt;ul&gt;
  2303. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/974455&quot;&gt;django-memoize: autopkgtest must be marked superficial&lt;/a&gt;&lt;/li&gt;
  2304. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1035135&quot;&gt;extra-data: extra-data: please add autopkgtests (to add coverage for python3-numpy)&lt;/a&gt;&lt;/li&gt;
  2305. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1094910&quot;&gt;fpylll: missing dependency on numpy abi&lt;/a&gt;&lt;/li&gt;
  2306. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/974492&quot;&gt;python-box: autopkgtest must be marked superficial&lt;/a&gt;&lt;/li&gt;
  2307. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1095284&quot;&gt;python-hdmedians: missing dependency on numpy abi&lt;/a&gt;&lt;/li&gt;
  2308. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1094317&quot;&gt;python-legacy-cgi: missing requirement: openstack-pkg-tools&lt;/a&gt;&lt;/li&gt;
  2309. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1063372&quot;&gt;python-tzlocal: doesn’t run any tests during the build or as autopkgtest&lt;/a&gt;&lt;/li&gt;
  2310. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1091503&quot;&gt;requests: will &lt;span class=&quot;caps&quot;&gt;FTBFS&lt;/span&gt; during trixie support
  2311.  period&lt;/a&gt; (&lt;a href=&quot;https://github.com/psf/requests/pull/6897&quot;&gt;contributed supporting fix
  2312.  upstream&lt;/a&gt;)&lt;/li&gt;
  2313. &lt;li&gt;&lt;a href=&quot;https://bugs.debian.org/1096004&quot;&gt;setuptools-scm: project was renamed from &lt;code&gt;setuptools_scm&lt;/code&gt; to
  2314.  &lt;code&gt;setuptools-scm&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
  2315. &lt;/ul&gt;
  2316. &lt;h2&gt;Installer team&lt;/h2&gt;
  2317. &lt;p&gt;Following up on &lt;a href=&quot;https://www.chiark.greenend.org.uk/~cjwatson/blog/activity-2025-01.html&quot;&gt;last month&lt;/a&gt;, I merged and
  2318. uploaded &lt;a href=&quot;https://salsa.debian.org/installer-team/debian-installer-utils/-/merge_requests/11&quot;&gt;Helmut’s &lt;code&gt;/usr&lt;/code&gt;-move
  2319. fix&lt;/a&gt;.&lt;/p&gt;</description>
  2320. <pubDate>Sun, 02 Mar 2025 13:49:47 +0000</pubDate>
  2321. </item>
  2322. <item>
  2323. <title>Paul Tagliamonte: boot2kier</title>
  2324. <guid isPermaLink="true">https://notes.pault.ag/boot2kier/</guid>
  2325. <link>https://notes.pault.ag/boot2kier/</link>
  2326. <description>&lt;p&gt;I can’t remember exactly the joke I was making at the time in my
  2327. &lt;a href=&quot;https://zoo.dev&quot;&gt;work’s&lt;/a&gt; slack instance (I’m sure it wasn’t particularly
  2328. funny, though; and not even worth re-reading the thread to work out), but it
  2329. wound up with me writing a UEFI binary for the punchline. Not to spoil the
  2330. ending but it worked - no pesky kernel, no messing around with “userland”. I
  2331. guess the only part of this you really need to know for the setup here is that
  2332. it was a &lt;a href=&quot;https://en.wikipedia.org/wiki/Severance_(TV_series)&quot;&gt;Severance&lt;/a&gt; joke,
  2333. which is some fantastic TV. If you haven’t seen it, this post will seem perhaps
  2334. weirder than it actually is. I promise I haven’t joined any new cults. For
  2335. those who have seen it, the payoff to my joke is that I wanted my machine to
  2336. boot directly to an image of
  2337. &lt;a href=&quot;https://severance-tv.fandom.com/wiki/Kier_Eagan&quot;&gt;Kier Eagan&lt;/a&gt;.&lt;/p&gt;
  2338. &lt;p&gt;As for how to do it – I figured I’d give the &lt;a href=&quot;https://docs.rs/uefi/latest/uefi/&quot;&gt;uefi
  2339. crate&lt;/a&gt; a shot, and see how it is to use,
  2340. since this is a low stakes way of trying it out. In general, this isn’t the
  2341. sort of thing I’d usually post about – except this wound up being easier and
  2342. way cleaner than I thought it would be. That alone is worth sharing, in the
  2343. hopes someome comes across this in the future and feels like they, too, can
  2344. write something fun targeting the UEFI.&lt;/p&gt;
  2345. &lt;p&gt;First thing’s first – gotta create a rust project (I’ll leave that part to you
  2346. depending on your life choices), and to add the &lt;code&gt;uefi&lt;/code&gt; crate to your
  2347. &lt;code&gt;Cargo.toml&lt;/code&gt;. You can either use &lt;code&gt;cargo add&lt;/code&gt; or add a line like this by hand:&lt;/p&gt;
  2348. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-toml&quot; data-lang=&quot;toml&quot;&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;uefi&lt;/span&gt; = { &lt;span style=&quot;color: #a6e22e;&quot;&gt;version&lt;/span&gt; = &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;0.33&quot;&lt;/span&gt;, &lt;span style=&quot;color: #a6e22e;&quot;&gt;features&lt;/span&gt; = [&lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;panic_handler&quot;&lt;/span&gt;, &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;alloc&quot;&lt;/span&gt;, &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;global_allocator&quot;&lt;/span&gt;] }
  2349. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We also need to teach cargo about how to go about building for the UEFI target,
  2350. so we need to create a &lt;code&gt;rust-toolchain.toml&lt;/code&gt; with one (or both) of the UEFI
  2351. targets we’re interested in:&lt;/p&gt;
  2352. &lt;aside class=&quot;left&quot;&gt;
  2353. I think there's a UEFI for riscv64 too, but I haven't found notes about it
  2354. in Rust-land.
  2355. &lt;/aside&gt;
  2356. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-toml&quot; data-lang=&quot;toml&quot;&gt;[&lt;span style=&quot;color: #a6e22e;&quot;&gt;toolchain&lt;/span&gt;]
  2357. &lt;span style=&quot;color: #a6e22e;&quot;&gt;targets&lt;/span&gt; = [&lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;aarch64-unknown-uefi&quot;&lt;/span&gt;, &lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;x86_64-unknown-uefi&quot;&lt;/span&gt;]
  2358. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Unfortunately, I wasn’t able to use the
  2359. &lt;a href=&quot;https://docs.rs/image/latest/image/&quot;&gt;image&lt;/a&gt; crate,
  2360. since it won’t build against the &lt;code&gt;uefi&lt;/code&gt; target. This looks like it’s
  2361. because rustc had no way to compile the required floating point operations
  2362. within the &lt;code&gt;image&lt;/code&gt; crate without hardware floating point instructions
  2363. specifically. Rust tends to punt a lot of that to &lt;code&gt;libm&lt;/code&gt; usually, so this isnt
  2364. entirely shocking given we’re &lt;code&gt;nostd&lt;/code&gt; for a non-hardfloat target.&lt;/p&gt;
  2365. &lt;aside class=&quot;right&quot;&gt;
  2366. I didn't file any bugs or even track them down between the image crate
  2367. and rustc, since I figured this isn't actionable for anyone involved aside
  2368. from &quot;implement soft floats in the compiler to backfill this target&quot;.
  2369. &lt;/aside&gt;
  2370. &lt;p&gt;So-called “softening” requires a software floating point implementation that
  2371. the compiler can use to “polyfill” (feels weird to use the term polyfill here,
  2372. but I guess it’s spiritually right?) the lack of hardware floating point
  2373. operations, which rust hasn’t implemented for this target yet. As a result, I
  2374. changed tactics, and figured I’d use &lt;code&gt;ImageMagick&lt;/code&gt; to pre-compute the pixels
  2375. from a &lt;code&gt;jpg&lt;/code&gt;, rather than doing it at runtime. A bit of a bummer, since I need
  2376. to do more out of band pre-processing and hardcoding, and updating the image
  2377. kinda sucks as a result – but it’s entirely manageable.&lt;/p&gt;
  2378. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;$ convert -resize 1280x900 kier.jpg kier.full.jpg
  2379. $ convert -depth &lt;span style=&quot;color: #ae81ff;&quot;&gt;8&lt;/span&gt; kier.full.jpg rgba:kier.bin
  2380. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will take our input file (&lt;code&gt;kier.jpg&lt;/code&gt;), resize it to get as close to the
  2381. desired resolution as possible while maintaining aspect ration, then convert it
  2382. from a &lt;code&gt;jpg&lt;/code&gt; to a flat array of 4 byte &lt;code&gt;RGBA&lt;/code&gt; pixels. Critically, it’s also
  2383. important to remember that the size of the &lt;code&gt;kier.full.jpg&lt;/code&gt; file may not actually
  2384. be the requested size – it will not change the aspect ratio, so be sure to
  2385. make a careful note of the resulting size of the &lt;code&gt;kier.full.jpg&lt;/code&gt; file.&lt;/p&gt;
  2386. &lt;p&gt;Last step with the image is to compile it into our Rust bianary, since we
  2387. don’t want to struggle with trying to read this off disk, which is thankfully
  2388. real easy to do.&lt;/p&gt;
  2389. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;const&lt;/span&gt; KIER: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;[&lt;span style=&quot;color: #66d9ef;&quot;&gt;u8&lt;/span&gt;] &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; include_bytes&lt;span style=&quot;color: #f92672;&quot;&gt;!&lt;/span&gt;(&lt;span style=&quot;color: #e6db74;&quot;&gt;&quot;../kier.bin&quot;&lt;/span&gt;);
  2390. &lt;span style=&quot;color: #66d9ef;&quot;&gt;const&lt;/span&gt; KIER_WIDTH: &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;1280&lt;/span&gt;;
  2391. &lt;span style=&quot;color: #66d9ef;&quot;&gt;const&lt;/span&gt; KIER_HEIGHT: &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;641&lt;/span&gt;;
  2392. &lt;span style=&quot;color: #66d9ef;&quot;&gt;const&lt;/span&gt; KIER_PIXEL_SIZE: &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;4&lt;/span&gt;;
  2393. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remember to use the width and height from the final &lt;code&gt;kier.full.jpg&lt;/code&gt; file as the
  2394. values for &lt;code&gt;KIER_WIDTH&lt;/code&gt; and &lt;code&gt;KIER_HEIGHT&lt;/code&gt;. &lt;code&gt;KIER_PIXEL_SIZE&lt;/code&gt; is 4, since we
  2395. have 4 byte wide values for each pixel as a result of our conversion step into
  2396. RGBA. We’ll only use RGB, and if we ever drop the alpha channel, we can drop
  2397. that down to 3. I don’t entirely know why I kept alpha around, but I figured it
  2398. was fine. My &lt;code&gt;kier.full.jpg&lt;/code&gt; image winds up shorter than the requested height
  2399. (which is also qemu’s default resolution for me) – which means we’ll get a
  2400. semi-annoying black band under the image when we go to run it – but it’ll
  2401. work.&lt;/p&gt;
  2402. &lt;p&gt;Anyway, now that we have our image as bytes, we can get down to work, and
  2403. write the rest of the code to handle moving bytes around from in-memory
  2404. as a flat block if pixels, and request that they be displayed using the
  2405. &lt;a href=&quot;https://wiki.osdev.org/GOP&quot;&gt;UEFI GOP&lt;/a&gt;. We’ll just need to hack up a container
  2406. for the image pixels and teach it how to blit to the display.&lt;/p&gt;
  2407. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// RGB Image to move around. This isn't the same as an
  2408. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// `image::RgbImage`, but we can associate the size of
  2409. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;/// the image along with the flat buffer of pixels.
  2410. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;struct&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;RgbImage&lt;/span&gt; {
  2411. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Size of the image as a tuple, as the
  2412. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// (width, height)
  2413. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; size: (&lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;, &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;),
  2414. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// raw pixels we'll send to the display.
  2415. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; inner: Vec&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;BltPixel&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;,
  2416. }
  2417. &lt;span style=&quot;color: #66d9ef;&quot;&gt;impl&lt;/span&gt; RgbImage {
  2418. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Create a new `RgbImage`.
  2419. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;new&lt;/span&gt;(width: &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;, height: &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;) -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;Self&lt;/span&gt; {
  2420. RgbImage {
  2421. size: (width, height),
  2422. inner: &lt;span style=&quot;color: #a6e22e;&quot;&gt;vec&lt;/span&gt;&lt;span style=&quot;color: #f92672;&quot;&gt;!&lt;/span&gt;[BltPixel::new(&lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;); width &lt;span style=&quot;color: #f92672;&quot;&gt;*&lt;/span&gt; height],
  2423. }
  2424. }
  2425. &lt;span style=&quot;color: #e6db74;&quot;&gt;/// Take our pixels and request that the UEFI GOP
  2426. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #e6db74;&quot;&gt;/// display them for us.
  2427. &lt;/span&gt;&lt;span style=&quot;color: #e6db74;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;write&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self, gop: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;mut&lt;/span&gt; GraphicsOutput) -&amp;gt; Result {
  2428. gop.blt(BltOp::BufferToVideo {
  2429. buffer: &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;self&lt;/span&gt;.inner,
  2430. src: &lt;span style=&quot;color: #a6e22e;&quot;&gt;BltRegion&lt;/span&gt;::Full,
  2431. dest: (&lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;),
  2432. dims: &lt;span style=&quot;color: #a6e22e;&quot;&gt;self&lt;/span&gt;.size,
  2433. })
  2434. }
  2435. }
  2436. &lt;span style=&quot;color: #66d9ef;&quot;&gt;impl&lt;/span&gt; Index&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;(&lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;, &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;)&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;for&lt;/span&gt; RgbImage {
  2437. &lt;span style=&quot;color: #66d9ef;&quot;&gt;type&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;Output&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; BltPixel;
  2438. &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;index&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self, idx: (&lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;, &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;)) -&amp;gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;BltPixel&lt;/span&gt; {
  2439. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; (x, y) &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; idx;
  2440. &lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;self.inner[y &lt;span style=&quot;color: #f92672;&quot;&gt;*&lt;/span&gt; self.size.&lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;+&lt;/span&gt; x]
  2441. }
  2442. }
  2443. &lt;span style=&quot;color: #66d9ef;&quot;&gt;impl&lt;/span&gt; IndexMut&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;(&lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;, &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;)&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;for&lt;/span&gt; RgbImage {
  2444. &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;index_mut&lt;/span&gt;(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self, idx: (&lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;, &lt;span style=&quot;color: #66d9ef;&quot;&gt;usize&lt;/span&gt;)) -&amp;gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #a6e22e;&quot;&gt;mut&lt;/span&gt; BltPixel {
  2445. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; (x, y) &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; idx;
  2446. &lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; self.inner[y &lt;span style=&quot;color: #f92672;&quot;&gt;*&lt;/span&gt; self.size.&lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;+&lt;/span&gt; x]
  2447. }
  2448. }
  2449. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We also need to do some basic setup to get a handle to the UEFI
  2450. GOP via the UEFI crate (using
  2451. &lt;a href=&quot;https://docs.rs/uefi/latest/uefi/boot/fn.get_handle_for_protocol.html&quot;&gt;uefi::boot::get_handle_for_protocol&lt;/a&gt;
  2452. and
  2453. &lt;a href=&quot;https://docs.rs/uefi/latest/uefi/boot/fn.open_protocol_exclusive.html&quot;&gt;uefi::boot::open_protocol_exclusive&lt;/a&gt;
  2454. for the &lt;a href=&quot;https://docs.rs/uefi/latest/uefi/proto/console/gop/struct.GraphicsOutput.html&quot;&gt;GraphicsOutput&lt;/a&gt;
  2455. protocol), so that we have the object we need to pass to &lt;code&gt;RgbImage&lt;/code&gt; in order
  2456. for it to write the pixels to the display. The only trick here is that the
  2457. display on the booted system can really be any resolution – so we need to do
  2458. some capping to ensure that we don’t write more pixels than the display can
  2459. handle. Writing fewer than the display’s maximum seems fine, though.&lt;/p&gt;
  2460. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;praise&lt;/span&gt;() -&amp;gt; Result {
  2461. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; gop_handle &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; boot::get_handle_for_protocol::&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;GraphicsOutput&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;()&lt;span style=&quot;color: #f92672;&quot;&gt;?&lt;/span&gt;;
  2462. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; gop &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; boot::open_protocol_exclusive::&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;lt;&lt;/span&gt;GraphicsOutput&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;gt;&lt;/span&gt;(gop_handle)&lt;span style=&quot;color: #f92672;&quot;&gt;?&lt;/span&gt;;
  2463. &lt;span style=&quot;color: #75715e;&quot;&gt;// Get the (width, height) that is the minimum of
  2464. &lt;/span&gt;&lt;span style=&quot;color: #75715e;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #75715e;&quot;&gt;// our image and the display we're using.
  2465. &lt;/span&gt;&lt;span style=&quot;color: #75715e;&quot;&gt;&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; (width, height) &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; gop.current_mode_info().resolution();
  2466. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; (width, height) &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; (width.min(KIER_WIDTH), height.min(KIER_HEIGHT));
  2467. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; &lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; buffer &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; RgbImage::new(width, height);
  2468. &lt;span style=&quot;color: #66d9ef;&quot;&gt;for&lt;/span&gt; y &lt;span style=&quot;color: #66d9ef;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;..height {
  2469. &lt;span style=&quot;color: #66d9ef;&quot;&gt;for&lt;/span&gt; x &lt;span style=&quot;color: #66d9ef;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;0&lt;/span&gt;..width {
  2470. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; idx_r &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; ((y &lt;span style=&quot;color: #f92672;&quot;&gt;*&lt;/span&gt; KIER_WIDTH) &lt;span style=&quot;color: #f92672;&quot;&gt;+&lt;/span&gt; x) &lt;span style=&quot;color: #f92672;&quot;&gt;*&lt;/span&gt; KIER_PIXEL_SIZE;
  2471. &lt;span style=&quot;color: #66d9ef;&quot;&gt;let&lt;/span&gt; pixel &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; buffer[(x, y)];
  2472. pixel.red &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; KIER[idx_r];
  2473. pixel.green &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; KIER[idx_r &lt;span style=&quot;color: #f92672;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt;];
  2474. pixel.blue &lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt; KIER[idx_r &lt;span style=&quot;color: #f92672;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;2&lt;/span&gt;];
  2475. }
  2476. }
  2477. buffer.write(&lt;span style=&quot;color: #f92672;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #66d9ef;&quot;&gt;mut&lt;/span&gt; gop)&lt;span style=&quot;color: #f92672;&quot;&gt;?&lt;/span&gt;;
  2478. Ok(())
  2479. }
  2480. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Not so bad! A bit tedious – we could solve some of this by turning
  2481. &lt;code&gt;KIER&lt;/code&gt; into an &lt;code&gt;RgbImage&lt;/code&gt; at compile-time using some clever &lt;code&gt;Cow&lt;/code&gt; and
  2482. &lt;code&gt;const&lt;/code&gt; tricks and implement blitting a sub-image of the image – but this
  2483. will do for now. This is a joke, after all, let’s not go nuts. All that’s
  2484. left with our code is for us to write our &lt;code&gt;main&lt;/code&gt; function and try and boot
  2485. the thing!&lt;/p&gt;
  2486. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-rust&quot; data-lang=&quot;rust&quot;&gt;&lt;span style=&quot;color: #75715e;&quot;&gt;#[entry]&lt;/span&gt;
  2487. &lt;span style=&quot;color: #66d9ef;&quot;&gt;fn&lt;/span&gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;main&lt;/span&gt;() -&amp;gt; &lt;span style=&quot;color: #a6e22e;&quot;&gt;Status&lt;/span&gt; {
  2488. uefi::helpers::init().unwrap();
  2489. praise().unwrap();
  2490. boot::stall(&lt;span style=&quot;color: #ae81ff;&quot;&gt;100_000_000&lt;/span&gt;);
  2491. Status::SUCCESS
  2492. }
  2493. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you’re following along at home and so interested, the final source is over at
  2494. &lt;a href=&quot;https://gist.github.com/paultag/60334e9f6c06388cc4b1c2cf12d85085&quot;&gt;gist.github.com&lt;/a&gt;.
  2495. We can go ahead and build it using &lt;code&gt;cargo&lt;/code&gt; (as is our tradition) by targeting
  2496. the UEFI platform.&lt;/p&gt;
  2497. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;$ cargo build --release --target x86_64-unknown-uefi
  2498. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&quot;testing-the-uefi-blob&quot;&gt;Testing the UEFI Blob&lt;/h1&gt;
  2499. &lt;p&gt;While I can definitely get my machine to boot these blobs to test, I figured
  2500. I’d save myself some time by using QEMU to test without a full boot.
  2501. If you’ve not done this sort of thing before, we’ll need two packages,
  2502. &lt;code&gt;qemu&lt;/code&gt; and &lt;code&gt;ovmf&lt;/code&gt;. It’s a bit different than most invocations of qemu you
  2503. may see out there – so I figured it’d be worth writing this down, too.&lt;/p&gt;
  2504. &lt;aside class=&quot;left&quot;&gt;
  2505. It's perhaps likely that you aren't using &lt;code&gt;doas&lt;/code&gt; with Debian.
  2506. Replace &lt;code&gt;doas&lt;/code&gt; with &lt;code&gt;sudo&lt;/code&gt; if that's your thing.
  2507. &lt;/aside&gt;
  2508. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;$ doas apt install qemu-system-x86 ovmf
  2509. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;qemu&lt;/code&gt; has a nice feature where it’ll create us an EFI partition as a drive and
  2510. attach it to the VM off a local directory – so let’s construct an EFI
  2511. partition file structure, and drop our binary into the conventional location.
  2512. If you haven’t done this before, and are only interested in running this in a
  2513. VM, don’t worry too much about it, a lot of it is convention and this layout
  2514. should work for you.&lt;/p&gt;
  2515. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;$ mkdir -p esp/efi/boot
  2516. $ cp target/x86_64-unknown-uefi/release/*.efi &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2517. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; esp/efi/boot/bootx64.efi
  2518. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;With all this in place, we can kick off &lt;code&gt;qemu&lt;/code&gt;, booting it in UEFI mode using
  2519. the &lt;code&gt;ovmf&lt;/code&gt; firmware, attaching our EFI partition directory as a drive to
  2520. our VM to boot off of.&lt;/p&gt;
  2521. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;$ qemu-system-x86_64 &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2522. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; -enable-kvm &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2523. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; -m &lt;span style=&quot;color: #ae81ff;&quot;&gt;2048&lt;/span&gt; &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2524. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; -smbios type&lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt;0,uefi&lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt;on &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2525. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; -bios /usr/share/ovmf/OVMF.fd &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2526. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; -drive format&lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt;raw,file&lt;span style=&quot;color: #f92672;&quot;&gt;=&lt;/span&gt;fat:rw:esp
  2527. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If all goes well, soon you’ll be met with the all knowing gaze of
  2528. Chosen One, Kier Eagan. The thing that really impressed me about all
  2529. this is this program worked first try – it all went so boringly
  2530. normal. Truly, kudos to the &lt;code&gt;uefi&lt;/code&gt; crate maintainers, it’s incredibly
  2531. well done.&lt;/p&gt;
  2532. &lt;div&gt;
  2533. &lt;img src=&quot;https://notes.pault.ag/boot2kier/boot2kier.png&quot; /&gt;
  2534. &lt;/div&gt;
  2535. &lt;h1 id=&quot;booting-a-live-system&quot;&gt;Booting a live system&lt;/h1&gt;
  2536. &lt;p&gt;Sure, we &lt;em&gt;could&lt;/em&gt; stop here, but anyone can open up an app window and see a
  2537. picture of Kier Eagan, so I knew I needed to finish the job and boot a real
  2538. machine up with this. In order to do that, we need to format a USB stick.
  2539. &lt;strong&gt;BE SURE /dev/sda IS CORRECT IF YOU’RE COPY AND PASTING&lt;/strong&gt;. All my drives
  2540. are NVMe, so &lt;strong&gt;BE CAREFUL&lt;/strong&gt; – if you use SATA, it may very well be your
  2541. hard drive! Please do not destroy your computer over this.&lt;/p&gt;
  2542. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-txt&quot; data-lang=&quot;txt&quot;&gt;$ doas fdisk /dev/sda
  2543. Welcome to fdisk (util-linux 2.40.4).
  2544. Changes will remain in memory only, until you decide to write them.
  2545. Be careful before using the write command.
  2546. Command (m for help): n
  2547. Partition type
  2548. p primary (0 primary, 0 extended, 4 free)
  2549. e extended (container for logical partitions)
  2550. Select (default p): p
  2551. Partition number (1-4, default 1):
  2552. First sector (2048-4014079, default 2048):
  2553. Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4014079, default 4014079):
  2554. Created a new partition 1 of type 'Linux' and of size 1.9 GiB.
  2555. Command (m for help): t
  2556. Selected partition 1
  2557. Hex code or alias (type L to list all): ef
  2558. Changed type of partition 'Linux' to 'EFI (FAT-12/16/32)'.
  2559. Command (m for help): w
  2560. The partition table has been altered.
  2561. Calling ioctl() to re-read partition table.
  2562. Syncing disks.
  2563. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once that looks good (depending on your flavor of &lt;code&gt;udev&lt;/code&gt; you may or
  2564. may not need to unplug and replug your USB stick), we can go ahead
  2565. and format our new EFI partition (&lt;strong&gt;BE CAREFUL THAT /dev/sda IS YOUR
  2566. USB STICK&lt;/strong&gt;) and write our EFI directory to it.&lt;/p&gt;
  2567. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-txt&quot; data-lang=&quot;txt&quot;&gt;$ doas mkfs.fat /dev/sda1
  2568. $ doas mount /dev/sda1 /mnt
  2569. $ cp -r esp/efi /mnt
  2570. $ find /mnt
  2571. /mnt
  2572. /mnt/efi
  2573. /mnt/efi/boot
  2574. /mnt/efi/boot/bootx64.efi
  2575. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Of course, naturally, devotion to Kier shouldn’t mean backdooring your system.
  2576. Disabling Secure Boot runs counter to the Core Principals, such as Probity, and
  2577. not doing this would surely run counter to Verve, Wit and Vision. This bit does
  2578. require that you’ve taken the step to enroll a
  2579. &lt;a href=&quot;https://wiki.debian.org/SecureBoot#MOK_-_Machine_Owner_Key&quot;&gt;MOK&lt;/a&gt; and know how
  2580. to use it, right about now is when we can use &lt;code&gt;sbsign&lt;/code&gt; to sign our UEFI binary
  2581. we want to boot from to continue enforcing Secure Boot. The details for how
  2582. this command should be run specifically is likely something you’ll need to work
  2583. out depending on how you’ve decided to manage your MOK.&lt;/p&gt;
  2584. &lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot; data-lang=&quot;sh&quot;&gt;$ doas sbsign &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2585. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; --cert /path/to/mok.crt &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2586. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; --key /path/to/mok.key &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2587. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; target/x86_64-unknown-uefi/release/*.efi &lt;span style=&quot;color: #ae81ff;&quot;&gt;\
  2588. &lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;&lt;/span&gt; --output esp/efi/boot/bootx64.efi
  2589. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I figured I’d leave a signed copy of &lt;code&gt;boot2kier&lt;/code&gt; at
  2590. &lt;code&gt;/boot/efi/EFI/BOOT/KIER.efi&lt;/code&gt; on my Dell XPS 13, with Secure Boot enabled
  2591. and enforcing, just took a matter of going into my BIOS to add the right
  2592. boot option, which was no sweat. I’m sure there is a way to do it using
  2593. &lt;code&gt;efibootmgr&lt;/code&gt;, but I wasn’t smart enough to do that quickly. I let ‘er rip,
  2594. and it booted up and worked great!&lt;/p&gt;
  2595. &lt;p&gt;It was a bit hard to get a video of my laptop, though – but lucky for me, I
  2596. have a Minisforum Z83-F sitting around (which, until a few weeks ago was running
  2597. the annual http server to control my &lt;a href=&quot;https://k3xec.com/christmas/&quot;&gt;christmas tree&lt;/a&gt;
  2598. ) – so I grabbed it out of the christmas bin, wired it up to a video capture
  2599. card I have sitting around, and figured I’d grab a video of me booting a
  2600. physical device off the boot2kier USB stick.&lt;/p&gt;
  2601. &lt;div&gt;
  2602. &lt;img class=&quot;note-pad&quot; src=&quot;https://notes.pault.ag/boot2kier/z83-boot2kier.gif&quot; /&gt;
  2603. &lt;/div&gt;
  2604. &lt;p&gt;Attentive readers will notice the image of Kier is smaller then the qemu booted
  2605. system – which just means our real machine has a larger GOP display
  2606. resolution than qemu, which makes sense! We could write some fancy resize code
  2607. (sounds annoying), center the image (can’t be assed but should be the easy way
  2608. out here) or resize the original image (pretty hardware specific workaround).
  2609. Additionally, you can make out the image being written to the display before us
  2610. (the Minisforum logo) behind Kier, which is really cool stuff. If we were real
  2611. fancy we could write blank pixels to the display before blitting Kier, but,
  2612. again, I don’t think I care to do &lt;em&gt;that&lt;/em&gt; much work.&lt;/p&gt;
  2613. &lt;h1 id=&quot;but-now-i-must-away&quot;&gt;But now I must away&lt;/h1&gt;
  2614. &lt;p&gt;If I wanted to keep this joke going, I’d likely try and find a copy of the
  2615. original
  2616. &lt;a href=&quot;https://www.youtube.com/watch?v=U6EUG22elbs&quot;&gt;video when Helly 100%s her file&lt;/a&gt;
  2617. and boot into that – or maybe play a terrible midi PC speaker rendition of
  2618. &lt;a href=&quot;https://www.youtube.com/watch?v=OsbxAsdR0QI&quot;&gt;Kier, Chosen One, Kier&lt;/a&gt; after
  2619. rendering the image. I, unfortunately, don’t have any friends involved with
  2620. production (yet?), so I reckon all that’s out for now. I’ll likely stop playing
  2621. with this – the joke was done and I’m only writing this post because of how
  2622. great everything was along the way.&lt;/p&gt;
  2623. &lt;p&gt;All in all, this reminds me so much of building a homebrew kernel to boot a
  2624. system into – but like, &lt;em&gt;good&lt;/em&gt;, though, and it’s a nice reminder of both how
  2625. fun this stuff can be, and how far we’ve come. UEFI protocols are light-years
  2626. better than how we did it in the dark ages, and the tooling for this is &lt;em&gt;SO&lt;/em&gt;
  2627. much more mature. Booting a custom UEFI binary is &lt;em&gt;miles&lt;/em&gt; ahead of trying to
  2628. boot your own kernel, and I can’t believe how good the &lt;code&gt;uefi&lt;/code&gt; crate is
  2629. specifically.&lt;/p&gt;
  2630. &lt;p&gt;Praise Kier! Kudos, to everyone involved in making this so delightful ❤️.&lt;/p&gt;</description>
  2631. <pubDate>Thu, 20 Feb 2025 14:40:00 +0000</pubDate>
  2632. </item>
  2633. <item>
  2634. <title>Balint Reczey: Wireshark on Ubuntu: Stay Ahead with the Latest Releases and Nightly Builds</title>
  2635. <guid isPermaLink="false">https://balintreczey.hu/blog/?p=1025</guid>
  2636. <link>https://balintreczey.hu/blog/wireshark-on-ubuntu-stay-ahead-with-the-latest-releases-and-nightly-builds/</link>
  2637. <description>&lt;div class=&quot;wp-block-media-text is-stacked-on-mobile&quot;&gt;&lt;figure class=&quot;wp-block-media-text__media&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-1035 size-medium&quot; height=&quot;300&quot; src=&quot;https://balintreczey.hu/blog/wp-content/uploads/2025/02/Wireshark_icon_new-with-ubuntu-logo-300x300.png&quot; width=&quot;300&quot; /&gt;&lt;/figure&gt;&lt;div class=&quot;wp-block-media-text__content&quot;&gt;
  2638. &lt;p&gt;Wireshark is an essential tool for network analysis, and staying up to date with the latest releases ensures access to new features, security updates, and bug fixes. While Ubuntu’s official repositories provide stable versions, they are often not the most recent.&lt;/p&gt;
  2639. &lt;/div&gt;&lt;/div&gt;
  2640.  
  2641.  
  2642.  
  2643. &lt;p&gt;Wearing both WiresharkCore Developer and Debian/Ubuntu package maintainer hats, I’m happy to help the Wireshark team in providing updated packages for all supported Ubuntu versions through dedicated PPAs. This post outlines how you can install the latest stable and nightly Wireshark builds on Ubuntu.&lt;/p&gt;
  2644.  
  2645.  
  2646.  
  2647. &lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;strong&gt;Latest Stable Releases&lt;/strong&gt;&lt;/h2&gt;
  2648.  
  2649.  
  2650.  
  2651. &lt;p&gt;For users who want the most &lt;strong&gt;up-to-date stable&lt;/strong&gt; Wireshark version, we maintain a PPA with backports of the latest releases:&lt;/p&gt;
  2652.  
  2653.  
  2654.  
  2655. &lt;p&gt;&lt;img alt=&quot;🔗&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f517.png&quot; style=&quot;height: 1em;&quot; /&gt; &lt;strong&gt;Stable Wireshark PPA:&lt;/strong&gt;&lt;br /&gt;&lt;img alt=&quot;👉&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f449.png&quot; style=&quot;height: 1em;&quot; /&gt; &lt;a href=&quot;https://launchpad.net/~wireshark-dev/+archive/ubuntu/stable&quot;&gt;https://launchpad.net/~wireshark-dev/+archive/ubuntu/stable&lt;/a&gt;&lt;/p&gt;
  2656.  
  2657.  
  2658.  
  2659. &lt;h3 class=&quot;wp-block-heading&quot;&gt;&lt;strong&gt;Installation Instructions&lt;/strong&gt;&lt;/h3&gt;
  2660.  
  2661.  
  2662.  
  2663. &lt;p&gt;To install the latest stable Wireshark version, add the PPA and update your package list:&lt;/p&gt;
  2664.  
  2665.  
  2666.  
  2667. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;sudo add-apt-repository ppa:wireshark-dev/stable&lt;br /&gt;sudo apt install wireshark&lt;/pre&gt;
  2668.  
  2669.  
  2670.  
  2671. &lt;h2 class=&quot;wp-block-heading&quot;&gt;&lt;strong&gt;Nightly Builds (Development Versions)&lt;/strong&gt;&lt;/h2&gt;
  2672.  
  2673.  
  2674.  
  2675. &lt;p&gt;For those who want to test new features before they are officially released, nightly builds are also available. These builds track the latest development code and you can watch them cooking on their &lt;a href=&quot;https://code.launchpad.net/~wireshark-dev/+recipe/wireshark-daily-master&quot;&gt;Launchpad recipe page&lt;/a&gt;.&lt;/p&gt;
  2676.  
  2677.  
  2678.  
  2679. &lt;p&gt;&lt;img alt=&quot;🔗&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f517.png&quot; style=&quot;height: 1em;&quot; /&gt; &lt;strong&gt;Nightly PPA:&lt;/strong&gt;&lt;br /&gt;&lt;img alt=&quot;👉&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f449.png&quot; style=&quot;height: 1em;&quot; /&gt; &lt;a href=&quot;https://code.launchpad.net/~wireshark-dev/+archive/ubuntu/nightly&quot;&gt;https://code.launchpad.net/~wireshark-dev/+archive/ubuntu/nightly&lt;/a&gt;&lt;/p&gt;
  2680.  
  2681.  
  2682.  
  2683. &lt;h3 class=&quot;wp-block-heading&quot;&gt;&lt;strong&gt;Installation Instructions&lt;/strong&gt;&lt;/h3&gt;
  2684.  
  2685.  
  2686.  
  2687. &lt;p&gt;To install the latest development version of Wireshark, use the following commands:&lt;/p&gt;
  2688.  
  2689.  
  2690.  
  2691. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;sudo add-apt-repository ppa:wireshark-dev/nightly&lt;br /&gt;sudo apt install wireshark&lt;/pre&gt;
  2692.  
  2693.  
  2694.  
  2695. &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Nightly builds may contain experimental features and are not guaranteed to be as stable as the official releases. Also it targets only Ubuntu 24.04 and later including the current development release.&lt;/p&gt;
  2696.  
  2697.  
  2698.  
  2699. &lt;p&gt;If you need to revert to the stable version later, remove the nightly PPA and reinstall Wireshark:&lt;/p&gt;
  2700.  
  2701.  
  2702.  
  2703. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;sudo add-apt-repository --remove ppa:wireshark-dev/nightly&lt;br /&gt;sudo apt install wireshark&lt;/pre&gt;
  2704.  
  2705.  
  2706.  
  2707. &lt;p&gt;Happy sniffing! 🙂&lt;/p&gt;
  2708.  
  2709.  
  2710.  
  2711. &lt;p&gt;&lt;/p&gt;</description>
  2712. <pubDate>Tue, 18 Feb 2025 09:57:30 +0000</pubDate>
  2713. </item>
  2714. <item>
  2715. <title>Alan Pope: Spotlighting Community Stories</title>
  2716. <guid isPermaLink="true">https://popey.com/blog/2025/02/spotlighting-community-stories/</guid>
  2717. <link>https://popey.com/blog/2025/02/spotlighting-community-stories/</link>
  2718. <description>&lt;p&gt;tl;dr I’m hosting a &lt;a href=&quot;https://anchore.zoom.us/j/84874186657&quot;&gt;Community Spotlight Webinar&lt;/a&gt; today at &lt;a href=&quot;https://anchore.com/&quot;&gt;Anchore&lt;/a&gt; featuring &lt;a href=&quot;https://www.linkedin.com/in/nicolas-vuillamy/&quot;&gt;Nicolas Vuilamy&lt;/a&gt; from the &lt;a href=&quot;https://megalinter.io/latest/&quot;&gt;MegaLinter&lt;/a&gt; project. &lt;a href=&quot;https://anchore.zoom.us/j/84874186657&quot;&gt;Register here&lt;/a&gt;.&lt;/p&gt;
  2719. &lt;hr /&gt;
  2720. &lt;p&gt;Throughout my career, I’ve had the privilege of working with organizations that create widely-used open source tools. The popularity of these tools is evident through their impressive download statistics, strong community presence, and engagement both online and at events.&lt;/p&gt;
  2721. &lt;p&gt;During my time at &lt;a href=&quot;https://canonical.com/&quot;&gt;Canonical&lt;/a&gt;, we saw the tremendous reach of &lt;a href=&quot;https://ubuntu.com/&quot;&gt;Ubuntu&lt;/a&gt;, along with tools like &lt;a href=&quot;https://canonical.com/lxd&quot;&gt;LXD&lt;/a&gt;, &lt;a href=&quot;https://cloud-init.io/&quot;&gt;cloud-init&lt;/a&gt;, and yes, even &lt;a href=&quot;https://snapcraft.io/&quot;&gt;Snapcraft&lt;/a&gt;.&lt;/p&gt;
  2722. &lt;p&gt;At &lt;a href=&quot;https://www.influxdata.com/&quot;&gt;Influxdata&lt;/a&gt;, I was part of the &lt;a href=&quot;https://www.influxdata.com/time-series-platform/telegraf/&quot;&gt;Telegraf&lt;/a&gt; team, where we witnessed substantial adoption through downloads and active usage, reflected in our vibrant &lt;a href=&quot;https://www.repotrends.com/influxdata/telegraf&quot;&gt;bug tracker&lt;/a&gt;.&lt;/p&gt;
  2723. &lt;p&gt;Now at &lt;a href=&quot;https://anchore.com/&quot;&gt;Anchore&lt;/a&gt;, we see widespread adoption of &lt;a href=&quot;https://github.com/anchore/syft&quot;&gt;Syft&lt;/a&gt; for &lt;a href=&quot;https://anchore.com/sbom&quot;&gt;SBOM&lt;/a&gt; generation and &lt;a href=&quot;https://github.com/anchore/grype&quot;&gt;Grype&lt;/a&gt; for &lt;a href=&quot;https://anchore.com/container-vulnerability-scanning/&quot;&gt;vulnerability&lt;/a&gt; scanning.&lt;/p&gt;
  2724. &lt;p&gt;What makes Syft and Grype particularly exciting, beyond their permissive licensing, consistent release cycle, dedicated developer team, and &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_computing_mascots#/media/File:Syft_mascot.svg&quot;&gt;distinctive&lt;/a&gt; &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_computing_mascots#/media/File:Grype_mascot.svg&quot;&gt;mascots&lt;/a&gt;, is how they serve as building blocks for other tools and services.&lt;/p&gt;
  2725. &lt;p&gt;Syft isn’t just a standalone SBOM generator - it’s a library that developers can integrate into their own tools. Some organizations even build their own SBOM generators and vulnerability tools directly from our open source foundation!&lt;/p&gt;
  2726. &lt;div class=&quot;highlight&quot;&gt;&lt;pre tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;$ docker-scout version
  2727. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⢀⢀⢀ ⣀⣀⡤⣔⢖⣖⢽⢝
  2728. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⡠⡢⡣⡣⡣⡣⡣⡣⡢⡀ ⢀⣠⢴⡲⣫⡺⣜⢞⢮⡳⡵⡹⡅
  2729. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⡜⡜⡜⡜⡜⡜⠜⠈⠈ ⠁⠙⠮⣺⡪⡯⣺⡪⡯⣺
  2730. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⢘⢜⢜⢜⢜⠜ ⠈⠪⡳⡵⣹⡪⠇
  2731. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⠨⡪⡪⡪⠂ ⢀⡤⣖⢽⡹⣝⡝⣖⢤⡀ ⠘⢝⢮⡚ _____ _
  2732. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⠱⡱⠁ ⡴⡫⣞⢮⡳⣝⢮⡺⣪⡳⣝⢦ ⠘⡵⠁ / ____| Docker | |
  2733. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⠁ ⣸⢝⣕⢗⡵⣝⢮⡳⣝⢮⡺⣪⡳⣣ ⠁ | &lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;___ ___ ___ _ _| |_
  2734. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⣗⣝⢮⡳⣝⢮⡳⣝⢮⡳⣝⢮⢮⡳ &lt;span style=&quot;color: #ae81ff;&quot;&gt;\_&lt;/span&gt;__ &lt;span style=&quot;color: #ae81ff;&quot;&gt;\ &lt;/span&gt;/ __/ _ &lt;span style=&quot;color: #ae81ff;&quot;&gt;\|&lt;/span&gt; | | | __|
  2735. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⢀ ⢱⡳⡵⣹⡪⡳⣝⢮⡳⣝⢮⡳⡣⡏ ⡀ ____&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt; | &lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;_| &lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;_&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt; | |_| | |_
  2736. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⢀⢾⠄ ⠫⣞⢮⡺⣝⢮⡳⣝⢮⡳⣝⠝ ⢠⢣⢂ |_____/ &lt;span style=&quot;color: #ae81ff;&quot;&gt;\_&lt;/span&gt;__&lt;span style=&quot;color: #ae81ff;&quot;&gt;\_&lt;/span&gt;__/ &lt;span style=&quot;color: #ae81ff;&quot;&gt;\_&lt;/span&gt;_,_|&lt;span style=&quot;color: #ae81ff;&quot;&gt;\_&lt;/span&gt;_|
  2737. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⡼⣕⢗⡄ ⠈⠓⠝⢮⡳⣝⠮⠳⠙ ⢠⢢⢣⢣
  2738. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⢰⡫⡮⡳⣝⢦⡀ ⢀⢔⢕⢕⢕⢕⠅
  2739. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ⡯⣎⢯⡺⣪⡳⣝⢖⣄⣀ ⡀⡠⡢⡣⡣⡣⡣⡣⡃
  2740. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;⢸⢝⢮⡳⣝⢮⡺⣪⡳⠕⠗⠉⠁ ⠘⠜⡜⡜⡜⡜⡜⡜⠜⠈
  2741. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;⡯⡳⠳⠝⠊⠓⠉ ⠈⠈⠈⠈
  2742. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;
  2743. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;
  2744. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;
  2745. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;version: v1.13.0 &lt;span style=&quot;color: #f92672;&quot;&gt;(&lt;/span&gt;go1.22.5 - darwin/arm64&lt;span style=&quot;color: #f92672;&quot;&gt;)&lt;/span&gt;
  2746. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;git commit: 7a85bab58d5c36a7ab08cd11ff574717f5de3ec2
  2747. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;
  2748. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;$ syft /usr/local/bin/docker-scout | grep syft
  2749. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ✔ Indexed file system /usr/local/bin/docker-scout
  2750. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ✔ Cataloged contents f247ef0423f53cbf5172c34d2b3ef23d84393bd1d8e05f0ac83ec7d864396c1b
  2751. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ├── ✔ Packages &lt;span style=&quot;color: #f92672;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;274&lt;/span&gt; packages&lt;span style=&quot;color: #f92672;&quot;&gt;]&lt;/span&gt;
  2752. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ├── ✔ File digests &lt;span style=&quot;color: #f92672;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; files&lt;span style=&quot;color: #f92672;&quot;&gt;]&lt;/span&gt;
  2753. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; ├── ✔ File metadata &lt;span style=&quot;color: #f92672;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; locations&lt;span style=&quot;color: #f92672;&quot;&gt;]&lt;/span&gt;
  2754. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt; └── ✔ Executables &lt;span style=&quot;color: #f92672;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #ae81ff;&quot;&gt;1&lt;/span&gt; executables&lt;span style=&quot;color: #f92672;&quot;&gt;]&lt;/span&gt;
  2755. &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;display: flex;&quot;&gt;&lt;span&gt;github.com/anchore/syft v1.10.0 go-module
  2756. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;(I find it delightfully meta to discover syft inside other tools using syft itself)&lt;/em&gt;&lt;/p&gt;
  2757. &lt;center&gt;&lt;a href=&quot;https://popey.com/blog/blog/images/2025-02-13/scooby-doo-meme.png&quot;&gt;&lt;img alt=&quot;A silly meme that isn't true at all :)&quot; src=&quot;https://popey.com/blog/blog/images/2025-02-13/scooby-doo-meme.png&quot; width=&quot;540&quot; /&gt;&lt;/a&gt;&lt;/center&gt;
  2758. &lt;p&gt;This collaborative building upon existing tools mirrors how &lt;a href=&quot;https://linuxmint.com/&quot;&gt;Linux&lt;/a&gt; distributions often build upon other &lt;a href=&quot;http://ubuntu.com/&quot;&gt;Linux distributions&lt;/a&gt;. Like Ubuntu and Telegraf, we see countless individuals and organizations creating innovative solutions that extend beyond the core capabilities of Syft and Grype. It’s the essence of open source - a multiplier effect that comes from creating accessible, powerful tools.&lt;/p&gt;
  2759. &lt;p&gt;While we may not always know exactly how and where these tools are being used (and sometimes, rightfully so, it’s not our business), there are many cases where developers and companies want to share their innovative implementations.&lt;/p&gt;
  2760. &lt;p&gt;I’m particularly interested in these stories because they deserve to be shared. I’ve been exploring public repositories like the GitHub network dependents for &lt;a href=&quot;https://github.com/anchore/syft/network/dependents&quot;&gt;syft&lt;/a&gt;, &lt;a href=&quot;https://github.com/anchore/grype/network/dependents&quot;&gt;grype&lt;/a&gt;, &lt;a href=&quot;https://github.com/anchore/sbom-action/network/dependents&quot;&gt;sbom-action&lt;/a&gt;, and &lt;a href=&quot;https://github.com/anchore/scan-action/network/dependents&quot;&gt;scan-action&lt;/a&gt; to discover where our tools are making an impact.&lt;/p&gt;
  2761. &lt;p&gt;The adoption has been remarkable!&lt;/p&gt;
  2762. &lt;p&gt;I reached out to several open source projects to learn about their implementations, and &lt;a href=&quot;https://www.linkedin.com/in/nicolas-vuillamy/&quot;&gt;Nicolas Vuilamy&lt;/a&gt; from &lt;a href=&quot;https://megalinter.io/latest/&quot;&gt;MegaLinter&lt;/a&gt; was the first to respond - which brings us full circle.&lt;/p&gt;
  2763. &lt;p&gt;Today, I’m hosting our first &lt;a href=&quot;https://anchore.zoom.us/j/84874186657&quot;&gt;Community Spotlight Webinar&lt;/a&gt; with Nicolas to share MegaLinter’s story. &lt;a href=&quot;https://anchore.zoom.us/j/84874186657&quot;&gt;Register here&lt;/a&gt; to join us!&lt;/p&gt;
  2764. &lt;p&gt;If you’re building something interesting with &lt;a href=&quot;https://github.com/anchore&quot;&gt;Anchore Open Source&lt;/a&gt; and would like to share your story, please &lt;a href=&quot;https://popey.me/&quot;&gt;get in touch&lt;/a&gt;. 🙏&lt;/p&gt;</description>
  2765. <pubDate>Thu, 13 Feb 2025 10:00:00 +0000</pubDate>
  2766. </item>
  2767. <item>
  2768. <title>Balint Reczey: Supercharge Your Installs with apt-eatmydata: Because Who Needs Crash Safety Anyway? 😈</title>
  2769. <guid isPermaLink="false">https://balintreczey.hu/blog/?p=1004</guid>
  2770. <link>https://balintreczey.hu/blog/supercharge-your-installs-with-apt-eatmydata-because-who-needs-crash-safety-anyway/</link>
  2771. <description>&lt;div class=&quot;wp-block-media-text is-stacked-on-mobile&quot;&gt;&lt;figure class=&quot;wp-block-media-text__media&quot;&gt;&lt;img alt=&quot;APT eatmydata super cow powers&quot; class=&quot;wp-image-1015 size-full&quot; height=&quot;768&quot; src=&quot;https://balintreczey.hu/blog/wp-content/uploads/2025/02/apt-eatmydata-super-cow-powers.png&quot; width=&quot;1024&quot; /&gt;&lt;/figure&gt;&lt;div class=&quot;wp-block-media-text__content&quot;&gt;
  2772. &lt;p&gt;Tired of waiting for &lt;code&gt;apt&lt;/code&gt; to finish installing packages? Wish there were a way to make your installations &lt;em&gt;blazingly fast&lt;/em&gt; without caring about minor things like, oh, &lt;strong&gt;data integrity&lt;/strong&gt;? Well, today is your lucky day! &lt;img alt=&quot;🎉&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f389.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  2773. &lt;/div&gt;&lt;/div&gt;
  2774.  
  2775.  
  2776.  
  2777. &lt;p&gt;I’m thrilled to introduce &lt;a href=&quot;https://tracker.debian.org/pkg/apt-eatmydata&quot;&gt;&lt;code&gt;apt-eatmydata&lt;/code&gt;&lt;/a&gt;, now available for &lt;strong&gt;Debian&lt;/strong&gt; and &lt;strong&gt;all supported Ubuntu releases&lt;/strong&gt;!&lt;/p&gt;
  2778.  
  2779.  
  2780.  
  2781. &lt;h2 class=&quot;wp-block-heading&quot;&gt;What Is apt-eatmydata?&lt;/h2&gt;
  2782.  
  2783.  
  2784.  
  2785. &lt;p&gt;If you’ve ever used &lt;a&gt;&lt;code&gt;libeatmydata&lt;/code&gt;&lt;/a&gt;, you know it’s a nifty little hack that disables &lt;code&gt;fsync()&lt;/code&gt; and friends, making package installations &lt;em&gt;way&lt;/em&gt; faster by skipping unnecessary disk writes. Normally, you’d have to remember to wrap &lt;code&gt;apt&lt;/code&gt; commands manually, like this:&lt;/p&gt;
  2786.  
  2787.  
  2788.  
  2789. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;eatmydata apt install texlive-full&lt;/pre&gt;
  2790.  
  2791.  
  2792.  
  2793. &lt;p&gt;But who has time for that? &lt;code&gt;apt-eatmydata&lt;/code&gt; takes care of this &lt;em&gt;automagically&lt;/em&gt; by integrating &lt;code&gt;eatmydata&lt;/code&gt; seamlessly into &lt;code&gt;apt&lt;/code&gt; itself! That means &lt;strong&gt;every&lt;/strong&gt; package install is now turbocharged—no extra typing required. &lt;img alt=&quot;🚀&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f680.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  2794.  
  2795.  
  2796.  
  2797. &lt;h2 class=&quot;wp-block-heading&quot;&gt;How to Get It&lt;/h2&gt;
  2798.  
  2799.  
  2800.  
  2801. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Debian&lt;/h3&gt;
  2802.  
  2803.  
  2804.  
  2805. &lt;p&gt;If you’re on &lt;strong&gt;Debian unstable/testing&lt;/strong&gt; (or possibly soon in stable-backports), you can install it directly with:&lt;/p&gt;
  2806.  
  2807.  
  2808.  
  2809. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;sudo apt install apt-eatmydata&lt;/pre&gt;
  2810.  
  2811.  
  2812.  
  2813. &lt;h3 class=&quot;wp-block-heading&quot;&gt;Ubuntu&lt;/h3&gt;
  2814.  
  2815.  
  2816.  
  2817. &lt;p&gt;Ubuntu users already enjoy faster package installation thanks to &lt;a data-id=&quot;https://balintreczey.hu/blog/hello-zstd-compressed-debs-in-ubuntu/&quot; data-type=&quot;link&quot; href=&quot;https://balintreczey.hu/blog/hello-zstd-compressed-debs-in-ubuntu/&quot;&gt;zstd-compressed packages&lt;/a&gt; and to switch to even higher gear I’ve backported &lt;code&gt;apt-eatmydata&lt;/code&gt; to&lt;strong&gt; all supported Ubuntu releases&lt;/strong&gt;. Just add &lt;a href=&quot;https://launchpad.net/~firebuild/+archive/ubuntu/apt-eatmydata&quot;&gt;this PPA&lt;/a&gt; and install:&lt;/p&gt;
  2818.  
  2819.  
  2820.  
  2821. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;sudo add-apt-repository ppa:firebuild/apt-eatmydata&lt;br /&gt;sudo apt install apt-eatmydata&lt;/pre&gt;
  2822.  
  2823.  
  2824.  
  2825. &lt;p&gt;And boom! Your &lt;code&gt;apt install&lt;/code&gt; times are getting &lt;strong&gt;serious&lt;/strong&gt; upgrade. Let’s run some tests…&lt;/p&gt;
  2826.  
  2827.  
  2828.  
  2829. &lt;pre class=&quot;wp-block-preformatted&quot;&gt;# pre-download package to measure only the installation&lt;br /&gt;$ sudo apt install -d linux-headers-6.8.0-53-lowlatency&lt;br /&gt;...&lt;br /&gt;# installation time is 9.35s without apt-eatmydata:&lt;br /&gt;$ sudo time apt install linux-headers-6.8.0-53-lowlatency&lt;br /&gt;...&lt;br /&gt;2.30user 2.12system 0:09.35elapsed 47%CPU (0avgtext+0avgdata 174680maxresident)k&lt;br /&gt;32inputs+1495216outputs (0major+196945minor)pagefaults 0swaps&lt;br /&gt;$ sudo apt install apt-eatmydata&lt;br /&gt;...&lt;br /&gt;$ sudo apt purge linux-headers-6.8.0-53-lowlatency&lt;br /&gt;# installation time is 3.17s with apt-eatmydata: &lt;br /&gt;$ sudo time eatmydata apt install linux-headers-6.8.0-53-lowlatency&lt;br /&gt;2.30user 0.88system 0:03.17elapsed 100%CPU (0avgtext+0avgdata 174692maxresident)k&lt;br /&gt;0inputs+205664outputs (0major+198099minor)pagefaults 0swaps&lt;/pre&gt;
  2830.  
  2831.  
  2832.  
  2833. &lt;p&gt;&lt;code&gt;apt-eatmydata&lt;/code&gt; just made installing Linux headers &lt;strong&gt;3x faster&lt;/strong&gt;!&lt;/p&gt;
  2834.  
  2835.  
  2836.  
  2837. &lt;h2 class=&quot;wp-block-heading&quot;&gt;But Wait, There’s More! &lt;img alt=&quot;🎁&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f381.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/h2&gt;
  2838.  
  2839.  
  2840.  
  2841. &lt;p&gt;If you’re automating CI builds, there’s even a &lt;strong&gt;GitHub Action&lt;/strong&gt; to make your workflows faster essentially doing what &lt;code&gt;apt-eatmydata&lt;/code&gt; does, just setting it up in less than a second! Check it out here:&lt;br /&gt;&lt;img alt=&quot;👉&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f449.png&quot; style=&quot;height: 1em;&quot; /&gt; &lt;a href=&quot;https://github.com/marketplace/actions/apt-eatmydata&quot;&gt;GitHub Marketplace: apt-eatmydata&lt;/a&gt;&lt;/p&gt;
  2842.  
  2843.  
  2844.  
  2845. &lt;h2 class=&quot;wp-block-heading&quot;&gt;Should You Use It?&lt;/h2&gt;
  2846.  
  2847.  
  2848.  
  2849. &lt;p&gt;&lt;img alt=&quot;🚨&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f6a8.png&quot; style=&quot;height: 1em;&quot; /&gt; &lt;strong&gt;Warning:&lt;/strong&gt; &lt;code&gt;apt-eatmydata&lt;/code&gt; &lt;strong&gt;is not for all production environments&lt;/strong&gt;. If your system crashes mid-install, you &lt;em&gt;might&lt;/em&gt; end up with a broken package database. But for throwaway VMs, containers, and CI pipelines? It’s an absolute &lt;strong&gt;game-changer&lt;/strong&gt;. I use it on my laptop, too.&lt;/p&gt;
  2850.  
  2851.  
  2852.  
  2853. &lt;p&gt;So go forth and install &lt;strong&gt;recklessly fast&lt;/strong&gt;! &lt;img alt=&quot;🚀&quot; class=&quot;wp-smiley&quot; src=&quot;https://s.w.org/images/core/emoji/15.0.3/72x72/1f680.png&quot; style=&quot;height: 1em;&quot; /&gt;&lt;/p&gt;
  2854.  
  2855.  
  2856.  
  2857. &lt;p&gt;If you run into any issues, feel free to file a bug or drop a comment. Happy hacking!&lt;/p&gt;
  2858.  
  2859.  
  2860.  
  2861. &lt;p&gt;&lt;em&gt;(To accelerate your CI pipeline or local builds, check out &lt;a data-id=&quot;https://balintreczey.hu/blog/how-to-speed-up-your-next-build-with-firebuild/&quot; data-type=&quot;link&quot; href=&quot;https://balintreczey.hu/blog/how-to-speed-up-your-next-build-with-firebuild/&quot;&gt;Firebuild, that speeds up the builds&lt;/a&gt;, too!)&lt;/em&gt;&lt;/p&gt;
  2862.  
  2863.  
  2864.  
  2865. &lt;p&gt;&lt;/p&gt;</description>
  2866. <pubDate>Tue, 11 Feb 2025 17:04:25 +0000</pubDate>
  2867. </item>
  2868. <item>
  2869. <title>Stuart Langridge: Use RSS to read newsletters</title>
  2870. <guid isPermaLink="false">tag:www.kryogenix.org,2025-02-08:/days/2025/02/08/use-rss-to-read-newsletters/</guid>
  2871. <link>https://www.kryogenix.org/days/2025/02/08/use-rss-to-read-newsletters/</link>
  2872. <description>&lt;p&gt;Everyone's got a newsletter these days (like everyone's got a podcast). In general, I think this is OK: instead of going through a middleman publisher, have a direct connection from you to the people who want to read what you say, so that that audience can't be taken away from you.&lt;/p&gt;
  2873. &lt;p&gt;On the other hand, I don't actually &lt;em&gt;like&lt;/em&gt; newsletters. I don't really like giving my email address to random people&lt;sup id=&quot;sf-use-rss-to-read-newsletters-1-back&quot;&gt;&lt;a class=&quot;simple-footnote&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-use-rss-to-read-newsletters-1&quot; title=&quot;despite how it's my business to do so and it's right there on the front page of the website, I know, I know&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;, and frankly an email app is not a great way to read long-form text! There are many apps which are a lot better at this.&lt;/p&gt;
  2874. &lt;p&gt;There is a solution to this and the solution is called RSS. &lt;a href=&quot;https://bell.bz/love-newsletters-youre-gonna-love-rss/&quot;&gt;Andy Bell explains RSS&lt;/a&gt; and this is exactly how I read newsletters. If I want to read someone's newsletter and it's on Substack, or ghost.io, or buttondown.email, what I actually do is subscribe to their newsletter &lt;em&gt;but&lt;/em&gt; what I'm actually subscribing to is their RSS feed. This sections off newsletter stuff into a completely separate app that I can catch up on when I've got the time, it means that the newsletter owner (or the site they're using) can't decide to &quot;upsell&quot; me on other stuff they do that I'm not interested in, and it's a better, nicer reading experience than my mail app.&lt;sup id=&quot;sf-use-rss-to-read-newsletters-2-back&quot;&gt;&lt;a class=&quot;simple-footnote&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-use-rss-to-read-newsletters-2&quot; title=&quot;Is all of this doable in my mail client? Sure. I could set up filters, put newsletters into their own folders/labels, etc. But that's working around a problem rather than solving it&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
  2875. &lt;p&gt;I use &lt;a href=&quot;https://netnewswire.com/&quot;&gt;NetNewsWire&lt;/a&gt; on my iOS phone, but there are a bunch of other newsreader apps for every platform and you should choose whichever one you want. Andy lists a bunch, above.&lt;/p&gt;
  2876. &lt;p&gt;The question, of course, then becomes: how do you find the RSS feed for a thing you want to read?&lt;sup id=&quot;sf-use-rss-to-read-newsletters-3-back&quot;&gt;&lt;a class=&quot;simple-footnote&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-use-rss-to-read-newsletters-3&quot; title=&quot;I suggested to Andy that he ought to write this post explaining how to do this and then realised that I should do it myself and stop being such a lazy snipe, so here it is&quot;&gt;3&lt;/a&gt;&lt;/sup&gt; Well, it turns out... you don't have to.&lt;/p&gt;
  2877. &lt;p&gt;When you want to subscribe to a newsletter, you literally just put the web address of the newsletter itself into your RSS reader, and that reader will take care of finding the feed and subscribing to it, for you. It's magic. Hooray! I've tested this with substack, with ghost.io, with buttondown.email, and it works with all of them. You don't need to do anything.&lt;/p&gt;
  2878. &lt;p&gt;If that &lt;em&gt;doesn't&lt;/em&gt; work, then there is one neat alternative you can try, though. &lt;a href=&quot;https://kill-the-newsletter.com/&quot;&gt;Kill The Newsletter&lt;/a&gt; will give you an email address for any site you name, and provide the incoming emails to that &lt;em&gt;as an RSS feed&lt;/em&gt;. So, if you've found a newsletter which &lt;em&gt;doesn't&lt;/em&gt; exist on the web (boo hiss!) and doesn't provide an RSS feed, then you go to KTN, it gives you some randomly-generated email address, you subscribe to the intransigent newsletter &lt;em&gt;with that email address&lt;/em&gt;, and then you can subscribe to the resultant feed in your RSS reader. It's dead handy.&lt;/p&gt;
  2879. &lt;p&gt;If you run a newsletter and it &lt;em&gt;doesn't&lt;/em&gt; have an RSS feed and you want it to have, then have a look at whatever newsletter software you use; it will almost certainly provide a way to create one, and you might have to tick a box. (You might also want to complain to the software creators that that box wasn't ticked by default.) If you've got an RSS feed for the newsletter that you write, but putting your site's address into an RSS reader doesn't &lt;em&gt;find&lt;/em&gt; that RSS feed, then what you need is &lt;a href=&quot;https://www.rssboard.org/rss-autodiscovery&quot;&gt;RSS autodiscovery&lt;/a&gt;, which is the &quot;magic&quot; alluded to above; you add a line to your site's HTML in the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; section which reads &lt;code&gt;&amp;lt;link rel=&quot;alternate&quot; type=&quot;application/rss+xml&quot; title=&quot;RSS&quot; href=&quot;https://URL/of/your/feed&quot;&amp;gt;&lt;/code&gt; and then it'll work.&lt;/p&gt;
  2880. &lt;p&gt;I like this. Read newsletters at my pace, in my choice of app, on my terms. More of that sort of thing.&lt;/p&gt;&lt;ol class=&quot;simple-footnotes&quot;&gt;&lt;li id=&quot;sf-use-rss-to-read-newsletters-1&quot;&gt;despite how it's my business to do so and it's right there on the front page of the website, I know, I know &lt;a class=&quot;simple-footnote-back&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-use-rss-to-read-newsletters-1-back&quot;&gt;↩&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;sf-use-rss-to-read-newsletters-2&quot;&gt;Is all of this doable in my mail client? Sure. I could set up filters, put newsletters into their own folders/labels, etc. But that's working around a problem rather than solving it &lt;a class=&quot;simple-footnote-back&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-use-rss-to-read-newsletters-2-back&quot;&gt;↩&lt;/a&gt;&lt;/li&gt;&lt;li id=&quot;sf-use-rss-to-read-newsletters-3&quot;&gt;I &lt;a href=&quot;https://bsky.app/profile/sil.kryogenix.org/post/3lhnuv42cqk2e&quot;&gt;suggested to Andy&lt;/a&gt; that he ought to write this post explaining how to do this and then realised that I should do it myself and stop being such a lazy snipe, so here it is &lt;a class=&quot;simple-footnote-back&quot; href=&quot;http://feeds.feedburner.com/kryogenix#sf-use-rss-to-read-newsletters-3-back&quot;&gt;↩&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</description>
  2881. <pubDate>Sat, 08 Feb 2025 15:09:00 +0000</pubDate>
  2882. </item>
  2883. <item>
  2884. <title>David Mohammed: A Quick Look at DigitalOcean</title>
  2885. <guid isPermaLink="false">https://ubuntubudgie.org/?p=3879</guid>
  2886. <link>https://ubuntubudgie.org/2025/01/a-quick-look-at-digitalocean/</link>
  2887. <description>&lt;p&gt;For several years, DigitalOcean has been an important sponsor of Ubuntu Budgie. They provide the infrastructure we need to host our website at https://ubuntubudgie.org and our Discourse community forum at https://discourse.ubuntubudgie.org. Maybe you are familiar with them. Maybe you use them in your personal or professional life. Or maybe, like me, you didn’t really see how they would benefit you.&lt;/p&gt;
  2888. &lt;p&gt;&lt;a href=&quot;https://ubuntubudgie.org/2025/01/a-quick-look-at-digitalocean/&quot; rel=&quot;nofollow&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;</description>
  2889. <pubDate>Sun, 19 Jan 2025 17:27:43 +0000</pubDate>
  2890. </item>
  2891. <item>
  2892. <title>Nobuto Murata: How to prevent TrackPoint or touchpad events from waking up ThinkPad T14 Gen 5 AMD from suspend</title>
  2893. <guid isPermaLink="true">https://nobuto-m.github.io/post/2025/how-to-prevent-trackpoint-events-from-waking-up-thinkpad-t14-gen-5-amd-from-suspend/</guid>
  2894. <link>https://nobuto-m.github.io/post/2025/how-to-prevent-trackpoint-events-from-waking-up-thinkpad-t14-gen-5-amd-from-suspend/</link>
  2895. <description>&lt;h2 id=&quot;tldr&quot;&gt;TL;DR&lt;/h2&gt;
  2896. &lt;p&gt;Try the following lines in your custom udev rules, e.g.&lt;br /&gt;
  2897. &lt;code&gt;/etc/udev/rules.d/99-local-disable-wakeup-events.rules&lt;/code&gt;&lt;/p&gt;
  2898. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0676:00&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c_hid_acpi&quot;&lt;/span&gt;, ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;disabled&quot;&lt;/span&gt;
  2899. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;PNP0C0E:00&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;acpi&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;button&quot;&lt;/span&gt;, ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;\_SB_.SLPB&quot;&lt;/span&gt;, ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;disabled&quot;&lt;/span&gt;
  2900. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
  2901.  
  2902. &lt;details class=&quot;toc-inpage d-print-none  &quot; open=&quot;open&quot;&gt;
  2903.  Table of Contents
  2904.  &lt;nav id=&quot;TableOfContents&quot;&gt;
  2905.  &lt;ul&gt;
  2906.    &lt;li&gt;&lt;a href=&quot;https://nobuto-m.github.io/tag/planet-ubuntu/index.xml#tldr&quot;&gt;TL;DR&lt;/a&gt;&lt;/li&gt;
  2907.    &lt;li&gt;&lt;a href=&quot;https://nobuto-m.github.io/tag/planet-ubuntu/index.xml#the-motivation&quot;&gt;The motivation&lt;/a&gt;&lt;/li&gt;
  2908.    &lt;li&gt;&lt;a href=&quot;https://nobuto-m.github.io/tag/planet-ubuntu/index.xml#disabling-touchpad-as-a-wakeup-source-on-t14-gen-5-amd&quot;&gt;Disabling touchpad as a wakeup source on T14 Gen 5 AMD&lt;/a&gt;&lt;/li&gt;
  2909.    &lt;li&gt;&lt;a href=&quot;https://nobuto-m.github.io/tag/planet-ubuntu/index.xml#disabling-trackpoint-as-a-wakeup-source-on-t14-gen-5-amd&quot;&gt;Disabling TrackPoint as a wakeup source on T14 Gen 5 AMD&lt;/a&gt;&lt;/li&gt;
  2910.    &lt;li&gt;&lt;a href=&quot;https://nobuto-m.github.io/tag/planet-ubuntu/index.xml#in-the-case-of-thinkpad-t14-gen-3-amd&quot;&gt;In the case of ThinkPad T14 Gen 3 AMD&lt;/a&gt;&lt;/li&gt;
  2911.    &lt;li&gt;&lt;a href=&quot;https://nobuto-m.github.io/tag/planet-ubuntu/index.xml#references&quot;&gt;References&lt;/a&gt;&lt;/li&gt;
  2912.  &lt;/ul&gt;
  2913. &lt;/nav&gt;
  2914. &lt;/details&gt;
  2915.  
  2916. &lt;h2 id=&quot;the-motivation&quot;&gt;The motivation&lt;/h2&gt;
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935. &lt;figure id=&quot;figure-whenever-something-touches-the-red-cap-the-system-wakes-up-from-suspends2idle&quot;&gt;
  2936.  &lt;div class=&quot;d-flex justify-content-center&quot;&gt;
  2937.    &lt;div class=&quot;w-100&quot;&gt;&lt;img alt=&quot;Whenever something touches the red cap, the system wakes up from suspend/s2idle.&quot; data-zoomable=&quot;data-zoomable&quot; height=&quot;428&quot; src=&quot;https://nobuto-m.github.io/post/2025/how-to-prevent-trackpoint-events-from-waking-up-thinkpad-t14-gen-5-amd-from-suspend/featured_hu236477c92f30afd096faecc971ed105b_216203_4c1c11344310bee682732078c26bf1f3.webp&quot; width=&quot;760&quot; /&gt;&lt;/div&gt;
  2938.  &lt;/div&gt;
  2939.      Whenever something touches the red cap, the system wakes up from suspend/s2idle.
  2940.    &lt;/figure&gt;
  2941.  
  2942. &lt;p&gt;I’ve used ThinkPad T14 Gen 3 AMD for 2 years, and I recently purchased T14 &lt;strong&gt;Gen 5&lt;/strong&gt; AMD. The previous system as Gen 3 annoyed me so much because the laptop randomly woke up from suspend even inside a backpack on its own, heated up the confined air in it, and drained the battery pretty fast as a consequence. Basically it’s too sensitive to any events. For example, whenever a USB Type-C cable is plugged in as a power source or whenever something touches the TrackPoint &lt;strong&gt;even if a display on a closed lid slightly makes contact with the red cap, the system wakes up from suspend&lt;/strong&gt;. It was uncontrollable.&lt;/p&gt;
  2943. &lt;p&gt;I was hoping that Gen 5 would make a difference, and it did when it comes to the power source event. However, frequent wakeups due to the TrackPoint event remained the same so I started to dig in.&lt;/p&gt;
  2944. &lt;h2 id=&quot;disabling-touchpad-as-a-wakeup-source-on-t14-gen-5-amd&quot;&gt;Disabling touchpad as a wakeup source on T14 Gen 5 AMD&lt;/h2&gt;
  2945. &lt;p&gt;Disabling touchpad events as a wakeup source is straightforward. The touchpad device, &lt;code&gt;ELAN0676:00 04F3:3195 Touchpad&lt;/code&gt;, can be found in the udev device tree as follows.&lt;/p&gt;
  2946. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ udevadm info --tree
  2947. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  2948. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  2949. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; └─input/input12
  2950. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ P: /devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0676:00/0018:04F3:3195.0001/input/input12
  2951. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ M: input12
  2952. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ R: &lt;span class=&quot;m&quot;&gt;12&lt;/span&gt;
  2953. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ U: input
  2954. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;DEVPATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0676:00/0018:04F3:3195.0001/input/input12
  2955. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;input
  2956. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;PRODUCT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;18/4f3/3195/100
  2957. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;NAME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ELAN0676:00 04F3:3195 Touchpad&quot;&lt;/span&gt;
  2958. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;PHYS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0676:00&quot;&lt;/span&gt;
  2959. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And you can get all attributes including parent devices like the following.&lt;/p&gt;
  2960. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ udevadm info --attribute-walk -p /devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0676:00/0018:04F3:3195.0001/input/input12
  2961. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  2962. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  2963. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  looking at device &lt;span class=&quot;s1&quot;&gt;'/devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0676:00/0018:04F3:3195.0001/input/input12'&lt;/span&gt;:
  2964. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;input12&quot;&lt;/span&gt;
  2965. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;input&quot;&lt;/span&gt;
  2966. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;DRIVER&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
  2967. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ...
  2968. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;name&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ELAN0676:00 04F3:3195 Touchpad&quot;&lt;/span&gt;
  2969. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;phys&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0676:00&quot;&lt;/span&gt;
  2970. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  2971. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  2972. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  2973. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  looking at parent device &lt;span class=&quot;s1&quot;&gt;'/devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0676:00'&lt;/span&gt;:
  2974. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;KERNELS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0676:00&quot;&lt;/span&gt;
  2975. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;SUBSYSTEMS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c&quot;&lt;/span&gt;
  2976. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c_hid_acpi&quot;&lt;/span&gt;
  2977. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;name&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;ELAN0676:00&quot;&lt;/span&gt;
  2978. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ...
  2979. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enabled&quot;&lt;/span&gt;
  2980. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The line I’m looking for is &lt;code&gt;ATTRS{power/wakeup}==&quot;enabled&quot;&lt;/code&gt;. By using the identifiers of the parent device that has &lt;code&gt;ATTRS{power/wakeup}&lt;/code&gt;, I can make sure that &lt;code&gt;/sys/devices/platform/AMDI0010:01/i2c-1/i2c-ELAN0676:00/power/wakeup&lt;/code&gt; is always &lt;code&gt;disabled&lt;/code&gt; with the custom udev rule as follows.&lt;/p&gt;
  2981. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0676:00&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c_hid_acpi&quot;&lt;/span&gt;, ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;disabled&quot;&lt;/span&gt;
  2982. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&quot;disabling-trackpoint-as-a-wakeup-source-on-t14-gen-5-amd&quot;&gt;Disabling TrackPoint as a wakeup source on T14 Gen 5 AMD&lt;/h2&gt;
  2983. &lt;p&gt;I’ve seen a pattern already as above so I &lt;em&gt;should&lt;/em&gt; be able to apply the same method. The TrackPoint device, &lt;code&gt;TPPS/2 Elan TrackPoint&lt;/code&gt;, can be found in the udev device tree.&lt;/p&gt;
  2984. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ udevadm info --tree
  2985. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  2986. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  2987. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; └─input/input5
  2988. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ P: /devices/platform/i8042/serio1/input/input5
  2989. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ M: input5
  2990. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ R: &lt;span class=&quot;m&quot;&gt;5&lt;/span&gt;
  2991. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ U: input
  2992. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;DEVPATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/devices/platform/i8042/serio1/input/input5
  2993. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;input
  2994. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;PRODUCT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;11/2/a/63
  2995. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;NAME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;TPPS/2 Elan TrackPoint&quot;&lt;/span&gt;
  2996. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;   ┆ E: &lt;span class=&quot;nv&quot;&gt;PHYS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;isa0060/serio1/input0&quot;&lt;/span&gt;
  2997. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And the information of parent devices too.&lt;/p&gt;
  2998. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ udevadm info --attribute-walk -p /devices/platform/i8042/serio1/input/input5
  2999. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  3000. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3001. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  looking at device &lt;span class=&quot;s1&quot;&gt;'/devices/platform/i8042/serio1/input/input5'&lt;/span&gt;:
  3002. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;input5&quot;&lt;/span&gt;
  3003. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;input&quot;&lt;/span&gt;
  3004. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;DRIVER&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt;
  3005. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ...
  3006. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;name&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;TPPS/2 Elan TrackPoint&quot;&lt;/span&gt;
  3007. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;phys&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;isa0060/serio1/input0&quot;&lt;/span&gt;
  3008. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3009. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  3010. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3011. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  looking at parent device &lt;span class=&quot;s1&quot;&gt;'/devices/platform/i8042/serio1'&lt;/span&gt;:
  3012. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;KERNELS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;serio1&quot;&lt;/span&gt;
  3013. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;SUBSYSTEMS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;serio&quot;&lt;/span&gt;
  3014. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;psmouse&quot;&lt;/span&gt;
  3015. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;bind_mode&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;auto&quot;&lt;/span&gt;
  3016. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;description&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i8042 AUX port&quot;&lt;/span&gt;
  3017. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;drvctl&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;(not readable)&quot;&lt;/span&gt;
  3018. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;firmware_id&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;PNP: LEN0321 PNP0f13&quot;&lt;/span&gt;
  3019. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ...
  3020. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;disabled&quot;&lt;/span&gt;
  3021. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I hit the wall here. &lt;code&gt;ATTRS{power/wakeup}==&quot;disabled&quot;&lt;/code&gt; for the &lt;code&gt;i8042 AUX port&lt;/code&gt; is already there but the TrackPoint still wakes up the system from suspend. I had to do bisecting for all remaining wakeup sources.&lt;/p&gt;
  3022. &lt;details class=&quot;spoiler &quot; id=&quot;spoiler-2&quot;&gt;
  3023.  The list of the remaining wakeup sources
  3024.  &lt;p&gt;&lt;/p&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ cat /proc/acpi/wakeup
  3025. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Device S-state  Status   Sysfs node
  3026. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;GPP0  S0 *disabled
  3027. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;GPP2  S3 *disabled
  3028. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;GPP5  S0 *enabled   pci:0000:00:02.1
  3029. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;GPP6  S4 *enabled   pci:0000:00:02.2
  3030. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;GP11  S4 *enabled   pci:0000:00:03.1
  3031. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;SWUS  S4 *disabled
  3032. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;GP12  S4 *enabled   pci:0000:00:04.1
  3033. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;SWUS  S4 *disabled
  3034. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;XHC0  S3 *enabled   pci:0000:c4:00.3
  3035. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;XHC1  S4 *enabled   pci:0000:c4:00.4
  3036. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;XHC2  S4 *disabled  pci:0000:c6:00.0
  3037. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;NHI0  S3 *enabled   pci:0000:c6:00.5
  3038. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;XHC3  S3 *enabled   pci:0000:c6:00.3
  3039. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;NHI1  S4 *enabled   pci:0000:c6:00.6
  3040. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;XHC4  S3 *enabled   pci:0000:c6:00.4
  3041. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;LID  S4 *enabled   platform:PNP0C0D:00
  3042. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;SLPB  S3 *enabled   platform:PNP0C0E:00
  3043. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-fallback&quot; data-lang=&quot;fallback&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; Wakeup sources:
  3044. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │  [/sys/devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001/wakeup66]: enabled
  3045. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │  [/sys/devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:002/wakeup67]: enabled
  3046. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Battery [PNP0C0A:00]: enabled
  3047. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Lid Switch [PNP0C0D:00]: enabled
  3048. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Power Button [PNP0C0C:00]: enabled
  3049. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Sleep Button [PNP0C0E:00]: enabled
  3050. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ AT Translated Set 2 keyboard [serio0]: enabled
  3051. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] ISA bridge [0000:00:14.3]: enabled
  3052. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] Multimedia controller [0000:c4:00.5]: enabled
  3053. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] PCI bridge [0000:00:02.1]: enabled
  3054. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] PCI bridge [0000:00:02.2]: enabled
  3055. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] PCI bridge [0000:00:03.1]: enabled
  3056. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] PCI bridge [0000:00:04.1]: enabled
  3057. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:c4:00.3]: enabled
  3058. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:c4:00.4]: enabled
  3059. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:c6:00.3]: enabled
  3060. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:c6:00.4]: enabled
  3061. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:c6:00.5]: enabled
  3062. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:c6:00.6]: enabled
  3063. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Mobile Broadband host interface [mhi0]: enabled
  3064. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Plug-n-play Real Time Clock [00:01]: enabled
  3065. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Real Time Clock alarm timer [rtc0]: enabled
  3066. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Thunderbolt domain [domain0]: enabled
  3067. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Thunderbolt domain [domain1]: enabled
  3068. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ USB4 host controller [0-0]: enabled
  3069. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; └─USB4 host controller [1-0]: enabled
  3070. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;
  3071. &lt;/details&gt;
  3072. &lt;p&gt;Somehow, disabling &lt;code&gt;SLPB&lt;/code&gt; “ACPI Sleep Button” stopped undesired wakeups by the TrackPoint.&lt;/p&gt;
  3073. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;  looking at parent device &lt;span class=&quot;s1&quot;&gt;'/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00'&lt;/span&gt;:
  3074. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;KERNELS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;PNP0C0E:00&quot;&lt;/span&gt;
  3075. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;SUBSYSTEMS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;acpi&quot;&lt;/span&gt;
  3076. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;button&quot;&lt;/span&gt;
  3077. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;hid&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;PNP0C0E&quot;&lt;/span&gt;
  3078. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;\_SB_.SLPB&quot;&lt;/span&gt;
  3079. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ...
  3080. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;    ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enabled&quot;&lt;/span&gt;
  3081. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The final udev rule is the following. It also disables wakeup events from the keyboard as a side effect, but opening the lid or pressing the power button can still wake up the system so it works for me.&lt;/p&gt;
  3082. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;PNP0C0E:00&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;acpi&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;button&quot;&lt;/span&gt;, ATTRS&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;path&lt;span class=&quot;o&quot;&gt;}==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;\_SB_.SLPB&quot;&lt;/span&gt;, ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;disabled&quot;&lt;/span&gt;
  3083. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&quot;in-the-case-of-thinkpad-t14-gen-3-amd&quot;&gt;In the case of ThinkPad T14 Gen 3 AMD&lt;/h2&gt;
  3084. &lt;p&gt;After solving the headache of frequent wakeups for T14 Gen5 AMD. I was curious if I could apply the same to Gen 3 AMD retrospectively. Gen 3 has the following wakeup sources active out of the box.&lt;/p&gt;
  3085. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-fallback&quot; data-lang=&quot;fallback&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; Wakeup sources:
  3086. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Battery [PNP0C0A:00]: enabled
  3087. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Lid Switch [PNP0C0D:00]: enabled
  3088. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Power Button [LNXPWRBN:00]: enabled
  3089. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Power Button [PNP0C0C:00]: enabled
  3090. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ACPI Sleep Button [PNP0C0E:00]: enabled
  3091. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ AT Translated Set 2 keyboard [serio0]: enabled
  3092. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] ISA bridge [0000:00:14.3]: enabled
  3093. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] PCI bridge [0000:00:02.1]: enabled
  3094. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] PCI bridge [0000:00:02.2]: enabled
  3095. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:04:00.3]: enabled
  3096. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:04:00.4]: enabled
  3097. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:05:00.0]: enabled
  3098. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:05:00.3]: enabled
  3099. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Advanced Micro Devices, Inc. [AMD] USB controller [0000:05:00.4]: enabled
  3100. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ ELAN0678:00 04F3:3195 Mouse [i2c-ELAN0678:00]: enabled
  3101. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Mobile Broadband host interface [mhi0]: enabled
  3102. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; │ Plug-n-play Real Time Clock [00:01]: enabled
  3103. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt; └─Real Time Clock alarm timer [rtc0]: enabled
  3104. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Disabling the touchpad event was straightforward. The only difference from Gen 5 was the ID of the device.&lt;/p&gt;
  3105. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0678:00&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c_hid_acpi&quot;&lt;/span&gt;, ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;disabled&quot;&lt;/span&gt;
  3106. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When it comes to the TrackPoint or power source event, nothing was able to stop it from waking up the system even after disabling all wakeup sources. I came across a hidden gem named &lt;code&gt;amd_s2idle.py&lt;/code&gt;. The &lt;a href=&quot;https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;“S0i3/s2idle analysis script for AMD systems”&lt;/a&gt; is full with the domain knowledge of s2idle like where to look in &lt;code&gt;/proc&lt;/code&gt; or &lt;code&gt;/sys&lt;/code&gt; or how to enable debug and what part of the logs is important.&lt;/p&gt;
  3107. &lt;p&gt;By running the script, I got the following output around the unexpected wakeup.&lt;/p&gt;
  3108. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-fallback&quot; data-lang=&quot;fallback&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;$ sudo python3 ./amd_s2idle.py --debug-ec --duration 30
  3109. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Debugging script for s2idle on AMD systems
  3110. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;💻 LENOVO 21CF21CFT1 (ThinkPad T14 Gen 3) running BIOS 1.56 (R23ET80W (1.56 )) released 10/28/2024 and EC 1.32
  3111. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🐧 Ubuntu 24.04.1 LTS
  3112. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🐧 Kernel 6.11.0-12-generic
  3113. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🔋 Battery BAT0 (Sunwoda ) is operating at 90.91% of design
  3114. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Checking prerequisites for s2idle
  3115. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✅ Logs are provided via systemd
  3116. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;✅ AMD Ryzen 7 PRO 6850U with Radeon Graphics (family 19 model 44)
  3117. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;...
  3118. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3119. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Suspending system in 0:00:02
  3120. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Suspending system in 0:00:01
  3121. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3122. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Started at 2025-01-04 00:46:53.063495 (cycle finish expected @ 2025-01-04 00:47:27.063532)
  3123. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Collecting data in 0:00:02
  3124. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Collecting data in 0:00:01
  3125. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3126. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Results from last s2idle cycle
  3127. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;💤 Suspend count: 1
  3128. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;💤 Hardware sleep cycle count: 1
  3129. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;○ GPIOs active: ['0']
  3130. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🥱 Wakeup triggered from IRQ 9: ACPI SCI
  3131. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🥱 Wakeup triggered from IRQ 7: GPIO Controller
  3132. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🥱 Woke up from IRQ 7: GPIO Controller
  3133. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;❌ Userspace suspended for 0:00:14.031448 (&amp;lt; minimum expected 0:00:27)
  3134. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;💤 In a hardware sleep state for 0:00:10.566894 (75.31%)
  3135. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🔋 Battery BAT0 lost 10000 µWh (0.02%) [Average rate 2.57W]
  3136. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;Explanations for your system
  3137. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;🚦 Userspace wasn't asleep at least 0:00:30
  3138. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;        The system was programmed to sleep for 0:00:30, but woke up prematurely.
  3139. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;        This typically happens when the system was woken up from a non-timer based source.
  3140. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;
  3141. &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;        If you didn't intentionally wake it up, then there may be a kernel or firmware bug
  3142. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I compared all the logs generated between the events of power button, power source, TrackPoint, and touchpad. But except for the touchpad event, everything else was coming from GPIO pin #0 and there was no more information of how to distinguish those wakeup triggers. I ended up with a drastic approach of ignoring wakeup triggers from the GPIO pin #0 completely with the following kernel option.&lt;/p&gt;
  3143. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;gpiolib_acpi.ignore_wake&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;AMDI0030:00@0
  3144. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And I get the line on each boot.&lt;/p&gt;
  3145. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;kernel: amd_gpio AMDI0030:00: Ignoring wakeup on pin &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;
  3146. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That comes with obvious downsides. The system doesn’t wake up frequently any longer, that is good. However, nothing can wake it up after getting into suspend. Opening the lid, pressing the power button or any key is simply ignored since all are going to GPIO pin #0. In the end, I had to enable the touchpad back as a wakeup source explicitly so the system can wakeup by tapping the touchpad. It’s far from ideal, but the touchpad is less sensitive than the TrackPoint so I will keep it that way.&lt;/p&gt;
  3147. &lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;chroma&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;line&quot;&gt;&lt;span class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;KERNEL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c-ELAN0678:00&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;SUBSYSTEM&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c&quot;&lt;/span&gt;, &lt;span class=&quot;nv&quot;&gt;DRIVERS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;i2c_hid_acpi&quot;&lt;/span&gt;, ATTR&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;power/wakeup&lt;span class=&quot;o&quot;&gt;}=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enabled&quot;&lt;/span&gt;
  3148. &lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I guess the limitation is coming from a firmware more or less, but at the same time I don’t expect fixes for the few year old model.&lt;/p&gt;
  3149. &lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;
  3150. &lt;ul&gt;
  3151. &lt;li&gt;&lt;a href=&quot;https://gitlab.freedesktop.org/drm/amd/-/blob/master/scripts/amd_s2idle.py&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;scripts/amd_s2idle.py · master · drm / amd · GitLab&lt;/a&gt;&lt;/li&gt;
  3152. &lt;li&gt;&lt;a href=&quot;https://gitlab.freedesktop.org/drm/amd/-/issues/2405&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Cannot disable wakeup sources on Yellow Carp / Rembrandt 6850U w/ kernels 6.0 and 6.1 (#2405) · Issues · drm / amd · GitLab&lt;/a&gt;&lt;/li&gt;
  3153. &lt;li&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/v6.11/drivers/gpio/gpiolib-acpi.c#L31-L41&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;ignore_wake, ignore_interrupt linux/drivers/gpio/gpiolib-acpi.c at v6.11 · torvalds/linux&lt;/a&gt;&lt;/li&gt;
  3154. &lt;li&gt;&lt;a href=&quot;https://github.com/torvalds/linux/blob/v6.11/drivers/gpio/gpiolib-acpi.c#L1518-L1700&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;gpiolib_acpi_quirks linux/drivers/gpio/gpiolib-acpi.c at v6.11 · torvalds/linux&lt;/a&gt;&lt;/li&gt;
  3155. &lt;li&gt;&lt;a href=&quot;https://wiki.archlinux.org/title/Lenovo_ThinkPad_T14_%28AMD%29_Gen_3&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Lenovo ThinkPad T14 (AMD) Gen 3 - ArchWiki&lt;/a&gt;&lt;/li&gt;
  3156. &lt;li&gt;&lt;a href=&quot;https://github.com/systemd/systemd/issues/27077&quot; rel=&quot;noopener&quot; target=&quot;_blank&quot;&gt;Introduce concept of suspend/resume with dark screen on wakeup · Issue #27077 · systemd/systemd&lt;/a&gt;&lt;/li&gt;
  3157. &lt;/ul&gt;</description>
  3158. <pubDate>Thu, 09 Jan 2025 14:50:38 +0000</pubDate>
  3159. </item>
  3160. <item>
  3161. <title>Santiago Zarate: Quick howto for systemd-inhibit</title>
  3162. <guid isPermaLink="false">https://foursixnine.io//blog/systemd/linux/hacks/2024/12/31/quickhowtoforsystemdinhibit</guid>
  3163. <link>https://foursixnine.io//blog/systemd/linux/hacks/2024/12/31/quickhowtoforsystemdinhibit.html</link>
  3164. <description>&lt;h1 id=&quot;bit-of-the-why&quot;&gt;Bit of the why&lt;/h1&gt;
  3165. &lt;p&gt;So often I come across the need to avoid my system to block forever, or until a process finishes, I can’t recall how did I came across systemd inhibit, but
  3166. here’s my approach and a bit of motivation&lt;/p&gt;
  3167.  
  3168. &lt;h2 id=&quot;motivation&quot;&gt;Motivation&lt;/h2&gt;
  3169.  
  3170. &lt;p&gt;I noticed that the &lt;a href=&quot;https://ubuntuhandbook.org/index.php/2024/07/setup-media-server-ubuntu/&quot;&gt;Gnome Settings&lt;/a&gt;, come with &lt;a href=&quot;https://gnome.pages.gitlab.gnome.org/rygel/#developer-features&quot;&gt;Rygel&lt;/a&gt;&lt;/p&gt;
  3171.  
  3172. &lt;p&gt;After some fiddling (not much really), it starts directly once I login and I will be using it instead of a fully fledged plex or the like, I just want to stream some videos from time to time from my home pc over my ipad :D using VLC.&lt;/p&gt;
  3173.  
  3174. &lt;h1 id=&quot;the-hack&quot;&gt;The Hack&lt;/h1&gt;
  3175.  
  3176. &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;systemd-inhibit --who=foursixnine --why=&quot;maybe there be dragons&quot; --mode block \
  3177.    bash -c 'while $(systemctl --user is-active -q rygel.service); do sleep 1h; done'
  3178. &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
  3179.  
  3180. &lt;p&gt;One can also use waitpid and more.&lt;/p&gt;
  3181.  
  3182. &lt;p&gt;Thank you for comming to my ted talk.&lt;/p&gt;</description>
  3183. <pubDate>Tue, 31 Dec 2024 00:00:00 +0000</pubDate>
  3184. </item>
  3185. <item>
  3186. <title>Benjamin Mako Hill: Thug Life</title>
  3187. <guid isPermaLink="false">https://mako.cc/copyrighteous/?p=3262</guid>
  3188. <link>https://mako.cc/copyrighteous/thug-life</link>
  3189. <description>&lt;p&gt;My current playlist is this diorama of &lt;a href=&quot;https://luluthepiggy.com/&quot;&gt;Lulu the Piggy&lt;/a&gt; &lt;a href=&quot;https://www.youtube.com/watch?v=5gLoEBbZNis&quot;&gt;channeling Tupac Shakur&lt;/a&gt; in a toy vending machine in the basement of &lt;a href=&quot;https://www.newworldmallny.com/&quot;&gt;New World Mall&lt;/a&gt; in Flushing Chinatown.&lt;/p&gt;
  3190.  
  3191.  
  3192.  
  3193. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://mako.cc/copyrighteous/wp-content/uploads/2024/12/lulu_the_piggy_god_judge-20240204_225841670.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-3263&quot; height=&quot;768&quot; src=&quot;https://mako.cc/copyrighteous/wp-content/uploads/2024/12/lulu_the_piggy_god_judge-20240204_225841670-1024x768.jpg&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  3194.  
  3195.  
  3196.  
  3197. &lt;p&gt;&lt;/p&gt;</description>
  3198. <pubDate>Sat, 21 Dec 2024 23:06:02 +0000</pubDate>
  3199. </item>
  3200. <item>
  3201. <title>Benjamin Mako Hill: Being a bread torus</title>
  3202. <guid isPermaLink="false">https://mako.cc/copyrighteous/?p=3256</guid>
  3203. <link>https://mako.cc/copyrighteous/i-am</link>
  3204. <description>&lt;p&gt;A &lt;a href=&quot;https://mika.im/&quot;&gt;concerned nutritional epidemiologist&lt;/a&gt; in Tokyo realizes that if you are what you eat, that means…&lt;/p&gt;
  3205.  
  3206.  
  3207.  
  3208. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://mako.cc/copyrighteous/wp-content/uploads/2024/12/signal-2024-10-04-174020_002.jpeg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-3257&quot; height=&quot;1024&quot; src=&quot;https://mako.cc/copyrighteous/wp-content/uploads/2024/12/signal-2024-10-04-174020_002-768x1024.jpeg&quot; width=&quot;768&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  3209.  
  3210.  
  3211.  
  3212. &lt;p&gt;It’s a similar situation in Seoul, albeit with less oil and more confidence.  &lt;/p&gt;
  3213.  
  3214.  
  3215.  
  3216. &lt;figure class=&quot;wp-block-image size-large&quot;&gt;&lt;a href=&quot;https://mako.cc/copyrighteous/wp-content/uploads/2024/12/signal-2024-10-04-180227_002.jpeg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-3258&quot; height=&quot;1024&quot; src=&quot;https://mako.cc/copyrighteous/wp-content/uploads/2024/12/signal-2024-10-04-180227_002-768x1024.jpeg&quot; width=&quot;768&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
  3217.  
  3218.  
  3219.  
  3220. &lt;p&gt;&lt;/p&gt;</description>
  3221. <pubDate>Thu, 19 Dec 2024 02:49:40 +0000</pubDate>
  3222. </item>
  3223. <item>
  3224. <title>Colin King: C void return gotcha</title>
  3225. <guid isPermaLink="false">tag:blogger.com,1999:blog-1016709139053396535.post-4827028825038777370</guid>
  3226. <link>http://smackerelofopinion.blogspot.com/2024/12/c-void-return-gotcha.html</link>
  3227. <description>&lt;p&gt;Last week I was bitten by a interesting C feature. The following terminate function was expected to exit if okay was zero (false) however it exited when zero was passed to it. The reason is the missing semicolon after the return function.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt; &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5XsE4Yu_I1eR6AWu2lqrFg8fxaCPSapkZB6zAdASbARwqGZuoqE80Eqm97Hm7biYIZ7rjcgJtpwPMUniOKms_bcOqtRVO07JSno8Im1z9y5qgPkQ-I-Zl5Pwe0WerXyHBzevSbEHAu7s9m_YonDxEpwxZ3B47wxnKdsGSaP58iuoc5w7Ef0q5ozMdSAYt/s354/void-return.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;354&quot; data-original-width=&quot;341&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5XsE4Yu_I1eR6AWu2lqrFg8fxaCPSapkZB6zAdASbARwqGZuoqE80Eqm97Hm7biYIZ7rjcgJtpwPMUniOKms_bcOqtRVO07JSno8Im1z9y5qgPkQ-I-Zl5Pwe0WerXyHBzevSbEHAu7s9m_YonDxEpwxZ3B47wxnKdsGSaP58iuoc5w7Ef0q5ozMdSAYt/s320/void-return.png&quot; width=&quot;308&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;The interesting part this that is compiles fine because the void function terminate is allowed to return the void return value, in this case the void return from exit(). &lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt; &lt;br /&gt;&lt;/p&gt;</description>
  3228. <pubDate>Wed, 18 Dec 2024 17:43:56 +0000</pubDate>
  3229. <author>noreply@blogger.com (Colin Ian King)</author>
  3230. </item>
  3231.  
  3232. </channel>
  3233. </rss>
  3234.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//planet.ubuntu.com/rss20.xml

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda