Merge branch 'master' into firefox-59.0
This commit is contained in:
commit
808e8f672e
@ -177,5 +177,19 @@ you need it.</para>
|
|||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section xml:id="ssec-perl-cross-compilation"><title>Cross-compiling modules</title>
|
||||||
|
|
||||||
|
<para>Nixpkgs has experimental support for cross-compiling Perl
|
||||||
|
modules. In many cases, it will just work out of the box, even for
|
||||||
|
modules with native extensions. Sometimes, however, the Makefile.PL
|
||||||
|
for a module may (indirectly) import a native module. In that case,
|
||||||
|
you will need to make a stub for that module that will satisfy the
|
||||||
|
Makefile.PL and install it into
|
||||||
|
<filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>.
|
||||||
|
See the <varname>postInstall</varname> for <varname>DBI</varname> for
|
||||||
|
an example.</para>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -111,6 +111,11 @@
|
|||||||
github = "Profpatsch";
|
github = "Profpatsch";
|
||||||
name = "Profpatsch";
|
name = "Profpatsch";
|
||||||
};
|
};
|
||||||
|
roosemberth = {
|
||||||
|
email = "roosembert.palacios+nixpkgs@gmail.com";
|
||||||
|
github = "roosemberth";
|
||||||
|
name = "Roosembert (Roosemberth) Palacios";
|
||||||
|
};
|
||||||
SShrike = {
|
SShrike = {
|
||||||
email = "severen@shrike.me";
|
email = "severen@shrike.me";
|
||||||
github = "severen";
|
github = "severen";
|
||||||
|
@ -87,7 +87,7 @@ let
|
|||||||
echo "for hints about the offending path)."
|
echo "for hints about the offending path)."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
${libxslt.bin}/bin/xsltproc \
|
${buildPackages.libxslt.bin}/bin/xsltproc \
|
||||||
--stringparam revision '${revision}' \
|
--stringparam revision '${revision}' \
|
||||||
-o $out ${./options-to-docbook.xsl} $optionsXML
|
-o $out ${./options-to-docbook.xsl} $optionsXML
|
||||||
'';
|
'';
|
||||||
@ -139,7 +139,7 @@ let
|
|||||||
|
|
||||||
manual-combined = runCommand "nixos-manual-combined"
|
manual-combined = runCommand "nixos-manual-combined"
|
||||||
{ inherit sources;
|
{ inherit sources;
|
||||||
buildInputs = [ libxml2 libxslt ];
|
nativeBuildInputs = [ buildPackages.libxml2 buildPackages.libxslt ];
|
||||||
meta.description = "The NixOS manual as plain docbook XML";
|
meta.description = "The NixOS manual as plain docbook XML";
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
@ -194,7 +194,7 @@ let
|
|||||||
|
|
||||||
olinkDB = runCommand "manual-olinkdb"
|
olinkDB = runCommand "manual-olinkdb"
|
||||||
{ inherit sources;
|
{ inherit sources;
|
||||||
buildInputs = [ libxml2 libxslt ];
|
nativeBuildInputs = [ buildPackages.libxml2 buildPackages.libxslt ];
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
xsltproc \
|
xsltproc \
|
||||||
@ -244,7 +244,7 @@ in rec {
|
|||||||
# Generate the NixOS manual.
|
# Generate the NixOS manual.
|
||||||
manual = runCommand "nixos-manual"
|
manual = runCommand "nixos-manual"
|
||||||
{ inherit sources;
|
{ inherit sources;
|
||||||
buildInputs = [ libxml2 libxslt ];
|
nativeBuildInputs = [ buildPackages.libxml2 buildPackages.libxslt ];
|
||||||
meta.description = "The NixOS manual in HTML format";
|
meta.description = "The NixOS manual in HTML format";
|
||||||
allowedReferences = ["out"];
|
allowedReferences = ["out"];
|
||||||
}
|
}
|
||||||
@ -302,7 +302,7 @@ in rec {
|
|||||||
# Generate the NixOS manpages.
|
# Generate the NixOS manpages.
|
||||||
manpages = runCommand "nixos-manpages"
|
manpages = runCommand "nixos-manpages"
|
||||||
{ inherit sources;
|
{ inherit sources;
|
||||||
buildInputs = [ libxml2 libxslt ];
|
nativeBuildInputs = [ buildPackages.libxml2 buildPackages.libxslt ];
|
||||||
allowedReferences = ["out"];
|
allowedReferences = ["out"];
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
version="5.0"
|
version="5.0"
|
||||||
xml:id="sec-release-18.09">
|
xml:id="sec-release-18.09">
|
||||||
|
|
||||||
<title>Release 18.09 (“Jackrabbit”, 2018/09/??)</title>
|
<title>Release 18.09 (“Jellyfish”, 2018/09/??)</title>
|
||||||
|
|
||||||
<section xmlns="http://docbook.org/ns/docbook"
|
<section xmlns="http://docbook.org/ns/docbook"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
@ -10,7 +10,7 @@ with lib;
|
|||||||
i18n = {
|
i18n = {
|
||||||
glibcLocales = mkOption {
|
glibcLocales = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = pkgs.glibcLocales.override {
|
default = pkgs.buildPackages.glibcLocales.override {
|
||||||
allLocales = any (x: x == "all") config.i18n.supportedLocales;
|
allLocales = any (x: x == "all") config.i18n.supportedLocales;
|
||||||
locales = config.i18n.supportedLocales;
|
locales = config.i18n.supportedLocales;
|
||||||
};
|
};
|
||||||
|
@ -36,6 +36,7 @@ with lib;
|
|||||||
networkmanager-vpnc = pkgs.networkmanager-vpnc.override { withGnome = false; };
|
networkmanager-vpnc = pkgs.networkmanager-vpnc.override { withGnome = false; };
|
||||||
networkmanager-iodine = pkgs.networkmanager-iodine.override { withGnome = false; };
|
networkmanager-iodine = pkgs.networkmanager-iodine.override { withGnome = false; };
|
||||||
pinentry = pkgs.pinentry_ncurses;
|
pinentry = pkgs.pinentry_ncurses;
|
||||||
|
gobjectIntrospection = pkgs.gobjectIntrospection.override { x11Support = false; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ in
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
RemainAfterExit = true;
|
RemainAfterExit = true;
|
||||||
ExecStop = "${pkgs.stdenv.shell} -c 'echo 1 > /sys/class/block/${dev}/reset'";
|
ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/class/block/${dev}/reset'";
|
||||||
};
|
};
|
||||||
script = ''
|
script = ''
|
||||||
set -u
|
set -u
|
||||||
|
@ -75,10 +75,10 @@ in
|
|||||||
# Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
|
# Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
|
||||||
services.udev.extraRules =
|
services.udev.extraRules =
|
||||||
''
|
''
|
||||||
KERNEL=="nvidia", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidiactl c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
|
KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
|
||||||
KERNEL=="nvidia_modeset", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia-modeset c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
|
KERNEL=="nvidia_modeset", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-modeset c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
|
||||||
KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia%n c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) %n'"
|
KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia%n c $(grep nvidia-frontend /proc/devices | cut -d \ -f 1) %n'"
|
||||||
KERNEL=="nvidia_uvm", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia-uvm c $(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
|
KERNEL=="nvidia_uvm", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidia-uvm c $(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
boot.blacklistedKernelModules = [ "nouveau" "nvidiafb" ];
|
boot.blacklistedKernelModules = [ "nouveau" "nvidiafb" ];
|
||||||
|
@ -61,7 +61,7 @@ in
|
|||||||
inherit (config.nixpkgs) config overlays system;
|
inherit (config.nixpkgs) config overlays system;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
default = import ../../.. { inherit (cfg) config overlays system; };
|
default = import ../../.. { inherit (cfg) config overlays system crossSystem; };
|
||||||
type = pkgsType;
|
type = pkgsType;
|
||||||
example = literalExample ''import <nixpkgs> {}'';
|
example = literalExample ''import <nixpkgs> {}'';
|
||||||
description = ''
|
description = ''
|
||||||
@ -130,6 +130,18 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
crossSystem = mkOption {
|
||||||
|
type = types.nullOr types.attrs;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
The description of the system we're cross-compiling to, or null
|
||||||
|
if this isn't a cross-compile. See the description of the
|
||||||
|
crossSystem argument in the nixpkgs manual.
|
||||||
|
|
||||||
|
Ignored when <code>nixpkgs.pkgs</code> is set.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
system = mkOption {
|
system = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "i686-linux";
|
example = "i686-linux";
|
||||||
|
@ -85,8 +85,8 @@ in
|
|||||||
revision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
|
revision = mkIf (pathIsDirectory gitRepo) (mkDefault gitCommitId);
|
||||||
versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
|
versionSuffix = mkIf (pathIsDirectory gitRepo) (mkDefault (".git." + gitCommitId));
|
||||||
|
|
||||||
# Note: code names must only increase in alphabetical order.
|
# Note: the first letter is bumped on every release. It's an animal.
|
||||||
codeName = "Jackrabbit";
|
codeName = "Jellyfish";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Generate /etc/os-release. See
|
# Generate /etc/os-release. See
|
||||||
|
@ -6,7 +6,7 @@ let
|
|||||||
cfg = config.programs.rootston;
|
cfg = config.programs.rootston;
|
||||||
|
|
||||||
rootstonWrapped = pkgs.writeScriptBin "rootston" ''
|
rootstonWrapped = pkgs.writeScriptBin "rootston" ''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
if [[ "$#" -ge 1 ]]; then
|
if [[ "$#" -ge 1 ]]; then
|
||||||
exec ${pkgs.rootston}/bin/rootston "$@"
|
exec ${pkgs.rootston}/bin/rootston "$@"
|
||||||
else
|
else
|
||||||
|
@ -13,7 +13,7 @@ let
|
|||||||
|
|
||||||
askPasswordWrapper = pkgs.writeScript "ssh-askpass-wrapper"
|
askPasswordWrapper = pkgs.writeScript "ssh-askpass-wrapper"
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
export DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^DISPLAY=\(.*\)/\1/; t; d')"
|
export DISPLAY="$(systemctl --user show-environment | ${pkgs.gnused}/bin/sed 's/^DISPLAY=\(.*\)/\1/; t; d')"
|
||||||
exec ${askPassword}
|
exec ${askPassword}
|
||||||
'';
|
'';
|
||||||
|
@ -13,7 +13,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
disableScript = pkgs.writeScript "audit-disable" ''
|
disableScript = pkgs.writeScript "audit-disable" ''
|
||||||
#!${pkgs.stdenv.shell} -eu
|
#!${pkgs.runtimeShell} -eu
|
||||||
# Explicitly disable everything, as otherwise journald might start it.
|
# Explicitly disable everything, as otherwise journald might start it.
|
||||||
auditctl -D
|
auditctl -D
|
||||||
auditctl -e 0 -a task,never
|
auditctl -e 0 -a task,never
|
||||||
@ -23,7 +23,7 @@ let
|
|||||||
# put in the store like this. At the same time, it doesn't feel like a huge deal and working
|
# put in the store like this. At the same time, it doesn't feel like a huge deal and working
|
||||||
# around that is a pain so I'm leaving it like this for now.
|
# around that is a pain so I'm leaving it like this for now.
|
||||||
startScript = pkgs.writeScript "audit-start" ''
|
startScript = pkgs.writeScript "audit-start" ''
|
||||||
#!${pkgs.stdenv.shell} -eu
|
#!${pkgs.runtimeShell} -eu
|
||||||
# Clear out any rules we may start with
|
# Clear out any rules we may start with
|
||||||
auditctl -D
|
auditctl -D
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ let
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
stopScript = pkgs.writeScript "audit-stop" ''
|
stopScript = pkgs.writeScript "audit-stop" ''
|
||||||
#!${pkgs.stdenv.shell} -eu
|
#!${pkgs.runtimeShell} -eu
|
||||||
# Clear the rules
|
# Clear the rules
|
||||||
auditctl -D
|
auditctl -D
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ in
|
|||||||
{ src = pkgs.writeText "sudoers-in" cfg.configFile; }
|
{ src = pkgs.writeText "sudoers-in" cfg.configFile; }
|
||||||
# Make sure that the sudoers file is syntactically valid.
|
# Make sure that the sudoers file is syntactically valid.
|
||||||
# (currently disabled - NIXOS-66)
|
# (currently disabled - NIXOS-66)
|
||||||
"${pkgs.sudo}/sbin/visudo -f $src -c && cp $src $out";
|
"${pkgs.buildPackages.sudo}/sbin/visudo -f $src -c && cp $src $out";
|
||||||
target = "sudoers";
|
target = "sudoers";
|
||||||
mode = "0440";
|
mode = "0440";
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,7 @@ let
|
|||||||
hooksDir = let
|
hooksDir = let
|
||||||
mkHookEntry = name: value: ''
|
mkHookEntry = name: value: ''
|
||||||
cat > $out/${name} <<EOF
|
cat > $out/${name} <<EOF
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
set -e
|
set -e
|
||||||
${value}
|
${value}
|
||||||
EOF
|
EOF
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
let
|
let
|
||||||
cfg = config.services.fourStoreEndpoint;
|
cfg = config.services.fourStoreEndpoint;
|
||||||
endpointUser = "fourstorehttp";
|
endpointUser = "fourstorehttp";
|
||||||
run = "${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${endpointUser} -c";
|
run = "${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${endpointUser} -c";
|
||||||
in
|
in
|
||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@ let
|
|||||||
cfg = config.services.fourStore;
|
cfg = config.services.fourStore;
|
||||||
stateDir = "/var/lib/4store";
|
stateDir = "/var/lib/4store";
|
||||||
fourStoreUser = "fourstore";
|
fourStoreUser = "fourstore";
|
||||||
run = "${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${fourStoreUser}";
|
run = "${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${fourStoreUser}";
|
||||||
in
|
in
|
||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ let
|
|||||||
cfg = config.services.emacs;
|
cfg = config.services.emacs;
|
||||||
|
|
||||||
editorScript = pkgs.writeScriptBin "emacseditor" ''
|
editorScript = pkgs.writeScriptBin "emacseditor" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
exec ${cfg.package}/bin/emacsclient --create-frame --alternate-editor ${cfg.package}/bin/emacs
|
exec ${cfg.package}/bin/emacsclient --create-frame --alternate-editor ${cfg.package}/bin/emacs
|
||||||
else
|
else
|
||||||
|
@ -146,7 +146,7 @@ let
|
|||||||
|
|
||||||
echo "Generating hwdb database..."
|
echo "Generating hwdb database..."
|
||||||
# hwdb --update doesn't return error code even on errors!
|
# hwdb --update doesn't return error code even on errors!
|
||||||
res="$(${udev}/bin/udevadm hwdb --update --root=$(pwd) 2>&1)"
|
res="$(${pkgs.buildPackages.udev}/bin/udevadm hwdb --update --root=$(pwd) 2>&1)"
|
||||||
echo "$res"
|
echo "$res"
|
||||||
[ -z "$(echo "$res" | egrep '^Error')" ]
|
[ -z "$(echo "$res" | egrep '^Error')" ]
|
||||||
mv etc/udev/hwdb.bin $out
|
mv etc/udev/hwdb.bin $out
|
||||||
|
@ -57,7 +57,7 @@ in {
|
|||||||
chown ${fahUser} ${stateDir}
|
chown ${fahUser} ${stateDir}
|
||||||
cp -f ${pkgs.writeText "client.cfg" cfg.config} ${stateDir}/client.cfg
|
cp -f ${pkgs.writeText "client.cfg" cfg.config} ${stateDir}/client.cfg
|
||||||
'';
|
'';
|
||||||
script = "${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${fahUser} -c 'cd ${stateDir}; ${pkgs.foldingathome}/bin/fah6'";
|
script = "${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${fahUser} -c 'cd ${stateDir}; ${pkgs.foldingathome}/bin/fah6'";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.foldingAtHome.config = ''
|
services.foldingAtHome.config = ''
|
||||||
|
@ -14,7 +14,7 @@ let
|
|||||||
# ExecStart= command with '@' doesn't work because we start a shell (new
|
# ExecStart= command with '@' doesn't work because we start a shell (new
|
||||||
# process) that creates a new argv[0].)
|
# process) that creates a new argv[0].)
|
||||||
geoip-updater = pkgs.writeScriptBin "geoip-updater" ''
|
geoip-updater = pkgs.writeScriptBin "geoip-updater" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
skipExisting=0
|
skipExisting=0
|
||||||
debug()
|
debug()
|
||||||
{
|
{
|
||||||
|
@ -4,6 +4,8 @@ with lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.gitea;
|
cfg = config.services.gitea;
|
||||||
|
pg = config.services.postgresql;
|
||||||
|
usePostgresql = cfg.database.type == "postgres";
|
||||||
configFile = pkgs.writeText "app.ini" ''
|
configFile = pkgs.writeText "app.ini" ''
|
||||||
APP_NAME = ${cfg.appName}
|
APP_NAME = ${cfg.appName}
|
||||||
RUN_USER = ${cfg.user}
|
RUN_USER = ${cfg.user}
|
||||||
@ -16,6 +18,9 @@ let
|
|||||||
USER = ${cfg.database.user}
|
USER = ${cfg.database.user}
|
||||||
PASSWD = #dbpass#
|
PASSWD = #dbpass#
|
||||||
PATH = ${cfg.database.path}
|
PATH = ${cfg.database.path}
|
||||||
|
${optionalString usePostgresql ''
|
||||||
|
SSL_MODE = disable
|
||||||
|
''}
|
||||||
|
|
||||||
[repository]
|
[repository]
|
||||||
ROOT = ${cfg.repositoryRoot}
|
ROOT = ${cfg.repositoryRoot}
|
||||||
@ -82,7 +87,7 @@ in
|
|||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 3306;
|
default = (if !usePostgresql then 3306 else pg.port);
|
||||||
description = "Database host port.";
|
description = "Database host port.";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -123,6 +128,15 @@ in
|
|||||||
default = "${cfg.stateDir}/data/gitea.db";
|
default = "${cfg.stateDir}/data/gitea.db";
|
||||||
description = "Path to the sqlite3 database file.";
|
description = "Path to the sqlite3 database file.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
createDatabase = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to create a local postgresql database automatically.
|
||||||
|
This only applies if database type "postgres" is selected.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
appName = mkOption {
|
appName = mkOption {
|
||||||
@ -186,10 +200,11 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
services.postgresql.enable = mkIf usePostgresql (mkDefault true);
|
||||||
|
|
||||||
systemd.services.gitea = {
|
systemd.services.gitea = {
|
||||||
description = "gitea";
|
description = "gitea";
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" "postgresql.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.gitea.bin ];
|
path = [ pkgs.gitea.bin ];
|
||||||
|
|
||||||
@ -231,12 +246,31 @@ in
|
|||||||
mkdir -p ${cfg.stateDir}/conf
|
mkdir -p ${cfg.stateDir}/conf
|
||||||
cp -r ${pkgs.gitea.out}/locale ${cfg.stateDir}/conf/locale
|
cp -r ${pkgs.gitea.out}/locale ${cfg.stateDir}/conf/locale
|
||||||
fi
|
fi
|
||||||
|
'' + optionalString (usePostgresql && cfg.database.createDatabase) ''
|
||||||
|
if ! test -e "${cfg.stateDir}/db-created"; then
|
||||||
|
echo "CREATE ROLE ${cfg.database.user}
|
||||||
|
WITH ENCRYPTED PASSWORD '$(head -n1 ${cfg.database.passwordFile})'
|
||||||
|
NOCREATEDB NOCREATEROLE LOGIN" |
|
||||||
|
${pkgs.sudo}/bin/sudo -u ${pg.superUser} ${pg.package}/bin/psql
|
||||||
|
${pkgs.sudo}/bin/sudo -u ${pg.superUser} \
|
||||||
|
${pg.package}/bin/createdb \
|
||||||
|
--owner=${cfg.database.user} \
|
||||||
|
--encoding=UTF8 \
|
||||||
|
--lc-collate=C \
|
||||||
|
--lc-ctype=C \
|
||||||
|
--template=template0 \
|
||||||
|
${cfg.database.name}
|
||||||
|
touch "${cfg.stateDir}/db-created"
|
||||||
|
fi
|
||||||
|
'' + ''
|
||||||
|
chown ${cfg.user} -R ${cfg.stateDir}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
WorkingDirectory = cfg.stateDir;
|
WorkingDirectory = cfg.stateDir;
|
||||||
|
PermissionsStartOnly = true;
|
||||||
ExecStart = "${pkgs.gitea.bin}/bin/gitea web";
|
ExecStart = "${pkgs.gitea.bin}/bin/gitea web";
|
||||||
Restart = "always";
|
Restart = "always";
|
||||||
};
|
};
|
||||||
|
@ -17,7 +17,7 @@ let
|
|||||||
gititSh = hsPkgs: extras: with pkgs; let
|
gititSh = hsPkgs: extras: with pkgs; let
|
||||||
env = gititWithPkgs hsPkgs extras;
|
env = gititWithPkgs hsPkgs extras;
|
||||||
in writeScript "gitit" ''
|
in writeScript "gitit" ''
|
||||||
#!${stdenv.shell}
|
#!${runtimeShell}
|
||||||
cd $HOME
|
cd $HOME
|
||||||
export NIX_GHC="${env}/bin/ghc"
|
export NIX_GHC="${env}/bin/ghc"
|
||||||
export NIX_GHCPKG="${env}/bin/ghc-pkg"
|
export NIX_GHCPKG="${env}/bin/ghc-pkg"
|
||||||
|
@ -55,7 +55,7 @@ in
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = config.users.extraUsers.ihaskell.name;
|
User = config.users.extraUsers.ihaskell.name;
|
||||||
Group = config.users.extraGroups.ihaskell.name;
|
Group = config.users.extraGroups.ihaskell.name;
|
||||||
ExecStart = "${pkgs.stdenv.shell} -c \"cd $HOME;${ihaskell}/bin/ihaskell-notebook\"";
|
ExecStart = "${pkgs.runtimeShell} -c \"cd $HOME;${ihaskell}/bin/ihaskell-notebook\"";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -188,7 +188,7 @@ in {
|
|||||||
description = "Mesos Slave";
|
description = "Mesos Slave";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
path = [ pkgs.stdenv.shellPackage ];
|
path = [ pkgs.runtimeShellPackage ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = ''
|
ExecStart = ''
|
||||||
${pkgs.mesos}/bin/mesos-slave \
|
${pkgs.mesos}/bin/mesos-slave \
|
||||||
|
@ -30,7 +30,7 @@ let
|
|||||||
# /bin/sh in the sandbox as a bind-mount to bash. This means we
|
# /bin/sh in the sandbox as a bind-mount to bash. This means we
|
||||||
# also need to include the entire closure of bash. Nix >= 2.0
|
# also need to include the entire closure of bash. Nix >= 2.0
|
||||||
# provides a /bin/sh by default.
|
# provides a /bin/sh by default.
|
||||||
sh = pkgs.stdenv.shell;
|
sh = pkgs.runtimeShell;
|
||||||
binshDeps = pkgs.writeReferencesToFile sh;
|
binshDeps = pkgs.writeReferencesToFile sh;
|
||||||
in
|
in
|
||||||
pkgs.runCommand "nix.conf" { extraOptions = cfg.extraOptions; } ''
|
pkgs.runCommand "nix.conf" { extraOptions = cfg.extraOptions; } ''
|
||||||
|
@ -43,7 +43,7 @@ let
|
|||||||
|
|
||||||
helpScript = pkgs.writeScriptBin "nixos-help"
|
helpScript = pkgs.writeScriptBin "nixos-help"
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
browser="$BROWSER"
|
browser="$BROWSER"
|
||||||
if [ -z "$browser" ]; then
|
if [ -z "$browser" ]; then
|
||||||
browser="$(type -P xdg-open || true)"
|
browser="$(type -P xdg-open || true)"
|
||||||
|
@ -8,7 +8,7 @@ let
|
|||||||
# in nixpkgs doesn't seem to work properly on NixOS, so let's just fake the two fields SSM
|
# in nixpkgs doesn't seem to work properly on NixOS, so let's just fake the two fields SSM
|
||||||
# looks for. See https://github.com/aws/amazon-ssm-agent/issues/38 for upstream fix.
|
# looks for. See https://github.com/aws/amazon-ssm-agent/issues/38 for upstream fix.
|
||||||
fake-lsb-release = pkgs.writeScriptBin "lsb_release" ''
|
fake-lsb-release = pkgs.writeScriptBin "lsb_release" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-i) echo "nixos";;
|
-i) echo "nixos";;
|
||||||
|
@ -38,7 +38,7 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
shellCmdsForEventScript = eventname: commands: ''
|
shellCmdsForEventScript = eventname: commands: ''
|
||||||
echo "#!${pkgs.stdenv.shell}" > "$out/${eventname}"
|
echo "#!${pkgs.runtimeShell}" > "$out/${eventname}"
|
||||||
echo '${commands}' >> "$out/${eventname}"
|
echo '${commands}' >> "$out/${eventname}"
|
||||||
chmod a+x "$out/${eventname}"
|
chmod a+x "$out/${eventname}"
|
||||||
'';
|
'';
|
||||||
|
@ -14,7 +14,7 @@ let
|
|||||||
nx = cfg.notifications.x11;
|
nx = cfg.notifications.x11;
|
||||||
|
|
||||||
smartdNotify = pkgs.writeScript "smartd-notify.sh" ''
|
smartdNotify = pkgs.writeScript "smartd-notify.sh" ''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
${optionalString nm.enable ''
|
${optionalString nm.enable ''
|
||||||
{
|
{
|
||||||
${pkgs.coreutils}/bin/cat << EOF
|
${pkgs.coreutils}/bin/cat << EOF
|
||||||
|
@ -11,7 +11,7 @@ let
|
|||||||
home = cfg.homeDir;
|
home = cfg.homeDir;
|
||||||
|
|
||||||
startupScript = class: configPath: pkgs.writeScript "xtreemfs-osd.sh" ''
|
startupScript = class: configPath: pkgs.writeScript "xtreemfs-osd.sh" ''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
JAVA_HOME="${pkgs.jdk}"
|
JAVA_HOME="${pkgs.jdk}"
|
||||||
JAVADIR="${xtreemfs}/share/java"
|
JAVADIR="${xtreemfs}/share/java"
|
||||||
JAVA_CALL="$JAVA_HOME/bin/java -ea -cp $JAVADIR/XtreemFS.jar:$JAVADIR/BabuDB.jar:$JAVADIR/Flease.jar:$JAVADIR/protobuf-java-2.5.0.jar:$JAVADIR/Foundation.jar:$JAVADIR/jdmkrt.jar:$JAVADIR/jdmktk.jar:$JAVADIR/commons-codec-1.3.jar"
|
JAVA_CALL="$JAVA_HOME/bin/java -ea -cp $JAVADIR/XtreemFS.jar:$JAVADIR/BabuDB.jar:$JAVADIR/Flease.jar:$JAVADIR/protobuf-java-2.5.0.jar:$JAVADIR/Foundation.jar:$JAVADIR/jdmkrt.jar:$JAVADIR/jdmktk.jar:$JAVADIR/commons-codec-1.3.jar"
|
||||||
|
@ -99,10 +99,10 @@ in
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${u} \
|
${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${u} \
|
||||||
-c '${pkgs.yandex-disk}/bin/yandex-disk token -p ${cfg.password} ${cfg.username} ${dir}/token'
|
-c '${pkgs.yandex-disk}/bin/yandex-disk token -p ${cfg.password} ${cfg.username} ${dir}/token'
|
||||||
|
|
||||||
${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${u} \
|
${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${u} \
|
||||||
-c '${pkgs.yandex-disk}/bin/yandex-disk start --no-daemon -a ${dir}/token -d ${cfg.directory} --exclude-dirs=${cfg.excludes}'
|
-c '${pkgs.yandex-disk}/bin/yandex-disk start --no-daemon -a ${dir}/token -d ${cfg.directory} --exclude-dirs=${cfg.excludes}'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ in
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
${pkgs.su}/bin/su -s ${pkgs.stdenv.shell} ${user} \
|
${pkgs.su}/bin/su -s ${pkgs.runtimeShell} ${user} \
|
||||||
-c 'HOME="${cfg.dataDir}" ${pkgs.amuleDaemon}/bin/amuled'
|
-c 'HOME="${cfg.dataDir}" ${pkgs.amuleDaemon}/bin/amuled'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -54,7 +54,7 @@ let
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
writeShScript = name: text: let dir = pkgs.writeScriptBin name ''
|
writeShScript = name: text: let dir = pkgs.writeScriptBin name ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${text}
|
${text}
|
||||||
''; in "${dir}/bin/${name}";
|
''; in "${dir}/bin/${name}";
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ let
|
|||||||
|
|
||||||
flashpolicydWrapper = pkgs.writeScriptBin "flashpolicyd"
|
flashpolicydWrapper = pkgs.writeScriptBin "flashpolicyd"
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
exec ${flashpolicyd}/Perl_xinetd/in.flashpolicyd.pl \
|
exec ${flashpolicyd}/Perl_xinetd/in.flashpolicyd.pl \
|
||||||
--file=${pkgs.writeText "flashpolixy.xml" cfg.policy} \
|
--file=${pkgs.writeText "flashpolixy.xml" cfg.policy} \
|
||||||
2> /dev/null
|
2> /dev/null
|
||||||
|
@ -116,7 +116,7 @@ in
|
|||||||
include "${cfg.rulesetFile}"
|
include "${cfg.rulesetFile}"
|
||||||
'';
|
'';
|
||||||
checkScript = pkgs.writeScript "nftables-check" ''
|
checkScript = pkgs.writeScript "nftables-check" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
if $(${pkgs.kmod}/bin/lsmod | grep -q ip_tables); then
|
if $(${pkgs.kmod}/bin/lsmod | grep -q ip_tables); then
|
||||||
echo "Unload ip_tables before using nftables!" 1>&2
|
echo "Unload ip_tables before using nftables!" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
mergeHook = pkgs.writeScript "rdnssd-merge-hook" ''
|
mergeHook = pkgs.writeScript "rdnssd-merge-hook" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${pkgs.openresolv}/bin/resolvconf -u
|
${pkgs.openresolv}/bin/resolvconf -u
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
@ -124,7 +124,7 @@ in
|
|||||||
|
|
||||||
listenAddresses = mkOption {
|
listenAddresses = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ "127.0.0.1:631" ];
|
default = [ "localhost:631" ];
|
||||||
example = [ "*:631" ];
|
example = [ "*:631" ];
|
||||||
description = ''
|
description = ''
|
||||||
A list of addresses and ports on which to listen.
|
A list of addresses and ports on which to listen.
|
||||||
@ -321,7 +321,10 @@ in
|
|||||||
''}
|
''}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
serviceConfig.PrivateTmp = true;
|
serviceConfig = {
|
||||||
|
PrivateTmp = true;
|
||||||
|
RuntimeDirectory = [ "cups" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.cups-browsed = mkIf avahiEnabled
|
systemd.services.cups-browsed = mkIf avahiEnabled
|
||||||
|
@ -7,7 +7,7 @@ let
|
|||||||
torify = pkgs.writeTextFile {
|
torify = pkgs.writeTextFile {
|
||||||
name = "tsocks";
|
name = "tsocks";
|
||||||
text = ''
|
text = ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
TSOCKS_CONF_FILE=${pkgs.writeText "tsocks.conf" cfg.tsocks.config} LD_PRELOAD="${pkgs.tsocks}/lib/libtsocks.so $LD_PRELOAD" "$@"
|
TSOCKS_CONF_FILE=${pkgs.writeText "tsocks.conf" cfg.tsocks.config} LD_PRELOAD="${pkgs.tsocks}/lib/libtsocks.so $LD_PRELOAD" "$@"
|
||||||
'';
|
'';
|
||||||
executable = true;
|
executable = true;
|
||||||
|
@ -23,7 +23,7 @@ let
|
|||||||
wrapTorsocks = name: server: pkgs.writeTextFile {
|
wrapTorsocks = name: server: pkgs.writeTextFile {
|
||||||
name = name;
|
name = name;
|
||||||
text = ''
|
text = ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
TORSOCKS_CONF_FILE=${pkgs.writeText "torsocks.conf" (configFile server)} ${pkgs.torsocks}/bin/torsocks "$@"
|
TORSOCKS_CONF_FILE=${pkgs.writeText "torsocks.conf" (configFile server)} ${pkgs.torsocks}/bin/torsocks "$@"
|
||||||
'';
|
'';
|
||||||
executable = true;
|
executable = true;
|
||||||
|
@ -90,7 +90,7 @@ in
|
|||||||
# 1) Only the "transmission" user and group have access to torrents.
|
# 1) Only the "transmission" user and group have access to torrents.
|
||||||
# 2) Optionally update/force specific fields into the configuration file.
|
# 2) Optionally update/force specific fields into the configuration file.
|
||||||
serviceConfig.ExecStartPre = ''
|
serviceConfig.ExecStartPre = ''
|
||||||
${pkgs.stdenv.shell} -c "mkdir -p ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && chmod 770 ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && rm -f ${settingsDir}/settings.json && cp -f ${settingsFile} ${settingsDir}/settings.json"
|
${pkgs.runtimeShell} -c "mkdir -p ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && chmod 770 ${homeDir} ${settingsDir} ${fullSettings.download-dir} ${fullSettings.incomplete-dir} && rm -f ${settingsDir}/settings.json && cp -f ${settingsFile} ${settingsDir}/settings.json"
|
||||||
'';
|
'';
|
||||||
serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
|
serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
|
||||||
serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||||
|
@ -346,7 +346,7 @@ let
|
|||||||
postgresql = serverInfo.fullConfig.services.postgresql.package;
|
postgresql = serverInfo.fullConfig.services.postgresql.package;
|
||||||
|
|
||||||
setupDb = pkgs.writeScript "setup-owncloud-db" ''
|
setupDb = pkgs.writeScript "setup-owncloud-db" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
PATH="${postgresql}/bin"
|
PATH="${postgresql}/bin"
|
||||||
createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
|
createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
|
||||||
createdb "${config.dbName}" -O "${config.dbUser}" || true
|
createdb "${config.dbName}" -O "${config.dbUser}" || true
|
||||||
|
@ -128,7 +128,7 @@ in
|
|||||||
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
|
# Set GTK_DATA_PREFIX so that GTK+ can find the Xfce themes.
|
||||||
export GTK_DATA_PREFIX=${config.system.path}
|
export GTK_DATA_PREFIX=${config.system.path}
|
||||||
|
|
||||||
${pkgs.stdenv.shell} ${pkgs.xfce.xinitrc} &
|
${pkgs.runtimeShell} ${pkgs.xfce.xinitrc} &
|
||||||
waitPID=$!
|
waitPID=$!
|
||||||
'';
|
'';
|
||||||
}];
|
}];
|
||||||
|
@ -14,7 +14,7 @@ let
|
|||||||
default_xserver ${dmcfg.xserverBin}
|
default_xserver ${dmcfg.xserverBin}
|
||||||
xserver_arguments ${toString dmcfg.xserverArgs}
|
xserver_arguments ${toString dmcfg.xserverArgs}
|
||||||
sessiondir ${dmcfg.session.desktops}
|
sessiondir ${dmcfg.session.desktops}
|
||||||
login_cmd exec ${pkgs.stdenv.shell} ${dmcfg.session.script} "%session"
|
login_cmd exec ${pkgs.runtimeShell} ${dmcfg.session.script} "%session"
|
||||||
halt_cmd ${config.systemd.package}/sbin/shutdown -h now
|
halt_cmd ${config.systemd.package}/sbin/shutdown -h now
|
||||||
reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
|
reboot_cmd ${config.systemd.package}/sbin/shutdown -r now
|
||||||
logfile /dev/stderr
|
logfile /dev/stderr
|
||||||
|
@ -61,7 +61,7 @@ in
|
|||||||
apply = set: {
|
apply = set: {
|
||||||
script =
|
script =
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
|
|
||||||
systemConfig=@out@
|
systemConfig=@out@
|
||||||
|
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
environment.systemPackages = [ pkgs.kexectools ];
|
config = lib.mkIf (pkgs.kexectools != null) {
|
||||||
|
environment.systemPackages = [ pkgs.kexectools ];
|
||||||
|
|
||||||
systemd.services."prepare-kexec" =
|
systemd.services."prepare-kexec" =
|
||||||
{ description = "Preparation for kexec";
|
{ description = "Preparation for kexec";
|
||||||
wantedBy = [ "kexec.target" ];
|
wantedBy = [ "kexec.target" ];
|
||||||
before = [ "systemd-kexec.service" ];
|
before = [ "systemd-kexec.service" ];
|
||||||
unitConfig.DefaultDependencies = false;
|
unitConfig.DefaultDependencies = false;
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
path = [ pkgs.kexectools ];
|
path = [ pkgs.kexectools ];
|
||||||
script =
|
script =
|
||||||
''
|
''
|
||||||
p=$(readlink -f /nix/var/nix/profiles/system)
|
p=$(readlink -f /nix/var/nix/profiles/system)
|
||||||
if ! [ -d $p ]; then exit 1; fi
|
if ! [ -d $p ]; then exit 1; fi
|
||||||
exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init"
|
exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ let
|
|||||||
{ splashImage = f cfg.splashImage;
|
{ splashImage = f cfg.splashImage;
|
||||||
grub = f grub;
|
grub = f grub;
|
||||||
grubTarget = f (grub.grubTarget or "");
|
grubTarget = f (grub.grubTarget or "");
|
||||||
shell = "${pkgs.stdenv.shell}";
|
shell = "${pkgs.runtimeShell}";
|
||||||
fullName = (builtins.parseDrvName realGrub.name).name;
|
fullName = (builtins.parseDrvName realGrub.name).name;
|
||||||
fullVersion = (builtins.parseDrvName realGrub.name).version;
|
fullVersion = (builtins.parseDrvName realGrub.name).version;
|
||||||
grubEfi = f grubEfi;
|
grubEfi = f grubEfi;
|
||||||
@ -536,9 +536,9 @@ in
|
|||||||
btrfsprogs = pkgs.btrfs-progs;
|
btrfsprogs = pkgs.btrfs-progs;
|
||||||
};
|
};
|
||||||
in pkgs.writeScript "install-grub.sh" (''
|
in pkgs.writeScript "install-grub.sh" (''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
set -e
|
set -e
|
||||||
export PERL5LIB=${makePerlPath (with pkgs.perlPackages; [ FileSlurp XMLLibXML XMLSAX ListCompare ])}
|
export PERL5LIB=${makePerlPath (with pkgs.perlPackages; [ FileSlurp XMLLibXML XMLSAX XMLSAXBase ListCompare ])}
|
||||||
${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"}
|
${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"}
|
||||||
'' + flip concatMapStrings cfg.mirroredBoots (args: ''
|
'' + flip concatMapStrings cfg.mirroredBoots (args: ''
|
||||||
${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@
|
${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@
|
||||||
|
@ -30,6 +30,50 @@ let
|
|||||||
# mounting `/`, like `/` on a loopback).
|
# mounting `/`, like `/` on a loopback).
|
||||||
fileSystems = filter utils.fsNeededForBoot config.system.build.fileSystems;
|
fileSystems = filter utils.fsNeededForBoot config.system.build.fileSystems;
|
||||||
|
|
||||||
|
# A utility for enumerating the shared-library dependencies of a program
|
||||||
|
findLibs = pkgs.writeShellScriptBin "find-libs" ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
declare -A seen
|
||||||
|
declare -a left
|
||||||
|
|
||||||
|
patchelf="${pkgs.buildPackages.patchelf}/bin/patchelf"
|
||||||
|
|
||||||
|
function add_needed {
|
||||||
|
rpath="$($patchelf --print-rpath $1)"
|
||||||
|
dir="$(dirname $1)"
|
||||||
|
for lib in $($patchelf --print-needed $1); do
|
||||||
|
left+=("$lib" "$rpath" "$dir")
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
add_needed $1
|
||||||
|
|
||||||
|
while [ ''${#left[@]} -ne 0 ]; do
|
||||||
|
next=''${left[0]}
|
||||||
|
rpath=''${left[1]}
|
||||||
|
ORIGIN=''${left[2]}
|
||||||
|
left=("''${left[@]:3}")
|
||||||
|
if [ -z ''${seen[$next]+x} ]; then
|
||||||
|
seen[$next]=1
|
||||||
|
IFS=: read -ra paths <<< $rpath
|
||||||
|
res=
|
||||||
|
for path in "''${paths[@]}"; do
|
||||||
|
path=$(eval "echo $path")
|
||||||
|
if [ -f "$path/$next" ]; then
|
||||||
|
res="$path/$next"
|
||||||
|
echo "$res"
|
||||||
|
add_needed "$res"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -z "$res" ]; then
|
||||||
|
echo "Couldn't satisfy dependency $next" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
# Some additional utilities needed in stage 1, like mount, lvm, fsck
|
# Some additional utilities needed in stage 1, like mount, lvm, fsck
|
||||||
# etc. We don't want to bring in all of those packages, so we just
|
# etc. We don't want to bring in all of those packages, so we just
|
||||||
@ -37,7 +81,7 @@ let
|
|||||||
# we just copy what we need from Glibc and use patchelf to make it
|
# we just copy what we need from Glibc and use patchelf to make it
|
||||||
# work.
|
# work.
|
||||||
extraUtils = pkgs.runCommandCC "extra-utils"
|
extraUtils = pkgs.runCommandCC "extra-utils"
|
||||||
{ buildInputs = [pkgs.nukeReferences];
|
{ nativeBuildInputs = [pkgs.buildPackages.nukeReferences];
|
||||||
allowedReferences = [ "out" ]; # prevent accidents like glibc being included in the initrd
|
allowedReferences = [ "out" ]; # prevent accidents like glibc being included in the initrd
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
@ -103,9 +147,7 @@ let
|
|||||||
# Copy all of the needed libraries
|
# Copy all of the needed libraries
|
||||||
find $out/bin $out/lib -type f | while read BIN; do
|
find $out/bin $out/lib -type f | while read BIN; do
|
||||||
echo "Copying libs for executable $BIN"
|
echo "Copying libs for executable $BIN"
|
||||||
LDD="$(ldd $BIN)" || continue
|
for LIB in $(${findLibs}/bin/find-libs $BIN); do
|
||||||
LIBS="$(echo "$LDD" | awk '{print $3}' | sed '/^$/d')"
|
|
||||||
for LIB in $LIBS; do
|
|
||||||
TGT="$out/lib/$(basename $LIB)"
|
TGT="$out/lib/$(basename $LIB)"
|
||||||
if [ ! -f "$TGT" ]; then
|
if [ ! -f "$TGT" ]; then
|
||||||
SRC="$(readlink -e $LIB)"
|
SRC="$(readlink -e $LIB)"
|
||||||
@ -132,6 +174,7 @@ let
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ -z "${toString pkgs.stdenv.isCross}" ]; then
|
||||||
# Make sure that the patchelf'ed binaries still work.
|
# Make sure that the patchelf'ed binaries still work.
|
||||||
echo "testing patched programs..."
|
echo "testing patched programs..."
|
||||||
$out/bin/ash -c 'echo hello world' | grep "hello world"
|
$out/bin/ash -c 'echo hello world' | grep "hello world"
|
||||||
@ -144,6 +187,7 @@ let
|
|||||||
$out/bin/mdadm --version
|
$out/bin/mdadm --version
|
||||||
|
|
||||||
${config.boot.initrd.extraUtilsCommandsTest}
|
${config.boot.initrd.extraUtilsCommandsTest}
|
||||||
|
fi
|
||||||
''; # */
|
''; # */
|
||||||
|
|
||||||
|
|
||||||
@ -245,7 +289,7 @@ let
|
|||||||
{ src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf"; }
|
{ src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf"; }
|
||||||
''
|
''
|
||||||
target=$out
|
target=$out
|
||||||
${pkgs.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
|
${pkgs.buildPackages.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
|
||||||
'';
|
'';
|
||||||
symlink = "/etc/modprobe.d/ubuntu.conf";
|
symlink = "/etc/modprobe.d/ubuntu.conf";
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ let
|
|||||||
bootStage2 = pkgs.substituteAll {
|
bootStage2 = pkgs.substituteAll {
|
||||||
src = ./stage-2-init.sh;
|
src = ./stage-2-init.sh;
|
||||||
shellDebug = "${pkgs.bashInteractive}/bin/bash";
|
shellDebug = "${pkgs.bashInteractive}/bin/bash";
|
||||||
|
shell = "${pkgs.bash}/bin/bash";
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
inherit (config.nix) readOnlyStore;
|
inherit (config.nix) readOnlyStore;
|
||||||
inherit (config.networking) useHostResolvConf;
|
inherit (config.networking) useHostResolvConf;
|
||||||
|
@ -241,37 +241,37 @@ let
|
|||||||
}
|
}
|
||||||
(mkIf (config.preStart != "")
|
(mkIf (config.preStart != "")
|
||||||
{ serviceConfig.ExecStartPre = makeJobScript "${name}-pre-start" ''
|
{ serviceConfig.ExecStartPre = makeJobScript "${name}-pre-start" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${config.preStart}
|
${config.preStart}
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(mkIf (config.script != "")
|
(mkIf (config.script != "")
|
||||||
{ serviceConfig.ExecStart = makeJobScript "${name}-start" ''
|
{ serviceConfig.ExecStart = makeJobScript "${name}-start" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${config.script}
|
${config.script}
|
||||||
'' + " " + config.scriptArgs;
|
'' + " " + config.scriptArgs;
|
||||||
})
|
})
|
||||||
(mkIf (config.postStart != "")
|
(mkIf (config.postStart != "")
|
||||||
{ serviceConfig.ExecStartPost = makeJobScript "${name}-post-start" ''
|
{ serviceConfig.ExecStartPost = makeJobScript "${name}-post-start" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${config.postStart}
|
${config.postStart}
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(mkIf (config.reload != "")
|
(mkIf (config.reload != "")
|
||||||
{ serviceConfig.ExecReload = makeJobScript "${name}-reload" ''
|
{ serviceConfig.ExecReload = makeJobScript "${name}-reload" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${config.reload}
|
${config.reload}
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(mkIf (config.preStop != "")
|
(mkIf (config.preStop != "")
|
||||||
{ serviceConfig.ExecStop = makeJobScript "${name}-pre-stop" ''
|
{ serviceConfig.ExecStop = makeJobScript "${name}-pre-stop" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${config.preStop}
|
${config.preStop}
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(mkIf (config.postStop != "")
|
(mkIf (config.postStop != "")
|
||||||
{ serviceConfig.ExecStopPost = makeJobScript "${name}-post-stop" ''
|
{ serviceConfig.ExecStopPost = makeJobScript "${name}-post-stop" ''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${config.postStop}
|
${config.postStop}
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
@ -13,7 +13,7 @@ let
|
|||||||
isUnicode = hasSuffix "UTF-8" (toUpper config.i18n.defaultLocale);
|
isUnicode = hasSuffix "UTF-8" (toUpper config.i18n.defaultLocale);
|
||||||
|
|
||||||
optimizedKeymap = pkgs.runCommand "keymap" {
|
optimizedKeymap = pkgs.runCommand "keymap" {
|
||||||
nativeBuildInputs = [ pkgs.kbd ];
|
nativeBuildInputs = [ pkgs.buildPackages.kbd ];
|
||||||
LOADKEYS_KEYMAP_PATH = "${kbdEnv}/share/keymaps/**";
|
LOADKEYS_KEYMAP_PATH = "${kbdEnv}/share/keymaps/**";
|
||||||
} ''
|
} ''
|
||||||
loadkeys -b ${optionalString isUnicode "-u"} "${config.i18n.consoleKeyMap}" > $out
|
loadkeys -b ${optionalString isUnicode "-u"} "${config.i18n.consoleKeyMap}" > $out
|
||||||
|
@ -26,7 +26,7 @@ let
|
|||||||
executable = true;
|
executable = true;
|
||||||
destination = "/bin/bridge-stp";
|
destination = "/bin/bridge-stp";
|
||||||
text = ''
|
text = ''
|
||||||
#!${pkgs.stdenv.shell} -e
|
#!${pkgs.runtimeShell} -e
|
||||||
export PATH="${pkgs.mstpd}/bin"
|
export PATH="${pkgs.mstpd}/bin"
|
||||||
|
|
||||||
BRIDGES=(${concatStringsSep " " (attrNames rstpBridges)})
|
BRIDGES=(${concatStringsSep " " (attrNames rstpBridges)})
|
||||||
@ -64,7 +64,7 @@ let
|
|||||||
|
|
||||||
# udev script that configures a physical wlan device and adds virtual interfaces
|
# udev script that configures a physical wlan device and adds virtual interfaces
|
||||||
wlanDeviceUdevScript = device: interfaceList: pkgs.writeScript "wlan-${device}-udev-script" ''
|
wlanDeviceUdevScript = device: interfaceList: pkgs.writeScript "wlan-${device}-udev-script" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
|
|
||||||
# Change the wireless phy device to a predictable name.
|
# Change the wireless phy device to a predictable name.
|
||||||
if [ -e "/sys/class/net/${device}/phy80211/name" ]; then
|
if [ -e "/sys/class/net/${device}/phy80211/name" ]; then
|
||||||
@ -1158,7 +1158,7 @@ in
|
|||||||
# The script creates the required, new WLAN interfaces interfaces and configures the
|
# The script creates the required, new WLAN interfaces interfaces and configures the
|
||||||
# existing, default interface.
|
# existing, default interface.
|
||||||
curInterfaceScript = device: current: new: pkgs.writeScript "udev-run-script-wlan-interfaces-${device}.sh" ''
|
curInterfaceScript = device: current: new: pkgs.writeScript "udev-run-script-wlan-interfaces-${device}.sh" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
# Change the wireless phy device to a predictable name.
|
# Change the wireless phy device to a predictable name.
|
||||||
${pkgs.iw}/bin/iw phy `${pkgs.coreutils}/bin/cat /sys/class/net/$INTERFACE/phy80211/name` set name ${device}
|
${pkgs.iw}/bin/iw phy `${pkgs.coreutils}/bin/cat /sys/class/net/$INTERFACE/phy80211/name` set name ${device}
|
||||||
|
|
||||||
@ -1177,7 +1177,7 @@ in
|
|||||||
|
|
||||||
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
|
# Udev script to execute for a new WLAN interface. The script configures the new WLAN interface.
|
||||||
newInterfaceScript = device: new: pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" ''
|
newInterfaceScript = device: new: pkgs.writeScript "udev-run-script-wlan-interfaces-${new._iName}.sh" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
# Configure the new interface
|
# Configure the new interface
|
||||||
${pkgs.iw}/bin/iw dev ${new._iName} set type ${new.type}
|
${pkgs.iw}/bin/iw dev ${new._iName} set type ${new.type}
|
||||||
${optionalString (new.type == "mesh" && new.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${new.meshID}"}
|
${optionalString (new.type == "mesh" && new.meshID!=null) "${pkgs.iw}/bin/iw dev ${device} set meshid ${new.meshID}"}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
script = ''
|
script = ''
|
||||||
#!${pkgs.stdenv.shell} -eu
|
#!${pkgs.runtimeShell} -eu
|
||||||
|
|
||||||
echo "attempting to fetch configuration from EC2 user data..."
|
echo "attempting to fetch configuration from EC2 user data..."
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
provisionedHook = pkgs.writeScript "provisioned-hook" ''
|
provisionedHook = pkgs.writeScript "provisioned-hook" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
${config.systemd.package}/bin/systemctl start provisioned.target
|
${config.systemd.package}/bin/systemctl start provisioned.target
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ let
|
|||||||
in
|
in
|
||||||
pkgs.writeScript "container-init"
|
pkgs.writeScript "container-init"
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
|
|
||||||
# Initialise the container side of the veth pair.
|
# Initialise the container side of the veth pair.
|
||||||
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
if [ "$PRIVATE_NETWORK" = 1 ]; then
|
||||||
@ -223,7 +223,7 @@ let
|
|||||||
serviceDirectives = cfg: {
|
serviceDirectives = cfg: {
|
||||||
ExecReload = pkgs.writeScript "reload-container"
|
ExecReload = pkgs.writeScript "reload-container"
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell} -e
|
#! ${pkgs.runtimeShell} -e
|
||||||
${pkgs.nixos-container}/bin/nixos-container run "$INSTANCE" -- \
|
${pkgs.nixos-container}/bin/nixos-container run "$INSTANCE" -- \
|
||||||
bash --login -c "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/bin/switch-to-configuration test"
|
bash --login -c "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/bin/switch-to-configuration test"
|
||||||
'';
|
'';
|
||||||
|
@ -169,7 +169,7 @@ in {
|
|||||||
mkdir -p ${runDir}/ipsec/{etc/racoon,etc/init.d/,usr/sbin/}
|
mkdir -p ${runDir}/ipsec/{etc/racoon,etc/init.d/,usr/sbin/}
|
||||||
ln -fs ${pkgs.ipsecTools}/bin/setkey ${runDir}/ipsec/usr/sbin/setkey
|
ln -fs ${pkgs.ipsecTools}/bin/setkey ${runDir}/ipsec/usr/sbin/setkey
|
||||||
ln -fs ${pkgs.writeScript "racoon-restart" ''
|
ln -fs ${pkgs.writeScript "racoon-restart" ''
|
||||||
#!${pkgs.stdenv.shell}
|
#!${pkgs.runtimeShell}
|
||||||
/var/run/current-system/sw/bin/systemctl $1 racoon
|
/var/run/current-system/sw/bin/systemctl $1 racoon
|
||||||
''} ${runDir}/ipsec/etc/init.d/racoon
|
''} ${runDir}/ipsec/etc/init.d/racoon
|
||||||
'';
|
'';
|
||||||
|
@ -30,7 +30,7 @@ let
|
|||||||
# Shell script to start the VM.
|
# Shell script to start the VM.
|
||||||
startVM =
|
startVM =
|
||||||
''
|
''
|
||||||
#! ${pkgs.stdenv.shell}
|
#! ${pkgs.runtimeShell}
|
||||||
|
|
||||||
NIX_DISK_IMAGE=$(readlink -f ''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}})
|
NIX_DISK_IMAGE=$(readlink -f ''${NIX_DISK_IMAGE:-${config.virtualisation.diskImage}})
|
||||||
|
|
||||||
|
@ -39,7 +39,9 @@ import ./make-test.nix ({pkgs, ... }: {
|
|||||||
$client->waitForUnit("cups.service");
|
$client->waitForUnit("cups.service");
|
||||||
$client->sleep(10); # wait until cups is fully initialized
|
$client->sleep(10); # wait until cups is fully initialized
|
||||||
$client->succeed("lpstat -r") =~ /scheduler is running/ or die;
|
$client->succeed("lpstat -r") =~ /scheduler is running/ or die;
|
||||||
$client->succeed("lpstat -H") =~ "localhost:631" or die;
|
# Test that UNIX socket is used for connections.
|
||||||
|
$client->succeed("lpstat -H") =~ "/var/run/cups/cups.sock" or die;
|
||||||
|
# Test that HTTP server is available too.
|
||||||
$client->succeed("curl --fail http://localhost:631/");
|
$client->succeed("curl --fail http://localhost:631/");
|
||||||
$client->succeed("curl --fail http://server:631/");
|
$client->succeed("curl --fail http://server:631/");
|
||||||
$server->fail("curl --fail --connect-timeout 2 http://client:631/");
|
$server->fail("curl --fail --connect-timeout 2 http://client:631/");
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "drumkv1-${version}";
|
name = "drumkv1-${version}";
|
||||||
version = "0.8.6";
|
version = "0.9.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
|
||||||
sha256 = "0fwxrfyp15a4m77mzz4mwj36mhdrj646whlrkvcys33p2w75f8cq";
|
sha256 = "1vm8lrk3lykdic6fyfpl12jx1xg6rcaid242s8sij30p1ix4zdab";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
|
buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "synthv1-${version}";
|
name = "synthv1-${version}";
|
||||||
version = "0.8.6";
|
version = "0.9.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
url = "mirror://sourceforge/synthv1/${name}.tar.gz";
|
||||||
sha256 = "141ah1gnv5r2k846v5ay15q9q90h01p74240a56vlxqh20z43g92";
|
sha256 = "1skynjg6ip0qfbqqkybfjh6xcwxagq89ghl08f7sp7j0sz5qdcwp";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];
|
buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ];
|
||||||
|
@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
|
|||||||
"--sysconfdir=/etc"
|
"--sysconfdir=/etc"
|
||||||
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
|
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
|
||||||
|
|
||||||
|
NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
|
||||||
|
|
||||||
installFlags = [
|
installFlags = [
|
||||||
"localstatedir=\${TMPDIR}"
|
"localstatedir=\${TMPDIR}"
|
||||||
"sysconfdir=\${out}/etc"
|
"sysconfdir=\${out}/etc"
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "atom-${version}";
|
name = "atom-${version}";
|
||||||
version = "1.24.1";
|
version = "1.25.0";
|
||||||
|
|
||||||
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 = "0llg2q1hn2wmhi80ddwwb2lir2xwwmrw19i2c1y3qmfb0apynhw3";
|
sha256 = "04iiw0qzl9025l4lasz42w5nfnvsmc7vwcf4a9c2hvl9xsyckajh";
|
||||||
name = "${name}.deb";
|
name = "${name}.deb";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
|
makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.21.0";
|
version = "1.21.1";
|
||||||
channel = "stable";
|
channel = "stable";
|
||||||
|
|
||||||
plat = {
|
plat = {
|
||||||
@ -12,9 +12,9 @@ let
|
|||||||
}.${stdenv.system};
|
}.${stdenv.system};
|
||||||
|
|
||||||
sha256 = {
|
sha256 = {
|
||||||
"i686-linux" = "0gib1ljf1zm432cgv9i59dq7n9fblcgy6diy2qy4g1ichi92s2i3";
|
"i686-linux" = "0c5wh6i4yl601hg0r1c8y25lz7j2p4vhisdnvnx9nzd6v4ib27cj";
|
||||||
"x86_64-linux" = "08md8q325z8q3afzxbpzvjfwdjw7phqd7cpq2vadwnd2ixvga2nk";
|
"x86_64-linux" = "19i0wkl0qccq2cm10khy0xxb53a6g2m061g71y54s4cxb4wimc9l";
|
||||||
"x86_64-darwin" = "0jmlhza48k5amb4phwy8k6xyznvivzd7gjsmsn4lmnasrxj5lask";
|
"x86_64-darwin" = "0d1ws4c3n80gypiarqbylyipg273ssc0m29jnrg7hx1mcy5ljb1i";
|
||||||
}.${stdenv.system};
|
}.${stdenv.system};
|
||||||
|
|
||||||
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
|
archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }:
|
{ stdenv, fetchurl, libX11, libXinerama, libXft, zlib, patches ? null }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "dmenu-4.7";
|
name = "dmenu-4.8";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://dl.suckless.org/tools/${name}.tar.gz";
|
url = "http://dl.suckless.org/tools/${name}.tar.gz";
|
||||||
sha256 = "1fgph549i0yw62x02jhfc8qmqk2rnzcnm46bxq6jig1cvkw3amm7";
|
sha256 = "0qfvfrj10xlwd9hkvb57wshryan65bl6423h0qhiw1h76rf5lqgy";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libX11 libXinerama zlib libXft ];
|
buildInputs = [ libX11 libXinerama zlib libXft ];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub
|
{ mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub
|
||||||
, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash }:
|
, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash }:
|
||||||
|
|
||||||
let version = "0.7.3"; in
|
let version = "0.7.4"; in
|
||||||
|
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
name = "latte-dock-${version}";
|
name = "latte-dock-${version}";
|
||||||
@ -10,7 +10,7 @@ mkDerivation {
|
|||||||
owner = "psifidotos";
|
owner = "psifidotos";
|
||||||
repo = "Latte-Dock";
|
repo = "Latte-Dock";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "110bal0dairsvgj624n5k0zabh2qfy9dk560a4wy7icxv0cjh7hg";
|
sha256 = "0w4fphgpdvql31wrypxyfahmr4cv5ap96wjc4270yyawnrqrx0y6";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ];
|
buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ];
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
{ stdenv, fetchFromGitHub, perl, python2Packages, sqlite, gpsbabel
|
{ stdenv, fetchFromGitHub, perl, python, sqlite, gpsbabel
|
||||||
, withWebKit ? false }:
|
, withWebKit ? false }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
# Pytrainer needs a matplotlib with GTK backend. Also ensure we are
|
# Pytrainer needs a matplotlib with GTK backend. Also ensure we are
|
||||||
# using the pygtk with glade support as needed by pytrainer.
|
# using the pygtk with glade support as needed by pytrainer.
|
||||||
matplotlibGtk = python2Packages.matplotlib.override {
|
matplotlibGtk = python.pkgs.matplotlib.override {
|
||||||
enableGtk2 = true;
|
enableGtk2 = true;
|
||||||
pygtk = python2Packages.pyGtkGlade;
|
pygtk = python.pkgs.pyGtkGlade;
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
python2Packages.buildPythonApplication rec {
|
python.pkgs.buildPythonApplication rec {
|
||||||
name = "pytrainer-${version}";
|
name = "pytrainer-${version}";
|
||||||
version = "1.12.0";
|
version = "1.12.0";
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ python2Packages.buildPythonApplication rec {
|
|||||||
--replace "'mysqlclient'," ""
|
--replace "'mysqlclient'," ""
|
||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = with python2Packages; [
|
propagatedBuildInputs = with python.pkgs; [
|
||||||
dateutil lxml matplotlibGtk pyGtkGlade sqlalchemy sqlalchemy_migrate psycopg2
|
dateutil lxml matplotlibGtk pyGtkGlade sqlalchemy sqlalchemy_migrate psycopg2
|
||||||
] ++ stdenv.lib.optional withWebKit [ pywebkitgtk ];
|
] ++ stdenv.lib.optional withWebKit [ pywebkitgtk ];
|
||||||
|
|
||||||
@ -50,6 +50,10 @@ python2Packages.buildPythonApplication rec {
|
|||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
${python.interpreter} -m unittest discover
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/pytrainer/pytrainer/wiki;
|
homepage = https://github.com/pytrainer/pytrainer/wiki;
|
||||||
description = "Application for logging and graphing sporting excursions";
|
description = "Application for logging and graphing sporting excursions";
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "xca-${version}";
|
name = "xca-${version}";
|
||||||
version = "1.4.0";
|
version = "1.4.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/xca/${name}.tar.gz";
|
url = "mirror://sourceforge/xca/${name}.tar.gz";
|
||||||
sha256 = "1gygj6kljj3r1y0pg67mks36vfcz4vizjsqnqdvrk6zlgqjbzm7z";
|
sha256 = "11niik2m4yswkp71hrdh54z5kgkvdg8y0b6wdqbrn6vy1n8gz63q";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
{stdenv, fetchurl, makeWrapper, libX11, pkgconfig, libXaw}:
|
{stdenv, fetchurl, makeWrapper, libX11, pkgconfig, libXaw}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "xfontsel-1.0.5";
|
name = "xfontsel-1.0.6";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://xorg/individual/app/${name}.tar.bz2";
|
url = "mirror://xorg/individual/app/${name}.tar.bz2";
|
||||||
sha256 = "1grir464hy52a71r3mpm9mzvkf7nwr3vk0b1vc27pd3gp588a38p";
|
sha256 = "0700lf6hx7dg88wq1yll7zjvf9gbwh06xff20yffkxb289y0pai5";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -37,7 +37,7 @@ in writeScript "update-${name}" ''
|
|||||||
# versions or removes release versions if we are looking for beta
|
# versions or removes release versions if we are looking for beta
|
||||||
# versions
|
# versions
|
||||||
# - this line pick up latest release
|
# - this line pick up latest release
|
||||||
version=`xidel -q $url --extract "//a" | \
|
version=`xidel -s $url --extract "//a" | \
|
||||||
sed s"/.$//" | \
|
sed s"/.$//" | \
|
||||||
grep "^[0-9]" | \
|
grep "^[0-9]" | \
|
||||||
sort --version-sort | \
|
sort --version-sort | \
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
{ stdenv, fetchurl, kubectl }:
|
{ stdenv, fetchurl, kubectl }:
|
||||||
let
|
let
|
||||||
arch = if stdenv.isLinux
|
isLinux = stdenv.isLinux;
|
||||||
|
arch = if isLinux
|
||||||
then "linux-amd64"
|
then "linux-amd64"
|
||||||
else "darwin-amd64";
|
else "darwin-amd64";
|
||||||
checksum = if stdenv.isLinux
|
checksum = if isLinux
|
||||||
then "07bgny8mfdgv9f6zmk31hxhkwy90wr22js21jz679pkz3gmykxvx"
|
then "1lr2s66kln6rp3sb156br9nfx51bdy654vdjr4vnncz4kp3mljv1"
|
||||||
else "1f6h96gyhsdb03am586kdqn619h4niwlj29j4bypf3yg2sar4p6x";
|
else "04y4ii0w4s00z831q1wzxz6qkc8qfrhwzdrq3wwvrcl0413cza50";
|
||||||
pname = "helm";
|
pname = "helm";
|
||||||
version = "2.8.1";
|
version = "2.8.2";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, lib, fetchFromGitHub, fetchpatch, removeReferencesTo, which, go, go-bindata, makeWrapper, rsync
|
{ stdenv, lib, fetchFromGitHub, fetchpatch, removeReferencesTo, which, go_1_9, go-bindata, makeWrapper, rsync
|
||||||
, iptables, coreutils
|
, iptables, coreutils
|
||||||
, components ? [
|
, components ? [
|
||||||
"cmd/kubeadm"
|
"cmd/kubeadm"
|
||||||
@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1dmq2g138h7fsswmq4l47b44gsl9anmm3ywqyi7y48f1rkvc11mk";
|
sha256 = "1dmq2g138h7fsswmq4l47b44gsl9anmm3ywqyi7y48f1rkvc11mk";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
|
# go > 1.10 should be fixed by https://github.com/kubernetes/kubernetes/pull/60373
|
||||||
|
buildInputs = [ removeReferencesTo makeWrapper which go_1_9 rsync go-bindata ];
|
||||||
|
|
||||||
outputs = ["out" "man" "pause"];
|
outputs = ["out" "man" "pause"];
|
||||||
|
|
||||||
@ -69,7 +70,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
find $out/bin $pause/bin -type f -exec remove-references-to -t ${go} '{}' +
|
find $out/bin $pause/bin -type f -exec remove-references-to -t ${go_1_9} '{}' +
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -4,15 +4,15 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-alicloud";
|
repo = "terraform-provider-alicloud";
|
||||||
version = "1.5.0";
|
version = "1.8.1";
|
||||||
sha256 = "14wrp6szg9mh8bxqqjbx0i654lciw09wghm8h3c6x79ayxan5n8x";
|
sha256 = "127070zsy536pdvjpcj0028iwwrcm4s5gbhvhzxb70fhjvi9sj6v";
|
||||||
};
|
};
|
||||||
archive =
|
archive =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-archive";
|
repo = "terraform-provider-archive";
|
||||||
version = "1.0.0";
|
version = "1.0.1";
|
||||||
sha256 = "0z85fpd70m2w59vxp82d8ipylaazf6l890rkjca4dm14rkq352zn";
|
sha256 = "1qxw9c38hsdmxyrrnl7s9iwlzjrwzml2m74bs4iw120gljpqphqz";
|
||||||
};
|
};
|
||||||
arukas =
|
arukas =
|
||||||
{
|
{
|
||||||
@ -32,8 +32,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-aws";
|
repo = "terraform-provider-aws";
|
||||||
version = "1.6.0";
|
version = "1.11.0";
|
||||||
sha256 = "0x4lrpq00z5ww8awym7p6kwrf17ghai36zj8hr10n4qraf8a9ma6";
|
sha256 = "14r54772qi6c73l50f6gp4j08rd03c2h4v1fwcydfc6kyf23f8k6";
|
||||||
};
|
};
|
||||||
azure-classic =
|
azure-classic =
|
||||||
{
|
{
|
||||||
@ -46,8 +46,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-azurerm";
|
repo = "terraform-provider-azurerm";
|
||||||
version = "1.0.0";
|
version = "1.2.0";
|
||||||
sha256 = "0grpc7apfn03slkkily8agl8pv6mc0j58ch8fa6jgqcqy6dbd0kh";
|
sha256 = "10j7lk3rrlix04pcnnz25h0bm336nnmf3c2a1760v272sjdph51z";
|
||||||
};
|
};
|
||||||
bitbucket =
|
bitbucket =
|
||||||
{
|
{
|
||||||
@ -102,8 +102,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-cobbler";
|
repo = "terraform-provider-cobbler";
|
||||||
version = "1.0.0";
|
version = "1.0.1";
|
||||||
sha256 = "0v7j9r2ic3ks2hy80mx5xay05m6r52vclsbbbf9vb0srnrvz21gy";
|
sha256 = "1z0iijfrbbdrgszvc7jlcr4105zragbc0iq8x48vi24yipqgf5a8";
|
||||||
};
|
};
|
||||||
consul =
|
consul =
|
||||||
{
|
{
|
||||||
@ -172,15 +172,15 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-fastly";
|
repo = "terraform-provider-fastly";
|
||||||
version = "0.1.3";
|
version = "0.1.4";
|
||||||
sha256 = "0q331j91c1kns01yhvbxrq0vf21653ch6fvkzlx61337az7jhky8";
|
sha256 = "0x8s11c30k9a95mafyb2zl3wh9hgbdm7jgajzy5y4xnnr96ca13k";
|
||||||
};
|
};
|
||||||
github =
|
github =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-github";
|
repo = "terraform-provider-github";
|
||||||
version = "0.1.1";
|
version = "1.0.0";
|
||||||
sha256 = "0f6nk9nb8h8247rz7x1w11amp0qdcmy1alr8jgd2chrjv9f8nif0";
|
sha256 = "0nca90s4bangraly1pcn3jfkfksaw0g2chs5ba6m7z6bhkrj2ylb";
|
||||||
};
|
};
|
||||||
gitlab =
|
gitlab =
|
||||||
{
|
{
|
||||||
@ -193,15 +193,15 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-google";
|
repo = "terraform-provider-google";
|
||||||
version = "1.4.0";
|
version = "1.7.0";
|
||||||
sha256 = "0nlm02ibp2w4m38pvmw6r29807863h23y8k00ywmkcr7yiy1zilr";
|
sha256 = "1q38z3gihsbxlra1vzgsg1ss8q24f5vkj6k8pvvqjb2rzqpkk5cm";
|
||||||
};
|
};
|
||||||
grafana =
|
grafana =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-grafana";
|
repo = "terraform-provider-grafana";
|
||||||
version = "1.0.0";
|
version = "1.0.1";
|
||||||
sha256 = "0fsdin1rd7hah6pp3x568db2mmk66q0fhiplsri7vyj03n3z55v2";
|
sha256 = "1dvd7dy039ranlkvnbililk2lzr6cffwc4jsgs6lk3hfxhrq8bns";
|
||||||
};
|
};
|
||||||
heroku =
|
heroku =
|
||||||
{
|
{
|
||||||
@ -235,8 +235,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-influxdb";
|
repo = "terraform-provider-influxdb";
|
||||||
version = "0.1.0";
|
version = "1.0.0";
|
||||||
sha256 = "0msc6maxsiwmsg8ppdfj1397c66llhaf15nc4hmr2h6dxqkb5wl5";
|
sha256 = "1w1izzs22b2w2qmpdxbhaj9kvnfyw0wlq3nigrigwwvqav43knh9";
|
||||||
};
|
};
|
||||||
kubernetes =
|
kubernetes =
|
||||||
{
|
{
|
||||||
@ -291,8 +291,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-newrelic";
|
repo = "terraform-provider-newrelic";
|
||||||
version = "0.1.1";
|
version = "1.0.0";
|
||||||
sha256 = "1fqgxcspkgm3ncsqbvw79h5n09agba7q80nz0mrq09x0pyk8y051";
|
sha256 = "1bcxq4f50qci54gckx4yax2v2qpazp10n5vcci4cba0bf5l8zx62";
|
||||||
};
|
};
|
||||||
nomad =
|
nomad =
|
||||||
{
|
{
|
||||||
@ -305,8 +305,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-ns1";
|
repo = "terraform-provider-ns1";
|
||||||
version = "0.1.0";
|
version = "1.0.0";
|
||||||
sha256 = "1in9ggrvxfb3maxhgiv997hndkpnqpgx1c1365lfizhp7km5ncvj";
|
sha256 = "0zjdhz6miwlg3b68pbd99c6nw7hhyzxy736734xz8g3w89xn18f5";
|
||||||
};
|
};
|
||||||
null =
|
null =
|
||||||
{
|
{
|
||||||
@ -326,15 +326,15 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-opc";
|
repo = "terraform-provider-opc";
|
||||||
version = "1.0.1";
|
version = "1.1.0";
|
||||||
sha256 = "0r8xczb1vy1h6ka97x7x025d030m7d01r52bbmf2z9sh81hhsa1x";
|
sha256 = "19yip5v00b57j3h7870hw51nsxcwib7mlhdzzn276z74af6zirsr";
|
||||||
};
|
};
|
||||||
openstack =
|
openstack =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-openstack";
|
repo = "terraform-provider-openstack";
|
||||||
version = "1.1.0";
|
version = "1.3.0";
|
||||||
sha256 = "1w747qbk24b18v6x7l4n08pxnwak395fq1grajpxf3qw6afchjdj";
|
sha256 = "0pyp95i6z6il2kl28cvilqi81wqs076d6f0zacjyvmn1d0blqrnx";
|
||||||
};
|
};
|
||||||
opentelekomcloud =
|
opentelekomcloud =
|
||||||
{
|
{
|
||||||
@ -361,22 +361,29 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-packet";
|
repo = "terraform-provider-packet";
|
||||||
version = "1.1.0";
|
version = "1.2.0";
|
||||||
sha256 = "0848y78jri1kzd70xcgv0p62yww46d0kr9zpqwh32m866xx5isfi";
|
sha256 = "0jk8wwm7srjxc3mspqd9szlq8fd63bhdgkzwdjr2fvv4ivj17xp4";
|
||||||
};
|
};
|
||||||
pagerduty =
|
pagerduty =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-pagerduty";
|
repo = "terraform-provider-pagerduty";
|
||||||
version = "0.1.2";
|
version = "1.0.0";
|
||||||
sha256 = "1dqzi53bnk4qcjhlimr13352nzb1nsij7354zapz2sgnz21v89mm";
|
sha256 = "113anbcpp8ab111jm19h7d9i5sds76msgnk8xvwk8qf6500ivfqa";
|
||||||
|
};
|
||||||
|
panos =
|
||||||
|
{
|
||||||
|
owner = "terraform-providers";
|
||||||
|
repo = "terraform-provider-panos";
|
||||||
|
version = "1.0.0";
|
||||||
|
sha256 = "1pslp8pas1p90bmxp1yqmackqkbxrw2sgcm88ibz8l4k43vwks76";
|
||||||
};
|
};
|
||||||
postgresql =
|
postgresql =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-postgresql";
|
repo = "terraform-provider-postgresql";
|
||||||
version = "0.1.0";
|
version = "0.1.1";
|
||||||
sha256 = "0gg48b2zn18ynvhnabvyfvw5wif0m1a852798wahv8fbv5d1vh7j";
|
sha256 = "0ls5z02vaalcrbaq375qnk0267pb17rpsx4s3plfnr7qclv21pwn";
|
||||||
};
|
};
|
||||||
powerdns =
|
powerdns =
|
||||||
{
|
{
|
||||||
@ -389,8 +396,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-profitbricks";
|
repo = "terraform-provider-profitbricks";
|
||||||
version = "1.0.1";
|
version = "1.1.1";
|
||||||
sha256 = "02blr487pbp7myw2l6nib9g1a8vplk9khakxaj9wbg779vp8wvcg";
|
sha256 = "0sn48adgpjw20a6jwagarnh5jasq0v36zsbd204j0vx4iam3vm9m";
|
||||||
};
|
};
|
||||||
rabbitmq =
|
rabbitmq =
|
||||||
{
|
{
|
||||||
@ -424,8 +431,8 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-scaleway";
|
repo = "terraform-provider-scaleway";
|
||||||
version = "1.0.0";
|
version = "1.1.0";
|
||||||
sha256 = "0zp9hhvlcn6cpnblwrr03icbagzk745b0lrm5bs23crbnddal905";
|
sha256 = "10ghzwss3n95yln7brzwghkc0gv7bkmyml7zlj7hfbkjr3382m1p";
|
||||||
};
|
};
|
||||||
softlayer =
|
softlayer =
|
||||||
{
|
{
|
||||||
@ -466,15 +473,15 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-tls";
|
repo = "terraform-provider-tls";
|
||||||
version = "1.0.1";
|
version = "1.1.0";
|
||||||
sha256 = "0mzm1pkqgcslz3j4an1vpx92hnqa53ly0kp3zix8kp2kfnn17qky";
|
sha256 = "1kzq6al9rzpmk98bmxcf5gjx5s28gfjp1xvdsnd4a113pljn0ddb";
|
||||||
};
|
};
|
||||||
triton =
|
triton =
|
||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-triton";
|
repo = "terraform-provider-triton";
|
||||||
version = "0.4.1";
|
version = "0.4.2";
|
||||||
sha256 = "09zljia422afm565d3qm57j5y1n12h52bgyqz6s1s8dmcdygd75g";
|
sha256 = "0nid5sp8xskw5wmc0dbkw6m87bmyb37p9ck9xm74nrvdzqjxz5ml";
|
||||||
};
|
};
|
||||||
ultradns =
|
ultradns =
|
||||||
{
|
{
|
||||||
@ -501,7 +508,7 @@
|
|||||||
{
|
{
|
||||||
owner = "terraform-providers";
|
owner = "terraform-providers";
|
||||||
repo = "terraform-provider-vsphere";
|
repo = "terraform-provider-vsphere";
|
||||||
version = "1.1.1";
|
version = "1.3.3";
|
||||||
sha256 = "1y209bwkk79ycxjl3b6c20n0z2g5d6njna85w68a0w6npk88zva9";
|
sha256 = "1z6v8hagpjm8573d36v3nak5h7hn3jyq2f4m93k1adygvs3n9yx7";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -13,13 +13,13 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "dino-unstable-2018-02-11";
|
name = "dino-unstable-2018-03-10";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dino";
|
owner = "dino";
|
||||||
repo = "dino";
|
repo = "dino";
|
||||||
rev = "5436d716c0f508eb8ab70f322da862f996ce421e";
|
rev = "4ccdc1d0920a93b313d81b4014b6f45efb49b1fe";
|
||||||
sha256 = "0yxkhl9xm5f0j2i9vxgyabpa5fwja0329fmg0878mqsm89nzz3am";
|
sha256 = "0d9698zi09s107zva6cgip7xxmdby0zfmqvka4n0khxrsnii5awq";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,14 +5,14 @@
|
|||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "6.1.5";
|
version = "6.1.6";
|
||||||
name = "seafile-client-${version}";
|
name = "seafile-client-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "haiwen";
|
owner = "haiwen";
|
||||||
repo = "seafile-client";
|
repo = "seafile-client";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1ahz55cw2p3s78x5f77drz4h2jhknfzpkk83qd0ggma31q1pnpl9";
|
sha256 = "0r02frlspjq8k0zz1z4wh2sx3jm6b1qby5mxg394sb3rjdxb8jhk";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig cmake makeWrapper ];
|
nativeBuildInputs = [ pkgconfig cmake makeWrapper ];
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "R-3.4.3";
|
name = "R-3.4.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
|
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
|
||||||
sha256 = "09pl0w01fr09bsrwd7nz2r5psysj0z93w4chz3hm2havvqqvhg3s";
|
sha256 = "0dq3jsnwsb5j3fhl0wi3p5ycv8avf8s5j1y4ap3d2mkjmcppvsdk";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "spyder";
|
pname = "spyder";
|
||||||
version = "3.2.6";
|
version = "3.2.7";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "87d6a4f5ee1aac4284461ee3584c3ade50cb53feb3fe35abebfdfb9be18c526a";
|
sha256 = "b5bb8fe0a556930dc09b68fa2741a0de3da6488843ec960e0c62f1f3b2e08e2f";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Somehow setuptools can't find pyqt5. Maybe because the dist-info folder is missing?
|
# Somehow setuptools can't find pyqt5. Maybe because the dist-info folder is missing?
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
with python2Packages;
|
with python2Packages;
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
version = "0.3.0";
|
version = "0.3.1";
|
||||||
pname = "nbstripout";
|
pname = "nbstripout";
|
||||||
|
|
||||||
# Mercurial should be added as a build input but because it's a Python
|
# Mercurial should be added as a build input but because it's a Python
|
||||||
@ -14,7 +14,7 @@ buildPythonApplication rec {
|
|||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "126xhjma4a0k7gq58hbqglhb3rai0a576azz7g8gmqjr3kl0264v";
|
sha256 = "b997c99b8bbb865988202d2f005cdaabb2598b07dad891c302a147a5871a4a95";
|
||||||
};
|
};
|
||||||
|
|
||||||
# for some reason, darwin uses /bin/sh echo native instead of echo binary, so
|
# for some reason, darwin uses /bin/sh echo native instead of echo binary, so
|
||||||
|
@ -73,21 +73,21 @@ assert drmSupport -> available libdrm;
|
|||||||
let
|
let
|
||||||
# Purity: Waf is normally downloaded by bootstrap.py, but
|
# Purity: Waf is normally downloaded by bootstrap.py, but
|
||||||
# for purity reasons this behavior should be avoided.
|
# for purity reasons this behavior should be avoided.
|
||||||
wafVersion = "1.9.8";
|
wafVersion = "1.9.15";
|
||||||
waf = fetchurl {
|
waf = fetchurl {
|
||||||
urls = [ "http://waf.io/waf-${wafVersion}"
|
urls = [ "http://waf.io/waf-${wafVersion}"
|
||||||
"http://www.freehackers.org/~tnagy/release/waf-${wafVersion}" ];
|
"http://www.freehackers.org/~tnagy/release/waf-${wafVersion}" ];
|
||||||
sha256 = "1gsd3zza1wixv2vhvq3inp4vb71i41a1kbwqnwixhnvdmcmw8z8n";
|
sha256 = "0qrnlv91cb0v221w8a0fi4wxm99q2hpz10rkyyk4akcsvww6xrw5";
|
||||||
};
|
};
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "mpv-${version}";
|
name = "mpv-${version}";
|
||||||
version = "0.27.0";
|
version = "0.27.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "mpv-player";
|
owner = "mpv-player";
|
||||||
repo = "mpv";
|
repo = "mpv";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0746kmsg69675y5c70vn8imcr9d1zpjz97f27xr1vx00yjpd518v";
|
sha256 = "1ivyyqajkxq5c1zxp0dm7pljvianhgvwl3dbghgpzyrch59k5wnr";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
@ -95,11 +95,6 @@ in stdenv.mkDerivation rec {
|
|||||||
url = "https://github.com/mpv-player/mpv/commit/2ecf240b1cd20875991a5b18efafbe799864ff7f.patch";
|
url = "https://github.com/mpv-player/mpv/commit/2ecf240b1cd20875991a5b18efafbe799864ff7f.patch";
|
||||||
sha256 = "1sr0770rvhsgz8d7ysr9qqp4g9gwdhgj8g3rgnz90wl49lgrykhb";
|
sha256 = "1sr0770rvhsgz8d7ysr9qqp4g9gwdhgj8g3rgnz90wl49lgrykhb";
|
||||||
})
|
})
|
||||||
(fetchpatch {
|
|
||||||
name = "CVE-2018-6360.patch";
|
|
||||||
url = https://salsa.debian.org/multimedia-team/mpv/raw/ddface85a1adfdfe02ffb25b5ac7fac715213b97/debian/patches/09_ytdl-hook-whitelist-protocols.patch;
|
|
||||||
sha256 = "1gb1lkjbr8rv4v9ji6w5z97kbxbi16dbwk2255ajbvngjrc7vivv";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
# script that sets up the right environment variables so that the
|
# script that sets up the right environment variables so that the
|
||||||
# compiler and the linker just "work".
|
# compiler and the linker just "work".
|
||||||
|
|
||||||
{ name ? "", stdenvNoCC, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
{ name ? ""
|
||||||
|
, stdenvNoCC, nativeTools, propagateDoc ? !nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
||||||
, bintools ? null, libc ? null
|
, bintools ? null, libc ? null
|
||||||
, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null
|
, coreutils ? null, shell ? stdenvNoCC.shell, gnugrep ? null
|
||||||
, extraPackages ? [], extraBuildCommands ? ""
|
, extraPackages ? [], extraBuildCommands ? ""
|
||||||
@ -15,7 +16,7 @@
|
|||||||
|
|
||||||
with stdenvNoCC.lib;
|
with stdenvNoCC.lib;
|
||||||
|
|
||||||
assert nativeTools -> nativePrefix != "";
|
assert nativeTools -> !propagateDoc && nativePrefix != "";
|
||||||
assert !nativeTools ->
|
assert !nativeTools ->
|
||||||
bintools != null && coreutils != null && gnugrep != null;
|
bintools != null && coreutils != null && gnugrep != null;
|
||||||
assert !(nativeLibc && noLibc);
|
assert !(nativeLibc && noLibc);
|
||||||
@ -83,7 +84,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
inherit targetPrefix infixSalt;
|
inherit targetPrefix infixSalt;
|
||||||
|
|
||||||
outputs = [ "out" "info" "man" ];
|
outputs = [ "out" ] ++ optionals propagateDoc [ "man" "info" ];
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit bintools libc nativeTools nativeLibc nativePrefix;
|
inherit bintools libc nativeTools nativeLibc nativePrefix;
|
||||||
@ -111,7 +112,7 @@ stdenv.mkDerivation {
|
|||||||
''
|
''
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
mkdir -p $out/bin {$out,$info,$man}/nix-support
|
mkdir -p $out/bin $out/nix-support
|
||||||
|
|
||||||
wrap() {
|
wrap() {
|
||||||
local dst="$1"
|
local dst="$1"
|
||||||
@ -244,28 +245,27 @@ stdenv.mkDerivation {
|
|||||||
'')
|
'')
|
||||||
|
|
||||||
+ optionalString (!nativeTools) ''
|
+ optionalString (!nativeTools) ''
|
||||||
|
|
||||||
##
|
##
|
||||||
## User env support
|
## User env support
|
||||||
##
|
##
|
||||||
|
|
||||||
# Propagate the underling unwrapped bintools so that if you
|
# Propagate the underling unwrapped bintools so that if you
|
||||||
# install the wrapper, you get tools like objdump, the manpages,
|
# install the wrapper, you get tools like objdump (same for any
|
||||||
# etc. as well (same for any binaries of libc).
|
# binaries of libc).
|
||||||
printWords ${bintools_bin} ${if libc == null then "" else libc_bin} > $out/nix-support/propagated-user-env-packages
|
printWords ${bintools_bin} ${if libc == null then "" else libc_bin} > $out/nix-support/propagated-user-env-packages
|
||||||
|
''
|
||||||
|
|
||||||
|
+ optionalString propagateDoc ''
|
||||||
##
|
##
|
||||||
## Man page and info support
|
## Man page and info support
|
||||||
##
|
##
|
||||||
|
|
||||||
printWords ${bintools.info or ""} \
|
mkdir -p $man/nix-support $info/nix-support
|
||||||
>> $info/nix-support/propagated-build-inputs
|
printWords ${bintools.man or ""} >> $man/nix-support/propagated-build-inputs
|
||||||
printWords ${bintools.man or ""} \
|
printWords ${bintools.info or ""} >> $info/nix-support/propagated-build-inputs
|
||||||
>> $man/nix-support/propagated-build-inputs
|
|
||||||
''
|
''
|
||||||
|
|
||||||
+ ''
|
+ ''
|
||||||
|
|
||||||
##
|
##
|
||||||
## Hardening support
|
## Hardening support
|
||||||
##
|
##
|
||||||
@ -293,8 +293,8 @@ stdenv.mkDerivation {
|
|||||||
##
|
##
|
||||||
## Extra custom steps
|
## Extra custom steps
|
||||||
##
|
##
|
||||||
|
|
||||||
''
|
''
|
||||||
|
|
||||||
+ extraBuildCommands;
|
+ extraBuildCommands;
|
||||||
|
|
||||||
inherit dynamicLinker expand-response-params;
|
inherit dynamicLinker expand-response-params;
|
||||||
|
@ -9,7 +9,6 @@ var_templates_list=(
|
|||||||
NIX+CFLAGS_LINK
|
NIX+CFLAGS_LINK
|
||||||
NIX+CXXSTDLIB_COMPILE
|
NIX+CXXSTDLIB_COMPILE
|
||||||
NIX+CXXSTDLIB_LINK
|
NIX+CXXSTDLIB_LINK
|
||||||
NIX+GNATFLAGS_COMPILE
|
|
||||||
)
|
)
|
||||||
var_templates_bool=(
|
var_templates_bool=(
|
||||||
NIX+ENFORCE_NO_NATIVE
|
NIX+ENFORCE_NO_NATIVE
|
||||||
@ -51,10 +50,6 @@ if [ -e @out@/nix-support/cc-cflags ]; then
|
|||||||
NIX_@infixSalt@_CFLAGS_COMPILE="$(< @out@/nix-support/cc-cflags) $NIX_@infixSalt@_CFLAGS_COMPILE"
|
NIX_@infixSalt@_CFLAGS_COMPILE="$(< @out@/nix-support/cc-cflags) $NIX_@infixSalt@_CFLAGS_COMPILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e @out@/nix-support/gnat-cflags ]; then
|
|
||||||
NIX_@infixSalt@_GNATFLAGS_COMPILE="$(< @out@/nix-support/gnat-cflags) $NIX_@infixSalt@_GNATFLAGS_COMPILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e @out@/nix-support/cc-ldflags ]; then
|
if [ -e @out@/nix-support/cc-ldflags ]; then
|
||||||
NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/cc-ldflags)"
|
NIX_@infixSalt@_LDFLAGS+=" $(< @out@/nix-support/cc-ldflags)"
|
||||||
fi
|
fi
|
||||||
|
@ -5,24 +5,22 @@
|
|||||||
# script that sets up the right environment variables so that the
|
# script that sets up the right environment variables so that the
|
||||||
# compiler and the linker just "work".
|
# compiler and the linker just "work".
|
||||||
|
|
||||||
{ name ? "", stdenvNoCC, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
{ name ? ""
|
||||||
|
, stdenvNoCC, nativeTools, propagateDoc ? !nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
|
||||||
, cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell
|
, cc ? null, libc ? null, bintools, coreutils ? null, shell ? stdenvNoCC.shell
|
||||||
, zlib ? null, extraPackages ? [], extraBuildCommands ? ""
|
, extraPackages ? [], extraBuildCommands ? ""
|
||||||
, isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null
|
, isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null
|
||||||
, buildPackages ? {}
|
, buildPackages ? {}
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenvNoCC.lib;
|
with stdenvNoCC.lib;
|
||||||
|
|
||||||
assert nativeTools -> nativePrefix != "";
|
assert nativeTools -> !propagateDoc && nativePrefix != "";
|
||||||
assert !nativeTools ->
|
assert !nativeTools ->
|
||||||
cc != null && coreutils != null && gnugrep != null;
|
cc != null && coreutils != null && gnugrep != null;
|
||||||
assert !(nativeLibc && noLibc);
|
assert !(nativeLibc && noLibc);
|
||||||
assert (noLibc || nativeLibc) == (libc == null);
|
assert (noLibc || nativeLibc) == (libc == null);
|
||||||
|
|
||||||
# For ghdl (the vhdl language provider to gcc) we need zlib in the wrapper.
|
|
||||||
assert cc.langVhdl or false -> zlib != null;
|
|
||||||
|
|
||||||
let
|
let
|
||||||
stdenv = stdenvNoCC;
|
stdenv = stdenvNoCC;
|
||||||
inherit (stdenv) hostPlatform targetPlatform;
|
inherit (stdenv) hostPlatform targetPlatform;
|
||||||
@ -84,7 +82,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
inherit targetPrefix infixSalt;
|
inherit targetPrefix infixSalt;
|
||||||
|
|
||||||
outputs = [ "out" "man" ];
|
outputs = [ "out" ] ++ optionals propagateDoc [ "man" "info" ];
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
# "cc" is the generic name for a C compiler, but there is no one for package
|
# "cc" is the generic name for a C compiler, but there is no one for package
|
||||||
@ -115,7 +113,7 @@ stdenv.mkDerivation {
|
|||||||
''
|
''
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
mkdir -p $out/bin $out/nix-support $man/nix-support
|
mkdir -p $out/bin $out/nix-support
|
||||||
|
|
||||||
wrap() {
|
wrap() {
|
||||||
local dst="$1"
|
local dst="$1"
|
||||||
@ -188,17 +186,6 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
+ optionalString cc.langGo or false ''
|
+ optionalString cc.langGo or false ''
|
||||||
wrap ${targetPrefix}gccgo ${./cc-wrapper.sh} $ccPath/${targetPrefix}gccgo
|
wrap ${targetPrefix}gccgo ${./cc-wrapper.sh} $ccPath/${targetPrefix}gccgo
|
||||||
''
|
|
||||||
|
|
||||||
+ optionalString cc.langAda or false ''
|
|
||||||
wrap ${targetPrefix}gnatgcc ${./cc-wrapper.sh} $ccPath/${targetPrefix}gnatgcc
|
|
||||||
wrap ${targetPrefix}gnatmake ${./gnat-wrapper.sh} $ccPath/${targetPrefix}gnatmake
|
|
||||||
wrap ${targetPrefix}gnatbind ${./gnat-wrapper.sh} $ccPath/${targetPrefix}gnatbind
|
|
||||||
wrap ${targetPrefix}gnatlink ${./gnatlink-wrapper.sh} $ccPath/${targetPrefix}gnatlink
|
|
||||||
''
|
|
||||||
|
|
||||||
+ optionalString cc.langVhdl or false ''
|
|
||||||
ln -s $ccPath/${targetPrefix}ghdl $out/bin/${targetPrefix}ghdl
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = [ bintools ];
|
propagatedBuildInputs = [ bintools ];
|
||||||
@ -246,7 +233,6 @@ stdenv.mkDerivation {
|
|||||||
''
|
''
|
||||||
|
|
||||||
+ optionalString (!nativeTools) ''
|
+ optionalString (!nativeTools) ''
|
||||||
|
|
||||||
##
|
##
|
||||||
## Initial CFLAGS
|
## Initial CFLAGS
|
||||||
##
|
##
|
||||||
@ -262,33 +248,21 @@ stdenv.mkDerivation {
|
|||||||
ccLDFlags+=" -L${cc_solib}/lib"
|
ccLDFlags+=" -L${cc_solib}/lib"
|
||||||
ccCFlags+=" -B${cc_solib}/lib"
|
ccCFlags+=" -B${cc_solib}/lib"
|
||||||
|
|
||||||
${optionalString cc.langVhdl or false ''
|
|
||||||
ccLDFlags+=" -L${zlib.out}/lib"
|
|
||||||
''}
|
|
||||||
|
|
||||||
# Find the gcc libraries path (may work only without multilib).
|
|
||||||
${optionalString cc.langAda or false ''
|
|
||||||
basePath=`echo ${cc_solib}/lib/*/*/*`
|
|
||||||
ccCFlags+=" -B$basePath -I$basePath/adainclude"
|
|
||||||
gnatCFlags="-aI$basePath/adainclude -aO$basePath/adalib"
|
|
||||||
echo "$gnatCFlags" > $out/nix-support/gnat-cflags
|
|
||||||
''}
|
|
||||||
|
|
||||||
echo "$ccLDFlags" > $out/nix-support/cc-ldflags
|
echo "$ccLDFlags" > $out/nix-support/cc-ldflags
|
||||||
echo "$ccCFlags" > $out/nix-support/cc-cflags
|
echo "$ccCFlags" > $out/nix-support/cc-cflags
|
||||||
|
''
|
||||||
|
|
||||||
|
+ optionalString propagateDoc ''
|
||||||
##
|
##
|
||||||
## User env support
|
## Man page and info support
|
||||||
##
|
##
|
||||||
|
|
||||||
# Propagate the wrapped cc so that if you install the wrapper,
|
mkdir -p $man/nix-support $info/nix-support
|
||||||
# you get tools like gcov, the manpages, etc. as well (including
|
|
||||||
# for binutils and Glibc).
|
|
||||||
printWords ${cc.man or ""} > $man/nix-support/propagated-user-env-packages
|
printWords ${cc.man or ""} > $man/nix-support/propagated-user-env-packages
|
||||||
|
printWords ${cc.info or ""} > $info/nix-support/propagated-user-env-packages
|
||||||
''
|
''
|
||||||
|
|
||||||
+ ''
|
+ ''
|
||||||
|
|
||||||
##
|
##
|
||||||
## Hardening support
|
## Hardening support
|
||||||
##
|
##
|
||||||
@ -308,8 +282,8 @@ stdenv.mkDerivation {
|
|||||||
##
|
##
|
||||||
## Extra custom steps
|
## Extra custom steps
|
||||||
##
|
##
|
||||||
|
|
||||||
''
|
''
|
||||||
|
|
||||||
+ extraBuildCommands;
|
+ extraBuildCommands;
|
||||||
|
|
||||||
inherit expand-response-params;
|
inherit expand-response-params;
|
||||||
|
@ -1,122 +0,0 @@
|
|||||||
#! @shell@
|
|
||||||
set -eu -o pipefail +o posix
|
|
||||||
shopt -s nullglob
|
|
||||||
|
|
||||||
if (( "${NIX_DEBUG:-0}" >= 7 )); then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
|
|
||||||
# N.B. Gnat is not used during bootstrapping, so we don't need to
|
|
||||||
# worry about the old bash empty array `set -u` workarounds.
|
|
||||||
|
|
||||||
path_backup="$PATH"
|
|
||||||
|
|
||||||
# phase separation makes this look useless
|
|
||||||
# shellcheck disable=SC2157
|
|
||||||
if [ -n "@coreutils_bin@" ]; then
|
|
||||||
PATH="@coreutils_bin@/bin"
|
|
||||||
fi
|
|
||||||
|
|
||||||
source @out@/nix-support/utils.sh
|
|
||||||
|
|
||||||
if [ -z "${NIX_@infixSalt@_GNAT_WRAPPER_FLAGS_SET:-}" ]; then
|
|
||||||
source @out@/nix-support/add-flags.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Figure out if linker flags should be passed. GCC prints annoying
|
|
||||||
# warnings when they are not needed.
|
|
||||||
dontLink=0
|
|
||||||
nonFlagArgs=0
|
|
||||||
|
|
||||||
for i in "$@"; do
|
|
||||||
if [ "$i" = -c ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -M ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "${i:0:1}" != - ]; then
|
|
||||||
nonFlagArgs=1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# If we pass a flag like -Wl, then gcc will call the linker unless it
|
|
||||||
# can figure out that it has to do something else (e.g., because of a
|
|
||||||
# "-c" flag). So if no non-flag arguments are given, don't pass any
|
|
||||||
# linker flags. This catches cases like "gcc" (should just print
|
|
||||||
# "gcc: no input files") and "gcc -v" (should print the version).
|
|
||||||
if [ "$nonFlagArgs" = 0 ]; then
|
|
||||||
dontLink=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Optionally filter out paths not refering to the store.
|
|
||||||
params=("$@")
|
|
||||||
if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then
|
|
||||||
rest=()
|
|
||||||
for p in "${params[@]}"; do
|
|
||||||
if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then
|
|
||||||
skip "${p:2}"
|
|
||||||
elif [ "${p:0:3}" = -I/ ] && badPath "${p:2}"; then
|
|
||||||
skip "${p:2}"
|
|
||||||
elif [ "${p:0:4}" = -aI/ ] && badPath "${p:3}"; then
|
|
||||||
skip "${p:2}"
|
|
||||||
elif [ "${p:0:4}" = -aO/ ] && badPath "${p:3}"; then
|
|
||||||
skip "${p:2}"
|
|
||||||
else
|
|
||||||
rest+=("$p")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
params=("${rest[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Clear march/mtune=native -- they bring impurity.
|
|
||||||
if [ "$NIX_@infixSalt@_ENFORCE_NO_NATIVE" = 1 ]; then
|
|
||||||
rest=()
|
|
||||||
for p in "${params[@]}"; do
|
|
||||||
if [[ "$p" = -m*=native ]]; then
|
|
||||||
skip "$p"
|
|
||||||
else
|
|
||||||
rest+=("$p")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
params=("${rest[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add the flags for the GNAT compiler proper.
|
|
||||||
extraAfter=($NIX_@infixSalt@_GNATFLAGS_COMPILE)
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
if [ "$(basename "$0")x" = "gnatmakex" ]; then
|
|
||||||
extraBefore=("--GNATBIND=@out@/bin/gnatbind" "--GNATLINK=@out@/bin/gnatlink ")
|
|
||||||
fi
|
|
||||||
|
|
||||||
#if [ "$dontLink" != 1 ]; then
|
|
||||||
# # Add the flags that should be passed to the linker (and prevent
|
|
||||||
# # `ld-wrapper' from adding NIX_@infixSalt@_LDFLAGS again).
|
|
||||||
# for i in $NIX_@infixSalt@_LDFLAGS_BEFORE; do
|
|
||||||
# extraBefore+=("-largs" "$i")
|
|
||||||
# done
|
|
||||||
# for i in $NIX_@infixSalt@_LDFLAGS; do
|
|
||||||
# if [ "${i:0:3}" = -L/ ]; then
|
|
||||||
# extraAfter+=("$i")
|
|
||||||
# else
|
|
||||||
# extraAfter+=("-largs" "$i")
|
|
||||||
# fi
|
|
||||||
# done
|
|
||||||
# export NIX_@infixSalt@_LDFLAGS_SET=1
|
|
||||||
#fi
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if (( "${NIX_DEBUG:-0}" >= 1 )); then
|
|
||||||
echo "extra flags before to @prog@:" >&2
|
|
||||||
printf " %q\n" "${extraBefore[@]}" >&2
|
|
||||||
echo "original flags to @prog@:" >&2
|
|
||||||
printf " %q\n" "${params[@]}" >&2
|
|
||||||
echo "extra flags after to @prog@:" >&2
|
|
||||||
printf " %q\n" "${extraAfter[@]}" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
PATH="$path_backup"
|
|
||||||
exec @prog@ "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}"
|
|
@ -1,40 +0,0 @@
|
|||||||
#! @shell@
|
|
||||||
set -eu -o pipefail +o posix
|
|
||||||
shopt -s nullglob
|
|
||||||
|
|
||||||
if (( "${NIX_DEBUG:-0}" >= 7 )); then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
|
|
||||||
# N.B. Gnat is not used during bootstrapping, so we don't need to
|
|
||||||
# worry about the old bash empty array `set -u` workarounds.
|
|
||||||
|
|
||||||
# Add the flags for the GNAT compiler proper.
|
|
||||||
extraAfter=("--GCC=@out@/bin/gcc")
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
## Add the flags that should be passed to the linker (and prevent
|
|
||||||
## `ld-wrapper' from adding NIX_@infixSalt@_LDFLAGS again).
|
|
||||||
#for i in $NIX_@infixSalt@_LDFLAGS_BEFORE; do
|
|
||||||
# extraBefore+=("-largs" "$i")
|
|
||||||
#done
|
|
||||||
#for i in $NIX_@infixSalt@_LDFLAGS; do
|
|
||||||
# if [ "${i:0:3}" = -L/ ]; then
|
|
||||||
# extraAfter+=("$i")
|
|
||||||
# else
|
|
||||||
# extraAfter+=("-largs" "$i")
|
|
||||||
# fi
|
|
||||||
#done
|
|
||||||
#export NIX_@infixSalt@_LDFLAGS_SET=1
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if (( "${NIX_DEBUG:-0}" >= 1 )); then
|
|
||||||
echo "extra flags before to @prog@:" >&2
|
|
||||||
printf " %q\n" "${extraBefore[@]}" >&2
|
|
||||||
echo "original flags to @prog@:" >&2
|
|
||||||
printf " %q\n" "$@" >&2
|
|
||||||
echo "extra flags after to @prog@:" >&2
|
|
||||||
printf " %q\n" "${extraAfter[@]}" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec @prog@ "${extraBefore[@]}" "$@" "${extraAfter[@]}"
|
|
@ -25,7 +25,11 @@ mangleVarBool() {
|
|||||||
for infix in "${role_infixes[@]}"; do
|
for infix in "${role_infixes[@]}"; do
|
||||||
local inputVar="${var/+/${infix}}"
|
local inputVar="${var/+/${infix}}"
|
||||||
if [ -v "$inputVar" ]; then
|
if [ -v "$inputVar" ]; then
|
||||||
let "${outputVar} |= ${!inputVar}"
|
# "1" in the end makes `let` return success error code when
|
||||||
|
# expression itself evaluates to zero.
|
||||||
|
# We don't use `|| true` because that would silence actual
|
||||||
|
# syntax errors from bad variable values.
|
||||||
|
let "${outputVar} |= ${!inputVar:-0}" "1"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
# `-B@out@/bin' forces cc to use ld-wrapper.sh when calling ld.
|
|
||||||
export NIX_CFLAGS_COMPILE="-B@out@/bin/ $NIX_CFLAGS_COMPILE"
|
|
||||||
|
|
||||||
if test -e @out@/nix-support/libc-cflags; then
|
|
||||||
export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -e @out@/nix-support/cc-cflags; then
|
|
||||||
export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/cc-cflags) $NIX_CFLAGS_COMPILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -e @out@/nix-support/gnat-cflags; then
|
|
||||||
export NIX_GNATFLAGS_COMPILE="$(cat @out@/nix-support/gnat-cflags) $NIX_GNATFLAGS_COMPILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -e @out@/nix-support/libc-ldflags; then
|
|
||||||
export NIX_LDFLAGS="$NIX_LDFLAGS $(cat @out@/nix-support/libc-ldflags)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -e @out@/nix-support/cc-ldflags; then
|
|
||||||
export NIX_LDFLAGS="$NIX_LDFLAGS $(cat @out@/nix-support/cc-ldflags)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -e @out@/nix-support/libc-ldflags-before; then
|
|
||||||
export NIX_LDFLAGS_BEFORE="$(cat @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
export NIX_CC_WRAPPER_FLAGS_SET=1
|
|
@ -1,215 +0,0 @@
|
|||||||
source $stdenv/setup
|
|
||||||
|
|
||||||
|
|
||||||
mkdir -p $out/bin
|
|
||||||
mkdir -p $out/nix-support
|
|
||||||
|
|
||||||
|
|
||||||
if test -z "$nativeLibc"; then
|
|
||||||
dynamicLinker="$libc/lib/$dynamicLinker"
|
|
||||||
echo $dynamicLinker > $out/nix-support/dynamic-linker
|
|
||||||
|
|
||||||
if test -e $libc/lib/32/ld-linux.so.2; then
|
|
||||||
echo $libc/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The "-B$libc/lib/" flag is a quick hack to force gcc to link
|
|
||||||
# against the crt1.o from our own glibc, rather than the one in
|
|
||||||
# /usr/lib. (This is only an issue when using an `impure'
|
|
||||||
# compiler/linker, i.e., one that searches /usr/lib and so on.)
|
|
||||||
#
|
|
||||||
# Unfortunately, setting -B appears to override the default search
|
|
||||||
# path. Thus, the gcc-specific "../includes-fixed" directory is
|
|
||||||
# now longer searched and glibc's <limits.h> header fails to
|
|
||||||
# compile, because it uses "#include_next <limits.h>" to find the
|
|
||||||
# limits.h file in ../includes-fixed. To remedy the problem,
|
|
||||||
# another -idirafter is necessary to add that directory again.
|
|
||||||
echo "-B$libc/lib/ -idirafter $libc_dev/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
|
|
||||||
|
|
||||||
echo "-L$libc/lib" > $out/nix-support/libc-ldflags
|
|
||||||
|
|
||||||
# The dynamic linker is passed in `ldflagsBefore' to allow
|
|
||||||
# explicit overrides of the dynamic linker by callers to gcc/ld
|
|
||||||
# (the *last* value counts, so ours should come first).
|
|
||||||
echo "-dynamic-linker" $dynamicLinker > $out/nix-support/libc-ldflags-before
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$nativeTools"; then
|
|
||||||
gccPath="$nativePrefix/bin"
|
|
||||||
ldPath="$nativePrefix/bin"
|
|
||||||
else
|
|
||||||
if test -e "$gcc/lib64"; then
|
|
||||||
gccLDFlags="$gccLDFlags -L$gcc_lib/lib64"
|
|
||||||
fi
|
|
||||||
gccLDFlags="$gccLDFlags -L$gcc_lib/lib"
|
|
||||||
if [ -n "$langVhdl" ]; then
|
|
||||||
gccLDFlags="$gccLDFlags -L$zlib/lib"
|
|
||||||
fi
|
|
||||||
echo "$gccLDFlags" > $out/nix-support/cc-ldflags
|
|
||||||
|
|
||||||
# GCC shows $gcc/lib in `gcc -print-search-dirs', but not
|
|
||||||
# $gcc/lib64 (even though it does actually search there...)..
|
|
||||||
# This confuses libtool. So add it to the compiler tool search
|
|
||||||
# path explicitly.
|
|
||||||
if test -e "$gcc/lib64"; then
|
|
||||||
gccCFlags="$gccCFlags -B$gcc/lib64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Find the gcc libraries path (may work only without multilib)
|
|
||||||
if [ -n "$langAda" ]; then
|
|
||||||
basePath=`echo $gcc/lib/*/*/*`
|
|
||||||
gccCFlags="$gccCFlags -B$basePath -I$basePath/adainclude"
|
|
||||||
|
|
||||||
gnatCFlags="-aI$basePath/adainclude -aO$basePath/adalib"
|
|
||||||
echo "$gnatCFlags" > $out/nix-support/gnat-cflags
|
|
||||||
fi
|
|
||||||
echo "$gccCFlags" > $out/nix-support/cc-cflags
|
|
||||||
|
|
||||||
gccPath="$gcc/bin"
|
|
||||||
# On Illumos/Solaris we might prefer native ld
|
|
||||||
if test -n "$nativePrefix"; then
|
|
||||||
ldPath="$nativePrefix/bin"
|
|
||||||
else
|
|
||||||
ldPath="$binutils/bin"
|
|
||||||
fi;
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
doSubstitute() {
|
|
||||||
local src=$1
|
|
||||||
local dst=$2
|
|
||||||
local ld="$ldPath/ld"
|
|
||||||
if $ld -V 2>&1 |grep Solaris; then
|
|
||||||
# Use Solaris specific linker wrapper
|
|
||||||
ld="$out/bin/ld-solaris"
|
|
||||||
fi
|
|
||||||
# Can't use substitute() here, because replace may not have been
|
|
||||||
# built yet (in the bootstrap).
|
|
||||||
sed \
|
|
||||||
-e "s^@out@^$out^g" \
|
|
||||||
-e "s^@shell@^$shell^g" \
|
|
||||||
-e "s^@gcc@^$gcc^g" \
|
|
||||||
-e "s^@gccProg@^$gccProg^g" \
|
|
||||||
-e "s^@gnatProg@^$gnatProg^g" \
|
|
||||||
-e "s^@gnatlinkProg@^$gnatlinkProg^g" \
|
|
||||||
-e "s^@binutils@^$binutils^g" \
|
|
||||||
-e "s^@coreutils@^$coreutils^g" \
|
|
||||||
-e "s^@libc@^$libc^g" \
|
|
||||||
-e "s^@libc_bin@^$libc_bin^g" \
|
|
||||||
-e "s^@ld@^$ld^g" \
|
|
||||||
< "$src" > "$dst"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Make wrapper scripts around gcc, g++, and gfortran. Also make symlinks
|
|
||||||
# cc, c++, and f77.
|
|
||||||
mkGccWrapper() {
|
|
||||||
local dst=$1
|
|
||||||
local src=$2
|
|
||||||
|
|
||||||
if ! test -f "$src"; then
|
|
||||||
echo "$src does not exist (skipping)"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
gccProg="$src"
|
|
||||||
doSubstitute "$gccWrapper" "$dst"
|
|
||||||
chmod +x "$dst"
|
|
||||||
}
|
|
||||||
|
|
||||||
mkGnatWrapper() {
|
|
||||||
local dst=$1
|
|
||||||
local src=$2
|
|
||||||
|
|
||||||
if ! test -f "$src"; then
|
|
||||||
echo "$src does not exist (skipping)"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
gnatProg="$src"
|
|
||||||
doSubstitute "$gnatWrapper" "$dst"
|
|
||||||
chmod +x "$dst"
|
|
||||||
}
|
|
||||||
|
|
||||||
mkGnatLinkWrapper() {
|
|
||||||
local dst=$1
|
|
||||||
local src=$2
|
|
||||||
|
|
||||||
if ! test -f "$src"; then
|
|
||||||
echo "$src does not exist (skipping)"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
gnatlinkProg="$src"
|
|
||||||
doSubstitute "$gnatlinkWrapper" "$dst"
|
|
||||||
chmod +x "$dst"
|
|
||||||
}
|
|
||||||
|
|
||||||
if mkGccWrapper $out/bin/gcc $gccPath/gcc
|
|
||||||
then
|
|
||||||
ln -sv gcc $out/bin/cc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if mkGccWrapper $out/bin/g++ $gccPath/g++
|
|
||||||
then
|
|
||||||
ln -sv g++ $out/bin/c++
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkGccWrapper $out/bin/cpp $gccPath/cpp || true
|
|
||||||
|
|
||||||
if mkGccWrapper $out/bin/gfortran $gccPath/gfortran
|
|
||||||
then
|
|
||||||
ln -sv gfortran $out/bin/g77
|
|
||||||
ln -sv gfortran $out/bin/f77
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkGccWrapper $out/bin/gcj $gccPath/gcj || true
|
|
||||||
|
|
||||||
mkGccWrapper $out/bin/gccgo $gccPath/gccgo || true
|
|
||||||
|
|
||||||
mkGccWrapper $out/bin/gnatgcc $gccPath/gnatgcc || true
|
|
||||||
mkGnatWrapper $out/bin/gnatmake $gccPath/gnatmake || true
|
|
||||||
mkGnatWrapper $out/bin/gnatbind $gccPath/gnatbind || true
|
|
||||||
mkGnatLinkWrapper $out/bin/gnatlink $gccPath/gnatlink || true
|
|
||||||
|
|
||||||
if [ -f $gccPath/ghdl ]; then
|
|
||||||
ln -sf $gccPath/ghdl $out/bin/ghdl
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Create a symlink to as (the assembler). This is useful when a
|
|
||||||
# gcc-wrapper is installed in a user environment, as it ensures that
|
|
||||||
# the right assembler is called.
|
|
||||||
ln -s $ldPath/as $out/bin/as
|
|
||||||
|
|
||||||
|
|
||||||
# Make a wrapper around the linker.
|
|
||||||
doSubstitute "$ldWrapper" "$out/bin/ld"
|
|
||||||
chmod +x "$out/bin/ld"
|
|
||||||
|
|
||||||
# Copy solaris ld wrapper if needed
|
|
||||||
if $ldPath/ld -V 2>&1 |grep Solaris; then
|
|
||||||
# Use Solaris specific linker wrapper
|
|
||||||
sed -e "s^@ld@^$ldPath/ld^g" < "$ldSolarisWrapper" > "$out/bin/ld-solaris"
|
|
||||||
chmod +x "$out/bin/ld-solaris"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Emit a setup hook. Also store the path to the original GCC and
|
|
||||||
# Glibc.
|
|
||||||
test -n "$gcc" && echo $gcc > $out/nix-support/orig-cc
|
|
||||||
test -n "$libc" && echo $libc > $out/nix-support/orig-libc
|
|
||||||
|
|
||||||
doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
|
|
||||||
|
|
||||||
doSubstitute "$setupHook" "$out/nix-support/setup-hook"
|
|
||||||
|
|
||||||
cp -p $utils $out/nix-support/utils.sh
|
|
||||||
|
|
||||||
|
|
||||||
# Propagate the wrapped gcc so that if you install the wrapper, you get
|
|
||||||
# tools like gcov, the manpages, etc. as well (including for binutils
|
|
||||||
# and Glibc).
|
|
||||||
if test -z "$nativeTools"; then
|
|
||||||
printWords $gcc $binutils $libc $libc_bin > $out/nix-support/propagated-user-env-packages
|
|
||||||
fi
|
|
@ -1,76 +0,0 @@
|
|||||||
# The Nix `gcc' stdenv.mkDerivation is not directly usable, since it doesn't
|
|
||||||
# know where the C library and standard header files are. Therefore
|
|
||||||
# the compiler produced by that package cannot be installed directly
|
|
||||||
# in a user environment and used from the command line. This
|
|
||||||
# stdenv.mkDerivation provides a wrapper that sets up the right environment
|
|
||||||
# variables so that the compiler and the linker just "work".
|
|
||||||
|
|
||||||
{ name ? "", stdenv, lib, nativeTools, nativeLibc, nativePrefix ? ""
|
|
||||||
, gcc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
|
|
||||||
, zlib ? null
|
|
||||||
, hostPlatform, targetPlatform, targetPackages
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert nativeTools -> nativePrefix != "";
|
|
||||||
assert !nativeTools -> gcc != null && binutils != null && coreutils != null;
|
|
||||||
assert !nativeLibc -> libc != null;
|
|
||||||
|
|
||||||
# For ghdl (the vhdl language provider to gcc) we need zlib in the wrapper
|
|
||||||
assert (gcc != null && gcc ? langVhdl && gcc.langVhdl) -> zlib != null;
|
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
gccVersion = (builtins.parseDrvName gcc.name).version;
|
|
||||||
gccName = (builtins.parseDrvName gcc.name).name;
|
|
||||||
|
|
||||||
langGo = if nativeTools then false else gcc ? langGo && gcc.langGo;
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name =
|
|
||||||
(if name != "" then name else gccName + "-wrapper") +
|
|
||||||
(if gcc != null && gccVersion != "" then "-" + gccVersion else "");
|
|
||||||
|
|
||||||
builder = ./builder.sh;
|
|
||||||
setupHook = ./setup-hook.sh;
|
|
||||||
gccWrapper = ./gcc-wrapper.sh;
|
|
||||||
gnatWrapper = ./gnat-wrapper.sh;
|
|
||||||
gnatlinkWrapper = ./gnatlink-wrapper.sh;
|
|
||||||
ldWrapper = ./ld-wrapper.sh;
|
|
||||||
ldSolarisWrapper = ./ld-solaris-wrapper.sh;
|
|
||||||
utils = ./utils.sh;
|
|
||||||
addFlags = ./add-flags;
|
|
||||||
|
|
||||||
inherit nativeTools nativeLibc nativePrefix gcc;
|
|
||||||
gcc_lib = lib.getLib gcc;
|
|
||||||
libc = if nativeLibc then null else libc;
|
|
||||||
libc_dev = if nativeLibc then null else lib.getDev libc;
|
|
||||||
libc_bin = if nativeLibc then null else lib.getBin libc;
|
|
||||||
binutils = if nativeTools then null else lib.getBin binutils;
|
|
||||||
# The wrapper scripts use 'cat', so we may need coreutils
|
|
||||||
coreutils = if nativeTools then null else lib.getBin coreutils;
|
|
||||||
|
|
||||||
langC = if nativeTools then true else gcc.langC;
|
|
||||||
langCC = if nativeTools then true else gcc.langCC;
|
|
||||||
langFortran = if nativeTools then false else gcc ? langFortran;
|
|
||||||
langAda = if nativeTools then false else gcc ? langAda && gcc.langAda;
|
|
||||||
langVhdl = if nativeTools then false else gcc ? langVhdl && gcc.langVhdl;
|
|
||||||
zlib = if gcc != null && gcc ? langVhdl then zlib else null;
|
|
||||||
shell = shell + shell.shellPath or "";
|
|
||||||
|
|
||||||
preferLocalBuild = true;
|
|
||||||
|
|
||||||
meta =
|
|
||||||
let gcc_ = if gcc != null then gcc else {}; in
|
|
||||||
(if gcc_ ? meta then removeAttrs gcc.meta ["priority"] else {}) //
|
|
||||||
{ description =
|
|
||||||
stdenv.lib.attrByPath ["meta" "description"] "System C compiler" gcc_
|
|
||||||
+ " (wrapper script)";
|
|
||||||
};
|
|
||||||
|
|
||||||
# The dynamic linker has different names on different platforms.
|
|
||||||
dynamicLinker =
|
|
||||||
if !nativeLibc then
|
|
||||||
targetPackages.stdenv.cc.bintools.dynamicLinker
|
|
||||||
else "";
|
|
||||||
}
|
|
@ -1,146 +0,0 @@
|
|||||||
#! @shell@ -e
|
|
||||||
|
|
||||||
if [ -n "$NIX_CC_WRAPPER_START_HOOK" ]; then
|
|
||||||
source "$NIX_CC_WRAPPER_START_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$NIX_CC_WRAPPER_FLAGS_SET" ]; then
|
|
||||||
source @out@/nix-support/add-flags.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
source @out@/nix-support/utils.sh
|
|
||||||
|
|
||||||
|
|
||||||
# Figure out if linker flags should be passed. GCC prints annoying
|
|
||||||
# warnings when they are not needed.
|
|
||||||
dontLink=0
|
|
||||||
getVersion=0
|
|
||||||
nonFlagArgs=0
|
|
||||||
|
|
||||||
for i in "$@"; do
|
|
||||||
if [ "$i" = -c ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -S ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -E ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -E ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -M ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -MM ]; then
|
|
||||||
dontLink=1
|
|
||||||
elif [ "$i" = -x ]; then
|
|
||||||
# At least for the cases c-header or c++-header we should set dontLink.
|
|
||||||
# I expect no one use -x other than making precompiled headers.
|
|
||||||
dontLink=1
|
|
||||||
elif [ "${i:0:1}" != - ]; then
|
|
||||||
nonFlagArgs=1
|
|
||||||
elif [ "$i" = -m32 ]; then
|
|
||||||
if [ -e @out@/nix-support/dynamic-linker-m32 ]; then
|
|
||||||
NIX_LDFLAGS="$NIX_LDFLAGS -dynamic-linker $(cat @out@/nix-support/dynamic-linker-m32)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# If we pass a flag like -Wl, then gcc will call the linker unless it
|
|
||||||
# can figure out that it has to do something else (e.g., because of a
|
|
||||||
# "-c" flag). So if no non-flag arguments are given, don't pass any
|
|
||||||
# linker flags. This catches cases like "gcc" (should just print
|
|
||||||
# "gcc: no input files") and "gcc -v" (should print the version).
|
|
||||||
if [ "$nonFlagArgs" = 0 ]; then
|
|
||||||
dontLink=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Optionally filter out paths not refering to the store.
|
|
||||||
params=("$@")
|
|
||||||
if [ "$NIX_ENFORCE_PURITY" = 1 -a -n "$NIX_STORE" ]; then
|
|
||||||
rest=()
|
|
||||||
n=0
|
|
||||||
while [ $n -lt ${#params[*]} ]; do
|
|
||||||
p=${params[n]}
|
|
||||||
p2=${params[$((n+1))]}
|
|
||||||
if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif [ "$p" = -L ] && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif [ "${p:0:3}" = -I/ ] && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif [ "$p" = -I ] && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif [ "$p" = -isystem ] && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
else
|
|
||||||
rest=("${rest[@]}" "$p")
|
|
||||||
fi
|
|
||||||
n=$((n + 1))
|
|
||||||
done
|
|
||||||
params=("${rest[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add the flags for the C compiler proper.
|
|
||||||
extraAfter=($NIX_CFLAGS_COMPILE)
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
# When enforcing purity, pretend gcc can't find the current date and
|
|
||||||
# time
|
|
||||||
if [ "$NIX_ENFORCE_PURITY" = 1 ]; then
|
|
||||||
extraAfter+=('-D__DATE__="Jan 01 1970"'
|
|
||||||
'-D__TIME__="00:00:01"'
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$dontLink" != 1 ]; then
|
|
||||||
|
|
||||||
# Add the flags that should only be passed to the compiler when
|
|
||||||
# linking.
|
|
||||||
extraAfter+=($NIX_CFLAGS_LINK)
|
|
||||||
|
|
||||||
# Add the flags that should be passed to the linker (and prevent
|
|
||||||
# `ld-wrapper' from adding NIX_LDFLAGS again).
|
|
||||||
for i in $NIX_LDFLAGS_BEFORE; do
|
|
||||||
extraBefore=(${extraBefore[@]} "-Wl,$i")
|
|
||||||
done
|
|
||||||
for i in $NIX_LDFLAGS; do
|
|
||||||
if [ "${i:0:3}" = -L/ ]; then
|
|
||||||
extraAfter+=("$i")
|
|
||||||
else
|
|
||||||
extraAfter+=("-Wl,$i")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
export NIX_LDFLAGS_SET=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# As a very special hack, if the arguments are just `-v', then don't
|
|
||||||
# add anything. This is to prevent `gcc -v' (which normally prints
|
|
||||||
# out the version number and returns exit code 0) from printing out
|
|
||||||
# `No input files specified' and returning exit code 1.
|
|
||||||
if [ "$*" = -v ]; then
|
|
||||||
extraAfter=()
|
|
||||||
extraBefore=()
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if [ -n "$NIX_DEBUG" ]; then
|
|
||||||
echo "original flags to @prog@:" >&2
|
|
||||||
for i in "${params[@]}"; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraBefore flags to @prog@:" >&2
|
|
||||||
for i in ${extraBefore[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraAfter flags to @prog@:" >&2
|
|
||||||
for i in ${extraAfter[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -n "$NIX_CC_WRAPPER_EXEC_HOOK" ]; then
|
|
||||||
source "$NIX_CC_WRAPPER_EXEC_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec @prog@ ${extraBefore[@]} "${params[@]}" "${extraAfter[@]}"
|
|
@ -1,147 +0,0 @@
|
|||||||
#! @shell@ -e
|
|
||||||
|
|
||||||
if test -n "$NIX_CC_WRAPPER_START_HOOK"; then
|
|
||||||
source "$NIX_CC_WRAPPER_START_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$NIX_CC_WRAPPER_FLAGS_SET"; then
|
|
||||||
source @out@/nix-support/add-flags.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
source @out@/nix-support/utils.sh
|
|
||||||
|
|
||||||
|
|
||||||
# Figure out if linker flags should be passed. GCC prints annoying
|
|
||||||
# warnings when they are not needed.
|
|
||||||
dontLink=0
|
|
||||||
getVersion=0
|
|
||||||
nonFlagArgs=0
|
|
||||||
|
|
||||||
for i in "$@"; do
|
|
||||||
if test "$i" = "-c"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-S"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-E"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-E"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-M"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-MM"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-x"; then
|
|
||||||
# At least for the cases c-header or c++-header we should set dontLink.
|
|
||||||
# I expect no one use -x other than making precompiled headers.
|
|
||||||
dontLink=1
|
|
||||||
elif test "${i:0:1}" != "-"; then
|
|
||||||
nonFlagArgs=1
|
|
||||||
elif test "$i" = "-m32"; then
|
|
||||||
if test -e @out@/nix-support/dynamic-linker-m32; then
|
|
||||||
NIX_LDFLAGS="$NIX_LDFLAGS -dynamic-linker $(cat @out@/nix-support/dynamic-linker-m32)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# If we pass a flag like -Wl, then gcc will call the linker unless it
|
|
||||||
# can figure out that it has to do something else (e.g., because of a
|
|
||||||
# "-c" flag). So if no non-flag arguments are given, don't pass any
|
|
||||||
# linker flags. This catches cases like "gcc" (should just print
|
|
||||||
# "gcc: no input files") and "gcc -v" (should print the version).
|
|
||||||
if test "$nonFlagArgs" = "0"; then
|
|
||||||
dontLink=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Optionally filter out paths not refering to the store.
|
|
||||||
params=("$@")
|
|
||||||
if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE"; then
|
|
||||||
rest=()
|
|
||||||
n=0
|
|
||||||
while test $n -lt ${#params[*]}; do
|
|
||||||
p=${params[n]}
|
|
||||||
p2=${params[$((n+1))]}
|
|
||||||
if test "${p:0:3}" = "-L/" && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif test "$p" = "-L" && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif test "${p:0:3}" = "-I/" && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif test "$p" = "-I" && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif test "$p" = "-isystem" && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
else
|
|
||||||
rest=("${rest[@]}" "$p")
|
|
||||||
fi
|
|
||||||
n=$((n + 1))
|
|
||||||
done
|
|
||||||
params=("${rest[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add the flags for the C compiler proper.
|
|
||||||
extraAfter=($NIX_CFLAGS_COMPILE)
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
if test "$dontLink" != "1"; then
|
|
||||||
|
|
||||||
# Add the flags that should only be passed to the compiler when
|
|
||||||
# linking.
|
|
||||||
extraAfter=(${extraAfter[@]} $NIX_CFLAGS_LINK)
|
|
||||||
|
|
||||||
# Add the flags that should be passed to the linker (and prevent
|
|
||||||
# `ld-wrapper' from adding NIX_LDFLAGS again).
|
|
||||||
for i in $NIX_LDFLAGS_BEFORE; do
|
|
||||||
extraBefore=(${extraBefore[@]} "-Wl,$i")
|
|
||||||
done
|
|
||||||
for i in $NIX_LDFLAGS; do
|
|
||||||
if test "${i:0:3}" = "-L/"; then
|
|
||||||
extraAfter=(${extraAfter[@]} "$i")
|
|
||||||
else
|
|
||||||
extraAfter=(${extraAfter[@]} "-Wl,$i")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
export NIX_LDFLAGS_SET=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# As a very special hack, if the arguments are just `-v', then don't
|
|
||||||
# add anything. This is to prevent `gcc -v' (which normally prints
|
|
||||||
# out the version number and returns exit code 0) from printing out
|
|
||||||
# `No input files specified' and returning exit code 1.
|
|
||||||
if test "$*" = "-v"; then
|
|
||||||
extraAfter=()
|
|
||||||
extraBefore=()
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if test "$NIX_DEBUG" = "1"; then
|
|
||||||
echo "original flags to @gccProg@:" >&2
|
|
||||||
for i in "${params[@]}"; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraBefore flags to @gccProg@:" >&2
|
|
||||||
for i in ${extraBefore[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraAfter flags to @gccProg@:" >&2
|
|
||||||
for i in ${extraAfter[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$NIX_CC_WRAPPER_EXEC_HOOK"; then
|
|
||||||
source "$NIX_CC_WRAPPER_EXEC_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Call the real `gcc'. Filter out warnings from stderr about unused
|
|
||||||
# `-B' flags, since they confuse some programs. Deep bash magic to
|
|
||||||
# apply grep to stderr (by swapping stdin/stderr twice).
|
|
||||||
if test -z "$NIX_CC_NEEDS_GREP"; then
|
|
||||||
@gccProg@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]}
|
|
||||||
else
|
|
||||||
(@gccProg@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]} 3>&2 2>&1 1>&3- \
|
|
||||||
| (grep -v 'file path prefix' || true); exit ${PIPESTATUS[0]}) 3>&2 2>&1 1>&3-
|
|
||||||
exit $?
|
|
||||||
fi
|
|
@ -1,113 +0,0 @@
|
|||||||
#! @shell@ -e
|
|
||||||
|
|
||||||
if test -n "$NIX_GNAT_WRAPPER_START_HOOK"; then
|
|
||||||
source "$NIX_GNAT_WRAPPER_START_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$NIX_GNAT_WRAPPER_FLAGS_SET"; then
|
|
||||||
source @out@/nix-support/add-flags.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
source @out@/nix-support/utils.sh
|
|
||||||
|
|
||||||
|
|
||||||
# Figure out if linker flags should be passed. GCC prints annoying
|
|
||||||
# warnings when they are not needed.
|
|
||||||
dontLink=0
|
|
||||||
getVersion=0
|
|
||||||
nonFlagArgs=0
|
|
||||||
|
|
||||||
for i in "$@"; do
|
|
||||||
if test "$i" = "-c"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "$i" = "-M"; then
|
|
||||||
dontLink=1
|
|
||||||
elif test "${i:0:1}" != "-"; then
|
|
||||||
nonFlagArgs=1
|
|
||||||
elif test "$i" = "-m32"; then
|
|
||||||
if test -e @out@/nix-support/dynamic-linker-m32; then
|
|
||||||
NIX_LDFLAGS="$NIX_LDFLAGS -dynamic-linker $(cat @out@/nix-support/dynamic-linker-m32)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# If we pass a flag like -Wl, then gcc will call the linker unless it
|
|
||||||
# can figure out that it has to do something else (e.g., because of a
|
|
||||||
# "-c" flag). So if no non-flag arguments are given, don't pass any
|
|
||||||
# linker flags. This catches cases like "gcc" (should just print
|
|
||||||
# "gcc: no input files") and "gcc -v" (should print the version).
|
|
||||||
if test "$nonFlagArgs" = "0"; then
|
|
||||||
dontLink=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Optionally filter out paths not refering to the store.
|
|
||||||
params=("$@")
|
|
||||||
if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE"; then
|
|
||||||
rest=()
|
|
||||||
n=0
|
|
||||||
while test $n -lt ${#params[*]}; do
|
|
||||||
p=${params[n]}
|
|
||||||
p2=${params[$((n+1))]}
|
|
||||||
if test "${p:0:3}" = "-L/" && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif test "${p:0:3}" = "-I/" && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif test "${p:0:4}" = "-aI/" && badPath "${p:3}"; then
|
|
||||||
skip $p
|
|
||||||
elif test "${p:0:4}" = "-aO/" && badPath "${p:3}"; then
|
|
||||||
skip $p
|
|
||||||
else
|
|
||||||
rest=("${rest[@]}" "$p")
|
|
||||||
fi
|
|
||||||
n=$((n + 1))
|
|
||||||
done
|
|
||||||
params=("${rest[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Add the flags for the GNAT compiler proper.
|
|
||||||
extraAfter=($NIX_GNATFLAGS_COMPILE)
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
if [ "`basename $0`x" = "gnatmakex" ]; then
|
|
||||||
extraBefore=("--GNATBIND=@out@/bin/gnatbind --GNATLINK=@out@/bin/gnatlink ")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add the flags that should be passed to the linker (and prevent
|
|
||||||
# `ld-wrapper' from adding NIX_LDFLAGS again).
|
|
||||||
#for i in $NIX_LDFLAGS_BEFORE; do
|
|
||||||
# extraBefore=(${extraBefore[@]} "-largs $i")
|
|
||||||
#done
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if test "$NIX_DEBUG" = "1"; then
|
|
||||||
echo "original flags to @gnatProg@:" >&2
|
|
||||||
for i in "${params[@]}"; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraBefore flags to @gnatProg@:" >&2
|
|
||||||
for i in ${extraBefore[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraAfter flags to @gnatProg@:" >&2
|
|
||||||
for i in ${extraAfter[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$NIX_GNAT_WRAPPER_EXEC_HOOK"; then
|
|
||||||
source "$NIX_GNAT_WRAPPER_EXEC_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Call the real `gcc'. Filter out warnings from stderr about unused
|
|
||||||
# `-B' flags, since they confuse some programs. Deep bash magic to
|
|
||||||
# apply grep to stderr (by swapping stdin/stderr twice).
|
|
||||||
if test -z "$NIX_GNAT_NEEDS_GREP"; then
|
|
||||||
@gnatProg@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]}
|
|
||||||
else
|
|
||||||
(@gnatProg@ ${extraBefore[@]} "${params[@]}" ${extraAfter[@]} 3>&2 2>&1 1>&3- \
|
|
||||||
| (grep -v 'file path prefix' || true); exit ${PIPESTATUS[0]}) 3>&2 2>&1 1>&3-
|
|
||||||
exit $?
|
|
||||||
fi
|
|
@ -1,43 +0,0 @@
|
|||||||
#! @shell@ -e
|
|
||||||
|
|
||||||
# Add the flags for the GNAT compiler proper.
|
|
||||||
extraAfter="--GCC=@out@/bin/gcc"
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
# Add the flags that should be passed to the linker (and prevent
|
|
||||||
# `ld-wrapper' from adding NIX_LDFLAGS again).
|
|
||||||
#for i in $NIX_LDFLAGS_BEFORE; do
|
|
||||||
# extraBefore=(${extraBefore[@]} "-largs $i")
|
|
||||||
#done
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if test "$NIX_DEBUG" = "1"; then
|
|
||||||
echo "original flags to @gnatlinkProg@:" >&2
|
|
||||||
for i in "$@"; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraBefore flags to @gnatlinkProg@:" >&2
|
|
||||||
for i in ${extraBefore[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extraAfter flags to @gnatlinkProg@:" >&2
|
|
||||||
for i in ${extraAfter[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$NIX_GNAT_WRAPPER_EXEC_HOOK"; then
|
|
||||||
source "$NIX_GNAT_WRAPPER_EXEC_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Call the real `gcc'. Filter out warnings from stderr about unused
|
|
||||||
# `-B' flags, since they confuse some programs. Deep bash magic to
|
|
||||||
# apply grep to stderr (by swapping stdin/stderr twice).
|
|
||||||
if test -z "$NIX_GNAT_NEEDS_GREP"; then
|
|
||||||
@gnatlinkProg@ ${extraBefore[@]} "$@" ${extraAfter[@]}
|
|
||||||
else
|
|
||||||
(@gnatlinkProg@ ${extraBefore[@]} "$@" ${extraAfter[@]} 3>&2 2>&1 1>&3- \
|
|
||||||
| (grep -v 'file path prefix' || true); exit ${PIPESTATUS[0]}) 3>&2 2>&1 1>&3-
|
|
||||||
exit $?
|
|
||||||
fi
|
|
@ -1,40 +0,0 @@
|
|||||||
#!@shell@
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -u
|
|
||||||
|
|
||||||
# I've also tried adding -z direct and -z lazyload, but it gave too many problems with C++ exceptions :'(
|
|
||||||
# Also made sure libgcc would not be lazy-loaded, as suggested here: https://www.illumos.org/issues/2534#note-3
|
|
||||||
# but still no success.
|
|
||||||
cmd="@ld@ -z ignore"
|
|
||||||
|
|
||||||
args=("$@");
|
|
||||||
|
|
||||||
# This loop makes sure all -L arguments are before -l arguments, or ld may complain it cannot find a library.
|
|
||||||
# GNU binutils does not have this problem:
|
|
||||||
# http://stackoverflow.com/questions/5817269/does-the-order-of-l-and-l-options-in-the-gnu-linker-matter
|
|
||||||
i=0;
|
|
||||||
while [[ $i -lt $# ]]; do
|
|
||||||
case "${args[$i]}" in
|
|
||||||
-L) cmd="$cmd ${args[$i]} ${args[($i+1)]}"; i=($i+1); ;;
|
|
||||||
-L*) cmd="$cmd ${args[$i]}" ;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
i=($i+1);
|
|
||||||
done
|
|
||||||
|
|
||||||
i=0;
|
|
||||||
while [[ $i -lt $# ]]; do
|
|
||||||
case "${args[$i]}" in
|
|
||||||
-L) i=($i+1); ;;
|
|
||||||
-L*) ;;
|
|
||||||
*) cmd="$cmd ${args[$i]}" ;;
|
|
||||||
esac
|
|
||||||
i=($i+1);
|
|
||||||
done
|
|
||||||
|
|
||||||
# Trace:
|
|
||||||
set -x
|
|
||||||
exec $cmd
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,166 +0,0 @@
|
|||||||
#! @shell@ -e
|
|
||||||
|
|
||||||
if test -n "$NIX_LD_WRAPPER_START_HOOK"; then
|
|
||||||
source "$NIX_LD_WRAPPER_START_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$NIX_CC_WRAPPER_FLAGS_SET"; then
|
|
||||||
source @out@/nix-support/add-flags.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
source @out@/nix-support/utils.sh
|
|
||||||
|
|
||||||
|
|
||||||
# Optionally filter out paths not refering to the store.
|
|
||||||
params=("$@")
|
|
||||||
if test "$NIX_ENFORCE_PURITY" = "1" -a -n "$NIX_STORE" \
|
|
||||||
-a \( -z "$NIX_IGNORE_LD_THROUGH_GCC" -o -z "$NIX_LDFLAGS_SET" \); then
|
|
||||||
rest=()
|
|
||||||
n=0
|
|
||||||
while test $n -lt ${#params[*]}; do
|
|
||||||
p=${params[n]}
|
|
||||||
p2=${params[$((n+1))]}
|
|
||||||
if test "${p:0:3}" = "-L/" && badPath "${p:2}"; then
|
|
||||||
skip $p
|
|
||||||
elif test "$p" = "-L" && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif test "$p" = "-rpath" && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif test "$p" = "-dynamic-linker" && badPath "$p2"; then
|
|
||||||
n=$((n + 1)); skip $p2
|
|
||||||
elif test "${p:0:1}" = "/" && badPath "$p"; then
|
|
||||||
# We cannot skip this; barf.
|
|
||||||
echo "impure path \`$p' used in link" >&2
|
|
||||||
exit 1
|
|
||||||
elif test "${p:0:9}" = "--sysroot"; then
|
|
||||||
# Our ld is not built with sysroot support (Can we fix that?)
|
|
||||||
:
|
|
||||||
else
|
|
||||||
rest=("${rest[@]}" "$p")
|
|
||||||
fi
|
|
||||||
n=$((n + 1))
|
|
||||||
done
|
|
||||||
params=("${rest[@]}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
extra=()
|
|
||||||
extraBefore=()
|
|
||||||
|
|
||||||
if test -z "$NIX_LDFLAGS_SET"; then
|
|
||||||
extra+=($NIX_LDFLAGS)
|
|
||||||
extraBefore+=($NIX_LDFLAGS_BEFORE)
|
|
||||||
fi
|
|
||||||
|
|
||||||
extra+=($NIX_LDFLAGS_AFTER)
|
|
||||||
|
|
||||||
|
|
||||||
# Add all used dynamic libraries to the rpath.
|
|
||||||
if test "$NIX_DONT_SET_RPATH" != "1"; then
|
|
||||||
|
|
||||||
libPath=""
|
|
||||||
addToLibPath() {
|
|
||||||
local path="$1"
|
|
||||||
if test "${path:0:1}" != "/"; then return 0; fi
|
|
||||||
case "$path" in
|
|
||||||
*..*|*./*|*/.*|*//*)
|
|
||||||
local path2
|
|
||||||
if path2=$(readlink -f "$path"); then
|
|
||||||
path="$path2"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
case $libPath in
|
|
||||||
*\ $path\ *) return 0 ;;
|
|
||||||
esac
|
|
||||||
libPath="$libPath $path "
|
|
||||||
}
|
|
||||||
|
|
||||||
addToRPath() {
|
|
||||||
# If the path is not in the store, don't add it to the rpath.
|
|
||||||
# This typically happens for libraries in /tmp that are later
|
|
||||||
# copied to $out/lib. If not, we're screwed.
|
|
||||||
if test "${1:0:${#NIX_STORE}}" != "$NIX_STORE"; then return 0; fi
|
|
||||||
case $rpath in
|
|
||||||
*\ $1\ *) return 0 ;;
|
|
||||||
esac
|
|
||||||
rpath="$rpath $1 "
|
|
||||||
}
|
|
||||||
|
|
||||||
libs=""
|
|
||||||
addToLibs() {
|
|
||||||
libs="$libs $1"
|
|
||||||
}
|
|
||||||
|
|
||||||
rpath=""
|
|
||||||
|
|
||||||
# First, find all -L... switches.
|
|
||||||
allParams=("${params[@]}" ${extra[@]})
|
|
||||||
n=0
|
|
||||||
while test $n -lt ${#allParams[*]}; do
|
|
||||||
p=${allParams[n]}
|
|
||||||
p2=${allParams[$((n+1))]}
|
|
||||||
if test "${p:0:3}" = "-L/"; then
|
|
||||||
addToLibPath ${p:2}
|
|
||||||
elif test "$p" = "-L"; then
|
|
||||||
addToLibPath ${p2}
|
|
||||||
n=$((n + 1))
|
|
||||||
elif test "$p" = "-l"; then
|
|
||||||
addToLibs ${p2}
|
|
||||||
n=$((n + 1))
|
|
||||||
elif test "${p:0:2}" = "-l"; then
|
|
||||||
addToLibs ${p:2}
|
|
||||||
elif test "$p" = "-dynamic-linker"; then
|
|
||||||
# Ignore the dynamic linker argument, or it
|
|
||||||
# will get into the next 'elif'. We don't want
|
|
||||||
# the dynamic linker path rpath to go always first.
|
|
||||||
n=$((n + 1))
|
|
||||||
elif [[ "$p" =~ ^[^-].*\.so($|\.) ]]; then
|
|
||||||
# This is a direct reference to a shared library, so add
|
|
||||||
# its directory to the rpath.
|
|
||||||
path="$(dirname "$p")";
|
|
||||||
addToRPath "${path}"
|
|
||||||
fi
|
|
||||||
n=$((n + 1))
|
|
||||||
done
|
|
||||||
|
|
||||||
# Second, for each directory in the library search path (-L...),
|
|
||||||
# see if it contains a dynamic library used by a -l... flag. If
|
|
||||||
# so, add the directory to the rpath.
|
|
||||||
# It's important to add the rpath in the order of -L..., so
|
|
||||||
# the link time chosen objects will be those of runtime linking.
|
|
||||||
|
|
||||||
for i in $libPath; do
|
|
||||||
for j in $libs; do
|
|
||||||
if test -f "$i/lib$j.so"; then
|
|
||||||
addToRPath $i
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
# Finally, add `-rpath' switches.
|
|
||||||
for i in $rpath; do
|
|
||||||
extra=(${extra[@]} -rpath $i)
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Optionally print debug info.
|
|
||||||
if test "$NIX_DEBUG" = "1"; then
|
|
||||||
echo "original flags to @ld@:" >&2
|
|
||||||
for i in "${params[@]}"; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
echo "extra flags to @ld@:" >&2
|
|
||||||
for i in ${extra[@]}; do
|
|
||||||
echo " $i" >&2
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$NIX_LD_WRAPPER_EXEC_HOOK"; then
|
|
||||||
source "$NIX_LD_WRAPPER_EXEC_HOOK"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec @ld@ ${extraBefore[@]} "${params[@]}" ${extra[@]}
|
|
@ -1,33 +0,0 @@
|
|||||||
gccWrapperOld_addCVars () {
|
|
||||||
if test -d $1/include; then
|
|
||||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem $1/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -d $1/lib64; then
|
|
||||||
export NIX_LDFLAGS="$NIX_LDFLAGS -L$1/lib64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -d $1/lib; then
|
|
||||||
export NIX_LDFLAGS="$NIX_LDFLAGS -L$1/lib"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
envBuildBuildHooks+=(gccWrapperOld_addCVars)
|
|
||||||
|
|
||||||
# Note: these come *after* $out in the PATH (see setup.sh).
|
|
||||||
|
|
||||||
if test -n "@gcc@"; then
|
|
||||||
addToSearchPath PATH @gcc@/bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "@binutils@"; then
|
|
||||||
addToSearchPath PATH @binutils@/bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "@libc@"; then
|
|
||||||
addToSearchPath PATH @libc_bin@/bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "@coreutils@"; then
|
|
||||||
addToSearchPath PATH @coreutils@/bin
|
|
||||||
fi
|
|
@ -1,26 +0,0 @@
|
|||||||
skip () {
|
|
||||||
if test "$NIX_DEBUG" = "1"; then
|
|
||||||
echo "skipping impure path $1" >&2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Checks whether a path is impure. E.g., `/lib/foo.so' is impure, but
|
|
||||||
# `/nix/store/.../lib/foo.so' isn't.
|
|
||||||
badPath() {
|
|
||||||
local p=$1
|
|
||||||
|
|
||||||
# Relative paths are okay (since they're presumably relative to
|
|
||||||
# the temporary build directory).
|
|
||||||
if test "${p:0:1}" != "/"; then return 1; fi
|
|
||||||
|
|
||||||
@extraPathTests@
|
|
||||||
|
|
||||||
# Otherwise, the path should refer to the store or some temporary
|
|
||||||
# directory (including the build directory).
|
|
||||||
test \
|
|
||||||
"$p" != "/dev/null" -a \
|
|
||||||
"${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
|
|
||||||
"${p:0:4}" != "/tmp" -a \
|
|
||||||
"${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
|
|
||||||
}
|
|
@ -9,7 +9,7 @@
|
|||||||
stdenvNoCC.mkDerivation {
|
stdenvNoCC.mkDerivation {
|
||||||
name = kernel.name + "-shrunk";
|
name = kernel.name + "-shrunk";
|
||||||
builder = ./modules-closure.sh;
|
builder = ./modules-closure.sh;
|
||||||
buildInputs = [ nukeReferences kmod ];
|
nativeBuildInputs = [ nukeReferences kmod ];
|
||||||
inherit kernel firmware rootModules allowMissing;
|
inherit kernel firmware rootModules allowMissing;
|
||||||
allowedReferences = ["out"];
|
allowedReferences = ["out"];
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = nss.src;
|
src = nss.src;
|
||||||
|
|
||||||
|
outputs = [ "out" "unbundled" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ python ];
|
nativeBuildInputs = [ python ];
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
@ -50,6 +52,10 @@ stdenv.mkDerivation rec {
|
|||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -pv $out/etc/ssl/certs
|
mkdir -pv $out/etc/ssl/certs
|
||||||
cp -v ca-bundle.crt $out/etc/ssl/certs
|
cp -v ca-bundle.crt $out/etc/ssl/certs
|
||||||
|
# install individual certs in unbundled output
|
||||||
|
mkdir -pv $unbundled/etc/ssl/certs
|
||||||
|
cp -v *.crt $unbundled/etc/ssl/certs
|
||||||
|
rm -f $unbundled/etc/ssl/certs/ca-bundle.crt # not wanted in unbundled
|
||||||
'';
|
'';
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ fetchurl }:
|
{ fetchurl }:
|
||||||
|
|
||||||
fetchurl {
|
fetchurl {
|
||||||
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/c1b1aa583dc3e3cd2c97c17d865be34ff3e019ab.tar.gz";
|
url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/b09de4efc2a385cf3407072c24c21ec8ec774a03.tar.gz";
|
||||||
sha256 = "03q732jxymdxmm9gqfyghjcsscc5qwg7aicx5kk8fkrfz17xd44k";
|
sha256 = "0yy3k5wgi9zgwz51gxakhlalwac59fkh0flydf334msrxlc3xf9z";
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user