diff options
89 files changed, 2569 insertions, 887 deletions
diff --git a/doc/languages-frameworks/rust.md b/doc/languages-frameworks/rust.md index d3a25e9d1358..f0498eac5b19 100644 --- a/doc/languages-frameworks/rust.md +++ b/doc/languages-frameworks/rust.md @@ -58,6 +58,8 @@ To install crates with nix there is also an experimental project called ## Compiling Rust crates using Nix instead of Cargo +### Simple operation + When run, `cargo build` produces a file called `Cargo.lock`, containing pinned versions of all dependencies. Nixpkgs contains a tool called `carnix` (`nix-env -iA nixos.carnix`), which can be used @@ -153,6 +155,8 @@ Here, the `libc` crate has no `src` attribute, so `buildRustCrate` will fetch it from [crates.io](https://crates.io). A `sha256` attribute is still needed for Nix purity. +### Handling external dependencies + Some crates require external libraries. For crates from [crates.io](https://crates.io), such libraries can be specified in `defaultCrateOverrides` package in nixpkgs itself. @@ -210,7 +214,10 @@ with import <nixpkgs> {}; } ``` -Three more parameters can be overridden: +### Options and phases configuration + +Actually, the overrides introduced in the previous section are more +general. A number of other parameters can be overridden: - The version of rustc used to compile the crate: @@ -232,6 +239,30 @@ Three more parameters can be overridden: (hello {}).override { verbose = false; }; ``` +- Extra arguments to be passed to `rustc`: + + ``` + (hello {}).override { extraRustcOpts = "-Z debuginfo=2"; }; + ``` + +- Phases, just like in any other derivation, can be specified using + the following attributes: `preUnpack`, `postUnpack`, `prePatch`, + `patches`, `postPatch`, `preConfigure` (in the case of a Rust crate, + this is run before calling the "build" script), `postConfigure` + (after the "build" script),`preBuild`, `postBuild`, `preInstall` and + `postInstall`. As an example, here is how to create a new module + before running the build script: + + ``` + (hello {}).override { + preConfigure = '' + echo "pub const PATH=\"${hi.out}\";" >> src/path.rs" + ''; + }; + ``` + +### Features + One can also supply features switches. For example, if we want to compile `diesel_cli` only with the `postgres` feature, and no default features, we would write: @@ -243,7 +274,7 @@ features, we would write: } ``` - +Where `diesel.nix` is the file generated by Carnix, as explained above. ## Using the Rust nightlies overlay diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix index 3106c05dd5d2..9350a16017dd 100644 --- a/lib/systems/platforms.nix +++ b/lib/systems/platforms.nix @@ -545,6 +545,13 @@ rec { name = "riscv-multiplatform"; kernelArch = "riscv"; bfdEmulation = "elf${bits}lriscv"; + kernelTarget = "vmlinux"; + kernelAutoModules = true; + kernelBaseConfig = "defconfig"; + kernelExtraConfig = '' + FTRACE n + SERIAL_OF_PLATFORM y + ''; }; selectBySystem = system: { diff --git a/nixos/doc/manual/configuration/xfce.xml b/nixos/doc/manual/configuration/xfce.xml index 21c7a85e19cc..18804d2c08be 100644 --- a/nixos/doc/manual/configuration/xfce.xml +++ b/nixos/doc/manual/configuration/xfce.xml @@ -35,18 +35,7 @@ services.compton = { To install them manually (system wide), put them into your <literal>environment.systemPackages</literal>. </para> - - <para> - NixOS’s default <emphasis>display manager</emphasis> is SLiM. - (DM is the program that provides a graphical login prompt - and manages the X server.) - You can, for example, select KDE’s - <command>sddm</command> instead: - <programlisting> -services.xserver.displayManager.sddm.enable = true; - </programlisting> - </para> - + <simplesect> <title>Thunar Volume Support</title> diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml index d4746f2eb3a8..2a5d1fc3ce8d 100644 --- a/nixos/doc/manual/installation/installing.xml +++ b/nixos/doc/manual/installation/installing.xml @@ -275,11 +275,20 @@ Enter new UNIX password: *** Retype new UNIX password: *** </screen> + <note> + <para> + To prevent the password prompt, set <code>users.mutableUsers = false;</code> in + <filename>configuration.nix</filename>, which allows unattended installation + necessary in automation. + </para> + </note> + </para> </listitem> - <listitem><para>If everything went well: + <listitem> + <para>If everything went well: <screen> # reboot</screen> diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix index 8a3d8ed17701..b7a38760dd3a 100644 --- a/nixos/lib/make-disk-image.nix +++ b/nixos/lib/make-disk-image.nix @@ -84,7 +84,7 @@ let format' = format; in let nixpkgs = cleanSource pkgs.path; - channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" {} '' + channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" {} '' mkdir -p $out cp -prd ${nixpkgs} $out/nixos chmod -R u+w $out/nixos @@ -92,7 +92,7 @@ let format' = format; in let ln -s . $out/nixos/nixpkgs fi rm -rf $out/nixos/.git - echo -n ${config.system.nixosVersionSuffix} > $out/nixos/.version-suffix + echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix ''; metaClosure = pkgs.writeText "meta" '' diff --git a/nixos/modules/installer/cd-dvd/channel.nix b/nixos/modules/installer/cd-dvd/channel.nix index ddb00f174d1a..4a1983167957 100644 --- a/nixos/modules/installer/cd-dvd/channel.nix +++ b/nixos/modules/installer/cd-dvd/channel.nix @@ -12,7 +12,7 @@ let # CD. These are installed into the "nixos" channel of the root # user, as expected by nixos-rebuild/nixos-install. FIXME: merge # with make-channel.nix. - channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}" + channelSources = pkgs.runCommand "nixos-${config.system.nixos.version}" { } '' mkdir -p $out @@ -21,7 +21,7 @@ let if [ ! -e $out/nixos/nixpkgs ]; then ln -s . $out/nixos/nixpkgs fi - echo -n ${config.system.nixosVersionSuffix} > $out/nixos/.version-suffix + echo -n ${config.system.nixos.versionSuffix} > $out/nixos/.version-suffix ''; in diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix index 2569860a098f..756c8751d00e 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix @@ -16,7 +16,7 @@ with lib; ]; # ISO naming. - isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixosLabel}-${pkgs.stdenv.system}.iso"; + isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.system}.iso"; isoImage.volumeID = substring 0 11 "NIXOS_ISO"; diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index a039f7fdcb6e..811449e9fe7e 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -39,31 +39,31 @@ let DEFAULT boot LABEL boot - MENU LABEL NixOS ${config.system.nixosLabel}${config.isoImage.appendToMenuLabel} - LINUX /boot/bzImage + MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} + LINUX /boot/${config.system.boot.loader.kernelFile} APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} - INITRD /boot/initrd + INITRD /boot/${config.system.boot.loader.initrdFile} # A variant to boot with 'nomodeset' LABEL boot-nomodeset - MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (nomodeset) - LINUX /boot/bzImage + MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (nomodeset) + LINUX /boot/${config.system.boot.loader.kernelFile} APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset - INITRD /boot/initrd + INITRD /boot/${config.system.boot.loader.initrdFile} # A variant to boot with 'copytoram' LABEL boot-copytoram - MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (copytoram) - LINUX /boot/bzImage + MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (copytoram) + LINUX /boot/${config.system.boot.loader.kernelFile} APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram - INITRD /boot/initrd + INITRD /boot/${config.system.boot.loader.initrdFile} # A variant to boot with verbose logging to the console LABEL boot-nomodeset - MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (debug) - LINUX /boot/bzImage + MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug) + LINUX /boot/${config.system.boot.loader.kernelFile} APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7 - INITRD /boot/initrd + INITRD /boot/${config.system.boot.loader.initrdFile} ''; isolinuxMemtest86Entry = '' @@ -82,35 +82,35 @@ let mkdir -p $out/loader/entries cat << EOF > $out/loader/entries/nixos-iso.conf - title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} - linux /boot/bzImage - initrd /boot/initrd + title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} + linux /boot/${config.system.boot.loader.kernelFile} + initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} EOF # A variant to boot with 'nomodeset' cat << EOF > $out/loader/entries/nixos-iso-nomodeset.conf - title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} + title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} version nomodeset - linux /boot/bzImage - initrd /boot/initrd + linux /boot/${config.system.boot.loader.kernelFile} + initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset EOF # A variant to boot with 'copytoram' cat << EOF > $out/loader/entries/nixos-iso-copytoram.conf - title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} + title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} version copytoram - linux /boot/bzImage - initrd /boot/initrd + linux /boot/${config.system.boot.loader.kernelFile} + initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram EOF # A variant to boot with verbose logging to the console cat << EOF > $out/loader/entries/nixos-iso-debug.conf - title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (debug) - linux /boot/bzImage - initrd /boot/initrd + title NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (debug) + linux /boot/${config.system.boot.loader.kernelFile} + initrd /boot/${config.system.boot.loader.initrdFile} options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7 EOF @@ -127,8 +127,8 @@ let mkdir ./contents && cd ./contents cp -rp "${efiDir}"/* . mkdir ./boot - cp -p "${config.boot.kernelPackages.kernel}/bzImage" \ - "${config.system.build.initialRamdisk}/initrd" ./boot/ + cp -p "${config.boot.kernelPackages.kernel}/${config.system.boot.loader.kernelFile}" \ + "${config.system.build.initialRamdisk}/${config.system.boot.loader.initrdFile}" ./boot/ touch --date=@0 ./* usage_size=$(du -sb --apparent-size . | tr -cd '[:digit:]') @@ -346,11 +346,11 @@ in }; target = "/isolinux/isolinux.cfg"; } - { source = config.boot.kernelPackages.kernel + "/bzImage"; - target = "/boot/bzImage"; + { source = config.boot.kernelPackages.kernel + "/" + config.system.boot.loader.kernelFile; + target = "/boot/" + config.system.boot.loader.kernelFile; } - { source = config.system.build.initialRamdisk + "/initrd"; - target = "/boot/initrd"; + { source = config.system.build.initialRamdisk + "/" + config.system.boot.loader.initrdFile; + target = "/boot/" + config.system.boot.loader.initrdFile; } { source = config.system.build.squashfsStore; target = "/nix-store.squashfs"; @@ -361,7 +361,7 @@ in { source = config.isoImage.splashImage; target = "/isolinux/background.png"; } - { source = pkgs.writeText "version" config.system.nixosVersion; + { source = pkgs.writeText "version" config.system.nixos.label; target = "/version.txt"; } ] ++ optionals config.isoImage.makeEfiBootable [ diff --git a/nixos/modules/installer/cd-dvd/system-tarball.nix b/nixos/modules/installer/cd-dvd/system-tarball.nix index 1962a1959ead..e72d4a5b4910 100644 --- a/nixos/modules/installer/cd-dvd/system-tarball.nix +++ b/nixos/modules/installer/cd-dvd/system-tarball.nix @@ -8,7 +8,7 @@ with lib; let - versionFile = pkgs.writeText "nixos-version" config.system.nixosVersion; + versionFile = pkgs.writeText "nixos-label" config.system.nixos.label; in @@ -58,8 +58,8 @@ in # Individual files to be included on the CD, outside of the Nix # store on the CD. tarball.contents = - [ { source = config.system.build.initialRamdisk + "/initrd"; - target = "/boot/initrd"; + [ { source = config.system.build.initialRamdisk + "/" + config.system.boot.loader.initrdFile; + target = "/boot/" + config.system.boot.loader.initrdFile; } { source = versionFile; target = "/nixos-version.txt"; diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 7c737e84de0a..a82ee63fd0cd 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -625,7 +625,7 @@ $bootLoaderConfig # compatible, in order to avoid breaking some software such as database # servers. You should change this only after NixOS release notes say you # should. - system.stateVersion = "${\(qw(@nixosRelease@))}"; # Did you read the comment? + system.stateVersion = "${\(qw(@release@))}"; # Did you read the comment? } EOF diff --git a/nixos/modules/installer/tools/nixos-version.sh b/nixos/modules/installer/tools/nixos-version.sh index 77a1b458a342..190c49a33ec6 100644 --- a/nixos/modules/installer/tools/nixos-version.sh +++ b/nixos/modules/installer/tools/nixos-version.sh @@ -6,9 +6,9 @@ case "$1" in exit 1 ;; --hash|--revision) - echo "@nixosRevision@" + echo "@revision@" ;; *) - echo "@nixosVersion@ (@nixosCodeName@)" + echo "@version@ (@codeName@)" ;; esac diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index a3bae78c0ffc..eab5f1147667 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -55,7 +55,7 @@ let src = ./nixos-generate-config.pl; path = [ pkgs.btrfs-progs ]; perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl"; - inherit (config.system) nixosRelease; + inherit (config.system.nixos) release; }; nixos-option = makeProg { @@ -66,7 +66,7 @@ let nixos-version = makeProg { name = "nixos-version"; src = ./nixos-version.sh; - inherit (config.system) nixosVersion nixosCodeName nixosRevision; + inherit (config.system.nixos) version codeName revision; }; in diff --git a/nixos/modules/misc/label.nix b/nixos/modules/misc/label.nix new file mode 100644 index 000000000000..250914e8f82e --- /dev/null +++ b/nixos/modules/misc/label.nix @@ -0,0 +1,72 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.system.nixos; +in + +{ + + options.system = { + + nixos.label = mkOption { + type = types.str; + description = '' + NixOS version name to be used in the names of generated + outputs and boot labels. + + If you ever wanted to influence the labels in your GRUB menu, + this is the option for you. + + The default is <option>system.nixos.tags</option> separated by + "-" + "-" + <envar>NIXOS_LABEL_VERSION</envar> environment + variable (defaults to the value of + <option>system.nixos.version</option>). + + Can be overriden by setting <envar>NIXOS_LABEL</envar>. + + Useful for not loosing track of configurations built from different + nixos branches/revisions, e.g.: + + <screen> + #!/bin/sh + today=`date +%Y%m%d` + branch=`(cd nixpkgs ; git branch 2>/dev/null | sed -n '/^\* / { s|^\* ||; p; }')` + revision=`(cd nixpkgs ; git rev-parse HEAD)` + export NIXOS_LABEL_VERSION="$today.$branch-''${revision:0:7}" + nixos-rebuild switch</screen> + ''; + }; + + nixos.tags = mkOption { + type = types.listOf types.str; + default = []; + example = [ "with-xen" ]; + description = '' + Strings to prefix to the default + <option>system.nixos.label</option>. + + Useful for not loosing track of configurations built with + different options, e.g.: + + <screen> + { + system.nixos.tags = [ "with-xen" ]; + virtualisation.xen.enable = true; + } + </screen> + ''; + }; + + }; + + config = { + # This is set here rather than up there so that changing it would + # not rebuild the manual + system.nixos.label = mkDefault (maybeEnv "NIXOS_LABEL" + (concatStringsSep "-" (sort (x: y: x < y) cfg.tags) + + "-" + maybeEnv "NIXOS_LABEL_VERSION" cfg.version)); + }; + +} diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix index 48cde2ebbc8a..6af584250a70 100644 --- a/nixos/modules/misc/version.nix +++ b/nixos/modules/misc/version.nix @@ -3,7 +3,7 @@ with lib; let - cfg = config.system; + cfg = config.system.nixos; releaseFile = "${toString pkgs.path}/.version"; suffixFile = "${toString pkgs.path}/.version-suffix"; @@ -16,51 +16,27 @@ in options.system = { - stateVersion = mkOption { - type = types.str; - default = cfg.nixosRelease; - description = '' - Every once in a while, a new NixOS release may change - configuration defaults in a way incompatible with stateful - data. For instance, if the default version of PostgreSQL - changes, the new version will probably be unable to read your - existing databases. To prevent such breakage, you can set the - value of this option to the NixOS release with which you want - to be compatible. The effect is that NixOS will option - defaults corresponding to the specified release (such as using - an older version of PostgreSQL). - ''; - }; - - nixosLabel = mkOption { - type = types.str; - description = '' - Label to be used in the names of generated outputs and boot - labels. - ''; - }; - - nixosVersion = mkOption { + nixos.version = mkOption { internal = true; type = types.str; description = "The full NixOS version (e.g. <literal>16.03.1160.f2d4ee1</literal>)."; }; - nixosRelease = mkOption { + nixos.release = mkOption { readOnly = true; type = types.str; default = fileContents releaseFile; description = "The NixOS release (e.g. <literal>16.03</literal>)."; }; - nixosVersionSuffix = mkOption { + nixos.versionSuffix = mkOption { internal = true; type = types.str; default = if pathExists suffixFile then fileContents suffixFile else "pre-git"; description = "The NixOS version suffix (e.g. <literal>1160.f2d4ee1</literal>)."; }; - nixosRevision = mkOption { + nixos.revision = mkOption { internal = true; type = types.str; default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo @@ -69,12 +45,28 @@ in description = "The Git revision from which this NixOS configuration was built."; }; - nixosCodeName = mkOption { + nixos.codeName = mkOption { readOnly = true; type = types.str; description = "The NixOS release code name (e.g. <literal>Emu</literal>)."; }; + stateVersion = mkOption { + type = types.str; + default = cfg.release; + description = '' + Every once in a while, a new NixOS release may change + configuration defaults in a way incompatible with stateful + data. For instance, if the default version of PostgreSQL + changes, the new version will probably be unable to read your + existing databases. To prevent such breakage, you can set the + value of this option to the NixOS release with which you want + to be compatible. The effect is that NixOS will option + defaults corresponding to the specified release (such as using + an older version of PostgreSQL). + ''; + }; + defaultChannel = mkOption { internal = true; type = types.str; @@ -86,16 +78,15 @@ in config = { - system = { + system.nixos = { # These defaults are set here rather than up there so that # changing them would not rebuild the manual - nixosLabel = mkDefault cfg.nixosVersion; - nixosVersion = mkDefault (cfg.nixosRelease + cfg.nixosVersionSuffix); - nixosRevision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId); - nixosVersionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId)); + version = mkDefault (cfg.release + cfg.versionSuffix); + revision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId); + versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId)); # Note: code names must only increase in alphabetical order. - nixosCodeName = "Impala"; + codeName = "Impala"; }; # Generate /etc/os-release. See @@ -105,10 +96,10 @@ in '' NAME=NixOS ID=nixos - VERSION="${config.system.nixosVersion} (${config.system.nixosCodeName})" - VERSION_CODENAME=${toLower config.system.nixosCodeName} - VERSION_ID="${config.system.nixosVersion}" - PRETTY_NAME="NixOS ${config.system.nixosVersion} (${config.system.nixosCodeName})" + VERSION="${cfg.version} (${cfg.codeName})" + VERSION_CODENAME=${toLower cfg.codeName} + VERSION_ID="${cfg.version}" + PRETTY_NAME="NixOS ${cfg.version} (${cfg.codeName})" HOME_URL="https://nixos.org/" SUPPORT_URL="https://nixos.org/nixos/support.html" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 01bd2960517b..795f6fda3053 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -60,6 +60,7 @@ ./misc/extra-arguments.nix ./misc/ids.nix ./misc/lib.nix + ./misc/label.nix ./misc/locate.nix ./misc/meta.nix ./misc/nixpkgs.nix @@ -509,6 +510,7 @@ ./services/networking/ngircd.nix ./services/networking/nghttpx/default.nix ./services/networking/nix-serve.nix + ./services/networking/nixops-dns.nix ./services/networking/nntp-proxy.nix ./services/networking/nsd.nix ./services/networking/ntopng.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 710387ebc1d6..da83baed3719 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -189,6 +189,14 @@ with lib; # Profile splitting (mkRenamedOptionModule [ "virtualization" "growPartition" ] [ "boot" "growPartition" ]) + # misc/version.nix + (mkRenamedOptionModule [ "config" "system" "nixosVersion" ] [ "config" "system" "nixos" "version" ]) + (mkRenamedOptionModule [ "config" "system" "nixosRelease" ] [ "config" "system" "nixos" "release" ]) + (mkRenamedOptionModule [ "config" "system" "nixosVersionSuffix" ] [ "config" "system" "nixos" "versionSuffix" ]) + (mkRenamedOptionModule [ "config" "system" "nixosRevision" ] [ "config" "system" "nixos" "revision" ]) + (mkRenamedOptionModule [ "config" "system" "nixosCodeName" ] [ "config" "system" "nixos" "codeName" ]) + (mkRenamedOptionModule [ "config" "system" "nixosLabel" ] [ "config" "system" "nixos" "label" ]) + # Options that are obsolete and have no replacement. (mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ] "") (mkRemovedOptionModule [ "programs" "bash" "enable" ] "") diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix index 41cadb4a6de0..5d0f2abd13a9 100644 --- a/nixos/modules/services/misc/nixos-manual.nix +++ b/nixos/modules/services/misc/nixos-manual.nix @@ -16,10 +16,10 @@ let It isn't perfect, but it seems to cover a vast majority of use cases. Caveat: even if the package is reached by a different means, the path above will be shown and not e.g. `${config.services.foo.package}`. */ - manual = import ../../../doc/manual { + manual = import ../../../doc/manual rec { inherit pkgs config; - version = config.system.nixosRelease; - revision = "release-${config.system.nixosRelease}"; + version = config.system.nixos.release; + revision = "release-${version}"; options = let scrubbedEval = evalModules { diff --git a/nixos/modules/services/misc/ssm-agent.nix b/nixos/modules/services/misc/ssm-agent.nix index c1e1f0903539..a57fbca86fb6 100644 --- a/nixos/modules/services/misc/ssm-agent.nix +++ b/nixos/modules/services/misc/ssm-agent.nix @@ -12,7 +12,7 @@ let case "$1" in -i) echo "nixos";; - -r) echo "${config.system.nixosVersion}";; + -r) echo "${config.system.nixos.version}";; esac ''; in { diff --git a/nixos/modules/services/networking/nixops-dns.nix b/nixos/modules/services/networking/nixops-dns.nix new file mode 100644 index 000000000000..2bb1263b7fa2 --- /dev/null +++ b/nixos/modules/services/networking/nixops-dns.nix @@ -0,0 +1,79 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + pkg = pkgs.nixops-dns; + cfg = config.services.nixops-dns; +in + +{ + options = { + services.nixops-dns = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable the nixops-dns resolution + of NixOps virtual machines via dnsmasq and fake domain name. + ''; + }; + + user = mkOption { + type = types.str; + description = '' + The user the nixops-dns daemon should run as. + This should be the user, which is also used for nixops and + have the .nixops directory in its home. + ''; + }; + + domain = mkOption { + type = types.str; + description = '' + Fake domain name to resolve to NixOps virtual machines. + + For example "ops" will resolve "vm.ops". + ''; + example = "ops"; + default = "ops"; + }; + + dnsmasq = mkOption { + type = types.bool; + default = true; + description = '' + Enable dnsmasq forwarding to nixops-dns. This allows to use + nixops-dns for `services.nixops-dns.domain` resolution + while forwarding the rest of the queries to original resolvers. + ''; + }; + + }; + }; + + config = mkIf cfg.enable { + systemd.services.nixops-dns = { + description = "nixops-dns: DNS server for resolving NixOps machines"; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + Type = "simple"; + User = cfg.user; + ExecStart="${pkg}/bin/nixops-dns --domain=.${cfg.domain}"; + }; + }; + + services.dnsmasq = mkIf cfg.dnsmasq { + enable = true; + resolveLocalQueries = true; + servers = [ + "/${cfg.domain}/127.0.0.1#5300" + ]; + extraConfig = '' + bind-interfaces + listen-address=127.0.0.1 + ''; + }; + + }; +} diff --git a/nixos/modules/services/ttys/agetty.nix b/nixos/modules/services/ttys/agetty.nix index 3429397d2cc2..b50de496e975 100644 --- a/nixos/modules/services/ttys/agetty.nix +++ b/nixos/modules/services/ttys/agetty.nix @@ -64,8 +64,8 @@ in config = { # Note: this is set here rather than up there so that changing - # nixosLabel would not rebuild manual pages - services.mingetty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixosLabel} (\m) - \l >>>''; + # nixos.label would not rebuild manual pages + services.mingetty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixos.label} (\m) - \l >>>''; systemd.services."getty@" = { serviceConfig.ExecStart = [ diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix index 0c50241f2edf..091a2e412eed 100644 --- a/nixos/modules/system/activation/top-level.nix +++ b/nixos/modules/system/activation/top-level.nix @@ -30,6 +30,8 @@ let let kernelPath = "${config.boot.kernelPackages.kernel}/" + "${config.system.boot.loader.kernelFile}"; + initrdPath = "${config.system.build.initialRamdisk}/" + + "${config.system.boot.loader.initrdFile}"; in '' mkdir $out @@ -50,7 +52,7 @@ let echo -n "$kernelParams" > $out/kernel-params - ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd + ln -s ${initrdPath} $out/initrd ln -s ${config.system.build.initialRamdiskSecretAppender}/bin/append-initrd-secrets $out @@ -106,7 +108,7 @@ let if [] == failed then pkgs.stdenvNoCC.mkDerivation { name = let hn = config.networking.hostName; nn = if (hn != "") then hn else "unnamed"; - in "nixos-system-${nn}-${config.system.nixosLabel}"; + in "nixos-system-${nn}-${config.system.nixos.label}"; preferLocalBuild = true; allowSubstitutes = false; buildCommand = systemBuilder; @@ -120,7 +122,7 @@ let config.system.build.installBootLoader or "echo 'Warning: do not know how to make this configuration bootable; please enable a boot loader.' 1>&2; true"; activationScript = config.system.activationScripts.script; - nixosLabel = config.system.nixosLabel; + nixosLabel = config.system.nixos.label; configurationName = config.boot.loader.grub.configurationName; @@ -179,6 +181,15 @@ in ''; }; + system.boot.loader.initrdFile = mkOption { + internal = true; + default = "initrd"; + type = types.str; + description = '' + Name of the initrd file to be passed to the bootloader. + ''; + }; + system.copySystemConfiguration = mkOption { type = types.bool; default = false; diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix index e78fdf1311d3..f8fb8a64cb9b 100644 --- a/nixos/modules/system/boot/plymouth.nix +++ b/nixos/modules/system/boot/plymouth.nix @@ -10,7 +10,7 @@ let breezePlymouth = pkgs.breeze-plymouth.override { nixosBranding = true; - nixosVersion = config.system.nixosRelease; + nixosVersion = config.system.nixos.release; }; themesEnv = pkgs.buildEnv { diff --git a/nixos/modules/virtualisation/brightbox-image.nix b/nixos/modules/virtualisation/brightbox-image.nix index 08bbcfd9d7c2..39a655b4c104 100644 --- a/nixos/modules/virtualisation/brightbox-image.nix +++ b/nixos/modules/virtualisation/brightbox-image.nix @@ -26,7 +26,7 @@ in rm $diskImageBase popd ''; - diskImageBase = "nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw"; + diskImageBase = "nixos-image-${config.system.nixos.label}-${pkgs.stdenv.system}.raw"; buildInputs = [ pkgs.utillinux pkgs.perl ]; exportReferencesGraph = [ "closure" config.system.build.toplevel ]; diff --git a/nixos/modules/virtualisation/google-compute-image.nix b/nixos/modules/virtualisation/google-compute-image.nix index 2fb38059b261..155a33b3bb37 100644 --- a/nixos/modules/virtualisation/google-compute-image.nix +++ b/nixos/modules/virtualisation/google-compute-image.nix @@ -14,7 +14,7 @@ in PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]} pushd $out mv $diskImage disk.raw - tar -Szcf nixos-image-${config.system.nixosLabel}-${pkgs.stdenv.system}.raw.tar.gz disk.raw + tar -Szcf nixos-image-${config.system.nixos.label}-${pkgs.stdenv.system}.raw.tar.gz disk.raw rm $out/disk.raw popd ''; diff --git a/nixos/modules/virtualisation/virtualbox-host.nix b/nixos/modules/virtualisation/virtualbox-host.nix index 91a46ac852b2..7413e12c8f3d 100644 --- a/nixos/modules/virtualisation/virtualbox-host.nix +++ b/nixos/modules/virtualisation/virtualbox-host.nix @@ -124,7 +124,7 @@ in ''; }; - networking.interfaces.vboxnet0.ipv4.addresses = { address = "192.168.56.1"; prefixLength = 24; }; + networking.interfaces.vboxnet0.ipv4.addresses = [{ address = "192.168.56.1"; prefixLength = 24; }]; # Make sure NetworkManager won't assume this interface being up # means we have internet access. networking.networkmanager.unmanaged = ["vboxnet0"]; diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix index a544403e6bed..64f145f77ca3 100644 --- a/nixos/modules/virtualisation/virtualbox-image.nix +++ b/nixos/modules/virtualisation/virtualbox-image.nix @@ -22,7 +22,7 @@ in { config = { system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix { - name = "nixos-ova-${config.system.nixosLabel}-${pkgs.stdenv.system}"; + name = "nixos-ova-${config.system.nixos.label}-${pkgs.stdenv.system}"; inherit pkgs lib config; partitionTableType = "legacy"; @@ -37,7 +37,7 @@ in { VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage echo "creating VirtualBox VM..." - vmName="NixOS ${config.system.nixosLabel} (${pkgs.stdenv.system})" + vmName="NixOS ${config.system.nixos.label} (${pkgs.stdenv.system})" VBoxManage createvm --name "$vmName" --register \ --ostype ${if pkgs.stdenv.system == "x86_64-linux" then "Linux26_64" else "Linux26"} VBoxManage modifyvm "$vmName" \ @@ -53,7 +53,7 @@ in { echo "exporting VirtualBox VM..." mkdir -p $out - fn="$out/nixos-${config.system.nixosLabel}-${pkgs.stdenv.system}.ova" + fn="$out/nixos-${config.system.nixos.label}-${pkgs.stdenv.system}.ova" VBoxManage export "$vmName" --output "$fn" rm -v $diskImage diff --git a/nixos/release.nix b/nixos/release.nix index 6bf2e4d8c7f8..8095dfeab843 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -35,8 +35,8 @@ let versionModule = - { system.nixosVersionSuffix = versionSuffix; - system.nixosRevision = nixpkgs.rev or nixpkgs.shortRev; + { system.nixos.versionSuffix = versionSuffix; + system.nixos.revision = nixpkgs.rev or nixpkgs.shortRev; }; diff --git a/pkgs/applications/altcoins/go-ethereum.nix b/pkgs/applications/altcoins/go-ethereum.nix index ca28dfb76b80..f35213a085b1 100644 --- a/pkgs/applications/altcoins/go-ethereum.nix +++ b/pkgs/applications/altcoins/go-ethereum.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "go-ethereum-${version}"; - version = "1.7.3"; + version = "1.8.1"; goPackagePath = "github.com/ethereum/go-ethereum"; # Fix for usb-related segmentation faults on darwin @@ -16,7 +16,7 @@ buildGoPackage rec { owner = "ethereum"; repo = "go-ethereum"; rev = "v${version}"; - sha256 = "1w6rbq2qpjyf2v9mr18yiv2af1h2sgyvgrdk4bd8ixgl3qcd5b11"; + sha256 = "0k7ly9cw68ranksa1fdn7v2lncmlqgabw3qiiyqya2xz3s4aazlf"; }; meta = with stdenv.lib; { diff --git a/pkgs/applications/audio/sayonara/default.nix b/pkgs/applications/audio/sayonara/default.nix new file mode 100644 index 000000000000..1bf1a8b2c49e --- /dev/null +++ b/pkgs/applications/audio/sayonara/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, cmake, qt5, zlib, taglib, pkgconfig, pcre, gst_all_1 }: + +let + version = "1.0.0-git5-20180115"; +in +stdenv.mkDerivation { + name = "sayonara-player-${version}"; + + src = fetchurl { + url = "https://sayonara-player.com/sw/sayonara-player-${version}.tar.gz"; + sha256 = "1fl7zplnrrvbv1xm4g348bpd46jj39jvbm808hyjjq92i64wqg37"; + }; + + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = with qt5; with gst_all_1; + [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly + pcre qtbase qttools taglib zlib + ]; + + # CMake Error at src/GUI/Resources/Icons/cmake_install.cmake:49 (file): + # file cannot create directory: /usr/share/icons. Maybe need administrative + # privileges. + # Call Stack (most recent call first): + # src/GUI/Resources/cmake_install.cmake:50 (include) + # src/GUI/cmake_install.cmake:50 (include) + # src/cmake_install.cmake:59 (include) + # cmake_install.cmake:42 (include) + postPatch = '' + substituteInPlace src/GUI/Resources/Icons/CMakeLists.txt \ + --replace "/usr/share" "$out/share" + ''; + + # [ 65%] Building CXX object src/Components/Engine/CMakeFiles/say_comp_engine.dir/AbstractPipeline.cpp.o + # /tmp/nix-build-sayonara-player-1.0.0-git5-20180115.drv-0/sayonara-player/src/Components/Engine/AbstractPipeline.cpp:28:32: fatal error: gst/app/gstappsink.h: No such file or directory + # #include <gst/app/gstappsink.h> + NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"; + + meta = with stdenv.lib; + { description = "Sayonara music player"; + homepage = https://sayonara-player.com/; + license = licenses.gpl3; + platforms = qt5.qtbase.meta.platforms; + maintainers = [ maintainers.deepfire ]; + }; +} diff --git a/pkgs/applications/misc/jekyll/Gemfile b/pkgs/applications/misc/jekyll/Gemfile deleted file mode 100644 index 97ebb9705bd6..000000000000 --- a/pkgs/applications/misc/jekyll/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' -gem 'jekyll' -gem 'jekyll-feed' -gem 'jekyll-paginate' -gem 'rdiscount' -gem 'RedCloth' -gem 'minima' diff --git a/pkgs/applications/misc/jekyll/Gemfile.lock b/pkgs/applications/misc/jekyll/Gemfile.lock deleted file mode 100644 index da4be83382fb..000000000000 --- a/pkgs/applications/misc/jekyll/Gemfile.lock +++ /dev/null @@ -1,59 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - RedCloth (4.3.2) - addressable (2.5.0) - public_suffix (~> 2.0, >= 2.0.2) - colorator (1.1.0) - ffi (1.9.18) - forwardable-extended (2.6.0) - jekyll (3.4.1) - addressable (~> 2.4) - colorator (~> 1.0) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (~> 1.7) - safe_yaml (~> 1.0) - jekyll-feed (0.9.1) - jekyll (~> 3.3) - jekyll-paginate (1.1.0) - jekyll-sass-converter (1.5.0) - sass (~> 3.4) - jekyll-watch (1.5.0) - listen (~> 3.0, < 3.1) - kramdown (1.13.2) - liquid (3.0.6) - listen (3.0.8) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - mercenary (0.3.6) - minima (2.1.0) - jekyll (~> 3.3) - pathutil (0.14.0) - forwardable-extended (~> 2.6) - public_suffix (2.0.5) - rb-fsevent (0.9.8) - rb-inotify (0.9.8) - ffi (>= 0.5.0) - rdiscount (2.2.0.1) - rouge (1.11.1) - safe_yaml (1.0.4) - sass (3.4.23) - -PLATFORMS - ruby - -DEPENDENCIES - RedCloth - jekyll - jekyll-feed - jekyll-paginate - minima - rdiscount - -BUNDLED WITH - 1.14.4 diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile b/pkgs/applications/misc/jekyll/basic/Gemfile new file mode 100644 index 000000000000..2d3446a81134 --- /dev/null +++ b/pkgs/applications/misc/jekyll/basic/Gemfile @@ -0,0 +1,10 @@ +source "https://rubygems.org" +gem "jekyll" +# jekyll alone might be enough for most use-cases +gem "rouge" +gem "activesupport", "~> 4.2" +gem "jekyll-avatar" +gem "jekyll-mentions" +gem "jekyll-seo-tag" +gem "jekyll-sitemap" +gem "jemoji" diff --git a/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/pkgs/applications/misc/jekyll/basic/Gemfile.lock new file mode 100644 index 000000000000..972403a47544 --- /dev/null +++ b/pkgs/applications/misc/jekyll/basic/Gemfile.lock @@ -0,0 +1,101 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + colorator (1.1.0) + concurrent-ruby (1.0.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.5) + ffi (1.9.21) + forwardable-extended (2.6.0) + gemoji (3.0.0) + html-pipeline (2.7.1) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.2) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.5.0) + jekyll (~> 3.0) + jekyll-mentions (1.2.0) + activesupport (~> 4.0) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.4.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-watch (2.0.0) + listen (~> 3.0) + jemoji (0.9.0) + activesupport (~> 4.0, >= 4.2.9) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.16.2) + liquid (4.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mini_portile2 (2.3.0) + minitest (5.11.3) + nokogiri (1.8.2) + mini_portile2 (~> 2.3.0) + pathutil (0.16.1) + forwardable-extended (~> 2.6) + public_suffix (3.0.2) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rouge (3.1.1) + ruby_dep (1.5.0) + safe_yaml (1.0.4) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + thread_safe (0.3.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 4.2) + jekyll + jekyll-avatar + jekyll-mentions + jekyll-seo-tag + jekyll-sitemap + jemoji + rouge + +BUNDLED WITH + 1.14.6 diff --git a/pkgs/applications/misc/jekyll/basic/gemset.nix b/pkgs/applications/misc/jekyll/basic/gemset.nix new file mode 100644 index 000000000000..32e90b07a263 --- /dev/null +++ b/pkgs/applications/misc/jekyll/basic/gemset.nix @@ -0,0 +1,326 @@ +{ + activesupport = { + dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7"; + type = "gem"; + }; + version = "4.2.10"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + type = "gem"; + }; + version = "2.5.2"; + }; + colorator = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; + type = "gem"; + }; + version = "1.1.0"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"; + type = "gem"; + }; + version = "1.0.5"; + }; + em-websocket = { + dependencies = ["eventmachine" "http_parser.rb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"; + type = "gem"; + }; + version = "0.5.1"; + }; + eventmachine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "075hdw0fgzldgss3xaqm2dk545736khcvv1fmzbf1sgdlkyh1v8z"; + type = "gem"; + }; + version = "1.2.5"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c2dl10pi6a30kcvx2s6p2v1wb4kbm48iv38kmz2ff600nirhpb8"; + type = "gem"; + }; + version = "1.9.21"; + }; + forwardable-extended = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + gemoji = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h85qpn2xbmsn8ssf2fqzlqg181j000m5z4l3g26r7vblncg162d"; + type = "gem"; + }; + version = "3.0.0"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hkx70z9ijgnncmrna9qdh9ajn9m7v146k91j257lrzyq2f6jdjd"; + type = "gem"; + }; + version = "2.7.1"; + }; + "http_parser.rb" = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; + type = "gem"; + }; + version = "0.9.5"; + }; + jekyll = { + dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05f61rqwz1isci7by34zyz38ah2rv5b8i5h618cxcl97hwqps8n2"; + type = "gem"; + }; + version = "3.7.2"; + }; + jekyll-avatar = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y2w7pnahkm3ddxrq589wv1w53ay7p1pvfs6khcmh6wq85r6wpsf"; + type = "gem"; + }; + version = "0.5.0"; + }; + jekyll-mentions = { + dependencies = ["activesupport" "html-pipeline" "jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00nqm1ng4iiibmv4vx0ayzq7fqm2sm1af98r4ykvld6asqj5qkyd"; + type = "gem"; + }; + version = "1.2.0"; + }; + jekyll-sass-converter = { + dependencies = ["sass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk"; + type = "gem"; + }; + version = "1.5.2"; + }; + jekyll-seo-tag = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f9b2mvmx57zj49afb3x8cmzdmb1kh4rbpbv3v7w5bh47g2c9big"; + type = "gem"; + }; + version = "2.4.0"; + }; + jekyll-sitemap = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xy93ysl1q8r4xhbnffycvsslja0dskh2z2pl1jnykwsy27dc89n"; + type = "gem"; + }; + version = "1.2.0"; + }; + jekyll-watch = { + dependencies = ["listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m7scvj3ki8bmyx5v8pzibpg6my10nycnc28lip98dskf8iakprp"; + type = "gem"; + }; + version = "2.0.0"; + }; + jemoji = { + dependencies = ["activesupport" "gemoji" "html-pipeline" "jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0acmi7mgr844dmzgfi9flcqkkb0jh5l21h579cidxwf1409w588b"; + type = "gem"; + }; + version = "0.9.0"; + }; + kramdown = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mkrqpp01rrfn3rx6wwsjizyqmafp0vgg8ja1dvbjs185r5zw3za"; + type = "gem"; + }; + version = "1.16.2"; + }; + liquid = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17fa0jgwm9a935fyvzy8bysz7j5n1vf1x2wzqkdfd5k08dbw3x2y"; + type = "gem"; + }; + version = "4.0.0"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx"; + type = "gem"; + }; + version = "3.1.5"; + }; + mercenary = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"; + type = "gem"; + }; + version = "0.3.6"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05fm3xh462glvs0rwnfmc1spmgl4ljg2giifynbmwwqvl42zaaiq"; + type = "gem"; + }; + version = "1.8.2"; + }; + pathutil = { + dependencies = ["forwardable-extended"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wc18ms1rzi44lpjychyw2a96jcmgxqdvy2949r4vvb5f4p0lgvz"; + type = "gem"; + }; + version = "0.16.1"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x5h1dh1i3gwc01jbg01rly2g6a1qwhynb1s8a30ic507z1nh09s"; + type = "gem"; + }; + version = "3.0.2"; + }; + rb-fsevent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"; + type = "gem"; + }; + version = "0.10.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"; + type = "gem"; + }; + version = "0.9.10"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sfhy0xxqjnzqa7qxmpz1bmy0mzcr55qyvi410gsb6d6i4ialbw3"; + type = "gem"; + }; + version = "3.1.1"; + }; + ruby_dep = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5"; + type = "gem"; + }; + version = "1.5.0"; + }; + safe_yaml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; + type = "gem"; + }; + version = "1.0.4"; + }; + sass = { + dependencies = ["sass-listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v"; + type = "gem"; + }; + version = "3.5.5"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; +} \ No newline at end of file diff --git a/pkgs/applications/misc/jekyll/default.nix b/pkgs/applications/misc/jekyll/default.nix index ad8b7b262e55..418b4ea466ea 100644 --- a/pkgs/applications/misc/jekyll/default.nix +++ b/pkgs/applications/misc/jekyll/default.nix @@ -1,19 +1,34 @@ -{ stdenv, lib, bundlerEnv, ruby }: +{ lib, bundlerEnv, ruby +, withOptionalDependencies ? false +}: bundlerEnv rec { - name = "jekyll-${version}"; + name = pname + "-" + version; + pname = "jekyll"; + version = (import + (if withOptionalDependencies + then ./full/gemset.nix + else ./basic/gemset.nix)) + .jekyll.version; - version = (import gemset).jekyll.version; inherit ruby; - gemfile = ./Gemfile; - lockfile = ./Gemfile.lock; - gemset = ./gemset.nix; + gemdir = if withOptionalDependencies + then ./full + else ./basic; meta = with lib; { - description = "Simple, blog aware, static site generator"; - homepage = https://jekyllrb.com/; + description = "A blog-aware, static site generator, written in Ruby"; + longDescription = '' + Jekyll is a simple, blog-aware, static site generator, written in Ruby. + Think of it like a file-based CMS, without all the complexity. Jekyll + takes your content, renders Markdown and Liquid templates, and spits out a + complete, static website ready to be served by Apache, Nginx or another + web server. Jekyll is the engine behind GitHub Pages, which you can use to + host sites right from your GitHub repositories. + ''; + homepage = https://jekyllrb.com/; license = licenses.mit; - maintainers = with maintainers; [ pesterhazy ]; + maintainers = with maintainers; [ primeos pesterhazy ]; platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/jekyll/full/Gemfile b/pkgs/applications/misc/jekyll/full/Gemfile new file mode 100644 index 000000000000..41f33c6e9ea7 --- /dev/null +++ b/pkgs/applications/misc/jekyll/full/Gemfile @@ -0,0 +1,30 @@ +source "https://rubygems.org" +gem "jekyll" +gem "rouge" +gem "activesupport", "~> 4.2" +gem "jekyll-avatar" +gem "jekyll-mentions" +gem "jekyll-seo-tag" +gem "jekyll-sitemap" +gem "jemoji" +# Optional dependencies: +gem "coderay", "~> 1.1.0" +gem "jekyll-coffeescript" +gem "jekyll-docs" +gem "jekyll-feed", "~> 0.9" +gem "jekyll-gist" +gem "jekyll-paginate" +gem "jekyll-redirect-from" +gem "kramdown", "~> 1.14" +gem "mime-types", "~> 3.0" +gem "rdoc", RUBY_VERSION >= "2.2.2" ? "~> 6.0" : "~> 5.1" +gem "tomlrb", "~> 1.2" + +platform :ruby, :mswin, :mingw, :x64_mingw do + gem "classifier-reborn", "~> 2.2.0" + gem "liquid-c", "~> 3.0" + gem "pygments.rb", "~> 1.0" + gem "rdiscount", "~> 2.0" + gem "redcarpet", "~> 3.2", ">= 3.2.3" + gem "yajl-ruby", "~> 1.3.1" +end diff --git a/pkgs/applications/misc/jekyll/full/Gemfile.lock b/pkgs/applications/misc/jekyll/full/Gemfile.lock new file mode 100644 index 000000000000..d070ad66f65c --- /dev/null +++ b/pkgs/applications/misc/jekyll/full/Gemfile.lock @@ -0,0 +1,160 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (4.2.10) + i18n (~> 0.7) + minitest (~> 5.1) + thread_safe (~> 0.3, >= 0.3.4) + tzinfo (~> 1.1) + addressable (2.5.2) + public_suffix (>= 2.0.2, < 4.0) + classifier-reborn (2.2.0) + fast-stemmer (~> 1.0) + coderay (1.1.2) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + concurrent-ruby (1.0.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.5) + execjs (2.7.0) + faraday (0.14.0) + multipart-post (>= 1.2, < 3) + fast-stemmer (1.0.2) + ffi (1.9.21) + forwardable-extended (2.6.0) + gemoji (3.0.0) + html-pipeline (2.7.1) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.7.2) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.5.0) + jekyll (~> 3.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-docs (3.7.2) + jekyll (= 3.7.2) + jekyll-feed (0.9.3) + jekyll (~> 3.3) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-mentions (1.2.0) + activesupport (~> 4.0) + html-pipeline (~> 2.3) + jekyll (~> 3.0) + jekyll-paginate (1.1.0) + jekyll-redirect-from (0.13.0) + jekyll (~> 3.3) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.4.0) + jekyll (~> 3.3) + jekyll-sitemap (1.2.0) + jekyll (~> 3.3) + jekyll-watch (2.0.0) + listen (~> 3.0) + jemoji (0.9.0) + activesupport (~> 4.0, >= 4.2.9) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (~> 3.0) + kramdown (1.16.2) + liquid (4.0.0) + liquid-c (3.0.0) + liquid (>= 3.0.0) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) + mercenary (0.3.6) + mime-types (3.1) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0521) + mini_portile2 (2.3.0) + minitest (5.11.3) + multi_json (1.13.1) + multipart-post (2.0.0) + nokogiri (1.8.2) + mini_portile2 (~> 2.3.0) + octokit (4.8.0) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.1) + forwardable-extended (~> 2.6) + public_suffix (3.0.2) + pygments.rb (1.2.1) + multi_json (>= 1.0.0) + rb-fsevent (0.10.2) + rb-inotify (0.9.10) + ffi (>= 0.5.0, < 2) + rdiscount (2.2.0.1) + rdoc (6.0.1) + redcarpet (3.4.0) + rouge (3.1.1) + ruby_dep (1.5.0) + safe_yaml (1.0.4) + sass (3.5.5) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.1) + addressable (>= 2.3.5, < 2.6) + faraday (~> 0.8, < 1.0) + thread_safe (0.3.6) + tomlrb (1.2.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + yajl-ruby (1.3.1) + +PLATFORMS + ruby + +DEPENDENCIES + activesupport (~> 4.2) + classifier-reborn (~> 2.2.0) + coderay (~> 1.1.0) + jekyll + jekyll-avatar + jekyll-coffeescript + jekyll-docs + jekyll-feed (~> 0.9) + jekyll-gist + jekyll-mentions + jekyll-paginate + jekyll-redirect-from + jekyll-seo-tag + jekyll-sitemap + jemoji + kramdown (~> 1.14) + liquid-c (~> 3.0) + mime-types (~> 3.0) + pygments.rb (~> 1.0) + rdiscount (~> 2.0) + rdoc (~> 6.0) + redcarpet (~> 3.2, >= 3.2.3) + rouge + tomlrb (~> 1.2) + yajl-ruby (~> 1.3.1) + +BUNDLED WITH + 1.14.6 diff --git a/pkgs/applications/misc/jekyll/full/gemset.nix b/pkgs/applications/misc/jekyll/full/gemset.nix new file mode 100644 index 000000000000..f41acb661910 --- /dev/null +++ b/pkgs/applications/misc/jekyll/full/gemset.nix @@ -0,0 +1,547 @@ +{ + activesupport = { + dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7"; + type = "gem"; + }; + version = "4.2.10"; + }; + addressable = { + dependencies = ["public_suffix"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"; + type = "gem"; + }; + version = "2.5.2"; + }; + classifier-reborn = { + dependencies = ["fast-stemmer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04nxmm5b7j7r0ij9pcpdr7xqpig559gfzrw042ycxcfyav2pv6ij"; + type = "gem"; + }; + version = "2.2.0"; + }; + coderay = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y"; + type = "gem"; + }; + version = "1.1.2"; + }; + coffee-script = { + dependencies = ["coffee-script-source" "execjs"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0rc7scyk7mnpfxqv5yy4y5q1hx3i7q3ahplcp4bq2g5r24g2izl2"; + type = "gem"; + }; + version = "2.4.1"; + }; + coffee-script-source = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xfshhlz808f8639wc88wgls1mww35sid8rd55vn0a4yqajf4vh9"; + type = "gem"; + }; + version = "1.11.1"; + }; + colorator = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; + type = "gem"; + }; + version = "1.1.0"; + }; + concurrent-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"; + type = "gem"; + }; + version = "1.0.5"; + }; + em-websocket = { + dependencies = ["eventmachine" "http_parser.rb"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"; + type = "gem"; + }; + version = "0.5.1"; + }; + eventmachine = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "075hdw0fgzldgss3xaqm2dk545736khcvv1fmzbf1sgdlkyh1v8z"; + type = "gem"; + }; + version = "1.2.5"; + }; + execjs = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1"; + type = "gem"; + }; + version = "2.7.0"; + }; + faraday = { + dependencies = ["multipart-post"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c3x3s8vb5nf7inyfvhdxwa4q3swmnacpxby6pish5fgmhws7zrr"; + type = "gem"; + }; + version = "0.14.0"; + }; + fast-stemmer = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh"; + type = "gem"; + }; + version = "1.0.2"; + }; + ffi = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0c2dl10pi6a30kcvx2s6p2v1wb4kbm48iv38kmz2ff600nirhpb8"; + type = "gem"; + }; + version = "1.9.21"; + }; + forwardable-extended = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; + type = "gem"; + }; + version = "2.6.0"; + }; + gemoji = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1h85qpn2xbmsn8ssf2fqzlqg181j000m5z4l3g26r7vblncg162d"; + type = "gem"; + }; + version = "3.0.0"; + }; + html-pipeline = { + dependencies = ["activesupport" "nokogiri"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0hkx70z9ijgnncmrna9qdh9ajn9m7v146k91j257lrzyq2f6jdjd"; + type = "gem"; + }; + version = "2.7.1"; + }; + "http_parser.rb" = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"; + type = "gem"; + }; + version = "0.6.0"; + }; + i18n = { + dependencies = ["concurrent-ruby"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3"; + type = "gem"; + }; + version = "0.9.5"; + }; + jekyll = { + dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05f61rqwz1isci7by34zyz38ah2rv5b8i5h618cxcl97hwqps8n2"; + type = "gem"; + }; + version = "3.7.2"; + }; + jekyll-avatar = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0y2w7pnahkm3ddxrq589wv1w53ay7p1pvfs6khcmh6wq85r6wpsf"; + type = "gem"; + }; + version = "0.5.0"; + }; + jekyll-coffeescript = { + dependencies = ["coffee-script" "coffee-script-source"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06qf4j9f6ysjb4bq6gsdaiz2ksmhc5yb484v458ra3s6ybccqvvy"; + type = "gem"; + }; + version = "1.1.1"; + }; + jekyll-docs = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0dw8pvxr0q02rivc0n0v4w6151zi6s212xwl27iam6pjc8skbg9b"; + type = "gem"; + }; + version = "3.7.2"; + }; + jekyll-feed = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0kr3kyaq4z3jixn6ay8h16bxxlv6slvvp7nqnl05jdymhkl0bmm9"; + type = "gem"; + }; + version = "0.9.3"; + }; + jekyll-gist = { + dependencies = ["octokit"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "03wz9j6yq3552nzf4g71qrdm9pfdgbm68abml9sjjgiaan1n8ns9"; + type = "gem"; + }; + version = "1.5.0"; + }; + jekyll-mentions = { + dependencies = ["activesupport" "html-pipeline" "jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "00nqm1ng4iiibmv4vx0ayzq7fqm2sm1af98r4ykvld6asqj5qkyd"; + type = "gem"; + }; + version = "1.2.0"; + }; + jekyll-paginate = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; + type = "gem"; + }; + version = "1.1.0"; + }; + jekyll-redirect-from = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1crm5xqgv5asbbbaxfgky4ppib5rih59yzpa3yc94gh8b9cjixrj"; + type = "gem"; + }; + version = "0.13.0"; + }; + jekyll-sass-converter = { + dependencies = ["sass"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk"; + type = "gem"; + }; + version = "1.5.2"; + }; + jekyll-seo-tag = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0f9b2mvmx57zj49afb3x8cmzdmb1kh4rbpbv3v7w5bh47g2c9big"; + type = "gem"; + }; + version = "2.4.0"; + }; + jekyll-sitemap = { + dependencies = ["jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xy93ysl1q8r4xhbnffycvsslja0dskh2z2pl1jnykwsy27dc89n"; + type = "gem"; + }; + version = "1.2.0"; + }; + jekyll-watch = { + dependencies = ["listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0m7scvj3ki8bmyx5v8pzibpg6my10nycnc28lip98dskf8iakprp"; + type = "gem"; + }; + version = "2.0.0"; + }; + jemoji = { + dependencies = ["activesupport" "gemoji" "html-pipeline" "jekyll"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0acmi7mgr844dmzgfi9flcqkkb0jh5l21h579cidxwf1409w588b"; + type = "gem"; + }; + version = "0.9.0"; + }; + kramdown = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0mkrqpp01rrfn3rx6wwsjizyqmafp0vgg8ja1dvbjs185r5zw3za"; + type = "gem"; + }; + version = "1.16.2"; + }; + liquid = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "17fa0jgwm9a935fyvzy8bysz7j5n1vf1x2wzqkdfd5k08dbw3x2y"; + type = "gem"; + }; + version = "4.0.0"; + }; + liquid-c = { + dependencies = ["liquid"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0a5n7q314ma32y7v9a1g6ps60b14zfn2q4nip4j5aknblz51v7gi"; + type = "gem"; + }; + version = "3.0.0"; + }; + listen = { + dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx"; + type = "gem"; + }; + version = "3.1.5"; + }; + mercenary = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"; + type = "gem"; + }; + version = "0.3.6"; + }; + mime-types = { + dependencies = ["mime-types-data"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"; + type = "gem"; + }; + version = "3.1"; + }; + mime-types-data = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm"; + type = "gem"; + }; + version = "3.2016.0521"; + }; + mini_portile2 = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11"; + type = "gem"; + }; + version = "2.3.0"; + }; + minitest = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq"; + type = "gem"; + }; + version = "5.11.3"; + }; + multi_json = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; + type = "gem"; + }; + version = "1.13.1"; + }; + multipart-post = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + type = "gem"; + }; + version = "2.0.0"; + }; + nokogiri = { + dependencies = ["mini_portile2"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "05fm3xh462glvs0rwnfmc1spmgl4ljg2giifynbmwwqvl42zaaiq"; + type = "gem"; + }; + version = "1.8.2"; + }; + octokit = { + dependencies = ["sawyer"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hp77svmpxcwnfajb324i1g2b7jazg23fn4ccjr5y3lww0rnj1dg"; + type = "gem"; + }; + version = "4.8.0"; + }; + pathutil = { + dependencies = ["forwardable-extended"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0wc18ms1rzi44lpjychyw2a96jcmgxqdvy2949r4vvb5f4p0lgvz"; + type = "gem"; + }; + version = "0.16.1"; + }; + public_suffix = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1x5h1dh1i3gwc01jbg01rly2g6a1qwhynb1s8a30ic507z1nh09s"; + type = "gem"; + }; + version = "3.0.2"; + }; + "pygments.rb" = { + dependencies = ["multi_json"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0lbvnwvz770ambm4d6lxgc2097rydn5rcc5d6986bnkzyxfqqjnv"; + type = "gem"; + }; + version = "1.2.1"; + }; + rb-fsevent = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf"; + type = "gem"; + }; + version = "0.10.2"; + }; + rb-inotify = { + dependencies = ["ffi"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71"; + type = "gem"; + }; + version = "0.9.10"; + }; + rdiscount = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3"; + type = "gem"; + }; + version = "2.2.0.1"; + }; + rdoc = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1vzhv04lp76iax258dh47zsxhjg34r9sg76vgikbyfywjzflvfyj"; + type = "gem"; + }; + version = "6.0.1"; + }; + redcarpet = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7"; + type = "gem"; + }; + version = "3.4.0"; + }; + rouge = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1sfhy0xxqjnzqa7qxmpz1bmy0mzcr55qyvi410gsb6d6i4ialbw3"; + type = "gem"; + }; + version = "3.1.1"; + }; + ruby_dep = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1c1bkl97i9mkcvkn1jks346ksnvnnp84cs22gwl0vd7radybrgy5"; + type = "gem"; + }; + version = "1.5.0"; + }; + safe_yaml = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; + type = "gem"; + }; + version = "1.0.4"; + }; + sass = { + dependencies = ["sass-listen"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "10401m2xlv6vaxfwzy4xxmk51ddcnkvwi918cw3jkki0qqdl7d8v"; + type = "gem"; + }; + version = "3.5.5"; + }; + sass-listen = { + dependencies = ["rb-fsevent" "rb-inotify"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"; + type = "gem"; + }; + version = "4.0.0"; + }; + sawyer = { + dependencies = ["addressable" "faraday"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd"; + type = "gem"; + }; + version = "0.8.1"; + }; + thread_safe = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; + type = "gem"; + }; + version = "0.3.6"; + }; + tomlrb = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "09gh67v8s1pr7c37490sjp782gi4wf9k9cadp4l926h1sp27bcgz"; + type = "gem"; + }; + version = "1.2.6"; + }; + tzinfo = { + dependencies = ["thread_safe"]; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z"; + type = "gem"; + }; + version = "1.2.5"; + }; + yajl-ruby = { + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1rn4kc9fha990yd252wglh6rcyh35cavm1vpyfj8krlcwph09g30"; + type = "gem"; + }; + version = "1.3.1"; + }; +} \ No newline at end of file diff --git a/pkgs/applications/misc/jekyll/gemset.nix b/pkgs/applications/misc/jekyll/gemset.nix deleted file mode 100644 index 5b1a35209aeb..000000000000 --- a/pkgs/applications/misc/jekyll/gemset.nix +++ /dev/null @@ -1,183 +0,0 @@ -{ - addressable = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1j5r0anj8m4qlf2psnldip4b8ha2bsscv11lpdgnfh4nnchzjnxw"; - type = "gem"; - }; - version = "2.5.0"; - }; - colorator = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"; - type = "gem"; - }; - version = "1.1.0"; - }; - ffi = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"; - type = "gem"; - }; - version = "1.9.18"; - }; - forwardable-extended = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"; - type = "gem"; - }; - version = "2.6.0"; - }; - jekyll = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0qbnjx7bpshbcam6p9ss2g6gpd3gxz6h4w9yszphj3ip335yhawb"; - type = "gem"; - }; - version = "3.4.1"; - }; - jekyll-feed = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1dj62gy1jskkn703mi5h0bkg1psbpkdm2qqdw3bhjfid9358qvay"; - type = "gem"; - }; - version = "0.9.1"; - }; - jekyll-paginate = { - source = { - sha256 = "0r7bcs8fq98zldih4787zk5i9w24nz5wa26m84ssja95n3sas2l8"; - type = "gem"; - }; - version = "1.1.0"; - }; - jekyll-sass-converter = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "01m921763yfgx1gc33k5ixqz623f4c4azgnpqhgsc2q61fyfk3q1"; - type = "gem"; - }; - version = "1.5.0"; - }; - jekyll-watch = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "02rg3wi95w2l0bg1igl5k6pza723vn2b2gj975gycz1cpmhdjn6z"; - type = "gem"; - }; - version = "1.5.0"; - }; - kramdown = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1isiqc40q44zg57bd6cfnw1a2l0s2j5skw2awn2cz3gcm7wsf49d"; - type = "gem"; - }; - version = "1.13.2"; - }; - liquid = { - source = { - sha256 = "033png37ym4jrjz5bi7zb4ic4yxacwvnllm1xxmrnr4swgyyygc2"; - type = "gem"; - }; - version = "3.0.6"; - }; - listen = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1l0y7hbyfiwpvk172r28hsdqsifq1ls39hsfmzi1vy4ll0smd14i"; - type = "gem"; - }; - version = "3.0.8"; - }; - mercenary = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"; - type = "gem"; - }; - version = "0.3.6"; - }; - minima = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1s7ks9fqfvqx7qicnkrg76wavg9mjas52f7iyhr89lz9mqiy7p39"; - type = "gem"; - }; - version = "2.1.0"; - }; - pathutil = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0f444wx6vjd30lkkb2zn1k5a6g33lidrpyy7lmgy66n1gsiipzn7"; - type = "gem"; - }; - version = "0.14.0"; - }; - public_suffix = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q"; - type = "gem"; - }; - version = "2.0.5"; - }; - rb-fsevent = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1pdiasp9zlr306yld19szapi6kdjk38rpv1hih9x0ry40x6mb63n"; - type = "gem"; - }; - version = "0.9.8"; - }; - rb-inotify = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0bq14f3md5nm00kgxgf0r9lcbn0vgbwljgajif0slxcwv622fjg9"; - type = "gem"; - }; - version = "0.9.8"; - }; - rdiscount = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3"; - type = "gem"; - }; - version = "2.2.0.1"; - }; - RedCloth = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy"; - type = "gem"; - }; - version = "4.3.2"; - }; - rouge = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "13amckbdknnc5491ag28y8pqbyfpbzx5n4rlmadxhd3wkrhp92c8"; - type = "gem"; - }; - version = "1.11.1"; - }; - safe_yaml = { - source = { - sha256 = "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"; - type = "gem"; - }; - version = "1.0.4"; - }; - sass = { - source = { - remotes = ["https://rubygems.org"]; - sha256 = "0da4mn3n60cm1ss1pw1rrpa7fxagglxiwcgvz1asf1qgf4mvcwyr"; - type = "gem"; - }; - version = "3.4.23"; - }; -} \ No newline at end of file diff --git a/pkgs/applications/networking/remote/xrdp/default.nix b/pkgs/applications/networking/remote/xrdp/default.nix index b6b1f6542af3..ed1abfcba99d 100644 --- a/pkgs/applications/networking/remote/xrdp/default.nix +++ b/pkgs/applications/networking/remote/xrdp/default.nix @@ -3,13 +3,13 @@ let xorgxrdp = stdenv.mkDerivation rec { name = "xorgxrdp-${version}"; - version = "0.2.3"; + version = "0.2.5"; src = fetchFromGitHub { owner = "neutrinolabs"; repo = "xorgxrdp"; rev = "v${version}"; - sha256 = "0l1b38j3q9mxyb8ffpdplbqs6rnabj92i8wngrwlkhfh2c88szn1"; + sha256 = "05ix0bvbgpg0l0f6pyxp64a4785yv16dxf522y7k84b0rag4bxr7"; }; nativeBuildInputs = [ pkgconfig autoconf automake which libtool nasm ]; @@ -34,7 +34,7 @@ let }; xrdp = stdenv.mkDerivation rec { - version = "0.9.3"; + version = "0.9.5"; name = "xrdp-${version}"; src = fetchFromGitHub { @@ -42,7 +42,7 @@ let repo = "xrdp"; rev = "refs/heads/runtime-cfg-path-${version}"; # Fixes https://github.com/neutrinolabs/xrdp/issues/609; not a patch on top of the official repo because "xorgxrdp.configureFlags" above includes "xrdp.src" which must be patched already fetchSubmodules = true; - sha256 = "0xqyg3m688fj442zgg9fqmbz7nnzvqpd7a9ki2cwh1hyibacpmz7"; + sha256 = "1sm994dic72zvxgwxw9z6an6050976nlnnn2my42pnzj9l5842d8"; }; nativeBuildInputs = [ pkgconfig autoconf automake which libtool nasm ]; diff --git a/pkgs/build-support/rust/build-rust-crate.nix b/pkgs/build-support/rust/build-rust-crate.nix index f1f344ca3c7d..8a9a07fd7a8f 100644 --- a/pkgs/build-support/rust/build-rust-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate.nix @@ -6,44 +6,16 @@ { lib, buildPlatform, stdenv, defaultCrateOverrides, fetchCrate, ncurses, rustc }: -let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, - dependencies, completeDeps, completeBuildDeps, - crateFeatures, libName, build, release, libPath, - crateType, metadata, crateBin, finalBins, - verbose, colors }: - - let depsDir = lib.concatStringsSep " " dependencies; - completeDepsDir = lib.concatStringsSep " " completeDeps; - completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; - makeDeps = dependencies: - (lib.concatMapStringsSep " " (dep: - let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in - (if dep.crateType == "lib" then - " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib" - else - " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${buildPlatform.extensions.sharedLibrary}") - ) dependencies); - deps = makeDeps dependencies; - buildDeps = makeDeps buildDependencies; - optLevel = if release then 3 else 0; - rustcOpts = (if release then "-C opt-level=3" else "-C debuginfo=2"); - rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; - version_ = lib.splitString "-" crateVersion; - versionPre = if lib.tail version_ == [] then "" else builtins.elemAt version_ 1; - version = lib.splitString "." (lib.head version_); - authors = lib.concatStringsSep ":" crateAuthors; - in '' - norm="" - bold="" - green="" - boldgreen="" - if [[ "${colors}" -eq "always" ]]; then - norm="$(printf '\033[0m')" #returns to "normal" - bold="$(printf '\033[0;1m')" #set bold - green="$(printf '\033[0;32m')" #set green - boldgreen="$(printf '\033[0;1;32m')" #set bold, and set green. - fi - +let makeDeps = dependencies: + (lib.concatMapStringsSep " " (dep: + let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in + (if dep.crateType == "lib" then + " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib" + else + " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${buildPlatform.extensions.sharedLibrary}") + ) dependencies); + + echo_build_heading = colors: '' echo_build_heading() { start="" end="" @@ -57,7 +29,8 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, echo "$start""Building $1 ($2)""$end" fi } - + ''; + noisily = colors: verbose: '' noisily() { start="" end="" @@ -71,18 +44,29 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, ''} $@ } + ''; + configureCrate = + { crateName, crateVersion, crateAuthors, build, libName, crateFeatures, colors, libPath, release, buildDependencies, completeDeps, completeBuildDeps, verbose, dependencies }: + let version_ = lib.splitString "-" crateVersion; + versionPre = if lib.tail version_ == [] then "" else builtins.elemAt version_ 1; + version = lib.splitString "." (lib.head version_); + rustcOpts = (if release then "-C opt-level=3" else "-C debuginfo=2"); + buildDeps = makeDeps buildDependencies; + authors = lib.concatStringsSep ":" crateAuthors; + optLevel = if release then 3 else 0; + completeDepsDir = lib.concatStringsSep " " completeDeps; + completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; + in '' + runHook preConfigure + ${echo_build_heading colors} + ${noisily colors verbose} symlink_dependency() { - # $1 is the nix-store path of a dependency + # $1 is the nix-store path of a dependency + # $2 is the target path i=$1 - dest=target/deps - if [ ! -z $2 ]; then - if [ "$2" = "--buildDep" ]; then - dest=target/buildDeps - fi - fi - ln -s -f $i/lib/*.rlib $dest #*/ - ln -s -f $i/lib/*.so $i/lib/*.dylib $dest #*/ + ln -s -f $i/lib/*.rlib $2 #*/ + ln -s -f $i/lib/*.so $i/lib/*.dylib $2 #*/ if [ -e "$i/lib/link" ]; then cat $i/lib/link >> target/link cat $i/lib/link >> target/link.final @@ -92,48 +76,15 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, fi } - build_lib() { - lib_src=$1 - echo_build_heading $lib_src ${libName} - - noisily rustc --crate-name $CRATE_NAME $lib_src --crate-type ${crateType} \ - ${rustcOpts} ${rustcMeta} ${crateFeatures} --out-dir target/lib \ - --emit=dep-info,link -L dependency=target/deps ${deps} --cap-lints allow \ - $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} - - EXTRA_LIB=" --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-${metadata}.rlib" - if [ -e target/deps/lib$CRATE_NAME-${metadata}${buildPlatform.extensions.sharedLibrary} ]; then - EXTRA_LIB="$EXTRA_LIB --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-${metadata}${buildPlatform.extensions.sharedLibrary}" - fi - } - - build_bin() { - crate_name=$1 - crate_name_=$(echo $crate_name | sed -e "s/-/_/g") - main_file="" - if [[ ! -z $2 ]]; then - main_file=$2 - fi - echo_build_heading $@ - noisily rustc --crate-name $crate_name_ $main_file --crate-type bin ${rustcOpts}\ - ${crateFeatures} --out-dir target/bin --emit=dep-info,link -L dependency=target/deps \ - $LINK ${deps}$EXTRA_LIB --cap-lints allow \ - $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} - if [ "$crate_name_" -ne "$crate_name" ]; then - mv target/bin/$crate_name_ target/bin/$crate_name - fi - } - - runHook preBuild mkdir -p target/{deps,lib,build,buildDeps} chmod uga+w target -R for i in ${completeDepsDir}; do - symlink_dependency $i + symlink_dependency $i target/deps done for i in ${completeBuildDepsDir}; do - symlink_dependency $i --buildDep + symlink_dependency $i target/buildDeps done - if [ -e target/link ]; then + if [[ -e target/link ]]; then sort -u target/link > target/link.sorted mv target/link.sorted target/link sort -u target/link.final > target/link.final.sorted @@ -145,10 +96,16 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, export CARGO_PKG_NAME=${crateName} export CARGO_PKG_VERSION=${crateVersion} export CARGO_PKG_AUTHORS="${authors}" + export CARGO_CFG_TARGET_ARCH=${buildPlatform.parsed.cpu.name} export CARGO_CFG_TARGET_OS=${buildPlatform.parsed.kernel.name} - + export CARGO_CFG_TARGET_FAMILY="unix" + export CARGO_CFG_UNIX=1 export CARGO_CFG_TARGET_ENV="gnu" + export CARGO_CFG_TARGET_ENDIAN=${if buildPlatform.parsed.cpu.significantByte.name == "littleEndian" then "little" else "big"} + export CARGO_CFG_TARGET_POINTER_WIDTH=${toString buildPlatform.parsed.cpu.bits} + export CARGO_CFG_TARGET_VENDOR=${buildPlatform.parsed.vendor.name} + export CARGO_MANIFEST_DIR="." export DEBUG="${toString (!release)}" export OPT_LEVEL="${toString optLevel}" @@ -159,7 +116,7 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, export CARGO_PKG_VERSION_MAJOR=${builtins.elemAt version 0} export CARGO_PKG_VERSION_MINOR=${builtins.elemAt version 1} export CARGO_PKG_VERSION_PATCH=${builtins.elemAt version 2} - if [ -n "${versionPre}" ]; then + if [[ -n "${versionPre}" ]]; then export CARGO_PKG_VERSION_PRE="${versionPre}" fi @@ -180,8 +137,8 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, EXTRA_BUILD_FLAGS="$EXTRA_BUILD_FLAGS $(cat target/link.build)" fi noisily rustc --crate-name build_script_build $BUILD --crate-type bin ${rustcOpts} \ - ${crateFeatures} --out-dir target/build/${crateName} --emit=dep-info,link \ - -L dependency=target/buildDeps ${buildDeps} --cap-lints allow $EXTRA_BUILD_FLAGS --color ${colors} + ${crateFeatures} --out-dir target/build/${crateName} --emit=dep-info,link \ + -L dependency=target/buildDeps ${buildDeps} --cap-lints allow $EXTRA_BUILD_FLAGS --color ${colors} mkdir -p target/build/${crateName}.out export RUST_BACKTRACE=1 @@ -198,33 +155,104 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, | sed -e "s/cargo:\([^=]*\)=\(.*\)/export DEP_$(echo $CRATENAME)_\U\1\E=\2/" > target/env set -e - if [ -n "$(ls target/build/${crateName}.out)" ]; then + if [[ -n "$(ls target/build/${crateName}.out)" ]]; then - if [ -e "${libPath}" ] ; then + if [[ -e "${libPath}" ]]; then cp -r target/build/${crateName}.out/* $(dirname ${libPath}) #*/ else cp -r target/build/${crateName}.out/* src #*/ fi fi fi + runHook postConfigure + ''; + + buildCrate = { crateName, crateVersion, crateAuthors, + dependencies, completeDeps, completeBuildDeps, + crateFeatures, libName, build, release, libPath, + crateType, metadata, crateBin, finalBins, + extraRustcOpts, + verbose, colors }: + + let depsDir = lib.concatStringsSep " " dependencies; + completeDepsDir = lib.concatStringsSep " " completeDeps; + completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; + deps = makeDeps dependencies; + optLevel = if release then 3 else 0; + rustcOpts = + lib.lists.foldl' (opts: opt: opts + " " + opt) + (if release then "-C opt-level=3" else "-C debuginfo=2") + extraRustcOpts; + rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; + version_ = lib.splitString "-" crateVersion; + versionPre = if lib.tail version_ == [] then "" else builtins.elemAt version_ 1; + version = lib.splitString "." (lib.head version_); + authors = lib.concatStringsSep ":" crateAuthors; + in '' + runHook preBuild + norm="" + bold="" + green="" + boldgreen="" + if [[ "${colors}" -eq "always" ]]; then + norm="$(printf '\033[0m')" #returns to "normal" + bold="$(printf '\033[0;1m')" #set bold + green="$(printf '\033[0;32m')" #set green + boldgreen="$(printf '\033[0;1;32m')" #set bold, and set green. + fi + ${echo_build_heading colors} + ${noisily colors verbose} + + build_lib() { + lib_src=$1 + echo_build_heading $lib_src ${libName} + + noisily rustc --crate-name $CRATE_NAME $lib_src --crate-type ${crateType} \ + ${rustcOpts} ${rustcMeta} ${crateFeatures} --out-dir target/lib \ + --emit=dep-info,link -L dependency=target/deps ${deps} --cap-lints allow \ + $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} + + EXTRA_LIB=" --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-${metadata}.rlib" + if [ -e target/deps/lib$CRATE_NAME-${metadata}${buildPlatform.extensions.sharedLibrary} ]; then + EXTRA_LIB="$EXTRA_LIB --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-${metadata}${buildPlatform.extensions.sharedLibrary}" + fi + } + + build_bin() { + crate_name=$1 + crate_name_=$(echo $crate_name | sed -e "s/-/_/g") + main_file="" + if [[ ! -z $2 ]]; then + main_file=$2 + fi + echo_build_heading $@ + noisily rustc --crate-name $crate_name_ $main_file --crate-type bin ${rustcOpts}\ + ${crateFeatures} --out-dir target/bin --emit=dep-info,link -L dependency=target/deps \ + $LINK ${deps}$EXTRA_LIB --cap-lints allow \ + $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} + if [ "$crate_name_" -ne "$crate_name" ]; then + mv target/bin/$crate_name_ target/bin/$crate_name + fi + } + EXTRA_LIB="" CRATE_NAME=$(echo ${libName} | sed -e "s/-/_/g") - if [ -e target/link_ ]; then + if [[ -e target/link_ ]]; then EXTRA_BUILD="$(cat target/link_) $EXTRA_BUILD" fi - if [ -e "${libPath}" ] ; then + if [[ -e "${libPath}" ]]; then build_lib ${libPath} - elif [ -e src/lib.rs ] ; then + elif [[ -e src/lib.rs ]]; then build_lib src/lib.rs - elif [ -e src/${libName}.rs ] ; then + elif [[ -e src/${libName}.rs ]]; then build_lib src/${libName}.rs fi echo "$EXTRA_LINK_SEARCH" | while read i; do - if [ ! -z "$i" ]; then + if [[ ! -z "$i" ]]; then for lib in $i; do echo "-L $lib" >> target/link L=$(echo $lib | sed -e "s#$(pwd)/target/build#$out/lib#") @@ -233,7 +261,7 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, fi done echo "$EXTRA_LINK" | while read i; do - if [ ! -z "$i" ]; then + if [[ ! -z "$i" ]]; then for lib in $i; do echo "-l $lib" >> target/link echo "-l $lib" >> target/link.final @@ -241,7 +269,7 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, fi done - if [ -e target/link ]; then + if [[ -e target/link ]]; then sort -u target/link.final > target/link.final.sorted mv target/link.final.sorted target/link.final sort -u target/link > target/link.sorted @@ -253,7 +281,7 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, mkdir -p target/bin echo "${crateBin}" | sed -n 1'p' | tr ',' '\n' | while read BIN; do - if [ ! -z "$BIN" ]; then + if [[ ! -z "$BIN" ]]; then build_bin $BIN fi done @@ -267,27 +295,32 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, ''} # Remove object files to avoid "wrong ELF type" find target -type f -name "*.o" -print0 | xargs -0 rm -f + '' + finalBins + '' runHook postBuild - '' + finalBins; + ''; - installCrate = crateName: '' + installCrate = crateName: metadata: '' + runHook preInstall mkdir -p $out - if [ -s target/env ]; then + if [[ -s target/env ]]; then cp target/env $out/env fi - if [ -s target/link.final ]; then + if [[ -s target/link.final ]]; then mkdir -p $out/lib cp target/link.final $out/lib/link fi - if [ "$(ls -A target/lib)" ]; then + if [[ "$(ls -A target/lib)" ]]; then mkdir -p $out/lib cp target/lib/* $out/lib #*/ + for lib in $out/lib/*.so $out/lib/*.dylib; do #*/ + ln -s $lib $(echo $lib | sed -e "s/-${metadata}//") + done fi - if [ "$(ls -A target/build)" ]; then # */ + if [[ "$(ls -A target/build)" ]]; then # */ mkdir -p $out/lib cp -r target/build/* $out/lib # */ fi - if [ "$(ls -A target/bin)" ]; then + if [[ "$(ls -A target/bin)" ]]; then mkdir -p $out/bin cp -P target/bin/* $out/bin # */ fi @@ -295,9 +328,16 @@ let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, ''; in -crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides }: +crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides, + dependencies, buildDependencies, + extraRustcOpts, + preUnpack, postUnpack, prePatch, patches, postPatch, + preConfigure, postConfigure, preBuild, postBuild, preInstall, postInstall }: let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverrides crate_); + release_ = release; + dependencies_ = dependencies; + buildDependencies_ = buildDependencies; processedAttrs = [ "src" "buildInputs" "crateBin" "crateLib" "libName" "libPath" "buildDependencies" "dependencies" "features" @@ -309,6 +349,7 @@ in stdenv.mkDerivation (rec { inherit (crate) crateName; + inherit preUnpack postUnpack prePatch patches postPatch preConfigure postConfigure preBuild postBuild preInstall postInstall; src = if lib.hasAttr "src" crate then crate.src @@ -319,12 +360,12 @@ stdenv.mkDerivation (rec { dependencies = builtins.map (dep: dep.override { rust = rust; release = release; verbose = verbose; crateOverrides = crateOverrides; }) - (crate.dependencies or []); + dependencies_; buildDependencies = builtins.map (dep: dep.override { rust = rust; release = release; verbose = verbose; crateOverrides = crateOverrides; }) - (crate.buildDependencies or []); + buildDependencies_; completeDeps = lib.lists.unique (dependencies ++ lib.lists.concatMap (dep: dep.completeDeps) dependencies); completeBuildDeps = lib.lists.unique ( @@ -339,7 +380,8 @@ stdenv.mkDerivation (rec { libName = if crate ? libName then crate.libName else crate.crateName; libPath = if crate ? libPath then crate.libPath else ""; - metadata = builtins.substring 0 10 (builtins.hashString "sha256" (crateName + "-" + crateVersion)); + depsMetadata = builtins.foldl' (str: dep: str + dep.metadata) "" (dependencies ++ buildDependencies); + metadata = builtins.substring 0 10 (builtins.hashString "sha256" (crateName + "-" + crateVersion + "___" + toString crateFeatures + "___" + depsMetadata )); crateBin = if crate ? crateBin then builtins.foldl' (bins: bin: @@ -370,20 +412,42 @@ stdenv.mkDerivation (rec { crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else []; crateType = if lib.attrByPath ["procMacro"] false crate then "proc-macro" else - if lib.attrByPath ["plugin"] false crate then "dylib" else "lib"; + if lib.attrByPath ["plugin"] false crate then "dylib" else + if crate ? type then crate.type else "lib"; colors = lib.attrByPath [ "colors" ] "always" crate; - buildPhase = buildCrate { + configurePhase = configureCrate { inherit crateName dependencies buildDependencies completeDeps completeBuildDeps + crateFeatures libName build release libPath crateVersion + crateAuthors verbose colors; + }; + extraRustcOpts = if crate ? extraRustcOpts then crate.extraRustcOpts else []; + buildPhase = buildCrate { + inherit crateName dependencies completeDeps completeBuildDeps crateFeatures libName build release libPath crateType crateVersion - crateAuthors metadata crateBin finalBins verbose colors; + crateAuthors metadata crateBin finalBins verbose colors extraRustcOpts; }; - installPhase = installCrate crateName; + installPhase = installCrate crateName metadata; -} // extraDerivationAttrs)) { +} // extraDerivationAttrs +)) { rust = rustc; - release = true; - verbose = true; + release = crate_.release or true; + verbose = crate_.verbose or true; + extraRustcOpts = []; features = []; buildInputs = []; crateOverrides = defaultCrateOverrides; + preUnpack = crate_.preUnpack or ""; + postUnpack = crate_.postUnpack or ""; + prePatch = crate_.prePatch or ""; + patches = crate_.patches or []; + postPatch = crate_.postPatch or ""; + preConfigure = crate_.preConfigure or ""; + postConfigure = crate_.postConfigure or ""; + preBuild = crate_.preBuild or ""; + postBuild = crate_.postBuild or ""; + preInstall = crate_.preInstall or ""; + postInstall = crate_.postInstall or ""; + dependencies = crate_.dependencies or []; + buildDependencies = crate_.buildDependencies or []; } diff --git a/pkgs/build-support/rust/carnix.nix b/pkgs/build-support/rust/carnix.nix index 8b0af499c8f1..ebb46b0f5921 100644 --- a/pkgs/build-support/rust/carnix.nix +++ b/pkgs/build-support/rust/carnix.nix @@ -1,4 +1,4 @@ -# Generated by carnix 0.6.5: carnix -o carnix.nix Cargo.lock --src ./. +# Generated by carnix 0.6.5: carnix -o carnix.nix Cargo.lock { lib, buildPlatform, buildRustCrate, fetchgit }: let kernel = buildPlatform.parsed.kernel.name; abi = buildPlatform.parsed.abi.name; @@ -18,7 +18,7 @@ let kernel = buildPlatform.parsed.kernel.name; ) [] (builtins.attrNames feat); in rec { - carnix = f: carnix_0_6_5 { features = carnix_0_6_5_features { carnix_0_6_5 = f; }; }; + carnix = f: carnix_0_6_6 { features = carnix_0_6_6_features { carnix_0_6_6 = f; }; }; aho_corasick_0_6_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { crateName = "aho-corasick"; version = "0.6.3"; @@ -71,11 +71,11 @@ rec { sha256 = "0p4b3nr0s5nda2qmm7xdhnvh4lkqk3xd8l9ffmwbvqw137vx7mj1"; inherit dependencies buildDependencies features; }; - carnix_0_6_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + carnix_0_6_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { crateName = "carnix"; - version = "0.6.5"; + version = "0.6.6"; authors = [ "pe@pijul.org <pe@pijul.org>" ]; - sha256 = "0r952s5az5mhw7z2r421i5lr0w5h436hah61md2bdb3204c2pl9c"; + sha256 = "1ai2r52j6vlrclhb7cvifx3lsg9naiy3jpsrbi3mmfmr6zbi7rdw"; inherit dependencies buildDependencies features; }; cc_1_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { @@ -623,11 +623,11 @@ rec { (f.bitflags_1_0_1.default or false) || (bitflags_1_0_1.default or false); }) []; - carnix_0_6_5 = { features?(carnix_0_6_5_features {}) }: carnix_0_6_5_ { + carnix_0_6_6 = { features?(carnix_0_6_6_features {}) }: carnix_0_6_6_ { dependencies = mapFeatures features ([ clap_2_28_0 env_logger_0_5_3 error_chain_0_11_0 itertools_0_7_3 log_0_4_1 nom_3_2_1 regex_0_2_2 rusqlite_0_13_0 serde_1_0_21 serde_derive_1_0_21 serde_json_1_0_6 tempdir_0_3_5 toml_0_4_5 ]); }; - carnix_0_6_5_features = f: updateFeatures f (rec { - carnix_0_6_5.default = (f.carnix_0_6_5.default or true); + carnix_0_6_6_features = f: updateFeatures f (rec { + carnix_0_6_6.default = (f.carnix_0_6_6.default or true); clap_2_28_0.default = true; env_logger_0_5_3.default = true; error_chain_0_11_0.default = true; diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix index 63d08e1d0311..83ef146de5f8 100644 --- a/pkgs/build-support/rust/default.nix +++ b/pkgs/build-support/rust/default.nix @@ -4,7 +4,7 @@ let inherit stdenv cacert git rust cargo-vendor; }; in -{ name, cargoSha256 +{ name, cargoSha256 ? null , src ? null , srcs ? null , sourceRoot ? null @@ -13,15 +13,31 @@ in , cargoUpdateHook ? "" , cargoDepsHook ? "" , cargoBuildFlags ? [] + +, cargoVendorDir ? null , ... } @ args: +assert cargoVendorDir == null -> cargoSha256 != null; + let lib = stdenv.lib; - cargoDeps = fetchcargo { - inherit name src srcs sourceRoot cargoUpdateHook; - sha256 = cargoSha256; - }; + cargoDeps = if cargoVendorDir == null + then fetchcargo { + inherit name src srcs sourceRoot cargoUpdateHook; + sha256 = cargoSha256; + } + else null; + + setupVendorDir = if cargoVendorDir == null + then '' + unpackFile "$cargoDeps" + cargoDepsCopy=$(stripHash $(basename $cargoDeps)) + chmod -R +w "$cargoDepsCopy" + '' + else '' + cargoDepsCopy="$sourceRoot/${cargoVendorDir}" + ''; in stdenv.mkDerivation (args // { inherit cargoDeps; @@ -39,9 +55,7 @@ in stdenv.mkDerivation (args // { postUnpack = '' eval "$cargoDepsHook" - unpackFile "$cargoDeps" - cargoDepsCopy=$(stripHash $(basename $cargoDeps)) - chmod -R +w "$cargoDepsCopy" + ${setupVendorDir} mkdir .cargo cat >.cargo/config <<-EOF diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix index bdf2abf9b6f8..7f7932d01b4f 100644 --- a/pkgs/data/misc/hackage/default.nix +++ b/pkgs/data/misc/hackage/default.nix @@ -1,6 +1,6 @@ { fetchurl }: fetchurl { - url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/00012ce23948b9547fe6609d595109741e0f58cf.tar.gz"; - sha256 = "1swgfx7b41jxq0pyws2wipdiyvy8nn6cp54yj3ip3r9l3gdv3f7b"; + url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/4c8b3501ea6fc9f41cd192ddc08e2d9583a1e679.tar.gz"; + sha256 = "0aa4pimgllqgn8bcy2p2cdwbpz6s6wk8j41w35jvzaqfj15gysnq"; } diff --git a/pkgs/development/compilers/llvm/4/clang/default.nix b/pkgs/development/compilers/llvm/4/clang/default.nix index 77863ab4f1ea..5531fd2ab77e 100644 --- a/pkgs/development/compilers/llvm/4/clang/default.nix +++ b/pkgs/development/compilers/llvm/4/clang/default.nix @@ -43,6 +43,8 @@ let # Patch for standalone doc building sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/Tools.cpp ''; outputs = [ "out" "lib" "python" ]; diff --git a/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch b/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch new file mode 100644 index 000000000000..d5d7f07b5e11 --- /dev/null +++ b/pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch @@ -0,0 +1,33 @@ +From d12ecb83d01dcb580dd94f4d57828f33d3eb4c35 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Thu, 18 Feb 2016 15:33:21 +0100 +Subject: [PATCH 3/3] Fix DynamicLibrary to build with musl libc + +stdin/out/err is part of the libc and not the kernel so we check for the +specific libc that does the unexpected instead of linux. + +This is needed for making it build with musl libc. +--- + lib/Support/DynamicLibrary.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/Support/DynamicLibrary.cpp b/lib/Support/DynamicLibrary.cpp +index 9a7aeb5..0c1c8f8 100644 +--- a/lib/Support/DynamicLibrary.cpp ++++ b/lib/Support/DynamicLibrary.cpp +@@ -140,10 +140,10 @@ void* DynamicLibrary::SearchForAddressOfSymbol(const char *symbolName) { + #define EXPLICIT_SYMBOL(SYM) \ + if (!strcmp(symbolName, #SYM)) return &SYM + +-// On linux we have a weird situation. The stderr/out/in symbols are both ++// On GNU libc we have a weird situation. The stderr/out/in symbols are both + // macros and global variables because of standards requirements. So, we + // boldly use the EXPLICIT_SYMBOL macro without checking for a #define first. +-#if defined(__linux__) and !defined(__ANDROID__) ++#if defined(__GLIBC__) + { + EXPLICIT_SYMBOL(stderr); + EXPLICIT_SYMBOL(stdout); +-- +2.7.3 + diff --git a/pkgs/development/compilers/llvm/4/libc++/default.nix b/pkgs/development/compilers/llvm/4/libc++/default.nix index db751bcffd42..f28957c35185 100644 --- a/pkgs/development/compilers/llvm/4/libc++/default.nix +++ b/pkgs/development/compilers/llvm/4/libc++/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetch, cmake, llvm, libcxxabi, fixDarwinDylibNames, version }: +{ lib, stdenv, fetch, cmake, python, llvm, libcxxabi, fixDarwinDylibNames, version }: stdenv.mkDerivation rec { name = "libc++-${version}"; @@ -15,6 +15,9 @@ stdenv.mkDerivation rec { ./pthread_mach_thread_np.patch # glibc 2.26 fix ./xlocale-glibc-2.26.patch + ] ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + ../../libcxx-0001-musl-hacks.patch + ./max_align_t.patch ]; prePatch = '' @@ -24,9 +27,10 @@ stdenv.mkDerivation rec { preConfigure = '' # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR") + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + patchShebangs utils/cat_files.py ''; - - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl python; buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; @@ -34,7 +38,7 @@ stdenv.mkDerivation rec { "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" "-DLIBCXX_CXX_ABI=libcxxabi" - ]; + ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/4/libc++/max_align_t.patch b/pkgs/development/compilers/llvm/4/libc++/max_align_t.patch new file mode 100644 index 000000000000..060be5b23de8 --- /dev/null +++ b/pkgs/development/compilers/llvm/4/libc++/max_align_t.patch @@ -0,0 +1,54 @@ +From 917331c88bd2afce0cf0fdbcab55a64541b5bcf0 Mon Sep 17 00:00:00 2001 +From: "David L. Jones" <dlj@google.com> +Date: Fri, 10 Feb 2017 01:27:42 +0000 +Subject: [PATCH] Check for musl-libc's max_align_t in addition to other + variants. + +Summary: +Libcxx will define its own max_align_t when it is not available. However, the +availability checks today only check for Clang's definition and GCC's +definition. In particular, it does not check for musl's definition, which is the +same as GCC's but guarded with a different macro. + +Reviewers: mclow.lists, EricWF + +Reviewed By: EricWF + +Subscribers: chandlerc, cfe-commits + +Differential Revision: https://reviews.llvm.org/D28478 + +git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@294683 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + include/cstddef | 3 ++- + include/stddef.h | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/include/cstddef b/include/cstddef +index edd106c00..103898b7d 100644 +--- a/include/cstddef ++++ b/include/cstddef +@@ -48,7 +48,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD + using ::ptrdiff_t; + using ::size_t; + +-#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T) ++#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T) || \ ++ defined(__DEFINED_max_align_t) + // Re-use the compiler's <stddef.h> max_align_t where possible. + using ::max_align_t; + #else +diff --git a/include/stddef.h b/include/stddef.h +index 8841bbea2..faf8552d8 100644 +--- a/include/stddef.h ++++ b/include/stddef.h +@@ -53,7 +53,8 @@ using std::nullptr_t; + } + + // Re-use the compiler's <stddef.h> max_align_t where possible. +-#if !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T) ++#if !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T) && \ ++ !defined(__DEFINED_max_align_t) + typedef long double max_align_t; + #endif + diff --git a/pkgs/development/compilers/llvm/4/libc++abi.nix b/pkgs/development/compilers/llvm/4/libc++abi.nix index 6a3d91101360..41eb40e124eb 100644 --- a/pkgs/development/compilers/llvm/4/libc++abi.nix +++ b/pkgs/development/compilers/llvm/4/libc++abi.nix @@ -14,6 +14,9 @@ stdenv.mkDerivation { export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)" '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch} + patch -p1 -d $(ls -d libcxx-*) -i ${./libc++/max_align_t.patch} ''; installPhase = if stdenv.isDarwin diff --git a/pkgs/development/compilers/llvm/4/llvm.nix b/pkgs/development/compilers/llvm/4/llvm.nix index ceaa45fe8d73..7fd94316d738 100644 --- a/pkgs/development/compilers/llvm/4/llvm.nix +++ b/pkgs/development/compilers/llvm/4/llvm.nix @@ -80,6 +80,9 @@ in stdenv.mkDerivation (rec { ) '' + stdenv.lib.optionalString stdenv.isAarch64 '' patch -p0 < ${../aarch64.patch} + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../TLI-musl.patch} + patch -p1 -i ${./dynamiclibrary-musl.patch} ''; # hacky fix: created binaries need to be run before installation @@ -110,6 +113,14 @@ in stdenv.mkDerivation (rec { ++ stdenv.lib.optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" + ] + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" + + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" ]; postBuild = '' diff --git a/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix index c8eafce4e396..b5aea54b5771 100644 --- a/pkgs/development/compilers/llvm/5/clang/default.nix +++ b/pkgs/development/compilers/llvm/5/clang/default.nix @@ -44,6 +44,8 @@ let # Patch for standalone doc building sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; outputs = [ "out" "lib" "python" ]; diff --git a/pkgs/development/compilers/llvm/5/libc++/default.nix b/pkgs/development/compilers/llvm/5/libc++/default.nix index 6f03e225ad65..9ddeea7ef79a 100644 --- a/pkgs/development/compilers/llvm/5/libc++/default.nix +++ b/pkgs/development/compilers/llvm/5/libc++/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetch, cmake, llvm, libcxxabi, fixDarwinDylibNames, version }: +{ lib, stdenv, fetch, cmake, python, llvm, libcxxabi, fixDarwinDylibNames, version }: stdenv.mkDerivation rec { name = "libc++-${version}"; @@ -10,6 +10,12 @@ stdenv.mkDerivation rec { export LIBCXXABI_INCLUDE_DIR="$PWD/$(ls -d libcxxabi-${version}*)/include" ''; + # on next rebuild, this can be replaced with optionals; for now set to null to avoid + # patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + patches = if stdenv.hostPlatform.isMusl then [ + ../../libcxx-0001-musl-hacks.patch + ] else null; + prePatch = '' substituteInPlace lib/CMakeLists.txt --replace "/usr/lib/libc++" "\''${LIBCXX_LIBCXXABI_LIB_PATH}/libc++" ''; @@ -17,9 +23,10 @@ stdenv.mkDerivation rec { preConfigure = '' # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$LIBCXXABI_INCLUDE_DIR") + '' + lib.optionalString stdenv.hostPlatform.isMusl '' + patchShebangs utils/cat_files.py ''; - - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ cmake ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl python; buildInputs = [ libcxxabi ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames; @@ -27,7 +34,7 @@ stdenv.mkDerivation rec { "-DLIBCXX_LIBCXXABI_LIB_PATH=${libcxxabi}/lib" "-DLIBCXX_LIBCPPABI_VERSION=2" "-DLIBCXX_CXX_ABI=libcxxabi" - ]; + ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "-DLIBCXX_HAS_MUSL_LIBC=1"; enableParallelBuilding = true; diff --git a/pkgs/development/compilers/llvm/5/libc++abi.nix b/pkgs/development/compilers/llvm/5/libc++abi.nix index 166f4260291f..6d27dcd47b0b 100644 --- a/pkgs/development/compilers/llvm/5/libc++abi.nix +++ b/pkgs/development/compilers/llvm/5/libc++abi.nix @@ -14,6 +14,8 @@ stdenv.mkDerivation { export cmakeFlags="-DLLVM_PATH=$PWD/$(ls -d llvm-*) -DLIBCXXABI_LIBCXX_PATH=$PWD/$(ls -d libcxx-*)" '' + stdenv.lib.optionalString stdenv.isDarwin '' export TRIPLE=x86_64-apple-darwin + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -d $(ls -d libcxx-*) -i ${../libcxx-0001-musl-hacks.patch} ''; installPhase = if stdenv.isDarwin diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix index 1067fa886bcb..f574eb05f92b 100644 --- a/pkgs/development/compilers/llvm/5/llvm.nix +++ b/pkgs/development/compilers/llvm/5/llvm.nix @@ -74,6 +74,11 @@ in stdenv.mkDerivation (rec { patch -p1 -i ${./compiler-rt-codesign.patch} -d projects/compiler-rt '' + stdenv.lib.optionalString stdenv.isAarch64 '' patch -p0 < ${../aarch64.patch} + '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + patch -p1 -i ${../TLI-musl.patch} + substituteInPlace unittests/Support/CMakeLists.txt \ + --replace "add_subdirectory(DynamicLibrary)" "" + rm unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp ''; # hacky fix: created binaries need to be run before installation @@ -104,6 +109,14 @@ in stdenv.mkDerivation (rec { ++ stdenv.lib.optionals (isDarwin) [ "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" + ] + ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl [ + "-DLLVM_HOST_TRIPLE=${stdenv.hostPlatform.config}" + "-DLLVM_DEFAULT_TARGET_TRIPLE=${stdenv.targetPlatform.config}" + "-DTARGET_TRIPLE=${stdenv.targetPlatform.config}" + + "-DCOMPILER_RT_BUILD_SANITIZERS=OFF" + "-DCOMPILER_RT_BUILD_XRAY=OFF" ]; postBuild = '' diff --git a/pkgs/development/compilers/llvm/TLI-musl.patch b/pkgs/development/compilers/llvm/TLI-musl.patch new file mode 100644 index 000000000000..1a6908086637 --- /dev/null +++ b/pkgs/development/compilers/llvm/TLI-musl.patch @@ -0,0 +1,35 @@ +From 5c571082fdaf61f6df19d9b7137dc26d71334058 Mon Sep 17 00:00:00 2001 +From: Natanael Copa <ncopa@alpinelinux.org> +Date: Thu, 18 Feb 2016 10:33:04 +0100 +Subject: [PATCH 2/3] Fix build with musl libc + +On musl libc the fopen64 and fopen are the same thing, but for +compatibility they have a `#define fopen64 fopen`. Same applies for +fseek64, fstat64, fstatvfs64, ftello64, lstat64, stat64 and tmpfile64. +--- + include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h +index 7becdf0..7f14427 100644 +--- a/include/llvm/Analysis/TargetLibraryInfo.h ++++ b/include/llvm/Analysis/TargetLibraryInfo.h +@@ -18,6 +18,15 @@ + #include "llvm/IR/Module.h" + #include "llvm/Pass.h" + ++#undef fopen64 ++#undef fseeko64 ++#undef fstat64 ++#undef fstatvfs64 ++#undef ftello64 ++#undef lstat64 ++#undef stat64 ++#undef tmpfile64 ++ + namespace llvm { + /// VecDesc - Describes a possible vectorization of a function. + /// Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized +-- +2.7.3 + diff --git a/pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch b/pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch new file mode 100644 index 000000000000..bcb5ad8cfb87 --- /dev/null +++ b/pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch @@ -0,0 +1,39 @@ +From 1c936d7fda3275265e37f93697232a1ed652390f Mon Sep 17 00:00:00 2001 +From: Will Dietz <w@wdtz.org> +Date: Sat, 9 Jul 2016 19:22:54 -0500 +Subject: [PATCH] musl fixes/hacks + +Conflicts: + + include/__config + include/locale + src/locale.cpp +--- + include/locale | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/locale b/include/locale +index 3d804e8..9b01f5b 100644 +--- a/include/locale ++++ b/include/locale +@@ -695,7 +695,7 @@ __num_get_signed_integral(const char* __a, const char* __a_end, + typename remove_reference<decltype(errno)>::type __save_errno = errno; + errno = 0; + char *__p2; +- long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); ++ long long __ll = strtoll(__a, &__p2, __base); + typename remove_reference<decltype(errno)>::type __current_errno = errno; + if (__current_errno == 0) + errno = __save_errno; +@@ -735,7 +735,7 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, + typename remove_reference<decltype(errno)>::type __save_errno = errno; + errno = 0; + char *__p2; +- unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); ++ unsigned long long __ll = strtoull(__a, &__p2, __base); + typename remove_reference<decltype(errno)>::type __current_errno = errno; + if (__current_errno == 0) + errno = __save_errno; +-- +1.7.1 + diff --git a/pkgs/development/compilers/mono/5.8.nix b/pkgs/development/compilers/mono/5.8.nix new file mode 100644 index 000000000000..6db9e19807bb --- /dev/null +++ b/pkgs/development/compilers/mono/5.8.nix @@ -0,0 +1,8 @@ +{ stdenv, callPackage, Foundation, libobjc }: + +callPackage ./generic-cmake.nix (rec { + inherit Foundation libobjc; + version = "5.8.0.108"; + sha256 = "177khb06dfll0pcncr84vvibni7f8m5fgb30ndgsdjk25xfcbmzc"; + enableParallelBuilding = false; +}) diff --git a/pkgs/development/compilers/rust/binaryBuild.nix b/pkgs/development/compilers/rust/binaryBuild.nix index 6c6f6b55e1e6..1904c12dfdc1 100644 --- a/pkgs/development/compilers/rust/binaryBuild.nix +++ b/pkgs/development/compilers/rust/binaryBuild.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, makeWrapper, cacert, zlib, buildRustPackage, curl, darwin +{ stdenv, fetchurl, makeWrapper, bash, cacert, zlib, buildRustPackage, curl, darwin , version , src , platform @@ -34,9 +34,11 @@ rec { license = [ licenses.mit licenses.asl20 ]; }; - phases = ["unpackPhase" "installPhase" "fixupPhase"]; + buildInputs = [ bash ] ++ stdenv.lib.optional stdenv.isDarwin Security; - buildInputs = stdenv.lib.optional stdenv.isDarwin Security; + postPatch = '' + patchShebangs . + ''; installPhase = '' ./install.sh --prefix=$out \ @@ -86,9 +88,11 @@ rec { license = [ licenses.mit licenses.asl20 ]; }; - phases = ["unpackPhase" "installPhase" "fixupPhase"]; + buildInputs = [ makeWrapper bash ] ++ stdenv.lib.optional stdenv.isDarwin Security; - buildInputs = [ makeWrapper ] ++ stdenv.lib.optional stdenv.isDarwin Security; + postPatch = '' + patchShebangs . + ''; installPhase = '' patchShebangs ./install.sh diff --git a/pkgs/development/compilers/rust/bootstrap.nix b/pkgs/development/compilers/rust/bootstrap.nix index 034334f58500..9b488bab5b3b 100644 --- a/pkgs/development/compilers/rust/bootstrap.nix +++ b/pkgs/development/compilers/rust/bootstrap.nix @@ -3,16 +3,16 @@ let # Note: the version MUST be one version prior to the version we're # building - version = "1.21.0"; + version = "1.23.0"; - # fetch hashes by running `print-hashes.sh 1.21.0` + # fetch hashes by running `print-hashes.sh 1.23.0` hashes = { - i686-unknown-linux-gnu = "b7caed0f602cdb8ef22e0bfa9125a65bec411e15c0b8901d937e43303ec7dbee"; - x86_64-unknown-linux-gnu = "b41e70e018402bc04d02fde82f91bea24428e6be432f0df12ac400cfb03108e8"; - armv7-unknown-linux-gnueabihf = "416fa6f107ad9e386002e6af1aec495472e2ee489c842183dd429a25b07488d6"; - aarch64-unknown-linux-gnu = "491ee6c43cc672006968d665bd34c94cc2219ef3592d93d38097c97eaaa864c3"; - i686-apple-darwin = "c8b0fabeebcde66b683f3a871187e614e07305adda414c2862cb332aecb2b3bf"; - x86_64-apple-darwin = "75a7f4bd7c72948030bb9e421df27e8a650dea826fb5b836cf59d23d6f985a0d"; + i686-unknown-linux-gnu = "dc5bd0ef47e1036c8ca64676d8967102cb86ce4bf50b90a9845951c3e940423f"; + x86_64-unknown-linux-gnu = "9a34b23a82d7f3c91637e10ceefb424539dcfa327c2dcd292ff10c047b1fdc7e"; + armv7-unknown-linux-gnueabihf = "587027899267f1961520438c2c7f6775fe224160d43ddf07332b9b943a26b08e"; + aarch64-unknown-linux-gnu = "38379fbd976d2286cb73f21466db40a636a583b9f8a80af5eea73617c7912bc7"; + i686-apple-darwin = "4709eb1ad2fb871fdaee4b3449569cef366b0d170453cf17484a12286564f2ad"; + x86_64-apple-darwin = "9274e977322bb4b153f092255ac9bd85041142c73eaabf900cb2ef3d3abb2eba"; }; platform = diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix index 4c397c8c1a48..fecf80a44853 100644 --- a/pkgs/development/compilers/rust/cargo.nix +++ b/pkgs/development/compilers/rust/cargo.nix @@ -1,7 +1,8 @@ { stdenv, fetchFromGitHub, file, curl, pkgconfig, python, openssl, cmake, zlib , makeWrapper, libiconv, cacert, rustPlatform, rustc, libgit2, darwin -, version, srcSha, cargoSha256 -, patches ? [] }: +, version +, patches ? [] +, src }: let inherit (darwin.apple_sdk.frameworks) CoreFoundation; @@ -9,17 +10,12 @@ in rustPlatform.buildRustPackage rec { name = "cargo-${version}"; - inherit version; + inherit version src patches; - src = fetchFromGitHub { - owner = "rust-lang"; - repo = "cargo"; - rev = version; - sha256 = srcSha; - }; - - inherit cargoSha256; - inherit patches; + # the rust source tarball already has all the dependencies vendored, no need to fetch them again + cargoVendorDir = "src/vendor"; + preBuild = "cd src; pushd tools/cargo"; + postBuild = "popd"; passthru.rustc = rustc; diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix index b5550a96a835..576e42eb08ab 100644 --- a/pkgs/development/compilers/rust/default.nix +++ b/pkgs/development/compilers/rust/default.nix @@ -6,21 +6,20 @@ let rustPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./bootstrap.nix {})); - version = "1.22.1"; -in -rec { + version = "1.24.0"; + cargoVersion = "0.24.0"; + src = fetchurl { + url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"; + sha256 = "17v3jpyky8vkkgai5yd2zr8zl87qpgj6dx99gx27x1sf0kv7d0mv"; + }; +in rec { rustc = callPackage ./rustc.nix { - inherit llvm targets targetPatches targetToolchains rustPlatform version; + inherit llvm targets targetPatches targetToolchains rustPlatform version src; forceBundledLLVM = true; configureFlags = [ "--release-channel=stable" ]; - src = fetchurl { - url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"; - sha256 = "1lrzzp0nh7s61wgfs2h6ilaqi6iq89f1pd1yaf65l87bssyl4ylb"; - }; - patches = [ ./patches/0001-Disable-fragile-tests-libstd-net-tcp-on-Darwin-Linux.patch ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch @@ -30,10 +29,8 @@ rec { }; cargo = callPackage ./cargo.nix rec { - version = "0.23.0"; - srcSha = "14b2n1msxma19ydchj54hd7f2zdsr524fg133dkmdn7j65f1x6aj"; - cargoSha256 = "1sj59z0w172qvjwg1ma5fr5am9dgw27086xwdnrvlrk4hffcr7y7"; - + version = cargoVersion; + inherit src; inherit rustc; # the rustc that will be wrapped by cargo inherit rustPlatform; # used to build cargo }; diff --git a/pkgs/development/compilers/rust/patches/aarch64-disable-test_loading_cosine.patch b/pkgs/development/compilers/rust/patches/aarch64-disable-test_loading_cosine.patch index d29eb16cfe55..bafab0e9ef71 100644 --- a/pkgs/development/compilers/rust/patches/aarch64-disable-test_loading_cosine.patch +++ b/pkgs/development/compilers/rust/patches/aarch64-disable-test_loading_cosine.patch @@ -1,7 +1,7 @@ -diff --git a/src/librustc_back/dynamic_lib.rs b/src/librustc_back/dynamic_lib.rs +diff --git a/src/librustc_metadata/dynamic_lib.rs b/src/librustc_metadata/dynamic_lib.rs index 1b42fa0..92256dc 100644 ---- a/src/librustc_back/dynamic_lib.rs -+++ b/src/librustc_back/dynamic_lib.rs +--- a/src/librustc_metadata/dynamic_lib.rs ++++ b/src/librustc_metadata/dynamic_lib.rs @@ -80,6 +80,7 @@ mod tests { use std::mem; diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix index efed388ce4ca..92b149865fa2 100644 --- a/pkgs/development/compilers/rust/rustc.nix +++ b/pkgs/development/compilers/rust/rustc.nix @@ -57,9 +57,9 @@ stdenv.mkDerivation { # We need rust to build rust. If we don't provide it, configure will try to download it. configureFlags = configureFlags ++ [ "--enable-local-rust" "--local-rust-root=${rustPlatform.rust.rustc}" "--enable-rpath" ] - ++ [ "--enable-vendor" "--disable-locked-deps" ] + ++ [ "--enable-vendor" ] # ++ [ "--jemalloc-root=${jemalloc}/lib" - ++ [ "--default-linker=${targetPackages.stdenv.cc}/bin/cc" "--default-ar=${targetPackages.stdenv.cc.bintools}/bin/ar" ] + ++ [ "--default-linker=${targetPackages.stdenv.cc}/bin/cc" ] ++ optional (!forceBundledLLVM) [ "--enable-llvm-link-shared" ] ++ optional (targets != []) "--target=${target}" ++ optional (!forceBundledLLVM) "--llvm-root=${llvmShared}"; @@ -72,6 +72,8 @@ stdenv.mkDerivation { passthru.target = target; postPatch = '' + patchShebangs src/etc + # Fix dynamic linking against llvm #${optionalString (!forceBundledLLVM) ''sed -i 's/, kind = \\"static\\"//g' src/etc/mklldeps.py''} @@ -98,19 +100,6 @@ stdenv.mkDerivation { # On Hydra: `TcpListener::bind(&addr)`: Address already in use (os error 98)' sed '/^ *fn fast_rebind()/i#[ignore]' -i src/libstd/net/tcp.rs - # Disable some failing gdb tests. Try re-enabling these when gdb - # is updated past version 7.12. - rm src/test/debuginfo/basic-types-globals.rs - rm src/test/debuginfo/basic-types-mut-globals.rs - rm src/test/debuginfo/c-style-enum.rs - rm src/test/debuginfo/lexical-scopes-in-block-expression.rs - rm src/test/debuginfo/limited-debuginfo.rs - rm src/test/debuginfo/simple-struct.rs - rm src/test/debuginfo/simple-tuple.rs - rm src/test/debuginfo/union-smoke.rs - rm src/test/debuginfo/vec-slices.rs - rm src/test/debuginfo/vec.rs - # Useful debugging parameter # export VERBOSE=1 '' diff --git a/pkgs/development/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix index cd8c839cf4fe..4c79fb15c5cb 100644 --- a/pkgs/development/compilers/solc/default.nix +++ b/pkgs/development/compilers/solc/default.nix @@ -1,9 +1,7 @@ -{ stdenv, fetchzip, fetchgit, boost, cmake, z3 }: +{ stdenv, fetchzip, fetchurl, boost, cmake, z3 }: let - version = "0.4.19"; - rev = "c4cbbb054b5ed3b8ceaa21ee5b47b0704762ff40"; - sha256 = "1h2ziwdswghj4aa3vd3k3y2ckfiwjk6x38w2kp4m324k2ydxd15c"; + version = "0.4.20"; jsoncppURL = https://github.com/open-source-parsers/jsoncpp/archive/1.7.7.tar.gz; jsoncpp = fetchzip { url = jsoncppURL; @@ -15,14 +13,12 @@ stdenv.mkDerivation { name = "solc-${version}"; # Cannot use `fetchFromGitHub' because of submodules - src = fetchgit { - url = "https://github.com/ethereum/solidity"; - inherit rev sha256; + src = fetchurl { + url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz"; + sha256 = "0jyqnykj537ksfsf2m6ww9vganmpa6yd5fmlfpa5qm1076kq7zd6"; }; patchPhase = '' - echo >commit_hash.txt '${rev}' - echo >prerelease.txt substituteInPlace cmake/jsoncpp.cmake \ --replace '${jsoncppURL}' ${jsoncpp} substituteInPlace cmake/EthCompilerSettings.cmake \ diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix index b3990fab7615..f276613db0b6 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix @@ -88,12 +88,34 @@ self: super: { ## from the context: a constraints = super.constraints_0_10; + ## Needs bump to a versioned attribute + ## + ## • Could not deduce (Semigroup (IterT m a)) + ## arising from the superclasses of an instance declaration + ## from the context: (Monad m, Monoid a) + free = super.free_5; + + funcmp = overrideCabal super.funcmp_1_9 (drv: { + ## Needs bump to a versioned attribute + ## + ## Needed for (<>) in prelude + ## Setup: Encountered missing dependencies: + ## base >=3 && <4.11 + jailbreak = true; + }); + hspec-core = overrideCabal super.hspec-core_2_4_8 (drv: { ## Needs bump to a versioned attribute ## ## • No instance for (Semigroup Summary) ## arising from the superclasses of an instance declaration ## • In the instance declaration for ‘Monoid Summary’ + ## error: while evaluating the attribute ‘buildInputs’ of the derivation ‘hspec-core-2.4.8’ at /home/deepfire/src/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:148:11: + ## while evaluating the attribute ‘buildInputs’ of the derivation ‘silently-1.2.5’ at /home/deepfire/src/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:148:11: + ## while evaluating the attribute ‘buildInputs’ of the derivation ‘temporary-1.2.1.1’ at /home/deepfire/src/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:148:11: + ## while evaluating the attribute ‘buildInputs’ of the derivation ‘base-compat-0.9.3’ at /home/deepfire/src/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:148:11: + ## while evaluating the attribute ‘propagatedBuildInputs’ of the derivation ‘hspec-2.4.8’ at /home/deepfire/src/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:148:11: + ## infinite recursion encountered, at undefined position doCheck = false; }); @@ -104,105 +126,87 @@ self: super: { ## hspec-discover ==2.4.7 hspec-discover = super.hspec-discover_2_4_8; - ## Needs bump to a versioned attribute - ## - ## • Could not deduce (Semigroup (a :->: b)) - ## arising from the superclasses of an instance declaration - ## from the context: (HasTrie a, Monoid b) - MemoTrie = super.MemoTrie_0_6_9; + lens = overrideCabal super.lens_4_16 (drv: { + ## Needs bump to a versioned attribute + ## + ## • Could not deduce (Apply f) + ## arising from the superclasses of an instance declaration + ## from the context: (Contravariant f, Applicative f) + ## Setup: Encountered missing dependencies: + ## ghc >=7.0 && <8.4 + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies + doCheck = false; + }); semigroupoids = overrideCabal super.semigroupoids_5_2_2 (drv: { ## Needs bump to a versioned attribute ## ## • Variable not in scope: mappend :: Seq a -> Seq a -> Seq a - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); ## Needs bump to a versioned attribute ## - ## • Could not deduce (Semigroup (Traversal f)) + ## • No instance for (Semigroup Builder) ## arising from the superclasses of an instance declaration - ## from the context: Applicative f - tasty = super.tasty_1_0_1; + ## • In the instance declaration for ‘Monoid Builder’ + stringbuilder = super.stringbuilder_0_5_1; + + ## Needs bump to a versioned attribute + ## + ## Module ‘Data.Semigroup’ does not export ‘Monoid(..)’ + ## | + ## 80 | import Data.Semigroup (Semigroup(..), Monoid(..)) + unordered-containers = super.unordered-containers_0_2_9_0; + ## On Hackage: - happy = overrideCabal super.happy (drv: { + tasty = overrideCabal super.tasty (drv: { ## On Hackage, awaiting for import ## - ## Ambiguous occurrence ‘<>’ - ## It could refer to either ‘Prelude.<>’, - ## imported from ‘Prelude’ at src/PrettyGrammar.hs:1:8-20 - version = "1.19.9"; - sha256 = "138xpxdb7x62lpmgmb6b3v3vgdqqvqn4273jaap3mjmc2gla709y"; + ## • No instance for (Semigroup OptionSet) + ## arising from the superclasses of an instance declaration + ## • In the instance declaration for ‘Monoid OptionSet’ + version = "1.0.0.1"; + sha256 = "0ggqffw9kbb6nlq1pplk131qzxndqqzqyf4s2p7576nljx11a7qf"; }); ## Upstreamed - free = overrideCabal super.free (drv: { - ## Upstreamed, awaiting a Hackage release - ## - ## • Could not deduce (Semigroup (IterT m a)) - ## arising from the superclasses of an instance declaration - ## from the context: (Monad m, Monoid a) - src = pkgs.fetchFromGitHub { - owner = "ekmett"; - repo = "free"; - rev = "fcefc71ed302f2eaf60f020046bad392338b3109"; - sha256 = "0mfrd7y97pgqmb2i66jn5xwjpcrgnfcqq8dzkxqgx1b5wjdydq70"; - }; - ## Setup: Encountered missing dependencies: - ## transformers-base <0.5 - ## builder for ‘/nix/store/3yvaqx5qcg1fb3nnyc273fkhgfh73pgv-free-4.12.4.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/3yvaqx5qcg1fb3nnyc273fkhgfh73pgv-free-4.12.4.drv’ failed - libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.transformers-base ]; - }); - haskell-gi = overrideCabal super.haskell-gi (drv: { ## Upstreamed, awaiting a Hackage release ## ## Setup: Encountered missing dependencies: ## haskell-gi-base ==0.20.* - ## builder for ‘/nix/store/q0qkq2gzmdnkvdz6xl7svv5305chbr4b-haskell-gi-0.20.3.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/q0qkq2gzmdnkvdz6xl7svv5305chbr4b-haskell-gi-0.20.3.drv’ failed src = pkgs.fetchFromGitHub { owner = "haskell-gi"; repo = "haskell-gi"; rev = "30d2e6415c5b57760f8754cd3003eb07483d60e6"; sha256 = "1l3qm97gcjih695hhj80rbpnd72prnc81lg5y373yj8jk9f6ypbr"; }; - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); haskell-gi-base = overrideCabal super.haskell-gi-base (drv: { ## Upstreamed, awaiting a Hackage release ## - ## breaks haskell-gi: ## Setup: Encountered missing dependencies: ## haskell-gi-base ==0.21.* + ## cannot build derivation ‘/nix/store/b3d6yr1rzk4hpzg87yk4n5i4321i824f-gi-cairo-1.0.14.drv’: 1 dependencies couldn't be built src = pkgs.fetchFromGitHub { owner = "haskell-gi"; repo = "haskell-gi"; rev = "30d2e6415c5b57760f8754cd3003eb07483d60e6"; sha256 = "1l3qm97gcjih695hhj80rbpnd72prnc81lg5y373yj8jk9f6ypbr"; }; - ## Setup: Encountered missing dependencies: - ## attoparsec ==0.13.*, - ## doctest >=0.8, - ## haskell-gi-base ==0.21.*, - ## pretty-show -any, - ## regex-tdfa >=1.2, prePatch = "cd base; "; }); @@ -220,20 +224,6 @@ self: super: { }; }); - hedgehog = overrideCabal super.hedgehog (drv: { - ## Upstreamed, awaiting a Hackage release - ## - ## /nix/store/78sxg2kvl2klplqfx22s6b42lds7qq23-stdenv/setup: line 99: cd: hedgehog: No such file or directory - src = pkgs.fetchFromGitHub { - owner = "hedgehogqa"; - repo = "haskell-hedgehog"; - rev = "7a4fab73670bc33838f2b5f25eb824ee550079ce"; - sha256 = "1l8maassmklf6wgairk7llxvlbwxngv0dzx0fwnqx6hsb32sms05"; - }; - ## jailbreak-cabal: dieVerbatim: user error (jailbreak-cabal: Error Parsing: file "hedgehog.cabal" doesn't exist. Cannot - prePatch = "cd hedgehog; "; - }); - lambdacube-compiler = overrideCabal super.lambdacube-compiler (drv: { ## Upstreamed, awaiting a Hackage release ## @@ -254,42 +244,17 @@ self: super: { lambdacube-ir = overrideCabal super.lambdacube-ir (drv: { ## Upstreamed, awaiting a Hackage release ## - ## /nix/store/78sxg2kvl2klplqfx22s6b42lds7qq23-stdenv/setup: line 99: cd: lambdacube-ir.haskell: No such file or directory + ## Setup: Encountered missing dependencies: + ## aeson >=0.9 && <0.12, base >=4.8 && <4.10, vector ==0.11.* src = pkgs.fetchFromGitHub { owner = "lambdacube3d"; repo = "lambdacube-ir"; rev = "b86318b510ef59606c5b7c882cad33af52ce257c"; sha256 = "0j4r6b32lcm6jg653xzg9ijxkfjahlb4x026mv5dhs18kvgqhr8x"; }; - ## Setup: No cabal file found. prePatch = "cd lambdacube-ir.haskell; "; }); - lens = overrideCabal super.lens (drv: { - ## Upstreamed, awaiting a Hackage release - ## - ## • Could not deduce (Apply f) - ## arising from the superclasses of an instance declaration - ## from the context: (Contravariant f, Applicative f) - src = pkgs.fetchFromGitHub { - owner = "ekmett"; - repo = "lens"; - rev = "4ad49eaf2448d856f0433fe5a4232f1e8fa87eb0"; - sha256 = "0sd08v6syadplhk5d21yi7qffbjncn8z1bqlwz9nyyb0xja8s8wa"; - }; - ## CABAL-MISSING-DEPS - ## Setup: Encountered missing dependencies: - ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed - doCheck = false; - ## Setup: Encountered missing dependencies: - ## template-haskell >=2.4 && <2.13 - ## builder for ‘/nix/store/fvrc4s96ym33i74y794nap7xai9p69fa-lens-4.15.4.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/fvrc4s96ym33i74y794nap7xai9p69fa-lens-4.15.4.drv’ failed - jailbreak = true; - }); - simple-reflect = overrideCabal super.simple-reflect (drv: { ## Upstreamed, awaiting a Hackage release ## @@ -309,8 +274,6 @@ self: super: { ## ## Setup: Encountered missing dependencies: ## th-desugar ==1.7.* - ## builder for ‘/nix/store/g5jl22kpq8fnrg8ldphxndri759nxwzf-singletons-2.3.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/g5jl22kpq8fnrg8ldphxndri759nxwzf-singletons-2.3.1.drv’ failed src = pkgs.fetchFromGitHub { owner = "goldfirere"; repo = "singletons"; @@ -319,20 +282,6 @@ self: super: { }; }); - stringbuilder = overrideCabal super.stringbuilder (drv: { - ## Upstreamed, awaiting a Hackage release - ## - ## • No instance for (Semigroup Builder) - ## arising from the superclasses of an instance declaration - ## • In the instance declaration for ‘Monoid Builder’ - src = pkgs.fetchFromGitHub { - owner = "sol"; - repo = "stringbuilder"; - rev = "4a1b689d3c8a462b28e0d21224b96165f622e6f7"; - sha256 = "0h3nva4mwxkdg7hh7b7a3v561wi1bvmj0pshhd3sl7dy3lpvnrah"; - }; - }); - th-desugar = overrideCabal super.th-desugar (drv: { ## Upstreamed, awaiting a Hackage release ## @@ -347,20 +296,6 @@ self: super: { }; }); - unordered-containers = overrideCabal super.unordered-containers (drv: { - ## Upstreamed, awaiting a Hackage release - ## - ## Module ‘Data.Semigroup’ does not export ‘Monoid(..)’ - ## | - ## 80 | import Data.Semigroup (Semigroup(..), Monoid(..)) - src = pkgs.fetchFromGitHub { - owner = "tibbe"; - repo = "unordered-containers"; - rev = "0a6b84ec103e28b73458f385ef846a7e2d3ea42f"; - sha256 = "128q8k4py2wr1v0gmyvqvzikk6sksl9aqj0lxzf46763lis8x9my"; - }; - }); - websockets = overrideCabal super.websockets (drv: { ## Upstreamed, awaiting a Hackage release ## @@ -412,22 +347,20 @@ self: super: { doCheck = false; ## Setup: Encountered missing dependencies: ## data-or ==1.0.* - ## builder for ‘/nix/store/iw3xsljnygsv9q2jglcv54mqd94fig7n-bytestring-trie-0.2.4.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/iw3xsljnygsv9q2jglcv54mqd94fig7n-bytestring-trie-0.2.4.1.drv’ failed libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.data-or ]; }); gtk2hs-buildtools = overrideCabal super.gtk2hs-buildtools (drv: { ## Unmerged. PR: https://github.com/gtk2hs/gtk2hs/pull/233 ## - ## /nix/store/78sxg2kvl2klplqfx22s6b42lds7qq23-stdenv/setup: line 99: cd: tools: No such file or directory + ## Setup: Encountered missing dependencies: + ## Cabal >=1.24.0.0 && <2.1 src = pkgs.fetchFromGitHub { owner = "deepfire"; repo = "gtk2hs"; rev = "08c68d5afc22dd5761ec2c92ebf49c6d252e545b"; sha256 = "06prn5wqq8x225n9wlbyk60f50jyjj8fm2hf181dyqjpf8wq75xa"; }; - ## Setup: No cabal file found. prePatch = "cd tools; "; }); @@ -503,41 +436,12 @@ self: super: { rev = "4fb50139db45a37493b91973eeaad9885b4c63ca"; sha256 = "0i7pp6cw394m2vbwcqv9z5ngdarp01sabqr1jkkgchxdkkii94nx"; }; - ## mergeIncrementalWithMove :: - ## GCompare k => - ## Incremental t (PatchDMapWithMove k (Event t)) - ## -> Event t (DMap k Identity) - ## currentIncremental :: - ## Patch p => Incremental t p -> Behavior t (PatchTarget p) - ## updatedIncremental :: Patch p => Incremental t p -> Event t p - ## incrementalToDynamic :: - ## Patch p => Incremental t p -> Dynamic t (PatchTarget p) - ## behaviorCoercion :: - ## Coercion a b -> Coercion (Behavior t a) (Behavior t b) - ## eventCoercion :: Coercion a b -> Coercion (Event t a) (Event t b) - ## dynamicCoercion :: - ## Coercion a b -> Coercion (Dynamic t a) (Dynamic t b) - ## mergeIntIncremental :: - ## Incremental t (PatchIntMap (Event t a)) -> Event t (IntMap a) - ## fanInt :: Event t (IntMap a) -> EventSelectorInt t a - ## {-# MINIMAL never, constant, push, pushCheap, pull, merge, fan, - ## switch, coincidence, current, updated, unsafeBuildDynamic, - ## unsafeBuildIncremental, mergeIncremental, mergeIncrementalWithMove, - ## currentIncremental, updatedIncremental, incrementalToDynamic, - ## behaviorCoercion, eventCoercion, dynamicCoercion, - ## mergeIntIncremental, fanInt #-} - ## Matches: - ## [] - ## Call stack: - ## CallStack (from HasCallStack): - ## callStackDoc, called at compiler/utils/Outputable.hs:1150:37 in ghc:Outputable - ## pprPanic, called at utils/haddock/haddock-api/src/Haddock/Interface/Create.hs:1013:16 in main:Haddock.Interface.Create - ## Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug + ## haddock: internal error: internal: extractDecl (ClsInstD) + ## CallStack (from HasCallStack): + ## error, called at utils/haddock/haddock-api/src/Haddock/Interface/Create.hs:1058:16 in main:Haddock.Interface.Create doHaddock = false; ## Setup: Encountered missing dependencies: ## base >=4.7 && <4.11, bifunctors >=5.2 && <5.5 - ## builder for ‘/nix/store/93ka24600m4mipsgn2cq8fwk124q97ca-reflex-0.4.0.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/93ka24600m4mipsgn2cq8fwk124q97ca-reflex-0.4.0.1.drv’ failed jailbreak = true; ## Setup: Encountered missing dependencies: ## data-default -any, @@ -562,6 +466,20 @@ self: super: { }; }); + securemem = overrideCabal super.securemem (drv: { + ## Unmerged. PR: https://github.com/vincenthz/hs-securemem/pull/12 + ## + ## • No instance for (Semigroup SecureMem) + ## arising from the superclasses of an instance declaration + ## • In the instance declaration for ‘Monoid SecureMem’ + src = pkgs.fetchFromGitHub { + owner = "shlevy"; + repo = "hs-securemem"; + rev = "6168d90b00bfc6a559d3b9160732343644ef60fb"; + sha256 = "06dhx1z44j5gshpdlsb4aryr3g4was3x4c2sgv1px8j57zrvlypx"; + }; + }); + text-format = overrideCabal super.text-format (drv: { ## Unmerged. PR: https://github.com/bos/text-format/pull/21 ## @@ -596,237 +514,153 @@ self: super: { adjunctions = overrideCabal super.adjunctions (drv: { ## Setup: Encountered missing dependencies: ## free ==4.* - ## builder for ‘/nix/store/64pvqslahgby4jlg9rpz29n8w4njb670-adjunctions-4.3.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/64pvqslahgby4jlg9rpz29n8w4njb670-adjunctions-4.3.drv’ failed jailbreak = true; }); async = overrideCabal super.async (drv: { ## Setup: Encountered missing dependencies: ## base >=4.3 && <4.11 - ## builder for ‘/nix/store/2xf491hgsmckz2akrn765kvvy2k8crbd-async-2.1.1.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/2xf491hgsmckz2akrn765kvvy2k8crbd-async-2.1.1.1.drv’ failed jailbreak = true; }); bifunctors = overrideCabal super.bifunctors (drv: { ## Setup: Encountered missing dependencies: ## template-haskell >=2.4 && <2.13 - ## builder for ‘/nix/store/dy1hzdy14pz96cvx37yggbv6a88sgxq4-bifunctors-5.5.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/dy1hzdy14pz96cvx37yggbv6a88sgxq4-bifunctors-5.5.drv’ failed jailbreak = true; }); bindings-GLFW = overrideCabal super.bindings-GLFW (drv: { ## Setup: Encountered missing dependencies: ## template-haskell >=2.10 && <2.13 - ## builder for ‘/nix/store/ykc786r2bby5kkbpqjg0y10wb9jhmsa9-bindings-GLFW-3.1.2.3.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/ykc786r2bby5kkbpqjg0y10wb9jhmsa9-bindings-GLFW-3.1.2.3.drv’ failed jailbreak = true; }); bytes = overrideCabal super.bytes (drv: { - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); cabal-doctest = overrideCabal super.cabal-doctest (drv: { ## Setup: Encountered missing dependencies: ## Cabal >=1.10 && <2.1, base >=4.3 && <4.11 - ## builder for ‘/nix/store/zy3l0ll0r9dq29lgxajv12rz1jzjdkrn-cabal-doctest-1.0.5.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/zy3l0ll0r9dq29lgxajv12rz1jzjdkrn-cabal-doctest-1.0.5.drv’ failed jailbreak = true; }); ChasingBottoms = overrideCabal super.ChasingBottoms (drv: { ## Setup: Encountered missing dependencies: ## base >=4.2 && <4.11 - ## builder for ‘/nix/store/wsyjjf4x6pmx84kxnjaka7zwakyrca03-ChasingBottoms-1.3.1.3.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/wsyjjf4x6pmx84kxnjaka7zwakyrca03-ChasingBottoms-1.3.1.3.drv’ failed jailbreak = true; }); comonad = overrideCabal super.comonad (drv: { - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); + deepseq-generics = overrideCabal super.deepseq-generics (drv: { + ## https://github.com/haskell-hvr/deepseq-generics/pull/4 + jailbreak = true; + }); + distributive = overrideCabal super.distributive (drv: { - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); exception-transformers = overrideCabal super.exception-transformers (drv: { ## Setup: Encountered missing dependencies: ## HUnit >=1.2 && <1.6 - ## builder for ‘/nix/store/qs4g7lzq1ixcgg5rw4xb5545g7r34md8-exception-transformers-0.4.0.5.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/qs4g7lzq1ixcgg5rw4xb5545g7r34md8-exception-transformers-0.4.0.5.drv’ failed jailbreak = true; }); hashable = overrideCabal super.hashable (drv: { ## Setup: Encountered missing dependencies: ## base >=4.4 && <4.11 - ## builder for ‘/nix/store/4qlxxypfhbwcv227cmsja1asgqnq37gf-hashable-1.2.6.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/4qlxxypfhbwcv227cmsja1asgqnq37gf-hashable-1.2.6.1.drv’ failed jailbreak = true; }); hashable-time = overrideCabal super.hashable-time (drv: { ## Setup: Encountered missing dependencies: ## base >=4.7 && <4.11 - ## builder for ‘/nix/store/38dllcgxpmkd2fgvs6wd7ji86py0wbnh-hashable-time-0.2.0.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/38dllcgxpmkd2fgvs6wd7ji86py0wbnh-hashable-time-0.2.0.1.drv’ failed jailbreak = true; }); haskell-src-meta = overrideCabal super.haskell-src-meta (drv: { ## Setup: Encountered missing dependencies: ## base >=4.6 && <4.11, template-haskell >=2.8 && <2.13 - ## builder for ‘/nix/store/g5wkb14sydvyv484agvaa7hxl84a0wr9-haskell-src-meta-0.8.0.2.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/g5wkb14sydvyv484agvaa7hxl84a0wr9-haskell-src-meta-0.8.0.2.drv’ failed jailbreak = true; }); - hspec-meta = overrideCabal super.hspec-meta (drv: { - ## Linking dist/build/hspec-meta-discover/hspec-meta-discover ... - ## running tests - ## Package has no test suites. - ## haddockPhase - ## Running hscolour for hspec-meta-2.4.6... - ## Preprocessing library for hspec-meta-2.4.6.. - ## Preprocessing executable 'hspec-meta-discover' for hspec-meta-2.4.6.. - ## Preprocessing library for hspec-meta-2.4.6.. - ## Running Haddock on library for hspec-meta-2.4.6.. - ## Haddock coverage: - ## haddock: panic! (the 'impossible' happened) - ## (GHC version 8.4.20180122 for x86_64-unknown-linux): - ## extractDecl - ## Ambiguous decl for Arg in class: - ## class Example e where - ## type Arg e - ## type Arg e = () - ## evaluateExample :: - ## e - ## -> Params - ## -> (ActionWith (Arg e) -> IO ()) -> ProgressCallback -> IO Result - ## {-# MINIMAL evaluateExample #-} - ## Matches: - ## [] - ## Call stack: - ## CallStack (from HasCallStack): - ## callStackDoc, called at compiler/utils/Outputable.hs:1150:37 in ghc:Outputable - ## pprPanic, called at utils/haddock/haddock-api/src/Haddock/Interface/Create.hs:1013:16 in main:Haddock.Interface.Create - ## Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug - doHaddock = false; - }); - integer-logarithms = overrideCabal super.integer-logarithms (drv: { ## Setup: Encountered missing dependencies: ## base >=4.3 && <4.11 - ## builder for ‘/nix/store/zdiicv0jmjsw6bprs8wxxaq5m0z0a75f-integer-logarithms-1.0.2.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/zdiicv0jmjsw6bprs8wxxaq5m0z0a75f-integer-logarithms-1.0.2.drv’ failed jailbreak = true; }); kan-extensions = overrideCabal super.kan-extensions (drv: { ## Setup: Encountered missing dependencies: ## free ==4.* - ## builder for ‘/nix/store/kvnlcj6zdqi2d2yq988l784hswjwkk4c-kan-extensions-5.0.2.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/kvnlcj6zdqi2d2yq988l784hswjwkk4c-kan-extensions-5.0.2.drv’ failed jailbreak = true; }); keys = overrideCabal super.keys (drv: { ## Setup: Encountered missing dependencies: ## free ==4.* - ## builder for ‘/nix/store/khkbn7wmjr10nyq0wwkmn888bj1l4fmh-keys-3.11.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/khkbn7wmjr10nyq0wwkmn888bj1l4fmh-keys-3.11.drv’ failed jailbreak = true; }); lambdacube-gl = overrideCabal super.lambdacube-gl (drv: { ## Setup: Encountered missing dependencies: ## vector ==0.11.* - ## builder for ‘/nix/store/a98830jm4yywfg1d6264p4yngbiyvssp-lambdacube-gl-0.5.2.4.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/a98830jm4yywfg1d6264p4yngbiyvssp-lambdacube-gl-0.5.2.4.drv’ failed jailbreak = true; }); lifted-async = overrideCabal super.lifted-async (drv: { ## Setup: Encountered missing dependencies: ## base >=4.5 && <4.11 - ## builder for ‘/nix/store/l3000vil24jyq66a5kfqvxfdmy7agwic-lifted-async-0.9.3.3.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/l3000vil24jyq66a5kfqvxfdmy7agwic-lifted-async-0.9.3.3.drv’ failed jailbreak = true; }); linear = overrideCabal super.linear (drv: { - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); newtype-generics = overrideCabal super.newtype-generics (drv: { ## Setup: Encountered missing dependencies: ## base >=4.6 && <4.11 - ## builder for ‘/nix/store/l3rzsjbwys4rjrpv1703iv5zwbd4bwy6-newtype-generics-0.5.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/l3rzsjbwys4rjrpv1703iv5zwbd4bwy6-newtype-generics-0.5.1.drv’ failed - jailbreak = true; - }); - - parallel = overrideCabal super.parallel (drv: { - ## Setup: Encountered missing dependencies: - ## base >=4.3 && <4.11 - ## builder for ‘/nix/store/c16gcgn7d7gql8bbjqngx7wbw907hnwb-parallel-3.2.1.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/c16gcgn7d7gql8bbjqngx7wbw907hnwb-parallel-3.2.1.1.drv’ failed jailbreak = true; }); quickcheck-instances = overrideCabal super.quickcheck-instances (drv: { ## Setup: Encountered missing dependencies: ## base >=4.5 && <4.11 - ## builder for ‘/nix/store/r3fx9f7ksp41wfn6cp4id3mzgv04pwij-quickcheck-instances-0.3.16.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/r3fx9f7ksp41wfn6cp4id3mzgv04pwij-quickcheck-instances-0.3.16.1.drv’ failed jailbreak = true; }); - tasty-ant-xml = overrideCabal super.tasty-ant-xml (drv: { + rapid = overrideCabal super.rapid (drv: { ## Setup: Encountered missing dependencies: - ## tasty >=0.10 && <1.0 - ## builder for ‘/nix/store/86dlb96cdw9jpq95xbndf4axj1z542d6-tasty-ant-xml-1.1.2.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/86dlb96cdw9jpq95xbndf4axj1z542d6-tasty-ant-xml-1.1.2.drv’ failed + ## base >=4.8 && <4.11 jailbreak = true; }); tasty-expected-failure = overrideCabal super.tasty-expected-failure (drv: { ## Setup: Encountered missing dependencies: ## base >=4.5 && <4.11 - ## builder for ‘/nix/store/gdm01qb8ppxgrl6dgzhlj8fzmk4x8dj3-tasty-expected-failure-0.11.0.4.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/gdm01qb8ppxgrl6dgzhlj8fzmk4x8dj3-tasty-expected-failure-0.11.0.4.drv’ failed jailbreak = true; }); tasty-hedgehog = overrideCabal super.tasty-hedgehog (drv: { ## Setup: Encountered missing dependencies: ## base >=4.8 && <4.11, tasty ==0.11.* - ## builder for ‘/nix/store/bpxyzzbmb03n88l4xz4k2rllj4227fwv-tasty-hedgehog-0.1.0.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/bpxyzzbmb03n88l4xz4k2rllj4227fwv-tasty-hedgehog-0.1.0.1.drv’ failed jailbreak = true; }); @@ -842,33 +676,25 @@ self: super: { th-abstraction = overrideCabal super.th-abstraction (drv: { ## Setup: Encountered missing dependencies: ## template-haskell >=2.5 && <2.13 - ## builder for ‘/nix/store/la3zdphp3nqzl590n25zyrgj62ga8cl6-th-abstraction-0.2.6.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/la3zdphp3nqzl590n25zyrgj62ga8cl6-th-abstraction-0.2.6.0.drv’ failed jailbreak = true; }); these = overrideCabal super.these (drv: { ## Setup: Encountered missing dependencies: ## base >=4.5 && <4.11 - ## builder for ‘/nix/store/1wwqq67pinjj95fgqg13bchh0kbyrb83-these-0.7.4.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/1wwqq67pinjj95fgqg13bchh0kbyrb83-these-0.7.4.drv’ failed jailbreak = true; }); trifecta = overrideCabal super.trifecta (drv: { - ## CABAL-MISSING-DEPS ## Setup: Encountered missing dependencies: ## ghc >=7.0 && <8.4 - ## builder for ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/yklyv4lw4d02316p31x7a2pni1z6gjgk-doctest-0.13.0.drv’ failed + ## /run/current-system/sw/bin/nix-shell: failed to build all dependencies doCheck = false; }); unliftio-core = overrideCabal super.unliftio-core (drv: { ## Setup: Encountered missing dependencies: ## base >=4.5 && <4.11 - ## builder for ‘/nix/store/bn8w06wlq7zzli0858hfwlai7wbj6dmq-unliftio-core-0.1.1.0.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/bn8w06wlq7zzli0858hfwlai7wbj6dmq-unliftio-core-0.1.1.0.drv’ failed jailbreak = true; }); @@ -880,23 +706,6 @@ self: super: { wavefront = overrideCabal super.wavefront (drv: { ## Setup: Encountered missing dependencies: ## base >=4.8 && <4.11 - ## builder for ‘/nix/store/iy6ccxh4dvp6plalx4ww81qrnhxm7jgr-wavefront-0.7.1.1.drv’ failed with exit code 1 - ## error: build of ‘/nix/store/iy6ccxh4dvp6plalx4ww81qrnhxm7jgr-wavefront-0.7.1.1.drv’ failed jailbreak = true; }); - - # Needed for (<>) in prelude - funcmp = super.funcmp_1_9; - - # https://github.com/haskell-hvr/deepseq-generics/pull/4 - deepseq-generics = doJailbreak super.deepseq-generics; - - # SMP compat - # https://github.com/vincenthz/hs-securemem/pull/12 - securemem = - let patch = pkgs.fetchpatch - { url = https://github.com/vincenthz/hs-securemem/commit/6168d90b00bfc6a559d3b9160732343644ef60fb.patch; - sha256 = "0pfjmq57kcvxq7mhljd40whg2g77vdlvjyycdqmxxzz1crb6pipf"; - }; - in appendPatch super.securemem patch; } diff --git a/pkgs/development/ocaml-modules/bitv/default.nix b/pkgs/development/ocaml-modules/bitv/default.nix new file mode 100644 index 000000000000..359d83b4762a --- /dev/null +++ b/pkgs/development/ocaml-modules/bitv/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchzip, autoreconfHook, which, ocaml, findlib }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.02" +then throw "bitv is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-bitv-${version}"; + version = "1.3"; + + src = fetchzip { + url = "https://github.com/backtracking/bitv/archive/${version}.tar.gz"; + sha256 = "0vkh1w9fpi5m1sgiqg6r38j3fqglhdajmbyiyr91113lrpljm75i"; + }; + + buildInputs = [ autoreconfHook which ocaml findlib ]; + + createFindlibDestdir = true; + + meta = { + description = "A bit vector library for OCaml"; + license = stdenv.lib.licenses.lgpl21; + homepage = "https://github.com/backtracking/bitv"; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix index 69ca68351ba1..4a2d298495da 100644 --- a/pkgs/development/tools/analysis/flow/default.nix +++ b/pkgs/development/tools/analysis/flow/default.nix @@ -4,14 +4,14 @@ with lib; stdenv.mkDerivation rec { - version = "0.65.0"; + version = "0.66.0"; name = "flow-${version}"; src = fetchFromGitHub { owner = "facebook"; repo = "flow"; rev = "v${version}"; - sha256 = "00m9wqfqpnv7p2kz0970254jfaqakb12lsnhk95hw47ghfyb2f7p"; + sha256 = "0l1sdd1n0llmz8m81vym3zhcn824sr9w46h9jpb7i7wrcm4y410d"; }; installPhase = '' diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix index 1094cacb7af3..e175205143fc 100644 --- a/pkgs/development/tools/build-managers/gnumake/4.2/default.nix +++ b/pkgs/development/tools/build-managers/gnumake/4.2/default.nix @@ -4,8 +4,6 @@ assert guileSupport -> ( pkgconfig != null && guile != null ); let version = "4.2.1"; - - needGlibcPatch = (stdenv.cc.libc.version or "") == "2.27"; in stdenv.mkDerivation { name = "gnumake-${version}"; @@ -22,7 +20,7 @@ stdenv.mkDerivation { # included Makefiles, don't look in /usr/include and friends. ./impure-dirs.patch ./pselect.patch - ] ++ stdenv.lib.optional needGlibcPatch ./glibc-2.27.patch; + ]; nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ]; buildInputs = stdenv.lib.optionals guileSupport [ guile ]; diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/head.nix b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix new file mode 100644 index 000000000000..5f3ae10c3e5b --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix @@ -0,0 +1,69 @@ +{ stdenv, fetchurl, texinfo, guileSupport ? false, pkgconfig , guile ? null, autoreconfHook }: + +assert guileSupport -> ( guile != null ); + +let + version = "4.2.90"; + revision = "48c8a116a914a325a0497721f5d8b58d5bba34d4"; + revCount = "2491"; + shortRev = "48c8a11"; + + baseVersion = "4.2.1"; + baseTarball = fetchurl { + url = "mirror://gnu/make/make-${baseVersion}.tar.bz2"; + sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"; + }; +in +stdenv.mkDerivation { + name = "gnumake-${version}pre${revCount}_${shortRev}"; + + src = fetchurl { + url = "http://git.savannah.gnu.org/cgit/make.git/snapshot/make-${revision}.tar.gz"; + sha256 = "0k6yvhr2a5lh1qhflv02dyvq5p20ikgaakm8w6gr4xmkspljwpwx"; + }; + + postUnpack = '' + unpackFile ${baseTarball} + cp make-${baseVersion}/po/*.po $sourceRoot/po + cp make-${baseVersion}/doc/{fdl,make-stds}.texi $sourceRoot/doc + ''; + + patches = [ + # Purity: don't look for library dependencies (of the form `-lfoo') in /lib + # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for + # included Makefiles, don't look in /usr/include and friends. + ./impure-dirs-head.patch + ]; + + postPatch = '' + # These aren't in the 4.2.1 tarball yet. + sed -i -e 's/sr//' -e 's/zh_TW//' po/LINGUAS + ''; + + nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ]; + buildInputs = stdenv.lib.optional guileSupport guile; + + configureFlags = stdenv.lib.optional guileSupport "--with-guile"; + + outputs = [ "out" "man" "info" ]; + + meta = with stdenv.lib; { + homepage = http://www.gnu.org/software/make/; + description = "A tool to control the generation of non-source files from sources"; + license = licenses.gpl3Plus; + + longDescription = '' + Make is a tool which controls the generation of executables and + other non-source files of a program from the program's source files. + + Make gets its knowledge of how to build your program from a file + called the makefile, which lists each of the non-source files and + how to compute it from other files. When you write a program, you + should write a makefile for it, so that it is possible to use Make + to build and install the program. + ''; + + platforms = platforms.all; + maintainers = [ maintainers.vrthra ]; + }; +} diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch new file mode 100644 index 000000000000..06d39e13ce39 --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch @@ -0,0 +1,31 @@ +diff -Naur a/src/read.c b/src/read.c +--- a/src/read.c 2017-11-19 15:17:47.000000000 -0500 ++++ b/src/read.c 2018-02-19 08:53:51.548755213 -0500 +@@ -109,10 +109,12 @@ + #endif + INCLUDEDIR, + #ifndef _AMIGA ++#if 0 + "/usr/gnu/include", + "/usr/local/include", + "/usr/include", + #endif ++#endif + 0 + }; + +diff -Naur a/src/remake.c b/src/remake.c +--- a/src/remake.c 2017-11-19 15:17:47.000000000 -0500 ++++ b/src/remake.c 2018-02-19 08:54:08.304101943 -0500 +@@ -1601,9 +1601,11 @@ + static const char *dirs[] = + { + #ifndef _AMIGA ++#if 0 + "/lib", + "/usr/lib", + #endif ++#endif + #if defined(WINDOWS32) && !defined(LIBDIR) + /* + * This is completely up to the user at product install time. Just define diff --git a/pkgs/games/xjump/darwin.patch b/pkgs/games/xjump/darwin.patch new file mode 100644 index 000000000000..8221677658e3 --- /dev/null +++ b/pkgs/games/xjump/darwin.patch @@ -0,0 +1,21 @@ +--- xjump/src/main.c 2018-02-20 09:15:15.608807657 +0100 ++++ xjump-patched/src/main.c 2018-02-20 09:15:34.148949100 +0100 +@@ -604,18 +604,6 @@ + * optimistic privilege dropping function. */ + setgroups(0, NULL); + +- if (setresgid(-1, realgid, realgid) != 0) { +- perror("Could not drop setgid privileges. Aborting."); +- exit(1); +- } +- +- /* Dropping user privileges must come last. +- * Otherwise we won't be able to drop group privileges anymore */ +- if (setresuid(-1, realuid, realuid) != 0) { +- perror("Could not drop setuid privileges. Aborting."); +- exit(1); +- } +- + /* From now on we run with regular user privileges */ + + static XtActionsRec a_table[] = { diff --git a/pkgs/games/xjump/default.nix b/pkgs/games/xjump/default.nix new file mode 100644 index 000000000000..df9ff30f2101 --- /dev/null +++ b/pkgs/games/xjump/default.nix @@ -0,0 +1,27 @@ +{ stdenv, buildPlatform, fetchFromGitHub, autoconf, automake, libX11, libXt, libXpm, libXaw, localStateDir?null }: + +stdenv.mkDerivation rec { + name = "xjump-${version}"; + version = "2.9.3"; + src = fetchFromGitHub { + owner = "hugomg"; + repo = "xjump"; + rev = "e7f20fb8c2c456bed70abb046c1a966462192b80"; + sha256 = "0hq4739cvi5a47pxdc0wwkj2lmlqbf1xigq0v85qs5bq3ixmq2f7"; + }; + nativeBuildInputs = [ autoconf automake ]; + buildInputs = [ libX11 libXt libXpm libXaw ]; + preConfigure = "autoreconf --install"; + patches = if buildPlatform.isDarwin then [ ./darwin.patch ] else []; + configureFlags = + if localStateDir != null then + ["--localstatedir=${localStateDir}"] + else + []; + + meta = with stdenv.lib; { + description = "The falling tower game"; + license = licenses.gpl2; + maintainers = with maintainers; [ pmeunier ]; + }; +} diff --git a/pkgs/misc/riscv-pk/default.nix b/pkgs/misc/riscv-pk/default.nix index 025d591d137a..5f0d1fa438f4 100644 --- a/pkgs/misc/riscv-pk/default.nix +++ b/pkgs/misc/riscv-pk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook }: let +{ stdenv, fetchFromGitHub, autoreconfHook, payload ? null }: let rev = "e5846a2bc707eaa58dc8ab6a8d20a090c6ee8570"; sha256 = "1clynpp70fnbgsjgxx7xi0vrdrj1v0h8zpv0x26i324kp2gwylf4"; revCount = "438"; @@ -21,6 +21,9 @@ in stdenv.mkDerivation { configureScript = "../configure"; + configureFlags = stdenv.lib.optional (payload != null) + "--with-payload=${payload}"; + hardeningDisable = [ "all" ]; meta = { diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix index 00f0995e32ab..7cf6e6b596ed 100644 --- a/pkgs/misc/vim-plugins/default.nix +++ b/pkgs/misc/vim-plugins/default.nix @@ -3138,6 +3138,16 @@ rec { }; + vim-rooter = buildVimPluginFrom2Nix { + name = "vim-rooter-2017-11-20"; + src = fetchgit { + url = "git://github.com/airblade/vim-rooter"; + rev = "3509dfb80d0076270a04049548738daeedf6dfb9"; + sha256 = "03j26fw0dcvcc81fn8hx1prdwlgnd3g340pbxrzgbgxxq5kr0bwl"; + }; + dependencies = []; + + }; vim-ruby = buildVimPluginFrom2Nix { # created by nix#NixDerivation name = "vim-ruby-2017-06-22"; diff --git a/pkgs/os-specific/linux/kernel/linux-riscv.nix b/pkgs/os-specific/linux/kernel/linux-riscv.nix new file mode 100644 index 000000000000..b2eb0a69a8ec --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-riscv.nix @@ -0,0 +1,18 @@ +{ stdenv, buildPackages, hostPlatform, fetchFromGitHub, perl, buildLinux, libelf, utillinux, ... } @ args: + +buildLinux (args // rec { + version = "4.16-rc1"; + modDirVersion = "4.16.0-rc1"; + extraMeta.branch = "4.16"; + + src = fetchFromGitHub { + owner = "riscv"; + repo ="riscv-linux"; + rev = "a31991a9c6ce2c86fd676cf458a0ec10edc20d37"; + sha256 = "0n97wfbi3pnp5c70xfj7s0fk8zjjkjz6ldxh7n54kbf64l4in01f"; + }; + + # Should the testing kernels ever be built on Hydra? + extraMeta.hydraPlatforms = []; + +} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index bd9334b8f9b7..60fb00645139 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -79,7 +79,8 @@ let isModular = config.isYes "MODULES"; installsFirmware = (config.isEnabled "FW_LOADER") && - (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL")); + (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL")) && + (stdenv.lib.versionOlder version "4.14"); in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // { passthru = { inherit version modDirVersion config kernelPatches configfile @@ -155,14 +156,13 @@ let if platform.kernelTarget == "zImage" || platform.kernelTarget == "Image.gz" then "zinstall" else "install") ]; - postInstall = '' - mkdir -p $dev - cp vmlinux $dev/ - '' + (optionalString installsFirmware '' + postInstall = (optionalString installsFirmware '' mkdir -p $out/lib/firmware '') + (if (platform ? kernelDTB && platform.kernelDTB) then '' make $makeFlags "''${makeFlagsArray[@]}" dtbs dtbs_install INSTALL_DTBS_PATH=$out/dtbs '' else "") + (if isModular then '' + mkdir -p $dev + cp vmlinux $dev/ if [ -z "$dontStrip" ]; then installFlagsArray+=("INSTALL_MOD_STRIP=1") fi diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index 754a2372c6d8..39af0a679361 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -72,4 +72,20 @@ rec { sha256 = "09096npxpgvlwdz3pb3m9brvxh7vy0xc9z9p8hh85xyczyzcsjhr"; }; }; + + riscv_modules = { + name = "riscv-modules"; + patch = ./riscv-modules.patch; + }; + + riscv_irq_busy = { + name = "riscv-irq-busy"; + patch = ./riscv-irq-busy.patch; + }; + + riscv_install = { + name = "riscv-install"; + patch = ./riscv-install.patch; + }; + } diff --git a/pkgs/os-specific/linux/kernel/riscv-install.patch b/pkgs/os-specific/linux/kernel/riscv-install.patch new file mode 100644 index 000000000000..707230e9a336 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/riscv-install.patch @@ -0,0 +1,65 @@ +commit 365fc1312f4911bfae25c5914c398f9aca21948f +Author: Shea Levy <shea@shealevy.com> +Date: Mon Feb 19 10:50:58 2018 -0500 + + riscv: Add install target to Makefile. + + Signed-off-by: Shea Levy <shea@shealevy.com> + +diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile +index 6719dd30ec5b..26892daefa05 100644 +--- a/arch/riscv/Makefile ++++ b/arch/riscv/Makefile +@@ -70,3 +70,7 @@ core-y += arch/riscv/kernel/ arch/riscv/mm/ + libs-y += arch/riscv/lib/ + + all: vmlinux ++ ++PHONY += install ++install: vmlinux ++ sh $(srctree)/arch/riscv/install.sh $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)" +diff --git a/arch/riscv/install.sh b/arch/riscv/install.sh +new file mode 100644 +index 000000000000..8b3155a11a4a +--- /dev/null ++++ b/arch/riscv/install.sh +@@ -0,0 +1,39 @@ ++#!/bin/sh ++# ++# arch/riscv/install.sh ++# ++# This file is subject to the terms and conditions of the GNU General Public ++# License. See the file "COPYING" in the main directory of this archive ++# for more details. ++# ++# Copyright (C) 1995 by Linus Torvalds ++# ++# Adapted from code in arch/ia64/Makefile by Shea Levy ++# ++# "make install" script for riscv architecture ++# ++# Arguments: ++# $1 - kernel version ++# $2 - kernel image file ++# $3 - kernel map file ++# $4 - default install path (blank if root directory) ++# ++ ++# User may have a custom install script ++ ++if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi ++if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi ++ ++# Default install - no bootloader configuration (yet?) ++base=$(basename $2) ++ ++if [ -f $4/$base ]; then ++ mv $4/$base $4/$base.old ++fi ++ ++if [ -f $4/System.map ]; then ++ mv $4/System.map $4/System.old ++fi ++ ++cat $2 > $4/$base ++cp $3 $4/System.map diff --git a/pkgs/os-specific/linux/kernel/riscv-irq-busy.patch b/pkgs/os-specific/linux/kernel/riscv-irq-busy.patch new file mode 100644 index 000000000000..5f5e8f0c8b7b --- /dev/null +++ b/pkgs/os-specific/linux/kernel/riscv-irq-busy.patch @@ -0,0 +1,42 @@ +commit 2603e6087b26e9428b806b267aee6bcb919abcea +Author: Shea Levy <shea@shealevy.com> +Date: Sun Feb 18 20:08:30 2018 -0500 + + set_handle_irq: Return EBUSY if the handler has already been registered. + + This is what's expected by the comments and at least by irq-riscv-intc.c + + Signed-off-by: Shea Levy <shea@shealevy.com> + +diff --git a/include/linux/irq.h b/include/linux/irq.h +index 2930fd2572e4..77e97872a13e 100644 +--- a/include/linux/irq.h ++++ b/include/linux/irq.h +@@ -1179,7 +1179,7 @@ int ipi_send_mask(unsigned int virq, const struct cpumask *dest); + * Returns 0 on success, or -EBUSY if an IRQ handler has already been + * registered. + */ +-void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)); ++int __init set_handle_irq(void (*handle_irq)(struct pt_regs *)); + + /* + * Allows interrupt handlers to find the irqchip that's been registered as the +diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c +index dee4f9a172ca..3570c715c3e7 100644 +--- a/kernel/irq/handle.c ++++ b/kernel/irq/handle.c +@@ -213,11 +213,12 @@ irqreturn_t handle_irq_event(struct irq_desc *desc) + } + + #ifdef CONFIG_GENERIC_IRQ_MULTI_HANDLER +-void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) ++int __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) + { + if (handle_arch_irq) +- return; ++ return -EBUSY; + + handle_arch_irq = handle_irq; ++ return 0; + } + #endif diff --git a/pkgs/os-specific/linux/kernel/riscv-modules.patch b/pkgs/os-specific/linux/kernel/riscv-modules.patch new file mode 100644 index 000000000000..6d5356e0e46f --- /dev/null +++ b/pkgs/os-specific/linux/kernel/riscv-modules.patch @@ -0,0 +1,11 @@ +diff -Naur linux-4.15.4-orig/arch/riscv/configs/defconfig linux-4.15.4/arch/riscv/configs/defconfig +--- linux-4.15.4-orig/arch/riscv/configs/defconfig 2018-02-16 14:07:01.000000000 -0500 ++++ linux-4.15.4/arch/riscv/configs/defconfig 2018-02-18 18:33:09.488431900 -0500 +@@ -12,6 +12,7 @@ + CONFIG_NAMESPACES=y + CONFIG_USER_NS=y + CONFIG_BLK_DEV_INITRD=y ++CONFIG_MODULES=y + CONFIG_EXPERT=y + CONFIG_CHECKPOINT_RESTORE=y + CONFIG_BPF_SYSCALL=y diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix index b7422e311b09..4a51a65b4065 100644 --- a/pkgs/tools/backup/restic/default.nix +++ b/pkgs/tools/backup/restic/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "restic-${version}"; - version = "0.8.1"; + version = "0.8.2"; goPackagePath = "github.com/restic/restic"; @@ -10,7 +10,7 @@ buildGoPackage rec { owner = "restic"; repo = "restic"; rev = "v${version}"; - sha256 = "13pawz031pzyc4ap5kk229cmzj0qjx5x0j1mw7jhwhc4w4ximvl3"; + sha256 = "1prk8r0kmcscj79fc53a0qjvik6ygjr50xwnahs0amlyh03pyb46"; }; buildPhase = '' diff --git a/pkgs/tools/cd-dvd/ecm-tools/default.nix b/pkgs/tools/cd-dvd/ecm-tools/default.nix new file mode 100644 index 000000000000..ec814d97bde0 --- /dev/null +++ b/pkgs/tools/cd-dvd/ecm-tools/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "ecm-tools-${version}"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "alucryd"; + repo = "ecm-tools"; + rev = "v${version}"; + sha256 = "1rvyx5gcy8lfklgj80szlz3312x45wzx0d9jsgwyvy8f6m4nnb0c"; + }; + + dontConfigure = true; + + installPhase = '' + install --directory --mode=755 $out/bin + install --mode=755 bin2ecm $out/bin + (cd $out/bin; ln -s bin2ecm ecm2bin) + ''; + + meta = with stdenv.lib; { + description = "A utility to uncompress ECM files to BIN CD format"; + homepage = https://github.com/alucryd/ecm-tools; + license = licenses.gpl3; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index f6e6988270ad..e8eb3050c6d3 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -126,12 +126,12 @@ in rec { nixUnstable = (lib.lowPrio (common rec { name = "nix-2.0${suffix}"; - suffix = "pre5951_690ac7c9"; + suffix = "pre5968_a6c0b773"; src = fetchFromGitHub { owner = "NixOS"; repo = "nix"; - rev = "690ac7c90b5bf3c599e210c53365c7d229c8b0ff"; - sha256 = "1yn2p38kp1i67makbawr1rhdiwihgnvk2zwrz0gvf6q65mj2k89c"; + rev = "a6c0b773b72d4e30690e01f1f1dcffc28f2d9ea1"; + sha256 = "0i8wcblcjw3291ba6ki4llw3fgm8ylp9q52kajkyr58dih537346"; }; fromGit = true; })) // { perl-bindings = perl-bindings { nix = nixUnstable; }; }; diff --git a/pkgs/tools/security/afl/default.nix b/pkgs/tools/security/afl/default.nix index 51701590b8e9..1ff0ad6f6b68 100644 --- a/pkgs/tools/security/afl/default.nix +++ b/pkgs/tools/security/afl/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { # Note: libcgroup isn't needed for building, just for the afl-cgroup # script. - buildInputs = [ makeWrapper clang llvm which ]; + buildInputs = [ makeWrapper llvm which ]; buildPhase = '' make PREFIX=$out @@ -53,8 +53,7 @@ stdenv.mkDerivation rec { for x in $out/bin/afl-clang-fast $out/bin/afl-clang-fast++; do wrapProgram $x \ --prefix AFL_PATH : "$out/lib/afl" \ - --prefix AFL_CC : "${clang}/bin/clang" \ - --prefix AFL_CXX : "${clang}/bin/clang++" + --run 'export AFL_CC=''${AFL_CC:-${clang}/bin/clang} AFL_CXX=''${AFL_CXX:-${clang}/bin/clang++}' done ''; @@ -76,7 +75,7 @@ stdenv.mkDerivation rec { ''; homepage = "http://lcamtuf.coredump.cx/afl/"; license = stdenv.lib.licenses.asl20; - platforms = stdenv.lib.platforms.linux; + platforms = ["x86_64-linux" "i686-linux"]; maintainers = [ stdenv.lib.maintainers.thoughtpolice ]; }; } diff --git a/pkgs/tools/text/replace/default.nix b/pkgs/tools/text/replace/default.nix index 2719a4c81915..9242014cdca5 100644 --- a/pkgs/tools/text/replace/default.nix +++ b/pkgs/tools/text/replace/default.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation { sha256 = "1c2nkxx83vmlh1v3ib6r2xqh121gdb1rharwsimcb2h0xwc558dm"; }; + outputs = [ "out" "man" ]; + makeFlags = "TREE=\$(out) MANTREE=\$(TREE)/share/man"; preBuild = '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 165ca843a8e9..9836161b8120 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1980,6 +1980,8 @@ with pkgs; # customConfig = builtins.readFile ./dvtm.config.h; }; + ecmtools = callPackage ../tools/cd-dvd/ecm-tools { }; + e2tools = callPackage ../tools/filesystems/e2tools { }; e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { }; @@ -6507,6 +6509,11 @@ with pkgs; inherit (darwin.apple_sdk.frameworks) Foundation; }); + mono58 = lowPrio (callPackage ../development/compilers/mono/5.8.nix { + inherit (darwin) libobjc; + inherit (darwin.apple_sdk.frameworks) Foundation; + }); + monoDLLFixer = callPackage ../build-support/mono-dll-fixer { }; mozart-binary = callPackage ../development/compilers/mozart/binary.nix { }; @@ -7657,7 +7664,10 @@ with pkgs; gnumake382 = callPackage ../development/tools/build-managers/gnumake/3.82 { }; gnumake3 = gnumake382; gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { }; - gnumake = gnumake42; + gnumake = if hostPlatform.isRiscV # Technically this check should be for glibc version. + then gnumake42HEAD + else gnumake42; + gnumake42HEAD = callPackage ../development/tools/build-managers/gnumake/4.2/head.nix { }; gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {}); @@ -13100,6 +13110,13 @@ with pkgs; ]; }; + linux_riscv = callPackage ../os-specific/linux/kernel/linux-riscv.nix { + kernelPatches = [ + kernelPatches.bridge_stp_helper + kernelPatches.modinst_arg_list_too_long + ] ++ lib.optionals hostPlatform.isRiscV [ kernelPatches.riscv_modules kernelPatches.riscv_irq_busy kernelPatches.riscv_install ]; + }; + linux_samus_4_12 = callPackage ../os-specific/linux/kernel/linux-samus-4.12.nix { kernelPatches = [ kernelPatches.bridge_stp_helper @@ -13317,7 +13334,7 @@ with pkgs; linux_samus_latest = linuxPackages_samus_latest.kernel; # A function to build a manually-configured kernel - linuxManualConfig = pkgs.buildLinux; + linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {}); buildLinux = makeOverridable (callPackage ../os-specific/linux/kernel/generic.nix {}); keyutils = callPackage ../os-specific/linux/keyutils { }; @@ -13551,6 +13568,10 @@ with pkgs; riscv-pk = callPackage ../misc/riscv-pk { }; + riscv-pk-with-kernel = riscv-pk.override { + payload = "${linux_riscv}/vmlinux"; + }; + rtkit = callPackage ../os-specific/linux/rtkit { }; rt5677-firmware = callPackage ../os-specific/linux/firmware/rt5677 { }; @@ -17160,6 +17181,8 @@ with pkgs; vte = gnome3.vte; }; + sayonara = callPackage ../applications/audio/sayonara { }; + sbagen = callPackage ../applications/misc/sbagen { }; scantailor = callPackage ../applications/graphics/scantailor { }; @@ -19015,6 +19038,7 @@ with pkgs; tk = tk-8_5; }; + xjump = callPackage ../games/xjump { }; # TODO: the corresponding nix file is missing # xracer = callPackage ../games/xracer { }; @@ -20657,6 +20681,8 @@ with pkgs; cc-wrapper-libcxx = callPackage ../test/cc-wrapper { stdenv = llvmPackages.libcxxStdenv; }; cc-wrapper-clang-39 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_39.stdenv; }; cc-wrapper-libcxx-39 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_39.libcxxStdenv; }; + cc-wrapper-clang-4 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_4.stdenv; }; + cc-wrapper-libcxx-4 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_4.libcxxStdenv; }; cc-wrapper-clang-5 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_5.stdenv; }; cc-wrapper-libcxx-5 = callPackage ../test/cc-wrapper { stdenv = llvmPackages_5.libcxxStdenv; }; stdenv-inputs = callPackage ../test/stdenv-inputs { }; diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 1fffa3fa800b..10eb72da19eb 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -60,6 +60,8 @@ let bitstring = callPackage ../development/ocaml-modules/bitstring { }; + bitv = callPackage ../development/ocaml-modules/bitv { }; + bolt = callPackage ../development/ocaml-modules/bolt { }; bos = callPackage ../development/ocaml-modules/bos { }; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 689c088abdcb..2329f1910809 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -6292,6 +6292,18 @@ let self = _self // overrides; _self = with self; { }; }; + Gtk2TrayIcon = buildPerlPackage rec { + name = "Gtk2-TrayIcon-0.06"; + src = fetchurl { + url = "mirror://cpan/authors/id/B/BO/BORUP/${name}.tar.gz"; + sha256 = "cbb7632b75d7f41554dfe8ee9063dbfd1d8522291077c65d0d82e9ceb5e94ae2"; + }; + propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gtk2 Pango pkgs.gtk2 ]; + meta = { + license = stdenv.lib.licenses.gpl2; + }; + }; + Gtk2AppIndicator = buildPerlPackage rec { name = "Gtk2-AppIndicator-0.15"; src = fetchurl { diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 5358738acb66..e7f8d3f2e4ca 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -112,6 +112,14 @@ let jobs.tests.cc-wrapper-clang-39.x86_64-darwin jobs.tests.cc-wrapper-libcxx-39.x86_64-linux jobs.tests.cc-wrapper-libcxx-39.x86_64-darwin + jobs.tests.cc-wrapper-clang-4.x86_64-linux + jobs.tests.cc-wrapper-clang-4.x86_64-darwin + jobs.tests.cc-wrapper-libcxx-4.x86_64-linux + jobs.tests.cc-wrapper-libcxx-4.x86_64-darwin + jobs.tests.cc-wrapper-clang-5.x86_64-linux + jobs.tests.cc-wrapper-clang-5.x86_64-darwin + jobs.tests.cc-wrapper-libcxx-5.x86_64-linux + jobs.tests.cc-wrapper-libcxx-5.x86_64-darwin jobs.tests.cc-multilib-gcc.x86_64-linux jobs.tests.cc-multilib-clang.x86_64-linux jobs.tests.stdenv-inputs.x86_64-linux |