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: 28e79f6f70fee1da9079558d8b7b3736
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
121 API documentation for libgpiod library.
123 %description apidocs -l pl.UTF-8
124 Dokumentacja API biblioteki libgpiod.
131 %{!?with_static_libs:--disable-static} \
132 --enable-bindings-cxx \
133 %{?with_python:--enable-bindings-python} \
134 --disable-silent-rules \
143 rm -rf $RPM_BUILD_ROOT
146 DESTDIR=$RPM_BUILD_ROOT
148 # obsoleted by pkg-config
149 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libgpiod*.la
151 %{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/gpiod.la \
152 %{?with_static_libs:$RPM_BUILD_ROOT%{py3_sitedir}/gpiod.a}
156 rm -rf $RPM_BUILD_ROOT
158 %post -p /sbin/ldconfig
159 %postun -p /sbin/ldconfig
161 %post cxx -p /sbin/ldconfig
162 %postun cxx -p /sbin/ldconfig
165 %defattr(644,root,root,755)
167 %attr(755,root,root) %{_bindir}/gpiodetect
168 %attr(755,root,root) %{_bindir}/gpiofind
169 %attr(755,root,root) %{_bindir}/gpioget
170 %attr(755,root,root) %{_bindir}/gpioinfo
171 %attr(755,root,root) %{_bindir}/gpiomon
172 %attr(755,root,root) %{_bindir}/gpioset
173 %attr(755,root,root) %{_libdir}/libgpiod.so.*.*.*
174 %attr(755,root,root) %ghost %{_libdir}/libgpiod.so.2
175 %{_mandir}/man1/gpiodetect.1*
176 %{_mandir}/man1/gpiofind.1*
177 %{_mandir}/man1/gpioget.1*
178 %{_mandir}/man1/gpioinfo.1*
179 %{_mandir}/man1/gpiomon.1*
180 %{_mandir}/man1/gpioset.1*
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{_libdir}/libgpiod.so
185 %{_includedir}/gpiod.h
186 %{_pkgconfigdir}/libgpiod.pc
188 %if %{with static_libs}
190 %defattr(644,root,root,755)
191 %{_libdir}/libgpiod.a
195 %defattr(644,root,root,755)
196 %attr(755,root,root) %{_libdir}/libgpiodcxx.so.*.*.*
197 %attr(755,root,root) %ghost %{_libdir}/libgpiodcxx.so.1
200 %defattr(644,root,root,755)
201 %attr(755,root,root) %{_libdir}/libgpiodcxx.so
202 %{_includedir}/gpiod.hpp
203 %{_pkgconfigdir}/libgpiodcxx.pc
205 %if %{with static_libs}
207 %defattr(644,root,root,755)
208 %{_libdir}/libgpiodcxx.a
212 %files -n python3-gpiod
213 %defattr(644,root,root,755)
214 %attr(755,root,root) %{py3_sitedir}/gpiod.so
219 %defattr(644,root,root,755)