From 6cfaff3c8f5a43b5edc4455d87cb4ef65d0455b6 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Tue, 16 Feb 2021 13:20:53 +0100 Subject: [PATCH] New libusb-compat-0.1 package replacing libusb Resolves: #1918275 --- .gitignore | 1 + gating.yaml | 6 +++ libusb-compat-0.1.spec | 93 ++++++++++++++++++++++++++++++++++++ libusb-config-multilib.patch | 25 ++++++++++ sources | 1 + tests/run.sh | 7 +++ tests/tests.yml | 13 +++++ 7 files changed, 146 insertions(+) create mode 100644 .gitignore create mode 100644 gating.yaml create mode 100644 libusb-compat-0.1.spec create mode 100644 libusb-config-multilib.patch create mode 100644 sources create mode 100644 tests/run.sh create mode 100644 tests/tests.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..88c71cc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/libusb-compat-0.1.7.tar.bz2 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..d71584a --- /dev/null +++ b/gating.yaml @@ -0,0 +1,6 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +rules: + - !PassingTestCaseRule {test_case_name: dist.depcheck} diff --git a/libusb-compat-0.1.spec b/libusb-compat-0.1.spec new file mode 100644 index 0000000..d2bed41 --- /dev/null +++ b/libusb-compat-0.1.spec @@ -0,0 +1,93 @@ +Name: libusb-compat-0.1 +Version: 0.1.7 +Release: 3%{?dist} +Summary: Compatibility shim around libusb-1.0 offering the old 0.1 API +License: LGPLv2+ +URL: https://github.com/libusb/libusb-compat-0.1 +Source0: https://github.com/libusb/libusb-compat-0.1/releases/download/v%{version}/libusb-compat-%{version}.tar.bz2 +Patch0: libusb-config-multilib.patch +BuildRequires: gcc libtool +BuildRequires: libusb1-devel +BuildRequires: make +Provides: deprecated() +# libusb was removed in F34 +Provides: libusb = 1:%{version}-%{release} +Obsoletes: libusb < 1:%{version}-%{release} + +%description +This package provides a shim / compatibility layer on top of libusb1 +offering the old 0.1 API for applications which do not have been ported +to the new 1.0 API yet. Where ever possible applications really should +use and / or be ported to the new 1.0 API instead of relying on this +compatibility library. + + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Obsoletes: libusb-devel < 1:%{version}-%{release} + +%description devel +This package contains the header files, libraries and documentation needed to +develop applications that use libusb-0.1. However new applications should use +libusb-1.0 library instead of this one. + + +%package tests-examples +Summary: Tests and examples for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Provides: libusb-tests-examles = 1:%{version}-%{release} +Obsoletes: libusb-tests-examles < 1:%{version}-%{release} + +%description tests-examples +This package contains tests and examples for %{name}. + + +%prep +%autosetup -n libusb-compat-%{version} +autoreconf -ivf + + +%build +%configure --disable-static --enable-examples-build +%make_build + + +%install +%make_install +rm $RPM_BUILD_ROOT%{_libdir}/libusb.la +for i in lsusb testlibusb; do + install -m 755 examples/.libs/$i \ + $RPM_BUILD_ROOT%{_bindir}/libusb-compat-0.1-$i +done + + +%check +LD_LIBRARY_PATH=libusb/.libs ldd -r $RPM_BUILD_ROOT%{_bindir}/libusb-compat-0.1-lsusb +LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-compat-0.1-lsusb +LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-compat-0.1-testlibusb + + +%ldconfig_scriptlets + + +%files +%doc AUTHORS NEWS README +%license COPYING +%{_libdir}/libusb-0.1.so.* + +%files devel +%{_includedir}/usb.h +%{_libdir}/libusb.so +%{_libdir}/pkgconfig/libusb.pc +%{_bindir}/libusb-config + +%files tests-examples +%{_bindir}/libusb-compat-0.1-lsusb +%{_bindir}/libusb-compat-0.1-testlibusb + + +%changelog +* Tue Jan 19 18:48:25 CET 2021 Benjamin Berg - 0.1.7-3 +- New libusb-compat-0.1 package replacing libusb + Resolves: #1918275 diff --git a/libusb-config-multilib.patch b/libusb-config-multilib.patch new file mode 100644 index 0000000..4c5ac2e --- /dev/null +++ b/libusb-config-multilib.patch @@ -0,0 +1,25 @@ +Resolve multilib conflict in 'libusb-config' script by removing $libdir variable entirely. + +http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks#Multiarch.2C_binaries_and_compilation_scripts + +Author: Jan Vcelak +Date: 2011-06-22 + +diff -uNPrp libusb-compat-0.1.3/libusb-config.in libusb-compat-0.1.3.multilib/libusb-config.in +--- libusb-compat-0.1.3/libusb-config.in 2009-06-23 23:45:33.000000000 +0200 ++++ libusb-compat-0.1.3.multilib/libusb-config.in 2011-06-22 09:55:59.810188470 +0200 +@@ -3,7 +3,6 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ + includedir=@includedir@ +-libdir=@libdir@ + exec_prefix_set=no + + usage() +@@ -77,5 +76,5 @@ if test "$echo_cflags" = "yes"; then + echo $includes + fi + if test "$echo_libs" = "yes"; then +- echo -L$libdir -lusb ++ echo -lusb + fi diff --git a/sources b/sources new file mode 100644 index 0000000..702ba65 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (libusb-compat-0.1.7.tar.bz2) = 94ba2a767959a40a5fe41760d7c20968fb99456de3f5b7547414bd061ab5155d88ca382b6aa1cf4961e15f1bc4890134351902e719ce5aa15dd0202f72417d55 diff --git a/tests/run.sh b/tests/run.sh new file mode 100644 index 0000000..d9b8afb --- /dev/null +++ b/tests/run.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +ldd /usr/bin/libusb-compat-0.1-lsusb +/usr/bin/libusb-compat-0.1-lsusb +/usr/bin/libusb-compat-0.1-testlibusb diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..dbb25fd --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,13 @@ +--- +- hosts: localhost + roles: + # We don't need standard-test-source, and it would need things for %prep + - role: standard-test-basic + tags: + - atomic + - classic + tests: + - test: + dir: . + run: run.sh +