+# TODO:
+# - package user docs from build/Documentation
#
# Conditional build:
%bcond_without gui # libinput-debug-gui
%bcond_without libunwind # libunwind debugging support
-%bcond_with static_libs # static library
%bcond_without doc # documentation
+%bcond_without tests # tests
%ifnarch %{ix86} %{x8664} %{arm} hppa ia64 mips ppc ppc64 sh
%undefine with_libunwind
Summary: Input device library
Summary(pl.UTF-8): Biblioteka urządzeń wejściowych
Name: libinput
-Version: 1.8.0
-Release: 2
+Version: 1.16.4
+Release: 1
License: MIT
Group: Libraries
Source0: https://www.freedesktop.org/software/libinput/%{name}-%{version}.tar.xz
-# Source0-md5: f12066eeda3e1aeaa65eeca4b9ad833d
+# Source0-md5: 1fdc670e62a08bcebceabd23af3d639a
URL: https://www.freedesktop.org/wiki/Software/libinput/
BuildRequires: check-devel >= 0.9.10
-%if %{with gui}
-BuildRequires: cairo-devel
-BuildRequires: glib2-devel >= 2.0
-BuildRequires: gtk+3-devel >= 3.0
-%endif
-%if %{with apidocs}
-BuildRequires: doxygen >= 1.6.0
-BuildRequires: graphviz >= 2.26.0
-%endif
BuildRequires: libevdev-devel >= 1.3
%{?with_libunwind:BuildRequires: libunwind-devel}
BuildRequires: libwacom-devel >= 0.20
+BuildRequires: meson >= 0.45.0
BuildRequires: mtdev-devel >= 1.1.0
+BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.736
BuildRequires: udev-devel
+BuildRequires: valgrind
+%if %{with gui}
+BuildRequires: cairo-devel
+BuildRequires: glib2-devel >= 2.0
+BuildRequires: gtk+3-devel >= 3.20
+%endif
+%if %{with doc}
+BuildRequires: doxygen >= 1.8.3
+BuildRequires: graphviz >= 2.26.0
+BuildRequires: python3-recommonmark
+BuildRequires: python3-sphinx_rtd_theme
+BuildRequires: sphinx-pdg-3
+%endif
Requires: libevdev >= 1.3
Requires: libwacom >= 0.20
Requires: mtdev >= 1.1.0
Summary(pl.UTF-8): Graficzny interfejs diagnostyczny do libinput
Group: X11/Applications
Requires: %{name} = %{version}-%{release}
+Requires: gtk+3 >= 3.20
%description gui
Debugging GUI for libinput.
Ten pakiet zawiera pliki nagłówkowe niezbędne do tworzenia aplikacji
wykorzystujących bibliotekę libinput.
-%package static
-Summary: Static libinput library
-Summary(pl.UTF-8): Statyczna biblioteka libinput
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-
-%description static
-Static libinput library.
-
-%description static -l pl.UTF-8
-Statyczna biblioteka libinput.
-
%package apidocs
Summary: API documentation for libinput library
Summary(pl.UTF-8): Dokumentacja API biblioteki libinput
Group: Documentation
-%if "%{_rpmversion}" >= "5"
+%if "%{_rpmversion}" >= "4.6"
BuildArch: noarch
%endif
%description apidocs -l pl.UTF-8
Dokumentacja API biblioteki libinput.
+%package -n zsh-completion-%{name}
+Summary: Zsh completion for libinput command
+Summary(pl.UTF-8): Dopełnianie parametrów w zsh dla polecenia libinput
+Group: Applications/Shells
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: zsh
+
+%description -n zsh-completion-%{name}
+Zsh completion for libinput command.
+
+%description -n zsh-completion-%{name} -l pl.UTF-8
+Dopełnianie parametrów w zsh dla polecenia libinput.
+
%prep
%setup -q
+%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' \
+ tools/libinput-measure-{fuzz,touchpad-pressure,touch-size,touchpad-tap}.py \
+ tools/libinput-{replay,analyze-per-slot-delta.py,measure-touchpad-size.py}
+
%build
-%configure \
- %{!?with_gui:--disable-debug-gui} \
- --disable-silent-rules \
- --enable-documentation%{!?with_doc:=no} \
- %{?with_static_libs:--enable-static} \
- %{!?with_libunwind:--without-libunwind} \
- --with-udev-dir=/lib/udev
+%meson build \
+ -Ddebug-gui=%{__true_false gui} \
+ -Ddocumentation=%{__true_false doc} \
+ -Dudev-dir=/lib/udev \
+ -Dzshcompletiondir=%{zsh_compdir}
+
+%ninja_build -C build
-%{__make}
+%{?with_tests:%ninja_test -C build}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
-# obsoleted by pkg-config
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/libinput-test-suite.1
%clean
rm -rf $RPM_BUILD_ROOT
%defattr(644,root,root,755)
%doc COPYING README.md
%attr(755,root,root) %{_bindir}/libinput
-%attr(755,root,root) %{_bindir}/libinput-debug-events
-%attr(755,root,root) %{_bindir}/libinput-list-devices
%attr(755,root,root) %{_libdir}/libinput.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libinput.so.10
%dir %{_libexecdir}/libinput
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-analyze
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-analyze-per-slot-delta
%attr(755,root,root) %{_libexecdir}/libinput/libinput-debug-events
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-debug-tablet
%attr(755,root,root) %{_libexecdir}/libinput/libinput-list-devices
%attr(755,root,root) %{_libexecdir}/libinput/libinput-measure
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-measure-fuzz
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-measure-touchpad-pressure
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-measure-touchpad-size
%attr(755,root,root) %{_libexecdir}/libinput/libinput-measure-touchpad-tap
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-measure-touch-size
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-quirks
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-record
+%attr(755,root,root) %{_libexecdir}/libinput/libinput-replay
%attr(755,root,root) /lib/udev/libinput-device-group
-%attr(755,root,root) /lib/udev/libinput-model-quirks
+%attr(755,root,root) /lib/udev/libinput-fuzz-extract
+%attr(755,root,root) /lib/udev/libinput-fuzz-to-zero
/lib/udev/rules.d/80-libinput-device-groups.rules
-/lib/udev/hwdb.d/90-libinput-model-quirks.hwdb
-/lib/udev/rules.d/90-libinput-model-quirks.rules
+/lib/udev/rules.d/90-libinput-fuzz-override.rules
+%dir %{_datadir}/libinput
+%{_datadir}/libinput/*.quirks
%{_mandir}/man1/libinput.1*
+%{_mandir}/man1/libinput-analyze.1*
+%{_mandir}/man1/libinput-analyze-per-slot-delta.1*
%{_mandir}/man1/libinput-debug-events.1*
+%{_mandir}/man1/libinput-debug-tablet.1*
%{_mandir}/man1/libinput-list-devices.1*
%{_mandir}/man1/libinput-measure.1*
+%{_mandir}/man1/libinput-measure-fuzz.1*
+%{_mandir}/man1/libinput-measure-touchpad-pressure.1*
+%{_mandir}/man1/libinput-measure-touchpad-size.1*
%{_mandir}/man1/libinput-measure-touchpad-tap.1*
+%{_mandir}/man1/libinput-measure-touch-size.1*
+%{_mandir}/man1/libinput-quirks.1*
+%{_mandir}/man1/libinput-quirks-list.1*
+%{_mandir}/man1/libinput-quirks-validate.1*
+%{_mandir}/man1/libinput-record.1*
+%{_mandir}/man1/libinput-replay.1*
%if %{with gui}
%files gui
%{_includedir}/libinput.h
%{_pkgconfigdir}/libinput.pc
-%if %{with static_libs}
-%files static
+%if %{with doc}
+%files apidocs
%defattr(644,root,root,755)
-%{_libdir}/libinput.a
+%doc build/api/*
%endif
-%files apidocs
+%files -n zsh-completion-%{name}
%defattr(644,root,root,755)
-%doc doc/html/*
+%{zsh_compdir}/_libinput