nixpkgs/pkgs/by-name/li/libdrm/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

67 lines
2.4 KiB
Nix

{ stdenv, lib, fetchurl, pkg-config, meson, ninja, docutils
, libpthreadstubs
, withIntel ? lib.meta.availableOn stdenv.hostPlatform libpciaccess, libpciaccess
, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light, valgrind-light
, gitUpdater
}:
stdenv.mkDerivation rec {
pname = "libdrm";
version = "2.4.123";
src = fetchurl {
url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
hash = "sha256-ormFZ6FJp0sPUOkegl+cAxXYbnvpt0OU2uiymMqtt54=";
};
outputs = [ "out" "dev" "bin" ];
nativeBuildInputs = [ pkg-config meson ninja docutils ];
buildInputs = [ libpthreadstubs ]
++ lib.optional withIntel libpciaccess
++ lib.optional withValgrind valgrind-light;
mesonFlags = [
"-Dinstall-test-programs=true"
"-Dcairo-tests=disabled"
(lib.mesonEnable "intel" withIntel)
(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 ];
};
}