+#
+# Conditional build:
+%bcond_without static_libs # static libraries
+%bcond_with valgrind # valgrind support in libdrm
+
Summary: Userspace interface to kernel DRM services
Summary(pl.UTF-8): Interfejs przestrzeni użytkownika do usług DRM jądra
Name: libdrm
-Version: 2.4.90
+Version: 2.4.116
Release: 1
License: MIT
Group: Libraries
-Source0: https://dri.freedesktop.org/libdrm/%{name}-%{version}.tar.bz2
-# Source0-md5: 61dcb4989c728f566e3c15c236585a17
+Source0: https://dri.freedesktop.org/libdrm/%{name}-%{version}.tar.xz
+# Source0-md5: 1e4e75070b8c5cb1e828cef1d704f734
URL: https://dri.freedesktop.org/
-BuildRequires: autoconf >= 2.63
-BuildRequires: automake >= 1:1.10
BuildRequires: docbook-dtd42-xml
-BuildRequires: docbook-style-xsl
-BuildRequires: libpthread-stubs >= 0.4
-BuildRequires: libtool >= 2:2.2
+BuildRequires: docbook-style-xsl-nons
+BuildRequires: docutils
+BuildRequires: gcc >= 6:4.9
+%ifarch i386
+BuildRequires: libatomic_ops-devel
+%endif
BuildRequires: libxslt-progs
+BuildRequires: meson >= 0.53
+BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.736
BuildRequires: sed >= 4.0
-BuildRequires: valgrind
+BuildRequires: tar >= 1:1.22
+%{?with_valgrind:BuildRequires: valgrind}
%ifarch %{ix86} %{x8664} x32
BuildRequires: xorg-lib-libpciaccess-devel >= 0.10
%endif
-BuildRequires: xorg-util-util-macros >= 1.12
+BuildRequires: xz
+%ifarch %{ix86} %{x8664} x32
Requires: xorg-lib-libpciaccess >= 0.10
+%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
%prep
%setup -q
+%if %{with static_libs}
+%{__sed} -i -e '/^lib.* = shared_library/ s/shared_library/library/' \
+ meson.build \
+ {amdgpu,etnaviv,exynos,freedreno,intel,nouveau,omap,radeon,tegra}/meson.build
+%endif
+
%build
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- --disable-silent-rules \
- --enable-static \
+%meson build \
+ %{!?with_valgrind:-Dvalgrind=disabled} \
%ifarch %{arm} aarch64
- --enable-etnaviv-experimental-api \
- --enable-exynos-experimental-api \
- --enable-freedreno-experimental-api \
- --enable-omap-experimental-api \
- --enable-tegra-experimental-api
+ -Detnaviv=enabled \
+ -Dexynos=enabled \
+ -Domap=enabled \
+ -Dtegra=enabled
%endif
-%{__make}
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
-
-# obsoleted by pkg-config
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/lib*.la
+%ninja_install -C build
%clean
rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_libdir}/libdrm_tegra.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libdrm_tegra.so.0
%endif
-%attr(755,root,root) %{_libdir}/libkms.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libkms.so.1
%{_datadir}/libdrm
%files devel
%attr(755,root,root) %{_libdir}/libdrm_amdgpu.so
%attr(755,root,root) %{_libdir}/libdrm_nouveau.so
%attr(755,root,root) %{_libdir}/libdrm_radeon.so
-%attr(755,root,root) %{_libdir}/libkms.so
%{_includedir}/libdrm
-%{_includedir}/libkms
%{_includedir}/libsync.h
%{_includedir}/xf86drm.h
%{_includedir}/xf86drmMode.h
%{_pkgconfigdir}/libdrm_amdgpu.pc
%{_pkgconfigdir}/libdrm_nouveau.pc
%{_pkgconfigdir}/libdrm_radeon.pc
-%{_pkgconfigdir}/libkms.pc
%ifarch %{ix86} %{x8664} x32
%attr(755,root,root) %{_libdir}/libdrm_intel.so
%{_pkgconfigdir}/libdrm_intel.pc
%{_mandir}/man3/drm*.3*
%{_mandir}/man7/drm*.7*
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libdrm.a
%{_libdir}/libdrm_omap.a
%{_libdir}/libdrm_tegra.a
%endif
-%{_libdir}/libkms.a
+%endif