2 # - rust bindings (--enable-bindings-rust, needs vendoring; BR: cargo, rust)
3 # - tests (BR: kmod-devel >= 18, libmount-devel >= 2.33.1, glib2-devel >= 1:2.50 for library; bats for tools; catch2 for C++)
6 %bcond_without apidocs # Doxygen API documentation
7 %bcond_without python # Python binding
8 %bcond_without static_libs # static libraries
10 Summary: Library for interacting with the Linux GPIO character device
11 Summary(pl.UTF-8): Biblioteka do obsługi linuksowych urządzeń znakowych GPIO
17 Source0: https://www.kernel.org/pub/software/libs/libgpiod/%{name}-%{version}.tar.xz
18 # Source0-md5: 42e576d44c261411c9e58bba8a87e7f5
19 Patch0: %{name}-python.patch
20 URL: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
21 BuildRequires: autoconf >= 2.69
22 BuildRequires: autoconf-archive
23 BuildRequires: automake
24 %{?with_apidocs:BuildRequires: doxygen}
25 BuildRequires: help2man
26 BuildRequires: libedit-devel >= 3.1
27 BuildRequires: libstdc++-devel >= 6:7
28 BuildRequires: libtool
29 BuildRequires: linux-libc-headers >= 7:5.5
30 BuildRequires: pkgconfig
32 BuildRequires: python3 >= 1:3.9
33 BuildRequires: python3-devel >= 1:3.9
34 BuildRequires: python3-modules >= 1:3.9
35 BuildRequires: python3-setuptools
37 BuildRequires: rpm-build >= 4.6
38 BuildRequires: tar >= 1:1.22
40 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 Since Linux 4.8 the GPIO sysfs interface is deprecated. User space
44 should use the character device instead. This library encapsulates the
45 ioctl calls and data structures behind a straightforward API.
47 %description -l pl.UTF-8
48 Od wersja Linuksa 4.8 interfejs sysfs do GPIO jest przestarzały.
49 Przestrzeń użytkownika powinna zamiast niego używać urządzenia
50 znakowego. Ta biblioteka kryje wywołania ioctl i struktury danych za
54 Summary: Header files for libgpiod library
55 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libgpiod
56 Group: Development/Libraries
57 Requires: %{name} = %{version}-%{release}
60 Header files for libgpiod library.
62 %description devel -l pl.UTF-8
63 Pliki nagłówkowe biblioteki libgpiod.
66 Summary: Static libgpiod library
67 Summary(pl.UTF-8): Statyczna biblioteka libgpiod
68 Group: Development/Libraries
69 Requires: %{name}-devel = %{version}-%{release}
72 Static libgpiod library.
74 %description static -l pl.UTF-8
75 Statyczna biblioteka libgpiod.
78 Summary: C++ binding for libgpiod library
79 Summary(pl.UTF-8): Interfejs C++ do biblioteki libgpiod
81 Requires: %{name} = %{version}-%{release}
84 High-level, object-oriented C++ binding for libgpiod library.
86 %description cxx -l pl.UTF-8
87 Wysokopoziomowy, zorientowany obiektowo interfejs C++ do biblioteki
91 Summary: Header files for libgpiodcxx library
92 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libgpiodcxx
93 Group: Development/Libraries
94 Requires: %{name}-cxx = %{version}-%{release}
95 Requires: %{name}-devel = %{version}-%{release}
96 Requires: libstdc++-devel >= 6:7
98 %description cxx-devel
99 Header files for libgpiodcxx library.
101 %description cxx-devel -l pl.UTF-8
102 Pliki nagłówkowe biblioteki libgpiodcxx.
105 Summary: Static libgpiodcxx library
106 Summary(pl.UTF-8): Statyczna biblioteka libgpiodcxx
107 Group: Development/Libraries
108 Requires: %{name}-cxx-devel = %{version}-%{release}
110 %description cxx-static
111 Static libgpiodcxx library.
113 %description cxx-static -l pl.UTF-8
114 Statyczna biblioteka libgpiodcxx.
117 Summary: Tools for interacting with the Linux GPIO character device
118 Summary(pl.UTF-8): Narzędzia do obsługi linuksowych urządzeń znakowych GPIO
119 Group: Application/System
120 Requires: %{name} = %{version}-%{release}
123 Tools for interacting with the Linux GPIO character device.
125 %description tools -l pl.UTF-8
126 Narzędzia do obsługi linuksowych urządzeń znakowych GPIO.
128 %package -n python3-gpiod
129 Summary: Pythona binding for libgpiod library
130 Summary(pl.UTF-8): Interfejs Pythona do biblioteki libgpiod
131 Group: Libraries/Python
132 Requires: %{name} = %{version}-%{release}
134 %description -n python3-gpiod
135 High-level, object-oriented Python binding for libgpiod library.
137 %description -n python3-gpiod -l pl.UTF-8
138 Wysokopoziomowy, zorientowany obiektowo interfejs Pythona do
142 Summary: API documentation for libgpiod library
143 Summary(pl.UTF-8): Dokumentacja API biblioteki libgpiod
148 API documentation for libgpiod library.
150 %description apidocs -l pl.UTF-8
151 Dokumentacja API biblioteki libgpiod.
164 %{!?with_static_libs:--disable-static} \
165 --enable-bindings-cxx \
166 %{?with_python:--enable-bindings-python} \
167 --enable-gpioset-interactive \
168 --disable-silent-rules \
177 rm -rf $RPM_BUILD_ROOT
180 DESTDIR=$RPM_BUILD_ROOT
182 # obsoleted by pkg-config
183 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libgpiod*.la
186 rm -rf $RPM_BUILD_ROOT
188 %post -p /sbin/ldconfig
189 %postun -p /sbin/ldconfig
191 %post cxx -p /sbin/ldconfig
192 %postun cxx -p /sbin/ldconfig
195 %defattr(644,root,root,755)
197 %attr(755,root,root) %{_libdir}/libgpiod.so.*.*.*
198 %attr(755,root,root) %ghost %{_libdir}/libgpiod.so.3
201 %defattr(644,root,root,755)
202 %attr(755,root,root) %{_libdir}/libgpiod.so
203 %{_includedir}/gpiod.h
204 %{_pkgconfigdir}/libgpiod.pc
206 %if %{with static_libs}
208 %defattr(644,root,root,755)
209 %{_libdir}/libgpiod.a
213 %defattr(644,root,root,755)
214 %attr(755,root,root) %{_libdir}/libgpiodcxx.so.*.*.*
215 %attr(755,root,root) %ghost %{_libdir}/libgpiodcxx.so.2
218 %defattr(644,root,root,755)
219 %attr(755,root,root) %{_libdir}/libgpiodcxx.so
220 %{_includedir}/gpiod.hpp
221 %{_includedir}/gpiodcxx
222 %{_pkgconfigdir}/libgpiodcxx.pc
224 %if %{with static_libs}
226 %defattr(644,root,root,755)
227 %{_libdir}/libgpiodcxx.a
231 %defattr(644,root,root,755)
232 %attr(755,root,root) %{_bindir}/gpiodetect
233 %attr(755,root,root) %{_bindir}/gpioget
234 %attr(755,root,root) %{_bindir}/gpioinfo
235 %attr(755,root,root) %{_bindir}/gpiomon
236 %attr(755,root,root) %{_bindir}/gpionotify
237 %attr(755,root,root) %{_bindir}/gpioset
238 %{_mandir}/man1/gpiodetect.1*
239 %{_mandir}/man1/gpioget.1*
240 %{_mandir}/man1/gpioinfo.1*
241 %{_mandir}/man1/gpiomon.1*
242 %{_mandir}/man1/gpionotify.1*
243 %{_mandir}/man1/gpioset.1*
246 %files -n python3-gpiod
247 %defattr(644,root,root,755)
248 %dir %{py3_sitedir}/gpiod
249 %attr(755,root,root) %{py3_sitedir}/gpiod/_ext.cpython-*.so
250 %{py3_sitedir}/gpiod/*.py
251 %{py3_sitedir}/gpiod/__pycache__
252 %{py3_sitedir}/gpiod-2.0.1-py*.egg-info
257 %defattr(644,root,root,755)