<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>The Wombelix Post - EPEL</title><link href="https://dominik.wombacher.cc/" rel="alternate"/><link href="/feeds/tag_epel.atom.xml" rel="self"/><id>https://dominik.wombacher.cc/</id><updated>2024-12-30T00:00:00+01:00</updated><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>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></feed>