Wiki - https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-separate-package-for-dtrace-from-systemtap-sdt-devel-self-contained/119451

This is a proposed Change for Fedora Linux.
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 ==

Split <code>/usr/bin/dtrace</code> from
<code>systemtap-sdt-devel</code> ({{package|systemtap}}) into a
separate package to optimize many buildroots by removing unnecessary
Python dependencies.


== Owner ==

* Name: [[User:lbalhar| Lumír Balhar]]
* Email: lbal...@redhat.com


== Detailed Description ==

The package <code>systemtap-sdt-devel</code> currently contains header
files and the script <code>/usr/bin/dtrace</code>, which is written in
Python and uses pycparser. This results in unnecessary Python and
pycparser installations for many packages that do not need the script
(and many times Python at all), as they only require the header files.

Moreover, some important packages (like perl-devel) require
systemtap-sdt-devel which means hundreds of Perl packages have Python
installed in their buildroots because of the single script they don't
need.

The idea was tested on all packages build-requiring perl-devel but
don't build-requiring python-devel directly - 520 in total. And from
that number:

* 7 failed to build for unrelated reasons
* 3 packages have python3-devel in buildroot (different reasons than
systempat-sdt-devel)
* 81 packages have python3-libs but not python3-devel (different
reasons than systemtap-sdt-devel)

and finally, the rest - 436 packages - builds fine without the Python
script in systemtap-sdt-devel and therefore without Python at all.

Further testing on packages directly requiring systemtap-sdt-devel
identified the following needing the dtrace script:

* glib2
* sssd
* qemu
* python2.7
* postgresql15
* postgresql16
* perl
* php
* mariadb10.11
* libvirt

Those will depend on a new package to which we move the script.

== Feedback ==

The proposal has been positively received on the
[https://lists.fedorahosted.org/archives/list/devel@lists.fedoraproject.org/thread/4HKXN77BMFHRMXC7BU2HXECIKOI7B6CS/#4HKXN77BMFHRMXC7BU2HXECIKOI7B6CS
Fedora devel list].

== Benefit to Fedora ==

By splitting the <code>/usr/bin/dtrace</code> script into a separate
package, we reduce the buildroot size and improve build times for
hundreds of packages that do not require Python.

== Scope ==
* Proposal owners:

# Move the script to a new package <code>systemtap-sdt-dtrace</code>
and update <code>systemtap-sdt-devel</code> to require this new
package for backward compatibility.
# Update affected packages to depend on <code>systemtap-sdt-dtrace</code>.
# Remove the backward-compatible requirement from
<code>systemtap-sdt-devel</code>.

* Other developers: Review and merge proposed changes, and report any bugs.

* Release engineering: N/A (not needed for this Change)

* Policies and guidelines: N/A (not needed for this Change)

* Trademark approval: N/A (not needed for this Change)

* Alignment with the Fedora Strategy: N/A (not needed for this Change)

== Upgrade/compatibility impact ==

== How To Test ==

Package maintainers can proactively prepare their packages after the
first step from the plan above is implemented. Failed builds
identifying packages requiring changes are available in
[https://copr.fedorainfracloud.org/coprs/lbalhar/sdt-devel-no-dtrace/
COPR].

Maintainers can also build and test their packages with the version of
systemtap-sdt-devel from which the script has been removed.

== User Experience ==

Regular distro users shouldn't notice any change.

== Dependencies ==

== Contingency Plan ==

* Contingency mechanism: Change owner will revert the change in
{{package|systemtap}}.
* Contingency deadline: N/A (not a System Wide Change)  <!-- REQUIRED
FOR SYSTEM WIDE CHANGES -->
* Blocks release? N/A (not a System Wide Change) <!-- REQUIRED FOR
SYSTEM WIDE CHANGES -->

== Documentation ==

N/A (not a System Wide Change)

== Release Notes ==

-- 
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney
--
_______________________________________________
devel-announce mailing list -- devel-annou...@lists.fedoraproject.org
To unsubscribe send an email to devel-announce-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-annou...@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

Reply via email to