diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libdrm')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/libdrm/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/default.nix b/nixpkgs/pkgs/development/libraries/libdrm/default.nix new file mode 100644 index 000000000000..5cb8f2cbad8e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix @@ -0,0 +1,63 @@ +{ stdenv, lib, fetchurl, pkg-config, meson, ninja, docutils +, libpthreadstubs, libpciaccess +, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light, valgrind-light +, gitUpdater +}: + +stdenv.mkDerivation rec { + pname = "libdrm"; + version = "2.4.119"; + + src = fetchurl { + url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz"; + hash = "sha256-CknxLwm1tuaOqq/z8Cynz/mqkmk5shLTQxYdPorFYpE="; + }; + + outputs = [ "out" "dev" "bin" ]; + + nativeBuildInputs = [ pkg-config meson ninja docutils ]; + buildInputs = [ libpthreadstubs libpciaccess ] + ++ lib.optional withValgrind valgrind-light; + + mesonFlags = [ + "-Dinstall-test-programs=true" + "-Dcairo-tests=disabled" + (lib.mesonEnable "omap" stdenv.hostPlatform.isLinux) + (lib.mesonEnable "valgrind" withValgrind) + ] ++ lib.optionals stdenv.hostPlatform.isAarch [ + "-Dtegra=enabled" + ] ++ lib.optionals (!stdenv.hostPlatform.isLinux) [ + "-Detnaviv=disabled" + ]; + + passthru = { + updateScript = gitUpdater { + url = "https://gitlab.freedesktop.org/mesa/drm.git"; + rev-prefix = "libdrm-"; + # Skip versions like libdrm-2_0_2 that happen to go last when + # sorted. + ignoredVersions = "_"; + }; + }; + + 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 = lib.subtractLists platforms.darwin platforms.unix; + maintainers = with maintainers; [ primeos ]; + }; +} |