From Fedora Project Wiki
(Incorporate suggested changes from the mailing list)
Line 55: Line 55:


To make it clear that "libusb" should not be used anymore and as "libusbx" does not exist anymore, it makes sense to rename the packages as follows:
To make it clear that "libusb" should not be used anymore and as "libusbx" does not exist anymore, it makes sense to rename the packages as follows:
* libusb-compat
* libusb-compat-0.1 (this *is* the upstream name, see https://github.com/libusb/libusb-compat-0.1)
* libusb1
* libusb1


In order to ensure that no package is depending on the old `libusb` (i.e. `libusb-compat`) without a good reason, the plan is to '''not''' add the corresponding `Provides:` line for the `libusb-compat-devel` rename.
There should be no/few users left for `libusb-compat-0.1`, but currently some packages are incorrectly using `libusb`. As such, the idea is to:
* '''not''' add the corresponding `Provides:` line for the rename to `libusb-compat-0.1-devel`
* Add `Provides:  deprecated()` to the `libusb-compat-0.1` package


== Feedback ==
== Feedback ==

Revision as of 16:28, 3 December 2020


Rename libusb packages and deprecated old API

Summary

Rename libusb to libusb-compat and libusbx to libusb1. Do not provide an automated update path for the old libusb build dependency as packages should–and likely can–be updated to use libusb1.

Owner

Current status

  • Targeted release: Fedora 34
  • Last updated: 2020-12-03
  • FESCo issue: #2510
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Currently we have two related packages:

  • libusb: Containing a compatibility layer of the 0.1 API for libusb 1.0
  • libusbx: Containing the libusb 1.0 API, where the name "libusbx" derives from a fork that existed for a while

To make it clear that "libusb" should not be used anymore and as "libusbx" does not exist anymore, it makes sense to rename the packages as follows:

There should be no/few users left for libusb-compat-0.1, but currently some packages are incorrectly using libusb. As such, the idea is to:

  • not add the corresponding Provides: line for the rename to libusb-compat-0.1-devel
  • Add Provides: deprecated() to the libusb-compat-0.1 package

Feedback

Benefit to Fedora

  • We adhere more closely to the upstream naming scheme for libusb.
  • We begin sunsetting libusb-compat (i.e. current libusb).


Scope

  • Proposal owners:

Create new libusb-compat and libusb1 packages based on the current ones.

  • Other developers: N/A (not a System Wide Change)

Review any package that uses BuildRequires: libusb-devel. Many of them will be able to switch to libusb1-devel but some may still require the compatibility layer, i.e. libusb-compat-devel.

  • Policies and guidelines: N/A (not needed for this change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: N/A

Upgrade/compatibility impact

No impact is expected.

How To Test

No further testing is needed.

User Experience

Dependencies

Contingency Plan

Add Provides: libusb-devel to libusb-compat-devel if too many packages are not updated.

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

N/A (not a System Wide Change)

Release Notes