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: dbcebfe6ff29ef4db33ed87ff7ff6d65
17 URL: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
18 %{?with_apidocs:BuildRequires: doxygen}
19 BuildRequires: libstdc++-devel >= 6:4.7
20 BuildRequires: linux-libc-headers >= 6:5.5
21 %{?with_python:BuildRequires: python3-devel >= 1:3.2}
22 BuildRequires: tar >= 1:1.22
24 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
27 Since Linux 4.8 the GPIO sysfs interface is deprecated. User space
28 should use the character device instead. This library encapsulates the
29 ioctl calls and data structures behind a straightforward API.
31 %description -l pl.UTF-8
32 Od wersja Linuksa 4.8 interfejs sysfs do GPIO jest przestarzały.
33 Przestrzeń użytkownika powinna zamiast niego używać urządzenia
34 znakowego. Ta biblioteka kryje wywołania ioctl i struktury danych za
38 Summary: Header files for libgpiod library
39 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libgpiod
40 Group: Development/Libraries
41 Requires: %{name} = %{version}-%{release}
44 Header files for libgpiod library.
46 %description devel -l pl.UTF-8
47 Pliki nagłówkowe biblioteki libgpiod.
50 Summary: Static libgpiod library
51 Summary(pl.UTF-8): Statyczna biblioteka libgpiod
52 Group: Development/Libraries
53 Requires: %{name}-devel = %{version}-%{release}
56 Static libgpiod library.
58 %description static -l pl.UTF-8
59 Statyczna biblioteka libgpiod.
62 Summary: C++ binding for libgpiod library
63 Summary(pl.UTF-8): Interfejs C++ do biblioteki libgpiod
65 Requires: %{name} = %{version}-%{release}
68 High-level, object-oriented C++ binding for libgpiod library.
70 %description cxx -l pl.UTF-8
71 Wysokopoziomowy, zorientowany obiektowo interfejs C++ do biblioteki
75 Summary: Header files for libgpiodcxx library
76 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki libgpiodcxx
77 Group: Development/Libraries
78 Requires: %{name}-cxx = %{version}-%{release}
79 Requires: %{name}-devel = %{version}-%{release}
80 Requires: libstdc++-devel >= 6:4.7
82 %description cxx-devel
83 Header files for libgpiodcxx library.
85 %description cxx-devel -l pl.UTF-8
86 Pliki nagłówkowe biblioteki libgpiodcxx.
89 Summary: Static libgpiodcxx library
90 Summary(pl.UTF-8): Statyczna biblioteka libgpiodcxx
91 Group: Development/Libraries
92 Requires: %{name}-cxx-devel = %{version}-%{release}
94 %description cxx-static
95 Static libgpiodcxx library.
97 %description cxx-static -l pl.UTF-8
98 Statyczna biblioteka libgpiodcxx.
100 %package -n python3-gpiod
101 Summary: Pythona binding for libgpiod library
102 Summary(pl.UTF-8): Interfejs Pythona do biblioteki libgpiod
103 Group: Libraries/Python
104 Requires: %{name} = %{version}-%{release}
106 %description -n python3-gpiod
107 High-level, object-oriented Python binding for libgpiod library.
109 %description -n python3-gpiod -l pl.UTF-8
110 Wysokopoziomowy, zorientowany obiektowo interfejs Pythona do
114 Summary: API documentation for libgpiod library
115 Summary(pl.UTF-8): Dokumentacja API biblioteki libgpiod
117 %if "%{_rpmversion}" >= "5"
122 API documentation for libgpiod library.
124 %description apidocs -l pl.UTF-8
125 Dokumentacja API biblioteki libgpiod.
132 %{!?with_static_libs:--disable-static} \
133 --enable-bindings-cxx \
134 %{?with_python:--enable-bindings-python} \
135 --disable-silent-rules \
144 rm -rf $RPM_BUILD_ROOT
147 DESTDIR=$RPM_BUILD_ROOT
149 # obsoleted by pkg-config
150 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libgpiod*.la
152 %{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/gpiod.la \
153 %{?with_static_libs:$RPM_BUILD_ROOT%{py3_sitedir}/gpiod.a}
157 rm -rf $RPM_BUILD_ROOT
159 %post -p /sbin/ldconfig
160 %postun -p /sbin/ldconfig
162 %post cxx -p /sbin/ldconfig
163 %postun cxx -p /sbin/ldconfig
166 %defattr(644,root,root,755)
168 %attr(755,root,root) %{_bindir}/gpiodetect
169 %attr(755,root,root) %{_bindir}/gpiofind
170 %attr(755,root,root) %{_bindir}/gpioget
171 %attr(755,root,root) %{_bindir}/gpioinfo
172 %attr(755,root,root) %{_bindir}/gpiomon
173 %attr(755,root,root) %{_bindir}/gpioset
174 %attr(755,root,root) %{_libdir}/libgpiod.so.*.*.*
175 %attr(755,root,root) %ghost %{_libdir}/libgpiod.so.2
176 %{_mandir}/man1/gpiodetect.1*
177 %{_mandir}/man1/gpiofind.1*
178 %{_mandir}/man1/gpioget.1*
179 %{_mandir}/man1/gpioinfo.1*
180 %{_mandir}/man1/gpiomon.1*
181 %{_mandir}/man1/gpioset.1*
184 %defattr(644,root,root,755)
185 %attr(755,root,root) %{_libdir}/libgpiod.so
186 %{_includedir}/gpiod.h
187 %{_pkgconfigdir}/libgpiod.pc
189 %if %{with static_libs}
191 %defattr(644,root,root,755)
192 %{_libdir}/libgpiod.a
196 %defattr(644,root,root,755)
197 %attr(755,root,root) %{_libdir}/libgpiodcxx.so.*.*.*
198 %attr(755,root,root) %ghost %{_libdir}/libgpiodcxx.so.1
201 %defattr(644,root,root,755)
202 %attr(755,root,root) %{_libdir}/libgpiodcxx.so
203 %{_includedir}/gpiod.hpp
204 %{_pkgconfigdir}/libgpiodcxx.pc
206 %if %{with static_libs}
208 %defattr(644,root,root,755)
209 %{_libdir}/libgpiodcxx.a
213 %files -n python3-gpiod
214 %defattr(644,root,root,755)
215 %attr(755,root,root) %{py3_sitedir}/gpiod.so
220 %defattr(644,root,root,755)