File v4l-utils.spec of Package v4l-utils

#
# spec file for package v4l-utils
#
# Copyright (c) 2018 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/
#


%define _udevdir %(pkg-config --variable udevdir udev)
%define so_ver 0
%ifarch aarch64 %{arm}
# qv4l2 does not support GLES
%bcond_with qv4l2
%else
%bcond_without qv4l2
%endif
Name:           v4l-utils
Version:        1.14.1
Release:        0
Summary:        Utilities for video4linux
License:        GPL-2.0+ AND GPL-2.0
Group:          Hardware/TV
Url:            https://linuxtv.org/downloads/v4l-utils/
Source0:        https://linuxtv.org/downloads/v4l-utils/%{name}-%{version}.tar.bz2
Source1:        https://linuxtv.org/downloads/v4l-utils/%{name}-%{version}.tar.bz2.asc
Source2:        %{name}.keyring
Source100:      baselibs.conf
BuildRequires:  doxygen
BuildRequires:  kernel-headers
BuildRequires:  libjpeg-devel
BuildRequires:  pkgconfig
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5OpenGL)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(alsa)
BuildRequires:  pkgconfig(glu)
BuildRequires:  pkgconfig(libudev)
BuildRequires:  pkgconfig(udev)
Requires:       libv4l = %{version}

%description
v4l-utils is a collection of various video4linux (V4L) utilities.

%lang_package

%package devel-tools
Summary:        Utilities for v4l2 / DVB driver development and debugging
License:        GPL-2.0+ AND GPL-2.0
Group:          Hardware/TV
Requires:       libv4l = %{version}

%description devel-tools
Utilities for v4l2 / DVB driver authors for development and debugging.

%package -n dvb-utils
Summary:        Utilities for DVB devices
License:        GPL-2.0
Group:          Hardware/TV
Recommends:     dtv-scan-tables-v5

%description -n dvb-utils
dvb-utils is a collection of various DVB utilities.

%package -n libdvbv5-%{so_ver}
Summary:        Library that provides access to DVB adapter cards
License:        GPL-2.0
Group:          System/Libraries

%description -n libdvbv5-%{so_ver}
libdvbv5 is a library meant to be used by digital TV applications that need to
talk with media hardware.

This package contains shared lib for packages that use libdvbv5.

%lang_package -n libdvbv5-%{so_ver}

%package -n libdvbv5-devel
Summary:        Development files for libdvbv5
License:        GPL-2.0
Group:          Development/Libraries/C and C++
Requires:       libdvbv5-%{so_ver} = %{version}

%description -n libdvbv5-devel
The libdvbv5-devel package contains libraries and header files for
developing applications that use libdvbv5.

%package -n libv4l
Summary:        Collection of video4linux support libraries
License:        LGPL-2.1+ AND GPL-2.0
Group:          System/Libraries

%description -n libv4l
libv4l is a collection of libraries which adds a thin abstraction layer on
top of video4linux2 devices. The purpose of this (thin) layer is to make it
easy for application writers to support a wide variety of devices without
having to write separate code for different devices in the same class.

%package -n libv4l1-%{so_ver}
Summary:        Video4linux support library
License:        LGPL-2.1+
Group:          System/Libraries
Requires:       libv4l

%description -n libv4l1-%{so_ver}
libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent
of the drivers for those devices supporting v4l1 compatibility (which many
v4l2 drivers do not).

This package contains shared lib for packages that use libv4l1.

%package -n libv4l2-%{so_ver}
Summary:        Video4linux support library
License:        LGPL-2.1+
Group:          System/Libraries
Requires:       libv4l

%description -n libv4l2-%{so_ver}
libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the
application transparent libv4lconvert conversion where necessary.

This package contains shared lib for packages that use libv4l2.

%package -n libv4l2rds%{so_ver}
Summary:        Video4linux support library
License:        LGPL-2.1+
Group:          System/Libraries
Requires:       libv4l

%description -n libv4l2rds%{so_ver}
libv4l2rds offers decoding raw RDS data from V4L2 Radio devices and simple ways
to access the received RDS information.

This package contains shared lib for packages that use libv4l2rds.

%package -n libv4lconvert%{so_ver}
Summary:        Video4linux support library
License:        LGPL-2.1+
Group:          System/Libraries
Requires:       libv4l

%description -n libv4lconvert%{so_ver}
libv4lconvert offers functions to convert from any (known) pixel-format
to V4l2_PIX_FMT_BGR24 or V4l2_PIX_FMT_YUV420.

This package contains shared lib for packages that use libv4lconvert.

%package -n libv4l-devel
Summary:        Development files for libv4l
License:        LGPL-2.1+
Group:          Development/Libraries/C and C++
Requires:       libv4l1-%{so_ver} = %{version}
Requires:       libv4l2-%{so_ver} = %{version}
Requires:       libv4l2rds%{so_ver} = %{version}
Requires:       libv4lconvert%{so_ver} = %{version}

%description -n libv4l-devel
The libv4l-devel package contains libraries and header files for
developing applications that use libv4l.

%package -n     qv4l2
Summary:        Video4linux test control and streaming test application
License:        GPL-2.0+
Group:          Hardware/TV
Requires:       libv4l = %{version}
Requires(post): hicolor-icon-theme
Requires(post): update-desktop-files
Requires(postun): hicolor-icon-theme
Requires(postun): update-desktop-files

%description -n qv4l2
qv4l2 is a test control and streaming test application for video4linux.

%prep
%setup -q

%build
%configure \
  --disable-static \
  --disable-silent-rules \
%if %{without qv4l2}
  --disable-qv4l2 \
%endif
  --with-udevdir=%{_udevdir}
make %{?_smp_mflags}

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

%find_lang "%{name}"
%find_lang "libdvbv5" libdvbv5.lang

# Not needed (links to plugins in libv4l subdir)
rm %{buildroot}%{_libdir}/{v4l1compat.so,v4l2convert.so}

%if %{with qv4l2}
%suse_update_desktop_file -N "QV4l2" -G "V4L2 Test Utility" -r qv4l2 Qt AudioVideo Video TV
%endif

%post -n libdvbv5-%{so_ver} -p /sbin/ldconfig
%postun -n libdvbv5-%{so_ver} -p /sbin/ldconfig
%post -n libv4l1-%{so_ver} -p /sbin/ldconfig
%postun -n libv4l1-%{so_ver} -p /sbin/ldconfig
%post -n libv4l2-%{so_ver} -p /sbin/ldconfig
%postun -n libv4l2-%{so_ver} -p /sbin/ldconfig
%post -n libv4l2rds%{so_ver} -p /sbin/ldconfig
%postun -n libv4l2rds%{so_ver} -p /sbin/ldconfig
%post -n libv4lconvert%{so_ver} -p /sbin/ldconfig
%postun -n libv4lconvert%{so_ver} -p /sbin/ldconfig

%if %{with qv4l2}
%post -n qv4l2
%desktop_database_post
%icon_theme_cache_post

%postun -n qv4l2
%desktop_database_postun
%icon_theme_cache_postun
%endif

%files
%doc COPYING ChangeLog README TODO
%dir %{_sysconfdir}/rc_keymaps/
%config(noreplace) %{_sysconfdir}/rc_maps.cfg
%{_udevdir}/rc_keymaps
%{_udevrulesdir}/70-infrared.rules
%{_bindir}/cx18-ctl
%{_bindir}/cec-compliance
%{_bindir}/cec-ctl
%{_bindir}/cec-follower
%{_bindir}/ir-ctl
%{_bindir}/ir-keytable
%{_bindir}/ivtv-ctl
%{_bindir}/media-ctl
%{_bindir}/rds-ctl
%{_bindir}/v4l2-ctl
%{_bindir}/v4l2-sysfs-path
%{_mandir}/man1/ir-keytable.1%{ext_man}
%{_mandir}/man1/v4l2-ctl.1%{ext_man}
%{_mandir}/man1/cec-compliance.1%{ext_man}
%{_mandir}/man1/cec-ctl.1%{ext_man}
%{_mandir}/man1/cec-follower.1%{ext_man}
%{_mandir}/man1/ir-ctl.1%{ext_man}

%files lang -f "%{name}.lang"

%files devel-tools
%doc COPYING ChangeLog README TODO
%{_bindir}/decode_tm6000
%{_bindir}/v4l2-compliance
%{_sbindir}/v4l2-dbg
%{_mandir}/man1/v4l2-compliance.1%{ext_man}

%files -n dvb-utils
%doc COPYING ChangeLog README TODO
%{_bindir}/dvb-*
%{_bindir}/dvbv5-*
%{_mandir}/man1/dvb-*1%{ext_man}
%{_mandir}/man1/dvbv5-*1%{ext_man}

%files -n libdvbv5-%{so_ver}
%{_libdir}/libdvbv5.so.%{so_ver}*

%files -n libdvbv5-%{so_ver}-lang -f "libdvbv5.lang"

%files -n libdvbv5-devel
%doc COPYING.libdvbv5 TODO.libdvbv5
%{_includedir}/libdvbv5/
%{_libdir}/libdvbv5.so
%{_libdir}/pkgconfig/libdvbv5*.pc

%files -n libv4l
%doc COPYING.libv4l ChangeLog README README.libv4l TODO
%{_libdir}/libv4l/

%files -n libv4l1-%{so_ver}
%{_libdir}/libv4l1.so.%{so_ver}*

%files -n libv4l2-%{so_ver}
%{_libdir}/libv4l2.so.%{so_ver}*

%files -n libv4l2rds%{so_ver}
%{_libdir}/libv4l2rds.so.%{so_ver}*

%files -n libv4lconvert%{so_ver}
%{_libdir}/libv4lconvert.so.%{so_ver}*

%files -n libv4l-devel
%doc COPYING.libv4l README.lib-multi-threading
%{_includedir}/libv4l*.h
%{_libdir}/libv4l*.so
%{_libdir}/pkgconfig/libv4l*.pc

%if %{with qv4l2}
%files -n qv4l2
%doc COPYING ChangeLog README TODO
%{_bindir}/qv4l2
%{_datadir}/applications/qv4l2.desktop
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/??x??
%dir %{_datadir}/icons/hicolor/??x??/apps
%dir %{_datadir}/icons/hicolor/scalable
%dir %{_datadir}/icons/hicolor/scalable/apps
%{_datadir}/icons/hicolor/*/apps/qv4l2.*
%{_mandir}/man1/qv4l2.1%{ext_man}
%endif

%changelog