Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-03-02 Thread Kevin Kofler via devel
Zbigniew Jędrzejewski-Szmek wrote:
> True. But is this annoyance bigger than updating dependent packages
> to load headers from a different location? Apparently many (most?)
> packages will need to use the compat headers at least for now, so that
> cost would be pretty high.

This depends mainly on how many different, and which in particular, build 
systems the applications using TBB are using. If they are all using one or 
two build systems which take centralized configuration (e.g., CMake), you 
just make that centrally installed configuration magically set the correct 
include directory and you are done with it. (That is how I had done the 
parallel-installability for kdelibs 4 next to kdelibs 3. The choice was to 
change kdelibs 4 rather than kdelibs 3 because almost all kdelibs 4 
applications use CMake.) At least assuming you can detect which version of 
TBB the application actually wants to use. (For CMake, the optional version 
argument to find_package is passed to the Find*.cmake or *Config.cmake 
module and can be used as a hint. If the application actually bothers 
passing it.) If they are using many different homegrown build systems, or 
ones like autotools that bundle copies of the detection code, then it will 
be a lot of work to set a custom include directory everywhere.

Kevin Kofler
___
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


Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-03-01 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Feb 28, 2023 at 11:06:21AM -0800, Thomas Rodgers wrote:
> On Tue, Feb 28, 2023 at 7:46 AM Zbigniew Jędrzejewski-Szmek <
> zbys...@in.waw.pl> wrote:
> 
> > On Thu, Feb 16, 2023 at 01:46:24PM +, Ian McInerney via devel wrote:
> > > On Wed, Feb 15, 2023 at 6:42 PM Ben Cotton  wrote:
> > >
> > > > https://fedoraproject.org/wiki/Changes/F39ModernizeTBB
> > > >
> > > > This document represents a proposed Change. As part of the Changes
> > > > process, proposals are publicly announced in order to receive
> > > > community feedback. This proposal will only be implemented if approved
> > > > by the Fedora Engineering Steering Committee.
> > > >
> > > > == Summary ==
> > > > Fedora is currently shipping version 2020.3 (released July 10, 2020)
> > > > of the Thread Building Blocks library. The current upstream version is
> > > > 2021.8 (released December 22, 2022). The Fedora community has
> > > > expressed [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
> > > > interest] in moving the TBB package to track a more modern version of
> > > > the upstream.
> > > >
> > > > == Owner ==
> > > > * Name: [[User:trodgers| Thomas Rodgers]]
> > > > * Email: trodg...@redhat.com
> > > >
> > > >
> > > > == Detailed Description ==
> > > > Fedora has shipped with version 2020.3 of the Thread Building Blocks
> > > > library since Fedora 33. The
> > > > upstream project made a decision to break backward compatibility after
> > > > that version was released.
> > > > As packages move to match the upstream's changes it becomes more
> > > > difficult to defer updating the
> > > > Fedora packaging for TBB. The situation is further complicated as
> > > > there are currently a majority
> > > > of TBB dependent packages which have not been updated to track a new
> > > > upstream release, as detailed in this
> > > > [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] on
> > > > the tracking issue.
> > > >
> >
> > Hi,
> >
> > sorry for picking up this thread so late…
> >
> > > > ** A compat package based on the current 2020.3 version of the
> > > > existing TBB package will be created.
> >
> > A reminder: you don't need a new review, a compat package can be
> > created without any fuss [1].
> >
> > [1]
> > https://docs.fedoraproject.org/en-US/packaging-guidelines/ReviewGuidelines/#_package_review_process
> >
> >
> True, but changing rpms/tbb is a system wide change, yes? And I can't
> really execute that change without
> also having the compat package, which most of the existing TBB dependent
> packages will need to move to, with
> a small subset able to remain on the packaging for a newer oneTBB.

Yes, yes. I think the Change proposal is the right thing to do.
I just wanted to clarify, in case you didn't know or wasn't sure, that
the compat package can be created without review. Just less work.

> The change proposal seemed at the time to be a place to capture all of that.
> 
> > > This proposal aims to provide a way to modernize the TBB packge
> > > > version for Fedora while providing stability for those packages which
> > > > continue to depend on the older TBB library version.
> > > >
> > > > It will be possible to install both devel and runtime versions of both
> > > > TBB packages, however the devel compat package for version 2020.3 will
> > > > require clients to point to a new include path where the legacy
> > > > headers will be found.
> >
> > Parallel runtime installation is obviously required.
> > But is it necessary to have parallel installation of devel headers?
> > It might be less work to have conflicting -devel packages and just
> > BuildRequire one or the other.
> >
> 
> It might not be necessary. I don't expect to start the actual work on this
> for another 3-4 weeks, we have time to work
> through that discussion before committing to it.

Ack.

Zbyszek
___
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


Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-03-01 Thread Zbigniew Jędrzejewski-Szmek
On Wed, Mar 01, 2023 at 02:36:18PM +0100, Kevin Kofler via devel wrote:
> Zbigniew Jędrzejewski-Szmek wrote:
> > Parallel runtime installation is obviously required.
> > But is it necessary to have parallel installation of devel headers?
> > It might be less work to have conflicting -devel packages and just
> > BuildRequire one or the other.
> 
> Conflicting -devel packages are an annoyance when you want a system set up 
> for local (including non-mock and especially non-RPM) builds.

True. But is this annoyance bigger than updating dependent packages
to load headers from a different location? Apparently many (most?) packages
will need to use the compat headers at least for now, so that cost
would be pretty high.

Zbyszek
___
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


Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-03-01 Thread Kevin Kofler via devel
Zbigniew Jędrzejewski-Szmek wrote:
> Parallel runtime installation is obviously required.
> But is it necessary to have parallel installation of devel headers?
> It might be less work to have conflicting -devel packages and just
> BuildRequire one or the other.

Conflicting -devel packages are an annoyance when you want a system set up 
for local (including non-mock and especially non-RPM) builds.

Kevin Kofler
___
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


Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-02-28 Thread Thomas Rodgers
On Tue, Feb 28, 2023 at 7:46 AM Zbigniew Jędrzejewski-Szmek <
zbys...@in.waw.pl> wrote:

> On Thu, Feb 16, 2023 at 01:46:24PM +, Ian McInerney via devel wrote:
> > On Wed, Feb 15, 2023 at 6:42 PM Ben Cotton  wrote:
> >
> > > https://fedoraproject.org/wiki/Changes/F39ModernizeTBB
> > >
> > > This document represents a proposed Change. As part of the Changes
> > > process, proposals are publicly announced in order to receive
> > > community feedback. This proposal will only be implemented if approved
> > > by the Fedora Engineering Steering Committee.
> > >
> > > == Summary ==
> > > Fedora is currently shipping version 2020.3 (released July 10, 2020)
> > > of the Thread Building Blocks library. The current upstream version is
> > > 2021.8 (released December 22, 2022). The Fedora community has
> > > expressed [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
> > > interest] in moving the TBB package to track a more modern version of
> > > the upstream.
> > >
> > > == Owner ==
> > > * Name: [[User:trodgers| Thomas Rodgers]]
> > > * Email: trodg...@redhat.com
> > >
> > >
> > > == Detailed Description ==
> > > Fedora has shipped with version 2020.3 of the Thread Building Blocks
> > > library since Fedora 33. The
> > > upstream project made a decision to break backward compatibility after
> > > that version was released.
> > > As packages move to match the upstream's changes it becomes more
> > > difficult to defer updating the
> > > Fedora packaging for TBB. The situation is further complicated as
> > > there are currently a majority
> > > of TBB dependent packages which have not been updated to track a new
> > > upstream release, as detailed in this
> > > [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] on
> > > the tracking issue.
> > >
>
> Hi,
>
> sorry for picking up this thread so late…
>
> > > ** A compat package based on the current 2020.3 version of the
> > > existing TBB package will be created.
>
> A reminder: you don't need a new review, a compat package can be
> created without any fuss [1].
>
> [1]
> https://docs.fedoraproject.org/en-US/packaging-guidelines/ReviewGuidelines/#_package_review_process
>
>
True, but changing rpms/tbb is a system wide change, yes? And I can't
really execute that change without
also having the compat package, which most of the existing TBB dependent
packages will need to move to, with
a small subset able to remain on the packaging for a newer oneTBB.

The change proposal seemed at the time to be a place to capture all of that.

> > This proposal aims to provide a way to modernize the TBB packge
> > > version for Fedora while providing stability for those packages which
> > > continue to depend on the older TBB library version.
> > >
> > > It will be possible to install both devel and runtime versions of both
> > > TBB packages, however the devel compat package for version 2020.3 will
> > > require clients to point to a new include path where the legacy
> > > headers will be found.
>
> Parallel runtime installation is obviously required.
> But is it necessary to have parallel installation of devel headers?
> It might be less work to have conflicting -devel packages and just
> BuildRequire one or the other.
>

It might not be necessary. I don't expect to start the actual work on this
for another 3-4 weeks, we have time to work
through that discussion before committing to it.


>
> Zbyszek
> ___
> 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
>
___
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


Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-02-28 Thread Zbigniew Jędrzejewski-Szmek
On Thu, Feb 16, 2023 at 01:46:24PM +, Ian McInerney via devel wrote:
> On Wed, Feb 15, 2023 at 6:42 PM Ben Cotton  wrote:
> 
> > https://fedoraproject.org/wiki/Changes/F39ModernizeTBB
> >
> > This document represents a proposed Change. As part of the Changes
> > process, proposals are publicly announced in order to receive
> > community feedback. This proposal will only be implemented if approved
> > by the Fedora Engineering Steering Committee.
> >
> > == Summary ==
> > Fedora is currently shipping version 2020.3 (released July 10, 2020)
> > of the Thread Building Blocks library. The current upstream version is
> > 2021.8 (released December 22, 2022). The Fedora community has
> > expressed [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
> > interest] in moving the TBB package to track a more modern version of
> > the upstream.
> >
> > == Owner ==
> > * Name: [[User:trodgers| Thomas Rodgers]]
> > * Email: trodg...@redhat.com
> >
> >
> > == Detailed Description ==
> > Fedora has shipped with version 2020.3 of the Thread Building Blocks
> > library since Fedora 33. The
> > upstream project made a decision to break backward compatibility after
> > that version was released.
> > As packages move to match the upstream's changes it becomes more
> > difficult to defer updating the
> > Fedora packaging for TBB. The situation is further complicated as
> > there are currently a majority
> > of TBB dependent packages which have not been updated to track a new
> > upstream release, as detailed in this
> > [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] on
> > the tracking issue.
> >

Hi,

sorry for picking up this thread so late…

> > ** A compat package based on the current 2020.3 version of the
> > existing TBB package will be created.

A reminder: you don't need a new review, a compat package can be
created without any fuss [1].

[1] 
https://docs.fedoraproject.org/en-US/packaging-guidelines/ReviewGuidelines/#_package_review_process

> > This proposal aims to provide a way to modernize the TBB packge
> > version for Fedora while providing stability for those packages which
> > continue to depend on the older TBB library version.
> >
> > It will be possible to install both devel and runtime versions of both
> > TBB packages, however the devel compat package for version 2020.3 will
> > require clients to point to a new include path where the legacy
> > headers will be found.

Parallel runtime installation is obviously required.
But is it necessary to have parallel installation of devel headers?
It might be less work to have conflicting -devel packages and just
BuildRequire one or the other.

Zbyszek
___
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


Re: F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-02-16 Thread Ian McInerney via devel
On Wed, Feb 15, 2023 at 6:42 PM Ben Cotton  wrote:

> https://fedoraproject.org/wiki/Changes/F39ModernizeTBB
>
> This document represents a proposed Change. As part of the Changes
> process, proposals are publicly announced in order to receive
> community feedback. This proposal will only be implemented if approved
> by the Fedora Engineering Steering Committee.
>
> == Summary ==
> Fedora is currently shipping version 2020.3 (released July 10, 2020)
> of the Thread Building Blocks library. The current upstream version is
> 2021.8 (released December 22, 2022). The Fedora community has
> expressed [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
> interest] in moving the TBB package to track a more modern version of
> the upstream.
>
> == Owner ==
> * Name: [[User:trodgers| Thomas Rodgers]]
> * Email: trodg...@redhat.com
>
>
> == Detailed Description ==
> Fedora has shipped with version 2020.3 of the Thread Building Blocks
> library since Fedora 33. The
> upstream project made a decision to break backward compatibility after
> that version was released.
> As packages move to match the upstream's changes it becomes more
> difficult to defer updating the
> Fedora packaging for TBB. The situation is further complicated as
> there are currently a majority
> of TBB dependent packages which have not been updated to track a new
> upstream release, as detailed in this
> [https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] on
> the tracking issue.
>
> This proposal aims to provide a way to modernize the TBB packge
> version for Fedora while providing stability for those packages which
> continue to depend on the older TBB library version.
>
> It will be possible to install both devel and runtime versions of both
> TBB packages, however the devel compat package for version 2020.3 will
> require clients to point to a new include path where the legacy
> headers will be found.
>
> == Feedback ==
>
>
> == Benefit to Fedora ==
>
> Fedora 39 will include a current version of Thread Building Blocks
> (version 2021.8) while continuing to support clients dependent on an
> older version of TBB (version 2020.3). Fedora will stay relevant as
> far as Thread Building Blocks clients are concerned.
>
> == Scope ==
> * Proposal owners:
> ** A compat package based on the current 2020.3 version of the
> existing TBB package will be created.
> ** Evaluate TBB dependent packages to identify those which need to
> move to the compat version of the TBB package. An initial analysis
> suggests the majority of current TBB clients will need to move to the
> compat package.
> ** Post a request for rebuilds to fedora-devel
> ** Create patches for those packages affected by this change to adjust
> their includes to point the compat package's headers as necessary,
> work with affected package owners to update package specs to account
> for the change.
> ** When most packages are done, re-tag all the packages in rawhide.
> ** Watch fedora-devel and assist in rebuilding broken TBB clients.
>
> * Other developers:
> ** Those who depend on Thread Building Blocks will have to rebuild
> their packages. Feature owners will alleviate some of this work as
> indicated above, and will assist those whose packages fail to build in
> debugging them.
>
> * Release engineering: TODO 
>
> * Policies and guidelines: N/A (not needed for this Change)
> ** Apart from scope, this is business as usual, so no new policies, no
> new guidelines.
>
> == Upgrade/compatibility impact ==
> * No manual configuration or data migration needed.
> * Some impact on other packages needing code changes to rebuild.
>
> == How To Test ==
> * No special hardware is needed.
> * Parallel install of the 2020.3 TBB compat packages and the updated
> TBB packages and checking that it does not break other packages.
>
> == User Experience ==
> * Expected to remain largely the same.
> * Developers building third-party software on Fedora may need to
> rebuild against the new TBB packages, and may need to adjust their
> code to either remain on the compat TBB version or move to the new
> version supplied by the updated TBB package.
>
> == Dependencies ==
> Packages that must be rebuilt:
> & dnf repoquery -s --releasever=rawhide --whatrequires libtbb\*
> --enablerepo=fedora | sort -u
>
> The tracking [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
> issue's] analysis suggests that only the following packages will be
> able to move to a newer TBB -
> * fawkes
> * gazebo
> * opencascade
> * pmemkv
> * root
>

This change will also allow for mold to unbundle its included TBB version
and become dependent on the OS-provided library (that was my original
impetus for wanting TBB to be updated in Fedora actually, because modl
requires the newer TBB API and so can't build against the older 2020.3
package).

-Ian


>
> While the remaining clients of TBB will need to have their spec's
> include paths adjusted to use the 2020.3 compat package.
>
> == Contingency Plan ==
>
> * Contingency 

F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-02-15 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/F39ModernizeTBB

This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.

== Summary ==
Fedora is currently shipping version 2020.3 (released July 10, 2020)
of the Thread Building Blocks library. The current upstream version is
2021.8 (released December 22, 2022). The Fedora community has
expressed [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
interest] in moving the TBB package to track a more modern version of
the upstream.

== Owner ==
* Name: [[User:trodgers| Thomas Rodgers]]
* Email: trodg...@redhat.com


== Detailed Description ==
Fedora has shipped with version 2020.3 of the Thread Building Blocks
library since Fedora 33. The
upstream project made a decision to break backward compatibility after
that version was released.
As packages move to match the upstream's changes it becomes more
difficult to defer updating the
Fedora packaging for TBB. The situation is further complicated as
there are currently a majority
of TBB dependent packages which have not been updated to track a new
upstream release, as detailed in this
[https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] on
the tracking issue.

This proposal aims to provide a way to modernize the TBB packge
version for Fedora while providing stability for those packages which
continue to depend on the older TBB library version.

It will be possible to install both devel and runtime versions of both
TBB packages, however the devel compat package for version 2020.3 will
require clients to point to a new include path where the legacy
headers will be found.

== Feedback ==


== Benefit to Fedora ==

Fedora 39 will include a current version of Thread Building Blocks
(version 2021.8) while continuing to support clients dependent on an
older version of TBB (version 2020.3). Fedora will stay relevant as
far as Thread Building Blocks clients are concerned.

== Scope ==
* Proposal owners:
** A compat package based on the current 2020.3 version of the
existing TBB package will be created.
** Evaluate TBB dependent packages to identify those which need to
move to the compat version of the TBB package. An initial analysis
suggests the majority of current TBB clients will need to move to the
compat package.
** Post a request for rebuilds to fedora-devel
** Create patches for those packages affected by this change to adjust
their includes to point the compat package's headers as necessary,
work with affected package owners to update package specs to account
for the change.
** When most packages are done, re-tag all the packages in rawhide.
** Watch fedora-devel and assist in rebuilding broken TBB clients.

* Other developers:
** Those who depend on Thread Building Blocks will have to rebuild
their packages. Feature owners will alleviate some of this work as
indicated above, and will assist those whose packages fail to build in
debugging them.

* Release engineering: TODO 

* Policies and guidelines: N/A (not needed for this Change)
** Apart from scope, this is business as usual, so no new policies, no
new guidelines.

== Upgrade/compatibility impact ==
* No manual configuration or data migration needed.
* Some impact on other packages needing code changes to rebuild.

== How To Test ==
* No special hardware is needed.
* Parallel install of the 2020.3 TBB compat packages and the updated
TBB packages and checking that it does not break other packages.

== User Experience ==
* Expected to remain largely the same.
* Developers building third-party software on Fedora may need to
rebuild against the new TBB packages, and may need to adjust their
code to either remain on the compat TBB version or move to the new
version supplied by the updated TBB package.

== Dependencies ==
Packages that must be rebuilt:
& dnf repoquery -s --releasever=rawhide --whatrequires libtbb\*
--enablerepo=fedora | sort -u

The tracking [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
issue's] analysis suggests that only the following packages will be
able to move to a newer TBB -
* fawkes
* gazebo
* opencascade
* pmemkv
* root

While the remaining clients of TBB will need to have their spec's
include paths adjusted to use the 2020.3 compat package.

== Contingency Plan ==

* Contingency mechanism: Worst case scenario is to abandon the update
and simply ship F39 with the existing TBB package, which is already in
rawhide.

== Documentation ==
* Notes on the scope of change, motivation, and likely impacts are in
the comments on the tracking
[https://bugzilla.redhat.com/show_bug.cgi?id=2036372 issue].
* https://github.com/oneapi-src/oneTBB/releases/tag/v2021.7.0
(Released 2nd October 2022)
* https://github.com/oneapi-src/oneTBB/releases/tag/v2020.3 (Released
10th July 2020)

== Release Notes ==



-- 
Ben Cotton
He / Him / His
Fedora Program Manager

F39 proposal: Modernize Thread Building Blocks for Fedora 39 (System-Wide Change proposal)

2023-02-15 Thread Ben Cotton
https://fedoraproject.org/wiki/Changes/F39ModernizeTBB

This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.

== Summary ==
Fedora is currently shipping version 2020.3 (released July 10, 2020)
of the Thread Building Blocks library. The current upstream version is
2021.8 (released December 22, 2022). The Fedora community has
expressed [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
interest] in moving the TBB package to track a more modern version of
the upstream.

== Owner ==
* Name: [[User:trodgers| Thomas Rodgers]]
* Email: trodg...@redhat.com


== Detailed Description ==
Fedora has shipped with version 2020.3 of the Thread Building Blocks
library since Fedora 33. The
upstream project made a decision to break backward compatibility after
that version was released.
As packages move to match the upstream's changes it becomes more
difficult to defer updating the
Fedora packaging for TBB. The situation is further complicated as
there are currently a majority
of TBB dependent packages which have not been updated to track a new
upstream release, as detailed in this
[https://bugzilla.redhat.com/show_bug.cgi?id=2036372#c1 analysis] on
the tracking issue.

This proposal aims to provide a way to modernize the TBB packge
version for Fedora while providing stability for those packages which
continue to depend on the older TBB library version.

It will be possible to install both devel and runtime versions of both
TBB packages, however the devel compat package for version 2020.3 will
require clients to point to a new include path where the legacy
headers will be found.

== Feedback ==


== Benefit to Fedora ==

Fedora 39 will include a current version of Thread Building Blocks
(version 2021.8) while continuing to support clients dependent on an
older version of TBB (version 2020.3). Fedora will stay relevant as
far as Thread Building Blocks clients are concerned.

== Scope ==
* Proposal owners:
** A compat package based on the current 2020.3 version of the
existing TBB package will be created.
** Evaluate TBB dependent packages to identify those which need to
move to the compat version of the TBB package. An initial analysis
suggests the majority of current TBB clients will need to move to the
compat package.
** Post a request for rebuilds to fedora-devel
** Create patches for those packages affected by this change to adjust
their includes to point the compat package's headers as necessary,
work with affected package owners to update package specs to account
for the change.
** When most packages are done, re-tag all the packages in rawhide.
** Watch fedora-devel and assist in rebuilding broken TBB clients.

* Other developers:
** Those who depend on Thread Building Blocks will have to rebuild
their packages. Feature owners will alleviate some of this work as
indicated above, and will assist those whose packages fail to build in
debugging them.

* Release engineering: TODO 

* Policies and guidelines: N/A (not needed for this Change)
** Apart from scope, this is business as usual, so no new policies, no
new guidelines.

== Upgrade/compatibility impact ==
* No manual configuration or data migration needed.
* Some impact on other packages needing code changes to rebuild.

== How To Test ==
* No special hardware is needed.
* Parallel install of the 2020.3 TBB compat packages and the updated
TBB packages and checking that it does not break other packages.

== User Experience ==
* Expected to remain largely the same.
* Developers building third-party software on Fedora may need to
rebuild against the new TBB packages, and may need to adjust their
code to either remain on the compat TBB version or move to the new
version supplied by the updated TBB package.

== Dependencies ==
Packages that must be rebuilt:
& dnf repoquery -s --releasever=rawhide --whatrequires libtbb\*
--enablerepo=fedora | sort -u

The tracking [https://bugzilla.redhat.com/show_bug.cgi?id=2036372
issue's] analysis suggests that only the following packages will be
able to move to a newer TBB -
* fawkes
* gazebo
* opencascade
* pmemkv
* root

While the remaining clients of TBB will need to have their spec's
include paths adjusted to use the 2020.3 compat package.

== Contingency Plan ==

* Contingency mechanism: Worst case scenario is to abandon the update
and simply ship F39 with the existing TBB package, which is already in
rawhide.

== Documentation ==
* Notes on the scope of change, motivation, and likely impacts are in
the comments on the tracking
[https://bugzilla.redhat.com/show_bug.cgi?id=2036372 issue].
* https://github.com/oneapi-src/oneTBB/releases/tag/v2021.7.0
(Released 2nd October 2022)
* https://github.com/oneapi-src/oneTBB/releases/tag/v2020.3 (Released
10th July 2020)

== Release Notes ==



-- 
Ben Cotton
He / Him / His
Fedora Program Manager