From Fedora Project Wiki
(Incorporate suggested changes from the mailing list)
(More adjustments to get consistent names.)
Line 5: Line 5:
== Summary ==
== 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`.
Rename `libusb` to `libusb-compat-0.1` 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 ==
== Owner ==
Line 69: Line 69:


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


<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
<!-- What is the benefit to the distribution?  Will the software we generate be improved? How will the process of creating Fedora releases be improved?
Line 102: Line 102:
* Proposal owners:
* Proposal owners:


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


* Other developers: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->


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`.
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-0.1-devel`.


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 160: Line 160:
== Contingency Plan ==
== Contingency Plan ==


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


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->

Revision as of 16:29, 3 December 2020


Rename libusb packages and deprecated old API

Summary

Rename libusb to libusb-compat-0.1 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-0.1 (i.e. current libusb).


Scope

  • Proposal owners:

Create new libusb-compat-0.1 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-0.1-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-0.1-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