From dc849868971a5132d731b9772a7a0146ed8c4606 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Fri, 17 Jun 2016 00:15:56 +0200 Subject: init work on servo --- servo.nix | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 servo.nix diff --git a/servo.nix b/servo.nix new file mode 100644 index 000000000000..27d4f7332c39 --- /dev/null +++ b/servo.nix @@ -0,0 +1,63 @@ +{ version ? "master" +}: + +let + pkgs = import {}; + inherit (pkgs) stdenv; + + # TODO: add wayland + xorgCompositorLibs = "${pkgs.xorg.libXcursor.out}/lib:${pkgs.xorg.libXi.out}/lib"; + + rustc = pkgs.rustcUnstable; + cargo = pkgs.cargoUnstable; + + servobuild = pkgs.writeText "servobuild" '' + [tools] + cache-dir = "./downloads" + cargo-home-dir = "./.downloads/clones + system-rust = true + rust-root = "${rustc}/bin/rustc" + system-cargo = true + cargo-root = "${cargo}/bin/cargo" + [build] + ''; + +in stdenv.mkDerivation rec { + name = "servo-${version}"; + src = ./.; + buildInputs = with pkgs; [ + cmake + curl + dbus + fontconfig + freeglut + freetype + gperf + libxmi + llvm + mesa + mesa_glu + openssl + openssl + pkgconfig + python3Packages.pip + python3Packages.virtualenv + xorg.libX11 + xorg.libXmu + + # nixstuff + makeWrapper + ]; + preConfigure = '' + ln -s ${servobuild} .servobuild + cat .servobuild + exit 100 + ''; + postInstall = '' + wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" + ''; + shellHook = '' + export LD_LIBRARY_PATH=${xorgCompositorLibs}:$LD_LIBRARY_PATH + ''; + +} -- cgit 1.4.1 From 1059b6fde9956721b52b1655fc9acb6ef774ab50 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Thu, 16 Jun 2016 23:21:52 +0100 Subject: doc --- servo.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servo.nix b/servo.nix index 27d4f7332c39..6538ff557ae6 100644 --- a/servo.nix +++ b/servo.nix @@ -57,6 +57,8 @@ in stdenv.mkDerivation rec { wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" ''; shellHook = '' + # Servo tries to switch between libX11 and wayland at runtime so we have + # to provide a path export LD_LIBRARY_PATH=${xorgCompositorLibs}:$LD_LIBRARY_PATH ''; -- cgit 1.4.1 From f088793872666169e4befa071a09e94cd26a8459 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Fri, 17 Jun 2016 00:05:05 +0100 Subject: Start of compilation --- servo.nix | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/servo.nix b/servo.nix index 6538ff557ae6..2f3bbef2c1c9 100644 --- a/servo.nix +++ b/servo.nix @@ -5,11 +5,15 @@ let pkgs = import {}; inherit (pkgs) stdenv; + # Where the servo codes lives + servoSrc = ../../servo/servo; + # TODO: add wayland xorgCompositorLibs = "${pkgs.xorg.libXcursor.out}/lib:${pkgs.xorg.libXi.out}/lib"; - rustc = pkgs.rustcUnstable; - cargo = pkgs.cargoUnstable; + rust = pkgs.rustUnstable; + rustc = rust.rustc; + cargo = rust.cargo; servobuild = pkgs.writeText "servobuild" '' [tools] @@ -22,11 +26,25 @@ let [build] ''; + servoRust = rust.buildRustPackage { + name = "servo-rust-${version}"; + src = servoSrc; + postUnpack = '' + pwd + ls -la cargo-* + ''; + sourceRoot = "cargo-*/components/servo"; + + depsSha256 = "0ca0lc8mm8kczll5m03n5fwsr0540c2xbfi4nn9ksn0s4sap50yn"; + + doCheck = false; + }; + in stdenv.mkDerivation rec { name = "servo-${version}"; - src = ./.; + src = servoSrc; buildInputs = with pkgs; [ - cmake + #cmake curl dbus fontconfig @@ -47,11 +65,10 @@ in stdenv.mkDerivation rec { # nixstuff makeWrapper + servoRust ]; preConfigure = '' ln -s ${servobuild} .servobuild - cat .servobuild - exit 100 ''; postInstall = '' wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" -- cgit 1.4.1 From 36e125f030c1145a706e896ed3b28b8d48ed68fa Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Wed, 6 Jul 2016 16:03:35 +0200 Subject: adding VidyoDesktop, gecko (with multi compiler/system) --- .gitignore | 1 + README.rst | 34 ++ default.nix | 56 ++++ pkgs/VidyoDesktop/builder.sh | 14 + pkgs/VidyoDesktop/default.nix | 32 ++ pkgs/gcc-4.7/arm-eabi.patch | 230 ++++++++++++++ pkgs/gcc-4.7/builder.sh | 245 +++++++++++++++ pkgs/gcc-4.7/default.nix | 533 ++++++++++++++++++++++++++++++++ pkgs/gcc-4.7/gfortran-driving.patch | 20 ++ pkgs/gcc-4.7/gnat-cflags.patch | 33 ++ pkgs/gcc-4.7/java-jvgenmain-link.patch | 17 + pkgs/gcc-4.7/libstdc++-target.patch | 32 ++ pkgs/gcc-4.7/no-sys-dirs.patch | 41 +++ pkgs/gcc-4.7/parallel-bconfig-4.7.patch | 30 ++ pkgs/gecko.nix | 88 ++++++ pkgs/servo.nix | 97 ++++++ release.nix | 132 ++++++++ servo.nix | 82 ----- 18 files changed, 1635 insertions(+), 82 deletions(-) create mode 100644 .gitignore create mode 100644 README.rst create mode 100644 default.nix create mode 100644 pkgs/VidyoDesktop/builder.sh create mode 100644 pkgs/VidyoDesktop/default.nix create mode 100644 pkgs/gcc-4.7/arm-eabi.patch create mode 100644 pkgs/gcc-4.7/builder.sh create mode 100644 pkgs/gcc-4.7/default.nix create mode 100644 pkgs/gcc-4.7/gfortran-driving.patch create mode 100644 pkgs/gcc-4.7/gnat-cflags.patch create mode 100644 pkgs/gcc-4.7/java-jvgenmain-link.patch create mode 100644 pkgs/gcc-4.7/libstdc++-target.patch create mode 100644 pkgs/gcc-4.7/no-sys-dirs.patch create mode 100644 pkgs/gcc-4.7/parallel-bconfig-4.7.patch create mode 100644 pkgs/gecko.nix create mode 100644 pkgs/servo.nix create mode 100644 release.nix delete mode 100644 servo.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..c4a847d907ac --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/result diff --git a/README.rst b/README.rst new file mode 100644 index 000000000000..648e328ed085 --- /dev/null +++ b/README.rst @@ -0,0 +1,34 @@ +nixpkgs-mozilla +=============== + +Gathering nix efforts in one repository. + + +Current packages +---------------- + +- servo (https://github.com/servo/servo) +- gecko (https://github.com/mozilla/gecko-dev) +- VidyoDesktop () + + +TODO +---- + +- setup hydra and have to have binary channels + +- make sure pinned revisions get updated automatically (if build passes we + should update revisions in default.nix) + +- pin to specific (working) nixpkgs revision (as we do for other sources + +- servo can currently only be used with nix-shell. its build system tries to + dowload quite few things (it is doing ``pip install`` and ``cargo install``). + it should be possible to replace that with nix + +- can we make this work on darwin as well? + +- assign maintainers for our packages that will montior that it "always" builds + +- hook it with vulnix report to monitor CVEs (once vulnix is ready, it must be + ready soon :P) diff --git a/default.nix b/default.nix new file mode 100644 index 000000000000..bdbc1b742b80 --- /dev/null +++ b/default.nix @@ -0,0 +1,56 @@ +{ pkgs ? import {} + +, geckoSrc ? + pkgs.fetchFromGitHub { + owner = "mozilla"; + repo = "gecko-dev"; + rev = "bcd7fc0f642b97c9b0a2618750e1788547aa8322"; + sha256 = "1knrffx62i8zfg3jfhpn3hs5354sg44f8iq4c7hfvp4nsxsjskr4"; + } + +, servoSrc ? + pkgs.fetchFromGitHub { + owner = "servo"; + repo = "servo"; + rev = "b577d66ec374811a6493e95b37829269bbc97dfa"; + sha256 = "13jqfh7b87ss5yf9c4yl7cggawjm6w4hd8aq0q275adjzdmazz14"; + } +}: + +let + + rustPlatform = pkgs.recurseIntoAttrs (pkgs.makeRustPlatform pkgs.rustUnstable rustPlatform); + + self = { + + + gecko = import ./pkgs/gecko.nix { + inherit geckoSrc; + inherit (pkgs) + stdenv + pythonFull which autoconf213 + perl unzip zip gnumake yasm pkgconfig + xlibs gnome + pango + dbus dbus_glib + alsaLib libpulseaudio gstreamer gst_plugins_base + gtk3 glib gobjectIntrospection + valgrind; + }; + + servo = import ./pkgs/servo.nix { + pythonPackages = pkgs.python3Packages; + inherit servoSrc rustPlatform; + inherit (pkgs) stdenv curl dbus fontconfig freeglut freetype gperf libxmi + llvm mesa mesa_glu openssl pkgconfig makeWrapper writeText xorg; + }; + + VidyoDesktop= import ./pkgs/VidyoDesktop/default.nix { + inherit (pkgs) stdenv fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib + alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 + zlib patchelf xorg; + }; + + }; + +in self diff --git a/pkgs/VidyoDesktop/builder.sh b/pkgs/VidyoDesktop/builder.sh new file mode 100644 index 000000000000..e3bc78283a43 --- /dev/null +++ b/pkgs/VidyoDesktop/builder.sh @@ -0,0 +1,14 @@ +source $stdenv/setup +PATH=$dpkg/bin:$PATH + +dpkg -x $src unpacked + +mkdir -p $out/bin +cp -r unpacked/* $out/ + +ln -s $out/usr/bin/VidyoDesktop $out/bin/VidyoDesktop +touch $out/etc/issue + +#wrapProgram $out/bin/VidyoDesktop \ +# --set PULSE_LATENCY_MSEC "60" \ +# --set VIDYO_AUDIO_FRAMEWORK "ALSA" diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix new file mode 100644 index 000000000000..68721d78749b --- /dev/null +++ b/pkgs/VidyoDesktop/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib, alsaUtils +, alsaOss, alsaTools, alsaPlugins, libidn, utillinux, mesa_glu, qt4, zlib +, patchelf, xorg +}: + +let + VidyoDesktopDeb = stdenv.mkDerivation { + name = "VidyoDesktopDeb"; + builder = ./builder.sh; + inherit dpkg; + src = fetchurl { + url = "https://v.mozilla.com/upload/VidyoDesktopInstaller-ubuntu64-TAG_VD_3_3_0_027.deb"; + sha256 = "045f9z421qpcm45bmh98f3h7bd46rdjvcbdpv4rlw9ribncv66dc"; + }; + buildInputs = [ makeWrapper ]; + }; + +in buildFHSUserEnv { + name = "VidyoDesktop"; + targetPkgs = pkgs: [ VidyoDesktopDeb ]; + multiPkgs = pkgs: [ + patchelf dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins + libidn utillinux mesa_glu qt4 zlib xorg.libXext xorg.libXv xorg.libX11 + xorg.libXfixes xorg.libXrandr xorg.libXScrnSaver + ]; + extraBuildCommands = '' + ln -s ${VidyoDesktopDeb}/opt $out/opt + ''; + runScript = "VidyoDesktop"; + # for debugging + #runScript = "bash"; +} diff --git a/pkgs/gcc-4.7/arm-eabi.patch b/pkgs/gcc-4.7/arm-eabi.patch new file mode 100644 index 000000000000..63b017062b5b --- /dev/null +++ b/pkgs/gcc-4.7/arm-eabi.patch @@ -0,0 +1,230 @@ +Index: gcc-4_7-branch/libstdc++-v3/configure.host +=================================================================== +--- gcc-4_7-branch/libstdc++-v3/configure.host (revision 194579) ++++ gcc-4_7-branch/libstdc++-v3/configure.host (revision 194580) +@@ -340,7 +340,7 @@ + fi + esac + case "${host}" in +- arm*-*-linux-*eabi) ++ arm*-*-linux-*eabi*) + port_specific_symbol_files="\$(srcdir)/../config/os/gnu-linux/arm-eabi-extra.ver" + ;; + esac +Index: gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc +=================================================================== +--- gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc (revision 194579) ++++ gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc (revision 194580) +@@ -1,5 +1,5 @@ + // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } +-// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + + // 2007-05-03 Benjamin Kosnik + // +Index: gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc +=================================================================== +--- gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc (revision 194579) ++++ gcc-4_7-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc (revision 194580) +@@ -1,5 +1,5 @@ + // { dg-options "-std=gnu++0x -funsigned-char -fshort-enums" } +-// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++// { dg-options "-std=gnu++0x -funsigned-char -fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + + // 2007-05-03 Benjamin Kosnik + // +Index: gcc-4_7-branch/libjava/configure.ac +=================================================================== +--- gcc-4_7-branch/libjava/configure.ac (revision 194579) ++++ gcc-4_7-branch/libjava/configure.ac (revision 194580) +@@ -931,7 +931,7 @@ + # on Darwin -single_module speeds up loading of the dynamic libraries. + extra_ldflags_libjava=-Wl,-single_module + ;; +-arm*linux*eabi) ++arm*-*-linux*eabi*) + # Some of the ARM unwinder code is actually in libstdc++. We + # could in principle replicate it in libgcj, but it's better to + # have a dependency on libstdc++. +Index: gcc-4_7-branch/libjava/configure +=================================================================== +--- gcc-4_7-branch/libjava/configure (revision 194579) ++++ gcc-4_7-branch/libjava/configure (revision 194580) +@@ -20542,7 +20542,7 @@ + # on Darwin -single_module speeds up loading of the dynamic libraries. + extra_ldflags_libjava=-Wl,-single_module + ;; +-arm*linux*eabi) ++arm*-*-linux*eabi*) + # Some of the ARM unwinder code is actually in libstdc++. We + # could in principle replicate it in libgcj, but it's better to + # have a dependency on libstdc++. +Index: gcc-4_7-branch/libgcc/config.host +=================================================================== +--- gcc-4_7-branch/libgcc/config.host (revision 194579) ++++ gcc-4_7-branch/libgcc/config.host (revision 194580) +@@ -327,7 +327,7 @@ + arm*-*-linux*) # ARM GNU/Linux with ELF + tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" + case ${host} in +- arm*-*-linux-*eabi) ++ arm*-*-linux-*eabi*) + tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" + tm_file="$tm_file arm/bpabi-lib.h" + unwind_header=config/arm/unwind-arm.h +Index: gcc-4_7-branch/gcc/doc/install.texi +=================================================================== +--- gcc-4_7-branch/gcc/doc/install.texi (revision 194579) ++++ gcc-4_7-branch/gcc/doc/install.texi (revision 194580) +@@ -3222,7 +3222,7 @@ + @heading @anchor{arm-x-eabi}arm-*-eabi + ARM-family processors. Subtargets that use the ELF object format + require GNU binutils 2.13 or newer. Such subtargets include: +-@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi} ++@code{arm-*-netbsdelf}, @code{arm-*-*linux-gnueabi*} + and @code{arm-*-rtemseabi}. + + @html +Index: gcc-4_7-branch/gcc/testsuite/gcc.target/arm/synchronize.c +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/gcc.target/arm/synchronize.c (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/gcc.target/arm/synchronize.c (revision 194580) +@@ -1,4 +1,4 @@ +-/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi } } } */ ++/* { dg-final { scan-assembler "__sync_synchronize|dmb|mcr" { target arm*-*-linux-*eabi* } } } */ + + void *foo (void) + { +Index: gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.jason/enum6.C +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.jason/enum6.C (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.jason/enum6.C (revision 194580) +@@ -7,10 +7,10 @@ + // enum-size attributes should only be emitted if there are values of + // enum type that can escape the compilation unit, gcc cannot currently + // detect this; if this facility is added then this linker option should +-// not be needed. arm-*-linux*eabi should be a good approximation to ++// not be needed. arm-*-linux*eabi* should be a good approximation to + // those platforms where the EABI supplement defines enum values to be + // 32 bits wide. +-// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + + #include + +Index: gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.other/enum4.C +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.other/enum4.C (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.other/enum4.C (revision 194580) +@@ -9,10 +9,10 @@ + // enum-size attributes should only be emitted if there are values of + // enum type that can escape the compilation unit, gcc cannot currently + // detect this; if this facility is added then this linker option should +-// not be needed. arm-*-linux*eabi should be a good approximation to ++// not be needed. arm-*-linux*eabi* should be a good approximation to + // those platforms where the EABI supplement defines enum values to be + // 32 bits wide. +-// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + + enum E { + a = -312 +Index: gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.law/enum9.C +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.law/enum9.C (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/g++.old-deja/g++.law/enum9.C (revision 194580) +@@ -7,10 +7,10 @@ + // enum-size attributes should only be emitted if there are values of + // enum type that can escape the compilation unit, gcc cannot currently + // detect this; if this facility is added then this linker option should +-// not be needed. arm-*-linux*eabi should be a good approximation to ++// not be needed. arm-*-linux*eabi* should be a good approximation to + // those platforms where the EABI supplement defines enum values to be + // 32 bits wide. +-// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++// { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + + // GROUPS passed enums + extern "C" int printf (const char *, ...); +Index: gcc-4_7-branch/gcc/testsuite/lib/target-supports.exp +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/lib/target-supports.exp (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/lib/target-supports.exp (revision 194580) +@@ -3818,7 +3818,7 @@ + } + } "" + }] +- } elseif { [istarget arm*-*-linux-gnueabi] } { ++ } elseif { [istarget arm*-*-linux-gnueabi*] } { + return [check_runtime sync_longlong_runtime { + #include + int main () +@@ -3860,7 +3860,7 @@ + || [istarget i?86-*-*] + || [istarget x86_64-*-*] + || [istarget alpha*-*-*] +- || [istarget arm*-*-linux-gnueabi] ++ || [istarget arm*-*-linux-gnueabi*] + || [istarget bfin*-*linux*] + || [istarget hppa*-*linux*] + || [istarget s390*-*-*] +@@ -3890,7 +3890,7 @@ + || [istarget i?86-*-*] + || [istarget x86_64-*-*] + || [istarget alpha*-*-*] +- || [istarget arm*-*-linux-gnueabi] ++ || [istarget arm*-*-linux-gnueabi*] + || [istarget hppa*-*linux*] + || [istarget s390*-*-*] + || [istarget powerpc*-*-*] +Index: gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_9.f90 +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_9.f90 (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_9.f90 (revision 194580) +@@ -1,6 +1,6 @@ + ! { dg-do run } + ! { dg-options "-fshort-enums" } +-! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++! { dg-options "-fshort-enums -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + ! Program to test enumerations when option -fshort-enums is given + + program main +Index: gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_10.f90 +=================================================================== +--- gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_10.f90 (revision 194579) ++++ gcc-4_7-branch/gcc/testsuite/gfortran.dg/enum_10.f90 (revision 194580) +@@ -1,7 +1,7 @@ + ! { dg-do run } + ! { dg-additional-sources enum_10.c } + ! { dg-options "-fshort-enums -w" } +-! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi } } ++! { dg-options "-fshort-enums -w -Wl,--no-enum-size-warning" { target arm*-*-linux*eabi* } } + ! Make sure short enums are indeed interoperable with the + ! corresponding C type. + +Index: gcc-4_7-branch/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- gcc-4_7-branch/gcc/ada/gcc-interface/Makefile.in (revision 194579) ++++ gcc-4_7-branch/gcc/ada/gcc-interface/Makefile.in (revision 194580) +@@ -1866,7 +1866,7 @@ + LIBRARY_VERSION := $(LIB_VERSION) + endif + +-ifeq ($(strip $(filter-out arm% linux-gnueabi,$(arch) $(osys)-$(word 4,$(targ)))),) ++ifeq ($(strip $(filter-out arm%-linux,$(arch)-$(osys)) $(if $(findstring eabi,$(word 4,$(targ))),,$(word 4,$(targ)))),) + LIBGNAT_TARGET_PAIRS = \ + a-intnam.ads zip != null && unzip != null + && zlib != null && boehmgc != null + && perl != null; # for `--enable-java-home' +assert langAda -> gnatboot != null; +assert langVhdl -> gnat != null; + +# LTO needs libelf and zlib. +assert libelf != null -> zlib != null; + +# Make sure we get GNU sed. +assert stdenv.isDarwin -> gnused != null; + +# The go frontend is written in c++ +assert langGo -> langCC; + +with stdenv.lib; +with builtins; + +let version = "4.7.3"; + + # Whether building a cross-compiler for GNU/Hurd. + crossGNU = cross != null && cross.config == "i586-pc-gnu"; + + /* gccinstall.info says that "parallel make is currently not supported since + collisions in profile collecting may occur". + + Parallel make of gfortran is disabled because of an apparent race + condition concerning the generation of "bconfig.h". Please try and + re-enable parallel make for a later release of gfortran to check whether + the error has been fixed. + */ + enableParallelBuilding = !profiledCompiler && !langFortran; + + patches = [] + ++ optional enableParallelBuilding ./parallel-bconfig-4.7.patch + ++ optional stdenv.isArm [ ./arm-eabi.patch ] + ++ optional (cross != null) ./libstdc++-target.patch + # ++ optional noSysDirs ./no-sys-dirs.patch + # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its + # target libraries and tools. + ++ optional langAda ./gnat-cflags.patch + ++ optional langFortran ./gfortran-driving.patch; + + javaEcj = fetchurl { + # The `$(top_srcdir)/ecj.jar' file is automatically picked up at + # `configure' time. + + # XXX: Eventually we might want to take it from upstream. + url = "ftp://sourceware.org/pub/java/ecj-4.3.jar"; + sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx"; + }; + + # Antlr (optional) allows the Java `gjdoc' tool to be built. We want a + # binary distribution here to allow the whole chain to be bootstrapped. + javaAntlr = fetchurl { + url = http://www.antlr.org/download/antlr-3.1.3.jar; + sha256 = "1f41j0y4kjydl71lqlvr73yagrs2jsg1fjymzjz66mjy7al5lh09"; + }; + + xlibs = [ + libX11 libXt libSM libICE libXtst libXrender libXrandr libXi + xproto renderproto xextproto inputproto randrproto + ]; + + javaAwtGtk = langJava && gtk != null; + + /* Platform flags */ + platformFlags = let + gccArch = stdenv.lib.attrByPath [ "platform" "gcc" "arch" ] null stdenv; + gccCpu = stdenv.lib.attrByPath [ "platform" "gcc" "cpu" ] null stdenv; + gccAbi = stdenv.lib.attrByPath [ "platform" "gcc" "abi" ] null stdenv; + gccFpu = stdenv.lib.attrByPath [ "platform" "gcc" "fpu" ] null stdenv; + gccFloat = stdenv.lib.attrByPath [ "platform" "gcc" "float" ] null stdenv; + gccMode = stdenv.lib.attrByPath [ "platform" "gcc" "mode" ] null stdenv; + withArch = if gccArch != null then " --with-arch=${gccArch}" else ""; + withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else ""; + withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else ""; + withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else ""; + withFloat = if gccFloat != null then " --with-float=${gccFloat}" else ""; + withMode = if gccMode != null then " --with-mode=${gccMode}" else ""; + in + (withArch + + withCpu + + withAbi + + withFpu + + withFloat + + withMode); + + /* Cross-gcc settings */ + crossMingw = (cross != null && cross.libc == "msvcrt"); + crossConfigureFlags = let + gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross; + gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross; + gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross; + gccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null cross; + gccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null cross; + gccMode = stdenv.lib.attrByPath [ "gcc" "mode" ] null cross; + withArch = if gccArch != null then " --with-arch=${gccArch}" else ""; + withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else ""; + withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else ""; + withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else ""; + withFloat = if gccFloat != null then " --with-float=${gccFloat}" else ""; + withMode = if gccMode != null then " --with-mode=${gccMode}" else ""; + in + "--target=${cross.config}" + + withArch + + withCpu + + withAbi + + withFpu + + withFloat + + withMode + + (if crossMingw && crossStageStatic then + " --with-headers=${libcCross}/include" + + " --with-gcc" + + " --with-gnu-as" + + " --with-gnu-ld" + + " --with-gnu-ld" + + " --disable-shared" + + " --disable-nls" + + " --disable-debug" + + " --enable-sjlj-exceptions" + + " --enable-threads=win32" + + " --disable-win32-registry" + else if crossStageStatic then + " --disable-libssp --disable-nls" + + " --without-headers" + + " --disable-threads " + + " --disable-libmudflap " + + " --disable-libgomp " + + " --disable-libquadmath" + + " --disable-shared" + + " --disable-decimal-float" # libdecnumber requires libc + else + " --with-headers=${libcCross}/include" + + " --enable-__cxa_atexit" + + " --enable-long-long" + + (if crossMingw then + " --enable-threads=win32" + + " --enable-sjlj-exceptions" + + " --enable-hash-synchronization" + + " --disable-libssp" + + " --disable-nls" + + " --with-dwarf2" + + # I think noone uses shared gcc libs in mingw, so we better do the same. + # In any case, mingw32 g++ linking is broken by default with shared libs, + # unless adding "-lsupc++" to any linking command. I don't know why. + " --disable-shared" + + (if cross.config == "x86_64-w64-mingw32" then + # To keep ABI compatibility with upstream mingw-w64 + " --enable-fully-dynamic-string" + else "") + else (if cross.libc == "uclibc" then + # In uclibc cases, libgomp needs an additional '-ldl' + # and as I don't know how to pass it, I disable libgomp. + " --disable-libgomp" else "") + + " --enable-threads=posix" + + " --enable-nls" + + " --disable-decimal-float") # No final libdecnumber (it may work only in 386) + ); + stageNameAddon = if crossStageStatic then "-stage-static" else + "-stage-final"; + crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else ""; + + bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips; + +in + +# We need all these X libraries when building AWT with GTK+. +assert gtk != null -> (filter (x: x == null) xlibs) == []; + +stdenv.mkDerivation ({ + name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon; + + builder = ./builder.sh; + + src = fetchurl { + url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; + sha256 = "1hx9h64ivarlzi4hxvq42as5m9vlr5cyzaaq4gzj4i619zmkfz1g"; + }; + + inherit patches; + + postPatch = + if (stdenv.isGNU + || (libcCross != null # e.g., building `gcc.crossDrv' + && libcCross ? crossConfig + && libcCross.crossConfig == "i586-pc-gnu") + || (crossGNU && libcCross != null)) + then + # On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not + # in glibc, so add the right `-I' flags to the default spec string. + assert libcCross != null -> libpthreadCross != null; + let + libc = if libcCross != null then libcCross else stdenv.glibc; + gnu_h = "gcc/config/gnu.h"; + extraCPPDeps = + libc.propagatedBuildInputs + ++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross + ++ stdenv.lib.optional (libpthread != null) libpthread; + extraCPPSpec = + concatStrings (intersperse " " + (map (x: "-I${x}/include") extraCPPDeps)); + extraLibSpec = + if libpthreadCross != null + then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}" + else "-L${libpthread}/lib"; + in + '' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..." + sed -i "${gnu_h}" \ + -es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g' + + echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..." + sed -i "${gnu_h}" \ + -es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g' + + echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc}/include'..." + sed -i "${gnu_h}" \ + -es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc}/include"|g' + '' + else if cross != null || stdenv.gcc.libc != null then + # On NixOS, use the right path to the dynamic linker instead of + # `/lib/ld*.so'. + let + libc = if libcCross != null then libcCross else stdenv.gcc.libc; + in + '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..." + for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h + do + grep -q LIBC_DYNAMIC_LINKER "$header" || continue + echo " fixing \`$header'..." + sed -i "$header" \ + -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g' + done + '' + else null; + + inherit noSysDirs staticCompiler langJava crossStageStatic + libcCross crossMingw; + + nativeBuildInputs = [ texinfo which gettext ] + ++ (optional (perl != null) perl) + ++ (optional javaAwtGtk pkgconfig); + + buildInputs = [ gmp mpfr mpc libelf ] + ++ (optional (ppl != null) ppl) + ++ (optional (cloog != null) cloog) + ++ (optional (zlib != null) zlib) + ++ (optionals langJava [ boehmgc zip unzip ]) + ++ (optionals javaAwtGtk ([ gtk libart_lgpl ] ++ xlibs)) + ++ (optionals (cross != null) [binutilsCross]) + ++ (optionals langAda [gnatboot]) + ++ (optionals langVhdl [gnat]) + + # The builder relies on GNU sed (for instance, Darwin's `sed' fails with + # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. + ++ (optional stdenv.isDarwin gnused) + ; + + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl"; + + preConfigure = '' + configureFlagsArray=( + ${stdenv.lib.optionalString (ppl != null && ppl ? dontDisableStatic && ppl.dontDisableStatic) + "'--with-host-libstdcxx=-lstdc++ -lgcc_s'"} + ${stdenv.lib.optionalString (ppl != null && stdenv.isSunOS) + "\"--with-host-libstdcxx=-Wl,-rpath,\$prefix/lib/amd64 -lstdc++\" + \"--with-boot-ldflags=-L../prev-x86_64-pc-solaris2.11/libstdc++-v3/src/.libs\""} + ); + ${stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) + '' + export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g` + export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET" + export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET" + export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET" + ''} + ''; + + # 'iant' at #go-nuts@freenode, gccgo maintainer, said that + # they have a bug in 4.7.1 if adding "--disable-static" + dontDisableStatic = langGo || staticCompiler; + + configureFlags = " + ${if stdenv.isSunOS then + " --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " + + # On Illumos/Solaris GNU as is preferred + " --with-gnu-as --without-gnu-ld " + else ""} + --enable-lto + ${if enableMultilib then "" else "--disable-multilib"} + ${if enableShared then "" else "--disable-shared"} + ${if enablePlugin then "--enable-plugin" else "--disable-plugin"} + ${if ppl != null then "--with-ppl=${ppl} --disable-ppl-version-check" else ""} + ${if cloog != null then + "--with-cloog=${cloog} --disable-cloog-version-check --enable-cloog-backend=isl" + else ""} + ${if langJava then + "--with-ecj-jar=${javaEcj} " + + + # Follow Sun's layout for the convenience of IcedTea/OpenJDK. See + # . + "--enable-java-home --with-java-home=\${prefix}/lib/jvm/jre " + else ""} + ${if javaAwtGtk then "--enable-java-awt=gtk" else ""} + ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr}" else ""} + --with-gmp=${gmp} + --with-mpfr=${mpfr} + --with-mpc=${mpc} + ${if libelf != null then "--with-libelf=${libelf}" else ""} + --disable-libstdcxx-pch + --without-included-gettext + --with-system-zlib + --enable-languages=${ + concatStrings (intersperse "," + ( optional langC "c" + ++ optional langCC "c++" + ++ optional langFortran "fortran" + ++ optional langJava "java" + ++ optional langAda "ada" + ++ optional langVhdl "vhdl" + ++ optional langGo "go" + ) + ) + } + ${if (stdenv ? glibc && cross == null) + then " --with-native-system-header-dir=${stdenv.glibc}/include" + else ""} + ${if langAda then " --enable-libada" else ""} + ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""} + ${if cross != null then crossConfigureFlags else ""} + ${if !bootstrap then "--disable-bootstrap" else ""} + ${if cross == null then platformFlags else ""} + "; + + targetConfig = if cross != null then cross.config else null; + + buildFlags = if bootstrap then + (if profiledCompiler then "profiledbootstrap" else "bootstrap") + else ""; + + installTargets = + if stripped + then "install-strip" + else "install"; + + crossAttrs = let + xgccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null stdenv.cross; + xgccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null stdenv.cross; + xgccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null stdenv.cross; + xgccFpu = stdenv.lib.attrByPath [ "gcc" "fpu" ] null stdenv.cross; + xgccFloat = stdenv.lib.attrByPath [ "gcc" "float" ] null stdenv.cross; + xwithArch = if xgccArch != null then " --with-arch=${xgccArch}" else ""; + xwithCpu = if xgccCpu != null then " --with-cpu=${xgccCpu}" else ""; + xwithAbi = if xgccAbi != null then " --with-abi=${xgccAbi}" else ""; + xwithFpu = if xgccFpu != null then " --with-fpu=${xgccFpu}" else ""; + xwithFloat = if xgccFloat != null then " --with-float=${xgccFloat}" else ""; + in { + AR = "${stdenv.cross.config}-ar"; + LD = "${stdenv.cross.config}-ld"; + CC = "${stdenv.cross.config}-gcc"; + CXX = "${stdenv.cross.config}-gcc"; + AR_FOR_TARGET = "${stdenv.cross.config}-ar"; + LD_FOR_TARGET = "${stdenv.cross.config}-ld"; + CC_FOR_TARGET = "${stdenv.cross.config}-gcc"; + NM_FOR_TARGET = "${stdenv.cross.config}-nm"; + CXX_FOR_TARGET = "${stdenv.cross.config}-g++"; + # If we are making a cross compiler, cross != null + NIX_GCC_CROSS = if cross == null then "${stdenv.gccCross}" else ""; + dontStrip = true; + configureFlags = '' + ${if enableMultilib then "" else "--disable-multilib"} + ${if enableShared then "" else "--disable-shared"} + ${if ppl != null then "--with-ppl=${ppl.crossDrv}" else ""} + ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""} + ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""} + ${if javaAwtGtk then "--enable-java-awt=gtk" else ""} + ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""} + --with-gmp=${gmp.crossDrv} + --with-mpfr=${mpfr.crossDrv} + --disable-libstdcxx-pch + --without-included-gettext + --with-system-zlib + --enable-languages=${ + concatStrings (intersperse "," + ( optional langC "c" + ++ optional langCC "c++" + ++ optional langFortran "fortran" + ++ optional langJava "java" + ++ optional langAda "ada" + ++ optional langVhdl "vhdl" + ++ optional langGo "go" + ) + ) + } + ${if langAda then " --enable-libada" else ""} + --target=${stdenv.cross.config} + ${xwithArch} + ${xwithCpu} + ${xwithAbi} + ${xwithFpu} + ${xwithFloat} + ''; + buildFlags = ""; + }; + + + # Needed for the cross compilation to work + AR = "ar"; + LD = "ld"; + # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 + CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" + else "gcc"; + + # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find + # the library headers and binaries, regarless of the language being + # compiled. + + # Note: When building the Java AWT GTK+ peer, the build system doesn't + # honor `--with-gmp' et al., e.g., when building + # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just + # add them to $CPATH and $LIBRARY_PATH in this case. + # + # Likewise, the LTO code doesn't find zlib. + + CPATH = concatStrings + (intersperse ":" (map (x: x + "/include") + (optionals (zlib != null) [ zlib ] + ++ optionals langJava [ boehmgc ] + ++ optionals javaAwtGtk xlibs + ++ optionals javaAwtGtk [ gmp mpfr ] + ++ optional (libpthread != null) libpthread + ++ optional (libpthreadCross != null) libpthreadCross + + # On GNU/Hurd glibc refers to Mach & Hurd + # headers. + ++ optionals (libcCross != null && + hasAttr "propagatedBuildInputs" libcCross) + libcCross.propagatedBuildInputs))); + + LIBRARY_PATH = concatStrings + (intersperse ":" (map (x: x + "/lib") + (optionals (zlib != null) [ zlib ] + ++ optionals langJava [ boehmgc ] + ++ optionals javaAwtGtk xlibs + ++ optionals javaAwtGtk [ gmp mpfr ] + ++ optional (libpthread != null) libpthread))); + + EXTRA_TARGET_CFLAGS = + if cross != null && libcCross != null + then "-idirafter ${libcCross}/include" + else null; + + EXTRA_TARGET_LDFLAGS = + if cross != null && libcCross != null + then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" + + (optionalString (libpthreadCross != null) + " -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}") + else null; + + passthru = { inherit langC langCC langAda langFortran langVhdl + langGo enableMultilib version; }; + + inherit enableParallelBuilding; + + meta = { + homepage = http://gcc.gnu.org/; + license = "GPLv3+"; # runtime support libraries are typically LGPLv3+ + description = "GNU Compiler Collection, version ${version}" + + (if stripped then "" else " (with debugging info)"); + + longDescription = '' + The GNU Compiler Collection includes compiler front ends for C, C++, + Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well + as libraries for these languages (libstdc++, libgcj, libgomp,...). + + GCC development is a part of the GNU Project, aiming to improve the + compiler used in the GNU system including the GNU/Linux variant. + ''; + + maintainers = [ + stdenv.lib.maintainers.ludo + stdenv.lib.maintainers.viric + stdenv.lib.maintainers.shlevy + ]; + + # Volunteers needed for the {Cyg,Dar}win ports of *PPL. + # gnatboot is not available out of linux platforms, so we disable the darwin build + # for the gnat (ada compiler). + platforms = stdenv.lib.platforms.linux ++ optionals (langAda == false && libelf == null) [ "i686-darwin" ]; + }; +} + +// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) { + makeFlags = [ "all-gcc" "all-target-libgcc" ]; + installTargets = "install-gcc install-target-libgcc"; +} + + +# Strip kills static libs of other archs (hence cross != null) +// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; } +) diff --git a/pkgs/gcc-4.7/gfortran-driving.patch b/pkgs/gcc-4.7/gfortran-driving.patch new file mode 100644 index 000000000000..70708886b405 --- /dev/null +++ b/pkgs/gcc-4.7/gfortran-driving.patch @@ -0,0 +1,20 @@ +This patch fixes interaction with Libtool. +See , for details. + +--- a/gcc/fortran/gfortranspec.c ++++ b/gcc/fortran/gfortranspec.c +@@ -461,8 +461,15 @@ For more information about these matters, see the file named COPYING\n\n")); + { + fprintf (stderr, _("Driving:")); + for (i = 0; i < g77_newargc; i++) ++ { ++ if (g77_new_decoded_options[i].opt_index == OPT_l) ++ /* Make sure no white space is inserted after `-l'. */ ++ fprintf (stderr, " -l%s", ++ g77_new_decoded_options[i].canonical_option[1]); ++ else + fprintf (stderr, " %s", + g77_new_decoded_options[i].orig_option_with_args_text); ++ } + fprintf (stderr, "\n"); + } diff --git a/pkgs/gcc-4.7/gnat-cflags.patch b/pkgs/gcc-4.7/gnat-cflags.patch new file mode 100644 index 000000000000..bf2acf065e9b --- /dev/null +++ b/pkgs/gcc-4.7/gnat-cflags.patch @@ -0,0 +1,33 @@ +diff --git a/libada/Makefile.in b/libada/Makefile.in +index f5057a0..337e0c6 100644 +--- a/libada/Makefile.in ++++ b/libada/Makefile.in +@@ -55,7 +55,7 @@ GCC_WARN_CFLAGS = $(LOOSE_WARN) + WARN_CFLAGS = @warn_cflags@ + + TARGET_LIBGCC2_CFLAGS= +-GNATLIBCFLAGS= -g -O2 ++GNATLIBCFLAGS= -g -O2 $(CFLAGS) + GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \ + -DIN_RTS @have_getipinfo@ + +--- a/gcc/ada/gcc-interface/Makefile.in ++++ b/gcc/ada/gcc-interface/Makefile.in +@@ -105,7 +105,7 @@ ADAFLAGS = -W -Wall -gnatpg -gnata + SOME_ADAFLAGS =-gnata + FORCE_DEBUG_ADAFLAGS = -g + GNATLIBFLAGS = -gnatpg -nostdinc +-GNATLIBCFLAGS = -g -O2 ++GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET) + # Pretend that _Unwind_GetIPInfo is available for the target by default. This + # should be autodetected during the configuration of libada and passed down to + # here, but we need something for --disable-libada and hope for the best. +@@ -193,7 +193,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) + # Link flags used to build gnat tools. By default we prefer to statically + # link with libgcc to avoid a dependency on shared libgcc (which is tricky + # to deal with as it may conflict with the libgcc provided by the system). +-GCC_LINK_FLAGS=-static-libgcc ++GCC_LINK_FLAGS=-static-libgcc $(CFLAGS_FOR_TARGET) + + # End of variables for you to override. + diff --git a/pkgs/gcc-4.7/java-jvgenmain-link.patch b/pkgs/gcc-4.7/java-jvgenmain-link.patch new file mode 100644 index 000000000000..2612e8bfbbbc --- /dev/null +++ b/pkgs/gcc-4.7/java-jvgenmain-link.patch @@ -0,0 +1,17 @@ +The `jvgenmain' executable must be linked against `vec.o', among others, +since it uses its vector API. + +--- gcc-4.3.3/gcc/java/Make-lang.in 2008-12-05 00:00:19.000000000 +0100 ++++ gcc-4.3.3/gcc/java/Make-lang.in 2009-07-03 16:11:41.000000000 +0200 +@@ -109,9 +109,9 @@ jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIB + $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \ + $(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS) + +-jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) ++jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) $(BUILD_RTL) + rm -f $@ +- $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS) ++ $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(BUILD_RTL) $(LIBS) + + # + # Build hooks: diff --git a/pkgs/gcc-4.7/libstdc++-target.patch b/pkgs/gcc-4.7/libstdc++-target.patch new file mode 100644 index 000000000000..fb622b395806 --- /dev/null +++ b/pkgs/gcc-4.7/libstdc++-target.patch @@ -0,0 +1,32 @@ +Patch to make the target libraries 'configure' scripts find the proper CPP. +I noticed that building the mingw32 cross compiler. +Looking at the build script for mingw in archlinux, I think that only nixos +needs this patch. I don't know why. +diff --git a/Makefile.in b/Makefile.in +index 93f66b6..d691917 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -266,6 +266,7 @@ BASE_TARGET_EXPORTS = \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \ ++ CPP="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ +@@ -291,11 +292,13 @@ BASE_TARGET_EXPORTS = \ + RAW_CXX_TARGET_EXPORTS = \ + $(BASE_TARGET_EXPORTS) \ + CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ +- CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; ++ CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \ ++ CXXCPP="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX; + + NORMAL_TARGET_EXPORTS = \ + $(BASE_TARGET_EXPORTS) \ +- CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; ++ CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \ ++ CXXCPP="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX; + + # Where to find GMP + HOST_GMPLIBS = @gmplibs@ diff --git a/pkgs/gcc-4.7/no-sys-dirs.patch b/pkgs/gcc-4.7/no-sys-dirs.patch new file mode 100644 index 000000000000..79901703cb82 --- /dev/null +++ b/pkgs/gcc-4.7/no-sys-dirs.patch @@ -0,0 +1,41 @@ +diff -ru gcc-4.3.1-orig/gcc/cppdefault.c gcc-4.3.1/gcc/cppdefault.c +--- gcc-4.3.1-orig/gcc/cppdefault.c 2007-07-26 10:37:01.000000000 +0200 ++++ gcc-4.3.1/gcc/cppdefault.c 2008-06-25 17:48:23.000000000 +0200 +@@ -41,6 +41,10 @@ + # undef CROSS_INCLUDE_DIR + #endif + ++#undef LOCAL_INCLUDE_DIR ++#undef SYSTEM_INCLUDE_DIR ++#undef STANDARD_INCLUDE_DIR ++ + const struct default_include cpp_include_defaults[] + #ifdef INCLUDE_DEFAULTS + = INCLUDE_DEFAULTS; +diff -ru gcc-4.3.1-orig/gcc/gcc.c gcc-4.3.1/gcc/gcc.c +--- gcc-4.3.1-orig/gcc/gcc.c 2008-03-02 23:55:19.000000000 +0100 ++++ gcc-4.3.1/gcc/gcc.c 2008-06-25 17:52:53.000000000 +0200 +@@ -1478,10 +1478,10 @@ + /* Default prefixes to attach to command names. */ + + #ifndef STANDARD_STARTFILE_PREFIX_1 +-#define STANDARD_STARTFILE_PREFIX_1 "/lib/" ++#define STANDARD_STARTFILE_PREFIX_1 "" + #endif + #ifndef STANDARD_STARTFILE_PREFIX_2 +-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/" ++#define STANDARD_STARTFILE_PREFIX_2 "" + #endif + + #ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */ +--- gcc-4.3.1-orig/gcc/Makefile.in 2008-05-11 20:54:15.000000000 +0200 ++++ gcc-4.3.1/gcc/Makefile.in 2008-06-25 17:48:23.000000000 +0200 +@@ -3277,7 +3281,7 @@ + -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ + -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \ + -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ +- -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ ++ -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \ + -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ + -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \ + -DPREFIX=\"$(prefix)/\" \ diff --git a/pkgs/gcc-4.7/parallel-bconfig-4.7.patch b/pkgs/gcc-4.7/parallel-bconfig-4.7.patch new file mode 100644 index 000000000000..bdf0fa4931a5 --- /dev/null +++ b/pkgs/gcc-4.7/parallel-bconfig-4.7.patch @@ -0,0 +1,30 @@ +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 0f6735a..ba93e9b 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3904,21 +3904,21 @@ build/genflags.o : genflags.c $(RTL_BASE_H) $(OBSTACK_H) $(BCONFIG_H) \ + $(SYSTEM_H) coretypes.h $(GTM_H) errors.h $(READ_MD_H) gensupport.h + build/gengenrtl.o : gengenrtl.c $(BCONFIG_H) $(SYSTEM_H) rtl.def + gengtype-lex.o build/gengtype-lex.o : gengtype-lex.c gengtype.h $(SYSTEM_H) +-gengtype-lex.o: $(CONFIG_H) ++gengtype-lex.o: $(CONFIG_H) $(BCONFIG_H) + build/gengtype-lex.o: $(BCONFIG_H) + gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \ + $(SYSTEM_H) +-gengtype-parse.o: $(CONFIG_H) ++gengtype-parse.o: $(CONFIG_H) $(BCONFIG_H) + build/gengtype-parse.o: $(BCONFIG_H) + gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \ + gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \ + $(XREGEX_H) +-gengtype-state.o: $(CONFIG_H) ++gengtype-state.o: $(CONFIG_H) $(BCONFIG_H) + build/gengtype-state.o: $(BCONFIG_H) + gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h \ + rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \ + $(OBSTACK_H) $(XREGEX_H) +-gengtype.o: $(CONFIG_H) ++gengtype.o: $(CONFIG_H) $(BCONFIG_H) + build/gengtype.o: $(BCONFIG_H) + build/genmddeps.o: genmddeps.c $(BCONFIG_H) $(SYSTEM_H) coretypes.h \ + errors.h $(READ_MD_H) diff --git a/pkgs/gecko.nix b/pkgs/gecko.nix new file mode 100644 index 000000000000..1f1739d41a5a --- /dev/null +++ b/pkgs/gecko.nix @@ -0,0 +1,88 @@ +{ geckoSrc +, stdenv +, pythonFull, which, autoconf213 +, perl, unzip, zip, gnumake, yasm, pkgconfig +, xlibs, gnome +, pango +, dbus, dbus_glib +, alsaLib, libpulseaudio, gstreamer, gst_plugins_base +, gtk3, glib, gobjectIntrospection +, valgrind +}: + +stdenv.mkDerivation { + name = "firefox"; + # TODO: we should maybe point to latest master? + src = geckoSrc; + buildInputs = [ + + # Expected by "mach" + pythonFull which autoconf213 + + # Expected by the configure script + perl unzip zip gnumake yasm pkgconfig + + xlibs.libICE xlibs.libSM xlibs.libX11 xlibs.libXau xlibs.libxcb + xlibs.libXdmcp xlibs.libXext xlibs.libXt xlibs.printproto + xlibs.renderproto xlibs.xextproto xlibs.xproto xlibs.libXcomposite + xlibs.compositeproto xlibs.libXfixes xlibs.fixesproto + xlibs.damageproto xlibs.libXdamage xlibs.libXrender xlibs.kbproto + + gnome.libart_lgpl gnome.libbonobo gnome.libbonoboui + gnome.libgnome gnome.libgnomecanvas gnome.libgnomeui + gnome.libIDL + + pango + + dbus dbus_glib + + alsaLib libpulseaudio + gstreamer gst_plugins_base + + gtk3 glib gobjectIntrospection + + ] ++ stdenv.lib.optionals stdenv.lib.inNixShell [ + valgrind + ]; + + # Useful for debugging this Nix expression. + tracePhases = true; + + configurePhase = '' + export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild + export MOZ_CONFIG=$(pwd)/.mozconfig + export builddir=$(pwd)/build + + mkdir -p $MOZBUILD_STATE_PATH $builddir + echo > $MOZ_CONFIG " + . $src/build/mozconfig.common + + ac_add_options --prefix=$out + ac_add_options --enable-application=browser + ac_add_options --enable-official-branding + " + + # Make sure mach can find autoconf 2.13, as it is not suffixed in Nix. + export AUTOCONF=${autoconf213}/bin/autoconf + ''; + + AUTOCONF = "${autoconf213}/bin/autoconf"; + + buildPhase = '' + cd $builddir + $src/mach build + ''; + + installPhase = '' + cd $builddir + $src/mach install + ''; + + # TODO: are there tests we would like to run? or should we package them separately? + doCheck = false; + doInstallCheck = false; + + shellHook = '' + export MOZBUILD_STATE_PATH=$PWD/.mozbuild + ''; +} diff --git a/pkgs/servo.nix b/pkgs/servo.nix new file mode 100644 index 000000000000..3000f4a12382 --- /dev/null +++ b/pkgs/servo.nix @@ -0,0 +1,97 @@ +{ servoSrc +, stdenv +, curl +, dbus +, fontconfig +, freeglut +, freetype +, gperf +, libxmi +, llvm +, mesa +, mesa_glu +, openssl +, pkgconfig +, pythonPackages +, makeWrapper +, writeText +, rustPlatform +, xorg +}: + +let + + version = "latest"; + + # TODO: add possibility to test against wayland + xorgCompositorLibs = "${xorg.libXcursor.out}/lib:${xorg.libXi.out}/lib"; + + inherit (rustPlatform) buildRustPackage; + inherit (rustPlatform.rust) rustc cargo; + + servobuild = writeText "servobuild" '' + [tools] + cache-dir = "./downloads" + cargo-home-dir = "./.downloads/clones + system-rust = true + rust-root = "${rustc}/bin/rustc" + system-cargo = true + cargo-root = "${cargo}/bin/cargo" + [build] + ''; + + servoRust = buildRustPackage rec { + name = "servo-rust-${version}"; + src = servoSrc; + postUnpack = '' + pwd + ls -la + exit 100 + ''; + sourceRoot = "servo/components/servo"; + + depsSha256 = "0ca0lc8mm8kczll5m03n5fwsr0540c2xbfi4nn9ksn0s4sap50yn"; + + doCheck = false; + }; + +in stdenv.mkDerivation rec { + name = "servo-${version}"; + src = servoSrc; + + buildInputs = [ + #cmake + curl + dbus + fontconfig + freeglut + freetype + gperf + libxmi + llvm + mesa + mesa_glu + openssl + pkgconfig + pythonPackages.pip + pythonPackages.virtualenv + xorg.libX11 + xorg.libXmu + + # nix stuff + makeWrapper + servoRust + ]; + preConfigure = '' + ln -s ${servobuild} .servobuild + ''; + postInstall = '' + wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" + ''; + shellHook = '' + # Servo tries to switch between libX11 and wayland at runtime so we have + # to provide a path + export LD_LIBRARY_PATH=${xorgCompositorLibs}:$LD_LIBRARY_PATH + ''; + +} diff --git a/release.nix b/release.nix new file mode 100644 index 000000000000..6b8066695da2 --- /dev/null +++ b/release.nix @@ -0,0 +1,132 @@ +{ nixpkgsSrc ? +, supportedSystems ? [ "x86_64-linux" "i686-linux" /* "x86_64-darwin" */ ] +}: + +let + + # import current system nixpkgs's + pkgs' = import nixpkgsSrc {}; + + # Make an attribute set for each system, the builder is then specialized to + # use the selected system. + forEachSystem = systems: builder: + pkgs'.lib.genAttrs systems (system: + builder (import nixpkgsSrc { inherit system; }) + ); + + # Make an attribute set for each compiler, the builder is then be specialized + # to use the selected compiler. + forEachCompiler = compilers: builder: pkgs: + with pkgs; + let + + # Override, in a non-recursive matter to avoid recompilations, the standard + # environment used for building packages. + builderWithStdenv = stdenv: builder (pkgs // { inherit stdenv; }); + + noSysDirs = (system != "x86_64-darwin" + && system != "x86_64-freebsd" && system != "i686-freebsd" + && system != "x86_64-kfreebsd-gnu"); + crossSystem = null; + + gcc473 = wrapCC (callPackage ./pkgs/gcc-4.7 { + inherit noSysDirs; + texinfo = texinfo4; + # I'm not sure if profiling with enableParallelBuilding helps a lot. + # We can enable it back some day. This makes the *gcc* builds faster now. + profiledCompiler = false; + + # When building `gcc.crossDrv' (a "Canadian cross", with host == target + # and host != build), `cross' must be null but the cross-libc must still + # be passed. + cross = null; + libcCross = if crossSystem != null then libcCross else null; + libpthreadCross = + if crossSystem != null && crossSystem.config == "i586-pc-gnu" + then gnu.libpthreadCross + else null; + }); + + buildWithCompiler = cc: builderWithStdenv (stdenvAdapters.overrideCC stdenv cc); + chgCompilerSource = cc: name: src: + cc.override (conf: + if conf ? gcc then # Nixpkgs 14.12 + { gcc = lib.overrideDerivation conf.gcc (old: { inherit name src; }); } + else # Nixpkgs 15.05 + { cc = lib.overrideDerivation conf.cc (old: { inherit name src; }); } + ); + + compilersByName = { + clang = clang; + # clang33 = clang_33 # not present in nixpkgs + clang34 = clang_34; + clang35 = clang_35; + clang36 = clang_36; + clang37 = clang_37; + clang38 = clang_38; + gcc = gcc; + gcc49 = gcc49; + gcc48 = gcc48; + gcc474 = chgCompilerSource gcc473 "gcc-4.7.4" (fetchurl { + url = "mirror://gnu/gcc/gcc-4.7.4/gcc-4.7.4.tar.bz2"; + sha256 = "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj"; + }); + gcc473 = gcc473; + # Version used on Linux slaves, except Linux x64 ASAN. + gcc472 = chgCompilerSource gcc473 "gcc-4.7.2" (fetchurl { + url = "mirror://gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2"; + sha256 = "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"; + }); + }; + + in builtins.listToAttrs (map (x: { name = x; value = buildWithCompiler (builtins.getAttr x compilersByName); }) compilers); + + build = name: { systems ? supportedSystems, compilers ? null }: + forEachSystem systems ( + let + builder = pkgs: builtins.getAttr name (import ./default.nix { inherit pkgs; }); + in + if compilers == null + then builder + else forEachCompiler compilers builder + ); + + geckoCompilers = [ + "clang" + "clang33" + "clang34" + "clang35" + "gcc" + "gcc49" + "gcc48" + "gcc474" + "gcc473" + "gcc472" + ]; + + jobs = rec { + + # For each system, and each compiler, create an attribute with the name of + # the system and compiler. Use this attribute name to select which + # environment you are interested in for building firefox. These can be + # build using the following command: + # + # $ nix-build release.nix -A gecko.x86_64-linux.clang -o firefox-x64 + # $ nix-build release.nix -A gecko.i686-linux.gcc48 -o firefox-x86 + # + # If you are only interested in getting a build environment, the use the + # nix-shell command instead, which will skip the copy of Firefox sources, + # and pull the the dependencies needed for building firefox with this + # environment. + # + # $ nix-shell release.nix -A gecko.i686-linux.gcc472 --pure --command 'gcc --version' + # $ nix-shell release.nix -A gecko.x86_64-linux.clang --pure + # + gecko = build "gecko" { compilers = geckoCompilers; }; + servo = build "servo"; + VidyoDesktop = build "VidyoDesktop"; + + }; + +in + jobs diff --git a/servo.nix b/servo.nix deleted file mode 100644 index 2f3bbef2c1c9..000000000000 --- a/servo.nix +++ /dev/null @@ -1,82 +0,0 @@ -{ version ? "master" -}: - -let - pkgs = import {}; - inherit (pkgs) stdenv; - - # Where the servo codes lives - servoSrc = ../../servo/servo; - - # TODO: add wayland - xorgCompositorLibs = "${pkgs.xorg.libXcursor.out}/lib:${pkgs.xorg.libXi.out}/lib"; - - rust = pkgs.rustUnstable; - rustc = rust.rustc; - cargo = rust.cargo; - - servobuild = pkgs.writeText "servobuild" '' - [tools] - cache-dir = "./downloads" - cargo-home-dir = "./.downloads/clones - system-rust = true - rust-root = "${rustc}/bin/rustc" - system-cargo = true - cargo-root = "${cargo}/bin/cargo" - [build] - ''; - - servoRust = rust.buildRustPackage { - name = "servo-rust-${version}"; - src = servoSrc; - postUnpack = '' - pwd - ls -la cargo-* - ''; - sourceRoot = "cargo-*/components/servo"; - - depsSha256 = "0ca0lc8mm8kczll5m03n5fwsr0540c2xbfi4nn9ksn0s4sap50yn"; - - doCheck = false; - }; - -in stdenv.mkDerivation rec { - name = "servo-${version}"; - src = servoSrc; - buildInputs = with pkgs; [ - #cmake - curl - dbus - fontconfig - freeglut - freetype - gperf - libxmi - llvm - mesa - mesa_glu - openssl - openssl - pkgconfig - python3Packages.pip - python3Packages.virtualenv - xorg.libX11 - xorg.libXmu - - # nixstuff - makeWrapper - servoRust - ]; - preConfigure = '' - ln -s ${servobuild} .servobuild - ''; - postInstall = '' - wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" - ''; - shellHook = '' - # Servo tries to switch between libX11 and wayland at runtime so we have - # to provide a path - export LD_LIBRARY_PATH=${xorgCompositorLibs}:$LD_LIBRARY_PATH - ''; - -} -- cgit 1.4.1 From 35f76d748f845c03f1c5ad59620783d89bebcf0f Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 8 Jul 2016 15:19:40 +0000 Subject: Fix clang 3.6 and clang 3.7, by switching to libc++ headers. --- pkgs/clang/bug-14435.patch | 35 ++++++++++++++++++++++++++++++++++ release.nix | 47 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 pkgs/clang/bug-14435.patch diff --git a/pkgs/clang/bug-14435.patch b/pkgs/clang/bug-14435.patch new file mode 100644 index 000000000000..c16a8f82f182 --- /dev/null +++ b/pkgs/clang/bug-14435.patch @@ -0,0 +1,35 @@ +diff -x _inst -x _build -x .svn -ur libcxx.old/include/cstdio libcxx.new/include/cstdio +--- libcxx.old/include/cstdio 2016-07-08 12:47:12.964181871 +0000 ++++ libcxx.new/include/cstdio 2016-07-08 12:47:27.540149147 +0000 +@@ -109,15 +109,15 @@ + #endif + + #ifdef getc +-inline _LIBCPP_INLINE_VISIBILITY int __libcpp_getc(FILE* __stream) {return getc(__stream);} ++inline __attribute__ ((__always_inline__)) int __libcpp_getc(FILE* __stream) {return getc(__stream);} + #undef getc +-inline _LIBCPP_INLINE_VISIBILITY int getc(FILE* __stream) {return __libcpp_getc(__stream);} ++inline __attribute__ ((__always_inline__)) int getc(FILE* __stream) {return __libcpp_getc(__stream);} + #endif // getc + + #ifdef putc +-inline _LIBCPP_INLINE_VISIBILITY int __libcpp_putc(int __c, FILE* __stream) {return putc(__c, __stream);} ++inline __attribute__ ((__always_inline__)) int __libcpp_putc(int __c, FILE* __stream) {return putc(__c, __stream);} + #undef putc +-inline _LIBCPP_INLINE_VISIBILITY int putc(int __c, FILE* __stream) {return __libcpp_putc(__c, __stream);} ++inline __attribute__ ((__always_inline__)) int putc(int __c, FILE* __stream) {return __libcpp_putc(__c, __stream);} + #endif // putc + + #ifdef clearerr +diff -x _inst -x _build -x .svn -ur libcxx.old/include/utility libcxx.new/include/utility +--- libcxx.old/include/utility 2016-07-08 12:46:02.570334913 +0000 ++++ libcxx.new/include/utility 2016-07-08 12:51:00.760636878 +0000 +@@ -217,7 +217,7 @@ + } + + template +-inline _LIBCPP_INLINE_VISIBILITY ++inline __attribute__ ((__always_inline__)) + void + swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value) + { diff --git a/release.nix b/release.nix index 6b8066695da2..47c074c4a788 100644 --- a/release.nix +++ b/release.nix @@ -47,7 +47,35 @@ let else null; }); - buildWithCompiler = cc: builderWithStdenv (stdenvAdapters.overrideCC stdenv cc); + # By default wrapCC keep the same header files, but NixOS is using the + # latest header files from GCC, which are not supported by clang, because + # clang implement a different set of locking primitives than GCC. This + # expression is used to wrap clang with a matching verion of the libc++. + maybeWrapClang = cc: + if cc ? clang then clangWrapCC cc + else cc; + clangWrapCC = llvmPackages: + let libcxx = + pkgs.lib.overrideDerivation llvmPackages.libcxx (drv: { + # https://bugzilla.mozilla.org/show_bug.cgi?id=1277619 + # https://llvm.org/bugs/show_bug.cgi?id=14435 + patches = drv.patches ++ [ ./pkgs/clang/bug-14435.patch ]; + }); + in + callPackage { + cc = llvmPackages.clang-unwrapped or llvmPackages.clang; + isClang = true; + stdenv = clangStdenv; + libc = glibc; + # cc-wrapper pulls gcc headers, which are not compatible with features + # implemented in clang. These packages are used to override that. + extraPackages = [ libcxx llvmPackages.libcxxabi ]; + nativeTools = false; + nativeLibc = false; + }; + + buildWithCompiler = cc: builderWithStdenv + (stdenvAdapters.overrideCC stdenv (maybeWrapClang cc)); chgCompilerSource = cc: name: src: cc.override (conf: if conf ? gcc then # Nixpkgs 14.12 @@ -58,12 +86,9 @@ let compilersByName = { clang = clang; - # clang33 = clang_33 # not present in nixpkgs - clang34 = clang_34; - clang35 = clang_35; - clang36 = clang_36; - clang37 = clang_37; - clang38 = clang_38; + clang36 = llvmPackages_36; + clang37 = llvmPackages_37; + clang38 = llvmPackages_38; # not working yet. gcc = gcc; gcc49 = gcc49; gcc48 = gcc48; @@ -80,7 +105,7 @@ let }; in builtins.listToAttrs (map (x: { name = x; value = buildWithCompiler (builtins.getAttr x compilersByName); }) compilers); - + build = name: { systems ? supportedSystems, compilers ? null }: forEachSystem systems ( let @@ -93,9 +118,9 @@ let geckoCompilers = [ "clang" - "clang33" - "clang34" - "clang35" + "clang36" + "clang37" + "clang38" "gcc" "gcc49" "gcc48" -- cgit 1.4.1 From 8b4faa0bc749324b57975d014cd2692bb3d0b519 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 8 Jul 2016 16:11:29 +0000 Subject: Update the mozconfig content to compile with the latest modification of the build system. --- pkgs/gecko.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/gecko.nix b/pkgs/gecko.nix index 1f1739d41a5a..d3dec7512b91 100644 --- a/pkgs/gecko.nix +++ b/pkgs/gecko.nix @@ -51,19 +51,19 @@ stdenv.mkDerivation { configurePhase = '' export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild export MOZ_CONFIG=$(pwd)/.mozconfig - export builddir=$(pwd)/build + export builddir=$(pwd)/builddir mkdir -p $MOZBUILD_STATE_PATH $builddir echo > $MOZ_CONFIG " . $src/build/mozconfig.common + mk_add_options MOZ_OBJDIR=$builddir + mk_add_options AUTOCONF=${autoconf213}/bin/autoconf ac_add_options --prefix=$out ac_add_options --enable-application=browser ac_add_options --enable-official-branding - " - - # Make sure mach can find autoconf 2.13, as it is not suffixed in Nix. export AUTOCONF=${autoconf213}/bin/autoconf + " ''; AUTOCONF = "${autoconf213}/bin/autoconf"; -- cgit 1.4.1 From 4380214988965426af2d8704805efe51a2c67be0 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 8 Jul 2016 16:11:52 +0000 Subject: Add useful debugging tools when running in the nix-shell. --- pkgs/gecko.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/gecko.nix b/pkgs/gecko.nix index d3dec7512b91..6fee236f0659 100644 --- a/pkgs/gecko.nix +++ b/pkgs/gecko.nix @@ -7,7 +7,7 @@ , dbus, dbus_glib , alsaLib, libpulseaudio, gstreamer, gst_plugins_base , gtk3, glib, gobjectIntrospection -, valgrind +, valgrind, gdb, rr }: stdenv.mkDerivation { @@ -42,7 +42,7 @@ stdenv.mkDerivation { gtk3 glib gobjectIntrospection ] ++ stdenv.lib.optionals stdenv.lib.inNixShell [ - valgrind + valgrind gdb rr ]; # Useful for debugging this Nix expression. -- cgit 1.4.1 From 06eaca5f11e64454575ea887980362f20941c95d Mon Sep 17 00:00:00 2001 From: zimbatm Date: Mon, 11 Jul 2016 10:28:10 +0100 Subject: moved src hash/rev to repo.json file (#2) * update-repo.sh script that updates repo.json * gecko: move into folder * servo: move into folder * VidyoDesktop: fixup * introduce update-repo.sh util script * servo: convert to update-repo --- default.nix | 19 ++++----- pkgs/gecko.nix | 88 --------------------------------------- pkgs/gecko/default.nix | 88 +++++++++++++++++++++++++++++++++++++++ pkgs/servo.nix | 97 ------------------------------------------ pkgs/servo/default.nix | 104 ++++++++++++++++++++++++++++++++++++++++++++++ pkgs/servo/repo.json | 6 +++ pkgs/servo/update-repo.sh | 3 ++ update-repo.sh | 38 +++++++++++++++++ 8 files changed, 246 insertions(+), 197 deletions(-) delete mode 100644 pkgs/gecko.nix create mode 100644 pkgs/gecko/default.nix delete mode 100644 pkgs/servo.nix create mode 100644 pkgs/servo/default.nix create mode 100644 pkgs/servo/repo.json create mode 100755 pkgs/servo/update-repo.sh create mode 100755 update-repo.sh diff --git a/default.nix b/default.nix index bdbc1b742b80..15bda247ca37 100644 --- a/default.nix +++ b/default.nix @@ -8,13 +8,7 @@ sha256 = "1knrffx62i8zfg3jfhpn3hs5354sg44f8iq4c7hfvp4nsxsjskr4"; } -, servoSrc ? - pkgs.fetchFromGitHub { - owner = "servo"; - repo = "servo"; - rev = "b577d66ec374811a6493e95b37829269bbc97dfa"; - sha256 = "13jqfh7b87ss5yf9c4yl7cggawjm6w4hd8aq0q275adjzdmazz14"; - } +, servoSrc ? null }: let @@ -24,7 +18,7 @@ let self = { - gecko = import ./pkgs/gecko.nix { + gecko = import ./pkgs/gecko { inherit geckoSrc; inherit (pkgs) stdenv @@ -38,14 +32,15 @@ let valgrind; }; - servo = import ./pkgs/servo.nix { + servo = import ./pkgs/servo { pythonPackages = pkgs.python3Packages; inherit servoSrc rustPlatform; - inherit (pkgs) stdenv curl dbus fontconfig freeglut freetype gperf libxmi - llvm mesa mesa_glu openssl pkgconfig makeWrapper writeText xorg; + inherit (pkgs) stdenv lib fetchFromGitHub + curl dbus fontconfig freeglut freetype gperf libxmi llvm mesa + mesa_glu openssl pkgconfig makeWrapper writeText xorg; }; - VidyoDesktop= import ./pkgs/VidyoDesktop/default.nix { + VidyoDesktop = import ./pkgs/VidyoDesktop { inherit (pkgs) stdenv fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 zlib patchelf xorg; diff --git a/pkgs/gecko.nix b/pkgs/gecko.nix deleted file mode 100644 index 6fee236f0659..000000000000 --- a/pkgs/gecko.nix +++ /dev/null @@ -1,88 +0,0 @@ -{ geckoSrc -, stdenv -, pythonFull, which, autoconf213 -, perl, unzip, zip, gnumake, yasm, pkgconfig -, xlibs, gnome -, pango -, dbus, dbus_glib -, alsaLib, libpulseaudio, gstreamer, gst_plugins_base -, gtk3, glib, gobjectIntrospection -, valgrind, gdb, rr -}: - -stdenv.mkDerivation { - name = "firefox"; - # TODO: we should maybe point to latest master? - src = geckoSrc; - buildInputs = [ - - # Expected by "mach" - pythonFull which autoconf213 - - # Expected by the configure script - perl unzip zip gnumake yasm pkgconfig - - xlibs.libICE xlibs.libSM xlibs.libX11 xlibs.libXau xlibs.libxcb - xlibs.libXdmcp xlibs.libXext xlibs.libXt xlibs.printproto - xlibs.renderproto xlibs.xextproto xlibs.xproto xlibs.libXcomposite - xlibs.compositeproto xlibs.libXfixes xlibs.fixesproto - xlibs.damageproto xlibs.libXdamage xlibs.libXrender xlibs.kbproto - - gnome.libart_lgpl gnome.libbonobo gnome.libbonoboui - gnome.libgnome gnome.libgnomecanvas gnome.libgnomeui - gnome.libIDL - - pango - - dbus dbus_glib - - alsaLib libpulseaudio - gstreamer gst_plugins_base - - gtk3 glib gobjectIntrospection - - ] ++ stdenv.lib.optionals stdenv.lib.inNixShell [ - valgrind gdb rr - ]; - - # Useful for debugging this Nix expression. - tracePhases = true; - - configurePhase = '' - export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild - export MOZ_CONFIG=$(pwd)/.mozconfig - export builddir=$(pwd)/builddir - - mkdir -p $MOZBUILD_STATE_PATH $builddir - echo > $MOZ_CONFIG " - . $src/build/mozconfig.common - - mk_add_options MOZ_OBJDIR=$builddir - mk_add_options AUTOCONF=${autoconf213}/bin/autoconf - ac_add_options --prefix=$out - ac_add_options --enable-application=browser - ac_add_options --enable-official-branding - export AUTOCONF=${autoconf213}/bin/autoconf - " - ''; - - AUTOCONF = "${autoconf213}/bin/autoconf"; - - buildPhase = '' - cd $builddir - $src/mach build - ''; - - installPhase = '' - cd $builddir - $src/mach install - ''; - - # TODO: are there tests we would like to run? or should we package them separately? - doCheck = false; - doInstallCheck = false; - - shellHook = '' - export MOZBUILD_STATE_PATH=$PWD/.mozbuild - ''; -} diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix new file mode 100644 index 000000000000..6fee236f0659 --- /dev/null +++ b/pkgs/gecko/default.nix @@ -0,0 +1,88 @@ +{ geckoSrc +, stdenv +, pythonFull, which, autoconf213 +, perl, unzip, zip, gnumake, yasm, pkgconfig +, xlibs, gnome +, pango +, dbus, dbus_glib +, alsaLib, libpulseaudio, gstreamer, gst_plugins_base +, gtk3, glib, gobjectIntrospection +, valgrind, gdb, rr +}: + +stdenv.mkDerivation { + name = "firefox"; + # TODO: we should maybe point to latest master? + src = geckoSrc; + buildInputs = [ + + # Expected by "mach" + pythonFull which autoconf213 + + # Expected by the configure script + perl unzip zip gnumake yasm pkgconfig + + xlibs.libICE xlibs.libSM xlibs.libX11 xlibs.libXau xlibs.libxcb + xlibs.libXdmcp xlibs.libXext xlibs.libXt xlibs.printproto + xlibs.renderproto xlibs.xextproto xlibs.xproto xlibs.libXcomposite + xlibs.compositeproto xlibs.libXfixes xlibs.fixesproto + xlibs.damageproto xlibs.libXdamage xlibs.libXrender xlibs.kbproto + + gnome.libart_lgpl gnome.libbonobo gnome.libbonoboui + gnome.libgnome gnome.libgnomecanvas gnome.libgnomeui + gnome.libIDL + + pango + + dbus dbus_glib + + alsaLib libpulseaudio + gstreamer gst_plugins_base + + gtk3 glib gobjectIntrospection + + ] ++ stdenv.lib.optionals stdenv.lib.inNixShell [ + valgrind gdb rr + ]; + + # Useful for debugging this Nix expression. + tracePhases = true; + + configurePhase = '' + export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild + export MOZ_CONFIG=$(pwd)/.mozconfig + export builddir=$(pwd)/builddir + + mkdir -p $MOZBUILD_STATE_PATH $builddir + echo > $MOZ_CONFIG " + . $src/build/mozconfig.common + + mk_add_options MOZ_OBJDIR=$builddir + mk_add_options AUTOCONF=${autoconf213}/bin/autoconf + ac_add_options --prefix=$out + ac_add_options --enable-application=browser + ac_add_options --enable-official-branding + export AUTOCONF=${autoconf213}/bin/autoconf + " + ''; + + AUTOCONF = "${autoconf213}/bin/autoconf"; + + buildPhase = '' + cd $builddir + $src/mach build + ''; + + installPhase = '' + cd $builddir + $src/mach install + ''; + + # TODO: are there tests we would like to run? or should we package them separately? + doCheck = false; + doInstallCheck = false; + + shellHook = '' + export MOZBUILD_STATE_PATH=$PWD/.mozbuild + ''; +} diff --git a/pkgs/servo.nix b/pkgs/servo.nix deleted file mode 100644 index 3000f4a12382..000000000000 --- a/pkgs/servo.nix +++ /dev/null @@ -1,97 +0,0 @@ -{ servoSrc -, stdenv -, curl -, dbus -, fontconfig -, freeglut -, freetype -, gperf -, libxmi -, llvm -, mesa -, mesa_glu -, openssl -, pkgconfig -, pythonPackages -, makeWrapper -, writeText -, rustPlatform -, xorg -}: - -let - - version = "latest"; - - # TODO: add possibility to test against wayland - xorgCompositorLibs = "${xorg.libXcursor.out}/lib:${xorg.libXi.out}/lib"; - - inherit (rustPlatform) buildRustPackage; - inherit (rustPlatform.rust) rustc cargo; - - servobuild = writeText "servobuild" '' - [tools] - cache-dir = "./downloads" - cargo-home-dir = "./.downloads/clones - system-rust = true - rust-root = "${rustc}/bin/rustc" - system-cargo = true - cargo-root = "${cargo}/bin/cargo" - [build] - ''; - - servoRust = buildRustPackage rec { - name = "servo-rust-${version}"; - src = servoSrc; - postUnpack = '' - pwd - ls -la - exit 100 - ''; - sourceRoot = "servo/components/servo"; - - depsSha256 = "0ca0lc8mm8kczll5m03n5fwsr0540c2xbfi4nn9ksn0s4sap50yn"; - - doCheck = false; - }; - -in stdenv.mkDerivation rec { - name = "servo-${version}"; - src = servoSrc; - - buildInputs = [ - #cmake - curl - dbus - fontconfig - freeglut - freetype - gperf - libxmi - llvm - mesa - mesa_glu - openssl - pkgconfig - pythonPackages.pip - pythonPackages.virtualenv - xorg.libX11 - xorg.libXmu - - # nix stuff - makeWrapper - servoRust - ]; - preConfigure = '' - ln -s ${servobuild} .servobuild - ''; - postInstall = '' - wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" - ''; - shellHook = '' - # Servo tries to switch between libX11 and wayland at runtime so we have - # to provide a path - export LD_LIBRARY_PATH=${xorgCompositorLibs}:$LD_LIBRARY_PATH - ''; - -} diff --git a/pkgs/servo/default.nix b/pkgs/servo/default.nix new file mode 100644 index 000000000000..1e93458b6ba9 --- /dev/null +++ b/pkgs/servo/default.nix @@ -0,0 +1,104 @@ +{ servoSrc ? null +, stdenv +, lib +, fetchFromGitHub +, curl +, dbus +, fontconfig +, freeglut +, freetype +, gperf +, libxmi +, llvm +, mesa +, mesa_glu +, openssl +, pkgconfig +, pythonPackages +, makeWrapper +, writeText +, rustPlatform +, xorg +}: + +let + src = + if servoSrc == null then + fetchFromGitHub (lib.importJSON ./repo.json) + else + servoSrc; + + version = "latest"; + + # TODO: add possibility to test against wayland + xorgCompositorLibs = "${xorg.libXcursor.out}/lib:${xorg.libXi.out}/lib"; + + inherit (rustPlatform) buildRustPackage; + inherit (rustPlatform.rust) rustc cargo; + + servobuild = writeText "servobuild" '' + [tools] + cache-dir = "./downloads" + cargo-home-dir = "./.downloads/clones + system-rust = true + rust-root = "${rustc}/bin/rustc" + system-cargo = true + cargo-root = "${cargo}/bin/cargo" + [build] + ''; + + servoRust = buildRustPackage rec { + inherit src; + name = "servo-rust-${version}"; + postUnpack = '' + pwd + ls -la + exit 100 + ''; + sourceRoot = "servo/components/servo"; + + depsSha256 = "0ca0lc8mm8kczll5m03n5fwsr0540c2xbfi4nn9ksn0s4sap50yn"; + + doCheck = false; + }; + +in stdenv.mkDerivation rec { + name = "servo-${version}"; + src = servoSrc; + + buildInputs = [ + #cmake + curl + dbus + fontconfig + freeglut + freetype + gperf + libxmi + llvm + mesa + mesa_glu + openssl + pkgconfig + pythonPackages.pip + pythonPackages.virtualenv + xorg.libX11 + xorg.libXmu + + # nix stuff + makeWrapper + servoRust + ]; + preConfigure = '' + ln -s ${servobuild} .servobuild + ''; + postInstall = '' + wrapProgram "$out/bin/servo" --prefix LD_LIBRARY_PATH : "${xorgCompositorLibs}" + ''; + shellHook = '' + # Servo tries to switch between libX11 and wayland at runtime so we have + # to provide a path + export LD_LIBRARY_PATH=${xorgCompositorLibs}:$LD_LIBRARY_PATH + ''; + +} diff --git a/pkgs/servo/repo.json b/pkgs/servo/repo.json new file mode 100644 index 000000000000..2561920d2036 --- /dev/null +++ b/pkgs/servo/repo.json @@ -0,0 +1,6 @@ +{ + "owner": "servo", + "repo": "servo", + "rev": "b577d66ec374811a6493e95b37829269bbc97dfa", + "sha256": "13jqfh7b87ss5yf9c4yl7cggawjm6w4hd8aq0q275adjzdmazz14" +} diff --git a/pkgs/servo/update-repo.sh b/pkgs/servo/update-repo.sh new file mode 100755 index 000000000000..680dbc6978ac --- /dev/null +++ b/pkgs/servo/update-repo.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd "$(dirname "$0")" || exit +../../update-repo.sh ./repo.json "$@" diff --git a/update-repo.sh b/update-repo.sh new file mode 100755 index 000000000000..66e759746704 --- /dev/null +++ b/update-repo.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# +# Updates the repo's SHA +# + +github_rev() { + curl -sSf "https://api.github.com/repos/$1/$2/branches/$3" | \ + jq '.commit.sha' | \ + sed 's/"//g' +} + +github_sha256() { + nix-prefetch-zip \ + --hash-type sha256 \ + "https://github.com/$1/$2/archive/$3.tar.gz" 2>&1 | \ + grep "hash is " | \ + sed 's/hash is //' +} + +file=$1 +branch=${2:-master} + +owner=$(jq -r -e .owner < "$file") +echo "owner: $owner" +repo=$(jq -r -e .repo < "$file") +echo "repo: $repo" +rev=$(github_rev "$owner" "$repo" "$branch"); +echo "rev: $rev" +sha256=$(github_sha256 "$owner" "$repo" "$rev"); + +cat < Date: Mon, 11 Jul 2016 10:07:23 +0000 Subject: Add missing gecko dependencies for the nix-shell. --- default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default.nix b/default.nix index 15bda247ca37..45801c0a1a3b 100644 --- a/default.nix +++ b/default.nix @@ -29,7 +29,7 @@ let dbus dbus_glib alsaLib libpulseaudio gstreamer gst_plugins_base gtk3 glib gobjectIntrospection - valgrind; + valgrind gdb rr; }; servo = import ./pkgs/servo { -- cgit 1.4.1 From 72c43676c09684617034e2d4a000cdffd30b3756 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Mon, 11 Jul 2016 11:29:34 +0000 Subject: Do not pull Gecko sources for making a build environment for Gecko. --- default.nix | 2 +- pkgs/gecko/default.nix | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/default.nix b/default.nix index 45801c0a1a3b..0d7d2eb92398 100644 --- a/default.nix +++ b/default.nix @@ -21,7 +21,7 @@ let gecko = import ./pkgs/gecko { inherit geckoSrc; inherit (pkgs) - stdenv + stdenv lib pythonFull which autoconf213 perl unzip zip gnumake yasm pkgconfig xlibs gnome diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 6fee236f0659..79ef9a3caaaa 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,5 +1,5 @@ { geckoSrc -, stdenv +, stdenv, lib , pythonFull, which, autoconf213 , perl, unzip, zip, gnumake, yasm, pkgconfig , xlibs, gnome @@ -12,8 +12,9 @@ stdenv.mkDerivation { name = "firefox"; - # TODO: we should maybe point to latest master? - src = geckoSrc; + # Gecko sources are huge, we do not want to import them in the nix-store when + # we use this expression for making a build environment. + src = if lib.inNixShell then null else geckoSrc; buildInputs = [ # Expected by "mach" -- cgit 1.4.1 From 3add1f3eebde030474e9f16a1c7770db1910db0f Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Mon, 11 Jul 2016 13:12:00 +0000 Subject: Change the stdenv's libc when building with the default version of clang provided in Nixpkgs. --- release.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.nix b/release.nix index 47c074c4a788..2d250944ca9d 100644 --- a/release.nix +++ b/release.nix @@ -85,7 +85,7 @@ let ); compilersByName = { - clang = clang; + clang = llvmPackages; clang36 = llvmPackages_36; clang37 = llvmPackages_37; clang38 = llvmPackages_38; # not working yet. -- cgit 1.4.1 From d554cf2934e6f0a48cb38da5356555f372146910 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Thu, 14 Jul 2016 22:44:40 +0200 Subject: common update mechanism (#4) * create a generat update path for every package * move update related code into to lib/ folder * adding nixpkgs.json and using nix-prefetch-zip * fixed from @zimbatm comments on #4 --- default.nix | 56 +++++++++++++++++++++++++++++++------------------ pkgs/gecko/default.nix | 27 ++++++++++++++++++++---- pkgs/gecko/source.json | 6 ++++++ pkgs/lib/default.nix | 7 +++++++ pkgs/lib/update.nix | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ pkgs/nixpkgs.json | 6 ++++++ pkgs/servo/default.nix | 11 ++++++++-- pkgs/servo/repo.json | 6 ------ pkgs/servo/source.json | 6 ++++++ update-repo.sh | 38 --------------------------------- update.nix | 25 ++++++++++++++++++++++ 11 files changed, 175 insertions(+), 70 deletions(-) create mode 100644 pkgs/gecko/source.json create mode 100644 pkgs/lib/default.nix create mode 100644 pkgs/lib/update.nix create mode 100644 pkgs/nixpkgs.json delete mode 100644 pkgs/servo/repo.json create mode 100644 pkgs/servo/source.json delete mode 100755 update-repo.sh create mode 100755 update.nix diff --git a/default.nix b/default.nix index 0d7d2eb92398..1b5a8e57ce43 100644 --- a/default.nix +++ b/default.nix @@ -1,26 +1,39 @@ -{ pkgs ? import {} - -, geckoSrc ? - pkgs.fetchFromGitHub { - owner = "mozilla"; - repo = "gecko-dev"; - rev = "bcd7fc0f642b97c9b0a2618750e1788547aa8322"; - sha256 = "1knrffx62i8zfg3jfhpn3hs5354sg44f8iq4c7hfvp4nsxsjskr4"; - } - +{ pkgs ? null +, geckoSrc ? null , servoSrc ? null }: let - rustPlatform = pkgs.recurseIntoAttrs (pkgs.makeRustPlatform pkgs.rustUnstable rustPlatform); + _pkgs = import {}; - self = { + _nixpkgs = if pkgs == null + then (import (_pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json)) {}) + else pkgs; + + pkgs_mozilla = { + + lib = import ./pkgs/lib/default.nix { inherit pkgs_mozilla; }; + + rustPlatform = pkgs_mozilla.nixpkgs.recurseIntoAttrs ( + pkgs_mozilla.nixpkgs.makeRustPlatform + pkgs_mozilla.nixpkgs.rustUnstable + pkgs_mozilla.rustPlatform + ); + + nixpkgs = _nixpkgs // { + updateSrc = pkgs_mozilla.lib.updateFromGitHub { + owner = "NixOS"; + repo = "nixpkgs-channels"; + branch = "nixos-unstable"; + path = "pkgs/nixpkgs.json"; + }; + }; - gecko = import ./pkgs/gecko { inherit geckoSrc; - inherit (pkgs) + inherit (pkgs_mozilla.lib) updateFromGitHub; + inherit (pkgs_mozilla.nixpkgs) stdenv lib pythonFull which autoconf213 perl unzip zip gnumake yasm pkgconfig @@ -29,23 +42,26 @@ let dbus dbus_glib alsaLib libpulseaudio gstreamer gst_plugins_base gtk3 glib gobjectIntrospection - valgrind gdb rr; + valgrind gdb rr + fetchFromGitHub; }; servo = import ./pkgs/servo { - pythonPackages = pkgs.python3Packages; - inherit servoSrc rustPlatform; - inherit (pkgs) stdenv lib fetchFromGitHub + pythonPackages = pkgs_mozilla.nixpkgs.python3Packages; + inherit servoSrc; + inherit (pkgs_mozilla) rustPlatform; + inherit (pkgs_mozilla.lib) updateFromGitHub; + inherit (pkgs_mozilla.nixpkgs) stdenv lib fetchFromGitHub curl dbus fontconfig freeglut freetype gperf libxmi llvm mesa mesa_glu openssl pkgconfig makeWrapper writeText xorg; }; VidyoDesktop = import ./pkgs/VidyoDesktop { - inherit (pkgs) stdenv fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib + inherit (pkgs_mozilla.nixpkgs) stdenv fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 zlib patchelf xorg; }; }; -in self +in pkgs_mozilla diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 79ef9a3caaaa..bb1818429988 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,4 +1,5 @@ -{ geckoSrc +{ geckoSrc ? null +, updateFromGitHub , stdenv, lib , pythonFull, which, autoconf213 , perl, unzip, zip, gnumake, yasm, pkgconfig @@ -8,13 +9,25 @@ , alsaLib, libpulseaudio, gstreamer, gst_plugins_base , gtk3, glib, gobjectIntrospection , valgrind, gdb, rr +, fetchFromGitHub }: -stdenv.mkDerivation { - name = "firefox"; +let + # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. - src = if lib.inNixShell then null else geckoSrc; + src = + if geckoSrc == null then + fetchFromGitHub (lib.importJSON ./source.json) + else + geckoSrc; + + # TODO: figure out version from geckoSrc + version = "latest"; + +in stdenv.mkDerivation { + name = "firefox-${version}"; + inherit src; buildInputs = [ # Expected by "mach" @@ -86,4 +99,10 @@ stdenv.mkDerivation { shellHook = '' export MOZBUILD_STATE_PATH=$PWD/.mozbuild ''; + passthru.updateSrc = updateFromGitHub { + owner = "mozilla"; + repo = "gecko-dev"; + branch = "master"; + path = "pkgs/gecko/source.json"; + }; } diff --git a/pkgs/gecko/source.json b/pkgs/gecko/source.json new file mode 100644 index 000000000000..cdd8dd1e985f --- /dev/null +++ b/pkgs/gecko/source.json @@ -0,0 +1,6 @@ +{ + "owner": "mozilla", + "repo": "gecko-dev", + "rev": "bfcc10319e4e3ce78367fa9bba9316f7eb5248b6", + "sha256": "038d6iqfx38mghfyyigdldfahj2kgkhz9v5y4dp3fbnrkm4xsdip" +} diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix new file mode 100644 index 000000000000..e6ce4b7bf96e --- /dev/null +++ b/pkgs/lib/default.nix @@ -0,0 +1,7 @@ +{ pkgs_mozilla }: + +let + update = import ./update.nix { inherit pkgs_mozilla; }; +in + { inherit update; } + // update diff --git a/pkgs/lib/update.nix b/pkgs/lib/update.nix new file mode 100644 index 000000000000..61b6cd570bd4 --- /dev/null +++ b/pkgs/lib/update.nix @@ -0,0 +1,57 @@ +{ pkgs_mozilla }: + +let + inherit (pkgs_mozilla.nixpkgs) cacert nix-prefetch-scripts jq; +in { + + packagesToUpdate = map + (pkg: pkg.updateSrc) + (builtins.filter + (pkg: builtins.hasAttr "updateSrc" pkg) + (builtins.attrValues pkgs_mozilla) + ); + + updateFromGitHub = { owner, repo, path, branch }: '' + export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt + + github_rev() { + curl -sSf "https://api.github.com/repos/$1/$2/branches/$3" | \ + ${jq}/bin/jq '.commit.sha' | \ + sed 's/"//g' + } + + github_sha256() { + ${nix-prefetch-scripts}/bin/nix-prefetch-zip \ + --hash-type sha256 \ + "https://github.com/$1/$2/archive/$3.tar.gz" 2>&1 | \ + grep "hash is " | \ + sed 's/hash is //' + } + + echo "=== ${owner}/${repo}@${branch} ===" + + echo -n "Looking up latest revision ... " + rev=$(github_rev "${owner}" "${repo}" "${branch}"); + echo "revision is \`$rev\`." + + sha256=$(github_sha256 "${owner}" "${repo}" "$rev"); + echo "sha256 is \`$sha256\`." + + if [ "$sha256" == "" ]; then + echo "sha256 is not valid!" + exit 2 + fi + source_file=$HOME/${path} + echo "Content of source file (``$source_file``) written." + cat <&1 | \ - grep "hash is " | \ - sed 's/hash is //' -} - -file=$1 -branch=${2:-master} - -owner=$(jq -r -e .owner < "$file") -echo "owner: $owner" -repo=$(jq -r -e .repo < "$file") -echo "repo: $repo" -rev=$(github_rev "$owner" "$repo" "$branch"); -echo "rev: $rev" -sha256=$(github_sha256 "$owner" "$repo" "$rev"); - -cat < Date: Fri, 15 Jul 2016 06:09:54 +0200 Subject: init travis.yml currently only updating the sources (not pushing anywhere) --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000000..90fbf6cc78cd --- /dev/null +++ b/.travis.yml @@ -0,0 +1,2 @@ +language: nix +script: nix-shell update.nix -- cgit 1.4.1 From 951defa1e6e5fa238f50d202535975d03394f116 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Fri, 15 Jul 2016 15:55:47 +0200 Subject: run only when build by travis cron and run nix-shell with --pure flag --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 90fbf6cc78cd..ba8b7dd01b47 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,2 +1,3 @@ language: nix -script: nix-shell update.nix +script: + - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then nix-shell update.nix --pure; fi -- cgit 1.4.1 From 22a7e9cbf38f694a5d3cbbdb99b1981fbe5f9030 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Sat, 16 Jul 2016 01:36:25 +0200 Subject: update.nix: with --pure flag on we need to take dependency from nixpkgs --- pkgs/lib/update.nix | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/lib/update.nix b/pkgs/lib/update.nix index 61b6cd570bd4..62d7b44cefe0 100644 --- a/pkgs/lib/update.nix +++ b/pkgs/lib/update.nix @@ -1,7 +1,8 @@ { pkgs_mozilla }: let - inherit (pkgs_mozilla.nixpkgs) cacert nix-prefetch-scripts jq; + inherit (pkgs_mozilla.nixpkgs) cacert nix-prefetch-scripts jq curl gnused + gnugrep coreutils; in { packagesToUpdate = map @@ -15,17 +16,17 @@ in { export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt github_rev() { - curl -sSf "https://api.github.com/repos/$1/$2/branches/$3" | \ + ${curl.bin}/bin/curl -sSf "https://api.github.com/repos/$1/$2/branches/$3" | \ ${jq}/bin/jq '.commit.sha' | \ - sed 's/"//g' + ${gnused}/bin/sed 's/"//g' } github_sha256() { ${nix-prefetch-scripts}/bin/nix-prefetch-zip \ --hash-type sha256 \ "https://github.com/$1/$2/archive/$3.tar.gz" 2>&1 | \ - grep "hash is " | \ - sed 's/hash is //' + ${gnugrep}/bin/grep "hash is " | \ + ${gnused}/bin/sed 's/hash is //' } echo "=== ${owner}/${repo}@${branch} ===" @@ -43,7 +44,7 @@ in { fi source_file=$HOME/${path} echo "Content of source file (``$source_file``) written." - cat < Date: Wed, 20 Jul 2016 01:44:30 +0200 Subject: create a travis build and set gecko build to be built --- .gitignore | 2 +- .travis.yml | 1 + pkgs/VidyoDesktop/default.nix | 4 ++-- pkgs/servo/source.json | 4 ++-- release.nix | 20 ++++++++++++++------ 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index c4a847d907ac..d6944e3ddc11 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/result +/result* diff --git a/.travis.yml b/.travis.yml index ba8b7dd01b47..8322ae04fda8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ language: nix script: - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then nix-shell update.nix --pure; fi + - if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build release.nix -A travis; fi diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 68721d78749b..8e2276325f45 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -5,7 +5,7 @@ let VidyoDesktopDeb = stdenv.mkDerivation { - name = "VidyoDesktopDeb"; + name = "VidyoDesktopDeb-123"; builder = ./builder.sh; inherit dpkg; src = fetchurl { @@ -16,7 +16,7 @@ let }; in buildFHSUserEnv { - name = "VidyoDesktop"; + name = "VidyoDesktop-123"; targetPkgs = pkgs: [ VidyoDesktopDeb ]; multiPkgs = pkgs: [ patchelf dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins diff --git a/pkgs/servo/source.json b/pkgs/servo/source.json index 2571a58f9aba..ea1f9c36b257 100644 --- a/pkgs/servo/source.json +++ b/pkgs/servo/source.json @@ -1,6 +1,6 @@ { "owner": "servo", "repo": "servo", - "rev": "4b78b9adab916cc4fdde6248e785030b79f406da", - "sha256": "1vcbp9bwln5y8kwmi4mssqzh4p655kxyi0y0mdvq559629ynn4ww" + "rev": "f2efc0011ab229718181175a2637bbc4ce70cd0c", + "sha256": "0cp1d5cmdb2alyvnd7ry9p6z1pvpc938n7ngbcphqm5dww8isrmm" } diff --git a/release.nix b/release.nix index 2d250944ca9d..9b80a2cdd1b2 100644 --- a/release.nix +++ b/release.nix @@ -124,12 +124,12 @@ let "gcc" "gcc49" "gcc48" - "gcc474" - "gcc473" - "gcc472" + #"gcc474" + #"gcc473" + #"gcc472" ]; - jobs = rec { + jobs = { # For each system, and each compiler, create an attribute with the name of # the system and compiler. Use this attribute name to select which @@ -151,7 +151,15 @@ let servo = build "servo"; VidyoDesktop = build "VidyoDesktop"; + travis = pkgs'.releaseTools.aggregate { + name = "nixpkgs-mozilla-release-123"; + meta.description = "Aggregate job containing the release-critical jobs."; + constituents = + builtins.attrValues jobs.gecko."x86_64-linux" + ; + + }; + }; -in - jobs +in jobs -- cgit 1.4.1 From c155b83ce04cf518d7e2bdaa689aebf74640b013 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Wed, 20 Jul 2016 01:49:27 +0200 Subject: for some reason sha256 is wrong --- pkgs/gecko/source.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/gecko/source.json b/pkgs/gecko/source.json index cdd8dd1e985f..936d71fb2d38 100644 --- a/pkgs/gecko/source.json +++ b/pkgs/gecko/source.json @@ -2,5 +2,5 @@ "owner": "mozilla", "repo": "gecko-dev", "rev": "bfcc10319e4e3ce78367fa9bba9316f7eb5248b6", - "sha256": "038d6iqfx38mghfyyigdldfahj2kgkhz9v5y4dp3fbnrkm4xsdip" + "sha256": "0h1ryjcp2h2bhnab1spm5609sffkpvczxnigxj8vxjmz7z24m755" } -- cgit 1.4.1 From 2c249828e8c94bb768ce7cb1e9ab0abb9c3600b0 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Wed, 20 Jul 2016 01:59:32 +0200 Subject: try with build matrix to see which compiler fails --- .travis.yml | 10 +++++++++- release.nix | 10 ---------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8322ae04fda8..ce676e1def43 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,12 @@ language: nix +env: + - STDENV=clang + - STDENV=clang36 + - STDENV=clang37 + - STDENV=clang38 + - STDENV=gcc + - STDENV=gcc49 + - STDENV=gcc48 script: - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then nix-shell update.nix --pure; fi - - if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build release.nix -A travis; fi + - if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build release.nix -A gecko."x86_64-linux"."$STDENV"; fi diff --git a/release.nix b/release.nix index 9b80a2cdd1b2..8cf8e7dc1eb2 100644 --- a/release.nix +++ b/release.nix @@ -150,16 +150,6 @@ let gecko = build "gecko" { compilers = geckoCompilers; }; servo = build "servo"; VidyoDesktop = build "VidyoDesktop"; - - travis = pkgs'.releaseTools.aggregate { - name = "nixpkgs-mozilla-release-123"; - meta.description = "Aggregate job containing the release-critical jobs."; - constituents = - builtins.attrValues jobs.gecko."x86_64-linux" - ; - - }; - }; in jobs -- cgit 1.4.1 From 6a2a5fbe7d3b0612835469757f325bcde9e98473 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 28 Jul 2016 12:34:50 +0000 Subject: Gecko: Add setuptools for running some mach commands. --- default.nix | 2 +- pkgs/gecko/default.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/default.nix b/default.nix index 1b5a8e57ce43..ac1d0f5ab495 100644 --- a/default.nix +++ b/default.nix @@ -35,7 +35,7 @@ let inherit (pkgs_mozilla.lib) updateFromGitHub; inherit (pkgs_mozilla.nixpkgs) stdenv lib - pythonFull which autoconf213 + pythonFull setuptools which autoconf213 perl unzip zip gnumake yasm pkgconfig xlibs gnome pango diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index bb1818429988..e119dc9989fb 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,7 +1,7 @@ { geckoSrc ? null , updateFromGitHub , stdenv, lib -, pythonFull, which, autoconf213 +, pythonFull, setuptools, which, autoconf213 , perl, unzip, zip, gnumake, yasm, pkgconfig , xlibs, gnome , pango @@ -31,7 +31,7 @@ in stdenv.mkDerivation { buildInputs = [ # Expected by "mach" - pythonFull which autoconf213 + pythonFull setuptools which autoconf213 # Expected by the configure script perl unzip zip gnumake yasm pkgconfig -- cgit 1.4.1 From 51c70737213ac9d264a70853224eba531e51caa6 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Sun, 7 Aug 2016 02:27:59 +0200 Subject: adding ssh key to travis --- .travis.yml | 27 ++++++++++++++++++--------- deploy_rsa.enc | Bin 0 -> 3248 bytes 2 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 deploy_rsa.enc diff --git a/.travis.yml b/.travis.yml index ce676e1def43..b874b6ec6e1a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,21 @@ language: nix +addons: + ssh_known_hosts: floki.garbas.si env: - - STDENV=clang - - STDENV=clang36 - - STDENV=clang37 - - STDENV=clang38 - - STDENV=gcc - - STDENV=gcc49 - - STDENV=gcc48 +- STDENV=clang +- STDENV=clang36 +- STDENV=clang37 +- STDENV=clang38 +- STDENV=gcc +- STDENV=gcc49 +- STDENV=gcc48 script: - - if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then nix-shell update.nix --pure; fi - - if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build release.nix -A gecko."x86_64-linux"."$STDENV"; fi +- if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then nix-shell update.nix --pure; fi +- if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build + release.nix -A gecko."x86_64-linux"."$STDENV"; fi +before_install: +- openssl aes-256-cbc -K $encrypted_be02022e0814_key -iv $encrypted_be02022e0814_iv -in deploy_rsa.enc -out deploy_rsa -d +before_deploy: +- eval "$(ssh-agent -s)" +- chmod 600 $TRAVIS_BUILD_DIR/deploy_rsa +- ssh-add $TRAVIS_BUILD_DIR/deploy_rsa diff --git a/deploy_rsa.enc b/deploy_rsa.enc new file mode 100644 index 000000000000..131e0dee5350 Binary files /dev/null and b/deploy_rsa.enc differ -- cgit 1.4.1 From b593381d75daf8a061e9238699f5e0eb6f4a6ad0 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Sun, 7 Aug 2016 02:37:24 +0200 Subject: trying to sync nars to server --- .travis.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b874b6ec6e1a..d468f4f0f417 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,12 +10,25 @@ env: - STDENV=gcc49 - STDENV=gcc48 script: -- if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then nix-shell update.nix --pure; fi -- if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build - release.nix -A gecko."x86_64-linux"."$STDENV"; fi +- if [ "$TRAVIS_EVENT_TYPE" == "cron" ]; then + nix-shell update.nix --pure; + fi +- if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then + nix-build release.nix -A gecko."x86_64-linux"."$STDENV"; + mkdir nars/ + nix-push --dest "$PWD/nars/" --force ./result + fi +- + before_install: - openssl aes-256-cbc -K $encrypted_be02022e0814_key -iv $encrypted_be02022e0814_iv -in deploy_rsa.enc -out deploy_rsa -d before_deploy: - eval "$(ssh-agent -s)" - chmod 600 $TRAVIS_BUILD_DIR/deploy_rsa - ssh-add $TRAVIS_BUILD_DIR/deploy_rsa +deploy: + provider: script + skip_cleanup: true + script: rsync -avh --ignore-existing $TRAVIS_BUILD_DIR/nars/ travis@floki.garbas.si:/var/travis/nixpkgs-mozilla/ + on: + branch: master -- cgit 1.4.1 From 2710ad08d3adf59779dfcf37fb675fb6847066f2 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Sun, 7 Aug 2016 02:47:31 +0200 Subject: typos in travis.yml --- .travis.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index d468f4f0f417..71953faad061 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,11 +15,9 @@ script: fi - if [ "$TRAVIS_PULL_REQUEST" != "true" -a "$TRAVIS_BRANCH" = "master" ]; then nix-build release.nix -A gecko."x86_64-linux"."$STDENV"; - mkdir nars/ - nix-push --dest "$PWD/nars/" --force ./result + mkdir nars/; + nix-push --dest "$PWD/nars/" --force ./result; fi -- - before_install: - openssl aes-256-cbc -K $encrypted_be02022e0814_key -iv $encrypted_be02022e0814_iv -in deploy_rsa.enc -out deploy_rsa -d before_deploy: -- cgit 1.4.1 From ba57f957fa8e988fc1f08d99a4c25989adc9d6dd Mon Sep 17 00:00:00 2001 From: Mike Cooper Date: Wed, 28 Sep 2016 09:49:03 -0700 Subject: gecko: update to account for changes in nixpkgs --- default.nix | 6 ++++-- pkgs/gecko/default.nix | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/default.nix b/default.nix index ac1d0f5ab495..44b1db130043 100644 --- a/default.nix +++ b/default.nix @@ -35,15 +35,17 @@ let inherit (pkgs_mozilla.lib) updateFromGitHub; inherit (pkgs_mozilla.nixpkgs) stdenv lib - pythonFull setuptools which autoconf213 + pythonFull which autoconf213 perl unzip zip gnumake yasm pkgconfig - xlibs gnome + xlibs gnome2 pango dbus dbus_glib alsaLib libpulseaudio gstreamer gst_plugins_base gtk3 glib gobjectIntrospection valgrind gdb rr fetchFromGitHub; + inherit (pkgs_mozilla.nixpkgs.pythonPackages) + setuptools; }; servo = import ./pkgs/servo { diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index e119dc9989fb..f00c0c3f8128 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -3,7 +3,7 @@ , stdenv, lib , pythonFull, setuptools, which, autoconf213 , perl, unzip, zip, gnumake, yasm, pkgconfig -, xlibs, gnome +, xlibs, gnome2 , pango , dbus, dbus_glib , alsaLib, libpulseaudio, gstreamer, gst_plugins_base @@ -42,9 +42,9 @@ in stdenv.mkDerivation { xlibs.compositeproto xlibs.libXfixes xlibs.fixesproto xlibs.damageproto xlibs.libXdamage xlibs.libXrender xlibs.kbproto - gnome.libart_lgpl gnome.libbonobo gnome.libbonoboui - gnome.libgnome gnome.libgnomecanvas gnome.libgnomeui - gnome.libIDL + gnome2.libart_lgpl gnome2.libbonobo gnome2.libbonoboui + gnome2.libgnome gnome2.libgnomecanvas gnome2.libgnomeui + gnome2.libIDL pango -- cgit 1.4.1 From b5855d8180558fbc6c8596a45ef6a453df27edd6 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Tue, 4 Oct 2016 01:23:16 +0200 Subject: no more long list of inheriting --- default.nix | 69 +++++++++++++------------------------------ pkgs/VidyoDesktop/default.nix | 12 +++++--- pkgs/gecko/default.nix | 28 +++++++++--------- pkgs/lib/default.nix | 4 +-- pkgs/lib/update.nix | 6 ++-- pkgs/servo/default.nix | 37 +++++++++-------------- 6 files changed, 62 insertions(+), 94 deletions(-) diff --git a/default.nix b/default.nix index 44b1db130043..39adaf48264a 100644 --- a/default.nix +++ b/default.nix @@ -1,28 +1,29 @@ -{ pkgs ? null +let + _pkgs = import {}; + _nixpkgs = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); +in + +{ pkgs ? import _nixpkgs {} , geckoSrc ? null , servoSrc ? null }: let + callPackage = (extra: pkgs.lib.callPackageWith + ({ inherit geckoSrc servoSrc; } // mozpkgs // extra)) {}; - _pkgs = import {}; - - _nixpkgs = if pkgs == null - then (import (_pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json)) {}) - else pkgs; - - pkgs_mozilla = { + mozpkgs = { - lib = import ./pkgs/lib/default.nix { inherit pkgs_mozilla; }; + lib = import ./pkgs/lib/default.nix { inherit mozpkgs; }; - rustPlatform = pkgs_mozilla.nixpkgs.recurseIntoAttrs ( - pkgs_mozilla.nixpkgs.makeRustPlatform - pkgs_mozilla.nixpkgs.rustUnstable - pkgs_mozilla.rustPlatform + rustPlatform = pkgs.recurseIntoAttrs ( + pkgs.makeRustPlatform + pkgs.rustUnstable + mozpkgs.rustPlatform ); - nixpkgs = _nixpkgs // { - updateSrc = pkgs_mozilla.lib.updateFromGitHub { + nixpkgs = pkgs // { + updateSrc = mozpkgs.lib.updateFromGitHub { owner = "NixOS"; repo = "nixpkgs-channels"; branch = "nixos-unstable"; @@ -30,40 +31,12 @@ let }; }; - gecko = import ./pkgs/gecko { - inherit geckoSrc; - inherit (pkgs_mozilla.lib) updateFromGitHub; - inherit (pkgs_mozilla.nixpkgs) - stdenv lib - pythonFull which autoconf213 - perl unzip zip gnumake yasm pkgconfig - xlibs gnome2 - pango - dbus dbus_glib - alsaLib libpulseaudio gstreamer gst_plugins_base - gtk3 glib gobjectIntrospection - valgrind gdb rr - fetchFromGitHub; - inherit (pkgs_mozilla.nixpkgs.pythonPackages) - setuptools; - }; - - servo = import ./pkgs/servo { - pythonPackages = pkgs_mozilla.nixpkgs.python3Packages; - inherit servoSrc; - inherit (pkgs_mozilla) rustPlatform; - inherit (pkgs_mozilla.lib) updateFromGitHub; - inherit (pkgs_mozilla.nixpkgs) stdenv lib fetchFromGitHub - curl dbus fontconfig freeglut freetype gperf libxmi llvm mesa - mesa_glu openssl pkgconfig makeWrapper writeText xorg; - }; + gecko = callPackage ./pkgs/gecko { }; + + servo = callPackage ./pkgs/servo { }; - VidyoDesktop = import ./pkgs/VidyoDesktop { - inherit (pkgs_mozilla.nixpkgs) stdenv fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib - alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 - zlib patchelf xorg; - }; + VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; }; -in pkgs_mozilla +in mozpkgs diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 8e2276325f45..dc262ca0b11f 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -1,10 +1,14 @@ -{ stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib, alsaUtils -, alsaOss, alsaTools, alsaPlugins, libidn, utillinux, mesa_glu, qt4, zlib -, patchelf, xorg +{ nixpkgs }: let - VidyoDesktopDeb = stdenv.mkDerivation { + + inherit (nixpkgs) fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib + alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 + zlib patchelf xorg; + inherit (nixpkgs.stdenv) mkDerivation; + + VidyoDesktopDeb = mkDerivation { name = "VidyoDesktopDeb-123"; builder = ./builder.sh; inherit dpkg; diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index f00c0c3f8128..da0bc22319e2 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,31 +1,31 @@ { geckoSrc ? null -, updateFromGitHub -, stdenv, lib -, pythonFull, setuptools, which, autoconf213 -, perl, unzip, zip, gnumake, yasm, pkgconfig -, xlibs, gnome2 -, pango -, dbus, dbus_glib -, alsaLib, libpulseaudio, gstreamer, gst_plugins_base -, gtk3, glib, gobjectIntrospection -, valgrind, gdb, rr -, fetchFromGitHub +, lib +, nixpkgs }: let + inherit (lib) updateFromGitHub; + inherit (nixpkgs) fetchFromGitHub pythonFull which autoconf213 + perl unzip zip gnumake yasm pkgconfig xlibs gnome2 pango dbus dbus_glib + alsaLib libpulseaudio gstreamer gst_plugins_base gtk3 glib + gobjectIntrospection valgrind gdb rr; + inherit (nixpkgs.pythonPackages) setuptools; + inherit (nixpkgs.stdenv) mkDerivation; + inherit (nixpkgs.lib) importJSON optionals inNixShell; + # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. src = if geckoSrc == null then - fetchFromGitHub (lib.importJSON ./source.json) + fetchFromGitHub (importJSON ./source.json) else geckoSrc; # TODO: figure out version from geckoSrc version = "latest"; -in stdenv.mkDerivation { +in mkDerivation { name = "firefox-${version}"; inherit src; buildInputs = [ @@ -55,7 +55,7 @@ in stdenv.mkDerivation { gtk3 glib gobjectIntrospection - ] ++ stdenv.lib.optionals stdenv.lib.inNixShell [ + ] ++ optionals inNixShell [ valgrind gdb rr ]; diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix index e6ce4b7bf96e..602d675c10d9 100644 --- a/pkgs/lib/default.nix +++ b/pkgs/lib/default.nix @@ -1,7 +1,7 @@ -{ pkgs_mozilla }: +{ mozpkgs }: let - update = import ./update.nix { inherit pkgs_mozilla; }; + update = import ./update.nix { inherit mozpkgs; }; in { inherit update; } // update diff --git a/pkgs/lib/update.nix b/pkgs/lib/update.nix index 62d7b44cefe0..1f6004159214 100644 --- a/pkgs/lib/update.nix +++ b/pkgs/lib/update.nix @@ -1,7 +1,7 @@ -{ pkgs_mozilla }: +{ mozpkgs }: let - inherit (pkgs_mozilla.nixpkgs) cacert nix-prefetch-scripts jq curl gnused + inherit (mozpkgs.nixpkgs) cacert nix-prefetch-scripts jq curl gnused gnugrep coreutils; in { @@ -9,7 +9,7 @@ in { (pkg: pkg.updateSrc) (builtins.filter (pkg: builtins.hasAttr "updateSrc" pkg) - (builtins.attrValues pkgs_mozilla) + (builtins.attrValues mozpkgs) ); updateFromGitHub = { owner, repo, path, branch }: '' diff --git a/pkgs/servo/default.nix b/pkgs/servo/default.nix index b6842af997b9..6798bdcb5317 100644 --- a/pkgs/servo/default.nix +++ b/pkgs/servo/default.nix @@ -1,28 +1,22 @@ { servoSrc ? null -, updateFromGitHub -, stdenv , lib -, fetchFromGitHub -, curl -, dbus -, fontconfig -, freeglut -, freetype -, gperf -, libxmi -, llvm -, mesa -, mesa_glu -, openssl -, pkgconfig -, pythonPackages -, makeWrapper -, writeText , rustPlatform -, xorg +, nixpkgs }: let + + inherit (lib) updateFromGitHub; + inherit (nixpkgs) fetchFromGitHub curl dbus fontconfig freeglut freetype + gperf libxmi llvm mesa mesa_glu openssl pkgconfig makeWrapper writeText + xorg; + inherit (nixpkgs.stdenv) mkDerivation; + inherit (nixpkgs.lib) importJSON; + inherit (rustPlatform) buildRustPackage; + inherit (rustPlatform.rust) rustc cargo; + + pythonPackages = nixpkgs.python3Packages; + src = if servoSrc == null then fetchFromGitHub (lib.importJSON ./source.json) @@ -35,9 +29,6 @@ let # TODO: add possibility to test against wayland xorgCompositorLibs = "${xorg.libXcursor.out}/lib:${xorg.libXi.out}/lib"; - inherit (rustPlatform) buildRustPackage; - inherit (rustPlatform.rust) rustc cargo; - servobuild = writeText "servobuild" '' [tools] cache-dir = "./downloads" @@ -64,7 +55,7 @@ let doCheck = false; }; -in stdenv.mkDerivation rec { +in mkDerivation rec { name = "servo-${version}"; src = servoSrc; -- cgit 1.4.1 From 352926952c8e34c1d10830e376308ef262793f1f Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sat, 22 Oct 2016 23:03:01 +0100 Subject: firefox-dev-bin: init at 51.0a2 (#9) This package has been removed from nixpkgs but I still find it handy to use. --- default.nix | 5 +++ pkgs/firefox-dev-bin/default.nix | 15 ++++++++ pkgs/firefox-dev-bin/dev_sources.nix | 12 +++++++ pkgs/firefox-dev-bin/generate_sources_dev.rb | 53 ++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+) create mode 100644 pkgs/firefox-dev-bin/default.nix create mode 100644 pkgs/firefox-dev-bin/dev_sources.nix create mode 100644 pkgs/firefox-dev-bin/generate_sources_dev.rb diff --git a/default.nix b/default.nix index 39adaf48264a..b093cf3aa5c5 100644 --- a/default.nix +++ b/default.nix @@ -34,6 +34,11 @@ let gecko = callPackage ./pkgs/gecko { }; servo = callPackage ./pkgs/servo { }; + + firefox-dev-bin = import ./pkgs/firefox-dev-bin rec { + inherit pkgs; + inherit (pkgs) callPackage; + }; VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; diff --git a/pkgs/firefox-dev-bin/default.nix b/pkgs/firefox-dev-bin/default.nix new file mode 100644 index 000000000000..5a807ad1e87e --- /dev/null +++ b/pkgs/firefox-dev-bin/default.nix @@ -0,0 +1,15 @@ +{ pkgs, callPackage }: +let + ff = callPackage { + generated = import ./dev_sources.nix; + gconf = pkgs.gnome2.GConf; + inherit (pkgs.gnome2) libgnome libgnomeui; + inherit (pkgs.gnome3) defaultIconTheme; + }; +in + pkgs.wrapFirefox ff { + browserName = "firefox"; + name = "firefox-developer-bin-" + + (builtins.parseDrvName ff.name).version; + desktopName = "Firefox Developer Edition"; + } diff --git a/pkgs/firefox-dev-bin/dev_sources.nix b/pkgs/firefox-dev-bin/dev_sources.nix new file mode 100644 index 000000000000..8fa9f7562879 --- /dev/null +++ b/pkgs/firefox-dev-bin/dev_sources.nix @@ -0,0 +1,12 @@ +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix + +{ + version = "51.0a2"; + sources = [ + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "19c8cfcdc4aae293f577a885ecf500820bc1f8f4e3a1aed705266ac0127079ecc1f6331601ba2d7ac374dbb6498f53d10569eeab6bd676320e5d99a494cb47ad"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "4b58d73a692d24d31f30241083cd0842af7f54dc642a6b4c056782ec83565454d3337c514d60d1291f0ab51b331e5089122d967a06da17fdb186229dfa12f579"; } + ]; +} diff --git a/pkgs/firefox-dev-bin/generate_sources_dev.rb b/pkgs/firefox-dev-bin/generate_sources_dev.rb new file mode 100644 index 000000000000..e26c52c11b06 --- /dev/null +++ b/pkgs/firefox-dev-bin/generate_sources_dev.rb @@ -0,0 +1,53 @@ +#!/usr/bin/env ruby +require "open-uri" + +version = + if ARGV.empty? + $stderr.puts("Usage: ruby generate_sources_dev.rb > dev_sources.nix") + exit(-1) + else + ARGV[0] + end + +base_url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora" + +arches = ["linux-i686", "linux-x86_64"] +locales = ["en-US"] +sources = [] + +Source = Struct.new(:hash, :arch, :locale, :filename) + +locales.each do |locale| + arches.each do |arch| + basename = "firefox-#{version}.#{locale}.#{arch}" + filename = basename + ".tar.bz2" + sha512 = open("#{base_url}/#{basename}.checksums").each_line + .find(filename).first + .split(" ").first + sources << Source.new(sha512, arch, locale, filename) + end +end + +sources = sources.sort_by do |source| + [source.locale, source.arch] +end + +puts(<<"EOH") +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix + +{ + version = "#{version}"; + sources = [ +EOH + +sources.each do |source| + puts(%Q| { url = "#{base_url}/#{source.filename}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) +end + +puts(<<'EOF') + ]; +} +EOF -- cgit 1.4.1 From bc72c335df238fbff73f25956e87211b214d4e9c Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sat, 5 Nov 2016 15:42:04 +0000 Subject: README: list firefox-dev-bin --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index 648e328ed085..b54a0f63d3b6 100644 --- a/README.rst +++ b/README.rst @@ -9,6 +9,7 @@ Current packages - servo (https://github.com/servo/servo) - gecko (https://github.com/mozilla/gecko-dev) +- firefox-dev-bin (`Firefox Developer Edition `) - VidyoDesktop () -- cgit 1.4.1 From aa0827a7602c332bc7756c4141ab5ce638e7e84b Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sat, 5 Nov 2016 16:15:19 +0000 Subject: firefox-dev-bin: use stable source Change the generation script to discover and pin the date and version of the release. --- pkgs/firefox-dev-bin/dev_sources.nix | 6 ++--- pkgs/firefox-dev-bin/generate_sources_dev.rb | 35 +++++++++++++++++----------- 2 files changed, 24 insertions(+), 17 deletions(-) mode change 100644 => 100755 pkgs/firefox-dev-bin/generate_sources_dev.rb diff --git a/pkgs/firefox-dev-bin/dev_sources.nix b/pkgs/firefox-dev-bin/dev_sources.nix index 8fa9f7562879..2ae87d80c048 100644 --- a/pkgs/firefox-dev-bin/dev_sources.nix +++ b/pkgs/firefox-dev-bin/dev_sources.nix @@ -1,12 +1,12 @@ # This file is generated from generate_sources_dev.rb. DO NOT EDIT. # Execute the following command to update the file. # -# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix +# ruby generate_sources_dev.rb > dev_sources.nix { version = "51.0a2"; sources = [ - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "19c8cfcdc4aae293f577a885ecf500820bc1f8f4e3a1aed705266ac0127079ecc1f6331601ba2d7ac374dbb6498f53d10569eeab6bd676320e5d99a494cb47ad"; } - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "4b58d73a692d24d31f30241083cd0842af7f54dc642a6b4c056782ec83565454d3337c514d60d1291f0ab51b331e5089122d967a06da17fdb186229dfa12f579"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-05-00-40-17-mozilla-aurora/firefox-51.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "2a0a094c673455c562100bda7ea288463570907a7443316849785607a16bbd2658ef9fdc438f44eeceb9cc24157aa76ca7900c7fe6d4143a7c18bd8ccc2a6b1e"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-05-00-40-17-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "66084233f082a11189be080b37cacf7431c36d9fba6d1d8229fb74ad205061d533c8543db7c668e6f630270f7865d46edc023aac29a30cc1a9e0e84a9aaf2bdd"; } ]; } diff --git a/pkgs/firefox-dev-bin/generate_sources_dev.rb b/pkgs/firefox-dev-bin/generate_sources_dev.rb old mode 100644 new mode 100755 index e26c52c11b06..9884e2657255 --- a/pkgs/firefox-dev-bin/generate_sources_dev.rb +++ b/pkgs/firefox-dev-bin/generate_sources_dev.rb @@ -1,27 +1,34 @@ #!/usr/bin/env ruby require "open-uri" -version = - if ARGV.empty? - $stderr.puts("Usage: ruby generate_sources_dev.rb > dev_sources.nix") - exit(-1) - else - ARGV[0] - end - -base_url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora" +Source = Struct.new(:hash, :arch, :locale, :filename) +base_uri = URI.parse("http://download-installer.cdn.mozilla.net/pub/firefox/nightly/") arches = ["linux-i686", "linux-x86_64"] locales = ["en-US"] -sources = [] -Source = Struct.new(:hash, :arch, :locale, :filename) +# Find latest release +year_uri = base_uri.merge( + open(base_uri).read.scan(/#{base_uri.path}\d{4}\//).last +) +month_uri = year_uri.merge( + open(year_uri).read.scan(/#{year_uri.path}\d{2}\//).last +) +day_uri = month_uri.merge( + open(month_uri).read.scan(/#{month_uri.path}[^\/]+aurora\//).last +) +base_url = day_uri + +version = open(base_url).read.match("/firefox-([^-]+).#{locales.first}")[1] + +sources = [] locales.each do |locale| arches.each do |arch| basename = "firefox-#{version}.#{locale}.#{arch}" filename = basename + ".tar.bz2" - sha512 = open("#{base_url}/#{basename}.checksums").each_line + url = base_url.merge("#{basename}.checksums") + sha512 = open(url).each_line .find(filename).first .split(" ").first sources << Source.new(sha512, arch, locale, filename) @@ -36,7 +43,7 @@ puts(<<"EOH") # This file is generated from generate_sources_dev.rb. DO NOT EDIT. # Execute the following command to update the file. # -# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix +# ruby generate_sources_dev.rb > dev_sources.nix { version = "#{version}"; @@ -44,7 +51,7 @@ puts(<<"EOH") EOH sources.each do |source| - puts(%Q| { url = "#{base_url}/#{source.filename}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) + puts(%Q| { url = "#{base_url.merge(source.filename)}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) end puts(<<'EOF') -- cgit 1.4.1 From 9db12443f5fe1b58af1c93cf1fb90dd609f20d46 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sat, 5 Nov 2016 16:16:11 +0000 Subject: servo: fixes missing importJSON --- pkgs/servo/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/servo/default.nix b/pkgs/servo/default.nix index 6798bdcb5317..c7cfb6275c2b 100644 --- a/pkgs/servo/default.nix +++ b/pkgs/servo/default.nix @@ -19,7 +19,7 @@ let src = if servoSrc == null then - fetchFromGitHub (lib.importJSON ./source.json) + fetchFromGitHub (importJSON ./source.json) else servoSrc; -- cgit 1.4.1 From 822614a703701dde0babb42558fa1439a6fe49f4 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sat, 5 Nov 2016 16:48:28 +0000 Subject: nixpkgs: use the stable 16.09 release I think it's better to base our work on a stable branch to avoid unecessary breakage and rebuilds due to updates. --- default.nix | 10 +++++++++- pkgs/nixpkgs.json | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/default.nix b/default.nix index b093cf3aa5c5..a3dae62b0c8b 100644 --- a/default.nix +++ b/default.nix @@ -1,3 +1,11 @@ +# This script extends nixpkgs with mozilla packages. +# +# First it imports the in the environment and depends on it +# providing fetchFromGitHub and lib.importJSON. +# +# After that it loads a pinned release of nixos-16.09 and uses that as the +# base for the rest of packaging. One can pass it's own pkgs attribute if +# desired, probably in the context of hydra. let _pkgs = import {}; _nixpkgs = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); @@ -26,7 +34,7 @@ let updateSrc = mozpkgs.lib.updateFromGitHub { owner = "NixOS"; repo = "nixpkgs-channels"; - branch = "nixos-unstable"; + branch = "nixos-16.09"; path = "pkgs/nixpkgs.json"; }; }; diff --git a/pkgs/nixpkgs.json b/pkgs/nixpkgs.json index e790c06ee7be..046fbecf4b37 100644 --- a/pkgs/nixpkgs.json +++ b/pkgs/nixpkgs.json @@ -1,6 +1,6 @@ { "owner": "NixOS", "repo": "nixpkgs-channels", - "rev": "125ffff089b6bd360c82cf986d8cc9b17fc2e8ac", - "sha256": "0gkilp2skxia7akpl22733faaj45jrx4qpcxd184mikx0wsy79s3" + "rev": "80cbb8acf17cd128e834d4a11f8270b9a5197166", + "sha256": "0phbszg02rrr1d34966piljd9i5di22g89q1dvmm4w1gajjrimqp" } -- cgit 1.4.1 From 3ec2e2117678a7c6c20343a0a5eb54ff41641a66 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sat, 5 Nov 2016 16:48:54 +0000 Subject: firefox-dev-bin: fixes package import It was loading the firefox-bin code from the in the user's environment. Ideally we could just extend nixpkgs instead. --- default.nix | 3 +-- pkgs/firefox-dev-bin/default.nix | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/default.nix b/default.nix index a3dae62b0c8b..ffa5ce118409 100644 --- a/default.nix +++ b/default.nix @@ -43,9 +43,8 @@ let servo = callPackage ./pkgs/servo { }; - firefox-dev-bin = import ./pkgs/firefox-dev-bin rec { + firefox-dev-bin = callPackage ./pkgs/firefox-dev-bin { inherit pkgs; - inherit (pkgs) callPackage; }; VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; diff --git a/pkgs/firefox-dev-bin/default.nix b/pkgs/firefox-dev-bin/default.nix index 5a807ad1e87e..fe66ee4b4d3c 100644 --- a/pkgs/firefox-dev-bin/default.nix +++ b/pkgs/firefox-dev-bin/default.nix @@ -1,6 +1,7 @@ -{ pkgs, callPackage }: +{ pkgs }: let - ff = callPackage { + ff = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { + inherit (pkgs) stdenv; generated = import ./dev_sources.nix; gconf = pkgs.gnome2.GConf; inherit (pkgs.gnome2) libgnome libgnomeui; -- cgit 1.4.1 From bf8ed36c66c344d5deb201c2ab16b961b546332e Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sun, 20 Nov 2016 13:21:21 +0000 Subject: firefox-dev-bin: 51 -> 52 --- pkgs/firefox-dev-bin/dev_sources.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/firefox-dev-bin/dev_sources.nix b/pkgs/firefox-dev-bin/dev_sources.nix index 2ae87d80c048..d1e3e661597d 100644 --- a/pkgs/firefox-dev-bin/dev_sources.nix +++ b/pkgs/firefox-dev-bin/dev_sources.nix @@ -4,9 +4,9 @@ # ruby generate_sources_dev.rb > dev_sources.nix { - version = "51.0a2"; + version = "52.0a2"; sources = [ - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-05-00-40-17-mozilla-aurora/firefox-51.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "2a0a094c673455c562100bda7ea288463570907a7443316849785607a16bbd2658ef9fdc438f44eeceb9cc24157aa76ca7900c7fe6d4143a7c18bd8ccc2a6b1e"; } - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-05-00-40-17-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "66084233f082a11189be080b37cacf7431c36d9fba6d1d8229fb74ad205061d533c8543db7c668e6f630270f7865d46edc023aac29a30cc1a9e0e84a9aaf2bdd"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-20-00-40-06-mozilla-aurora/firefox-52.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "e20d4b07c9cb7e68f81e207dfd25f29688d7b9935cadcf200b14686efba52e83d6ddc72c9eca070262fb38d1d3e89e9d3d54751af04d897a1b8a770926c3f648"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-20-00-40-06-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "2ee248232a098c980a4dc50d5a7362360661b945fc559d0ca60f64655aded36f6903bb1fffa50cdc2a8167d8f8e8fc10ec541e1968ddac716b5068a72542f5c3"; } ]; } -- cgit 1.4.1 From ba89dcbd9ec67055be3c328a4e71349bc20e78ea Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 25 Nov 2016 10:24:42 +0000 Subject: Do not fill up the /nix/store with useless clone of Gecko. --- pkgs/gecko/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index da0bc22319e2..cb7962b91824 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -17,7 +17,9 @@ let # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. src = - if geckoSrc == null then + if inNixShell then + null + else if geckoSrc == null then fetchFromGitHub (importJSON ./source.json) else geckoSrc; -- cgit 1.4.1 From e9903d7303d6422c5c1e1f9f3c61d3c96a6c0d09 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 25 Nov 2016 10:25:36 +0000 Subject: Add rustc and cargo as dependencies for building Gecko. --- pkgs/gecko/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index cb7962b91824..b75af6205637 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,5 +1,6 @@ { geckoSrc ? null , lib +, rustPlatform , nixpkgs }: @@ -13,6 +14,7 @@ let inherit (nixpkgs.pythonPackages) setuptools; inherit (nixpkgs.stdenv) mkDerivation; inherit (nixpkgs.lib) importJSON optionals inNixShell; + inherit (rustPlatform.rust) rustc cargo; # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. @@ -57,6 +59,8 @@ in mkDerivation { gtk3 glib gobjectIntrospection + rustc cargo + ] ++ optionals inNixShell [ valgrind gdb rr ]; -- cgit 1.4.1 From 67f9c33c6e4a9997cda623b270dda4a40ed3e77c Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 25 Nov 2016 10:27:14 +0000 Subject: Add 'mach vendor rust' dependencies. --- pkgs/gecko/default.nix | 9 ++++++++- pkgs/nixpkgs.json | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index b75af6205637..274019ddb909 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -10,7 +10,8 @@ let inherit (nixpkgs) fetchFromGitHub pythonFull which autoconf213 perl unzip zip gnumake yasm pkgconfig xlibs gnome2 pango dbus dbus_glib alsaLib libpulseaudio gstreamer gst_plugins_base gtk3 glib - gobjectIntrospection valgrind gdb rr; + gobjectIntrospection git mercurial openssl cmake; + inherit (nixpkgs) valgrind gdb rr; inherit (nixpkgs.pythonPackages) setuptools; inherit (nixpkgs.stdenv) mkDerivation; inherit (nixpkgs.lib) importJSON optionals inNixShell; @@ -61,6 +62,12 @@ in mkDerivation { rustc cargo + # "mach vendor rust" wants to list modified files by using the vcs. + git mercurial + + # needed for compiling cargo-vendor and its dependencies + openssl cmake + ] ++ optionals inNixShell [ valgrind gdb rr ]; diff --git a/pkgs/nixpkgs.json b/pkgs/nixpkgs.json index 046fbecf4b37..e790c06ee7be 100644 --- a/pkgs/nixpkgs.json +++ b/pkgs/nixpkgs.json @@ -1,6 +1,6 @@ { "owner": "NixOS", "repo": "nixpkgs-channels", - "rev": "80cbb8acf17cd128e834d4a11f8270b9a5197166", - "sha256": "0phbszg02rrr1d34966piljd9i5di22g89q1dvmm4w1gajjrimqp" + "rev": "125ffff089b6bd360c82cf986d8cc9b17fc2e8ac", + "sha256": "0gkilp2skxia7akpl22733faaj45jrx4qpcxd184mikx0wsy79s3" } -- cgit 1.4.1 From cbf952ad0779aa5c52ae7b264c0e88bcdab33a8f Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 25 Nov 2016 15:10:26 +0000 Subject: Use the latest Nixpkgs channel for compiling Gecko with rust. --- default.nix | 10 +++------- pkgs/gecko/default.nix | 3 +-- pkgs/nixpkgs.json | 4 ++-- release.nix | 15 ++++++++------- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/default.nix b/default.nix index ffa5ce118409..816265e98bcb 100644 --- a/default.nix +++ b/default.nix @@ -3,7 +3,7 @@ # First it imports the in the environment and depends on it # providing fetchFromGitHub and lib.importJSON. # -# After that it loads a pinned release of nixos-16.09 and uses that as the +# After that it loads a pinned release of nixos-unstable and uses that as the # base for the rest of packaging. One can pass it's own pkgs attribute if # desired, probably in the context of hydra. let @@ -24,17 +24,13 @@ let lib = import ./pkgs/lib/default.nix { inherit mozpkgs; }; - rustPlatform = pkgs.recurseIntoAttrs ( - pkgs.makeRustPlatform - pkgs.rustUnstable - mozpkgs.rustPlatform - ); + rustPlatform = pkgs.rustUnstable; nixpkgs = pkgs // { updateSrc = mozpkgs.lib.updateFromGitHub { owner = "NixOS"; repo = "nixpkgs-channels"; - branch = "nixos-16.09"; + branch = "nixos-unstable"; path = "pkgs/nixpkgs.json"; }; }; diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 274019ddb909..2fffda6ae808 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,6 +1,5 @@ { geckoSrc ? null , lib -, rustPlatform , nixpkgs }: @@ -15,7 +14,7 @@ let inherit (nixpkgs.pythonPackages) setuptools; inherit (nixpkgs.stdenv) mkDerivation; inherit (nixpkgs.lib) importJSON optionals inNixShell; - inherit (rustPlatform.rust) rustc cargo; + inherit (nixpkgs.rust) rustc cargo; # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. diff --git a/pkgs/nixpkgs.json b/pkgs/nixpkgs.json index e790c06ee7be..c6ec1c6e860c 100644 --- a/pkgs/nixpkgs.json +++ b/pkgs/nixpkgs.json @@ -1,6 +1,6 @@ { "owner": "NixOS", "repo": "nixpkgs-channels", - "rev": "125ffff089b6bd360c82cf986d8cc9b17fc2e8ac", - "sha256": "0gkilp2skxia7akpl22733faaj45jrx4qpcxd184mikx0wsy79s3" + "rev": "b69f568f4c3ebaf48a7f66b0f051d28157a61afb", + "sha256": "0dbbm4a8s5g6cnihqcm28x6riyqcxj461wq556ffvabsp3gxy78n" } diff --git a/release.nix b/release.nix index 8cf8e7dc1eb2..5b6e3029ef64 100644 --- a/release.nix +++ b/release.nix @@ -1,17 +1,18 @@ -{ nixpkgsSrc ? +let + _pkgs = import {}; + _nixpkgs = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); +in + +{ nixpkgsSrc ? _nixpkgs , supportedSystems ? [ "x86_64-linux" "i686-linux" /* "x86_64-darwin" */ ] }: let - - # import current system nixpkgs's - pkgs' = import nixpkgsSrc {}; - # Make an attribute set for each system, the builder is then specialized to # use the selected system. forEachSystem = systems: builder: - pkgs'.lib.genAttrs systems (system: - builder (import nixpkgsSrc { inherit system; }) + _pkgs.lib.genAttrs systems (system: + builder (import _nixpkgs { inherit system; }) ); # Make an attribute set for each compiler, the builder is then be specialized -- cgit 1.4.1 From dd224792b082b9146fdf2d1ea0feb16c247e499c Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Sat, 26 Nov 2016 16:53:32 +0100 Subject: new package firefox-nightly-bin also renaming internally mozpkgs to nixpkgs-mozilla --- default.nix | 15 ++++--- pkgs/firefox-bin/dev.nix | 24 +++++++++++ pkgs/firefox-bin/dev_sources.nix | 12 ++++++ pkgs/firefox-bin/generate_sources_dev.rb | 60 ++++++++++++++++++++++++++++ pkgs/firefox-bin/generate_sources_nightly.rb | 60 ++++++++++++++++++++++++++++ pkgs/firefox-bin/nightly.nix | 24 +++++++++++ pkgs/firefox-bin/nightly_sources.nix | 12 ++++++ pkgs/firefox-dev-bin/default.nix | 16 -------- pkgs/firefox-dev-bin/dev_sources.nix | 12 ------ pkgs/firefox-dev-bin/generate_sources_dev.rb | 60 ---------------------------- pkgs/lib/default.nix | 4 +- pkgs/lib/update.nix | 6 +-- update.nix | 17 +++++--- 13 files changed, 215 insertions(+), 107 deletions(-) create mode 100644 pkgs/firefox-bin/dev.nix create mode 100644 pkgs/firefox-bin/dev_sources.nix create mode 100755 pkgs/firefox-bin/generate_sources_dev.rb create mode 100755 pkgs/firefox-bin/generate_sources_nightly.rb create mode 100644 pkgs/firefox-bin/nightly.nix create mode 100644 pkgs/firefox-bin/nightly_sources.nix delete mode 100644 pkgs/firefox-dev-bin/default.nix delete mode 100644 pkgs/firefox-dev-bin/dev_sources.nix delete mode 100755 pkgs/firefox-dev-bin/generate_sources_dev.rb diff --git a/default.nix b/default.nix index 816265e98bcb..d53d3d7b97b9 100644 --- a/default.nix +++ b/default.nix @@ -18,16 +18,16 @@ in let callPackage = (extra: pkgs.lib.callPackageWith - ({ inherit geckoSrc servoSrc; } // mozpkgs // extra)) {}; + ({ inherit geckoSrc servoSrc; } // nixpkgs-mozilla // extra)) {}; - mozpkgs = { + nixpkgs-mozilla = { - lib = import ./pkgs/lib/default.nix { inherit mozpkgs; }; + lib = import ./pkgs/lib/default.nix { inherit nixpkgs-mozilla; }; rustPlatform = pkgs.rustUnstable; nixpkgs = pkgs // { - updateSrc = mozpkgs.lib.updateFromGitHub { + updateSrc = nixpkgs-mozilla.lib.updateFromGitHub { owner = "NixOS"; repo = "nixpkgs-channels"; branch = "nixos-unstable"; @@ -39,12 +39,11 @@ let servo = callPackage ./pkgs/servo { }; - firefox-dev-bin = callPackage ./pkgs/firefox-dev-bin { - inherit pkgs; - }; + firefox-dev-bin = callPackage ./pkgs/firefox-bin/dev.nix { inherit pkgs; }; + firefox-nightly-bin = callPackage ./pkgs/firefox-bin/nightly.nix { inherit pkgs; }; VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; }; -in mozpkgs +in nixpkgs-mozilla diff --git a/pkgs/firefox-bin/dev.nix b/pkgs/firefox-bin/dev.nix new file mode 100644 index 000000000000..3af4d8b6332e --- /dev/null +++ b/pkgs/firefox-bin/dev.nix @@ -0,0 +1,24 @@ +{ pkgs }: + +let + + ff = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { + inherit (pkgs) stdenv; + generated = import ./dev_sources.nix; + gconf = pkgs.gnome2.GConf; + inherit (pkgs.gnome2) libgnome libgnomeui; + inherit (pkgs.gnome3) defaultIconTheme; + }; + + self = pkgs.wrapFirefox ff { + browserName = "firefox"; + name = "firefox-developer-bin-" + + (builtins.parseDrvName ff.name).version; + desktopName = "Firefox Developer Edition"; + }; + +in self // { + updateSrc = pkgs.writeScript "update-firefox-developer-bin" '' + ${pkgs.ruby}/bin/ruby ${./generate_sources_dev.rb} > pkgs/firefox-bin/dev_sources.nix + ''; +} diff --git a/pkgs/firefox-bin/dev_sources.nix b/pkgs/firefox-bin/dev_sources.nix new file mode 100644 index 000000000000..23a5efacf420 --- /dev/null +++ b/pkgs/firefox-bin/dev_sources.nix @@ -0,0 +1,12 @@ +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb > dev_sources.nix + +{ + version = "52.0a2"; + sources = [ + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-00-40-05-mozilla-aurora/firefox-52.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "620fa7ad8b65f120d063206143936b31993510f94fd6d0a54a613b4884106a51d53c405f15809dff77d93161ca7b885f428d4a803dd8ab8d36952f238f6c6938"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-00-40-05-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "06699dbca849e5a345fdda8121076c6e0272e28c832c120158d606ed71f53f206872c867577f4c05e67aa4e97dfb15b2f0f427a4edc7895e8ad3e9b7e1883c4e"; } + ]; +} diff --git a/pkgs/firefox-bin/generate_sources_dev.rb b/pkgs/firefox-bin/generate_sources_dev.rb new file mode 100755 index 000000000000..2a394dda3ec6 --- /dev/null +++ b/pkgs/firefox-bin/generate_sources_dev.rb @@ -0,0 +1,60 @@ +#!/usr/bin/env ruby +require "open-uri" + +Source = Struct.new(:hash, :arch, :locale, :filename) + +base_uri = URI.parse("http://download-installer.cdn.mozilla.net/pub/firefox/nightly/") +arches = ["linux-i686", "linux-x86_64"] +locales = ["en-US"] + +# Find latest release +year_uri = base_uri.merge( + open(base_uri).read.scan(/#{base_uri.path}\d{4}\//).last +) +month_uri = year_uri.merge( + open(year_uri).read.scan(/#{year_uri.path}\d{2}\//).last +) +day_uri = month_uri.merge( + open(month_uri).read.scan(/#{month_uri.path}[^\/]+mozilla-aurora\//).last +) +base_url = day_uri + +version = open(base_url).read.match("/firefox-([^-]+).#{locales.first}")[1] + +sources = [] + +locales.each do |locale| + arches.each do |arch| + basename = "firefox-#{version}.#{locale}.#{arch}" + filename = basename + ".tar.bz2" + url = base_url.merge("#{basename}.checksums") + sha512 = open(url).each_line + .find(filename).first + .split(" ").first + sources << Source.new(sha512, arch, locale, filename) + end +end + +sources = sources.sort_by do |source| + [source.locale, source.arch] +end + +puts(<<"EOH") +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb > dev_sources.nix + +{ + version = "#{version}"; + sources = [ +EOH + +sources.each do |source| + puts(%Q| { url = "#{base_url.merge(source.filename)}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) +end + +puts(<<'EOF') + ]; +} +EOF diff --git a/pkgs/firefox-bin/generate_sources_nightly.rb b/pkgs/firefox-bin/generate_sources_nightly.rb new file mode 100755 index 000000000000..33e2c173c149 --- /dev/null +++ b/pkgs/firefox-bin/generate_sources_nightly.rb @@ -0,0 +1,60 @@ +#!/usr/bin/env ruby +require "open-uri" + +Source = Struct.new(:hash, :arch, :locale, :filename) + +base_uri = URI.parse("http://download-installer.cdn.mozilla.net/pub/firefox/nightly/") +arches = ["linux-i686", "linux-x86_64"] +locales = ["en-US"] + +# Find latest release +year_uri = base_uri.merge( + open(base_uri).read.scan(/#{base_uri.path}\d{4}\//).last +) +month_uri = year_uri.merge( + open(year_uri).read.scan(/#{year_uri.path}\d{2}\//).last +) +day_uri = month_uri.merge( + open(month_uri).read.scan(/#{month_uri.path}[^\/]+mozilla-central\//).last +) +base_url = day_uri + +version = open(base_url).read.match("/firefox-([^-]+).#{locales.first}")[1] + +sources = [] + +locales.each do |locale| + arches.each do |arch| + basename = "firefox-#{version}.#{locale}.#{arch}" + filename = basename + ".tar.bz2" + url = base_url.merge("#{basename}.checksums") + sha512 = open(url).each_line + .find(filename).first + .split(" ").first + sources << Source.new(sha512, arch, locale, filename) + end +end + +sources = sources.sort_by do |source| + [source.locale, source.arch] +end + +puts(<<"EOH") +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb > dev_sources.nix + +{ + version = "#{version}"; + sources = [ +EOH + +sources.each do |source| + puts(%Q| { url = "#{base_url.merge(source.filename)}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) +end + +puts(<<'EOF') + ]; +} +EOF diff --git a/pkgs/firefox-bin/nightly.nix b/pkgs/firefox-bin/nightly.nix new file mode 100644 index 000000000000..0528cb91120e --- /dev/null +++ b/pkgs/firefox-bin/nightly.nix @@ -0,0 +1,24 @@ +{ pkgs }: + +let + + ff = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { + inherit (pkgs) stdenv; + generated = import ./nightly_sources.nix; + gconf = pkgs.gnome2.GConf; + inherit (pkgs.gnome2) libgnome libgnomeui; + inherit (pkgs.gnome3) defaultIconTheme; + }; + + self = pkgs.wrapFirefox ff { + browserName = "firefox"; + name = "firefox-nightly-bin" + + (builtins.parseDrvName ff.name).version; + desktopName = "Firefox Nightly Edition"; + }; + +in self // { + updateSrc = pkgs.writeScript "update-firefox-nightly-bin" '' + ${pkgs.ruby}/bin/ruby ${./generate_sources_nightly.rb} > pkgs/firefox-bin/nightly_sources.nix + ''; +} diff --git a/pkgs/firefox-bin/nightly_sources.nix b/pkgs/firefox-bin/nightly_sources.nix new file mode 100644 index 000000000000..be90e09b5c33 --- /dev/null +++ b/pkgs/firefox-bin/nightly_sources.nix @@ -0,0 +1,12 @@ +# This file is generated from generate_sources_dev.rb. DO NOT EDIT. +# Execute the following command to update the file. +# +# ruby generate_sources_dev.rb > dev_sources.nix + +{ + version = "53.0a1"; + sources = [ + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-03-02-07-mozilla-central/firefox-53.0a1.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "91fac1d20c524aa573d27334d6e503412bcbc36f9627fef2c2240742a7ec81cf8c8c97357f60a85a1f736c752db830e17e0a009d1e88cd3eb3d44bbdf127ea22"; } + { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-03-02-07-mozilla-central/firefox-53.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "fa97c9ecdb956de6989d2765a45e68dccfef5b5ec0d8f6b0079ada9595cb8f18b539563919a69b2462214a8caa6d7d5b663b87e695f666575b4daab68c5ef6a2"; } + ]; +} diff --git a/pkgs/firefox-dev-bin/default.nix b/pkgs/firefox-dev-bin/default.nix deleted file mode 100644 index fe66ee4b4d3c..000000000000 --- a/pkgs/firefox-dev-bin/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs }: -let - ff = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { - inherit (pkgs) stdenv; - generated = import ./dev_sources.nix; - gconf = pkgs.gnome2.GConf; - inherit (pkgs.gnome2) libgnome libgnomeui; - inherit (pkgs.gnome3) defaultIconTheme; - }; -in - pkgs.wrapFirefox ff { - browserName = "firefox"; - name = "firefox-developer-bin-" + - (builtins.parseDrvName ff.name).version; - desktopName = "Firefox Developer Edition"; - } diff --git a/pkgs/firefox-dev-bin/dev_sources.nix b/pkgs/firefox-dev-bin/dev_sources.nix deleted file mode 100644 index d1e3e661597d..000000000000 --- a/pkgs/firefox-dev-bin/dev_sources.nix +++ /dev/null @@ -1,12 +0,0 @@ -# This file is generated from generate_sources_dev.rb. DO NOT EDIT. -# Execute the following command to update the file. -# -# ruby generate_sources_dev.rb > dev_sources.nix - -{ - version = "52.0a2"; - sources = [ - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-20-00-40-06-mozilla-aurora/firefox-52.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "e20d4b07c9cb7e68f81e207dfd25f29688d7b9935cadcf200b14686efba52e83d6ddc72c9eca070262fb38d1d3e89e9d3d54751af04d897a1b8a770926c3f648"; } - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-20-00-40-06-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "2ee248232a098c980a4dc50d5a7362360661b945fc559d0ca60f64655aded36f6903bb1fffa50cdc2a8167d8f8e8fc10ec541e1968ddac716b5068a72542f5c3"; } - ]; -} diff --git a/pkgs/firefox-dev-bin/generate_sources_dev.rb b/pkgs/firefox-dev-bin/generate_sources_dev.rb deleted file mode 100755 index 9884e2657255..000000000000 --- a/pkgs/firefox-dev-bin/generate_sources_dev.rb +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env ruby -require "open-uri" - -Source = Struct.new(:hash, :arch, :locale, :filename) - -base_uri = URI.parse("http://download-installer.cdn.mozilla.net/pub/firefox/nightly/") -arches = ["linux-i686", "linux-x86_64"] -locales = ["en-US"] - -# Find latest release -year_uri = base_uri.merge( - open(base_uri).read.scan(/#{base_uri.path}\d{4}\//).last -) -month_uri = year_uri.merge( - open(year_uri).read.scan(/#{year_uri.path}\d{2}\//).last -) -day_uri = month_uri.merge( - open(month_uri).read.scan(/#{month_uri.path}[^\/]+aurora\//).last -) -base_url = day_uri - -version = open(base_url).read.match("/firefox-([^-]+).#{locales.first}")[1] - -sources = [] - -locales.each do |locale| - arches.each do |arch| - basename = "firefox-#{version}.#{locale}.#{arch}" - filename = basename + ".tar.bz2" - url = base_url.merge("#{basename}.checksums") - sha512 = open(url).each_line - .find(filename).first - .split(" ").first - sources << Source.new(sha512, arch, locale, filename) - end -end - -sources = sources.sort_by do |source| - [source.locale, source.arch] -end - -puts(<<"EOH") -# This file is generated from generate_sources_dev.rb. DO NOT EDIT. -# Execute the following command to update the file. -# -# ruby generate_sources_dev.rb > dev_sources.nix - -{ - version = "#{version}"; - sources = [ -EOH - -sources.each do |source| - puts(%Q| { url = "#{base_url.merge(source.filename)}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) -end - -puts(<<'EOF') - ]; -} -EOF diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix index 602d675c10d9..5cd4ca616f46 100644 --- a/pkgs/lib/default.nix +++ b/pkgs/lib/default.nix @@ -1,7 +1,7 @@ -{ mozpkgs }: +{ nixpkgs-mozilla }: let - update = import ./update.nix { inherit mozpkgs; }; + update = import ./update.nix { inherit nixpkgs-mozilla; }; in { inherit update; } // update diff --git a/pkgs/lib/update.nix b/pkgs/lib/update.nix index 1f6004159214..fdc63787099c 100644 --- a/pkgs/lib/update.nix +++ b/pkgs/lib/update.nix @@ -1,7 +1,7 @@ -{ mozpkgs }: +{ nixpkgs-mozilla }: let - inherit (mozpkgs.nixpkgs) cacert nix-prefetch-scripts jq curl gnused + inherit (nixpkgs-mozilla.nixpkgs) cacert nix-prefetch-scripts jq curl gnused gnugrep coreutils; in { @@ -9,7 +9,7 @@ in { (pkg: pkg.updateSrc) (builtins.filter (pkg: builtins.hasAttr "updateSrc" pkg) - (builtins.attrValues mozpkgs) + (builtins.attrValues nixpkgs-mozilla) ); updateFromGitHub = { owner, repo, path, branch }: '' diff --git a/update.nix b/update.nix index dfee063f0232..20ead0aa3aaf 100755 --- a/update.nix +++ b/update.nix @@ -1,13 +1,18 @@ -{ pkg ? null -, pkgs ? null +let + _pkgs = import {}; + _nixpkgs = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); +in + +{ pkgs ? import _nixpkgs {} +, pkg ? null }: let - pkgs_mozilla = import ./default.nix { inherit pkgs; }; + nixpkgs-mozilla = import ./default.nix { inherit pkgs; }; packages = if pkg == null - then pkgs_mozilla.lib.packagesToUpdate - else [(builtins.getAttr pkg pkgs_mozilla).updateSrc]; -in pkgs_mozilla.nixpkgs.stdenv.mkDerivation { + then nixpkgs-mozilla.lib.packagesToUpdate + else [(builtins.getAttr pkg nixpkgs-mozilla).updateSrc]; +in nixpkgs-mozilla.nixpkgs.stdenv.mkDerivation { name = "update-nixpkgs-mozilla"; buildCommand = '' echo "+--------------------------------------------------------+" -- cgit 1.4.1 From 44028020154802dfbe72de94c5d42839c68776fd Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Thu, 22 Dec 2016 21:14:26 +0100 Subject: adding license MPL v2.0 --- LICENSE | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000000..a612ad9813b0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. -- cgit 1.4.1 From 171228ac06032f1b5974656fec2927935d1550e0 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Mon, 26 Dec 2016 13:22:34 +0100 Subject: nixpkgs: update to latest (1c50bdd92) --- pkgs/nixpkgs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/nixpkgs.json b/pkgs/nixpkgs.json index c6ec1c6e860c..b70f94b54865 100644 --- a/pkgs/nixpkgs.json +++ b/pkgs/nixpkgs.json @@ -1,6 +1,6 @@ { "owner": "NixOS", "repo": "nixpkgs-channels", - "rev": "b69f568f4c3ebaf48a7f66b0f051d28157a61afb", - "sha256": "0dbbm4a8s5g6cnihqcm28x6riyqcxj461wq556ffvabsp3gxy78n" + "rev": "1c50bdd928cec055d2ca842e2cf567aba2584efc", + "sha256": "1g1504x8wbrvjzhjqmpl2c05wxglljxncqmfh1q38hfvkmmfl17g" } -- cgit 1.4.1 From 0031ef0913a1db85168ff8bc7003b5ff925971d8 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Tue, 27 Dec 2016 14:43:06 +0100 Subject: firefox-bin: common expression and migrated update script to bash * using updateScript instead of updateSrc * rename nixpkgs -> pkgs * using update.nix script from nixpkgs master --- default.nix | 17 +- pkgs/VidyoDesktop/default.nix | 6 +- pkgs/firefox-bin/default.nix | 30 ++ pkgs/firefox-bin/dev.nix | 24 -- pkgs/firefox-bin/dev_sources.nix | 12 - pkgs/firefox-bin/developer_sources.nix | 490 +++++++++++++++++++++++++++ pkgs/firefox-bin/generate_sources_dev.rb | 60 ---- pkgs/firefox-bin/generate_sources_nightly.rb | 60 ---- pkgs/firefox-bin/nightly.nix | 24 -- pkgs/firefox-bin/nightly_sources.nix | 404 +++++++++++++++++++++- pkgs/firefox-bin/update.nix | 108 ++++++ pkgs/gecko/default.nix | 16 +- pkgs/lib/default.nix | 4 +- pkgs/lib/update.nix | 12 +- pkgs/servo/default.nix | 12 +- update.nix | 137 +++++++- 16 files changed, 1176 insertions(+), 240 deletions(-) create mode 100644 pkgs/firefox-bin/default.nix delete mode 100644 pkgs/firefox-bin/dev.nix delete mode 100644 pkgs/firefox-bin/dev_sources.nix create mode 100644 pkgs/firefox-bin/developer_sources.nix delete mode 100755 pkgs/firefox-bin/generate_sources_dev.rb delete mode 100755 pkgs/firefox-bin/generate_sources_nightly.rb delete mode 100644 pkgs/firefox-bin/nightly.nix create mode 100644 pkgs/firefox-bin/update.nix diff --git a/default.nix b/default.nix index d53d3d7b97b9..3e33b0232f42 100644 --- a/default.nix +++ b/default.nix @@ -18,16 +18,17 @@ in let callPackage = (extra: pkgs.lib.callPackageWith - ({ inherit geckoSrc servoSrc; } // nixpkgs-mozilla // extra)) {}; + ({ inherit geckoSrc servoSrc; } // self // pkgs // extra)) {}; - nixpkgs-mozilla = { + self = { - lib = import ./pkgs/lib/default.nix { inherit nixpkgs-mozilla; }; + lib = callPackage ./pkgs/lib/default.nix { }; rustPlatform = pkgs.rustUnstable; - nixpkgs = pkgs // { - updateSrc = nixpkgs-mozilla.lib.updateFromGitHub { + pkgs = pkgs // { + name = "nixpkgs"; + updateScript = self.lib.updateFromGitHub { owner = "NixOS"; repo = "nixpkgs-channels"; branch = "nixos-unstable"; @@ -39,11 +40,11 @@ let servo = callPackage ./pkgs/servo { }; - firefox-dev-bin = callPackage ./pkgs/firefox-bin/dev.nix { inherit pkgs; }; - firefox-nightly-bin = callPackage ./pkgs/firefox-bin/nightly.nix { inherit pkgs; }; + firefox-developer-bin = callPackage ./pkgs/firefox-bin/default.nix { channel = "developer"; }; + firefox-nightly-bin = callPackage ./pkgs/firefox-bin/default.nix { channel = "nightly"; }; VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; }; -in nixpkgs-mozilla +in self diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index dc262ca0b11f..c9d76ee5e3f7 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -1,12 +1,12 @@ -{ nixpkgs +{ pkgs }: let - inherit (nixpkgs) fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib + inherit (pkgs) fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 zlib patchelf xorg; - inherit (nixpkgs.stdenv) mkDerivation; + inherit (pkgs.stdenv) mkDerivation; VidyoDesktopDeb = mkDerivation { name = "VidyoDesktopDeb-123"; diff --git a/pkgs/firefox-bin/default.nix b/pkgs/firefox-bin/default.nix new file mode 100644 index 000000000000..49df311a91ed --- /dev/null +++ b/pkgs/firefox-bin/default.nix @@ -0,0 +1,30 @@ +{ pkgs +, channel +}: + +assert builtins.elem channel ["nightly" "developer"]; + +let + + unwrapped = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { + inherit (pkgs) stdenv; + generated = import (./. + "/${channel}_sources.nix"); + gconf = pkgs.gnome2.GConf; + inherit (pkgs.gnome2) libgnome libgnomeui; + inherit (pkgs.gnome3) defaultIconTheme; + }; + + name = "firefox-${channel}-bin-${(builtins.parseDrvName unwrapped.name).version}"; + + self = pkgs.wrapFirefox unwrapped { + browserName = "firefox"; + desktopName = "Firefox ${channel} Edition"; + inherit name; + }; + +in self // { + updateScript = import ./update.nix { + inherit channel name; + inherit (pkgs) writeScript xidel coreutils gnused gnugrep curl; + }; +} diff --git a/pkgs/firefox-bin/dev.nix b/pkgs/firefox-bin/dev.nix deleted file mode 100644 index 3af4d8b6332e..000000000000 --- a/pkgs/firefox-bin/dev.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ pkgs }: - -let - - ff = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { - inherit (pkgs) stdenv; - generated = import ./dev_sources.nix; - gconf = pkgs.gnome2.GConf; - inherit (pkgs.gnome2) libgnome libgnomeui; - inherit (pkgs.gnome3) defaultIconTheme; - }; - - self = pkgs.wrapFirefox ff { - browserName = "firefox"; - name = "firefox-developer-bin-" + - (builtins.parseDrvName ff.name).version; - desktopName = "Firefox Developer Edition"; - }; - -in self // { - updateSrc = pkgs.writeScript "update-firefox-developer-bin" '' - ${pkgs.ruby}/bin/ruby ${./generate_sources_dev.rb} > pkgs/firefox-bin/dev_sources.nix - ''; -} diff --git a/pkgs/firefox-bin/dev_sources.nix b/pkgs/firefox-bin/dev_sources.nix deleted file mode 100644 index 23a5efacf420..000000000000 --- a/pkgs/firefox-bin/dev_sources.nix +++ /dev/null @@ -1,12 +0,0 @@ -# This file is generated from generate_sources_dev.rb. DO NOT EDIT. -# Execute the following command to update the file. -# -# ruby generate_sources_dev.rb > dev_sources.nix - -{ - version = "52.0a2"; - sources = [ - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-00-40-05-mozilla-aurora/firefox-52.0a2.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "620fa7ad8b65f120d063206143936b31993510f94fd6d0a54a613b4884106a51d53c405f15809dff77d93161ca7b885f428d4a803dd8ab8d36952f238f6c6938"; } - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-00-40-05-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "06699dbca849e5a345fdda8121076c6e0272e28c832c120158d606ed71f53f206872c867577f4c05e67aa4e97dfb15b2f0f427a4edc7895e8ad3e9b7e1883c4e"; } - ]; -} diff --git a/pkgs/firefox-bin/developer_sources.nix b/pkgs/firefox-bin/developer_sources.nix new file mode 100644 index 000000000000..1bdfdb927fdb --- /dev/null +++ b/pkgs/firefox-bin/developer_sources.nix @@ -0,0 +1,490 @@ +{ + sources = [ + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "c785d86926a6716e0365ea850b0cb0f81c19a3fcf9421e1676d2196ba813e1ed430177dd6df59d30b0ef517f97ca9e74a1079e0dddc8efa275069a0aa5cc22d7"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ach.linux-x86_64.tar.bz2"; + locale = "ach"; + arch = "linux-x86_64"; + sha512 = "b6d6483c0efa116b2202691eb5cbb66f470c7283b545818bf6f6062d2a794786a45732eb41dc23426e78fbf3a084eea00bd33f0d369d68c218928d367f36e529"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.af.linux-x86_64.tar.bz2"; + locale = "af"; + arch = "linux-x86_64"; + sha512 = "60249aae6292ac9c59569d9f02c0d641199fba82a264995aa5a5cf038ef774f3155b22be5a066922d6b4cc314eb7271306a3726e4fd0cbf1ffc9bcf664fe3bdb"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.an.linux-x86_64.tar.bz2"; + locale = "an"; + arch = "linux-x86_64"; + sha512 = "b4e315c48bbd49103a515303c60684f2e97317be06f5b2bab012da1cf9d50a050b8df453cff140424aeeca04a864460889f8925f96cb6888405e487081f58531"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ar.linux-x86_64.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "fd2491f87730752aa90859521459fee05ef57be66cadc9b8c8682665ada75eae2209e4738b0bb254cfcb2f07e3abacb66574689ff593ff1263e3c8354a59eaca"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.as.linux-x86_64.tar.bz2"; + locale = "as"; + arch = "linux-x86_64"; + sha512 = "3e4a56de71005d8476a87b1a8e4369ca61401128c65d77a0cd44491e3b393faf381b1c8486c3ddb53fc11813135b01fb6e137ed776ed7c162aacfdbff14465e5"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ast.linux-x86_64.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "8679be3e3c539b1abf9cfd7135eb2dbccf2a39a267deb4e1a810a957c3ed5969532e46253660b520cb7aa4cd681a08b5c3558ce208bb5a88be7be838cefff13e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.az.linux-x86_64.tar.bz2"; + locale = "az"; + arch = "linux-x86_64"; + sha512 = "e8434b00c4c8f26a3643c59b7ee22d9aff392066a2bb3a556e18eb8721803927fbde26b1d49138990e12b5de217dd8f344df214fcc3ce90324b715f973df5258"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bg.linux-x86_64.tar.bz2"; + locale = "bg"; + arch = "linux-x86_64"; + sha512 = "1ae86a157a063a84a844f5522d9840380abb7b43ce71a535f82034489dc0526c57d3db0938a2d664337d2e6e3cb7d56cef96a90f0cb608e7103bce8a6dc0fe4d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bn-BD.linux-x86_64.tar.bz2"; + locale = "bn-BD"; + arch = "linux-x86_64"; + sha512 = "c8ec312f92834681f63e31291786de5cfed4273dc346485827e77d78b90c882d1b91ac43ff0322e601fbeb2b28b5a67a28bfc9b6bd5152be178ffd261be281ed"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bn-IN.linux-x86_64.tar.bz2"; + locale = "bn-IN"; + arch = "linux-x86_64"; + sha512 = "4fe97372c48612113671aea81ba197ce2a423d48582283189cb2cbc857df6fcf738030ef60860fc8d47b1617bf853773b497386cfae988b2815a3f8b94db0bbe"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.br.linux-x86_64.tar.bz2"; + locale = "br"; + arch = "linux-x86_64"; + sha512 = "55b23ea8b55933cd062c97a6a1c44347124fc3c154c394eaf007ef09eaa4e2519f5c00c6903a85b5bfb499e9c4ee55932067ff8f754d3a01daf05a35460dac8a"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bs.linux-x86_64.tar.bz2"; + locale = "bs"; + arch = "linux-x86_64"; + sha512 = "70f7a42cdcd92a0aa864a76582f32ea12e33ac3602a5572804511ab70e7099736d255e1c7a2bd99795d54fb64a30b23b21eff9f9f787d36e3115196564001562"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ca.linux-x86_64.tar.bz2"; + locale = "ca"; + arch = "linux-x86_64"; + sha512 = "7e2a01cbb56932bcb1121d28677c8243f54098906ad6bee57edfd95c18c6f6a25b89d3db5fd986bf33a8d7ad031471f42faedd7b7327d23ba0b5b26c7f35dee5"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cak.linux-x86_64.tar.bz2"; + locale = "cak"; + arch = "linux-x86_64"; + sha512 = "3b9dfa09c900465d8db170ccad82dd8aa23f730e25187c982cf139b39446dc7d6167d5f8d6256e9c15b9a2f8c32e5c24e240c2d14f294e1947f4cad8588baf29"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cs.linux-x86_64.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "57ef6af04c832bf74174f5ca565d35db6cb321fba6dcf21c146ee817edd1138960b3a316e70e1d9b8ec0eb34c59345fc4d72ce863784026072467546c83df4a6"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cy.linux-x86_64.tar.bz2"; + locale = "cy"; + arch = "linux-x86_64"; + sha512 = "1432e89284c66b3da67fe79b64a98a4bf1391357e105e59cd81359c67655700b421cc067de936d795d53fe98d2743ae4d9c0b651e894e4fc6bb110167c781339"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.da.linux-x86_64.tar.bz2"; + locale = "da"; + arch = "linux-x86_64"; + sha512 = "fe87aa94b4f9e59f782562e2b66a82e77a948398c6e3b7c5c4c60a7f470ef136197dda41d0e89dce87f9031b220661c9b74f7243b4c4a120021e7196bf9ce027"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.de.linux-x86_64.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "5be12057682094fdd0853b998fc1e471ad1f8a4555daedc035994116e4fd0ec6ad5c5040c3ca3ae18a8e08cbceb8788c338234dfd2b23d068f8570c029fa3cd6"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.dsb.linux-x86_64.tar.bz2"; + locale = "dsb"; + arch = "linux-x86_64"; + sha512 = "260e22d96927b9821c53abce71885dc9998bcae0d3ac8aac3ddc2a113a6d437d5379bc8e17395f900423dc6d3b946e73ea64e218f679dd5b0f6de2b286a81402"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.el.linux-x86_64.tar.bz2"; + locale = "el"; + arch = "linux-x86_64"; + sha512 = "613db55e1921bdb1a1a518b0f5d878ec8e131a08c2c04d03dc8ee056a4b24ae17e2b41dc5e26f31e4a7d343cdbae7d953dd69fe846112eb9515e97598d193714"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.en-GB.linux-x86_64.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "00662ba44b207a918a04a9fbeef920863e2c17510318984361fddc39551903628a9ee9799c508995d6256e73449100b6e0dc0ee75386e9f86d4d7e4b844a5a80"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.en-ZA.linux-x86_64.tar.bz2"; + locale = "en-ZA"; + arch = "linux-x86_64"; + sha512 = "828a12a1a21c3b2ee5603ae6ac935e3a27d448e312be2b7088424cf367c25043f71175eed6f1f97c2905fa1a474c8828900529a7d0a7c8f03af5c6560ee94c6b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.eo.linux-x86_64.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "232753f9ec5f269cf560f30eb3ee76efe069815c894f76d3e5d95c6c0be7c6172c10e813fcd07bc2389684fb3478db5482d52436a07b7dab417dabdd245523df"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-AR.linux-x86_64.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "e678f6df9c33d9ca1f327543923a2a27e6d591fca9d74b77311f50954b032e7cba0491cd85ebf215802cd927ced8f5288e5a6de7ea86a980398d15e582e2bcea"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-CL.linux-x86_64.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "00b5828e0309c267b384a7fd8e021efca29fc6fcf83e83398f11946af27a4fc25be190fd51a382a1c68506f56588d24d34149d817acd5735023fc2045e464d9c"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-ES.linux-x86_64.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "544d347a492a43cc4499c282ad12105c3abeafd014a5e270610bbe295da28cb0b57b07e22e46c3346ba8152817de14909654f458dde430c091135ec63e0fb530"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-MX.linux-x86_64.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "8dbceffb8015290864c806157425f720a46f0e0df2a828ff34853c1cf37ad0ec80dae621a76ef7947c52d52c0241e71a51266cfef91f3baf1e01bfac93791818"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.et.linux-x86_64.tar.bz2"; + locale = "et"; + arch = "linux-x86_64"; + sha512 = "2426fdb0a28e21c8af1010cac2e252d6b7aa261486c54bbdc959b33cc6fd4b1a0ff51537e88edd761f4ccb8c8b03f8780a91b7b5ae56de28d70ea43b3a0067d4"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.eu.linux-x86_64.tar.bz2"; + locale = "eu"; + arch = "linux-x86_64"; + sha512 = "9c370ba20ff45a30df02a86b93d55af15a8c858f579d18a659e1a2e209bdd933479639931aed7bc4380498e31508bb7b6f841db16a5bb78fcb44b549d75066d9"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fa.linux-x86_64.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "b9fdae2deb85323e861b8ff3e90782eae5c99f9795b8a5d1be8aa8f1552810dfc3f58583724bfb071e8bb8184a4cc2ea82fe7db99fe929c1795d446719834964"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ff.linux-x86_64.tar.bz2"; + locale = "ff"; + arch = "linux-x86_64"; + sha512 = "26ec4c616e1a230065709ef145e6b3909fb90a94849fe8e63f950604bf8a615c4a2d22a159cba6fd0a1efcea6aecd49af89562e44c93af9bb97b363eeb3e9460"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fi.linux-x86_64.tar.bz2"; + locale = "fi"; + arch = "linux-x86_64"; + sha512 = "314c02413ef0cf8a32cfd236012fa8afa2ecc169a9db735322a020d705b2b51b0a1d7df84e95cb6cd1d1c05f6119e826585c0ff92348541bfbbb49bf3c8141ef"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fr.linux-x86_64.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "ea70bf96902550e211f3400a90fffca711d69ec701941e2f0ca861b5421231cac8ab62dc0da1273138d142ac751ce983c7e47e6930b7fdf9a8a1fb5ca01f3a09"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fy-NL.linux-x86_64.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "7b639f14f680d829bf05789ab9f29e393e7ac3b23aaa54fbe1522900852e446ab338088b077c446694443e54e92f2f16101479dab78498e9b245fb5778d85216"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ga-IE.linux-x86_64.tar.bz2"; + locale = "ga-IE"; + arch = "linux-x86_64"; + sha512 = "7b186ffac4f754bbd4d84956af515690dda32ed8a6ace84e46629d57f52117f1928d777a659066c50f432315119211de9e596ea51627f62090fd48dfe8f36d2d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gd.linux-x86_64.tar.bz2"; + locale = "gd"; + arch = "linux-x86_64"; + sha512 = "97cfc6cedff65ddebec9ddf57bdee752ff77b0adfe07fc846fba5346eeba5647e60c626f9abb6e32394a2a7481164eb6c1483593880aeb8fe0a0adeb36b8ff99"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gl.linux-x86_64.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "389c1e7546eee4360d97104073fbc580f0b2d39d98717eaf03a43388e97d0d8c3bb31071264a8e655fc5507f05bc7e49f42c747a45950fa0374ce13000d693fa"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gn.linux-x86_64.tar.bz2"; + locale = "gn"; + arch = "linux-x86_64"; + sha512 = "1974a8b2df50eec50da2b61eb94897d4c965713a1cf3861ad9f24abcd96406485995060effe67e85dca4fe0f104583eadde0aa3009caa84d71f6a7ed628e75cd"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gu-IN.linux-x86_64.tar.bz2"; + locale = "gu-IN"; + arch = "linux-x86_64"; + sha512 = "5b2e4ff43a5d5959d3c3e8ab8fefbc21862bd481543c2e88f332c8b59b1b28d48ab625a200bfadf48ae9f944dfa62f8d2fc61fb40d4f0e472dd060b73a4513b3"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.he.linux-x86_64.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "644769a696233d5e9f6bef9f3ef2c3b4985766a542b81f400a3c1f7c3bde309bb1bb8e12d22e2b66937de1f83d806a8ce93cbeb7283381ef41c2612031fdc58b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hi-IN.linux-x86_64.tar.bz2"; + locale = "hi-IN"; + arch = "linux-x86_64"; + sha512 = "7bd0162487e59e3a69708b44e7a70f5c1433973c2f02da718bb1bff2f623c9ba169d04e86914b671f93b10244f1c4e3f35bdbb79f17892822c590ad4f6744d4e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hr.linux-x86_64.tar.bz2"; + locale = "hr"; + arch = "linux-x86_64"; + sha512 = "f5ceef9ef26df4fc5e07337598c241933e09d89caf45925020dfc16a758f887c8e3e9bc1b30440f3219b1184c8396dc4dda47ab0d0a8192e084df9bf34090a58"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hsb.linux-x86_64.tar.bz2"; + locale = "hsb"; + arch = "linux-x86_64"; + sha512 = "a4d13726928b652f92ff20160569f46fdbae377fb1b4855c94dd7ffc08d988fb94bf9e9f4fe5bac9e68d7df16d14db39913376dfae03823f8a29e62786f0dda2"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hu.linux-x86_64.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "6ab65bcec6b278f56822e01d295150224deec06619a970bab0597e008aa57117070027212a3089d08efd9284e668790acbad75f31527b709663756465fad136d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hy-AM.linux-x86_64.tar.bz2"; + locale = "hy-AM"; + arch = "linux-x86_64"; + sha512 = "650ac33dab1254445c8373be2cc3263c4f3d8c8c814c686e8d57568f51924a3e699f75c75c48f50bb20d3dbec67f018370a3b4accc68ad68c3fa633592a5705b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.id.linux-x86_64.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "af4f38bc885f6d32f6a8acf8471807f6300cc3a15077b7a8bc3010a2171dba3d895576092384c74d42b4c090868f376fd57ac51812972290535c5879ee9c7f6a"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.is.linux-x86_64.tar.bz2"; + locale = "is"; + arch = "linux-x86_64"; + sha512 = "19654cbf256ddc741ea900f01c0d030ac4dd5f4eb9ddaa65525fa7733cdb4754759feffa6a7f6f88a3fd0a4aedde564c52b9e22df4c17e8a97a72d39e789f7ee"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.it.linux-x86_64.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "03eedeae61a481514194bc051290cd8e4a4a865810a84e4b9d9aa4fc3cb0325c88e09f05ddd324fef69a45caf31a7e0cb1072270d20ba8abd940d27d6580ccf9"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ja.linux-x86_64.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "0342776d1c8822b69a7d3417627681004df2d77e7fda41a08c741ee851cbc5403c1dc79402d77113ce548c990e121bd03a4bede6813479df131f41cb2b0e6b0c"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ka.linux-x86_64.tar.bz2"; + locale = "ka"; + arch = "linux-x86_64"; + sha512 = "3b9562d0a33ee6865d655b1bd17a2c72d1aa94bbd88e4561fdd2bb704c98197cc70a8ea43d2077f2b552a245fb1eb2b668cbce0592bf0d50165b6e2b9d6a828e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kab.linux-x86_64.tar.bz2"; + locale = "kab"; + arch = "linux-x86_64"; + sha512 = "0ac34eeb7295d4851bb0b29273dab8310b4ce4c17706715c8b18a1e29b0dda42296d253a12c64ac2610edaecbc0ee063b646c787ff80d2a0565842996907bbf8"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kk.linux-x86_64.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "7fa48c065301c21b27035a5d0cb1e917fefe3b9d512379a0eecb02eed766cd51525d7de634d007638e214eb1af583ab2bc91a44f540a1b3d39051b8c02cb1530"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.km.linux-x86_64.tar.bz2"; + locale = "km"; + arch = "linux-x86_64"; + sha512 = "1cb1968dc7c36909b30fd86a8a47ee82809742f22a9fb304179ab52e3273f88aa30377c551eaf8839dad318b0037a90cf5c87ef27442d2420e2104f649cd39d1"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kn.linux-x86_64.tar.bz2"; + locale = "kn"; + arch = "linux-x86_64"; + sha512 = "f3b47ffa14c5f2072847f2dc4e911891e8cdac9463d123abe83bf6520400e296b453a0f6ae796dd0a42ff0596f4a3aa75e2869f7e5918bdc2645fdeee1e77d98"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ko.linux-x86_64.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "8111dd217a11e949bceacc1076d6d57e29b98ab851328a72bbde9e93b724b744936dc11b6f842443d7358a95542cd863ffa28b5119d989a84637bbc7497884a8"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lij.linux-x86_64.tar.bz2"; + locale = "lij"; + arch = "linux-x86_64"; + sha512 = "5555b8b5b423afba2f92e67f5ba10e3763d240711cdafdd9ee89feef47cee699d33d00a4883b326d7cdfbf3e9a3d6379cc98e6b7df9c7e269da17e1516d2f5d9"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lt.linux-x86_64.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "2fd48f70fcc56a8e1f7408080a8540e6fc320a808cb0659796d0c3fff55c7ed7bf0f8a046c19988b35fee4a4d7d6d5c954756907cab699b3337a8b01757f47e9"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ltg.linux-x86_64.tar.bz2"; + locale = "ltg"; + arch = "linux-x86_64"; + sha512 = "bf47078876ac25c9a86e46aa2b15ae34011dc987074eaa523d06f477ce92159ed7be6bb584b940e98a4898ad7d1b8452af1671579f4b8cb020c147d1b773ec90"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lv.linux-x86_64.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "a13fef273aadc153974f8a9ebddf28ec5e028ecfd7f9262588a622b8da63db5293f39a2eda6da5f0a9ccd5a84f0860849c1153b92d92a5abbdc19692f7def697"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mai.linux-x86_64.tar.bz2"; + locale = "mai"; + arch = "linux-x86_64"; + sha512 = "e0f119757053008d996fb9830e2d363fab581d958c704a888fc2aa97d5f818051782fe4f31db661d74e6123151a92b1eb7fcb8ce3b53278e4f4a2079621dd77b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mk.linux-x86_64.tar.bz2"; + locale = "mk"; + arch = "linux-x86_64"; + sha512 = "0ea7bc5a6817805689e005e35f64b9b02e7625ddb8d74bf89a54a65dc727d6c4126e1e8304901a410fa6e473c7bcb83dcdd03347ca4fecc45dfff151bf2d4e97"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ml.linux-x86_64.tar.bz2"; + locale = "ml"; + arch = "linux-x86_64"; + sha512 = "f3a2c41e5d5f6e031f707b730c4483230a421326a94cb9f9a766b0fcb6dfc14fba71c9c4db853062c72693c15c264986cc49b540b3b2573c24e89bcef0c28ef2"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mr.linux-x86_64.tar.bz2"; + locale = "mr"; + arch = "linux-x86_64"; + sha512 = "538e3a6b93d5b58bd181c9456ba0d614859a5b3954168f374ad00dd24c5638d997f5f5f24b7fef0e796cff06f7068294ebcfec0b3aeae182ccb389d0d5636d8d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ms.linux-x86_64.tar.bz2"; + locale = "ms"; + arch = "linux-x86_64"; + sha512 = "ff58b8facbbfd03b28a1eecb9d439ebeaa83b6fd01e0b27563cc25f5bc654496f67a78549388318d9f6e2d15958281d7e98a1e90bb0469885129ec0cc88e6df5"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.my.linux-x86_64.tar.bz2"; + locale = "my"; + arch = "linux-x86_64"; + sha512 = "aee4cae42308ba97faf82c30460f0188b6c91110ff2a3298c573445dd5ab0d9d0a03186340d13fce56bd5f0d8aed26726064cfd95d0f36a407b64fe06b98507e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nb-NO.linux-x86_64.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "d8255af8bf57a3a218e37393e05c4000624b0b52defd85b7e30e50aed7989f1e262d304cae4b615ec3222fb1375c08041fcbb29f779b43c497f1b93cce61d501"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ne-NP.linux-x86_64.tar.bz2"; + locale = "ne-NP"; + arch = "linux-x86_64"; + sha512 = "3d138d68b39c7ad5a8674ae0a8a6184068f3d25878bc636bc28097a21065b3dd252ff996c9177db9ea8a8023b3ec69c07c97858161f100036660ccaabf5eb26c"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nl.linux-x86_64.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "b04e638c1e20c8bb5c40d319a6cb2f73e5a8ed26f2968e564891118581d87d7487651457fb7e659c3604f66bd69a2f8e394a6145547faf9b195d417a6c14dbce"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nn-NO.linux-x86_64.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "4c88fe7a4ba5bcb39fe30758d61f81774fd4cb0f9e74c5fd5be1c41e790841edd9d737014ccd00d6402597058e79daa763ff5496d19ac408b50f2cce199b0b2f"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.or.linux-x86_64.tar.bz2"; + locale = "or"; + arch = "linux-x86_64"; + sha512 = "0534b569c98ee9200bec0872810b3948780b7b136c08b5fa3b4db3934184df4672e8d4e17a190b306aeb6b8f80019e037241ff79031caf43d418e4253ae782b7"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pa-IN.linux-x86_64.tar.bz2"; + locale = "pa-IN"; + arch = "linux-x86_64"; + sha512 = "5936896dda11febeaba8a8eacf1a586d46557262a56c378757b1e4128828cd26510b1016d9483bb7cf7272bddcacaf22b8b761caf28eb73f8314a70a2924ac53"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pl.linux-x86_64.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "35a9cd76678273a32ea5f731a9c6d836ede017ccb48e4897c108b8c3dd23b45cf7f4eaa700f79f8d97132d9d76a0615e1b51975b3efe2c251402bbcc25f758e1"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pt-BR.linux-x86_64.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "ec360bc485db0cfbaddd2e347d070c6ed5aa48b7fdf889b20eba7017833b5e5707c4ba74510b4f69ae279eb59a8e8711aa419b480d194c7b2a615f9d7cb3d3cd"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pt-PT.linux-x86_64.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "d88643429e151c80b033fbab697f52fa3d13117f4dcd452038c80c31f1d992af1de77f59f69fc0b0c24500928a11759653ec39694f61940a4447e0c4f61e8a25"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.rm.linux-x86_64.tar.bz2"; + locale = "rm"; + arch = "linux-x86_64"; + sha512 = "813eeabe86cd3b72eadc0c1904c27987ad0c4ff95bd73fd810e18ad05e5f3fc17a68dbc110b5d6d379f59830f43331edc13a621dd1c2f89cf421bf80b9c2f5c2"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ro.linux-x86_64.tar.bz2"; + locale = "ro"; + arch = "linux-x86_64"; + sha512 = "a36fbe6e5699c99fd2dc87c59b2ec223a16b7704461483642ec4e9f1fc43f89a6416e8d344e670c219ae9c693a92f71f2517262b8fc876acd3e9c93576e617bf"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ru.linux-x86_64.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "b4ccefbcb9ea1ee11cc2dea83449983bccff059ffd2ab74dfa05896b11497cb3c88f377dce1327cef3908ce29f2ec6dcf5b506fac2bd0c946b3249c090299a80"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.si.linux-x86_64.tar.bz2"; + locale = "si"; + arch = "linux-x86_64"; + sha512 = "c028ebc9be3617f6d5958372c2c18a2b0db6de7603595493fd2d494754a881c5f7783980bb2ee9aeeea80b3b83262f511ff2944226f725f18f66d5c0a8bf9a52"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sk.linux-x86_64.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "0cbdea7659c455adc017a2209b69a9b038a969ab87d0508d54201b169d2a9779ba1c6d6d176b81567735bfe7b60530191911b01960ea5893664dc3440e29567f"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sl.linux-x86_64.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "7ba3ed95de3ea059d82dac7e18fef8cb794d3ebd48ae52a3c9d6411eb7b1c3c340be3ae468eea86e973baa9255954da9525eaa59cdc73cbd60c6925c7439312b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.son.linux-x86_64.tar.bz2"; + locale = "son"; + arch = "linux-x86_64"; + sha512 = "13734f3a619e969e1507f4a92bbe49a54e5b8a849503cce359b776af0431e8f5c7541d6e18678aaaec8a38ee2780c3f6c25799edbfdb3fc7c1f9cea78ffba1be"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sq.linux-x86_64.tar.bz2"; + locale = "sq"; + arch = "linux-x86_64"; + sha512 = "3b5f983af7392d247a27fe808e6d01bc2af3d325a8868dba570968c3110d9224d418530739b37b80942fb7bb28791b52ecf1515aefd431ec6e68757546ad19f0"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sr.linux-x86_64.tar.bz2"; + locale = "sr"; + arch = "linux-x86_64"; + sha512 = "1f0e8d858bc719cadb1d0fcc7d6b9ad7968b5d776f9efc7a0e4643d416de7ee9686a8e00938f684fe6dbcea73ee4b18a8f6a090de1cd28ed303bdf316b0590dd"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sv-SE.linux-x86_64.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "80b802ceba9f506fc675136b11d8f4233a80fbfe44f082e55ee2b744f578bb27db6caddb390363d5300ad3ed0baa3df2c926543ec0c567e6320b40bcc9bf043d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ta.linux-x86_64.tar.bz2"; + locale = "ta"; + arch = "linux-x86_64"; + sha512 = "d23e3f6337f17a0c77865afba5f13de600041b678c9a1cfeff3b304c367af9f53ae383557826446ed7229bd916acfea4ed4c266e789c1784ba885a070e65fc78"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.te.linux-x86_64.tar.bz2"; + locale = "te"; + arch = "linux-x86_64"; + sha512 = "cc51628c0664bdda8b964e9a893f311ac12c56cbcc7e5f3995fcf7282c8c8813b3555d739645c19e52e44f9cc7583c92a23a1249778a1d2a5a6048749fa4b70e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.th.linux-x86_64.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "0f5bc8777a39d759a81001538edc4566da4a67a30067a0817d0cb54c369e0575ee575a58da63ad788ae98f17e87a7d6e4d0efa42506c6e61a7983c3c6b5c0d0b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.tl.linux-x86_64.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "860466cacbb8cd713f7a06c63b6d8f7baa1c3effd890126c082a3eaa9490197447b52bac05d1c8be17cb4260d51d288c77e59aea77c8d0129b91f394aaf6cf81"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.tr.linux-x86_64.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "8ff010ebc40d3e4eee917469e7eb968ee6e0d2d5b98bfe10e242b4f5e7a655ad12d789a05f5d38f416ac6dc54f682ad25eff04160dab0e02042858b8a9d48697"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.uk.linux-x86_64.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "47408d24acabe6a25450fb58a6ed053fb84c0e329c73f41371dee306c64cf0f6510fd10d5beaa794513c20ba4f76e4f33df6e6f1c7899bffdc98698ffebb7355"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ur.linux-x86_64.tar.bz2"; + locale = "ur"; + arch = "linux-x86_64"; + sha512 = "584e5b16c1fdf09ece531f6ea13664bcd461284708a00f2c4485570aa587fe970e4120875d73572acec664a83ded5c98ea3b5df6ad3665ce28a19eb75cf08562"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.uz.linux-x86_64.tar.bz2"; + locale = "uz"; + arch = "linux-x86_64"; + sha512 = "890e9a2d6afb8bee7eb7cb2a0597a9580981c2fdcfed4a2b61967115be63564544c34023221d2dde638d67a429bb9135b3b754ca0aeaf893966ef33ec5befe58"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.vi.linux-x86_64.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "44e5ea3359148f609620c4fb967a90236596114ffef6c4e3d3d5d41c62d04cc85359287f591cf8e1e7baf1c53c904de059002f31af4023fa50fd35fafbe1f722"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.xh.linux-x86_64.tar.bz2"; + locale = "xh"; + arch = "linux-x86_64"; + sha512 = "6300d64c7d5a7b4744b6bae492f9ddd561bda4cfb2da85af255408429c5b20f4142f3c866adc60a89acf95c1d20b7db5d6c56bf68baafda02eefe77cb656d566"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.zh-CN.linux-x86_64.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "b5bdf4c33a21b9aada5aea3e3d01d25bcd9615623c9da6ba98a69e3613744267e85328a632273bb224983b486fc1d00d9a111d99c9b5c0934b17d69d6f4aa66d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.zh-TW.linux-x86_64.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "5ace499ee9cc1ca1f38aa476fc46d4d38b28f7752e635354e4b7626ed3fc60d57f80ccbc9dee69b452cc462b4a752c5dea0da2f04735d80b96bf9dd5ad0fe303"; + } + ]; + version = "52.0a2"; +} diff --git a/pkgs/firefox-bin/generate_sources_dev.rb b/pkgs/firefox-bin/generate_sources_dev.rb deleted file mode 100755 index 2a394dda3ec6..000000000000 --- a/pkgs/firefox-bin/generate_sources_dev.rb +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env ruby -require "open-uri" - -Source = Struct.new(:hash, :arch, :locale, :filename) - -base_uri = URI.parse("http://download-installer.cdn.mozilla.net/pub/firefox/nightly/") -arches = ["linux-i686", "linux-x86_64"] -locales = ["en-US"] - -# Find latest release -year_uri = base_uri.merge( - open(base_uri).read.scan(/#{base_uri.path}\d{4}\//).last -) -month_uri = year_uri.merge( - open(year_uri).read.scan(/#{year_uri.path}\d{2}\//).last -) -day_uri = month_uri.merge( - open(month_uri).read.scan(/#{month_uri.path}[^\/]+mozilla-aurora\//).last -) -base_url = day_uri - -version = open(base_url).read.match("/firefox-([^-]+).#{locales.first}")[1] - -sources = [] - -locales.each do |locale| - arches.each do |arch| - basename = "firefox-#{version}.#{locale}.#{arch}" - filename = basename + ".tar.bz2" - url = base_url.merge("#{basename}.checksums") - sha512 = open(url).each_line - .find(filename).first - .split(" ").first - sources << Source.new(sha512, arch, locale, filename) - end -end - -sources = sources.sort_by do |source| - [source.locale, source.arch] -end - -puts(<<"EOH") -# This file is generated from generate_sources_dev.rb. DO NOT EDIT. -# Execute the following command to update the file. -# -# ruby generate_sources_dev.rb > dev_sources.nix - -{ - version = "#{version}"; - sources = [ -EOH - -sources.each do |source| - puts(%Q| { url = "#{base_url.merge(source.filename)}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) -end - -puts(<<'EOF') - ]; -} -EOF diff --git a/pkgs/firefox-bin/generate_sources_nightly.rb b/pkgs/firefox-bin/generate_sources_nightly.rb deleted file mode 100755 index 33e2c173c149..000000000000 --- a/pkgs/firefox-bin/generate_sources_nightly.rb +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env ruby -require "open-uri" - -Source = Struct.new(:hash, :arch, :locale, :filename) - -base_uri = URI.parse("http://download-installer.cdn.mozilla.net/pub/firefox/nightly/") -arches = ["linux-i686", "linux-x86_64"] -locales = ["en-US"] - -# Find latest release -year_uri = base_uri.merge( - open(base_uri).read.scan(/#{base_uri.path}\d{4}\//).last -) -month_uri = year_uri.merge( - open(year_uri).read.scan(/#{year_uri.path}\d{2}\//).last -) -day_uri = month_uri.merge( - open(month_uri).read.scan(/#{month_uri.path}[^\/]+mozilla-central\//).last -) -base_url = day_uri - -version = open(base_url).read.match("/firefox-([^-]+).#{locales.first}")[1] - -sources = [] - -locales.each do |locale| - arches.each do |arch| - basename = "firefox-#{version}.#{locale}.#{arch}" - filename = basename + ".tar.bz2" - url = base_url.merge("#{basename}.checksums") - sha512 = open(url).each_line - .find(filename).first - .split(" ").first - sources << Source.new(sha512, arch, locale, filename) - end -end - -sources = sources.sort_by do |source| - [source.locale, source.arch] -end - -puts(<<"EOH") -# This file is generated from generate_sources_dev.rb. DO NOT EDIT. -# Execute the following command to update the file. -# -# ruby generate_sources_dev.rb > dev_sources.nix - -{ - version = "#{version}"; - sources = [ -EOH - -sources.each do |source| - puts(%Q| { url = "#{base_url.merge(source.filename)}"; locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|) -end - -puts(<<'EOF') - ]; -} -EOF diff --git a/pkgs/firefox-bin/nightly.nix b/pkgs/firefox-bin/nightly.nix deleted file mode 100644 index 0528cb91120e..000000000000 --- a/pkgs/firefox-bin/nightly.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ pkgs }: - -let - - ff = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { - inherit (pkgs) stdenv; - generated = import ./nightly_sources.nix; - gconf = pkgs.gnome2.GConf; - inherit (pkgs.gnome2) libgnome libgnomeui; - inherit (pkgs.gnome3) defaultIconTheme; - }; - - self = pkgs.wrapFirefox ff { - browserName = "firefox"; - name = "firefox-nightly-bin" + - (builtins.parseDrvName ff.name).version; - desktopName = "Firefox Nightly Edition"; - }; - -in self // { - updateSrc = pkgs.writeScript "update-firefox-nightly-bin" '' - ${pkgs.ruby}/bin/ruby ${./generate_sources_nightly.rb} > pkgs/firefox-bin/nightly_sources.nix - ''; -} diff --git a/pkgs/firefox-bin/nightly_sources.nix b/pkgs/firefox-bin/nightly_sources.nix index be90e09b5c33..7bd3497e4891 100644 --- a/pkgs/firefox-bin/nightly_sources.nix +++ b/pkgs/firefox-bin/nightly_sources.nix @@ -1,12 +1,400 @@ -# This file is generated from generate_sources_dev.rb. DO NOT EDIT. -# Execute the following command to update the file. -# -# ruby generate_sources_dev.rb > dev_sources.nix - { - version = "53.0a1"; sources = [ - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-03-02-07-mozilla-central/firefox-53.0a1.en-US.linux-i686.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "91fac1d20c524aa573d27334d6e503412bcbc36f9627fef2c2240742a7ec81cf8c8c97357f60a85a1f736c752db830e17e0a009d1e88cd3eb3d44bbdf127ea22"; } - { url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/2016/11/2016-11-26-03-02-07-mozilla-central/firefox-53.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "fa97c9ecdb956de6989d2765a45e68dccfef5b5ec0d8f6b0079ada9595cb8f18b539563919a69b2462214a8caa6d7d5b663b87e695f666575b4daab68c5ef6a2"; } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-03-02-05-mozilla-central/firefox-53.0a1.en-US.linux-i686.tar.bz2"; + locale = "en-US"; + arch = "linux-i686"; + sha512 = "d44a42e4fd8ebdea89f3dd9ce629315130540bf03506f64bba17c5ee2469cbc9c27434ec6430eb9af88f299ec838889ebcddb55a5745f34d6c414ad7e2b25395"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-03-02-05-mozilla-central/firefox-53.0a1.en-US.linux-x86_64.tar.bz2"; + locale = "en-US"; + arch = "linux-x86_64"; + sha512 = "5c1d1f81ea8375c0cddbc09ba4c5962f11755ceb5deb5b7315cca792ee705bcdbc25180c2a048fbac0f39080a33187fecf53e16b0170449f3a8d83022a834e1a"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ar.linux-i686.tar.bz2"; + locale = "ar"; + arch = "linux-i686"; + sha512 = "f75a8cc774d9428831398d15702aa30eb09a033a1760dbda657e9e223b6ffaa2a4cea8a460c5e478c6008820fc38eabaca0606a6cd36458e02907f9660c03bb1"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ar.linux-x86_64.tar.bz2"; + locale = "ar"; + arch = "linux-x86_64"; + sha512 = "39fb17aa0095a79db9a0927b9905ef85ae8cf594319a0968173888d69a0bded46bfa7d9d927adc39e26ee42d199d8b0f0a8fc592c984c398c1f7842b98e49104"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ast.linux-i686.tar.bz2"; + locale = "ast"; + arch = "linux-i686"; + sha512 = "3e0c7e25e8ecd8de6122ed2d3b242120e148b86920def04b8398550a4c90ee2944bbf129d80c8679ac89ebc59fd47a4265fd397afedc25c8191ab894d1f500bc"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ast.linux-x86_64.tar.bz2"; + locale = "ast"; + arch = "linux-x86_64"; + sha512 = "01edfc8a1fa3b5f6e868f345de213bcf42ec64fdda2dc2f1071c20878dde6fd95b14c2252f376a82248fb1e5884eb54edd680f9ab8eb0b6c73097ba35313e8e2"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.cs.linux-i686.tar.bz2"; + locale = "cs"; + arch = "linux-i686"; + sha512 = "be495be099f4993e95a774fa765b5290e35f76bff911bc4f08efabeba324b01a76169168ee666cd70572d6e2db9ecf9f61bf6d6d34ad1f0d531333a2623e99cf"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.cs.linux-x86_64.tar.bz2"; + locale = "cs"; + arch = "linux-x86_64"; + sha512 = "b85d5bca8114d5496d2cc3a3f441310ea1c7d0560c49e55801ba7fe1c3cffed7b7ba0b70ef58eba4acac246543049d61fd829429a11425f2e3bcc1275946f596"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.de.linux-i686.tar.bz2"; + locale = "de"; + arch = "linux-i686"; + sha512 = "8af5118ca7dc303ee9e5982d283cbe9165845ddacf90ea5675600b65ef77e9e63cb737a1c30ee7f09a576c0feefeafd3ded1d327dca0cf8a7a480e3d2c8e757a"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.de.linux-x86_64.tar.bz2"; + locale = "de"; + arch = "linux-x86_64"; + sha512 = "014479111a8d3055d17cba3fc1988bb1e64d000c969322329418223e2ceeb01d30d826629c6063a13c06b765856b6407e2720e46fd43f24ede542c8b4a052b17"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.en-GB.linux-i686.tar.bz2"; + locale = "en-GB"; + arch = "linux-i686"; + sha512 = "e038861cedb1392040931a2e1a1f0b4799ee58b1e8391de74c0df52d0113134ae0f9d5233044b139a8cbf98909b07d31e58e15110f1321abb0efa720299fa12d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.en-GB.linux-x86_64.tar.bz2"; + locale = "en-GB"; + arch = "linux-x86_64"; + sha512 = "c67deeb787491d6b4b33ad370dc81eae0f39301549b4af15efa63dba7100b127525bcb2453233328f27c4749f298d2aa06da4b0c0d2b262df2bc7da235dee023"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.eo.linux-i686.tar.bz2"; + locale = "eo"; + arch = "linux-i686"; + sha512 = "dbf99b0ccd084b245ee417a1afcabe201d3d49fce557e15a6725cb858e7fb662258653333a4d7e228f10e276ce007d726c739f912d13e694836fadbf4c3a4fc3"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.eo.linux-x86_64.tar.bz2"; + locale = "eo"; + arch = "linux-x86_64"; + sha512 = "73fa243cd9df86210cd3cbc2aa812ad901961f92a67455d9f3c2f661088d4a2cef9c298e66eaa1b6e33f84171fa2a5955349873472ba5a15f4a5ead3cc46f035"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-AR.linux-i686.tar.bz2"; + locale = "es-AR"; + arch = "linux-i686"; + sha512 = "db1344d982b064bac03bc5ad71263c6c72dd614439152b32605c15542eee4222b7534520caeda889005ddfa5677bcf1c2c573dbbfd7a0f4f8951ed4f04bae870"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-AR.linux-x86_64.tar.bz2"; + locale = "es-AR"; + arch = "linux-x86_64"; + sha512 = "b383c53161e60ab167a82e6fad0bd2b41eab908129bd76ef3eb95412e284d8712c1eebea2205f9c43c4bf3ac4dfd70ee8398cd6faa694f69f38ba0498285ef81"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-CL.linux-i686.tar.bz2"; + locale = "es-CL"; + arch = "linux-i686"; + sha512 = "26f163efac39dfe7e1b704b82d8a1140b8f63be10816543d8aa12997da4c5fb4918b5934d87039ccc6d471daee76e176e55362dca05e3929c211ea6bde0d62ff"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-CL.linux-x86_64.tar.bz2"; + locale = "es-CL"; + arch = "linux-x86_64"; + sha512 = "0155a8aa1f2345c0ed2bff07c124ed8ae4024b11fb879212cc894c102794a4b28b5161e5e365f06e79ef3419bc62db8dee2d03a5a9e8551f0e6e49c062d83bd5"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-ES.linux-i686.tar.bz2"; + locale = "es-ES"; + arch = "linux-i686"; + sha512 = "3c9325b322ad410f8ba202bc006c0e0780bc18445afe3162eedd507564aff302deec652e5a666b4f813a9c5df35ec5b240ee37482627711909f1e7aef3b9a45b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-ES.linux-x86_64.tar.bz2"; + locale = "es-ES"; + arch = "linux-x86_64"; + sha512 = "e976a580a136609601eed2475b2ed3cf77f4e430263ed089c0a1d5ebf21ef8305444c9fed5becaa545fc130b83b4d96e015d60a5dcad22a4c364eeb08090191b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-MX.linux-i686.tar.bz2"; + locale = "es-MX"; + arch = "linux-i686"; + sha512 = "21889b67ec2f5f6ae2baeac688d55275c8f5a21b73548d9984e7f02d0fbf60558b991512060fc1cc89a05888dd7a57f6f16ceef22ea0947bd49de10c6a6b0aea"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-MX.linux-x86_64.tar.bz2"; + locale = "es-MX"; + arch = "linux-x86_64"; + sha512 = "e612c259169e08e2ba4fc2b5bbd4f0e46a569d82c947465eaae746ea440d62c4df33aeebc4a2c792b39a218c661f2e7d47daaddf40820106aa290dbb8eb158e4"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fa.linux-i686.tar.bz2"; + locale = "fa"; + arch = "linux-i686"; + sha512 = "30b23f194e554523209758967ff56f0cf5995bf402df345d76859fc423dbc1380b0ab80bcb53cf6f89f287e664819bb4287335c588cd251fde585ab8c871c3cc"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fa.linux-x86_64.tar.bz2"; + locale = "fa"; + arch = "linux-x86_64"; + sha512 = "adfebfef00b6c080e10a051e02838a5d7d4f121920741b551440f0505882d28b8bf5e3939659bf9d5b975de6433c2fe3b243418e6c277556f3c1582e5dbf1394"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fr.linux-i686.tar.bz2"; + locale = "fr"; + arch = "linux-i686"; + sha512 = "2751f8b92450ab7a373172d68d95c13fd74410f3a77918bbb2c1107a3b4c442be218c7ad625230cdfe994db58d06348a7fccf9d54f9fe61431b5745dce2acfc8"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fr.linux-x86_64.tar.bz2"; + locale = "fr"; + arch = "linux-x86_64"; + sha512 = "bbaeb4fe2c7113d094ca0cdd692a063b83a7648d55f6581f8d94bf2400f76901fecbd6a90dc9e8898d7b490f643f7e3812e2e14e821fb9aa23dd6b79fa54beb6"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fy-NL.linux-i686.tar.bz2"; + locale = "fy-NL"; + arch = "linux-i686"; + sha512 = "b350c10cf8442c93fcabde01796859fb4cd4debaba7db2a4da8663a2f6de702a4f74646a7192663beb93cead3c3aeb923d4c6e3f6049fc03a9afe0d69c17fd0d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fy-NL.linux-x86_64.tar.bz2"; + locale = "fy-NL"; + arch = "linux-x86_64"; + sha512 = "75a210191ec18ddbdbedc872a07524f8609f825555ff6c5c1325e298d035bd99082fdd518db7edf1943b6dc3bec7498bd0328a86d7a395170a381acb97f0695d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.gl.linux-i686.tar.bz2"; + locale = "gl"; + arch = "linux-i686"; + sha512 = "8de808f12d6b9ef6fc0d04aa52dbbe320ecf6ee837dd9c28ddfef16c8955d60ee919f5bccf25e0646cfcb7ecd6254652dda4f7d0bae5f72b7e699cf351f2e639"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.gl.linux-x86_64.tar.bz2"; + locale = "gl"; + arch = "linux-x86_64"; + sha512 = "af57a5309a4aaa068dea168b5f6e2542db4cf94a4b32cba62550496a0ae676dbe4aec5968afe4a6525ffc329cfb06b19e31da4179703511cb1cdf173fbce0c45"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.he.linux-i686.tar.bz2"; + locale = "he"; + arch = "linux-i686"; + sha512 = "8af77b9a1fc510c9ea1db606e172f76fcb8215b06a8008bd4c06b5bc84bb669ff301e865ddbffef1813521abfd31713ef184155c2e7ed965aeca6abfc68e051a"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.he.linux-x86_64.tar.bz2"; + locale = "he"; + arch = "linux-x86_64"; + sha512 = "9da00db63ffa0397d12e1401f12daffb8899c7f07354b67353437f5ba34e7fd72e5e6b3177bb52da1ceffa8e73a55238b5616d4645f742e877ccae0acd64c09a"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.hu.linux-i686.tar.bz2"; + locale = "hu"; + arch = "linux-i686"; + sha512 = "c336106137720ddab97df898247cc1cb5519893e9b4a961e92f891ca6b79c4e921659e7782a9c33a70f0cf16c3eaaf077021feacfef92a8b1434a2e33474d1bd"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.hu.linux-x86_64.tar.bz2"; + locale = "hu"; + arch = "linux-x86_64"; + sha512 = "cdb28bb1b7186feab444b289624ab666e7ef7e3f6f95b0e9bdb7c4ab268304dee129badf92cfd08e4468aab9189fc79e447f6a8e5096ab988f25ab9b0dc42340"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.id.linux-i686.tar.bz2"; + locale = "id"; + arch = "linux-i686"; + sha512 = "81328d7119abac173496c569d3a8f6e71124110f3b7a2e9dbfea002e6886871b99d738223280a678cd76568217dc9e400aec51a8c74630ceb837ee3d20d20678"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.id.linux-x86_64.tar.bz2"; + locale = "id"; + arch = "linux-x86_64"; + sha512 = "ab0c45c7cc389a4fbdd4409e616f64040640a65b189d8079431ac87521f792df56601e8cfb9ba45292adef5f31fd6d287b1bd0e21b3b887b552b2e3cd37a0519"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.it.linux-i686.tar.bz2"; + locale = "it"; + arch = "linux-i686"; + sha512 = "7b8b60aad0358f78288590e97031e44ef96562f06d59d56791ed2d35c4a202ec609a60cae83a5055b3f8948b291a012c5a24cd836ac0505301b9a138207ca9f1"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.it.linux-x86_64.tar.bz2"; + locale = "it"; + arch = "linux-x86_64"; + sha512 = "aa64a0f2a9e9b9334f4ce5608bed6522b90e0ff2f9736650deba55ef270b6220bdaea5d86513b72a635c41a009ffae7c69b206e0cc7348f43c6b90b9a94ea928"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ja.linux-i686.tar.bz2"; + locale = "ja"; + arch = "linux-i686"; + sha512 = "6424d3683978f1f6f6ad1da0d538d00ff423d1726daba97cfb6746fd906ba7c0cc8057c0cd259c182cd2a273a4dc433fe57c1588060653776ad450f3f5cbf630"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ja.linux-x86_64.tar.bz2"; + locale = "ja"; + arch = "linux-x86_64"; + sha512 = "ade4fd306456fa4071ecfa5151ae26472e4462dca4beee1fc1715eaa5cc4e3ce99968666f7faf261f7a8e1a95070915ec3b95bb007089f535b4dbed84bcc7f12"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.kk.linux-i686.tar.bz2"; + locale = "kk"; + arch = "linux-i686"; + sha512 = "cccd1c9248c2ea3f964cca5e7e010c950f35505c6107da84a8fe4d6ab01cba0ce823cb8d79a3cdbbc3fbf914f7e9fdad4e10d30f362cc2ed7f779f9531794127"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.kk.linux-x86_64.tar.bz2"; + locale = "kk"; + arch = "linux-x86_64"; + sha512 = "cc5f5eb531e6f675919cffed8be49373d2c1fb7b3b4356422d0fa77b5eabd20f76fdc3e7dd803fc07124225a142b671422b87448451a80bb2405a6d671c0d712"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ko.linux-x86_64.tar.bz2"; + locale = "ko"; + arch = "linux-x86_64"; + sha512 = "a4ca44364a05a073be9c6b18d87d6876d3f2f2729415cd15a956cb3527677bd7d855a87e8b9e174a5ecaf59bd6d2e452ef9d90531d2680038ccc00f69c7c7f3c"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lt.linux-i686.tar.bz2"; + locale = "lt"; + arch = "linux-i686"; + sha512 = "fbbffe75eb809ab6df2a1e6045e5a875da3568f8382d49ab3abfd0d36d6e98d34b053b62a4cda3a5142e98dfa8ee7d3072b83dac7c1a696a290394ca5fd76638"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lt.linux-x86_64.tar.bz2"; + locale = "lt"; + arch = "linux-x86_64"; + sha512 = "c713b99c37af19af3cc39656881d4b010ef8f92769026378c876706bd6d616c5a48de11756c5df43b69757fcc2c4c30cf58b4e86fa03e80924758062107196d3"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lv.linux-i686.tar.bz2"; + locale = "lv"; + arch = "linux-i686"; + sha512 = "cd42d8264904744df191dbf1bb256a6efb821ab0ef42110a2035678440b8077581e35d22ee173bfede538092037ef1953c1eab660af0963f09894e24cd2aab32"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lv.linux-x86_64.tar.bz2"; + locale = "lv"; + arch = "linux-x86_64"; + sha512 = "e588b1344263abbb278afeaa9be020612834aa265e828a892d11d11ab7b93e697929e619f250bf0f6d30ba4368f11d09310cf7bd10b0daa6bbbea8d5c3af8aa9"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nb-NO.linux-i686.tar.bz2"; + locale = "nb-NO"; + arch = "linux-i686"; + sha512 = "72bb779616d912f269eaf738b4ab4eb721786bedf928f20928235731554917515a24ac6e85dada030135732494a59ffa6599e48800cc1a34e9d095d2ef1d8bad"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nb-NO.linux-x86_64.tar.bz2"; + locale = "nb-NO"; + arch = "linux-x86_64"; + sha512 = "04d55a6af547eaf110adbe2a82136064953bc96199e6679dea7b566b7072e30fbcf4169ab6c6fd7264f5cb41c01ccc8b25196b8578560761d7831931fc56707c"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nl.linux-i686.tar.bz2"; + locale = "nl"; + arch = "linux-i686"; + sha512 = "c21941fce6d5d228674e127279a91974ee1e93447690589e253c62567da9db1dc6251447a3aa0edc4873c10839b08089326ae687936ba1e15169b7c6f24df069"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nl.linux-x86_64.tar.bz2"; + locale = "nl"; + arch = "linux-x86_64"; + sha512 = "990eb7410cfa1d9280f57a741c1ebd2421cabd2a64cf162cc34fc9ad86b1d1d718345ae66dfdfa441b89bdf2383113a80b281231bffd1911e80ea9a7396899eb"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nn-NO.linux-i686.tar.bz2"; + locale = "nn-NO"; + arch = "linux-i686"; + sha512 = "1046df7ce7d407b1144bc821baaf37e87aeafa899c48230c60496d17cee5b8bb89450cd5c83efcbe64c9bb214fba1d1854d195fb776c810cd635bf1070547041"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nn-NO.linux-x86_64.tar.bz2"; + locale = "nn-NO"; + arch = "linux-x86_64"; + sha512 = "8b5c5ddc7278fa22d8f1e5eaac391eefc2af7b5cbaae58b0f854f9a8c4b133e7cce980ac392c43cd70bace96b4dd7798f84ba089e3855b0532557882adaa1904"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pl.linux-i686.tar.bz2"; + locale = "pl"; + arch = "linux-i686"; + sha512 = "a16ef6819a4259eb8311f137f1985d9b2e8cc5206eda55c2d00b791c29de7e45e6bf6e913e5e3633ff741bad85f44c503dd49f950ed0fa49b07c112664aa4416"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pl.linux-x86_64.tar.bz2"; + locale = "pl"; + arch = "linux-x86_64"; + sha512 = "23662ae01b678dccc59cb7f06e246305acdda89148b1fe067de5fc68934161822ad59b56fb502bdf155dc64eff95166b01802e51cbff4200cb6a144c64a8237d"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-BR.linux-i686.tar.bz2"; + locale = "pt-BR"; + arch = "linux-i686"; + sha512 = "83055296fcf3168f26f9cf641522ed482266e1b1639f05c297e44a302d0fa7314b92245d3829aec67047c5e78731504ce1d73f3e3c20afe3d931997e67fb3f39"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-BR.linux-x86_64.tar.bz2"; + locale = "pt-BR"; + arch = "linux-x86_64"; + sha512 = "242d59a575f3e8c2488c82b238d06b75dd25f0d2f2e16ae5a9505e4ecf5794fbc6fb4f4f23a1ae455e2275cee3b7f083ed10f764011478048e52b824176fbf5e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-PT.linux-i686.tar.bz2"; + locale = "pt-PT"; + arch = "linux-i686"; + sha512 = "bb5c38f327f05a0ced9efcf5483b2727445c0c09dfad132c6f50ca9b4ca6b5e2f132c63fb9fa4b3994c6f3c2a9f04e9418af70f31ea7e498b1cfb7323da75bfe"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-PT.linux-x86_64.tar.bz2"; + locale = "pt-PT"; + arch = "linux-x86_64"; + sha512 = "633400bd440cac23dd6ce54e817ee176e0d398f1bdf5a060307a07e7ae69111b1c08e4348b375cb49eb37cf683dd0477e4d349993a207625c90cadad041d21b3"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ru.linux-i686.tar.bz2"; + locale = "ru"; + arch = "linux-i686"; + sha512 = "eb1bb3662bd649ba7745e6aa014c743583b5959a3c33b9bac992f83017119f3bf5094347a874c8a036bb4e22b791b33c83e21c479c64f8e0829cd33ddc727a23"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ru.linux-x86_64.tar.bz2"; + locale = "ru"; + arch = "linux-x86_64"; + sha512 = "9209ac71eebfd7d994d639a366c01874d4b97c205a8a795a09dfedbd63f45d4dbc71eda444359d9ca906cb791c076c002a3fe6232ed77ea3ea38c94135a7171b"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sk.linux-i686.tar.bz2"; + locale = "sk"; + arch = "linux-i686"; + sha512 = "1c01d4e8bd9199e3687dcc0983935efe122b049794b5e16b7fa7d28e45dceec4025d24ea399e87c961f33d47f481d97318411c3945ce9a3e4bca80cc31207e32"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sk.linux-x86_64.tar.bz2"; + locale = "sk"; + arch = "linux-x86_64"; + sha512 = "9f7296d11c657d6526bf4d54a10deaab53c4af7a92bcc14d8a641e90dc453d52adf7c92c666bc89b0f51d6172a894652686ab31cd9676572dd01bc1b2ad3565e"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sl.linux-i686.tar.bz2"; + locale = "sl"; + arch = "linux-i686"; + sha512 = "55a271782ceb4b5f734ba3e5ae194ff572878d0614c6b9481ca48ada315ab36e5daf2289d63b2e7b2867c4ccfcb6f1045024cb5005578ebae278988f75963965"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sl.linux-x86_64.tar.bz2"; + locale = "sl"; + arch = "linux-x86_64"; + sha512 = "8c1de140b546f4d489907ffbc10db1954c66c9b5d357f05deab0fd3e7b10991a566552682ae0195e5b29f965b35e5718f52f6caf09d913a6025d75481cacd9a6"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sv-SE.linux-i686.tar.bz2"; + locale = "sv-SE"; + arch = "linux-i686"; + sha512 = "ed275c8e51238df6744463e0b593f9f851142d2daf162f8b6e3aa751f9f1aae169a1e7efd4dedc85a05cab08ed02935354656e9ce577fe79512bc5b75e433507"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sv-SE.linux-x86_64.tar.bz2"; + locale = "sv-SE"; + arch = "linux-x86_64"; + sha512 = "aca3a0d2568ff53a592d44d0f68076d5c192e0f85d16322a5ace9d5ff18cc6103936c45c14940d03c468e91da9036d9dab3f2f04b831162954b077fbc06a6357"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.th.linux-i686.tar.bz2"; + locale = "th"; + arch = "linux-i686"; + sha512 = "444a4d95791e3427c69c923bef33c054dc88739c179102edc703c7bd1fa32a48d74761e25f5cf4ed578df475d356b9cf950cda3b0a23d822cad1cc0d58e85f02"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.th.linux-x86_64.tar.bz2"; + locale = "th"; + arch = "linux-x86_64"; + sha512 = "0dc29878096f81b7dbc2d8099367910b144f3f6ddc2ef156b86700bb926319bf18138888aebef625f7a9e2fed62c6df3222539dab5bbe00e6bb183cebd8af9c0"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.tr.linux-i686.tar.bz2"; + locale = "tr"; + arch = "linux-i686"; + sha512 = "3179a669fc3eb3ec956e9b535465a8060273832e4b455cc1344f7f9eb460a671b6bdb56afc057bb22beeffc221260cdc763b9ec031cd7c329bb8918166d06820"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.tr.linux-x86_64.tar.bz2"; + locale = "tr"; + arch = "linux-x86_64"; + sha512 = "ab682bc3501b149bff9eda9bcd1bb90473df452c0d5d5cb5eb9d4493c567f452a484bfd86b29249a3350de2b3d8a757d64324e63acdde5a3e6cd39341a38764f"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.uk.linux-i686.tar.bz2"; + locale = "uk"; + arch = "linux-i686"; + sha512 = "2c14519e92bf04cfdd73e0189e02779a3714f28830685d477486f6731f462191855c1ac6a78b712f0833dacc3e30b9de06188664fbe0182d6529759d8f1e39bc"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.uk.linux-x86_64.tar.bz2"; + locale = "uk"; + arch = "linux-x86_64"; + sha512 = "4a10032431af3c90a657b7d12b7945cfaa2886dffeb8d80871c139f841323cf2541c6e8b098df29392ac1280ef1df098bf1f7946feed1d4bc6d8789c513fb712"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.vi.linux-i686.tar.bz2"; + locale = "vi"; + arch = "linux-i686"; + sha512 = "d6b7cf4bc346cdb61b1e18e86ac1f4f0a93ff743ca0de5679732d0139837da91e3481fbdcb1865553d291e14e9059beec7e3596ad3cb1d07b1394b98ea182b85"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.vi.linux-x86_64.tar.bz2"; + locale = "vi"; + arch = "linux-x86_64"; + sha512 = "b5bfb12ee5f225e54463103bf219b0e4f4d3d6ca3d954911374d5442c53ca5a75da40c61a04d2436c1335f6fa59255f6b0d063f9ebe0e87da26100e5f2dddff8"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-CN.linux-i686.tar.bz2"; + locale = "zh-CN"; + arch = "linux-i686"; + sha512 = "e204aa5c675183bd20852ec9201c2f978a8152a9eb36b1e9ea4e35bdb4268aa5289d476293c3c073c3d21db22167d381f8b6f61bbdeca97b05920394f33bc6e8"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-CN.linux-x86_64.tar.bz2"; + locale = "zh-CN"; + arch = "linux-x86_64"; + sha512 = "895e7ab57368aba33d3588b00dc4f13a3294a476fc874d39df66273b00ba2e11a8f18ce85ef95ade8d9c9d98ac6c47bd93f166f498e51f7951b224182fa99775"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-TW.linux-i686.tar.bz2"; + locale = "zh-TW"; + arch = "linux-i686"; + sha512 = "c346f52fdca4cce2dea5014426d6b1471707348ce358ee98b1520d2a9526035ee654aac6025a5b74f0d22d13b2887b8f338e6e70eb11859df780f2620ba0d214"; + } + { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-TW.linux-x86_64.tar.bz2"; + locale = "zh-TW"; + arch = "linux-x86_64"; + sha512 = "bd78a693fb6c715b93e5f8c03c26db55bf76cdbf4781bc79164f5d454a5f0462bd4e03c95fc54353c26ca1f9af6786d63e1e75bd85a9124db8f404a20c5958e8"; + } ]; + version = "53.0a1"; } diff --git a/pkgs/firefox-bin/update.nix b/pkgs/firefox-bin/update.nix new file mode 100644 index 000000000000..05e3f42d9e61 --- /dev/null +++ b/pkgs/firefox-bin/update.nix @@ -0,0 +1,108 @@ +{ name +, writeScript +, xidel +, coreutils +, gnused +, gnugrep +, curl +, channel +, basePath ? "pkgs/firefox-bin" +, baseUrl ? "http://archive.mozilla.org/pub/firefox/nightly/" +}: + +assert builtins.elem channel ["nightly" "developer"]; + +let + version = (builtins.parseDrvName name).version; +in writeScript "update-${channel}-bin" '' + PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin + + pushd ${basePath} + + tmpfile=`mktemp` + url=${baseUrl} + + # retrive last year + year=`xidel -q $url --extract "//a" | \ + sed s"/.$//" | \ + grep "^[0-9]" | \ + sort | \ + tail -1` + + month=`xidel -q "$url$year/" --extract "//a" | \ + sed s"/.$//" | \ + grep "^[0-9]" | \ + sort | \ + tail -1` + + cat > $tmpfile <> $tmpfile <> $tmpfile <> $tmpfile < ${(builtins.parseDrvName package.name).name}.log + CODE=$? + if [ "$CODE" != "0" ]; then + echo " - ${package.name}: ERROR " + echo "" + echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" + echo "" + cat ${(builtins.parseDrvName package.name).name}.log + echo "" + echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" + exit $CODE + else + rm ${(builtins.parseDrvName package.name).name}.log + fi + echo " - ${package.name}: DONE. " + ''; + +in pkgs.stdenv.mkDerivation { + name = "nixpkgs-mozilla-update-script"; buildCommand = '' - echo "+--------------------------------------------------------+" - echo "| Not possible to update repositories using \`nix-build\`. |" - echo "| Please run \`nix-shell update.nix\`. |" - echo "+--------------------------------------------------------+" + echo "" + echo "----------------------------------------------------------------" + echo "" + echo "Not possible to update packages using \`nix-build\`" + echo "" + echo "${helpText}" + echo "----------------------------------------------------------------" exit 1 ''; shellHook = '' - export HOME=$PWD - ${builtins.concatStringsSep "\n\n" packages} - echo "Packages updated!" - exit + echo "" + echo "Going to be running update for following packages:" + echo "${builtins.concatStringsSep "\n" (map (x: " - ${x.name}") packages)}" + echo "" + read -n1 -r -p "Press space to continue..." confirm + if [ "$confirm" = "" ]; then + echo "" + echo "Running update for:" + ${builtins.concatStringsSep "\n" (map runUpdateScript packages)} + echo "" + echo "Packages updated!" + exit 0 + else + echo "Aborting!" + exit 1 + fi ''; } -- cgit 1.4.1 From eb854056b86403f104b9347a05fad350a06dfbdc Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Tue, 27 Dec 2016 18:59:18 +0100 Subject: gecko: update --- default.nix | 2 +- pkgs/gecko/default.nix | 5 ++--- pkgs/gecko/source.json | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/default.nix b/default.nix index 3e33b0232f42..5891c141bb73 100644 --- a/default.nix +++ b/default.nix @@ -18,7 +18,7 @@ in let callPackage = (extra: pkgs.lib.callPackageWith - ({ inherit geckoSrc servoSrc; } // self // pkgs // extra)) {}; + ({ inherit geckoSrc servoSrc; } // self // extra)) {}; self = { diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 54f7402418ee..56778c362cfd 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -26,11 +26,10 @@ let else geckoSrc; - # TODO: figure out version from geckoSrc - version = "latest"; + version = "HEAD"; # XXX: builtins.readFile "${src}/browser/config/version.txt"; in mkDerivation { - name = "firefox-${version}"; + name = "gecko-dev-${version}"; inherit src; buildInputs = [ diff --git a/pkgs/gecko/source.json b/pkgs/gecko/source.json index 936d71fb2d38..12af3e25ed1f 100644 --- a/pkgs/gecko/source.json +++ b/pkgs/gecko/source.json @@ -1,6 +1,6 @@ { "owner": "mozilla", "repo": "gecko-dev", - "rev": "bfcc10319e4e3ce78367fa9bba9316f7eb5248b6", - "sha256": "0h1ryjcp2h2bhnab1spm5609sffkpvczxnigxj8vxjmz7z24m755" + "rev": "14daa764d498b6694ffbe36628e7914aa0e82fa7", + "sha256": "0nrk54sg89h9fip56hkv1xg6vhj1zkl690mfk6lqjp758ahdjlfw" } -- cgit 1.4.1 From 799c06498cd5f76a654bf03b79ba7ccf4f644783 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Sat, 4 Mar 2017 18:12:30 +0000 Subject: Add Nixpkgs overlay for pulling pre-build binaries of Rust & Cargo. --- lib/parseTOML.nix | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ rust-overlay.nix | 122 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 280 insertions(+) create mode 100644 lib/parseTOML.nix create mode 100644 rust-overlay.nix diff --git a/lib/parseTOML.nix b/lib/parseTOML.nix new file mode 100644 index 000000000000..b8202fd47b5f --- /dev/null +++ b/lib/parseTOML.nix @@ -0,0 +1,158 @@ +with builtins; +let + layout_pat = "[ \n]+"; + layout_pat_opt = "[ \n]*"; + token_pat = ''=|[[][[][a-zA-Z0-9_."*-]+[]][]]|[[][a-zA-Z0-9_."*-]+[]]|[a-zA-Z0-9_-]+|"[^"]*"''; + tokenizer_rec = len: prevTokens: patterns: str: + let + pattern = head patterns; + layoutAndTokens = match pattern str; + matchLength = stringLength (head layoutAndTokens); + tokens = prevTokens ++ tail layoutAndTokens; + in + if layoutAndTokens == null then + # if we cannot reduce the pattern, return the list of token + if tail patterns == [] then prevTokens + # otherwise, take the next pattern, which only captures half the token. + else tokenizer_rec len prevTokens (tail patterns) str + else tokenizer_rec len tokens patterns (substring matchLength len str); + + avgTokenSize = 100; + ceilLog2 = v: + let inner = n: i: if i < v then inner (n + 1) (i * 2) else n; in + inner 1 1; + + # The builtins.match function match the entire string, and generate a list of all captured + # elements. This is the most efficient way to make a tokenizer, if we can make a pattern which + # capture all token of the file. Unfortunately C++ std::regex does not support captures in + # repeated patterns. As a work-around, we generate patterns which are matching tokens in multiple + # of 2, such that we can avoid iterating too many times over the content. + generatePatterns = str: + let + depth = ceilLog2 (stringLength str / avgTokenSize); + inner = depth: + if depth == 0 then [ "(${token_pat})" ] + else + let next = inner (depth - 1); in + [ "${head next}${layout_pat}${head next}" ] ++ next; + in + map (pat: "(${layout_pat_opt}${pat}).*" ) (inner depth); + + tokenizer = str: tokenizer_rec (stringLength str) [] (generatePatterns str) str; + + unescapeString = str: + # Let's ignore any escape character for the moment. + assert match ''"[^"]*"'' str != null; + substring 1 (stringLength str - 2) str; + + tokenToValue = token: + if token == "true" then true + else if token == "false" then false + else unescapeString token; + + # Match the content of TOML format section names, and add the grouping such that: + # match header_pat "a.b.c" == [ "a" ".b" "b" ".c" "c" ] + # + # Note, this implementation is limited to 11 identifiers. + ident_pat = ''[a-zA-Z0-9_-]+|"[^"]*"''; + header_pat = + foldl' (pat: n: "(${ident_pat})([.]${pat})?") + "(${ident_pat})" (genList (n: 0) 10); + + headerToPath = token: wrapLen: + let + token' = substring wrapLen (stringLength token - 2 * wrapLen) token; + matchPath = match header_pat token'; + filterDot = filter (s: substring 0 1 s != ".") matchPath; + path = + map (s: + if substring 0 1 s != ''"'' then s + else unescapeString s + ) filterDot; + in + assert matchPath != null; + # assert trace "Path: ${token'}; match as ${toString path}" true; + path; + + parserInitState = { + idx = 0; + path = []; + isList = false; + output = []; + elem = {}; + }; + + # Imported from nixpkgs library. + setAttrByPath = attrPath: value: + if attrPath == [] then value + else listToAttrs + [ { name = head attrPath; value = setAttrByPath (tail attrPath) value; } ]; + + closeSection = state: + state // { + output = state.output ++ [ (setAttrByPath state.path ( + if state.isList then [ state.elem ] + else state.elem + )) ]; + }; + + readToken = state: token: + # assert trace "Read '${token}'" true; + if state.idx == 0 then + if substring 0 2 token == "[[" then + (closeSection state) // { + path = headerToPath token 2; + isList = true; + elem = {}; + } + else if substring 0 1 token == "[" then + (closeSection state) // { + path = headerToPath token 1; + isList = false; + elem = {}; + } + else + assert match "[a-zA-Z0-9_-]+" token != null; + state // { idx = 1; name = token; } + else if state.idx == 1 then + assert token == "="; + state // { idx = 2; } + else + assert state.idx == 2; + state // { + idx = 0; + elem = state.elem // { + "${state.name}" = tokenToValue token; + }; + }; + + # aggregate each section as individual attribute sets. + parser = str: + closeSection (foldl' readToken parserInitState (tokenizer str)); + + fromTOML = toml: + let + sections = (parser toml).output; + # Inlined from nixpkgs library functions. + zipAttrs = sets: + listToAttrs (map (n: { + name = n; + value = + let v = catAttrs n sets; in + # assert trace "Visiting ${n}" true; + if tail v == [] then head v + else if isList (head v) then concatLists v + else if isAttrs (head v) then zipAttrs v + else throw "cannot merge sections"; + }) (concatLists (map attrNames sets))); + in + zipAttrs sections; +in + +{ + testing = fromTOML (builtins.readFile ./channel-rust-nightly.toml); + testing_url = fromTOML (builtins.readFile (builtins.fetchurl + https://static.rust-lang.org/dist/channel-rust-nightly.toml)); + inherit fromTOML; +} + diff --git a/rust-overlay.nix b/rust-overlay.nix new file mode 100644 index 000000000000..a0acb74498d1 --- /dev/null +++ b/rust-overlay.nix @@ -0,0 +1,122 @@ +# This file provide a Rust overlay, which provides pre-packaged bleeding edge versions of rustc +# and cargo. +self: super: + +with import ./lib/parseTOML.nix; +let + # See https://github.com/rust-lang-nursery/rustup.rs/blob/master/src/rustup-dist/src/dist.rs + defaultDistRoot = "https://static.rust-lang.org"; + manifest_v1_url = { + dist_root ? defaultDistRoot + "/dist", + date ? null, + staging ? false, + # A channel can be "nightly", "beta", "stable", "\d{1}.\d{1}.\d{1}", or "\d{1}.\d{2\d{1}". + channel ? "nightly" + }: + if date == null && staging == false + then "${dist_root}/channel-rust-${channel}" + else if date != null && staging == false + then "${dist_root}/${date}/channel-rust-${channel}" + else if date == null && staging == true + then "${dist_root}/staging/channel-rust-${channel}" + else throw "not a real-world case"; + + manifest_v2_url = args: (manifest_v1_url args) + ".toml"; + + # Intersection of rustup-dist/src/dist.rs listed platforms and stdenv/default.nix. + hostTripleOf = system: { # switch + "i686-linux" = "i686-unknown-linux-gnu"; + "x86_64-linux" = "x86_64-unknown-linux-gnu"; + "armv5tel-linux" = "arm-unknown-linux-gnueabi"; + "armv6l-linux" = "arm-unknown-linux-gnueabi"; + "armv7l-linux" = "arm-unknown-linux-gnueabi"; + "aarch64-linux" = "aarch64-unknown-linux-gnu"; + "mips64el-linux" = "mips64el-unknown-linux-gnuabi64"; + "x86_64-darwin" = "x86_64-apple-darwin"; + "i686-cygwin" = "i686-pc-windows-gnu"; # or msvc? + "x86_64-cygwin" = "x86_64-pc-windows-gnu"; # or msvc? + "x86_64-freebsd" = "x86_64-unknown-freebsd"; + }.${system} or (throw "Rust overlay does not support ${system} yet."); + + # Manifest files are organized as follow: + # { date = "2017-03-03"; + # pkg.cargo.version= "0.18.0-nightly (5db6d64 2017-03-03)"; + # pkg.cargo.target.x86_64-unknown-linux-gnu = { + # available = true; + # hash = "abce..."; # sha256 + # url = "https://static.rust-lang.org/dist/....tar.gz"; + # }; + # } + # + # The packages available usually are: + # cargo, rust-analysis, rust-docs, rust-src, rust-std, rustc, and + # rust, which aggregates them in one package. + fromManifest = manifest: {stdenv, fetchurl, patchelf}: + let pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); in + with super.lib; flip mapAttrs pkgs.pkg (name: pkg: + let + srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; + version' = builtins.match "([^ ]*) [(]([^ ]*) ([^ ]*)[)]" pkg.version; + version = "${elemAt version' 0}-${elemAt version' 2}-${elemAt version' 1}"; + in + stdenv.mkDerivation { + name = name + "-" + version; + src = fetchurl { + url = srcInfo.url; + sha256 = srcInfo.hash; + }; + # (@nbp) TODO: Check on Windows and Mac. + # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. + installPhase = '' + CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose + + setInterpreter() { + local dir="$1" + [ -e "$dir" ] || return 0 + + header "Patching interpreter of ELF executables and libraries in $dir" + local i + while IFS= read -r -d ''$'\0' i; do + if [[ "$i" =~ .build-id ]]; then continue; fi + if ! isELF "$i"; then continue; fi + echo "setting interpreter of $i" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true + done < <(find "$dir" -type f -print0) + } + + setInterpreter $out + ''; + } + ); + +in + +{ + lib = super.lib // { + inherit fromTOML; + rustLib = { + inherit fromManifest manifest_v2_url ; + }; + }; + + # For each channel: + # rustChannels.nightly.cargo + # rustChannels.nightly.rust # Aggregate all others. (recommended) + # rustChannels.nightly.rustc + # rustChannels.nightly.rust-analysis + # rustChannels.nightly.rust-docs + # rustChannels.nightly.rust-src + # rustChannels.nightly.rust-std + rustChannels = { + nightly = fromManifest (manifest_v2_url { channel = "nightly"; }) { + inherit (self) stdenv fetchurl patchelf; + }; + beta = fromManifest (manifest_v2_url { channel = "beta"; }) { + inherit (self) stdenv fetchurl patchelf; + }; + stable = fromManifest (manifest_v2_url { channel = "stable"; }) { + inherit (self) stdenv fetchurl patchelf; + }; + }; +} + -- cgit 1.4.1 From 50f271120886fc6d47c9b9af8a226ab80652aede Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sun, 12 Mar 2017 12:03:44 +0000 Subject: Document how to use the Rust overlay --- README.rst | 14 ++++++++++++++ rust-overlay-install.sh | 10 ++++++++++ 2 files changed, 24 insertions(+) create mode 100755 rust-overlay-install.sh diff --git a/README.rst b/README.rst index b54a0f63d3b6..3b4b6a9c73b7 100644 --- a/README.rst +++ b/README.rst @@ -12,6 +12,20 @@ Current packages - firefox-dev-bin (`Firefox Developer Edition `) - VidyoDesktop () +Rust overlay +------------ + +A nixpkgs overlay is provided to contains all of the latest rust releases. + +To use the rust overlay run the ``./rust-overlay-install.sh`` command. It will +link the current ``./rust-overlay.nix`` into you ``~/.nixpkgs/overlays`` folders. + +In some versions of nixpkgs you also have to set + +``export NIX_PATH=$NIX_PATH:nixpkgs-overlays=$HOME/.nixpkgs/overlays`` + +Once this is done, use ``nix-env -iA nixpkgs.rustChannels.nightly.rust`` for +example. Replace the ``nixpkgs.`` prefix with ``nixos.`` on NixOS. TODO ---- diff --git a/rust-overlay-install.sh b/rust-overlay-install.sh new file mode 100755 index 000000000000..9148fd81fd68 --- /dev/null +++ b/rust-overlay-install.sh @@ -0,0 +1,10 @@ +#!/bin/sh -e + +cd "$(dirname "$0")" || exit + +overlay_dir=$HOME/.nixpkgs/overlays +name=rust-overlay.nix + +mkdir -p "$overlay_dir" + +ln -s "$PWD/$name" "$overlay_dir/$name" -- cgit 1.4.1 From e2a920faec5a9ebd6ff34abf072aacb4e0ed6f70 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Thu, 16 Mar 2017 14:15:15 +0000 Subject: Fixes the overlay documentation --- README.rst | 8 +++----- rust-overlay-install.sh | 6 ++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.rst b/README.rst index 3b4b6a9c73b7..9460070c157a 100644 --- a/README.rst +++ b/README.rst @@ -15,14 +15,12 @@ Current packages Rust overlay ------------ +**NOTE:** Nix overlays only works in unstable and will be in the next (17.03) release. + A nixpkgs overlay is provided to contains all of the latest rust releases. To use the rust overlay run the ``./rust-overlay-install.sh`` command. It will -link the current ``./rust-overlay.nix`` into you ``~/.nixpkgs/overlays`` folders. - -In some versions of nixpkgs you also have to set - -``export NIX_PATH=$NIX_PATH:nixpkgs-overlays=$HOME/.nixpkgs/overlays`` +link the current ``./rust-overlay.nix`` into you ``~/.config/nixpkgs/overlays`` folders. Once this is done, use ``nix-env -iA nixpkgs.rustChannels.nightly.rust`` for example. Replace the ``nixpkgs.`` prefix with ``nixos.`` on NixOS. diff --git a/rust-overlay-install.sh b/rust-overlay-install.sh index 9148fd81fd68..fac41ae43316 100755 --- a/rust-overlay-install.sh +++ b/rust-overlay-install.sh @@ -2,9 +2,11 @@ cd "$(dirname "$0")" || exit -overlay_dir=$HOME/.nixpkgs/overlays +overlay_dir=$HOME/.config/nixpkgs/overlays name=rust-overlay.nix -mkdir -p "$overlay_dir" +echo Installing $name as an overlay +set -x +mkdir -p "$overlay_dir" ln -s "$PWD/$name" "$overlay_dir/$name" -- cgit 1.4.1 From 20635b591e1ba4ec105996bb632a133d71661406 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Tue, 28 Mar 2017 01:25:41 +0200 Subject: Change license to MIT, fixes #17 Right now mozilla/nixpkgs-mozilla is MPL licensed. As this is Mozilla code, there's not a problem with that. But nixpkgs code is traditionally MIT and Rust code is traditionally MIT/Apache dual-licensed. If we want this code to somehow benefit nixpkgs in the future, we'll want it licensed under MIT, and if we want it possibly benefiting Rustup in the future (should they decide to support Nix) we'll want to also have Apache license. --- LICENSE | 392 ++++------------------------------------------------------------ 1 file changed, 19 insertions(+), 373 deletions(-) diff --git a/LICENSE b/LICENSE index a612ad9813b0..5655fa311cd2 100644 --- a/LICENSE +++ b/LICENSE @@ -1,373 +1,19 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. +Copyright 2017 Mozilla + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. -- cgit 1.4.1 From 4779fb7776c3d38d78b5ebcee62165e6d1350f74 Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Fri, 31 Mar 2017 11:07:36 +0200 Subject: Adds support to install all extensions of rust as one package Currently, if you install the "rust" package, you only install rustc, cargo and rust-std. With this patch, the rust package automatically installs all packages that are listed as extension. So, you can use "rustc --print sysroot" to build a path to the rust-src. Solves: #16 --- rust-overlay.nix | 101 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 32 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index a0acb74498d1..c85c7867be02 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -38,6 +38,37 @@ let "x86_64-freebsd" = "x86_64-unknown-freebsd"; }.${system} or (throw "Rust overlay does not support ${system} yet."); + getExtensions = pkgs: pkgname: stdenv: + let + pkg = pkgs.${pkgname}; + srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; + extensions = srcInfo.extensions or []; + extensionNamesList = + builtins.map (pkg: pkg.pkg) (builtins.filter (pkg: (pkg.target == (hostTripleOf stdenv.system)) || (pkg.target == "*")) extensions); + in + extensionNamesList; + + getFetchUrl = pkgs: pkgname: stdenv: fetchurl: + let + pkg = pkgs.${pkgname}; + srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; + in + (fetchurl { url = srcInfo.url; sha256 = srcInfo.hash; }); + + getSrcs = pkgs: pkgname: extensions: stdenv: fetchurl: + with super.lib; + let + availableExtensions = getExtensions pkgs pkgname stdenv; + missingExtensions = subtractLists availableExtensions extensions; + extensionsToInstall = + if missingExtensions == [] then extensions else throw '' + While compiling ${pkgname}: the extension ${head missingExtensions} is not available. + Select extensions from the following list: + ${concatStringsSep "\n" availableExtensions}''; + pkgsToInstall = [pkgname] ++ extensionsToInstall; + in + (builtins.map (pkg: (getFetchUrl pkgs pkg stdenv fetchurl)) pkgsToInstall); + # Manifest files are organized as follow: # { date = "2017-03-03"; # pkg.cargo.version= "0.18.0-nightly (5db6d64 2017-03-03)"; @@ -51,43 +82,49 @@ let # The packages available usually are: # cargo, rust-analysis, rust-docs, rust-src, rust-std, rustc, and # rust, which aggregates them in one package. - fromManifest = manifest: {stdenv, fetchurl, patchelf}: + fromManifest = manifest: { stdenv, fetchurl, patchelf }: let pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); in with super.lib; flip mapAttrs pkgs.pkg (name: pkg: - let - srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; - version' = builtins.match "([^ ]*) [(]([^ ]*) ([^ ]*)[)]" pkg.version; - version = "${elemAt version' 0}-${elemAt version' 2}-${elemAt version' 1}"; - in - stdenv.mkDerivation { - name = name + "-" + version; - src = fetchurl { - url = srcInfo.url; - sha256 = srcInfo.hash; - }; - # (@nbp) TODO: Check on Windows and Mac. - # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. - installPhase = '' - CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose + super.makeOverridable ({extensions}: + let + version' = builtins.match "([^ ]*) [(]([^ ]*) ([^ ]*)[)]" pkg.version; + version = "${elemAt version' 0}-${elemAt version' 2}-${elemAt version' 1}"; + srcs = getSrcs pkgs.pkg name extensions stdenv fetchurl; + in + stdenv.mkDerivation { + name = name + "-" + version; + inherit srcs; + sourceRoot = "."; + # (@nbp) TODO: Check on Windows and Mac. + # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. + installPhase = '' + for i in * ; do + if [ -d "$i" ]; then + cd $i + CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose + cd .. + fi + done - setInterpreter() { - local dir="$1" - [ -e "$dir" ] || return 0 + setInterpreter() { + local dir="$1" + [ -e "$dir" ] || return 0 - header "Patching interpreter of ELF executables and libraries in $dir" - local i - while IFS= read -r -d ''$'\0' i; do - if [[ "$i" =~ .build-id ]]; then continue; fi - if ! isELF "$i"; then continue; fi - echo "setting interpreter of $i" - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true - done < <(find "$dir" -type f -print0) - } + header "Patching interpreter of ELF executables and libraries in $dir" + local i + while IFS= read -r -d ''$'\0' i; do + if [[ "$i" =~ .build-id ]]; then continue; fi + if ! isELF "$i"; then continue; fi + echo "setting interpreter of $i" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true + done < <(find "$dir" -type f -print0) + } - setInterpreter $out - ''; - } - ); + setInterpreter $out + ''; + } + ) { extensions = []; } + ); in -- cgit 1.4.1 From 47ee9fdff11adc6a06d0e68fde557620251d31df Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Mon, 10 Apr 2017 16:05:01 +0200 Subject: rust-overlay: patch SHEBANGS in install.sh This prevents the system-wide `/bin/sh` to be used, which causes trouble on travis-ci and the installed dash. --- rust-overlay.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/rust-overlay.nix b/rust-overlay.nix index c85c7867be02..d04c6a952340 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -101,6 +101,7 @@ let for i in * ; do if [ -d "$i" ]; then cd $i + patchShebangs install.sh CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose cd .. fi -- cgit 1.4.1 From ea67802a08e0b0375f02114db7b9658c5f163cea Mon Sep 17 00:00:00 2001 From: Havvy Date: Thu, 20 Apr 2017 02:33:16 -0700 Subject: Remove with statements. Be more explicit with where bindings are coming from. --- rust-overlay.nix | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index d04c6a952340..42bece68290a 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -2,8 +2,9 @@ # and cargo. self: super: -with import ./lib/parseTOML.nix; let + fromTOML = (import ./lib/parseTOML.nix).fromTOML; + # See https://github.com/rust-lang-nursery/rustup.rs/blob/master/src/rustup-dist/src/dist.rs defaultDistRoot = "https://static.rust-lang.org"; manifest_v1_url = { @@ -56,8 +57,8 @@ let (fetchurl { url = srcInfo.url; sha256 = srcInfo.hash; }); getSrcs = pkgs: pkgname: extensions: stdenv: fetchurl: - with super.lib; let + subtractLists = super.lib.subtractLists; availableExtensions = getExtensions pkgs pkgname stdenv; missingExtensions = subtractLists availableExtensions extensions; extensionsToInstall = @@ -83,9 +84,14 @@ let # cargo, rust-analysis, rust-docs, rust-src, rust-std, rustc, and # rust, which aggregates them in one package. fromManifest = manifest: { stdenv, fetchurl, patchelf }: - let pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); in - with super.lib; flip mapAttrs pkgs.pkg (name: pkg: - super.makeOverridable ({extensions}: + let + pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); + flip = super.lib.flip; + mapAttrs = super.lib.mapAttrs; + makeOverridable = super.makeOverridable; + in + flip mapAttrs pkgs.pkg (name: pkg: + makeOverridable ({extensions}: let version' = builtins.match "([^ ]*) [(]([^ ]*) ([^ ]*)[)]" pkg.version; version = "${elemAt version' 0}-${elemAt version' 2}-${elemAt version' 1}"; -- cgit 1.4.1 From 118efa15eca28112ba8ead3ab2a3e91cc9d4eaf1 Mon Sep 17 00:00:00 2001 From: Havvy Date: Fri, 21 Apr 2017 21:17:22 -0700 Subject: Use inherit where useful. --- rust-overlay.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 42bece68290a..57e621c66338 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -58,7 +58,7 @@ let getSrcs = pkgs: pkgname: extensions: stdenv: fetchurl: let - subtractLists = super.lib.subtractLists; + inherit (super.lib) subtractLists; availableExtensions = getExtensions pkgs pkgname stdenv; missingExtensions = subtractLists availableExtensions extensions; extensionsToInstall = @@ -84,11 +84,10 @@ let # cargo, rust-analysis, rust-docs, rust-src, rust-std, rustc, and # rust, which aggregates them in one package. fromManifest = manifest: { stdenv, fetchurl, patchelf }: - let + let + inherit (super) makeOverridable; + inherit (super.lib) flip mapAttrs; pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); - flip = super.lib.flip; - mapAttrs = super.lib.mapAttrs; - makeOverridable = super.makeOverridable; in flip mapAttrs pkgs.pkg (name: pkg: makeOverridable ({extensions}: -- cgit 1.4.1 From 918b538f52cd9fea4bb1cf56d7f5abba5a4af634 Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Wed, 26 Apr 2017 12:09:42 +0100 Subject: rust-overlay.nix: fix some scope issues --- rust-overlay.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 57e621c66338..d1bc2b3aa301 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -58,7 +58,8 @@ let getSrcs = pkgs: pkgname: extensions: stdenv: fetchurl: let - inherit (super.lib) subtractLists; + inherit (builtins) head; + inherit (super.lib) subtractLists concatStringsSep; availableExtensions = getExtensions pkgs pkgname stdenv; missingExtensions = subtractLists availableExtensions extensions; extensionsToInstall = @@ -85,6 +86,7 @@ let # rust, which aggregates them in one package. fromManifest = manifest: { stdenv, fetchurl, patchelf }: let + inherit (builtins) elemAt; inherit (super) makeOverridable; inherit (super.lib) flip mapAttrs; pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); -- cgit 1.4.1 From 21c4f1e63eb3dcf0c8c08e593fde069bd09bbd5b Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Thu, 4 May 2017 13:06:17 +0100 Subject: Update compatibility warning: 17.03 is stable now (#30) --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 9460070c157a..235b9e38b7f4 100644 --- a/README.rst +++ b/README.rst @@ -15,7 +15,7 @@ Current packages Rust overlay ------------ -**NOTE:** Nix overlays only works in unstable and will be in the next (17.03) release. +**NOTE:** Nix overlays only works on up-to-date versions of NixOS/nixpkgs, starting from 17.03. A nixpkgs overlay is provided to contains all of the latest rust releases. -- cgit 1.4.1 From ad798d7390f271ac3e83049faac97abe00300acd Mon Sep 17 00:00:00 2001 From: Rhys Date: Mon, 15 May 2017 09:55:04 +1000 Subject: rust-overlay.nix: use armv7 triple when on armv7 --- rust-overlay.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index d1bc2b3aa301..73809b3f6360 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -30,7 +30,7 @@ let "x86_64-linux" = "x86_64-unknown-linux-gnu"; "armv5tel-linux" = "arm-unknown-linux-gnueabi"; "armv6l-linux" = "arm-unknown-linux-gnueabi"; - "armv7l-linux" = "arm-unknown-linux-gnueabi"; + "armv7l-linux" = "armv7-unknown-linux-gnueabihf"; "aarch64-linux" = "aarch64-unknown-linux-gnu"; "mips64el-linux" = "mips64el-unknown-linux-gnuabi64"; "x86_64-darwin" = "x86_64-apple-darwin"; -- cgit 1.4.1 From 90d41cd5dd6c31c7bfaaab68dd6f00bae596d742 Mon Sep 17 00:00:00 2001 From: Rhys Date: Wed, 10 May 2017 10:12:37 +1000 Subject: rust-overlay.nix: add fromManifestFile Allows users to avoid builtins.fetchurl when targeting a specific version of Rust. --- rust-overlay.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 73809b3f6360..5a1d3d6b757a 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -84,12 +84,12 @@ let # The packages available usually are: # cargo, rust-analysis, rust-docs, rust-src, rust-std, rustc, and # rust, which aggregates them in one package. - fromManifest = manifest: { stdenv, fetchurl, patchelf }: + fromManifestFile = manifest: { stdenv, fetchurl, patchelf }: let inherit (builtins) elemAt; inherit (super) makeOverridable; inherit (super.lib) flip mapAttrs; - pkgs = fromTOML (builtins.readFile (builtins.fetchurl manifest)); + pkgs = fromTOML (builtins.readFile manifest); in flip mapAttrs pkgs.pkg (name: pkg: makeOverridable ({extensions}: @@ -134,13 +134,16 @@ let ) { extensions = []; } ); + fromManifest = manifest: { stdenv, fetchurl, patchelf }: + fromManifestFile (builtins.fetchurl manifest) { inherit stdenv fetchurl patchelf; }; + in { lib = super.lib // { inherit fromTOML; rustLib = { - inherit fromManifest manifest_v2_url ; + inherit fromManifest fromManifestFile manifest_v2_url; }; }; @@ -164,4 +167,3 @@ in }; }; } - -- cgit 1.4.1 From 7eeb7933f8e48c5ba32070205276fef9bada8acb Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Thu, 8 Jun 2017 03:04:42 +0200 Subject: firefox-nightly-bin: update to latest --- default.nix | 3 +- pkgs/firefox-bin/default.nix | 30 -- pkgs/firefox-bin/developer_sources.nix | 490 ------------------------- pkgs/firefox-bin/nightly_sources.nix | 400 -------------------- pkgs/firefox-bin/update.nix | 108 ------ pkgs/firefox-nightly-bin/default.nix | 27 ++ pkgs/firefox-nightly-bin/developer_sources.nix | 490 +++++++++++++++++++++++++ pkgs/firefox-nightly-bin/sources.nix | 10 + pkgs/firefox-nightly-bin/update.nix | 99 +++++ update.nix | 29 +- 10 files changed, 642 insertions(+), 1044 deletions(-) delete mode 100644 pkgs/firefox-bin/default.nix delete mode 100644 pkgs/firefox-bin/developer_sources.nix delete mode 100644 pkgs/firefox-bin/nightly_sources.nix delete mode 100644 pkgs/firefox-bin/update.nix create mode 100644 pkgs/firefox-nightly-bin/default.nix create mode 100644 pkgs/firefox-nightly-bin/developer_sources.nix create mode 100644 pkgs/firefox-nightly-bin/sources.nix create mode 100644 pkgs/firefox-nightly-bin/update.nix diff --git a/default.nix b/default.nix index 5891c141bb73..b5acecfa15ed 100644 --- a/default.nix +++ b/default.nix @@ -40,8 +40,7 @@ let servo = callPackage ./pkgs/servo { }; - firefox-developer-bin = callPackage ./pkgs/firefox-bin/default.nix { channel = "developer"; }; - firefox-nightly-bin = callPackage ./pkgs/firefox-bin/default.nix { channel = "nightly"; }; + firefox-nightly-bin = callPackage ./pkgs/firefox-nightly-bin/default.nix { }; VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; diff --git a/pkgs/firefox-bin/default.nix b/pkgs/firefox-bin/default.nix deleted file mode 100644 index 49df311a91ed..000000000000 --- a/pkgs/firefox-bin/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ pkgs -, channel -}: - -assert builtins.elem channel ["nightly" "developer"]; - -let - - unwrapped = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { - inherit (pkgs) stdenv; - generated = import (./. + "/${channel}_sources.nix"); - gconf = pkgs.gnome2.GConf; - inherit (pkgs.gnome2) libgnome libgnomeui; - inherit (pkgs.gnome3) defaultIconTheme; - }; - - name = "firefox-${channel}-bin-${(builtins.parseDrvName unwrapped.name).version}"; - - self = pkgs.wrapFirefox unwrapped { - browserName = "firefox"; - desktopName = "Firefox ${channel} Edition"; - inherit name; - }; - -in self // { - updateScript = import ./update.nix { - inherit channel name; - inherit (pkgs) writeScript xidel coreutils gnused gnugrep curl; - }; -} diff --git a/pkgs/firefox-bin/developer_sources.nix b/pkgs/firefox-bin/developer_sources.nix deleted file mode 100644 index 1bdfdb927fdb..000000000000 --- a/pkgs/firefox-bin/developer_sources.nix +++ /dev/null @@ -1,490 +0,0 @@ -{ - sources = [ - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; - locale = "en-US"; - arch = "linux-x86_64"; - sha512 = "c785d86926a6716e0365ea850b0cb0f81c19a3fcf9421e1676d2196ba813e1ed430177dd6df59d30b0ef517f97ca9e74a1079e0dddc8efa275069a0aa5cc22d7"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ach.linux-x86_64.tar.bz2"; - locale = "ach"; - arch = "linux-x86_64"; - sha512 = "b6d6483c0efa116b2202691eb5cbb66f470c7283b545818bf6f6062d2a794786a45732eb41dc23426e78fbf3a084eea00bd33f0d369d68c218928d367f36e529"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.af.linux-x86_64.tar.bz2"; - locale = "af"; - arch = "linux-x86_64"; - sha512 = "60249aae6292ac9c59569d9f02c0d641199fba82a264995aa5a5cf038ef774f3155b22be5a066922d6b4cc314eb7271306a3726e4fd0cbf1ffc9bcf664fe3bdb"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.an.linux-x86_64.tar.bz2"; - locale = "an"; - arch = "linux-x86_64"; - sha512 = "b4e315c48bbd49103a515303c60684f2e97317be06f5b2bab012da1cf9d50a050b8df453cff140424aeeca04a864460889f8925f96cb6888405e487081f58531"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ar.linux-x86_64.tar.bz2"; - locale = "ar"; - arch = "linux-x86_64"; - sha512 = "fd2491f87730752aa90859521459fee05ef57be66cadc9b8c8682665ada75eae2209e4738b0bb254cfcb2f07e3abacb66574689ff593ff1263e3c8354a59eaca"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.as.linux-x86_64.tar.bz2"; - locale = "as"; - arch = "linux-x86_64"; - sha512 = "3e4a56de71005d8476a87b1a8e4369ca61401128c65d77a0cd44491e3b393faf381b1c8486c3ddb53fc11813135b01fb6e137ed776ed7c162aacfdbff14465e5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ast.linux-x86_64.tar.bz2"; - locale = "ast"; - arch = "linux-x86_64"; - sha512 = "8679be3e3c539b1abf9cfd7135eb2dbccf2a39a267deb4e1a810a957c3ed5969532e46253660b520cb7aa4cd681a08b5c3558ce208bb5a88be7be838cefff13e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.az.linux-x86_64.tar.bz2"; - locale = "az"; - arch = "linux-x86_64"; - sha512 = "e8434b00c4c8f26a3643c59b7ee22d9aff392066a2bb3a556e18eb8721803927fbde26b1d49138990e12b5de217dd8f344df214fcc3ce90324b715f973df5258"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bg.linux-x86_64.tar.bz2"; - locale = "bg"; - arch = "linux-x86_64"; - sha512 = "1ae86a157a063a84a844f5522d9840380abb7b43ce71a535f82034489dc0526c57d3db0938a2d664337d2e6e3cb7d56cef96a90f0cb608e7103bce8a6dc0fe4d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bn-BD.linux-x86_64.tar.bz2"; - locale = "bn-BD"; - arch = "linux-x86_64"; - sha512 = "c8ec312f92834681f63e31291786de5cfed4273dc346485827e77d78b90c882d1b91ac43ff0322e601fbeb2b28b5a67a28bfc9b6bd5152be178ffd261be281ed"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bn-IN.linux-x86_64.tar.bz2"; - locale = "bn-IN"; - arch = "linux-x86_64"; - sha512 = "4fe97372c48612113671aea81ba197ce2a423d48582283189cb2cbc857df6fcf738030ef60860fc8d47b1617bf853773b497386cfae988b2815a3f8b94db0bbe"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.br.linux-x86_64.tar.bz2"; - locale = "br"; - arch = "linux-x86_64"; - sha512 = "55b23ea8b55933cd062c97a6a1c44347124fc3c154c394eaf007ef09eaa4e2519f5c00c6903a85b5bfb499e9c4ee55932067ff8f754d3a01daf05a35460dac8a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bs.linux-x86_64.tar.bz2"; - locale = "bs"; - arch = "linux-x86_64"; - sha512 = "70f7a42cdcd92a0aa864a76582f32ea12e33ac3602a5572804511ab70e7099736d255e1c7a2bd99795d54fb64a30b23b21eff9f9f787d36e3115196564001562"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ca.linux-x86_64.tar.bz2"; - locale = "ca"; - arch = "linux-x86_64"; - sha512 = "7e2a01cbb56932bcb1121d28677c8243f54098906ad6bee57edfd95c18c6f6a25b89d3db5fd986bf33a8d7ad031471f42faedd7b7327d23ba0b5b26c7f35dee5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cak.linux-x86_64.tar.bz2"; - locale = "cak"; - arch = "linux-x86_64"; - sha512 = "3b9dfa09c900465d8db170ccad82dd8aa23f730e25187c982cf139b39446dc7d6167d5f8d6256e9c15b9a2f8c32e5c24e240c2d14f294e1947f4cad8588baf29"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cs.linux-x86_64.tar.bz2"; - locale = "cs"; - arch = "linux-x86_64"; - sha512 = "57ef6af04c832bf74174f5ca565d35db6cb321fba6dcf21c146ee817edd1138960b3a316e70e1d9b8ec0eb34c59345fc4d72ce863784026072467546c83df4a6"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cy.linux-x86_64.tar.bz2"; - locale = "cy"; - arch = "linux-x86_64"; - sha512 = "1432e89284c66b3da67fe79b64a98a4bf1391357e105e59cd81359c67655700b421cc067de936d795d53fe98d2743ae4d9c0b651e894e4fc6bb110167c781339"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.da.linux-x86_64.tar.bz2"; - locale = "da"; - arch = "linux-x86_64"; - sha512 = "fe87aa94b4f9e59f782562e2b66a82e77a948398c6e3b7c5c4c60a7f470ef136197dda41d0e89dce87f9031b220661c9b74f7243b4c4a120021e7196bf9ce027"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.de.linux-x86_64.tar.bz2"; - locale = "de"; - arch = "linux-x86_64"; - sha512 = "5be12057682094fdd0853b998fc1e471ad1f8a4555daedc035994116e4fd0ec6ad5c5040c3ca3ae18a8e08cbceb8788c338234dfd2b23d068f8570c029fa3cd6"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.dsb.linux-x86_64.tar.bz2"; - locale = "dsb"; - arch = "linux-x86_64"; - sha512 = "260e22d96927b9821c53abce71885dc9998bcae0d3ac8aac3ddc2a113a6d437d5379bc8e17395f900423dc6d3b946e73ea64e218f679dd5b0f6de2b286a81402"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.el.linux-x86_64.tar.bz2"; - locale = "el"; - arch = "linux-x86_64"; - sha512 = "613db55e1921bdb1a1a518b0f5d878ec8e131a08c2c04d03dc8ee056a4b24ae17e2b41dc5e26f31e4a7d343cdbae7d953dd69fe846112eb9515e97598d193714"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.en-GB.linux-x86_64.tar.bz2"; - locale = "en-GB"; - arch = "linux-x86_64"; - sha512 = "00662ba44b207a918a04a9fbeef920863e2c17510318984361fddc39551903628a9ee9799c508995d6256e73449100b6e0dc0ee75386e9f86d4d7e4b844a5a80"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.en-ZA.linux-x86_64.tar.bz2"; - locale = "en-ZA"; - arch = "linux-x86_64"; - sha512 = "828a12a1a21c3b2ee5603ae6ac935e3a27d448e312be2b7088424cf367c25043f71175eed6f1f97c2905fa1a474c8828900529a7d0a7c8f03af5c6560ee94c6b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.eo.linux-x86_64.tar.bz2"; - locale = "eo"; - arch = "linux-x86_64"; - sha512 = "232753f9ec5f269cf560f30eb3ee76efe069815c894f76d3e5d95c6c0be7c6172c10e813fcd07bc2389684fb3478db5482d52436a07b7dab417dabdd245523df"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-AR.linux-x86_64.tar.bz2"; - locale = "es-AR"; - arch = "linux-x86_64"; - sha512 = "e678f6df9c33d9ca1f327543923a2a27e6d591fca9d74b77311f50954b032e7cba0491cd85ebf215802cd927ced8f5288e5a6de7ea86a980398d15e582e2bcea"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-CL.linux-x86_64.tar.bz2"; - locale = "es-CL"; - arch = "linux-x86_64"; - sha512 = "00b5828e0309c267b384a7fd8e021efca29fc6fcf83e83398f11946af27a4fc25be190fd51a382a1c68506f56588d24d34149d817acd5735023fc2045e464d9c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-ES.linux-x86_64.tar.bz2"; - locale = "es-ES"; - arch = "linux-x86_64"; - sha512 = "544d347a492a43cc4499c282ad12105c3abeafd014a5e270610bbe295da28cb0b57b07e22e46c3346ba8152817de14909654f458dde430c091135ec63e0fb530"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-MX.linux-x86_64.tar.bz2"; - locale = "es-MX"; - arch = "linux-x86_64"; - sha512 = "8dbceffb8015290864c806157425f720a46f0e0df2a828ff34853c1cf37ad0ec80dae621a76ef7947c52d52c0241e71a51266cfef91f3baf1e01bfac93791818"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.et.linux-x86_64.tar.bz2"; - locale = "et"; - arch = "linux-x86_64"; - sha512 = "2426fdb0a28e21c8af1010cac2e252d6b7aa261486c54bbdc959b33cc6fd4b1a0ff51537e88edd761f4ccb8c8b03f8780a91b7b5ae56de28d70ea43b3a0067d4"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.eu.linux-x86_64.tar.bz2"; - locale = "eu"; - arch = "linux-x86_64"; - sha512 = "9c370ba20ff45a30df02a86b93d55af15a8c858f579d18a659e1a2e209bdd933479639931aed7bc4380498e31508bb7b6f841db16a5bb78fcb44b549d75066d9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fa.linux-x86_64.tar.bz2"; - locale = "fa"; - arch = "linux-x86_64"; - sha512 = "b9fdae2deb85323e861b8ff3e90782eae5c99f9795b8a5d1be8aa8f1552810dfc3f58583724bfb071e8bb8184a4cc2ea82fe7db99fe929c1795d446719834964"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ff.linux-x86_64.tar.bz2"; - locale = "ff"; - arch = "linux-x86_64"; - sha512 = "26ec4c616e1a230065709ef145e6b3909fb90a94849fe8e63f950604bf8a615c4a2d22a159cba6fd0a1efcea6aecd49af89562e44c93af9bb97b363eeb3e9460"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fi.linux-x86_64.tar.bz2"; - locale = "fi"; - arch = "linux-x86_64"; - sha512 = "314c02413ef0cf8a32cfd236012fa8afa2ecc169a9db735322a020d705b2b51b0a1d7df84e95cb6cd1d1c05f6119e826585c0ff92348541bfbbb49bf3c8141ef"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fr.linux-x86_64.tar.bz2"; - locale = "fr"; - arch = "linux-x86_64"; - sha512 = "ea70bf96902550e211f3400a90fffca711d69ec701941e2f0ca861b5421231cac8ab62dc0da1273138d142ac751ce983c7e47e6930b7fdf9a8a1fb5ca01f3a09"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fy-NL.linux-x86_64.tar.bz2"; - locale = "fy-NL"; - arch = "linux-x86_64"; - sha512 = "7b639f14f680d829bf05789ab9f29e393e7ac3b23aaa54fbe1522900852e446ab338088b077c446694443e54e92f2f16101479dab78498e9b245fb5778d85216"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ga-IE.linux-x86_64.tar.bz2"; - locale = "ga-IE"; - arch = "linux-x86_64"; - sha512 = "7b186ffac4f754bbd4d84956af515690dda32ed8a6ace84e46629d57f52117f1928d777a659066c50f432315119211de9e596ea51627f62090fd48dfe8f36d2d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gd.linux-x86_64.tar.bz2"; - locale = "gd"; - arch = "linux-x86_64"; - sha512 = "97cfc6cedff65ddebec9ddf57bdee752ff77b0adfe07fc846fba5346eeba5647e60c626f9abb6e32394a2a7481164eb6c1483593880aeb8fe0a0adeb36b8ff99"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gl.linux-x86_64.tar.bz2"; - locale = "gl"; - arch = "linux-x86_64"; - sha512 = "389c1e7546eee4360d97104073fbc580f0b2d39d98717eaf03a43388e97d0d8c3bb31071264a8e655fc5507f05bc7e49f42c747a45950fa0374ce13000d693fa"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gn.linux-x86_64.tar.bz2"; - locale = "gn"; - arch = "linux-x86_64"; - sha512 = "1974a8b2df50eec50da2b61eb94897d4c965713a1cf3861ad9f24abcd96406485995060effe67e85dca4fe0f104583eadde0aa3009caa84d71f6a7ed628e75cd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gu-IN.linux-x86_64.tar.bz2"; - locale = "gu-IN"; - arch = "linux-x86_64"; - sha512 = "5b2e4ff43a5d5959d3c3e8ab8fefbc21862bd481543c2e88f332c8b59b1b28d48ab625a200bfadf48ae9f944dfa62f8d2fc61fb40d4f0e472dd060b73a4513b3"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.he.linux-x86_64.tar.bz2"; - locale = "he"; - arch = "linux-x86_64"; - sha512 = "644769a696233d5e9f6bef9f3ef2c3b4985766a542b81f400a3c1f7c3bde309bb1bb8e12d22e2b66937de1f83d806a8ce93cbeb7283381ef41c2612031fdc58b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hi-IN.linux-x86_64.tar.bz2"; - locale = "hi-IN"; - arch = "linux-x86_64"; - sha512 = "7bd0162487e59e3a69708b44e7a70f5c1433973c2f02da718bb1bff2f623c9ba169d04e86914b671f93b10244f1c4e3f35bdbb79f17892822c590ad4f6744d4e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hr.linux-x86_64.tar.bz2"; - locale = "hr"; - arch = "linux-x86_64"; - sha512 = "f5ceef9ef26df4fc5e07337598c241933e09d89caf45925020dfc16a758f887c8e3e9bc1b30440f3219b1184c8396dc4dda47ab0d0a8192e084df9bf34090a58"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hsb.linux-x86_64.tar.bz2"; - locale = "hsb"; - arch = "linux-x86_64"; - sha512 = "a4d13726928b652f92ff20160569f46fdbae377fb1b4855c94dd7ffc08d988fb94bf9e9f4fe5bac9e68d7df16d14db39913376dfae03823f8a29e62786f0dda2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hu.linux-x86_64.tar.bz2"; - locale = "hu"; - arch = "linux-x86_64"; - sha512 = "6ab65bcec6b278f56822e01d295150224deec06619a970bab0597e008aa57117070027212a3089d08efd9284e668790acbad75f31527b709663756465fad136d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hy-AM.linux-x86_64.tar.bz2"; - locale = "hy-AM"; - arch = "linux-x86_64"; - sha512 = "650ac33dab1254445c8373be2cc3263c4f3d8c8c814c686e8d57568f51924a3e699f75c75c48f50bb20d3dbec67f018370a3b4accc68ad68c3fa633592a5705b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.id.linux-x86_64.tar.bz2"; - locale = "id"; - arch = "linux-x86_64"; - sha512 = "af4f38bc885f6d32f6a8acf8471807f6300cc3a15077b7a8bc3010a2171dba3d895576092384c74d42b4c090868f376fd57ac51812972290535c5879ee9c7f6a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.is.linux-x86_64.tar.bz2"; - locale = "is"; - arch = "linux-x86_64"; - sha512 = "19654cbf256ddc741ea900f01c0d030ac4dd5f4eb9ddaa65525fa7733cdb4754759feffa6a7f6f88a3fd0a4aedde564c52b9e22df4c17e8a97a72d39e789f7ee"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.it.linux-x86_64.tar.bz2"; - locale = "it"; - arch = "linux-x86_64"; - sha512 = "03eedeae61a481514194bc051290cd8e4a4a865810a84e4b9d9aa4fc3cb0325c88e09f05ddd324fef69a45caf31a7e0cb1072270d20ba8abd940d27d6580ccf9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ja.linux-x86_64.tar.bz2"; - locale = "ja"; - arch = "linux-x86_64"; - sha512 = "0342776d1c8822b69a7d3417627681004df2d77e7fda41a08c741ee851cbc5403c1dc79402d77113ce548c990e121bd03a4bede6813479df131f41cb2b0e6b0c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ka.linux-x86_64.tar.bz2"; - locale = "ka"; - arch = "linux-x86_64"; - sha512 = "3b9562d0a33ee6865d655b1bd17a2c72d1aa94bbd88e4561fdd2bb704c98197cc70a8ea43d2077f2b552a245fb1eb2b668cbce0592bf0d50165b6e2b9d6a828e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kab.linux-x86_64.tar.bz2"; - locale = "kab"; - arch = "linux-x86_64"; - sha512 = "0ac34eeb7295d4851bb0b29273dab8310b4ce4c17706715c8b18a1e29b0dda42296d253a12c64ac2610edaecbc0ee063b646c787ff80d2a0565842996907bbf8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kk.linux-x86_64.tar.bz2"; - locale = "kk"; - arch = "linux-x86_64"; - sha512 = "7fa48c065301c21b27035a5d0cb1e917fefe3b9d512379a0eecb02eed766cd51525d7de634d007638e214eb1af583ab2bc91a44f540a1b3d39051b8c02cb1530"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.km.linux-x86_64.tar.bz2"; - locale = "km"; - arch = "linux-x86_64"; - sha512 = "1cb1968dc7c36909b30fd86a8a47ee82809742f22a9fb304179ab52e3273f88aa30377c551eaf8839dad318b0037a90cf5c87ef27442d2420e2104f649cd39d1"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kn.linux-x86_64.tar.bz2"; - locale = "kn"; - arch = "linux-x86_64"; - sha512 = "f3b47ffa14c5f2072847f2dc4e911891e8cdac9463d123abe83bf6520400e296b453a0f6ae796dd0a42ff0596f4a3aa75e2869f7e5918bdc2645fdeee1e77d98"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ko.linux-x86_64.tar.bz2"; - locale = "ko"; - arch = "linux-x86_64"; - sha512 = "8111dd217a11e949bceacc1076d6d57e29b98ab851328a72bbde9e93b724b744936dc11b6f842443d7358a95542cd863ffa28b5119d989a84637bbc7497884a8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lij.linux-x86_64.tar.bz2"; - locale = "lij"; - arch = "linux-x86_64"; - sha512 = "5555b8b5b423afba2f92e67f5ba10e3763d240711cdafdd9ee89feef47cee699d33d00a4883b326d7cdfbf3e9a3d6379cc98e6b7df9c7e269da17e1516d2f5d9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lt.linux-x86_64.tar.bz2"; - locale = "lt"; - arch = "linux-x86_64"; - sha512 = "2fd48f70fcc56a8e1f7408080a8540e6fc320a808cb0659796d0c3fff55c7ed7bf0f8a046c19988b35fee4a4d7d6d5c954756907cab699b3337a8b01757f47e9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ltg.linux-x86_64.tar.bz2"; - locale = "ltg"; - arch = "linux-x86_64"; - sha512 = "bf47078876ac25c9a86e46aa2b15ae34011dc987074eaa523d06f477ce92159ed7be6bb584b940e98a4898ad7d1b8452af1671579f4b8cb020c147d1b773ec90"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lv.linux-x86_64.tar.bz2"; - locale = "lv"; - arch = "linux-x86_64"; - sha512 = "a13fef273aadc153974f8a9ebddf28ec5e028ecfd7f9262588a622b8da63db5293f39a2eda6da5f0a9ccd5a84f0860849c1153b92d92a5abbdc19692f7def697"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mai.linux-x86_64.tar.bz2"; - locale = "mai"; - arch = "linux-x86_64"; - sha512 = "e0f119757053008d996fb9830e2d363fab581d958c704a888fc2aa97d5f818051782fe4f31db661d74e6123151a92b1eb7fcb8ce3b53278e4f4a2079621dd77b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mk.linux-x86_64.tar.bz2"; - locale = "mk"; - arch = "linux-x86_64"; - sha512 = "0ea7bc5a6817805689e005e35f64b9b02e7625ddb8d74bf89a54a65dc727d6c4126e1e8304901a410fa6e473c7bcb83dcdd03347ca4fecc45dfff151bf2d4e97"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ml.linux-x86_64.tar.bz2"; - locale = "ml"; - arch = "linux-x86_64"; - sha512 = "f3a2c41e5d5f6e031f707b730c4483230a421326a94cb9f9a766b0fcb6dfc14fba71c9c4db853062c72693c15c264986cc49b540b3b2573c24e89bcef0c28ef2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mr.linux-x86_64.tar.bz2"; - locale = "mr"; - arch = "linux-x86_64"; - sha512 = "538e3a6b93d5b58bd181c9456ba0d614859a5b3954168f374ad00dd24c5638d997f5f5f24b7fef0e796cff06f7068294ebcfec0b3aeae182ccb389d0d5636d8d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ms.linux-x86_64.tar.bz2"; - locale = "ms"; - arch = "linux-x86_64"; - sha512 = "ff58b8facbbfd03b28a1eecb9d439ebeaa83b6fd01e0b27563cc25f5bc654496f67a78549388318d9f6e2d15958281d7e98a1e90bb0469885129ec0cc88e6df5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.my.linux-x86_64.tar.bz2"; - locale = "my"; - arch = "linux-x86_64"; - sha512 = "aee4cae42308ba97faf82c30460f0188b6c91110ff2a3298c573445dd5ab0d9d0a03186340d13fce56bd5f0d8aed26726064cfd95d0f36a407b64fe06b98507e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nb-NO.linux-x86_64.tar.bz2"; - locale = "nb-NO"; - arch = "linux-x86_64"; - sha512 = "d8255af8bf57a3a218e37393e05c4000624b0b52defd85b7e30e50aed7989f1e262d304cae4b615ec3222fb1375c08041fcbb29f779b43c497f1b93cce61d501"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ne-NP.linux-x86_64.tar.bz2"; - locale = "ne-NP"; - arch = "linux-x86_64"; - sha512 = "3d138d68b39c7ad5a8674ae0a8a6184068f3d25878bc636bc28097a21065b3dd252ff996c9177db9ea8a8023b3ec69c07c97858161f100036660ccaabf5eb26c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nl.linux-x86_64.tar.bz2"; - locale = "nl"; - arch = "linux-x86_64"; - sha512 = "b04e638c1e20c8bb5c40d319a6cb2f73e5a8ed26f2968e564891118581d87d7487651457fb7e659c3604f66bd69a2f8e394a6145547faf9b195d417a6c14dbce"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nn-NO.linux-x86_64.tar.bz2"; - locale = "nn-NO"; - arch = "linux-x86_64"; - sha512 = "4c88fe7a4ba5bcb39fe30758d61f81774fd4cb0f9e74c5fd5be1c41e790841edd9d737014ccd00d6402597058e79daa763ff5496d19ac408b50f2cce199b0b2f"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.or.linux-x86_64.tar.bz2"; - locale = "or"; - arch = "linux-x86_64"; - sha512 = "0534b569c98ee9200bec0872810b3948780b7b136c08b5fa3b4db3934184df4672e8d4e17a190b306aeb6b8f80019e037241ff79031caf43d418e4253ae782b7"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pa-IN.linux-x86_64.tar.bz2"; - locale = "pa-IN"; - arch = "linux-x86_64"; - sha512 = "5936896dda11febeaba8a8eacf1a586d46557262a56c378757b1e4128828cd26510b1016d9483bb7cf7272bddcacaf22b8b761caf28eb73f8314a70a2924ac53"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pl.linux-x86_64.tar.bz2"; - locale = "pl"; - arch = "linux-x86_64"; - sha512 = "35a9cd76678273a32ea5f731a9c6d836ede017ccb48e4897c108b8c3dd23b45cf7f4eaa700f79f8d97132d9d76a0615e1b51975b3efe2c251402bbcc25f758e1"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pt-BR.linux-x86_64.tar.bz2"; - locale = "pt-BR"; - arch = "linux-x86_64"; - sha512 = "ec360bc485db0cfbaddd2e347d070c6ed5aa48b7fdf889b20eba7017833b5e5707c4ba74510b4f69ae279eb59a8e8711aa419b480d194c7b2a615f9d7cb3d3cd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pt-PT.linux-x86_64.tar.bz2"; - locale = "pt-PT"; - arch = "linux-x86_64"; - sha512 = "d88643429e151c80b033fbab697f52fa3d13117f4dcd452038c80c31f1d992af1de77f59f69fc0b0c24500928a11759653ec39694f61940a4447e0c4f61e8a25"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.rm.linux-x86_64.tar.bz2"; - locale = "rm"; - arch = "linux-x86_64"; - sha512 = "813eeabe86cd3b72eadc0c1904c27987ad0c4ff95bd73fd810e18ad05e5f3fc17a68dbc110b5d6d379f59830f43331edc13a621dd1c2f89cf421bf80b9c2f5c2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ro.linux-x86_64.tar.bz2"; - locale = "ro"; - arch = "linux-x86_64"; - sha512 = "a36fbe6e5699c99fd2dc87c59b2ec223a16b7704461483642ec4e9f1fc43f89a6416e8d344e670c219ae9c693a92f71f2517262b8fc876acd3e9c93576e617bf"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ru.linux-x86_64.tar.bz2"; - locale = "ru"; - arch = "linux-x86_64"; - sha512 = "b4ccefbcb9ea1ee11cc2dea83449983bccff059ffd2ab74dfa05896b11497cb3c88f377dce1327cef3908ce29f2ec6dcf5b506fac2bd0c946b3249c090299a80"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.si.linux-x86_64.tar.bz2"; - locale = "si"; - arch = "linux-x86_64"; - sha512 = "c028ebc9be3617f6d5958372c2c18a2b0db6de7603595493fd2d494754a881c5f7783980bb2ee9aeeea80b3b83262f511ff2944226f725f18f66d5c0a8bf9a52"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sk.linux-x86_64.tar.bz2"; - locale = "sk"; - arch = "linux-x86_64"; - sha512 = "0cbdea7659c455adc017a2209b69a9b038a969ab87d0508d54201b169d2a9779ba1c6d6d176b81567735bfe7b60530191911b01960ea5893664dc3440e29567f"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sl.linux-x86_64.tar.bz2"; - locale = "sl"; - arch = "linux-x86_64"; - sha512 = "7ba3ed95de3ea059d82dac7e18fef8cb794d3ebd48ae52a3c9d6411eb7b1c3c340be3ae468eea86e973baa9255954da9525eaa59cdc73cbd60c6925c7439312b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.son.linux-x86_64.tar.bz2"; - locale = "son"; - arch = "linux-x86_64"; - sha512 = "13734f3a619e969e1507f4a92bbe49a54e5b8a849503cce359b776af0431e8f5c7541d6e18678aaaec8a38ee2780c3f6c25799edbfdb3fc7c1f9cea78ffba1be"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sq.linux-x86_64.tar.bz2"; - locale = "sq"; - arch = "linux-x86_64"; - sha512 = "3b5f983af7392d247a27fe808e6d01bc2af3d325a8868dba570968c3110d9224d418530739b37b80942fb7bb28791b52ecf1515aefd431ec6e68757546ad19f0"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sr.linux-x86_64.tar.bz2"; - locale = "sr"; - arch = "linux-x86_64"; - sha512 = "1f0e8d858bc719cadb1d0fcc7d6b9ad7968b5d776f9efc7a0e4643d416de7ee9686a8e00938f684fe6dbcea73ee4b18a8f6a090de1cd28ed303bdf316b0590dd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sv-SE.linux-x86_64.tar.bz2"; - locale = "sv-SE"; - arch = "linux-x86_64"; - sha512 = "80b802ceba9f506fc675136b11d8f4233a80fbfe44f082e55ee2b744f578bb27db6caddb390363d5300ad3ed0baa3df2c926543ec0c567e6320b40bcc9bf043d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ta.linux-x86_64.tar.bz2"; - locale = "ta"; - arch = "linux-x86_64"; - sha512 = "d23e3f6337f17a0c77865afba5f13de600041b678c9a1cfeff3b304c367af9f53ae383557826446ed7229bd916acfea4ed4c266e789c1784ba885a070e65fc78"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.te.linux-x86_64.tar.bz2"; - locale = "te"; - arch = "linux-x86_64"; - sha512 = "cc51628c0664bdda8b964e9a893f311ac12c56cbcc7e5f3995fcf7282c8c8813b3555d739645c19e52e44f9cc7583c92a23a1249778a1d2a5a6048749fa4b70e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.th.linux-x86_64.tar.bz2"; - locale = "th"; - arch = "linux-x86_64"; - sha512 = "0f5bc8777a39d759a81001538edc4566da4a67a30067a0817d0cb54c369e0575ee575a58da63ad788ae98f17e87a7d6e4d0efa42506c6e61a7983c3c6b5c0d0b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.tl.linux-x86_64.tar.bz2"; - locale = "tl"; - arch = "linux-x86_64"; - sha512 = "860466cacbb8cd713f7a06c63b6d8f7baa1c3effd890126c082a3eaa9490197447b52bac05d1c8be17cb4260d51d288c77e59aea77c8d0129b91f394aaf6cf81"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.tr.linux-x86_64.tar.bz2"; - locale = "tr"; - arch = "linux-x86_64"; - sha512 = "8ff010ebc40d3e4eee917469e7eb968ee6e0d2d5b98bfe10e242b4f5e7a655ad12d789a05f5d38f416ac6dc54f682ad25eff04160dab0e02042858b8a9d48697"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.uk.linux-x86_64.tar.bz2"; - locale = "uk"; - arch = "linux-x86_64"; - sha512 = "47408d24acabe6a25450fb58a6ed053fb84c0e329c73f41371dee306c64cf0f6510fd10d5beaa794513c20ba4f76e4f33df6e6f1c7899bffdc98698ffebb7355"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ur.linux-x86_64.tar.bz2"; - locale = "ur"; - arch = "linux-x86_64"; - sha512 = "584e5b16c1fdf09ece531f6ea13664bcd461284708a00f2c4485570aa587fe970e4120875d73572acec664a83ded5c98ea3b5df6ad3665ce28a19eb75cf08562"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.uz.linux-x86_64.tar.bz2"; - locale = "uz"; - arch = "linux-x86_64"; - sha512 = "890e9a2d6afb8bee7eb7cb2a0597a9580981c2fdcfed4a2b61967115be63564544c34023221d2dde638d67a429bb9135b3b754ca0aeaf893966ef33ec5befe58"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.vi.linux-x86_64.tar.bz2"; - locale = "vi"; - arch = "linux-x86_64"; - sha512 = "44e5ea3359148f609620c4fb967a90236596114ffef6c4e3d3d5d41c62d04cc85359287f591cf8e1e7baf1c53c904de059002f31af4023fa50fd35fafbe1f722"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.xh.linux-x86_64.tar.bz2"; - locale = "xh"; - arch = "linux-x86_64"; - sha512 = "6300d64c7d5a7b4744b6bae492f9ddd561bda4cfb2da85af255408429c5b20f4142f3c866adc60a89acf95c1d20b7db5d6c56bf68baafda02eefe77cb656d566"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.zh-CN.linux-x86_64.tar.bz2"; - locale = "zh-CN"; - arch = "linux-x86_64"; - sha512 = "b5bdf4c33a21b9aada5aea3e3d01d25bcd9615623c9da6ba98a69e3613744267e85328a632273bb224983b486fc1d00d9a111d99c9b5c0934b17d69d6f4aa66d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.zh-TW.linux-x86_64.tar.bz2"; - locale = "zh-TW"; - arch = "linux-x86_64"; - sha512 = "5ace499ee9cc1ca1f38aa476fc46d4d38b28f7752e635354e4b7626ed3fc60d57f80ccbc9dee69b452cc462b4a752c5dea0da2f04735d80b96bf9dd5ad0fe303"; - } - ]; - version = "52.0a2"; -} diff --git a/pkgs/firefox-bin/nightly_sources.nix b/pkgs/firefox-bin/nightly_sources.nix deleted file mode 100644 index 7bd3497e4891..000000000000 --- a/pkgs/firefox-bin/nightly_sources.nix +++ /dev/null @@ -1,400 +0,0 @@ -{ - sources = [ - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-03-02-05-mozilla-central/firefox-53.0a1.en-US.linux-i686.tar.bz2"; - locale = "en-US"; - arch = "linux-i686"; - sha512 = "d44a42e4fd8ebdea89f3dd9ce629315130540bf03506f64bba17c5ee2469cbc9c27434ec6430eb9af88f299ec838889ebcddb55a5745f34d6c414ad7e2b25395"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-03-02-05-mozilla-central/firefox-53.0a1.en-US.linux-x86_64.tar.bz2"; - locale = "en-US"; - arch = "linux-x86_64"; - sha512 = "5c1d1f81ea8375c0cddbc09ba4c5962f11755ceb5deb5b7315cca792ee705bcdbc25180c2a048fbac0f39080a33187fecf53e16b0170449f3a8d83022a834e1a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ar.linux-i686.tar.bz2"; - locale = "ar"; - arch = "linux-i686"; - sha512 = "f75a8cc774d9428831398d15702aa30eb09a033a1760dbda657e9e223b6ffaa2a4cea8a460c5e478c6008820fc38eabaca0606a6cd36458e02907f9660c03bb1"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ar.linux-x86_64.tar.bz2"; - locale = "ar"; - arch = "linux-x86_64"; - sha512 = "39fb17aa0095a79db9a0927b9905ef85ae8cf594319a0968173888d69a0bded46bfa7d9d927adc39e26ee42d199d8b0f0a8fc592c984c398c1f7842b98e49104"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ast.linux-i686.tar.bz2"; - locale = "ast"; - arch = "linux-i686"; - sha512 = "3e0c7e25e8ecd8de6122ed2d3b242120e148b86920def04b8398550a4c90ee2944bbf129d80c8679ac89ebc59fd47a4265fd397afedc25c8191ab894d1f500bc"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ast.linux-x86_64.tar.bz2"; - locale = "ast"; - arch = "linux-x86_64"; - sha512 = "01edfc8a1fa3b5f6e868f345de213bcf42ec64fdda2dc2f1071c20878dde6fd95b14c2252f376a82248fb1e5884eb54edd680f9ab8eb0b6c73097ba35313e8e2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.cs.linux-i686.tar.bz2"; - locale = "cs"; - arch = "linux-i686"; - sha512 = "be495be099f4993e95a774fa765b5290e35f76bff911bc4f08efabeba324b01a76169168ee666cd70572d6e2db9ecf9f61bf6d6d34ad1f0d531333a2623e99cf"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.cs.linux-x86_64.tar.bz2"; - locale = "cs"; - arch = "linux-x86_64"; - sha512 = "b85d5bca8114d5496d2cc3a3f441310ea1c7d0560c49e55801ba7fe1c3cffed7b7ba0b70ef58eba4acac246543049d61fd829429a11425f2e3bcc1275946f596"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.de.linux-i686.tar.bz2"; - locale = "de"; - arch = "linux-i686"; - sha512 = "8af5118ca7dc303ee9e5982d283cbe9165845ddacf90ea5675600b65ef77e9e63cb737a1c30ee7f09a576c0feefeafd3ded1d327dca0cf8a7a480e3d2c8e757a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.de.linux-x86_64.tar.bz2"; - locale = "de"; - arch = "linux-x86_64"; - sha512 = "014479111a8d3055d17cba3fc1988bb1e64d000c969322329418223e2ceeb01d30d826629c6063a13c06b765856b6407e2720e46fd43f24ede542c8b4a052b17"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.en-GB.linux-i686.tar.bz2"; - locale = "en-GB"; - arch = "linux-i686"; - sha512 = "e038861cedb1392040931a2e1a1f0b4799ee58b1e8391de74c0df52d0113134ae0f9d5233044b139a8cbf98909b07d31e58e15110f1321abb0efa720299fa12d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.en-GB.linux-x86_64.tar.bz2"; - locale = "en-GB"; - arch = "linux-x86_64"; - sha512 = "c67deeb787491d6b4b33ad370dc81eae0f39301549b4af15efa63dba7100b127525bcb2453233328f27c4749f298d2aa06da4b0c0d2b262df2bc7da235dee023"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.eo.linux-i686.tar.bz2"; - locale = "eo"; - arch = "linux-i686"; - sha512 = "dbf99b0ccd084b245ee417a1afcabe201d3d49fce557e15a6725cb858e7fb662258653333a4d7e228f10e276ce007d726c739f912d13e694836fadbf4c3a4fc3"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.eo.linux-x86_64.tar.bz2"; - locale = "eo"; - arch = "linux-x86_64"; - sha512 = "73fa243cd9df86210cd3cbc2aa812ad901961f92a67455d9f3c2f661088d4a2cef9c298e66eaa1b6e33f84171fa2a5955349873472ba5a15f4a5ead3cc46f035"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-AR.linux-i686.tar.bz2"; - locale = "es-AR"; - arch = "linux-i686"; - sha512 = "db1344d982b064bac03bc5ad71263c6c72dd614439152b32605c15542eee4222b7534520caeda889005ddfa5677bcf1c2c573dbbfd7a0f4f8951ed4f04bae870"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-AR.linux-x86_64.tar.bz2"; - locale = "es-AR"; - arch = "linux-x86_64"; - sha512 = "b383c53161e60ab167a82e6fad0bd2b41eab908129bd76ef3eb95412e284d8712c1eebea2205f9c43c4bf3ac4dfd70ee8398cd6faa694f69f38ba0498285ef81"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-CL.linux-i686.tar.bz2"; - locale = "es-CL"; - arch = "linux-i686"; - sha512 = "26f163efac39dfe7e1b704b82d8a1140b8f63be10816543d8aa12997da4c5fb4918b5934d87039ccc6d471daee76e176e55362dca05e3929c211ea6bde0d62ff"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-CL.linux-x86_64.tar.bz2"; - locale = "es-CL"; - arch = "linux-x86_64"; - sha512 = "0155a8aa1f2345c0ed2bff07c124ed8ae4024b11fb879212cc894c102794a4b28b5161e5e365f06e79ef3419bc62db8dee2d03a5a9e8551f0e6e49c062d83bd5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-ES.linux-i686.tar.bz2"; - locale = "es-ES"; - arch = "linux-i686"; - sha512 = "3c9325b322ad410f8ba202bc006c0e0780bc18445afe3162eedd507564aff302deec652e5a666b4f813a9c5df35ec5b240ee37482627711909f1e7aef3b9a45b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-ES.linux-x86_64.tar.bz2"; - locale = "es-ES"; - arch = "linux-x86_64"; - sha512 = "e976a580a136609601eed2475b2ed3cf77f4e430263ed089c0a1d5ebf21ef8305444c9fed5becaa545fc130b83b4d96e015d60a5dcad22a4c364eeb08090191b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-MX.linux-i686.tar.bz2"; - locale = "es-MX"; - arch = "linux-i686"; - sha512 = "21889b67ec2f5f6ae2baeac688d55275c8f5a21b73548d9984e7f02d0fbf60558b991512060fc1cc89a05888dd7a57f6f16ceef22ea0947bd49de10c6a6b0aea"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.es-MX.linux-x86_64.tar.bz2"; - locale = "es-MX"; - arch = "linux-x86_64"; - sha512 = "e612c259169e08e2ba4fc2b5bbd4f0e46a569d82c947465eaae746ea440d62c4df33aeebc4a2c792b39a218c661f2e7d47daaddf40820106aa290dbb8eb158e4"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fa.linux-i686.tar.bz2"; - locale = "fa"; - arch = "linux-i686"; - sha512 = "30b23f194e554523209758967ff56f0cf5995bf402df345d76859fc423dbc1380b0ab80bcb53cf6f89f287e664819bb4287335c588cd251fde585ab8c871c3cc"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fa.linux-x86_64.tar.bz2"; - locale = "fa"; - arch = "linux-x86_64"; - sha512 = "adfebfef00b6c080e10a051e02838a5d7d4f121920741b551440f0505882d28b8bf5e3939659bf9d5b975de6433c2fe3b243418e6c277556f3c1582e5dbf1394"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fr.linux-i686.tar.bz2"; - locale = "fr"; - arch = "linux-i686"; - sha512 = "2751f8b92450ab7a373172d68d95c13fd74410f3a77918bbb2c1107a3b4c442be218c7ad625230cdfe994db58d06348a7fccf9d54f9fe61431b5745dce2acfc8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fr.linux-x86_64.tar.bz2"; - locale = "fr"; - arch = "linux-x86_64"; - sha512 = "bbaeb4fe2c7113d094ca0cdd692a063b83a7648d55f6581f8d94bf2400f76901fecbd6a90dc9e8898d7b490f643f7e3812e2e14e821fb9aa23dd6b79fa54beb6"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fy-NL.linux-i686.tar.bz2"; - locale = "fy-NL"; - arch = "linux-i686"; - sha512 = "b350c10cf8442c93fcabde01796859fb4cd4debaba7db2a4da8663a2f6de702a4f74646a7192663beb93cead3c3aeb923d4c6e3f6049fc03a9afe0d69c17fd0d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.fy-NL.linux-x86_64.tar.bz2"; - locale = "fy-NL"; - arch = "linux-x86_64"; - sha512 = "75a210191ec18ddbdbedc872a07524f8609f825555ff6c5c1325e298d035bd99082fdd518db7edf1943b6dc3bec7498bd0328a86d7a395170a381acb97f0695d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.gl.linux-i686.tar.bz2"; - locale = "gl"; - arch = "linux-i686"; - sha512 = "8de808f12d6b9ef6fc0d04aa52dbbe320ecf6ee837dd9c28ddfef16c8955d60ee919f5bccf25e0646cfcb7ecd6254652dda4f7d0bae5f72b7e699cf351f2e639"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.gl.linux-x86_64.tar.bz2"; - locale = "gl"; - arch = "linux-x86_64"; - sha512 = "af57a5309a4aaa068dea168b5f6e2542db4cf94a4b32cba62550496a0ae676dbe4aec5968afe4a6525ffc329cfb06b19e31da4179703511cb1cdf173fbce0c45"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.he.linux-i686.tar.bz2"; - locale = "he"; - arch = "linux-i686"; - sha512 = "8af77b9a1fc510c9ea1db606e172f76fcb8215b06a8008bd4c06b5bc84bb669ff301e865ddbffef1813521abfd31713ef184155c2e7ed965aeca6abfc68e051a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.he.linux-x86_64.tar.bz2"; - locale = "he"; - arch = "linux-x86_64"; - sha512 = "9da00db63ffa0397d12e1401f12daffb8899c7f07354b67353437f5ba34e7fd72e5e6b3177bb52da1ceffa8e73a55238b5616d4645f742e877ccae0acd64c09a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.hu.linux-i686.tar.bz2"; - locale = "hu"; - arch = "linux-i686"; - sha512 = "c336106137720ddab97df898247cc1cb5519893e9b4a961e92f891ca6b79c4e921659e7782a9c33a70f0cf16c3eaaf077021feacfef92a8b1434a2e33474d1bd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.hu.linux-x86_64.tar.bz2"; - locale = "hu"; - arch = "linux-x86_64"; - sha512 = "cdb28bb1b7186feab444b289624ab666e7ef7e3f6f95b0e9bdb7c4ab268304dee129badf92cfd08e4468aab9189fc79e447f6a8e5096ab988f25ab9b0dc42340"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.id.linux-i686.tar.bz2"; - locale = "id"; - arch = "linux-i686"; - sha512 = "81328d7119abac173496c569d3a8f6e71124110f3b7a2e9dbfea002e6886871b99d738223280a678cd76568217dc9e400aec51a8c74630ceb837ee3d20d20678"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.id.linux-x86_64.tar.bz2"; - locale = "id"; - arch = "linux-x86_64"; - sha512 = "ab0c45c7cc389a4fbdd4409e616f64040640a65b189d8079431ac87521f792df56601e8cfb9ba45292adef5f31fd6d287b1bd0e21b3b887b552b2e3cd37a0519"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.it.linux-i686.tar.bz2"; - locale = "it"; - arch = "linux-i686"; - sha512 = "7b8b60aad0358f78288590e97031e44ef96562f06d59d56791ed2d35c4a202ec609a60cae83a5055b3f8948b291a012c5a24cd836ac0505301b9a138207ca9f1"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.it.linux-x86_64.tar.bz2"; - locale = "it"; - arch = "linux-x86_64"; - sha512 = "aa64a0f2a9e9b9334f4ce5608bed6522b90e0ff2f9736650deba55ef270b6220bdaea5d86513b72a635c41a009ffae7c69b206e0cc7348f43c6b90b9a94ea928"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ja.linux-i686.tar.bz2"; - locale = "ja"; - arch = "linux-i686"; - sha512 = "6424d3683978f1f6f6ad1da0d538d00ff423d1726daba97cfb6746fd906ba7c0cc8057c0cd259c182cd2a273a4dc433fe57c1588060653776ad450f3f5cbf630"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ja.linux-x86_64.tar.bz2"; - locale = "ja"; - arch = "linux-x86_64"; - sha512 = "ade4fd306456fa4071ecfa5151ae26472e4462dca4beee1fc1715eaa5cc4e3ce99968666f7faf261f7a8e1a95070915ec3b95bb007089f535b4dbed84bcc7f12"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.kk.linux-i686.tar.bz2"; - locale = "kk"; - arch = "linux-i686"; - sha512 = "cccd1c9248c2ea3f964cca5e7e010c950f35505c6107da84a8fe4d6ab01cba0ce823cb8d79a3cdbbc3fbf914f7e9fdad4e10d30f362cc2ed7f779f9531794127"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.kk.linux-x86_64.tar.bz2"; - locale = "kk"; - arch = "linux-x86_64"; - sha512 = "cc5f5eb531e6f675919cffed8be49373d2c1fb7b3b4356422d0fa77b5eabd20f76fdc3e7dd803fc07124225a142b671422b87448451a80bb2405a6d671c0d712"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ko.linux-x86_64.tar.bz2"; - locale = "ko"; - arch = "linux-x86_64"; - sha512 = "a4ca44364a05a073be9c6b18d87d6876d3f2f2729415cd15a956cb3527677bd7d855a87e8b9e174a5ecaf59bd6d2e452ef9d90531d2680038ccc00f69c7c7f3c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lt.linux-i686.tar.bz2"; - locale = "lt"; - arch = "linux-i686"; - sha512 = "fbbffe75eb809ab6df2a1e6045e5a875da3568f8382d49ab3abfd0d36d6e98d34b053b62a4cda3a5142e98dfa8ee7d3072b83dac7c1a696a290394ca5fd76638"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lt.linux-x86_64.tar.bz2"; - locale = "lt"; - arch = "linux-x86_64"; - sha512 = "c713b99c37af19af3cc39656881d4b010ef8f92769026378c876706bd6d616c5a48de11756c5df43b69757fcc2c4c30cf58b4e86fa03e80924758062107196d3"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lv.linux-i686.tar.bz2"; - locale = "lv"; - arch = "linux-i686"; - sha512 = "cd42d8264904744df191dbf1bb256a6efb821ab0ef42110a2035678440b8077581e35d22ee173bfede538092037ef1953c1eab660af0963f09894e24cd2aab32"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.lv.linux-x86_64.tar.bz2"; - locale = "lv"; - arch = "linux-x86_64"; - sha512 = "e588b1344263abbb278afeaa9be020612834aa265e828a892d11d11ab7b93e697929e619f250bf0f6d30ba4368f11d09310cf7bd10b0daa6bbbea8d5c3af8aa9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nb-NO.linux-i686.tar.bz2"; - locale = "nb-NO"; - arch = "linux-i686"; - sha512 = "72bb779616d912f269eaf738b4ab4eb721786bedf928f20928235731554917515a24ac6e85dada030135732494a59ffa6599e48800cc1a34e9d095d2ef1d8bad"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nb-NO.linux-x86_64.tar.bz2"; - locale = "nb-NO"; - arch = "linux-x86_64"; - sha512 = "04d55a6af547eaf110adbe2a82136064953bc96199e6679dea7b566b7072e30fbcf4169ab6c6fd7264f5cb41c01ccc8b25196b8578560761d7831931fc56707c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nl.linux-i686.tar.bz2"; - locale = "nl"; - arch = "linux-i686"; - sha512 = "c21941fce6d5d228674e127279a91974ee1e93447690589e253c62567da9db1dc6251447a3aa0edc4873c10839b08089326ae687936ba1e15169b7c6f24df069"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nl.linux-x86_64.tar.bz2"; - locale = "nl"; - arch = "linux-x86_64"; - sha512 = "990eb7410cfa1d9280f57a741c1ebd2421cabd2a64cf162cc34fc9ad86b1d1d718345ae66dfdfa441b89bdf2383113a80b281231bffd1911e80ea9a7396899eb"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nn-NO.linux-i686.tar.bz2"; - locale = "nn-NO"; - arch = "linux-i686"; - sha512 = "1046df7ce7d407b1144bc821baaf37e87aeafa899c48230c60496d17cee5b8bb89450cd5c83efcbe64c9bb214fba1d1854d195fb776c810cd635bf1070547041"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.nn-NO.linux-x86_64.tar.bz2"; - locale = "nn-NO"; - arch = "linux-x86_64"; - sha512 = "8b5c5ddc7278fa22d8f1e5eaac391eefc2af7b5cbaae58b0f854f9a8c4b133e7cce980ac392c43cd70bace96b4dd7798f84ba089e3855b0532557882adaa1904"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pl.linux-i686.tar.bz2"; - locale = "pl"; - arch = "linux-i686"; - sha512 = "a16ef6819a4259eb8311f137f1985d9b2e8cc5206eda55c2d00b791c29de7e45e6bf6e913e5e3633ff741bad85f44c503dd49f950ed0fa49b07c112664aa4416"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pl.linux-x86_64.tar.bz2"; - locale = "pl"; - arch = "linux-x86_64"; - sha512 = "23662ae01b678dccc59cb7f06e246305acdda89148b1fe067de5fc68934161822ad59b56fb502bdf155dc64eff95166b01802e51cbff4200cb6a144c64a8237d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-BR.linux-i686.tar.bz2"; - locale = "pt-BR"; - arch = "linux-i686"; - sha512 = "83055296fcf3168f26f9cf641522ed482266e1b1639f05c297e44a302d0fa7314b92245d3829aec67047c5e78731504ce1d73f3e3c20afe3d931997e67fb3f39"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-BR.linux-x86_64.tar.bz2"; - locale = "pt-BR"; - arch = "linux-x86_64"; - sha512 = "242d59a575f3e8c2488c82b238d06b75dd25f0d2f2e16ae5a9505e4ecf5794fbc6fb4f4f23a1ae455e2275cee3b7f083ed10f764011478048e52b824176fbf5e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-PT.linux-i686.tar.bz2"; - locale = "pt-PT"; - arch = "linux-i686"; - sha512 = "bb5c38f327f05a0ced9efcf5483b2727445c0c09dfad132c6f50ca9b4ca6b5e2f132c63fb9fa4b3994c6f3c2a9f04e9418af70f31ea7e498b1cfb7323da75bfe"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.pt-PT.linux-x86_64.tar.bz2"; - locale = "pt-PT"; - arch = "linux-x86_64"; - sha512 = "633400bd440cac23dd6ce54e817ee176e0d398f1bdf5a060307a07e7ae69111b1c08e4348b375cb49eb37cf683dd0477e4d349993a207625c90cadad041d21b3"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ru.linux-i686.tar.bz2"; - locale = "ru"; - arch = "linux-i686"; - sha512 = "eb1bb3662bd649ba7745e6aa014c743583b5959a3c33b9bac992f83017119f3bf5094347a874c8a036bb4e22b791b33c83e21c479c64f8e0829cd33ddc727a23"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.ru.linux-x86_64.tar.bz2"; - locale = "ru"; - arch = "linux-x86_64"; - sha512 = "9209ac71eebfd7d994d639a366c01874d4b97c205a8a795a09dfedbd63f45d4dbc71eda444359d9ca906cb791c076c002a3fe6232ed77ea3ea38c94135a7171b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sk.linux-i686.tar.bz2"; - locale = "sk"; - arch = "linux-i686"; - sha512 = "1c01d4e8bd9199e3687dcc0983935efe122b049794b5e16b7fa7d28e45dceec4025d24ea399e87c961f33d47f481d97318411c3945ce9a3e4bca80cc31207e32"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sk.linux-x86_64.tar.bz2"; - locale = "sk"; - arch = "linux-x86_64"; - sha512 = "9f7296d11c657d6526bf4d54a10deaab53c4af7a92bcc14d8a641e90dc453d52adf7c92c666bc89b0f51d6172a894652686ab31cd9676572dd01bc1b2ad3565e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sl.linux-i686.tar.bz2"; - locale = "sl"; - arch = "linux-i686"; - sha512 = "55a271782ceb4b5f734ba3e5ae194ff572878d0614c6b9481ca48ada315ab36e5daf2289d63b2e7b2867c4ccfcb6f1045024cb5005578ebae278988f75963965"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sl.linux-x86_64.tar.bz2"; - locale = "sl"; - arch = "linux-x86_64"; - sha512 = "8c1de140b546f4d489907ffbc10db1954c66c9b5d357f05deab0fd3e7b10991a566552682ae0195e5b29f965b35e5718f52f6caf09d913a6025d75481cacd9a6"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sv-SE.linux-i686.tar.bz2"; - locale = "sv-SE"; - arch = "linux-i686"; - sha512 = "ed275c8e51238df6744463e0b593f9f851142d2daf162f8b6e3aa751f9f1aae169a1e7efd4dedc85a05cab08ed02935354656e9ce577fe79512bc5b75e433507"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.sv-SE.linux-x86_64.tar.bz2"; - locale = "sv-SE"; - arch = "linux-x86_64"; - sha512 = "aca3a0d2568ff53a592d44d0f68076d5c192e0f85d16322a5ace9d5ff18cc6103936c45c14940d03c468e91da9036d9dab3f2f04b831162954b077fbc06a6357"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.th.linux-i686.tar.bz2"; - locale = "th"; - arch = "linux-i686"; - sha512 = "444a4d95791e3427c69c923bef33c054dc88739c179102edc703c7bd1fa32a48d74761e25f5cf4ed578df475d356b9cf950cda3b0a23d822cad1cc0d58e85f02"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.th.linux-x86_64.tar.bz2"; - locale = "th"; - arch = "linux-x86_64"; - sha512 = "0dc29878096f81b7dbc2d8099367910b144f3f6ddc2ef156b86700bb926319bf18138888aebef625f7a9e2fed62c6df3222539dab5bbe00e6bb183cebd8af9c0"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.tr.linux-i686.tar.bz2"; - locale = "tr"; - arch = "linux-i686"; - sha512 = "3179a669fc3eb3ec956e9b535465a8060273832e4b455cc1344f7f9eb460a671b6bdb56afc057bb22beeffc221260cdc763b9ec031cd7c329bb8918166d06820"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.tr.linux-x86_64.tar.bz2"; - locale = "tr"; - arch = "linux-x86_64"; - sha512 = "ab682bc3501b149bff9eda9bcd1bb90473df452c0d5d5cb5eb9d4493c567f452a484bfd86b29249a3350de2b3d8a757d64324e63acdde5a3e6cd39341a38764f"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.uk.linux-i686.tar.bz2"; - locale = "uk"; - arch = "linux-i686"; - sha512 = "2c14519e92bf04cfdd73e0189e02779a3714f28830685d477486f6731f462191855c1ac6a78b712f0833dacc3e30b9de06188664fbe0182d6529759d8f1e39bc"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.uk.linux-x86_64.tar.bz2"; - locale = "uk"; - arch = "linux-x86_64"; - sha512 = "4a10032431af3c90a657b7d12b7945cfaa2886dffeb8d80871c139f841323cf2541c6e8b098df29392ac1280ef1df098bf1f7946feed1d4bc6d8789c513fb712"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.vi.linux-i686.tar.bz2"; - locale = "vi"; - arch = "linux-i686"; - sha512 = "d6b7cf4bc346cdb61b1e18e86ac1f4f0a93ff743ca0de5679732d0139837da91e3481fbdcb1865553d291e14e9059beec7e3596ad3cb1d07b1394b98ea182b85"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.vi.linux-x86_64.tar.bz2"; - locale = "vi"; - arch = "linux-x86_64"; - sha512 = "b5bfb12ee5f225e54463103bf219b0e4f4d3d6ca3d954911374d5442c53ca5a75da40c61a04d2436c1335f6fa59255f6b0d063f9ebe0e87da26100e5f2dddff8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-CN.linux-i686.tar.bz2"; - locale = "zh-CN"; - arch = "linux-i686"; - sha512 = "e204aa5c675183bd20852ec9201c2f978a8152a9eb36b1e9ea4e35bdb4268aa5289d476293c3c073c3d21db22167d381f8b6f61bbdeca97b05920394f33bc6e8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-CN.linux-x86_64.tar.bz2"; - locale = "zh-CN"; - arch = "linux-x86_64"; - sha512 = "895e7ab57368aba33d3588b00dc4f13a3294a476fc874d39df66273b00ba2e11a8f18ce85ef95ade8d9c9d98ac6c47bd93f166f498e51f7951b224182fa99775"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-TW.linux-i686.tar.bz2"; - locale = "zh-TW"; - arch = "linux-i686"; - sha512 = "c346f52fdca4cce2dea5014426d6b1471707348ce358ee98b1520d2a9526035ee654aac6025a5b74f0d22d13b2887b8f338e6e70eb11859df780f2620ba0d214"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-25-03-02-06-mozilla-central-l10n/firefox-53.0a1.zh-TW.linux-x86_64.tar.bz2"; - locale = "zh-TW"; - arch = "linux-x86_64"; - sha512 = "bd78a693fb6c715b93e5f8c03c26db55bf76cdbf4781bc79164f5d454a5f0462bd4e03c95fc54353c26ca1f9af6786d63e1e75bd85a9124db8f404a20c5958e8"; - } - ]; - version = "53.0a1"; -} diff --git a/pkgs/firefox-bin/update.nix b/pkgs/firefox-bin/update.nix deleted file mode 100644 index 05e3f42d9e61..000000000000 --- a/pkgs/firefox-bin/update.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ name -, writeScript -, xidel -, coreutils -, gnused -, gnugrep -, curl -, channel -, basePath ? "pkgs/firefox-bin" -, baseUrl ? "http://archive.mozilla.org/pub/firefox/nightly/" -}: - -assert builtins.elem channel ["nightly" "developer"]; - -let - version = (builtins.parseDrvName name).version; -in writeScript "update-${channel}-bin" '' - PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin - - pushd ${basePath} - - tmpfile=`mktemp` - url=${baseUrl} - - # retrive last year - year=`xidel -q $url --extract "//a" | \ - sed s"/.$//" | \ - grep "^[0-9]" | \ - sort | \ - tail -1` - - month=`xidel -q "$url$year/" --extract "//a" | \ - sed s"/.$//" | \ - grep "^[0-9]" | \ - sort | \ - tail -1` - - cat > $tmpfile <> $tmpfile <> $tmpfile <> $tmpfile < $tmpfile <> $tmpfile <> $tmpfile < ${(builtins.parseDrvName package.name).name}.log - CODE=$? - if [ "$CODE" != "0" ]; then - echo " - ${package.name}: ERROR " - echo "" - echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" - echo "" - cat ${(builtins.parseDrvName package.name).name}.log - echo "" - echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" - exit $CODE - else - rm ${(builtins.parseDrvName package.name).name}.log - fi + ${package.updateScript} + #&> ${(builtins.parseDrvName package.name).name}.log + #CODE=$? + #if [ "$CODE" != "0" ]; then + # echo " - ${package.name}: ERROR " + # echo "" + # echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" + # echo "" + # cat ${(builtins.parseDrvName package.name).name}.log + # echo "" + # echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" + # exit $CODE + #else + # rm ${(builtins.parseDrvName package.name).name}.log + #fi echo " - ${package.name}: DONE. " ''; -- cgit 1.4.1 From 60a0928d44250afc50fd72cbe7c1def2c00f4c93 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Thu, 8 Jun 2017 14:48:26 +0200 Subject: removing unused code --- pkgs/firefox-nightly-bin/developer_sources.nix | 490 ------------------------- pkgs/firefox-nightly-bin/update.nix | 53 --- 2 files changed, 543 deletions(-) delete mode 100644 pkgs/firefox-nightly-bin/developer_sources.nix diff --git a/pkgs/firefox-nightly-bin/developer_sources.nix b/pkgs/firefox-nightly-bin/developer_sources.nix deleted file mode 100644 index 1bdfdb927fdb..000000000000 --- a/pkgs/firefox-nightly-bin/developer_sources.nix +++ /dev/null @@ -1,490 +0,0 @@ -{ - sources = [ - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora/firefox-52.0a2.en-US.linux-x86_64.tar.bz2"; - locale = "en-US"; - arch = "linux-x86_64"; - sha512 = "c785d86926a6716e0365ea850b0cb0f81c19a3fcf9421e1676d2196ba813e1ed430177dd6df59d30b0ef517f97ca9e74a1079e0dddc8efa275069a0aa5cc22d7"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ach.linux-x86_64.tar.bz2"; - locale = "ach"; - arch = "linux-x86_64"; - sha512 = "b6d6483c0efa116b2202691eb5cbb66f470c7283b545818bf6f6062d2a794786a45732eb41dc23426e78fbf3a084eea00bd33f0d369d68c218928d367f36e529"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.af.linux-x86_64.tar.bz2"; - locale = "af"; - arch = "linux-x86_64"; - sha512 = "60249aae6292ac9c59569d9f02c0d641199fba82a264995aa5a5cf038ef774f3155b22be5a066922d6b4cc314eb7271306a3726e4fd0cbf1ffc9bcf664fe3bdb"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.an.linux-x86_64.tar.bz2"; - locale = "an"; - arch = "linux-x86_64"; - sha512 = "b4e315c48bbd49103a515303c60684f2e97317be06f5b2bab012da1cf9d50a050b8df453cff140424aeeca04a864460889f8925f96cb6888405e487081f58531"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ar.linux-x86_64.tar.bz2"; - locale = "ar"; - arch = "linux-x86_64"; - sha512 = "fd2491f87730752aa90859521459fee05ef57be66cadc9b8c8682665ada75eae2209e4738b0bb254cfcb2f07e3abacb66574689ff593ff1263e3c8354a59eaca"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.as.linux-x86_64.tar.bz2"; - locale = "as"; - arch = "linux-x86_64"; - sha512 = "3e4a56de71005d8476a87b1a8e4369ca61401128c65d77a0cd44491e3b393faf381b1c8486c3ddb53fc11813135b01fb6e137ed776ed7c162aacfdbff14465e5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ast.linux-x86_64.tar.bz2"; - locale = "ast"; - arch = "linux-x86_64"; - sha512 = "8679be3e3c539b1abf9cfd7135eb2dbccf2a39a267deb4e1a810a957c3ed5969532e46253660b520cb7aa4cd681a08b5c3558ce208bb5a88be7be838cefff13e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.az.linux-x86_64.tar.bz2"; - locale = "az"; - arch = "linux-x86_64"; - sha512 = "e8434b00c4c8f26a3643c59b7ee22d9aff392066a2bb3a556e18eb8721803927fbde26b1d49138990e12b5de217dd8f344df214fcc3ce90324b715f973df5258"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bg.linux-x86_64.tar.bz2"; - locale = "bg"; - arch = "linux-x86_64"; - sha512 = "1ae86a157a063a84a844f5522d9840380abb7b43ce71a535f82034489dc0526c57d3db0938a2d664337d2e6e3cb7d56cef96a90f0cb608e7103bce8a6dc0fe4d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bn-BD.linux-x86_64.tar.bz2"; - locale = "bn-BD"; - arch = "linux-x86_64"; - sha512 = "c8ec312f92834681f63e31291786de5cfed4273dc346485827e77d78b90c882d1b91ac43ff0322e601fbeb2b28b5a67a28bfc9b6bd5152be178ffd261be281ed"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bn-IN.linux-x86_64.tar.bz2"; - locale = "bn-IN"; - arch = "linux-x86_64"; - sha512 = "4fe97372c48612113671aea81ba197ce2a423d48582283189cb2cbc857df6fcf738030ef60860fc8d47b1617bf853773b497386cfae988b2815a3f8b94db0bbe"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.br.linux-x86_64.tar.bz2"; - locale = "br"; - arch = "linux-x86_64"; - sha512 = "55b23ea8b55933cd062c97a6a1c44347124fc3c154c394eaf007ef09eaa4e2519f5c00c6903a85b5bfb499e9c4ee55932067ff8f754d3a01daf05a35460dac8a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.bs.linux-x86_64.tar.bz2"; - locale = "bs"; - arch = "linux-x86_64"; - sha512 = "70f7a42cdcd92a0aa864a76582f32ea12e33ac3602a5572804511ab70e7099736d255e1c7a2bd99795d54fb64a30b23b21eff9f9f787d36e3115196564001562"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ca.linux-x86_64.tar.bz2"; - locale = "ca"; - arch = "linux-x86_64"; - sha512 = "7e2a01cbb56932bcb1121d28677c8243f54098906ad6bee57edfd95c18c6f6a25b89d3db5fd986bf33a8d7ad031471f42faedd7b7327d23ba0b5b26c7f35dee5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cak.linux-x86_64.tar.bz2"; - locale = "cak"; - arch = "linux-x86_64"; - sha512 = "3b9dfa09c900465d8db170ccad82dd8aa23f730e25187c982cf139b39446dc7d6167d5f8d6256e9c15b9a2f8c32e5c24e240c2d14f294e1947f4cad8588baf29"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cs.linux-x86_64.tar.bz2"; - locale = "cs"; - arch = "linux-x86_64"; - sha512 = "57ef6af04c832bf74174f5ca565d35db6cb321fba6dcf21c146ee817edd1138960b3a316e70e1d9b8ec0eb34c59345fc4d72ce863784026072467546c83df4a6"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.cy.linux-x86_64.tar.bz2"; - locale = "cy"; - arch = "linux-x86_64"; - sha512 = "1432e89284c66b3da67fe79b64a98a4bf1391357e105e59cd81359c67655700b421cc067de936d795d53fe98d2743ae4d9c0b651e894e4fc6bb110167c781339"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.da.linux-x86_64.tar.bz2"; - locale = "da"; - arch = "linux-x86_64"; - sha512 = "fe87aa94b4f9e59f782562e2b66a82e77a948398c6e3b7c5c4c60a7f470ef136197dda41d0e89dce87f9031b220661c9b74f7243b4c4a120021e7196bf9ce027"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.de.linux-x86_64.tar.bz2"; - locale = "de"; - arch = "linux-x86_64"; - sha512 = "5be12057682094fdd0853b998fc1e471ad1f8a4555daedc035994116e4fd0ec6ad5c5040c3ca3ae18a8e08cbceb8788c338234dfd2b23d068f8570c029fa3cd6"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.dsb.linux-x86_64.tar.bz2"; - locale = "dsb"; - arch = "linux-x86_64"; - sha512 = "260e22d96927b9821c53abce71885dc9998bcae0d3ac8aac3ddc2a113a6d437d5379bc8e17395f900423dc6d3b946e73ea64e218f679dd5b0f6de2b286a81402"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.el.linux-x86_64.tar.bz2"; - locale = "el"; - arch = "linux-x86_64"; - sha512 = "613db55e1921bdb1a1a518b0f5d878ec8e131a08c2c04d03dc8ee056a4b24ae17e2b41dc5e26f31e4a7d343cdbae7d953dd69fe846112eb9515e97598d193714"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.en-GB.linux-x86_64.tar.bz2"; - locale = "en-GB"; - arch = "linux-x86_64"; - sha512 = "00662ba44b207a918a04a9fbeef920863e2c17510318984361fddc39551903628a9ee9799c508995d6256e73449100b6e0dc0ee75386e9f86d4d7e4b844a5a80"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.en-ZA.linux-x86_64.tar.bz2"; - locale = "en-ZA"; - arch = "linux-x86_64"; - sha512 = "828a12a1a21c3b2ee5603ae6ac935e3a27d448e312be2b7088424cf367c25043f71175eed6f1f97c2905fa1a474c8828900529a7d0a7c8f03af5c6560ee94c6b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.eo.linux-x86_64.tar.bz2"; - locale = "eo"; - arch = "linux-x86_64"; - sha512 = "232753f9ec5f269cf560f30eb3ee76efe069815c894f76d3e5d95c6c0be7c6172c10e813fcd07bc2389684fb3478db5482d52436a07b7dab417dabdd245523df"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-AR.linux-x86_64.tar.bz2"; - locale = "es-AR"; - arch = "linux-x86_64"; - sha512 = "e678f6df9c33d9ca1f327543923a2a27e6d591fca9d74b77311f50954b032e7cba0491cd85ebf215802cd927ced8f5288e5a6de7ea86a980398d15e582e2bcea"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-CL.linux-x86_64.tar.bz2"; - locale = "es-CL"; - arch = "linux-x86_64"; - sha512 = "00b5828e0309c267b384a7fd8e021efca29fc6fcf83e83398f11946af27a4fc25be190fd51a382a1c68506f56588d24d34149d817acd5735023fc2045e464d9c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-ES.linux-x86_64.tar.bz2"; - locale = "es-ES"; - arch = "linux-x86_64"; - sha512 = "544d347a492a43cc4499c282ad12105c3abeafd014a5e270610bbe295da28cb0b57b07e22e46c3346ba8152817de14909654f458dde430c091135ec63e0fb530"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.es-MX.linux-x86_64.tar.bz2"; - locale = "es-MX"; - arch = "linux-x86_64"; - sha512 = "8dbceffb8015290864c806157425f720a46f0e0df2a828ff34853c1cf37ad0ec80dae621a76ef7947c52d52c0241e71a51266cfef91f3baf1e01bfac93791818"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.et.linux-x86_64.tar.bz2"; - locale = "et"; - arch = "linux-x86_64"; - sha512 = "2426fdb0a28e21c8af1010cac2e252d6b7aa261486c54bbdc959b33cc6fd4b1a0ff51537e88edd761f4ccb8c8b03f8780a91b7b5ae56de28d70ea43b3a0067d4"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.eu.linux-x86_64.tar.bz2"; - locale = "eu"; - arch = "linux-x86_64"; - sha512 = "9c370ba20ff45a30df02a86b93d55af15a8c858f579d18a659e1a2e209bdd933479639931aed7bc4380498e31508bb7b6f841db16a5bb78fcb44b549d75066d9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fa.linux-x86_64.tar.bz2"; - locale = "fa"; - arch = "linux-x86_64"; - sha512 = "b9fdae2deb85323e861b8ff3e90782eae5c99f9795b8a5d1be8aa8f1552810dfc3f58583724bfb071e8bb8184a4cc2ea82fe7db99fe929c1795d446719834964"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ff.linux-x86_64.tar.bz2"; - locale = "ff"; - arch = "linux-x86_64"; - sha512 = "26ec4c616e1a230065709ef145e6b3909fb90a94849fe8e63f950604bf8a615c4a2d22a159cba6fd0a1efcea6aecd49af89562e44c93af9bb97b363eeb3e9460"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fi.linux-x86_64.tar.bz2"; - locale = "fi"; - arch = "linux-x86_64"; - sha512 = "314c02413ef0cf8a32cfd236012fa8afa2ecc169a9db735322a020d705b2b51b0a1d7df84e95cb6cd1d1c05f6119e826585c0ff92348541bfbbb49bf3c8141ef"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fr.linux-x86_64.tar.bz2"; - locale = "fr"; - arch = "linux-x86_64"; - sha512 = "ea70bf96902550e211f3400a90fffca711d69ec701941e2f0ca861b5421231cac8ab62dc0da1273138d142ac751ce983c7e47e6930b7fdf9a8a1fb5ca01f3a09"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.fy-NL.linux-x86_64.tar.bz2"; - locale = "fy-NL"; - arch = "linux-x86_64"; - sha512 = "7b639f14f680d829bf05789ab9f29e393e7ac3b23aaa54fbe1522900852e446ab338088b077c446694443e54e92f2f16101479dab78498e9b245fb5778d85216"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ga-IE.linux-x86_64.tar.bz2"; - locale = "ga-IE"; - arch = "linux-x86_64"; - sha512 = "7b186ffac4f754bbd4d84956af515690dda32ed8a6ace84e46629d57f52117f1928d777a659066c50f432315119211de9e596ea51627f62090fd48dfe8f36d2d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gd.linux-x86_64.tar.bz2"; - locale = "gd"; - arch = "linux-x86_64"; - sha512 = "97cfc6cedff65ddebec9ddf57bdee752ff77b0adfe07fc846fba5346eeba5647e60c626f9abb6e32394a2a7481164eb6c1483593880aeb8fe0a0adeb36b8ff99"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gl.linux-x86_64.tar.bz2"; - locale = "gl"; - arch = "linux-x86_64"; - sha512 = "389c1e7546eee4360d97104073fbc580f0b2d39d98717eaf03a43388e97d0d8c3bb31071264a8e655fc5507f05bc7e49f42c747a45950fa0374ce13000d693fa"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gn.linux-x86_64.tar.bz2"; - locale = "gn"; - arch = "linux-x86_64"; - sha512 = "1974a8b2df50eec50da2b61eb94897d4c965713a1cf3861ad9f24abcd96406485995060effe67e85dca4fe0f104583eadde0aa3009caa84d71f6a7ed628e75cd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.gu-IN.linux-x86_64.tar.bz2"; - locale = "gu-IN"; - arch = "linux-x86_64"; - sha512 = "5b2e4ff43a5d5959d3c3e8ab8fefbc21862bd481543c2e88f332c8b59b1b28d48ab625a200bfadf48ae9f944dfa62f8d2fc61fb40d4f0e472dd060b73a4513b3"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.he.linux-x86_64.tar.bz2"; - locale = "he"; - arch = "linux-x86_64"; - sha512 = "644769a696233d5e9f6bef9f3ef2c3b4985766a542b81f400a3c1f7c3bde309bb1bb8e12d22e2b66937de1f83d806a8ce93cbeb7283381ef41c2612031fdc58b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hi-IN.linux-x86_64.tar.bz2"; - locale = "hi-IN"; - arch = "linux-x86_64"; - sha512 = "7bd0162487e59e3a69708b44e7a70f5c1433973c2f02da718bb1bff2f623c9ba169d04e86914b671f93b10244f1c4e3f35bdbb79f17892822c590ad4f6744d4e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hr.linux-x86_64.tar.bz2"; - locale = "hr"; - arch = "linux-x86_64"; - sha512 = "f5ceef9ef26df4fc5e07337598c241933e09d89caf45925020dfc16a758f887c8e3e9bc1b30440f3219b1184c8396dc4dda47ab0d0a8192e084df9bf34090a58"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hsb.linux-x86_64.tar.bz2"; - locale = "hsb"; - arch = "linux-x86_64"; - sha512 = "a4d13726928b652f92ff20160569f46fdbae377fb1b4855c94dd7ffc08d988fb94bf9e9f4fe5bac9e68d7df16d14db39913376dfae03823f8a29e62786f0dda2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hu.linux-x86_64.tar.bz2"; - locale = "hu"; - arch = "linux-x86_64"; - sha512 = "6ab65bcec6b278f56822e01d295150224deec06619a970bab0597e008aa57117070027212a3089d08efd9284e668790acbad75f31527b709663756465fad136d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.hy-AM.linux-x86_64.tar.bz2"; - locale = "hy-AM"; - arch = "linux-x86_64"; - sha512 = "650ac33dab1254445c8373be2cc3263c4f3d8c8c814c686e8d57568f51924a3e699f75c75c48f50bb20d3dbec67f018370a3b4accc68ad68c3fa633592a5705b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.id.linux-x86_64.tar.bz2"; - locale = "id"; - arch = "linux-x86_64"; - sha512 = "af4f38bc885f6d32f6a8acf8471807f6300cc3a15077b7a8bc3010a2171dba3d895576092384c74d42b4c090868f376fd57ac51812972290535c5879ee9c7f6a"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.is.linux-x86_64.tar.bz2"; - locale = "is"; - arch = "linux-x86_64"; - sha512 = "19654cbf256ddc741ea900f01c0d030ac4dd5f4eb9ddaa65525fa7733cdb4754759feffa6a7f6f88a3fd0a4aedde564c52b9e22df4c17e8a97a72d39e789f7ee"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.it.linux-x86_64.tar.bz2"; - locale = "it"; - arch = "linux-x86_64"; - sha512 = "03eedeae61a481514194bc051290cd8e4a4a865810a84e4b9d9aa4fc3cb0325c88e09f05ddd324fef69a45caf31a7e0cb1072270d20ba8abd940d27d6580ccf9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ja.linux-x86_64.tar.bz2"; - locale = "ja"; - arch = "linux-x86_64"; - sha512 = "0342776d1c8822b69a7d3417627681004df2d77e7fda41a08c741ee851cbc5403c1dc79402d77113ce548c990e121bd03a4bede6813479df131f41cb2b0e6b0c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ka.linux-x86_64.tar.bz2"; - locale = "ka"; - arch = "linux-x86_64"; - sha512 = "3b9562d0a33ee6865d655b1bd17a2c72d1aa94bbd88e4561fdd2bb704c98197cc70a8ea43d2077f2b552a245fb1eb2b668cbce0592bf0d50165b6e2b9d6a828e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kab.linux-x86_64.tar.bz2"; - locale = "kab"; - arch = "linux-x86_64"; - sha512 = "0ac34eeb7295d4851bb0b29273dab8310b4ce4c17706715c8b18a1e29b0dda42296d253a12c64ac2610edaecbc0ee063b646c787ff80d2a0565842996907bbf8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kk.linux-x86_64.tar.bz2"; - locale = "kk"; - arch = "linux-x86_64"; - sha512 = "7fa48c065301c21b27035a5d0cb1e917fefe3b9d512379a0eecb02eed766cd51525d7de634d007638e214eb1af583ab2bc91a44f540a1b3d39051b8c02cb1530"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.km.linux-x86_64.tar.bz2"; - locale = "km"; - arch = "linux-x86_64"; - sha512 = "1cb1968dc7c36909b30fd86a8a47ee82809742f22a9fb304179ab52e3273f88aa30377c551eaf8839dad318b0037a90cf5c87ef27442d2420e2104f649cd39d1"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.kn.linux-x86_64.tar.bz2"; - locale = "kn"; - arch = "linux-x86_64"; - sha512 = "f3b47ffa14c5f2072847f2dc4e911891e8cdac9463d123abe83bf6520400e296b453a0f6ae796dd0a42ff0596f4a3aa75e2869f7e5918bdc2645fdeee1e77d98"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ko.linux-x86_64.tar.bz2"; - locale = "ko"; - arch = "linux-x86_64"; - sha512 = "8111dd217a11e949bceacc1076d6d57e29b98ab851328a72bbde9e93b724b744936dc11b6f842443d7358a95542cd863ffa28b5119d989a84637bbc7497884a8"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lij.linux-x86_64.tar.bz2"; - locale = "lij"; - arch = "linux-x86_64"; - sha512 = "5555b8b5b423afba2f92e67f5ba10e3763d240711cdafdd9ee89feef47cee699d33d00a4883b326d7cdfbf3e9a3d6379cc98e6b7df9c7e269da17e1516d2f5d9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lt.linux-x86_64.tar.bz2"; - locale = "lt"; - arch = "linux-x86_64"; - sha512 = "2fd48f70fcc56a8e1f7408080a8540e6fc320a808cb0659796d0c3fff55c7ed7bf0f8a046c19988b35fee4a4d7d6d5c954756907cab699b3337a8b01757f47e9"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ltg.linux-x86_64.tar.bz2"; - locale = "ltg"; - arch = "linux-x86_64"; - sha512 = "bf47078876ac25c9a86e46aa2b15ae34011dc987074eaa523d06f477ce92159ed7be6bb584b940e98a4898ad7d1b8452af1671579f4b8cb020c147d1b773ec90"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.lv.linux-x86_64.tar.bz2"; - locale = "lv"; - arch = "linux-x86_64"; - sha512 = "a13fef273aadc153974f8a9ebddf28ec5e028ecfd7f9262588a622b8da63db5293f39a2eda6da5f0a9ccd5a84f0860849c1153b92d92a5abbdc19692f7def697"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mai.linux-x86_64.tar.bz2"; - locale = "mai"; - arch = "linux-x86_64"; - sha512 = "e0f119757053008d996fb9830e2d363fab581d958c704a888fc2aa97d5f818051782fe4f31db661d74e6123151a92b1eb7fcb8ce3b53278e4f4a2079621dd77b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mk.linux-x86_64.tar.bz2"; - locale = "mk"; - arch = "linux-x86_64"; - sha512 = "0ea7bc5a6817805689e005e35f64b9b02e7625ddb8d74bf89a54a65dc727d6c4126e1e8304901a410fa6e473c7bcb83dcdd03347ca4fecc45dfff151bf2d4e97"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ml.linux-x86_64.tar.bz2"; - locale = "ml"; - arch = "linux-x86_64"; - sha512 = "f3a2c41e5d5f6e031f707b730c4483230a421326a94cb9f9a766b0fcb6dfc14fba71c9c4db853062c72693c15c264986cc49b540b3b2573c24e89bcef0c28ef2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.mr.linux-x86_64.tar.bz2"; - locale = "mr"; - arch = "linux-x86_64"; - sha512 = "538e3a6b93d5b58bd181c9456ba0d614859a5b3954168f374ad00dd24c5638d997f5f5f24b7fef0e796cff06f7068294ebcfec0b3aeae182ccb389d0d5636d8d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ms.linux-x86_64.tar.bz2"; - locale = "ms"; - arch = "linux-x86_64"; - sha512 = "ff58b8facbbfd03b28a1eecb9d439ebeaa83b6fd01e0b27563cc25f5bc654496f67a78549388318d9f6e2d15958281d7e98a1e90bb0469885129ec0cc88e6df5"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.my.linux-x86_64.tar.bz2"; - locale = "my"; - arch = "linux-x86_64"; - sha512 = "aee4cae42308ba97faf82c30460f0188b6c91110ff2a3298c573445dd5ab0d9d0a03186340d13fce56bd5f0d8aed26726064cfd95d0f36a407b64fe06b98507e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nb-NO.linux-x86_64.tar.bz2"; - locale = "nb-NO"; - arch = "linux-x86_64"; - sha512 = "d8255af8bf57a3a218e37393e05c4000624b0b52defd85b7e30e50aed7989f1e262d304cae4b615ec3222fb1375c08041fcbb29f779b43c497f1b93cce61d501"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ne-NP.linux-x86_64.tar.bz2"; - locale = "ne-NP"; - arch = "linux-x86_64"; - sha512 = "3d138d68b39c7ad5a8674ae0a8a6184068f3d25878bc636bc28097a21065b3dd252ff996c9177db9ea8a8023b3ec69c07c97858161f100036660ccaabf5eb26c"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nl.linux-x86_64.tar.bz2"; - locale = "nl"; - arch = "linux-x86_64"; - sha512 = "b04e638c1e20c8bb5c40d319a6cb2f73e5a8ed26f2968e564891118581d87d7487651457fb7e659c3604f66bd69a2f8e394a6145547faf9b195d417a6c14dbce"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.nn-NO.linux-x86_64.tar.bz2"; - locale = "nn-NO"; - arch = "linux-x86_64"; - sha512 = "4c88fe7a4ba5bcb39fe30758d61f81774fd4cb0f9e74c5fd5be1c41e790841edd9d737014ccd00d6402597058e79daa763ff5496d19ac408b50f2cce199b0b2f"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.or.linux-x86_64.tar.bz2"; - locale = "or"; - arch = "linux-x86_64"; - sha512 = "0534b569c98ee9200bec0872810b3948780b7b136c08b5fa3b4db3934184df4672e8d4e17a190b306aeb6b8f80019e037241ff79031caf43d418e4253ae782b7"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pa-IN.linux-x86_64.tar.bz2"; - locale = "pa-IN"; - arch = "linux-x86_64"; - sha512 = "5936896dda11febeaba8a8eacf1a586d46557262a56c378757b1e4128828cd26510b1016d9483bb7cf7272bddcacaf22b8b761caf28eb73f8314a70a2924ac53"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pl.linux-x86_64.tar.bz2"; - locale = "pl"; - arch = "linux-x86_64"; - sha512 = "35a9cd76678273a32ea5f731a9c6d836ede017ccb48e4897c108b8c3dd23b45cf7f4eaa700f79f8d97132d9d76a0615e1b51975b3efe2c251402bbcc25f758e1"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pt-BR.linux-x86_64.tar.bz2"; - locale = "pt-BR"; - arch = "linux-x86_64"; - sha512 = "ec360bc485db0cfbaddd2e347d070c6ed5aa48b7fdf889b20eba7017833b5e5707c4ba74510b4f69ae279eb59a8e8711aa419b480d194c7b2a615f9d7cb3d3cd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.pt-PT.linux-x86_64.tar.bz2"; - locale = "pt-PT"; - arch = "linux-x86_64"; - sha512 = "d88643429e151c80b033fbab697f52fa3d13117f4dcd452038c80c31f1d992af1de77f59f69fc0b0c24500928a11759653ec39694f61940a4447e0c4f61e8a25"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.rm.linux-x86_64.tar.bz2"; - locale = "rm"; - arch = "linux-x86_64"; - sha512 = "813eeabe86cd3b72eadc0c1904c27987ad0c4ff95bd73fd810e18ad05e5f3fc17a68dbc110b5d6d379f59830f43331edc13a621dd1c2f89cf421bf80b9c2f5c2"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ro.linux-x86_64.tar.bz2"; - locale = "ro"; - arch = "linux-x86_64"; - sha512 = "a36fbe6e5699c99fd2dc87c59b2ec223a16b7704461483642ec4e9f1fc43f89a6416e8d344e670c219ae9c693a92f71f2517262b8fc876acd3e9c93576e617bf"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ru.linux-x86_64.tar.bz2"; - locale = "ru"; - arch = "linux-x86_64"; - sha512 = "b4ccefbcb9ea1ee11cc2dea83449983bccff059ffd2ab74dfa05896b11497cb3c88f377dce1327cef3908ce29f2ec6dcf5b506fac2bd0c946b3249c090299a80"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.si.linux-x86_64.tar.bz2"; - locale = "si"; - arch = "linux-x86_64"; - sha512 = "c028ebc9be3617f6d5958372c2c18a2b0db6de7603595493fd2d494754a881c5f7783980bb2ee9aeeea80b3b83262f511ff2944226f725f18f66d5c0a8bf9a52"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sk.linux-x86_64.tar.bz2"; - locale = "sk"; - arch = "linux-x86_64"; - sha512 = "0cbdea7659c455adc017a2209b69a9b038a969ab87d0508d54201b169d2a9779ba1c6d6d176b81567735bfe7b60530191911b01960ea5893664dc3440e29567f"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sl.linux-x86_64.tar.bz2"; - locale = "sl"; - arch = "linux-x86_64"; - sha512 = "7ba3ed95de3ea059d82dac7e18fef8cb794d3ebd48ae52a3c9d6411eb7b1c3c340be3ae468eea86e973baa9255954da9525eaa59cdc73cbd60c6925c7439312b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.son.linux-x86_64.tar.bz2"; - locale = "son"; - arch = "linux-x86_64"; - sha512 = "13734f3a619e969e1507f4a92bbe49a54e5b8a849503cce359b776af0431e8f5c7541d6e18678aaaec8a38ee2780c3f6c25799edbfdb3fc7c1f9cea78ffba1be"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sq.linux-x86_64.tar.bz2"; - locale = "sq"; - arch = "linux-x86_64"; - sha512 = "3b5f983af7392d247a27fe808e6d01bc2af3d325a8868dba570968c3110d9224d418530739b37b80942fb7bb28791b52ecf1515aefd431ec6e68757546ad19f0"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sr.linux-x86_64.tar.bz2"; - locale = "sr"; - arch = "linux-x86_64"; - sha512 = "1f0e8d858bc719cadb1d0fcc7d6b9ad7968b5d776f9efc7a0e4643d416de7ee9686a8e00938f684fe6dbcea73ee4b18a8f6a090de1cd28ed303bdf316b0590dd"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.sv-SE.linux-x86_64.tar.bz2"; - locale = "sv-SE"; - arch = "linux-x86_64"; - sha512 = "80b802ceba9f506fc675136b11d8f4233a80fbfe44f082e55ee2b744f578bb27db6caddb390363d5300ad3ed0baa3df2c926543ec0c567e6320b40bcc9bf043d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ta.linux-x86_64.tar.bz2"; - locale = "ta"; - arch = "linux-x86_64"; - sha512 = "d23e3f6337f17a0c77865afba5f13de600041b678c9a1cfeff3b304c367af9f53ae383557826446ed7229bd916acfea4ed4c266e789c1784ba885a070e65fc78"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.te.linux-x86_64.tar.bz2"; - locale = "te"; - arch = "linux-x86_64"; - sha512 = "cc51628c0664bdda8b964e9a893f311ac12c56cbcc7e5f3995fcf7282c8c8813b3555d739645c19e52e44f9cc7583c92a23a1249778a1d2a5a6048749fa4b70e"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.th.linux-x86_64.tar.bz2"; - locale = "th"; - arch = "linux-x86_64"; - sha512 = "0f5bc8777a39d759a81001538edc4566da4a67a30067a0817d0cb54c369e0575ee575a58da63ad788ae98f17e87a7d6e4d0efa42506c6e61a7983c3c6b5c0d0b"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.tl.linux-x86_64.tar.bz2"; - locale = "tl"; - arch = "linux-x86_64"; - sha512 = "860466cacbb8cd713f7a06c63b6d8f7baa1c3effd890126c082a3eaa9490197447b52bac05d1c8be17cb4260d51d288c77e59aea77c8d0129b91f394aaf6cf81"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.tr.linux-x86_64.tar.bz2"; - locale = "tr"; - arch = "linux-x86_64"; - sha512 = "8ff010ebc40d3e4eee917469e7eb968ee6e0d2d5b98bfe10e242b4f5e7a655ad12d789a05f5d38f416ac6dc54f682ad25eff04160dab0e02042858b8a9d48697"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.uk.linux-x86_64.tar.bz2"; - locale = "uk"; - arch = "linux-x86_64"; - sha512 = "47408d24acabe6a25450fb58a6ed053fb84c0e329c73f41371dee306c64cf0f6510fd10d5beaa794513c20ba4f76e4f33df6e6f1c7899bffdc98698ffebb7355"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.ur.linux-x86_64.tar.bz2"; - locale = "ur"; - arch = "linux-x86_64"; - sha512 = "584e5b16c1fdf09ece531f6ea13664bcd461284708a00f2c4485570aa587fe970e4120875d73572acec664a83ded5c98ea3b5df6ad3665ce28a19eb75cf08562"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.uz.linux-x86_64.tar.bz2"; - locale = "uz"; - arch = "linux-x86_64"; - sha512 = "890e9a2d6afb8bee7eb7cb2a0597a9580981c2fdcfed4a2b61967115be63564544c34023221d2dde638d67a429bb9135b3b754ca0aeaf893966ef33ec5befe58"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.vi.linux-x86_64.tar.bz2"; - locale = "vi"; - arch = "linux-x86_64"; - sha512 = "44e5ea3359148f609620c4fb967a90236596114ffef6c4e3d3d5d41c62d04cc85359287f591cf8e1e7baf1c53c904de059002f31af4023fa50fd35fafbe1f722"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.xh.linux-x86_64.tar.bz2"; - locale = "xh"; - arch = "linux-x86_64"; - sha512 = "6300d64c7d5a7b4744b6bae492f9ddd561bda4cfb2da85af255408429c5b20f4142f3c866adc60a89acf95c1d20b7db5d6c56bf68baafda02eefe77cb656d566"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.zh-CN.linux-x86_64.tar.bz2"; - locale = "zh-CN"; - arch = "linux-x86_64"; - sha512 = "b5bdf4c33a21b9aada5aea3e3d01d25bcd9615623c9da6ba98a69e3613744267e85328a632273bb224983b486fc1d00d9a111d99c9b5c0934b17d69d6f4aa66d"; - } - { url = "http://archive.mozilla.org/pub/firefox/nightly/2016/12/2016-12-26-00-40-03-mozilla-aurora-l10n/firefox-52.0a2.zh-TW.linux-x86_64.tar.bz2"; - locale = "zh-TW"; - arch = "linux-x86_64"; - sha512 = "5ace499ee9cc1ca1f38aa476fc46d4d38b28f7752e635354e4b7626ed3fc60d57f80ccbc9dee69b452cc462b4a752c5dea0da2f04735d80b96bf9dd5ad0fe303"; - } - ]; - version = "52.0a2"; -} diff --git a/pkgs/firefox-nightly-bin/update.nix b/pkgs/firefox-nightly-bin/update.nix index b9875991b7bf..1c160caa272d 100644 --- a/pkgs/firefox-nightly-bin/update.nix +++ b/pkgs/firefox-nightly-bin/update.nix @@ -44,56 +44,3 @@ in writeScript "update-firefox-nightly-bin" '' popd '' -# day=`xidel -q "$url$year/$month/" --extract "//a" | \ -# sed s"/.$//" | \ -# grep -v "l10n$" | \ -# grep "^[0-9]" | \ -# sort | \ -# tail -2 | head -1` # we dont take the last but second last -# -# checksums=`xidel -q "$url$year/$month/$day/" --extract "//a" | \ -# grep ".checksums$" | \ -# grep linux | \ -# tr "\n" " "` -# -# for checksum in `echo $checksums`; do -# arch=`echo $checksum | cut -d"." -f4` -# locale=`echo $checksum | cut -d"." -f3` -# version="`echo $checksum | cut -d'.' -f1 | sed 's/firefox-//'`.`echo $checksum | cut -d'.' -f2`" -# sha512=`curl --silent $url$year/$month/$day/$checksum | grep firefox-$version.$locale.$arch.tar.bz2 | grep sha512 | cut -d' ' -f1` -# -# cat >> $tmpfile <> $tmpfile < Date: Thu, 8 Jun 2017 14:50:17 +0200 Subject: uncomment commented stuff --- update.nix | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/update.nix b/update.nix index e6899dd3f9fb..523e45f948d0 100755 --- a/update.nix +++ b/update.nix @@ -87,21 +87,20 @@ let runUpdateScript = package: '' echo -ne " - ${package.name}: UPDATING ..."\\r - ${package.updateScript} - #&> ${(builtins.parseDrvName package.name).name}.log - #CODE=$? - #if [ "$CODE" != "0" ]; then - # echo " - ${package.name}: ERROR " - # echo "" - # echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" - # echo "" - # cat ${(builtins.parseDrvName package.name).name}.log - # echo "" - # echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" - # exit $CODE - #else - # rm ${(builtins.parseDrvName package.name).name}.log - #fi + ${package.updateScript} &> ${(builtins.parseDrvName package.name).name}.log + CODE=$? + if [ "$CODE" != "0" ]; then + echo " - ${package.name}: ERROR " + echo "" + echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" + echo "" + cat ${(builtins.parseDrvName package.name).name}.log + echo "" + echo "--- SHOWING ERROR LOG FOR ${package.name} ----------------------" + exit $CODE + else + rm ${(builtins.parseDrvName package.name).name}.log + fi echo " - ${package.name}: DONE. " ''; -- cgit 1.4.1 From c70c8cee2719c01353160fa0fa77b04e0c818170 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Thu, 15 Jun 2017 04:02:44 +0200 Subject: multiple updates * updated firefox-nightly * updated gecko source * updated nixpkgs and switched to nixos-unstable-small channel --- default.nix | 2 +- pkgs/firefox-nightly-bin/default.nix | 1 + pkgs/firefox-nightly-bin/sources.nix | 6 +++--- pkgs/firefox-nightly-bin/update.nix | 4 ++-- pkgs/gecko/source.json | 4 ++-- pkgs/lib/update.nix | 12 ++++++------ pkgs/nixpkgs.json | 4 ++-- 7 files changed, 17 insertions(+), 16 deletions(-) diff --git a/default.nix b/default.nix index b5acecfa15ed..861327155a11 100644 --- a/default.nix +++ b/default.nix @@ -31,7 +31,7 @@ let updateScript = self.lib.updateFromGitHub { owner = "NixOS"; repo = "nixpkgs-channels"; - branch = "nixos-unstable"; + branch = "nixos-unstable-small"; path = "pkgs/nixpkgs.json"; }; }; diff --git a/pkgs/firefox-nightly-bin/default.nix b/pkgs/firefox-nightly-bin/default.nix index fb360abf29d9..fb6264b7c2f9 100644 --- a/pkgs/firefox-nightly-bin/default.nix +++ b/pkgs/firefox-nightly-bin/default.nix @@ -5,6 +5,7 @@ let unwrapped = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { inherit (pkgs) stdenv; + channel = "nightly"; generated = import (./. + "/sources.nix"); gconf = pkgs.gnome2.GConf; inherit (pkgs.gnome2) libgnome libgnomeui; diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index 3b42efbcc4b8..e1a9ebb691a0 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "55.0a1" + "-" + "20170607100302"; + version = "56.0a1" + "-" + "20170614100332"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-55.0a1.en-US.linux-x86_64.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "97f04fd45a75a0eadba167a9867ee5e9aaa4b0ecc76a53832710ce398edee03b0b4d2868cc8cfb2be95d212eb354228487fd73a784259798aab404dc21fe53b9"; + sha512 = "3acd16bde75e4f79717da1c19f2e326df1bb84f82d117200ed2f55dd28165cd39d65e45bc9d95b07fe61ca77ef9b8a2aa385f19b782db13f7a80244ab2a198ca"; } ]; } diff --git a/pkgs/firefox-nightly-bin/update.nix b/pkgs/firefox-nightly-bin/update.nix index 1c160caa272d..9f8f694a0c9c 100644 --- a/pkgs/firefox-nightly-bin/update.nix +++ b/pkgs/firefox-nightly-bin/update.nix @@ -13,7 +13,7 @@ let in writeScript "update-firefox-nightly-bin" '' PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${jq}/bin - set -eux + #set -eux pushd pkgs/firefox-nightly-bin tmpfile=`mktemp` @@ -22,9 +22,9 @@ in writeScript "update-firefox-nightly-bin" '' nightly_file=`xidel -q $url --extract //a | \ grep firefox | \ grep linux-x86_64.json | \ + tail -1 | \ sed -e 's/.json//'` nightly_json=`curl --silent $url$nightly_file.json` - nightly_checksum= cat > $tmpfile <&1 | \ - ${gnugrep}/bin/grep "hash is " | \ - ${gnused}/bin/sed 's/hash is //' + tail -1 } echo "=== ${owner}/${repo}@${branch} ===" @@ -34,7 +34,7 @@ in { echo "sha256 is not valid!" exit 2 fi - source_file=$HOME/${path} + source_file=${path} echo "Content of source file (``$source_file``) written." cat < Date: Fri, 16 Jun 2017 13:56:52 +0200 Subject: firefox-nightly-bin: update --- pkgs/firefox-nightly-bin/sources.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index e1a9ebb691a0..e0519263e1e2 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170614100332"; + version = "56.0a1" + "-" + "20170616100254"; sources = [ { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "3acd16bde75e4f79717da1c19f2e326df1bb84f82d117200ed2f55dd28165cd39d65e45bc9d95b07fe61ca77ef9b8a2aa385f19b782db13f7a80244ab2a198ca"; + sha512 = "01fe9102bea366bd9a9e8328ceef00c8b651657ca6fdfce1452fb50e6187ae2bd19bdbb0b6a42db44729a642c343c4520b52366e4449f3d1043bd1924b6c9b9a"; } ]; } -- cgit 1.4.1 From 23936231a292e752f1c7f607da8c3f5ed0f6e089 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Fri, 23 Jun 2017 12:51:05 +0200 Subject: firefox-nightly-bin: 56.0a1-20170616100254 -> 56.0a1-20170622100312 --- pkgs/firefox-nightly-bin/sources.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index e0519263e1e2..d90505c084ec 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170616100254"; + version = "56.0a1" + "-" + "20170622100312"; sources = [ { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "01fe9102bea366bd9a9e8328ceef00c8b651657ca6fdfce1452fb50e6187ae2bd19bdbb0b6a42db44729a642c343c4520b52366e4449f3d1043bd1924b6c9b9a"; + sha512 = "f436ed96ca9a5c66361c4bfa34ad541142f15e2bda452775581bd7f5783794314b8853f12cdcbde88ee0608a769e5983af6d103ed53d04de4c11201ffa263893"; } ]; } -- cgit 1.4.1 From d3453b7b5fd3cb4b9b659ac4b0ffeb275413dcfe Mon Sep 17 00:00:00 2001 From: anderspapitto Date: Wed, 28 Jun 2017 02:04:31 -0700 Subject: expose picking rust channels from specific dates (#39) --- rust-overlay.nix | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 5a1d3d6b757a..1d8237b62f17 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -137,7 +137,7 @@ let fromManifest = manifest: { stdenv, fetchurl, patchelf }: fromManifestFile (builtins.fetchurl manifest) { inherit stdenv fetchurl patchelf; }; -in +in rec { lib = super.lib // { @@ -147,6 +147,17 @@ in }; }; + rustChannelOf = manifest_args: fromManifest + (manifest_v2_url manifest_args) + { inherit (self) stdenv fetchurl patchelf; } + ; + + rustChannels = { + nightly = rustChannelOf { channel = "nightly"; }; + beta = rustChannelOf { channel = "beta"; }; + stable = rustChannelOf { channel = "stable"; }; + }; + # For each channel: # rustChannels.nightly.cargo # rustChannels.nightly.rust # Aggregate all others. (recommended) @@ -155,15 +166,7 @@ in # rustChannels.nightly.rust-docs # rustChannels.nightly.rust-src # rustChannels.nightly.rust-std - rustChannels = { - nightly = fromManifest (manifest_v2_url { channel = "nightly"; }) { - inherit (self) stdenv fetchurl patchelf; - }; - beta = fromManifest (manifest_v2_url { channel = "beta"; }) { - inherit (self) stdenv fetchurl patchelf; - }; - stable = fromManifest (manifest_v2_url { channel = "stable"; }) { - inherit (self) stdenv fetchurl patchelf; - }; - }; + + # For a specific date: + # rustChannelOf { date = "2017-06-06"; channel = "beta"; }.rust } -- cgit 1.4.1 From b9c9807d2f510ab9aa0670b8afab14c8704a99e7 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Mon, 3 Jul 2017 22:16:26 +0800 Subject: firefox-nightly-bin: 56.0a1-20170622100312 -> 56.0a1-20170703100343 --- pkgs/firefox-nightly-bin/sources.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index d90505c084ec..c641c263bfb7 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170622100312"; + version = "56.0a1" + "-" + "20170703100343"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; + { url = "https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "f436ed96ca9a5c66361c4bfa34ad541142f15e2bda452775581bd7f5783794314b8853f12cdcbde88ee0608a769e5983af6d103ed53d04de4c11201ffa263893"; + sha512 = "dd23a31d6457c0971214e7c5dda84d9194dab3d04a998aaf2f1c6f4f23d52c4913aa07958967bdcfd57f3153cb329a7a77a1b48ffa3b12e8463b2c58b8b47456"; } ]; } -- cgit 1.4.1 From b3cc2550cd3e8d653a14c3250b1b715b822121dc Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Sat, 27 May 2017 01:10:10 +0200 Subject: rust-overlay: install bash_completions to share/ --- rust-overlay.nix | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 1d8237b62f17..db958643f9fc 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -103,17 +103,57 @@ let inherit srcs; sourceRoot = "."; # (@nbp) TODO: Check on Windows and Mac. - # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. installPhase = '' + handleEtc() { + local subdir="$1" + local oldIFS="$IFS" + + # Directories we are aware of, given as substitution lists + for paths in \ + "etc/bash_completion.d","share/bash_completion/completions"; + do + + IFS="," + set -- $paths + IFS="$oldIFS" + + local orig_path="$1" + local wanted_path="$2" + + # Rename the files + if [ -d "./$subdir/$orig_path" ]; then + mkdir -p "$(dirname ./"$subdir"/"$wanted_path")" + mv -v "./"$subdir"/"$orig_path"" "./"$subdir"/"$wanted_path"" + fi + + # Replace all occurences in the manifest file + substituteInPlace "$subdir"/manifest.in \ + --replace "$orig_path" "$wanted_path" + + # Fail explicitly if etc is not empty so we can add it to the list and/or report it upstream + rmdir ./$subdir/etc || { + echo Installer tries to install to /etc: + find ./$subdir/etc + exit 1 + } + done + } + for i in * ; do if [ -d "$i" ]; then cd $i + + for etc in */etc; do + handleEtc "$(dirname "$etc")" + done + patchShebangs install.sh CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose cd .. fi done + # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. setInterpreter() { local dir="$1" [ -e "$dir" ] || return 0 -- cgit 1.4.1 From 6015d7eefacb9ed3dc5da1764dd4e9548dc6379c Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Sat, 27 May 2017 01:10:10 +0200 Subject: rust-overlay: handle etc/ via postInstall --- rust-overlay.nix | 79 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 40 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index db958643f9fc..d9d1c8eb511a 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -103,9 +103,37 @@ let inherit srcs; sourceRoot = "."; # (@nbp) TODO: Check on Windows and Mac. + # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. installPhase = '' + for i in * ; do + if [ -d "$i" ]; then + cd $i + patchShebangs install.sh + CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose + cd .. + fi + done + + setInterpreter() { + local dir="$1" + [ -e "$dir" ] || return 0 + + header "Patching interpreter of ELF executables and libraries in $dir" + local i + while IFS= read -r -d ''$'\0' i; do + if [[ "$i" =~ .build-id ]]; then continue; fi + if ! isELF "$i"; then continue; fi + echo "setting interpreter of $i" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true + done < <(find "$dir" -type f -print0) + } + + setInterpreter $out + ''; + + postFixup = '' + # Function moves well-known files from etc/ handleEtc() { - local subdir="$1" local oldIFS="$IFS" # Directories we are aware of, given as substitution lists @@ -121,54 +149,25 @@ let local wanted_path="$2" # Rename the files - if [ -d "./$subdir/$orig_path" ]; then - mkdir -p "$(dirname ./"$subdir"/"$wanted_path")" - mv -v "./"$subdir"/"$orig_path"" "./"$subdir"/"$wanted_path"" + if [ -d ./"$orig_path" ]; then + mkdir -p "$(dirname ./"$wanted_path")" fi - - # Replace all occurences in the manifest file - substituteInPlace "$subdir"/manifest.in \ - --replace "$orig_path" "$wanted_path" + mv -v ./"$orig_path" ./"$wanted_path" # Fail explicitly if etc is not empty so we can add it to the list and/or report it upstream - rmdir ./$subdir/etc || { + rmdir ./etc || { echo Installer tries to install to /etc: - find ./$subdir/etc + find ./etc exit 1 } done } - for i in * ; do - if [ -d "$i" ]; then - cd $i - - for etc in */etc; do - handleEtc "$(dirname "$etc")" - done - - patchShebangs install.sh - CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose - cd .. - fi - done - - # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. - setInterpreter() { - local dir="$1" - [ -e "$dir" ] || return 0 - - header "Patching interpreter of ELF executables and libraries in $dir" - local i - while IFS= read -r -d ''$'\0' i; do - if [[ "$i" =~ .build-id ]]; then continue; fi - if ! isELF "$i"; then continue; fi - echo "setting interpreter of $i" - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true - done < <(find "$dir" -type f -print0) - } - - setInterpreter $out + if [ -d "$out"/etc ]; then + pushd "$out" + handleEtc + popd + fi ''; } ) { extensions = []; } -- cgit 1.4.1 From 60ede4180d2d2ccaced644a67432539da22ad5d6 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Wed, 5 Jul 2017 06:38:46 +0800 Subject: firefox-nightly-bin: 56.0a1-20170703100343 -> 56.0a1-20170704100254 (#42) --- pkgs/firefox-nightly-bin/sources.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index c641c263bfb7..4efcf2696d88 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170703100343"; + version = "56.0a1" + "-" + "20170704100254"; sources = [ { url = "https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "dd23a31d6457c0971214e7c5dda84d9194dab3d04a998aaf2f1c6f4f23d52c4913aa07958967bdcfd57f3153cb329a7a77a1b48ffa3b12e8463b2c58b8b47456"; + sha512 = "67bc814bb58673f5cb2dbd5552b86be41dba3d250ebf512645c88cb2ae3ade8666f288e9b22d880af80f861923bfccc1355e61e10c628c09f6a31bb4b3e9bcf4"; } ]; } -- cgit 1.4.1 From 1608d31f7e5b2415fb80b5d76f97c009507bc45f Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Thu, 6 Jul 2017 09:13:37 +0200 Subject: firefox-nightly-bin: 56.0a1-20170704100254 -> 56.0a1-20170705170343 --- pkgs/firefox-nightly-bin/sources.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index 4efcf2696d88..a0071fec215a 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170704100254"; + version = "56.0a1" + "-" + "20170705170343"; sources = [ - { url = "https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "67bc814bb58673f5cb2dbd5552b86be41dba3d250ebf512645c88cb2ae3ade8666f288e9b22d880af80f861923bfccc1355e61e10c628c09f6a31bb4b3e9bcf4"; + sha512 = "2be1afd837f41b2f6781760801cc8344ad5add9d03e5844e819d92980c7901c4a2fa1b890e8bc01528393b42c3abce3dd00901f7a5cefbda953858e8de219be8"; } ]; } -- cgit 1.4.1 From b475cacb41cbf99751a0323e4b2f9215827a13a9 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Wed, 12 Jul 2017 09:49:34 +0800 Subject: firefox-nightly-bin: 56.0a1-20170705170343 -> 56.0a1-20170711100226 --- pkgs/firefox-nightly-bin/sources.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index a0071fec215a..fc0e8e4c0fdd 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170705170343"; + version = "56.0a1" + "-" + "20170711100226"; sources = [ { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "2be1afd837f41b2f6781760801cc8344ad5add9d03e5844e819d92980c7901c4a2fa1b890e8bc01528393b42c3abce3dd00901f7a5cefbda953858e8de219be8"; + sha512 = "3a5474497a9c9d19c2c92533cf25468b5b1246e16bc1d1876f6256da6df44fb29abd2e563c6ed05b5674d1839e0587d31c4b9773028a78f46f463d4ed62d0428"; } ]; } -- cgit 1.4.1 From ddb10d2f75aa725f090ce77c97f29ad714477a59 Mon Sep 17 00:00:00 2001 From: Sebastian Jordan Date: Mon, 17 Jul 2017 12:38:00 +0000 Subject: update.nix: Allow user to skip prompt with dont_prompt parameter --- update.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/update.nix b/update.nix index 523e45f948d0..6ea2c03e691e 100755 --- a/update.nix +++ b/update.nix @@ -6,6 +6,7 @@ in { pkgs ? import _nixpkgs {} , package ? null , maintainer ? null +, dont_prompt ? false }: # TODO: add assert statements @@ -14,6 +15,8 @@ let pkgs-mozilla = import ./default.nix { inherit pkgs; }; + dont_prompt_str = if dont_prompt then "yes" else "no"; + packagesWith = cond: return: set: pkgs.lib.flatten (pkgs.lib.mapAttrsToList @@ -121,7 +124,11 @@ in pkgs.stdenv.mkDerivation { echo "Going to be running update for following packages:" echo "${builtins.concatStringsSep "\n" (map (x: " - ${x.name}") packages)}" echo "" - read -n1 -r -p "Press space to continue..." confirm + if [ "${dont_prompt_str}" = "no" ]; then + read -n1 -r -p "Press space to continue..." confirm + else + confirm="" + fi if [ "$confirm" = "" ]; then echo "" echo "Running update for:" -- cgit 1.4.1 From 26c8cccaeb152db32f02a97e055ff58df649cd78 Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Tue, 18 Jul 2017 12:04:14 +0200 Subject: firefox-nightly-bin: 56.0a1-20170711100226 -> 56.0a1-20170717100212 also marking firefox-nightly-bin as lowPrio --- default.nix | 2 +- pkgs/firefox-nightly-bin/sources.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/default.nix b/default.nix index 861327155a11..d2fc31adf028 100644 --- a/default.nix +++ b/default.nix @@ -40,7 +40,7 @@ let servo = callPackage ./pkgs/servo { }; - firefox-nightly-bin = callPackage ./pkgs/firefox-nightly-bin/default.nix { }; + firefox-nightly-bin = _pkgs.lowPrio (callPackage ./pkgs/firefox-nightly-bin/default.nix { }); VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index fc0e8e4c0fdd..b09f75d3f968 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170711100226"; + version = "56.0a1" + "-" + "20170717100212"; sources = [ { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "3a5474497a9c9d19c2c92533cf25468b5b1246e16bc1d1876f6256da6df44fb29abd2e563c6ed05b5674d1839e0587d31c4b9773028a78f46f463d4ed62d0428"; + sha512 = "389ada65229fa6225a918041f77eed26cff321d649b8e9206835364e967fe3312dba9f7de9fbea52daf934265b804de447dddee60932d5019f8361884c9f3bde"; } ]; } -- cgit 1.4.1 From 12a158a65447440a30e04b31ffc2ccd01033df0f Mon Sep 17 00:00:00 2001 From: rexim Date: Fri, 21 Jul 2017 00:52:23 +0700 Subject: Handle the missing bash_completion situation (#48) --- rust-overlay.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index d9d1c8eb511a..d78e1e92dce0 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -138,8 +138,11 @@ let # Directories we are aware of, given as substitution lists for paths in \ - "etc/bash_completion.d","share/bash_completion/completions"; + "etc/bash_completion.d","share/bash_completion/completions","etc/bash_completions.d","share/bash_completions/completions"; do + # Some directoties may be missing in some versions. If so we just skip them. + # See https://github.com/mozilla/nixpkgs-mozilla/issues/48 for more infomation. + if [ ! -e $paths ]; then continue; fi IFS="," set -- $paths -- cgit 1.4.1 From 99ffbfd0f89e9522962c7a3f1e89b0e41212f601 Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Wed, 19 Jul 2017 12:00:05 +0200 Subject: Adds support for installing cross compilation targets We scan the components of each package that should be installed and try to find components that support the requested targets. If we do not find for each target at least on component, we throw an exception. --- rust-overlay.nix | 83 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 72 insertions(+), 11 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index d78e1e92dce0..8ed897a46c96 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -39,27 +39,59 @@ let "x86_64-freebsd" = "x86_64-unknown-freebsd"; }.${system} or (throw "Rust overlay does not support ${system} yet."); + getComponentsWithFixedPlatform = pkgs: pkgname: stdenv: + let + pkg = pkgs.${pkgname}; + srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; + components = srcInfo.components or []; + componentNamesList = + builtins.map (pkg: pkg.pkg) (builtins.filter (pkg: (pkg.target != "*")) components); + in + componentNamesList; + getExtensions = pkgs: pkgname: stdenv: let + inherit (super.lib) unique; pkg = pkgs.${pkgname}; srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; extensions = srcInfo.extensions or []; - extensionNamesList = - builtins.map (pkg: pkg.pkg) (builtins.filter (pkg: (pkg.target == (hostTripleOf stdenv.system)) || (pkg.target == "*")) extensions); + extensionNamesList = unique (builtins.map (pkg: pkg.pkg) extensions); in extensionNamesList; - getFetchUrl = pkgs: pkgname: stdenv: fetchurl: + hasTarget = pkgs: pkgname: target: + pkgs ? ${pkgname}.target.${target}; + + getTuples = pkgs: name: targets: + builtins.map (target: { inherit name target; }) (builtins.filter (target: hasTarget pkgs name target) targets); + + # In the manifest, a package might have different components which are bundled with it, as opposed as the extensions which can be added. + # By default, a package will include the components for the same architecture, and offers them as extensions for other architectures. + # + # This functions returns a list of { name, target } attribute sets, which includes the current system package, and all its components for the selected targets. + # The list contains the package for the pkgTargets as well as the packages for components for all compTargets + getTargetPkgTuples = pkgs: pkgname: pkgTargets: compTargets: stdenv: + let + inherit (builtins) elem; + inherit (super.lib) intersectLists; + components = getComponentsWithFixedPlatform pkgs pkgname stdenv; + extensions = getExtensions pkgs pkgname stdenv; + compExtIntersect = intersectLists components extensions; + tuples = (getTuples pkgs pkgname pkgTargets) ++ (builtins.map (name: getTuples pkgs name compTargets) compExtIntersect); + in + tuples; + + getFetchUrl = pkgs: pkgname: target: stdenv: fetchurl: let pkg = pkgs.${pkgname}; - srcInfo = pkg.target.${hostTripleOf stdenv.system} or pkg.target."*"; + srcInfo = pkg.target.${target}; in (fetchurl { url = srcInfo.url; sha256 = srcInfo.hash; }); - getSrcs = pkgs: pkgname: extensions: stdenv: fetchurl: + checkMissingExtensions = pkgs: pkgname: stdenv: extensions: let inherit (builtins) head; - inherit (super.lib) subtractLists concatStringsSep; + inherit (super.lib) concatStringsSep subtractLists; availableExtensions = getExtensions pkgs pkgname stdenv; missingExtensions = subtractLists availableExtensions extensions; extensionsToInstall = @@ -67,9 +99,25 @@ let While compiling ${pkgname}: the extension ${head missingExtensions} is not available. Select extensions from the following list: ${concatStringsSep "\n" availableExtensions}''; - pkgsToInstall = [pkgname] ++ extensionsToInstall; in - (builtins.map (pkg: (getFetchUrl pkgs pkg stdenv fetchurl)) pkgsToInstall); + extensionsToInstall; + + getSrcs = pkgs: pkgname: targets: extensions: targetExtensions: stdenv: fetchurl: + let + inherit (builtins) head map; + inherit (super.lib) flatten remove subtractLists unique; + targetExtensionsToInstall = checkMissingExtensions pkgs pkgname stdenv targetExtensions; + hostTargets = [ "*" (hostTripleOf stdenv.system)]; + pkgTuples = flatten (getTargetPkgTuples pkgs pkgname hostTargets targets stdenv); + extensionTuples = flatten (map (name: getTargetPkgTuples pkgs name hostTargets targets stdenv) extensions); + targetExtensionTuples = flatten (map (name: getTargetPkgTuples pkgs name targets targets stdenv) targetExtensions); + pkgsTuples = pkgTuples ++ extensionTuples ++ targetExtensionTuples; + missingTargets = subtractLists (map (tuple: tuple.target) pkgsTuples) (remove "*" targets); + pkgsTuplesToInstall = + if missingTargets == [] then pkgsTuples else throw '' + While compiling ${pkgname}: the target ${head missingTargets} is not available for any package.''; + in + map (tuple: (getFetchUrl pkgs tuple.name tuple.target stdenv fetchurl)) pkgsTuplesToInstall; # Manifest files are organized as follow: # { date = "2017-03-03"; @@ -84,6 +132,19 @@ let # The packages available usually are: # cargo, rust-analysis, rust-docs, rust-src, rust-std, rustc, and # rust, which aggregates them in one package. + # + # For each package the following options are available: + # extensions - The extensions that should be installed for the package. + # For example, install the package rust and add the extension rust-src. + # targets - The package will always be installed for the host system, but with this option + # extra targets can be specified, e.g. "mips-unknown-linux-musl". The target + # will only apply to components of the package that support being installed for + # a different architecture. For example, the rust package will install rust-std + # for the host system and the targets. + # targetExtensions - If you want to force extensions to be installed for the given targets, this is your option. + # All extensions in this list will be installed for the target architectures. + # *Attention* If you want to install an extension like rust-src, that has no fixed architecture (arch *), + # you will need to specify this extension in the extensions options or it will not be installed! fromManifestFile = manifest: { stdenv, fetchurl, patchelf }: let inherit (builtins) elemAt; @@ -92,11 +153,11 @@ let pkgs = fromTOML (builtins.readFile manifest); in flip mapAttrs pkgs.pkg (name: pkg: - makeOverridable ({extensions}: + makeOverridable ({extensions, targets, targetExtensions}: let version' = builtins.match "([^ ]*) [(]([^ ]*) ([^ ]*)[)]" pkg.version; version = "${elemAt version' 0}-${elemAt version' 2}-${elemAt version' 1}"; - srcs = getSrcs pkgs.pkg name extensions stdenv fetchurl; + srcs = getSrcs pkgs.pkg name targets extensions targetExtensions stdenv fetchurl; in stdenv.mkDerivation { name = name + "-" + version; @@ -173,7 +234,7 @@ let fi ''; } - ) { extensions = []; } + ) { extensions = []; targets = []; targetExtensions = []; } ); fromManifest = manifest: { stdenv, fetchurl, patchelf }: -- cgit 1.4.1 From 086d3beecab64c7fda215788eb1379fb665b462b Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Sat, 22 Jul 2017 18:07:07 +0200 Subject: Checks that no extensions are missing --- rust-overlay.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 8ed897a46c96..ddf38bc50ea4 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -107,10 +107,11 @@ let inherit (builtins) head map; inherit (super.lib) flatten remove subtractLists unique; targetExtensionsToInstall = checkMissingExtensions pkgs pkgname stdenv targetExtensions; + extensionsToInstall = checkMissingExtensions pkgs pkgname stdenv extensions; hostTargets = [ "*" (hostTripleOf stdenv.system)]; pkgTuples = flatten (getTargetPkgTuples pkgs pkgname hostTargets targets stdenv); - extensionTuples = flatten (map (name: getTargetPkgTuples pkgs name hostTargets targets stdenv) extensions); - targetExtensionTuples = flatten (map (name: getTargetPkgTuples pkgs name targets targets stdenv) targetExtensions); + extensionTuples = flatten (map (name: getTargetPkgTuples pkgs name hostTargets targets stdenv) extensionsToInstall); + targetExtensionTuples = flatten (map (name: getTargetPkgTuples pkgs name targets targets stdenv) targetExtensionsToInstall); pkgsTuples = pkgTuples ++ extensionTuples ++ targetExtensionTuples; missingTargets = subtractLists (map (tuple: tuple.target) pkgsTuples) (remove "*" targets); pkgsTuplesToInstall = -- cgit 1.4.1 From d85ee0b8ba736d2d27d77d2294181dcb141dddf7 Mon Sep 17 00:00:00 2001 From: Tor Hedin Brønner Date: Wed, 26 Jul 2017 15:11:06 +0200 Subject: Use HTTPS to download nigthly --- pkgs/firefox-nightly-bin/update.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/firefox-nightly-bin/update.nix b/pkgs/firefox-nightly-bin/update.nix index 9f8f694a0c9c..21fbac4c12e7 100644 --- a/pkgs/firefox-nightly-bin/update.nix +++ b/pkgs/firefox-nightly-bin/update.nix @@ -17,9 +17,10 @@ in writeScript "update-firefox-nightly-bin" '' pushd pkgs/firefox-nightly-bin tmpfile=`mktemp` - url=http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/ + url=https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/ - nightly_file=`xidel -q $url --extract //a | \ + nightly_file=`curl $url | \ + xidel - --extract //a | \ grep firefox | \ grep linux-x86_64.json | \ tail -1 | \ -- cgit 1.4.1 From 322cf3857aad62f5806c1ae0975a4a90ad596f24 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 27 Jan 2017 14:19:26 +0000 Subject: Convert default.nix to use overlays for extending Nixpkgs. --- default.nix | 57 +++++++++++++++++++++++++--------------------- release.nix | 75 ++++++++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 80 insertions(+), 52 deletions(-) diff --git a/default.nix b/default.nix index d2fc31adf028..826b8b11d9e0 100644 --- a/default.nix +++ b/default.nix @@ -4,46 +4,51 @@ # providing fetchFromGitHub and lib.importJSON. # # After that it loads a pinned release of nixos-unstable and uses that as the -# base for the rest of packaging. One can pass it's own pkgs attribute if +# base for the rest of packaging. One can pass it's own pkgsPath attribute if # desired, probably in the context of hydra. -let - _pkgs = import {}; - _nixpkgs = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); -in -{ pkgs ? import _nixpkgs {} +{ pkgsPath ? null +, overlays ? [] +, system ? null , geckoSrc ? null , servoSrc ? null }: let - callPackage = (extra: pkgs.lib.callPackageWith - ({ inherit geckoSrc servoSrc; } // self // extra)) {}; - - self = { + _pkgs = import {}; + _pkgsPath = + if pkgsPath != null then pkgsPath + else _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); - lib = callPackage ./pkgs/lib/default.nix { }; + overlay = self: super: { + lib = super.lib // (import ./pkgs/lib/default.nix { pkgs = self; }); - rustPlatform = pkgs.rustUnstable; + rustPlatform = self.rustUnstable; - pkgs = pkgs // { - name = "nixpkgs"; - updateScript = self.lib.updateFromGitHub { - owner = "NixOS"; - repo = "nixpkgs-channels"; - branch = "nixos-unstable-small"; - path = "pkgs/nixpkgs.json"; - }; + name = "nixpkgs"; + updateScript = self.lib.updateFromGitHub { + owner = "NixOS"; + repo = "nixpkgs-channels"; + branch = "nixos-unstable-small"; + path = "pkgs/nixpkgs.json"; }; - gecko = callPackage ./pkgs/gecko { }; + gecko = super.callPackage ./pkgs/gecko { + inherit (self.pythonPackages) setuptools; + inherit (self.rustChannels.stable) rust; + }; - servo = callPackage ./pkgs/servo { }; + servo = super.callPackage ./pkgs/servo { }; - firefox-nightly-bin = _pkgs.lowPrio (callPackage ./pkgs/firefox-nightly-bin/default.nix { }); + firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; - VidyoDesktop = callPackage ./pkgs/VidyoDesktop { }; - + VidyoDesktop = super.callPackage ./pkgs/VidyoDesktop { }; }; +in -in self +import _pkgsPath { + overlays = [ + (import ./rust-overlay.nix) + overlay + ] ++ overlays; +} diff --git a/release.nix b/release.nix index 5b6e3029ef64..c3d2185d0a98 100644 --- a/release.nix +++ b/release.nix @@ -8,29 +8,19 @@ in }: let - # Make an attribute set for each system, the builder is then specialized to - # use the selected system. - forEachSystem = systems: builder: - _pkgs.lib.genAttrs systems (system: - builder (import _nixpkgs { inherit system; }) - ); - - # Make an attribute set for each compiler, the builder is then be specialized - # to use the selected compiler. - forEachCompiler = compilers: builder: pkgs: - with pkgs; - let - + compilersOverlay = compilers: self: super: with self; + let # Override, in a non-recursive matter to avoid recompilations, the standard # environment used for building packages. - builderWithStdenv = stdenv: builder (pkgs // { inherit stdenv; }); + builderWithStdenv = stdenv: builder (super // { inherit stdenv; }); - noSysDirs = (system != "x86_64-darwin" - && system != "x86_64-freebsd" && system != "i686-freebsd" - && system != "x86_64-kfreebsd-gnu"); + noSysDirs = (super.stdenv.system != "x86_64-darwin" + && super.stdenv.system != "x86_64-freebsd" + && super.stdenv.system != "i686-freebsd" + && super.stdenv.system != "x86_64-kfreebsd-gnu"); crossSystem = null; - gcc473 = wrapCC (callPackage ./pkgs/gcc-4.7 { + gcc473 = wrapCC (super.callPackage ./pkgs/gcc-4.7 { inherit noSysDirs; texinfo = texinfo4; # I'm not sure if profiling with enableParallelBuilding helps a lot. @@ -55,9 +45,10 @@ let maybeWrapClang = cc: if cc ? clang then clangWrapCC cc else cc; + clangWrapCC = llvmPackages: let libcxx = - pkgs.lib.overrideDerivation llvmPackages.libcxx (drv: { + lib.overrideDerivation llvmPackages.libcxx (drv: { # https://bugzilla.mozilla.org/show_bug.cgi?id=1277619 # https://llvm.org/bugs/show_bug.cgi?id=14435 patches = drv.patches ++ [ ./pkgs/clang/bug-14435.patch ]; @@ -105,16 +96,48 @@ let }); }; - in builtins.listToAttrs (map (x: { name = x; value = buildWithCompiler (builtins.getAttr x compilersByName); }) compilers); + in { + customStdenvs = builtins.listToAttrs (map (x: { name = x; value = buildWithCompiler (builtins.getAttr x compilersByName); }) compilers); + }; + +in + +let + # Make an attribute set for each system, the builder is then specialized to + # use the selected system. + forEachSystem = systems: builder /* system -> stdenv -> pkgs */: + _pkgs.lib.genAttrs systems (system: + builder (import _nixpkgs { inherit system; }) + ); + + # Make an attribute set for each compiler, the builder is then be specialized + # to use the selected compiler. + forEachCompiler = compilers: builder: system: + builtins.listToAttrs (map (compiler: { + name = compiler; + value = builder compiler system; + }) compilers); + + + builder = name: compiler: system: + (import ./default.nix { + inherit system; + overlays = [ + (compilersOverlay geckoCompilers) + # Use an overlay to select which compiler we want to compile with. + (self: super: if compiler != null then {} else { + "${name}" = super."${name}".override { + stdenv = self.customStdenvs."${compiler}"; + }; + }) + ]; + })."${name}"; build = name: { systems ? supportedSystems, compilers ? null }: forEachSystem systems ( - let - builder = pkgs: builtins.getAttr name (import ./default.nix { inherit pkgs; }); - in - if compilers == null - then builder - else forEachCompiler compilers builder + if compilers == null + then builder name null + else forEachCompiler compilers (builder name) ); geckoCompilers = [ -- cgit 1.4.1 From 8d84ab8b8310027360dee463e054d29cc19dfb2b Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 16 Mar 2017 13:52:51 +0000 Subject: Explicit Gecko dependencies, and add a FHS environment for building Gecko. The FHS environment can be either built as a standalone derivation, or use to build a nix-shell by running: $ nix-shell ./release.nix -A gecko.x86_64-linux.gcc.fhs.env Gecko now uses the pre-built version of rustc & cargo taken from the the rust-overlay.nix file. This is equivalent of running `rustup` every time a nix-shell is entered. --- pkgs/gecko/default.nix | 67 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 20 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 56778c362cfd..cc3279d89684 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,20 +1,18 @@ -{ geckoSrc ? null -, lib -, pkgs +{ geckoSrc ? null, lib +, stdenv, fetchFromGitHub, pythonFull, which, autoconf213 +, perl, unzip, zip, gnumake, yasm, pkgconfig, xlibs, gnome2, pango +, dbus, dbus_glib, alsaLib, libpulseaudio, gstreamer, gst_plugins_base +, gtk3, glib, gobjectIntrospection, git, mercurial, openssl, cmake, procps +, libnotify +, valgrind, gdb, rr +, setuptools +, rust # rust & cargo bundled. (otheriwse use pkgs.rust.{rustc,cargo}) +, buildFHSUserEnv # Build a FHS environment with all Gecko dependencies. }: let - inherit (lib) updateFromGitHub; - inherit (pkgs) fetchFromGitHub pythonFull which autoconf213 - perl unzip zip gnumake yasm pkgconfig xlibs gnome2 pango dbus dbus_glib - alsaLib libpulseaudio gstreamer gst_plugins_base gtk3 glib - gobjectIntrospection git mercurial openssl cmake; - inherit (pkgs) valgrind gdb rr; - inherit (pkgs.pythonPackages) setuptools; - inherit (pkgs.stdenv) mkDerivation; - inherit (pkgs.lib) importJSON optionals inNixShell; - inherit (pkgs.rust) rustc cargo; + inherit (lib) updateFromGitHub importJSON optionals inNixShell; # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. @@ -28,9 +26,6 @@ let version = "HEAD"; # XXX: builtins.readFile "${src}/browser/config/version.txt"; -in mkDerivation { - name = "gecko-dev-${version}"; - inherit src; buildInputs = [ # Expected by "mach" @@ -58,7 +53,10 @@ in mkDerivation { gtk3 glib gobjectIntrospection - rustc cargo + rust + + # mach mochitest + procps # "mach vendor rust" wants to list modified files by using the vcs. git mercurial @@ -66,10 +64,41 @@ in mkDerivation { # needed for compiling cargo-vendor and its dependencies openssl cmake + # Useful for getting notification at the end of the build. + libnotify + ] ++ optionals inNixShell [ valgrind gdb rr ]; + shellHook = '' + export MOZBUILD_STATE_PATH=$PWD/.mozbuild + ''; + + # propagatedBuildInput should already have applied the "lib.chooseDevOutputs" + # on the propagated build inputs. + pullAllInputs = inputs: + inputs ++ lib.concatMap (i: pullAllInputs i.propagatedNativeBuildInputs) inputs; + + fhs = buildFHSUserEnv { + name = "gecko-deps-fhs"; + targetPkgs = _: pullAllInputs (lib.chooseDevOutputs (buildInputs ++ [ stdenv.cc ])); + multiPkgs = null; + extraOutputsToInstall = [ "share" ]; + profile = '' + # build-fhs-userenv/env.nix adds it, but causes 'ls' to SEGV. + unset LD_LIBRARY_PATH; + export IN_NIX_SHELL=1 + export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig + ${shellHook} + ''; + }; +in + +stdenv.mkDerivation { + name = "gecko-dev-${version}"; + inherit src buildInputs shellHook; + # Useful for debugging this Nix expression. tracePhases = true; @@ -107,13 +136,11 @@ in mkDerivation { doCheck = false; doInstallCheck = false; - shellHook = '' - export MOZBUILD_STATE_PATH=$PWD/.mozbuild - ''; passthru.updateScript = updateFromGitHub { owner = "mozilla"; repo = "gecko-dev"; branch = "master"; path = "pkgs/gecko/source.json"; }; + passthru.fhs = fhs; # gecko.x86_64-linux.gcc.fhs.env } -- cgit 1.4.1 From 4407eb7c55aaf543cdbb04f25a2dd138b90a945d Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Sat, 5 Aug 2017 15:50:40 +0000 Subject: Add a Firefox overlay which automatically pulls updates from Mozilla servers. --- firefox-overlay.nix | 140 +++++++++++++++++++++++++++++ firefox.key | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 394 insertions(+) create mode 100644 firefox-overlay.nix create mode 100644 firefox.key diff --git a/firefox-overlay.nix b/firefox-overlay.nix new file mode 100644 index 000000000000..f2074369ac5b --- /dev/null +++ b/firefox-overlay.nix @@ -0,0 +1,140 @@ +# This file provide the latest binary versions of Firefox published by Mozilla. +self: super: + +# firefo.key file is downloaded from: +# https://gpg.mozilla.org/pks/lookup?search=Mozilla+Software+Releases+%3Crelease%40mozilla.com%3E&op=get + +# TODO: Check the signature of the checksum file before using the source. +let + firefox_versions = with builtins; + fromJSON (readFile (fetchurl https://product-details.mozilla.org/1.0/firefox_versions.json)); + + arch = if self.stdenv.system == "i686-linux" + then "linux-i686" + else "linux-x86_64"; + + yearOf = with super.lib; yyyymmddhhmmss: + head (splitString "-" yyyymmddhhmmss); + monthOf = with super.lib; yyyymmddhhmmss: + head (tail (splitString "-" yyyymmddhhmmss)); + + # The timestamp argument is a yyyy-mm-dd-hh-mm-ss date, which corresponds to + # one specific version. This is used mostly for bisecting. + versionInfo = { name, version, release, system ? arch, timestamp ? null }: with builtins; + if release then + # For versions such as Beta & Release: + # http://download.cdn.mozilla.net/pub/firefox/releases/55.0b3/SHA256SUMS + let + dir = "http://download.cdn.mozilla.net/pub/firefox/releases/"; + file = "${system}/en-US/firefox-${version}.tar.bz2"; + in rec { + chksum = "${dir}/${version}/SHA512SUMS"; + chksumSig = "${chksum}.asc"; + url = "${dir}/${file}"; + sha512 = head (match ".*[\n]([0-9a-f]*) ${file}.*" (readFile (fetchurl chksum))); + } + else + # For Nightly versions: + # http://download.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.checksums + let + dir = + if timestamp == null then "http://download.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central" + else "http://download.cdn.mozilla.net/pub/firefox/nightly/${yearOf timestamp}/${monthOf timestamp}/${timestamp}-mozilla-central" ; + file = "firefox-${version}.en-US.${system}.tar.bz2"; + in rec { + chksum = "${dir}/firefox-${version}.en-US.${system}.checksums"; + chksumSig = "${chksum}.asc"; + # file content: + # sha512 62733881 firefox-56.0a1.en-US.linux-x86_64.tar.bz2 + # sha256 62733881 firefox-56.0a1.en-US.linux-x86_64.tar.bz2 + url = "${dir}/${file}"; + sha512 = head (match ".*[\n]([0-9a-f]*) sha512 [0-9]* ${file}[\n].*" (readFile (fetchurl chksum))); + }; + + # From the version info, check the authenticity of the check sum file, such + # that we guarantee that we have + verifyAuthenticity = info: + super.runCommandNoCC "check-firefox-signature" { + buildInputs = [ self.gnupg ]; + CHKSUM_FILE = builtins.fetchurl info.chksum; + CHKSUM_ASC = builtins.fetchurl info.chksumSig; + } '' + HOME=`mktemp -d` + set -eux + cat ${./firefox.key} | gpg2 --import + gpgv2 --keyring=$HOME/.gnupg/pubring.kbx $CHKSUM_ASC $CHKSUM_FILE + mkdir $out + ''; + + + # From the version info, create a fetchurl derivation which will get the + # sources from the remote. + fetchVersion = info: + super.fetchurl { + inherit (info) url sha512; + # add as dependency to force the fetch url function to resolve the + # authenticity of the check-sum file before using its sha512 values. + postFetch = '' + : # Authenticity Check (${verifyAuthenticity info}) + ''; + }; + + firefoxVersion = version: + let info = versionInfo version; in + super.wrapFirefox ((self.firefox-bin-unwrapped.override { + generated = { + version = version.version; + sources = { inherit (info) url sha512; }; + }; + }).overrideAttrs (old: { + # Add a dependency on the signature check. + src = fetchVersion info; + })) { + browserName = "firefox"; + name = "firefox-bin-${version.version}"; + desktopName = "Firefox"; + }; +in + +{ + lib = super.lib // { + firefoxOverlay = { + inherit firefoxVersion; + }; + }; + + nightly-2017-07-25-10-03-46 = firefoxVersion rec { timestamp = "2017-07-25-10-03-46"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; # good + nightly-2017-07-25-14-40-53 = firefoxVersion rec { timestamp = "2017-07-25-14-40-53"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; # bad + nightly-2017-07-26-10-02-41 = firefoxVersion rec { timestamp = "2017-07-26-10-02-41"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; # bad + nightly-2017-07-27-10-02-40 = firefoxVersion rec { timestamp = "2017-07-27-10-02-40"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; + nightly-2017-07-27-16-25-31 = firefoxVersion rec { timestamp = "2017-07-27-16-25-31"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; + + + firefox-nightly-bin = firefoxVersion { + name = "Firefox Nightly"; + version = firefox_versions.FIREFOX_NIGHTLY; + release = false; + }; + firefox-beta-bin = firefoxVersion { + name = "Firefox Beta"; + version = firefox_versions.LATEST_FIREFOX_DEVEL_VERSION; + release = true; + }; + firefox-release-bin = firefoxVersion { + name = "Firefox"; + version = firefox_versions.LATEST_FIREFOX_VERSION; + release = true; + }; + firefox-esr-bin = firefoxVersion { + name = "Firefox Esr"; + version = firefox_versions.FIREFOX_ESR; + release = true; + }; + + # Build Firefox from sources, mostly used to produce an environment for + # building Firefox. + gecko = super.callPackage ./pkgs/gecko { + inherit (self.pythonPackages) setuptools; + inherit (self.rustChannels.stable) rust; + }; +} diff --git a/firefox.key b/firefox.key new file mode 100644 index 000000000000..bd27ce85c94f --- /dev/null +++ b/firefox.key @@ -0,0 +1,254 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: SKS 1.1.5 +Comment: Hostname: keyserver.mozilla.org + +mQINBFWpQAQBEAC+9wVlwGLy8ILCybLesuB3KkHHK+Yt1F1PJaI30X448ttGzxCzPQpH6BoA +73uzcTReVjfCFGvM4ij6qVV2SNaTxmNBrL1uVeEUsCuGduDUQMQYRGxRtWq5rCH48LnltKPa +mPiEBzrgFL3i5bYEUHO7M0lATEknG7Iaz697K/ssHREZfuucB4GNxXMgswZ7GTZO3VBDVEw5 +GwU3sUvww93TwMC29lIPCux445AxZPKr5sOVEsEndUB2oDMsSAoS/dZcl8F4otqfR1pXg618 +cU06omvq5yguWLDRV327BLmezYK0prD3P+7qwEp8MTVmxlbkrClS5j5pR47FrJGdyupNKqLz +K+7hok5kBxhsdMsdTZLd4tVRjXf04isVO3iFFf/GKuwscOi1+ZYeB3l3sAqgFUWnjbpbHxfs +lTmo7BgvmjZvAH5ZasaewF3wA06biCDJdcSkC9GmFPmN5DS5/Dkjwfj8+dZAttuSKfmQQnyp +UPaJ2sBublnJ6INpvYgsEZjV6CFG1EiDJDPu2Zxap8ep0iRMbBBZnpfZTn7SKAcurDJptxin +CRclTcdOdi1iSZ35LZW0R2FKNnGL33u1IhxU9HRLw3XuljXCOZ84RLn6M+PBc1eZsuv1TA+M +n111yD3uDv/u/edZ/xeJccF6bYcMvUgRRZh0sgZ0ZT4b0Q6YcQARAQABtC9Nb3ppbGxhIFNv +ZnR3YXJlIFJlbGVhc2VzIDxyZWxlYXNlQG1vemlsbGEuY29tPohGBBARAgAGBQJVrP9LAAoJ +EHYlQD1/DRWxU2QAoOOFRbkbIU1zKP2i3jy/6VKHkYEgAJ9N6f9Gmjm1/vtSrvjjlxWzzQQr +kIhGBBARAgAGBQJVrTrjAAoJEMNOV0fiPdZ3BbkAoJUNHEqNv9dioaGMEIpiFtDjEm44AJ9U +inMTfAYsL9yb15SdJWe/56VCcoheBBARCAAGBQJWBldjAAoJEAJasBBrF+oerNYA/13MQehk +3AfkljGi252/cU6i1VOFpCuOeT7lK2c5unGcAP0WZjIDJgaHijtrF4MKCZbUnz37Vxm0OcU8 +qcGkYUwHi4heBBARCgAGBQJVrSz+AAoJEPCp59zTnkUulAYA/31nYhIpb7sVigone8OvFO19 +xtkR9/vy5+iKeYCVlvZtAP9rZ85ymuNYNqX06t+ruDqG2RfdUhJ6aD5IND+KD5ve7IkBHAQQ +AQIABgUCVaz9fgAKCRCzxalYUIpD8muMB/sH58bMSzzF9zTXRropldw7Vbj9VrRD7NyoX4Ol +DArtvdLqgPm0JUoP2gXINeSuVPpOfC676yVnBEMjIfqEjq09vcbwayS+Ncx4vQh2BmzDUNLE +3SlnRn2bEWr9SQL/pOYUDUgmY5a0UIf/WKtBapsPE+Zan51ezYSEfxDNfUpA4T2/9iWwJ2ZO +y0yIfLdHyvumuyiekJrfrMaF4L9Q0OnJwp1PwkvN4IVwhZeYDtIJN4nRcJK5LrwU7B97uef2 +hqBBll7/qCHl5y4Khb0csFanIg+pQLPUJdIiYtzoFtlgykB61pxqtU9rqGKW02JzEUT8DdPU +XxmMBy6A8oGeBRH/iQEcBBABAgAGBQJVrRdcAAoJEGVzgtv/JREKQJgH/3nD/3/SumL7nG2g +7Y1HQqWphUbn40XWvjZcHq3uBUn1QYXeZ5X56SANLM2t+uirGnNaZXW3cxEl5IyZVLbmcLWE +BlVAcp2Bf3FXFbdJK59f+M+y2+jZT9feTyrw+EtLoiGTxgkLdJyMyI0xGmQhMx5V1ex1CxhZ +K2JPjzCVYriBI0wIbmKi90YNMQoSsdMhYmX9bHl6XWS9TCDWsqj25FLYJL+WeVXpjO0NjRwE +E6pc/qldeJYG5Vbf0snGxIerXe+l5D8Yd4PEAnpj58+5pXeoGYZn3WjX8eTFMAEU+QhLKWQ+ +j/Y8Kijge7fUxnSNBZ2KEnuDN/4Hv/DrCFLv14CJARwEEAECAAYFAlWtZVoACgkQ5DJ8bD4C +mcBzsAf/RMqDdVHggQHc0/YLt1f/vY9Y7QQ6HwnDrtcNxxErSVcMguD8K6Oxir0TMSh+/YuZ +AW8K4KSgEURwZqz4na8/eOxj8bluNmlcAseQDHswqU6CyB95Woy3BocihH7L0eDXZOMzsa33 +vRQHBMioLxIbpnVtVbFR1z7tmyfjcOrzP32xo5QoPoczKX26luMBjAvbw1FC0is2INnmUSYM +4uH7iFZuXGPFYxcAqODqy5ys3MoPa4oZ71d0HoiRil1+s0Y+2ByddZ19pE2TXp4ZXNYNUj/2 +aRj8b4sTjR4rqhHIx/vfoK+VCNy/skFUZOyPdbbymE0stTRSJ1gr9CZLcBWYF4kBHAQQAQIA +BgUCVcFZcAAKCRCJFz+VfFX5XqApB/938p+CJiDRnh2o7eDWnjSyAu7FWmWGkOQnjI/kraKx +1vojsYnKRXD6mjq1QJ8Hsp4taJnLQjcokNTUiST4m/e4ZJExPWuJKkwlralWGH6NpqYcgWPa +jSYb0eYQC4YqS0kfyzolrHdKI8Y4NGEU7yy5zsHwWkHt/mpNQMrYnXwyWdIrc03X/OXo51dJ +yshJDRw3InREyBblFJcLvArNHz219wMrXAicPytw4wfPpVrmDx6GrZcI8q8ECWCjwSXXv7hR +pEuFLSy5XPhMc+wYBJjNlUoiFBAF/7zENd3rMn9SCQLiIFYe0ubmO+bpeGy7TizbxOaCIfgU +ouyy0BQXNuJBiQEcBBABAgAGBQJV0hrqAAoJEK18uZ+CSLoPzEIH/1D6sJMNAJtZCRGhJXvv +6SYhv4pUVNyDF9FnUvRsovliojoe4IkuBTWKhPGrxbiD5IO/izr38shqNhhm9JE2/SQZHObY +Pi+lyfDKbJgImTNxmS4F7JHnRLr37VxK1sVvuNkynJnqvCcp1g5xwNIx1rKcka3iuqJj6toM +8XQfgsTHH1rUkWHbUV3QwNzXm+yhFm2s6QzxBooPzmFn8AY7CXD4pvcMR+M0Zy+e42nngd8l +zRnmTBVig4pRq0GCMulFG+XjeVQZFpoIIxo2k1lczbRmGttONdGWSjxBUxReoTbSwM3C/50N +robycGQgY0gd6LGtWtU8/uEfklEy2NluxYWJARwEEAEIAAYFAlWtAUYACgkQVu5xjc4OFUs0 +OAf+LM0dyyvUFGdXfJDpP2xMknXzsHAXWFEtH5jein58mv6dD3fTVcCouo1vMQH3WFFSLYZv +wtNnHGrSBqFbNKqZ0ATQ5tcYaWsSZ+MVJJMXJDXFG/Oihg1nNOM33VdfV0RGPKP1I4cEROxm +s3TUFkHW3cSCgMzs8I1OxfSoLrm6da8EN+2ct2InqzdQL2yisyTyrdmXoNpwXDxApKYkvVHQ +4+9eJI5m0ZAr0mBjIeJdATcw4/lIVKTrV7UhrChxiffYJcz4SSC1crmr+2Fzw53CyAsAmYal +UHep3Yr05oQ4oJRX9X3VrY/yELHwwxXaxCAdwwHbbXAMhZsPk9Mc20J6BokBHAQQAQgABgUC +Va0isQAKCRCj1lIXO3Y+j6ZeB/91Q9/qr5oMWgOMsix8kflBLw2f/t+tRR0SWDw90bG1npJB +6nq5Hl+Bz4/A4SWFTFrrrlZi1Enjn1FYBiZuHaSQ/+loYF/2dbQDbBKShfIk3J0lxqfKPAfK +opRsEuxckC8YW1thGxt5eQQ8zkJoqBFTBzwiXOj3/ncJkX9q9krgUlfTSVmrT9nx0hjyNQQX +rghsmBtpR7WCS7G7vNRGCNUorhtviUvL+ze1F7TTSGspVsVxo2ghmz5WT/cD9MV1gcVjojYm +ksh5JIl39jCHr9hl8aRId/OfzsN+TKuBcpAxDkm9BCAps7oY8FlLKDFZTtHa000AkodKHT88 +nwnvKuqPiQEcBBABCAAGBQJVrTkDAAoJEPbQ92HczOykK9YH/0MARo3HlYXeS2bDqM/lwK/r +QcPCCyYke6wbICjncbCOjgXHqG/lBhClNs7hp/7gqkUaR7H5tmeI4lalP40mSHHnnFvMD3Tc +yhn350igK0bgrjWQDaYxhKlHT3vIXd/C24/vRSAxmqIKbP+IoXOyt2GMTQq8GOm2dgYRaTkw +yHnGWnMaibctX8D4oCYR0/D4YJqPkfqobf8+1ZfP5GaMbSxE/Jwdo0kJa4vPjEzFXbygAbnc +apzdwN6zgel2zh885rz7B7vIpMr/Y7eV85Q68qdyyhLe8cL8Y18YPzpFf+/PZNbgYxouafvn +FwBhPQwg0gUF/+1eM3UE2ua+saSTGduJARwEEAEKAAYFAlWtCVsACgkQM0LhtmejiGMovwf8 +CfYJHNbwiwSMUoP4n7FrmElhBtxvlbnCMZKz08v+lFsfS3wU1LUN69GqirfF0vkQRSlSBp7n +iCLHQCfSoqHMLgxF0P2xgXLjaYM/t/rxXDawJmW18G04dqFrtCPZTbwMT2PsPHTiWQdaN0e5 +0lXk9Vo+l6VbwQMg4zH7icZadeJgQooxFalHYFVXUVeex9t8/YdanFVrHFa3tao6azBTSUkJ +vZtIu14SfxigDWIIwsx0xpVfJf3a/xC6HY3Q1a3NeBz3i6DwaK5wYqijZKl0WVdULKyqU98o +F6y0mUv3d2o/p07Cqgeo6xxMkHqu83OLa2a0C7tYPLgL4EFc2FtikYkCHAQQAQIABgUCVaz7 +KAAKCRCWO3gxCjexfKxrD/4npm1rB7+pPlotbqK37Mur7egPbVSAzVNU/zUKPAuGUeP3C64Y +N77ETx1kDuS+meAqMDHFc9Bf8HivPbtj6QcK96U5KstbmSh1Ow9YiQtxJgxGjg/CzREgZAFc +jy0MhoklyPsFhv07s6MLOJMSM/krEN5nqjifQ0WdmTk02FLoHVWcLdjfgMiPiSjGbU3k7luv +jPyRNzk831szE5mfa74rEYh4TBklse+2uB4DFQ/3oHZ1Sj6OBK6ujmNKQjIP7Cl+jmjr7+QK +0OJcRaj/8AckDA5qXTZACh1S2syCDDMnX0V+dTxGCIoWOK+tt9mLohMzpEeD4NIX4qdpbbCR +zeYZMHSomyBIsbA6B+/ftDE7W1N0/FtJ9adkkCynKULvh2CH5c5hgOOL22M+2spnywRoeJRU +WU7hBM5OUH3JjA4Tu4j/cwp7dD7QzZrzmC9f5LQJ3OelejvVowWPQd3/tky4o1q6wlmFqAcA +gtu97UwgBOSR9sJPGDlt1iC91UYAiBQQAA7ya8uXUS84mCQwTlr8j+YrowvEHK4IxpPREytT +1LzzV/4Am4ndDFtujy83QjL0qaIIim1xIwoEosd4yidhpczw7f3b9dQpuBIFeQuhM7JsxP4t +mE7S6k6GlEmqa3INPVaPGnsUGS7+xSMlcJXLtimPCSQvFma9YiGV5vtLy4kCHAQQAQIABgUC +Vaz8uAAKCRASy06X4H5n0dg0D/9QoxIh9LRt1jor7OHG4xKUjKiXxn/KeQNlJnxI55dlWIvJ +EJGheFjaDomzKBYuxmm2Ejx+eV5CHDLUYsLFYwWf8+JGOP75Ueglgr8A0/bdsL63KX6NP2DC +g8XR4Z1aeei3WMY7p/qMWpqbQoAv9c3p49Ss2jSNuthWsRR6vbQ9iwze2oaUaA44WKQyhhbC +wBU4SHYjlKCLqIBh/HXZFhZ4rDfuWgPBKvYU1nnOPF0jJRCco3Vgx3T9F+LZ3zo5UPt1Xapr +3hMVS9iaJyl1w4z2miApUaZuHPuWKuO4CJ1GF1mS5T6vG8gB3Ts5zdtBF2xQIkCz+SM7vW/2 +i/82oq6P8EuLHEhrQPR4oTjXIvXdEJ9kgbjqcj8Xk+8teEOnuwh6iEhay9i/bf0D3Jd+roFN +5dnWPxhOVjzrI3fwlK1/ylsZYqUYBEzt7Wj0MdhjeKssI5YICcqYXXjBttMw4B7DZXPFXzz3 +kHB56jZ/II4YUjpLO85Jo5A9SV+aIqa0mvCt6DvVWy/rhfxfoUdqNlhX11gkVLaA7xxgn/Nq +POf+h5hVO2mwWkmart9YHKMZ3ukCdke65ITL/nsYSm2ZhG7OYjaCfu9jPWtkBstOEWyT9q4J +TdViR7wN3eMefEG6rb49rxOYvGJu+cTVkp3SCpl0w1j+tPj4tkj7ENzPMXdnuYkCHAQQAQIA +BgUCVa0s4gAKCRCKsTKWOgZTeuMyEACKOySKAd/xDcPcHg7Prvdws04Z8DIR0dY2qUlbRVx2 +jTmIXyry63CqbOJFbDg9uk5x0+lSotvrWtZ+NKSrg9VM6vyV4cc2P9rhqIBi3wO2elzAmpOa +S2KKOjQ+2fS/xqh91ElJUu09xXQXJ0vMrqgui+zN1YBDiJV0WOmm90Mm2NPiihcWZmBmDorO +qMQabwbjBLi0yUVHgAlkilY3mAB4tmEKDeN+4pYSAAhXAll9U+nyoVMgwMJscZyazOp4MqMb +mFjyr4p5AGzv+OOJtjtCNKT6oW9Y+URLY0YKeOsPk0v5PlbQCVBlLeSBsNZudKav/Gvo7Mvz +5uLTcneBFb+haYIiXO/FQm4uBHkzdNFLgaph81Wzh62AhbtBlfBOj/lbzN3k/xRwo64QU+2Z +9GOhFlhjfROquY70FCQcspwNuqCdZybnkdpF2Qrr6Pi0qKR/Xb9Vd7PW0/gKQdwwlYTiDemg +A21mYeJrYw873/7U/+kLFRvmPAEX4IOIOEN6XVjxvu78REi6CmXxOoYnH4aRSXDRyi1nsGjB +43AtfAMMNCUigDgFP4sUsZAG1RAoxBhOsO/g9S5wx8H3rKITCXDjQh2SYeBwHFcU03EMcyzE +QhbZNighN+aRKGIibteRxISiKU+kcWaHolemeo6wGF87QXEpJaQ2OwIoIxQYvDDmQokCHAQQ +AQgABgUCVaz/8QAKCRA/8xuvEEv54t06D/9n1Nyn2QSUN1mXd7pomoaka+I2ogDbQpu9iuFq +bkqfcH3UuG8yTKlPp9lYDBs0IEfG85Js6iVxJIultocrcDmOyDkyEsnYbdel/tn3X4yqD8eI +6ImRoCE+gnQ3LoEIHuODfJoosM/jAHANs4fsla4/u5CZDXaaq7pYXGiTt7ndsfmLiCa7dAg7 +bVFfJagsnL/VjlfeWM9nW01rDL9LPxSN4tq7ZKXWZDonFZYJ4unsK/Cn6Pqco4Wb+FUOWCcW +t8in1pgeNHZ9WnAgXG999/3iCbbQTLB6uVwY4Ax5P7VApnLVXV6QFVf7bN1DxE8kZk+pfLGc +uD1LJSF0skE80M17kAt+iV+fam8EYzeGdG6cY6w+srndaMaq9ddiHIiQkR35SjJAGnrNRj8o +oUr/vKOBnFfuwJLA2MOUVPZ8HWB+WXW8qhihw9CXa38Hdt4o5knMGRIyTWEF0TQDtRGQ6his +VBN3OxJRXBj7/QgCG/GoYpweGKcsMU43p57TzbnXVVUytJsLFyexOGNzrUIxgDVPEvTUnNvd +AihNZPdbW3YdFkP9pdwOyDpQwebXELUx1kp4ql0laueex4L1v+0a6rDYQeK1gOq5UGY+THRS +gB2xsHl5zeryfgnjlUkUlxKuumz+9FI2fRtSpxmWllJkRF2oFMGRuLPGAWe8nHvfgkuGVokC +HAQQAQgABgUCVa0bowAKCRCVY0f2+/OkFWKREACZ9TOmzvY6mrfWVEdldcYPj8cU/1LJhGdb +No5YYMx+A72nchxGXepHA65OEK+f6rFMeZFPwpQPy6Sj3MhT623H/PECfeG87WcLOyJbfc3i +9T5jvxS+ztG6abYI2J/50oMvjUWdWkDX3VvdPc0ZZ+KC+oHvx9a/9Yki48m4CEKglgVsrRW/ +b9AXZQCj07bB0GjQQtkqY/m1Z8m4ttzxfO7OBo/jHNF2An4/4gUDirXNDj0UdB5FYFJaTEUC +neIj2x0fk1r4u6na8tINhiZ0M7IgjnDlBD5jwzvwG+3kYE6TnYp9Mfeg2MPC13tp7jrJatLL +utrOzvmSVLGLXbkh9w+v+vx7qO3TxZUNlFqTmYs+vI2V/9j7KYV7Ttoind6Io7X9ImnYrvd8 +JOyVcO3867MplKnrnqHJvFStE+JcHEcw5aRw+WVmoFd/obGc34V3K62T977QQGOkrTYDEdje +KADfjXXZkZMZc0IvzLBOJ1XB45+PKqJYCcJJS8Xr55+NGCDaaUPWDpkNGIqmX2n9kYROMKG6 +uWkZIqG0JlZkga3THSJIvLiy6uoOvDC4GoQ9JnTwpGv6r1Hwcg+4DCOrYKOoPKMMU24vHx2F +tRRUgCXtr2cmi2ymHlUrtz8EXS4tblic8lixcbvPUqLEvbJ2gfWQvjXNd1whYE/wfvI9WBTE +IokCHAQQAQgABgUCVa0b3wAKCRC8FzAbSRs/IQhXEADiKbCnsN/+Plllxn6SQHACEU75ackx ++Q02XiD/u+wUptYUGmJi4aaW9f6mgzedOxYK4S+/dCiFtkcYlL+FjaR0C7G6tMjrDgW+8nQC +TPUNQA0gX2B8n06a7Zmdv3EbV/PIJJwTNSBp/dqKbvPKnRquOOpH+ayZ3awKOq/LlWBErbW1 +gB+FabN0lCe0iUIQTF9OH3GC4QsMtIrePueBmVrVPcHATV2Vw9UPqX1uX/tlXm5eai06oVT7 +V0FwUbg0o1eacblNXvHciHpe33zZIKkGBWwSjDVcU9/SN+U8GfoMYmyCma4iN3KaCklpzBkJ +iQZtNKPAB5KJti8LDUxFi2sJd3sqWaZDGFhO+/PKhBKpqIhAzx1ppd11zLgh0eg6gQlXN8D8 +ELISRvQqGGNNZdChEFdzGElg5SMfmeEd37OaX4wceLLV0v7EA0doHMVo0enFhSwU3Ywtwxbi +ukKc7H/ylG7+jvntjY+z7KktRsY/FkklrbrNhddMBQMMSAQUUz1GJ+6NUKmzXjqxFuuh3OAh +qNzhJyABZWQcNMph+rogEslkenwoHV9gWRWtS3CMybJkKkbsWpYhMZNY6hFtgCwida7NPs83 +69v+yTTE6TU/NIlXUKYIf2LMqtOpEBTjaN3jKpUi5DeE3zBeh6iVKUrfCXbt8O0rYQPNWGSW ++MZ2t4kCHAQQAQgABgUCVvA4GwAKCRBE9G4UbQI5XfS9D/9XPK7jg0lmsNZ2sDIyeAw5n6oh +SR5F20ocTMAVeXqN7VkvJdNpIqHJa13EP408DgTy9BsSptym/OQGE6B82BU7FZTEL6eMHnGG +Dg+5ktx9+b73xLedzK75ti6ED+QuA4kDYcvW8hASht0zRcmFUzwbtuEopJ1Lk1R3oFLwCAov +lhduC45nANWrTK5U+D1U2obl5PAvx+9mEfgvojlGH/C/WD74W+cQZFH7t4+muRzamckLyPft +nTxjNF/lpYIm7z0QOwvzBYj+PJ09wYueK00RE5+i9Ff8DrjtVSXsziQvSjJuUlv0kVvM8r3t +h4zBBNRhA4cinwqxhgqO4G+r2r9Gv0M2nKKOnWmyF+MSIRnhgONOQZe5a7kQxKVWkLicS2IG +UpPeQyTWaqZzYXsD+Dm6DXD57vYTURtUkwO0CDONzT5XiS1HG1MZrw+V/Jai4HAvpF5WkTJX +Pc1Lv75BxJj3wOAw4MzEWCCdr/N/dt5/+ULpEaSQfIg4L4iEj6rvabQyN0KbOxIDx+pPQ81i +zfj36wIrDqhyCNIdmVH/yARltkL4XDEl/pt7Y3t6jqFhy057lektowClWcPeq3DoL0LFYnjN +PpYvIjRIAXdhaYiAu2ViF8WdGzQ5tFeI7u3PQUG5NcPe+WOPOru3wMMrUhLgLHkCdNkjivP7 +9qIPSTkCGYkCHAQQAQgABgUCVvA48gAKCRC3hu8lqKOJoLRMEACmlyePsyE5CH7JALOWPDjT +f+ERbn+JUTKF+QS0XyWclA/BIK8qmGWfgH38T9nocFnkw17D3GP8msv8ll+T4TzW9Kz9+GCU +JcHzdsWj99npyeqG5tw+VfJctIBjsnX3mf4N0idvNrkAG5olbpR5UdsYYz62HstLqxibOg4z +WhTyYvO6CjnszZrRJk0TYZON4cXN14WYq2OTrMaElx0My8o1qVBnK58pIRzv72PmvQqUk5Zj +hUyp9gxjqqCJDz0hVK61ZuGP6iKK8KCLTfSxeat05LAbz8aC58qlg5DVktevHOjBgnTa8B7B +gJ7bQ9PLMa3lF4H1eSiR9+8ecpzEfGHILoeIDIYH7z7J/S0mTgV3u5brOMYO+mE9CEfps85t +VVoyJrIR8mGEdtE2YmdQpdFzYIYvRfq9tnXZjVsAAsC20Smw0LnjhYzAt9QJwZ9pFMXUTg6l +C5xT+6LNrEY+JR3wC16q36bcbCNj0cBv1A3x6OI5OQfpexhLPDgoDiI+qozJIdj8MzJ8W6KU +1Z3yb3dqACk77yv37rGO6uduSHnSti26c/cUIy6XZBbXBdobE9O3tr8hwvTQ1FXBmYnBrdiz +U6tgxEA5czRC9HOkdk6y6ocbjmONpF6MxkpJAvTMk7IqC2/hisbV9x4utla+7tmNZU137QGc +aK2AGQablVAy4YkCHAQQAQgABgUCVvCMigAKCRCkhaDtUbi3xAU7D/9gUPZSJ8pbZV9TLaKD +57Bc7B78HNV/B438ib4dI33iihMTBHnCB1giPE9X54QoV8ASxrO/xveS1kkj78jERqUcED6Z +HhMLb9SWs6CxUKdMdgovnIlFUc+t05D5mb6STi+zNihwO0JI+n79qhETy73WLpC7RR0aMx7z +Ycbqp3NWPptcf1kVGJZGx+QbEHfVye98T5pkH5Wp+7LSlup6AldQT/oifxdGxLXbECTnwozR +vyMpAaphoEHrET1YOmKnmw/Jyi6DLpTb3XvSf5Tntzr7HklCEcL9FvYCoHxiXWawLhuPhSyr +FYeYtF1ypmzTgaJWyuTZ8sN9J+y7Tbchk/I6FpX+3YoTgPCcC7hv1Krs803N/3KuyBEvhzg7 +NYRikzO3fxXlBG0RMm+662E7KlERU24izbWhGiYwl34+MaxrIO4oDvF79LEN7y0+SjL4V0B9 +689d+HI1ZfS9O1xkOlW6y0QyagOzsTOUF12s2mWydFmipbYnIwsSsu6Nzk3yO4M+qYABJXJ3 +tIFQPTd7xqmPNlJ8mFtmzHDhb3Pv6sRNFLLujYM9cJpuNMbAHWdohz1bjBT9pZQ3zWpll5wo +tUvGmJd6hTAXdUgmZ7lh7Uq6axClMmiLe1WYntcNpb04PyyEm2+GU5x123UTiSX2LGKa4t+H +NSM8nJL8BJiGk80xVIkCHAQQAQoABgUCVa0OAwAKCRDDvTXkbdRdpVR+D/4/37e8WqKOHNPt +eQu42sj0ZOfcqyVMA9TQ578F0s9MwoQuqfVhXGSWevOctuMv2qTBjBfFjkdPrKR5L4LNAgMs +u1epHU0DPcRZUCbh1P7GpolmZ8KgnjT5Wpl1AcuOCaP08VMrt/e/JndTHp6btn6HsLVtryNh +lL7oaeYbDr6/ovHNGHVIVSZgGP9f4Y8FiDpyfKav71vYLBMxtzM7lc3eFT1S10XhSW6k+8S5 +XldYWkLDriRXDE85C+9QndpOoQaIICp3ye3JVnUxa1qhvsYj9uPt1M6hKiBSoXdplrB+hQc+ +nqLNN3jxpGdmGmwrjtjqMhocMIguEqgARJOek3XKOppEhu+IcnJgU4edARJNLsBauiVBWY/6 +mZOFlZq6H48tVyziS2n/oIpi+aCc/fQeGs9zMTtFUohPfYtTcy9PecXMOYpSu4p4tQ07oucn +xfBkRUgTdM5VwX7YwTcRwp9XhHACUEGBhrwMH8Iz+sK2jLF3FhJGkef1vFs0vqSf4I8DBFkY +AKF848YyEcGHeINQloi3v0Kr2PpBxlRh+GPWwi++QPKXQFzlTiyVtMzoo/lpmAWUJwj0dbAb +H/mohtvWtA1WPHC2JRZ52JLThhpDrK3t//Jdt2WHE91cMx7/2B0PK4O8/j7UVlsOJXpVPsGX +5SFCeTB/iS4JtIwWN275zIkCMwQQAQgAHRYhBFnKni0qMx3iUaokJ18Dx2fCR6TVBQJZDvZC +AAoJEF8Dx2fCR6TVoGkQAIjqaQ7tpdhDJ6ORNtLIt0TsWg0jg2rpoq+9Au36+UYBMuBJ3Py/ +tAsZ3cqQlig7lJiQqOuQZkbg1vcY4Kdad7AGa8Kq3sLn8h2XUlNU90X0KAwdCTA/YXxODlfU +CD2hl4vJEoH/FZtfUsaLNHLmz0brKGrWvChq00j5bPfp90KYKqamGb3a4/LG4DHL4lmEBtP+ ++YA0YqUQ3laOvKune2YwSGe4nKRarZnFiIn2OnH9w0vKN/x9IMGEtc5MbQVgGtmT5km3DUuX +MDforshue6c7ao4nMOC96ajkWYZhybqHJgLOrEGPVUkOaEe7s1kx4ye9Ph3w/LXEE8Y8VFiZ +orkA/8PTtx0M9hrCVkDp0w8YTzFJ9DFutrImuPT6+mNIk+0NQeuDsv492m/JXGLw/LRl97Tm +HpKME+vDd5NBLo4OShlDKHwPszYcpSJTG9+5++csR95al3tWnuGX9V0/dO1s7Mv0f/z07nLB +/tL+hEpqqA5aRiGzdx/KOrPZuhCTyfA3b2wvOblwf4A/E1yO7uzPTuSWnx1E14iZuaCPyZPX +Eh3XSYCLEnQ05jy50uGXCDVR+xiE/5i/L3IxyhJk6zn5GOW5b8Taq5s/dFS3zWiFS6l0zQ1V +QmJH8jdGLoBFvdVLZoAa1bihLo+nJVPR2RauWnxWoWk1NQoT3l02Lk6DiQI4BBMBAgAiBQJV +qUAEAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBht7Um2Y8DU1CqD/9Gvr9Xu4uq +sjDHRQWSfI0lqxElmFSRjF0awsPXzM7Q1rxV7dCxik4LeiOmpoVTOmqboo2/x5d938q7uPdY +av2Q+RuNk2CG/LpXku9rgmTE7oszEqQliqKoXajUZ91rw19wrTwYXLgLQvzM3CUAO+Z0yjjf +za2Yc0ZtNN+3sF5VpGsT3Fb14aYZDaNg6yPFvkyxp0B1lS4rwgL3lkeVQNHeAf0qqF9tBank +Gj3bgqK/5/YlTM2usb3x46bVBvwX2t4/NnYM5hEnI57inwamX6SiMJc2e2QmBzAnVrXJETrD +L1HOl4GUJ6hC4tL3Yw2d7515BlSyRNkWhhdRp1/q9t1+ovSe48Ip2X2WF5/VA3ATfQhHKa3p ++EkIV98VCMZ14x9KIIeBwjyJyFBuvOEEIYZHdsAdqf1zYRtD6m6obcBrRiNfoNsYmNY4joDr +VupI96ksIxVpepXaZkQhplZ1mQ4eOdGtToIl1cb/4PibVgFnBgzrR4mQ27h4wzAwWdGweJZ/ +tuGoqm3C6TwfIganajiPyKqsVFUkRsr9y12EDcfUCUq6D182t/AJ+qE0JIGO73tXTdTbqPTg +kyf2etnZQQZum3L7w41NvfxZfn+gLrUGDBXwqLjovDJvt8iZTPPyMTzemOHuzf40Iq+9sf5V +9PXZ/5X9+ymE3cTAbAk9MLd9fbkCDQRVqUD0ARAAr/Prvt+mhVSPjNDPSDrTBVZ/7XLaUZvy +IVggKa+snJoStrlJGTKKFgDVaYTOE3hP/+0fDdQh97rjr4aRjd4hBbaNj0MzZdoSWYw3yT+/ +nidufmgPus0TIJMVO8I6rl3vgcfW/D3ovNrLW/LjkTuM9a+p+D1J7woCfMSWiFMmOLPKFT7R +BuY8edCVjyA6RP9K9Gj1sURSeqNaHR9Gr4rW10s+FwUHWxxzbmIWqH0gApQYO6vyND5IMcKO +BCWQU6Detuq1pQ6dUc+iF+sEz3Rk3C6d4WBBjtkVJSJ0KKan8Q3gJefOCMNhdRQDjZLwbzr4 +bgoAkLbaBFCjiZxWZ6HAdMfSCV8uZQrtMS7b0DUpY0vdH9Htl3JqOOkK9RorYDQBuPdkTYFI +NsmtWVsFV/LmR891mOF3fBRaoVoMeJVwiZyNlFY+dyWWFzLp+GoTLcQtmuR7OkmOcBGxWSKP +cZfPqhf4dVQud7bDR2RNfJ1Hqa5kj8Z422sseYDwHf/T9OWWYvLwKGZhlUgpnzO3WCGrd/6E +VNeC1mKXt4F7BmADov4Rdcrp1mPXiVt7oIxLaS6eBNf2y1TWzjYj5ZFuKqIukDEJfqpwsE5a +snCw56nae+7luGs8em1J9GEXhWzXG15UVyQJaFwuB1iL8l7VcEQz4ABVrSTUWLLAKDsyqUbq +2gsAEQEAAYkERAQYAQIADwUCValA9AIbAgUJA8JnAAIpCRBht7Um2Y8DU8FdIAQZAQIABgUC +ValA9AAKCRAcacTlXpkF2y/FD/oDrZm143Rv9NV9InnVJ0brpqbB7aulFfhR1LDuJ/GjeqGA +QgJCZdHlzT2pfCXXswUlYzcWEatvGcDkoaB5Ya2qs+6nhBk8pT6XYRrZAtIlKIGrlCqoSBm9 +HXguGv+EIaEECr2z/Funx9so0mP+5aJn65M9u3lPmuAonj6DcHoM07WsfsXvQ4ut3fabFmzi +lLGeAdEDKIw8Hn3JBUOxUyFrQlOoL4/3qK1TO+cidz/2bATQQyIG2kNOSgHBslU+e6/7sWOQ +4ufmzm7dEsf197zPXGdXR88LT+d2uU2K4GkCffNUKxZqy9bXxXPwr4JBjxLDQnDvl50GAWjP +ZAwXEd8Okwl5+8xp0HuZ217WUqT8ib0oUUfwh2H1vrMPRr/46i6O6THpCkV8BWF7axPYIiba +eYwC4BkjZwK3tIL5ESf2f0xK4hbE3xhMTeqABQHoXd5rQ7SEaUuX7PlQ59fRs0Cz55vH8/o9 +zMm0PN6qmZFvRBeqjnklZcu+ZdP9+CMXt81NMuzIK1X7EfpkUoam8YkYkwcCkRvPZrSHLXZF +kfnx4jW543dPOfycjnv6hhKyoXD9CBx0ZcOicsYmw9XMilBGD3b8ZdK6RYX4ywKNU6KUdFJj +XB88+Ynv6QxDit1emMCHA1glzV9/k36iYLEIqgWBiwJeUUIcUqzgnBFtN13cyS6oEACUGUiP +Kbw3IkgGW19ZyS6FBNfgGIGW0Y82Br0KlCyaXnX0R4+4u2h7kfR9NSnhRhsvRnPIkiZATa7D ++Ew1nfpsDTnti0c6g/gVw9TC/rCyXkkLztRHVcWEBdvnFJTSp2LeFaHSGbvvZfoIGUzyUzoa +1P98NmRIY1cxBoizVf8729/zAaD4fAslxoK/JsjjDvDUrRHtaNZmUle60Jl/yFFzR3zxb+pJ +liigoP2rZLt+ipomHJIhoXXWwfkRO9U/egJ8ZUhWEpZvROnaNc9eVct5EBADxL7gHWjlceIz +4ndI1eE9AdEZDdUZwOfjmK2DcXjFBfZC+jhJXjY0xh3pPKQz90h9DIkM5WDcJPf6ep+MKSd/ +3hI2/JmmscQ+alwN6x6g8zDySMo3APA9cUvEFGe0+CepVcNw03jU4faSrHiMXsUuVGbA2kHa +YVUfzF5W5GbuHZZlGxoSiq+K+HNG0RJUDa6bkSDvrcJVNw1iUrowP+LLwnNsy5kGuU4evnwc +oN1w7LVbTPaq4RIaiqvAD33kiA9q//UNKnK4k81z+hRNaWGliyGpgqh+V7MDIqPfT5TMLdH+ +ZjTeuLrNS8KBcc2BmUpSwzdUReTqHmgO5peeIcsvO7GNMFWsgucZiAdIVE/zQv+SfP6jhS+r +jCPs0eeu5zl8/V+gXFE2wy3jTJEl9bkCDQRZS9m1ARAAvh1Nh4GgjpTFZy7uQRFz5PPXdZTB +I+Y4hTpF2heoFzZDI6SLyz64Ooglum3ZglQ9ac+ChTSsO36aw4b22kCM9WDmkcl7wf21fG9o +8gJDVjFjDWbwTWREaKjgS6s/Yb8f9gje/BGySojxynTi3zyTUN94q9dhVjfiQ79UzXZdN9Fy +yIx2YO5tOo09hTWSZg16oxP47Mj1ATaS6UIrQMcMnOp0kuc6SufXPSWsUA+g2lW0dmHgPvIH +wUfcjWqT2elF01e9KOFe7im29G6zOS2MRx8cr6KRg/eNWpHh5aI4quRUhYk4Kw4ohQTbs9ed +0YttS4PMK+sq6xHpb28X6ZgrWnelPY9hfwcR4m7Ot3VQUG8JY9/aTlFCoeTgkhop+MCUI+dJ +eY8depIa0PTzdEmEWRvPhTTv+CUdZ6v4z5LD6FhP+/5c6FCbcIb89Rp5fa53oYV5/KZf+0DU +VgmpXFU7J7ZrGgDeU7vIzmwr8kcx0vtsVm1dVwYLACpTaaQPbISQUDM8sEcqKAqD7hWKaxNs +b2M85L6q2/rnHq4g46yJzdR3b8EH+V9u+mUi9DIljDwcpvw7ReRQ9wPdDWLynnglIeGImbjY +fr324yaIl4vNORAkbsoCkS/qc5v6MvKvYNle5fzb9S9kCbNZmD9c5/bHPjj9ENeQvzrl2pFh +6dc1o5cAEQEAAYkEcgQYAQgAJhYhBBTyZoLQkWzdgeN7bWG3tSbZjwNTBQJZS9m1AhsCBQkD +wmcAAkAJEGG3tSbZjwNTwXQgBBkBCAAdFiEE3OrF2WE1uRxOpnKru769uyTG81UFAllL2bUA +CgkQu769uyTG81UFUw//bW5T7w2k8ukGfpIcm0gB98VgxKenSCmU6N+Ii0DwcNtzW+pmVWl2 +TbHIXDpvuD69ODWBDMXu6gBkrVzNEsK3uhzGe0tWA+5I7Vke3iEkbll7VRQlIOrw+n5NMvje +uDqKsMt1gMEEdgRKddYApEAi49vV7XnqkB2lLKfAnf6o/KqPm8MuQ+u0xYanupZCldwdpcx5 +rybj79Es0iO9Gh/+3qOtR6ubOz3Vn78Lc3y6AP9pmtdOI2QX8foGK4hNmgHSP6uPLh/ERC9N +ir0Lc2hoEhHEkQ8CnEaccp70r03VkEQuMJQJPUyRsGZ/gIm0SAm9JJxWHXJk2/5NUN83pHAX +0LA4zxtWs4fVW5f8v9eIhFFPTZ4au+/cS9D4GFx4mlY34awcpAzrny2tntGEejY9HSJv4PuF +ZCmtyS2q61N9EU8yuBwVM9cp5HntzG+OT4HYugtI6ibehM0S1Roy4ETwT+Ns41ffhCwdYMp8 +tzdeksQ35s7rkB9OJHj+q2dkGaV0FQb3FutbSpxbP4zk/dLqyxuivdUPHGtf4W/qklxzCWBg +0VDFA7PwatmEXRxTjx77RelTY0V7K54dDyVv3Jh2+FzuaQZzzuIhv4gtqHntaqLnYl3h/QNL +bOTE3ppvn9RUSR983Bd+M3QhbbwZrgG1m+hdUZUmji+wbK0wV0xHNEH+4BAAjbVzdNOs7hMv +jY1wVDRFjvICVorNdNdU3ELy/9BAoiwOs2+zjDXmsX+3YtdzwKvdpQ24O0TvH4Vo3BkvKkJ7 +5EU7LroAbYQ2423m1MY3eaBslmX7TUJ3XE+k7OZF8AmcftgP4nhC4IQSCtoBc9+ncyGN4da1 +BpYO7b19tO0/HST8GHSrEcU9bGGdimS2eNkSgybA8wF6K0K9yvrpTNSZ7OBVlzQfEn8s70Gy +zs/d6C/rTA+defnv3AMaciuINSEdFyfYq4wjt5PikvgceMAAkH/z69xTNg+6q3FQt/lyK7xX +5qPMe2oFyDA1H+Cb/uL7ioo+jXh9gF+0fk8OP2IPzxYhBfulpVtgclmOuaekzaKeIv8NFW7G +oA9OghziExePxg95OpL/VyQ7PJiAUj1pFovFk5HS6ejVZNEGJ/A5zLc1PBIcr/phu0luqhXA +hImsZS6858GWQllWULNWw8bX5Blo8AvcfFVdq9iAK7aHN7g45ZR7Ze6qKHDyFv4XWuE/rj9C +2mM/GAstvU0gGmbo6B1mNGMJuX3Gd3dG8fqFjE77OB2feJyfZ8UeF1nvG1hxlmuD1A5e6/os +O9V7kjhXKzM2zSO11zHQ/5PlUisoUBjJ/QIK4v9RBNGtbRKso5X9Fke692lVgrdggDJ3j2Qq +MuTo71rAVDLtxerc+GNq0GI= +=YjV6 +-----END PGP PUBLIC KEY BLOCK----- -- cgit 1.4.1 From 1379e0c66eaf082a09ae30060adaf2935dce9e2c Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 09:26:15 +0000 Subject: Add Servo overlay. --- servo-overlay.nix | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 servo-overlay.nix diff --git a/servo-overlay.nix b/servo-overlay.nix new file mode 100644 index 000000000000..8084b52e9b2c --- /dev/null +++ b/servo-overlay.nix @@ -0,0 +1,6 @@ +self: super: + +{ + rustPlatform = self.rustUnstable; + servo = super.callPackage ./pkgs/servo { }; +} -- cgit 1.4.1 From bb387d1ad4258a8eab285952111a5095574f3da5 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 09:26:33 +0000 Subject: Add Vidyo overlay. --- pkgs/VidyoDesktop/default.nix | 12 ++++-------- vidyo-overlay.nix | 5 +++++ 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 vidyo-overlay.nix diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index c9d76ee5e3f7..96e5efdc5090 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -1,14 +1,10 @@ -{ pkgs +{ stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib, + alsaUtils, alsaOss, alsaTools, alsaPlugins, libidn, utillinux, mesa_glu, qt4, + zlib, patchelf, xorg }: let - - inherit (pkgs) fetchurl buildFHSUserEnv makeWrapper dpkg alsaLib - alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 - zlib patchelf xorg; - inherit (pkgs.stdenv) mkDerivation; - - VidyoDesktopDeb = mkDerivation { + VidyoDesktopDeb = stdenv.mkDerivation { name = "VidyoDesktopDeb-123"; builder = ./builder.sh; inherit dpkg; diff --git a/vidyo-overlay.nix b/vidyo-overlay.nix new file mode 100644 index 000000000000..691db5c0e767 --- /dev/null +++ b/vidyo-overlay.nix @@ -0,0 +1,5 @@ +self: super: + +{ + VidyoDesktop = super.callPackage ./pkgs/VidyoDesktop { }; +} -- cgit 1.4.1 From 82bfb7c49f14f7d69e1d6c63d98c214d5ba90585 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:09:02 +0000 Subject: Extract the compilers-overlay used to generate different toolchains for building Gecko against it. --- compilers-overlay.nix | 96 +++++++++++++++++++++++++++++++++++++++ release.nix | 123 +++++++------------------------------------------- 2 files changed, 112 insertions(+), 107 deletions(-) create mode 100644 compilers-overlay.nix diff --git a/compilers-overlay.nix b/compilers-overlay.nix new file mode 100644 index 000000000000..a9b46822715c --- /dev/null +++ b/compilers-overlay.nix @@ -0,0 +1,96 @@ +# This overlays add a customStdenv attribute which provide an stdenv with +# different versions of the compilers. This can be used to test Gecko builds +# against different compiler settings, or different compiler versions. +# +# See release.nix "builder" function, to understand how these different stdenv +# are used. +self: super: + +let + noSysDirs = (super.stdenv.system != "x86_64-darwin" + && super.stdenv.system != "x86_64-freebsd" + && super.stdenv.system != "i686-freebsd" + && super.stdenv.system != "x86_64-kfreebsd-gnu"); + crossSystem = null; + + gcc473 = super.wrapCC (super.callPackage ./pkgs/gcc-4.7 (with self; { + inherit noSysDirs; + texinfo = texinfo4; + # I'm not sure if profiling with enableParallelBuilding helps a lot. + # We can enable it back some day. This makes the *gcc* builds faster now. + profiledCompiler = false; + + # When building `gcc.crossDrv' (a "Canadian cross", with host == target + # and host != build), `cross' must be null but the cross-libc must still + # be passed. + cross = null; + libcCross = if crossSystem != null then libcCross else null; + libpthreadCross = + if crossSystem != null && crossSystem.config == "i586-pc-gnu" + then gnu.libpthreadCross + else null; + })); + + # By default wrapCC keep the same header files, but NixOS is using the + # latest header files from GCC, which are not supported by clang, because + # clang implement a different set of locking primitives than GCC. This + # expression is used to wrap clang with a matching verion of the libc++. + maybeWrapClang = cc: + if cc ? clang + then clangWrapCC cc + else cc; + + clangWrapCC = llvmPackages: + let libcxx = + super.lib.overrideDerivation llvmPackages.libcxx (drv: { + # https://bugzilla.mozilla.org/show_bug.cgi?id=1277619 + # https://llvm.org/bugs/show_bug.cgi?id=14435 + patches = drv.patches ++ [ ./pkgs/clang/bug-14435.patch ]; + }); + in + super.callPackage { + cc = llvmPackages.clang-unwrapped or llvmPackages.clang; + isClang = true; + stdenv = self.clangStdenv; + libc = self.glibc; + # cc-wrapper pulls gcc headers, which are not compatible with features + # implemented in clang. These packages are used to override that. + extraPackages = [ self.libcxx llvmPackages.libcxxabi ]; + nativeTools = false; + nativeLibc = false; + }; + + buildWithCompiler = cc: + super.stdenvAdapters.overrideCC self.stdenv (maybeWrapClang cc); + chgCompilerSource = cc: name: src: + cc.override (conf: + if conf ? gcc then # Nixpkgs 14.12 + { gcc = super.lib.overrideDerivation conf.gcc (old: { inherit name src; }); } + else # Nixpkgs 15.05 + { cc = super.lib.overrideDerivation conf.cc (old: { inherit name src; }); } + ); + + compilersByName = with self; { + clang = llvmPackages; + clang36 = llvmPackages_36; + clang37 = llvmPackages_37; + clang38 = llvmPackages_38; # not working yet. + gcc = gcc; + gcc49 = gcc49; + gcc48 = gcc48; + gcc474 = chgCompilerSource gcc473 "gcc-4.7.4" (fetchurl { + url = "mirror://gnu/gcc/gcc-4.7.4/gcc-4.7.4.tar.bz2"; + sha256 = "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj"; + }); + gcc473 = gcc473; + # Version used on Linux slaves, except Linux x64 ASAN. + gcc472 = chgCompilerSource gcc473 "gcc-4.7.2" (fetchurl { + url = "mirror://gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2"; + sha256 = "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"; + }); + }; + +in { + customStdenvs = + super.lib.mapAttrs (name: value: buildWithCompiler value) compilersByName; +} diff --git a/release.nix b/release.nix index c3d2185d0a98..42da3305d685 100644 --- a/release.nix +++ b/release.nix @@ -1,114 +1,15 @@ -let - _pkgs = import {}; - _nixpkgs = _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); -in - -{ nixpkgsSrc ? _nixpkgs +# To pin a specific version of nixpkgs, change the nixpkgsSrc argument. +{ nixpkgsSrc ? , supportedSystems ? [ "x86_64-linux" "i686-linux" /* "x86_64-darwin" */ ] }: let - compilersOverlay = compilers: self: super: with self; - let - # Override, in a non-recursive matter to avoid recompilations, the standard - # environment used for building packages. - builderWithStdenv = stdenv: builder (super // { inherit stdenv; }); - - noSysDirs = (super.stdenv.system != "x86_64-darwin" - && super.stdenv.system != "x86_64-freebsd" - && super.stdenv.system != "i686-freebsd" - && super.stdenv.system != "x86_64-kfreebsd-gnu"); - crossSystem = null; - - gcc473 = wrapCC (super.callPackage ./pkgs/gcc-4.7 { - inherit noSysDirs; - texinfo = texinfo4; - # I'm not sure if profiling with enableParallelBuilding helps a lot. - # We can enable it back some day. This makes the *gcc* builds faster now. - profiledCompiler = false; - - # When building `gcc.crossDrv' (a "Canadian cross", with host == target - # and host != build), `cross' must be null but the cross-libc must still - # be passed. - cross = null; - libcCross = if crossSystem != null then libcCross else null; - libpthreadCross = - if crossSystem != null && crossSystem.config == "i586-pc-gnu" - then gnu.libpthreadCross - else null; - }); - - # By default wrapCC keep the same header files, but NixOS is using the - # latest header files from GCC, which are not supported by clang, because - # clang implement a different set of locking primitives than GCC. This - # expression is used to wrap clang with a matching verion of the libc++. - maybeWrapClang = cc: - if cc ? clang then clangWrapCC cc - else cc; - - clangWrapCC = llvmPackages: - let libcxx = - lib.overrideDerivation llvmPackages.libcxx (drv: { - # https://bugzilla.mozilla.org/show_bug.cgi?id=1277619 - # https://llvm.org/bugs/show_bug.cgi?id=14435 - patches = drv.patches ++ [ ./pkgs/clang/bug-14435.patch ]; - }); - in - callPackage { - cc = llvmPackages.clang-unwrapped or llvmPackages.clang; - isClang = true; - stdenv = clangStdenv; - libc = glibc; - # cc-wrapper pulls gcc headers, which are not compatible with features - # implemented in clang. These packages are used to override that. - extraPackages = [ libcxx llvmPackages.libcxxabi ]; - nativeTools = false; - nativeLibc = false; - }; - - buildWithCompiler = cc: builderWithStdenv - (stdenvAdapters.overrideCC stdenv (maybeWrapClang cc)); - chgCompilerSource = cc: name: src: - cc.override (conf: - if conf ? gcc then # Nixpkgs 14.12 - { gcc = lib.overrideDerivation conf.gcc (old: { inherit name src; }); } - else # Nixpkgs 15.05 - { cc = lib.overrideDerivation conf.cc (old: { inherit name src; }); } - ); - - compilersByName = { - clang = llvmPackages; - clang36 = llvmPackages_36; - clang37 = llvmPackages_37; - clang38 = llvmPackages_38; # not working yet. - gcc = gcc; - gcc49 = gcc49; - gcc48 = gcc48; - gcc474 = chgCompilerSource gcc473 "gcc-4.7.4" (fetchurl { - url = "mirror://gnu/gcc/gcc-4.7.4/gcc-4.7.4.tar.bz2"; - sha256 = "10k2k71kxgay283ylbbhhs51cl55zn2q38vj5pk4k950qdnirrlj"; - }); - gcc473 = gcc473; - # Version used on Linux slaves, except Linux x64 ASAN. - gcc472 = chgCompilerSource gcc473 "gcc-4.7.2" (fetchurl { - url = "mirror://gnu/gcc/gcc-4.7.2/gcc-4.7.2.tar.bz2"; - sha256 = "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"; - }); - }; + lib = (import nixpkgsSrc {}).lib; - in { - customStdenvs = builtins.listToAttrs (map (x: { name = x; value = buildWithCompiler (builtins.getAttr x compilersByName); }) compilers); - }; - -in - -let # Make an attribute set for each system, the builder is then specialized to # use the selected system. forEachSystem = systems: builder /* system -> stdenv -> pkgs */: - _pkgs.lib.genAttrs systems (system: - builder (import _nixpkgs { inherit system; }) - ); + lib.genAttrs systems builder; # Make an attribute set for each compiler, the builder is then be specialized # to use the selected compiler. @@ -119,13 +20,21 @@ let }) compilers); + # Overide the previous derivation, with a different stdenv. builder = name: compiler: system: - (import ./default.nix { + (import nixpkgsSrc { inherit system; overlays = [ - (compilersOverlay geckoCompilers) - # Use an overlay to select which compiler we want to compile with. - (self: super: if compiler != null then {} else { + # Add all packages from nixpkgs-mozilla. + (import ./default.nix) + + # Define customStdenvs, which is a set of various compilers which can be + # used to compile the given package against. + (import ./compilers-overlay.nix) + + # Use the following overlay to override the requested package from + # nixpkgs, with a custom stdenv taken from the compilers-overlay. + (self: super: if compiler == null then {} else { "${name}" = super."${name}".override { stdenv = self.customStdenvs."${compiler}"; }; -- cgit 1.4.1 From 9b5b1e08dd6d8f92fbd0080e19ffe922d17c6607 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:12:28 +0000 Subject: Gecko: Add dependencies needed for building "bindgen", and "stylo". --- pkgs/gecko/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index cc3279d89684..fc06046dd988 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -8,6 +8,8 @@ , setuptools , rust # rust & cargo bundled. (otheriwse use pkgs.rust.{rustc,cargo}) , buildFHSUserEnv # Build a FHS environment with all Gecko dependencies. +, clang +, ccache }: let @@ -55,6 +57,9 @@ let rust + # For building bindgen + clang + # mach mochitest procps @@ -68,11 +73,13 @@ let libnotify ] ++ optionals inNixShell [ - valgrind gdb rr + valgrind gdb rr ccache ]; shellHook = '' export MOZBUILD_STATE_PATH=$PWD/.mozbuild + export CC="${stdenv.cc}/bin/cc"; + export CXX="${stdenv.cc}/bin/c++"; ''; # propagatedBuildInput should already have applied the "lib.chooseDevOutputs" -- cgit 1.4.1 From 5f17893e8fe556c2a23e6fd1feb29ea88dd7854e Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:13:26 +0000 Subject: Gecko: Fix FHS generation issue. --- pkgs/gecko/default.nix | 2 +- release.nix | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index fc06046dd988..91c88604ac05 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -85,7 +85,7 @@ let # propagatedBuildInput should already have applied the "lib.chooseDevOutputs" # on the propagated build inputs. pullAllInputs = inputs: - inputs ++ lib.concatMap (i: pullAllInputs i.propagatedNativeBuildInputs) inputs; + inputs ++ lib.concatMap (i: pullAllInputs (i.propagatedNativeBuildInputs or [])) inputs; fhs = buildFHSUserEnv { name = "gecko-deps-fhs"; diff --git a/release.nix b/release.nix index 42da3305d685..41960297faa9 100644 --- a/release.nix +++ b/release.nix @@ -77,9 +77,17 @@ let # and pull the the dependencies needed for building firefox with this # environment. # - # $ nix-shell release.nix -A gecko.i686-linux.gcc472 --pure --command 'gcc --version' + # $ nix-shell release.nix -A gecko.i686-linux.gcc --pure --command '$CC --version' # $ nix-shell release.nix -A gecko.x86_64-linux.clang --pure # + # As some of the test script of Gecko are checking against absolute path, a + # fake-FHS is provided for Gecko. It can be accessed by appending + # ".fhs.env" behind the previous commands: + # + # $ nix-shell release.nix -A gecko.x86_64-linux.gcc.fhs.env + # + # Which will spawn a new shell where the closure of everything used to build + # Gecko would be part of the fake-root. gecko = build "gecko" { compilers = geckoCompilers; }; servo = build "servo"; VidyoDesktop = build "VidyoDesktop"; -- cgit 1.4.1 From 6cf30ad0691d4c869fb19dd751cbb044b55fd78a Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:13:52 +0000 Subject: Gecko: Disable hardening feature handled by the compiler wrapper, in order to have ALL symboils while debugging. --- pkgs/gecko/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 91c88604ac05..dc8a64d4c95b 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -143,6 +143,10 @@ stdenv.mkDerivation { doCheck = false; doInstallCheck = false; + # This is for debugging purposes, go to hell damn wrapper which are removing + # all I need for debugging. + hardeningDisable = [ "all" ]; + passthru.updateScript = updateFromGitHub { owner = "mozilla"; repo = "gecko-dev"; -- cgit 1.4.1 From b2c33be9077643ea5593ea30987f52605d00dc99 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:15:29 +0000 Subject: Convert nixpkgs-mozilla repository into a valid Nixpkgs overlay, which aggregates rust, firefox, and other tools needed by Mozilla community. --- default.nix | 61 ++++++++++------------------------------------------- firefox-overlay.nix | 14 ++++++------ lib-overlay.nix | 5 +++++ pinned.nix | 37 ++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 57 deletions(-) create mode 100644 lib-overlay.nix create mode 100644 pinned.nix diff --git a/default.nix b/default.nix index 826b8b11d9e0..1e159cf6c790 100644 --- a/default.nix +++ b/default.nix @@ -1,54 +1,15 @@ -# This script extends nixpkgs with mozilla packages. -# -# First it imports the in the environment and depends on it -# providing fetchFromGitHub and lib.importJSON. -# -# After that it loads a pinned release of nixos-unstable and uses that as the -# base for the rest of packaging. One can pass it's own pkgsPath attribute if -# desired, probably in the context of hydra. +# Nixpkgs overlay which aggregates overlays for tools and products, used and +# published by Mozilla. +self: super: -{ pkgsPath ? null -, overlays ? [] -, system ? null -, geckoSrc ? null -, servoSrc ? null -}: +with super.lib; -let - _pkgs = import {}; - _pkgsPath = - if pkgsPath != null then pkgsPath - else _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); +(foldl' (flip extends) (_: super) [ - overlay = self: super: { - lib = super.lib // (import ./pkgs/lib/default.nix { pkgs = self; }); + (import ./lib-overlay.nix) + (import ./rust-overlay.nix) + (import ./firefox-overlay.nix) + (import ./vidyo-overlay.nix) + (import ./servo-overlay.nix) - rustPlatform = self.rustUnstable; - - name = "nixpkgs"; - updateScript = self.lib.updateFromGitHub { - owner = "NixOS"; - repo = "nixpkgs-channels"; - branch = "nixos-unstable-small"; - path = "pkgs/nixpkgs.json"; - }; - - gecko = super.callPackage ./pkgs/gecko { - inherit (self.pythonPackages) setuptools; - inherit (self.rustChannels.stable) rust; - }; - - servo = super.callPackage ./pkgs/servo { }; - - firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; - - VidyoDesktop = super.callPackage ./pkgs/VidyoDesktop { }; - }; -in - -import _pkgsPath { - overlays = [ - (import ./rust-overlay.nix) - overlay - ] ++ overlays; -} +]) self diff --git a/firefox-overlay.nix b/firefox-overlay.nix index f2074369ac5b..1e6a0676d142 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -103,13 +103,6 @@ in }; }; - nightly-2017-07-25-10-03-46 = firefoxVersion rec { timestamp = "2017-07-25-10-03-46"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; # good - nightly-2017-07-25-14-40-53 = firefoxVersion rec { timestamp = "2017-07-25-14-40-53"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; # bad - nightly-2017-07-26-10-02-41 = firefoxVersion rec { timestamp = "2017-07-26-10-02-41"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; # bad - nightly-2017-07-27-10-02-40 = firefoxVersion rec { timestamp = "2017-07-27-10-02-40"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; - nightly-2017-07-27-16-25-31 = firefoxVersion rec { timestamp = "2017-07-27-16-25-31"; name = "Nightly-${timestamp}"; version = "56.0a1"; release = false; }; - - firefox-nightly-bin = firefoxVersion { name = "Firefox Nightly"; version = firefox_versions.FIREFOX_NIGHTLY; @@ -131,6 +124,13 @@ in release = true; }; + ## Set of forzen packages. If you rely on these attributes, you should + ## consider updating nixpkgs-mozilla frequently, in order to follow the + ## updated versions. + reproducible = (super.reproducible or {}) // { + firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; + }; + # Build Firefox from sources, mostly used to produce an environment for # building Firefox. gecko = super.callPackage ./pkgs/gecko { diff --git a/lib-overlay.nix b/lib-overlay.nix new file mode 100644 index 000000000000..23d6b397db99 --- /dev/null +++ b/lib-overlay.nix @@ -0,0 +1,5 @@ +self: super: + +{ + lib = super.lib // (import ./pkgs/lib/default.nix { pkgs = self; }); +} diff --git a/pinned.nix b/pinned.nix new file mode 100644 index 000000000000..44fd78af400d --- /dev/null +++ b/pinned.nix @@ -0,0 +1,37 @@ +# This script extends nixpkgs with mozilla packages. +# +# First it imports the in the environment and depends on it +# providing fetchFromGitHub and lib.importJSON. +# +# After that it loads a pinned release of nixos-unstable and uses that as the +# base for the rest of packaging. One can pass it's own pkgsPath attribute if +# desired, probably in the context of hydra. + +{ pkgsPath ? null +, overlays ? [] +, system ? null +, geckoSrc ? null +, servoSrc ? null +}: + +# Pin a specific version of Nixpkgs. +let + _pkgs = import {}; + _pkgsPath = + if pkgsPath != null then pkgsPath + else _pkgs.fetchFromGitHub (_pkgs.lib.importJSON ./pkgs/nixpkgs.json); + nixpkgs = import _pkgsPath ({ + overlays = import ./default.nix ++ overlays; + } // (if system != null then { inherit system; } else {})); +in + nixpkgs // { + # Do not add a name attribute attribute in an overlay !!! As this will cause + # tons of recompilations. + name = "nixpkgs"; + updateScript = nixpkgs.lib.updateFromGitHub { + owner = "NixOS"; + repo = "nixpkgs-channels"; + branch = "nixos-unstable-small"; + path = "pkgs/nixpkgs.json"; + }; + } -- cgit 1.4.1 From 1cc83d1ebc7aff09e9f302d4eb5ba786f0bf5899 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:34:20 +0000 Subject: Rust: Add the compiler as part of the propagated build inputs. (Fix #22) --- rust-overlay.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rust-overlay.nix b/rust-overlay.nix index ddf38bc50ea4..bf55202ee452 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -234,6 +234,14 @@ let popd fi ''; + + # Add the compiler as part of the propagated build inputs in order + # to run: + # + # $ nix-shell -p rustChannels.stable.rust + # + # And get a fully working Rust compiler, with the stdenv linker. + propagatedBuildInputs = [ stdenv.cc ]; } ) { extensions = []; targets = []; targetExtensions = []; } ); -- cgit 1.4.1 From a92815b53576d5016a3f897a4b8646e9b712025a Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 13:37:23 +0000 Subject: Use the fetchurl trivial builder instead of the builtin. --- rust-overlay.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index bf55202ee452..bf8f6fc37aa6 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -86,7 +86,7 @@ let pkg = pkgs.${pkgname}; srcInfo = pkg.target.${target}; in - (fetchurl { url = srcInfo.url; sha256 = srcInfo.hash; }); + (super.fetchurl { url = srcInfo.url; sha256 = srcInfo.hash; }); checkMissingExtensions = pkgs: pkgname: stdenv: extensions: let -- cgit 1.4.1 From ca0031baaac0538b9089625c8fa0b790b4270d36 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 15 Aug 2017 22:18:47 +0000 Subject: TOML parser: Use builtins.split instead of match. --- lib/parseTOML.nix | 152 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 102 insertions(+), 50 deletions(-) diff --git a/lib/parseTOML.nix b/lib/parseTOML.nix index b8202fd47b5f..07a93696340c 100644 --- a/lib/parseTOML.nix +++ b/lib/parseTOML.nix @@ -1,78 +1,130 @@ with builtins; + +# Tokenizer. let layout_pat = "[ \n]+"; layout_pat_opt = "[ \n]*"; - token_pat = ''=|[[][[][a-zA-Z0-9_."*-]+[]][]]|[[][a-zA-Z0-9_."*-]+[]]|[a-zA-Z0-9_-]+|"[^"]*"''; - tokenizer_rec = len: prevTokens: patterns: str: + token_pat = ''=|[[][[][a-zA-Z0-9_."*-]+[]][]]|[[][a-zA-Z0-9_."*-]+[]]|[a-zA-Z0-9_-]+|"[^"]*"''; #" + + tokenizer_1_11 = str: let - pattern = head patterns; - layoutAndTokens = match pattern str; - matchLength = stringLength (head layoutAndTokens); - tokens = prevTokens ++ tail layoutAndTokens; + tokenizer_rec = len: prevTokens: patterns: str: + let + pattern = head patterns; + layoutAndTokens = match pattern str; + matchLength = stringLength (head layoutAndTokens); + tokens = prevTokens ++ tail layoutAndTokens; + in + if layoutAndTokens == null then + # if we cannot reduce the pattern, return the list of token + if tail patterns == [] then prevTokens + # otherwise, take the next pattern, which only captures half the token. + else tokenizer_rec len prevTokens (tail patterns) str + else tokenizer_rec len tokens patterns (substring matchLength len str); + + avgTokenSize = 100; + ceilLog2 = v: + let inner = n: i: if i < v then inner (n + 1) (i * 2) else n; in + inner 1 1; + + # The builtins.match function match the entire string, and generate a list of all captured + # elements. This is the most efficient way to make a tokenizer, if we can make a pattern which + # capture all token of the file. Unfortunately C++ std::regex does not support captures in + # repeated patterns. As a work-around, we generate patterns which are matching tokens in multiple + # of 2, such that we can avoid iterating too many times over the content. + generatePatterns = str: + let + depth = ceilLog2 (stringLength str / avgTokenSize); + inner = depth: + if depth == 0 then [ "(${token_pat})" ] + else + let next = inner (depth - 1); in + [ "${head next}${layout_pat}${head next}" ] ++ next; + in + map (pat: "(${layout_pat_opt}${pat}).*" ) (inner depth); + in - if layoutAndTokens == null then - # if we cannot reduce the pattern, return the list of token - if tail patterns == [] then prevTokens - # otherwise, take the next pattern, which only captures half the token. - else tokenizer_rec len prevTokens (tail patterns) str - else tokenizer_rec len tokens patterns (substring matchLength len str); - - avgTokenSize = 100; - ceilLog2 = v: - let inner = n: i: if i < v then inner (n + 1) (i * 2) else n; in - inner 1 1; - - # The builtins.match function match the entire string, and generate a list of all captured - # elements. This is the most efficient way to make a tokenizer, if we can make a pattern which - # capture all token of the file. Unfortunately C++ std::regex does not support captures in - # repeated patterns. As a work-around, we generate patterns which are matching tokens in multiple - # of 2, such that we can avoid iterating too many times over the content. - generatePatterns = str: + tokenizer_rec (stringLength str) [] (generatePatterns str) str; + + tokenizer_1_12 = str: let - depth = ceilLog2 (stringLength str / avgTokenSize); - inner = depth: - if depth == 0 then [ "(${token_pat})" ] - else - let next = inner (depth - 1); in - [ "${head next}${layout_pat}${head next}" ] ++ next; + # Nix 1.12 has the builtins.split function which allow to tokenize the + # file quickly. by iterating with a simple regexp. + layoutTokenList = split "(${token_pat})" str; + isLayout = s: match layout_pat_opt s != null; + filterLayout = list: + filter (s: + if isString s then + if isLayout s then false + else throw "Error: Unexpected token: '${s}'" + else true) list; + removeTokenWrapper = list: + map (x: assert tail x == []; head x) list; in - map (pat: "(${layout_pat_opt}${pat}).*" ) (inner depth); + removeTokenWrapper (filterLayout layoutTokenList); - tokenizer = str: tokenizer_rec (stringLength str) [] (generatePatterns str) str; + tokenizer = + if builtins ? split + then tokenizer_1_12 + else tokenizer_1_11; +in +# Parse entry headers +let unescapeString = str: # Let's ignore any escape character for the moment. - assert match ''"[^"]*"'' str != null; + assert match ''"[^"]*"'' str != null; #" substring 1 (stringLength str - 2) str; - - tokenToValue = token: - if token == "true" then true - else if token == "false" then false - else unescapeString token; - # Match the content of TOML format section names, and add the grouping such that: - # match header_pat "a.b.c" == [ "a" ".b" "b" ".c" "c" ] - # + # Match the content of TOML format section names. + ident_pat = ''[a-zA-Z0-9_-]+|"[^"]*"''; #" + + removeBraces = token: wrapLen: + substring wrapLen (stringLength token - 2 * wrapLen) token; + # Note, this implementation is limited to 11 identifiers. - ident_pat = ''[a-zA-Z0-9_-]+|"[^"]*"''; - header_pat = - foldl' (pat: n: "(${ident_pat})([.]${pat})?") - "(${ident_pat})" (genList (n: 0) 10); + matchPathFun_1_11 = token: + let + # match header_pat "a.b.c" == [ "a" ".b" "b" ".c" "c" ] + header_pat = + foldl' (pat: n: "(${ident_pat})([.]${pat})?") + "(${ident_pat})" (genList (n: 0) 10); + matchPath = match header_pat token; + filterDot = filter (s: substring 0 1 s != ".") matchPath; + in + filterDot; + + matchPathFun_1_12 = token: + map (e: head e) + (filter (s: isList s) + (split "(${ident_pat})" token)); + + matchPathFun = + if builtins ? split + then matchPathFun_1_12 + else matchPathFun_1_11; headerToPath = token: wrapLen: let - token' = substring wrapLen (stringLength token - 2 * wrapLen) token; - matchPath = match header_pat token'; - filterDot = filter (s: substring 0 1 s != ".") matchPath; + token' = removeBraces token wrapLen; + matchPath = matchPathFun token'; path = map (s: - if substring 0 1 s != ''"'' then s + if substring 0 1 s != ''"'' then s #" else unescapeString s - ) filterDot; + ) matchPath; in assert matchPath != null; # assert trace "Path: ${token'}; match as ${toString path}" true; path; +in + +# Reconstruct the equivalent attribute set. +let + tokenToValue = token: + if token == "true" then true + else if token == "false" then false + else unescapeString token; parserInitState = { idx = 0; -- cgit 1.4.1 From 301266a215c895566dd91b86578271449a75f57e Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 18 Aug 2017 21:39:13 +0000 Subject: Wrap Auto-updating expression under the 'latest' attribute. --- README.rst | 2 +- firefox-overlay.nix | 61 +++++++++++++++++++++++++++-------------------------- release.nix | 26 +++++++++++------------ rust-overlay.nix | 33 +++++++++++++++++------------ 4 files changed, 65 insertions(+), 57 deletions(-) diff --git a/README.rst b/README.rst index 235b9e38b7f4..0729742ccfbd 100644 --- a/README.rst +++ b/README.rst @@ -22,7 +22,7 @@ A nixpkgs overlay is provided to contains all of the latest rust releases. To use the rust overlay run the ``./rust-overlay-install.sh`` command. It will link the current ``./rust-overlay.nix`` into you ``~/.config/nixpkgs/overlays`` folders. -Once this is done, use ``nix-env -iA nixpkgs.rustChannels.nightly.rust`` for +Once this is done, use ``nix-env -iA nixpkgs.latest.rustChannels.nightly.rust`` for example. Replace the ``nixpkgs.`` prefix with ``nixos.`` on NixOS. TODO diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 1e6a0676d142..41bbe6268d50 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -103,38 +103,39 @@ in }; }; - firefox-nightly-bin = firefoxVersion { - name = "Firefox Nightly"; - version = firefox_versions.FIREFOX_NIGHTLY; - release = false; - }; - firefox-beta-bin = firefoxVersion { - name = "Firefox Beta"; - version = firefox_versions.LATEST_FIREFOX_DEVEL_VERSION; - release = true; - }; - firefox-release-bin = firefoxVersion { - name = "Firefox"; - version = firefox_versions.LATEST_FIREFOX_VERSION; - release = true; - }; - firefox-esr-bin = firefoxVersion { - name = "Firefox Esr"; - version = firefox_versions.FIREFOX_ESR; - release = true; + # Set of packages which are automagically updated. Do not rely on these for + # reproducible builds. + latest = (super.latest or {}) // { + firefox-nightly-bin = firefoxVersion { + name = "Firefox Nightly"; + version = firefox_versions.FIREFOX_NIGHTLY; + release = false; + }; + firefox-beta-bin = firefoxVersion { + name = "Firefox Beta"; + version = firefox_versions.LATEST_FIREFOX_DEVEL_VERSION; + release = true; + }; + firefox-bin = firefoxVersion { + name = "Firefox"; + version = firefox_versions.LATEST_FIREFOX_VERSION; + release = true; + }; + firefox-esr-bin = firefoxVersion { + name = "Firefox Esr"; + version = firefox_versions.FIREFOX_ESR; + release = true; + }; }; - ## Set of forzen packages. If you rely on these attributes, you should - ## consider updating nixpkgs-mozilla frequently, in order to follow the - ## updated versions. - reproducible = (super.reproducible or {}) // { - firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; + # Set of packages which used to build developer environment + devEnv = (super.shell or {}) // { + gecko = super.callPackage ./pkgs/gecko { + inherit (self.pythonPackages) setuptools; + inherit (self.latest.rustChannels.stable) rust; + }; }; - # Build Firefox from sources, mostly used to produce an environment for - # building Firefox. - gecko = super.callPackage ./pkgs/gecko { - inherit (self.pythonPackages) setuptools; - inherit (self.rustChannels.stable) rust; - }; + # Set of packages which are frozen at this given revision of nixpkgs-mozilla. + firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; } diff --git a/release.nix b/release.nix index 41960297faa9..bee728d3cd2b 100644 --- a/release.nix +++ b/release.nix @@ -21,8 +21,8 @@ let # Overide the previous derivation, with a different stdenv. - builder = name: compiler: system: - (import nixpkgsSrc { + builder = path: compiler: system: + lib.getAttrFromPath path (import nixpkgsSrc { inherit system; overlays = [ # Add all packages from nixpkgs-mozilla. @@ -34,19 +34,19 @@ let # Use the following overlay to override the requested package from # nixpkgs, with a custom stdenv taken from the compilers-overlay. - (self: super: if compiler == null then {} else { - "${name}" = super."${name}".override { + (self: super: + if compiler == null then {} + else lib.setAttrByPath path ((lib.getAttrFromPath path super).override { stdenv = self.customStdenvs."${compiler}"; - }; - }) + })) ]; - })."${name}"; + }); - build = name: { systems ? supportedSystems, compilers ? null }: + build = path: { systems ? supportedSystems, compilers ? null }: forEachSystem systems ( if compilers == null - then builder name null - else forEachCompiler compilers (builder name) + then builder path null + else forEachCompiler compilers (builder path) ); geckoCompilers = [ @@ -88,9 +88,9 @@ let # # Which will spawn a new shell where the closure of everything used to build # Gecko would be part of the fake-root. - gecko = build "gecko" { compilers = geckoCompilers; }; - servo = build "servo"; - VidyoDesktop = build "VidyoDesktop"; + gecko = build [ "devEnv" "gecko" ] { compilers = geckoCompilers; }; + servo = build [ "servo" ]; + VidyoDesktop = build [ "VidyoDesktop" ]; }; in jobs diff --git a/rust-overlay.nix b/rust-overlay.nix index bf8f6fc37aa6..9a5cc0ff275f 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -249,9 +249,9 @@ let fromManifest = manifest: { stdenv, fetchurl, patchelf }: fromManifestFile (builtins.fetchurl manifest) { inherit stdenv fetchurl patchelf; }; -in rec +in -{ +rec { lib = super.lib // { inherit fromTOML; rustLib = { @@ -264,20 +264,27 @@ in rec { inherit (self) stdenv fetchurl patchelf; } ; - rustChannels = { - nightly = rustChannelOf { channel = "nightly"; }; - beta = rustChannelOf { channel = "beta"; }; - stable = rustChannelOf { channel = "stable"; }; + # Set of packages which are automagically updated. Do not rely on these for + # reproducible builds. + latest = (super.latest or {}) // { + rustChannels = { + nightly = rustChannelOf { channel = "nightly"; }; + beta = rustChannelOf { channel = "beta"; }; + stable = rustChannelOf { channel = "stable"; }; + }; }; + # For backward compatibility + rustChannels = latest.rustChannels; + # For each channel: - # rustChannels.nightly.cargo - # rustChannels.nightly.rust # Aggregate all others. (recommended) - # rustChannels.nightly.rustc - # rustChannels.nightly.rust-analysis - # rustChannels.nightly.rust-docs - # rustChannels.nightly.rust-src - # rustChannels.nightly.rust-std + # latest.rustChannels.nightly.cargo + # latest.rustChannels.nightly.rust # Aggregate all others. (recommended) + # latest.rustChannels.nightly.rustc + # latest.rustChannels.nightly.rust-analysis + # latest.rustChannels.nightly.rust-docs + # latest.rustChannels.nightly.rust-src + # latest.rustChannels.nightly.rust-std # For a specific date: # rustChannelOf { date = "2017-06-06"; channel = "beta"; }.rust -- cgit 1.4.1 From e75423369396f7bbe436b3f075c2a93df60f71ba Mon Sep 17 00:00:00 2001 From: Tyler Slabinski Date: Thu, 24 Aug 2017 22:08:49 -0400 Subject: Use gpg and gpgv commands --- firefox-overlay.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 41bbe6268d50..60d66d84c121 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -61,8 +61,8 @@ let } '' HOME=`mktemp -d` set -eux - cat ${./firefox.key} | gpg2 --import - gpgv2 --keyring=$HOME/.gnupg/pubring.kbx $CHKSUM_ASC $CHKSUM_FILE + cat ${./firefox.key} | gpg --import + gpgv --keyring=$HOME/.gnupg/pubring.kbx $CHKSUM_ASC $CHKSUM_FILE mkdir $out ''; -- cgit 1.4.1 From a8634a877082787fef4cb6a878e194489579e1da Mon Sep 17 00:00:00 2001 From: zimbatm Date: Wed, 23 Aug 2017 16:02:08 +0100 Subject: servo: remove nil reference self.rustUnstable is undefined --- servo-overlay.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/servo-overlay.nix b/servo-overlay.nix index 8084b52e9b2c..e7d843fd07b8 100644 --- a/servo-overlay.nix +++ b/servo-overlay.nix @@ -1,6 +1,5 @@ self: super: { - rustPlatform = self.rustUnstable; servo = super.callPackage ./pkgs/servo { }; } -- cgit 1.4.1 From fb561f33178a04c8a5d576ad76e06b8ad449a1df Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Tue, 29 Aug 2017 14:15:37 +0200 Subject: Fixes error with wrong import path for firefox-bin --- pkgs/firefox-nightly-bin/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/firefox-nightly-bin/default.nix b/pkgs/firefox-nightly-bin/default.nix index fb6264b7c2f9..6ec3b0a2b66e 100644 --- a/pkgs/firefox-nightly-bin/default.nix +++ b/pkgs/firefox-nightly-bin/default.nix @@ -3,7 +3,7 @@ let - unwrapped = pkgs.callPackage "${pkgs.path}/pkgs/applications/networking/browsers/firefox-bin" { + unwrapped = pkgs.firefox-bin-unwrapped.override { inherit (pkgs) stdenv; channel = "nightly"; generated = import (./. + "/sources.nix"); -- cgit 1.4.1 From 055b1075684f0634d4b4937e5c2950449f40fbd9 Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Tue, 29 Aug 2017 15:19:38 +0200 Subject: Updates pinned nightly to last release (#63) --- pkgs/firefox-nightly-bin/sources.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix index b09f75d3f968..9366623eb22c 100644 --- a/pkgs/firefox-nightly-bin/sources.nix +++ b/pkgs/firefox-nightly-bin/sources.nix @@ -1,10 +1,10 @@ { - version = "56.0a1" + "-" + "20170717100212"; + version = "57.0a1" + "-" + "20170829"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.tar.bz2"; + { url = "https://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central/firefox-57.0a1.en-US.linux-x86_64.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "389ada65229fa6225a918041f77eed26cff321d649b8e9206835364e967fe3312dba9f7de9fbea52daf934265b804de447dddee60932d5019f8361884c9f3bde"; + sha512 = "1ggz8rl7n6j6qx7sira5dmqfy769swxh0dpi4mn6fdc7ppbrbyz58g4a47f6g1ng04y646h75yxdhqjp55nxqcp7v861b004bzf9b88"; } ]; } -- cgit 1.4.1 From 7e54fb37cd177e6d83e4e2b7d3e3b03bd6de0e0f Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 30 Aug 2017 12:48:27 +0000 Subject: Document how to update firefox_version.json file. --- firefox-overlay.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 60d66d84c121..a0f10e577985 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -6,6 +6,12 @@ self: super: # TODO: Check the signature of the checksum file before using the source. let + # This file is currently maintained manually, if this Nix expression attempt + # to download the wrong version, this is likely to be the problem. + # + # Open a pull request against https://github.com/mozilla-releng/ship-it/ to + # update the version, as done in + # https://github.com/mozilla-releng/ship-it/pull/182 firefox_versions = with builtins; fromJSON (readFile (fetchurl https://product-details.mozilla.org/1.0/firefox_versions.json)); -- cgit 1.4.1 From 6179dd876578ca2931f864627598ede16ba6cdef Mon Sep 17 00:00:00 2001 From: Vlad Myhajličenko Date: Mon, 2 Oct 2017 00:57:51 +0300 Subject: Update firefox-overlay.nix (#69) fix regex and url --- firefox-overlay.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index a0f10e577985..3fdfba0a9178 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -31,13 +31,13 @@ let # For versions such as Beta & Release: # http://download.cdn.mozilla.net/pub/firefox/releases/55.0b3/SHA256SUMS let - dir = "http://download.cdn.mozilla.net/pub/firefox/releases/"; + dir = "http://download.cdn.mozilla.net/pub/firefox/releases/${version}"; file = "${system}/en-US/firefox-${version}.tar.bz2"; in rec { - chksum = "${dir}/${version}/SHA512SUMS"; + chksum = "${dir}/SHA512SUMS"; chksumSig = "${chksum}.asc"; url = "${dir}/${file}"; - sha512 = head (match ".*[\n]([0-9a-f]*) ${file}.*" (readFile (fetchurl chksum))); + sha512 = head (match ".*[\n]([0-9a-f]*) ${file}.*" (readFile (fetchurl chksum))); } else # For Nightly versions: -- cgit 1.4.1 From 661f3f4d8183f493252faaa4e7bf192abcf5d927 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 18 Aug 2017 21:39:57 +0000 Subject: Remove out-dated todo, about checksum verification of firefox versions. --- firefox-overlay.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 3fdfba0a9178..399faad96e3a 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -4,7 +4,6 @@ self: super: # firefo.key file is downloaded from: # https://gpg.mozilla.org/pks/lookup?search=Mozilla+Software+Releases+%3Crelease%40mozilla.com%3E&op=get -# TODO: Check the signature of the checksum file before using the source. let # This file is currently maintained manually, if this Nix expression attempt # to download the wrong version, this is likely to be the problem. @@ -72,14 +71,15 @@ let mkdir $out ''; - # From the version info, create a fetchurl derivation which will get the # sources from the remote. fetchVersion = info: super.fetchurl { inherit (info) url sha512; - # add as dependency to force the fetch url function to resolve the - # authenticity of the check-sum file before using its sha512 values. + + # This is a fixed derivation, but we still add as a dependency the + # verification of the checksum. Thus, this fetch script can only be + # executed once the verifyAuthenticity script finished successfully. postFetch = '' : # Authenticity Check (${verifyAuthenticity info}) ''; -- cgit 1.4.1 From 1ce9311b2154ce3f3dd328b106cea3299250c6ba Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Wed, 13 Dec 2017 00:09:28 +0100 Subject: adding latest.firefox-nightly-bin in release.nix --- release.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/release.nix b/release.nix index bee728d3cd2b..77adf5f8707d 100644 --- a/release.nix +++ b/release.nix @@ -91,6 +91,9 @@ let gecko = build [ "devEnv" "gecko" ] { compilers = geckoCompilers; }; servo = build [ "servo" ]; VidyoDesktop = build [ "VidyoDesktop" ]; + latest = { + "firefox-nightly-bin" = build [ "latest" "firefox-nightly-bin" ]; + }; }; in jobs -- cgit 1.4.1 From 212675ab6417bdaf518ac5fbbe6f5b232aec234e Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Mon, 1 Jan 2018 12:48:00 -0500 Subject: README: usage example (#75) Fixes: #73 --- README.rst | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.rst b/README.rst index 0729742ccfbd..233585a9bc57 100644 --- a/README.rst +++ b/README.rst @@ -25,6 +25,25 @@ link the current ``./rust-overlay.nix`` into you ``~/.config/nixpkgs/overlays`` Once this is done, use ``nix-env -iA nixpkgs.latest.rustChannels.nightly.rust`` for example. Replace the ``nixpkgs.`` prefix with ``nixos.`` on NixOS. +Using in nix expressions +------------------------ + +Example of using in ```shell.nix```: + +.. code:: nix + + let + moz_overlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz); + nixpkgs = import { overlays = [ moz_overlay ]; }; + in + with nixpkgs; + stdenv.mkDerivation { + name = "moz_overlay_shell"; + buildInputs = [ + nixpkgs.latest.rustChannels.nightly.rust + ]; + } + TODO ---- -- cgit 1.4.1 From 94d6a74364e7cd03ea5f5b3ddbf1ada23a30f07f Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 24 Jan 2018 17:47:28 +0000 Subject: Gecko: Add missing build dependencies. --- pkgs/gecko/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index dc8a64d4c95b..6d9edc26da38 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -1,8 +1,9 @@ { geckoSrc ? null, lib , stdenv, fetchFromGitHub, pythonFull, which, autoconf213 -, perl, unzip, zip, gnumake, yasm, pkgconfig, xlibs, gnome2, pango +, perl, unzip, zip, gnumake, yasm, pkgconfig, xlibs, gnome2, pango, freetype, fontconfig, cairo , dbus, dbus_glib, alsaLib, libpulseaudio, gstreamer, gst_plugins_base -, gtk3, glib, gobjectIntrospection, git, mercurial, openssl, cmake, procps +, gtk3, glib, gobjectIntrospection, gdk_pixbuf, atk, gtk2 +, git, mercurial, openssl, cmake, procps , libnotify , valgrind, gdb, rr , setuptools @@ -46,14 +47,15 @@ let gnome2.libgnome gnome2.libgnomecanvas gnome2.libgnomeui gnome2.libIDL - pango + pango freetype fontconfig cairo dbus dbus_glib alsaLib libpulseaudio gstreamer gst_plugins_base - gtk3 glib gobjectIntrospection + gtk3 glib gobjectIntrospection gdk_pixbuf atk + gtk2 gnome2.GConf rust -- cgit 1.4.1 From ec1f3f5fa12526126e1db6027af8787edcad1bd9 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 24 Jan 2018 17:52:27 +0000 Subject: Gecko: Fix bindgen clang usage. --- pkgs/gecko/default.nix | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 6d9edc26da38..9f608d77d953 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -9,7 +9,7 @@ , setuptools , rust # rust & cargo bundled. (otheriwse use pkgs.rust.{rustc,cargo}) , buildFHSUserEnv # Build a FHS environment with all Gecko dependencies. -, clang +, llvmPackages , ccache }: @@ -17,6 +17,8 @@ let inherit (lib) updateFromGitHub importJSON optionals inNixShell; + gcc = if stdenv.cc.isGNU then stdenv.cc.cc else stdenv.cc.cc.gcc; + # Gecko sources are huge, we do not want to import them in the nix-store when # we use this expression for making a build environment. src = @@ -60,7 +62,11 @@ let rust # For building bindgen - clang + # Building bindgen is now done with the extra options added by genMozConfig + # shellHook, do not include clang directly in order to avoid messing up with + # the choices of the compilers. + + # clang # mach mochitest procps @@ -78,6 +84,20 @@ let valgrind gdb rr ccache ]; + genMozConfig = '' + cxxLib=$( echo -n ${gcc}/include/c++/* ) + archLib=$cxxLib/$( ${gcc}/bin/gcc -dumpmachine ) + + echo > $MOZCONFIG_TEMPLATE " + mk_add_options AUTOCONF=${autoconf213}/bin/autoconf + ac_add_options --with-libclang-path=${llvmPackages.clang.cc}/lib + ac_add_options --with-clang-path=${llvmPackages.clang}/bin/clang + export BINDGEN_CFLAGS=\"-cxx-isystem $cxxLib -isystem $archLib\" + export CC="${stdenv.cc}/bin/cc" + export CXX="${stdenv.cc}/bin/c++" + " + ''; + shellHook = '' export MOZBUILD_STATE_PATH=$PWD/.mozbuild export CC="${stdenv.cc}/bin/cc"; @@ -113,19 +133,21 @@ stdenv.mkDerivation { configurePhase = '' export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild - export MOZ_CONFIG=$(pwd)/.mozconfig + export MOZCONFIG=$(pwd)/.mozconfig export builddir=$(pwd)/builddir + export MOZCONFIG_TEMPLATE=$(pwd)/.mozconfig.template + ${genMozConfig} mkdir -p $MOZBUILD_STATE_PATH $builddir - echo > $MOZ_CONFIG " - . $src/build/mozconfig.common + echo > $MOZCONFIG " + # . $src/build/mozconfig.common + . $MOZCONFIG_TEMPLATE + + ac_add_options --enable-application=browser mk_add_options MOZ_OBJDIR=$builddir - mk_add_options AUTOCONF=${autoconf213}/bin/autoconf ac_add_options --prefix=$out - ac_add_options --enable-application=browser ac_add_options --enable-official-branding - export AUTOCONF=${autoconf213}/bin/autoconf " ''; -- cgit 1.4.1 From 34634d738db0d0aba8f135cb88de1a20b1bb6ad0 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 24 Jan 2018 17:54:27 +0000 Subject: Gecko: Export bindgen/clang info to a generate a .mozconfig from a nix-shell. --- pkgs/gecko/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 9f608d77d953..59b57eba2d14 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -99,9 +99,11 @@ let ''; shellHook = '' + export MOZCONFIG_TEMPLATE=$PWD/.mozconfig.template export MOZBUILD_STATE_PATH=$PWD/.mozbuild export CC="${stdenv.cc}/bin/cc"; export CXX="${stdenv.cc}/bin/c++"; + ${genMozConfig} ''; # propagatedBuildInput should already have applied the "lib.chooseDevOutputs" -- cgit 1.4.1 From b49a76f5cf14e00d257c503d6affc70c64002e74 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 24 Jan 2018 17:56:42 +0000 Subject: Gecko: Add a way to not repeat everything on the command line with the NIX_SHELL_HOOK env var. --- pkgs/gecko/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 59b57eba2d14..4ab490d06d96 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -104,6 +104,7 @@ let export CC="${stdenv.cc}/bin/cc"; export CXX="${stdenv.cc}/bin/c++"; ${genMozConfig} + ${builtins.getEnv "NIX_SHELL_HOOK"} ''; # propagatedBuildInput should already have applied the "lib.chooseDevOutputs" -- cgit 1.4.1 From 0f470b0328782a77ac92a53935bf87dff8208200 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 24 Jan 2018 17:57:27 +0000 Subject: Gecko: Freeze to rust 1.22 to avoid std::ascii::AsciiExt errors. --- firefox-overlay.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 399faad96e3a..bb8831b08abc 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -138,7 +138,11 @@ in devEnv = (super.shell or {}) // { gecko = super.callPackage ./pkgs/gecko { inherit (self.pythonPackages) setuptools; - inherit (self.latest.rustChannels.stable) rust; + + # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so + # use the latest Rust version before 1.23. + rust = (super.rustChannelOf { channel = "stable"; date = "2017-11-22"; }).rust; + # inherit (self.latest.rustChannels.stable) rust; }; }; -- cgit 1.4.1 From 64712e1ead2f4b18efd1305250ed28ea66ad51d5 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 25 Jan 2018 19:50:42 +0000 Subject: Use EOF instead of multiline quotes to avoid mozbuild issues. --- pkgs/gecko/default.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 4ab490d06d96..a1ce9148b126 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -88,18 +88,18 @@ let cxxLib=$( echo -n ${gcc}/include/c++/* ) archLib=$cxxLib/$( ${gcc}/bin/gcc -dumpmachine ) - echo > $MOZCONFIG_TEMPLATE " + cat - > $MOZCONFIG < $MOZCONFIG " + echo >> $MOZCONFIG " # . $src/build/mozconfig.common - . $MOZCONFIG_TEMPLATE ac_add_options --enable-application=browser mk_add_options MOZ_OBJDIR=$builddir -- cgit 1.4.1 From 42a0926f2f36cac2da53782259948ba071b6c6c5 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 25 Jan 2018 19:51:28 +0000 Subject: Add README documentation on how to setup a Gecko dev-env. --- README.rst | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/README.rst b/README.rst index 233585a9bc57..b07510d7b51f 100644 --- a/README.rst +++ b/README.rst @@ -44,6 +44,74 @@ Example of using in ```shell.nix```: ]; } +Gecko Development Environment +----------------------------- + +The ``firefox-overlay.nix`` provides a development environment to build Firefox +from its sources, also known as Gecko. + +To build Gecko from its sources, it is best to have a local checkout of Gecko, +and to build it with a ``nix-shell``. You can checkout Gecko, either using +mercurial, or git. + +Once you have finished the checkout gecko, you should enter the ``nix-shell`` +using the ``gecko..`` attribute of the ``release.nix`` file provided +in this repository. + +The ```` attribute is either ``x86_64-linux`` or ``i686-linux``. The first +one would create a native toolchain for compiling on x64, while the second one +would give a native toolchain for compiling on x86. Note that due to the size of +the compilation units on x86, the compilation might not be able to complete, but +some sub part of Gecko, such as SpiderMonkey would compile fine. + +The ```` attribute is either ``gcc`` or ``clang``, or any specific version +of the compiler available in the ``compiler-overlay.nix`` file which is repeated +in ``release.nix``. This compiler would only be used for compiling Gecko, and +the rest of the toolchain is compiled against the default ``stdenv`` of the +architecture. + +When first enterring the ``nix-shell``, the toolchain will pull and build all +the dependencies necessary to build Gecko, this includes might take some time. +This work will not be necessary the second time, unless you use a different +toolchain or architecture. + +.. code:: sh + + ~/$ cd mozilla-central + ~/mozilla-central$ nix-shell ../nixpkgs-mozilla/release.nix -A gecko.x86_64-linux.gcc --pure + ... pull the rust compiler + ... compile the toolchain + [~/mozilla-central] python ./mach build + ... build firefox desktop + [~/mozilla-central] python ./mach run + ... run firefox + +When enterring the ``nix-shell``, the ``MOZCONFIG`` environment variable is set +to a local file, named ``.mozconfig.nix-shell``, created each time you enter the +``nix-shell``. You can create your own ``.mozconfig`` file which extends the +default one, with your own options. + +.. code:: sh + + ~/mozilla-central$ nix-shell ../nixpkgs-mozilla/release.nix -A gecko.x86_64-linux.gcc --pure + [~/mozilla-central] cat .mozconfig + # Import current nix-shell config. + . .mozconfig.nix-shell + + ac_add_options --enable-js-shell + ac_add_options --disable-tests + [~/mozilla-central] export MOZCONFIG=$(pwd)/.mozconfig + [~/mozilla-central] python ./mach build + +To avoid repeating your-self, you can also rely on the ``NIX_SHELL_HOOK`` +environment variable, to reset the ``MOZCONFIG`` environment variable for you. + +.. code:: sh + + ~/mozilla-central$ export NIX_SHELL_HOOK="export MOZCONFIG=$(pwd)/.mozconfig;" + ~/mozilla-central$ nix-shell ../nixpkgs-mozilla/release.nix -A gecko.x86_64-linux.gcc --pure + [~/mozilla-central] python ./mach build + TODO ---- -- cgit 1.4.1 From 2945b0b6b2fd19e7d23bac695afd65e320efcebe Mon Sep 17 00:00:00 2001 From: Peter Kolloch Date: Tue, 7 Nov 2017 10:33:58 +0100 Subject: Add a rust-src-overlay.nix which adds rust-src as an extension to all channels. --- rust-src-overlay.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 rust-src-overlay.nix diff --git a/rust-src-overlay.nix b/rust-src-overlay.nix new file mode 100644 index 000000000000..05cb6130ec84 --- /dev/null +++ b/rust-src-overlay.nix @@ -0,0 +1,18 @@ +# Overlay that builds on top of rust-overlay.nix. +# Adds rust-src component to all channels which is helpful for racer, intellij, ... + +self: super: + +let mapAttrs = super.stdenv.lib.mapAttrs; + flip = super.stdenv.lib.flip; +in { + # install stable rust with rust-src: + # "nix-env -i -A nixos.latest.rustChannels.stable.rust" + + latest.rustChannels = + flip mapAttrs super.latest.rustChannels (name: value: value // { + rust = value.rust.override { + extensions = ["rust-src"]; + }; + }); +} -- cgit 1.4.1 From 2bfb768c35339252831a2f6d2afc4145a78cb4da Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Mon, 19 Feb 2018 19:20:20 +0000 Subject: Use latest version of rustc for building Firefox. --- firefox-overlay.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index bb8831b08abc..208f13523336 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -141,8 +141,8 @@ in # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so # use the latest Rust version before 1.23. - rust = (super.rustChannelOf { channel = "stable"; date = "2017-11-22"; }).rust; - # inherit (self.latest.rustChannels.stable) rust; + # rust = (super.rustChannelOf { channel = "stable"; date = "2017-11-22"; }).rust; + inherit (self.latest.rustChannels.stable) rust; }; }; -- cgit 1.4.1 From edfec0be8ca1f555914e6bc39931ba7ce6b33dbd Mon Sep 17 00:00:00 2001 From: Rail Aliiev Date: Wed, 4 Apr 2018 07:09:56 -0400 Subject: Update Vidyo Version --- pkgs/VidyoDesktop/default.nix | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 96e5efdc5090..94a7c1385b43 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -4,19 +4,22 @@ }: let + vidyoVersion = "3.6.3"; + vidyoBuild = "017"; + vidyoVersionUnderscore = builtins.replaceStrings ["."] ["_"] vidyoVersion; VidyoDesktopDeb = stdenv.mkDerivation { - name = "VidyoDesktopDeb-123"; + name = "VidyoDesktopDeb-${vidyoVersion}"; builder = ./builder.sh; inherit dpkg; src = fetchurl { - url = "https://v.mozilla.com/upload/VidyoDesktopInstaller-ubuntu64-TAG_VD_3_3_0_027.deb"; - sha256 = "045f9z421qpcm45bmh98f3h7bd46rdjvcbdpv4rlw9ribncv66dc"; + url = "https://v.mozilla.com/upload/VidyoDesktopInstaller-ubuntu64-TAG_VD_${vidyoVersionUnderscore}_${vidyoBuild}.deb"; + sha256 = "01spq6r49myv82fdimvq3ykwb1lc5bymylzcydfdp9xz57f5a94x"; }; buildInputs = [ makeWrapper ]; }; in buildFHSUserEnv { - name = "VidyoDesktop-123"; + name = "VidyoDesktop"; targetPkgs = pkgs: [ VidyoDesktopDeb ]; multiPkgs = pkgs: [ patchelf dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins -- cgit 1.4.1 From 91fb6e435574bbef743891a975d96cb843f8124f Mon Sep 17 00:00:00 2001 From: Rail Aliiev Date: Wed, 4 Apr 2018 08:08:41 -0400 Subject: Add libpulseaudio --- pkgs/VidyoDesktop/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 94a7c1385b43..50b95909980e 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib, alsaUtils, alsaOss, alsaTools, alsaPlugins, libidn, utillinux, mesa_glu, qt4, - zlib, patchelf, xorg + zlib, patchelf, xorg, libpulseaudio }: let @@ -25,6 +25,7 @@ in buildFHSUserEnv { patchelf dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins libidn utillinux mesa_glu qt4 zlib xorg.libXext xorg.libXv xorg.libX11 xorg.libXfixes xorg.libXrandr xorg.libXScrnSaver + libpulseaudio ]; extraBuildCommands = '' ln -s ${VidyoDesktopDeb}/opt $out/opt -- cgit 1.4.1 From dc874a9b62d6265c63c285083de3ae38609f04d1 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 4 Apr 2018 13:24:09 +0000 Subject: Add support for building rr natively on i686-linux. --- default.nix | 1 + rr-overlay.nix | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 rr-overlay.nix diff --git a/default.nix b/default.nix index 1e159cf6c790..1580ca0312be 100644 --- a/default.nix +++ b/default.nix @@ -8,6 +8,7 @@ with super.lib; (import ./lib-overlay.nix) (import ./rust-overlay.nix) + (import ./rr-overlay.nix) (import ./firefox-overlay.nix) (import ./vidyo-overlay.nix) (import ./servo-overlay.nix) diff --git a/rr-overlay.nix b/rr-overlay.nix new file mode 100644 index 000000000000..30405a828345 --- /dev/null +++ b/rr-overlay.nix @@ -0,0 +1,14 @@ +self: super: + +{ + # Add i686-linux platform as a valid target. + rr = super.rr.override { + stdenv = self.stdenv // { + mkDerivation = args: self.stdenv.mkDerivation (args // { + meta = args.meta // { + platforms = self.stdenv.lib.platforms.linux; + }; + }); + }; + }; +} -- cgit 1.4.1 From 5532292cedbe384d7b110741f59942a2bfe3ac1e Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Wed, 4 Apr 2018 13:35:11 +0000 Subject: Follow libclang multiple-output changes. --- pkgs/gecko/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index a1ce9148b126..ed6fcb58cce0 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -90,7 +90,7 @@ let cat - > $MOZCONFIG < Date: Fri, 2 Feb 2018 05:59:38 -0600 Subject: Use xz archives now that they're available. Fixes #77. --- rust-overlay.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 9a5cc0ff275f..39f7a851f188 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -86,7 +86,7 @@ let pkg = pkgs.${pkgname}; srcInfo = pkg.target.${target}; in - (super.fetchurl { url = srcInfo.url; sha256 = srcInfo.hash; }); + (super.fetchurl { url = srcInfo.xz_url; sha256 = srcInfo.xz_hash; }); checkMissingExtensions = pkgs: pkgname: stdenv: extensions: let @@ -127,6 +127,8 @@ let # available = true; # hash = "abce..."; # sha256 # url = "https://static.rust-lang.org/dist/....tar.gz"; + # xz_hash = "abce..."; # sha256 + # xz_url = "https://static.rust-lang.org/dist/....tar.xz"; # }; # } # -- cgit 1.4.1 From a34ede5e90ec484e606480022e8ec1f6cddc8c2c Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 20 Apr 2018 12:14:50 +0000 Subject: devEnv.gecko: Use the latest python3Full version to satisfy mach. --- firefox-overlay.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 208f13523336..11454f9482fa 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -137,7 +137,8 @@ in # Set of packages which used to build developer environment devEnv = (super.shell or {}) // { gecko = super.callPackage ./pkgs/gecko { - inherit (self.pythonPackages) setuptools; + inherit (self.python3Packages) setuptools; + pythonFull = self.python3Full; # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so # use the latest Rust version before 1.23. -- cgit 1.4.1 From d7ba4e48037c0f944d01d7902fcdc8fa0766df24 Mon Sep 17 00:00:00 2001 From: Benjamin Hipple Date: Thu, 26 Apr 2018 23:20:13 -0400 Subject: Fix a few minor typos in the readme --- README.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index b07510d7b51f..fc90fbde5453 100644 --- a/README.rst +++ b/README.rst @@ -20,7 +20,7 @@ Rust overlay A nixpkgs overlay is provided to contains all of the latest rust releases. To use the rust overlay run the ``./rust-overlay-install.sh`` command. It will -link the current ``./rust-overlay.nix`` into you ``~/.config/nixpkgs/overlays`` folders. +link the current ``./rust-overlay.nix`` into your ``~/.config/nixpkgs/overlays`` folder. Once this is done, use ``nix-env -iA nixpkgs.latest.rustChannels.nightly.rust`` for example. Replace the ``nixpkgs.`` prefix with ``nixos.`` on NixOS. @@ -115,12 +115,12 @@ environment variable, to reset the ``MOZCONFIG`` environment variable for you. TODO ---- -- setup hydra and have to have binary channels +- setup hydra to have binary channels - make sure pinned revisions get updated automatically (if build passes we should update revisions in default.nix) -- pin to specific (working) nixpkgs revision (as we do for other sources +- pin to specific (working) nixpkgs revision (as we do for other sources) - servo can currently only be used with nix-shell. its build system tries to dowload quite few things (it is doing ``pip install`` and ``cargo install``). -- cgit 1.4.1 From 5cf66535b028e7f59d39405ef8c0d3fd61efe428 Mon Sep 17 00:00:00 2001 From: Albert Safin Date: Sat, 26 May 2018 01:21:39 +0700 Subject: firefox-overlay: workaround buggy builtins.match (#90) --- firefox-overlay.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 11454f9482fa..cfa111a4602e 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -23,6 +23,20 @@ let monthOf = with super.lib; yyyymmddhhmmss: head (tail (splitString "-" yyyymmddhhmmss)); + # Given SHA512SUMS file contents and file name, extract matching sha512sum. + extractSha512Sum = sha512sums: file: + with builtins; + # Nix 1.x do not have `builtins.split`. + # Nix 2.0 have an bug in `builtins.match` (see https://github.com/NixOS/nix/issues/2147). + # So I made separate logic for Nix 1.x and Nix 2.0. + if builtins ? split then + substring 0 128 (head + (super.lib.filter + (s: isString s && substring 128 (stringLength s) s == " ${file}") + (split "\n" sha512sums))) + else + head (match ".*[\n]([0-9a-f]*) ${file}.*" sha512sums); + # The timestamp argument is a yyyy-mm-dd-hh-mm-ss date, which corresponds to # one specific version. This is used mostly for bisecting. versionInfo = { name, version, release, system ? arch, timestamp ? null }: with builtins; @@ -36,7 +50,7 @@ let chksum = "${dir}/SHA512SUMS"; chksumSig = "${chksum}.asc"; url = "${dir}/${file}"; - sha512 = head (match ".*[\n]([0-9a-f]*) ${file}.*" (readFile (fetchurl chksum))); + sha512 = extractSha512Sum (readFile (fetchurl chksum)) file; } else # For Nightly versions: -- cgit 1.4.1 From 11cf06f0550a022d8bc4850768edecc3beef9f40 Mon Sep 17 00:00:00 2001 From: Ben Burdette Date: Sat, 26 May 2018 10:35:10 -0600 Subject: example of retrieving a specific nightly version --- README.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.rst b/README.rst index fc90fbde5453..e98db9ba0e3b 100644 --- a/README.rst +++ b/README.rst @@ -44,6 +44,22 @@ Example of using in ```shell.nix```: ]; } +Or to retrieve a specific nightly version: + +.. code:: nix + + let + moz_overlay = import (builtins.fetchTarball https://github.com/mozilla/nixpkgs-mozilla/archive/master.tar.gz); + nixpkgs = import { overlays = [ moz_overlay ]; }; + in + with nixpkgs; + stdenv.mkDerivation { + name = "moz_overlay_shell"; + buildInputs = [ + (nixpkgs.rustChannelOf { date = "2018-04-11"; channel = "nightly"; }).rust + ]; + } + Gecko Development Environment ----------------------------- -- cgit 1.4.1 From 2ff87ba7e9c2cea747a88545dfe13702e7386628 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Tue, 26 Jun 2018 17:18:27 -0400 Subject: VidyoDesktop requires libGL on unstable --- pkgs/VidyoDesktop/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 50b95909980e..171756d0b33a 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib, - alsaUtils, alsaOss, alsaTools, alsaPlugins, libidn, utillinux, mesa_glu, qt4, + alsaUtils, alsaOss, alsaTools, alsaPlugins, libidn, libGL, utillinux, mesa_glu, qt4, zlib, patchelf, xorg, libpulseaudio }: @@ -23,7 +23,7 @@ in buildFHSUserEnv { targetPkgs = pkgs: [ VidyoDesktopDeb ]; multiPkgs = pkgs: [ patchelf dpkg alsaLib alsaUtils alsaOss alsaTools alsaPlugins - libidn utillinux mesa_glu qt4 zlib xorg.libXext xorg.libXv xorg.libX11 + libidn libGL utillinux mesa_glu qt4 zlib xorg.libXext xorg.libXv xorg.libX11 xorg.libXfixes xorg.libXrandr xorg.libXScrnSaver libpulseaudio ]; -- cgit 1.4.1 From b085032f7eed9753895ce63c18d98d6314796a4d Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Fri, 30 Mar 2018 08:46:05 +0000 Subject: Add support for specifying the manifest from the rust-toolchain file content. --- rust-overlay.nix | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 39f7a851f188..6431560d6d78 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -5,6 +5,13 @@ self: super: let fromTOML = (import ./lib/parseTOML.nix).fromTOML; + parseRustToolchain = file: with builtins; + if file == null then + {} + else + let res = match "([a-z]*)-([0-9-]*).*" (readFile file); in + { channel = head res; date = head (tail res); }; + # See https://github.com/rust-lang-nursery/rustup.rs/blob/master/src/rustup-dist/src/dist.rs defaultDistRoot = "https://static.rust-lang.org"; manifest_v1_url = { @@ -12,8 +19,11 @@ let date ? null, staging ? false, # A channel can be "nightly", "beta", "stable", "\d{1}.\d{1}.\d{1}", or "\d{1}.\d{2\d{1}". - channel ? "nightly" + channel ? "nightly", + rustToolchain ? null }: + let args = { inherit channel date; } // parseRustToolchain rustToolchain; in + let inherit (args) date channel; in if date == null && staging == false then "${dist_root}/channel-rust-${channel}" else if date != null && staging == false -- cgit 1.4.1 From 3fed4db9228d81fe8715a3c26b91f6322d315d99 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 29 May 2018 10:13:19 +0000 Subject: Add gcc 5 and gcc 6 to the list of compilers. --- compilers-overlay.nix | 2 ++ release.nix | 2 ++ 2 files changed, 4 insertions(+) diff --git a/compilers-overlay.nix b/compilers-overlay.nix index a9b46822715c..47fdebb00ce1 100644 --- a/compilers-overlay.nix +++ b/compilers-overlay.nix @@ -76,6 +76,8 @@ let clang37 = llvmPackages_37; clang38 = llvmPackages_38; # not working yet. gcc = gcc; + gcc6 = gcc6; + gcc5 = gcc5; gcc49 = gcc49; gcc48 = gcc48; gcc474 = chgCompilerSource gcc473 "gcc-4.7.4" (fetchurl { diff --git a/release.nix b/release.nix index 77adf5f8707d..5d417562de29 100644 --- a/release.nix +++ b/release.nix @@ -55,6 +55,8 @@ let "clang37" "clang38" "gcc" + "gcc6" + "gcc5" "gcc49" "gcc48" #"gcc474" -- cgit 1.4.1 From c4477df70e72cf4454aff317e863bacad2bd0546 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 29 May 2018 10:13:49 +0000 Subject: Downgrade to Python 3.5 (Bug 1465035) --- firefox-overlay.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index cfa111a4602e..abc9cb87be11 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -151,8 +151,8 @@ in # Set of packages which used to build developer environment devEnv = (super.shell or {}) // { gecko = super.callPackage ./pkgs/gecko { - inherit (self.python3Packages) setuptools; - pythonFull = self.python3Full; + inherit (self.python35Packages) setuptools; + pythonFull = self.python35Full; # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so # use the latest Rust version before 1.23. -- cgit 1.4.1 From 15ec9ea73c8ab82bb663220a050e924d679c45bb Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 28 Jun 2018 15:14:03 +0000 Subject: Add X missing dependencies. --- pkgs/gecko/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index ed6fcb58cce0..d0ba4206fff7 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -11,6 +11,8 @@ , buildFHSUserEnv # Build a FHS environment with all Gecko dependencies. , llvmPackages , ccache + +, zlib, xorg }: let @@ -112,14 +114,15 @@ let pullAllInputs = inputs: inputs ++ lib.concatMap (i: pullAllInputs (i.propagatedNativeBuildInputs or [])) inputs; - fhs = buildFHSUserEnv { + fhs = buildFHSUserEnv rec { name = "gecko-deps-fhs"; - targetPkgs = _: pullAllInputs (lib.chooseDevOutputs (buildInputs ++ [ stdenv.cc ])); - multiPkgs = null; + targetPkgs = _: pullAllInputs (lib.chooseDevOutputs (buildInputs ++ [ stdenv.cc zlib xorg.libXinerama xorg.libXxf86vm ])); + multiPkgs = null; #targetPkgs; extraOutputsToInstall = [ "share" ]; profile = '' # build-fhs-userenv/env.nix adds it, but causes 'ls' to SEGV. unset LD_LIBRARY_PATH; + export LD_LIBRARY_PATH=/lib/; export IN_NIX_SHELL=1 export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig ${shellHook} -- cgit 1.4.1 From 048369f455d2f6920a079cb028e07f762ee471d5 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 28 Jun 2018 15:15:40 +0000 Subject: Make clang work on SpiderMonkey. --- compilers-overlay.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/compilers-overlay.nix b/compilers-overlay.nix index 47fdebb00ce1..30b2ba7aa4c3 100644 --- a/compilers-overlay.nix +++ b/compilers-overlay.nix @@ -35,10 +35,12 @@ let # latest header files from GCC, which are not supported by clang, because # clang implement a different set of locking primitives than GCC. This # expression is used to wrap clang with a matching verion of the libc++. - maybeWrapClang = cc: + maybeWrapClang = cc: cc; + /* if cc ? clang then clangWrapCC cc else cc; + */ clangWrapCC = llvmPackages: let libcxx = @@ -62,6 +64,7 @@ let buildWithCompiler = cc: super.stdenvAdapters.overrideCC self.stdenv (maybeWrapClang cc); + chgCompilerSource = cc: name: src: cc.override (conf: if conf ? gcc then # Nixpkgs 14.12 @@ -71,10 +74,10 @@ let ); compilersByName = with self; { - clang = llvmPackages; - clang36 = llvmPackages_36; - clang37 = llvmPackages_37; - clang38 = llvmPackages_38; # not working yet. + clang = llvmPackages.clang; + clang36 = llvmPackages_36.clang; + clang37 = llvmPackages_37.clang; + clang38 = llvmPackages_38.clang; # not working yet. gcc = gcc; gcc6 = gcc6; gcc5 = gcc5; -- cgit 1.4.1 From 64e9d5c45e228bfb963f197b5f025d6f607d51ae Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Tue, 17 Jul 2018 12:58:42 +0200 Subject: VidyoDesktop: use libidn-1.34 --- pkgs/VidyoDesktop/default.nix | 9 ++++++--- pkgs/VidyoDesktop/libidn.nix | 47 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 pkgs/VidyoDesktop/libidn.nix diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 171756d0b33a..ae297d2da1d2 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -1,9 +1,12 @@ -{ stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib, - alsaUtils, alsaOss, alsaTools, alsaPlugins, libidn, libGL, utillinux, mesa_glu, qt4, - zlib, patchelf, xorg, libpulseaudio +{ stdenv, fetchurl, buildFHSUserEnv, makeWrapper, dpkg, alsaLib +, alsaUtils, alsaOss, alsaTools, alsaPlugins, libGL, utillinux, mesa_glu, qt4 +, zlib, patchelf, xorg, libpulseaudio +, callPackage +#, libidn }: let + libidn = callPackage ./libidn.nix {}; vidyoVersion = "3.6.3"; vidyoBuild = "017"; vidyoVersionUnderscore = builtins.replaceStrings ["."] ["_"] vidyoVersion; diff --git a/pkgs/VidyoDesktop/libidn.nix b/pkgs/VidyoDesktop/libidn.nix new file mode 100644 index 000000000000..b6f08a9206ee --- /dev/null +++ b/pkgs/VidyoDesktop/libidn.nix @@ -0,0 +1,47 @@ +{ fetchurl, stdenv, libiconv }: + +stdenv.mkDerivation rec { + name = "libidn-1.34"; + + src = fetchurl { + url = "mirror://gnu/libidn/${name}.tar.gz"; + sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p"; + }; + + outputs = [ "bin" "dev" "out" "info" "devdoc" ]; + + # broken with gcc-7 + #doCheck = !stdenv.isDarwin && !stdenv.hostPlatform.isMusl; + + hardeningDisable = [ "format" ]; + + buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv; + + doCheck = false; # fails + + meta = { + homepage = http://www.gnu.org/software/libidn/; + description = "Library for internationalized domain names"; + + longDescription = '' + GNU Libidn is a fully documented implementation of the + Stringprep, Punycode and IDNA specifications. Libidn's purpose + is to encode and decode internationalized domain names. The + native C, C\# and Java libraries are available under the GNU + Lesser General Public License version 2.1 or later. + + The library contains a generic Stringprep implementation. + Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are + included. Punycode and ASCII Compatible Encoding (ACE) via IDNA + are supported. A mechanism to define Top-Level Domain (TLD) + specific validation tables, and to compare strings against those + tables, is included. Default tables for some TLDs are also + included. + ''; + + repositories.git = git://git.savannah.gnu.org/libidn.git; + license = stdenv.lib.licenses.lgpl2Plus; + platforms = stdenv.lib.platforms.all; + maintainers = [ ]; + }; +} -- cgit 1.4.1 From cf7bc3ac8c482461d9df1b799b80ee79911af85b Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 2 Aug 2018 19:48:56 +0200 Subject: Add git-cinnabar 0.5.0b3 --- default.nix | 1 + git-cinnabar-overlay.nix | 9 ++++++ pkgs/git-cinnabar/default.nix | 64 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 git-cinnabar-overlay.nix create mode 100644 pkgs/git-cinnabar/default.nix diff --git a/default.nix b/default.nix index 1580ca0312be..9896ce932d16 100644 --- a/default.nix +++ b/default.nix @@ -12,5 +12,6 @@ with super.lib; (import ./firefox-overlay.nix) (import ./vidyo-overlay.nix) (import ./servo-overlay.nix) + (import ./git-cinnabar-overlay.nix) ]) self diff --git a/git-cinnabar-overlay.nix b/git-cinnabar-overlay.nix new file mode 100644 index 000000000000..0b1bbd63bbba --- /dev/null +++ b/git-cinnabar-overlay.nix @@ -0,0 +1,9 @@ +self: super: + +{ + git-cinnabar = super.callPackage ./pkgs/git-cinnabar { + # we need urllib to recognize ssh. + # python = self.pythonFull; + python = self.mercurial.python; + }; +} diff --git a/pkgs/git-cinnabar/default.nix b/pkgs/git-cinnabar/default.nix new file mode 100644 index 000000000000..e80fccdfb43b --- /dev/null +++ b/pkgs/git-cinnabar/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchFromGitHub, autoconf +, zlib +, python +, perl +, gettext +, mercurial +}: + +# NOTE: git-cinnabar depends on a specific version of git-core, thus you should +# ensure that you install a git-cinnabar version which matches your git version. +# +# NOTE: This package only provides git-cinnabar tools, as a git users might want +# to have additional commands not provided by this forked version of git-core. +stdenv.mkDerivation rec { + version = "0.5.0b3"; + name = "git-cinnabar-${version}"; + src = fetchFromGitHub { + owner = "glandium"; + repo = "git-cinnabar"; + inherit name; + rev = version; # tag name + fetchSubmodules = true; + sha256 = "02fl3lzf7cnns88pkc8npr77dd7mm38h859q0fimgd21gw84xj01"; + }; + buildInputs = [ autoconf python gettext ]; + + ZLIB_PATH = zlib; + ZLIB_DEV_PATH = zlib.dev; + + PERL_PATH = "${perl}/bin/perl"; + NO_TCLTK = true; + V=1; + + preBuild = '' + export ZLIB_PATH; + export ZLIB_DEV_PATH; + substituteInPlace git-core/Makefile --replace \ + '$(ZLIB_PATH)/include' '$(ZLIB_DEV_PATH)/include' + + export PERL_PATH; + export NO_TCLTK + export V; + ''; + + makeFlags = "prefix=\${out}"; + + postInstall = + let mercurial-py = mercurial + "/" + mercurial.python.sitePackages; in '' + # git-cinnabar rebuild git, we do not need that. + rm -rf $out/bin/* $out/share $out/lib + for f in $out/libexec/git-core/{git-remote-hg,git-cinnabar} ; do + substituteInPlace $f --replace \ + "sys.path.append(os.path.join(os.path.dirname(__file__), 'pythonlib'))" \ + "sys.path.extend(['$out/libexec/git-core/pythonlib', '${mercurial-py}'])" + mv $f $out/bin + done + mv $out/libexec/git-core/git-cinnabar-helper $out/bin/git-cinnabar-helper + mv $out/libexec/git-core/pythonlib $out/pythonlib + rm -rf $out/libexec/git-core/* + mv $out/pythonlib $out/libexec/git-core/pythonlib + substituteInPlace $out/libexec/git-core/pythonlib/cinnabar/helper.py \ + --replace 'Git.config('cinnabar.helper')' "Git.config('cinnabar.helper') or '$out/bin/git-cinnabar-helper'" + ''; +} -- cgit 1.4.1 From 18186b9786bc72b7de124c3be6eb1e69d1c9acca Mon Sep 17 00:00:00 2001 From: Léo Gaspard Date: Mon, 6 Aug 2018 19:43:24 +0900 Subject: Add helper Rust builder --- rust-overlay.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rust-overlay.nix b/rust-overlay.nix index 6431560d6d78..8b7690f1631b 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -286,6 +286,11 @@ rec { }; }; + # Helper builder + rustChannelOfTargets = channel: date: targets: + (rustChannelOf { inherit channel date; }) + .rust.override { inherit targets; }; + # For backward compatibility rustChannels = latest.rustChannels; -- cgit 1.4.1 From 0ba1b4e45e6ef2a417b01f19fb0df8b1654deec5 Mon Sep 17 00:00:00 2001 From: Rail Aliiev Date: Sat, 11 Aug 2018 11:46:00 -0400 Subject: Be quiet --- firefox-overlay.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index abc9cb87be11..bdabbb68918d 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -79,7 +79,7 @@ let CHKSUM_ASC = builtins.fetchurl info.chksumSig; } '' HOME=`mktemp -d` - set -eux + set -eu cat ${./firefox.key} | gpg --import gpgv --keyring=$HOME/.gnupg/pubring.kbx $CHKSUM_ASC $CHKSUM_FILE mkdir $out -- cgit 1.4.1 From 65ef92a7f9f1d5bff6be1d4dc86f1cd25c09a004 Mon Sep 17 00:00:00 2001 From: Robert Bartlensky Date: Tue, 28 Aug 2018 16:13:03 +0100 Subject: Add android target to rust-overlay. --- rust-overlay.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/rust-overlay.nix b/rust-overlay.nix index 8b7690f1631b..8106134b60e2 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -40,6 +40,7 @@ let "x86_64-linux" = "x86_64-unknown-linux-gnu"; "armv5tel-linux" = "arm-unknown-linux-gnueabi"; "armv6l-linux" = "arm-unknown-linux-gnueabi"; + "armv7a-android" = "armv7-linux-androideabi"; "armv7l-linux" = "armv7-unknown-linux-gnueabihf"; "aarch64-linux" = "aarch64-unknown-linux-gnu"; "mips64el-linux" = "mips64el-unknown-linux-gnuabi64"; -- cgit 1.4.1 From 9c40b54e39de43273f0e70b043b317e42495d7d2 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 21 Aug 2018 11:58:56 +0200 Subject: Add nodejs and cbindgen dependency for building Firefox. --- firefox-overlay.nix | 7 +++++++ pkgs/cbindgen/default.nix | 25 +++++++++++++++++++++++++ pkgs/gecko/default.nix | 8 ++++++++ 3 files changed, 40 insertions(+) create mode 100644 pkgs/cbindgen/default.nix diff --git a/firefox-overlay.nix b/firefox-overlay.nix index bdabbb68918d..1c0612a0f213 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -153,6 +153,9 @@ in gecko = super.callPackage ./pkgs/gecko { inherit (self.python35Packages) setuptools; pythonFull = self.python35Full; + nodejs = + if builtins.compareVersions self.nodejs.name "nodejs-8.11.3" < 0 + then self.nodejs-8_x else self.nodejs; # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so # use the latest Rust version before 1.23. @@ -163,4 +166,8 @@ in # Set of packages which are frozen at this given revision of nixpkgs-mozilla. firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; + + # Use rust-cbindgen imported from Nixpkgs (August 2018) unless the current + # version of Nixpkgs already packages a version of rust-cbindgen. + rust-cbindgen = super.rust-cbindgen or super.callPackage ./pkgs/cbindgen { }; } diff --git a/pkgs/cbindgen/default.nix b/pkgs/cbindgen/default.nix new file mode 100644 index 000000000000..63a32de67399 --- /dev/null +++ b/pkgs/cbindgen/default.nix @@ -0,0 +1,25 @@ +### NOTE: This file is imported from Nixpkgs repository (August 2018) +### It is used as a fallback when rust-cbindgen is not provided by the +### current version of Nixpkgs. +{ stdenv, fetchFromGitHub, rustPlatform }: + +rustPlatform.buildRustPackage rec { + name = "rust-cbindgen-${version}"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "eqrion"; + repo = "cbindgen"; + rev = "v${version}"; + sha256 = "03qzqy3indqghqy7rnli1zrrlnyfkygxjpb2s7041cik54kf2krw"; + }; + + cargoSha256 = "0c3xpzff8jldqbn5a25yy6c2hlz5xy636ml6sj5d24wzcgwg5a2i"; + + meta = with stdenv.lib; { + description = "A project for generating C bindings from Rust code"; + homepage = https://github.com/eqrion/cbindgen; + license = licenses.mpl20; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index d0ba4206fff7..6db9e1f1fe14 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -13,6 +13,8 @@ , ccache , zlib, xorg +, rust-cbindgen +, nodejs }: let @@ -82,6 +84,12 @@ let # Useful for getting notification at the end of the build. libnotify + # cbindgen is used to generate C bindings for WebRender. + rust-cbindgen + + # NodeJS is used for tooling around JS development. + nodejs + ] ++ optionals inNixShell [ valgrind gdb rr ccache ]; -- cgit 1.4.1 From 47f327c8de5575c50a6b2e78158d0f02b565c637 Mon Sep 17 00:00:00 2001 From: tilpner Date: Wed, 5 Sep 2018 13:04:32 +0200 Subject: Allow usage as package set instead of overlay This extracts the overlays list, to be used by both the combined overlay and the package set representation. It is meant to be used with nix-community/NUR#32 --- default.nix | 14 +++----------- overlays.nix | 9 +++++++++ package-set.nix | 8 ++++++++ 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 overlays.nix create mode 100644 package-set.nix diff --git a/default.nix b/default.nix index 9896ce932d16..76cbe3966f45 100644 --- a/default.nix +++ b/default.nix @@ -4,14 +4,6 @@ self: super: with super.lib; -(foldl' (flip extends) (_: super) [ - - (import ./lib-overlay.nix) - (import ./rust-overlay.nix) - (import ./rr-overlay.nix) - (import ./firefox-overlay.nix) - (import ./vidyo-overlay.nix) - (import ./servo-overlay.nix) - (import ./git-cinnabar-overlay.nix) - -]) self +(foldl' (flip extends) (_: super) + (map import (import ./overlays.nix))) + self diff --git a/overlays.nix b/overlays.nix new file mode 100644 index 000000000000..24dea0cb3944 --- /dev/null +++ b/overlays.nix @@ -0,0 +1,9 @@ +[ + ./lib-overlay.nix + ./rust-overlay.nix + ./rr-overlay.nix + ./firefox-overlay.nix + ./vidyo-overlay.nix + ./servo-overlay.nix + ./git-cinnabar-overlay.nix +] diff --git a/package-set.nix b/package-set.nix new file mode 100644 index 000000000000..0b58b67eadac --- /dev/null +++ b/package-set.nix @@ -0,0 +1,8 @@ +{ pkgs }: + +with pkgs.lib; +let + self = foldl' + (prev: overlay: prev // (overlay (pkgs // self) (pkgs // prev))) + {} (map import (import ./overlays.nix)); +in self -- cgit 1.4.1 From 136eacc0ceefa8fb44677799e5639e083606ee5d Mon Sep 17 00:00:00 2001 From: John Axel Eriksson Date: Mon, 3 Sep 2018 19:57:20 +0200 Subject: Fix rust-cbindgen expression. --- firefox-overlay.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 1c0612a0f213..ccdb587f49ef 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -169,5 +169,5 @@ in # Use rust-cbindgen imported from Nixpkgs (August 2018) unless the current # version of Nixpkgs already packages a version of rust-cbindgen. - rust-cbindgen = super.rust-cbindgen or super.callPackage ./pkgs/cbindgen { }; + rust-cbindgen = super.rust-cbindgen or (super.callPackage ./pkgs/cbindgen { }); } -- cgit 1.4.1 From 5ed3b4f96167fab48f48c24ac913470a77d8fad4 Mon Sep 17 00:00:00 2001 From: Jörg Thalheim Date: Wed, 12 Sep 2018 16:57:20 +0100 Subject: remove servo: seems no longer working -> remove as recommend by @garbas: https://github.com/nix-community/NUR/issues/32#issuecomment-420421674 --- README.rst | 5 ----- overlays.nix | 1 - pinned.nix | 1 - pkgs/servo/source.json | 6 ------ pkgs/servo/update-repo.sh | 3 --- release.nix | 1 - servo-overlay.nix | 5 ----- 7 files changed, 22 deletions(-) delete mode 100644 pkgs/servo/source.json delete mode 100755 pkgs/servo/update-repo.sh delete mode 100644 servo-overlay.nix diff --git a/README.rst b/README.rst index e98db9ba0e3b..b09e73efdcbb 100644 --- a/README.rst +++ b/README.rst @@ -7,7 +7,6 @@ Gathering nix efforts in one repository. Current packages ---------------- -- servo (https://github.com/servo/servo) - gecko (https://github.com/mozilla/gecko-dev) - firefox-dev-bin (`Firefox Developer Edition `) - VidyoDesktop () @@ -138,10 +137,6 @@ TODO - pin to specific (working) nixpkgs revision (as we do for other sources) -- servo can currently only be used with nix-shell. its build system tries to - dowload quite few things (it is doing ``pip install`` and ``cargo install``). - it should be possible to replace that with nix - - can we make this work on darwin as well? - assign maintainers for our packages that will montior that it "always" builds diff --git a/overlays.nix b/overlays.nix index 24dea0cb3944..2eaf175417cc 100644 --- a/overlays.nix +++ b/overlays.nix @@ -4,6 +4,5 @@ ./rr-overlay.nix ./firefox-overlay.nix ./vidyo-overlay.nix - ./servo-overlay.nix ./git-cinnabar-overlay.nix ] diff --git a/pinned.nix b/pinned.nix index 44fd78af400d..1499d40ea7c6 100644 --- a/pinned.nix +++ b/pinned.nix @@ -11,7 +11,6 @@ , overlays ? [] , system ? null , geckoSrc ? null -, servoSrc ? null }: # Pin a specific version of Nixpkgs. diff --git a/pkgs/servo/source.json b/pkgs/servo/source.json deleted file mode 100644 index ea1f9c36b257..000000000000 --- a/pkgs/servo/source.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "owner": "servo", - "repo": "servo", - "rev": "f2efc0011ab229718181175a2637bbc4ce70cd0c", - "sha256": "0cp1d5cmdb2alyvnd7ry9p6z1pvpc938n7ngbcphqm5dww8isrmm" -} diff --git a/pkgs/servo/update-repo.sh b/pkgs/servo/update-repo.sh deleted file mode 100755 index 680dbc6978ac..000000000000 --- a/pkgs/servo/update-repo.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cd "$(dirname "$0")" || exit -../../update-repo.sh ./repo.json "$@" diff --git a/release.nix b/release.nix index 5d417562de29..7d7e44f491f7 100644 --- a/release.nix +++ b/release.nix @@ -91,7 +91,6 @@ let # Which will spawn a new shell where the closure of everything used to build # Gecko would be part of the fake-root. gecko = build [ "devEnv" "gecko" ] { compilers = geckoCompilers; }; - servo = build [ "servo" ]; VidyoDesktop = build [ "VidyoDesktop" ]; latest = { "firefox-nightly-bin" = build [ "latest" "firefox-nightly-bin" ]; diff --git a/servo-overlay.nix b/servo-overlay.nix deleted file mode 100644 index e7d843fd07b8..000000000000 --- a/servo-overlay.nix +++ /dev/null @@ -1,5 +0,0 @@ -self: super: - -{ - servo = super.callPackage ./pkgs/servo { }; -} -- cgit 1.4.1 From 2704522fc3ee13928bc737f6488da66e2f7678b3 Mon Sep 17 00:00:00 2001 From: Claas Augner Date: Thu, 6 Sep 2018 20:23:44 +0200 Subject: cbindgen: 0.6.1 -> 0.6.2 --- pkgs/cbindgen/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/cbindgen/default.nix b/pkgs/cbindgen/default.nix index 63a32de67399..d661766b229a 100644 --- a/pkgs/cbindgen/default.nix +++ b/pkgs/cbindgen/default.nix @@ -5,13 +5,13 @@ rustPlatform.buildRustPackage rec { name = "rust-cbindgen-${version}"; - version = "0.6.1"; + version = "0.6.2"; src = fetchFromGitHub { owner = "eqrion"; repo = "cbindgen"; rev = "v${version}"; - sha256 = "03qzqy3indqghqy7rnli1zrrlnyfkygxjpb2s7041cik54kf2krw"; + sha256 = "0hifmn9578cf1r5m4ajazg3rhld2ybd2v48xz04vfhappkarv4w2"; }; cargoSha256 = "0c3xpzff8jldqbn5a25yy6c2hlz5xy636ml6sj5d24wzcgwg5a2i"; -- cgit 1.4.1 From 07785b9d2fa561b24777fce9a3280023398a5ee1 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 18 Sep 2018 14:56:05 +0200 Subject: Force usage of rust-cbindgen-0.6.2 or newer. --- firefox-overlay.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index ccdb587f49ef..4b22fbf2dc9c 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -157,6 +157,11 @@ in if builtins.compareVersions self.nodejs.name "nodejs-8.11.3" < 0 then self.nodejs-8_x else self.nodejs; + rust-cbindgen = + if !(self ? "rust-cbindgen") then self.rust-cbindgen-0_6_2 + else if builtins.compareVersions self.rust-cbindgen.name "rust-cbindgen-0.6.2" < 0 + then self.rust-cbindgen-0_6_2 else self.rust-cbindgen; + # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so # use the latest Rust version before 1.23. # rust = (super.rustChannelOf { channel = "stable"; date = "2017-11-22"; }).rust; @@ -167,7 +172,7 @@ in # Set of packages which are frozen at this given revision of nixpkgs-mozilla. firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; - # Use rust-cbindgen imported from Nixpkgs (August 2018) unless the current + # Use rust-cbindgen imported from Nixpkgs (September 2018) unless the current # version of Nixpkgs already packages a version of rust-cbindgen. - rust-cbindgen = super.rust-cbindgen or (super.callPackage ./pkgs/cbindgen { }); + rust-cbindgen-0_6_2 = super.callPackage ./pkgs/cbindgen { }; } -- cgit 1.4.1 From bf862af36145f5c1e566f93fe099e36bddeac0c8 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Tue, 18 Sep 2018 15:24:46 +0200 Subject: Use the latest rustc compiler for compiling rust-cbindgen 0.6.2 --- firefox-overlay.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 4b22fbf2dc9c..d3e99d336859 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -174,5 +174,10 @@ in # Use rust-cbindgen imported from Nixpkgs (September 2018) unless the current # version of Nixpkgs already packages a version of rust-cbindgen. - rust-cbindgen-0_6_2 = super.callPackage ./pkgs/cbindgen { }; + rust-cbindgen-0_6_2 = super.callPackage ./pkgs/cbindgen { + rustPlatform = super.makeRustPlatform { + cargo = self.latest.rustChannels.stable.rust; + rustc = self.latest.rustChannels.stable.rust; + }; + }; } -- cgit 1.4.1 From da22fe0279573679eeba64fe8f245f743b148bab Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Sun, 24 Jun 2018 21:58:23 +0200 Subject: rust-overlay: Link all components in final derivation Each component is installed in separate directories. This reduces the required disk usage, when different rust derivations are used on the same machine. --- rust-overlay.nix | 164 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 90 insertions(+), 74 deletions(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 8106134b60e2..280da2875379 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -113,7 +113,7 @@ let in extensionsToInstall; - getSrcs = pkgs: pkgname: targets: extensions: targetExtensions: stdenv: fetchurl: + getComponents = pkgs: pkgname: targets: extensions: targetExtensions: stdenv: fetchurl: let inherit (builtins) head map; inherit (super.lib) flatten remove subtractLists unique; @@ -129,7 +129,82 @@ let if missingTargets == [] then pkgsTuples else throw '' While compiling ${pkgname}: the target ${head missingTargets} is not available for any package.''; in - map (tuple: (getFetchUrl pkgs tuple.name tuple.target stdenv fetchurl)) pkgsTuplesToInstall; + map (tuple: { name = tuple.name; src = (getFetchUrl pkgs tuple.name tuple.target stdenv fetchurl); }) pkgsTuplesToInstall; + + installComponents = stdenv: namesAndSrcs: + let + inherit (builtins) map; + installComponent = name: src: + stdenv.mkDerivation { + inherit name; + inherit src; + # (@nbp) TODO: Check on Windows and Mac. + # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. + installPhase = '' + patchShebangs install.sh + CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose + + setInterpreter() { + local dir="$1" + [ -e "$dir" ] || return 0 + + header "Patching interpreter of ELF executables and libraries in $dir" + local i + while IFS= read -r -d ''$'\0' i; do + if [[ "$i" =~ .build-id ]]; then continue; fi + if ! isELF "$i"; then continue; fi + echo "setting interpreter of $i" + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true + done < <(find "$dir" -type f -print0) + } + + setInterpreter $out + ''; + + postFixup = '' + # Function moves well-known files from etc/ + handleEtc() { + local oldIFS="$IFS" + + # Directories we are aware of, given as substitution lists + for paths in \ + "etc/bash_completion.d","share/bash_completion/completions","etc/bash_completions.d","share/bash_completions/completions"; + do + # Some directoties may be missing in some versions. If so we just skip them. + # See https://github.com/mozilla/nixpkgs-mozilla/issues/48 for more infomation. + if [ ! -e $paths ]; then continue; fi + + IFS="," + set -- $paths + IFS="$oldIFS" + + local orig_path="$1" + local wanted_path="$2" + + # Rename the files + if [ -d ./"$orig_path" ]; then + mkdir -p "$(dirname ./"$wanted_path")" + fi + mv -v ./"$orig_path" ./"$wanted_path" + + # Fail explicitly if etc is not empty so we can add it to the list and/or report it upstream + rmdir ./etc || { + echo Installer tries to install to /etc: + find ./etc + exit 1 + } + done + } + + if [ -d "$out"/etc ]; then + pushd "$out" + handleEtc + popd + fi + ''; + }; + in + map (nameAndSrc: (installComponent nameAndSrc.name nameAndSrc.src)) namesAndSrcs; # Manifest files are organized as follow: # { date = "2017-03-03"; @@ -171,80 +246,21 @@ let let version' = builtins.match "([^ ]*) [(]([^ ]*) ([^ ]*)[)]" pkg.version; version = "${elemAt version' 0}-${elemAt version' 2}-${elemAt version' 1}"; - srcs = getSrcs pkgs.pkg name targets extensions targetExtensions stdenv fetchurl; + namesAndSrcs = getComponents pkgs.pkg name targets extensions targetExtensions stdenv fetchurl; + components = installComponents stdenv namesAndSrcs; + componentsOuts = builtins.map (comp: (super.lib.strings.escapeNixString (super.lib.getOutput "out" comp))) components; in - stdenv.mkDerivation { + super.pkgs.symlinkJoin { name = name + "-" + version; - inherit srcs; - sourceRoot = "."; - # (@nbp) TODO: Check on Windows and Mac. - # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. - installPhase = '' - for i in * ; do - if [ -d "$i" ]; then - cd $i - patchShebangs install.sh - CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose - cd .. - fi - done - - setInterpreter() { - local dir="$1" - [ -e "$dir" ] || return 0 - - header "Patching interpreter of ELF executables and libraries in $dir" - local i - while IFS= read -r -d ''$'\0' i; do - if [[ "$i" =~ .build-id ]]; then continue; fi - if ! isELF "$i"; then continue; fi - echo "setting interpreter of $i" - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true - done < <(find "$dir" -type f -print0) - } - - setInterpreter $out - ''; - - postFixup = '' - # Function moves well-known files from etc/ - handleEtc() { - local oldIFS="$IFS" - - # Directories we are aware of, given as substitution lists - for paths in \ - "etc/bash_completion.d","share/bash_completion/completions","etc/bash_completions.d","share/bash_completions/completions"; - do - # Some directoties may be missing in some versions. If so we just skip them. - # See https://github.com/mozilla/nixpkgs-mozilla/issues/48 for more infomation. - if [ ! -e $paths ]; then continue; fi - - IFS="," - set -- $paths - IFS="$oldIFS" - - local orig_path="$1" - local wanted_path="$2" - - # Rename the files - if [ -d ./"$orig_path" ]; then - mkdir -p "$(dirname ./"$wanted_path")" - fi - mv -v ./"$orig_path" ./"$wanted_path" - - # Fail explicitly if etc is not empty so we can add it to the list and/or report it upstream - rmdir ./etc || { - echo Installer tries to install to /etc: - find ./etc - exit 1 - } - done - } - - if [ -d "$out"/etc ]; then - pushd "$out" - handleEtc - popd + paths = components; + postBuild = '' + # If rustc is in the derivation, we need to copy the rustc + # executable into the final derivation. This is required + # for making rustc find the correct SYSROOT. + if [ -e "$out/bin/rustc" ]; then + RUSTC_PATH=$(realpath -e $out/bin/rustc) + rm $out/bin/rustc + cp $RUSTC_PATH $out/bin/rustc fi ''; -- cgit 1.4.1 From b9c99d043b1cb55ee8c08265223b7c35d687acb9 Mon Sep 17 00:00:00 2001 From: Bastian Köcher Date: Thu, 13 Sep 2018 11:34:50 +0200 Subject: Adds `libstdc++.so.6` with patchelf to fix `rust-lld` --- rust-overlay.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rust-overlay.nix b/rust-overlay.nix index 280da2875379..abf2816b0b41 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -154,7 +154,10 @@ let if [[ "$i" =~ .build-id ]]; then continue; fi if ! isELF "$i"; then continue; fi echo "setting interpreter of $i" - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i" || true + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --add-needed ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 \ + "$i" || true done < <(find "$dir" -type f -print0) } @@ -202,6 +205,8 @@ let popd fi ''; + + dontStrip = true; }; in map (nameAndSrc: (installComponent nameAndSrc.name nameAndSrc.src)) namesAndSrcs; -- cgit 1.4.1 From a7159e93ca1374dfae8389dfc6d966fb37b50903 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Thu, 4 Oct 2018 12:01:22 +0200 Subject: Add 2 environment variables to be used when compiling the JS Shell with Cranelift. --- pkgs/gecko/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 6db9e1f1fe14..0fa3ac8ece7a 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -113,6 +113,11 @@ let export MOZBUILD_STATE_PATH=$PWD/.mozbuild export CC="${stdenv.cc}/bin/cc"; export CXX="${stdenv.cc}/bin/c++"; + # To be used when building the JS Shell. + export NIX_EXTRA_CONFIGURE_ARGS="--with-libclang-path=${llvmPackages.clang.cc.lib}/lib --with-clang-path=${llvmPackages.clang}/bin/clang" + cxxLib=$( echo -n ${gcc}/include/c++/* ) + archLib=$cxxLib/$( ${gcc}/bin/gcc -dumpmachine ) + export BINDGEN_CFLAGS="-cxx-isystem $cxxLib -isystem $archLib" ${genMozConfig} ${builtins.getEnv "NIX_SHELL_HOOK"} ''; -- cgit 1.4.1 From c72ff151a3e25f14182569679ed4cd22ef352328 Mon Sep 17 00:00:00 2001 From: "Nicolas B. Pierron" Date: Mon, 8 Oct 2018 18:51:29 +0200 Subject: Bug 1397263 causes build failures when AS=as is set. --- pkgs/gecko/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 0fa3ac8ece7a..610a7a371340 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -120,6 +120,7 @@ let export BINDGEN_CFLAGS="-cxx-isystem $cxxLib -isystem $archLib" ${genMozConfig} ${builtins.getEnv "NIX_SHELL_HOOK"} + unset AS ''; # propagatedBuildInput should already have applied the "lib.chooseDevOutputs" @@ -151,6 +152,7 @@ stdenv.mkDerivation { tracePhases = true; configurePhase = '' + unset AS; # Set to CC when configured. export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild export MOZCONFIG=$(pwd)/.mozconfig export builddir=$(pwd)/builddir -- cgit 1.4.1 From 3a26aed8e4f3a6e59bee108608cbfef2903db979 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Thu, 11 Oct 2018 16:19:26 -0400 Subject: Update git-cinnabar to 0.5.0 --- pkgs/git-cinnabar/default.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/git-cinnabar/default.nix b/pkgs/git-cinnabar/default.nix index e80fccdfb43b..8d498be7c1d2 100644 --- a/pkgs/git-cinnabar/default.nix +++ b/pkgs/git-cinnabar/default.nix @@ -3,6 +3,7 @@ , python , perl , gettext +, git , mercurial }: @@ -12,7 +13,7 @@ # NOTE: This package only provides git-cinnabar tools, as a git users might want # to have additional commands not provided by this forked version of git-core. stdenv.mkDerivation rec { - version = "0.5.0b3"; + version = "0.5.0"; name = "git-cinnabar-${version}"; src = fetchFromGitHub { owner = "glandium"; @@ -20,9 +21,9 @@ stdenv.mkDerivation rec { inherit name; rev = version; # tag name fetchSubmodules = true; - sha256 = "02fl3lzf7cnns88pkc8npr77dd7mm38h859q0fimgd21gw84xj01"; + sha256 = "1yki44qzh3ca41xv4ch3fkxalsj707q2az0yjb917q3mpavxsx9q"; }; - buildInputs = [ autoconf python gettext ]; + buildInputs = [ autoconf python gettext git ]; ZLIB_PATH = zlib; ZLIB_DEV_PATH = zlib.dev; @@ -36,6 +37,10 @@ stdenv.mkDerivation rec { export ZLIB_DEV_PATH; substituteInPlace git-core/Makefile --replace \ '$(ZLIB_PATH)/include' '$(ZLIB_DEV_PATH)/include' + # Comment out calls to git to try to verify that git-core is up to date + substituteInPlace Makefile \ + --replace '$(eval $(call exec,git' '# $(eval $(call exec,git' + export PERL_PATH; export NO_TCLTK @@ -44,6 +49,8 @@ stdenv.mkDerivation rec { makeFlags = "prefix=\${out}"; + installTargets = "git-install"; + postInstall = let mercurial-py = mercurial + "/" + mercurial.python.sitePackages; in '' # git-cinnabar rebuild git, we do not need that. -- cgit 1.4.1 From 539322165c7e3b1b29f494df5bcd1cbf18ed7b07 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Thu, 11 Oct 2018 15:34:52 -0400 Subject: Flesh out documentation about Firefox use and development This might address #68. --- README.rst | 73 +++++++++++++++++++++++++++++++++++++++++++---------- firefox-overlay.nix | 2 +- 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/README.rst b/README.rst index b09e73efdcbb..c40f48da1605 100644 --- a/README.rst +++ b/README.rst @@ -8,9 +8,32 @@ Current packages ---------------- - gecko (https://github.com/mozilla/gecko-dev) -- firefox-dev-bin (`Firefox Developer Edition `) +- firefox-bin variants including Nightly - VidyoDesktop () +firefox-bin variants +-------------------- + +Nixpkgs already has definitions for `firefox +`_, +which is built from source, as well as `firefox-bin +`_, +which is the binary Firefox version built by Mozilla. + +The ``firefox-overlay.nix`` in this repository adds definitions for +some other firefox-bin variants that Mozilla ships: +``firefox-nightly-bin``, ``firefox-beta-bin``, and +``firefox-esr-bin``. All are exposed under a ``latest`` attribute, +e.g. ``latest.firefox-nightly-bin``. + +Unfortunately, these variants do not auto-update, and you may see some +annoying pop-ups complaining about this. + +Note that all the ``-bin`` packages are "unfree" (because of the +Firefox trademark, held by Mozilla), so you will need to set +``nixpkgs.config.allowUnfree`` in order to use them. More info `here +`_. + Rust overlay ------------ @@ -59,18 +82,42 @@ Or to retrieve a specific nightly version: ]; } -Gecko Development Environment ------------------------------ +Firefox Development Environment +------------------------------- + +This repository provides several tools to facilitate development on +Firefox. Firefox is built on an engine called Gecko, which lends its +name to some of the files and derivations in this repo. + +Checking out Firefox +~~~~~~~~~~~~~~~~~~~~ + +To build Firefox from source, it is best to have a local checkout of +``mozilla-central``. ``mozilla-central`` is hosted in Mercurial, but +some people prefer to access it using ``git`` and +``git-cinnabar``. The tools in this repo support either using +mercurial or git. + +This repository provides a ``git-cinnabar-overlay.nix`` which defines +a ``git-cinnabar`` derivation. This overlay can be used to install +``git-cinnabar``, either using ``nix-env`` or as part of a system-wide +``configuration.nix``. + +Building Firefox +~~~~~~~~~~~~~~~~ -The ``firefox-overlay.nix`` provides a development environment to build Firefox -from its sources, also known as Gecko. +The ``firefox-overlay.nix`` provides an environment to build Firefox +from its sources, once you have finished the checkout of +``mozilla-central``. You can use ``nix-shell`` to enter this +environment to launch ``mach`` commands to build Firefox and test your +build. -To build Gecko from its sources, it is best to have a local checkout of Gecko, -and to build it with a ``nix-shell``. You can checkout Gecko, either using -mercurial, or git. +Some debugging tools are available in this environment as well, but +other development tools (such as those used to submit changes for +review) are outside the scope of this environment. -Once you have finished the checkout gecko, you should enter the ``nix-shell`` -using the ``gecko..`` attribute of the ``release.nix`` file provided +The ``nix-shell`` environment is available in the +``gecko..`` attribute of the ``release.nix`` file provided in this repository. The ```` attribute is either ``x86_64-linux`` or ``i686-linux``. The first @@ -85,7 +132,7 @@ in ``release.nix``. This compiler would only be used for compiling Gecko, and the rest of the toolchain is compiled against the default ``stdenv`` of the architecture. -When first enterring the ``nix-shell``, the toolchain will pull and build all +When first entering the ``nix-shell``, the toolchain will pull and build all the dependencies necessary to build Gecko, this includes might take some time. This work will not be necessary the second time, unless you use a different toolchain or architecture. @@ -101,7 +148,7 @@ toolchain or architecture. [~/mozilla-central] python ./mach run ... run firefox -When enterring the ``nix-shell``, the ``MOZCONFIG`` environment variable is set +When entering the ``nix-shell``, the ``MOZCONFIG`` environment variable is set to a local file, named ``.mozconfig.nix-shell``, created each time you enter the ``nix-shell``. You can create your own ``.mozconfig`` file which extends the default one, with your own options. @@ -118,7 +165,7 @@ default one, with your own options. [~/mozilla-central] export MOZCONFIG=$(pwd)/.mozconfig [~/mozilla-central] python ./mach build -To avoid repeating your-self, you can also rely on the ``NIX_SHELL_HOOK`` +To avoid repeating yourself, you can also rely on the ``NIX_SHELL_HOOK`` environment variable, to reset the ``MOZCONFIG`` environment variable for you. .. code:: sh diff --git a/firefox-overlay.nix b/firefox-overlay.nix index d3e99d336859..0f98b8b1b0a0 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -1,7 +1,7 @@ # This file provide the latest binary versions of Firefox published by Mozilla. self: super: -# firefo.key file is downloaded from: +# firefox.key file is downloaded from: # https://gpg.mozilla.org/pks/lookup?search=Mozilla+Software+Releases+%3Crelease%40mozilla.com%3E&op=get let -- cgit 1.4.1 From dfb6fc568428679f7e4ef6d7279e6af5db240863 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Fri, 12 Oct 2018 12:43:24 -0400 Subject: Add derivation for phlay --- phlay-overlay.nix | 5 +++++ pkgs/phlay/default.nix | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 phlay-overlay.nix create mode 100644 pkgs/phlay/default.nix diff --git a/phlay-overlay.nix b/phlay-overlay.nix new file mode 100644 index 000000000000..7dcb133adada --- /dev/null +++ b/phlay-overlay.nix @@ -0,0 +1,5 @@ +self: super: + +{ + phlay = super.callPackage ./pkgs/phlay {}; +} diff --git a/pkgs/phlay/default.nix b/pkgs/phlay/default.nix new file mode 100644 index 000000000000..e74ab52f403b --- /dev/null +++ b/pkgs/phlay/default.nix @@ -0,0 +1,26 @@ +{ fetchFromGitHub +, python36Packages +}: +python36Packages.buildPythonApplication { + name = "phlay"; + version = "0.1.2"; + src = fetchFromGitHub { + owner = "mystor"; + repo = "phlay"; + rev = "0deedf7397e2133bf270c41136c7650433610d4e"; + sha256 = "1jdxk0a551zcfq6j8cp6ajm4dvsp7c0rqbdkk7h3lpdvws24z0n6"; + }; + meta = { + description = "A command-line interface for Phabricator"; + longDescription = '' + Phlay is an alternative to Arcanist for submitting changes to Phabricator. + + You might like Phlay if you do Mozilla development using git and + a "commit series" workflow. + ''; + }; + # phlay is designed as a single-file Python script with no + # dependencies outside the stdlib. + format = "other"; + installPhase = "mkdir -p $out/bin; cp phlay $out/bin"; +} -- cgit 1.4.1 From 65bfcb376612a2dc0439346e3af8dd0cd257a3de Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Tue, 16 Oct 2018 15:09:55 -0400 Subject: Add another section about submitting Firefox patches --- README.rst | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.rst b/README.rst index c40f48da1605..d55958172029 100644 --- a/README.rst +++ b/README.rst @@ -174,6 +174,45 @@ environment variable, to reset the ``MOZCONFIG`` environment variable for you. ~/mozilla-central$ nix-shell ../nixpkgs-mozilla/release.nix -A gecko.x86_64-linux.gcc --pure [~/mozilla-central] python ./mach build +Submitting Firefox patches +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Firefox development happens in `Mozilla Phabricator +`_. Mozilla Phabricator +docs are `here +`_. + +To get your commits into Phabricator, some options include: + +- Arcanist, the upstream tool for interacting with + Phabricator. Arcanist is packaged in nixpkgs already; you can find + it in `nixos.arcanist`. Unfortunately, as of this writing, upstream + Arcanist does not support ``git-cinnabar`` (according to `the + "Setting up Arcanist" + `_ + documentation). `Mozilla maintains a fork of Arcanist + `_ but it isn't yet + packaged. (PRs welcome.) + +- `moz-phab `_, a small + Python script that wraps Arcanist to try to handle commit series + better than stock Arcanist. Because it wraps Arcanist, it suffers + from the same problems that Arcanist does if you use git-cinnabar, + and may work better if you use Mozilla's Arcanist fork. ``moz-phab`` + isn't packaged yet. (PRs welcome.) + +- `phlay `_, a small Python script + that speaks to the Phabricator API directly. This repository ships a + ``phlay-overlay.nix`` that you can use to make ``phlay`` available + in a nix-shell or nix-env. + +Note: although the ``nix-shell`` from the previous section may have +all the tools you would normally use to do Firefox development, it +isn't recommended that you use that shell for anything besides tasks +that involve running ``mach``. Other development tasks such as +committing code and submitting patches to code review are best handled +in a separate nix-shell. + TODO ---- -- cgit 1.4.1 From c985206e160204707e15a45f0b9df4221359d21c Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Mon, 22 Oct 2018 11:38:46 -0400 Subject: Upgrade rust-cbindgen Firefox now requires cbindgen 0.6.4 to build. --- firefox-overlay.nix | 8 ++++---- pkgs/cbindgen/default.nix | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 0f98b8b1b0a0..08bf17a8cb97 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -158,9 +158,9 @@ in then self.nodejs-8_x else self.nodejs; rust-cbindgen = - if !(self ? "rust-cbindgen") then self.rust-cbindgen-0_6_2 - else if builtins.compareVersions self.rust-cbindgen.name "rust-cbindgen-0.6.2" < 0 - then self.rust-cbindgen-0_6_2 else self.rust-cbindgen; + if !(self ? "rust-cbindgen") then self.rust-cbindgen-latest + else if builtins.compareVersions self.rust-cbindgen.name "rust-cbindgen-0.6.4" < 0 + then self.rust-cbindgen-latest else self.rust-cbindgen; # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so # use the latest Rust version before 1.23. @@ -174,7 +174,7 @@ in # Use rust-cbindgen imported from Nixpkgs (September 2018) unless the current # version of Nixpkgs already packages a version of rust-cbindgen. - rust-cbindgen-0_6_2 = super.callPackage ./pkgs/cbindgen { + rust-cbindgen-latest = super.callPackage ./pkgs/cbindgen { rustPlatform = super.makeRustPlatform { cargo = self.latest.rustChannels.stable.rust; rustc = self.latest.rustChannels.stable.rust; diff --git a/pkgs/cbindgen/default.nix b/pkgs/cbindgen/default.nix index d661766b229a..c47652031568 100644 --- a/pkgs/cbindgen/default.nix +++ b/pkgs/cbindgen/default.nix @@ -1,20 +1,20 @@ -### NOTE: This file is imported from Nixpkgs repository (August 2018) -### It is used as a fallback when rust-cbindgen is not provided by the -### current version of Nixpkgs. +### NOTE: This file is a copy of the one from Nixpkgs repository +### (taken 2018 October). It is used when the version of cbindgen in +### upstream nixpkgs is not up-to-date enough to compile Firefox. { stdenv, fetchFromGitHub, rustPlatform }: rustPlatform.buildRustPackage rec { name = "rust-cbindgen-${version}"; - version = "0.6.2"; + version = "0.6.6"; src = fetchFromGitHub { owner = "eqrion"; repo = "cbindgen"; rev = "v${version}"; - sha256 = "0hifmn9578cf1r5m4ajazg3rhld2ybd2v48xz04vfhappkarv4w2"; + sha256 = "12s4lps8p6hrxvki9a5dxzbmxsddvkm6ias3n4daa1s3bncd86zk"; }; - cargoSha256 = "0c3xpzff8jldqbn5a25yy6c2hlz5xy636ml6sj5d24wzcgwg5a2i"; + cargoSha256 = "137dqj1sp02dh0dz9psf8i8q57gmz3rfgmwk073k7x5zzkgvj21c"; meta = with stdenv.lib; { description = "A project for generating C bindings from Rust code"; -- cgit 1.4.1 From 3887a502694682c53d1540585e7fd021bc504708 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Thu, 25 Oct 2018 16:21:13 -0400 Subject: phlay: 0.1.2 -> 0.1.4 --- pkgs/phlay/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/phlay/default.nix b/pkgs/phlay/default.nix index e74ab52f403b..e8b72c369de1 100644 --- a/pkgs/phlay/default.nix +++ b/pkgs/phlay/default.nix @@ -3,12 +3,12 @@ }: python36Packages.buildPythonApplication { name = "phlay"; - version = "0.1.2"; + version = "0.1.4"; src = fetchFromGitHub { owner = "mystor"; repo = "phlay"; - rev = "0deedf7397e2133bf270c41136c7650433610d4e"; - sha256 = "1jdxk0a551zcfq6j8cp6ajm4dvsp7c0rqbdkk7h3lpdvws24z0n6"; + rev = "d3594b4c48b40f742bbd8b6293aeb29f33be45ef"; + sha256 = "0b7xzrkafm6nb8rm19izyaymmc3mbr0ana1yspffxw819xwzl6vx"; }; meta = { description = "A command-line interface for Phabricator"; -- cgit 1.4.1 From 3f66b333ae1204bcb1106f41bf8f10c707ca6369 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Tue, 23 Oct 2018 14:07:46 -0400 Subject: Delete firefox-nightly-bin derivation This use case is alreday better satisfied by the latest.firefox-nightly-bin attribute. The bare firefox-nightly-bin attribute is just confusing. Fixes #68. --- firefox-overlay.nix | 3 --- pkgs/firefox-nightly-bin/default.nix | 28 ---------------------------- pkgs/firefox-nightly-bin/sources.nix | 10 ---------- 3 files changed, 41 deletions(-) delete mode 100644 pkgs/firefox-nightly-bin/default.nix delete mode 100644 pkgs/firefox-nightly-bin/sources.nix diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 08bf17a8cb97..7e9eefc20929 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -169,9 +169,6 @@ in }; }; - # Set of packages which are frozen at this given revision of nixpkgs-mozilla. - firefox-nightly-bin = super.callPackage ./pkgs/firefox-nightly-bin/default.nix { }; - # Use rust-cbindgen imported from Nixpkgs (September 2018) unless the current # version of Nixpkgs already packages a version of rust-cbindgen. rust-cbindgen-latest = super.callPackage ./pkgs/cbindgen { diff --git a/pkgs/firefox-nightly-bin/default.nix b/pkgs/firefox-nightly-bin/default.nix deleted file mode 100644 index 6ec3b0a2b66e..000000000000 --- a/pkgs/firefox-nightly-bin/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ pkgs -}: - -let - - unwrapped = pkgs.firefox-bin-unwrapped.override { - inherit (pkgs) stdenv; - channel = "nightly"; - generated = import (./. + "/sources.nix"); - gconf = pkgs.gnome2.GConf; - inherit (pkgs.gnome2) libgnome libgnomeui; - inherit (pkgs.gnome3) defaultIconTheme; - }; - - name = "firefox-nightly-bin-${(builtins.parseDrvName unwrapped.name).version}"; - - self = pkgs.wrapFirefox unwrapped { - browserName = "firefox"; - desktopName = "Firefox Nightly"; - inherit name; - }; - -in self // { - updateScript = import ./update.nix { - inherit name; - inherit (pkgs) writeScript xidel coreutils gnused gnugrep curl jq; - }; -} diff --git a/pkgs/firefox-nightly-bin/sources.nix b/pkgs/firefox-nightly-bin/sources.nix deleted file mode 100644 index 9366623eb22c..000000000000 --- a/pkgs/firefox-nightly-bin/sources.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - version = "57.0a1" + "-" + "20170829"; - sources = [ - { url = "https://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central/firefox-57.0a1.en-US.linux-x86_64.tar.bz2"; - locale = "en-US"; - arch = "linux-x86_64"; - sha512 = "1ggz8rl7n6j6qx7sira5dmqfy769swxh0dpi4mn6fdc7ppbrbyz58g4a47f6g1ng04y646h75yxdhqjp55nxqcp7v861b004bzf9b88"; - } - ]; -} -- cgit 1.4.1 From 88dcae7fc771e757e17355ed5de8d8fe7501c1e7 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Tue, 30 Oct 2018 15:46:01 -0400 Subject: Use the CERN portal to download Vidyo 3.6.3 Replaces #128. --- pkgs/VidyoDesktop/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index ae297d2da1d2..0e09c1d58ea4 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -15,7 +15,7 @@ let builder = ./builder.sh; inherit dpkg; src = fetchurl { - url = "https://v.mozilla.com/upload/VidyoDesktopInstaller-ubuntu64-TAG_VD_${vidyoVersionUnderscore}_${vidyoBuild}.deb"; + url = "https://vidyoportal.cern.ch/upload/VidyoDesktopInstaller-ubuntu64-TAG_VD_${vidyoVersionUnderscore}_${vidyoBuild}.deb"; sha256 = "01spq6r49myv82fdimvq3ykwb1lc5bymylzcydfdp9xz57f5a94x"; }; buildInputs = [ makeWrapper ]; -- cgit 1.4.1 From a26d388082fcd470fa05e3276c9405dc306fdf16 Mon Sep 17 00:00:00 2001 From: Pierre-Étienne Meunier Date: Tue, 20 Nov 2018 19:13:56 +0000 Subject: rust-overlay: fixing the latest nightly Rusts --- rust-overlay.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/rust-overlay.nix b/rust-overlay.nix index abf2816b0b41..306819e7625d 100644 --- a/rust-overlay.nix +++ b/rust-overlay.nix @@ -142,6 +142,7 @@ let # This code is inspired by patchelf/setup-hook.sh to iterate over all binaries. installPhase = '' patchShebangs install.sh + sed -i "s/llvm-tools-preview//" components CFG_DISABLE_LDCONFIG=1 ./install.sh --prefix=$out --verbose setInterpreter() { -- cgit 1.4.1 From 2bb4c4a863e07515408aa8023f9e29810f93c22e Mon Sep 17 00:00:00 2001 From: Jade Date: Mon, 10 Dec 2018 15:09:55 -0600 Subject: Updates firefox overlay to use HTTPS --- firefox-overlay.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 7e9eefc20929..0e887ca08b63 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -42,9 +42,9 @@ let versionInfo = { name, version, release, system ? arch, timestamp ? null }: with builtins; if release then # For versions such as Beta & Release: - # http://download.cdn.mozilla.net/pub/firefox/releases/55.0b3/SHA256SUMS + # https://download.cdn.mozilla.net/pub/firefox/releases/55.0b3/SHA256SUMS let - dir = "http://download.cdn.mozilla.net/pub/firefox/releases/${version}"; + dir = "https://download.cdn.mozilla.net/pub/firefox/releases/${version}"; file = "${system}/en-US/firefox-${version}.tar.bz2"; in rec { chksum = "${dir}/SHA512SUMS"; @@ -54,11 +54,11 @@ let } else # For Nightly versions: - # http://download.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.checksums + # https://download.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central/firefox-56.0a1.en-US.linux-x86_64.checksums let dir = - if timestamp == null then "http://download.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central" - else "http://download.cdn.mozilla.net/pub/firefox/nightly/${yearOf timestamp}/${monthOf timestamp}/${timestamp}-mozilla-central" ; + if timestamp == null then "https://download.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-central" + else "https://download.cdn.mozilla.net/pub/firefox/nightly/${yearOf timestamp}/${monthOf timestamp}/${timestamp}-mozilla-central" ; file = "firefox-${version}.en-US.${system}.tar.bz2"; in rec { chksum = "${dir}/firefox-${version}.en-US.${system}.checksums"; -- cgit 1.4.1 From 6e4ba39f0875bb7265611bff5a2745aa39000c58 Mon Sep 17 00:00:00 2001 From: Rail Aliiev Date: Thu, 6 Dec 2018 21:26:39 -0500 Subject: Change Vidyo URL Instead of using a 3rd party URL, we can use Vidyo's server. --- pkgs/VidyoDesktop/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/VidyoDesktop/default.nix b/pkgs/VidyoDesktop/default.nix index 0e09c1d58ea4..7dfdb6b59aed 100644 --- a/pkgs/VidyoDesktop/default.nix +++ b/pkgs/VidyoDesktop/default.nix @@ -15,7 +15,7 @@ let builder = ./builder.sh; inherit dpkg; src = fetchurl { - url = "https://vidyoportal.cern.ch/upload/VidyoDesktopInstaller-ubuntu64-TAG_VD_${vidyoVersionUnderscore}_${vidyoBuild}.deb"; + url = "https://client-downloads.vidyocloud.com/VidyoDesktopInstaller-ubuntu64-TAG_VD_${vidyoVersionUnderscore}_${vidyoBuild}.deb"; sha256 = "01spq6r49myv82fdimvq3ykwb1lc5bymylzcydfdp9xz57f5a94x"; }; buildInputs = [ makeWrapper ]; -- cgit 1.4.1 From fcd3e318d6e90ea8ab30951431ce9a6efda42566 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Thu, 13 Dec 2018 09:07:13 -0500 Subject: Bump cbindgen to 0.6.7 This is required now since https://bugzilla.mozilla.org/show_bug.cgi?id=1503401. --- firefox-overlay.nix | 2 +- pkgs/cbindgen/default.nix | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/firefox-overlay.nix b/firefox-overlay.nix index 0e887ca08b63..083b9fbbe683 100644 --- a/firefox-overlay.nix +++ b/firefox-overlay.nix @@ -159,7 +159,7 @@ in rust-cbindgen = if !(self ? "rust-cbindgen") then self.rust-cbindgen-latest - else if builtins.compareVersions self.rust-cbindgen.name "rust-cbindgen-0.6.4" < 0 + else if builtins.compareVersions self.rust-cbindgen.version "0.6.7" < 0 then self.rust-cbindgen-latest else self.rust-cbindgen; # Due to std::ascii::AsciiExt changes in 1.23, Gecko does not compile, so diff --git a/pkgs/cbindgen/default.nix b/pkgs/cbindgen/default.nix index c47652031568..fbaf74ed93ac 100644 --- a/pkgs/cbindgen/default.nix +++ b/pkgs/cbindgen/default.nix @@ -5,13 +5,13 @@ rustPlatform.buildRustPackage rec { name = "rust-cbindgen-${version}"; - version = "0.6.6"; + version = "0.6.7"; src = fetchFromGitHub { owner = "eqrion"; repo = "cbindgen"; rev = "v${version}"; - sha256 = "12s4lps8p6hrxvki9a5dxzbmxsddvkm6ias3n4daa1s3bncd86zk"; + sha256 = "0sgkgvkqrc6l46fvk6d9hsy0xrjpl2ix47f3cv5bi74dv8i4y2b4"; }; cargoSha256 = "137dqj1sp02dh0dz9psf8i8q57gmz3rfgmwk073k7x5zzkgvj21c"; -- cgit 1.4.1 From ff4d190763c33a212397f19644b907e34505aac2 Mon Sep 17 00:00:00 2001 From: Ethan Glasser-Camp Date: Thu, 27 Dec 2018 23:11:15 -0500 Subject: nasm is now required to build Gecko This was introduced in https://bugzilla.mozilla.org/show_bug.cgi?id=1501796. --- pkgs/gecko/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/gecko/default.nix b/pkgs/gecko/default.nix index 610a7a371340..5007832c2697 100644 --- a/pkgs/gecko/default.nix +++ b/pkgs/gecko/default.nix @@ -9,7 +9,7 @@ , setuptools , rust # rust & cargo bundled. (otheriwse use pkgs.rust.{rustc,cargo}) , buildFHSUserEnv # Build a FHS environment with all Gecko dependencies. -, llvmPackages +, llvmPackages, nasm , ccache , zlib, xorg @@ -87,6 +87,9 @@ let # cbindgen is used to generate C bindings for WebRender. rust-cbindgen + # nasm is used to build libdav1d. + nasm + # NodeJS is used for tooling around JS development. nodejs -- cgit 1.4.1