diff options
author | Rok Garbas <rok@garbas.si> | 2016-12-01 18:58:16 +0100 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2016-12-09 03:19:07 +0100 |
commit | 3a1d52ff4f818aa918f429a67bee473192e9d2f1 (patch) | |
tree | 85dd567fdad7e0c319d54dc1bf91db2a9691704b /pkgs/applications/networking/browsers/firefox-bin/default.nix | |
parent | eee070e49cdafc037b57ca5c6396ba152794fe53 (diff) | |
download | nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.tar nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.tar.gz nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.tar.bz2 nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.tar.lz nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.tar.xz nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.tar.zst nixlib-3a1d52ff4f818aa918f429a67bee473192e9d2f1.zip |
updateScript: initital work
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox-bin/default.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox-bin/default.nix | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 7a87b1df3861..dd767d6984f6 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -38,6 +38,11 @@ , libpulseaudio , systemd , generated ? import ./sources.nix +, writeScript +, xidel +, coreutils +, gnused +, gnugrep }: assert stdenv.isLinux; @@ -62,10 +67,12 @@ let source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources; + name = "firefox-bin-unwrapped-${version}"; + in stdenv.mkDerivation { - name = "firefox-bin-unwrapped-${version}"; + inherit name; src = fetchurl { inherit (source) url sha512; }; @@ -165,6 +172,46 @@ stdenv.mkDerivation { ''; passthru.ffmpegSupport = true; + passthru.updateScript = + let + version = (builtins.parseDrvName name).version; + isBeta = builtins.stringLength version + 1 == builtins.stringLength (builtins.replaceStrings ["b"] ["bb"] version); + in + writeScript "update-firefox-bin" '' + PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin + + pushd pkgs/applications/networking/browsers/firefox-bin + + tmpfile=`mktemp` + url=http://archive.mozilla.org/pub/firefox/releases/ + version=`xidel -q $url --extract "//a" | \ + sed s"/.$//" | \ + grep "^[0-9]" | \ + sort --version-sort | \ + grep -v "funnelcake" | \ + grep -e "${if isBeta then "b" else ""}\([[:digit:]]\|[[:digit:]][[:digit:]]\)$" | ${if isBeta then "" else "grep -v \"b\" |"} \ + tail -1` + shasums=`curl --silent $url$version/SHA512SUMS` + + echo "{" > $tmpfile + echo " version = \"$version\";" >> $tmpfile + echo " sources = [" >> $tmpfile + for arch in linux-x86_64 linux-i686; do + for line in `echo "$shasums" | grep $arch | grep "firefox-$version.tar.bz2$" | tr " " ":"`; do + echo " { url = \"$url$version/$arch/`echo $line | cut -d\":\" -f3`\";" >> $tmpfile + echo " locale = \"`echo $line | cut -d\":\" -f3 | sed \"s/$arch\///\" | sed \"s/\/.*//\"`\";" >> $tmpfile + echo " arch = \"$arch\";" >> $tmpfile + echo " sha512 = \"`echo $line | cut -d\":\" -f1`\";" >> $tmpfile + echo " }" >> $tmpfile + done + done + echo " ];" >> $tmpfile + echo "}" >> $tmpfile + + cat $tmpfile > ${if isBeta then "beta_" else ""}sources.nix + + popd + ''; meta = with stdenv.lib; { description = "Mozilla Firefox, free web browser (binary package)"; |