From 38e4c28abf29faf9267cd948eb901a45ddd33b17 Mon Sep 17 00:00:00 2001 From: Lukas Werling Date: Sun, 25 Jun 2017 13:58:18 +0200 Subject: vivaldi-ffmpeg-codecs: init at 59.0.3071.104 Due to licensing costs, Vivaldi bundles a version of ffmpeg compiled without support for the common H.264 codec. However, it is possible to supply a custom libffmpeg.so with additional codecs. This derivation uses the Chromium source to compile a compatible libffmpeg.so. This approach is recommended by a Vivaldi developer, see https://gist.github.com/ruario/bec42d156d30affef655 --- lib/maintainers.nix | 1 + .../networking/browsers/vivaldi/ffmpeg-codecs.nix | 51 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 54 insertions(+) create mode 100644 pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix diff --git a/lib/maintainers.nix b/lib/maintainers.nix index e0b0d89c016..524028991f7 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -297,6 +297,7 @@ lihop = "Leroy Hopson "; linquize = "Linquize "; linus = "Linus Arver "; + lluchs = "Lukas Werling "; lnl7 = "Daiderd Jordan "; loskutov = "Ignat Loskutov "; lovek323 = "Jason O'Conal "; diff --git a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix new file mode 100644 index 00000000000..fb10e2b6c83 --- /dev/null +++ b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix @@ -0,0 +1,51 @@ +{ stdenv, fetchurl, fetchpatch +, dbus_glib, gtk2, gtk3, libexif, libpulseaudio, libXScrnSaver, ninja, nss +, pciutils, pkgconfig, python2, xdg_utils +}: + +stdenv.mkDerivation rec { + name = "${product}-${version}"; + product = "vivaldi-ffmpeg-codecs"; + version = "59.0.3071.104"; + + src = fetchurl { + url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz"; + sha512 = "419cf5bafa80f190cd301c2933502351929c1ef1d5cfedc720ce6762674a0e6af3b4246a8f92e0c29743420338b056061d4e7f9f4a4066a5bdd4d2ee8db3ddbf"; + }; + + buildInputs = [ ]; + + nativeBuildInputs = [ + dbus_glib gtk2 gtk3 libexif libpulseaudio libXScrnSaver ninja nss pciutils pkgconfig + python2 xdg_utils + ]; + + configurePhase = '' + runHook preConfigure + + local args="ffmpeg_branding=\"ChromeOS\" proprietary_codecs=true enable_hevc_demuxing=true use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false use_cups=false use_sysroot=false use_gold=false linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false is_clang=false is_component_build=true is_debug=false symbol_level=0" + python tools/gn/bootstrap/bootstrap.py -v -s --no-clean --gn-gen-args "$args" + out/Release/gn gen out/Release -v --args="$args" + + runHook postConfigure + ''; + + buildPhase = '' + ninja -C out/Release -v libffmpeg.so + ''; + + dontStrip = true; + + installPhase = '' + mkdir -p "$out/lib" + cp out/Release/libffmpeg.so "$out/lib/libffmpeg.so" + ''; + + meta = with stdenv.lib; { + description = "Additional support for proprietary codecs for Vivaldi"; + homepage = "https://ffmpeg.org/"; + license = licenses.lgpl21; + maintainers = with maintainers; [ lluchs ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ff4a86293d3..53c520980c0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15305,6 +15305,8 @@ with pkgs; vivaldi = callPackage ../applications/networking/browsers/vivaldi {}; + vivaldi-ffmpeg-codecs = callPackage ../applications/networking/browsers/vivaldi/ffmpeg-codecs.nix {}; + openmpt123 = callPackage ../applications/audio/openmpt123 {}; opusfile = callPackage ../applications/audio/opusfile { }; -- cgit 1.4.1