-# TODO: tests (BR: kmod-devel >= 18, udev-devel >= 1:215, glib2-devel >= 1:2.50 for library; bats for tools; catch2 for C++)
+# TODO:
+# - rust bindings (--enable-bindings-rust, needs vendoring; BR: cargo, rust)
+# - tests (BR: kmod-devel >= 18, libmount-devel >= 2.33.1, glib2-devel >= 1:2.50 for library; bats for tools; catch2 for C++)
#
# Conditional build:
%bcond_without apidocs # Doxygen API documentation
%bcond_without python # Python binding
%bcond_without static_libs # static libraries
#
-Summary: Library and tools for interacting with the Linux GPIO character device
-Summary(pl.UTF-8): Biblioteka i narzędzia do obsługi linuksowych urządzeń znakowych GPIO
+Summary: Library for interacting with the Linux GPIO character device
+Summary(pl.UTF-8): Biblioteka do obsługi linuksowych urządzeń znakowych GPIO
Name: libgpiod
-Version: 1.6.3
-Release: 2
+Version: 2.1
+Release: 1
License: LGPL v2.1+
Group: Libraries
Source0: https://www.kernel.org/pub/software/libs/libgpiod/%{name}-%{version}.tar.xz
-# Source0-md5: 28e79f6f70fee1da9079558d8b7b3736
+# Source0-md5: 42e576d44c261411c9e58bba8a87e7f5
+Patch0: %{name}-python.patch
URL: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
+BuildRequires: autoconf >= 2.69
+BuildRequires: autoconf-archive
+BuildRequires: automake
%{?with_apidocs:BuildRequires: doxygen}
BuildRequires: help2man
-BuildRequires: libstdc++-devel >= 6:4.7
-BuildRequires: linux-libc-headers >= 6:5.5
-%{?with_python:BuildRequires: python3-devel >= 1:3.2}
+BuildRequires: libedit-devel >= 3.1
+BuildRequires: libstdc++-devel >= 6:7
+BuildRequires: libtool
+BuildRequires: linux-libc-headers >= 7:5.5
+BuildRequires: pkgconfig
+%if %{with python}
+BuildRequires: python3 >= 1:3.9
+BuildRequires: python3-devel >= 1:3.9
+BuildRequires: python3-modules >= 1:3.9
+BuildRequires: python3-setuptools
+%endif
+BuildRequires: rpm-build >= 4.6
BuildRequires: tar >= 1:1.22
BuildRequires: xz
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Group: Development/Libraries
Requires: %{name}-cxx = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}
-Requires: libstdc++-devel >= 6:4.7
+Requires: libstdc++-devel >= 6:7
%description cxx-devel
Header files for libgpiodcxx library.
%description cxx-static -l pl.UTF-8
Statyczna biblioteka libgpiodcxx.
+%package tools
+Summary: Tools for interacting with the Linux GPIO character device
+Summary(pl.UTF-8): Narzędzia do obsługi linuksowych urządzeń znakowych GPIO
+Group: Application/System
+Requires: %{name} = %{version}-%{release}
+
+%description tools
+Tools for interacting with the Linux GPIO character device.
+
+%description tools -l pl.UTF-8
+Narzędzia do obsługi linuksowych urządzeń znakowych GPIO.
+
%package -n python3-gpiod
Summary: Pythona binding for libgpiod library
Summary(pl.UTF-8): Interfejs Pythona do biblioteki libgpiod
%prep
%setup -q
+%patch0 -p1
%build
+%{__libtoolize}
+%{__aclocal}
+%{__autoconf}
+%{__autoheader}
+%{__automake}
%configure \
%{!?with_static_libs:--disable-static} \
--enable-bindings-cxx \
%{?with_python:--enable-bindings-python} \
+ --enable-gpioset-interactive \
--disable-silent-rules \
--enable-tools
%{__make}
# obsoleted by pkg-config
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libgpiod*.la
-%if %{with python}
-%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/gpiod.la \
- %{?with_static_libs:$RPM_BUILD_ROOT%{py3_sitedir}/gpiod.a}
-%endif
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
%doc NEWS README
-%attr(755,root,root) %{_bindir}/gpiodetect
-%attr(755,root,root) %{_bindir}/gpiofind
-%attr(755,root,root) %{_bindir}/gpioget
-%attr(755,root,root) %{_bindir}/gpioinfo
-%attr(755,root,root) %{_bindir}/gpiomon
-%attr(755,root,root) %{_bindir}/gpioset
%attr(755,root,root) %{_libdir}/libgpiod.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgpiod.so.2
-%{_mandir}/man1/gpiodetect.1*
-%{_mandir}/man1/gpiofind.1*
-%{_mandir}/man1/gpioget.1*
-%{_mandir}/man1/gpioinfo.1*
-%{_mandir}/man1/gpiomon.1*
-%{_mandir}/man1/gpioset.1*
+%attr(755,root,root) %ghost %{_libdir}/libgpiod.so.3
%files devel
%defattr(644,root,root,755)
%files cxx
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libgpiodcxx.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgpiodcxx.so.1
+%attr(755,root,root) %ghost %{_libdir}/libgpiodcxx.so.2
%files cxx-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libgpiodcxx.so
%{_includedir}/gpiod.hpp
+%{_includedir}/gpiodcxx
%{_pkgconfigdir}/libgpiodcxx.pc
%if %{with static_libs}
%{_libdir}/libgpiodcxx.a
%endif
+%files tools
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/gpiodetect
+%attr(755,root,root) %{_bindir}/gpioget
+%attr(755,root,root) %{_bindir}/gpioinfo
+%attr(755,root,root) %{_bindir}/gpiomon
+%attr(755,root,root) %{_bindir}/gpionotify
+%attr(755,root,root) %{_bindir}/gpioset
+%{_mandir}/man1/gpiodetect.1*
+%{_mandir}/man1/gpioget.1*
+%{_mandir}/man1/gpioinfo.1*
+%{_mandir}/man1/gpiomon.1*
+%{_mandir}/man1/gpionotify.1*
+%{_mandir}/man1/gpioset.1*
+
%if %{with python}
%files -n python3-gpiod
%defattr(644,root,root,755)
-%attr(755,root,root) %{py3_sitedir}/gpiod.so
+%dir %{py3_sitedir}/gpiod
+%attr(755,root,root) %{py3_sitedir}/gpiod/_ext.cpython-*.so
+%{py3_sitedir}/gpiod/*.py
+%{py3_sitedir}/gpiod/__pycache__
+%{py3_sitedir}/gpiod-2.0.1-py*.egg-info
%endif
%if %{with apidocs}