Hi Zbigniew!

On Tue, Apr 2, 2024 at 1:15 PM Zbigniew Jędrzejewski-Szmek <
zbys...@in.waw.pl> wrote:

> On Tue, Apr 02, 2024 at 10:45:32AM +0100, Aoife Moloney wrote:
> > == Summary ==
> > We disable building the packages using ENGINE API in OpenSSL without
> > breaking ABI.
>
> "Without breaking ABI" is a improvement.
> Everything else — not so much.
>
> > == Detailed Description ==
> > We are going to deprecate OpenSSL engine support. Engines are not FIPS
> > compatible and corresponding API is deprecated since OpenSSL 3.0. The
> > engine functionality we are aware of (PKCS#11, TPM) is either covered
> > by providers or will be covered soon.
>
> This doesn't really answer the problems that were raised in the previous
> round of discussion. Even if the plan is that some functionality will
> be provided "soon", dropping engine support _right now_ will cause problems
> for developers and for users: first the providers need to become available
> and have the complete feature set, then the upstreams have add the relevant
> provider code and document things so that users know how to adapt,
> and then we need to integrate all of that downstream in packaging.
>
> If we start be ripping out the engine functionality, we'll have a
> window, of unpredictable length, where the functionality will not be
> available. This is bad for users, but also breaks the promise that
> Fedora is the best environment for upstream development.
>

Thanks. In the period between the proposal was written and published the
TPM2 provider has landed in Fedora.
PKCS#11 provider is already here for a while.

Should I update the Wiki page to adjust this point?

> We don't plan to remove the API from libcrypto.so. We are going to
> > prevent creating the new packages dependent on OpenSSL ENGINE API and
> > remove ENGINE dependencies from the existing packages.
>
> IIUC, this is implemented by dropping the header files. This is
> not acceptable: it would break package rebuilds.
>

It's our goal - to eliminate the engine dependency. While a package can be
built, it gets lower priority.

> == Benefit to Fedora ==
> > We get rid of deprecated functionality and enforce using up-to-date
> > API. Engine support is deprecated in OpenSSL upstream, and after
> > provider migration caused some deficiencies with engine support. No
> > new features will be added to engine. So we reduce maintenance burden
> > and potentially attack surface.
> >
> > It follows approach planned for CentOS 10.
>
> Such things are always a tradeoff. The benefit of removing the deprecated
> code obviously reduced the maintanance burder a bit. But is is really
> that much? OTOH, it disables features that are being used or developed
> in a bunch of important projects. It seems very premature to take this
> step for F41, i.e. sometime within the next two—three months. It seems
> that the ecosystem isn't ready.
>

I want to encourage the ecosystem to move to a viable target.

>
> The tradeoff for CentOS 10 is different: the first release is still
> a while away and most people will not jump onto the 10.0 release anyway.
> By the time CentOS is used in anger, the ecosystem might be ready.
> This is one of the cases where using Fedora as a pre-release for CentOS
> as a pre-release for RHEL is detrimental to Fedora.
>

I agree.

> == How To Test ==
> > OpenSSL libcrypto.so exports the same ENGINE_* symbols as for f40.
> > Applications relying on the ENGINE API can't be built but still work.
>
> That's incompatible with package rebuilds…
>
> An acceptable approach would be to split out the headers to a separate
> -devel file, e.g. openssl-engine-devel, mark it as Provides: deprecated().
> Existing packages which need the engine headers can adjust to use the
> new header and new packages are prevented by the Packaging Guidelines
> from adding a dependency on deprecated packages.
>

Thanks! I like this idea and can update the Wiki page accordingly.

-- 
Dmitry Belyavskiy
--
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to