F41 Change Proposal: Separate package for dtrace from systemtap-sdt-devel (self-contained)

Separate package for dtrace from systemtap-sdt-devel

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.


:link: Summary

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

:link: Owner

:link: Detailed Description

The package systemtap-sdt-devel currently contains header files and the script /usr/bin/dtrace, 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.

:link: Feedback

The proposal has been positively received on the Fedora devel list.

:link: Benefit to Fedora

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

:link: Scope

  • Proposal owners:
  1. Move the script to a new package systemtap-sdt-dtrace and update systemtap-sdt-devel to require this new package for backward compatibility.
  2. Update affected packages to depend on systemtap-sdt-dtrace.
  3. Remove the backward-compatible requirement from systemtap-sdt-devel.
  • 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)

:link: Upgrade/compatibility impact

:link: 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 COPR.

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

:link: User Experience

Regular distro users shouldn’t notice any change.

:link: Dependencies

:link: Contingency Plan

  • Contingency mechanism: Change owner will revert the change in systemtap.
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)

:link: Documentation

N/A (not a System Wide Change)

:link: Release Notes

Last edited by @amoloney 2024-06-07T22:22:10Z

How do you feel about the proposal as written?

  • Strongly in favor
  • In favor, with reservations
  • Neutral
  • Opposed, but could be convinced
  • Strongly opposed
0 voters

If you are in favor but have reservations, or are opposed but something could change your mind, please explain in a reply.

We want everyone to be heard, but many posts repeating the same thing actually makes that harder. If you have something new to say, please say it. If, instead, you find someone has already covered what you’d like to express, please simply giving that post a :heart: instead of reiterating. You can even do this by email, by replying with the heart emoji or just “+1”. This will make long topics easier to follow.

Please note that this is an advisory “straw poll” meant to gauge sentiment. It isn’t a vote or a scientific survey. See About the Change Proposals category for more about the Change Process and moderation policy.