Merge branch 'master' into perl/Gtk2GladeXML
This commit is contained in:
commit
01e388cafc
@ -545,6 +545,12 @@ rec {
|
||||
name = "riscv-multiplatform";
|
||||
kernelArch = "riscv";
|
||||
bfdEmulation = "elf${bits}lriscv";
|
||||
kernelTarget = "vmlinux";
|
||||
kernelAutoModules = true;
|
||||
kernelBaseConfig = "defconfig";
|
||||
kernelExtraConfig = ''
|
||||
FTRACE n
|
||||
'';
|
||||
};
|
||||
|
||||
selectBySystem = system: {
|
||||
|
@ -12,7 +12,7 @@ interfaces. However, you can configure an interface manually as
|
||||
follows:
|
||||
|
||||
<programlisting>
|
||||
networking.interfaces.eth0.ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
networking.interfaces.eth0.ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
</programlisting>
|
||||
|
||||
Typically you’ll also want to set a default gateway and set of name
|
||||
|
@ -26,7 +26,7 @@ boot.kernel.sysctl."net.ipv6.conf.eth0.disable_ipv6" = true;
|
||||
DHCPv6. You can configure an interface manually:
|
||||
|
||||
<programlisting>
|
||||
networking.interfaces.eth0.ip6 = [ { address = "fe00:aa:bb:cc::2"; prefixLength = 64; } ];
|
||||
networking.interfaces.eth0.ipv6.addresses = [ { address = "fe00:aa:bb:cc::2"; prefixLength = 64; } ];
|
||||
</programlisting>
|
||||
</para>
|
||||
|
||||
|
@ -36,7 +36,7 @@ let
|
||||
package = args.package or (lib.attrByPath path (throw "Invalid package attribute path `${toString path}'") pkgs);
|
||||
in "<listitem>"
|
||||
+ "<para><literal>pkgs.${name} (${package.meta.name})</literal>"
|
||||
+ lib.optionalString (!package.meta.evaluates) " <emphasis>[UNAVAILABLE]</emphasis>"
|
||||
+ lib.optionalString (!package.meta.available) " <emphasis>[UNAVAILABLE]</emphasis>"
|
||||
+ ": ${package.meta.description or "???"}.</para>"
|
||||
+ lib.optionalString (args ? comment) "\n<para>${args.comment}</para>"
|
||||
# Lots of `longDescription's break DocBook, so we just wrap them into <programlisting>
|
||||
|
@ -261,10 +261,42 @@ following incompatible changes:</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option <option>services.xserver.desktopManager.default</option> is now <literal>none</literal> by default.
|
||||
An assertion failure is thrown if WM's and DM's default are <literal>none</literal>.
|
||||
To explicitly run a plain X session without and DM or WM, the newly introduced option <option>services.xserver.plainX</option>
|
||||
must be set to true.
|
||||
In the module <option>networking.interfaces.<name></option> the
|
||||
following options have been removed:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><option>ipAddress</option></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><option>ipv6Address</option></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><option>prefixLength</option></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><option>ipv6PrefixLength</option></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><option>subnetMask</option></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
To assign static addresses to an interface the options
|
||||
<option>ipv4.addresses</option> and <option>ipv6.addresses</option>
|
||||
should be used instead.
|
||||
The options <option>ip4</option> and <option>ip6</option> have been
|
||||
renamed to <option>ipv4.addresses</option> <option>ipv6.addresses</option>
|
||||
respectively.
|
||||
The new options <option>ipv4.routes</option> and <option>ipv6.routes</option>
|
||||
have been added to set up static routing.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option <option>services.xserver.desktopManager.default</option> is now
|
||||
<literal>none</literal> by default. An assertion failure is thrown if WM's
|
||||
and DM's default are <literal>none</literal>.
|
||||
To explicitly run a plain X session without and DM or WM, the newly
|
||||
introduced option <option>services.xserver.plainX</option> must be set to true.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -51,7 +51,7 @@ rec {
|
||||
let
|
||||
interfacesNumbered = zipLists config.virtualisation.vlans (range 1 255);
|
||||
interfaces = flip map interfacesNumbered ({ fst, snd }:
|
||||
nameValuePair "eth${toString snd}" { ip4 =
|
||||
nameValuePair "eth${toString snd}" { ipv4.addresses =
|
||||
[ { address = "192.168.${toString fst}.${toString m.snd}";
|
||||
prefixLength = 24;
|
||||
} ];
|
||||
@ -64,7 +64,7 @@ rec {
|
||||
networking.interfaces = listToAttrs interfaces;
|
||||
|
||||
networking.primaryIPAddress =
|
||||
optionalString (interfaces != []) (head (head interfaces).value.ip4).address;
|
||||
optionalString (interfaces != []) (head (head interfaces).value.ipv4.addresses).address;
|
||||
|
||||
# Put the IP addresses of all VMs in this machine's
|
||||
# /etc/hosts file. If a machine has multiple
|
||||
|
@ -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" ''
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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 [
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -6,9 +6,9 @@ case "$1" in
|
||||
exit 1
|
||||
;;
|
||||
--hash|--revision)
|
||||
echo "@nixosRevision@"
|
||||
echo "@revision@"
|
||||
;;
|
||||
*)
|
||||
echo "@nixosVersion@ (@nixosCodeName@)"
|
||||
echo "@version@ (@codeName@)"
|
||||
;;
|
||||
esac
|
||||
|
@ -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
|
||||
|
72
nixos/modules/misc/label.nix
Normal file
72
nixos/modules/misc/label.nix
Normal file
@ -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));
|
||||
};
|
||||
|
||||
}
|
@ -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,9 +16,44 @@ in
|
||||
|
||||
options.system = {
|
||||
|
||||
nixos.version = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
description = "The full NixOS version (e.g. <literal>16.03.1160.f2d4ee1</literal>).";
|
||||
};
|
||||
|
||||
nixos.release = mkOption {
|
||||
readOnly = true;
|
||||
type = types.str;
|
||||
default = fileContents releaseFile;
|
||||
description = "The NixOS release (e.g. <literal>16.03</literal>).";
|
||||
};
|
||||
|
||||
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>).";
|
||||
};
|
||||
|
||||
nixos.revision = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
|
||||
else if pathExists revisionFile then fileContents revisionFile
|
||||
else "master";
|
||||
description = "The Git revision from which this NixOS configuration was built.";
|
||||
};
|
||||
|
||||
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.nixosRelease;
|
||||
default = cfg.release;
|
||||
description = ''
|
||||
Every once in a while, a new NixOS release may change
|
||||
configuration defaults in a way incompatible with stateful
|
||||
@ -32,49 +67,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
nixosLabel = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
Label to be used in the names of generated outputs and boot
|
||||
labels.
|
||||
'';
|
||||
};
|
||||
|
||||
nixosVersion = mkOption {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
description = "The full NixOS version (e.g. <literal>16.03.1160.f2d4ee1</literal>).";
|
||||
};
|
||||
|
||||
nixosRelease = mkOption {
|
||||
readOnly = true;
|
||||
type = types.str;
|
||||
default = fileContents releaseFile;
|
||||
description = "The NixOS release (e.g. <literal>16.03</literal>).";
|
||||
};
|
||||
|
||||
nixosVersionSuffix = 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 {
|
||||
internal = true;
|
||||
type = types.str;
|
||||
default = if pathIsDirectory gitRepo then commitIdFromGitRepo gitRepo
|
||||
else if pathExists revisionFile then fileContents revisionFile
|
||||
else "master";
|
||||
description = "The Git revision from which this NixOS configuration was built.";
|
||||
};
|
||||
|
||||
nixosCodeName = mkOption {
|
||||
readOnly = true;
|
||||
type = types.str;
|
||||
description = "The NixOS release code name (e.g. <literal>Emu</literal>).";
|
||||
};
|
||||
|
||||
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"
|
||||
|
@ -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
|
||||
|
@ -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" ] "")
|
||||
|
@ -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 {
|
||||
|
@ -12,7 +12,7 @@ let
|
||||
|
||||
case "$1" in
|
||||
-i) echo "nixos";;
|
||||
-r) echo "${config.system.nixosVersion}";;
|
||||
-r) echo "${config.system.nixos.version}";;
|
||||
esac
|
||||
'';
|
||||
in {
|
||||
|
@ -16,7 +16,7 @@ let
|
||||
# Don't start dhcpcd on explicitly configured interfaces or on
|
||||
# interfaces that are part of a bridge, bond or sit device.
|
||||
ignoredInterfaces =
|
||||
map (i: i.name) (filter (i: if i.useDHCP != null then !i.useDHCP else i.ip4 != [ ] || i.ipAddress != null) interfaces)
|
||||
map (i: i.name) (filter (i: if i.useDHCP != null then !i.useDHCP else i.ipv4.addresses != [ ]) interfaces)
|
||||
++ mapAttrsToList (i: _: i) config.networking.sits
|
||||
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges))
|
||||
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.vswitches))
|
||||
|
@ -35,10 +35,9 @@ in {
|
||||
config = mkIf cfg.enable {
|
||||
boot.kernelModules = [ "dummy" ];
|
||||
|
||||
networking.interfaces.dummy0 = {
|
||||
ipAddress = "169.254.169.254";
|
||||
prefixLength = 32;
|
||||
};
|
||||
networking.interfaces.dummy0.ipv4.addresses = [
|
||||
{ address = "169.254.169.254"; prefixLength = 32; }
|
||||
];
|
||||
|
||||
systemd.services.hologram-agent = {
|
||||
description = "Provide EC2 instance credentials to machines outside of EC2";
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -10,7 +10,7 @@ let
|
||||
|
||||
breezePlymouth = pkgs.breeze-plymouth.override {
|
||||
nixosBranding = true;
|
||||
nixosVersion = config.system.nixosRelease;
|
||||
nixosVersion = config.system.nixos.release;
|
||||
};
|
||||
|
||||
themesEnv = pkgs.buildEnv {
|
||||
|
@ -20,14 +20,8 @@ let
|
||||
"sys-subsystem-net-devices-${escapeSystemdPath interface}.device";
|
||||
|
||||
interfaceIps = i:
|
||||
i.ip4 ++ optionals cfg.enableIPv6 i.ip6
|
||||
++ optional (i.ipAddress != null) {
|
||||
address = i.ipAddress;
|
||||
prefixLength = i.prefixLength;
|
||||
} ++ optional (cfg.enableIPv6 && i.ipv6Address != null) {
|
||||
address = i.ipv6Address;
|
||||
prefixLength = i.ipv6PrefixLength;
|
||||
};
|
||||
i.ipv4.addresses
|
||||
++ optionals cfg.enableIPv6 i.ipv6.addresses;
|
||||
|
||||
destroyBond = i: ''
|
||||
while true; do
|
||||
@ -185,33 +179,58 @@ let
|
||||
path = [ pkgs.iproute ];
|
||||
script =
|
||||
''
|
||||
# FIXME: shouldn't this be done in network-link?
|
||||
echo "bringing up interface..."
|
||||
ip link set "${i.name}" up
|
||||
|
||||
state="/run/nixos/network/addresses/${i.name}"
|
||||
|
||||
mkdir -p $(dirname "$state")
|
||||
|
||||
'' + flip concatMapStrings (ips) (ip:
|
||||
let
|
||||
address = "${ip.address}/${toString ip.prefixLength}";
|
||||
in
|
||||
''
|
||||
echo "${address}" >> $state
|
||||
if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then
|
||||
echo "added ip ${address}"
|
||||
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
|
||||
echo "failed to add ${address}"
|
||||
exit 1
|
||||
fi
|
||||
'');
|
||||
${flip concatMapStrings ips (ip:
|
||||
let
|
||||
cidr = "${ip.address}/${toString ip.prefixLength}";
|
||||
in
|
||||
''
|
||||
echo "${cidr}" >> $state
|
||||
echo -n "adding address ${cidr}... "
|
||||
if out=$(ip addr add "${cidr}" dev "${i.name}" 2>&1); then
|
||||
echo "done"
|
||||
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
|
||||
echo "failed"
|
||||
exit 1
|
||||
fi
|
||||
''
|
||||
)}
|
||||
|
||||
state="/run/nixos/network/routes/${i.name}"
|
||||
mkdir -p $(dirname "$state")
|
||||
|
||||
${flip concatMapStrings (i.ipv4.routes ++ i.ipv6.routes) (route:
|
||||
let
|
||||
cidr = "${route.address}/${toString route.prefixLength}";
|
||||
via = optionalString (route.via != null) ''via "${route.via}"'';
|
||||
options = concatStrings (mapAttrsToList (name: val: "${name} ${val} ") route.options);
|
||||
in
|
||||
''
|
||||
echo "${cidr}" >> $state
|
||||
echo -n "adding route ${cidr}... "
|
||||
if out=$(ip route add "${cidr}" ${options} ${via} dev "${i.name}" 2>&1); then
|
||||
echo "done"
|
||||
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
|
||||
echo "failed"
|
||||
exit 1
|
||||
fi
|
||||
''
|
||||
)}
|
||||
'';
|
||||
preStop = ''
|
||||
state="/run/nixos/network/routes/${i.name}"
|
||||
while read cidr; do
|
||||
echo -n "deleting route $cidr... "
|
||||
ip route del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
|
||||
done < "$state"
|
||||
rm -f "$state"
|
||||
|
||||
state="/run/nixos/network/addresses/${i.name}"
|
||||
while read address; do
|
||||
echo -n "deleting $address..."
|
||||
ip addr del "$address" dev "${i.name}" >/dev/null 2>&1 || echo -n " Failed"
|
||||
echo ""
|
||||
while read cidr; do
|
||||
echo -n "deleting address $cidr... "
|
||||
ip addr del "$cidr" dev "${i.name}" >/dev/null 2>&1 && echo "done" || echo "failed"
|
||||
done < "$state"
|
||||
rm -f "$state"
|
||||
'';
|
||||
|
@ -9,14 +9,8 @@ let
|
||||
interfaces = attrValues cfg.interfaces;
|
||||
|
||||
interfaceIps = i:
|
||||
i.ip4 ++ optionals cfg.enableIPv6 i.ip6
|
||||
++ optional (i.ipAddress != null) {
|
||||
address = i.ipAddress;
|
||||
prefixLength = i.prefixLength;
|
||||
} ++ optional (cfg.enableIPv6 && i.ipv6Address != null) {
|
||||
address = i.ipv6Address;
|
||||
prefixLength = i.ipv6PrefixLength;
|
||||
};
|
||||
i.ipv4.addresses
|
||||
++ optionals cfg.enableIPv6 i.ipv6.addresses;
|
||||
|
||||
dhcpStr = useDHCP: if useDHCP == true || useDHCP == null then "both" else "none";
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ config, lib, pkgs, utils, stdenv, ... }:
|
||||
{ config, options, lib, pkgs, utils, stdenv, ... }:
|
||||
|
||||
with lib;
|
||||
with utils;
|
||||
@ -101,7 +101,7 @@ let
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
description = ''
|
||||
IPv${toString v} address of the interface. Leave empty to configure the
|
||||
IPv${toString v} address of the interface. Leave empty to configure the
|
||||
interface using DHCP.
|
||||
'';
|
||||
};
|
||||
@ -116,6 +116,40 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
routeOpts = v:
|
||||
{ options = {
|
||||
address = mkOption {
|
||||
type = types.str;
|
||||
description = "IPv${toString v} address of the network.";
|
||||
};
|
||||
|
||||
prefixLength = mkOption {
|
||||
type = types.addCheck types.int (n: n >= 0 && n <= (if v == 4 then 32 else 128));
|
||||
description = ''
|
||||
Subnet mask of the network, specified as the number of
|
||||
bits in the prefix (<literal>${if v == 4 then "24" else "64"}</literal>).
|
||||
'';
|
||||
};
|
||||
|
||||
via = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "IPv${toString v} address of the next hop.";
|
||||
};
|
||||
|
||||
options = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = { };
|
||||
example = { mtu = "1492"; window = "524288"; };
|
||||
description = ''
|
||||
Other route options. See the symbol <literal>OPTION</literal>
|
||||
in the <literal>ip-route(8)</literal> manual page for the details.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
gatewayCoerce = address: { inherit address; };
|
||||
|
||||
gatewayOpts = { ... }: {
|
||||
@ -148,7 +182,6 @@ let
|
||||
interfaceOpts = { name, ... }: {
|
||||
|
||||
options = {
|
||||
|
||||
name = mkOption {
|
||||
example = "eth0";
|
||||
type = types.str;
|
||||
@ -175,7 +208,7 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
ip4 = mkOption {
|
||||
ipv4.addresses = mkOption {
|
||||
default = [ ];
|
||||
example = [
|
||||
{ address = "10.0.0.1"; prefixLength = 16; }
|
||||
@ -187,7 +220,7 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
ip6 = mkOption {
|
||||
ipv6.addresses = mkOption {
|
||||
default = [ ];
|
||||
example = [
|
||||
{ address = "fdfd:b3f0:482::1"; prefixLength = 48; }
|
||||
@ -199,50 +232,27 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
ipAddress = mkOption {
|
||||
default = null;
|
||||
example = "10.0.0.1";
|
||||
type = types.nullOr types.str;
|
||||
ipv4.routes = mkOption {
|
||||
default = [];
|
||||
example = [
|
||||
{ address = "10.0.0.0"; prefixLength = 16; }
|
||||
{ address = "192.168.2.0"; prefixLength = 24; via = "192.168.1.1"; }
|
||||
];
|
||||
type = with types; listOf (submodule (routeOpts 4));
|
||||
description = ''
|
||||
IP address of the interface. Leave empty to configure the
|
||||
interface using DHCP.
|
||||
List of extra IPv4 static routes that will be assigned to the interface.
|
||||
'';
|
||||
};
|
||||
|
||||
prefixLength = mkOption {
|
||||
default = null;
|
||||
example = 24;
|
||||
type = types.nullOr types.int;
|
||||
ipv6.routes = mkOption {
|
||||
default = [];
|
||||
example = [
|
||||
{ address = "fdfd:b3f0::"; prefixLength = 48; }
|
||||
{ address = "2001:1470:fffd:2098::"; prefixLength = 64; via = "fdfd:b3f0::1"; }
|
||||
];
|
||||
type = with types; listOf (submodule (routeOpts 6));
|
||||
description = ''
|
||||
Subnet mask of the interface, specified as the number of
|
||||
bits in the prefix (<literal>24</literal>).
|
||||
'';
|
||||
};
|
||||
|
||||
subnetMask = mkOption {
|
||||
default = null;
|
||||
description = ''
|
||||
Defunct, supply the prefix length instead.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv6Address = mkOption {
|
||||
default = null;
|
||||
example = "2001:1470:fffd:2098::e006";
|
||||
type = types.nullOr types.str;
|
||||
description = ''
|
||||
IPv6 address of the interface. Leave empty to configure the
|
||||
interface using NDP.
|
||||
'';
|
||||
};
|
||||
|
||||
ipv6PrefixLength = mkOption {
|
||||
default = 64;
|
||||
example = 64;
|
||||
type = types.int;
|
||||
description = ''
|
||||
Subnet mask of the interface, specified as the number of
|
||||
bits in the prefix (<literal>64</literal>).
|
||||
List of extra IPv6 static routes that will be assigned to the interface.
|
||||
'';
|
||||
};
|
||||
|
||||
@ -317,6 +327,32 @@ let
|
||||
name = mkDefault name;
|
||||
};
|
||||
|
||||
# Renamed or removed options
|
||||
imports =
|
||||
let
|
||||
defined = x: x != "_mkMergedOptionModule";
|
||||
in [
|
||||
(mkRenamedOptionModule [ "ip4" ] [ "ipv4" "addresses"])
|
||||
(mkRenamedOptionModule [ "ip6" ] [ "ipv6" "addresses"])
|
||||
(mkRemovedOptionModule [ "subnetMask" ] ''
|
||||
Supply a prefix length instead; use option
|
||||
networking.interfaces.<name>.ipv{4,6}.addresses'')
|
||||
(mkMergedOptionModule
|
||||
[ [ "ipAddress" ] [ "prefixLength" ] ]
|
||||
[ "ipv4" "addresses" ]
|
||||
(cfg: with cfg;
|
||||
optional (defined ipAddress && defined prefixLength)
|
||||
{ address = ipAddress; prefixLength = prefixLength; }))
|
||||
(mkMergedOptionModule
|
||||
[ [ "ipv6Address" ] [ "ipv6PrefixLength" ] ]
|
||||
[ "ipv6" "addresses" ]
|
||||
(cfg: with cfg;
|
||||
optional (defined ipv6Address && defined ipv6PrefixLength)
|
||||
{ address = ipv6Address; prefixLength = ipv6PrefixLength; }))
|
||||
|
||||
({ options.warnings = options.warnings; })
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
hexChars = stringToCharacters "0123456789abcdef";
|
||||
@ -453,7 +489,7 @@ in
|
||||
networking.interfaces = mkOption {
|
||||
default = {};
|
||||
example =
|
||||
{ eth0.ip4 = [ {
|
||||
{ eth0.ipv4 = [ {
|
||||
address = "131.211.84.78";
|
||||
prefixLength = 25;
|
||||
} ];
|
||||
@ -932,13 +968,10 @@ in
|
||||
|
||||
config = {
|
||||
|
||||
warnings = concatMap (i: i.warnings) interfaces;
|
||||
|
||||
assertions =
|
||||
(flip map interfaces (i: {
|
||||
assertion = i.subnetMask == null;
|
||||
message = ''
|
||||
The networking.interfaces."${i.name}".subnetMask option is defunct. Use prefixLength instead.
|
||||
'';
|
||||
})) ++ (flip map interfaces (i: {
|
||||
# With the linux kernel, interface name length is limited by IFNAMSIZ
|
||||
# to 16 bytes, including the trailing null byte.
|
||||
# See include/linux/if.h in the kernel sources
|
||||
@ -947,7 +980,7 @@ in
|
||||
The name of networking.interfaces."${i.name}" is too long, it needs to be less than 16 characters.
|
||||
'';
|
||||
})) ++ (flip map slaveIfs (i: {
|
||||
assertion = i.ip4 == [ ] && i.ipAddress == null && i.ip6 == [ ] && i.ipv6Address == null;
|
||||
assertion = i.ipv4.addresses == [ ] && i.ipv6.addresses == [ ];
|
||||
message = ''
|
||||
The networking.interfaces."${i.name}" must not have any defined ips when it is a slave.
|
||||
'';
|
||||
@ -1089,6 +1122,9 @@ in
|
||||
'' + optionalString (i.mtu != null) ''
|
||||
echo "setting MTU to ${toString i.mtu}..."
|
||||
ip link set "${i.name}" mtu "${toString i.mtu}"
|
||||
'' + ''
|
||||
echo -n "bringing up interface... "
|
||||
ip link set "${i.name}" up && echo "done" || (echo "failed"; exit 1)
|
||||
'';
|
||||
})));
|
||||
|
||||
|
@ -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 ];
|
||||
|
@ -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
|
||||
'';
|
||||
|
@ -124,7 +124,7 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
networking.interfaces.vboxnet0.ip4 = [ { 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"];
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -16,7 +16,7 @@ let
|
||||
miniupnpdConf = nodes: pkgs.writeText "miniupnpd.conf"
|
||||
''
|
||||
ext_ifname=eth1
|
||||
listening_ip=${(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address}/24
|
||||
listening_ip=${(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address}/24
|
||||
allow 1024-65535 192.168.2.0/24 1024-65535
|
||||
'';
|
||||
|
||||
@ -56,7 +56,7 @@ in
|
||||
{ environment.systemPackages = [ pkgs.transmission ];
|
||||
virtualisation.vlans = [ 2 ];
|
||||
networking.defaultGateway =
|
||||
(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address;
|
||||
(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address;
|
||||
networking.firewall.enable = false;
|
||||
};
|
||||
|
||||
@ -84,7 +84,7 @@ in
|
||||
# Create the torrent.
|
||||
$tracker->succeed("mkdir /tmp/data");
|
||||
$tracker->succeed("cp ${file} /tmp/data/test.tar.bz2");
|
||||
$tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -p -t http://${(pkgs.lib.head nodes.tracker.config.networking.interfaces.eth1.ip4).address}:6969/announce -o /tmp/test.torrent");
|
||||
$tracker->succeed("transmission-create /tmp/data/test.tar.bz2 -p -t http://${(pkgs.lib.head nodes.tracker.config.networking.interfaces.eth1.ipv4.addresses).address}:6969/announce -o /tmp/test.torrent");
|
||||
$tracker->succeed("chmod 644 /tmp/test.torrent");
|
||||
|
||||
# Start the tracker. !!! use a less crappy tracker
|
||||
|
@ -12,7 +12,6 @@ let
|
||||
# the sequence of address assignment less stochastic.
|
||||
networking.useDHCP = false;
|
||||
|
||||
networking.interfaces.eth1.prefixLength = 24;
|
||||
# CJDNS output is incompatible with the XML log.
|
||||
systemd.services.cjdns.serviceConfig.StandardOutput = "null";
|
||||
#networking.firewall.enable = true;
|
||||
@ -49,7 +48,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
|
||||
{ imports = [ basicConfig ];
|
||||
|
||||
networking.interfaces.eth1.ipAddress = "192.168.0.2";
|
||||
networking.interfaces.eth1.ipv4.addresses = [
|
||||
{ address = "192.168.0.2"; prefixLength = 24; }
|
||||
];
|
||||
|
||||
services.cjdns =
|
||||
{ UDPInterface =
|
||||
@ -76,7 +77,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
CJDNS_ADMIN_PASSWORD=FOOBAR
|
||||
'';
|
||||
|
||||
networking.interfaces.eth1.ipAddress = "192.168.0.1";
|
||||
networking.interfaces.eth1.ipv4.addresses = [
|
||||
{ address = "192.168.0.1"; prefixLength = 24; }
|
||||
];
|
||||
|
||||
services.cjdns =
|
||||
{ authorizedPasswords = [ carolPassword ];
|
||||
|
@ -26,8 +26,8 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
};
|
||||
networking.interfaces = {
|
||||
br0 = {
|
||||
ip4 = [{ address = hostIp; prefixLength = 24; }];
|
||||
ip6 = [{ address = hostIp6; prefixLength = 7; }];
|
||||
ipv4.addresses = [{ address = hostIp; prefixLength = 24; }];
|
||||
ipv6.addresses = [{ address = hostIp6; prefixLength = 7; }];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -21,11 +21,11 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
};
|
||||
networking.interfaces = {
|
||||
br0 = {
|
||||
ip4 = [{ address = "192.168.0.1"; prefixLength = 24; }];
|
||||
ip6 = [{ address = "fc00::1"; prefixLength = 7; }];
|
||||
ipv4.addresses = [{ address = "192.168.0.1"; prefixLength = 24; }];
|
||||
ipv6.addresses = [{ address = "fc00::1"; prefixLength = 7; }];
|
||||
};
|
||||
br1 = {
|
||||
ip4 = [{ address = "192.168.1.1"; prefixLength = 24; }];
|
||||
ipv4.addresses = [{ address = "192.168.1.1"; prefixLength = 24; }];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -13,9 +13,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
virtualisation.vlans = [];
|
||||
|
||||
networking.bridges.br0.interfaces = [];
|
||||
networking.interfaces.br0 = {
|
||||
ip4 = [ { address = "10.11.0.254"; prefixLength = 24; } ];
|
||||
};
|
||||
networking.interfaces.br0.ipv4.addresses = [
|
||||
{ address = "10.11.0.254"; prefixLength = 24; }
|
||||
];
|
||||
|
||||
# Force /etc/hosts to be the only source for host name resolution
|
||||
environment.etc."nsswitch.conf".text = lib.mkForce ''
|
||||
|
@ -26,9 +26,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
interface = "eth1";
|
||||
mode = "bridge";
|
||||
};
|
||||
networking.interfaces.eth1.ip4 = lib.mkForce [];
|
||||
networking.interfaces.eth1.ipv4.addresses = lib.mkForce [];
|
||||
networking.interfaces.mv-eth1-host = {
|
||||
ip4 = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
};
|
||||
|
||||
containers.test1 = {
|
||||
@ -37,7 +37,7 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
|
||||
config = {
|
||||
networking.interfaces.mv-eth1 = {
|
||||
ip4 = [ { address = containerIp1; prefixLength = 24; } ];
|
||||
ipv4.addresses = [ { address = containerIp1; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -48,7 +48,7 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
|
||||
config = {
|
||||
networking.interfaces.mv-eth1 = {
|
||||
ip4 = [ { address = containerIp2; prefixLength = 24; } ];
|
||||
ipv4.addresses = [ { address = containerIp2; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -16,9 +16,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
interfaces = [ "eth1" ];
|
||||
|
||||
config = {
|
||||
networking.interfaces.eth1 = {
|
||||
ip4 = [ { address = "10.10.0.1"; prefixLength = 24; } ];
|
||||
};
|
||||
networking.interfaces.eth1.ipv4.addresses = [
|
||||
{ address = "10.10.0.1"; prefixLength = 24; }
|
||||
];
|
||||
networking.firewall.enable = false;
|
||||
};
|
||||
};
|
||||
@ -33,9 +33,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
|
||||
config = {
|
||||
networking.bridges.br0.interfaces = [ "eth1" ];
|
||||
networking.interfaces.br0 = {
|
||||
ip4 = [ { address = "10.10.0.2"; prefixLength = 24; } ];
|
||||
};
|
||||
networking.interfaces.br0.ipv4.addresses = [
|
||||
{ address = "10.10.0.2"; prefixLength = 24; }
|
||||
];
|
||||
networking.firewall.enable = false;
|
||||
};
|
||||
};
|
||||
@ -54,9 +54,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
interfaces = [ "eth1" ];
|
||||
mode = "active-backup";
|
||||
};
|
||||
networking.interfaces.bond0 = {
|
||||
ip4 = [ { address = "10.10.0.3"; prefixLength = 24; } ];
|
||||
};
|
||||
networking.interfaces.bond0.ipv4.addresses = [
|
||||
{ address = "10.10.0.3"; prefixLength = 24; }
|
||||
];
|
||||
networking.firewall.enable = false;
|
||||
};
|
||||
};
|
||||
@ -76,9 +76,9 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
mode = "active-backup";
|
||||
};
|
||||
networking.bridges.br0.interfaces = [ "bond0" ];
|
||||
networking.interfaces.br0 = {
|
||||
ip4 = [ { address = "10.10.0.4"; prefixLength = 24; } ];
|
||||
};
|
||||
networking.interfaces.br0.ipv4.addresses = [
|
||||
{ address = "10.10.0.4"; prefixLength = 24; }
|
||||
];
|
||||
networking.firewall.enable = false;
|
||||
};
|
||||
};
|
||||
|
@ -11,7 +11,7 @@ let
|
||||
|
||||
# prevent make-test.nix to change IP
|
||||
networking.interfaces = {
|
||||
eth1.ip4 = lib.mkOverride 0 [ ];
|
||||
eth1.ipv4.addresses = lib.mkOverride 0 [ ];
|
||||
};
|
||||
};
|
||||
in {
|
||||
|
@ -11,7 +11,7 @@ let
|
||||
config = {
|
||||
networking.firewall.enable = false;
|
||||
networking.firewall.allowPing = true;
|
||||
networking.interfaces.eth0.ip4 = [
|
||||
networking.interfaces.eth0.ipv4.addresses = [
|
||||
{ address = "192.168.1.122"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
@ -33,8 +33,8 @@ in import ./make-test.nix ({ pkgs, lib, ...} :
|
||||
rstp = false;
|
||||
};
|
||||
networking.interfaces = {
|
||||
eth1.ip4 = lib.mkOverride 0 [ ];
|
||||
br0.ip4 = [{ address = "192.168.1.1"; prefixLength = 24; }];
|
||||
eth1.ipv4.addresses = lib.mkOverride 0 [ ];
|
||||
br0.ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
};
|
||||
|
||||
};
|
||||
@ -44,8 +44,8 @@ in import ./make-test.nix ({ pkgs, lib, ...} :
|
||||
rstp = false;
|
||||
};
|
||||
networking.interfaces = {
|
||||
eth1.ip4 = lib.mkOverride 0 [ ];
|
||||
br0.ip4 = [{ address = "192.168.1.2"; prefixLength = 24; }];
|
||||
eth1.ipv4.addresses = lib.mkOverride 0 [ ];
|
||||
br0.ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
client_eth1_rstp = { lib, pkgs, ... }: client_base // {
|
||||
@ -54,8 +54,8 @@ in import ./make-test.nix ({ pkgs, lib, ...} :
|
||||
rstp = true;
|
||||
};
|
||||
networking.interfaces = {
|
||||
eth1.ip4 = lib.mkOverride 0 [ ];
|
||||
br0.ip4 = [{ address = "192.168.1.2"; prefixLength = 24; }];
|
||||
eth1.ipv4.addresses = lib.mkOverride 0 [ ];
|
||||
br0.ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -11,8 +11,8 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
with pkgs.lib;
|
||||
{
|
||||
networking = {
|
||||
interfaces.eth1.ip6 = mkOverride 0 [ { address = "fd00::2"; prefixLength = 64; } ];
|
||||
interfaces.eth1.ip4 = mkOverride 0 [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::2"; prefixLength = 64; } ];
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
server =
|
||||
@ -20,8 +20,8 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||
with pkgs.lib;
|
||||
{
|
||||
networking = {
|
||||
interfaces.eth1.ip6 = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ];
|
||||
interfaces.eth1.ip4 = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
interfaces.eth1.ipv6.addresses = mkOverride 0 [ { address = "fd00::1"; prefixLength = 64; } ];
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
};
|
||||
|
||||
services = {
|
||||
|
@ -11,9 +11,7 @@ import ../make-test.nix ({ pkgs, lib, ... }:
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
boot.kernelParams = [
|
||||
"ip=${
|
||||
(head config.networking.interfaces.eth1.ip4).address
|
||||
}:::255.255.255.0::eth1:none"
|
||||
"ip=${config.networking.primaryIPAddress}:::255.255.255.0::eth1:none"
|
||||
];
|
||||
boot.initrd.network = {
|
||||
enable = true;
|
||||
|
@ -35,7 +35,7 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false,
|
||||
{ virtualisation.vlans = [ 1 ];
|
||||
networking.firewall.allowPing = true;
|
||||
networking.defaultGateway =
|
||||
(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ip4).address;
|
||||
(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address;
|
||||
}
|
||||
(lib.optionalAttrs withConntrackHelpers {
|
||||
networking.firewall.connectionTrackingModules = [ "ftp" ];
|
||||
|
@ -21,10 +21,8 @@ let
|
||||
firewall.allowedUDPPorts = [ 547 ];
|
||||
interfaces = mkOverride 0 (listToAttrs (flip map vlanIfs (n:
|
||||
nameValuePair "eth${toString n}" {
|
||||
ipAddress = "192.168.${toString n}.1";
|
||||
prefixLength = 24;
|
||||
ipv6Address = "fd00:1234:5678:${toString n}::1";
|
||||
ipv6PrefixLength = 64;
|
||||
ipv4.addresses = [ { address = "192.168.${toString n}.1"; prefixLength = 24; } ];
|
||||
ipv6.addresses = [ { address = "fd00:1234:5678:${toString n}::1"; prefixLength = 64; } ];
|
||||
})));
|
||||
};
|
||||
services.dhcpd4 = {
|
||||
@ -90,12 +88,12 @@ let
|
||||
firewall.allowPing = true;
|
||||
useDHCP = false;
|
||||
defaultGateway = "192.168.1.1";
|
||||
interfaces.eth1.ip4 = mkOverride 0 [
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [
|
||||
{ address = "192.168.1.2"; prefixLength = 24; }
|
||||
{ address = "192.168.1.3"; prefixLength = 32; }
|
||||
{ address = "192.168.1.10"; prefixLength = 32; }
|
||||
];
|
||||
interfaces.eth2.ip4 = mkOverride 0 [
|
||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [
|
||||
{ address = "192.168.2.2"; prefixLength = 24; }
|
||||
];
|
||||
};
|
||||
@ -143,12 +141,12 @@ let
|
||||
firewall.allowPing = true;
|
||||
useDHCP = true;
|
||||
interfaces.eth1 = {
|
||||
ip4 = mkOverride 0 [ ];
|
||||
ip6 = mkOverride 0 [ ];
|
||||
ipv4.addresses = mkOverride 0 [ ];
|
||||
ipv6.addresses = mkOverride 0 [ ];
|
||||
};
|
||||
interfaces.eth2 = {
|
||||
ip4 = mkOverride 0 [ ];
|
||||
ip6 = mkOverride 0 [ ];
|
||||
ipv4.addresses = mkOverride 0 [ ];
|
||||
ipv6.addresses = mkOverride 0 [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -198,10 +196,10 @@ let
|
||||
firewall.allowPing = true;
|
||||
useDHCP = false;
|
||||
interfaces.eth1 = {
|
||||
ip4 = mkOverride 0 [ ];
|
||||
ipv4.addresses = mkOverride 0 [ ];
|
||||
useDHCP = true;
|
||||
};
|
||||
interfaces.eth2.ip4 = mkOverride 0 [ ];
|
||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
||||
};
|
||||
};
|
||||
testScript = { nodes, ... }:
|
||||
@ -241,9 +239,9 @@ let
|
||||
interfaces = [ "eth1" "eth2" ];
|
||||
driverOptions.mode = "balance-rr";
|
||||
};
|
||||
interfaces.eth1.ip4 = mkOverride 0 [ ];
|
||||
interfaces.eth2.ip4 = mkOverride 0 [ ];
|
||||
interfaces.bond.ip4 = mkOverride 0
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
||||
interfaces.bond.ipv4.addresses = mkOverride 0
|
||||
[ { inherit address; prefixLength = 30; } ];
|
||||
};
|
||||
};
|
||||
@ -274,7 +272,7 @@ let
|
||||
useNetworkd = networkd;
|
||||
firewall.allowPing = true;
|
||||
useDHCP = false;
|
||||
interfaces.eth1.ip4 = mkOverride 0
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0
|
||||
[ { inherit address; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
@ -289,9 +287,9 @@ let
|
||||
firewall.allowPing = true;
|
||||
useDHCP = false;
|
||||
bridges.bridge.interfaces = [ "eth1" "eth2" ];
|
||||
interfaces.eth1.ip4 = mkOverride 0 [ ];
|
||||
interfaces.eth2.ip4 = mkOverride 0 [ ];
|
||||
interfaces.bridge.ip4 = mkOverride 0
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
||||
interfaces.eth2.ipv4.addresses = mkOverride 0 [ ];
|
||||
interfaces.bridge.ipv4.addresses = mkOverride 0
|
||||
[ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
@ -328,7 +326,7 @@ let
|
||||
firewall.allowPing = true;
|
||||
useDHCP = true;
|
||||
macvlans.macvlan.interface = "eth1";
|
||||
interfaces.eth1.ip4 = mkOverride 0 [ ];
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
||||
};
|
||||
};
|
||||
testScript = { nodes, ... }:
|
||||
@ -369,9 +367,9 @@ let
|
||||
local = address4;
|
||||
dev = "eth1";
|
||||
};
|
||||
interfaces.eth1.ip4 = mkOverride 0
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0
|
||||
[ { address = address4; prefixLength = 24; } ];
|
||||
interfaces.sit.ip6 = mkOverride 0
|
||||
interfaces.sit.ipv6.addresses = mkOverride 0
|
||||
[ { address = address6; prefixLength = 64; } ];
|
||||
};
|
||||
};
|
||||
@ -410,9 +408,9 @@ let
|
||||
id = 1;
|
||||
interface = "eth0";
|
||||
};
|
||||
interfaces.eth0.ip4 = mkOverride 0 [ ];
|
||||
interfaces.eth1.ip4 = mkOverride 0 [ ];
|
||||
interfaces.vlan.ip4 = mkOverride 0
|
||||
interfaces.eth0.ipv4.addresses = mkOverride 0 [ ];
|
||||
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
|
||||
interfaces.vlan.ipv4.addresses = mkOverride 0
|
||||
[ { inherit address; prefixLength = 24; } ];
|
||||
};
|
||||
};
|
||||
@ -437,13 +435,13 @@ let
|
||||
name = "Virtual";
|
||||
machine = {
|
||||
networking.interfaces."tap0" = {
|
||||
ip4 = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
ip6 = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
|
||||
ipv4.addresses = [ { address = "192.168.1.1"; prefixLength = 24; } ];
|
||||
ipv6.addresses = [ { address = "2001:1470:fffd:2096::"; prefixLength = 64; } ];
|
||||
virtual = true;
|
||||
};
|
||||
networking.interfaces."tun0" = {
|
||||
ip4 = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
ip6 = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
|
||||
ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
|
||||
virtual = true;
|
||||
};
|
||||
};
|
||||
@ -483,9 +481,9 @@ let
|
||||
boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = true;
|
||||
networking = {
|
||||
useNetworkd = networkd;
|
||||
interfaces.eth1 = {
|
||||
ipv6Address = "fd00:1234:5678:1::1";
|
||||
ipv6PrefixLength = 64;
|
||||
interfaces.eth1.ipv6.addresses = singleton {
|
||||
address = "fd00:1234:5678:1::1";
|
||||
prefixLength = 64;
|
||||
};
|
||||
};
|
||||
services.radvd = {
|
||||
@ -511,8 +509,8 @@ let
|
||||
useDHCP = true;
|
||||
interfaces.eth1 = {
|
||||
preferTempAddress = true;
|
||||
ip4 = mkOverride 0 [ ];
|
||||
ip6 = mkOverride 0 [ ];
|
||||
ipv4.addresses = mkOverride 0 [ ];
|
||||
ipv6.addresses = mkOverride 0 [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -533,6 +531,69 @@ let
|
||||
$client->waitUntilSucceeds("! ip route get fd00:1234:5678:1::1 | grep -q ':[a-f0-9]*ff:fe[a-f0-9]*:'");
|
||||
'';
|
||||
};
|
||||
routes = {
|
||||
name = "routes";
|
||||
machine = {
|
||||
networking.useDHCP = false;
|
||||
networking.interfaces."eth0" = {
|
||||
ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
ipv6.addresses = [ { address = "2001:1470:fffd:2097::"; prefixLength = 64; } ];
|
||||
ipv6.routes = [
|
||||
{ address = "fdfd:b3f0::"; prefixLength = 48; }
|
||||
{ address = "2001:1470:fffd:2098::"; prefixLength = 64; via = "fdfd:b3f0::1"; }
|
||||
];
|
||||
ipv4.routes = [
|
||||
{ address = "10.0.0.0"; prefixLength = 16; options = { mtu = "1500"; }; }
|
||||
{ address = "192.168.2.0"; prefixLength = 24; via = "192.168.1.1"; }
|
||||
];
|
||||
};
|
||||
virtualisation.vlans = [ ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
my $targetIPv4Table = <<'END';
|
||||
10.0.0.0/16 scope link mtu 1500
|
||||
192.168.1.0/24 proto kernel scope link src 192.168.1.2
|
||||
192.168.2.0/24 via 192.168.1.1
|
||||
END
|
||||
|
||||
my $targetIPv6Table = <<'END';
|
||||
2001:1470:fffd:2097::/64 proto kernel metric 256 pref medium
|
||||
2001:1470:fffd:2098::/64 via fdfd:b3f0::1 metric 1024 pref medium
|
||||
fdfd:b3f0::/48 metric 1024 pref medium
|
||||
END
|
||||
|
||||
$machine->start;
|
||||
$machine->waitForUnit("network.target");
|
||||
|
||||
# test routing tables
|
||||
my $ipv4Table = $machine->succeed("ip -4 route list dev eth0 | head -n3");
|
||||
my $ipv6Table = $machine->succeed("ip -6 route list dev eth0 | head -n3");
|
||||
"$ipv4Table" eq "$targetIPv4Table" or die(
|
||||
"The IPv4 routing table does not match the expected one:\n",
|
||||
"Result:\n", "$ipv4Table\n",
|
||||
"Expected:\n", "$targetIPv4Table\n"
|
||||
);
|
||||
"$ipv6Table" eq "$targetIPv6Table" or die(
|
||||
"The IPv6 routing table does not match the expected one:\n",
|
||||
"Result:\n", "$ipv6Table\n",
|
||||
"Expected:\n", "$targetIPv6Table\n"
|
||||
);
|
||||
|
||||
# test clean-up of the tables
|
||||
$machine->succeed("systemctl stop network-addresses-eth0");
|
||||
my $ipv4Residue = $machine->succeed("ip -4 route list dev eth0 | head -n-3");
|
||||
my $ipv6Residue = $machine->succeed("ip -6 route list dev eth0 | head -n-3");
|
||||
$ipv4Residue eq "" or die(
|
||||
"The IPv4 routing table has not been properly cleaned:\n",
|
||||
"$ipv4Residue\n"
|
||||
);
|
||||
$ipv6Residue eq "" or die(
|
||||
"The IPv6 routing table has not been properly cleaned:\n",
|
||||
"$ipv6Residue\n"
|
||||
);
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
in mapAttrs (const (attrs: makeTest (attrs // {
|
||||
|
@ -15,25 +15,31 @@ in import ./make-test.nix ({ pkgs, ...} : {
|
||||
clientv4 = { lib, nodes, ... }: {
|
||||
imports = [ common ];
|
||||
networking.nameservers = lib.mkForce [
|
||||
nodes.server.config.networking.interfaces.eth1.ipAddress
|
||||
(lib.head nodes.server.config.networking.interfaces.eth1.ipv4.addresses).address
|
||||
];
|
||||
networking.interfaces.eth1.ipv4.addresses = [
|
||||
{ address = "192.168.0.2"; prefixLength = 24; }
|
||||
];
|
||||
networking.interfaces.eth1.ipAddress = "192.168.0.2";
|
||||
networking.interfaces.eth1.prefixLength = 24;
|
||||
};
|
||||
|
||||
clientv6 = { lib, nodes, ... }: {
|
||||
imports = [ common ];
|
||||
networking.nameservers = lib.mkForce [
|
||||
nodes.server.config.networking.interfaces.eth1.ipv6Address
|
||||
(lib.head nodes.server.config.networking.interfaces.eth1.ipv6.addresses).address
|
||||
];
|
||||
networking.interfaces.eth1.ipv4.addresses = [
|
||||
{ address = "dead:beef::2"; prefixLength = 24; }
|
||||
];
|
||||
networking.interfaces.eth1.ipv6Address = "dead:beef::2";
|
||||
};
|
||||
|
||||
server = { lib, ... }: {
|
||||
imports = [ common ];
|
||||
networking.interfaces.eth1.ipAddress = "192.168.0.1";
|
||||
networking.interfaces.eth1.prefixLength = 24;
|
||||
networking.interfaces.eth1.ipv6Address = "dead:beef::1";
|
||||
networking.interfaces.eth1.ipv4.addresses = [
|
||||
{ address = "192.168.0.1"; prefixLength = 24; }
|
||||
];
|
||||
networking.interfaces.eth1.ipv6.addresses = [
|
||||
{ address = "dead:beef::1"; prefixLength = 64; }
|
||||
];
|
||||
services.nsd.enable = true;
|
||||
services.nsd.interfaces = lib.mkForce [];
|
||||
services.nsd.zones."example.com.".data = ''
|
||||
|
@ -8,7 +8,7 @@
|
||||
import ./make-test.nix ({ pkgs, ... }:
|
||||
let
|
||||
|
||||
ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ip4).address;
|
||||
ifAddr = node: iface: (pkgs.lib.head node.config.networking.interfaces.${iface}.ipv4.addresses).address;
|
||||
|
||||
ospfConf = ''
|
||||
interface eth2
|
||||
|
45
pkgs/applications/audio/sayonara/default.nix
Normal file
45
pkgs/applications/audio/sayonara/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
source 'https://rubygems.org'
|
||||
gem 'jekyll'
|
||||
gem 'jekyll-feed'
|
||||
gem 'jekyll-paginate'
|
||||
gem 'rdiscount'
|
||||
gem 'RedCloth'
|
||||
gem 'minima'
|
@ -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
|
10
pkgs/applications/misc/jekyll/basic/Gemfile
Normal file
10
pkgs/applications/misc/jekyll/basic/Gemfile
Normal file
@ -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"
|
101
pkgs/applications/misc/jekyll/basic/Gemfile.lock
Normal file
101
pkgs/applications/misc/jekyll/basic/Gemfile.lock
Normal file
@ -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
|
326
pkgs/applications/misc/jekyll/basic/gemset.nix
Normal file
326
pkgs/applications/misc/jekyll/basic/gemset.nix
Normal file
@ -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";
|
||||
};
|
||||
}
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
30
pkgs/applications/misc/jekyll/full/Gemfile
Normal file
30
pkgs/applications/misc/jekyll/full/Gemfile
Normal file
@ -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
|
160
pkgs/applications/misc/jekyll/full/Gemfile.lock
Normal file
160
pkgs/applications/misc/jekyll/full/Gemfile.lock
Normal file
@ -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
|
547
pkgs/applications/misc/jekyll/full/gemset.nix
Normal file
547
pkgs/applications/misc/jekyll/full/gemset.nix
Normal file
@ -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";
|
||||
};
|
||||
}
|
@ -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";
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenvNoCC, curl }: # Note that `curl' may be `null', in case of the native stdenvNoCC.
|
||||
{ lib, stdenvNoCC, curl }: # Note that `curl' may be `null', in case of the native stdenvNoCC.
|
||||
|
||||
let
|
||||
|
||||
@ -20,7 +20,7 @@ let
|
||||
# "gnu", etc.).
|
||||
sites = builtins.attrNames mirrors;
|
||||
|
||||
impureEnvVars = stdenvNoCC.lib.fetchers.proxyImpureEnvVars ++ [
|
||||
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
|
||||
# This variable allows the user to pass additional options to curl
|
||||
"NIX_CURL_FLAGS"
|
||||
|
||||
@ -89,22 +89,28 @@ in
|
||||
, passthru ? {}
|
||||
}:
|
||||
|
||||
assert builtins.isList urls;
|
||||
assert (urls == []) != (url == "");
|
||||
assert sha512 != "" -> builtins.compareVersions "1.11" builtins.nixVersion <= 0;
|
||||
|
||||
|
||||
let
|
||||
|
||||
hasHash = showURLs || (outputHash != "" && outputHashAlgo != "")
|
||||
|| sha1 != "" || sha256 != "" || sha512 != "";
|
||||
urls_ = if urls != [] then urls else [url];
|
||||
urls_ =
|
||||
if urls != [] && url == "" then
|
||||
(if lib.isList urls then urls
|
||||
else throw "`urls` is not a list")
|
||||
else if urls == [] && url != "" then [url]
|
||||
else throw "fetchurl requires either `url` or `urls` to be set";
|
||||
|
||||
hash_ =
|
||||
if md5 != "" then throw "fetchurl does not support md5 anymore, please use sha256 or sha512"
|
||||
else if (outputHash != "" && outputHashAlgo != "") then { inherit outputHashAlgo outputHash; }
|
||||
else if sha512 != "" then { outputHashAlgo = "sha512"; outputHash = sha512; }
|
||||
else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
|
||||
else if sha1 != "" then { outputHashAlgo = "sha1"; outputHash = sha1; }
|
||||
else throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}";
|
||||
|
||||
in
|
||||
|
||||
if md5 != "" then throw "fetchurl does not support md5 anymore, please use sha256 or sha512"
|
||||
else if (!hasHash) then throw "Specify hash for fetchurl fixed-output derivation: ${stdenvNoCC.lib.concatStringsSep ", " urls_}"
|
||||
else stdenvNoCC.mkDerivation {
|
||||
stdenvNoCC.mkDerivation {
|
||||
name =
|
||||
if showURLs then "urls"
|
||||
else if name != "" then name
|
||||
@ -121,10 +127,7 @@ else stdenvNoCC.mkDerivation {
|
||||
preferHashedMirrors = true;
|
||||
|
||||
# New-style output content requirements.
|
||||
outputHashAlgo = if outputHashAlgo != "" then outputHashAlgo else
|
||||
if sha512 != "" then "sha512" else if sha256 != "" then "sha256" else "sha1";
|
||||
outputHash = if outputHash != "" then outputHash else
|
||||
if sha512 != "" then sha512 else if sha256 != "" then sha256 else sha1;
|
||||
inherit (hash_) outputHashAlgo outputHash;
|
||||
|
||||
outputHashMode = if (recursiveHash || executable) then "recursive" else "flat";
|
||||
|
||||
|
@ -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" ];
|
||||
|
33
pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch
Normal file
33
pkgs/development/compilers/llvm/4/dynamiclibrary-musl.patch
Normal file
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
54
pkgs/development/compilers/llvm/4/libc++/max_align_t.patch
Normal file
54
pkgs/development/compilers/llvm/4/libc++/max_align_t.patch
Normal file
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 = ''
|
||||
|
@ -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" ];
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 = ''
|
||||
|
35
pkgs/development/compilers/llvm/TLI-musl.patch
Normal file
35
pkgs/development/compilers/llvm/TLI-musl.patch
Normal file
@ -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
|
||||
|
39
pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch
Normal file
39
pkgs/development/compilers/llvm/libcxx-0001-musl-hacks.patch
Normal file
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -1,32 +1,113 @@
|
||||
{stdenv, fetchurl, aspell, which}:
|
||||
{lib, stdenv, fetchurl, aspell, which}:
|
||||
|
||||
with lib;
|
||||
|
||||
/* HOWTO:
|
||||
|
||||
* Add some of these to your profile or systemPackages.
|
||||
|
||||
~~~~
|
||||
environment.systemPackages = [
|
||||
aspell
|
||||
aspellDicts.en
|
||||
aspellDicts.en-computers
|
||||
aspellDicts.en-science
|
||||
];
|
||||
~~~~
|
||||
|
||||
* Rebuild and switch to the new profile.
|
||||
* Add something like
|
||||
|
||||
~~~~
|
||||
master en_US
|
||||
extra-dicts en-computers.rws
|
||||
add-extra-dicts en_US-science.rws
|
||||
~~~~
|
||||
|
||||
to `/etc/aspell.conf` or `~/.aspell.conf`.
|
||||
* Check that `aspell -a` starts without errors.
|
||||
* (optional) Check your config with `aspell dump config | grep -vE '^(#|$)'`.
|
||||
* Enjoy.
|
||||
|
||||
*/
|
||||
|
||||
let
|
||||
|
||||
/* Function to compile an Aspell dictionary. Fortunately, they all
|
||||
build in the exact same way. */
|
||||
buildDict =
|
||||
{shortName, fullName, src, postInstall ? ""}:
|
||||
{shortName, fullName, ...}@args:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
stdenv.mkDerivation ({
|
||||
name = "aspell-dict-${shortName}";
|
||||
|
||||
inherit src;
|
||||
|
||||
buildInputs = [aspell which];
|
||||
|
||||
dontAddPrefix = true;
|
||||
|
||||
preBuild = "makeFlagsArray=(dictdir=$out/lib/aspell datadir=$out/lib/aspell)";
|
||||
|
||||
inherit postInstall;
|
||||
|
||||
meta = {
|
||||
description = "Aspell dictionary for ${fullName}";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
};
|
||||
} // (args.meta or {});
|
||||
} // removeAttrs args [ "meta" ]);
|
||||
|
||||
in {
|
||||
/* Function to compile txt dict files into Aspell dictionaries. */
|
||||
buildTxtDict =
|
||||
{langInputs ? [], ...}@args:
|
||||
buildDict ({
|
||||
propagatedUserEnvPackages = langInputs;
|
||||
|
||||
preBuild = ''
|
||||
# Aspell can't handle multiple data-dirs
|
||||
# Copy everything we might possibly need
|
||||
${concatMapStringsSep "\n" (p: ''
|
||||
cp -a ${p}/lib/aspell/* .
|
||||
'') ([ aspell ] ++ langInputs)}
|
||||
export ASPELL_CONF="data-dir $(pwd)"
|
||||
|
||||
aspell-create() {
|
||||
target=$1
|
||||
shift
|
||||
echo building $target
|
||||
aspell create "$@" master ./$target.rws
|
||||
}
|
||||
|
||||
words-only() {
|
||||
awk -F'\t' '{print $1}' | sort | uniq
|
||||
}
|
||||
|
||||
# drop comments
|
||||
aspell-affix() {
|
||||
words-only \
|
||||
| grep -v '#' \
|
||||
| aspell-create "$@"
|
||||
}
|
||||
|
||||
# Hack: drop comments and words with affixes
|
||||
aspell-plain() {
|
||||
words-only \
|
||||
| grep -v '#' \
|
||||
| grep -v '/' \
|
||||
| aspell-create "$@"
|
||||
}
|
||||
|
||||
aspell-install() {
|
||||
install -d $out/lib/aspell
|
||||
for a in "$@"; do
|
||||
echo installing $a
|
||||
install -t $out/lib/aspell $a.rws
|
||||
done
|
||||
}
|
||||
'';
|
||||
|
||||
phases = [ "preBuild" "buildPhase" "installPhase" ];
|
||||
} // args);
|
||||
|
||||
in rec {
|
||||
|
||||
### Languages
|
||||
|
||||
ca = buildDict {
|
||||
shortName = "ca-2.1.5-1";
|
||||
@ -230,4 +311,53 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
### Jargons
|
||||
|
||||
en-computers = buildTxtDict rec {
|
||||
shortName = "en-computers";
|
||||
fullName = "English Computer Jargon";
|
||||
|
||||
src = fetchurl {
|
||||
url = https://mrsatterly.com/computer.dic;
|
||||
sha256 = "1vzk7cdvcm9r1c6mgxpabrdcpvghdv9mjmnf6iq5wllcif5nsw2b";
|
||||
};
|
||||
|
||||
langInputs = [ en ];
|
||||
|
||||
buildPhase = "cat $src | aspell-affix en-computers --dont-validate-words --lang=en";
|
||||
installPhase = "aspell-install en-computers";
|
||||
|
||||
meta = {
|
||||
homepage = https://mrsatterly.com/spelling.html;
|
||||
};
|
||||
};
|
||||
|
||||
en-science = buildTxtDict rec {
|
||||
shortName = "en-science";
|
||||
fullName = "English Scientific Jargon";
|
||||
|
||||
src1 = fetchurl {
|
||||
url = http://jpetrie.net/wp-content/uploads/custom_scientific_US.txt;
|
||||
sha256 = "1psqm094zl4prk2f8h18jv0d471hxykzd1zdnrlx7gzrzy6pz5r3";
|
||||
};
|
||||
|
||||
src2 = fetchurl {
|
||||
url = http://jpetrie.net/wp-content/uploads/custom_scientific_UK.txt;
|
||||
sha256 = "17ss1sdr3k70zbyx2z9xf74345slrp41gbkpih8axrmg4x92fgm1";
|
||||
};
|
||||
|
||||
langInputs = [ en ];
|
||||
|
||||
buildPhase = ''
|
||||
cat $src1 | aspell-plain en_US-science --dont-validate-words --lang=en
|
||||
cat $src2 | aspell-plain en_GB-science --dont-validate-words --lang=en
|
||||
'';
|
||||
installPhase = "aspell-install en_US-science en_GB-science";
|
||||
|
||||
meta = {
|
||||
homepage = http://www.jpetrie.net/scientific-word-list-for-spell-checkersspelling-dictionaries/;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
27
pkgs/development/ocaml-modules/bitv/default.nix
Normal file
27
pkgs/development/ocaml-modules/bitv/default.nix
Normal file
@ -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;
|
||||
};
|
||||
}
|
@ -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 = ''
|
||||
|
@ -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 ];
|
||||
|
69
pkgs/development/tools/build-managers/gnumake/4.2/head.nix
Normal file
69
pkgs/development/tools/build-managers/gnumake/4.2/head.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
@ -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
|
@ -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 = {
|
||||
|
18
pkgs/os-specific/linux/kernel/linux-riscv.nix
Normal file
18
pkgs/os-specific/linux/kernel/linux-riscv.nix
Normal file
@ -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 {}))
|
@ -155,14 +155,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
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
65
pkgs/os-specific/linux/kernel/riscv-install.patch
Normal file
65
pkgs/os-specific/linux/kernel/riscv-install.patch
Normal file
@ -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
|
42
pkgs/os-specific/linux/kernel/riscv-irq-busy.patch
Normal file
42
pkgs/os-specific/linux/kernel/riscv-irq-busy.patch
Normal file
@ -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
|
11
pkgs/os-specific/linux/kernel/riscv-modules.patch
Normal file
11
pkgs/os-specific/linux/kernel/riscv-modules.patch
Normal file
@ -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
|
@ -118,6 +118,7 @@ in rec {
|
||||
initialPath = [ bootstrapTools ];
|
||||
|
||||
fetchurlBoot = import ../../build-support/fetchurl {
|
||||
inherit lib;
|
||||
stdenvNoCC = stage0.stdenv;
|
||||
curl = bootstrapTools;
|
||||
};
|
||||
|
@ -29,7 +29,8 @@ let inherit (localSystem) system; in
|
||||
inherit bootstrapTools;
|
||||
|
||||
fetchurl = import ../../build-support/fetchurl {
|
||||
inherit stdenv;
|
||||
inherit lib;
|
||||
stdenvNoCC = stdenv;
|
||||
curl = bootstrapTools;
|
||||
};
|
||||
|
||||
|
@ -159,7 +159,7 @@ let
|
||||
executables = listOf str;
|
||||
outputsToInstall = listOf str;
|
||||
position = str;
|
||||
evaluates = bool;
|
||||
available = bool;
|
||||
repositories = attrsOf str;
|
||||
isBuildPythonPackage = platforms;
|
||||
schedulingPriority = int;
|
||||
|
@ -238,9 +238,9 @@ rec {
|
||||
position = pos.file + ":" + toString pos.line;
|
||||
# Expose the result of the checks for everyone to see.
|
||||
} // {
|
||||
evaluates = validity.valid
|
||||
available = validity.valid
|
||||
&& (if config.checkMetaRecursively or false
|
||||
then lib.all (d: d.meta.evaluates or true) references
|
||||
then lib.all (d: d.meta.available or true) references
|
||||
else true);
|
||||
};
|
||||
|
||||
|
@ -131,7 +131,7 @@ in
|
||||
};
|
||||
|
||||
fetchurl = import ../../build-support/fetchurl {
|
||||
inherit stdenv;
|
||||
inherit lib stdenvNoCC;
|
||||
# Curl should be in /usr/bin or so.
|
||||
curl = null;
|
||||
};
|
||||
|
@ -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; }; };
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -8,6 +8,8 @@ stdenv.mkDerivation {
|
||||
sha256 = "1c2nkxx83vmlh1v3ib6r2xqh121gdb1rharwsimcb2h0xwc558dm";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
makeFlags = "TREE=\$(out) MANTREE=\$(TREE)/share/man";
|
||||
|
||||
preBuild = ''
|
||||
|
@ -195,7 +195,7 @@ with pkgs;
|
||||
|
||||
# `fetchurl' downloads a file from the network.
|
||||
fetchurl = import ../build-support/fetchurl {
|
||||
inherit stdenvNoCC;
|
||||
inherit lib stdenvNoCC;
|
||||
# On darwin, libkrb5 needs bootstrap_cmds which would require
|
||||
# converting many packages to fetchurl_boot to avoid evaluation cycles.
|
||||
curl = buildPackages.curl.override (lib.optionalAttrs stdenv.isDarwin { gssSupport = false; });
|
||||
@ -7661,7 +7661,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 {});
|
||||
|
||||
@ -13104,6 +13107,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
|
||||
@ -13321,7 +13331,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 { };
|
||||
@ -13555,6 +13565,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 { };
|
||||
@ -17164,6 +17178,8 @@ with pkgs;
|
||||
vte = gnome3.vte;
|
||||
};
|
||||
|
||||
sayonara = callPackage ../applications/audio/sayonara { };
|
||||
|
||||
sbagen = callPackage ../applications/misc/sbagen { };
|
||||
|
||||
scantailor = callPackage ../applications/graphics/scantailor { };
|
||||
@ -20661,6 +20677,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 { };
|
||||
|
@ -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 { };
|
||||
|
@ -6301,6 +6301,17 @@ let self = _self // overrides; _self = with self; {
|
||||
propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gtk2 Pango pkgs.gnome2.libglade pkgs.gtk2 ];
|
||||
meta = {
|
||||
description = "Create user interfaces directly from Glade XML files";
|
||||
};
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user