From e186f0e161407a9a781d235b21991ca82004fee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Thu, 22 Oct 2020 17:57:02 +0200 Subject: [PATCH 1/5] pitivi: Fix .svg loading at startup, see #56943 #89691 --- pkgs/applications/video/pitivi/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix index b1c1dd285e20..ee07a5c7cc89 100644 --- a/pkgs/applications/video/pitivi/default.nix +++ b/pkgs/applications/video/pitivi/default.nix @@ -147,6 +147,12 @@ in python3Packages.buildPythonApplication rec { mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in ''; + # Fixes error + # Couldn’t recognize the image file format for file ".../share/pitivi/pixmaps/asset-proxied.svg" + # at startup, see https://github.com/NixOS/nixpkgs/issues/56943 + # and https://github.com/NixOS/nixpkgs/issues/89691#issuecomment-714398705. + strictDeps = false; + passthru = { updateScript = gnome3.updateScript { packageName = "pitivi"; From 0672de5b894a15e97da9cf82bf3052bde7919691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Fri, 2 Oct 2020 00:31:58 +0200 Subject: [PATCH 2/5] gstreamer: 1.16.2 -> 1.18.0 Fixes #98769. Important changes from https://gstreamer.freedesktop.org/releases/1.18/: * `gst-validate` was renamed to `gst-devtools` upstream: > * the `gst-validate` tarball has been superseded by > the `gst-devtools` tarball for consistency with the git module name. * `gst-python` is now Python 3 only: > * Python 2.x is no longer supported --- .../instant-messengers/fractal/default.nix | 2 +- pkgs/applications/video/pitivi/default.nix | 2 +- .../libraries/gstreamer/bad/default.nix | 33 ++++++++++--------- .../libraries/gstreamer/bad/opencv-4.3.patch | 13 -------- .../libraries/gstreamer/base/default.nix | 24 ++++---------- .../libraries/gstreamer/core/default.nix | 31 ++++++++--------- .../core/fix_pkgconfig_includedir.patch | 2 ++ .../libraries/gstreamer/default.nix | 6 ++-- .../{validate => devtools}/default.nix | 27 ++++++++++++--- .../fix_pkgconfig_includedir.patch | 14 ++++---- .../libraries/gstreamer/ges/default.nix | 29 +++++++++++----- .../libraries/gstreamer/good/default.nix | 20 ++++++++--- .../libraries/gstreamer/libav/default.nix | 13 ++++++-- .../gstreamer/rtsp-server/default.nix | 21 ++++++++++-- .../libraries/gstreamer/ugly/default.nix | 11 +++++-- .../libraries/gstreamer/vaapi/default.nix | 23 ++++++++++--- .../python-modules/gst-python/default.nix | 30 +++++------------ 17 files changed, 173 insertions(+), 128 deletions(-) delete mode 100644 pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch rename pkgs/development/libraries/gstreamer/{validate => devtools}/default.nix (59%) rename pkgs/development/libraries/gstreamer/{good => devtools}/fix_pkgconfig_includedir.patch (67%) diff --git a/pkgs/applications/networking/instant-messengers/fractal/default.nix b/pkgs/applications/networking/instant-messengers/fractal/default.nix index 68e7282870ba..440628160ec0 100644 --- a/pkgs/applications/networking/instant-messengers/fractal/default.nix +++ b/pkgs/applications/networking/instant-messengers/fractal/default.nix @@ -63,7 +63,7 @@ rustPlatform.buildRustPackage rec { gtkSupport = true; }) gst_all_1.gstreamer - gst_all_1.gst-validate + gst_all_1.gst-devtools gtk3 gtksourceview4 libhandy diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix index ee07a5c7cc89..1b7625d1c740 100644 --- a/pkgs/applications/video/pitivi/default.nix +++ b/pkgs/applications/video/pitivi/default.nix @@ -127,7 +127,7 @@ in python3Packages.buildPythonApplication rec { gst-plugins-bad gst-plugins-ugly gst-libav - gst-validate + gst-devtools ]); pythonPath = with python3Packages; [ diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix index 903ca661486f..760936a85e8f 100644 --- a/pkgs/development/libraries/gstreamer/bad/default.nix +++ b/pkgs/development/libraries/gstreamer/bad/default.nix @@ -29,6 +29,7 @@ , libbs2b , libmodplug , mpeg2dec +, libmicrodns , openjpeg , libopus , librsvg @@ -65,6 +66,7 @@ , wayland-protocols , wildmidi , fluidsynth +, libva , libvdpau , wayland , libwebp @@ -87,25 +89,17 @@ let inherit (stdenv.lib) optional optionals; in stdenv.mkDerivation rec { pname = "gst-plugins-bad"; - version = "1.16.2"; + version = "1.18.0"; outputs = [ "out" "dev" ]; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0x0y0hm0ga3zqi5q4090hw5sjh59y1ry9ak16qsaascm72i7mjzi"; + sha256 = "0pqqq5bs9fjwcmbwgsgxs2dx6gznhxs7ii5pmjkslr6xmlfap0pk"; }; patches = [ - # Fix build with neon 0.31 - # https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1165 - (fetchpatch { - url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/f10b424418e448211e3427a76fcd046e157ef0b7.patch"; - sha256 = "0l1f6kqcl04q7w12a2b4qibcvjz6gqhs0csdv2wbvfd6zndpjm6p"; - }) ./fix_pkgconfig_includedir.patch - # https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1235 - ./opencv-4.3.patch ]; nativeBuildInputs = [ @@ -130,6 +124,7 @@ in stdenv.mkDerivation rec { libbs2b libmodplug mpeg2dec + libmicrodns openjpeg libopus librsvg @@ -154,6 +149,7 @@ in stdenv.mkDerivation rec { soundtouch srtp fluidsynth + libva libvdpau libwebp xvidcore @@ -215,11 +211,14 @@ in stdenv.mkDerivation rec { mesonFlags = [ "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing + "-Davtp=disabled" "-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development" "-Dzbar=${if enableZbar then "enabled" else "disabled"}" "-Dfaac=${if faacSupport then "enabled" else "disabled"}" "-Diqa=disabled" # required `dssim` library not packaging in nixpkgs as of writing + "-Dmagicleap=disabled" # required `ml_audio` library not packaged in nixpkgs as of writing "-Dmsdk=disabled" # not packaged in nixpkgs as of writing / no Windows support # As of writing, with `libmpcdec` in `buildInputs` we get # "Could not find libmpcdec header files, but Musepack was enabled via options" @@ -236,19 +235,16 @@ in stdenv.mkDerivation rec { "-Dopenni2=disabled" # not packaged in nixpkgs as of writing "-Dopensles=disabled" # not packaged in nixpkgs as of writing "-Dsctp=disabled" # required `usrsctp` library not packaged in nixpkgs as of writing + "-Dsvthevcenc=disabled" # required `SvtHevcEnc` library not packaged in nixpkgs as of writing "-Dteletext=disabled" # required `zvbi` library not packaged in nixpkgs as of writing "-Dtinyalsa=disabled" # not packaged in nixpkgs as of writing "-Dvoaacenc=disabled" # required `vo-aacenc` library not packaged in nixpkgs as of writing "-Dvoamrwbenc=disabled" # required `vo-amrwbenc` library not packaged in nixpkgs as of writing "-Dvulkan=disabled" # Linux-only, and we haven't figured out yet which of the vulkan nixpkgs it needs "-Dwasapi=disabled" # not packaged in nixpkgs as of writing / no Windows support + "-Dwasapi2=disabled" # not packaged in nixpkgs as of writing / no Windows support "-Dwpe=disabled" # required `wpe-webkit` library not packaged in nixpkgs as of writing - - # Requires CUDA and we haven't figured out how to make Meson find CUDA yet; - # it probably searches via pkgconfig, for which we have no .pc files, - # see https://github.com/NixOS/nixpkgs/issues/54395 - "-Dnvdec=disabled" - "-Dnvenc=disabled" + "-Dzxing=disabled" # required `zxing-cpp` library not packaged in nixpkgs as of writing ] ++ optionals stdenv.isDarwin [ "-Dbluez=disabled" @@ -276,6 +272,11 @@ in stdenv.mkDerivation rec { "-Dapplemedia=disabled" ]; + postPatch = '' + patchShebangs \ + scripts/extract-release-date-from-doap-file.py + ''; + # This package has some `_("string literal")` string formats # that trip up clang with format security enabled. hardeningDisable = [ "format" ]; diff --git a/pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch b/pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch deleted file mode 100644 index 55155d5c5e77..000000000000 --- a/pkgs/development/libraries/gstreamer/bad/opencv-4.3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build -index f38b55d..05b142e 100644 ---- a/ext/opencv/meson.build -+++ b/ext/opencv/meson.build -@@ -65,7 +65,7 @@ if opencv_found - endif - endforeach - else -- opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.2.0'], required : false) -+ opencv_dep = dependency('opencv4', version : ['>= 4.0.0', '< 4.4.0'], required : false) - opencv_found = opencv_dep.found() - if opencv_found - foreach h : libopencv4_headers diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix index 79405e5077e0..00f3ecd449d1 100644 --- a/pkgs/development/libraries/gstreamer/base/default.nix +++ b/pkgs/development/libraries/gstreamer/base/default.nix @@ -19,9 +19,6 @@ , libvisual , tremor # provides 'virbisidec' , libGL -, gtk-doc -, docbook_xsl -, docbook_xml_dtd_43 , enableX11 ? stdenv.isLinux , libXv , enableWayland ? stdenv.isLinux @@ -42,13 +39,13 @@ stdenv.mkDerivation rec { pname = "gst-plugins-base"; - version = "1.16.2"; + version = "1.18.0"; outputs = [ "out" "dev" ]; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"; + sha256 = "15vqvcy842vhbic3w7l4yvannzazdgwggzv2x8f9m02hm78vsakn"; }; patches = [ @@ -66,9 +63,7 @@ stdenv.mkDerivation rec { gobject-introspection # docs - gtk-doc - docbook_xsl - docbook_xml_dtd_43 + # TODO add hotdoc here ] ++ lib.optional enableWayland wayland; buildInputs = [ @@ -103,17 +98,10 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing "-Dgl-graphene=disabled" # not packaged in nixpkgs as of writing # See https://github.com/GStreamer/gst-plugins-base/blob/d64a4b7a69c3462851ff4dcfa97cc6f94cd64aef/meson_options.txt#L15 for a list of choices "-Dgl_winsys=${lib.concatStringsSep "," (lib.optional enableX11 "x11" ++ lib.optional enableWayland "wayland" ++ lib.optional enableCocoa "cocoa")}" - # We must currently disable gtk_doc API docs generation, - # because it is not compatible with some features being disabled. - # See for example - # https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/564 - # for it failing because some Wayland symbols are missing. - # This problem appeared between 1.15.1 and 1.16.0. - # In 1.18 they should switch to hotdoc, which should make this issue irrelevant. - "-Dgtk_doc=disabled" ] ++ lib.optional (!enableX11) "-Dx11=disabled" # TODO How to disable Wayland? @@ -125,7 +113,9 @@ stdenv.mkDerivation rec { ]; postPatch = '' - patchShebangs common/scangobj-merge.py + patchShebangs \ + common/scangobj-merge.py \ + scripts/extract-release-date-from-doap-file.py ''; # This package has some `_("string literal")` string formats diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix index 9c4f3ee0251d..be4d19f8d0df 100644 --- a/pkgs/development/libraries/gstreamer/core/default.nix +++ b/pkgs/development/libraries/gstreamer/core/default.nix @@ -1,6 +1,5 @@ { stdenv , fetchurl -, fetchpatch , meson , ninja , pkgconfig @@ -16,34 +15,30 @@ , darwin , elfutils # for libdw , bash-completion -, docbook_xsl -, docbook_xml_dtd_43 -, gtk-doc , lib , CoreServices }: stdenv.mkDerivation rec { pname = "gstreamer"; - version = "1.16.2"; + version = "1.18.0"; - outputs = [ "out" "dev" "devdoc" ]; + outputs = [ + "out" + "dev" + # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs, see: + # - https://github.com/NixOS/nixpkgs/pull/98767 + # - https://github.com/NixOS/nixpkgs/issues/98769#issuecomment-702296551 + ]; outputBin = "dev"; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"; + sha256 = "01bq1k0gj603zyhq975zl09q4zla12mxqvhmk9fyn2kcn12r5w0g"; }; patches = [ ./fix_pkgconfig_includedir.patch - - # Fix build with bash-completion 2.10 - # https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/436 - (fetchpatch { - url = "https://gitlab.freedesktop.org/gstreamer/gstreamer/commit/dd2ec3681e2d38e13e01477efa36e851650690fb.patch"; - sha256 = "07hwf67vndsibm1khvs4rfq30sbs9fss8k5vs502xc0kccbi1ih8"; - }) ]; nativeBuildInputs = [ @@ -60,9 +55,7 @@ stdenv.mkDerivation rec { bash-completion # documentation - gtk-doc - docbook_xsl - docbook_xml_dtd_43 + # TODO add hotdoc here ]; buildInputs = [ @@ -82,6 +75,7 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Ddbghelp=disabled" # not needed as we already provide libunwind and libdw, and dbghelp is a fallback to those "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing ] ++ lib.optionals stdenv.isDarwin [ # darwin.libunwind doesn't have pkgconfig definitions so meson doesn't detect it. "-Dlibunwind=disabled" @@ -93,7 +87,8 @@ stdenv.mkDerivation rec { gst/parse/get_flex_version.py \ gst/parse/gen_grammar.py.in \ gst/parse/gen_lex.py.in \ - libs/gst/helpers/ptp_helper_post_install.sh + libs/gst/helpers/ptp_helper_post_install.sh \ + scripts/extract-release-date-from-doap-file.py ''; postInstall = '' diff --git a/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch b/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch index c388a82fa2a8..db1684269350 100644 --- a/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch +++ b/pkgs/development/libraries/gstreamer/core/fix_pkgconfig_includedir.patch @@ -7,8 +7,10 @@ index edb0586c2..7ed46dfce 100644 pkgconf.set('prefix', join_paths(get_option('prefix'))) pkgconf.set('exec_prefix', '${prefix}') -pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) +-pkgconf.set('libexecdir', '${prefix}/@0@'.format(get_option('libexecdir'))) -pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) +pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) ++pkgconf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir'))) +pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) pkgconf.set('GST_API_VERSION', apiversion) pkgconf.set('VERSION', gst_version) diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix index e7e11db61298..1fdd67d836e7 100644 --- a/pkgs/development/libraries/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/default.nix @@ -17,13 +17,13 @@ rec { gst-libav = callPackage ./libav { inherit gst-plugins-base; }; - gst-editing-services = callPackage ./ges { inherit gst-plugins-base; }; + gst-devtools = callPackage ./devtools { inherit gstreamer gst-plugins-base; }; + + gst-editing-services = callPackage ./ges { inherit gst-plugins-base gst-plugins-bad gst-devtools; }; gst-vaapi = callPackage ./vaapi { inherit gst-plugins-base gstreamer gst-plugins-bad; }; - gst-validate = callPackage ./validate { inherit gstreamer gst-plugins-base; }; - # note: gst-python is in ./python/default.nix - called under pythonPackages } diff --git a/pkgs/development/libraries/gstreamer/validate/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix similarity index 59% rename from pkgs/development/libraries/gstreamer/validate/default.nix rename to pkgs/development/libraries/gstreamer/devtools/default.nix index 74e898481634..f865b3adf26b 100644 --- a/pkgs/development/libraries/gstreamer/validate/default.nix +++ b/pkgs/development/libraries/gstreamer/devtools/default.nix @@ -1,5 +1,7 @@ { stdenv , fetchurl +, meson +, ninja , pkgconfig , gstreamer , gst-plugins-base @@ -9,19 +11,32 @@ }: stdenv.mkDerivation rec { - pname = "gst-validate"; - version = "1.16.2"; + pname = "gst-devtools"; + version = "1.18.0"; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1jpfrzg3yc6kp66bgq3jy14xsj3x71mk2zh0k16yf0326awwqqa8"; + sha256 = "05jzjkkdr5hg01mjihlqdcxqnjfrm4mqk0zp83212kv5nm0p2cw2"; }; - outputs = [ "out" "dev" ]; + patches = [ + ./fix_pkgconfig_includedir.patch + ]; + + outputs = [ + "out" + "dev" + # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs + ]; nativeBuildInputs = [ + meson + ninja pkgconfig gobject-introspection + + # documentation + # TODO add hotdoc here ]; buildInputs = [ @@ -34,6 +49,10 @@ stdenv.mkDerivation rec { gst-plugins-base ]; + mesonFlags = [ + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing + ]; + meta = with stdenv.lib; { description = "Integration testing infrastructure for the GStreamer framework"; homepage = "https://gstreamer.freedesktop.org"; diff --git a/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch b/pkgs/development/libraries/gstreamer/devtools/fix_pkgconfig_includedir.patch similarity index 67% rename from pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch rename to pkgs/development/libraries/gstreamer/devtools/fix_pkgconfig_includedir.patch index f68ad603a37c..ff19c7cbf6f8 100644 --- a/pkgs/development/libraries/gstreamer/good/fix_pkgconfig_includedir.patch +++ b/pkgs/development/libraries/gstreamer/devtools/fix_pkgconfig_includedir.patch @@ -1,15 +1,15 @@ -diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build -index b3bf0d4d4..3e6e576c0 100644 ---- a/pkgconfig/meson.build -+++ b/pkgconfig/meson.build +diff --git a/validate/pkgconfig/meson.build b/validate/pkgconfig/meson.build +index a612b21b..c017eaff 100644 +--- a/validate/pkgconfig/meson.build ++++ b/validate/pkgconfig/meson.build @@ -2,8 +2,8 @@ pkgconf = configuration_data() - + pkgconf.set('prefix', get_option('prefix')) pkgconf.set('exec_prefix', '${prefix}') -pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir'))) -pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir'))) +pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) +pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir'))) - pkgconf.set('GST_API_VERSION', api_version) + pkgconf.set('GST_API_VERSION', apiversion) pkgconf.set('VERSION', gst_version) - + diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix index af2579d0594b..ae217c428257 100644 --- a/pkgs/development/libraries/gstreamer/ges/default.nix +++ b/pkgs/development/libraries/gstreamer/ges/default.nix @@ -1,11 +1,13 @@ { stdenv , fetchurl -, fetchpatch , meson , ninja , pkgconfig , python3 +, bash-completion , gst-plugins-base +, gst-plugins-bad +, gst-devtools , libxml2 , flex , gettext @@ -13,14 +15,18 @@ }: stdenv.mkDerivation rec { - pname = "gstreamer-editing-services"; - version = "1.16.2"; + pname = "gst-editing-services"; + version = "1.18.0"; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs + ]; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "05hcf3prna8ajjnqd53221gj9syarrrjbgvjcbhicv0c38csc1hf"; + sha256 = "1a00f07v0yjqz1hydhgkjjarm4rk99yjicbz5wkfl5alhzag1bjd"; }; patches = [ @@ -33,26 +39,31 @@ stdenv.mkDerivation rec { pkgconfig gettext gobject-introspection + gst-devtools python3 flex + + # documentation + # TODO add hotdoc here ]; buildInputs = [ + bash-completion libxml2 ]; propagatedBuildInputs = [ gst-plugins-base + gst-plugins-bad ]; mesonFlags = [ - "-Dgtk_doc=disabled" + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing ]; postPatch = '' - # for some reason, gst-plugins-bad cannot be found - # fortunately, they are only used by tests, which we do not run - sed -i -r -e 's/p(bad|good) = .*/p\1 = pbase/' tests/check/meson.build + patchShebangs \ + scripts/extract-release-date-from-doap-file.py ''; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix index 100d270673fc..e8c885411bdc 100644 --- a/pkgs/development/libraries/gstreamer/good/default.nix +++ b/pkgs/development/libraries/gstreamer/good/default.nix @@ -1,6 +1,7 @@ { stdenv , fetchurl , meson +, nasm , ninja , pkgconfig , python3 @@ -34,6 +35,8 @@ , libXext , libXfixes , ncurses +, wayland +, wayland-protocols , xorg , libgudev , wavpack @@ -46,23 +49,24 @@ let in stdenv.mkDerivation rec { pname = "gst-plugins-good"; - version = "1.16.2"; + version = "1.18.0"; outputs = [ "out" "dev" ]; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"; + sha256 = "1b4b3a6fm2wyqpnx300pg1sz01m9qhfajadk3b7sbzisg8vvqab3"; }; - patches = [ ./fix_pkgconfig_includedir.patch ]; - nativeBuildInputs = [ pkgconfig python3 meson ninja gettext + nasm + ] ++ optionals stdenv.isLinux [ + wayland-protocols ]; buildInputs = [ @@ -102,12 +106,14 @@ stdenv.mkDerivation rec { libavc1394 libiec61883 libgudev + wayland ] ++ optionals enableJack [ libjack2 ]; mesonFlags = [ "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps ] ++ optionals (!gtkSupport) [ "-Dgtk3=disabled" @@ -122,8 +128,14 @@ stdenv.mkDerivation rec { "-Dv4l2=disabled" # Linux-only "-Dximagesrc=disabled" # Linux-only "-Dpulse=disabled" # TODO check if we can keep this enabled + ] ++ optionals (!(stdenv.isLinux && stdenv.hostPlatform.isAarch64)) [ + "-Drpicamsrc=disabled" # only works on Linux aarch64, see https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/428c9b60532917c0ac49c9d48b15bdcd00a1370b/sys/rpicamsrc/meson.build#L10 ]; + postPatch = '' + patchShebangs \ + scripts/extract-release-date-from-doap-file.py + ''; NIX_LDFLAGS = [ # linking error on Darwin diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix index e36eba370071..648ee8bab35b 100644 --- a/pkgs/development/libraries/gstreamer/libav/default.nix +++ b/pkgs/development/libraries/gstreamer/libav/default.nix @@ -15,11 +15,11 @@ stdenv.mkDerivation rec { pname = "gst-libav"; - version = "1.16.2"; + version = "1.18.0"; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1wpfilc98bad9nsv3y1qapxp35dvn2mvwvrmqwrsj58cf09gc967"; + sha256 = "0sm0sfdlalimpkf7a7rk7whvyvmmfi2kly2z3q2j5z53x5f3zya2"; }; outputs = [ "out" "dev" ]; @@ -37,6 +37,15 @@ stdenv.mkDerivation rec { libav ]; + mesonFlags = [ + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing + ]; + + postPatch = '' + patchShebangs \ + scripts/extract-release-date-from-doap-file.py + ''; + meta = with lib; { description = "FFmpeg/libav plugin for GStreamer"; homepage = "https://gstreamer.freedesktop.org"; diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix index 92e8a45a4f6f..e1ee9222cc8c 100644 --- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix +++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix @@ -3,6 +3,7 @@ , meson , ninja , pkgconfig +, python3 , gettext , gobject-introspection , gst-plugins-base @@ -11,14 +12,18 @@ stdenv.mkDerivation rec { pname = "gst-rtsp-server"; - version = "1.16.2"; + version = "1.18.0"; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0vn23nxwvs96g7gcxw5zbnw23hkhky8a8r42wq68411vgf1s41yy"; + sha256 = "03y7nyjaagis7mmg8vbhxmnc1v9xf2y3cab2s3q2vgsc0l8r7l9a"; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs + ]; patches = [ # To use split outputs, we need this so double prefix won't be used in the @@ -35,6 +40,10 @@ stdenv.mkDerivation rec { gettext gobject-introspection pkgconfig + python3 + + # documentation + # TODO add hotdoc here ]; buildInputs = [ @@ -44,8 +53,14 @@ stdenv.mkDerivation rec { mesonFlags = [ "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing ]; + postPatch = '' + patchShebangs \ + scripts/extract-release-date-from-doap-file.py + ''; + meta = with stdenv.lib; { description = "GStreamer RTSP server"; homepage = "https://gstreamer.freedesktop.org"; diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix index d8c36fa40705..ae1e2dd1b314 100644 --- a/pkgs/development/libraries/gstreamer/ugly/default.nix +++ b/pkgs/development/libraries/gstreamer/ugly/default.nix @@ -21,13 +21,13 @@ stdenv.mkDerivation rec { pname = "gst-plugins-ugly"; - version = "1.16.2"; + version = "1.18.0"; outputs = [ "out" "dev" ]; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1jpvc32x6q01zjkfgh6gmq6aaikiyfwwnhj7bmvn52syhrdl202m"; + sha256 = "10p0nyzighvkciaspxnhlr7d7n4acrv96lf483i8l988bvj48rk8"; }; nativeBuildInputs = [ @@ -56,10 +56,15 @@ stdenv.mkDerivation rec { ]); mesonFlags = [ - "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing "-Dsidplay=disabled" # sidplay / sidplay/player.h isn't packaged in nixpkgs as of writing ]; + postPatch = '' + patchShebangs \ + scripts/extract-release-date-from-doap-file.py + ''; + meta = with lib; { description = "Gstreamer Ugly Plugins"; homepage = "https://gstreamer.freedesktop.org"; diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix index cac56f64cc91..1b2efa630b92 100644 --- a/pkgs/development/libraries/gstreamer/vaapi/default.nix +++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix @@ -16,25 +16,32 @@ , gst-plugins-bad , nasm , libvpx -, python +, python3 }: stdenv.mkDerivation rec { pname = "gstreamer-vaapi"; - version = "1.16.2"; + version = "1.18.0"; src = fetchurl { url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz"; - sha256 = "00f6sx700qm1ximi1ag2c27m35dywwhhg6awhz85va34mfqff78r"; + sha256 = "0ccyzv15jzf0pi0ndrmfww016cn4c0y4265bacdvnxbgff6fpvy6"; }; - outputs = [ "out" "dev" ]; + outputs = [ + "out" + "dev" + # "devdoc" # disabled until `hotdoc` is packaged in nixpkgs + ]; nativeBuildInputs = [ meson ninja pkgconfig bzip2 + + # documentation + # TODO add hotdoc here ]; buildInputs = [ @@ -55,13 +62,19 @@ stdenv.mkDerivation rec { libGLU nasm libvpx - python + python3 ]; mesonFlags = [ "-Dexamples=disabled" # requires many dependencies and probably not useful for our users + "-Ddoc=disabled" # `hotdoc` not packaged in nixpkgs as of writing ]; + postPatch = '' + patchShebangs \ + scripts/extract-release-date-from-doap-file.py + ''; + meta = with stdenv.lib; { description = "Set of VAAPI GStreamer Plug-ins"; homepage = "https://gstreamer.freedesktop.org"; diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix index 00d05e189126..c66ceedc3cee 100644 --- a/pkgs/development/python-modules/gst-python/default.nix +++ b/pkgs/development/python-modules/gst-python/default.nix @@ -4,17 +4,16 @@ , ninja , stdenv , pkgconfig -, python +, python3 , pygobject3 , gobject-introspection , gst-plugins-base , isPy3k -, fetchpatch }: buildPythonPackage rec { pname = "gst-python"; - version = "1.16.2"; + version = "1.18.0"; format = "other"; @@ -22,14 +21,17 @@ buildPythonPackage rec { src = fetchurl { url = "${meta.homepage}/src/gst-python/${pname}-${version}.tar.xz"; - sha256 = "1a48ca66izmm8hnp608jv5isg3jxb0vlfmhns0bg9nbkilag7390"; + sha256 = "0ifx2s2j24sj2w5jm7cxyg1kinnhbxiz4x0qp3gnsjlwbawfigvn"; }; + # Python 2.x is not supported. + disabled = !isPy3k; + nativeBuildInputs = [ meson ninja pkgconfig - python + python3 gobject-introspection gst-plugins-base ]; @@ -39,24 +41,8 @@ buildPythonPackage rec { pygobject3 ]; - patches = stdenv.lib.optionals stdenv.isDarwin [ - # Fix configure python lib detection in macOS. Remove with the next release - (fetchpatch { - url = "https://github.com/GStreamer/gst-python/commit/f98c206bdf01529f8ea395a719b10baf2bdf717f.patch"; - sha256 = "04n4zrnfivgr7iaqw4sjlbd882s8halc2bbbhfxqf0sg2lqwmrxg"; - }) - ] ++ [ - # Fix linking against Python 3.8 - # https://gitlab.freedesktop.org/gstreamer/gst-python/merge_requests/30 - (fetchpatch { - url = "https://gitlab.freedesktop.org/gstreamer/gst-python/commit/22f28155d86e27c4134de4ed2861264003fcfd23.patch"; - sha256 = "Y70qVguHUBmmRVMFBKAP0d6anBQw5W0TKyu2bAwxbQg="; - }) - ]; - mesonFlags = [ - "-Dpython=python${if isPy3k then "3" else "2"}" - "-Dpygi-overrides-dir=${placeholder "out"}/${python.sitePackages}/gi/overrides" + "-Dpygi-overrides-dir=${placeholder "out"}/${python3.sitePackages}/gi/overrides" ]; doCheck = true; From 7fddef376e31782ae8e7b41870d7db48cef3da53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Fri, 2 Oct 2020 03:58:20 +0200 Subject: [PATCH 3/5] gst_all_1.gst-plugins-bad: Add upstream patch to fix SRT usage --- pkgs/development/libraries/gstreamer/bad/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix index 760936a85e8f..88c9f9a385a1 100644 --- a/pkgs/development/libraries/gstreamer/bad/default.nix +++ b/pkgs/development/libraries/gstreamer/bad/default.nix @@ -100,6 +100,16 @@ in stdenv.mkDerivation rec { patches = [ ./fix_pkgconfig_includedir.patch + # Fixes srt usage failing with + # Failed to open SRT: failed to set SRTO_LINGER (reason: Operation not supported: Bad parameters) + # see https://github.com/Haivision/srt/issues/1374 + # Remove when https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/84f8dbd932029220ee86154dd85b241911ea3891 + # is shown as being in a release tag that nixpkgs uses. + (fetchpatch { + name = "gstreamer-srtobject-typecast-SRTO_LINGER-to-linger.patch"; + url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/commit/84f8dbd932029220ee86154dd85b241911ea3891.patch"; + sha256 = "0596lvgi93sj3yn98grgmsrhnqhhq7fnjk91qi4xc6618fpqmp9x"; + }) ]; nativeBuildInputs = [ From 9ba3714f10eb51d79f67f1db36efea1d54c05634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Thu, 22 Oct 2020 12:18:29 +0200 Subject: [PATCH 4/5] pitivi: Use `gst-transcoder` from `gst-plugins-bad` --- pkgs/applications/video/pitivi/default.nix | 41 ++++------------------ 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix index 1b7625d1c740..36de120fb6a7 100644 --- a/pkgs/applications/video/pitivi/default.nix +++ b/pkgs/applications/video/pitivi/default.nix @@ -20,32 +20,7 @@ , gsettings-desktop-schemas }: -let - # gst-transcoder was merged with gst-plugins-bad 1.18. - # TODO: switch to that once available. - gst-transcoder = stdenv.mkDerivation rec { - version = "1.14.1"; - pname = "gst-transcoder"; - src = fetchFromGitHub { - owner = "pitivi"; - repo = "gst-transcoder"; - rev = version; - sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f"; - }; - nativeBuildInputs = [ - pkg-config - meson - ninja - gobject-introspection - python3 - ]; - buildInputs = with gst_all_1; [ - gstreamer - gst-plugins-base - ]; - }; - -in python3Packages.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "pitivi"; version = "0.999"; @@ -70,13 +45,12 @@ in python3Packages.buildPythonApplication rec { excludes = [ "po/POTFILES.in" ]; }) - # Complete switching to gst-transcoder in gst-plugins-bad. - # Otherwise there will likely be conflics. - # TODO: Apply this patch once we are using gst-transcoder from gst-plugins-bad. - # (fetchpatch { - # url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch"; - # sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8="; - # }) + # Compatibility with using gst-transcoder from gst-plugins-bad. + # TODO Remove with version 2020.09 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch"; + sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8="; + }) # Generate renderer.so on macOS instead of dylib. # Needed for the following patch to apply. @@ -118,7 +92,6 @@ in python3Packages.buildPythonApplication rec { gnome3.adwaita-icon-theme gsettings-desktop-schemas libnotify - gst-transcoder ] ++ (with gst_all_1; [ gstreamer gst-editing-services From 38c52994a6334fb37b9009a638b1e5904ca4cb7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Thu, 22 Oct 2020 12:25:26 +0200 Subject: [PATCH 5/5] pitivi: 0.999 -> 2020.09.1 --- pkgs/applications/video/pitivi/default.nix | 45 ++-------------------- 1 file changed, 4 insertions(+), 41 deletions(-) diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix index 36de120fb6a7..535913c6f2b2 100644 --- a/pkgs/applications/video/pitivi/default.nix +++ b/pkgs/applications/video/pitivi/default.nix @@ -1,7 +1,6 @@ { stdenv , fetchFromGitHub , fetchurl -, fetchpatch , pkg-config , gettext , itstool @@ -11,6 +10,7 @@ , gst_all_1 , gtk3 , gobject-introspection +, libpeas , librsvg , gnome3 , libnotify @@ -22,13 +22,13 @@ python3Packages.buildPythonApplication rec { pname = "pitivi"; - version = "0.999"; + version = "2020.09.1"; format = "other"; src = fetchurl { url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb"; + sha256 = "1by52b56s9c3h23n40iccygkazwlhii2gb28zhnj2xz5805j05y2"; }; patches = [ @@ -36,41 +36,6 @@ python3Packages.buildPythonApplication rec { # and saves them to the generated binary. This would make the build-time # dependencies part of the closure so we remove it. ./prevent-closure-contamination.patch - - # Port from intltool to gettext. - # Needed for the following patches to apply. - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/pitivi/commit/89b1053f2516c594f414c5c67c835471bce44b67.patch"; - sha256 = "8yhArzAtZC+WjHftcSDrstBlT8j6WlGHffU9Nj+ny+c="; - excludes = [ "po/POTFILES.in" ]; - }) - - # Compatibility with using gst-transcoder from gst-plugins-bad. - # TODO Remove with version 2020.09 - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch"; - sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8="; - }) - - # Generate renderer.so on macOS instead of dylib. - # Needed for the following patch to apply. - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/pitivi/commit/bcacadcafabf8911efb0fddc8d57329237d08cd1.patch"; - sha256 = "2BM5acIwOgdr1L9vhtMMN4trrLuqCg/K6v6ZYtD1Fjw="; - postFetch = '' - sed -i -e "s/1.90.0.1/0.999/g" "$out" - ''; - }) - (fetchpatch { - url = "https://gitlab.gnome.org/GNOME/pitivi/commit/0a3cc054a2c20b59f5aaaaa307de3c9af3c0d270.patch"; - sha256 = "6DhqRlxFWFFdLwGoFem+vPt8x7v732KMVjMF9fypMK4="; - postFetch = '' - sed "$out" -i \ - -e "s/1.90.0.1/0.999/g" \ - -e "s/\(-python_dep.*\)/\1\n /" \ - -e "s/-1,9 +1,16/-1,10 +1,17/" - ''; - }) ]; nativeBuildInputs = [ @@ -86,6 +51,7 @@ python3Packages.buildPythonApplication rec { buildInputs = [ gobject-introspection gtk3 + libpeas librsvg gnome3.gnome-desktop gsound @@ -115,9 +81,6 @@ python3Packages.buildPythonApplication rec { postPatch = '' patchShebangs ./getenvvar.py - - # fetchpatch does not support renamings - mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in ''; # Fixes error