From fbbe8e12aa0146917d036a2ee9eedc15d75bd32d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 2 May 2013 10:55:50 +0200 Subject: [PATCH] Fix PTP devices not working in USB-3 ports (rhbz#819918) - Cleanup spec-file --- libgphoto2-ptp-usb3.patch | 19 +++++++++ libgphoto2.spec | 89 +++++++++++++++++++-------------------- 2 files changed, 63 insertions(+), 45 deletions(-) create mode 100644 libgphoto2-ptp-usb3.patch diff --git a/libgphoto2-ptp-usb3.patch b/libgphoto2-ptp-usb3.patch new file mode 100644 index 0000000..238d438 --- /dev/null +++ b/libgphoto2-ptp-usb3.patch @@ -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); diff --git a/libgphoto2.spec b/libgphoto2.spec index 9fb27f2..8eed15f 100644 --- a/libgphoto2.spec +++ b/libgphoto2.spec @@ -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 - 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 2.5.1.1-2 - Use _udevrulesdir macro.