nixpkgs-suyu/pkgs/development/libraries/libdrm/default.nix
Michael Weiss fe12a99494
libdrm: 2.4.103 -> 2.4.104
Announcement:
https://lists.freedesktop.org/archives/dri-devel/2021-January/293654.html

Additional changes:
- docutils is a new bild-time dependency for rst2man.
- Fix the license (BSD -> MIT). The licensing is a bit complicated but
  at least the main license is MIT [0],[1],[2].
- Add myself as maintainer.
- Extend the meta information.
- Some minor cleanups and style improvements.

[0]: https://pkgs.alpinelinux.org/packages?name=libdrm
[1]: https://www.freshports.org/graphics/libdrm
[2]: https://src.fedoraproject.org/rpms/libdrm/blob/master/f/libdrm.spec
2021-01-19 14:24:32 +01:00

58 lines
2 KiB
Nix

{ stdenv, lib, fetchurl, pkg-config, meson, ninja, docutils
, libpthreadstubs, libpciaccess
, withValgrind ? valgrind-light.meta.available, valgrind-light
}:
stdenv.mkDerivation rec {
pname = "libdrm";
version = "2.4.104";
src = fetchurl {
url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
sha256 = "1jqvx9c23hgwhq109zqj6vg3ng40pcvh3r1k2fn1a424qasxhsnn";
};
outputs = [ "out" "dev" "bin" ];
nativeBuildInputs = [ pkg-config meson ninja docutils ];
buildInputs = [ libpthreadstubs libpciaccess ]
++ lib.optional withValgrind valgrind-light;
patches = [ ./cross-build-nm-path.patch ];
postPatch = ''
for a in */*-symbol-check ; do
patchShebangs $a
done
'';
mesonFlags = [
"-Dnm-path=${stdenv.cc.targetPrefix}nm"
"-Dinstall-test-programs=true"
"-Domap=true"
] ++ lib.optionals (stdenv.isAarch32 || stdenv.isAarch64) [
"-Dtegra=true"
"-Detnaviv=true"
] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-Dintel=false";
meta = with lib; {
homepage = "https://gitlab.freedesktop.org/mesa/drm";
downloadPage = "https://dri.freedesktop.org/libdrm/";
description = "Direct Rendering Manager library and headers";
longDescription = ''
A userspace library for accessing the DRM (Direct Rendering Manager) on
Linux, BSD and other operating systems that support the ioctl interface.
The library provides wrapper functions for the ioctls to avoid exposing
the kernel interface directly, and for chipsets with drm memory manager,
support for tracking relocations and buffers.
New functionality in the kernel DRM drivers typically requires a new
libdrm, but a new libdrm will always work with an older kernel.
libdrm is a low-level library, typically used by graphics drivers such as
the Mesa drivers, the X drivers, libva and similar projects.
'';
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ primeos ];
};
}