1 # TODO: tests (BR: kmod-devel >= 18, udev-devel >= 1:215, glib2-devel >= 1:2.50 for library; bats for tools; catch2 for C++)
4 %bcond_without apidocs # Doxygen API documentation
5 %bcond_without python # Python binding
6 %bcond_without static_libs # static libraries
8 Summary: Library and tools for interacting with the Linux GPIO character device
9 Summary(pl.UTF-8): Biblioteka i narzędzia do obsługi linuksowych urządzeń znakowych GPIO
15 Source0: https://www.kernel.org/pub/software/libs/libgpiod/%{name}-%{version}.tar.xz
16 # Source0-md5: 9b7857d14afa85e963c59e22f0b57e91
17 URL: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
18 %{?with_apidocs:BuildRequires: doxygen}
19 BuildRequires: help2man
20 BuildRequires: libstdc++-devel >= 6:4.7
21 BuildRequires: linux-libc-headers >= 6:5.5
22 %{?with_python:BuildRequires: python3-devel >= 1:3.2}
23 BuildRequires: tar >= 1:1.22
25 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
28 Since Linux 4.8 the GPIO sysfs interface is deprecated. User space
29 should use the character device instead. This library encapsulates the
30 ioctl calls and data structures behind a straightforward API.
32 %description -l pl.UTF-8
33 Od wersja Linuksa 4.8 interfejs sysfs do GPIO jest przestarzały.
34 Przestrzeń użytkownika powinna zamiast niego używać urządzenia
35 znakowego. Ta biblioteka kryje wywołania ioctl i struktury danych za
39 Summary: Header files for libgpiod library
40 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libgpiod
41 Group: Development/Libraries
42 Requires: %{name} = %{version}-%{release}
45 Header files for libgpiod library.
47 %description devel -l pl.UTF-8
48 Pliki nagłówkowe biblioteki libgpiod.
51 Summary: Static libgpiod library
52 Summary(pl.UTF-8): Statyczna biblioteka libgpiod
53 Group: Development/Libraries
54 Requires: %{name}-devel = %{version}-%{release}
57 Static libgpiod library.
59 %description static -l pl.UTF-8
60 Statyczna biblioteka libgpiod.
63 Summary: C++ binding for libgpiod library
64 Summary(pl.UTF-8): Interfejs C++ do biblioteki libgpiod
66 Requires: %{name} = %{version}-%{release}
69 High-level, object-oriented C++ binding for libgpiod library.
71 %description cxx -l pl.UTF-8
72 Wysokopoziomowy, zorientowany obiektowo interfejs C++ do biblioteki
76 Summary: Header files for libgpiodcxx library
77 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libgpiodcxx
78 Group: Development/Libraries
79 Requires: %{name}-cxx = %{version}-%{release}
80 Requires: %{name}-devel = %{version}-%{release}
81 Requires: libstdc++-devel >= 6:4.7
83 %description cxx-devel
84 Header files for libgpiodcxx library.
86 %description cxx-devel -l pl.UTF-8
87 Pliki nagłówkowe biblioteki libgpiodcxx.
90 Summary: Static libgpiodcxx library
91 Summary(pl.UTF-8): Statyczna biblioteka libgpiodcxx
92 Group: Development/Libraries
93 Requires: %{name}-cxx-devel = %{version}-%{release}
95 %description cxx-static
96 Static libgpiodcxx library.
98 %description cxx-static -l pl.UTF-8
99 Statyczna biblioteka libgpiodcxx.
101 %package -n python3-gpiod
102 Summary: Pythona binding for libgpiod library
103 Summary(pl.UTF-8): Interfejs Pythona do biblioteki libgpiod
104 Group: Libraries/Python
105 Requires: %{name} = %{version}-%{release}
107 %description -n python3-gpiod
108 High-level, object-oriented Python binding for libgpiod library.
110 %description -n python3-gpiod -l pl.UTF-8
111 Wysokopoziomowy, zorientowany obiektowo interfejs Pythona do
115 Summary: API documentation for libgpiod library
116 Summary(pl.UTF-8): Dokumentacja API biblioteki libgpiod
118 %if "%{_rpmversion}" >= "5"
123 API documentation for libgpiod library.
125 %description apidocs -l pl.UTF-8
126 Dokumentacja API biblioteki libgpiod.
133 %{!?with_static_libs:--disable-static} \
134 --enable-bindings-cxx \
135 %{?with_python:--enable-bindings-python} \
136 --disable-silent-rules \
145 rm -rf $RPM_BUILD_ROOT
148 DESTDIR=$RPM_BUILD_ROOT
150 # obsoleted by pkg-config
151 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libgpiod*.la
153 %{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/gpiod.la \
154 %{?with_static_libs:$RPM_BUILD_ROOT%{py3_sitedir}/gpiod.a}
158 rm -rf $RPM_BUILD_ROOT
160 %post -p /sbin/ldconfig
161 %postun -p /sbin/ldconfig
163 %post cxx -p /sbin/ldconfig
164 %postun cxx -p /sbin/ldconfig
167 %defattr(644,root,root,755)
169 %attr(755,root,root) %{_bindir}/gpiodetect
170 %attr(755,root,root) %{_bindir}/gpiofind
171 %attr(755,root,root) %{_bindir}/gpioget
172 %attr(755,root,root) %{_bindir}/gpioinfo
173 %attr(755,root,root) %{_bindir}/gpiomon
174 %attr(755,root,root) %{_bindir}/gpioset
175 %attr(755,root,root) %{_libdir}/libgpiod.so.*.*.*
176 %attr(755,root,root) %ghost %{_libdir}/libgpiod.so.2
177 %{_mandir}/man1/gpiodetect.1*
178 %{_mandir}/man1/gpiofind.1*
179 %{_mandir}/man1/gpioget.1*
180 %{_mandir}/man1/gpioinfo.1*
181 %{_mandir}/man1/gpiomon.1*
182 %{_mandir}/man1/gpioset.1*
185 %defattr(644,root,root,755)
186 %attr(755,root,root) %{_libdir}/libgpiod.so
187 %{_includedir}/gpiod.h
188 %{_pkgconfigdir}/libgpiod.pc
190 %if %{with static_libs}
192 %defattr(644,root,root,755)
193 %{_libdir}/libgpiod.a
197 %defattr(644,root,root,755)
198 %attr(755,root,root) %{_libdir}/libgpiodcxx.so.*.*.*
199 %attr(755,root,root) %ghost %{_libdir}/libgpiodcxx.so.1
202 %defattr(644,root,root,755)
203 %attr(755,root,root) %{_libdir}/libgpiodcxx.so
204 %{_includedir}/gpiod.hpp
205 %{_pkgconfigdir}/libgpiodcxx.pc
207 %if %{with static_libs}
209 %defattr(644,root,root,755)
210 %{_libdir}/libgpiodcxx.a
214 %files -n python3-gpiod
215 %defattr(644,root,root,755)
216 %attr(755,root,root) %{py3_sitedir}/gpiod.so
221 %defattr(644,root,root,755)