Compare commits
10 Commits
a9f03e1b49
...
dd873a5e2b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd873a5e2b | ||
|
|
2a72f0fa37 | ||
|
|
8326fc7dfa | ||
|
|
6542804f04 | ||
|
|
f3856fac2b | ||
|
|
f5406f24af | ||
|
|
1249287858 | ||
|
|
c4cf89a60b | ||
|
|
3c36cf92ad | ||
|
|
199be4a759 |
51
0000-Link-with-znodelete-to-disallow-unloading.patch
Normal file
51
0000-Link-with-znodelete-to-disallow-unloading.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
From a9e8373030b39aadfc33af67443085df83e9e344 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Berrange <berrange@redhat.com>
|
||||||
|
Date: Wed, 14 Aug 2013 16:00:56 +0200
|
||||||
|
Subject: [libusb-compat PATCH] Link with -znodelete to disallow unloading
|
||||||
|
|
||||||
|
Since libusb-0.1 did not have any init / exit function, code using the
|
||||||
|
libusb-0.1 API will not call libusb_exit.
|
||||||
|
|
||||||
|
Now, libgphoto uses libusb and will dlopen() and dlclose() it. Unfortunately
|
||||||
|
since there is no way to ensure libusb_close() is called, when libgphoto
|
||||||
|
dlcloses the libusb.so library, the thread from libusbx.so will not be
|
||||||
|
stopped. So a thread will remain running, executing code from a memory
|
||||||
|
region that has now been freed. Crash-tastic results ensue.
|
||||||
|
|
||||||
|
I don't see a good way to fix this from libusb or libusbx, given the need to
|
||||||
|
preserve the existing API of libusb.
|
||||||
|
|
||||||
|
If, however, we link libusb.so using -znodelete, we will prevent it from
|
||||||
|
ever being unloaded, despite the dlclose() calls. This is not ideal, but
|
||||||
|
better than allowing it to be unloaded which is a guaranteed crash.
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
libusb/Makefile.am | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/libusb/Makefile.am b/libusb/Makefile.am
|
||||||
|
index 33a609a..a20fdb5 100644
|
||||||
|
--- a/libusb/Makefile.am
|
||||||
|
+++ b/libusb/Makefile.am
|
||||||
|
@@ -5,5 +5,5 @@ libusb_la_SOURCES = core.c usbi.h
|
||||||
|
libusb_la_CFLAGS = -fvisibility=hidden $(AM_CFLAGS) $(LIBUSB_1_0_CFLAGS)
|
||||||
|
libusb_la_LIBADD = $(LIBUSB_1_0_LIBS)
|
||||||
|
libusb_la_LDFLAGS = -version-info $(LT_MAJOR):$(LT_REVISION):$(LT_AGE) \
|
||||||
|
- -release 0.1
|
||||||
|
+ -release 0.1 -Wl,-z -Wl,nodelete
|
||||||
|
|
||||||
|
--- libusb-compat-0.1.5.orig/libusb/Makefile.in 2013-05-21 00:40:35.000000000 +0100
|
||||||
|
+++ libusb-compat-0.1.5.orig/libusb/Makefile.in 2013-08-13 22:20:32.831532426 +0100
|
||||||
|
@@ -297,7 +297,7 @@ libusb_la_SOURCES = core.c usbi.h
|
||||||
|
libusb_la_CFLAGS = -fvisibility=hidden $(AM_CFLAGS) $(LIBUSB_1_0_CFLAGS)
|
||||||
|
libusb_la_LIBADD = $(LIBUSB_1_0_LIBS)
|
||||||
|
libusb_la_LDFLAGS = -version-info $(LT_MAJOR):$(LT_REVISION):$(LT_AGE) \
|
||||||
|
- -release 0.1
|
||||||
|
+ -release 0.1 -Wl,-z -Wl,nodelete
|
||||||
|
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
55
0001-Revert-use-atexit-to-call-libusb_exit.patch
Normal file
55
0001-Revert-use-atexit-to-call-libusb_exit.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
From eb590b4dac00a5188b93e1d6ebdd60b06f9ab3d7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Thu, 13 Feb 2014 17:25:27 +0100
|
||||||
|
Subject: [libusb-compat PATCH 2/2] Revert "use atexit() to call libusb_exit()"
|
||||||
|
|
||||||
|
The use of atexit() breaks various users of libusb-compat,
|
||||||
|
see ie: https://bugzilla.redhat.com/show_bug.cgi?id=1003193
|
||||||
|
|
||||||
|
This reverts commit 0be16b8dd25733d242ae32b57823a9513ec21353.
|
||||||
|
|
||||||
|
Closes libusbx/libusb-compat-0.1#2
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
libusb/core.c | 10 ----------
|
||||||
|
1 file changed, 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libusb/core.c b/libusb/core.c
|
||||||
|
index c0ccb1f..2dd1b5f 100644
|
||||||
|
--- a/libusb/core.c
|
||||||
|
+++ b/libusb/core.c
|
||||||
|
@@ -21,7 +21,6 @@
|
||||||
|
#include <config.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
-#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
@@ -137,13 +136,6 @@ static void usbi_log(enum usbi_log_level level, const char *function,
|
||||||
|
fprintf(stream, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void _usb_finalize(void) {
|
||||||
|
- if (ctx) {
|
||||||
|
- libusb_exit(ctx);
|
||||||
|
- ctx = NULL;
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
API_EXPORTED void usb_init(void)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
@@ -159,8 +151,6 @@ API_EXPORTED void usb_init(void)
|
||||||
|
/* usb_set_debug can be called before usb_init */
|
||||||
|
if (usb_debug)
|
||||||
|
libusb_set_debug(ctx, 3);
|
||||||
|
-
|
||||||
|
- atexit(_usb_finalize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.8.5.3
|
||||||
|
|
||||||
39
README.md
39
README.md
@ -1,39 +0,0 @@
|
|||||||
# libusb
|
|
||||||
|
|
||||||
#### 介绍
|
|
||||||
{**以下是码云平台说明,您可以替换此简介**
|
|
||||||
码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
|
||||||
无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
|
||||||
|
|
||||||
#### 软件架构
|
|
||||||
软件架构说明
|
|
||||||
|
|
||||||
|
|
||||||
#### 安装教程
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 使用说明
|
|
||||||
|
|
||||||
1. xxxx
|
|
||||||
2. xxxx
|
|
||||||
3. xxxx
|
|
||||||
|
|
||||||
#### 参与贡献
|
|
||||||
|
|
||||||
1. Fork 本仓库
|
|
||||||
2. 新建 Feat_xxx 分支
|
|
||||||
3. 提交代码
|
|
||||||
4. 新建 Pull Request
|
|
||||||
|
|
||||||
|
|
||||||
#### 码云特技
|
|
||||||
|
|
||||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
||||||
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
||||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
|
||||||
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
|
||||||
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
||||||
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
||||||
BIN
libusb-compat-0.1.5.tar.bz2
Normal file
BIN
libusb-compat-0.1.5.tar.bz2
Normal file
Binary file not shown.
75
libusb.spec
Normal file
75
libusb.spec
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
Name: libusb
|
||||||
|
Epoch: 1
|
||||||
|
Version: 0.1.5
|
||||||
|
Release: 18
|
||||||
|
Summary: USB Library
|
||||||
|
License: LGPLv2+
|
||||||
|
URL: http://sourceforge.net/projects/libusb/
|
||||||
|
Source0: http://downloads.sourceforge.net/libusb/libusb-compat-%{version}.tar.bz2
|
||||||
|
Patch0: 0000-Link-with-znodelete-to-disallow-unloading.patch
|
||||||
|
Patch1: 0001-Revert-use-atexit-to-call-libusb_exit.patch
|
||||||
|
BuildRequires: gcc libusb1-devel
|
||||||
|
|
||||||
|
%description
|
||||||
|
This package provides a library that allows userspace access to USB devices.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: USB Library
|
||||||
|
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package contains the files needed to develop applications that use libusb-0.1.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n libusb-compat-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure --disable-static
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%check
|
||||||
|
make check
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc AUTHORS COPYING ChangeLog NEWS README
|
||||||
|
%{_libdir}/libusb-0.1.so.*
|
||||||
|
%{_libdir}/libusb.la
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_bindir}/*
|
||||||
|
%{_includedir}/*
|
||||||
|
%{_libdir}/pkgconfig/*
|
||||||
|
%{_libdir}/libusb.so
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Jul 30 2021 chenyanpanHW <chenyanpan@huawei.com> - 0.1.5-18
|
||||||
|
- DESC: delete -Sgit from %autosetup, and delete BuildRequires git
|
||||||
|
|
||||||
|
* Wed Nov 4 2020 lixiaokeng <lixiaokeng@hauwei.com> - 1:0.1.5-17
|
||||||
|
- add make check
|
||||||
|
|
||||||
|
* Sun Jul 5 2020 Zhiqiang Liu <lzhq28@mail.ustc.edu.cn> - 1:0.1.5-16
|
||||||
|
- remove useless readme files.
|
||||||
|
|
||||||
|
* Tue Sep 3 2019 openEuler Buildteam <buildteam@openeuler.org> - 1:0.1.5-15
|
||||||
|
- Type:enhancemnet
|
||||||
|
- ID:NA
|
||||||
|
- SUG:restart
|
||||||
|
- DESCi:openEuler Debranding
|
||||||
|
|
||||||
|
* Wed Aug 21 2019 openEuler Buildteam <buildteam@openeuler.org> - 1:0.1.5-14
|
||||||
|
- Type:other
|
||||||
|
- ID:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:rename patches
|
||||||
|
|
||||||
|
* Mon Apr 15 2019 openEuler Buildteam <buildteam@openeuler.org> - 1:0.1.5-13
|
||||||
|
- Package Initialization
|
||||||
|
|
||||||
5
libusb.yaml
Normal file
5
libusb.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
version_control: github
|
||||||
|
src_repo: libusb/libusb
|
||||||
|
tag_prefix: ^v
|
||||||
|
seperator: .
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user