openxray: 2188-november-2023-rc1 -> 2921-january-2025-rc1 (#375925)
[NixPkgs.git] / pkgs / by-name / li / liburing / package.nix
blob744f05c3be226e7d1dcf7084df8067111b029ad5
2   lib,
3   stdenv,
4   fetchFromGitHub,
5 }:
7 stdenv.mkDerivation rec {
8   pname = "liburing";
9   version = "2.8";
11   src = fetchFromGitHub {
12     owner = "axboe";
13     repo = "liburing";
14     tag = "liburing-${version}";
15     hash = "sha256-10zmoMDzO41oNRVXE/6FzDGPVRVJTJTARVUmc1b7f+o=";
16   };
18   separateDebugInfo = true;
19   enableParallelBuilding = true;
20   # Upstream's configure script is not autoconf generated, but a hand written one.
21   setOutputFlags = false;
22   dontDisableStatic = true;
23   dontAddStaticConfigureFlags = true;
24   configureFlags = [
25     "--includedir=${placeholder "dev"}/include"
26     "--mandir=${placeholder "man"}/share/man"
27   ];
29   # mysterious link failure
30   hardeningDisable = [ "trivialautovarinit" ];
32   # Doesn't recognize platform flags
33   configurePlatforms = [ ];
35   outputs = [
36     "out"
37     "bin"
38     "dev"
39     "man"
40   ];
42   postInstall = ''
43     # Always builds both static and dynamic libraries, so we need to remove the
44     # libraries that don't match stdenv type.
45     rm $out/lib/liburing*${if stdenv.hostPlatform.isStatic then ".so*" else ".a"}
47     # Copy the examples into $bin. Most reverse dependency of
48     # this package should reference only the $out output
49     for file in $(find ./examples -executable -type f); do
50       install -Dm555 -t "$bin/bin" "$file"
51     done
52   '';
54   meta = with lib; {
55     description = "Userspace library for the Linux io_uring API";
56     homepage = "https://github.com/axboe/liburing";
57     license = licenses.lgpl21;
58     platforms = platforms.linux;
59     maintainers = with maintainers; [
60       thoughtpolice
61       nickcao
62     ];
63   };