Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 stdenv,
4 fetchurl,
5 meson,
6 ninja,
7 file,
8 docbook-xsl-nons,
9 gtk-doc ? null,
10 buildDevDoc ? gtk-doc != null,
11
12 # for passthru.tests
13 gnuradio,
14 gst_all_1,
15 qt6,
16 vips,
17}:
18
19stdenv.mkDerivation (finalAttrs: {
20 pname = "orc";
21 version = "0.4.41";
22
23 outputs = [
24 "out"
25 "dev"
26 ]
27 ++ lib.optional buildDevDoc "devdoc";
28 outputBin = "dev"; # compilation tools
29
30 src = fetchurl {
31 url = "https://gstreamer.freedesktop.org/src/orc/orc-${finalAttrs.version}.tar.xz";
32 hash = "sha256-yxv9T2VSic05vARkLVl76d5UJ2I/CGHB/BnAjZhGf6I=";
33 };
34
35 postPatch = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) ''
36 # This benchmark times out on Hydra.nixos.org
37 sed -i '/memcpy_speed/d' testsuite/meson.build
38 '';
39
40 mesonFlags = [
41 (lib.mesonEnable "gtk_doc" buildDevDoc)
42 ];
43
44 nativeBuildInputs = [
45 meson
46 ninja
47 ]
48 ++ lib.optionals buildDevDoc [
49 gtk-doc
50 file
51 docbook-xsl-nons
52 ];
53
54 # https://gitlab.freedesktop.org/gstreamer/orc/-/issues/41
55 doCheck =
56 !(
57 stdenv.hostPlatform.isLinux
58 && stdenv.hostPlatform.isAarch64
59 && stdenv.cc.isGNU
60 && lib.versionAtLeast stdenv.cc.version "12"
61 );
62
63 passthru.tests = {
64 inherit (gst_all_1) gst-plugins-good gst-plugins-bad gst-plugins-ugly;
65 inherit gnuradio vips;
66 qt6-qtmultimedia = qt6.qtmultimedia;
67 };
68
69 meta = with lib; {
70 description = "Oil Runtime Compiler";
71 homepage = "https://gstreamer.freedesktop.org/projects/orc.html";
72 changelog = "https://gitlab.freedesktop.org/gstreamer/orc/-/blob/${finalAttrs.version}/RELEASE";
73 # The source code implementing the Marsenne Twister algorithm is licensed
74 # under the 3-clause BSD license. The rest is 2-clause BSD license.
75 license = with licenses; [
76 bsd3
77 bsd2
78 ];
79 platforms = platforms.unix;
80 maintainers = [ ];
81 };
82})