Merge staging-next into staging

This commit is contained in:
Frederik Rietdijk 2019-03-01 09:22:21 +01:00
commit 205e0fc5bd
367 changed files with 6628 additions and 3260 deletions

View file

@ -1 +1 @@
19.03 19.09

View file

@ -96,7 +96,7 @@
compiler resulting from a single build can itself only produce binaries compiler resulting from a single build can itself only produce binaries
for a single platform. The task of specifying this single "target for a single platform. The task of specifying this single "target
platform" is thus pushed to build time of the compiler. The root cause of platform" is thus pushed to build time of the compiler. The root cause of
this that the compiler (which will be run on the host) and the standard this is that the compiler (which will be run on the host) and the standard
library/runtime (which will be run on the target) are built by a single library/runtime (which will be run on the target) are built by a single
build process. build process.
</para> </para>

View file

@ -47,7 +47,7 @@ buildImage {
contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' /> contents = pkgs.redis; <co xml:id='ex-dockerTools-buildImage-6' />
runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' /> runAsRoot = '' <co xml:id='ex-dockerTools-buildImage-runAsRoot' />
#!${stdenv.shell} #!${pkgs.runtimeShell}
mkdir -p /data mkdir -p /data
''; '';
@ -544,7 +544,7 @@ buildImage {
name = "shadow-basic"; name = "shadow-basic";
runAsRoot = '' runAsRoot = ''
#!${stdenv.shell} #!${pkgs.runtimeShell}
${shadowSetup} ${shadowSetup}
groupadd -r redis groupadd -r redis
useradd -r -g redis redis useradd -r -g redis redis

View file

@ -24,6 +24,8 @@ rec {
config = parse.tripleFromSystem final.parsed; config = parse.tripleFromSystem final.parsed;
# Just a guess, based on `system` # Just a guess, based on `system`
platform = platforms.selectBySystem final.system; platform = platforms.selectBySystem final.system;
# Determine whether we are compatible with the provided CPU
isCompatible = platform: parse.isCompatible final.parsed.cpu platform.parsed.cpu;
# Derived meta-data # Derived meta-data
libc = libc =
/**/ if final.isDarwin then "libSystem" /**/ if final.isDarwin then "libSystem"
@ -99,13 +101,14 @@ rec {
wine = (pkgs.winePackagesFor wine-name).minimal; wine = (pkgs.winePackagesFor wine-name).minimal;
in in
if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name && if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name &&
(final.parsed.cpu.name == pkgs.stdenv.hostPlatform.parsed.cpu.name || pkgs.stdenv.hostPlatform.isCompatible final
(final.isi686 && pkgs.stdenv.hostPlatform.isx86_64)) then "${pkgs.runtimeShell} -c"
then pkgs.runtimeShell
else if final.isWindows else if final.isWindows
then "${wine}/bin/${wine-name}" then "${wine}/bin/${wine-name}"
else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux else if final.isLinux && pkgs.stdenv.hostPlatform.isLinux
then "${qemu-user}/bin/qemu-${final.qemuArch}" then "${qemu-user}/bin/qemu-${final.qemuArch}"
else if final.isWasm
then "${pkgs.v8}/bin/d8"
else throw "Don't know how to run ${final.config} executables."; else throw "Don't know how to run ${final.config} executables.";
} // mapAttrs (n: v: v final.parsed) inspect.predicates } // mapAttrs (n: v: v final.parsed) inspect.predicates

View file

@ -112,6 +112,66 @@ rec {
avr = { bits = 8; family = "avr"; }; avr = { bits = 8; family = "avr"; };
}; };
# Determine where two CPUs are compatible with each other. That is,
# can we run code built for system b on system a? For that to
# happen, then the set of all possible possible programs that system
# b accepts must be a subset of the set of all programs that system
# a accepts. This compatibility relation forms a category where each
# CPU is an object and each arrow from a to b represents
# compatibility. CPUs with multiple modes of Endianness are
# isomorphic while all CPUs are endomorphic because any program
# built for a CPU can run on that CPU.
isCompatible = a: b: with cpuTypes; lib.any lib.id [
# x86
(b == i386 && isCompatible a i486)
(b == i486 && isCompatible a i586)
(b == i586 && isCompatible a i686)
# NOTE: Not true in some cases. Like in WSL mode.
(b == i686 && isCompatible a x86_64)
# ARM
(b == arm && isCompatible a armv5tel)
(b == armv5tel && isCompatible a armv6m)
(b == armv6m && isCompatible a armv6l)
(b == armv6l && isCompatible a armv7a)
(b == armv7a && isCompatible a armv7r)
(b == armv7r && isCompatible a armv7m)
(b == armv7m && isCompatible a armv7l)
(b == armv7l && isCompatible a armv8a)
(b == armv8a && isCompatible a armv8r)
(b == armv8r && isCompatible a armv8m)
# NOTE: not always true! Some arm64 cpus dont support arm32 mode.
(b == armv8m && isCompatible a aarch64)
(b == aarch64 && a == aarch64_be)
(b == aarch64_be && isCompatible a aarch64)
# PowerPC
(b == powerpc && isCompatible a powerpc64)
(b == powerpcle && isCompatible a powerpc)
(b == powerpc && a == powerpcle)
(b == powerpc64le && isCompatible a powerpc64)
(b == powerpc64 && a == powerpc64le)
# MIPS
(b == mips && isCompatible a mips64)
(b == mips && a == mipsel)
(b == mipsel && isCompatible a mips)
(b == mips64 && a == mips64el)
(b == mips64el && isCompatible a mips64)
# RISCV
(b == riscv32 && isCompatible a riscv64)
# SPARC
(b == sparc && isCompatible a sparc64)
# WASM
(b == wasm32 && isCompatible a wasm64)
# identity
(b == a)
];
################################################################################ ################################################################################
types.openVendor = mkOptionType { types.openVendor = mkOptionType {

View file

@ -134,7 +134,7 @@ rec {
On each release the first letter is bumped and a new animal is chosen On each release the first letter is bumped and a new animal is chosen
starting with that new letter. starting with that new letter.
*/ */
codeName = "Koi"; codeName = "Loris";
/* Returns the current nixpkgs version suffix as string. */ /* Returns the current nixpkgs version suffix as string. */
versionSuffix = versionSuffix =

View file

@ -1628,6 +1628,10 @@
email = "fpletz@fnordicwalking.de"; email = "fpletz@fnordicwalking.de";
github = "fpletz"; github = "fpletz";
name = "Franz Pletz"; name = "Franz Pletz";
keys = [{
longkeyid = "rsa4096/0x846FDED7792617B4";
fingerprint = "8A39 615D CE78 AF08 2E23 F303 846F DED7 7926 17B4";
}];
}; };
fps = { fps = {
email = "mista.tapas@gmx.net"; email = "mista.tapas@gmx.net";
@ -2294,6 +2298,11 @@
joko = { joko = {
email = "ioannis.koutras@gmail.com"; email = "ioannis.koutras@gmail.com";
github = "jokogr"; github = "jokogr";
keys = [{
# compare with https://keybase.io/joko
longkeyid = "rsa2048/0x85EAE7D9DF56C5CA";
fingerprint = "B154 A8F9 0610 DB45 0CA8 CF39 85EA E7D9 DF56 C5CA";
}];
name = "Ioannis Koutras"; name = "Ioannis Koutras";
}; };
jonafato = { jonafato = {
@ -4356,6 +4365,15 @@
github = "solson"; github = "solson";
name = "Scott Olson"; name = "Scott Olson";
}; };
sondr3 = {
email = "nilsen.sondre@gmail.com";
github = "sondr3";
name = "Sondre Nilsen";
keys = [{
longkeyid = "ed25519/0x25676BCBFFAD76B1";
fingerprint = "0EC3 FA89 EFBA B421 F82E 40B0 2567 6BCB FFAD 76B1";
}];
};
sorki = { sorki = {
email = "srk@48.io"; email = "srk@48.io";
github = "sorki"; github = "sorki";
@ -5055,7 +5073,7 @@
name = "Kranium Gikos Mendoza"; name = "Kranium Gikos Mendoza";
}; };
worldofpeace = { worldofpeace = {
email = "worldofpeace@users.noreply.github.com"; email = "worldofpeace@protonmail.ch";
github = "worldofpeace"; github = "worldofpeace";
name = "Worldofpeace"; name = "Worldofpeace";
}; };
@ -5268,4 +5286,9 @@
github = "shmish111"; github = "shmish111";
name = "David Smith"; name = "David Smith";
}; };
minijackson = {
email = "minijackson@riseup.net";
github = "minijackson";
name = "Rémi Nicole";
};
} }

View file

@ -61,7 +61,7 @@ nixpkgs$ ${0} ${GENERATED_NIXFILE}
These packages are manually refined in lua-overrides.nix These packages are manually refined in lua-overrides.nix
*/ */
{ self, lua, stdenv, fetchurl, fetchgit, pkgs, ... } @ args: { self, stdenv, fetchurl, fetchgit, pkgs, ... } @ args:
self: super: self: super:
with self; with self;
{ {

View file

@ -60,13 +60,6 @@
Make sure a channel is created at http://nixos.org/channels/. </link> Make sure a channel is created at http://nixos.org/channels/. </link>
</para> </para>
</listitem> </listitem>
<listitem>
<para>
<link xlink:href="https://github.com/NixOS/nixpkgs/settings/branches">
Let a GitHub nixpkgs admin lock the branch on github for you. (so
developers cant force push) </link>
</para>
</listitem>
<listitem> <listitem>
<para> <para>
<link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790"> <link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">

View file

@ -8,6 +8,7 @@
This section lists the release notes for each stable version of NixOS and This section lists the release notes for each stable version of NixOS and
current unstable revision. current unstable revision.
</para> </para>
<xi:include href="rl-1909.xml" />
<xi:include href="rl-1903.xml" /> <xi:include href="rl-1903.xml" />
<xi:include href="rl-1809.xml" /> <xi:include href="rl-1809.xml" />
<xi:include href="rl-1803.xml" /> <xi:include href="rl-1803.xml" />

View file

@ -106,6 +106,23 @@
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
<itemizedlist>
<listitem>
<para>
<literal>./security/duosec.nix</literal>
</para>
</listitem>
<listitem>
<para>
The <link xlink:href="https://duo.com/docs/duounix">PAM module for Duo
Security</link> has been enabled for use. One can configure it using
the <option>security.duosec</option> options along with the
corresponding PAM option in
<option>security.pam.services.&lt;name?&gt;.duoSecurity.enable</option>.
</para>
</listitem>
</itemizedlist>
</section> </section>
<section xmlns="http://docbook.org/ns/docbook" <section xmlns="http://docbook.org/ns/docbook"
@ -563,20 +580,6 @@
use <literal>nixos-rebuild boot; reboot</literal>. use <literal>nixos-rebuild boot; reboot</literal>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Symlinks in <filename>/etc</filename> (except <filename>/etc/static</filename>)
are now relative instead of absolute. This makes possible to examine
NixOS container's <filename>/etc</filename> directory from host system
(previously it pointed to host <filename>/etc</filename> when viewed from host,
and to container <filename>/etc</filename> when viewed from container chroot).
</para>
<para>
This also makes <filename>/etc/os-release</filename> adhere to
<link xlink:href="https://www.freedesktop.org/software/systemd/man/os-release.html">the standard</link>
for NixOS containers.
</para>
</listitem>
<listitem> <listitem>
<para> <para>
Flat volumes are now disabled by default in <literal>hardware.pulseaudio</literal>. Flat volumes are now disabled by default in <literal>hardware.pulseaudio</literal>.

View file

@ -0,0 +1,58 @@
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-release-19.09">
<title>Release 19.09 (“Loris”, 2019/09/??)</title>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-release-19.09-highlights">
<title>Highlights</title>
<para>
In addition to numerous new and upgraded packages, this release has the
following highlights:
</para>
<itemizedlist>
<listitem>
<para />
</listitem>
</itemizedlist>
</section>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-release-19.09-new-services">
<title>New Services</title>
<para>
The following new services were added since the last release:
</para>
<itemizedlist>
<listitem>
<para />
</listitem>
</itemizedlist>
</section>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-release-19.09-notable-changes">
<title>Other Notable Changes</title>
<itemizedlist>
<listitem>
<para />
</listitem>
</itemizedlist>
</section>
</section>

View file

@ -34,7 +34,7 @@ with lib;
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; }; networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; }; networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; }; networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
pinentry = super.pinentry_ncurses; pinentry = super.pinentry.override { gtk2 = null; qt = null; };
gobject-introspection = super.gobject-introspection.override { x11Support = false; }; gobject-introspection = super.gobject-introspection.override { x11Support = false; };
})); }));
}; };

View file

@ -172,6 +172,11 @@ in
environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ] environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ]
++ lib.filter (p: p != null) [ nvidia_x11.persistenced ]; ++ lib.filter (p: p != null) [ nvidia_x11.persistenced ];
systemd.tmpfiles.rules = optional config.virtualisation.docker.enableNvidia
"L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin"
++ optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia)
"L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced";
boot.extraModulePackages = [ nvidia_x11.bin ]; boot.extraModulePackages = [ nvidia_x11.bin ];
# nvidia-uvm is required by CUDA applications. # nvidia-uvm is required by CUDA applications.

View file

@ -29,7 +29,7 @@ while [ "$#" -gt 0 ]; do
--help) --help)
showSyntax showSyntax
;; ;;
switch|boot|test|build|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader) switch|boot|test|build|edit|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader)
if [ "$i" = dry-run ]; then i=dry-build; fi if [ "$i" = dry-run ]; then i=dry-build; fi
action="$i" action="$i"
;; ;;
@ -227,6 +227,13 @@ if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" -a -z "$fast" ]; then
fi fi
fi fi
# Find configuration.nix and open editor instead of building.
if [ "$action" = edit ]; then
NIXOS_CONFIG=${NIXOS_CONFIG:-$(nix-instantiate --find-file nixos-config)}
exec "${EDITOR:-nano}" "$NIXOS_CONFIG"
exit 1
fi
tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX) tmpDir=$(mktemp -t -d nixos-rebuild.XXXXXX)
SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60" SSHOPTS="$NIX_SSHOPTS -o ControlMaster=auto -o ControlPath=$tmpDir/ssh-%n -o ControlPersist=60"

View file

@ -169,6 +169,59 @@ in
end end
''; '';
programs.fish.interactiveShellInit = ''
# add completions generated by NixOS to $fish_complete_path
begin
# joins with null byte to acommodate all characters in paths, then respectively gets all paths before (exclusive) / after (inclusive) the first one including "generated_completions",
# splits by null byte, and then removes all empty lines produced by using 'string'
set -l prev (string join0 $fish_complete_path | string match --regex "^.*?(?=\x00[^\x00]*generated_completions.*)" | string split0 | string match -er ".")
set -l post (string join0 $fish_complete_path | string match --regex "[^\x00]*generated_completions.*" | string split0 | string match -er ".")
set fish_complete_path $prev "/etc/fish/generated_completions" $post
end
'';
environment.etc."fish/generated_completions".source =
let
patchedGenerator = pkgs.stdenv.mkDerivation {
name = "fish_patched-completion-generator";
srcs = [
"${pkgs.fish}/share/fish/tools/create_manpage_completions.py"
"${pkgs.fish}/share/fish/tools/deroff.py"
];
unpackCmd = "cp $curSrc $(basename $curSrc)";
sourceRoot = ".";
patches = [ ./fish_completion-generator.patch ]; # to prevent collisions of identical completion files
dontBuild = true;
installPhase = ''
mkdir -p $out
cp * $out/
'';
preferLocalBuild = true;
allowSubstitutes = false;
};
generateCompletions = package: pkgs.runCommand
"${package.name}_fish-completions"
(
{
inherit package;
preferLocalBuild = true;
allowSubstitutes = false;
}
// optionalAttrs (package ? meta.priority) { meta.priority = package.meta.priority; }
)
''
mkdir -p $out
if [ -d $package/share/man ]; then
find $package/share/man -type f | xargs ${pkgs.python3.interpreter} ${patchedGenerator}/create_manpage_completions.py --directory $out >/dev/null
fi
'';
in
pkgs.buildEnv {
name = "system_fish-completions";
ignoreCollisions = true;
paths = map generateCompletions config.environment.systemPackages;
};
# include programs that bring their own completions # include programs that bring their own completions
environment.pathsToLink = [] environment.pathsToLink = []
++ optional cfg.vendor.config.enable "/share/fish/vendor_conf.d" ++ optional cfg.vendor.config.enable "/share/fish/vendor_conf.d"

View file

@ -0,0 +1,11 @@
--- a/create_manpage_completions.py
+++ b/create_manpage_completions.py
@@ -776,8 +776,6 @@ def parse_manpage_at_path(manpage_path, output_directory):
built_command_output.insert(0, "# " + CMDNAME)
- # Output the magic word Autogenerated so we can tell if we can overwrite this
- built_command_output.insert(1, "# Autogenerated from man page " + manpage_path)
# built_command_output.insert(2, "# using " + parser.__class__.__name__) # XXX MISATTRIBUTES THE CULPABILE PARSER! Was really using Type2 but reporting TypeDeroffManParser
for line in built_command_output:

View file

@ -7,7 +7,7 @@ let
boolToStr = b: if b then "yes" else "no"; boolToStr = b: if b then "yes" else "no";
configFile = '' configFilePam = ''
[duo] [duo]
ikey=${cfg.ikey} ikey=${cfg.ikey}
skey=${cfg.skey} skey=${cfg.skey}
@ -16,21 +16,24 @@ let
failmode=${cfg.failmode} failmode=${cfg.failmode}
pushinfo=${boolToStr cfg.pushinfo} pushinfo=${boolToStr cfg.pushinfo}
autopush=${boolToStr cfg.autopush} autopush=${boolToStr cfg.autopush}
motd=${boolToStr cfg.motd}
prompts=${toString cfg.prompts} prompts=${toString cfg.prompts}
accept_env_factor=${boolToStr cfg.acceptEnvFactor}
fallback_local_ip=${boolToStr cfg.fallbackLocalIP} fallback_local_ip=${boolToStr cfg.fallbackLocalIP}
''; '';
configFileLogin = configFilePam + ''
motd=${boolToStr cfg.motd}
accept_env_factor=${boolToStr cfg.acceptEnvFactor}
'';
loginCfgFile = optional cfg.ssh.enable loginCfgFile = optional cfg.ssh.enable
{ source = pkgs.writeText "login_duo.conf" configFile; { source = pkgs.writeText "login_duo.conf" configFileLogin;
mode = "0600"; mode = "0600";
user = "sshd"; user = "sshd";
target = "duo/login_duo.conf"; target = "duo/login_duo.conf";
}; };
pamCfgFile = optional cfg.pam.enable pamCfgFile = optional cfg.pam.enable
{ source = pkgs.writeText "pam_duo.conf" configFile; { source = pkgs.writeText "pam_duo.conf" configFilePam;
mode = "0600"; mode = "0600";
user = "sshd"; user = "sshd";
target = "duo/pam_duo.conf"; target = "duo/pam_duo.conf";
@ -180,12 +183,6 @@ in
}; };
config = mkIf (cfg.ssh.enable || cfg.pam.enable) { config = mkIf (cfg.ssh.enable || cfg.pam.enable) {
assertions =
[ { assertion = !cfg.pam.enable;
message = "PAM support is currently not implemented.";
}
];
environment.systemPackages = [ pkgs.duo-unix ]; environment.systemPackages = [ pkgs.duo-unix ];
security.wrappers.login_duo.source = "${pkgs.duo-unix.out}/bin/login_duo"; security.wrappers.login_duo.source = "${pkgs.duo-unix.out}/bin/login_duo";

View file

@ -131,6 +131,18 @@ let
''; '';
}; };
duoSecurity = {
enable = mkOption {
default = false;
type = types.bool;
description = ''
If set, use the Duo Security pam module
<literal>pam_duo</literal> for authentication. Requires
configuration of <option>security.duosec</option> options.
'';
};
};
startSession = mkOption { startSession = mkOption {
default = false; default = false;
type = types.bool; type = types.bool;
@ -340,7 +352,8 @@ let
|| cfg.pamMount || cfg.pamMount
|| cfg.enableKwallet || cfg.enableKwallet
|| cfg.enableGnomeKeyring || cfg.enableGnomeKeyring
|| cfg.googleAuthenticator.enable)) '' || cfg.googleAuthenticator.enable
|| cfg.duoSecurity.enable)) ''
auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth auth required pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth
${optionalString config.security.pam.enableEcryptfs ${optionalString config.security.pam.enableEcryptfs
"auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"} "auth optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
@ -350,9 +363,11 @@ let
("auth optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" + ("auth optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
" kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")} " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
${optionalString cfg.enableGnomeKeyring ${optionalString cfg.enableGnomeKeyring
("auth optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so")} "auth optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so"}
${optionalString cfg.googleAuthenticator.enable ${optionalString cfg.googleAuthenticator.enable
"auth required ${pkgs.googleAuthenticator}/lib/security/pam_google_authenticator.so no_increment_hotp"} "auth required ${pkgs.googleAuthenticator}/lib/security/pam_google_authenticator.so no_increment_hotp"}
${optionalString cfg.duoSecurity.enable
"auth required ${pkgs.duo-unix}/lib/security/pam_duo.so"}
'') + '' '') + ''
${optionalString cfg.unixAuth ${optionalString cfg.unixAuth
"auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"} "auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth try_first_pass"}

View file

@ -202,7 +202,7 @@ in {
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps ]; environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps pkgs.iproute ];
users.extraUsers.datadog = { users.extraUsers.datadog = {
description = "Datadog Agent User"; description = "Datadog Agent User";
@ -216,7 +216,7 @@ in {
systemd.services = let systemd.services = let
makeService = attrs: recursiveUpdate { makeService = attrs: recursiveUpdate {
path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps ]; path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps pkgs.iproute ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
User = "datadog"; User = "datadog";

View file

@ -106,7 +106,8 @@ in {
type = types.str; type = types.str;
default = ""; default = "";
description = '' description = ''
Address to listen on for the web interface and API. Address to listen on for the web interface and API. Empty string will listen on all interfaces.
"localhost" will listen on 127.0.0.1 (but not ::1).
''; '';
}; };

View file

@ -155,7 +155,7 @@ in
}; };
programs = mkOption { programs = mkOption {
default = getBin pkgs.openafs; default = getBin pkgs.openafs;
defaultText = "config.boot.kernelPackages.openafs"; defaultText = "getBin pkgs.openafs";
type = types.package; type = types.package;
description = "OpenAFS programs package. MUST match the kernel module package!"; description = "OpenAFS programs package. MUST match the kernel module package!";
}; };

View file

@ -130,7 +130,7 @@ in
group = "gnunet"; group = "gnunet";
description = "GNUnet User"; description = "GNUnet User";
home = homeDir; home = homeDir;
createHome = true; createHome = true;
uid = config.ids.uids.gnunet; uid = config.ids.uids.gnunet;
}; };
@ -146,7 +146,7 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ cfg.package pkgs.miniupnpc ]; path = [ cfg.package pkgs.miniupnpc ];
environment.TMPDIR = "/tmp"; environment.TMPDIR = "/tmp";
serviceConfig.PrivateTemp = true; serviceConfig.PrivateTmp = true;
serviceConfig.ExecStart = "${cfg.package}/lib/gnunet/libexec/gnunet-service-arm -c ${configFile}"; serviceConfig.ExecStart = "${cfg.package}/lib/gnunet/libexec/gnunet-service-arm -c ${configFile}";
serviceConfig.User = "gnunet"; serviceConfig.User = "gnunet";
serviceConfig.UMask = "0007"; serviceConfig.UMask = "0007";

View file

@ -400,7 +400,10 @@ in
sockets.sshd = sockets.sshd =
{ description = "SSH Socket"; { description = "SSH Socket";
wantedBy = [ "sockets.target" ]; wantedBy = [ "sockets.target" ];
socketConfig.ListenStream = cfg.ports; socketConfig.ListenStream = if cfg.listenAddresses != [] then
map (l: "${l.addr}:${toString (if l.port != null then l.port else 22)}") cfg.listenAddresses
else
cfg.ports;
socketConfig.Accept = true; socketConfig.Accept = true;
}; };

View file

@ -45,6 +45,11 @@ in {
default = "/var/lib/nextcloud"; default = "/var/lib/nextcloud";
description = "Storage path of nextcloud."; description = "Storage path of nextcloud.";
}; };
logLevel = mkOption {
type = types.ints.between 0 4;
default = 2;
description = "Log level value between 0 (DEBUG) and 4 (FATAL).";
};
https = mkOption { https = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -281,6 +286,7 @@ in {
'skeletondirectory' => '${cfg.skeletonDirectory}', 'skeletondirectory' => '${cfg.skeletonDirectory}',
${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"} ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
'log_type' => 'syslog', 'log_type' => 'syslog',
'log_level' => '${builtins.toString cfg.logLevel}',
]; ];
''; '';
occInstallCmd = let occInstallCmd = let

View file

@ -44,7 +44,7 @@ let
} }
'')); ''));
awkFormat = pkgs.writeText "awkFormat-nginx.awk" '' awkFormat = builtins.toFile "awkFormat-nginx.awk" ''
awk -f awk -f
{sub(/^[ \t]+/,"");idx=0} {sub(/^[ \t]+/,"");idx=0}
/\{/{ctx++;idx=1} /\{/{ctx++;idx=1}
@ -52,15 +52,9 @@ let
{id="";for(i=idx;i<ctx;i++)id=sprintf("%s%s", id, "\t");printf "%s%s\n", id, $0} {id="";for(i=idx;i<ctx;i++)id=sprintf("%s%s", id, "\t");printf "%s%s\n", id, $0}
''; '';
configFile = pkgs.stdenv.mkDerivation { configFile = pkgs.runCommand "nginx.conf" {} (''
name = "nginx-config"; awk -f ${awkFormat} ${pre-configFile} | sed '/^\s*$/d' > $out
src = ""; '');
phases = [ "installPhase" ];
installPhase = ''
mkdir $out
awk -f ${awkFormat} ${pre-configFile} | sed '/^\s*$/d' > $out/nginx.conf
'';
};
pre-configFile = pkgs.writeText "pre-nginx.conf" '' pre-configFile = pkgs.writeText "pre-nginx.conf" ''
user ${cfg.user} ${cfg.group}; user ${cfg.user} ${cfg.group};
@ -656,10 +650,10 @@ in
preStart = preStart =
'' ''
${cfg.preStart} ${cfg.preStart}
${cfg.package}/bin/nginx -c ${configFile}/nginx.conf -p ${cfg.stateDir} -t ${cfg.package}/bin/nginx -c ${configFile} -p ${cfg.stateDir} -t
''; '';
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/nginx -c ${configFile}/nginx.conf -p ${cfg.stateDir}"; ExecStart = "${cfg.package}/bin/nginx -c ${configFile} -p ${cfg.stateDir}";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
Restart = "always"; Restart = "always";
RestartSec = "10s"; RestartSec = "10s";

View file

@ -98,10 +98,13 @@ in
]; ];
services.gnome3.gnome-keyring.enable = true; services.gnome3.gnome-keyring.enable = true;
services.gnome3.gvfs.enable = true;
services.upower.enable = config.powerManagement.enable; services.upower.enable = config.powerManagement.enable;
security.pam.services."mate-screensaver".unixAuth = true; security.pam.services."mate-screensaver".unixAuth = true;
environment.variables.GIO_EXTRA_MODULES = [ "${pkgs.gnome3.gvfs}/lib/gio/modules" ];
environment.pathsToLink = [ "/share" ]; environment.pathsToLink = [ "/share" ];
}; };

View file

@ -10,11 +10,6 @@ users_=($users)
groups_=($groups) groups_=($groups)
set +f set +f
# Create relative symlinks, so that the links can be followed if
# the NixOS installation is not mounted as filesystem root.
# Absolute symlinks violate the os-release format
# at https://www.freedesktop.org/software/systemd/man/os-release.html
# and break e.g. systemd-nspawn and os-prober.
for ((i = 0; i < ${#targets_[@]}; i++)); do for ((i = 0; i < ${#targets_[@]}; i++)); do
source="${sources_[$i]}" source="${sources_[$i]}"
target="${targets_[$i]}" target="${targets_[$i]}"
@ -24,14 +19,14 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
# If the source name contains '*', perform globbing. # If the source name contains '*', perform globbing.
mkdir -p $out/etc/$target mkdir -p $out/etc/$target
for fn in $source; do for fn in $source; do
ln -s --relative "$fn" $out/etc/$target/ ln -s "$fn" $out/etc/$target/
done done
else else
mkdir -p $out/etc/$(dirname $target) mkdir -p $out/etc/$(dirname $target)
if ! [ -e $out/etc/$target ]; then if ! [ -e $out/etc/$target ]; then
ln -s --relative $source $out/etc/$target ln -s $source $out/etc/$target
else else
echo "duplicate entry $target -> $source" echo "duplicate entry $target -> $source"
if test "$(readlink $out/etc/$target)" != "$source"; then if test "$(readlink $out/etc/$target)" != "$source"; then
@ -39,13 +34,13 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
exit 1 exit 1
fi fi
fi fi
if test "${modes_[$i]}" != symlink; then if test "${modes_[$i]}" != symlink; then
echo "${modes_[$i]}" > $out/etc/$target.mode echo "${modes_[$i]}" > $out/etc/$target.mode
echo "${users_[$i]}" > $out/etc/$target.uid echo "${users_[$i]}" > $out/etc/$target.uid
echo "${groups_[$i]}" > $out/etc/$target.gid echo "${groups_[$i]}" > $out/etc/$target.gid
fi fi
fi fi
done done

View file

@ -4,7 +4,6 @@ use File::Copy;
use File::Path; use File::Path;
use File::Basename; use File::Basename;
use File::Slurp; use File::Slurp;
use File::Spec;
my $etc = $ARGV[0] or die; my $etc = $ARGV[0] or die;
my $static = "/etc/static"; my $static = "/etc/static";
@ -18,20 +17,6 @@ sub atomicSymlink {
return 1; return 1;
} }
# Create relative symlinks, so that the links can be followed if
# the NixOS installation is not mounted as filesystem root.
# Absolute symlinks violate the os-release format
# at https://www.freedesktop.org/software/systemd/man/os-release.html
# and break e.g. systemd-nspawn and os-prober.
sub atomicRelativeSymlink {
my ($source, $target) = @_;
my $tmp = "$target.tmp";
unlink $tmp;
my $rel = File::Spec->abs2rel($source, dirname $target);
symlink $rel, $tmp or return 0;
rename $tmp, $target or return 0;
return 1;
}
# Atomically update /etc/static to point at the etc files of the # Atomically update /etc/static to point at the etc files of the
# current configuration. # current configuration.
@ -118,7 +103,7 @@ sub link {
if (-e "$_.mode") { if (-e "$_.mode") {
my $mode = read_file("$_.mode"); chomp $mode; my $mode = read_file("$_.mode"); chomp $mode;
if ($mode eq "direct-symlink") { if ($mode eq "direct-symlink") {
atomicRelativeSymlink readlink("$static/$fn"), $target or warn; atomicSymlink readlink("$static/$fn"), $target or warn;
} else { } else {
my $uid = read_file("$_.uid"); chomp $uid; my $uid = read_file("$_.uid"); chomp $uid;
my $gid = read_file("$_.gid"); chomp $gid; my $gid = read_file("$_.gid"); chomp $gid;
@ -132,7 +117,7 @@ sub link {
push @copied, $fn; push @copied, $fn;
print CLEAN "$fn\n"; print CLEAN "$fn\n";
} elsif (-l "$_") { } elsif (-l "$_") {
atomicRelativeSymlink "$static/$fn", $target or warn; atomicSymlink "$static/$fn", $target or warn;
} }
} }

View file

@ -52,6 +52,15 @@ in
''; '';
}; };
enableNvidia =
mkOption {
type = types.bool;
default = false;
description = ''
Enable nvidia-docker wrapper, supporting NVIDIA GPUs inside docker containers.
'';
};
liveRestore = liveRestore =
mkOption { mkOption {
type = types.bool; type = types.bool;
@ -140,7 +149,8 @@ in
###### implementation ###### implementation
config = mkIf cfg.enable (mkMerge [{ config = mkIf cfg.enable (mkMerge [{
environment.systemPackages = [ cfg.package ]; environment.systemPackages = [ cfg.package ]
++ optional cfg.enableNvidia pkgs.nvidia-docker;
users.groups.docker.gid = config.ids.gids.docker; users.groups.docker.gid = config.ids.gids.docker;
systemd.packages = [ cfg.package ]; systemd.packages = [ cfg.package ];
@ -157,6 +167,7 @@ in
--log-driver=${cfg.logDriver} \ --log-driver=${cfg.logDriver} \
${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \ ${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \
${optionalString cfg.liveRestore "--live-restore" } \ ${optionalString cfg.liveRestore "--live-restore" } \
${optionalString cfg.enableNvidia "--add-runtime nvidia=${pkgs.nvidia-docker}/bin/nvidia-container-runtime" } \
${cfg.extraOptions} ${cfg.extraOptions}
'']; ''];
ExecReload=[ ExecReload=[
@ -165,7 +176,8 @@ in
]; ];
}; };
path = [ pkgs.kmod ] ++ (optional (cfg.storageDriver == "zfs") pkgs.zfs); path = [ pkgs.kmod ] ++ optional (cfg.storageDriver == "zfs") pkgs.zfs
++ optional cfg.enableNvidia pkgs.nvidia-docker;
}; };
systemd.sockets.docker = { systemd.sockets.docker = {
@ -179,7 +191,6 @@ in
}; };
}; };
systemd.services.docker-prune = { systemd.services.docker-prune = {
description = "Prune docker resources"; description = "Prune docker resources";
@ -194,7 +205,15 @@ in
startAt = optional cfg.autoPrune.enable cfg.autoPrune.dates; startAt = optional cfg.autoPrune.enable cfg.autoPrune.dates;
}; };
assertions = [
{ assertion = cfg.enableNvidia -> config.hardware.opengl.driSupport32Bit or false;
message = "Option enableNvidia requires 32bit support libraries";
}];
} }
(mkIf cfg.enableNvidia {
environment.etc."nvidia-container-runtime/config.toml".source = "${pkgs.nvidia-docker}/etc/config.toml";
})
]); ]);
imports = [ imports = [

View file

@ -74,6 +74,7 @@ in
ferm = handleTest ./ferm.nix {}; ferm = handleTest ./ferm.nix {};
firefox = handleTest ./firefox.nix {}; firefox = handleTest ./firefox.nix {};
firewall = handleTest ./firewall.nix {}; firewall = handleTest ./firewall.nix {};
fish = handleTest ./fish.nix {};
flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {}; flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
flatpak = handleTest ./flatpak.nix {}; flatpak = handleTest ./flatpak.nix {};
fsck = handleTest ./fsck.nix {}; fsck = handleTest ./fsck.nix {};

21
nixos/tests/fish.nix Normal file
View file

@ -0,0 +1,21 @@
import ./make-test.nix ({ pkgs, ... }: {
name = "fish";
machine =
{ pkgs, ... }:
{
programs.fish.enable = true;
environment.systemPackages = with pkgs; [
coreutils
procps # kill collides with coreutils' to test https://github.com/NixOS/nixpkgs/issues/56432
];
};
testScript =
''
$machine->waitForFile("/etc/fish/generated_completions/coreutils.fish");
$machine->waitForFile("/etc/fish/generated_completions/kill.fish");
$machine->succeed("fish -ic 'echo \$fish_complete_path' | grep -q '/share/fish/completions /etc/fish/generated_completions /root/.local/share/fish/generated_completions\$'");
'';
})

View file

@ -45,7 +45,7 @@ with pkgs.lib;
{ {
services.gitea.enable = true; services.gitea.enable = true;
services.gitea.database.type = "postgres"; services.gitea.database.type = "postgres";
services.gitea.database.password = "secret"; services.gitea.database.passwordFile = pkgs.writeText "db-password" "secret";
}; };
testScript = '' testScript = ''

View file

@ -37,8 +37,7 @@ import ./make-test.nix ({ pkgs, lib, ...} : {
}; };
services.ndppd = { services.ndppd = {
enable = true; enable = true;
interface = "eth1"; proxies."eth1".rules."fd42::/112" = {};
network = "fd42::/112";
}; };
containers.client = { containers.client = {
autoStart = true; autoStart = true;

View file

@ -34,6 +34,24 @@ in {
]; ];
}; };
server_localhost_only =
{ ... }:
{
services.openssh = {
enable = true; listenAddresses = [ { addr = "127.0.0.1"; port = 22; } ];
};
};
server_localhost_only_lazy =
{ ... }:
{
services.openssh = {
enable = true; startWhenNeeded = true; listenAddresses = [ { addr = "127.0.0.1"; port = 22; } ];
};
};
client = client =
{ ... }: { }; { ... }: { };
@ -77,5 +95,10 @@ in {
" server_lazy true"); " server_lazy true");
}; };
subtest "localhost-only", sub {
$server_localhost_only->succeed("ss -nlt | grep '127.0.0.1:22'");
$server_localhost_only_lazy->succeed("ss -nlt | grep '127.0.0.1:22'");
}
''; '';
}) })

View file

@ -52,8 +52,18 @@ in
machine = { machine = {
services.rspamd = { services.rspamd = {
enable = true; enable = true;
bindSocket = [ "/run/rspamd.sock mode=0600 user=root group=root" ]; workers.normal.bindSockets = [{
bindUISocket = [ "/run/rspamd-worker.sock mode=0666 user=root group=root" ]; socket = "/run/rspamd.sock";
mode = "0600";
owner = "root";
group = "root";
}];
workers.controller.bindSockets = [{
socket = "/run/rspamd-worker.sock";
mode = "0666";
owner = "root";
group = "root";
}];
}; };
}; };
@ -235,7 +245,7 @@ in
services.rspamd = { services.rspamd = {
enable = true; enable = true;
postfix.enable = true; postfix.enable = true;
workers.rspamd_proxy.type = "proxy"; workers.rspamd_proxy.type = "rspamd_proxy";
}; };
}; };
testScript = '' testScript = ''

View file

@ -1,6 +1,6 @@
let let
version = "2.3.1"; version = "2.3.2";
sha256 = "13y3gczqb0rb6v17j63j1zp11cnykbv9c674hrk1i6jb3y4am4lv"; sha256 = "1063n7lkcfkywi0a06pxkw0wkq3qyq4lr53fv584mlbnh2hj8gpm";
cargoSha256 = "1pj5hzy7k1l9bbw1qpz80vvk89qz4qz4rnnkcvn2rkbmq382gxwy"; cargoSha256 = "1pj5hzy7k1l9bbw1qpz80vvk89qz4qz4rnnkcvn2rkbmq382gxwy";
in in
import ./parity.nix { inherit version sha256 cargoSha256; } import ./parity.nix { inherit version sha256 cargoSha256; }

View file

@ -1,6 +1,6 @@
let let
version = "2.2.8"; version = "2.2.9";
sha256 = "1l2bxra4fkbh8gnph9wnc24ddmzfdclsgcjbx8q6fflhcg6r9hf1"; sha256 = "0n9zk25ni4asfdqc4xh0gqp2446vxacqz7qcrmsngf8swvayvi16";
cargoSha256 = "10lg0vzikzlj927hpn59x1dz9dvhcaqsl8nz14vj2iz42vfkcm7p"; cargoSha256 = "10lg0vzikzlj927hpn59x1dz9dvhcaqsl8nz14vj2iz42vfkcm7p";
in in
import ./parity.nix { inherit version sha256 cargoSha256; } import ./parity.nix { inherit version sha256 cargoSha256; }

View file

@ -1,11 +1,11 @@
{ stdenv, fetchgit, meson, ninja, pkgconfig { stdenv, fetchgit, meson, ninja, pkgconfig
, python3, gtk3, gst_all_1, libsecret, libsoup , python3, gtk3, gst_all_1, libsecret, libsoup
, appstream-glib, desktop-file-utils, totem-pl-parser , appstream-glib, desktop-file-utils, totem-pl-parser
, gobject-introspection, wrapGAppsHook }: , hicolor-icon-theme, gobject-introspection, wrapGAppsHook }:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "lollypop"; pname = "lollypop";
version = "0.9.921"; version = "0.9.923";
format = "other"; format = "other";
doCheck = false; doCheck = false;
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
url = "https://gitlab.gnome.org/World/lollypop"; url = "https://gitlab.gnome.org/World/lollypop";
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
fetchSubmodules = true; fetchSubmodules = true;
sha256 = "0a79qnci93yicd58r6kr6yinpqz67s39h0xk5qkzlsplpbawvf3y"; sha256 = "0jgz36lrhigcsr9vs5sp4ngv8rir3zqicygymjv7d61d6pclkx1z";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -36,6 +36,7 @@ python3.pkgs.buildPythonApplication rec {
gst-plugins-ugly gst-plugins-ugly
gstreamer gstreamer
gtk3 gtk3
hicolor-icon-theme
libsecret libsecret
libsoup libsoup
totem-pl-parser totem-pl-parser

View file

@ -1,21 +1,24 @@
{ alsaLib, autoconf, automake, dssi, fetchurl, gtk2, libjack2 { alsaLib, autoconf, automake, dssi, fetchurl, libjack2
, ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile , ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
, libtool, libvorbis, lilv, lv2, pkgconfig, qt4, rubberband, serd , libtool, libvorbis, lilv, lv2, pkgconfig, qttools, qtbase, rubberband, serd
, sord, sratom, stdenv, suil }: , sord, sratom, stdenv, suil }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.6.7"; pname = "qtractor";
name = "qtractor-${version}"; version = "0.9.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qtractor/${name}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "0h5nblfkl4s412c9f02b40nb8c8jq8ypz67z2qn3hkvhx6i9yxsg"; sha256 = "05xrzr48b19mghbpbzjqw5fy6pl9140bm5m929lrsi4rq5hp3xgg";
}; };
nativeBuildInputs = [
autoconf automake libtool pkgconfig qttools
];
buildInputs = buildInputs =
[ alsaLib autoconf automake dssi gtk2 libjack2 ladspaH [ alsaLib dssi libjack2 ladspaH
ladspaPlugins liblo libmad libsamplerate libsndfile libtool ladspaPlugins liblo libmad libsamplerate libsndfile libtool
libvorbis lilv lv2 pkgconfig qt4 rubberband serd sord sratom libvorbis lilv lv2 qtbase rubberband serd sord sratom
suil suil
]; ];

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, spotify, xorg }: { stdenv, fetchFromGitHub, spotify, xorg, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "spotifywm-unstable-${version}"; name = "spotifywm-unstable-${version}";
version = "2016-11-28"; version = "2016-11-28";
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ spotify ]; propagatedBuildInputs = [ spotify ];
installPhase = '' installPhase = ''
echo "#!${stdenv.shell}" > spotifywm echo "#!${runtimeShell}" > spotifywm
echo "LD_PRELOAD="$out/lib/spotifywm.so" ${spotify}/bin/spotify \$*" >> spotifywm echo "LD_PRELOAD="$out/lib/spotifywm.so" ${spotify}/bin/spotify \$*" >> spotifywm
install -Dm644 spotifywm.so $out/lib/spotifywm.so install -Dm644 spotifywm.so $out/lib/spotifywm.so
install -Dm755 spotifywm $out/bin/spotifywm install -Dm755 spotifywm $out/bin/spotifywm

View file

@ -18,9 +18,9 @@ let
sha256Hash = "0np8600qvqpw9kcmgp04i1nak1339ck1iidkzr75kigp5rgdl2bq"; sha256Hash = "0np8600qvqpw9kcmgp04i1nak1339ck1iidkzr75kigp5rgdl2bq";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.5.0.4"; # "Android Studio 3.5 Canary 5" version = "3.5.0.5"; # "Android Studio 3.5 Canary 6"
build = "183.5320907"; build = "183.5326993";
sha256Hash = "1i56r58kcwrllx3a85dhsz9m0amb7xj9ybqfkdf1a8ipv1hdqs1g"; sha256Hash = "06d43qw0p6zpy6vmriiihql5vgc6c4darplc2148y616hx0whrql";
}; };
in rec { in rec {
# Old alias (TODO @primeos: Remove after 19.03 is branched off): # Old alias (TODO @primeos: Remove after 19.03 is branched off):

View file

@ -1,10 +1,10 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
msgpack (1.2.4) msgpack (1.2.6)
multi_json (1.13.1) multi_json (1.13.1)
neovim (0.7.0) neovim (0.8.0)
msgpack (~> 1.0) msgpack (~> 1.1)
multi_json (~> 1.0) multi_json (~> 1.0)
PLATFORMS PLATFORMS
@ -14,4 +14,4 @@ DEPENDENCIES
neovim neovim
BUNDLED WITH BUNDLED WITH
1.14.6 1.17.2

View file

@ -2,10 +2,10 @@
msgpack = { msgpack = {
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864"; sha256 = "0031gd2mjyba6jb7m97sqa149zjkr0vzn2s2gpb3m9nb67gqkm13";
type = "gem"; type = "gem";
}; };
version = "1.2.4"; version = "1.2.6";
}; };
multi_json = { multi_json = {
source = { source = {
@ -19,9 +19,9 @@
dependencies = ["msgpack" "multi_json"]; dependencies = ["msgpack" "multi_json"];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0b487dzz41im8cwzvfjqgf8kkrp6mpkvcbzhazrmqqw8gxyvfbq4"; sha256 = "07scrdfk7pyn5jgx5m2yajdqpbdv42833vbw568qqag6xp99j3yk";
type = "gem"; type = "gem";
}; };
version = "0.7.0"; version = "0.8.0";
}; };
} }

View file

@ -1,4 +1,4 @@
{ stdenv, appimage-run, fetchurl }: { stdenv, appimage-run, fetchurl, runtimeShell }:
let let
version = "3.0.6"; version = "3.0.6";
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/{bin,share} mkdir -p $out/{bin,share}
cp $src $out/share/standardNotes.AppImage cp $src $out/share/standardNotes.AppImage
echo "#!${stdenv.shell}" > $out/bin/standardnotes echo "#!${runtimeShell}" > $out/bin/standardnotes
echo "${appimage-run}/bin/appimage-run $out/share/standardNotes.AppImage" >> $out/bin/standardnotes echo "${appimage-run}/bin/appimage-run $out/share/standardNotes.AppImage" >> $out/bin/standardnotes
chmod +x $out/bin/standardnotes $out/share/standardNotes.AppImage chmod +x $out/bin/standardnotes $out/share/standardNotes.AppImage
''; '';

View file

@ -1,6 +1,6 @@
{buildVersion, x32sha256, x64sha256}: {buildVersion, x32sha256, x64sha256}:
{ fetchurl, stdenv, glib, xorg, cairo, gtk2, gtk3, pango, makeWrapper, wrapGAppsHook, openssl, bzip2, { fetchurl, stdenv, glib, xorg, cairo, gtk2, gtk3, pango, makeWrapper, wrapGAppsHook, openssl, bzip2, runtimeShell,
pkexecPath ? "/run/wrappers/bin/pkexec", libredirect, pkexecPath ? "/run/wrappers/bin/pkexec", libredirect,
gksuSupport ? false, gksu, unzip, zip, bash}: gksuSupport ? false, gksu, unzip, zip, bash}:
@ -115,7 +115,7 @@ in stdenv.mkDerivation (rec {
mkdir -p $out/bin mkdir -p $out/bin
cat > $out/bin/subl <<-EOF cat > $out/bin/subl <<-EOF
#!${stdenv.shell} #!${runtimeShell}
exec $sublime/sublime_text "\$@" exec $sublime/sublime_text "\$@"
EOF EOF
chmod +x $out/bin/subl chmod +x $out/bin/subl

View file

@ -7,6 +7,7 @@
, vimPlugins , vimPlugins
, makeWrapper , makeWrapper
, wrapGAppsHook , wrapGAppsHook
, runtimeShell
# apple frameworks # apple frameworks
, CoreServices, CoreData, Cocoa, Foundation, libobjc, cf-private , CoreServices, CoreData, Cocoa, Foundation, libobjc, cf-private
@ -157,22 +158,22 @@ in stdenv.mkDerivation rec {
rewrap () { rewrap () {
rm -f "$out/bin/$1" rm -f "$out/bin/$1"
echo -e '#!${stdenv.shell}\n"'"$out/bin/vim"'" '"$2"' "$@"' > "$out/bin/$1" echo -e '#!${runtimeShell}\n"'"$out/bin/vim"'" '"$2"' "$@"' > "$out/bin/$1"
chmod a+x "$out/bin/$1" chmod a+x "$out/bin/$1"
} }
rewrap ex -e rewrap ex -e
rewrap view -R rewrap view -R
rewrap gvim -g rewrap gvim -g
rewrap gex -eg rewrap gex -eg
rewrap gview -Rg rewrap gview -Rg
rewrap rvim -Z rewrap rvim -Z
rewrap rview -RZ rewrap rview -RZ
rewrap rgvim -gZ rewrap rgvim -gZ
rewrap rgview -RgZ rewrap rgview -RgZ
rewrap evim -y rewrap evim -y
rewrap eview -yR rewrap eview -yR
rewrap vimdiff -d rewrap vimdiff -d
rewrap gvimdiff -gd rewrap gvimdiff -gd
''; '';

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, jre}: { stdenv, fetchurl, jre, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "alchemy-${version}"; name = "alchemy-${version}";
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin $out/share mkdir -p $out/bin $out/share
cp -a . $out/share/alchemy cp -a . $out/share/alchemy
cat >> $out/bin/alchemy << EOF cat >> $out/bin/alchemy << EOF
#!${stdenv.shell} #!${runtimeShell}
cd $out/share/alchemy cd $out/share/alchemy
${jre}/bin/java -jar Alchemy.jar "$@" ${jre}/bin/java -jar Alchemy.jar "$@"
EOF EOF

View file

@ -1,5 +1,6 @@
{ stdenv, fetchurl, callPackage, libpng12, imagemagick, { stdenv, fetchurl, callPackage, libpng12, imagemagick
autoreconfHook, glib, pstoedit, pkgconfig, gettext, gd, darwin }: , autoreconfHook, glib, pstoedit, pkgconfig, gettext, gd, darwin
, runtimeShell }:
# TODO: Figure out why the resultant binary is somehow linked against # TODO: Figure out why the resultant binary is somehow linked against
# libpng16.so.16 rather than libpng12. # libpng16.so.16 rather than libpng12.
@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
# pstoedit-config no longer exists, it was replaced with pkg-config # pstoedit-config no longer exists, it was replaced with pkg-config
mkdir wrappers mkdir wrappers
cat >wrappers/pstoedit-config <<'EOF' cat >wrappers/pstoedit-config <<'EOF'
#!${stdenv.shell} #!${runtimeShell}
# replace --version with --modversion for pkg-config # replace --version with --modversion for pkg-config
args=''${@/--version/--modversion} args=''${@/--version/--modversion}
exec pkg-config pstoedit "''${args[@]}" exec pkg-config pstoedit "''${args[@]}"

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, makeDesktopItem, unzip, jre }: { stdenv, fetchurl, makeDesktopItem, unzip, jre, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "swingsane-${version}"; name = "swingsane-${version}";
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
installPhase = let installPhase = let
execWrapper = '' execWrapper = ''
#!${stdenv.shell} #!${runtimeShell}
exec ${jre}/bin/java -jar $out/share/java/swingsane/swingsane-${version}.jar "$@" exec ${jre}/bin/java -jar $out/share/java/swingsane/swingsane-${version}.jar "$@"
''; '';

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, erlang, cl, libGL, libGLU }: { fetchurl, stdenv, erlang, cl, libGL, libGLU, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "wings-2.2.1"; name = "wings-2.2.1";
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
cp ebin/* $out/lib/${name}/ebin cp ebin/* $out/lib/${name}/ebin
cp -R textures shaders plugins $out/lib/$name cp -R textures shaders plugins $out/lib/$name
cat << EOF > $out/bin/wings cat << EOF > $out/bin/wings
#!${stdenv.shell} #!${runtimeShell}
${erlang}/bin/erl \ ${erlang}/bin/erl \
-pa $out/lib/${name}/ebin -run wings_start start_halt "$@" -pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
EOF EOF
@ -43,4 +43,3 @@ stdenv.mkDerivation rec {
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
}; };
} }

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, jre, unzip}: { stdenv, fetchurl, jre, unzip, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.9.0"; version = "0.9.0";
pname = "zgrviewer"; pname = "zgrviewer";
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
cp -r target/* "$out/share/java/zvtm/" cp -r target/* "$out/share/java/zvtm/"
echo '#!${stdenv.shell}' > "$out/bin/zgrviewer" echo '#!${runtimeShell}' > "$out/bin/zgrviewer"
echo "${jre}/lib/openjdk/jre/bin/java -jar '$out/share/java/zvtm/zgrviewer-${version}.jar' \"\$@\"" >> "$out/bin/zgrviewer" echo "${jre}/lib/openjdk/jre/bin/java -jar '$out/share/java/zvtm/zgrviewer-${version}.jar' \"\$@\"" >> "$out/bin/zgrviewer"
chmod a+x "$out/bin/zgrviewer" chmod a+x "$out/bin/zgrviewer"
''; '';

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, unzip, mono, avrdude, gtk2, xdg_utils }: { stdenv, runtimeShell, fetchurl, unzip, mono, avrdude, gtk2, xdg_utils }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "avrdudess-2.2.20140102"; name = "avrdudess-2.2.20140102";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
unzip "$src" -d "$out/avrdudess" unzip "$src" -d "$out/avrdudess"
cat >> "$out/bin/avrdudess" << __EOF__ cat >> "$out/bin/avrdudess" << __EOF__
#!${stdenv.shell} #!${runtimeShell}
export LD_LIBRARY_PATH="${stdenv.lib.makeLibraryPath [gtk2 mono]}" export LD_LIBRARY_PATH="${stdenv.lib.makeLibraryPath [gtk2 mono]}"
# We need PATH from user env for xdg-open to find its tools, which # We need PATH from user env for xdg-open to find its tools, which
# typically depend on the currently running desktop environment. # typically depend on the currently running desktop environment.

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, python, pythonPackages, unzip }: { stdenv, runtimeShell, lib, fetchurl, python, pythonPackages, unzip }:
# This package uses a precompiled "binary" distribution of CuraByDagoma, # This package uses a precompiled "binary" distribution of CuraByDagoma,
# distributed by the editor. # distributed by the editor.
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
mkdir $out/bin mkdir $out/bin
cat > $out/bin/curabydago <<EOF cat > $out/bin/curabydago <<EOF
#!${stdenv.shell} #!${runtimeShell}
export PYTHONPATH=$PYTHONPATH export PYTHONPATH=$PYTHONPATH
${python.out}/bin/python $out/curabydago/cura.py ${python.out}/bin/python $out/curabydago/cura.py
EOF EOF

View file

@ -8,13 +8,13 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gammu-${version}"; name = "gammu-${version}";
version = "1.39.0"; version = "1.40.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gammu"; owner = "gammu";
repo = "gammu"; repo = "gammu";
rev = version; rev = version;
sha256 = "1hr053z2l5mjgip83fsxnd1rqsp5gwywzagzrgdg243apn1nz0gs"; sha256 = "1jjaa9r3x6i8gv3yn1ngg815s6gsxblsw4wb5ddm77kamn2qyvpf";
}; };
patches = [ ./bashcomp-dir.patch ./systemd.patch ]; patches = [ ./bashcomp-dir.patch ./systemd.patch ];

View file

@ -5,13 +5,13 @@ with python3.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "gcalcli"; pname = "gcalcli";
version = "4.0.3"; version = "4.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "insanum"; owner = "insanum";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "15hpm7b09p5qnha0hpp0mgdl2pgsyq2sjcqihk3fsv7arngdbr5q"; sha256 = "0bl4cmc24iw12zn5mlj5qn141s2k2mzdixbcb92pfng4w2s4dq66";
}; };
postPatch = lib.optionalString stdenv.isLinux '' postPatch = lib.optionalString stdenv.isLinux ''

View file

@ -1,12 +1,12 @@
{ stdenv, writeScript, fetchFromGitHub { stdenv, writeScript, fetchFromGitHub
, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite , libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite
, enableGlfw ? false, glfw }: , enableGlfw ? false, glfw, runtimeShell }:
let let
inherit (stdenv.lib) optional makeLibraryPath; inherit (stdenv.lib) optional makeLibraryPath;
wrapperScript = writeScript "glava" '' wrapperScript = writeScript "glava" ''
#!${stdenv.shell} #!${runtimeShell}
case "$1" in case "$1" in
--copy-config) --copy-config)
# The binary would symlink it, which won't work in Nix because the # The binary would symlink it, which won't work in Nix because the

View file

@ -1,4 +1,4 @@
{ stdenv }: { stdenv, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "example-unfree-package-${version}"; name = "example-unfree-package-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
cat > $out/bin/hello-unfree << EOF cat > $out/bin/hello-unfree << EOF
#!${stdenv.shell} #!${runtimeShell}
echo "Hello, you are running an unfree system!" echo "Hello, you are running an unfree system!"
EOF EOF
chmod +x $out/bin/hello-unfree chmod +x $out/bin/hello-unfree

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, java }: { stdenv, fetchurl, java, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "jbidwatcher"; pname = "jbidwatcher";
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p "$out/bin" mkdir -p "$out/bin"
echo > "$out/bin/${pname}" "#!${stdenv.shell}" echo > "$out/bin/${pname}" "#!${runtimeShell}"
echo >>"$out/bin/${pname}" "${java}/bin/java -Xmx512m -jar ${jarfile}" echo >>"$out/bin/${pname}" "${java}/bin/java -Xmx512m -jar ${jarfile}"
chmod +x "$out/bin/${pname}" chmod +x "$out/bin/${pname}"
install -D -m644 ${src} ${jarfile} install -D -m644 ${src} ${jarfile}

View file

@ -1,5 +1,5 @@
{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11, { stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11,
libGLU_combined, freetype, xclip }: libGLU_combined, freetype, xclip, inotify-tools, procps }:
assert lib.versionAtLeast (lib.getVersion ocaml) "4.07"; assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
@ -34,11 +34,17 @@ stdenv.mkDerivation rec {
''; '';
installPhase = '' installPhase = ''
install -d $out/bin $out/lib install -d $out/bin
install build/llpp $out/bin install build/llpp $out/bin
install misc/llpp.inotify $out/bin/llpp.inotify
wrapProgram $out/bin/llpp \ wrapProgram $out/bin/llpp \
--prefix CAML_LD_LIBRARY_PATH ":" "$out/lib" \
--prefix PATH ":" "${xclip}/bin" --prefix PATH ":" "${xclip}/bin"
wrapProgram $out/bin/llpp.inotify \
--prefix PATH ":" "$out/bin" \
--prefix PATH ":" "${inotify-tools}/bin" \
--prefix PATH ":" "${procps}/bin"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View file

@ -1,4 +1,4 @@
{ stdenv, python36Packages, fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, utillinux, qt5 }: { stdenv, python36Packages, fetchFromGitHub, libxcb, mtools, p7zip, parted, procps, utillinux, qt5, runtimeShell }:
python36Packages.buildPythonApplication rec { python36Packages.buildPythonApplication rec {
pname = "multibootusb"; pname = "multibootusb";
name = "${pname}-${version}"; name = "${pname}-${version}";
@ -40,7 +40,7 @@ python36Packages.buildPythonApplication rec {
mkdir "$out/bin" mkdir "$out/bin"
cat > "$out/bin/${pname}" <<EOF cat > "$out/bin/${pname}" <<EOF
#!${stdenv.shell} #!${runtimeShell}
cd "$share" cd "$share"
export PYTHONPATH="$PYTHONPATH:$share" export PYTHONPATH="$PYTHONPATH:$share"
export PATH="$PATH:${parted}/bin:${procps}/bin" export PATH="$PATH:${parted}/bin:${procps}/bin"

View file

@ -1,4 +1,4 @@
{ stdenv, fetchgit, electron } : { stdenv, fetchgit, electron, runtimeShell } :
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nix-tour-${version}"; name = "nix-tour-${version}";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/share mkdir -p $out/share
cp -R * $out/share cp -R * $out/share
chmod 0755 $out/share/ -R chmod 0755 $out/share/ -R
echo "#!${stdenv.shell}" > $out/bin/nix-tour echo "#!${runtimeShell}" > $out/bin/nix-tour
echo "cd $out/share/" >> $out/bin/nix-tour echo "cd $out/share/" >> $out/bin/nix-tour
echo "${electron}/bin/electron $out/share/electron-main.js" >> $out/bin/nix-tour echo "${electron}/bin/electron $out/share/electron-main.js" >> $out/bin/nix-tour
chmod 0755 $out/bin/nix-tour chmod 0755 $out/bin/nix-tour

View file

@ -1,23 +1,23 @@
{ stdenv, fetchFromGitHub, pkgconfig, ncurses, conf ? null }: { stdenv, fetchFromGitHub, pkgconfig, ncurses, readline, conf ? null }:
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nnn-${version}"; name = "nnn-${version}";
version = "2.2"; version = "2.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jarun"; owner = "jarun";
repo = "nnn"; repo = "nnn";
rev = "v${version}"; rev = "v${version}";
sha256 = "01y2vkw1wakpnpzhzia3d44iir060i8vma3b3ww5wgwg7bfpzs4b"; sha256 = "0953l4wa4dnsq9aj50anjrww64413dxv25xx3kjwnqz2ag7zdyy7";
}; };
configFile = optionalString (conf!=null) (builtins.toFile "nnn.h" conf); configFile = optionalString (conf!=null) (builtins.toFile "nnn.h" conf);
preBuild = optionalString (conf!=null) "cp ${configFile} nnn.h"; preBuild = optionalString (conf!=null) "cp ${configFile} nnn.h";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ ncurses ]; buildInputs = [ readline ncurses ];
makeFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ]; makeFlags = [ "DESTDIR=${placeholder "out"}" "PREFIX=" ];

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, unzip}: { stdenv, fetchurl, unzip, runtimeShell }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "openjump-1.3.1"; name = "openjump-1.3.1";
@ -17,7 +17,7 @@ stdenv.mkDerivation {
s=$out/bin/OpenJump s=$out/bin/OpenJump
dir=$(echo $out/openjump-*) dir=$(echo $out/openjump-*)
cat >> $s << EOF cat >> $s << EOF
#!${stdenv.shell} #!${runtimeShell}
cd $dir/bin cd $dir/bin
exec ${stdenv.shell} openjump.sh exec ${stdenv.shell} openjump.sh
EOF EOF

View file

@ -19,6 +19,7 @@
, pkgsi686Linux , pkgsi686Linux
, which , which
, curl , curl
, jq
}: }:
let let
@ -41,6 +42,7 @@ let
xterm xterm
which which
curl curl
jq
]; ];
ld32 = ld32 =

View file

@ -1,4 +1,4 @@
{ stdenv, lib, fetchzip }: { stdenv, runtimeShell, lib, fetchzip }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "terminal-notifier-${version}"; name = "terminal-notifier-${version}";
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
cp -r terminal-notifier.app $out/Applications cp -r terminal-notifier.app $out/Applications
cat >$out/bin/terminal-notifier <<EOF cat >$out/bin/terminal-notifier <<EOF
#!${stdenv.shell} #!${runtimeShell}
cd $out/Applications/terminal-notifier.app cd $out/Applications/terminal-notifier.app
exec ./Contents/MacOS/terminal-notifier "\$@" exec ./Contents/MacOS/terminal-notifier "\$@"
EOF EOF

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl }: { stdenv, fetchurl, runtimeShell }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "thinkingrock-binary-2.2.1"; name = "thinkingrock-binary-2.2.1";
@ -11,7 +11,7 @@ stdenv.mkDerivation {
/* it would be a really bad idea to put thinkingrock tr executable in PATH! /* it would be a really bad idea to put thinkingrock tr executable in PATH!
the tr.sh script does use the coreutils tr itself the tr.sh script does use the coreutils tr itself
That's why I've renamed the wrapper and called it thinkingrock That's why I've renamed the wrapper and called it thinkingrock
However you may not rename the bin/tr script cause it will notice and throw an However you may not rename the bin/tr script cause it will notice and throw an
"java.lang.IllegalArgumentException: Malformed branding token: thinkingrock" "java.lang.IllegalArgumentException: Malformed branding token: thinkingrock"
exception. I hope that's fine exception. I hope that's fine
*/ */
@ -24,15 +24,15 @@ stdenv.mkDerivation {
mkdir -p $out/{nix-support/tr-files,bin} mkdir -p $out/{nix-support/tr-files,bin}
cp -r . $out/nix-support/tr-files cp -r . $out/nix-support/tr-files
cat >> $out/bin/thinkingrock << EOF cat >> $out/bin/thinkingrock << EOF
#!${stdenv.shell} #!${runtimeShell}
exec $out/nix-support/tr-files/bin/tr "$@" exec $out/nix-support/tr-files/bin/tr "$@"
EOF EOF
chmod +x $out/bin/thinkingrock chmod +x $out/bin/thinkingrock
''; '';
installPhase = ":"; installPhase = ":";
meta = { meta = {
description = "Task management system"; description = "Task management system";
homepage = http://www.thinkingrock.com.au/; homepage = http://www.thinkingrock.com.au/;
license = "CDDL"; # Common Development and Distribution License license = "CDDL"; # Common Development and Distribution License

View file

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A vi-like file manager"; description = "A vi-like file manager";
maintainers = with maintainers; [ raskin garbas ]; maintainers = with maintainers; [ raskin garbas ];
platforms = platforms.linux; platforms = platforms.unix;
license = licenses.gpl2; license = licenses.gpl2;
downloadPage = "https://vifm.info/downloads.shtml"; downloadPage = "https://vifm.info/downloads.shtml";
homepage = https://vifm.info/; homepage = https://vifm.info/;

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, jre }: { stdenv, fetchurl, jre, runtimeShell }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "vue-${version}"; name = "vue-${version}";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p "$out"/{share/vue,bin} mkdir -p "$out"/{share/vue,bin}
cp ${src} "$out/share/vue/vue.jar" cp ${src} "$out/share/vue/vue.jar"
echo '#!${stdenv.shell}' >> "$out/bin/vue" echo '#!${runtimeShell}' >> "$out/bin/vue"
echo '${jre}/bin/java -jar "'"$out/share/vue/vue.jar"'" "$@"' >> "$out/bin/vue" echo '${jre}/bin/java -jar "'"$out/share/vue/vue.jar"'" "$@"' >> "$out/bin/vue"
chmod a+x "$out/bin/vue" chmod a+x "$out/bin/vue"
''; '';

View file

@ -1,13 +1,13 @@
{ stdenv, fetchurl, buildPythonApplication, dateutil, { stdenv, fetchurl, buildPythonApplication, dateutil,
sqlalchemy, setproctitle, icalendar, pycrypto }: sqlalchemy, setproctitle, icalendar }:
buildPythonApplication rec { buildPythonApplication rec {
pname = "yokadi"; pname = "yokadi";
version = "1.1.1"; version = "1.2.0";
src = fetchurl { src = fetchurl {
url = "https://yokadi.github.io/download/${pname}-${version}.tar.bz2"; url = "https://yokadi.github.io/download/${pname}-${version}.tar.gz";
sha256 = "af201da66fd3a8435b2ccd932082ab9ff13f5f2e3d6cd3624f1ab81c577aaf17"; sha256 = "681c8aa52b2e4b5255e1311e76b4b81dcb63ee7f6ca3a47178e684c06baf330f";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -15,7 +15,6 @@ buildPythonApplication rec {
sqlalchemy sqlalchemy
setproctitle setproctitle
icalendar icalendar
pycrypto
]; ];
# Yokadi doesn't have any tests # Yokadi doesn't have any tests

View file

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory. # This file is autogenerated from update.sh in the same directory.
{ {
beta = { beta = {
sha256 = "0gd426a9xcgs8a9286gavziysq6fw1ilaifsna396dbdm8b571wi"; sha256 = "1176qg1a5d5lgy80xsywkz4gq0khfj5hgxykci00j827pryfpajh";
sha256bin64 = "05p20l0969rppbyn7965k78ccynng47rg7d7h7piqiwnm6ffg9yx"; sha256bin64 = "1dqxm82nrabdfwn20j94vs9zgif1jhkqibpx7c1ihq90nw7p17qb";
version = "73.0.3683.39"; version = "73.0.3683.46";
}; };
dev = { dev = {
sha256 = "1yyzhw5zv803ysdj7zf0imdw9cf0mdlw30vphcb59a93nnvhkbb7"; sha256 = "0ji6ps97hkwsy9525cdqd3k3k9nyh217h0gfjdkfb7phg6lf46q5";
sha256bin64 = "1a1dswkfc4x2rslkb899fgywv5mfrmcp1d8wxy7h034504r8gy87"; sha256bin64 = "0dg1qljc2gk8qkwckikq1q5wv7g00blc86nxkaqsr3i12rzy3n8g";
version = "74.0.3702.0"; version = "74.0.3710.0";
}; };
stable = { stable = {
sha256 = "0bcc0iksk2v30drwd5zbw7v6sfbw16jqllc12ks2nifrvh058jjp"; sha256 = "0ylig933xzn6c0018nxq95xhl0wkxcm95fdiy2c7s4a4h3hkr5dk";
sha256bin64 = "0azyhnmdg3grladpkpsv67zxqiqf5a3x9qjfj8h831kh7i7m3gy8"; sha256bin64 = "04rsgqrr696mq0yr0kmcyslklfnvrnkzf46d479qb2w55q7zh4s5";
version = "72.0.3626.109"; version = "72.0.3626.119";
}; };
} }

View file

@ -49,6 +49,7 @@
, gnugrep , gnugrep
, gnupg , gnupg
, ffmpeg , ffmpeg
, runtimeShell
}: }:
let let
@ -191,7 +192,7 @@ stdenv.mkDerivation {
# update with: # update with:
# $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped
passthru.updateScript = import ./update.nix { passthru.updateScript = import ./update.nix {
inherit stdenv name channel writeScript xidel coreutils gnused gnugrep gnupg curl; inherit stdenv name channel writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell;
baseUrl = baseUrl =
if channel == "devedition" if channel == "devedition"
then "http://archive.mozilla.org/pub/devedition/releases/" then "http://archive.mozilla.org/pub/devedition/releases/"

View file

@ -8,6 +8,7 @@
, gnugrep , gnugrep
, curl , curl
, gnupg , gnupg
, runtimeShell
, baseName ? "firefox" , baseName ? "firefox"
, basePath ? "pkgs/applications/networking/browsers/firefox-bin" , basePath ? "pkgs/applications/networking/browsers/firefox-bin"
, baseUrl , baseUrl
@ -18,7 +19,7 @@ let
channel != "release"; channel != "release";
in writeScript "update-${name}" '' in writeScript "update-${name}" ''
#!${stdenv.shell} #!${runtimeShell}
PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${gnupg}/bin PATH=${coreutils}/bin:${gnused}/bin:${gnugrep}/bin:${xidel}/bin:${curl}/bin:${gnupg}/bin
set -eux set -eux
pushd ${basePath} pushd ${basePath}

View file

@ -8,13 +8,14 @@
, gnugrep , gnugrep
, curl , curl
, attrPath , attrPath
, runtimeShell
, baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/" , baseUrl ? "http://archive.mozilla.org/pub/firefox/releases/"
, versionSuffix ? "" , versionSuffix ? ""
, versionKey ? "version" , versionKey ? "version"
}: }:
writeScript "update-${attrPath}" '' writeScript "update-${attrPath}" ''
#!${stdenv.shell} #!${runtimeShell}
PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused xidel ]} PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused xidel ]}
url=${baseUrl} url=${baseUrl}

View file

@ -21,12 +21,12 @@ let
in python3Packages.buildPythonApplication rec { in python3Packages.buildPythonApplication rec {
pname = "qutebrowser"; pname = "qutebrowser";
version = "1.5.2"; version = "1.6.0";
# the release tarballs are different from the git checkout! # the release tarballs are different from the git checkout!
src = fetchurl { src = fetchurl {
url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
sha256 = "0ki19mynq91aih3kxhipnay3jmn56s7p6rilws0gq0k98li6a4my"; sha256 = "1pkbzhd5syn7m8q0i7zlxjdgd693z0gj0h22nkc48zjkn214w236";
}; };
# Needs tox # Needs tox

View file

@ -15,13 +15,13 @@ with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kubernetes-${version}"; name = "kubernetes-${version}";
version = "1.13.3"; version = "1.13.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kubernetes"; owner = "kubernetes";
repo = "kubernetes"; repo = "kubernetes";
rev = "v${version}"; rev = "v${version}";
sha256 = "1fcp27c501ql4v7fl7rl5qyjlw1awk139rwwm0jqdpgh3sd22l2z"; sha256 = "1q3dc416fr9nzy64pl7rydahygnird0vpk9yflssw7v9gx84m6x9";
}; };
buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ]; buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];

View file

@ -1,44 +1,33 @@
{ stdenv, fetchFromGitHub, fetchpatch, meson, ninja, pkgconfig, vala_0_40, gettext, python3 { stdenv, fetchFromGitHub, fetchpatch, meson, ninja, pkgconfig, vala, gettext, python3
, appstream-glib, desktop-file-utils, glibcLocales, wrapGAppsHook , appstream-glib, desktop-file-utils, glibcLocales, wrapGAppsHook
, gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas , gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas
, curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo , curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "feedreader"; pname = "feedreader";
version = "2.6.2"; version = "2.8.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jangernert"; owner = "jangernert";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1x5milynfa27zyv2jkzyi7ikkszrvzki1hlzv8c2wvcmw60jqb8n"; sha256 = "1qm7scrz8xm68zizcfn13ll4ksdd004fahki7gbwqagsr1fg62y8";
}; };
patches = [
# See: https://github.com/jangernert/FeedReader/pull/842
(fetchpatch {
url = "https://github.com/jangernert/FeedReader/commit/f4ce70932c4ddc91783309708402c7c42d627455.patch";
sha256 = "076fpjn973xg2m35lc6z4h7g5x8nb08sghg94glsqa8wh1ig2311";
})
];
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig vala_0_40 gettext appstream-glib desktop-file-utils meson ninja pkgconfig vala gettext appstream-glib desktop-file-utils
python3 glibcLocales wrapGAppsHook libxml2 python3 wrapGAppsHook
]; ];
buildInputs = [ buildInputs = [
curl glib json-glib libnotify libsecret sqlite gumbo curl glib json-glib libnotify libsecret sqlite gumbo gtk3
gtk3 libgee libpeas gnome3.libsoup librest webkitgtk gnome3.gnome-online-accounts libgee libpeas gnome3.libsoup librest webkitgtk gsettings-desktop-schemas
gsettings-desktop-schemas gnome3.gnome-online-accounts
] ++ (with gst_all_1; [ ] ++ (with gst_all_1; [
gstreamer gst-plugins-base gst-plugins-good gstreamer gst-plugins-base gst-plugins-good
]); ]);
# vcs_tag function fails with UnicodeDecodeError
LC_ALL = "en_US.UTF-8";
postPatch = '' postPatch = ''
patchShebangs meson_post_install.py patchShebangs meson_post_install.py
''; '';
@ -47,7 +36,7 @@ stdenv.mkDerivation rec {
description = "A modern desktop application designed to complement existing web-based RSS accounts"; description = "A modern desktop application designed to complement existing web-based RSS accounts";
homepage = https://jangernert.github.io/FeedReader/; homepage = https://jangernert.github.io/FeedReader/;
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ edwtjo ]; maintainers = with maintainers; [ edwtjo worldofpeace ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View file

@ -1,7 +1,7 @@
{ callPackage, stdenv }: { callPackage, stdenv }:
let let
stableVersion = "2.1.12"; stableVersion = "2.1.14";
previewVersion = "2.2.0a1"; previewVersion = "2.2.0a1";
addVersion = args: addVersion = args:
let version = if args.stable then stableVersion else previewVersion; let version = if args.stable then stableVersion else previewVersion;
@ -9,8 +9,8 @@ let
in args // { inherit version branch; }; in args // { inherit version branch; };
mkGui = args: callPackage (import ./gui.nix (addVersion args)) { }; mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
mkServer = args: callPackage (import ./server.nix (addVersion args)) { }; mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
guiSrcHash = "19kk1nc8h6ljczhizkgszw6xma31p0fmh6vkygpmrfwb8975d1s6"; guiSrcHash = "1k4g1sd9s6nc3rsc918chnkr515qik4hfd4z5lw065bp3lshf48b";
serverSrcHash = "1rs3l33jf33y02xri0b7chy02cjzd8v7l20ccjw2in8mw08mpc99"; serverSrcHash = "0npm9p52jk04g9cmflsfph4dkj6373mfyvd3hff1caqmjalnfxg4";
in { in {
guiStable = mkGui { guiStable = mkGui {
stable = true; stable = true;

View file

@ -1,9 +1,9 @@
{ stdenv, lib, fetchurl, gnome2, gtk2, pango, atk, cairo, gdk_pixbuf, glib, { stdenv, fetchurl, gnome2, gtk3, pango, atk, cairo, gdk_pixbuf, glib,
freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage, freetype, fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage,
libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst, libXrandr, libXcomposite, libXext, libXfixes, libXrender, libXtst,
libXScrnSaver, nss, nspr, alsaLib, cups, expat, udev }: libXScrnSaver, nss, nspr, alsaLib, cups, expat, udev }:
let let
rpath = lib.makeLibraryPath [ rpath = stdenv.lib.makeLibraryPath [
alsaLib alsaLib
atk atk
cairo cairo
@ -15,7 +15,7 @@ let
gdk_pixbuf gdk_pixbuf
glib glib
gnome2.GConf gnome2.GConf
gtk2 gtk3
pango pango
libX11 libX11
libXScrnSaver libXScrnSaver
@ -38,44 +38,51 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mattermost-desktop-${version}"; name = "mattermost-desktop-${version}";
version = "4.1.2"; version = "4.2.0";
src = src =
if stdenv.hostPlatform.system == "x86_64-linux" then if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl { fetchurl {
url = "https://releases.mattermost.com/desktop/${version}/${name}-linux-x64.tar.gz"; url = "https://releases.mattermost.com/desktop/${version}/${name}-linux-x64.tar.gz";
sha256 = "16dn6870bs1nfl2082ym9gwvmqb3i5sli48qprap80p7riph6k9s"; sha256 = "0hka94gwpscjn61032c0grpjv5gjb0j8rkx6pgwci617n29xkyf6";
} }
else if stdenv.hostPlatform.system == "i686-linux" then else if stdenv.hostPlatform.system == "i686-linux" then
fetchurl { fetchurl {
url = "https://releases.mattermost.com/desktop/${version}/${name}-linux-ia32.tar.gz"; url = "https://releases.mattermost.com/desktop/${version}/${name}-linux-ia32.tar.gz";
sha256 = "145zb1l37fa2slfrrlprlwzcc5km3plxs374yhgix25mlg2afkqr"; sha256 = "1nx2sgbnr60h6kn56wv54m7cvyx27d64bfprpb94hqd5c2z21x80";
} }
else else
throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}"; throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}";
phases = [ "unpackPhase" "installPhase" ]; dontBuild = true;
dontConfigure = true;
dontPatchELF = true;
installPhase = '' installPhase = ''
mkdir -p $out mkdir -p $out/share/mattermost-desktop
cp -R . $out cp -R . $out/share/mattermost-desktop
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ mkdir -p "$out/bin"
--set-rpath ${rpath}:$out $out/mattermost-desktop ln -s $out/share/mattermost-desktop/mattermost-desktop \
$out/bin/mattermost-desktop
patchShebangs $out/create_desktop_file.sh patchShebangs $out/share/mattermost-desktop/create_desktop_file.sh
$out/create_desktop_file.sh $out/share/mattermost-desktop/create_desktop_file.sh
rm $out/share/mattermost-desktop/create_desktop_file.sh
mkdir -p $out/share/applications
mv Mattermost.desktop $out/share/applications/Mattermost.desktop
mkdir -p $out/{bin,share/applications} patchelf \
cp Mattermost.desktop $out/share/applications/Mattermost.desktop --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
ln -s $out/mattermost-desktop $out/bin/mattermost-desktop --set-rpath "${rpath}:$out/share/mattermost-desktop" \
$out/share/mattermost-desktop/mattermost-desktop
''; '';
meta = { meta = with stdenv.lib; {
description = "Mattermost Desktop client"; description = "Mattermost Desktop client";
homepage = https://about.mattermost.com/; homepage = https://about.mattermost.com/;
license = lib.licenses.asl20; license = licenses.asl20;
platforms = [ platforms = [ "x86_64-linux" "i686-linux" ];
"x86_64-linux" "i686-linux" maintainers = [ maintainers.joko ];
];
}; };
} }

View file

@ -1,5 +1,6 @@
{ stdenv, fetchgit, bash, libconfig, libevent, openssl, { stdenv, fetchgit, bash, libconfig, libevent, openssl
readline, zlib, lua5_2, python, pkgconfig, jansson , readline, zlib, lua5_2, python, pkgconfig, jansson
, runtimeShell
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
cp ./bin/telegram-cli $out/bin/telegram-wo-key cp ./bin/telegram-cli $out/bin/telegram-wo-key
cp ./tg-server.pub $out/ cp ./tg-server.pub $out/
cat > $out/bin/telegram-cli <<EOF cat > $out/bin/telegram-cli <<EOF
#!${stdenv.shell} #!${runtimeShell}
$out/bin/telegram-wo-key -k $out/tg-server.pub "\$@" $out/bin/telegram-wo-key -k $out/tg-server.pub "\$@"
EOF EOF
chmod +x $out/bin/telegram-cli chmod +x $out/bin/telegram-cli

View file

@ -1,5 +1,5 @@
{ stdenv, lib, runCommand, writeScriptBin, buildEnv { stdenv, lib, runCommand, writeScriptBin, buildEnv
, pythonPackages, perlPackages , pythonPackages, perlPackages, runtimeShell
}: }:
weechat: weechat:
@ -60,7 +60,7 @@ let
in "${scripts};${init}"; in "${scripts};${init}";
mkWeechat = bin: (writeScriptBin bin '' mkWeechat = bin: (writeScriptBin bin ''
#!${stdenv.shell} #!${runtimeShell}
export WEECHAT_EXTRA_LIBDIR=${pluginsDir} export WEECHAT_EXTRA_LIBDIR=${pluginsDir}
${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins} ${lib.concatMapStringsSep "\n" (p: lib.optionalString (p ? extraEnv) p.extraEnv) plugins}
exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init} exec ${weechat}/bin/${bin} "$@" --run-command ${lib.escapeShellArg init}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, makeWrapper, unzip, jre }: { stdenv, fetchurl, makeWrapper, unzip, jre, runtimeShell }:
let let
version = "1.9"; version = "1.9";
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
mv $dir/${uname}/* $dir mv $dir/${uname}/* $dir
rmdir $dir/${uname} rmdir $dir/${uname}
cat <<_EOF > $out/bin/msgviewer cat <<_EOF > $out/bin/msgviewer
#!${stdenv.shell} -eu #!${runtimeShell} -eu
exec ${stdenv.lib.getBin jre}/bin/java -jar $dir/MSGViewer.jar "\$@" exec ${stdenv.lib.getBin jre}/bin/java -jar $dir/MSGViewer.jar "\$@"
_EOF _EOF
chmod 755 $out/bin/msgviewer chmod 755 $out/bin/msgviewer

View file

@ -1,11 +1,11 @@
{ stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript { stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
, ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl , ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap , lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell
}: }:
let let
muttWrapper = writeScript "mutt" '' muttWrapper = writeScript "mutt" ''
#!${stdenv.shell} -eu #!${runtimeShell} -eu
echo 'The neomutt project has renamed the main binary from `mutt` to `neomutt`.' echo 'The neomutt project has renamed the main binary from `mutt` to `neomutt`.'
echo "" echo ""

View file

@ -41,6 +41,7 @@
, gnused , gnused
, gnugrep , gnugrep
, gnupg , gnupg
, runtimeShell
}: }:
# imports `version` and `sources` # imports `version` and `sources`
@ -159,7 +160,7 @@ stdenv.mkDerivation {
''; '';
passthru.updateScript = import ./../../browsers/firefox-bin/update.nix { passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
inherit name stdenv writeScript xidel coreutils gnused gnugrep curl gnupg; inherit name stdenv writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
baseName = "thunderbird"; baseName = "thunderbird";
channel = "release"; channel = "release";
basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin"; basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";

View file

@ -5,7 +5,7 @@
, hunspell, libevent, libstartup_notification , hunspell, libevent, libstartup_notification
, icu, libpng, jemalloc , icu, libpng, jemalloc
, autoconf213, which, m4 , autoconf213, which, m4
, writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl , writeScript, xidel, common-updater-scripts, coreutils, gnused, gnugrep, curl, runtimeShell
, cargo, rustc, llvmPackages , cargo, rustc, llvmPackages
, enableGTK3 ? false, gtk3, gnome3, wrapGAppsHook, makeWrapper , enableGTK3 ? false, gtk3, gnome3, wrapGAppsHook, makeWrapper
, enableCalendar ? true , enableCalendar ? true
@ -193,6 +193,6 @@ in stdenv.mkDerivation rec {
passthru.updateScript = import ./../../browsers/firefox/update.nix { passthru.updateScript = import ./../../browsers/firefox/update.nix {
attrPath = "thunderbird"; attrPath = "thunderbird";
baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/"; baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
inherit stdenv writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl; inherit stdenv writeScript lib common-updater-scripts xidel coreutils gnused gnugrep curl runtimeShell;
}; };
} }

View file

@ -2,7 +2,7 @@
libsecret, libGL, libpulseaudio, glib, makeWrapper, makeDesktopItem }: libsecret, libGL, libpulseaudio, glib, makeWrapper, makeDesktopItem }:
let let
version = "1.1.0-1"; version = "1.1.1-1";
description = '' description = ''
An application that runs on your computer in the background and seamlessly encrypts An application that runs on your computer in the background and seamlessly encrypts
@ -12,9 +12,9 @@ let
''; '';
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "Desktop-Bridge"; name = "protonmail-bridge";
exec = "Desktop-Bridge"; exec = "protonmail-bridge";
icon = "desktop-bridge"; icon = "protonmail-bridge";
comment = stdenv.lib.replaceStrings ["\n"] [" "] description; comment = stdenv.lib.replaceStrings ["\n"] [" "] description;
desktopName = "ProtonMail Bridge"; desktopName = "ProtonMail Bridge";
genericName = "ProtonMail Bridge for Linux"; genericName = "ProtonMail Bridge for Linux";
@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb"; url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb";
sha256 = "0l29z208krnd3dginc203m4p5dlmnxf08vpmbm9xzlckwmswizkb"; sha256 = "148syyz92yqxp2fw18fhflhmdrakxz7cc30va7h0pwysz97gni2p";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
@ -40,11 +40,11 @@ in stdenv.mkDerivation rec {
mkdir -p $out/{bin,lib,share/applications} mkdir -p $out/{bin,lib,share/applications}
mkdir -p $out/share/{applications,icons/hicolor/scalable/apps} mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
cp -r usr/lib/protonmail/bridge/Desktop-Bridge{,.sh} $out/lib cp -r usr/lib/protonmail/bridge/protonmail-bridge{,.sh} $out/lib
cp usr/share/icons/protonmail/Desktop-Bridge.svg $out/share/icons/hicolor/scalable/apps/desktop-bridge.svg cp usr/share/icons/protonmail/ProtonMail_Bridge.svg $out/share/icons/hicolor/scalable/apps/protonmail-bridge.svg
cp ${desktopItem}/share/applications/* $out/share/applications cp ${desktopItem}/share/applications/* $out/share/applications
ln -s $out/lib/Desktop-Bridge $out/bin/Desktop-Bridge ln -s $out/lib/protonmail-bridge $out/bin/protonmail-bridge
''; '';
postFixup = let postFixup = let
@ -66,9 +66,9 @@ in stdenv.mkDerivation rec {
patchelf \ patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${rpath}" \ --set-rpath "${rpath}" \
$out/lib/Desktop-Bridge $out/lib/protonmail-bridge
wrapProgram $out/lib/Desktop-Bridge \ wrapProgram $out/lib/protonmail-bridge \
--set QT_PLUGIN_PATH "${qtPath qtbase.qtPluginPrefix}" \ --set QT_PLUGIN_PATH "${qtPath qtbase.qtPluginPrefix}" \
--set QML_IMPORT_PATH "${qtPath qtbase.qtQmlPrefix}" \ --set QML_IMPORT_PATH "${qtPath qtbase.qtQmlPrefix}" \
--set QML2_IMPORT_PATH "${qtPath qtbase.qtQmlPrefix}" \ --set QML2_IMPORT_PATH "${qtPath qtbase.qtQmlPrefix}" \

View file

@ -32,6 +32,7 @@
, autorunLinkHandler ? true , autorunLinkHandler ? true
# Update script # Update script
, writeScript , writeScript
, runtimeShell
}: }:
let let
@ -130,7 +131,7 @@ stdenv.mkDerivation {
dontStrip = true; dontStrip = true;
dontPatchElf = true; dontPatchElf = true;
updateScript = import ./update.nix { inherit stdenv writeScript; }; updateScript = import ./update.nix { inherit stdenv writeScript runtimeShell; };
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.mendeley.com; homepage = http://www.mendeley.com;

View file

@ -1,7 +1,7 @@
{ stdenv, writeScript }: { stdenv, writeScript, runtimeShell }:
writeScript "update-mendeley" '' writeScript "update-mendeley" ''
#!${stdenv.shell} #!${runtimeShell}
function follow() { function follow() {
local URL=$1 local URL=$1
while true; do while true; do

View file

@ -1,5 +1,6 @@
{ stdenv, fetchurl, patchelf, coreutils, pcsclite { stdenv, fetchurl, patchelf, coreutils, pcsclite
, zlib, glib, gdk_pixbuf, gtk2, cairo, pango, libX11, atk, openssl }: , zlib, glib, gdk_pixbuf, gtk2, cairo, pango, libX11, atk, openssl
, runtimeShell }:
let let
libPath = stdenv.lib.makeLibraryPath [ libPath = stdenv.lib.makeLibraryPath [
@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
mkdir "$out/bin" mkdir "$out/bin"
cat > $out/bin/moneyplex <<EOF cat > $out/bin/moneyplex <<EOF
#!${stdenv.shell} #!${runtimeShell}
if [ -z "\$XDG_DATA_HOME" ]; then if [ -z "\$XDG_DATA_HOME" ]; then
MDIR=\$HOME/.local/share/moneyplex MDIR=\$HOME/.local/share/moneyplex

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl { stdenv, fetchurl
, xorgproto, motif, libX11, libXt, libXpm, bison , xorgproto, motif, libX11, libXt, libXpm, bison
, flex, automake, autoconf, libtool , flex, automake, autoconf, libtool, runtimeShell
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -39,12 +39,12 @@ stdenv.mkDerivation rec {
''; '';
allianceInstaller = '' allianceInstaller = ''
#!${stdenv.shell} #!${runtimeShell}
cp -v -r -n --no-preserve=mode $out/etc/* /etc/ > /etc/alliance-install.log cp -v -r -n --no-preserve=mode $out/etc/* /etc/ > /etc/alliance-install.log
''; '';
allianceUnInstaller = '' allianceUnInstaller = ''
#!${stdenv.shell} #!${runtimeShell}
awk '{print \$3}' /etc/alliance-install.log | xargs rm awk '{print \$3}' /etc/alliance-install.log | xargs rm
awk '{print \$3}' /etc/alliance-install.log | xargs rmdir awk '{print \$3}' /etc/alliance-install.log | xargs rmdir
rm /etc/alliance-install.log rm /etc/alliance-install.log

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, makeDesktopItem, patchelf, zlib, freetype, fontconfig { stdenv, fetchurl, makeDesktopItem, patchelf, zlib, freetype, fontconfig
, openssl, libXrender, libXrandr, libXcursor, libX11, libXext, libXi , openssl, libXrender, libXrandr, libXcursor, libX11, libXext, libXi
, libxcb, cups, xkeyboardconfig , libxcb, cups, xkeyboardconfig, runtimeShell
}: }:
let let
@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)" dynlinker="$(cat $NIX_CC/nix-support/dynamic-linker)"
mkdir -p "$out"/bin mkdir -p "$out"/bin
cat > "$out"/bin/eagle << EOF cat > "$out"/bin/eagle << EOF
#!${stdenv.shell} #!${runtimeShell}
export LD_LIBRARY_PATH="${stdenv.cc.cc.lib}/lib:${libPath}" export LD_LIBRARY_PATH="${stdenv.cc.cc.lib}/lib:${libPath}"
export LD_PRELOAD="$out/lib/eagle_fixer.so" export LD_PRELOAD="$out/lib/eagle_fixer.so"
export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb" export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"

View file

@ -0,0 +1,27 @@
{ stdenv, pkgs, fetchzip }:
stdenv.mkDerivation rec {
name = "clprover-${version}";
version = "1.0.3";
src = fetchzip {
url = "http://cgi.csc.liv.ac.uk/~ullrich/CLProver++/CLProver++-v1.0.3-18-04-2015.zip";
sha256 = "10kmlg4m572qwfzi6hkyb0ypb643xw8sfb55xx7866lyh37w1q3s";
stripRoot = false;
};
installPhase = ''
mkdir $out
cp -r bin $out/bin
mkdir -p $out/share/clprover
cp -r examples $out/share/clprover/examples
'';
meta = with stdenv.lib; {
description = "Resolution-based theorem prover for Coalition Logic implemented in C++";
homepage = http://cgi.csc.liv.ac.uk/~ullrich/CLProver++/;
license = licenses.gpl3; # Note that while the website states that it is GPLv2 but the file in the zip as well as the comments in the source state it is GPLv3
maintainers = with maintainers; [ mgttlinger ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, ocaml, num, camlp5 }: { stdenv, runtimeShell, fetchFromGitHub, ocaml, num, camlp5 }:
let let
load_num = load_num =
@ -11,7 +11,7 @@ let
start_script = start_script =
'' ''
#!${stdenv.shell} #!${runtimeShell}
cd $out/lib/hol_light cd $out/lib/hol_light
exec ${ocaml}/bin/ocaml \ exec ${ocaml}/bin/ocaml \
-I \`${camlp5}/bin/camlp5 -where\` \ -I \`${camlp5}/bin/camlp5 -where\` \

View file

@ -1,4 +1,4 @@
{stdenv, fetchurl, openjdk}: {stdenv, fetchurl, openjdk, runtimeShell}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "leo3"; pname = "leo3";
version = "1.2"; version = "1.2";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p "$out"/{bin,lib/java/leo3} mkdir -p "$out"/{bin,lib/java/leo3}
cp "${jar}" "$out/lib/java/leo3/leo3.jar" cp "${jar}" "$out/lib/java/leo3/leo3.jar"
echo "#!${stdenv.shell}" > "$out/bin/leo3" echo "#!${runtimeShell}" > "$out/bin/leo3"
echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\"" > "$out/bin/leo3" echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\"" > "$out/bin/leo3"
chmod a+x "$out/bin/leo3" chmod a+x "$out/bin/leo3"
''; '';

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "why3-${version}"; name = "why3-${version}";
version = "1.1.1"; version = "1.2.0";
src = fetchurl { src = fetchurl {
url = https://gforge.inria.fr/frs/download.php/file/37842/why3-1.1.1.tar.gz; url = https://gforge.inria.fr/frs/download.php/file/37903/why3-1.2.0.tar.gz;
sha256 = "065ix1ill009bxg7w27s8wq47vn03vbr63hsaa79arv31d96izny"; sha256 = "0xz001jhi71ja8vqrjz27v63bidrzj4qvg1yqarq6p4dmpxhk348";
}; };
buildInputs = (with ocamlPackages; [ buildInputs = (with ocamlPackages; [

View file

@ -12,7 +12,7 @@ in
melee = fetchzip' { melee = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Melee.zip"; url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Melee.zip";
sha256 = "0w050yah5rybx3m5zvpr09jv01r0xsazpyrc76338b2sd8pdxv3y"; sha256 = "0z44pgy10jklsvgpr0kcn4c2mz3hw7nlcmvsy6a6lzpi3dvzf33i";
stripRoot = false; stripRoot = false;
}; };
ladder2017season1 = fetchzip' { ladder2017season1 = fetchzip' {

View file

@ -1,6 +1,7 @@
{ stdenv { stdenv
, fetchFromGitHub , fetchFromGitHub
, fetchpatch , fetchpatch
, runtimeShell
}: }:
# This file is responsible for fetching the sage source and adding necessary patches. # This file is responsible for fetching the sage source and adding necessary patches.
@ -121,7 +122,7 @@ stdenv.mkDerivation rec {
-e 's/sage-python23/python/g' \ -e 's/sage-python23/python/g' \
-i {} \; -i {} \;
echo '#!${stdenv.shell} echo '#!${runtimeShell}
python "$@"' > build/bin/sage-python23 python "$@"' > build/bin/sage-python23
# Do not use sage-env-config (generated by ./configure). # Do not use sage-env-config (generated by ./configure).

View file

@ -82,6 +82,8 @@ let
git-hub = callPackage ./git-hub { }; git-hub = callPackage ./git-hub { };
git-ignore = callPackage ./git-ignore { };
git-imerge = callPackage ./git-imerge { }; git-imerge = callPackage ./git-imerge { };
git-octopus = callPackage ./git-octopus { }; git-octopus = callPackage ./git-octopus { };

View file

@ -0,0 +1,31 @@
{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, darwin }:
with rustPlatform;
buildRustPackage rec {
name = "git-ignore-${version}";
version = "0.2.0";
cargoSha256 = "1fqfy8lnvpn5sd3l73x2p359zq4303vsrdgw3aphvy6580yjb84d";
src = fetchFromGitHub {
owner = "sondr3";
repo = "git-ignore";
rev = "v${version}";
sha256 = "1nihh5inh46r8jg9z7d6g9gqfyhrznmkn15nmzpbnzf0653dl629";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ openssl ]
++ stdenv.lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
meta = with stdenv.lib; {
description = "Quickly and easily fetch .gitignore templates from gitignore.io";
homepage = https://github.com/sondr3/git-ignore;
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = [ maintainers.sondr3 ];
};
}

View file

@ -1,8 +1,8 @@
{ stdenv, buildGoPackage, fetchFromGitHub, ronn, ruby, groff, Security, utillinux, git, glibcLocales }: { stdenv, buildGoPackage, fetchFromGitHub, groff, Security, utillinux }:
buildGoPackage rec { buildGoPackage rec {
pname = "hub"; pname = "hub";
version = "2.9.0"; version = "2.10.0";
goPackagePath = "github.com/github/hub"; goPackagePath = "github.com/github/hub";
@ -13,12 +13,11 @@ buildGoPackage rec {
owner = "github"; owner = "github";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0yxpr606xx23l8823hjqj16cvjjrwb28c7z08ml1pkfvaf7w4n81"; sha256 = "1vvrc3k81jm9c664g0j9666i7ypn7n7jfyj4gxcybq3sg2d4di27";
}; };
nativeBuildInputs = [ groff ronn utillinux glibcLocales ]; nativeBuildInputs = [ groff utillinux ];
buildInputs = [ ruby ] ++ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
stdenv.lib.optional stdenv.isDarwin Security;
postPatch = '' postPatch = ''
patchShebangs . patchShebangs .
@ -30,7 +29,8 @@ buildGoPackage rec {
install -D etc/hub.bash_completion.sh "$bin/share/bash-completion/completions/hub" install -D etc/hub.bash_completion.sh "$bin/share/bash-completion/completions/hub"
install -D etc/hub.fish_completion "$bin/share/fish/vendor_completions.d/hub.fish" install -D etc/hub.fish_completion "$bin/share/fish/vendor_completions.d/hub.fish"
PATH=$PATH:${git}/bin LC_ALL=en_US.utf-8 make man-pages LC_ALL=C.UTF8 \
make man-pages
cp -vr --parents share/man/man[1-9]/*.[1-9] $bin/ cp -vr --parents share/man/man[1-9]/*.[1-9] $bin/
''; '';

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