#
# spec file for package libusb-compat
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           libusb-compat
Url:            http://libusb.info/
Summary:        libusb-1.0 Compatibility Layer for libusb-0.1
License:        BSD-3-Clause and LGPL-2.1+
Group:          Development/Libraries/C and C++
Version:        0.1.5
Release:        36.2
Source:         http://downloads.sourceforge.net/project/libusb/%{name}-0.1/%{name}-%{version}/%{name}-%{version}.tar.bz2
Source1:        baselibs.conf
Source2:        %{name}.rpmlintrc
# PATCH-FIX-UPSTREAM libusb-compat-update-news.patch sbrabec@suse.cz -- Update news for 0.1.5.
Patch0:         libusb-compat-update-news.patch
# PATCH-FIX-UPSTREAM libusb-compat-revert-atexit.patch sbrabec@suse.cz -- Revert atexit().
Patch1:         libusb-compat-revert-atexit.patch
# PATCH-FIX-UPSTREAM libusb-compat-add-destructor.patch sbrabec@suse.cz -- Add destructor.
Patch2:         libusb-compat-add-destructor.patch
# PATCH-FEATURE-OPENSUSE libusb-compat-hide-libusb-1_0.patch boo#596411 sbrabec@suse.cz -- Hide libusb-1.0 symbols to prevent symbol clash.
Patch3:         libusb-compat-hide-libusb-1_0.patch
BuildRequires:  pkg-config
BuildRequires:  pkgconfig(libusb-1.0)
# Needed for libusb-compat-hide-libusb-1_0.patch:
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  libtool
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%define debug_package_requires libusb-0_1-5 = %{version}-%{release}

%description
A compatibility layer allowing applications written for libusb-0.1 to
work with libusb-1.0. libusb-compat-0.1 attempts to look, feel, smell
and walk like libusb-0.1.

%package -n libusb-0_1-4
# A better version than 0.1.12 provided by libusb-0_1:
Version:        0.1.13
Release:        36.2
Summary:        libusb-1.0 Compatibility Library for libusb-0.1
Group:          System/Libraries
# Special symbol for packages, that use libusb-0.1 API, but use libusb-1.0 features:
Provides:       libusb-1_0-features-in-0_1-api
# Update of libusb from openSUSE < 11.1 SLE < 11:
# This symbol is also required by several third party packages!
Provides:       libusb = 0.1.13
Obsoletes:      libusb < 0.1.13
# libusb-compat-hide-libusb-1_0.patch hides this requirement
#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
work with libusb-1.0. libusb-compat-0.1 attempts to look, feel, smell
and walk like libusb-0.1.

%package devel
Summary:        libusb-1.0 Compatibility Layer for libusb-0.1
Group:          Development/Libraries/C and C++
Requires:       glibc-devel
Requires:       libusb-0_1-4 = 0.1.13
Requires:       libusb-1_0-devel
Requires:       libusb-1_0-features-in-0_1-api
# Update of libusb from openSUSE < 11.1 SLE < 11:
Provides:       libusb-devel = 0.1.13
Obsoletes:      libusb-devel < 0.1.13
Conflicts:      libusb-devel < 0.1.13

%description devel
A compatibility layer allowing applications written for libusb-0.1 to
work with libusb-1.0. libusb-compat-0.1 attempts to look, feel, smell
and walk like libusb-0.1.

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1

%build
autoreconf -f -i
%configure --disable-static
make %{?_smp_mflags}

%install
%make_install
rm %{buildroot}%{_libdir}/*.la

%post -n libusb-0_1-4 -p /sbin/ldconfig

%postun -n libusb-0_1-4 -p /sbin/ldconfig

%files -n libusb-0_1-4
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog LICENSE NEWS README
%{_libdir}/*.so.*

%files devel
%defattr(-,root,root)
%{_bindir}/*-config
%{_includedir}/*.h
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc

%changelog
* Thu Jul  9 2015 sbrabec@suse.com
- Fix libusb-compat-hide-libusb-1_0.patch: Ensure that inline
  functions inside libusb-1.0/libusb.h use wrapped calls.
  It should fix all triggered build failures.
* Sat Jun 20 2015 dimstar@opensuse.org
- Currently disable libusb-compat-hide-libusb-1_0.patch: it causes
  many more problems when linking to libusb-compat.
* Wed Jun 10 2015 sbrabec@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.
* Fri May 29 2015 schwab@suse.de
- Fix dependencies
* Tue May 26 2015 dgutu@suse.com
- Added PowerPC architectures to spec file
* Wed Apr 22 2015 jengelh@inai.de
- remove --with-pic, it is implicit for shared libraries anyway
  (and we do not build static libraries). Use %%_smp_mflags for
  parallel build.
* Mon Apr 20 2015 sbrabec@suse.cz
- Add upstream fixes:
  * Update NEWS (libusb-compat-update-news.patch).
  * Replace atexit() by library destructor
    (libusb-compat-revert-atexit.patch,
    libusb-compat-add-destructor.patch).
- Hide libusb-1.0 symbols to prevent symbol clash
  (libusb-compat-hide-libusb-1_0.patch, boo#596411).
* Tue Jan 28 2014 sbrabec@suse.cz
- New upstream, new home page.
- Update to version 0.1.5:
  * devel package fixes
  * memory leak at exit fix
  * for more see ChangeLog
- Add libusb-compat.rpmlintrc.
* Mon Apr 15 2013 mmeister@suse.com
- Added url as source.
  Please see http://en.opensuse.org/SourceUrls
* Sat Feb  2 2013 coolo@suse.com
- update license to new format
* Thu Apr 26 2012 sbrabec@suse.cz
- Update to version 0.1.4:
  * Fix usb_*_write() prototypes.
  * Fix usb_detach_kernel_driver_np() error mapping
    (libusb#42, bnc#683307).
* Wed Apr  4 2012 sbrabec@suse.cz
- Properly emulate error codes of usb_detach_kernel_driver_np()
  (bnc#683307).
* Sun Feb 12 2012 crrodriguez@opensuse.org
- Libraries back to %%{_libdir}, /usr merge project
* Sun Nov 20 2011 coolo@suse.com
- add libtool as buildrequire to avoid implicit dependency
* Wed Jun  1 2011 seife+obs@b1-systems.com
- move libusb-compat from /usr to / to make it usable for other
  packages and work around rpmlint stupidity
* Tue Dec 15 2009 jengelh@medozas.de
- add baselibs.conf as a source
* Thu Aug  6 2009 sbrabec@suse.cz
- Updated to version 0.1.3:
  * improve libusb-config for cross-compiling
- Removed support for parallel installation with libusb-0.1.
* Wed Jul  8 2009 sbrabec@suse.cz
- Set shared library package version to 0.1.13 to be higher than
  the last libusb0 (bnc#519311#c8).
* Mon Jun 29 2009 sbrabec@suse.cz
- Fixed build with the latest autotools.
* Mon Jun 22 2009 sbrabec@suse.cz
- Updated to version 0.1.2:
  * handle libusb initialization failure
* Wed Jun 17 2009 meissner@suse.de
- Fixed crashes of libgphoto2 (and other usb_find_busses() and
  usb_find_devices() users) when no USB device is in the system
  (like in a chroot without /sys, or on s390 or similar).
  bnc#432129 (again)
* Fri Jun  5 2009 sbrabec@suse.cz
- Updated to version 0.1.1:
  * improvements to match libusb-0.1 endpoint addressing behaviour
* Fri Apr 17 2009 sbrabec@suse.cz
- Ensure use of read EP in usb_interrupt_read() (bnc#443861).
* Wed Apr 15 2009 sbrabec@suse.cz
- Fixed devel dependencies.
* Wed Apr 15 2009 sbrabec@suse.cz
- Worked around 'Duplicate License entries' breakage in Autobuild.
* Tue Apr 14 2009 sbrabec@suse.cz
- Updated to version 0.1.0:
  * Bug fixes.
  * Documentation of incompatibilities with libusb-0.1.
- Implemented rpm build option FULLY_REPLACE_LIBUSB_0_1.
- Another attempt to replace libusb-0.1 completely.
* Wed Nov 12 2008 sbrabec@suse.cz
- Changed library soname to libusb-0.1 incompatible libusb-0.1.so.5
  allowing to install both in paralel. (bnc#443861, works around
  also bnc#432129 and bnc#439574)
- Confllict with libusb-devel instead of obsoleting it.
* Wed Oct 22 2008 sbrabec@suse.cz
- Properly obsolete old implementation of the library (bnc#437768).
* Wed Oct  8 2008 meissner@suse.de
- handle case where usb_init() failed (ctx NULL), so
  we do not crash. bnc#432129
- added more NULL ptr checks, where older libusb were
  more graceful and did not crash. bnc#432129
* Mon Oct  6 2008 sbrabec@suse.cz
- Added baselibs.conf (bnc#432304).
* Thu Sep 25 2008 ro@suse.de
- fix debug package requires
* Wed Sep 10 2008 sbrabec@suse.cz
- New package providing compatibility layer for libusb.