python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / gstreamer / core / default.nix
blob41acd079583eb90f9a01f5f13c8a0102a7ad47f4
1 { stdenv
2 , fetchurl
3 , meson
4 , ninja
5 , pkg-config
6 , gettext
7 , bison
8 , flex
9 , python3
10 , glib
11 , makeWrapper
12 , libcap
13 , libunwind
14 , darwin
15 , elfutils # for libdw
16 , bash-completion
17 , lib
18 , CoreServices
19 , gobject-introspection
22 stdenv.mkDerivation rec {
23   pname = "gstreamer";
24   version = "1.20.3";
26   outputs = [
27     "bin"
28     "out"
29     "dev"
30     # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs, see:
31     # - https://github.com/NixOS/nixpkgs/pull/98767
32     # - https://github.com/NixOS/nixpkgs/issues/98769#issuecomment-702296551
33   ];
35   src = fetchurl {
36     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
37     sha256 = "sha256-YH2vZLu9X7GK+dF+IcDSLE1wL//oOyPLItGxryyiOio=";
38   };
40   depsBuildBuild = [
41     pkg-config
42   ];
44   strictDeps = true;
45   nativeBuildInputs = [
46     meson
47     ninja
48     pkg-config
49     gettext
50     bison
51     flex
52     python3
53     makeWrapper
54     glib
55     bash-completion
56     gobject-introspection
58     # documentation
59     # TODO add hotdoc here
60   ] ++ lib.optionals stdenv.isLinux [
61     libcap # for setcap binary
62   ];
64   buildInputs = [
65     bash-completion
66     gobject-introspection
67   ] ++ lib.optionals stdenv.isLinux [
68     libcap
69     libunwind
70     elfutils
71   ] ++ lib.optionals stdenv.isDarwin [
72     CoreServices
73   ];
75   propagatedBuildInputs = [
76     glib
77   ];
79   mesonFlags = [
80     "-Ddbghelp=disabled" # not needed as we already provide libunwind and libdw, and dbghelp is a fallback to those
81     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
82     "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing
83   ] ++ lib.optionals stdenv.isDarwin [
84     # darwin.libunwind doesn't have pkg-config definitions so meson doesn't detect it.
85     "-Dlibunwind=disabled"
86     "-Dlibdw=disabled"
87   ];
89   postPatch = ''
90     patchShebangs \
91       gst/parse/get_flex_version.py \
92       gst/parse/gen_grammar.py.in \
93       gst/parse/gen_lex.py.in \
94       libs/gst/helpers/ptp_helper_post_install.sh \
95       scripts/extract-release-date-from-doap-file.py
96   '';
98   postInstall = ''
99     for prog in "$bin/bin/"*; do
100         # We can't use --suffix here due to quoting so we craft the export command by hand
101         wrapProgram "$prog" --run 'export GST_PLUGIN_SYSTEM_PATH_1_0=$GST_PLUGIN_SYSTEM_PATH_1_0''${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$(unset _tmp; for profile in $NIX_PROFILES; do _tmp="$profile/lib/gstreamer-1.0''${_tmp:+:}$_tmp"; done; printf '%s' "$_tmp")'
102     done
103   '';
105   preFixup = ''
106     moveToOutput "share/bash-completion" "$bin"
107   '';
109   setupHook = ./setup-hook.sh;
111   meta = with lib ;{
112     description = "Open source multimedia framework";
113     homepage = "https://gstreamer.freedesktop.org";
114     license = licenses.lgpl2Plus;
115     platforms = platforms.unix;
116     maintainers = with maintainers; [ ttuegel matthewbauer ];
117   };