Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / development / compilers / orc / default.nix
blob9f960cdf954950f36540cbca2b1b8115bda9a4a0
1 { lib
2 , stdenv
3 , fetchurl
4 , meson
5 , ninja
6 , file
7 , docbook_xsl
8 , gtk-doc ? null
9 , buildDevDoc ? gtk-doc != null
11 # for passthru.tests
12 , gnuradio
13 , gst_all_1
14 , qt6
15 , vips
17 }: let
18   inherit (lib) optional optionals;
19 in stdenv.mkDerivation rec {
20   pname = "orc";
21   version = "0.4.39";
23   src = fetchurl {
24     url = "https://gstreamer.freedesktop.org/src/orc/${pname}-${version}.tar.xz";
25     sha256 = "sha256-M+0jh/Sbgl+hucOwBy4F8lkUG4lUdK0IWuURQ9MEDMA=";
26   };
28   postPatch = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
29     # This benchmark times out on Hydra.nixos.org
30     sed -i '/memcpy_speed/d' testsuite/meson.build
31   '';
33   outputs = [ "out" "dev" ]
34      ++ optional buildDevDoc "devdoc"
35   ;
36   outputBin = "dev"; # compilation tools
38   mesonFlags =
39     optionals (!buildDevDoc) [ "-Dgtk_doc=disabled" ]
40   ;
42   nativeBuildInputs = [ meson ninja ]
43     ++ optionals buildDevDoc [ gtk-doc file docbook_xsl ]
44   ;
46   # https://gitlab.freedesktop.org/gstreamer/orc/-/issues/41
47   doCheck = !(stdenv.isLinux && stdenv.isAarch64 && stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12");
49   passthru.tests = {
50     inherit (gst_all_1) gst-plugins-good gst-plugins-bad gst-plugins-ugly;
51     inherit gnuradio vips;
52     qt6-qtmultimedia = qt6.qtmultimedia;
53   };
55   meta = with lib; {
56     description = "Oil Runtime Compiler";
57     homepage = "https://gstreamer.freedesktop.org/projects/orc.html";
58     changelog = "https://cgit.freedesktop.org/gstreamer/orc/plain/RELEASE?h=${version}";
59     # The source code implementing the Marsenne Twister algorithm is licensed
60     # under the 3-clause BSD license. The rest is 2-clause BSD license.
61     license = with licenses; [ bsd3 bsd2 ];
62     platforms = platforms.unix;
63     maintainers = with maintainers; [ ];
64   };