Hello community, here is the log from the commit of package libusb-compat for openSUSE:Factory checked in at 2015-06-12 20:28:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libusb-compat (Old) and /work/SRC/openSUSE:Factory/.libusb-compat.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libusb-compat" Changes: -------- --- /work/SRC/openSUSE:Factory/libusb-compat/libusb-compat.changes 2015-06-01 09:38:39.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libusb-compat.new/libusb-compat.changes 2015-06-12 20:28:45.000000000 +0200 @@ -1,0 +2,8 @@ +Wed Jun 10 19:21:28 CEST 2015 - sbra...@suse.com + +- Fix libusb-compat-hide-libusb-1_0.patch autoconf checks, + especially with -Wl,--as-needed. +- Use architecture-independent way to get libusb-1.0.so.0 rpm + symbol. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libusb-compat.spec ++++++ --- /var/tmp/diff_new_pack.HsIDxT/_old 2015-06-12 20:28:46.000000000 +0200 +++ /var/tmp/diff_new_pack.HsIDxT/_new 2015-06-12 20:28:46.000000000 +0200 @@ -61,11 +61,7 @@ Provides: libusb = 0.1.13 Obsoletes: libusb < 0.1.13 # libusb-compat-hide-libusb-1_0.patch hides this requirement -%ifarch aarch64 ia64 x86_64 s390x ppc64 ppc64le -Requires: libusb-1.0.so.0()(64bit) -%else -Requires: libusb-1.0.so.0 -%endif +Requires: %(rpm -q --provides libusb-1_0-0 | grep libusb-1.0.so.0) %description -n libusb-0_1-4 A compatibility layer allowing applications written for libusb-0.1 to ++++++ libusb-compat-hide-libusb-1_0.patch ++++++ --- /var/tmp/diff_new_pack.HsIDxT/_old 2015-06-12 20:28:46.000000000 +0200 +++ /var/tmp/diff_new_pack.HsIDxT/_new 2015-06-12 20:28:46.000000000 +0200 @@ -1,15 +1,20 @@ -https://sourceforge.net/p/libusb/mailman/message/33485838/ +https://sourceforge.net/p/libusb/mailman/message/34106038/ -Date: Mon, 23 Feb 2015 20:11:03 +0100 From: Stanislav Brabec <sbra...@suse.cz> -To: libusb-de...@lists.sourceforge.net -Subject: [libusb] [libusb-compat-0.1][PATCH] Prevent libusb-1.0 library symbol clash +To: "libusb-de...@lists.sourceforge.net" <libusb-de...@lists.sourceforge.net> +Date: Tue, 12 May 2015 17:19:05 +0200 +Subject: [libusb] [PATCH][libusb-compat-0.1][TRY2] Prevent libusb-1.0 + library symbol clash +List-Id: Development discussion for libusb <libusb-devel.lists.sourceforge.net> libusb-1.0 uses functions like libusb_open. These names are generic, and there are applications using libusb-0.1 using these names for its own functions (e. g. scanbuttond). If such applications uses libusb-compat, it crashes due to symbol clash. +Such clash is easy to fix in Open Source applications, but impossible to +fix inside closed source applications. + Dynamic linker does not allow to hide symbols from dependent library. This could be worked around by loading this library later by dlopen() with RTLD_LOCAL flag. @@ -29,20 +34,22 @@ Reference: https://bugzilla.opensuse.org/show_bug.cgi?id=596411 + +Signed-off-by: Stanislav Brabec <sbra...@suse.cz> --- configure.ac | 14 ++++ libusb/Makefile.am | 6 +- libusb/core.c | 14 ++++ libusb/libusb-dload.h | 203 ++++++++++++++++++++++++++++++++++++++++++++++ - m4/au_check_lib_soname.m4 | 39 +++++++++ + m4/au_check_lib_soname.m4 | 43 ++++++++++ m4/au_have_gnu_errno.m4 | 17 ++++ - 6 files changed, 292 insertions(+), 1 deletion(-) + 6 files changed, 296 insertions(+), 1 deletion(-) create mode 100644 libusb/libusb-dload.h create mode 100644 m4/au_check_lib_soname.m4 create mode 100644 m4/au_have_gnu_errno.m4 diff --git a/configure.ac b/configure.ac -index debfef2..8a2750b 100644 +index debfef2..3c26903 100644 --- a/configure.ac +++ b/configure.ac @@ -26,6 +26,20 @@ PKG_CHECK_MODULES([LIBUSB_1_0], libusb-1.0 >= 0.9.1) @@ -53,7 +60,7 @@ +ac_save_LIBS="$LIBS" +AC_CHECK_HEADER([dlfcn.h], [ + AC_CHECK_LIB([dl], [dlopen], [ -+ AC_CHECK_FUNC([dl], [dlsym], [ ++ AC_CHECK_LIB([dl], [dlsym], [ + AU_CHECK_LIB_SONAME([LIBUSB_1_0], [usb-1.0], [libusb_open])])])]) +LIBS="$ac_save_LIBS" +if test x"$LIBUSB_1_0_SONAME" != x ; then @@ -334,10 +341,10 @@ +}; diff --git a/m4/au_check_lib_soname.m4 b/m4/au_check_lib_soname.m4 new file mode 100644 -index 0000000..6b49fec +index 0000000..d7e8774 --- /dev/null +++ b/m4/au_check_lib_soname.m4 -@@ -0,0 +1,39 @@ +@@ -0,0 +1,43 @@ +m4_pattern_allow([^AU_]) + +# AU_CHECK_LIB_SONAME(VARIABLE, LIBRARY, FUNCTION, @@ -361,7 +368,11 @@ + AU_CHECK_LIB_SONAME_LIBS="$LIBS" + LIBS="$LIBS $7 -l$2" + shrext_regexp=`echo "$shrext_cmds" | sed 's/\./\\\\./'` -+ AC_TRY_LINK([], [], ++ AC_TRY_LINK([ ++void libusb_close(void *); ++], [ ++libusb_close((void*)0); ++], + [AS_VAR_SET([ac_Lib_SONAME], [`ldd conftest$ac_exeext | grep 'lib[$2]'$shrext_regexp | sed 's/^@<:@ \t@:>@*lib[$2]'$shrext_regexp'/lib[$2]'$shrext_regexp'/;s/@<:@ \t@:>@.*$//'`])]) + LIBS="$AU_CHECK_LIB_SONAME_LIBS" + AS_IF([test x"$ac_Lib_SONAME" = x ], @@ -401,17 +412,4 @@ + ]) +]) -- -2.3.0 - --- -Best Regards / S pozdravem, - -Stanislav Brabec -software developer ---------------------------------------------------------------------- -SUSE LINUX, s. r. o. e-mail: sbrabec@... -Lihovarská 1060/12 tel: +49 911 7405384547 -190 00 Praha 9 fax: +420 284 084 001 -Czech Republic http://www.suse.cz/ -PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76 - +2.3.7