Compare commits
9 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9568c3f303 | ||
|
|
ff9cb1c8b6 | ||
|
|
261c00aec2 | ||
|
|
11a16ae2a8 | ||
|
|
07d18ab2e1 | ||
|
|
2084da7d5a | ||
|
|
4acb687232 | ||
|
|
653f1fe105 | ||
|
|
300a088323 |
15 changed files with 1403 additions and 240 deletions
|
|
@ -1 +0,0 @@
|
|||
1
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -1,9 +1,2 @@
|
|||
/libusb-1.0.24.tar.bz2
|
||||
/libusb-1.0.25.tar.bz2
|
||||
/libusb-1.0.26.tar.bz2
|
||||
/libusb-1.0.27.tar.bz2
|
||||
/libusb-1.0.27.tar.bz2.asc
|
||||
/libusb-1.0.28.tar.bz2
|
||||
/libusb-1.0.28.tar.bz2.asc
|
||||
/libusb-1.0.29.tar.bz2
|
||||
/libusb-1.0.29.tar.bz2.asc
|
||||
|
|
|
|||
158
0001-core-Install-first-context-as-implicit-default.patch
Normal file
158
0001-core-Install-first-context-as-implicit-default.patch
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
From d46cbbac4851ce6e49d8dacb0daa328453eb8a84 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Tue, 22 Feb 2022 11:45:38 +0100
|
||||
Subject: [PATCH] core: Install first context as implicit default
|
||||
|
||||
There was a behaviour change in libusb, which triggers issues when the
|
||||
API is misused. This caused gutenprint to crash, see
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=2055504
|
||||
|
||||
For now, work around this by installing an implicit default. But, change
|
||||
the code to log an error in case this "feature" is being used.
|
||||
---
|
||||
libusb/core.c | 16 +++++++++++++---
|
||||
libusb/libusbi.h | 15 ++++++++++++++-
|
||||
tests/umockdev.c | 31 +++++++++++++++++++++++++++++++
|
||||
3 files changed, 58 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libusb/core.c b/libusb/core.c
|
||||
index 1c1ada1..c75ddae 100644
|
||||
--- a/libusb/core.c
|
||||
+++ b/libusb/core.c
|
||||
@@ -41,6 +41,7 @@ static libusb_log_cb log_handler;
|
||||
#endif
|
||||
|
||||
struct libusb_context *usbi_default_context;
|
||||
+struct libusb_context *usbi_fallback_context;
|
||||
static int default_context_refcnt;
|
||||
static usbi_mutex_static_t default_context_lock = USBI_MUTEX_INITIALIZER;
|
||||
static struct usbi_option default_context_options[LIBUSB_OPTION_MAX];
|
||||
@@ -2284,7 +2285,7 @@ int API_EXPORTED libusb_init(libusb_context **ctx)
|
||||
|
||||
usbi_mutex_static_lock(&default_context_lock);
|
||||
|
||||
- if (!ctx && usbi_default_context) {
|
||||
+ if (!ctx && default_context_refcnt > 0) {
|
||||
usbi_dbg(usbi_default_context, "reusing default context");
|
||||
default_context_refcnt++;
|
||||
usbi_mutex_static_unlock(&default_context_lock);
|
||||
@@ -2354,9 +2355,15 @@ int API_EXPORTED libusb_init(libusb_context **ctx)
|
||||
goto err_io_exit;
|
||||
}
|
||||
|
||||
- if (ctx)
|
||||
+ if (ctx) {
|
||||
*ctx = _ctx;
|
||||
|
||||
+ if (!usbi_fallback_context) {
|
||||
+ usbi_fallback_context = _ctx;
|
||||
+ usbi_warn(usbi_fallback_context, "installing new context as implicit default");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
usbi_mutex_static_unlock(&default_context_lock);
|
||||
|
||||
return 0;
|
||||
@@ -2429,6 +2436,8 @@ void API_EXPORTED libusb_exit(libusb_context *ctx)
|
||||
|
||||
if (!ctx)
|
||||
usbi_default_context = NULL;
|
||||
+ if (ctx == usbi_fallback_context)
|
||||
+ usbi_fallback_context = NULL;
|
||||
|
||||
usbi_mutex_static_unlock(&default_context_lock);
|
||||
|
||||
@@ -2575,7 +2584,8 @@ static void log_v(struct libusb_context *ctx, enum libusb_log_level level,
|
||||
#else
|
||||
enum libusb_log_level ctx_level;
|
||||
|
||||
- ctx = usbi_get_context(ctx);
|
||||
+ ctx = ctx ? ctx : usbi_default_context;
|
||||
+ ctx = ctx ? ctx : usbi_fallback_context;
|
||||
if (ctx)
|
||||
ctx_level = ctx->debug;
|
||||
else
|
||||
diff --git a/libusb/libusbi.h b/libusb/libusbi.h
|
||||
index 5f0d5c2..580add8 100644
|
||||
--- a/libusb/libusbi.h
|
||||
+++ b/libusb/libusbi.h
|
||||
@@ -436,13 +436,26 @@ struct libusb_context {
|
||||
};
|
||||
|
||||
extern struct libusb_context *usbi_default_context;
|
||||
+extern struct libusb_context *usbi_fallback_context;
|
||||
|
||||
extern struct list_head active_contexts_list;
|
||||
extern usbi_mutex_static_t active_contexts_lock;
|
||||
|
||||
static inline struct libusb_context *usbi_get_context(struct libusb_context *ctx)
|
||||
{
|
||||
- return ctx ? ctx : usbi_default_context;
|
||||
+ static int warned = 0;
|
||||
+
|
||||
+ if (!ctx) {
|
||||
+ ctx = usbi_default_context;
|
||||
+ }
|
||||
+ if (!ctx) {
|
||||
+ ctx = usbi_fallback_context;
|
||||
+ if (ctx && warned == 0) {
|
||||
+ usbi_err(ctx, "API misuse! Using non-default context as implicit default.");
|
||||
+ warned = 1;
|
||||
+ }
|
||||
+ }
|
||||
+ return ctx;
|
||||
}
|
||||
|
||||
enum usbi_event_flags {
|
||||
diff --git a/tests/umockdev.c b/tests/umockdev.c
|
||||
index b2af512..0e73f94 100644
|
||||
--- a/tests/umockdev.c
|
||||
+++ b/tests/umockdev.c
|
||||
@@ -551,6 +551,32 @@ test_open_close(UMockdevTestbedFixture * fixture, UNUSED_DATA)
|
||||
libusb_close(handle);
|
||||
}
|
||||
|
||||
+static void
|
||||
+test_implicit_default(UMockdevTestbedFixture * fixture, UNUSED_DATA)
|
||||
+{
|
||||
+ libusb_device **devs = NULL;
|
||||
+
|
||||
+ clear_libusb_log(fixture, LIBUSB_LOG_LEVEL_INFO);
|
||||
+ g_assert_cmpint(libusb_get_device_list(NULL, &devs), ==, 1);
|
||||
+ libusb_free_device_list(devs, TRUE);
|
||||
+ assert_libusb_log_msg(fixture, LIBUSB_LOG_LEVEL_ERROR, "\\[usbi_get_context\\].*implicit default");
|
||||
+
|
||||
+ /* Only warns once */
|
||||
+ g_assert_cmpint(libusb_get_device_list(NULL, &devs), ==, 1);
|
||||
+ libusb_free_device_list(devs, TRUE);
|
||||
+ clear_libusb_log(fixture, LIBUSB_LOG_LEVEL_INFO);
|
||||
+
|
||||
+ libusb_init(NULL);
|
||||
+ g_assert_cmpint(libusb_get_device_list(NULL, &devs), ==, 1);
|
||||
+ libusb_exit(NULL);
|
||||
+
|
||||
+ /* We free late, causing a warning from libusb_exit. However,
|
||||
+ * we never see this warning (i.e. test success) because it is on a
|
||||
+ * different context.
|
||||
+ */
|
||||
+ libusb_free_device_list(devs, TRUE);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
test_close_flying(UMockdevTestbedFixture * fixture, UNUSED_DATA)
|
||||
{
|
||||
@@ -932,6 +958,11 @@ main(int argc, char **argv)
|
||||
test_open_close,
|
||||
test_fixture_teardown);
|
||||
|
||||
+ g_test_add("/libusb/implicit-default", UMockdevTestbedFixture, NULL,
|
||||
+ test_fixture_setup_with_canon,
|
||||
+ test_implicit_default,
|
||||
+ test_fixture_teardown);
|
||||
+
|
||||
g_test_add("/libusb/close-flying", UMockdevTestbedFixture, NULL,
|
||||
test_fixture_setup_with_canon,
|
||||
test_close_flying,
|
||||
--
|
||||
2.35.1
|
||||
|
||||
1038
0001-tests-Add-some-umockdev-based-tests.patch
Normal file
1038
0001-tests-Add-some-umockdev-based-tests.patch
Normal file
File diff suppressed because it is too large
Load diff
24
1058.patch
Normal file
24
1058.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
From 2529a3fc4f987f93e0774af865ac7cb6557bd0c2 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Fri, 4 Feb 2022 22:50:28 +0100
|
||||
Subject: [PATCH] core: Unset device ctx if it has been destroyed
|
||||
|
||||
Devices can outlive their context in some cases (in particular with
|
||||
python garbage collection). Guard against this happening by clearing the
|
||||
ctx pointer so that it is not pointing to uninitialized memory.
|
||||
---
|
||||
libusb/core.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/libusb/core.c b/libusb/core.c
|
||||
index 7893ac23..1c1ada14 100644
|
||||
--- a/libusb/core.c
|
||||
+++ b/libusb/core.c
|
||||
@@ -2441,6 +2441,7 @@ void API_EXPORTED libusb_exit(libusb_context *ctx)
|
||||
for_each_device(_ctx, dev) {
|
||||
usbi_warn(_ctx, "device %d.%d still referenced",
|
||||
dev->bus_number, dev->device_address);
|
||||
+ DEVICE_CTX(dev) = NULL;
|
||||
}
|
||||
|
||||
if (!list_empty(&_ctx->open_devs))
|
||||
133
1073.patch
Normal file
133
1073.patch
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
From 1cb11c5ba0d1d1266fe4ddd70f29d081f9d16802 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Tue, 15 Feb 2022 11:13:41 +0100
|
||||
Subject: [PATCH] io: Track device in usbi_transfer
|
||||
|
||||
transfer->dev_handle currently has the behaviour that it will be unset
|
||||
if the device is closed. The sync API uses this fact to catch an error
|
||||
case.
|
||||
|
||||
In other cases, transfer->dev_handle will keep its value, which means
|
||||
that if the transfer lives longer than the device handle, the pointer
|
||||
becomes invalid.
|
||||
|
||||
The transfer does however keep a reference to the device, which owns the
|
||||
pointer to the context. As such, we can track this reference internal to
|
||||
the transfer, and it is set while the transfer is in-flight.
|
||||
|
||||
With this, switch the logging infrastructure to use itransfer->dev->ctx
|
||||
while checking that itransfer->dev is non-NULL.
|
||||
|
||||
Note that this was a regression caused by 6cae9c6dbd74 ("core: update
|
||||
usbi_dbg to take the context as an argument"), specifically when
|
||||
resolving the context while freeing a transfer after closing a device.
|
||||
|
||||
Note that the transfer will now keep a reference to the device until it
|
||||
is free'ed. This allows it to use the correct context for logging even
|
||||
in libusb_free_transfer.
|
||||
|
||||
The alternative to all this would be to just explicitly pass NULL to the
|
||||
log handler in libusb_free_transfer.
|
||||
---
|
||||
libusb/io.c | 20 ++++++++++++--------
|
||||
libusb/libusbi.h | 10 +++++++---
|
||||
2 files changed, 19 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/libusb/io.c b/libusb/io.c
|
||||
index 0d2ac9ea..b919e9d9 100644
|
||||
--- a/libusb/io.c
|
||||
+++ b/libusb/io.c
|
||||
@@ -1344,6 +1344,8 @@ void API_EXPORTED libusb_free_transfer(struct libusb_transfer *transfer)
|
||||
|
||||
itransfer = LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer);
|
||||
usbi_mutex_destroy(&itransfer->lock);
|
||||
+ if (itransfer->dev)
|
||||
+ libusb_unref_device(itransfer->dev);
|
||||
|
||||
priv_size = PTR_ALIGN(usbi_backend.transfer_priv_size);
|
||||
ptr = (unsigned char *)itransfer - priv_size;
|
||||
@@ -1489,9 +1491,15 @@ int API_EXPORTED libusb_submit_transfer(struct libusb_transfer *transfer)
|
||||
{
|
||||
struct usbi_transfer *itransfer =
|
||||
LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer);
|
||||
- struct libusb_context *ctx = TRANSFER_CTX(transfer);
|
||||
+ struct libusb_context *ctx;
|
||||
int r;
|
||||
|
||||
+ assert(transfer->dev_handle);
|
||||
+ if (itransfer->dev)
|
||||
+ libusb_unref_device(itransfer->dev);
|
||||
+ itransfer->dev = libusb_ref_device(transfer->dev_handle->dev);
|
||||
+
|
||||
+ ctx = HANDLE_CTX(transfer->dev_handle);
|
||||
usbi_dbg(ctx, "transfer %p", transfer);
|
||||
|
||||
/*
|
||||
@@ -1551,8 +1559,6 @@ int API_EXPORTED libusb_submit_transfer(struct libusb_transfer *transfer)
|
||||
r = usbi_backend.submit_transfer(itransfer);
|
||||
if (r == LIBUSB_SUCCESS) {
|
||||
itransfer->state_flags |= USBI_TRANSFER_IN_FLIGHT;
|
||||
- /* keep a reference to this device */
|
||||
- libusb_ref_device(transfer->dev_handle->dev);
|
||||
}
|
||||
usbi_mutex_unlock(&itransfer->lock);
|
||||
|
||||
@@ -1659,7 +1665,6 @@ int usbi_handle_transfer_completion(struct usbi_transfer *itransfer,
|
||||
{
|
||||
struct libusb_transfer *transfer =
|
||||
USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
|
||||
- struct libusb_device_handle *dev_handle = transfer->dev_handle;
|
||||
struct libusb_context *ctx = ITRANSFER_CTX(itransfer);
|
||||
uint8_t flags;
|
||||
int r;
|
||||
@@ -1693,7 +1698,6 @@ int usbi_handle_transfer_completion(struct usbi_transfer *itransfer,
|
||||
* this point. */
|
||||
if (flags & LIBUSB_TRANSFER_FREE_TRANSFER)
|
||||
libusb_free_transfer(transfer);
|
||||
- libusb_unref_device(dev_handle->dev);
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -1727,10 +1731,10 @@ int usbi_handle_transfer_cancellation(struct usbi_transfer *itransfer)
|
||||
* function will be called the next time an event handler runs. */
|
||||
void usbi_signal_transfer_completion(struct usbi_transfer *itransfer)
|
||||
{
|
||||
- libusb_device_handle *dev_handle = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer)->dev_handle;
|
||||
+ struct libusb_device *dev = itransfer->dev;
|
||||
|
||||
- if (dev_handle) {
|
||||
- struct libusb_context *ctx = HANDLE_CTX(dev_handle);
|
||||
+ if (dev) {
|
||||
+ struct libusb_context *ctx = DEVICE_CTX(dev);
|
||||
unsigned int event_flags;
|
||||
|
||||
usbi_mutex_lock(&ctx->event_data_lock);
|
||||
diff --git a/libusb/libusbi.h b/libusb/libusbi.h
|
||||
index 158a9af5..5f0d5c2e 100644
|
||||
--- a/libusb/libusbi.h
|
||||
+++ b/libusb/libusbi.h
|
||||
@@ -329,10 +329,11 @@ void usbi_log(struct libusb_context *ctx, enum libusb_log_level level,
|
||||
#endif /* ENABLE_LOGGING */
|
||||
|
||||
#define DEVICE_CTX(dev) ((dev)->ctx)
|
||||
-#define HANDLE_CTX(handle) (DEVICE_CTX((handle)->dev))
|
||||
-#define TRANSFER_CTX(transfer) (HANDLE_CTX((transfer)->dev_handle))
|
||||
+#define HANDLE_CTX(handle) ((handle) ? DEVICE_CTX((handle)->dev) : NULL)
|
||||
#define ITRANSFER_CTX(itransfer) \
|
||||
- (TRANSFER_CTX(USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer)))
|
||||
+ ((itransfer)->dev ? DEVICE_CTX((itransfer)->dev) : NULL)
|
||||
+#define TRANSFER_CTX(transfer) \
|
||||
+ (ITRANSFER_CTX(LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)))
|
||||
|
||||
#define IS_EPIN(ep) (0 != ((ep) & LIBUSB_ENDPOINT_IN))
|
||||
#define IS_EPOUT(ep) (!IS_EPIN(ep))
|
||||
@@ -562,6 +563,9 @@ struct usbi_transfer {
|
||||
uint32_t state_flags; /* Protected by usbi_transfer->lock */
|
||||
uint32_t timeout_flags; /* Protected by the flying_stransfers_lock */
|
||||
|
||||
+ /* This is used for logging mostly. As long as it is set, the */
|
||||
+ struct libusb_device *dev;
|
||||
+
|
||||
/* this lock is held during libusb_submit_transfer() and
|
||||
* libusb_cancel_transfer() (allowing the OS backend to prevent duplicate
|
||||
* cancellation, submission-during-cancellation, etc). the OS backend
|
||||
25
changelog
25
changelog
|
|
@ -1,12 +1,27 @@
|
|||
* Fri Sep 30 2022 Kate Hsuan <hpa@redhat.com> 1.0.26-1
|
||||
- Update to 1.0.26
|
||||
* Mon Feb 28 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-8
|
||||
- Fix changelog and release version
|
||||
|
||||
* Mon Feb 28 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-7
|
||||
- Update patches and fix spec file
|
||||
|
||||
* Tue Feb 22 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-6
|
||||
- Work around API misuse in gutenprint
|
||||
|
||||
* Tue Feb 22 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-5
|
||||
- Add umockdev based tests
|
||||
|
||||
* Tue Feb 22 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-4
|
||||
- Update regression fix patch for late transfer free's
|
||||
|
||||
* Tue Feb 15 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-3
|
||||
- Fix a crash if a transfer outlives closing the device
|
||||
|
||||
* Thu Feb 10 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-2
|
||||
- Fix a crash after libusb_exit API has been misused
|
||||
|
||||
* Wed Feb 02 2022 Benjamin Berg <bberg@redhat.com> 1.0.25-1
|
||||
- Update to 1.0.25
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.24-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.24-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,4 @@ product_versions:
|
|||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
- !PassingTestCaseRule {test_case_name: dist.depcheck}
|
||||
|
|
|
|||
117
libusb1.keyring
117
libusb1.keyring
|
|
@ -1,117 +0,0 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Comment: Hostname:
|
||||
Version: Hockeypuck 2.2
|
||||
|
||||
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
|
||||
=sExt
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
99
libusb1.spec
99
libusb1.spec
|
|
@ -1,32 +1,29 @@
|
|||
%bcond mingw %[0%{?fedora} && !0%{?flatpak}]
|
||||
|
||||
Summary: Library for accessing USB devices
|
||||
Name: libusb1
|
||||
Version: 1.0.29
|
||||
Release: %autorelease
|
||||
Version: 1.0.25
|
||||
Release: %autorelease -b 7
|
||||
Source0: https://github.com/libusb/libusb/releases/download/v%{version}/libusb-%{version}.tar.bz2
|
||||
Source1: https://github.com/libusb/libusb/releases/download/v%{version}/libusb-%{version}.tar.bz2.asc
|
||||
Source2: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xc68187379b23de9efc46651e2c80ff56c6830a0e#/%{name}.keyring
|
||||
License: LGPL-2.1-or-later
|
||||
License: LGPLv2+
|
||||
URL: http://libusb.info
|
||||
BuildRequires: systemd-devel doxygen libtool
|
||||
BuildRequires: umockdev-devel
|
||||
BuildRequires: make
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gnupg2
|
||||
# libusbx was removed in F34
|
||||
Provides: libusbx = %{version}-%{release}
|
||||
Obsoletes: libusbx < %{version}-%{release}
|
||||
|
||||
%if %{with mingw}
|
||||
BuildRequires: mingw32-filesystem >= 95
|
||||
BuildRequires: mingw32-gcc-c++
|
||||
BuildRequires: mingw64-filesystem >= 95
|
||||
BuildRequires: mingw64-gcc-c++
|
||||
# mingw-libusbx was removed in F42
|
||||
Provides: mingw-libusbx = %{version}-%{release}
|
||||
Obsoletes: mingw-libusbx < %{version}-%{release}
|
||||
%endif
|
||||
# Fix a crash after libusb_exit API has been misused
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2050638
|
||||
Patch0001: https://github.com/libusb/libusb/pull/1058.patch
|
||||
# Fix a crash if a transfer outlives closing the device
|
||||
Patch0002: https://github.com/libusb/libusb/pull/1073.patch
|
||||
# Add umockdev based tests from https://github.com/libusb/libusb/pull/1078
|
||||
Patch0003: 0001-tests-Add-some-umockdev-based-tests.patch
|
||||
|
||||
# Work around API misuse in gutenprint
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2056326
|
||||
Patch9999: 0001-core-Install-first-context-as-implicit-default.patch
|
||||
|
||||
%description
|
||||
This package provides a way for applications to access USB devices.
|
||||
|
|
@ -70,40 +67,14 @@ Obsoletes: libusbx-tests-examples < %{version}-%{release}
|
|||
%description tests-examples
|
||||
This package contains tests and examples for %{name}.
|
||||
|
||||
%if %{with mingw}
|
||||
%package -n mingw32-%{name}
|
||||
Summary: MinGW Windows %{name} library
|
||||
Provides: mingw32-libusbx = %{version}-%{release}
|
||||
Obsoletes: mingw32-libusbx < %{version}-%{release}
|
||||
|
||||
%description -n mingw32-%{name}
|
||||
MinGW Windows %{name} library.
|
||||
|
||||
%package -n mingw64-%{name}
|
||||
Summary: MinGW Windows %{name} library
|
||||
Provides: mingw64-libusbx = %{version}-%{release}
|
||||
Obsoletes: mingw64-libusbx < %{version}-%{release}
|
||||
|
||||
%description -n mingw64-%{name}
|
||||
MinGW Windows %{name} library.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
|
||||
%autosetup -p1 -n libusb-%{version}
|
||||
chmod -x examples/*.c
|
||||
mkdir -p m4
|
||||
sed -i '/AM_LDFLAGS = -static/d' tests/Makefile.am
|
||||
autoscan
|
||||
aclocal
|
||||
autoconf
|
||||
automake --add-missing
|
||||
|
||||
|
||||
%build
|
||||
mkdir %{_target_os}
|
||||
pushd %{_target_os}
|
||||
%define _configure ../configure
|
||||
%configure --disable-static --enable-examples-build
|
||||
%{make_build}
|
||||
pushd doc
|
||||
|
|
@ -112,23 +83,12 @@ popd
|
|||
pushd tests
|
||||
make
|
||||
popd
|
||||
popd
|
||||
|
||||
%if %{with mingw}
|
||||
# MinGW build
|
||||
%mingw_configure --disable-static
|
||||
%mingw_make_build
|
||||
%endif
|
||||
|
||||
|
||||
%install
|
||||
pushd %{_target_os}
|
||||
%{make_install}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_bindir}
|
||||
install -m 755 tests/.libs/init_context $RPM_BUILD_ROOT%{_bindir}/libusb-test-init_context
|
||||
install -m 755 tests/.libs/set_option $RPM_BUILD_ROOT%{_bindir}/libusb-test-set_option
|
||||
install -m 755 tests/.libs/stress $RPM_BUILD_ROOT%{_bindir}/libusb-test-stress
|
||||
install -m 755 tests/.libs/stress_mt $RPM_BUILD_ROOT%{_bindir}/libusb-test-stress_mt
|
||||
install -m 755 tests/.libs/umockdev $RPM_BUILD_ROOT%{_bindir}/libusb-test-umockdev
|
||||
install -m 755 examples/.libs/testlibusb \
|
||||
$RPM_BUILD_ROOT%{_bindir}/libusb-test-libusb
|
||||
|
|
@ -139,23 +99,14 @@ for i in fxload listdevs xusb; do
|
|||
$RPM_BUILD_ROOT%{_bindir}/libusb-example-$i
|
||||
done
|
||||
rm $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
popd
|
||||
|
||||
%if %{with mingw}
|
||||
%mingw_make_install
|
||||
%endif
|
||||
|
||||
|
||||
%check
|
||||
pushd %{_target_os}
|
||||
LD_LIBRARY_PATH=libusb/.libs ldd $RPM_BUILD_ROOT%{_bindir}/libusb-test-stress
|
||||
LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-test-init_context
|
||||
LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-test-set_option
|
||||
LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-test-stress
|
||||
LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-test-umockdev
|
||||
LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-test-libusb
|
||||
LD_LIBRARY_PATH=libusb/.libs $RPM_BUILD_ROOT%{_bindir}/libusb-example-listdevs
|
||||
popd
|
||||
|
||||
|
||||
%ldconfig_scriptlets
|
||||
|
|
@ -172,36 +123,16 @@ popd
|
|||
%{_libdir}/pkgconfig/libusb-1.0.pc
|
||||
|
||||
%files devel-doc
|
||||
%doc %{_target_os}/doc/api-1.0 examples/*.c
|
||||
%doc doc/api-1.0 examples/*.c
|
||||
|
||||
%files tests-examples
|
||||
%{_bindir}/libusb-example-fxload
|
||||
%{_bindir}/libusb-example-listdevs
|
||||
%{_bindir}/libusb-example-xusb
|
||||
%{_bindir}/libusb-test-init_context
|
||||
%{_bindir}/libusb-test-set_option
|
||||
%{_bindir}/libusb-test-stress
|
||||
%{_bindir}/libusb-test-stress_mt
|
||||
%{_bindir}/libusb-test-umockdev
|
||||
%{_bindir}/libusb-test-libusb
|
||||
|
||||
%if %{with mingw}
|
||||
%files -n mingw32-libusb1
|
||||
%license COPYING
|
||||
%doc AUTHORS README ChangeLog
|
||||
%{mingw32_bindir}/libusb-1.0.dll
|
||||
%{mingw32_includedir}/libusb-1.0
|
||||
%{mingw32_libdir}/*.dll.a
|
||||
%{mingw32_libdir}/pkgconfig/libusb-1.0.pc
|
||||
|
||||
%files -n mingw64-libusb1
|
||||
%license COPYING
|
||||
%doc AUTHORS README ChangeLog
|
||||
%{mingw64_bindir}/libusb-1.0.dll
|
||||
%{mingw64_includedir}/libusb-1.0
|
||||
%{mingw64_libdir}/*.dll.a
|
||||
%{mingw64_libdir}/pkgconfig/libusb-1.0.pc
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
summary: Basic smoke test
|
||||
discover:
|
||||
how: fmf
|
||||
prepare:
|
||||
- name: packages
|
||||
how: install
|
||||
package:
|
||||
- glibc-common
|
||||
- libusb1-tests-examples
|
||||
execute:
|
||||
how: tmt
|
||||
3
sources
3
sources
|
|
@ -1,2 +1 @@
|
|||
SHA512 (libusb-1.0.29.tar.bz2) = 04f8bda8197c9ecf52709609b8fbfea762fd82ddb5cde153a7630b0e8ed557d42da8cbc44f2f593aa22fdd0762e16716300565d67adb0c5240d7f3723321f690
|
||||
SHA512 (libusb-1.0.29.tar.bz2.asc) = 57e12d3a58d8ac418e28f6d83a7cb8c0268ed5d2752707796aa5bf1f8bcf2a8083aa664d36ffcdcc96da62153afa792728662fa8230be9e2865d4a37003e199d
|
||||
SHA512 (libusb-1.0.25.tar.bz2) = f1e6e5577d4bd1ff136927dc66c615014a06ac332ddd797b1d1ad5f7b68e2405e66068dcb210e2f0ae3e31681603ef72efbd88bf7fbe0eb41ce700fdc3f92f9d
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
summary:
|
||||
Test for libusb1
|
||||
test: bash ./run.sh
|
||||
|
||||
|
||||
|
||||
13
tests/tests.yml
Normal file
13
tests/tests.yml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
- hosts: localhost
|
||||
roles:
|
||||
# Running these tests does not require the sources
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- atomic
|
||||
- classic
|
||||
tests:
|
||||
- test:
|
||||
dir: .
|
||||
run: run.sh
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue