-# TODO
-# - save and package udev,hal rules from %{_libdir}/libgphoto2/print-camera-list (probably subpackage)
-# move or symlink also /lib/udev/check-ptp-camera
#
# Conditional build:
%bcond_with apidocs # API documentation (currently broken)
%bcond_without baudboy # use lockdev library instead of baudboy
%bcond_with canonupload # Canon upload experimental code
+%bcond_with hal # build HAL support
%bcond_without static_libs # static libraries
-#
+
Summary: Libraries for digital cameras
Summary(es.UTF-8): Foto GNU (gphoto) Release 2
Summary(pl.UTF-8): Biblioteki obsługi kamer cyfrowych
Summary(pt_BR.UTF-8): GNU Photo - programa GNU para câmeras digitais
Name: libgphoto2
-Version: 2.4.0
+Version: 2.5.19
Release: 1
License: LGPL v2+
Group: Libraries
-Source0: http://dl.sourceforge.net/gphoto/%{name}-%{version}.tar.bz2
-# Source0-md5: a60154772635b693ff08b4f34dea7f61
-Patch0: %{name}-link.patch
+Source0: http://downloads.sourceforge.net/gphoto/%{name}-%{version}.tar.bz2
+# Source0-md5: ca9574e2a749de66018a077bd24aa86f
+Patch0: %{name}-mode-owner-group.patch
+# if there are fuzzy/missing entries in file, check for updated version:
+# po/pl.po: https://translationproject.org/PO-files/pl/libgphoto2-%{version}.pl.po
+# libgphoto2_port/po/pl.po: https://translationproject.org/PO-files/pl/libgphoto2_port-%{version}.pl.po
+# and pass through msgcat to get shorter diff
Patch1: %{name}-pl.po-update.patch
+# from FC
+Patch2: gphoto2-device-return.patch
URL: http://www.gphoto.org/
BuildRequires: autoconf >= 2.59
BuildRequires: automake >= 1:1.9
BuildRequires: avahi-compat-libdns_sd-devel
+BuildRequires: bison
BuildRequires: dbus-devel >= 0.31
-BuildRequires: gettext-devel >= 0.14.1
+BuildRequires: flex
+BuildRequires: gd-devel >= 2.1
+BuildRequires: gettext-tools >= 0.14.1
%{?with_apidocs:BuildRequires: gtk-doc >= 0.10}
-BuildRequires: hal-devel >= 0.5.0
BuildRequires: libexif-devel >= 1:0.6.13
+BuildRequires: libjpeg-devel
BuildRequires: libltdl-devel
BuildRequires: libtool >= 1:1.4.2-9
-BuildRequires: libusb-devel >= 0.1.5
+BuildRequires: libusb-devel >= 1.0.0
+BuildRequires: libxml2-devel >= 2.0
%{?with_baudboy:BuildRequires: lockdev-baudboy-devel}
%{!?with_baudboy:BuildRequires: lockdev-devel >= 1.0.2}
BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.691
BuildRequires: sed >= 4.0
Requires: libexif >= 1:0.6.13
-Provides: gphoto2-lib
-Obsoletes: gphoto2-lib
+Provides: gphoto2-lib = %{version}-%{release}
+Obsoletes: gphoto2-lib < 2.1.1
Conflicts: gphoto2 < 2.1.1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _noautoreq libtool(.*)
+%define _noautoreqfiles %{_libdir}/libgphoto2/.*\\.la %{_libdir}/libgphoto2_port/.*\\.la
# PKGCONFIG changed during configures
%undefine configure_cache
%{?with_apidocs:Requires: gtk-doc-common}
Requires: libexif-devel >= 1:0.6.13
Requires: libltdl-devel
-Requires: libusb-devel
+Requires: libusb-devel >= 1.0.0
%{!?with_baudboy:Requires: lockdev-devel}
-Obsoletes: gphoto2-lib-devel
Obsoletes: gphoto2-devel
+Obsoletes: gphoto2-lib-devel
%description devel
Header files for libgphoto2.
Wtyczka obsługi portu szeregowego dla libgphoto2, potrzebna do
współpracy z aparatami podłączonymi przez port szeregowy.
+%package -n udev-libgphoto2
+Summary: Userspace support for digital cameras
+Summary(pl.UTF-8): Wsparcie dla kamer cyfrowych w przestrzeni użytkownika
+Group: Applications/System
+Requires: libusb >= 1.0.0
+%if "%{pld_release}" == "ti"
+Requires: udev-core >= 1:124-3
+%else
+Requires: udev-core >= 1:136
+%endif
+Provides: udev-digicam
+Obsoletes: hal-gphoto
+%{!?with_hal:Obsoletes: hal-libgphoto2}
+Obsoletes: hotplug-digicam
+Obsoletes: udev-digicam
+
+%description -n udev-libgphoto2
+Set of Udev rules to handle digital cameras in userspace.
+
+%description -n udev-libgphoto2 -l pl.UTF-8
+Zestaw reguł Udev do obsługi kamer cyfrowych w przestrzeni
+użytkownika.
+
+%package -n hal-libgphoto2
+Summary: Userspace support for digital cameras
+Summary(pl.UTF-8): Wsparcie dla kamer cyfrowych w przestrzeni użytkownika
+Group: Applications/System
+Requires: hal >= 0.5.9-2
+Requires: udev-libgphoto2
+
+%description -n hal-libgphoto2
+HAL device information file to handle digital cameras in userspace.
+
+%description -n hal-libgphoto2 -l pl.UTF-8
+Plik z informacjami o urządzeniach HAL-a do obsługi kamer cyfrowych
+w przestrzeni użytkownika.
+
%prep
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
-rm -f po/stamp-po libgphoto2_port/po/stamp-po
+%{__rm} po/stamp-po libgphoto2_port/po/stamp-po
%build
# supplied libtool is broken (relink)
%{__libtoolize}
-%{__aclocal} -I auto-m4 -I m4m
-# -I libgphoto2_port/m4
+%{__aclocal} -I auto-m4 -I gphoto-m4
%{__autoconf}
%{__automake}
cd libgphoto2_port
%{__libtoolize}
-%{__aclocal} -I auto-m4 -I m4
+%{__aclocal} -I auto-m4 -I gphoto-m4
%{__autoconf}
%{__automake}
cd ..
--disable-ttylock \
%{?with_apidocs:--enable-docs} \
%{?with_static_libs:--enable-static} \
- %{?with_apidocs:--with-html-dir=%{_gtkdocdir}}
+ %{?with_apidocs:--with-html-dir=%{_gtkdocdir}} \
+ --without-libusb
%{__make}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT \
pkgconfigdir=%{_pkgconfigdir} \
- udevscriptdir=%{_libdir}/libgphoto2 \
+ udevscriptdir=/lib/udev \
%{?with_apidocs:apidocdir=%{_gtkdocdir}}
%find_lang %{name} --all-name
camlibs/adc65/{Changelog,README.adc65,TODO} \
camlibs/agfa-cl20/{ChangeLog,RANDOM,README.agfa-cl20,STATUS} \
camlibs/aox/README.aox \
- camlibs/barbie/Protocol.txt \
- camlibs/canon/{ChangeLog,README.canon} \
- camlibs/casio/PROTOCOL.txt \
+ camlibs/barbie/{ChangeLog,Protocol.txt} \
+ camlibs/canon/{ChangeLog,README.canon,TODO} \
+ camlibs/casio/{ChangeLog,PROTOCOL.txt} \
camlibs/clicksmart310/README.clicksmart310 \
- camlibs/digigr8/README.digigr8 \
- camlibs/dimera/{CREDITS,Protocol.txt} \
- camlibs/enigma13/{README.enigma13,STATUS,protocol.txt} \
- camlibs/fuji/PROTOCOL \
- camlibs/gsmart300/README.gsmart300 \
- camlibs/iclick/README.iclick \
- camlibs/jamcam/README.jamcam \
- camlibs/jd11/jd11.html \
+ camlibs/digigr8/{ChangeLog,README.*} \
+ camlibs/digita/ChangeLog \
+ camlibs/dimera/{CREDITS,Protocol.txt,TODO} \
+ camlibs/directory/ChangeLog \
+ camlibs/enigma13/{ChangeLog,README.enigma13,STATUS,protocol.txt} \
+ camlibs/fuji/{ChangeLog,PROTOCOL} \
+ camlibs/gsmart300/{ChangeLog,README.gsmart300} \
+ camlibs/hp215/{ChangeLog,PROTOCOL} \
+ camlibs/iclick/{ChangeLog,README.iclick} \
+ camlibs/jamcam/{ChangeLog,README.jamcam} \
+ camlibs/jd11/{ChangeLog,jd11.html} \
+ camlibs/jl2005a/README.jl2005a \
+ camlibs/jl2005c/README.jl2005c \
camlibs/kodak/CAMERAS \
- camlibs/kodak/ez200/Protocol.txt \
- camlibs/konica/{EXPERTS,README.konica,qm150.txt} \
- camlibs/largan/lmini/README.largan-lmini \
- camlibs/lg_gsm/README.lg_gsm \
- camlibs/mars/{README.mars,protocol.txt} \
+ camlibs/kodak/d*/ChangeLog \
+ camlibs/kodak/ez200/{ChangeLog,Protocol.txt} \
+ camlibs/konica/{ChangeLog,EXPERTS,README.konica,TODO,qm150.txt} \
+ camlibs/largan/lmini/{ChangeLog,README.largan-lmini} \
+ camlibs/lg_gsm/{ChangeLog,README.lg_gsm} \
+ camlibs/mars/{ChangeLog,README.mars,protocol.txt} \
camlibs/minolta/NEWER_MINOLTAS \
camlibs/minolta/dimagev/README.minolta-dimagev \
- camlibs/mustek/{AUTHOR,README.mustek} \
- camlibs/panasonic/README.panasonic \
- camlibs/panasonic/coolshot/README.panasonic-coolshot \
- camlibs/panasonic/l859/README.panasonic-l859 \
- camlibs/pccam300/README.pccam300 \
- camlibs/pccam600/README.pccam600 \
- camlibs/polaroid/*.html \
+ camlibs/mustek/{AUTHOR,ChangeLog,README.mustek,STATUS} \
+ camlibs/panasonic/{ChangeLog,README.panasonic} \
+ camlibs/panasonic/coolshot/{ChangeLog,README.panasonic-coolshot} \
+ camlibs/panasonic/l859/{ChangeLog,README.panasonic-l859,TODO} \
+ camlibs/pccam300/{ChangeLog,README.pccam300} \
+ camlibs/pccam600/{ChangeLog,README.pccam600} \
+ camlibs/polaroid/{ChangeLog,*.html} \
camlibs/ptp2/{ChangeLog,PTPIP.TXT,README.ptp2,TODO,ptpip.html} \
- camlibs/ricoh/g3.txt \
- camlibs/sierra/PROTOCOL \
- camlibs/sipix/{*.txt,web2.html} \
- camlibs/smal/README.smal \
- camlibs/sonix/README.sonix \
- camlibs/sonydscf1/{README.sonydscf1,todo} \
- camlibs/soundvision/README.soundvision \
+ camlibs/ricoh/{ChangeLog,g3.txt} \
+ camlibs/samsung/ChangeLog \
+ camlibs/sierra/{ChangeLog,MC-EU1-Protocol.txt,PROTOCOL} \
+ camlibs/sipix/{ChangeLog,*.txt,web2.html} \
+ camlibs/smal/{ChangeLog,README.smal} \
+ camlibs/sonix/{ChangeLog,README.sonix} \
+ camlibs/sonydscf1/{ChangeLog,README.sonydscf1} \
+ camlibs/sonydscf55/{ChangeLog,TODO} \
+ camlibs/soundvision/{BUGS,ChangeLog,README.soundvision} \
camlibs/spca50x/{ChangeLog*,README.spca50x} \
- camlibs/sq905/{README.913C,README.sq905} \
+ camlibs/sq905/{ChangeLog,README.913C,README.sq905,TODO} \
camlibs/stv0674/{Changelog,Protocol} \
- camlibs/stv0680/{680_comm*,CREDITS,README.pdf} \
+ camlibs/stv0680/{680_comm*,CREDITS,ChangeLog,README.pdf} \
+ camlibs/sx330z/ChangeLog \
+ camlibs/topfield/ChangeLog \
camlibs/toshiba/pdrm11/README.toshiba-pdrm11 \
- libgphoto2_port/{AUTHORS,ChangeLog} \
- libgphoto2_port/disk/ChangeLog \
+ libgphoto2_port/{AUTHORS,ChangeLog,NEWS,README} \
docs
+# udev
+cd packaging/linux-hotplug
+install -d $RPM_BUILD_ROOT/lib/udev/{hwdb.d,rules.d}
+export CAMLIBS=$RPM_BUILD_ROOT%{_libdir}/%{name}/%{version}
+
+../generic/print-camera-list udev-rules version 136 group usb mode 0660 \
+ > $RPM_BUILD_ROOT/lib/udev/rules.d/40-libgphoto2.rules
+../generic/print-camera-list hwdb \
+ > $RPM_BUILD_ROOT/lib/udev/hwdb.d/20-gphoto.hwdb
+
+%if %{with hal}
+# hal
+install -d $RPM_BUILD_ROOT%{_datadir}/hal/fdi/information/20thirdparty
+
+../generic/print-camera-list hal-fdi | \
+ grep -v "<!-- This file was generated" > $RPM_BUILD_ROOT%{_datadir}/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi
+%endif
+
%if %{with static_libs}
-rm -f $RPM_BUILD_ROOT%{_libdir}/libgphoto2/*/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/libgphoto2_port/*/*.a
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libgphoto2/*/*.a
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libgphoto2_port/*/*.a
%endif
# kill unpackaged files
-rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libgphoto{2,2_port}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/doc/libgphoto{2,2_port}
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/libgphoto2_port/*/vcamera/README.txt
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+%post -n udev-libgphoto2
+%udev_hwdb_update
+
+%postun -n udev-libgphoto2
+%udev_hwdb_update
+
+%post -n hal-libgphoto2
+%service -q haldaemon restart
+
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog MAINTAINERS NEWS README TESTERS docs/*
%attr(755,root,root) %{_libdir}/libgphoto2.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgphoto2.so.6
%attr(755,root,root) %{_libdir}/libgphoto2_port.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libgphoto2_port.so.12
# camera plugins
%dir %{_libdir}/libgphoto2
%dir %{_libdir}/libgphoto2_port/*
%attr(755,root,root) %{_libdir}/libgphoto2_port/*/disk.so
%attr(755,root,root) %{_libdir}/libgphoto2_port/*/ptpip.so
-%attr(755,root,root) %{_libdir}/libgphoto2_port/*/usb.so
+%attr(755,root,root) %{_libdir}/libgphoto2_port/*/usb1.so
+%attr(755,root,root) %{_libdir}/libgphoto2_port/*/usbdiskdirect.so
+%attr(755,root,root) %{_libdir}/libgphoto2_port/*/usbscsi.so
%{_libdir}/libgphoto2_port/*/disk.la
%{_libdir}/libgphoto2_port/*/ptpip.la
-%{_libdir}/libgphoto2_port/*/usb.la
+%{_libdir}/libgphoto2_port/*/usb1.la
+%{_libdir}/libgphoto2_port/*/usbdiskdirect.la
+%{_libdir}/libgphoto2_port/*/usbscsi.la
# utilities
-%attr(755,root,root) %{_libdir}/libgphoto2/check-mtp-device
-%attr(755,root,root) %{_libdir}/libgphoto2/check-ptp-camera
%attr(755,root,root) %{_libdir}/libgphoto2/print-camera-list
%dir %{_datadir}/libgphoto2
%{_pkgconfigdir}/libgphoto2_port.pc
%{_mandir}/man3/libgphoto2.3*
%{_mandir}/man3/libgphoto2_port.3*
-%{?with_apidocs:%{_gtkdocdir}/*}
+%{?with_apidocs:%{_gtkdocdir}/gphoto2}
%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libgphoto2_port/*/serial.so
%{_libdir}/libgphoto2_port/*/serial.la
+
+%files -n udev-libgphoto2
+%defattr(644,root,root,755)
+/lib/udev/hwdb.d/20-gphoto.hwdb
+/lib/udev/rules.d/40-libgphoto2.rules
+%attr(755,root,root) /lib/udev/check-ptp-camera
+
+%if %{with hal}
+%files -n hal-libgphoto2
+%defattr(644,root,root,755)
+%{_datadir}/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi
+%endif