Merge remote-tracking branch 'upstream/master' into ios-mini-staging

This commit is contained in:
John Ericson 2018-05-23 09:42:34 -04:00
commit c641a74bd6
110 changed files with 1766 additions and 973 deletions

View File

@ -8,16 +8,16 @@
and so on. For instance, the GNU Hello package has a <varname>meta</varname> and so on. For instance, the GNU Hello package has a <varname>meta</varname>
declaration like this: declaration like this:
<programlisting> <programlisting>
meta = { meta = with stdenv.lib; {
description = "A program that produces a familiar, friendly greeting"; description = "A program that produces a familiar, friendly greeting";
longDescription = '' longDescription = ''
GNU Hello is a program that prints "Hello, world!" when you run it. GNU Hello is a program that prints "Hello, world!" when you run it.
It is fully customizable. It is fully customizable.
''; '';
homepage = http://www.gnu.org/software/hello/manual/; homepage = http://www.gnu.org/software/hello/manual/;
license = stdenv.lib.licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.eelco ]; maintainers = [ maintainers.eelco ];
platforms = stdenv.lib.platforms.all; platforms = platforms.all;
}; };
</programlisting> </programlisting>
</para> </para>

View File

@ -140,6 +140,11 @@
github = "roosemberth"; github = "roosemberth";
name = "Roosembert (Roosemberth) Palacios"; name = "Roosembert (Roosemberth) Palacios";
}; };
Scriptkiddi = {
email = "nixos@scriptkiddi.de";
github = "scriptkiddi";
name = "Fritz Otlinghaus";
};
SShrike = { SShrike = {
email = "severen@shrike.me"; email = "severen@shrike.me";
github = "severen"; github = "severen";

View File

@ -1,6 +1,14 @@
# This module defines the global list of uids and gids. We keep a # This module defines the global list of uids and gids. We keep a
# central list to prevent id collisions. # central list to prevent id collisions.
# IMPORTANT!
# We only add static uids and gids for services where it is not feasible
# to change uids/gids on service start, in example a service with a lot of
# files. Please also check if the service is applicable for systemd's
# DynamicUser option and does not need a uid/gid allocation at all.
# Systemd can also change ownership of service directories using the
# RuntimeDirectory/StateDirectory options.
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {

View File

@ -51,7 +51,8 @@ in {
serviceConfig = { serviceConfig = {
User = "slimserver"; User = "slimserver";
PermissionsStartOnly = true; PermissionsStartOnly = true;
ExecStart = "${cfg.package}/slimserver.pl --logdir ${cfg.dataDir}/logs --prefsdir ${cfg.dataDir}/prefs --cachedir ${cfg.dataDir}/cache"; # Issue 40589: Disable broken image/video support (audio still works!)
ExecStart = "${cfg.package}/slimserver.pl --logdir ${cfg.dataDir}/logs --prefsdir ${cfg.dataDir}/prefs --cachedir ${cfg.dataDir}/cache --noimage --novideo";
}; };
}; };

View File

@ -70,7 +70,7 @@ in {
resources = { resources = {
limits = { limits = {
cpu = "100m"; cpu = "100m";
memory = "50Mi"; memory = "250Mi";
}; };
requests = { requests = {
cpu = "100m"; cpu = "100m";

View File

@ -40,12 +40,12 @@ in {
systemd.packages = [ pkgs.flatpak pkgs.xdg-desktop-portal ] ++ cfg.extraPortals; systemd.packages = [ pkgs.flatpak pkgs.xdg-desktop-portal ] ++ cfg.extraPortals;
environment.variables = { environment.profiles = [
PATH = [ "$HOME/.local/share/flatpak/exports"
"$HOME/.local/share/flatpak/exports/bin" "/var/lib/flatpak/exports"
"/var/lib/flatpak/exports/bin" ];
];
environment.variables = {
XDG_DESKTOP_PORTAL_PATH = map (p: "${p}/share/xdg-desktop-portal/portals") cfg.extraPortals; XDG_DESKTOP_PORTAL_PATH = map (p: "${p}/share/xdg-desktop-portal/portals") cfg.extraPortals;
}; };
}; };

View File

@ -128,9 +128,17 @@ in {
you might need to specify it in <literal>extraPackages</literal>. you might need to specify it in <literal>extraPackages</literal>.
''; '';
}; };
openFirewall = mkOption {
default = false;
type = types.bool;
description = "Whether to open the firewall for the specified port.";
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.port ];
systemd.services.home-assistant = { systemd.services.home-assistant = {
description = "Home Assistant"; description = "Home Assistant";
after = [ "network.target" ]; after = [ "network.target" ];

View File

@ -340,7 +340,7 @@ in
default = default =
[ [
"$HOME/.nix-defexpr/channels" "$HOME/.nix-defexpr/channels"
"nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs" "nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos"
"nixos-config=/etc/nixos/configuration.nix" "nixos-config=/etc/nixos/configuration.nix"
"/nix/var/nix/profiles/per-user/root/channels" "/nix/var/nix/profiles/per-user/root/channels"
]; ];

View File

@ -209,7 +209,7 @@ let
'' ''
echo "${cidr}" >> $state echo "${cidr}" >> $state
echo -n "adding route ${cidr}... " echo -n "adding route ${cidr}... "
if out=$(ip route add "${cidr}" ${options} ${via} dev "${i.name}" 2>&1); then if out=$(ip route add "${cidr}" ${options} ${via} dev "${i.name}" proto static 2>&1); then
echo "done" echo "done"
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
echo "'ip route add "${cidr}" ${options} ${via} dev "${i.name}"' failed: $out" echo "'ip route add "${cidr}" ${options} ${via} dev "${i.name}"' failed: $out"

View File

@ -2,7 +2,20 @@
with lib; with lib;
let cfg = config.powerManagement.scsiLinkPolicy; in let
cfg = config.powerManagement.scsiLinkPolicy;
kernel = config.boot.kernelPackages.kernel;
allowedValues = [
"min_power"
"max_performance"
"medium_power"
"med_power_with_dipm"
];
in
{ {
###### interface ###### interface
@ -11,10 +24,13 @@ let cfg = config.powerManagement.scsiLinkPolicy; in
powerManagement.scsiLinkPolicy = mkOption { powerManagement.scsiLinkPolicy = mkOption {
default = null; default = null;
type = types.nullOr (types.enum [ "min_power" "max_performance" "medium_power" ]); type = types.nullOr (types.enum allowedValues);
description = '' description = ''
SCSI link power management policy. The kernel default is SCSI link power management policy. The kernel default is
"max_performance". "max_performance".
</para><para>
"med_power_with_dipm" is supported by kernel versions
4.15 and newer.
''; '';
}; };
@ -24,6 +40,12 @@ let cfg = config.powerManagement.scsiLinkPolicy; in
###### implementation ###### implementation
config = mkIf (cfg != null) { config = mkIf (cfg != null) {
assertions = singleton {
assertion = (cfg == "med_power_with_dipm") -> versionAtLeast kernel.version "4.15";
message = "med_power_with_dipm is not supported for kernels older than 4.15";
};
services.udev.extraRules = '' services.udev.extraRules = ''
SUBSYSTEM=="scsi_host", ACTION=="add", KERNEL=="host*", ATTR{link_power_management_policy}="${cfg}" SUBSYSTEM=="scsi_host", ACTION=="add", KERNEL=="host*", ATTR{link_power_management_policy}="${cfg}"
''; '';

View File

@ -6,11 +6,11 @@ uiEnv = pkgs.callPackage ./env.nix { };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "parity-ui-${version}"; name = "parity-ui-${version}";
version = "0.1.1"; version = "0.2.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb"; url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb";
sha256 = "1jym6q63m5f4xm06dxiiabhbqnr0hysf2d3swysncs5hg6w00lh3"; sha256 = "08gh438mqxj2h8i9hv826bx040wmkmdgsda5grj0k81459vds31l";
name = "${name}.deb"; name = "${name}.deb";
}; };

View File

@ -2,15 +2,15 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qsynth-${version}"; name = "qsynth-${version}";
version = "0.5.0"; version = "0.5.1";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qsynth/${name}.tar.gz"; url = "mirror://sourceforge/qsynth/${name}.tar.gz";
sha256 = "1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584"; sha256 = "0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap";
}; };
# cmake is looking for qsynth.desktop.in and fails if it doesn't find it # cmake is looking for qsynth.desktop.in and fails if it doesn't find it
# seems like a bug and can presumable go in the next version after 0.5.0 # seems like a bug and can presumable go in the next version after 0.5.1
postPatch = '' postPatch = ''
mv src/qsynth.desktop src/qsynth.desktop.in mv src/qsynth.desktop src/qsynth.desktop.in
''; '';

View File

@ -8,9 +8,7 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "boysetsfrog"; owner = "boysetsfrog";
repo = "vimpc"; repo = "vimpc";
# Using commit-hash as there is not tag available rev = "v${version}";
# https://github.com/boysetsfrog/vimpc/issues/70
rev = "63556da6b94ab27d7e3f542399f5e0975a5812ba";
sha256 = "1495a702df4nja8mlxq98mkbic2zv88sjiinimf9qddrfb38jxk6"; sha256 = "1495a702df4nja8mlxq98mkbic2zv88sjiinimf9qddrfb38jxk6";
}; };

View File

@ -1,52 +0,0 @@
{ stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}:
stdenv.mkDerivation rec {
name = "atom-beta-${version}";
version = "1.24.0-beta3";
src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "02nnjjwlkxafi2fbi4gz276nqkmi92kf3q414vw1k3kc8q5zvxrs";
name = "${name}.deb";
};
nativeBuildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out/usr/
ar p $src data.tar.xz | tar -C $out -xJ ./usr
substituteInPlace $out/usr/share/applications/atom-beta.desktop \
--replace /usr/share/atom-beta $out/bin
mv $out/usr/* $out/
rm -r $out/share/lintian
rm -r $out/usr/
sed -i "s/'atom-beta'/'.atom-beta-wrapped'/" $out/bin/atom-beta
wrapProgram $out/bin/atom-beta \
--prefix "PATH" : "${gvfs}/bin"
fixupPhase
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$out/share/atom-beta" \
$out/share/atom-beta/atom
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}" \
$out/share/atom-beta/resources/app/apm/bin/node
#rm -f $out/share/atom-beta/resources/app/node_modules/dugite/git/bin/git
#ln -s ${pkgs.git}/bin/git $out/share/atom-beta/resources/app/node_modules/dugite/git/bin/git
find $out/share/atom-beta -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$out/share/atom-beta" {} \;
paxmark m $out/share/atom-beta/atom
paxmark m $out/share/atom-beta/resources/app/apm/bin/node
'';
meta = with stdenv.lib; {
description = "A hackable text editor for the 21st Century";
homepage = https://atom.io/;
license = licenses.mit;
maintainers = [ maintainers.offline maintainers.nequissimus ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -1,53 +1,69 @@
{ stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}: { stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}:
stdenv.mkDerivation rec { let
name = "atom-${version}"; common = pname: {version, sha256}: stdenv.mkDerivation rec {
version = "1.27.0"; name = "${pname}-${version}";
inherit version;
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "1r37s6ndxyib644v7nlgha1pkcnz7kxpmlkhh41l5jp4dpc6iik6"; name = "${name}.deb";
name = "${name}.deb"; inherit sha256;
};
nativeBuildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out/usr/
ar p $src data.tar.xz | tar -C $out -xJ ./usr
substituteInPlace $out/usr/share/applications/${pname}.desktop \
--replace /usr/share/${pname} $out/bin
mv $out/usr/* $out/
rm -r $out/share/lintian
rm -r $out/usr/
# sed -i "s/'${pname}'/'.${pname}-wrapped'/" $out/bin/${pname}
wrapProgram $out/bin/${pname} \
--prefix "PATH" : "${gvfs}/bin"
fixupPhase
share=$out/share/${pname}
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$share" \
$share/atom
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}" \
$share/resources/app/apm/bin/node
dugite=$share/resources/app.asar.unpacked/node_modules/dugite
rm -f $dugite/git/bin/git
ln -s ${pkgs.git}/bin/git $dugite/git/bin/git
rm -f $dugite/git/libexec/git-core/git
ln -s ${pkgs.git}/bin/git $dugite/git/libexec/git-core/git
find $share -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$share" {} \;
paxmark m $share/atom
paxmark m $share/resources/app/apm/bin/node
'';
meta = with stdenv.lib; {
description = "A hackable text editor for the 21st Century";
homepage = https://atom.io/;
license = licenses.mit;
maintainers = with maintainers; [ offline nequissimus synthetica ysndr ];
platforms = [ "x86_64-linux" ];
};
};
in stdenv.lib.mapAttrs common {
atom = {
version = "1.27.1";
sha256 = "08slv8s90wz2jcdrcqh2d815wfbrkwcdx9c3qbx8cml04hz8p2gx";
}; };
nativeBuildInputs = [ makeWrapper ]; atom-beta = {
version = "1.28.0-beta1";
buildCommand = '' sha256 = "1mkxq2a7sylj9jx1bs2v1pmgrwc10cgh810qic1lncq9jzpaik0n";
mkdir -p $out/usr/
ar p $src data.tar.xz | tar -C $out -xJ ./usr
substituteInPlace $out/usr/share/applications/atom.desktop \
--replace /usr/share/atom $out/bin
mv $out/usr/* $out/
rm -r $out/share/lintian
rm -r $out/usr/
wrapProgram $out/bin/atom \
--prefix "PATH" : "${gvfs}/bin"
fixupPhase
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}:$out/share/atom" \
$out/share/atom/atom
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${atomEnv.libPath}" \
$out/share/atom/resources/app/apm/bin/node
rm -f $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/bin/git
ln -s ${pkgs.git}/bin/git $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/bin/git
rm -f $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
ln -s ${pkgs.git}/bin/git $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
find $out/share/atom -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$out/share/atom" {} \;
paxmark m $out/share/atom/atom
paxmark m $out/share/atom/resources/app/apm/bin/node
'';
meta = with stdenv.lib; {
description = "A hackable text editor for the 21st Century";
homepage = https://atom.io/;
license = licenses.mit;
maintainers = with maintainers; [ offline nequissimus synthetica ysndr ];
platforms = [ "x86_64-linux" ];
}; };
} }

View File

@ -4,15 +4,16 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kakoune-unstable-${version}"; name = "kakoune-unstable-${version}";
version = "2018-03-22"; version = "2018-05-21";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "kakoune"; repo = "kakoune";
owner = "mawww"; owner = "mawww";
rev = "f8e297acef1be0657b779fea5256f606a6c6a3a3"; rev = "878d2a4bdb674a5e7703a66e530520f48efba641";
sha256 = "14xmw3lkwzppm9bns55nmyb1lfihzhdyisf6xjqlszdj4mcf94jl"; sha256 = "0pwy6ilsb62s1792gjyvhvq8shj60l8lx26b58zvpfb54an4s6rk";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ ncurses asciidoc docbook_xsl libxslt ]; buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
makeFlags = [ "debug=no" ];
postPatch = '' postPatch = ''
export PREFIX=$out export PREFIX=$out

View File

@ -2,33 +2,46 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "1password-${version}"; name = "1password-${version}";
version = "0.4"; version = "0.4.1";
src = if stdenv.system == "i686-linux" then fetchzip { src =
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip"; if stdenv.system == "i686-linux" then
sha256 = "0mhlqvd3az50gnfil0xlq10855v3bg7yb05j6ndg4h2c551jrq41"; fetchzip {
stripRoot = false; url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_386_v${version}.zip";
} else fetchzip { sha256 = "0mv2m6rm6bdpca8vhyx213bg4kh06jl2sx8q7mnrp22c3f0yzh7f";
url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip"; stripRoot = false;
sha256 = "15cv8xi4slid9jicdmc5xx2r9ag63wcx1mn7hcgzxbxbhyrvwhyf"; }
stripRoot = false; else if stdenv.system == "x86_64-linux" then
}; fetchzip {
url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_amd64_v${version}.zip";
sha256 = "016h5jcy6jic8j3mvlnpcig9jxs22vj71gh6rrap2q950bzi6fi1";
stripRoot = false;
}
else if stdenv.system == "x86_64-darwin" then
fetchzip {
url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v${version}.zip";
sha256 = "1l0bi0f6gd4q19wn3v409gj64wp51mr0xpb09da1fl33rl5fpszb";
stripRoot = false;
}
else throw "Architecture not supported";
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
installPhase = '' installPhase = ''
mkdir -p $out/bin install -D op $out/bin/op
install -D op $out/share/1password/op '';
postFixup = stdenv.lib.optionalString stdenv.isLinux ''
# https://github.com/NixOS/patchelf/issues/66#issuecomment-267743051 patchelf \
makeWrapper $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/op \ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--argv0 op \ $out/bin/op
--add-flags $out/share/1password/op
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "1Password command-line tool"; description = "1Password command-line tool";
homepage = "https://blog.agilebits.com/2017/09/06/announcing-the-1password-command-line-tool-public-beta/"; homepage = [
"https://blog.agilebits.com/2017/09/06/announcing-the-1password-command-line-tool-public-beta/"
"https://app-updates.agilebits.com/product_history/CLI"
];
maintainers = with maintainers; [ joelburget ]; maintainers = with maintainers; [ joelburget ];
license = licenses.unfree; license = licenses.unfree;
platforms = [ "i686-linux" "x86_64-linux" ]; platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
}; };
} }

View File

@ -10,15 +10,15 @@ stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
meta = { meta = with stdenv.lib; {
description = "A program that produces a familiar, friendly greeting"; description = "A program that produces a familiar, friendly greeting";
longDescription = '' longDescription = ''
GNU Hello is a program that prints "Hello, world!" when you run it. GNU Hello is a program that prints "Hello, world!" when you run it.
It is fully customizable. It is fully customizable.
''; '';
homepage = http://www.gnu.org/software/hello/manual/; homepage = http://www.gnu.org/software/hello/manual/;
license = stdenv.lib.licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = [ stdenv.lib.maintainers.eelco ]; maintainers = [ maintainers.eelco ];
platforms = stdenv.lib.platforms.all; platforms = platforms.all;
}; };
} }

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "redshift-${version}"; name = "redshift-${version}";
version = "1.11"; version = "1.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jonls"; owner = "jonls";
repo = "redshift"; repo = "redshift";
rev = "v${version}"; rev = "v${version}";
sha256 = "0jfi4wqklqw2rm0r2xwalyzir88zkdvqj0z5id0l5v20vsrfiiyj"; sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
}; };
patches = [ patches = [

View File

@ -5,18 +5,17 @@
, docopt , docopt
, pygobject3 , pygobject3
, pyyaml , pyyaml
, ...
}: }:
buildPythonApplication rec { buildPythonApplication rec {
name = "udiskie-${version}"; name = "udiskie-${version}";
version = "1.7.3"; version = "1.7.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "coldfix"; owner = "coldfix";
repo = "udiskie"; repo = "udiskie";
rev = version; rev = version;
sha256 = "1yv1faq81n3vspf3jprcs5v21l2fchy3m3pc7lk8jb0xqlnh60x4"; sha256 = "0r3m8y6ppkl8p1lhr89sfk9v2la1zn0rbmr6hy860j7b22yvnkrn";
}; };
buildInputs = [ buildInputs = [

View File

@ -0,0 +1,24 @@
{ lib, buildGoPackage, fetchFromGitHub, ... }:
let version = "0.16.0"; in
buildGoPackage {
name = "helmfile-${version}";
src = fetchFromGitHub {
owner = "roboll";
repo = "helmfile";
rev = "v${version}";
sha256 = "12gxlan89h0r83aaacshh58nd1pi26gx5gkna0ksll9wsfvraj4d";
};
goPackagePath = "github.com/roboll/helmfile";
meta = {
description = "Deploy Kubernetes Helm charts";
homepage = https://github.com/roboll/helmfile;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pneumaticat ];
platforms = lib.platforms.unix;
};
}

View File

@ -104,8 +104,8 @@ in rec {
terraform_0_10-full = terraform_0_10.withPlugins lib.attrValues; terraform_0_10-full = terraform_0_10.withPlugins lib.attrValues;
terraform_0_11 = pluggable (generic { terraform_0_11 = pluggable (generic {
version = "0.11.6"; version = "0.11.7";
sha256 = "17kd3ln1i40qb8fll5918rvgackzf1ibmr7li1p9vky4ki3iwr0l"; sha256 = "0q5gl8yn1f8fas1v68lz081k88gbmlk7f2xqlwqmh01qpqjxd42q";
patches = [ ./provider-path.patch ]; patches = [ ./provider-path.patch ];
passthru = { inherit plugins; }; passthru = { inherit plugins; };
}); });

View File

@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
}; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "All-in-one voice and text chat for gamers thats free, secure, and works on both your desktop and phone"; description = "All-in-one cross-platform voice and text chat for gamers";
homepage = https://discordapp.com/; homepage = https://discordapp.com/;
downloadPage = "https://github.com/crmarsh/discord-linux-bugs"; downloadPage = "https://github.com/crmarsh/discord-linux-bugs";
license = licenses.unfree; license = licenses.unfree;

View File

@ -0,0 +1,25 @@
{ stdenv, fetchgit, pidgin, glib, libxml2 }:
stdenv.mkDerivation rec {
name = "purple-xmpp-upload-2017-12-31";
src = fetchgit {
url = "https://github.com/Junker/purple-xmpp-http-upload";
rev = "178096cbfc9df165c2dc1677666439969d212b37";
sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp";
};
buildInputs = [ pidgin glib libxml2 ];
installPhase = ''
install -Dm644 -t $out/lib/purple-2 jabber_http_file_upload.so
'';
meta = with stdenv.lib; {
homepage = https://github.com/Junker/purple-xmpp-http-upload;
description = "HTTP File Upload plugin for libpurple (XMPP Protocol XEP-0363)";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ emmanuelrosa ];
};
}

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, ocaml }: { stdenv, fetchurl, ocamlPackages }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "proverif-${version}"; name = "proverif-${version}";
version = "1.97pl1"; version = "2.00";
src = fetchurl { src = fetchurl {
url = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz"; url = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
sha256 = "1b0ji68crdli40a4z62gdq6fnygj3z2j63iaq4jki7wfc3nn3vgq"; sha256 = "0vjphj85ch9q39vc7sd6n4vxy5bplp017vlshk989yhfwb00r37y";
}; };
buildInputs = [ ocaml ]; buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
buildPhase = "./build"; buildPhase = "./build";
installPhase = '' installPhase = ''

View File

@ -0,0 +1,22 @@
{ stdenv, fetchurl, gmp, zlib }:
stdenv.mkDerivation rec {
version = "4.2.0";
name = "form-${version}";
# This tarball is released by author, it is not downloaded from tag, so can't use fetchFromGitHub
src = fetchurl {
url = "https://github.com/vermaseren/form/releases/download/v4.2.0/form-4.2.0.tar.gz";
sha256 = "19528aphn4hvm151lyyhd7wz0bp2s3rla8jv6s7d8jwfp5ljzysm";
};
buildInputs = [ gmp zlib ];
meta = with stdenv.lib; {
description = "The FORM project for symbolic manipulation of very big expressions";
homepage = https://www.nikhef.nl/~form/;
license = licenses.gpl3;
maintainers = [ maintainers.veprbl ];
platforms = platforms.unix;
};
}

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "simplescreenrecorder-${version}"; name = "simplescreenrecorder-${version}";
version = "0.3.10"; version = "0.3.11";
src = fetchurl { src = fetchurl {
url = "https://github.com/MaartenBaert/ssr/archive/${version}.tar.gz"; url = "https://github.com/MaartenBaert/ssr/archive/${version}.tar.gz";
sha256 = "02rl9yyx3hlz9fqvgzv7ipmvx2qahj7ws5wx2m7zs3lssq3qag3g"; sha256 = "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal";
}; };
cmakeFlags = [ "-DWITH_QT5=TRUE" ]; cmakeFlags = [ "-DWITH_QT5=TRUE" ];

View File

@ -1,6 +1,6 @@
{ fetchurl }: { fetchurl }:
fetchurl { fetchurl {
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/7988bc2977184737900cc54b2dda27af6921f5ee.tar.gz"; url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/810aa8e3848857c1158ded74a52159220119d188.tar.gz";
sha256 = "1zagnnab5z3zymniw5rrdahlxrfpnyf30iysa1lylgwlscnzfv0l"; sha256 = "1s4x3ipn2san4rvfagmczdn70rhygpwwdmz0pqvy7q4rmgxy9x1i";
} }

View File

@ -1,12 +1,12 @@
{ stdenv, fetchFromGitHub, overrideCC, gcc5 { stdenv, fetchFromGitHub, overrideCC, gcc5
, makeWrapper, unzip, which , makeWrapper, unzip, which
, curl, tzdata, gdb, darwin , curl, tzdata, gdb, darwin
, callPackage , callPackage, targetPackages
, bootstrapVersion ? false , bootstrapVersion ? false
, version ? "2.079.0" , version ? "2.079.1"
, dmdSha256 ? "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y" , dmdSha256 ? "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj"
, druntimeSha256 ? "183pqygj5w4105czs5kswyjn9mrcybx3wmkynz3in0m3ylzzjmvl" , druntimeSha256 ? "18r8gwvb54ar80j5155wx0qbqq4w56hqmbf6wap20xwijg2rw90g"
, phobosSha256 ? "0y9i86ggmf41ww2xk2bsrlsv9b1blj5dbyan6q6r6xp8dmgrd79w" , phobosSha256 ? "1x5v1ln51nr8x2vyki864160bakdyq0acmvbfv7jcipaj2w3m9bb"
}: }:
let let
@ -143,6 +143,9 @@ let
+ stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) '' + stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
substituteInPlace ${dmdPath}/root/port.c \ substituteInPlace ${dmdPath}/root/port.c \
--replace "#include <bits/mathdef.h>" "#include <complex.h>" --replace "#include <bits/mathdef.h>" "#include <complex.h>"
substituteInPlace ${dmdPath}/root/port.c \
--replace "#include <bits/nan.h>" "#include <math.h>"
'' ''
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
@ -198,6 +201,8 @@ let
extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}"; extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}";
dontStrip = true;
installPhase = '' installPhase = ''
cd dmd cd dmd
mkdir $out mkdir $out
@ -222,13 +227,13 @@ let
cp -r etc $out/include/d2 cp -r etc $out/include/d2
wrapProgram $out/bin/dmd \ wrapProgram $out/bin/dmd \
--prefix PATH ":" "${stdenv.cc}/bin" \ --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
--set-default CC "$CC" --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
cd $out/bin cd $out/bin
tee dmd.conf << EOF tee dmd.conf << EOF
[Environment] [Environment]
DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--export-dynamic"} -fPIC DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!targetPackages.stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
EOF EOF
''; '';

View File

@ -24,10 +24,6 @@
, # Whether to build dynamic libs for the standard library (on the target , # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built. # platform). Static libs are always built.
enableShared ? true enableShared ? true
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}: }:
assert !enableIntegerSimple -> gmp != null; assert !enableIntegerSimple -> gmp != null;
@ -46,14 +42,11 @@ let
}; };
buildMK = '' buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple '' '' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES Stage1Only = YES
HADDOCK_DOCS = NO HADDOCK_DOCS = NO
'' + stdenv.lib.optionalString enableRelocatedStaticLibs '' '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
@ -75,6 +68,7 @@ let
targetCC = builtins.head toolsForTarget; targetCC = builtins.head toolsForTarget;
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "7.10.3"; version = "7.10.3";
name = "${targetPrefix}ghc-${version}"; name = "${targetPrefix}ghc-${version}";
@ -93,8 +87,6 @@ stdenv.mkDerivation rec {
./relocation.patch ./relocation.patch
]; ];
postPatch = "patchShebangs .";
# GHC is a bit confused on its cross terminology. # GHC is a bit confused on its cross terminology.
preConfigure = '' preConfigure = ''
for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
@ -111,7 +103,6 @@ stdenv.mkDerivation rec {
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) '' '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@ -144,8 +135,7 @@ stdenv.mkDerivation rec {
crossConfig = true; crossConfig = true;
nativeBuildInputs = [ nativeBuildInputs = [
perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour
ghc hscolour
]; ];
# For building runtime libs # For building runtime libs

View File

@ -23,10 +23,6 @@
, # Whether to build dynamic libs for the standard library (on the target , # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built. # platform). Static libs are always built.
enableShared ? true enableShared ? true
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}: }:
assert !enableIntegerSimple -> gmp != null; assert !enableIntegerSimple -> gmp != null;
@ -40,14 +36,11 @@ let
"${targetPlatform.config}-"; "${targetPlatform.config}-";
buildMK = '' buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple '' '' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES Stage1Only = YES
HADDOCK_DOCS = NO HADDOCK_DOCS = NO
'' + stdenv.lib.optionalString enableRelocatedStaticLibs '' '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
@ -91,9 +84,8 @@ stdenv.mkDerivation rec {
extraPrefix = "libraries/Cabal/"; extraPrefix = "libraries/Cabal/";
}) })
] ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch ] ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch
++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch; ++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
postPatch = "patchShebangs .";
# GHC is a bit confused on its cross terminology. # GHC is a bit confused on its cross terminology.
preConfigure = '' preConfigure = ''
@ -111,7 +103,6 @@ stdenv.mkDerivation rec {
export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
echo -n "${buildMK}" > mk/build.mk echo -n "${buildMK}" > mk/build.mk
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
'' + stdenv.lib.optionalString (!stdenv.isDarwin) '' '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@ -143,10 +134,7 @@ stdenv.mkDerivation rec {
# masss-rebuild. # masss-rebuild.
crossConfig = true; crossConfig = true;
nativeBuildInputs = [ nativeBuildInputs = [ ghc perl hscolour sphinx ];
perl sphinx
ghc hscolour
];
# For building runtime libs # For building runtime libs
depsBuildTarget = toolsForTarget; depsBuildTarget = toolsForTarget;
@ -166,7 +154,7 @@ stdenv.mkDerivation rec {
# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition. # treat that as a unary `{x,y,z,..}` repetition.
postInstall = '' postInstall = ''
paxmark m $out/lib/${name}/bin/* paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
# Install the bash completion file. # Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc

View File

@ -23,11 +23,10 @@
, # Whether to build dynamic libs for the standard library (on the target , # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built. # platform). Static libs are always built.
enableShared ? true enableShared ?
!(targetPlatform.isDarwin
, # What flavour to build. An empty string indicates no # On iOS, dynamic linking is not supported
# specific flavour and falls back to ghc default values. && (targetPlatform.isAarch64 || targetPlatform.isAarch32))
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
, # Whether to backport https://phabricator.haskell.org/D4388 for , # Whether to backport https://phabricator.haskell.org/D4388 for
# deterministic profiling symbol names, at the cost of a slightly # deterministic profiling symbol names, at the cost of a slightly
# non-standard GHC API # non-standard GHC API
@ -45,14 +44,11 @@ let
"${targetPlatform.config}-"; "${targetPlatform.config}-";
buildMK = '' buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple '' '' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES Stage1Only = YES
HADDOCK_DOCS = NO HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO BUILD_SPHINX_HTML = NO
@ -99,7 +95,8 @@ stdenv.mkDerivation rec {
(fetchpatch { # Backport of https://phabricator.haskell.org/D4388 for more determinism (fetchpatch { # Backport of https://phabricator.haskell.org/D4388 for more determinism
url = "https://github.com/shlevy/ghc/commit/fec1b8d3555c447c0d8da0e96b659be67c8bb4bc.patch"; url = "https://github.com/shlevy/ghc/commit/fec1b8d3555c447c0d8da0e96b659be67c8bb4bc.patch";
sha256 = "1lyysz6hfd1njcigpm8xppbnkadqfs0kvrp7s8vqgb38pjswj5hg"; sha256 = "1lyysz6hfd1njcigpm8xppbnkadqfs0kvrp7s8vqgb38pjswj5hg";
}); })
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
postPatch = "patchShebangs ."; postPatch = "patchShebangs .";
@ -156,10 +153,7 @@ stdenv.mkDerivation rec {
# masss-rebuild. # masss-rebuild.
crossConfig = true; crossConfig = true;
nativeBuildInputs = [ nativeBuildInputs = [ alex autoconf autoreconfHook automake ghc happy hscolour perl python3 sphinx ];
autoconf autoreconfHook automake perl python3 sphinx
ghc alex happy hscolour
];
# For building runtime libs # For building runtime libs
depsBuildTarget = toolsForTarget; depsBuildTarget = toolsForTarget;
@ -181,7 +175,7 @@ stdenv.mkDerivation rec {
# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition. # treat that as a unary `{x,y,z,..}` repetition.
postInstall = '' postInstall = ''
paxmark m $out/lib/${name}/bin/* paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
# Install the bash completion file. # Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc

View File

@ -3,7 +3,7 @@
# build-tools # build-tools
, bootPkgs, alex, happy , bootPkgs, alex, happy
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4 , autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3
, libffi, libiconv ? null, ncurses , libffi, libiconv ? null, ncurses
@ -15,21 +15,16 @@
, # If enabled, GHC will be built with the GPL-free but slower integer-simple , # If enabled, GHC will be built with the GPL-free but slower integer-simple
# library instead of the faster but GPLed integer-gmp library. # library instead of the faster but GPLed integer-gmp library.
enableIntegerSimple ? false, gmp ? null enableIntegerSimple ? false, gmp ? null, m4
, # If enabled, use -fPIC when compiling static libs. , # If enabled, use -fPIC when compiling static libs.
enableRelocatedStaticLibs ? targetPlatform != hostPlatform enableRelocatedStaticLibs ? targetPlatform != hostPlatform
, # Whether to build dynamic libs for the standard library (on the target , # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built. # platform). Static libs are always built.
enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt enableShared ? !targetPlatform.useAndroidPrebuilt
, # Whetherto build terminfo. , version ? "8.4.2"
enableTerminfo ? !targetPlatform.isWindows
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}: }:
assert !enableIntegerSimple -> gmp != null; assert !enableIntegerSimple -> gmp != null;
@ -43,14 +38,11 @@ let
"${targetPlatform.config}-"; "${targetPlatform.config}-";
buildMK = '' buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple '' '' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES Stage1Only = YES
HADDOCK_DOCS = NO HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO BUILD_SPHINX_HTML = NO
@ -63,9 +55,9 @@ let
''; '';
# Splicer will pull out correct variations # Splicer will pull out correct variations
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
toolsForTarget = toolsForTarget =
if hostPlatform == buildPlatform then if hostPlatform == buildPlatform then
@ -77,7 +69,7 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "8.4.2"; inherit version;
name = "${targetPrefix}ghc-${version}"; name = "${targetPrefix}ghc-${version}";
src = fetchurl { src = fetchurl {
@ -94,7 +86,8 @@ stdenv.mkDerivation rec {
sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3"; sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
extraPrefix = "utils/hsc2hs/"; extraPrefix = "utils/hsc2hs/";
stripLen = 1; stripLen = 1;
})]; })]
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
postPatch = "patchShebangs ."; postPatch = "patchShebangs .";
@ -133,7 +126,7 @@ stdenv.mkDerivation rec {
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [ ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [
"--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib" "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
"--enable-bootstrap-with-devel-snapshot" "--enable-bootstrap-with-devel-snapshot"
@ -151,10 +144,7 @@ stdenv.mkDerivation rec {
# masss-rebuild. # masss-rebuild.
crossConfig = true; crossConfig = true;
nativeBuildInputs = [ nativeBuildInputs = [ ghc perl autoconf automake m4 happy alex python3 ];
perl autoconf automake m4 python3
ghc alex happy
];
# For building runtime libs # For building runtime libs
depsBuildTarget = toolsForTarget; depsBuildTarget = toolsForTarget;
@ -176,7 +166,7 @@ stdenv.mkDerivation rec {
# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition. # treat that as a unary `{x,y,z,..}` repetition.
postInstall = '' postInstall = ''
paxmark m $out/lib/${name}/bin/* paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
# Install the bash completion file. # Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc

View File

@ -0,0 +1,24 @@
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index acd0d61..3e83c15 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -1916,6 +1916,7 @@ linkBinary' staticLink dflags o_files dep_packages = do
++ pkg_framework_opts
++ debug_opts
++ thread_opts
+ ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs" ] else [])
))
exeFileName :: Bool -> DynFlags -> FilePath
diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs
index 1ab5b13..2ebbf51 100644
--- a/compiler/main/SysTools.hs
+++ b/compiler/main/SysTools.hs
@@ -1737,6 +1737,7 @@ linkDynLib dflags0 o_files dep_packages
++ map Option pkg_lib_path_opts
++ map Option pkg_link_opts
++ map Option pkg_framework_opts
+ ++ [ Option "-Wl,-dead_strip_dylibs" ]
)
OSiOS -> throwGhcExceptionIO (ProgramError "dynamic libraries are not supported on iOS target")
_ -> do

View File

@ -3,7 +3,7 @@
# build-tools # build-tools
, bootPkgs, alex, happy , bootPkgs, alex, happy
, autoconf, automake, coreutils, fetchgit, perl, python3, m4 , autoconf, automake, coreutils, fetchgit, perl, python3
, libffi, libiconv ? null, ncurses , libffi, libiconv ? null, ncurses
@ -22,15 +22,9 @@
, # Whether to build dynamic libs for the standard library (on the target , # Whether to build dynamic libs for the standard library (on the target
# platform). Static libs are always built. # platform). Static libs are always built.
enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt enableShared ? !targetPlatform.useAndroidPrebuilt
, # Whetherto build terminfo.
enableTerminfo ? !targetPlatform.isWindows
, version ? "8.5.20180118" , version ? "8.5.20180118"
, # What flavour to build. An empty string indicates no
# specific flavour and falls back to ghc default values.
ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
}: }:
assert !enableIntegerSimple -> gmp != null; assert !enableIntegerSimple -> gmp != null;
@ -44,14 +38,11 @@ let
"${targetPlatform.config}-"; "${targetPlatform.config}-";
buildMK = '' buildMK = ''
BuildFlavour = ${ghcFlavour}
ifneq \"\$(BuildFlavour)\" \"\"
include mk/flavours/\$(BuildFlavour).mk
endif
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
'' + stdenv.lib.optionalString enableIntegerSimple '' '' + stdenv.lib.optionalString enableIntegerSimple ''
INTEGER_LIBRARY = integer-simple INTEGER_LIBRARY = integer-simple
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
BuildFlavour = perf-cross
Stage1Only = YES Stage1Only = YES
HADDOCK_DOCS = NO HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO BUILD_SPHINX_HTML = NO
@ -64,9 +55,9 @@ let
''; '';
# Splicer will pull out correct variations # Splicer will pull out correct variations
libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] libDeps = platform: [ ncurses ]
++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (!enableIntegerSimple) gmp
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; ++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
toolsForTarget = toolsForTarget =
if hostPlatform == buildPlatform then if hostPlatform == buildPlatform then
@ -132,7 +123,7 @@ stdenv.mkDerivation rec {
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [ ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [
"--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib" "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
"--enable-bootstrap-with-devel-snapshot" "--enable-bootstrap-with-devel-snapshot"
@ -150,10 +141,7 @@ stdenv.mkDerivation rec {
# masss-rebuild. # masss-rebuild.
crossConfig = true; crossConfig = true;
nativeBuildInputs = [ nativeBuildInputs = [ ghc perl autoconf automake happy alex python3 ];
perl autoconf automake m4 python3
ghc alex happy
];
# For building runtime libs # For building runtime libs
depsBuildTarget = toolsForTarget; depsBuildTarget = toolsForTarget;
@ -175,7 +163,7 @@ stdenv.mkDerivation rec {
# zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
# treat that as a unary `{x,y,z,..}` repetition. # treat that as a unary `{x,y,z,..}` repetition.
postInstall = '' postInstall = ''
paxmark m $out/lib/${name}/bin/* paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
# Install the bash completion file. # Install the bash completion file.
install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc

View File

@ -1,4 +1,4 @@
{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages, clangWrapSelf, {stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages,
testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents
}: }:

View File

@ -1,6 +1,6 @@
{ stdenv, fetchgit, fetchurl, cmake, llvm, curl, tzdata { stdenv, fetchgit, fetchurl, cmake, llvm, curl, tzdata
, python, libconfig, lit, gdb, unzip, darwin, bash , python, libconfig, lit, gdb, unzip, darwin, bash
, callPackage , callPackage, makeWrapper, targetPackages
, bootstrapVersion ? false , bootstrapVersion ? false
, version ? "1.8.0" , version ? "1.8.0"
, ldcSha256 ? "0zswjlibj8zcdj06nn09jjhbd99chsa5f4kps8xifzgrpgsa28g4" , ldcSha256 ? "0zswjlibj8zcdj06nn09jjhbd99chsa5f4kps8xifzgrpgsa28g4"
@ -124,7 +124,7 @@ let
--replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\"" --replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
''; '';
nativeBuildInputs = [ cmake llvm bootstrapLdc python lit gdb unzip ] nativeBuildInputs = [ cmake makeWrapper llvm bootstrapLdc python lit gdb unzip ]
++ stdenv.lib.optional (bootstrapVersion) [ ++ stdenv.lib.optional (bootstrapVersion) [
libconfig libconfig
@ -135,7 +135,7 @@ let
]); ]);
buildInputs = [ curl tzdata stdenv.cc ]; buildInputs = [ curl tzdata ];
preConfigure = '' preConfigure = ''
cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc" cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
@ -158,14 +158,20 @@ let
doCheck = true; doCheck = true;
checkPhase = '' checkPhase = ''
# Build and run LDC D unittests. # Build and run LDC D unittests.
ctest --output-on-failure -R "ldc2-unittest" ctest --output-on-failure -R "ldc2-unittest"
# Run LIT testsuite. # Run LIT testsuite.
ctest -V -R "lit-tests" ctest -V -R "lit-tests"
# Run DMD testsuite. # Run DMD testsuite.
DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite" DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite"
''; '';
postInstall = ''
wrapProgram $out/bin/ldc2 \
--prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
--set-default CC "${targetPackages.stdenv.cc}/bin/cc"
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "The LLVM-based D compiler"; description = "The LLVM-based D compiler";
homepage = https://github.com/ldc-developers/ldc; homepage = https://github.com/ldc-developers/ldc;

View File

@ -1,5 +1,7 @@
{ newScope, stdenv, libstdcxxHook, cmake, libxml2, python2, isl, fetchurl { newScope, stdenv, libstdcxxHook, cmake, libxml2, python2, isl, fetchurl
, overrideCC, wrapCC, ccWrapperFun, darwin , overrideCC, wrapCCWith, darwin
, buildLlvmPackages # ourself, but from the previous stage, for cross
, targetLlvmPackages # ourself, but from the next stage, for cross
}: }:
let let
@ -27,18 +29,14 @@ let
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ libstdcxxHook ]; extraPackages = [ libstdcxxHook ];
}; };
libcxxClang = ccWrapperFun { libcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */ extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ self.libcxx self.libcxxabi ];
}; };
stdenv = stdenv.override (drv: { stdenv = stdenv.override (drv: {
@ -48,7 +46,7 @@ let
libcxxStdenv = stdenv.override (drv: { libcxxStdenv = stdenv.override (drv: {
allowedRequisites = null; allowedRequisites = null;
cc = self.libcxxClang; cc = buildLlvmPackages.libcxxClang;
}); });
lldb = callPackage ./lldb.nix {}; lldb = callPackage ./lldb.nix {};

View File

@ -1,4 +1,8 @@
{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun, darwin }: { newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCCWith, darwin
, buildLlvmPackages # ourself, but from the previous stage, for cross
, targetLlvmPackages # ourself, but from the next stage, for cross
}:
let let
callPackage = newScope (self // { inherit stdenv isl version fetch; }); callPackage = newScope (self // { inherit stdenv isl version fetch; });
@ -26,18 +30,14 @@ let
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ libstdcxxHook ]; extraPackages = [ libstdcxxHook ];
}; };
libcxxClang = ccWrapperFun { libcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */ extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ self.libcxx self.libcxxabi ];
}; };
stdenv = stdenv.override (drv: { stdenv = stdenv.override (drv: {
@ -47,7 +47,7 @@ let
libcxxStdenv = stdenv.override (drv: { libcxxStdenv = stdenv.override (drv: {
allowedRequisites = null; allowedRequisites = null;
cc = self.libcxxClang; cc = buildLlvmPackages.libcxxClang;
}); });
lldb = callPackage ./lldb.nix {}; lldb = callPackage ./lldb.nix {};

View File

@ -1,4 +1,8 @@
{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun, darwin }: { newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCCWith, darwin
, buildLlvmPackages # ourself, but from the previous stage, for cross
, targetLlvmPackages # ourself, but from the next stage, for cross
}:
let let
callPackage = newScope (self // { inherit stdenv isl version fetch; }); callPackage = newScope (self // { inherit stdenv isl version fetch; });
@ -26,18 +30,14 @@ let
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ libstdcxxHook ]; extraPackages = [ libstdcxxHook ];
}; };
libcxxClang = ccWrapperFun { libcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */ extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ self.libcxx self.libcxxabi ];
}; };
stdenv = stdenv.override (drv: { stdenv = stdenv.override (drv: {
@ -47,7 +47,7 @@ let
libcxxStdenv = stdenv.override (drv: { libcxxStdenv = stdenv.override (drv: {
allowedRequisites = null; allowedRequisites = null;
cc = self.libcxxClang; cc = buildLlvmPackages.libcxxClang;
}); });
lldb = callPackage ./lldb.nix {}; lldb = callPackage ./lldb.nix {};

View File

@ -1,6 +1,8 @@
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook { lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun , libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
, darwin , darwin
, buildLlvmPackages # ourself, but from the previous stage, for cross
, targetLlvmPackages # ourself, but from the next stage, for cross
}: }:
let let
@ -40,18 +42,14 @@ let
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ libstdcxxHook ]; extraPackages = [ libstdcxxHook ];
}; };
libcxxClang = ccWrapperFun { libcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */ extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ self.libcxx self.libcxxabi ];
}; };
stdenv = stdenv.override (drv: { stdenv = stdenv.override (drv: {
@ -61,7 +59,7 @@ let
libcxxStdenv = stdenv.override (drv: { libcxxStdenv = stdenv.override (drv: {
allowedRequisites = null; allowedRequisites = null;
cc = self.libcxxClang; cc = buildLlvmPackages.libcxxClang;
}); });
lld = callPackage ./lld.nix {}; lld = callPackage ./lld.nix {};

View File

@ -1,6 +1,8 @@
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook { lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun , libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
, darwin , darwin
, buildLlvmPackages # ourself, but from the previous stage, for cross
, targetLlvmPackages # ourself, but from the next stage, for cross
}: }:
let let
@ -40,18 +42,14 @@ let
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ libstdcxxHook ]; extraPackages = [ libstdcxxHook ];
}; };
libcxxClang = ccWrapperFun { libcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */ extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ self.libcxx self.libcxxabi ];
}; };
stdenv = stdenv.override (drv: { stdenv = stdenv.override (drv: {
@ -61,7 +59,7 @@ let
libcxxStdenv = stdenv.override (drv: { libcxxStdenv = stdenv.override (drv: {
allowedRequisites = null; allowedRequisites = null;
cc = self.libcxxClang; cc = buildLlvmPackages.libcxxClang;
}); });
lld = callPackage ./lld.nix {}; lld = callPackage ./lld.nix {};

View File

@ -1,6 +1,8 @@
{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook { lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun , libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
, darwin , darwin
, buildLlvmPackages # ourself, but from the previous stage, for cross
, targetLlvmPackages # ourself, but from the next stage, for cross
}: }:
let let
@ -40,18 +42,14 @@ let
clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang; clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
libstdcxxClang = ccWrapperFun { libstdcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ libstdcxxHook ]; extraPackages = [ libstdcxxHook ];
}; };
libcxxClang = ccWrapperFun { libcxxClang = wrapCCWith {
cc = self.clang-unwrapped; cc = self.clang-unwrapped;
/* FIXME is this right? */ extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
extraPackages = [ self.libcxx self.libcxxabi ];
}; };
stdenv = stdenv.override (drv: { stdenv = stdenv.override (drv: {
@ -61,7 +59,7 @@ let
libcxxStdenv = stdenv.override (drv: { libcxxStdenv = stdenv.override (drv: {
allowedRequisites = null; allowedRequisites = null;
cc = self.libcxxClang; cc = buildLlvmPackages.libcxxClang;
}); });
lld = callPackage ./lld.nix {}; lld = callPackage ./lld.nix {};

View File

@ -1,10 +1,12 @@
{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt, autoconf, graphviz { stdenv, lib, fetchurl, pkgconfig, flex, bison, libxslt, autoconf, graphviz
, glib, libiconv, libintl, libtool, expat , glib, libiconv, libintl, libtool, expat
}: }:
let let
generic = { major, minor, sha256, extraNativeBuildInputs ? [], extraBuildInputs ? [] }: generic = { major, minor, sha256, extraNativeBuildInputs ? [], extraBuildInputs ? [] }:
stdenv.mkDerivation rec { let
atLeast = lib.versionAtLeast "${major}.${minor}";
in stdenv.mkDerivation rec {
name = "vala-${major}.${minor}"; name = "vala-${major}.${minor}";
src = fetchurl { src = fetchurl {
@ -14,9 +16,15 @@ let
outputs = [ "out" "devdoc" ]; outputs = [ "out" "devdoc" ];
nativeBuildInputs = [ pkgconfig flex bison libxslt ] ++ extraNativeBuildInputs; nativeBuildInputs = [
pkgconfig flex bison libxslt
] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat
++ extraNativeBuildInputs;
buildInputs = [ glib libiconv libintl ] ++ extraBuildInputs; buildInputs = [
glib libiconv libintl
] ++ lib.optional (atLeast "0.38") graphviz
++ extraBuildInputs;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Compiler for GObject type system"; description = "Compiler for GObject type system";
@ -29,12 +37,6 @@ let
in rec { in rec {
vala_0_23 = generic {
major = "0.23";
minor = "3";
sha256 = "101xjbc818g4849n9a80c2aai13zakj7mpnd7470xnkvz5jwqq96";
};
vala_0_26 = generic { vala_0_26 = generic {
major = "0.26"; major = "0.26";
minor = "2"; minor = "2";
@ -61,24 +63,21 @@ in rec {
vala_0_36 = generic { vala_0_36 = generic {
major = "0.36"; major = "0.36";
minor = "12"; minor = "13";
sha256 = "1nvw721piwdh15bipg0sdll9kvgpz0y9i5fpszlc7y9w64yis25l"; sha256 = "0gxz7yisd9vh5d2889p60knaifz5zndgj98zkdfkkaykdfdq4m9k";
}; };
vala_0_38 = generic { vala_0_38 = generic {
major = "0.38"; major = "0.38";
minor = "4"; minor = "9";
sha256 = "1sg5gaq3jhgr9vzh2ypiw475167k150wmyglymr7wwqppmikmcrc"; sha256 = "1dh1qacfsc1nr6hxwhn9lqmhnq39rv8gxbapdmj1v65zs96j3fn3";
extraNativeBuildInputs = [ autoconf ] ++ stdenv.lib.optionals stdenv.isDarwin [ libtool expat ]; extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool;
extraBuildInputs = [ graphviz ];
}; };
vala_0_40 = generic { vala_0_40 = generic {
major = "0.40"; major = "0.40";
minor = "0"; minor = "6";
sha256 = "0wcfljl55a9qvslfcc4sf76wdpwgn83n96b7fgb7r49ib35qz20m"; sha256 = "1qjbwhifwwqbdg5zilvnwm4n76g8p7jwqs3fa0biw3rylzqm193d";
extraNativeBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ expat ];
extraBuildInputs = [ graphviz ];
}; };
vala = vala_0_38; vala = vala_0_38;

View File

@ -0,0 +1,30 @@
{ stdenv, fetchzip, coq, ssreflect, stdpp }:
stdenv.mkDerivation rec {
version = "3.1.0";
name = "coq${coq.coq-version}-iris-${version}";
src = fetchzip {
url = "https://gitlab.mpi-sws.org/FP/iris-coq/-/archive/iris-${version}/iris-coq-iris-${version}.tar.gz";
sha256 = "0ipdb061jj205avxifshxkpyxxqykigmlxk2n5nvxj62gs3rl5j1";
};
buildInputs = [ coq ];
propagatedBuildInputs = [ ssreflect stdpp ];
enableParallelBuilding = true;
installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
meta = {
homepage = "https://gitlab.mpi-sws.org/FP/iris-coq";
description = "The Coq development of the Iris Project";
inherit (coq.meta) platforms;
license = stdenv.lib.licenses.bsd3;
maintainers = [ stdenv.lib.maintainers.vbgl ];
};
passthru = {
compatibleCoqVersions = v: stdenv.lib.versionAtLeast v "8.6";
};
}

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, coq }: { stdenv, fetchurl, coq }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "20171206"; version = "20180316";
name = "coq${coq.coq-version}-tlc-${version}"; name = "coq${coq.coq-version}-tlc-${version}";
src = fetchurl { src = fetchurl {
url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz"; url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
sha256 = "1wc44qb5zmarafp56gdrbka8gllipqna9cj0a6d99jzb361xg4mf"; sha256 = "0y8h0x9dfn9dm60j1jkxr9i8lbfqd3ff626wrc9v49qxhi50szqq";
}; };
buildInputs = [ coq ]; buildInputs = [ coq ];

View File

@ -448,4 +448,6 @@ self: super: {
sha256 = "1bpsqq80h6nxm04wddgcgyzn0fjfsmhccmqb211jqswv5209znx8"; sha256 = "1bpsqq80h6nxm04wddgcgyzn0fjfsmhccmqb211jqswv5209znx8";
}); });
lambdabot-core = appendPatch super.lambdabot-core ./patches/lambdabot-core-ghc-8.4.x-fix.patch;
} }

View File

@ -2418,6 +2418,7 @@ extra-packages:
- haddock-library == 1.2.* # required for haddock-api-2.16.x - haddock-library == 1.2.* # required for haddock-api-2.16.x
- haddock-library == 1.4.3 # required for haddock-api-2.17.x - haddock-library == 1.4.3 # required for haddock-api-2.17.x
- haddock-library == 1.4.4 # required for haddock-api-2.18.x - haddock-library == 1.4.4 # required for haddock-api-2.18.x
- haddock-library == 1.5.* # required for stylish-cabal-0.4.0.1
- happy <1.19.6 # newer versions break Agda - happy <1.19.6 # newer versions break Agda
- haskell-gi-overloading == 0.0 # gi-* packages use this dependency to disable overloading support - haskell-gi-overloading == 0.0 # gi-* packages use this dependency to disable overloading support
- haskell-src-exts == 1.19.* # required by hindent and structured-haskell-mode - haskell-src-exts == 1.19.* # required by hindent and structured-haskell-mode

View File

@ -128,7 +128,7 @@ self: super: builtins.intersectAttrs super {
# Prevents needing to add security_tool as a build tool to all of x509-system's # Prevents needing to add security_tool as a build tool to all of x509-system's
# dependencies. # dependencies.
x509-system = if pkgs.stdenv.targetPlatform.isDarwin && !pkgs.stdenv.cc.nativeLibc x509-system = if pkgs.stdenv.isDarwin && !pkgs.stdenv.cc.nativeLibc
then let inherit (pkgs.darwin) security_tool; then let inherit (pkgs.darwin) security_tool;
in pkgs.lib.overrideDerivation (addBuildDepend super.x509-system security_tool) (drv: { in pkgs.lib.overrideDerivation (addBuildDepend super.x509-system security_tool) (drv: {
postPatch = (drv.postPatch or "") + '' postPatch = (drv.postPatch or "") + ''

View File

@ -19,7 +19,6 @@ in
, buildTarget ? "" , buildTarget ? ""
, buildTools ? [], libraryToolDepends ? [], executableToolDepends ? [], testToolDepends ? [], benchmarkToolDepends ? [] , buildTools ? [], libraryToolDepends ? [], executableToolDepends ? [], testToolDepends ? [], benchmarkToolDepends ? []
, configureFlags ? [] , configureFlags ? []
, buildFlags ? []
, description ? "" , description ? ""
, doCheck ? !isCross && (stdenv.lib.versionOlder "7.4" ghc.version) , doCheck ? !isCross && (stdenv.lib.versionOlder "7.4" ghc.version)
, doBenchmark ? false , doBenchmark ? false
@ -32,7 +31,7 @@ in
, enableSharedExecutables ? false , enableSharedExecutables ? false
, enableSharedLibraries ? ((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version) , enableSharedLibraries ? ((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version)
, enableDeadCodeElimination ? (!stdenv.isDarwin) # TODO: use -dead_strip for darwin , enableDeadCodeElimination ? (!stdenv.isDarwin) # TODO: use -dead_strip for darwin
, enableStaticLibraries ? !hostPlatform.isWindows , enableStaticLibraries ? true
, enableHsc2hsViaAsm ? hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4" , enableHsc2hsViaAsm ? hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4"
, extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? [] , extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? []
, homepage ? "http://hackage.haskell.org/package/${pname}" , homepage ? "http://hackage.haskell.org/package/${pname}"
@ -69,10 +68,6 @@ in
assert editedCabalFile != null -> revision != null; assert editedCabalFile != null -> revision != null;
# --enable-static does not work on windows. This is a bug in GHC.
# --enable-static will pass -staticlib to ghc, which only works for mach-o and elf.
assert hostPlatform.isWindows -> enableStaticLibraries == false;
let let
inherit (stdenv.lib) optional optionals optionalString versionOlder versionAtLeast inherit (stdenv.lib) optional optionals optionalString versionOlder versionAtLeast
@ -131,8 +126,6 @@ let
crossCabalFlagsString = crossCabalFlagsString =
stdenv.lib.optionalString isCross (" " + stdenv.lib.concatStringsSep " " crossCabalFlags); stdenv.lib.optionalString isCross (" " + stdenv.lib.concatStringsSep " " crossCabalFlags);
buildFlagsString = optionalString (buildFlags != []) (" " + concatStringsSep " " buildFlags);
defaultConfigureFlags = [ defaultConfigureFlags = [
"--verbose" "--prefix=$out" "--libdir=\\$prefix/lib/\\$compiler" "--libsubdir=\\$pkgid" "--verbose" "--prefix=$out" "--libdir=\\$prefix/lib/\\$compiler" "--libsubdir=\\$pkgid"
(optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}") (optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
@ -176,22 +169,18 @@ let
optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends; optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends;
nativeBuildInputs = [ ghc nativeGhc removeReferencesTo ] ++ optional (allPkgconfigDepends != []) pkgconfig ++ nativeBuildInputs = [ ghc nativeGhc removeReferencesTo ] ++ optional (allPkgconfigDepends != []) pkgconfig ++
setupHaskellDepends ++
buildTools ++ libraryToolDepends ++ executableToolDepends; buildTools ++ libraryToolDepends ++ executableToolDepends;
propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends; propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends;
otherBuildInputs = extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++ otherBuildInputs = setupHaskellDepends ++ extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++
optionals (allPkgconfigDepends != []) allPkgconfigDepends ++ optionals (allPkgconfigDepends != []) allPkgconfigDepends ++
optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testToolDepends) ++ optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testToolDepends) ++
optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends); optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends);
allBuildInputs = propagatedBuildInputs ++ otherBuildInputs; allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
haskellBuildInputs = stdenv.lib.filter isHaskellPkg allBuildInputs; haskellBuildInputs = stdenv.lib.filter isHaskellPkg allBuildInputs;
systemBuildInputs = stdenv.lib.filter isSystemPkg allBuildInputs; systemBuildInputs = stdenv.lib.filter isSystemPkg allBuildInputs;
# When not cross compiling, also include Setup.hs dependencies. ghcEnv = ghc.withPackages (p: haskellBuildInputs);
ghcEnv = ghc.withPackages (p:
haskellBuildInputs ++ stdenv.lib.optional (!isCross) setupHaskellDepends);
setupCommand = "./Setup"; setupCommand = "./Setup";
@ -201,22 +190,6 @@ let
nativeGhcCommand = "${nativeGhc.targetPrefix}ghc"; nativeGhcCommand = "${nativeGhc.targetPrefix}ghc";
buildPkgDb = ghcName: ''
if [ -d "$p/lib/${ghcName}/package.conf.d" ]; then
cp -f "$p/lib/${ghcName}/package.conf.d/"*.conf $packageConfDir/
continue
fi
if [ -d "$p/include" ]; then
configureFlags+=" --extra-include-dirs=$p/include"
fi
if [ -d "$p/lib" ]; then
configureFlags+=" --extra-lib-dirs=$p/lib"
fi
if [[ -d "$p/Library/Frameworks" ]]; then
configureFlags+=" --extra-framework-dirs=$p/Library/Frameworks"
fi
'';
in in
assert allPkgconfigDepends != [] -> pkgconfig != null; assert allPkgconfigDepends != [] -> pkgconfig != null;
@ -257,37 +230,30 @@ stdenv.mkDerivation ({
echo "Build with ${ghc}." echo "Build with ${ghc}."
${optionalString (hasActiveLibrary && hyperlinkSource) "export PATH=${hscolour}/bin:$PATH"} ${optionalString (hasActiveLibrary && hyperlinkSource) "export PATH=${hscolour}/bin:$PATH"}
'' + (optionalString (setupHaskellDepends != []) ''
setupPackageConfDir="$TMPDIR/setup-package.conf.d"
mkdir -p $setupPackageConfDir
'') + ''
packageConfDir="$TMPDIR/package.conf.d" packageConfDir="$TMPDIR/package.conf.d"
mkdir -p $packageConfDir mkdir -p $packageConfDir
setupCompileFlags="${concatStringsSep " " setupCompileFlags}" setupCompileFlags="${concatStringsSep " " setupCompileFlags}"
configureFlags="${concatStringsSep " " defaultConfigureFlags} $configureFlags" configureFlags="${concatStringsSep " " defaultConfigureFlags} $configureFlags"
''
# We build the Setup.hs on the *build* machine, and as such should only add
# dependencies for the build machine.
#
# pkgs* arrays defined in stdenv/setup.hs
+ (optionalString (setupHaskellDepends != []) ''
for p in "''${pkgsBuildBuild[@]}" "''${pkgsBuildHost[@]}" "''${pkgsBuildTarget[@]}"; do
${buildPkgDb nativeGhc.name}
done
${nativeGhcCommand}-pkg --${nativePackageDbFlag}="$setupPackageConfDir" recache
'')
# For normal components # host.*Pkgs defined in stdenv/setup.hs
+ ''
for p in "''${pkgsHostHost[@]}" "''${pkgsHostTarget[@]}"; do for p in "''${pkgsHostHost[@]}" "''${pkgsHostTarget[@]}"; do
${buildPkgDb ghc.name} if [ -d "$p/lib/${ghc.name}/package.conf.d" ]; then
cp -f "$p/lib/${ghc.name}/package.conf.d/"*.conf $packageConfDir/
continue
fi
if [ -d "$p/include" ]; then
configureFlags+=" --extra-include-dirs=$p/include"
fi
if [ -d "$p/lib" ]; then
configureFlags+=" --extra-lib-dirs=$p/lib"
fi
done done
'' ''
# only use the links hack if we're actually building dylibs. otherwise, the # only use the links hack if we're actually building dylibs. otherwise, the
# "dynamic-library-dirs" point to nonexistent paths, and the ln command becomes # "dynamic-library-dirs" point to nonexistent paths, and the ln command becomes
# "ln -s $out/lib/links", which tries to recreate the links dir and fails # "ln -s $out/lib/links", which tries to recreate the links dir and fails
+ (optionalString (stdenv.isDarwin && (enableSharedLibraries || enableSharedExecutables)) '' + (optionalString (stdenv.isDarwin && enableSharedLibraries) ''
# Work around a limit in the macOS Sierra linker on the number of paths # Work around a limit in the macOS Sierra linker on the number of paths
# referenced by any one dynamic library: # referenced by any one dynamic library:
# #
@ -316,11 +282,7 @@ stdenv.mkDerivation ({
done done
echo setupCompileFlags: $setupCompileFlags echo setupCompileFlags: $setupCompileFlags
${optionalString (setupHaskellDepends != []) ${nativeGhcCommand} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
''
echo GHC_PACKAGE_PATH="$setupPackageConfDir:"
GHC_PACKAGE_PATH="$setupPackageConfDir:" ''
}${nativeGhcCommand} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
runHook postCompileBuildDriver runHook postCompileBuildDriver
''; '';
@ -348,7 +310,7 @@ stdenv.mkDerivation ({
buildPhase = '' buildPhase = ''
runHook preBuild runHook preBuild
${setupCommand} build ${buildTarget}${crossCabalFlagsString}${buildFlagsString} ${setupCommand} build ${buildTarget}${crossCabalFlagsString}
runHook postBuild runHook postBuild
''; '';

File diff suppressed because it is too large Load Diff

View File

@ -131,8 +131,6 @@ rec {
*/ */
appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; }); appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; });
appendBuildFlag = drv: x: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ [x]; });
appendBuildFlags = drv: xs: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ xs; });
/* removeConfigureFlag drv x is a Haskell package like drv, but with /* removeConfigureFlag drv x is a Haskell package like drv, but with
all cabal configure arguments that are equal to x removed. all cabal configure arguments that are equal to x removed.
@ -299,8 +297,11 @@ rec {
# This is useful to build environments for developing on that # This is useful to build environments for developing on that
# package. # package.
getHaskellBuildInputs = p: getHaskellBuildInputs = p:
(p.override { mkDerivation = extractBuildInputs p.compiler; (overrideCabal p (args: {
}).haskellBuildInputs; passthru = (args.passthru or {}) // {
_getHaskellBuildInputs = extractBuildInputs p.compiler args;
};
}))._getHaskellBuildInputs;
# Under normal evaluation, simply return the original package. Under # Under normal evaluation, simply return the original package. Under
# nix-shell evaluation, return a nix-shell optimized environment. # nix-shell evaluation, return a nix-shell optimized environment.

View File

@ -38,7 +38,7 @@ let
inherit (stdenv) buildPlatform hostPlatform; inherit (stdenv) buildPlatform hostPlatform;
inherit (stdenv.lib) fix' extends makeOverridable; inherit (stdenv.lib) fix' extends makeOverridable;
inherit (haskellLib) overrideCabal; inherit (haskellLib) overrideCabal getHaskellBuildInputs;
mkDerivationImpl = pkgs.callPackage ./generic-builder.nix { mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
inherit stdenv; inherit stdenv;
@ -238,7 +238,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
shellFor = { packages, withHoogle ? false, ... } @ args: shellFor = { packages, withHoogle ? false, ... } @ args:
let let
selected = packages self; selected = packages self;
packageInputs = builtins.map (p: p.override { mkDerivation = haskellLib.extractBuildInputs p.compiler; }) selected; packageInputs = builtins.map getHaskellBuildInputs selected;
haskellInputs = haskellInputs =
builtins.filter builtins.filter
(input: pkgs.lib.all (p: input.outPath != p.outPath) selected) (input: pkgs.lib.all (p: input.outPath != p.outPath) selected)

View File

@ -0,0 +1,15 @@
index 60e134c..246d8ca 100644
--- lambdabot-core/src/Lambdabot/Config.hs
+++ lambdabot-core/src/Lambdabot/Config.hs
@@ -29,9 +29,9 @@ import Data.Typeable
import Data.Generics (everywhere, mkT)
import Language.Haskell.TH
-data Config t where Config :: (Typeable1 k, GCompare k) => !(k t) -> t -> (t -> t -> t) -> Config t
+data Config t where Config :: (Typeable k, GCompare k) => !(k t) -> t -> (t -> t -> t) -> Config t
-cast1 :: (Typeable1 f, Typeable1 g) => f a -> Maybe (g a)
+cast1 :: (Typeable f, Typeable g) => f a -> Maybe (g a)
cast1 = fmap runIdentity . gcast1 . Identity
instance GEq Config where

View File

@ -1,4 +1,5 @@
{ stdenv, fetchurl, pkgconfig, gnused_422, perl, python2, zip, libffi, readline, icu, zlib, nspr }: { stdenv, fetchurl, pkgconfig, gnused_422, perl, python2, zip, libffi, readline, icu, zlib, nspr
, libobjc }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "38.2.1.rc0"; version = "38.2.1.rc0";
@ -13,7 +14,8 @@ stdenv.mkDerivation rec {
sha256 = "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681"; sha256 = "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681";
}; };
buildInputs = [ libffi readline icu zlib nspr ]; buildInputs = [ libffi readline icu zlib nspr ]
++ stdenv.lib.optional stdenv.isDarwin libobjc;
nativeBuildInputs = [ pkgconfig perl python2 zip gnused_422 ]; nativeBuildInputs = [ pkgconfig perl python2 zip gnused_422 ];
postUnpack = "sourceRoot=\${sourceRoot}/js/src"; postUnpack = "sourceRoot=\${sourceRoot}/js/src";
@ -57,6 +59,6 @@ stdenv.mkDerivation rec {
# TODO: MPL/GPL/LGPL tri-license. # TODO: MPL/GPL/LGPL tri-license.
maintainers = [ maintainers.abbradar ]; maintainers = [ maintainers.abbradar ];
platforms = platforms.linux; platforms = platforms.unix;
}; };
} }

View File

@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
description = "Simple and robust network communication layer on top of UDP"; description = "Simple and robust network communication layer on top of UDP";
license = stdenv.lib.licenses.mit; license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ]; maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.unix;
}; };
} }

View File

@ -3,13 +3,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "folly-${version}"; name = "folly-${version}";
version = "2018.04.23.00"; version = "2018.05.21.00";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "facebook"; owner = "facebook";
repo = "folly"; repo = "folly";
rev = "v${version}"; rev = "v${version}";
sha256 = "0wfp4pxi71bi3bz3h5jxsvdd5wa8q6wqdgsx0jvyvaiiy7v884sv"; sha256 = "0x8qa0g0rj4bmy5cra7f0ch0srq34d8d04f1c59q93xd6ggkr52w";
}; };
nativeBuildInputs = [ autoreconfHook python pkgconfig ]; nativeBuildInputs = [ autoreconfHook python pkgconfig ];

View File

@ -17,11 +17,11 @@ let inherit (stdenv.lib) optional; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nghttp2-${version}"; name = "nghttp2-${version}";
version = "1.24.0"; version = "1.32.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2"; url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2";
sha256 = "18ys6p39yvm9wjjzhhlw35c9m8f5gf4dk9jbshibj19q4js1pnv9"; sha256 = "0jlndbp4bnyvdg8b59pznrzz0bvwb9nmag7zgcflg51lm1pq2q06";
}; };
outputs = [ "bin" "out" "dev" "lib" ]; outputs = [ "bin" "out" "dev" "lib" ];

View File

@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
description = "A set of cuda-enabled texture tools and compressors"; description = "A set of cuda-enabled texture tools and compressors";
homepage = https://github.com/castano/nvidia-texture-tools; homepage = https://github.com/castano/nvidia-texture-tools;
license = licenses.mit; license = licenses.mit;
platforms = platforms.linux; platforms = platforms.unix;
}; };
} }

View File

@ -1,9 +1,7 @@
{ stdenv, requireFile, glibc, patchelf, rpmextract, libaio, makeWrapper, odbcSupport ? false, unixODBC }: { stdenv, requireFile, autoPatchelfHook, rpmextract, libaio, makeWrapper, odbcSupport ? false, unixODBC }:
assert odbcSupport -> unixODBC != null; assert odbcSupport -> unixODBC != null;
with stdenv.lib;
let let
baseVersion = "12.2"; baseVersion = "12.2";
requireSource = version: rel: part: hash: (requireFile rec { requireSource = version: rel: part: hash: (requireFile rec {
@ -27,56 +25,27 @@ in stdenv.mkDerivation rec {
version = "${baseVersion}.0.1.0"; version = "${baseVersion}.0.1.0";
name = "oracle-instantclient-${version}"; name = "oracle-instantclient-${version}";
srcBase = (requireSource version "1" "basic" "43c4bfa938af741ae0f9964a656f36a0700849f5780a2887c8e9f1be14fe8b66"); buildInputs = [ libaio stdenv.cc.cc.lib ] ++ stdenv.lib.optional odbcSupport unixODBC;
srcDevel = (requireSource version "1" "devel" "4c7ad8d977f9f908e47c5e71ce56c2a40c7dc83cec8a5c106b9ff06d45bb3442"); nativeBuildInputs = [ autoPatchelfHook makeWrapper rpmextract ];
srcSqlplus = (requireSource version "1" "sqlplus" "303e82820a10f78e401e2b07d4eebf98b25029454d79f06c46e5f9a302ce5552");
srcOdbc = optionalString odbcSupport (requireSource version "2" "odbc" "e870c84d2d4be6f77c0760083b82b7ffbb15a4bf5c93c4e6c84f36d6ed4dfdf1");
buildInputs = [ glibc ] ++ srcs = [
optional odbcSupport unixODBC; (requireSource version "1" "basic" "43c4bfa938af741ae0f9964a656f36a0700849f5780a2887c8e9f1be14fe8b66")
(requireSource version "1" "devel" "4c7ad8d977f9f908e47c5e71ce56c2a40c7dc83cec8a5c106b9ff06d45bb3442")
(requireSource version "1" "sqlplus" "303e82820a10f78e401e2b07d4eebf98b25029454d79f06c46e5f9a302ce5552")
] ++ stdenv.lib.optional odbcSupport (requireSource version "2" "odbc" "e870c84d2d4be6f77c0760083b82b7ffbb15a4bf5c93c4e6c84f36d6ed4dfdf1");
nativeBuildInputs = [ rpmextract patchelf makeWrapper ]; unpackCmd = "rpmextract $curSrc";
buildCommand = '' installPhase = ''
mkdir -p "${name}"
cd "${name}"
${rpmextract}/bin/rpmextract "${srcBase}"
${rpmextract}/bin/rpmextract "${srcDevel}"
${rpmextract}/bin/rpmextract "${srcSqlplus}"
'' + optionalString odbcSupport ''${rpmextract}/bin/rpmextract ${srcOdbc}
'' + ''
mkdir -p "$out/"{bin,include,lib,"share/${name}/demo/"} mkdir -p "$out/"{bin,include,lib,"share/${name}/demo/"}
mv "usr/share/oracle/${baseVersion}/client64/demo/"* "$out/share/${name}/demo/"
mv "usr/include/oracle/${baseVersion}/client64/"* "$out/include/"
mv "usr/lib/oracle/${baseVersion}/client64/lib/"* "$out/lib/"
mv "usr/lib/oracle/${baseVersion}/client64/bin/"* "$out/bin/"
ln -s "$out/bin/sqlplus" "$out/bin/sqlplus64"
for lib in $out/lib/lib*.so; do install -Dm755 lib/oracle/${baseVersion}/client64/bin/* $out/bin
test -f $lib || continue ln -s $out/bin/sqlplus $out/bin/sqlplus64
chmod +x $lib install -Dm644 lib/oracle/${baseVersion}/client64/lib/* $out/lib
patchelf --force-rpath --set-rpath "$out/lib:${libaio}/lib" \ install -Dm644 include/oracle/${baseVersion}/client64/* $out/include
$lib install -Dm644 share/oracle/${baseVersion}/client64/demo/* $out/share/${name}/demo
done
for lib in $out/lib/libsqora*; do
test -f $lib || continue
chmod +x $lib
patchelf --force-rpath --set-rpath "$out/lib:${unixODBC}/lib" \
$lib
done
for exe in $out/bin/{adrci,genezi,sqlplus}; do
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--force-rpath --set-rpath "$out/lib:${libaio}/lib" \
$exe
wrapProgram $exe --prefix LD_LIBRARY_PATH ":" $out/lib
done
''; '';
dontStrip = true;
dontPatchELF = true;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Oracle instant client libraries and sqlplus CLI"; description = "Oracle instant client libraries and sqlplus CLI";
longDescription = '' longDescription = ''
@ -86,6 +55,7 @@ in stdenv.mkDerivation rec {
''; '';
license = licenses.unfree; license = licenses.unfree;
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ pesterhazy ]; maintainers = with maintainers; [ pesterhazy flokli ];
hydraPlatforms = [];
}; };
} }

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, cmake, libX11, freetype, libjpeg, openal, flac, libvorbis { stdenv, fetchurl, cmake, libX11, freetype, libjpeg, openal, flac, libvorbis
, glew, libXrandr, libXrender, udev, xcbutilimage , glew, libXrandr, libXrender, udev, xcbutilimage
, IOKit, Foundation, AppKit, OpenAL
}: }:
let let
@ -13,9 +14,13 @@ stdenv.mkDerivation rec {
sha256 = "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab"; sha256 = "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab";
}; };
buildInputs = [ cmake libX11 freetype libjpeg openal flac libvorbis glew buildInputs = [ cmake libX11 freetype libjpeg openal flac libvorbis glew
libXrandr libXrender udev xcbutilimage libXrandr libXrender xcbutilimage
]; ] ++ stdenv.lib.optional stdenv.isLinux udev
cmakeFlags = [ "-DSFML_INSTALL_PKGCONFIG_FILES=yes" ]; ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit Foundation AppKit OpenAL ];
cmakeFlags = [ "-DSFML_INSTALL_PKGCONFIG_FILES=yes"
"-DSFML_MISC_INSTALL_PREFIX=share/SFML"
"-DSFML_BUILD_FRAMEWORKS=no"
"-DSFML_USE_SYSTEM_DEPS=yes" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.sfml-dev.org/; homepage = http://www.sfml-dev.org/;
description = "Simple and fast multimedia library"; description = "Simple and fast multimedia library";
@ -26,6 +31,6 @@ stdenv.mkDerivation rec {
''; '';
license = licenses.zlib; license = licenses.zlib;
maintainers = [ maintainers.astsmtl ]; maintainers = [ maintainers.astsmtl ];
platforms = platforms.linux; platforms = platforms.unix;
}; };
} }

View File

@ -0,0 +1,26 @@
{ stdenv, fetchFromGitHub, which, ocaml, findlib, ocamlbuild, decompress }:
stdenv.mkDerivation rec {
version = "20171028";
name = "ocaml${ocaml.version}-imagelib-${version}";
src = fetchFromGitHub {
owner = "rlepigre";
repo = "ocaml-imagelib";
rev = "ocaml-imagelib_${version}";
sha256 = "1frkrgcrv4ybdmqcfxpfsywx0hm1arxgxp32n8kzky6qip1g0zxf";
};
buildInputs = [ which ocaml findlib ocamlbuild ];
propagatedBuildInputs = [ decompress ];
createFindlibDestdir = true;
meta = {
description = "Image formats such as PNG and PPM in OCaml";
license = stdenv.lib.licenses.lgpl3;
maintainers = [ stdenv.lib.maintainers.vbgl ];
inherit (src.meta) homepage;
inherit (ocaml.meta) platforms;
};
}

View File

@ -0,0 +1,36 @@
{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
, cryptography
, bcrypt, gssapi, libnacl, libsodium, nettle, pyopenssl }:
buildPythonPackage rec {
pname = "asyncssh";
version = "1.13.0";
disabled = pythonOlder "3.4";
src = fetchPypi {
inherit pname version;
sha256 = "1n75z4dvhzymd4n610dpwlq7wl8cyz1gxx9m7iq92pzhss5vgpfd";
};
propagatedBuildInputs = [
bcrypt
cryptography
gssapi
libnacl
libsodium
nettle
pyopenssl
];
# Disables windows specific test (specifically the GSSAPI wrapper for Windows)
postPatch = ''
rm ./tests/sspi_stub.py
'';
meta = with stdenv.lib; {
description = "Provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework";
homepage = https://pypi.python.org/pypi/asyncssh;
license = licenses.epl10;
maintainers = with maintainers; [ worldofpeace ];
};
}

View File

@ -3,12 +3,12 @@
, ipaddress, backports_ssl_match_hostname, docker_pycreds , ipaddress, backports_ssl_match_hostname, docker_pycreds
}: }:
buildPythonPackage rec { buildPythonPackage rec {
version = "3.2.1"; version = "3.3.0";
pname = "docker"; pname = "docker";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0d698c3dc4df66c988de5df21a62cdc3450de2fa8523772779e5e23799c41f43"; sha256 = "dc5cc0971a0d36fe94c5ce89bd4adb6c892713500af7b0818708229c3199911a";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -0,0 +1,30 @@
{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, requests
, requests-mock, pytest
}:
buildPythonPackage rec {
pname = "pyairvisual";
version = "1.0.0";
src = fetchFromGitHub {
owner = "bachya";
repo = pname;
rev = "v${version}";
sha256 = "0ng6k07n91k5l68zk3hl4fywb33admp84wqdm20qmmw9yc9c64fd";
};
checkInputs = [ pytest requests-mock ];
propagatedBuildInputs = [ requests ];
checkPhase = ''
py.test tests
'';
disabled = !isPy3k;
meta = with lib; {
description = "A thin Python wrapper for the AirVisual API";
license = licenses.mit;
homepage = https://github.com/bachya/pyairvisual;
};
}

View File

@ -1,19 +1,17 @@
{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub }: { stdenv, buildPythonPackage, isPy3k, fetchPypi }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyhomematic"; pname = "pyhomematic";
version = "0.1.42"; version = "0.1.43";
disabled = !isPy3k; disabled = !isPy3k;
# PyPI tarball does not include tests/ directory src = fetchPypi {
src = fetchFromGitHub { inherit pname version;
owner = "danielperna84"; sha256 = "0b6f4f5c8ddca15e0a1df367bafdffb2f08f1e42f17c78b9470573287e5b20bc";
repo = pname;
rev = version;
sha256 = "0h7bq66q22kzj1xwhxmr7knibsmb4csjwq3jr19fyl9sxxmgqwqy";
}; };
# PyPI tarball does not include tests/ directory
# Unreliable timing: https://github.com/danielperna84/pyhomematic/issues/126 # Unreliable timing: https://github.com/danielperna84/pyhomematic/issues/126
doCheck = false; doCheck = false;

View File

@ -0,0 +1,39 @@
{ stdenv, lib, fetchPypi, buildPythonPackage, fetchurl, libvorbis, flac, libogg, libopus, opusfile }:
buildPythonPackage rec {
pname = "PyOgg";
version = "0.6.2a1";
src = fetchPypi {
inherit pname version;
sha256 = "1mjh5zx7mfy246lya1qc42j4q4pz6v5zbd8blnfib9ncswcb1v6l";
};
buildInputs = [ libvorbis flac libogg libopus ];
propagatedBuidInputs = [ libvorbis flac libogg libopus opusfile ];
# There are no tests in this package.
doCheck = false;
postPatch = ''
substituteInPlace pyogg/vorbis.py --replace \
'libvorbisfile = ExternalLibrary.load("vorbisfile")' "libvorbisfile = ctypes.CDLL('${libvorbis}/lib/libvorbisfile${stdenv.hostPlatform.extensions.sharedLibrary}')"
substituteInPlace pyogg/vorbis.py --replace \
'libvorbisenc = ExternalLibrary.load("vorbisenc")' "libvorbisenc = ctypes.CDLL('${libvorbis}/lib/libvorbisenc${stdenv.hostPlatform.extensions.sharedLibrary}')"
substituteInPlace pyogg/vorbis.py --replace \
'libvorbis = ExternalLibrary.load("vorbis")' "libvorbis = ctypes.CDLL('${libvorbis}/lib/libvorbis${stdenv.hostPlatform.extensions.sharedLibrary}')"
substituteInPlace pyogg/flac.py --replace \
'libflac = ExternalLibrary.load("flac")' "libflac = ctypes.CDLL('${flac.out}/lib/libFLAC${stdenv.hostPlatform.extensions.sharedLibrary}')"
substituteInPlace pyogg/ogg.py --replace \
'libogg = ExternalLibrary.load("ogg")' "libogg = ctypes.CDLL('${libogg}/lib/libogg${stdenv.hostPlatform.extensions.sharedLibrary}')"
substituteInPlace pyogg/opus.py --replace \
'libopus = ExternalLibrary.load("opus")' "libopus = ctypes.CDLL('${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}')"
substituteInPlace pyogg/opus.py --replace \
'libopusfile = ExternalLibrary.load("opusfile")' "libopusfile = ctypes.CDLL('${opusfile}/lib/libopusfile${stdenv.hostPlatform.extensions.sharedLibrary}')"
'';
meta = {
description = "Xiph.org's Ogg Vorbis, Opus and FLAC for Python";
homepage = https://github.com/Zuzu-Typ/PyOgg;
license = lib.licenses.publicDomain;
maintainers = with lib.maintainers; [ pmiddend ];
};
}

View File

@ -0,0 +1,16 @@
{ stdenv, buildPythonPackage, fetchPypi }:
buildPythonPackage rec {
pname = "timeout-decorator";
version = "0.4.0";
src = fetchPypi {
inherit pname version;
sha256 = "1bckwbi5078z3x9lyf8vl9dhx10nymwwnp46c98wm5m02x5j37g4";
};
meta = with stdenv.lib; {
description = "Timeout decorator";
license = licenses.mit;
homepage = https://github.com/pnpnpn/timeout-decorator;
};
}

View File

@ -1,20 +1,20 @@
{ stdenv, lib, fetchurl, makeWrapper, jre { stdenv, lib, fetchurl, makeWrapper, jre, gnused
, disableRemoteLogging ? true , disableRemoteLogging ? true
}: }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ammonite-${version}"; name = "ammonite-${version}";
version = "1.1.0"; version = "1.1.2";
scalaVersion = "2.12"; scalaVersion = "2.12";
src = fetchurl { src = fetchurl {
url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}"; url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
sha256 = "0dx5w1ffnqazsyp6zxrmfcn7yhkkd81h7njwbqqv1pbchj5znj6l"; sha256 = "1balr7ya7xlyq32jwb0w9c4klnw13mdn2c5azkwngq5cp29yrfrc";
}; };
propagatedBuildInputs = [ jre ] ; propagatedBuildInputs = [ jre ] ;
buildInputs = [ makeWrapper ] ; buildInputs = [ makeWrapper gnused ] ;
phases = "installPhase"; phases = "installPhase";
@ -22,9 +22,9 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
cp ${src} $out/bin/amm cp ${src} $out/bin/amm
chmod +x $out/bin/amm chmod +x $out/bin/amm
wrapProgram $out/bin/amm \ ${gnused}/bin/sed -i '0,/java/{s|java|${jre}/bin/java|}' $out/bin/amm
${optionalString disableRemoteLogging "--add-flags --no-remote-logging"} \ '' + optionalString (disableRemoteLogging) ''
--prefix PATH ":" ${jre}/bin ; ${gnused}/bin/sed -i '0,/ammonite.Main/{s|ammonite.Main|ammonite.Main --no-remote-logging|}' $out/bin/amm
''; '';
meta = { meta = {

View File

@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
description = "unix-like reverse engineering framework and commandline tools"; description = "unix-like reverse engineering framework and commandline tools";
homepage = http://radare.org/; homepage = http://radare.org/;
license = stdenv.lib.licenses.gpl2Plus; license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [raskin makefu]; maintainers = with stdenv.lib.maintainers; [raskin makefu mic92];
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
inherit version; inherit version;
}; };

View File

@ -1,26 +1,22 @@
{ stdenv, binutils, cmake, fetchFromGitHub }: { stdenv, binutils, cmake, zlib, fetchFromGitHub }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2017-10-05"; version = "2018-05-22";
name = "bloaty-${version}"; name = "bloaty-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "bloaty"; repo = "bloaty";
rev = "e47b21b01ceecf001e1965e9da249d48d86a1749"; rev = "054788b091ccfd43b05b9817062139145096d440";
sha256 = "1il3z49hi0b07agjwr5fg1wzysfxsamfv1snvlp33vrlyl1m7cbm"; sha256 = "0pmv66137ipzsjjdz004n61pz3aipjhh3b0w0y1406clqpwkvpjm";
fetchSubmodules = true; fetchSubmodules = true;
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
enableParallelBuilding = true; buildInputs = [ zlib ];
preConfigure = '' enableParallelBuilding = true;
substituteInPlace src/bloaty.cc \
--replace "c++filt" \
"${binutils.bintools}/bin/c++filt"
'';
doCheck = true; doCheck = true;

View File

@ -2,7 +2,7 @@
assert jdk != null; assert jdk != null;
let version = "3.5.2"; in let version = "3.5.3"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "apache-maven-${version}"; name = "apache-maven-${version}";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "mirror://apache/maven/maven-3/${version}/binaries/${name}-bin.tar.gz"; url = "mirror://apache/maven/maven-3/${version}/binaries/${name}-bin.tar.gz";
sha256 = "1zza5kjf69hnx41gy3yhvsk1kz259nig5njcmzjbsr8a75p1yyvh"; sha256 = "0244mpziz4rw35x2cahsqlxpnygvi6qpll16g4kx87db7wvmcadm";
}; };
buildInputs = [ makeWrapper ]; buildInputs = [ makeWrapper ];

View File

@ -4,7 +4,7 @@ let
dubBuild = stdenv.mkDerivation rec { dubBuild = stdenv.mkDerivation rec {
name = "dubBuild-${version}"; name = "dubBuild-${version}";
version = "1.8.0"; version = "1.8.1";
enableParallelBuilding = true; enableParallelBuilding = true;
@ -12,7 +12,7 @@ let
owner = "dlang"; owner = "dlang";
repo = "dub"; repo = "dub";
rev = "v${version}"; rev = "v${version}";
sha256 = "0788d375sc6xdak9x6xclkkz243lb7di68yxfvl4v0n178mi22bk"; sha256 = "16r7x4jsfv5fjssvs6mwj8ymr6fjpvbkjhpr4f4368sjr5iyfad6";
}; };
postUnpack = '' postUnpack = ''
@ -75,6 +75,7 @@ let
# file under ../etc relative to the dub location. # file under ../etc relative to the dub location.
cp ${dubBuild}/bin/dub bin/ cp ${dubBuild}/bin/dub bin/
export DUB=$NIX_BUILD_TOP/source/bin/dub export DUB=$NIX_BUILD_TOP/source/bin/dub
export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
export DC=${dmd.out}/bin/dmd export DC=${dmd.out}/bin/dmd
export HOME=$TMP export HOME=$TMP
./test/run-unittest.sh ./test/run-unittest.sh

View File

@ -2,14 +2,14 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dtools-${version}"; name = "dtools-${version}";
version = "2.079.0"; version = "2.079.1";
srcs = [ srcs = [
(fetchFromGitHub { (fetchFromGitHub {
owner = "dlang"; owner = "dlang";
repo = "dmd"; repo = "dmd";
rev = "v${version}"; rev = "v${version}";
sha256 = "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y"; sha256 = "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj";
name = "dmd"; name = "dmd";
}) })
(fetchFromGitHub { (fetchFromGitHub {

View File

@ -1,6 +1,6 @@
GIT GIT
remote: https://github.com/mitchellh/vagrant-spec.git remote: https://github.com/hashicorp/vagrant-spec.git
revision: 7ac8b4191de578e345b29acaf62ecc72c8e73be1 revision: 9413ab298407114528766efefd1fb1ff24589636
specs: specs:
vagrant-spec (0.0.1) vagrant-spec (0.0.1)
childprocess (~> 0.6.0) childprocess (~> 0.6.0)
@ -11,7 +11,7 @@ GIT
PATH PATH
remote: . remote: .
specs: specs:
vagrant (2.0.2) vagrant (2.1.1)
childprocess (~> 0.6.0) childprocess (~> 0.6.0)
erubis (~> 2.7.0) erubis (~> 2.7.0)
hashicorp-checkpoint (~> 0.1.5) hashicorp-checkpoint (~> 0.1.5)
@ -25,6 +25,8 @@ PATH
rest-client (>= 1.6.0, < 3.0) rest-client (>= 1.6.0, < 3.0)
ruby_dep (<= 1.3.1) ruby_dep (<= 1.3.1)
wdm (~> 0.1.0) wdm (~> 0.1.0)
win32-file (~> 0.8.1)
win32-file-security (~> 1.0.10)
winrm (~> 2.1) winrm (~> 2.1)
winrm-elevated (~> 1.1) winrm-elevated (~> 1.1)
winrm-fs (~> 1.0) winrm-fs (~> 1.0)
@ -40,11 +42,13 @@ GEM
crack (0.4.3) crack (0.4.3)
safe_yaml (~> 1.0.0) safe_yaml (~> 1.0.0)
diff-lcs (1.3) diff-lcs (1.3)
domain_name (0.5.20170404) domain_name (0.5.20180417)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
erubis (2.7.0) erubis (2.7.0)
fake_ftp (0.1.1) fake_ftp (0.1.1)
ffi (1.9.18) ffi (1.9.23)
ffi-win32-extensions (1.0.3)
ffi
gssapi (1.2.0) gssapi (1.2.0)
ffi (>= 1.0.1) ffi (>= 1.0.1)
gyoku (1.3.1) gyoku (1.3.1)
@ -115,6 +119,16 @@ GEM
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff hashdiff
win32-file (0.8.1)
ffi
ffi-win32-extensions
win32-file-stat (>= 1.4.0)
win32-file-security (1.0.10)
ffi
ffi-win32-extensions
win32-file-stat (1.5.5)
ffi
ffi-win32-extensions
winrm (2.2.3) winrm (2.2.3)
builder (>= 2.1.2) builder (>= 2.1.2)
erubis (~> 2.7) erubis (~> 2.7)

View File

@ -1,9 +1,9 @@
{ lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive }: { lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive }:
let let
version = "2.0.2"; version = "2.1.1";
url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz"; url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
sha256 = "1sjfwgy2y6q5s1drd8h8xgz2a0sv1l3kx9jilgc02hlcdz070iir"; sha256 = "0kgsb33f3wh6x4450x74wri6z78ky92sfrv7ba7h7zmxsadb6m4b";
deps = bundlerEnv rec { deps = bundlerEnv rec {
name = "${pname}-${version}"; name = "${pname}-${version}";

View File

@ -46,10 +46,10 @@
dependencies = ["unf"]; dependencies = ["unf"];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "12hs8yijhak7p2hf1xkh98g0mnp5phq3mrrhywzaxpwz1gw5r3kf"; sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
type = "gem"; type = "gem";
}; };
version = "0.5.20170404"; version = "0.5.20180417";
}; };
erubis = { erubis = {
source = { source = {
@ -70,10 +70,19 @@
ffi = { ffi = {
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"; sha256 = "0zw6pbyvmj8wafdc7l5h7w20zkp1vbr2805ql5d941g2b20pk4zr";
type = "gem"; type = "gem";
}; };
version = "1.9.18"; version = "1.9.23";
};
ffi-win32-extensions = {
dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ywkkbr3bpi2ais2jr8yrsqwwrm48jg262anmdkcb9if95vajx7l";
type = "gem";
};
version = "1.0.3";
}; };
gssapi = { gssapi = {
dependencies = ["ffi"]; dependencies = ["ffi"];
@ -397,16 +406,16 @@
version = "0.0.7.5"; version = "0.0.7.5";
}; };
vagrant = { vagrant = {
dependencies = ["childprocess" "erubis" "hashicorp-checkpoint" "i18n" "listen" "log4r" "net-scp" "net-sftp" "net-ssh" "rb-kqueue" "rest-client" "ruby_dep" "wdm" "winrm" "winrm-elevated" "winrm-fs"]; dependencies = ["childprocess" "erubis" "hashicorp-checkpoint" "i18n" "listen" "log4r" "net-scp" "net-sftp" "net-ssh" "rb-kqueue" "rest-client" "ruby_dep" "wdm" "win32-file" "win32-file-security" "winrm" "winrm-elevated" "winrm-fs"];
}; };
vagrant-spec = { vagrant-spec = {
dependencies = ["childprocess" "log4r" "rspec" "thor"]; dependencies = ["childprocess" "log4r" "rspec" "thor"];
source = { source = {
fetchSubmodules = false; fetchSubmodules = false;
rev = "7ac8b4191de578e345b29acaf62ecc72c8e73be1"; rev = "9413ab298407114528766efefd1fb1ff24589636";
sha256 = "0qybgxdnndx7xfmhyjcj46b2mv78d98yk30d68ppmfnmm3jx590h"; sha256 = "1z77m3p6x82hipa7y4i71zafy0rdfajw2vhqdxczjmrlwp0pvisl";
type = "git"; type = "git";
url = "https://github.com/mitchellh/vagrant-spec.git"; url = "https://github.com/hashicorp/vagrant-spec.git";
}; };
version = "0.0.1"; version = "0.0.1";
}; };
@ -427,6 +436,33 @@
}; };
version = "2.3.2"; version = "2.3.2";
}; };
win32-file = {
dependencies = ["ffi" "ffi-win32-extensions" "win32-file-stat"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mjylzv4bbnxyjqf7hnd9ghcs5xr2sv8chnmkqdi2cc6pya2xax0";
type = "gem";
};
version = "0.8.1";
};
win32-file-security = {
dependencies = ["ffi" "ffi-win32-extensions"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lpq821a1hrxmm0ki5c34wijzhn77g4ny76v698ixwg853y2ir9r";
type = "gem";
};
version = "1.0.10";
};
win32-file-stat = {
dependencies = ["ffi" "ffi-win32-extensions"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lc3yajcb8xxabvj9qian938k60ixydvs3ixl5fldi0nlvnvk468";
type = "gem";
};
version = "1.5.5";
};
winrm = { winrm = {
dependencies = ["builder" "erubis" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"]; dependencies = ["builder" "erubis" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
source = { source = {

View File

@ -8,14 +8,11 @@
let let
inherit (stdenv.lib) optional optionals; inherit (stdenv.lib) optional optionals;
sdlName = if sdlClient then "-sdl" else "";
gtkName = if gtkClient then "-gtk" else "";
name = "freeciv"; name = "freeciv";
version = "2.5.11"; version = "2.5.11";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "${name}${sdlName}${gtkName}-${version}"; name = "${name}-${version}";
inherit version; inherit version;
src = fetchurl { src = fetchurl {

View File

@ -22,9 +22,9 @@ let
COREDIR="$out/lib/retroarch/cores" COREDIR="$out/lib/retroarch/cores"
mkdir -p $out/bin mkdir -p $out/bin
mkdir -p $COREDIR mkdir -p $COREDIR
mv ${d2u core}_libretro.so $COREDIR/. mv ${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $COREDIR/.
makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \ makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
--add-flags "-L $COREDIR/${d2u core}_libretro.so $@" --add-flags "-L $COREDIR/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;
@ -39,7 +39,7 @@ let
homepage = https://www.libretro.com/; homepage = https://www.libretro.com/;
inherit license; inherit license;
maintainers = with maintainers; [ edwtjo hrdinka MP2E ]; maintainers = with maintainers; [ edwtjo hrdinka MP2E ];
platforms = platforms.linux; platforms = platforms.unix;
}; };
} // a); } // a);
@ -178,7 +178,7 @@ in with stdenv.lib.licenses;
buildPhase = '' buildPhase = ''
cd svn-current/trunk \ cd svn-current/trunk \
&& make -f makefile.libretro \ && make -f makefile.libretro \
&& mv fbalpha2012_libretro.so fba_libretro.so && mv fbalpha2012_libretro${stdenv.hostPlatform.extensions.sharedLibrary} fba_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
''; '';
}; };
@ -412,7 +412,7 @@ in with stdenv.lib.licenses;
}).override { }).override {
buildPhase = '' buildPhase = ''
make -f Makefile.libretro make -f Makefile.libretro
mv snes9x2010_libretro.so snes9x_next_libretro.so mv snes9x2010_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x_next_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
''; '';
}; };

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation {
mkdir -p $out/lib mkdir -p $out/lib
$(for coreDir in $cores $(for coreDir in $cores
do do
$(ln -s $coreDir/*.so $out/lib/.) $(ln -s $coreDir/* $out/lib/.)
done) done)
ln -s -t $out ${retroarch}/share ln -s -t $out ${retroarch}/share

View File

@ -1,6 +1,6 @@
{ stdenv, fetchFromGitHub, makeWrapper, autoconf, automake, libtool_2, autoreconfHook { stdenv, fetchFromGitHub, makeWrapper, autoconf, automake, libtool_2, autoreconfHook
, llvm, libcxx, libcxxabi, clang, libuuid , libcxx, libcxxabi, libuuid
, libobjc ? null, maloader ? null, xctoolchain ? null , libobjc ? null, maloader ? null
, hostPlatform, targetPlatform , hostPlatform, targetPlatform
, enableDumpNormalizedLibArgs ? false , enableDumpNormalizedLibArgs ? false
}: }:
@ -22,7 +22,7 @@ let
in in
# Non-Darwin alternatives # Non-Darwin alternatives
assert (!hostPlatform.isDarwin) -> (maloader != null && xctoolchain != null); assert (!hostPlatform.isDarwin) -> maloader != null;
assert enableDumpNormalizedLibArgs -> (!useOld); assert enableDumpNormalizedLibArgs -> (!useOld);
@ -57,8 +57,6 @@ let
autoreconfHook autoreconfHook
]; ];
buildInputs = [ libuuid ] ++ buildInputs = [ libuuid ] ++
# Only need llvm and clang if the stdenv isn't already clang-based (TODO: just make a stdenv.cc.isClang)
stdenv.lib.optionals (!stdenv.isDarwin) [ llvm clang ] ++
stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ]; stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ];
patches = [ patches = [
@ -80,9 +78,6 @@ let
# TODO(@Ericson2314): Always pass "--target" and always targetPrefix. # TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags = stdenv.lib.optionals (!stdenv.isDarwin) [
"CXXFLAGS=-I${libcxx}/include/c++/v1"
];
postPatch = '' postPatch = ''
sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp
@ -110,8 +105,6 @@ let
EOF EOF
cd cctools cd cctools
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' autogen.sh
''; '';
# TODO: this builds an ld without support for LLVM's LTO. We need to teach it, but that's rather # TODO: this builds an ld without support for LLVM's LTO. We need to teach it, but that's rather
@ -126,21 +119,12 @@ let
popd popd
''; '';
postInstall = postInstall = ''
if hostPlatform.isDarwin cat >$out/bin/dsymutil << EOF
then '' #!${stdenv.shell}
cat >$out/bin/dsymutil << EOF EOF
#!${stdenv.shell} chmod +x $out/bin/dsymutil
EOF '';
chmod +x $out/bin/dsymutil
''
else ''
for tool in dyldinfo dwarfdump dsymutil; do
${makeWrapper}/bin/makeWrapper "${maloader}/bin/ld-mac" "$out/bin/${targetPlatform.config}-$tool" \
--add-flags "${xctoolchain}/bin/$tool"
ln -s "$out/bin/${targetPlatform.config}-$tool" "$out/bin/$tool"
done
'';
passthru = { passthru = {
inherit targetPrefix; inherit targetPrefix;

View File

@ -62,6 +62,8 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libnl openssl sqlite ]; buildInputs = [ libnl openssl sqlite ];
outputs = [ "out" "man" ];
extraConfig = '' extraConfig = ''
CONFIG_DRIVER_WIRED=y CONFIG_DRIVER_WIRED=y
CONFIG_LIBNL32=y CONFIG_LIBNL32=y
@ -103,6 +105,10 @@ stdenv.mkDerivation rec {
''; '';
preInstall = "mkdir -p $out/bin"; preInstall = "mkdir -p $out/bin";
postInstall = ''
install -vD hostapd.8 -t $man/share/man/man8
install -vD hostapd_cli.1 -t $man/share/man/man1
'';
meta = { meta = {
homepage = http://hostap.epitest.fi; homepage = http://hostap.epitest.fi;

View File

@ -5,9 +5,7 @@ assert stdenv.lib.versionAtLeast kernel.version "3.10";
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "wireguard-${version}"; name = "wireguard-${version}";
version = "0.0.20180514"; inherit (wireguard-tools) src version;
inherit (wireguard-tools) src;
preConfigure = '' preConfigure = ''
cd src cd src
@ -28,7 +26,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://www.wireguard.com/; homepage = https://www.wireguard.com/;
downloadPage = https://git.zx2c4.com/WireGuard/refs/; downloadPage = https://git.zx2c4.com/WireGuard/refs/;
description = " Tools for the WireGuard secure network tunnel"; description = "Kernel module for the WireGuard secure network tunnel";
maintainers = with maintainers; [ ericsagnes mic92 zx2c4 ]; maintainers = with maintainers; [ ericsagnes mic92 zx2c4 ];
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -167,7 +167,7 @@
"lutron_caseta" = ps: with ps; [ ]; "lutron_caseta" = ps: with ps; [ ];
"matrix" = ps: with ps; [ matrix-client ]; "matrix" = ps: with ps; [ matrix-client ];
"maxcube" = ps: with ps; [ ]; "maxcube" = ps: with ps; [ ];
"media_extractor" = ps: with ps; [ ]; "media_extractor" = ps: with ps; [ youtube-dl-light ];
"media_player.anthemav" = ps: with ps; [ ]; "media_player.anthemav" = ps: with ps; [ ];
"media_player.aquostv" = ps: with ps; [ ]; "media_player.aquostv" = ps: with ps; [ ];
"media_player.blackbird" = ps: with ps; [ ]; "media_player.blackbird" = ps: with ps; [ ];
@ -276,7 +276,7 @@
"satel_integra" = ps: with ps; [ ]; "satel_integra" = ps: with ps; [ ];
"scene.hunterdouglas_powerview" = ps: with ps; [ ]; "scene.hunterdouglas_powerview" = ps: with ps; [ ];
"scsgate" = ps: with ps; [ ]; "scsgate" = ps: with ps; [ ];
"sensor.airvisual" = ps: with ps; [ ]; "sensor.airvisual" = ps: with ps; [ pyairvisual ];
"sensor.alpha_vantage" = ps: with ps; [ ]; "sensor.alpha_vantage" = ps: with ps; [ ];
"sensor.bbox" = ps: with ps; [ ]; "sensor.bbox" = ps: with ps; [ ];
"sensor.bh1750" = ps: with ps; [ ]; "sensor.bh1750" = ps: with ps; [ ];

View File

@ -25,6 +25,13 @@ GENERAL_PREFIX = '# homeassistant.'
COMPONENT_PREFIX = GENERAL_PREFIX + 'components.' COMPONENT_PREFIX = GENERAL_PREFIX + 'components.'
PKG_SET = 'python3Packages' PKG_SET = 'python3Packages'
# If some requirements are matched by multiple python packages,
# the following can be used to choose one of them
PKG_PREFERENCES = {
# Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
'youtube-dl': 'youtube-dl-light'
}
def get_version(): def get_version():
with open(os.path.dirname(sys.argv[0]) + '/default.nix') as f: with open(os.path.dirname(sys.argv[0]) + '/default.nix') as f:
m = re.search('hassVersion = "([\\d\\.]+)";', f.read()) m = re.search('hassVersion = "([\\d\\.]+)";', f.read())
@ -59,7 +66,7 @@ output = subprocess.check_output(['nix-env', '-f', os.path.dirname(sys.argv[0])
packages = json.loads(output) packages = json.loads(output)
def name_to_attr_path(req): def name_to_attr_path(req):
attr_paths = [] attr_paths = set()
names = [req] names = [req]
# E.g. python-mpd2 is actually called python3.6-mpd2 # E.g. python-mpd2 is actually called python3.6-mpd2
# instead of python-3.6-python-mpd2 inside Nixpkgs # instead of python-3.6-python-mpd2 inside Nixpkgs
@ -71,11 +78,18 @@ def name_to_attr_path(req):
pattern = re.compile('^python\\d\\.\\d-{}-\\d'.format(name), re.I) pattern = re.compile('^python\\d\\.\\d-{}-\\d'.format(name), re.I)
for attr_path, package in packages.items(): for attr_path, package in packages.items():
if pattern.match(package['name']): if pattern.match(package['name']):
attr_paths.append(attr_path) attr_paths.add(attr_path)
if len(attr_paths) > 1:
for to_replace, replacement in PKG_PREFERENCES.items():
try:
attr_paths.remove(PKG_SET + '.' + to_replace)
attr_paths.add(PKG_SET + '.' + replacement)
except KeyError:
pass
# Let's hope there's only one derivation with a matching name # Let's hope there's only one derivation with a matching name
assert(len(attr_paths) <= 1) assert(len(attr_paths) <= 1)
if attr_paths: if len(attr_paths) == 1:
return attr_paths[0] return attr_paths.pop()
else: else:
return None return None
@ -86,14 +100,11 @@ build_inputs = {}
for component, reqs in OrderedDict(sorted(requirements.items())).items(): for component, reqs in OrderedDict(sorted(requirements.items())).items():
attr_paths = [] attr_paths = []
for req in reqs: for req in reqs:
try: name = req.split('==')[0]
name = req.split('==')[0] attr_path = name_to_attr_path(name)
attr_path = name_to_attr_path(name) if attr_path is not None:
if attr_path is not None: # Add attribute path without "python3Packages." prefix
# Add attribute path without "python3Packages." prefix attr_paths.append(attr_path[len(PKG_SET + '.'):])
attr_paths.append(attr_path[len(PKG_SET + '.'):])
except RequirementParseError:
continue
else: else:
build_inputs[component] = attr_paths build_inputs[component] = attr_paths

View File

@ -25,11 +25,11 @@ in stdenv.mkDerivation rec {
name = "postfix-${version}"; name = "postfix-${version}";
version = "3.3.0"; version = "3.3.1";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${name}.tar.gz"; url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${name}.tar.gz";
sha256 = "0fggpbsc9jkrbaw9hy0zw9h32plmfvcv0x860pbih0g346byhhkr"; sha256 = "0fvymsklp32njsv0ngc1f45j01kcy61r5in99g5palibwkd19xal";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -5,12 +5,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "EventStore-${version}"; name = "EventStore-${version}";
version = "4.1.0"; version = "4.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "EventStore"; owner = "EventStore";
repo = "EventStore"; repo = "EventStore";
rev = "oss-v${version}"; rev = "oss-v${version}";
sha256 = "0mvjz327kfg157fwvy8xkkf5h0g3v373pfwr70cslsy96n45jp10"; sha256 = "1069ncb9ps1wi71yw1fzkfd9rfsavccw8xj3a3miwd9x72w8636f";
}; };
buildPhase = '' buildPhase = ''

View File

@ -1,5 +1,5 @@
{ stdenv, buildPerlPackage, fetchurl { stdenv, buildPerlPackage, fetchurl, fetchpatch, makeWrapper
, perl, perlPackages, fetchpatch }: , perl, perlPackages, flac, faad2, sox, lame, monkeysAudio, wavpack }:
buildPerlPackage rec { buildPerlPackage rec {
name = "slimserver-${version}"; name = "slimserver-${version}";
@ -16,6 +16,7 @@ buildPerlPackage rec {
} ) ]; } ) ];
buildInputs = [ buildInputs = [
makeWrapper
perl perl
perlPackages.AnyEvent perlPackages.AnyEvent
perlPackages.AudioScan perlPackages.AudioScan
@ -75,17 +76,19 @@ buildPerlPackage rec {
preConfigurePhase = ""; preConfigurePhase = "";
buildPhase = " buildPhase = ''
mv lib tmp mv lib tmp
mkdir -p lib/perl5/site_perl mkdir -p lib/perl5/site_perl
mv CPAN_used/* lib/perl5/site_perl mv CPAN_used/* lib/perl5/site_perl
cp -rf tmp/* lib/perl5/site_perl cp -rf tmp/* lib/perl5/site_perl
"; '';
doCheck = false; doCheck = false;
installPhase = '' installPhase = ''
cp -r . $out cp -r . $out
wrapProgram $out/slimserver.pl \
--prefix PATH : "${stdenv.lib.makeBinPath [ lame flac faad2 sox monkeysAudio wavpack ]}"
''; '';
outputs = [ "out" ]; outputs = [ "out" ];

View File

@ -2,7 +2,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "pg_repack-${version}"; name = "pg_repack-${version}";
version = "1.4.2"; version = "1.4.3";
buildInputs = [ postgresql openssl zlib readline ]; buildInputs = [ postgresql openssl zlib readline ];
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
owner = "reorg"; owner = "reorg";
repo = "pg_repack"; repo = "pg_repack";
rev = "refs/tags/ver_${version}"; rev = "refs/tags/ver_${version}";
sha256 = "1yv5x7dgiv1miazbngkrkdbc2zpwklj6nlligghjvv83bcl8969q"; sha256 = "1mmd22nfaxjwnbl3i95f3ivmjvfqwdflgaczlg3129dbpwg265xr";
}; };
installPhase = '' installPhase = ''

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "zsh-autosuggestions-${version}"; name = "zsh-autosuggestions-${version}";
version = "0.4.2"; version = "0.4.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "zsh-users"; owner = "zsh-users";
repo = "zsh-autosuggestions"; repo = "zsh-autosuggestions";
rev = "v${version}"; rev = "v${version}";
sha256 = "1yvbhfaaqzhmjmwjh75i1p4mrqp3ksw74bp8lrll81c6zf8bmvig"; sha256 = "117m4jk3lgh98k699v00pg554qblpr4pbfvgs0qrgygfx1n1bpl4";
}; };
buildInputs = [ zsh ]; buildInputs = [ zsh ];

View File

@ -0,0 +1,24 @@
{ stdenv, fetchFromGitHub, diffutils, gd, pkgconfig }:
stdenv.mkDerivation rec {
name = "s2png-${version}";
version = "0.7.2";
src = fetchFromGitHub {
owner = "dbohdan";
repo = "s2png";
rev = "v${version}";
sha256 = "0y3crfm0jqprgxamlly713cka2x1bp6z63p1lw9wh4wc37kpira6";
};
buildInputs = [ diffutils gd pkgconfig ];
installFlags = [ "prefix=" "DESTDIR=$(out)" ];
meta = {
homepage = https://github.com/dbohdan/s2png/;
description = "Store any data in PNG images";
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.dbohdan ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,64 +1,53 @@
{ fetchurl, stdenv, python, bash }: { stdenv, fetchFromGitHub, python, bash }:
let stdenv.mkDerivation rec {
name = "autojump-${version}";
version = "22.5.1"; version = "22.5.1";
in
stdenv.mkDerivation rec {
name = "autojump-${version}";
src = fetchurl { src = fetchFromGitHub {
url = "http://github.com/joelthelion/autojump/archive/release-v${version}.tar.gz"; owner = "wting";
name = "autojump-${version}.tar.gz"; repo = "autojump";
sha256 = "17z9j9936x0nizwrzf664bngh60x5qbvrrf1s5qdzd0f2gdanpvn"; rev = "release-v${version}";
}; sha256 = "1l1278g3k1qfrz41pkpjdhsabassb9si2d1bfbcmvbv5h3wmlqk9";
};
buildInputs = [ python bash ]; buildInputs = [ python bash ];
dontBuild = true; dontBuild = true;
installPhase = '' installPhase = ''
python ./install.py -d $out -p "" python ./install.py -d "$out" -p "" -z "$out/share/zsh/site-functions/"
chmod +x $out/etc/profile.d/*
mkdir -p "$out/etc/bash_completion.d" chmod +x "$out/etc/profile.d/autojump.sh"
cp -v $out/share/autojump/autojump.bash "$out/etc/bash_completion.d" install -Dt "$out/share/bash-completion/completions/" -m444 "$out/share/autojump/autojump.bash"
install -Dt "$out/share/fish/vendor_conf.d/" -m444 "$out/share/autojump/autojump.fish"
install -Dt "$out/share/zsh/site-functions/" -m444 "$out/share/autojump/autojump.zsh"
'';
mkdir -p $out/share/fish/vendor_completions.d/ meta = with stdenv.lib; {
cp -v $out/share/autojump/autojump.fish "$out/share/fish/vendor_completions.d/autojump.fish" description = "A `cd' command that learns";
longDescription = ''
One of the most used shell commands is cd. A quick survey
among my friends revealed that between 10 and 20% of all
commands they type are actually cd commands! Unfortunately,
jumping from one part of your system to another with cd
requires to enter almost the full path, which isnt very
practical and requires a lot of keystrokes.
cat <<SCRIPT > $out/bin/autojump-share Autojump is a faster way to navigate your filesystem. It
#!/bin/sh works by maintaining a database of the directories you use the
# Run this script to find the autojump shared folder where all the shell most from the command line. The jstat command shows you the
# integration scripts are living. current contents of the database. You need to work a little
echo $out/share/autojump bit before the database becomes usable. Once your database
SCRIPT is reasonably complete, you can jump to a directory by
chmod +x $out/bin/autojump-share typing "j dirspec", where dirspec is a few characters of the
directory you want to jump to. It will jump to the most used
directory whose name matches the pattern given in dirspec.
Autojump supports tab-completion.
''; '';
homepage = http://wiki.github.com/wting/autojump;
meta = { license = licenses.gpl3;
description = "A `cd' command that learns"; platforms = platforms.all;
longDescription = '' maintainers = with maintainers; [ domenkozar yurrriq ];
One of the most used shell commands is cd. A quick survey };
among my friends revealed that between 10 and 20% of all }
commands they type are actually cd commands! Unfortunately,
jumping from one part of your system to another with cd
requires to enter almost the full path, which isnt very
practical and requires a lot of keystrokes.
Autojump is a faster way to navigate your filesystem. It
works by maintaining a database of the directories you use the
most from the command line. The jstat command shows you the
current contents of the database. You need to work a little
bit before the database becomes usable. Once your database
is reasonably complete, you can jump to a directory by
typing "j dirspec", where dirspec is a few characters of the
directory you want to jump to. It will jump to the most used
directory whose name matches the pattern given in dirspec.
Autojump supports tab-completion.
'';
homepage = http://wiki.github.com/joelthelion/autojump;
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.all;
maintainers = [ stdenv.lib.maintainers.domenkozar ];
};
}

View File

@ -7,12 +7,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "calamares"; pname = "calamares";
version = "3.1.12"; version = "3.2.0";
# release including submodule # release including submodule
src = fetchurl { src = fetchurl {
url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${name}.tar.gz"; url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${name}.tar.gz";
sha256 = "0k59wnch2gmbsr5dh5swbjp4rkf5c1ml0n4sxf196wdasraismc6"; sha256 = "1i5q3hffjqi1id9kv8sixhddxd90d5qqmbc7gf5vf9m3c54pln64";
}; };
buildInputs = [ buildInputs = [

View File

@ -4,13 +4,13 @@
# There is also cdebootstrap now. Is that easier to maintain? # There is also cdebootstrap now. Is that easier to maintain?
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "debootstrap-${version}"; name = "debootstrap-${version}";
version = "1.0.99"; version = "1.0.100";
src = fetchurl { src = fetchurl {
# git clone git://git.debian.org/d-i/debootstrap.git # git clone git://git.debian.org/d-i/debootstrap.git
# I'd like to use the source. However it's lacking the lanny script ? (still true?) # I'd like to use the source. However it's lacking the lanny script ? (still true?)
url = "mirror://debian/pool/main/d/debootstrap/debootstrap_${version}.tar.gz"; url = "mirror://debian/pool/main/d/debootstrap/debootstrap_${version}.tar.gz";
sha256 = "1plw53zghiykddj77s5jk10ncx82cgrkk798p909yydhcghnvcsb"; sha256 = "0jmwf26sq4bkdz6wi0dcjsrfkg8c8k3xdhi11xp6cdrw6qpw82ws";
}; };
buildInputs = [ dpkg gettext gawk perl ]; buildInputs = [ dpkg gettext gawk perl ];

View File

@ -0,0 +1,50 @@
{ stdenv, fetchurl, unzip, lib, file, licenseFile, optgamsFile}:
assert licenseFile != null;
stdenv.mkDerivation rec {
version = "25.0.2";
name = "gams-${version}";
src = fetchurl {
url = "https://d37drm4t2jghv5.cloudfront.net/distributions/${version}/linux/linux_x64_64_sfx.exe";
sha256 = "4f95389579f33ff7c2586838a2c19021aa0746279555cbb51aa6e0efd09bd297";
};
unpackCmd = "unzip $src";
buildInputs = [ unzip file ];
dontBuild = true;
installPhase = ''
mkdir -p "$out/bin" "$out/share/gams"
cp -a * "$out/share/gams"
cp ${licenseFile} $out/share/gamslice.txt
'' + stdenv.lib.optionalString (optgamsFile != null) ''
cp ${optgamsFile} $out/share/optgams.def
ln -s $out/share/gams/optgams.def $out/bin/optgams.def
'';
postFixup = ''
for f in $out/share/gams/*; do
if [[ -x $f ]] && [[ -f $f ]] && [[ ! $f =~ .*\.so$ ]]; then
if patchelf \
--set-rpath "$out/share/gams" \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $f; then
ln -s $f $out/bin/$(basename $f)
fi
fi
done
'';
meta = with stdenv.lib;{
description = "General Algebraic Modeling System";
longDescription = ''
The General Algebraic Modeling System is a high-level modeling system for mathematical optimization.
GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems.
'';
homepage = https://www.gams.com/;
license = licenses.unfree;
maintainers = [ maintainers.Scriptkiddi ];
platforms = platforms.linux;
};
}

View File

@ -1,26 +1,36 @@
{ mkDerivation, fetchurl, lib { mkDerivation, fetchurl, lib
, extra-cmake-modules, kdoctools, wrapGAppsHook , extra-cmake-modules, kdoctools, wrapGAppsHook
, kconfig, kcrash, kinit, kpmcore , kconfig, kcrash, kinit, kpmcore
, eject, libatasmart }: , eject, libatasmart , utillinux, makeWrapper, qtbase
}:
let let
pname = "partitionmanager"; pname = "partitionmanager";
in mkDerivation rec { in mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
version = "3.0.1"; version = "3.3.1";
src = fetchurl { src = fetchurl {
url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
sha256 = "08sb9xa7dvvgha3k2xm1srl339przxpxd2y5bh1lnx6k1x7dk410"; sha256 = "0jhggb4xksb0k0mj752n6pz0xmccnbzlp984xydqbz3hkigra1si";
}; };
enableParallelBuilding = true;
nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook makeWrapper ];
# refer to kpmcore for the use of eject
buildInputs = [ eject libatasmart utillinux ];
propagatedBuildInputs = [ kconfig kcrash kinit kpmcore ];
postInstall = ''
wrapProgram "$out/bin/partitionmanager" --prefix QT_PLUGIN_PATH : "${kpmcore}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins"
'';
meta = with lib; { meta = with lib; {
description = "KDE Partition Manager"; description = "KDE Partition Manager";
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ peterhoeg ]; homepage = https://www.kde.org/applications/system/kdepartitionmanager/;
maintainers = with maintainers; [ peterhoeg ma27 ];
}; };
nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
# refer to kpmcore for the use of eject
buildInputs = [ eject libatasmart ];
propagatedBuildInputs = [ kconfig kcrash kinit kpmcore ];
} }

View File

@ -5,13 +5,13 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "thefuck"; pname = "thefuck";
version = "3.26"; version = "3.27";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nvbn"; owner = "nvbn";
repo = "${pname}"; repo = "${pname}";
rev = version; rev = version;
sha256 = "0iyihbp94z38xajy8yfbn3ky7irnam1zwyswg34cw4kkfgggrwhz"; sha256 = "1lsg0g9lnpj2nidggm16b7jm4xzhg0dgy81crfzny62hah1zk0pj";
}; };
propagatedBuildInputs = [ colorama decorator psutil pyte six ]; propagatedBuildInputs = [ colorama decorator psutil pyte six ];

View File

@ -13,7 +13,7 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tmux-${version}"; name = "tmux-${version}";
version = "2.6"; version = "2.7";
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
owner = "tmux"; owner = "tmux";
repo = "tmux"; repo = "tmux";
rev = version; rev = version;
sha256 = "0605y0nwfmf0mnq075vk80897c2cvhxxvxinqq7hvrpjf2ph5mww"; sha256 = "1yr4l8ckd67c3id4vrbpha91xxpdfpw0cpbr3v81lam0m7k4rgba";
}; };
nativeBuildInputs = [ pkgconfig autoreconfHook ]; nativeBuildInputs = [ pkgconfig autoreconfHook ];

View File

@ -1,4 +1,4 @@
{ stdenv, targetPlatform, fetchurl, buildPythonApplication { stdenv, targetPlatform, fetchurl, buildPythonPackage
, zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc , zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
# Pandoc is required to build the package's man page. Release tarballs contain a # Pandoc is required to build the package's man page. Release tarballs contain a
# formatted man page already, though, it will still be installed. We keep the # formatted man page already, though, it will still be installed. We keep the
@ -13,7 +13,7 @@
, makeWrapper }: , makeWrapper }:
with stdenv.lib; with stdenv.lib;
buildPythonApplication rec { buildPythonPackage rec {
pname = "youtube-dl"; pname = "youtube-dl";
version = "2018.05.18"; version = "2018.05.18";

View File

@ -2,13 +2,13 @@
buildGoPackage rec { buildGoPackage rec {
name = "wireguard-go-${version}"; name = "wireguard-go-${version}";
version = "0.0.20180514"; version = "0.0.20180519";
goPackagePath = "wireguard-go"; goPackagePath = "wireguard-go";
src = fetchzip { src = fetchzip {
url = "https://git.zx2c4.com/wireguard-go/snapshot/wireguard-go-${version}.tar.xz"; url = "https://git.zx2c4.com/wireguard-go/snapshot/wireguard-go-${version}.tar.xz";
sha256 = "1i1w4vj8w353b92nfhs92k0f7fifrwi067qfmgckdk0kk76nv2id"; sha256 = "0b3wpc0ccf24567fjafv1sjs3yqq1xjam3gpfp37avxqy9789nb7";
}; };
goDeps = ./deps.nix; goDeps = ./deps.nix;
@ -22,7 +22,7 @@ buildGoPackage rec {
description = "Userspace Go implementation of WireGuard"; description = "Userspace Go implementation of WireGuard";
homepage = https://git.zx2c4.com/wireguard-go/about/; homepage = https://git.zx2c4.com/wireguard-go/about/;
license = licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ kirelagin ]; maintainers = with maintainers; [ kirelagin zx2c4 ];
platforms = with platforms; linux ++ darwin ++ windows; platforms = platforms.darwin;
}; };
} }

Some files were not shown because too many files have changed in this diff Show More