Fix PTP devices not working in USB-3 ports (rhbz#819918)

- Cleanup spec-file
This commit is contained in:
Hans de Goede 2013-05-02 10:55:50 +02:00
parent fbe46a8dce
commit fbbe8e12aa
2 changed files with 63 additions and 45 deletions

19
libgphoto2-ptp-usb3.patch Normal file
View File

@ -0,0 +1,19 @@
https://sourceforge.net/p/gphoto/code/14268/
disable the default clear halt condition code.
this does not work on some USB 3 controllers.
--- a/camlibs/ptp2/library.c
+++ b/camlibs/ptp2/library.c
@@ -1730,7 +1730,9 @@
params = NULL;
camera->pl = NULL;
}
- if ((camera->port!=NULL) && (camera->port->type == GP_PORT_USB)) {
+ /* This code hangs USB 3 devices after the first bulk image transmission.
+ * For some unknown reason. */
+ if (0 && (camera->port!=NULL) && (camera->port->type == GP_PORT_USB)) {
/* clear halt */
gp_port_usb_clear_halt
(camera->port, GP_PORT_USB_ENDPOINT_IN);

View File

@ -1,30 +1,29 @@
%global udevdir %(pkg-config --variable=udevdir udev)
Summary: Library for accessing digital cameras
Name: libgphoto2
Version: 2.5.1.1
Release: 2%{?dist}
Name: libgphoto2
Version: 2.5.1.1
Release: 3%{?dist}
Summary: Library for accessing digital cameras
Group: Development/Libraries
# GPLV2+ for the main lib (due to exif.c) and most plugins, some plugins GPLv2
License: GPLv2+ and GPLv2
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: http://downloads.sourceforge.net/gphoto/libgphoto2-%{version}.tar.bz2
Patch1: gphoto2-pkgcfg.patch
Patch2: gphoto2-storage.patch
Patch3: gphoto2-ixany.patch
Patch4: gphoto2-device-return.patch
Url: http://www.gphoto.org/
Requires: lockdev
BuildRequires: libusb1-devel, libusb-devel >= 0.1.5
BuildRequires: lockdev-devel
BuildRequires: libexif-devel
BuildRequires: libjpeg-devel
BuildRequires: pkgconfig, sharutils
BuildRequires: libtool-ltdl-devel, popt-devel
BuildRequires: gd-devel
BuildRequires: systemd
Obsoletes: gphoto2 < 2.4.0-11
Obsoletes: gphoto2-devel < 2.4.0-11
License: GPLv2+ and GPLv2
URL: http://www.gphoto.org/
Source0: http://downloads.sourceforge.net/gphoto/libgphoto2-%{version}.tar.bz2
Patch1: gphoto2-pkgcfg.patch
Patch2: gphoto2-storage.patch
Patch3: gphoto2-ixany.patch
Patch4: gphoto2-device-return.patch
Patch5: libgphoto2-ptp-usb3.patch
BuildRequires: libusb1-devel, libusb-devel >= 0.1.5
BuildRequires: lockdev-devel
BuildRequires: libexif-devel
BuildRequires: libjpeg-devel
BuildRequires: pkgconfig, sharutils
BuildRequires: libtool-ltdl-devel, popt-devel
BuildRequires: gd-devel
BuildRequires: systemd
Requires: lockdev
Obsoletes: gphoto2 < 2.4.0-11
%description
libgphoto2 is a library that can be used by applications to access
@ -32,14 +31,14 @@ various digital cameras. libgphoto2 itself is not a GUI application,
opposed to gphoto. There are GUI frontends for the gphoto2 library,
however, such as gtkam for example.
%package devel
Summary: Headers and links to compile against the libgphoto2 library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig, libusb-devel >= 0.1.5, libexif-devel
Obsoletes: gphoto2 < 2.4.0-11
Obsoletes: gphoto2-devel < 2.4.0-11
Provides: gphoto2-devel = %{version}-%{release}
Summary: Headers and links to compile against the libgphoto2 library
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: libusb-devel >= 0.1.5, libexif-devel
Obsoletes: gphoto2-devel < 2.4.0-11
Provides: gphoto2-devel = %{version}-%{release}
%description devel
libgphoto2 is a library that can be used by applications to access
@ -50,14 +49,16 @@ however, such as gtkam for example.
This package contains files needed to compile applications that
use libgphoto2.
%prep
%setup -q
%patch1 -p1 -b .pkgcfg
%patch2 -p1 -b .storage
%patch3 -p1 -b .ixany
%patch4 -p1 -b .device-return
%patch5 -p1
for i in AUTHORS COPYING libgphoto2_port/AUTHORS libgphoto2_port/COPYING.LIB `find -name 'README.*'`; do
for i in AUTHORS ChangeLog COPYING libgphoto2_port/AUTHORS libgphoto2_port/COPYING.LIB `find -name 'README.*'`; do
mv ${i} ${i}.old
iconv -f ISO-8859-1 -t UTF-8 < ${i}.old > ${i}
touch -r ${i}.old ${i} || :
@ -81,10 +82,9 @@ Cflags: -I${includedir} -I${includedir}/gphoto2
EOF
sed 's/Name: gphoto2/Name: gphoto2-port/' < gphoto2.pc.in > gphoto2-port.pc.in
%build
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
#libusb and libusb have shoved their .pc files into /lib[64]/pkgconfig
export PKG_CONFIG_PATH=/%{_lib}/pkgconfig
%configure \
udevscriptdir='%{udevdir}' \
--with-drivers=all \
@ -100,10 +100,9 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libgphoto2_port/
make %{?_smp_mflags}
%install
rm -rf "${RPM_BUILD_ROOT}"
make mandir=%{_mandir} DESTDIR=$RPM_BUILD_ROOT install
%install
%make_install INSTALL="install -p" mandir=%{_mandir}
pushd packaging/linux-hotplug/
export LIBDIR=$RPM_BUILD_ROOT%{_libdir}
@ -132,11 +131,12 @@ rm -rf %{buildroot}%{_libdir}/*.la
%find_lang %{name}_port-10
cat libgphoto2*.lang >> %{name}.lang
%clean
rm -rf "${RPM_BUILD_ROOT}"
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files -f %{name}.lang
%defattr(-,root,root)
%doc AUTHORS COPYING README NEWS
%dir %{_libdir}/libgphoto2_port
%dir %{_libdir}/libgphoto2_port/*
@ -148,12 +148,7 @@ rm -rf "${RPM_BUILD_ROOT}"
%{_udevrulesdir}/40-libgphoto2.rules
%{udevdir}/check-ptp-camera
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files devel
%defattr(-,root,root)
%doc %{_docdir}/%{name}
%{_datadir}/libgphoto2
%{_bindir}/gphoto2-config*
@ -164,6 +159,10 @@ rm -rf "${RPM_BUILD_ROOT}"
%{_mandir}/man3/*
%changelog
* Thu May 2 2013 Hans de Goede <hdegoede@redhat.com> - 2.5.1.1-3
- Fix PTP devices not working in USB-3 ports (rhbz#819918)
- Cleanup spec-file
* Tue Apr 23 2013 Tim Waugh <twaugh@redhat.com> 2.5.1.1-2
- Use _udevrulesdir macro.