<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Wombelix Post - Fedora</title><link href="https://dominik.wombacher.cc/" rel="alternate"/><link href="/feeds/tag_fedora.atom.xml" rel="self"/><id>https://dominik.wombacher.cc/</id><updated>2025-06-15T00:00:00+02:00</updated><entry><title>Giving up on Pagure - Almost 3 years of trying to keep it alive</title><link href="https://dominik.wombacher.cc/posts/giving-up-on-pagure-almost-3-years-of-trying.html" rel="alternate"/><published>2025-06-15T00:00:00+02:00</published><updated>2025-06-15T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2025-06-15:/posts/giving-up-on-pagure-almost-3-years-of-trying.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2025 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;After almost 3 years of investing countless hours of my free time
in the attempt to keep Pagure alive, I give up. I can't motivate
myself anymore to continue and  ... &lt;a class="read-more" href="/posts/giving-up-on-pagure-almost-3-years-of-trying.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2025 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;After almost 3 years of investing countless hours of my free time
in the attempt to keep Pagure alive, I give up. I can't motivate
myself anymore to continue and I simply don't have the time anymore
between my job, family life and all the other responsibilities people have.&lt;/p&gt;
&lt;p&gt;It all started in January 2023 when I wrote to the pagure-devel
mailing list
&lt;a class="reference external" href="https://lists.fedoraproject.org/archives/list/pagure-devel&amp;#64;lists.pagure.io/thread/XG4JQ7CUQCUKPE4QOZE5UGBJVRQXIRBY/"&gt;&amp;quot;Putting the Band back together - Road to Pagure v6.0&amp;quot;&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20250618080911/https://lists.fedoraproject.org/archives/list/pagure-devel&amp;#64;lists.pagure.io/thread/XG4JQ7CUQCUKPE4QOZE5UGBJVRQXIRBY/"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2025.07.24-215702/https://lists.fedoraproject.org/archives/list/pagure-devel&amp;#64;lists.pagure.io/thread/XG4JQ7CUQCUKPE4QOZE5UGBJVRQXIRBY/"&gt;[2]&lt;/a&gt;).
Pagure had been essentially abandoned since release 5.13.3 in 2021,
with over 600 open issues and 20 pull requests piling up. My attempt
to re-activate a community around it was unheard and failed, there
wasn't much of a user base outside Fedora left already.&lt;/p&gt;
&lt;p&gt;I believed strongly that we needed Pagure as a true Open Source git
forge with a lightweight, extensible and well-designed codebase. So I
tried to bring all Pagure enthusiasts back together, clean up the
backlog, and work toward a major v6.0 release.&lt;/p&gt;
&lt;p&gt;Over the following years, I fixed bugs, updated dependencies, got rid
of some tech debt, addressed three critical CVEs that emerged, worked
on the gitolite backend removal, and so much more I can't even remember anymore...
Eventually I managed to cut a
&lt;a class="reference external" href="https://lists.fedoraproject.org/archives/list/pagure-devel&amp;#64;lists.pagure.io/thread/PEAFLHPOQXJPGVMWWSDUPH4BOKGHXLLY/"&gt;new release in May 2024&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20250618080900/https://lists.fedoraproject.org/archives/list/pagure-devel&amp;#64;lists.pagure.io/thread/PEAFLHPOQXJPGVMWWSDUPH4BOKGHXLLY/"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2025.07.24-215910/https://lists.fedoraproject.org/archives/list/pagure-devel&amp;#64;lists.pagure.io/thread/PEAFLHPOQXJPGVMWWSDUPH4BOKGHXLLY/"&gt;[2]&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The work was sometimes really fun and educational. Going deep down the
rabbit hole to troubleshoot and fix problems, learning how everything
fit together, reverse engineering how things were implemented back
then. But it also became extremely frustrating at some point and the
opposite of fun and enjoyable.&lt;/p&gt;
&lt;p&gt;The harsh truth is that Pagure's codebase is years old and honestly,
even though I've tried, it is basically all duct tape and chicken
wire after years of accumulated technical debt. Being most of the time on my own,
I started to question why I'm doing all this.&lt;/p&gt;
&lt;p&gt;With the Fedora project investing since years in moving away from
Pagure instead of supporting it, the writing was on the wall. The
&lt;a class="reference external" href="https://communityblog.fedoraproject.org/2024-git-forge-evaluation/"&gt;git forge evaluation in April 2024&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20250612165209/https://communityblog.fedoraproject.org/2024-git-forge-evaluation/"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2025.02.18-215148/https://communityblog.fedoraproject.org/2024-git-forge-evaluation/"&gt;[2]&lt;/a&gt;)
made it clear that Pagure was no longer considered viable for Fedora's
future. The decision came in
&lt;a class="reference external" href="https://communityblog.fedoraproject.org/fedora-chooses-forgejo/"&gt;December 2024 when Fedora chose Forgejo&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20241225090747/https://communityblog.fedoraproject.org/fedora-chooses-forgejo/"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2025.02.18-213057/https://communityblog.fedoraproject.org/fedora-chooses-forgejo/"&gt;[2]&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Since
&lt;a class="reference external" href="https://lists.fedoraproject.org/archives/list/devel-announce&amp;#64;lists.fedoraproject.org/message/DFKSOLS365SZIYN57QFNQMNXXPNUTZAJ/"&gt;May 2025&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20250612163448/https://lists.fedoraproject.org/archives/list/devel-announce&amp;#64;lists.fedoraproject.org/message/DFKSOLS365SZIYN57QFNQMNXXPNUTZAJ/"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2025.07.24-220419/https://lists.fedoraproject.org/archives/list/devel-announce&amp;#64;lists.fedoraproject.org/message/DFKSOLS365SZIYN57QFNQMNXXPNUTZAJ/"&gt;[2]&lt;/a&gt;),
even the creation of new projects on pagure.io is disabled and it is
just in keep the lights on mode without any future.&lt;/p&gt;
&lt;p&gt;With Fedora's clear direction toward Forgejo and the platform
essentially in maintenance-only mode, I just couldn't motivate myself
anymore. The combination of a legacy codebase, lack of community
engagement, Fedora's move away from the platform, the enormous time
investment required, and three critical security vulnerabilities in
the past year made it clear that continuing would be unproductive.&lt;/p&gt;
&lt;p&gt;Despite all the frustrations, I don't regret the journey. It was
sometimes educational and I learned a lot about maintaining legacy
open source projects and the importance of community. I'm grateful for
the experience and the few community members who did engage and
support the effort.&lt;/p&gt;
&lt;p&gt;Sometimes projects have their time, and that time comes to an end.
I guess the future of git forges lies with more modern solutions
like Forgejo.&lt;/p&gt;
&lt;p&gt;Thank you to everyone who supported Pagure over the years. It was a
good run, but all good things must come to an end.&lt;/p&gt;
&lt;p&gt;I'm curious what Open Source project is going to draw my attention next.&lt;/p&gt;
</content><category term="Code"/><category term="Pagure"/><category term="OpenSource"/><category term="Fedora"/></entry><entry><title>Fedora / EPEL updates for aws-c-io and aws-c-http, new package aws-c-s3</title><link href="https://dominik.wombacher.cc/posts/fedora-epel-updates-for-aws-c-io-and-aws-c-http-new-package-aws-c-s3.html" rel="alternate"/><published>2024-12-30T00:00:00+01:00</published><updated>2024-12-30T00:00:00+01:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-12-30:/posts/fedora-epel-updates-for-aws-c-io-and-aws-c-http-new-package-aws-c-s3.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;As mentioned in my &lt;a class="reference external" href="https://dominik.wombacher.cc/posts/fedora-and-epel-updates-of-various-aws-c-lib-packages.html"&gt;last Fedora / EPEL packaging post&lt;/a&gt;,
updats for &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-io"&gt;aws-c-io&lt;/a&gt; and
&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-http"&gt;aws-c-http&lt;/a&gt; are coming.
They now arrived in &lt;code&gt;Rawhide&lt;/code&gt; and all Stable Fedora branches as well as EPEL8  ... &lt;a class="read-more" href="/posts/fedora-epel-updates-for-aws-c-io-and-aws-c-http-new-package-aws-c-s3.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;As mentioned in my &lt;a class="reference external" href="https://dominik.wombacher.cc/posts/fedora-and-epel-updates-of-various-aws-c-lib-packages.html"&gt;last Fedora / EPEL packaging post&lt;/a&gt;,
updats for &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-io"&gt;aws-c-io&lt;/a&gt; and
&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-http"&gt;aws-c-http&lt;/a&gt; are coming.
They now arrived in &lt;code&gt;Rawhide&lt;/code&gt; and all Stable Fedora branches as well as EPEL8 and EPEL9.&lt;/p&gt;
&lt;p&gt;Since today, the new package &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-s3"&gt;aws-c-s3&lt;/a&gt; is available in Fedora and EPEL too.&lt;/p&gt;
&lt;p&gt;I plan to package &lt;code&gt;aws-c-iot&lt;/code&gt;, &lt;code&gt;aws-crt-ffi&lt;/code&gt; and &lt;code&gt;aws-lc&lt;/code&gt; for Fedora and EPEL in the next couple of months.&lt;/p&gt;
&lt;p&gt;In addition, I will build all current EPEL9 packages I maintain soon for EPEL10 as well, stay tuned.&lt;/p&gt;
</content><category term="Linux"/><category term="AWS"/><category term="Fedora"/><category term="EPEL"/><category term="Packages"/><category term="Packaging"/></entry><entry><title>Fedora and EPEL updates for various AWS C lib packages</title><link href="https://dominik.wombacher.cc/posts/fedora-and-epel-updates-of-various-aws-c-lib-packages.html" rel="alternate"/><published>2024-11-25T00:00:00+01:00</published><updated>2024-11-25T00:00:00+01:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-11-25:/posts/fedora-and-epel-updates-of-various-aws-c-lib-packages.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Among the &lt;a class="reference external" href="https://src.fedoraproject.org/user/wombelix/projects"&gt;Fedora and EPEL packages I maintain&lt;/a&gt;
are 11 AWS C lib packages. I wrote some time ago
&lt;a class="reference external" href="https://dominik.wombacher.cc/posts/aws-c-libraries-the-unknown-heroes-behind-aws-tools-and-the-adventure-to-package-them.html"&gt;about there function and challenge to package them&lt;/a&gt;.
Today 9 of  ... &lt;a class="read-more" href="/posts/fedora-and-epel-updates-of-various-aws-c-lib-packages.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Among the &lt;a class="reference external" href="https://src.fedoraproject.org/user/wombelix/projects"&gt;Fedora and EPEL packages I maintain&lt;/a&gt;
are 11 AWS C lib packages. I wrote some time ago
&lt;a class="reference external" href="https://dominik.wombacher.cc/posts/aws-c-libraries-the-unknown-heroes-behind-aws-tools-and-the-adventure-to-package-them.html"&gt;about there function and challenge to package them&lt;/a&gt;.
Today 9 of those packages received updates to the latest available release. 2 are pending because of dependencies,
but I should get them through the door within the next 2-3 weeks as well.&lt;/p&gt;
&lt;p&gt;The majority went smoothly, no breaking changes, minor bug fixes, sometimes a patch that had to be updated.
But &lt;code&gt;aws-c-cal&lt;/code&gt; required a bit more work. Whenever tests are available, I run them as part of the package build.
And they started to fail when I wanted to update the package:&lt;/p&gt;
&lt;pre class="code text literal-block"&gt;
98% tests passed, 3 tests failed out of 137
Total Test time (real) =   3.58 sec
The following tests FAILED:
    66 - rsa_signing_roundtrip_pkcs1_sha1_from_user (Failed)
    71 - rsa_verify_signing_pkcs1_sha1 (Failed)
    77 - rsa_signing_mismatch_pkcs1_sha1 (Failed)
Errors while running CTest

&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;sha1&lt;/code&gt; in the test name lead me pretty fast to the problem.
In version &lt;code&gt;0.8.1&lt;/code&gt; there was some &lt;code&gt;SHA1&lt;/code&gt; related code and tests added:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/awslabs/aws-c-cal/releases/tag/v0.8.1"&gt;https://github.com/awslabs/aws-c-cal/releases/tag/v0.8.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://github.com/awslabs/aws-c-cal/pull/201"&gt;https://github.com/awslabs/aws-c-cal/pull/201&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I can only assume it's for backward compatibility reasons. The thing is, SHA1 is distrusted in
&lt;a class="reference external" href="https://fedoraproject.org/wiki/Changes/OpenSSLDistrustSHA1SigVer"&gt;Fedora 41&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20240928212848/https://fedoraproject.org/wiki/Changes/OpenSSLDistrustSHA1SigVer"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2024.11.25-154256/https://fedoraproject.org/wiki/Changes/OpenSSLDistrustSHA1SigVer"&gt;[2]&lt;/a&gt;)
and &lt;a class="reference external" href="https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9"&gt;RHEL 9&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20240717125913/https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2024.07.17-125916/https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9"&gt;[2]&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The code provides additional functionality and will not be called on systems that don't use &lt;code&gt;SHA1&lt;/code&gt; anymore.
So the fastest way forward was to patch out the three failing tests and call it a day.&lt;/p&gt;
&lt;pre class="code diff literal-block"&gt;
&lt;span class="pygments-gh"&gt;diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gh"&gt;index 346e38a..e3966cb 100644&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gd"&gt;--- a/tests/CMakeLists.txt&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gi"&gt;+++ b/tests/CMakeLists.txt&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gu"&gt;&amp;#64;&amp;#64; -77,18 +77,15 &amp;#64;&amp;#64; add_test_case(rsa_encryption_roundtrip_oaep_sha256_from_user)&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_encryption_roundtrip_oaep_sha512_from_user)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_signing_roundtrip_pkcs1_sha256_from_user)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_signing_roundtrip_pss_sha256_from_user)&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gd"&gt;-add_test_case(rsa_signing_roundtrip_pkcs1_sha1_from_user)&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_getters)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_private_pkcs1_der_parsing)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_public_pkcs1_der_parsing)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_verify_signing_pkcs1_sha256)&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gd"&gt;-add_test_case(rsa_verify_signing_pkcs1_sha1)&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_verify_signing_pss_sha256)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_decrypt_pkcs1)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_decrypt_oaep256)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_decrypt_oaep512)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(rsa_signing_mismatch_pkcs1_sha256)&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-gd"&gt;-add_test_case(rsa_signing_mismatch_pkcs1_sha1)&lt;/span&gt;&lt;span class="pygments-w"&gt;

&lt;/span&gt;add_test_case(aes_cbc_NIST_CBCGFSbox256_case_1)&lt;span class="pygments-w"&gt;
&lt;/span&gt;add_test_case(aes_cbc_NIST_CBCVarKey256_case_254)&lt;span class="pygments-w"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;An Overview of all updates today, available in &lt;code&gt;Rawhide&lt;/code&gt; (F42) latest tomorrow.
Around one week till they arrive in all stable Fedora and EPEL branches.&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;aws-c-cal, &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-cal/pull-request/13"&gt;0.7.4 to 0.8.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-c-mqtt, &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-mqtt/pull-request/1"&gt;0.10.6 to 0.11.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-checksums, &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-checksums/pull-request/2"&gt;0.1.20 to 0.2.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-c-auth, &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-auth/pull-request/1"&gt;0.7.31 to 0.8.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;s2n-tls, &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/s2n-tls/pull-request/6"&gt;1.5.3 to 1.5.9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-c-sdkutils &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-sdkutils/pull-request/3"&gt;0.1.19 to 0.2.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-c-event-stream &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-event-stream/pull-request/2"&gt;0.4.3 to 0.5.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-c-compression &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-compression/pull-request/2"&gt;0.2.19 to 0.3.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;aws-c-common &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-common/pull-request/14"&gt;0.9.28 to 0.10.3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pending are the updates for &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-io/pull-request/6"&gt;aws-c-io&lt;/a&gt; and
&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-http/pull-request/3"&gt;aws-c-http&lt;/a&gt;. For &lt;code&gt;Rawhide&lt;/code&gt; that's
a matter of a couple days. Stable Fedora and EPEL branches going to take a bit longer, probably 2-3 weeks.&lt;/p&gt;
</content><category term="Linux"/><category term="AWS"/><category term="Fedora"/><category term="EPEL"/><category term="Packages"/><category term="Packaging"/></entry><entry><title>AWS C libraries, the unknown heroes behind AWS tools and the adventure to package them</title><link href="https://dominik.wombacher.cc/posts/aws-c-libraries-the-unknown-heroes-behind-aws-tools-and-the-adventure-to-package-them.html" rel="alternate"/><published>2024-07-10T00:00:00+02:00</published><updated>2024-07-10T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-07-10:/posts/aws-c-libraries-the-unknown-heroes-behind-aws-tools-and-the-adventure-to-package-them.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;It all started with an orphaned Fedora package called &lt;strong&gt;aws-php-sdk3&lt;/strong&gt;. I was interested to adopt
and update it. I learned quickly that I have to take a look in the  ... &lt;a class="read-more" href="/posts/aws-c-libraries-the-unknown-heroes-behind-aws-tools-and-the-adventure-to-package-them.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;It all started with an orphaned Fedora package called &lt;strong&gt;aws-php-sdk3&lt;/strong&gt;. I was interested to adopt
and update it. I learned quickly that I have to take a look in the different dependencies too.
I opened a can of worms, there were a few obvious dependencies and then some more hidden.&lt;/p&gt;
&lt;p&gt;Like &lt;strong&gt;aws-php-crt&lt;/strong&gt;, which isn't packaged for Fedora yet and upstream builds it in a way
that it bundles a couple of AWS C libraries. As I learned in the meantime, bundling
libraries or modules has to be avoided whenever possible based on the Fedora and EPEL
packaging guidelines. You might get an exception but you need a good reason for it.&lt;/p&gt;
&lt;p&gt;So I dig deeper and learned that there were some activities two years ago but
except one of them, nothing went through and made it into Fedora.
I spend a couple of days to understand what dependencies each library has.
In which order do I need to build and package them to make them work.
What was the state two years ago, what can be re-used.&lt;/p&gt;
&lt;p&gt;After this exercise I had a full plan written down and started to create the packages
in a &lt;a class="reference external" href="https://copr.fedorainfracloud.org/coprs/wombelix/aws-c-libs/"&gt;copr project&lt;/a&gt;.
That way I can satisfy the dependencies during development.
Even if the packages are not in Fedora yet.&lt;/p&gt;
&lt;p&gt;I learned that architecture &lt;em&gt;s390x&lt;/em&gt;
&lt;a class="reference external" href="https://github.com/awslabs/aws-c-common/issues/1111"&gt;isn't supported by upstream&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20240717124939/https://github.com/awslabs/aws-c-common/issues/1111"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2024.07.17-125012/https://github.com/awslabs/aws-c-common/issues/1111"&gt;[2]&lt;/a&gt;)
and there is also no plan to change that. So this means every package needs an Arch Exception.
In addition to that some packages had unit tests that require an internet connection.
That's not given when Fedora packages are build, so I had to create patches so disable
this kind of tests. Even if this means that the test coverage drops slightly.
It's still better to run the majority of tests during package build to discover issues,
instead of deactivating all of them.&lt;/p&gt;
&lt;p&gt;With &lt;strong&gt;s2n-tls&lt;/strong&gt; I hit an interesting problem that the tests were failing only on RHEL 9.
Building on different Fedora versions and RHEL 8 was working without a problem.
&lt;a class="reference external" href="https://github.com/aws/s2n-tls/issues/4541"&gt;I reported the bug upstream&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20240717125409/https://github.com/aws/s2n-tls/issues/4541"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2024.07.17-125410/https://github.com/aws/s2n-tls/issues/4541"&gt;[2]&lt;/a&gt;)
and was at first unsure what makes RHEL 9 unique and causes the problems.
After a bit of thinking and some feedback from the maintainers,
I remembered that
&lt;a class="reference external" href="https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9"&gt;Red Hat announced a while back to deprecate SHA1 in their openSSL package&lt;/a&gt;
(Archive: &lt;a class="reference external" href="https://web.archive.org/web/20240717125913/https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9"&gt;[1]&lt;/a&gt;,
&lt;a class="reference external" href="https://archive.today/2024.07.17-125916/https://www.redhat.com/en/blog/rhel-security-sha-1-package-signatures-distrusted-rhel-9"&gt;[2]&lt;/a&gt;).
So I did some research and came pretty close but couldn't track
it down in the s2n-tls source. A maintainer provided a patch to verify my assumption.
And indeed, the problem is that they use SHA1 certs in the unit tests. I have to
admit it made me proud to help to identify this problem. I think they going to
provide a fix in an upcoming release and then I can continue to package it for EPEL 9 :)&lt;/p&gt;
&lt;p&gt;Right now I'm at roughtly 1/3, I packaged:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-common"&gt;aws-c-common&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-cal"&gt;aws-c-cal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-sdkutils"&gt;aws-c-sdkutils&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-c-compression"&gt;aws-c-compression&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/aws-checksums"&gt;aws-checksums&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://src.fedoraproject.org/rpms/s2n-tls"&gt;s2n-tls&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;and they are at least available in Fedora &lt;em&gt;rawhide&lt;/em&gt;.
Most of them are already in all stable Fedora and EPEL branches.&lt;/p&gt;
&lt;p&gt;Publishing happens with some delay because a new package needs ~7-8 days to make it
into the stable repository. Which means, you start with one package were all other depend on.
You go through the package review process, submit it, wait for a week.
If you have other packages ready now. You do the same, you submit and wait.
And so on and so on. Which means it takes overall around two to three months,
depending on how fast the package reviews went through, till all AWS C libs are available.&lt;/p&gt;
&lt;p&gt;Yes, there is the concept of &lt;a class="reference external" href="https://fedoraproject.org/wiki/Bodhi#Karma"&gt;Karma&lt;/a&gt;,
but let's assume you not always find people that can invest the time.
So the above assumption is based on the &amp;quot;worst case&amp;quot;.&lt;/p&gt;
&lt;p&gt;As you see, I was dragged away from my initial goal, packaging and keeping &lt;strong&gt;aws-php-sdk3&lt;/strong&gt; alive,
into a massive amount of groundwork. But as soon all AWS C libs are packaged and available,
it opens the door for a lot of other AWS tools to be properly packaged without bundled libraries.&lt;/p&gt;
&lt;p&gt;I'm really looking forward to that!&lt;/p&gt;
</content><category term="Linux"/><category term="AWS"/><category term="Fedora"/><category term="EPEL"/><category term="Packages"/><category term="Packaging"/></entry><entry><title>Becoming a Fedora Packager</title><link href="https://dominik.wombacher.cc/posts/becoming-a-fedora-packager.html" rel="alternate"/><published>2024-05-31T00:00:00+02:00</published><updated>2024-05-31T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-05-31:/posts/becoming-a-fedora-packager.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;I recently decided to finally become an active package maintainer.
Quickly I had to realize that there are different ways to become a Fedora Packager.
All have in common that  ... &lt;a class="read-more" href="/posts/becoming-a-fedora-packager.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;I recently decided to finally become an active package maintainer.
Quickly I had to realize that there are different ways to become a Fedora Packager.
All have in common that, what a surprise, you maintain or co-maintain a package.&lt;/p&gt;
&lt;p&gt;But, from all options, the most &amp;quot;classic&amp;quot; way seem to:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Create a package&lt;/li&gt;
&lt;li&gt;Submit a Review Request&lt;/li&gt;
&lt;li&gt;When it's approved ask for a Sponsor&lt;/li&gt;
&lt;li&gt;Get sponsored into the packager group&lt;/li&gt;
&lt;li&gt;Publish your first package&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Fedora project has tons of documentation.
I found it on the one hand great as a greenhorn to find all these information.
And at the same time it was overwhelming and sometimes unclear which is current.&lt;/p&gt;
&lt;p&gt;So I put together a short list with resources that helped me most.
They are not necessary in a logical order.
They will also not cover each and every question you might have.
But you can use them as a starting point.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/package-maintainers/New_Package_Process_for_New_Contributors/"&gt;New Package Process for New Contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/package-maintainers/Installing_Packager_Tools/"&gt;Installing Packager Tools&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/package-maintainers/Packaging_Tutorial_2_GNU_Hello/"&gt;Packaging Tutorial 2: GNU Hello&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/package-maintainers/Joining_the_Package_Maintainers/"&gt;Joining the Package Maintainers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/package-maintainers/Package_Maintenance_Guide/#using_fedpkg_anonymously"&gt;Package Maintainers &amp;gt; Package Maintenance Guide &amp;gt; Using fedpkg anonymously&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/packaging-guidelines/RPMMacros/"&gt;Packaging Guidelines &amp;gt; RPM Macros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/packaging-guidelines/"&gt;Fedora Packaging Guidelines&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/#_dynamic_allocation"&gt;Packaging Guidelines &amp;gt; Users and Groups &amp;gt; Dynamic allocation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;What if you still have question?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Don't be shy, write to the &lt;a class="reference external" href="https://lists.fedoraproject.org/archives/list/devel&amp;#64;lists.fedoraproject.org/"&gt;devel mailing list&lt;/a&gt; and or join the &lt;a class="reference external" href="https://matrix.to/#/#devel:fedoraproject.org"&gt;Fedora Devel Matrix room&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;After many many years in the industry, a lot of touch points
and contributions to open source projects, I finally made the jump
to become a package maintainer.&lt;/p&gt;
&lt;p&gt;I learned so much in the last month and went from zero to ~15 Fedora and EPEL packages
I became responsible for. This feels like a great success and a valuable way to give
something back to the community.&lt;/p&gt;
</content><category term="Linux"/><category term="Fedora"/><category term="Packaging"/><category term="Packager"/></entry><entry><title>My first approved Fedora Package, yippie! ec2-instance-connect</title><link href="https://dominik.wombacher.cc/posts/my-first-approved-fedora-package-yippie-ec2-instance-connect.html" rel="alternate"/><published>2024-05-19T00:00:00+02:00</published><updated>2024-05-19T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-05-19:/posts/my-first-approved-fedora-package-yippie-ec2-instance-connect.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;A while ago I was asked if I want to package &lt;strong&gt;ec2-instance-connect&lt;/strong&gt; for Fedora and eventually EPEL.
More specific &lt;em&gt;"with Packit"&lt;/em&gt;, which did send me down a weird path as  ... &lt;a class="read-more" href="/posts/my-first-approved-fedora-package-yippie-ec2-instance-connect.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;A while ago I was asked if I want to package &lt;strong&gt;ec2-instance-connect&lt;/strong&gt; for Fedora and eventually EPEL.
More specific &lt;em&gt;&amp;quot;with Packit&amp;quot;&lt;/em&gt;, which did send me down a weird path as I explain
in more detail in &lt;cite&gt;Fedoda dist-git packit onboarding &amp;lt;{filename}/posts/2024/fedora-dist-git-packit-onboarding_en.rst&amp;gt;&lt;/cite&gt;.
After learning what Packit can and can't do for me, I started to make good progress ;)&lt;/p&gt;
&lt;p&gt;I spend quite some time to learn about Fedora Packaging. The does and don't when
writing spec files. How package testing, reviewing and publishing works.
More about this in a later Blog, now I focus on my first approved package.&lt;/p&gt;
&lt;p&gt;I was lucky that my Reviewer was Neal Gompa. People describe Neal with &lt;em&gt;&amp;quot;he is just everywhere&amp;quot;&lt;/em&gt;.
And that's true in the most positive way. It's nearly impossible to be active in
the open source world without crossing paths :) He has a lot of experience and is a great mentor.
Receiving feedback from him is always a great opportunity to learn.&lt;/p&gt;
&lt;p&gt;First I thought &lt;a class="reference external" href="https://github.com/aws/aws-ec2-instance-connect-config"&gt;ec2-instance-connect&lt;/a&gt;
will be an easy package, great for the first one. Technically it's just a handful of
files and a systemd unit. How hard can that be? Spoiler: Very hard.&lt;/p&gt;
&lt;p&gt;The challenge is the way how ec2-instance-connect works.
It adjusts the authcommand from sshd so that, by default, all authentication attempts go through it.
This is fine for brand new systems but becomes a problem when you deploy
on existing systems with a already customized config. Or if someone wants to apply
a custom config after the initial deployment and ec2-instance-connect installation.&lt;/p&gt;
&lt;p&gt;So there are a lot of ways to break ssh login to the system which is discussed on
&lt;a class="reference external" href="https://github.com/aws/aws-ec2-instance-connect-config/issues/19"&gt;GitHub&lt;/a&gt;.
But keeping this fact aside, there is obviously demand for a
&lt;a class="reference external" href="https://github.com/aws/aws-ec2-instance-connect-config/issues/49"&gt;Fedora and EPEL package&lt;/a&gt;.
So I was encouraged to improve the user experience and make it available :)&lt;/p&gt;
&lt;p&gt;Upstream has a &lt;a class="reference external" href="https://github.com/aws/aws-ec2-instance-connect-config/blob/master/rpmsrc/SPECS/generic.spec"&gt;generic spec file&lt;/a&gt;
so this became my starting point. But I had to learn quickly that shell snippets
and nested if/else statements are not what is expected from a high quality spec
file in Fedora. So I had to find a way to replace the pretty unique logic that
was implemented with rpm macros and in a way that aligns with Fedora packaging
guidelines. The result is a good compromise, not perfect but it gives users
flexibility and reduces the risk of problems.&lt;/p&gt;
&lt;p&gt;So after a couple iterations and very valuable feedback from Neal, he approved
my request and I was good to bring my first package into Fedora :)
If you are interested in the details, feel free to take a look at
the &lt;a class="reference external" href="https://bugzilla.redhat.com/show_bug.cgi?id=2274150"&gt;Fedora Review Request&lt;/a&gt; ticket.&lt;/p&gt;
&lt;p&gt;In the meantime the package is available in all Fedora and EPEL repositories. It
is also on it's way to be pre-installed in Fedora Cloud images in future :D&lt;/p&gt;
&lt;p&gt;It was an awesome experience and I can't wait to work on more packages!&lt;/p&gt;
</content><category term="Linux"/><category term="AWS"/><category term="Fedora"/><category term="EPEL"/><category term="Packages"/><category term="Packaging"/></entry><entry><title>Fedora dist-git Packit onboarding</title><link href="https://dominik.wombacher.cc/posts/fedora-dist-git-packit-onboarding.html" rel="alternate"/><published>2024-05-05T00:00:00+02:00</published><updated>2024-05-05T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-05-05:/posts/fedora-dist-git-packit-onboarding.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Packit, oh my god, that's a tool and service that gave
me a pretty hard time to understand how it works.
Not necessarily because it's a complicated tool.
But it  ... &lt;a class="read-more" href="/posts/fedora-dist-git-packit-onboarding.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Packit, oh my god, that's a tool and service that gave
me a pretty hard time to understand how it works.
Not necessarily because it's a complicated tool.
But it expects a good portion of background knowledge how
things work in Fedora and the specific wording.
If you are new and make your first steps, it becomes
very challenging and frustrating to get started.&lt;/p&gt;
&lt;p&gt;So first, what's &lt;a class="reference external" href="https://packit.dev"&gt;Packit&lt;/a&gt;?
Very simplified: Packit get triggered
when a new version of a software is released. It can then trigger
package builds. Or create PRs in Fedora packages to update them.
The main goal is to reduce the work maintainer have to keep Fedora
packages up to date.&lt;/p&gt;
&lt;p&gt;My first false assumption was that Packit always requires
to have a configuration in the repository of the upstream project.
Another mistake was that Packit will help me to test and build packages
during development.
You can probably imagine that those two misunderstandings lead to a
good portion of confusion and wasted time.&lt;/p&gt;
&lt;p&gt;So how to benefit from Packit if you don't control the upstream project
and they are not interested to onboard their repository to the Packit Service?
Fedora runs &lt;a class="reference external" href="https://www.release-monitoring.org"&gt;Release Monitoring&lt;/a&gt;
a service that checks for new releases in configured projects on a regular basis.
If there is one, it will publish a message into Fedora Messaging. A RabbitMQ based
messaging service that allows other services to react on events. Packit will pick up
such an event and check if there is a packit configuration file in the &lt;a class="reference external" href="https://src.fedoraproject.org"&gt;dist-git&lt;/a&gt;
package repo. If that's the case, Packit will execute the configured actions.&lt;/p&gt;
&lt;p&gt;So for example, Packit creates a PR in the package repo.
The PR bumps the package version and adds a changelog entry.
Package maintainer can add additional changes
to the PR if necessary and upload the new source file into the &lt;a class="reference external" href="https://fedoraproject.org/wiki/Package_Source_Control#Lookaside_Cache"&gt;lookaside cache&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then your job boils down to merge the PR into the rawhide branch.
If correctly configured, Packit will pick up this event,
remember everything in the Fedora world becomes an event in the Fedora Messaging bus,
and trigger the build. If that build is successful the update is triggered
and the package becomes available in rawhide.
Next, if you have other branches you want to make the package available,
you merge it and then again Packit picks up the event, starts a build and the update.&lt;/p&gt;
&lt;p&gt;This is a massive time saver already, even if you still have a couple of steps to do.
That's the workflow I prefer, but you can of course adjust it and
let Packit do even more in an automated way. The decision is up to you :)&lt;/p&gt;
&lt;p&gt;What I explained here is just one part of what Packit can do. I encourage you to
explore the project and &lt;a class="reference external" href="https://packit.dev/docs"&gt;documentation&lt;/a&gt; to dive deeper.&lt;/p&gt;
&lt;p&gt;For me it was a massive &amp;quot;AHA&amp;quot; moment when I had my first Packit config working and saw the magic happen :)&lt;/p&gt;
&lt;p&gt;Following the &lt;code&gt;.packit.yaml&lt;/code&gt; file I prepared for the first Fedora package I'm going to release:&lt;/p&gt;
&lt;pre class="code yaml literal-block"&gt;
&lt;span class="pygments-c1"&gt;# See the documentation for more information:&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-c1"&gt;# https://packit.dev/docs/configuration/&lt;/span&gt;&lt;span class="pygments-w"&gt;

&lt;/span&gt;&lt;span class="pygments-nt"&gt;upstream_project_url&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;https://github.com/aws/aws-ec2-instance-connect-config&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-nt"&gt;upstream_package_name&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;aws-ec2-instance-connect-config&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-nt"&gt;downstream_package_name&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;ec2-instance-connect&lt;/span&gt;&lt;span class="pygments-w"&gt;

&lt;/span&gt;&lt;span class="pygments-nt"&gt;jobs&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-nt"&gt;job&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;pull_from_upstream&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;trigger&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;release&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;# Keeping dist-git branches non-divergent&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;# Requirs manual local merge from rawhide to stable release branches&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;# https://packit.dev/docs/fedora-releases-guide#keeping-dist-git-branches-non-divergent&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;dist_git_branches&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;fedora-rawhide&lt;/span&gt;&lt;span class="pygments-w"&gt;

&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-nt"&gt;job&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;koji_build&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;trigger&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;commit&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;allowed_pr_authors&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;packit&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;all_admins&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;all_committers&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-s"&gt;'&amp;#64;cloud-sig'&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-c1"&gt;# string with &amp;#64; needs quotes to be valid yaml&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-nt"&gt;allowed_committers&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;all_admins&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;all_committers&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-s"&gt;'&amp;#64;cloud-sig'&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-c1"&gt;# string with &amp;#64; needs quotes to be valid yaml&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-nt"&gt;dist_git_branches&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;fedora-all&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;epel-all&lt;/span&gt;&lt;span class="pygments-w"&gt;

&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-nt"&gt;job&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;bodhi_update&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;trigger&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;commit&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;allowed_builders&lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;packit&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;all_admins&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;all_committers&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-s"&gt;'&amp;#64;cloud-sig'&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-c1"&gt;# string with &amp;#64; needs quotes to be valid yaml&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-nt"&gt;dist_git_branches&lt;/span&gt;&lt;span class="pygments-p"&gt;:&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;fedora-branched&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-c1"&gt;# rawhide updates are created automatically&lt;/span&gt;&lt;span class="pygments-w"&gt;
    &lt;/span&gt;&lt;span class="pygments-p-Indicator"&gt;-&lt;/span&gt;&lt;span class="pygments-w"&gt; &lt;/span&gt;&lt;span class="pygments-l-Scalar-Plain"&gt;epel-all&lt;/span&gt;&lt;span class="pygments-w"&gt;
&lt;/span&gt;
&lt;/pre&gt;
</content><category term="Linux"/><category term="Packit"/><category term="Fedora"/><category term="Packages"/><category term="Packaging"/><category term="dist-git"/></entry><entry><title>Adopting orphaned Fedora packages or how one thing leads to another</title><link href="https://dominik.wombacher.cc/posts/adopting-orphaned-fedora-packages-or-how-one-thing-leads-to-another.html" rel="alternate"/><published>2024-05-01T00:00:00+02:00</published><updated>2024-05-01T00:00:00+02:00</updated><author><name>Dominik Wombacher</name></author><id>tag:dominik.wombacher.cc,2024-05-01:/posts/adopting-orphaned-fedora-packages-or-how-one-thing-leads-to-another.html</id><summary type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Recently I started to become an active Fedora packager, which is
something I really enjoy. It happens, for various reasons, that a
package gets orphaned by its maintainer. Lack of  ... &lt;a class="read-more" href="/posts/adopting-orphaned-fedora-packages-or-how-one-thing-leads-to-another.html"&gt; [read more]&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;!-- SPDX-FileCopyrightText: 2024 Dominik Wombacher &lt;dominik@wombacher.cc&gt; --&gt;
&lt;!--  --&gt;
&lt;!-- SPDX-License-Identifier: CC-BY-SA-4.0 --&gt;
&lt;p&gt;Recently I started to become an active Fedora packager, which is
something I really enjoy. It happens, for various reasons, that a
package gets orphaned by its maintainer. Lack of time, changes in
upstream that make it hard to package a new version, or incompatibilities
and no updates. In such a case, packages can be adopted by other packagers.&lt;/p&gt;
&lt;p&gt;I stumbled across &lt;a class="reference external" href="https://src.fedoraproject.org/rpms/php-aws-sdk3"&gt;php-aws-sdk3&lt;/a&gt; and even though
I'm not actively using the SDK right now, I found it appealing to maintain this package.
Might be a good opportunity to understand PHP packaging for Fedora better and brush up my
old PHP knowledge a bit. And then I started to realize how fast one package can become many ;)&lt;/p&gt;
&lt;p&gt;The magic word: Dependencies. Of course, php-aws-sdk3 depends on other packages. Some of them
are orphaned to. Some need and update to be compatible. Others don't exist yet in Fedora.
I ended up adopting three other packages and with ~14 new packages on my list :O&lt;/p&gt;
&lt;p&gt;So it will take me some time to reach my goal, to keep php-aws-sdk3 alive.
But I will learn a lot on that journey and build some cool and valuable packages.&lt;/p&gt;
</content><category term="Linux"/><category term="Fedora"/><category term="Packaging"/><category term="Packager"/></entry></feed>