<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on blog.szypowi.cz</title><link>https://blog.szypowi.cz/post/</link><description>Recent content in Posts on blog.szypowi.cz</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Apr 2026 12:00:00 +0200</lastBuildDate><atom:link href="https://blog.szypowi.cz/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Terraform under AzureCLI@2 never sees your cancel</title><link>https://blog.szypowi.cz/p/terraform-under-azurecli@2-never-sees-your-cancel/</link><pubDate>Mon, 20 Apr 2026 12:00:00 +0200</pubDate><guid>https://blog.szypowi.cz/p/terraform-under-azurecli@2-never-sees-your-cancel/</guid><description>&lt;p&gt;If you cancel an Azure DevOps pipeline mid-&lt;code&gt;terraform apply&lt;/code&gt;, or let it hit its &lt;code&gt;timeoutInMinutes&lt;/code&gt;, you probably expect terraform to catch SIGINT, release its state lock, and exit cleanly. Under &lt;code&gt;AzureCLI@2&lt;/code&gt; that does not happen. Terraform is SIGKILLed without ever seeing a signal, and the state lock stays behind.&lt;/p&gt;
&lt;h2 id="what-i-measured"&gt;What I measured&lt;/h2&gt;
&lt;p&gt;The Azure Pipelines agent applies a signal ladder on cancel: SIGINT, wait &lt;code&gt;PROCESS_SIGINT_TIMEOUT&lt;/code&gt; ms (default 7500), SIGTERM, wait &lt;code&gt;PROCESS_SIGTERM_TIMEOUT&lt;/code&gt; ms (default 2500), SIGKILL. Straightforward on paper.&lt;/p&gt;</description></item><item><title>Testing podman &lt; 2.1.x rootless networking</title><link>https://blog.szypowi.cz/p/testing-podman-2.1.x-rootless-networking/</link><pubDate>Thu, 22 Oct 2020 15:09:54 +0100</pubDate><guid>https://blog.szypowi.cz/p/testing-podman-2.1.x-rootless-networking/</guid><description>&lt;p&gt;A quick note on podman 2.1.x rootless networking.&lt;/p&gt;
&lt;h2 id="what-changed"&gt;What changed&lt;/h2&gt;
&lt;p&gt;Until 2.1.0, to let two containers talk to each other directly, you had to put them in the same pod. From 2.1.0 onward you can create a network and attach containers to it, and each gets its own IP address on that network.&lt;/p&gt;
&lt;h2 id="the-test"&gt;The test&lt;/h2&gt;
&lt;p&gt;Run an httpd container, then curl it from another container on the same network.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ podman network create cni-podman0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ podman run --name httpd --network cni-podman0 -dt httpd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ podman inspect httpd &lt;span class="p"&gt;|&lt;/span&gt; grep IPAddress
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;IPAddress&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;IPAddress&amp;#34;&lt;/span&gt;: &lt;span class="s2"&gt;&amp;#34;10.88.2.12&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note the IP, then curl it from a second container on the same network:&lt;/p&gt;</description></item><item><title>Testing and signing kernel for Ubuntu 20.04</title><link>https://blog.szypowi.cz/p/testing-and-signing-kernel-for-ubuntu-20.04/</link><pubDate>Fri, 15 May 2020 10:04:54 +0100</pubDate><guid>https://blog.szypowi.cz/p/testing-and-signing-kernel-for-ubuntu-20.04/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer.&lt;/strong&gt; This is about mainline kernel builds, summarized from the Ubuntu wiki:&lt;/p&gt;
&lt;p&gt;By default, Ubuntu systems run with the Ubuntu kernels provided by the Ubuntu repositories. However it is handy to test unmodified upstream kernels to help locate problems in Ubuntu kernel patches, or to confirm that upstream has fixed a specific issue. These kernels are not supported and are not appropriate for production use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="install-a-mainline-kernel-via-ppa"&gt;Install a mainline kernel via PPA&lt;/h2&gt;
&lt;p&gt;Detailed official instructions: &lt;a href="https://wiki.ubuntu.com/Kernel/MainlineBuilds"&gt;https://wiki.ubuntu.com/Kernel/MainlineBuilds&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Enable Mozilla Firefox and Thunderbird on Wayland in Ubuntu 20.04</title><link>https://blog.szypowi.cz/p/enable-mozilla-firefox-and-thunderbird-on-wayland-in-ubuntu-20.04/</link><pubDate>Fri, 01 May 2020 10:04:54 +0100</pubDate><guid>https://blog.szypowi.cz/p/enable-mozilla-firefox-and-thunderbird-on-wayland-in-ubuntu-20.04/</guid><description>&lt;p&gt;This guide walks through turning on Wayland fractional scaling (FS) on Ubuntu 20.04 and then pointing Firefox and Thunderbird at it natively.&lt;/p&gt;
&lt;h2 id="wayland"&gt;Wayland&lt;/h2&gt;
&lt;p&gt;At the time of writing Ubuntu counted Wayland users as &amp;ldquo;less than 1%&amp;rdquo;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. Feel special.&lt;/p&gt;
&lt;h3 id="enable"&gt;Enable&lt;/h3&gt;
&lt;p&gt;Follow &lt;a href="https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-20-04-desktop"&gt;https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-20-04-desktop&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="test"&gt;Test&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;GUI.&lt;/strong&gt; &lt;code&gt;Settings -&amp;gt; About -&amp;gt; Windowing system&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CLI.&lt;/strong&gt; Check whether your current session is a Wayland one&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Check your session ID&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl show-session &amp;lt;SESSION_ID&amp;gt; -p Type
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# or as a one-liner&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ loginctl show-session &lt;span class="k"&gt;$(&lt;/span&gt;awk &lt;span class="s1"&gt;&amp;#39;/tty/ {print $1}&amp;#39;&lt;/span&gt; &amp;lt;&lt;span class="o"&gt;(&lt;/span&gt;loginctl&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; -p Type &lt;span class="p"&gt;|&lt;/span&gt; awk -F&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For example:&lt;/p&gt;</description></item></channel></rss>