Merge master into staging-next

This commit is contained in:
Frederik Rietdijk 2020-02-27 10:15:11 +01:00
commit 7b716121de
467 changed files with 11069 additions and 5406 deletions

10
.github/CODEOWNERS vendored
View File

@ -66,11 +66,11 @@
/doc/languages-frameworks/python.section.md @FRidh /doc/languages-frameworks/python.section.md @FRidh
# Haskell # Haskell
/pkgs/development/compilers/ghc @basvandijk @cdepillabout /pkgs/development/compilers/ghc @cdepillabout
/pkgs/development/haskell-modules @basvandijk @cdepillabout @infinisil /pkgs/development/haskell-modules @cdepillabout @infinisil
/pkgs/development/haskell-modules/default.nix @basvandijk @cdepillabout /pkgs/development/haskell-modules/default.nix @cdepillabout
/pkgs/development/haskell-modules/generic-builder.nix @basvandijk @cdepillabout /pkgs/development/haskell-modules/generic-builder.nix @cdepillabout
/pkgs/development/haskell-modules/hoogle.nix @basvandijk @cdepillabout /pkgs/development/haskell-modules/hoogle.nix @cdepillabout
# Perl # Perl
/pkgs/development/interpreters/perl @volth /pkgs/development/interpreters/perl @volth

View File

@ -36,9 +36,8 @@ rec {
else if final.isUClibc then "uclibc" else if final.isUClibc then "uclibc"
else if final.isAndroid then "bionic" else if final.isAndroid then "bionic"
else if final.isLinux /* default */ then "glibc" else if final.isLinux /* default */ then "glibc"
else if final.isMsp430 then "newlib"
else if final.isVc4 then "newlib"
else if final.isAvr then "avrlibc" else if final.isAvr then "avrlibc"
else if final.isNone then "newlib"
else if final.isNetBSD then "nblibc" else if final.isNetBSD then "nblibc"
# TODO(@Ericson2314) think more about other operating systems # TODO(@Ericson2314) think more about other operating systems
else "native/impure"; else "native/impure";

View File

@ -1085,6 +1085,12 @@
githubId = 7716744; githubId = 7716744;
name = "Berno Strik"; name = "Berno Strik";
}; };
brettlyons = {
email = "blyons@fastmail.com";
github = "brettlyons";
githubId = 3043718;
name = "Brett Lyons";
};
btlvr = { btlvr = {
email = "btlvr@protonmail.com"; email = "btlvr@protonmail.com";
github = "btlvr"; github = "btlvr";
@ -1362,6 +1368,12 @@
githubId = 25088352; githubId = 25088352;
name = "Christian Kögler"; name = "Christian Kögler";
}; };
clkamp = {
email = "c@lkamp.de";
github = "clkamp";
githubId = 46303707;
name = "Christian Lütke-Stetzkamp";
};
kampka = { kampka = {
email = "christian@kampka.net"; email = "christian@kampka.net";
github = "kampka"; github = "kampka";
@ -6075,6 +6087,20 @@
githubId = 807447; githubId = 807447;
name = "Robert Scott"; name = "Robert Scott";
}; };
risson = {
name = "Marc Schmitt";
email = "marc.schmitt@risson.space";
github = "rissson";
githubId = 18313093;
keys = [
{ longkeyid = "rsa4096/0xF6FD87B15C263EC9";
fingerprint = "8A0E 6A7C 08AB B9DE 67DE 2A13 F6FD 87B1 5C26 3EC9";
}
{ longkeyid = "ed25519/0xBBB7A6801DF1E03F";
fingerprint = "C0A7 A9BB 115B C857 4D75 EA99 BBB7 A680 1DF1 E03F";
}
];
};
rittelle = { rittelle = {
email = "rittelle@posteo.de"; email = "rittelle@posteo.de";
github = "rittelle"; github = "rittelle";
@ -6648,6 +6674,12 @@
email = "jot.skrzyp@gmail.com"; email = "jot.skrzyp@gmail.com";
name = "Jakub Skrzypnik"; name = "Jakub Skrzypnik";
}; };
skykanin = {
email = "skykanin@users.noreply.github.com";
github = "skykanin";
githubId = 3789764;
name = "skykanin";
};
sleexyz = { sleexyz = {
email = "freshdried@gmail.com"; email = "freshdried@gmail.com";
github = "sleexyz"; github = "sleexyz";
@ -6790,6 +6822,12 @@
githubId = 4061736; githubId = 4061736;
name = "Severen Redwood"; name = "Severen Redwood";
}; };
sstef = {
email = "stephane@nix.frozenid.net";
github = "fkstef";
githubId = 8668915;
name = "Stephane Schitter";
};
steell = { steell = {
email = "steve@steellworks.com"; email = "steve@steellworks.com";
github = "Steell"; github = "Steell";
@ -7748,7 +7786,7 @@
email = "worldofpeace@protonmail.ch"; email = "worldofpeace@protonmail.ch";
github = "worldofpeace"; github = "worldofpeace";
githubId = 28888242; githubId = 28888242;
name = "Worldofpeace"; name = "worldofpeace";
}; };
wscott = { wscott = {
email = "wsc9tt@gmail.com"; email = "wsc9tt@gmail.com";
@ -8102,4 +8140,17 @@
githubId = 3674056; githubId = 3674056;
name = "Asad Saeeduddin"; name = "Asad Saeeduddin";
}; };
ngerstle = {
name = "Nicholas Gerstle";
email = "ngerstle@gmail.com";
github = "ngerstle";
};
xavierzwirtz = {
email = "me@xavierzwirtz.com";
github = "xavierzwirtz";
githubId = 474343;
name = "Xavier Zwirtz";
};
} }

View File

@ -2,6 +2,7 @@
, maintainer ? null , maintainer ? null
, path ? null , path ? null
, max-workers ? null , max-workers ? null
, include-overlays ? false
, keep-going ? null , keep-going ? null
}: }:
@ -20,9 +21,7 @@ let
in in
[x] ++ nubOn f xs; [x] ++ nubOn f xs;
pkgs = import ./../../default.nix { pkgs = import ./../../default.nix (if include-overlays then { } else { overlays = []; });
overlays = [];
};
packagesWith = cond: return: set: packagesWith = cond: return: set:
nubOn (pkg: pkg.updateScript) nubOn (pkg: pkg.updateScript)

View File

@ -71,8 +71,9 @@
<para> <para>
<link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06"> <link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">
Update <literal>versionSuffix</literal> in Update <literal>versionSuffix</literal> in
<literal>nixos/release.nix</literal></link>, use <literal>git log <literal>nixos/release.nix</literal></link>, use
--format=%an|wc -l</literal> to get the commit count <literal>git rev-list --count 17.09-beta</literal>
to get the commit count.
</para> </para>
</listitem> </listitem>
<listitem> <listitem>

View File

@ -20,7 +20,7 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <para>
Support is planned until the end of October 2020, handing over to 20.09. Support is planned until the end of April 2021, handing over to 21.03.
</para> </para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -59,7 +59,18 @@
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para /> <para>
Grafana is now built without support for phantomjs by default. Phantomjs support has been
<link xlink:href="https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/">deprecated in Grafana</link>
and the <package>phantomjs</package> project is
<link xlink:href="https://github.com/ariya/phantomjs/issues/15344#issue-302015362">currently unmaintained</link>.
It can still be enabled by providing <literal>phantomJsSupport = true</literal> to the package instanciation:
<programlisting>{
services.grafana.package = pkgs.grafana.overrideAttrs (oldAttrs: rec {
phantomJsSupport = false;
});
}</programlisting>
</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -116,6 +116,7 @@ in
"/lib" # FIXME: remove and update debug-info.nix "/lib" # FIXME: remove and update debug-info.nix
"/sbin" "/sbin"
"/share/emacs" "/share/emacs"
"/share/hunspell"
"/share/nano" "/share/nano"
"/share/org" "/share/org"
"/share/themes" "/share/themes"

View File

@ -1,5 +1,4 @@
# This module defines a NixOS installation CD that contains X11 and # This module defines a NixOS installation CD that contains GNOME.
# GNOME 3.
{ lib, ... }: { lib, ... }:
@ -10,10 +9,22 @@ with lib;
services.xserver.desktopManager.gnome3.enable = true; services.xserver.desktopManager.gnome3.enable = true;
# Auto-login as root. # Wayland can be problematic for some hardware like Nvidia graphics cards.
services.xserver.displayManager.gdm.autoLogin = { services.xserver.displayManager.defaultSession = "gnome-xorg";
services.xserver.displayManager.gdm = {
enable = true; enable = true;
user = "root"; # autoSuspend makes the machine automatically suspend after inactivity.
# It's possible someone could/try to ssh'd into the machine and obviously
# have issues because it's inactive.
# See:
# * https://github.com/NixOS/nixpkgs/pull/63790
# * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
autoSuspend = false;
autoLogin = {
enable = true;
user = "nixos";
};
}; };
} }

View File

@ -1,5 +1,5 @@
{ {
x86_64-linux = "/nix/store/68mycwwczrciryylq2a66jwfhxp09zsg-nix-2.3.3-debug"; x86_64-linux = "/nix/store/ddmmzn4ggz1f66lwxjy64n89864yj9w9-nix-2.3.3";
i686-linux = "/nix/store/5axys7hsggb4282dsbps5k5p0v59yv13-nix-2.3.3"; i686-linux = "/nix/store/5axys7hsggb4282dsbps5k5p0v59yv13-nix-2.3.3";
aarch64-linux = "/nix/store/k80nwvi19hxwbz3c9cxgp24f1jjxwmcc-nix-2.3.3"; aarch64-linux = "/nix/store/k80nwvi19hxwbz3c9cxgp24f1jjxwmcc-nix-2.3.3";
x86_64-darwin = "/nix/store/lrnvapsqmf0ja6zfyx4cpxr7ahdr7f9b-nix-2.3.3"; x86_64-darwin = "/nix/store/lrnvapsqmf0ja6zfyx4cpxr7ahdr7f9b-nix-2.3.3";

View File

@ -1,11 +1,13 @@
--- a/create_manpage_completions.py --- a/create_manpage_completions.py
+++ b/create_manpage_completions.py +++ b/create_manpage_completions.py
@@ -776,8 +776,6 @@ def parse_manpage_at_path(manpage_path, output_directory): @@ -844,10 +844,6 @@ def parse_manpage_at_path(manpage_path, output_directory):
built_command_output.insert(0, "# " + CMDNAME) built_command_output.insert(0, "# " + CMDNAME)
- # Output the magic word Autogenerated so we can tell if we can overwrite this - # 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(
- 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 # 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: for line in built_command_output:

View File

@ -325,10 +325,10 @@ in
KEY=${spath}/certificates/${keyName}.key KEY=${spath}/certificates/${keyName}.key
if [ -e $KEY -a $KEY -nt key.pem ]; then if [ -e $KEY -a $KEY -nt key.pem ]; then
cp -p ${spath}/certificates/${keyName}.key key.pem cp -p ${spath}/certificates/${keyName}.key key.pem
cp -p ${spath}/certificates/${keyName}.crt cert.pem cp -p ${spath}/certificates/${keyName}.crt fullchain.pem
cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem
cat cert.pem chain.pem > fullchain.pem ln -s fullchain.pem cert.pem
cat key.pem cert.pem chain.pem > full.pem cat key.pem fullchain.pem > full.pem
chmod ${rights} *.pem chmod ${rights} *.pem
chown '${data.user}:${data.group}' *.pem chown '${data.user}:${data.group}' *.pem
fi fi

View File

@ -355,6 +355,7 @@ in
ExecStart = "${wrappedSlurm}/bin/slurmd"; ExecStart = "${wrappedSlurm}/bin/slurmd";
PIDFile = "/run/slurmd.pid"; PIDFile = "/run/slurmd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
LimitMEMLOCK = "infinity";
}; };
preStart = '' preStart = ''

View File

@ -258,7 +258,7 @@ in
}); });
config.assertions = mapAgents (name: cfg: [ config.assertions = mapAgents (name: cfg: [
{ assertion = cfg.hooksPath == hooksDir || all (v: v == null) (attrValues cfg.hooks); { assertion = cfg.hooksPath == (hooksDir cfg) || all (v: v == null) (attrValues cfg.hooks);
message = '' message = ''
Options `services.buildkite-agents.${name}.hooksPath' and Options `services.buildkite-agents.${name}.hooksPath' and
`services.buildkite-agents.${name}.hooks.<name>' are mutually exclusive. `services.buildkite-agents.${name}.hooks.<name>' are mutually exclusive.

View File

@ -6,7 +6,7 @@ let
cfg = config.services.parsoid; cfg = config.services.parsoid;
parsoid = pkgs.nodePackages."parsoid-git://github.com/abbradar/parsoid#stable"; parsoid = pkgs.nodePackages.parsoid;
confTree = { confTree = {
worker_heartbeat_timeout = 300000; worker_heartbeat_timeout = 300000;
@ -98,8 +98,29 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
User = "nobody";
ExecStart = "${parsoid}/lib/node_modules/parsoid/bin/server.js -c ${confFile} -n ${toString cfg.workers}"; ExecStart = "${parsoid}/lib/node_modules/parsoid/bin/server.js -c ${confFile} -n ${toString cfg.workers}";
DynamicUser = true;
User = "parsoid";
Group = "parsoid";
CapabilityBoundingSet = "";
NoNewPrivileges = true;
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
ProtectHostname = true;
ProtectKernelTunables = true;
ProtectKernelModules = true;
ProtectControlGroups = true;
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
LockPersonality = true;
#MemoryDenyWriteExecute = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
RemoveIPC = true;
}; };
}; };

View File

@ -19,7 +19,7 @@ let
map (i: i.name) (filter (i: if i.useDHCP != null then !i.useDHCP else i.ipv4.addresses != [ ]) interfaces) map (i: i.name) (filter (i: if i.useDHCP != null then !i.useDHCP else i.ipv4.addresses != [ ]) interfaces)
++ mapAttrsToList (i: _: i) config.networking.sits ++ mapAttrsToList (i: _: i) config.networking.sits
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges)) ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges))
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.vswitches)) ++ flatten (concatMap (i: attrNames (filterAttrs (_: config: config.type != "internal") i.interfaces)) (attrValues config.networking.vswitches))
++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds)) ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds))
++ config.networking.dhcpcd.denyInterfaces; ++ config.networking.dhcpcd.denyInterfaces;

View File

@ -32,9 +32,9 @@ let
+ cfg.extraConfig + cfg.extraConfig
); );
package = pkgs.knot-resolver.override { package = if cfg.listenDoH == []
extraFeatures = cfg.listenDoH != []; then pkgs.knot-resolver # never force `extraFeatures = false`
}; else pkgs.knot-resolver.override { extraFeatures = true; };
in { in {
meta.maintainers = [ maintainers.vcunat /* upstream developer */ ]; meta.maintainers = [ maintainers.vcunat /* upstream developer */ ];

View File

@ -72,6 +72,7 @@ let
resolution_type: GETDNS_RESOLUTION_STUB resolution_type: GETDNS_RESOLUTION_STUB
dns_transport_list: dns_transport_list:
${fallbacks} ${fallbacks}
appdata_dir: "/var/cache/stubby"
tls_authentication: ${cfg.authenticationMode} tls_authentication: ${cfg.authenticationMode}
tls_query_padding_blocksize: ${toString cfg.queryPaddingBlocksize} tls_query_padding_blocksize: ${toString cfg.queryPaddingBlocksize}
edns_client_subnet_private: ${if cfg.subnetPrivate then "1" else "0"} edns_client_subnet_private: ${if cfg.subnetPrivate then "1" else "0"}
@ -208,6 +209,7 @@ in
CapabilityBoundingSet = "CAP_NET_BIND_SERVICE"; CapabilityBoundingSet = "CAP_NET_BIND_SERVICE";
ExecStart = "${pkgs.stubby}/bin/stubby -C ${confFile} ${optionalString cfg.debugLogging "-l"}"; ExecStart = "${pkgs.stubby}/bin/stubby -C ${confFile} ${optionalString cfg.debugLogging "-l"}";
DynamicUser = true; DynamicUser = true;
CacheDirectory = "stubby";
}; };
}; };
}; };

View File

@ -435,7 +435,7 @@ in
message = "networking.wireguard.interfaces.${interfaceName} peer «${peer.publicKey}» has both presharedKey and presharedKeyFile set, but only one can be used."; message = "networking.wireguard.interfaces.${interfaceName} peer «${peer.publicKey}» has both presharedKey and presharedKeyFile set, but only one can be used.";
}) all_peers; }) all_peers;
boot.extraModulePackages = [ kernel.wireguard ]; boot.extraModulePackages = optional (versionOlder kernel.kernel.version "5.6") kernel.wireguard;
environment.systemPackages = [ pkgs.wireguard-tools ]; environment.systemPackages = [ pkgs.wireguard-tools ];
systemd.services = systemd.services =

View File

@ -23,7 +23,8 @@ let
for DIR in "${homeDir}" "${settingsDir}" "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"; do for DIR in "${homeDir}" "${settingsDir}" "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"; do
mkdir -p "$DIR" mkdir -p "$DIR"
done done
chmod 700 "${homeDir}" "${settingsDir}" chmod 755 "${homeDir}"
chmod 700 "${settingsDir}"
chmod ${downloadDirPermissions} "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}" chmod ${downloadDirPermissions} "${fullSettings.download-dir}" "${fullSettings.incomplete-dir}"
cp -f ${settingsFile} ${settingsDir}/settings.json cp -f ${settingsFile} ${settingsDir}/settings.json
''; '';

View File

@ -443,7 +443,7 @@ in {
pools.nextcloud = { pools.nextcloud = {
user = "nextcloud"; user = "nextcloud";
group = "nginx"; group = "nginx";
phpOptions = phpOptionsExtensions + phpOptionsStr; phpOptions = phpOptionsStr;
phpPackage = phpPackage; phpPackage = phpPackage;
phpEnv = { phpEnv = {
NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config"; NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
@ -533,6 +533,7 @@ in {
add_header X-Robots-Tag none; add_header X-Robots-Tag none;
add_header X-Download-Options noopen; add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none; add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options sameorigin;
add_header Referrer-Policy no-referrer; add_header Referrer-Policy no-referrer;
access_log off; access_log off;
''; '';
@ -547,6 +548,7 @@ in {
add_header X-Robots-Tag none; add_header X-Robots-Tag none;
add_header X-Download-Options noopen; add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none; add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options sameorigin;
add_header Referrer-Policy no-referrer; add_header Referrer-Policy no-referrer;
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
error_page 403 /core/templates/403.php; error_page 403 /core/templates/403.php;

View File

@ -166,9 +166,10 @@ in
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /run/gdm/.config 0711 gdm gdm -" "d /run/gdm/.config 0711 gdm gdm"
] ++ optionals config.hardware.pulseaudio.enable [ ] ++ optionals config.hardware.pulseaudio.enable [
"L+ /run/gdm/.config/pulse - - - - ${pulseConfig}" "d /run/gdm/.config/pulse 0711 gdm gdm"
"L+ /run/gdm/.config/pulse/${pulseConfig.name} - - - - ${pulseConfig}"
] ++ optionals config.services.gnome3.gnome-initial-setup.enable [ ] ++ optionals config.services.gnome3.gnome-initial-setup.enable [
# Create stamp file for gnome-initial-setup to prevent it starting in GDM. # Create stamp file for gnome-initial-setup to prevent it starting in GDM.
"f /run/gdm/.config/gnome-initial-setup-done 0711 gdm gdm - yes" "f /run/gdm/.config/gnome-initial-setup-done 0711 gdm gdm - yes"

View File

@ -10,7 +10,7 @@ let
slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds) slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds)
++ concatMap (i: i.interfaces) (attrValues cfg.bridges) ++ concatMap (i: i.interfaces) (attrValues cfg.bridges)
++ concatMap (i: i.interfaces) (attrValues cfg.vswitches) ++ concatMap (i: attrNames (filterAttrs (_: config: config.type != "internal") i.interfaces)) (attrValues cfg.vswitches)
++ concatMap (i: [i.interface]) (attrValues cfg.macvlans) ++ concatMap (i: [i.interface]) (attrValues cfg.macvlans)
++ concatMap (i: [i.interface]) (attrValues cfg.vlans); ++ concatMap (i: [i.interface]) (attrValues cfg.vlans);
@ -336,34 +336,47 @@ let
createVswitchDevice = n: v: nameValuePair "${n}-netdev" createVswitchDevice = n: v: nameValuePair "${n}-netdev"
(let (let
deps = concatLists (map deviceDependency v.interfaces); deps = concatLists (map deviceDependency (attrNames (filterAttrs (_: config: config.type != "internal") v.interfaces)));
internalConfigs = concatMap (i: ["network-link-${i}.service" "network-addresses-${i}.service"]) (attrNames (filterAttrs (_: config: config.type == "internal") v.interfaces));
ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules; ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules;
in in
{ description = "Open vSwitch Interface ${n}"; { description = "Open vSwitch Interface ${n}";
wantedBy = [ "network-setup.service" "vswitchd.service" ] ++ deps; wantedBy = [ "network-setup.service" (subsystemDevice n) ] ++ internalConfigs;
bindsTo = [ "vswitchd.service" (subsystemDevice n) ] ++ deps; # before = [ "network-setup.service" ];
partOf = [ "network-setup.service" "vswitchd.service" ]; # should work without internalConfigs dependencies because address/link configuration depends
after = [ "network-pre.target" "vswitchd.service" ] ++ deps; # on the device, which is created by ovs-vswitchd with type=internal, but it does not...
before = [ "network-setup.service" ]; before = [ "network-setup.service" ] ++ internalConfigs;
partOf = [ "network-setup.service" ]; # shutdown the bridge when network is shutdown
bindsTo = [ "ovs-vswitchd.service" ]; # requires ovs-vswitchd to be alive at all times
after = [ "network-pre.target" "ovs-vswitchd.service" ] ++ deps; # start switch after physical interfaces and vswitch daemon
wants = deps; # if one or more interface fails, the switch should continue to run
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute config.virtualisation.vswitch.package ]; path = [ pkgs.iproute config.virtualisation.vswitch.package ];
preStart = ''
echo "Resetting Open vSwitch ${n}..."
ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
-- set bridge ${n} protocols=${concatStringsSep "," v.supportedOpenFlowVersions}
'';
script = '' script = ''
echo "Removing old Open vSwitch ${n}..." echo "Configuring Open vSwitch ${n}..."
ovs-vsctl --if-exists del-br ${n} ovs-vsctl ${concatStrings (mapAttrsToList (name: config: " -- add-port ${n} ${name}" + optionalString (config.vlan != null) " tag=${toString config.vlan}") v.interfaces)} \
${concatStrings (mapAttrsToList (name: config: optionalString (config.type != null) " -- set interface ${name} type=${config.type}") v.interfaces)} \
echo "Adding Open vSwitch ${n}..."
ovs-vsctl -- add-br ${n} ${concatMapStrings (i: " -- add-port ${n} ${i}") v.interfaces} \
${concatMapStrings (x: " -- set-controller ${n} " + x) v.controllers} \ ${concatMapStrings (x: " -- set-controller ${n} " + x) v.controllers} \
${concatMapStrings (x: " -- " + x) (splitString "\n" v.extraOvsctlCmds)} ${concatMapStrings (x: " -- " + x) (splitString "\n" v.extraOvsctlCmds)}
echo "Adding OpenFlow rules for Open vSwitch ${n}..." echo "Adding OpenFlow rules for Open vSwitch ${n}..."
ovs-ofctl add-flows ${n} ${ofRules} ovs-ofctl --protocols=${v.openFlowVersion} add-flows ${n} ${ofRules}
''; '';
postStop = '' postStop = ''
echo "Cleaning Open vSwitch ${n}"
echo "Shuting down internal ${n} interface"
ip link set ${n} down || true ip link set ${n} down || true
ovs-ofctl del-flows ${n} || true echo "Deleting flows for ${n}"
ovs-vsctl --if-exists del-br ${n} ovs-ofctl --protocols=${v.openFlowVersion} del-flows ${n} || true
echo "Deleting Open vSwitch ${n}"
ovs-vsctl --if-exists del-br ${n} || true
''; '';
}); });

View File

@ -1,4 +1,4 @@
{ config, lib, utils, ... }: { config, lib, utils, pkgs, ... }:
with utils; with utils;
with lib; with lib;
@ -18,7 +18,10 @@ let
concatLists (map (bond: bond.interfaces) (attrValues cfg.bonds)) concatLists (map (bond: bond.interfaces) (attrValues cfg.bonds))
++ concatLists (map (bridge: bridge.interfaces) (attrValues cfg.bridges)) ++ concatLists (map (bridge: bridge.interfaces) (attrValues cfg.bridges))
++ map (sit: sit.dev) (attrValues cfg.sits) ++ map (sit: sit.dev) (attrValues cfg.sits)
++ map (vlan: vlan.interface) (attrValues cfg.vlans); ++ map (vlan: vlan.interface) (attrValues cfg.vlans)
# add dependency to physical or independently created vswitch member interface
# TODO: warn the user that any address configured on those interfaces will be useless
++ concatMap (i: attrNames (filterAttrs (_: config: config.type != "internal") i.interfaces)) (attrValues cfg.vswitches);
in in
@ -51,11 +54,6 @@ in
networking.dhcpcd.enable = mkDefault false; networking.dhcpcd.enable = mkDefault false;
systemd.services.network-local-commands = {
after = [ "systemd-networkd.service" ];
bindsTo = [ "systemd-networkd.service" ];
};
systemd.network = systemd.network =
let let
domains = cfg.search ++ (optional (cfg.domain != null) cfg.domain); domains = cfg.search ++ (optional (cfg.domain != null) cfg.domain);
@ -233,6 +231,63 @@ in
# This forces the network interface creator to initialize slaves. # This forces the network interface creator to initialize slaves.
networking.interfaces = listToAttrs (map (i: nameValuePair i { }) slaves); networking.interfaces = listToAttrs (map (i: nameValuePair i { }) slaves);
systemd.services = let
# We must escape interfaces due to the systemd interpretation
subsystemDevice = interface:
"sys-subsystem-net-devices-${escapeSystemdPath interface}.device";
# support for creating openvswitch switches
createVswitchDevice = n: v: nameValuePair "${n}-netdev"
(let
deps = map subsystemDevice (attrNames (filterAttrs (_: config: config.type != "internal") v.interfaces));
ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules;
in
{ description = "Open vSwitch Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ];
# and create bridge before systemd-networkd starts because it might create internal interfaces
before = [ "systemd-networkd.service" ];
# shutdown the bridge when network is shutdown
partOf = [ "network.target" ];
# requires ovs-vswitchd to be alive at all times
bindsTo = [ "ovs-vswitchd.service" ];
# start switch after physical interfaces and vswitch daemon
after = [ "network-pre.target" "ovs-vswitchd.service" ] ++ deps;
wants = deps; # if one or more interface fails, the switch should continue to run
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute config.virtualisation.vswitch.package ];
preStart = ''
echo "Resetting Open vSwitch ${n}..."
ovs-vsctl --if-exists del-br ${n} -- add-br ${n} \
-- set bridge ${n} protocols=${concatStringsSep "," v.supportedOpenFlowVersions}
'';
script = ''
echo "Configuring Open vSwitch ${n}..."
ovs-vsctl ${concatStrings (mapAttrsToList (name: config: " -- add-port ${n} ${name}" + optionalString (config.vlan != null) " tag=${toString config.vlan}") v.interfaces)} \
${concatStrings (mapAttrsToList (name: config: optionalString (config.type != null) " -- set interface ${name} type=${config.type}") v.interfaces)} \
${concatMapStrings (x: " -- set-controller ${n} " + x) v.controllers} \
${concatMapStrings (x: " -- " + x) (splitString "\n" v.extraOvsctlCmds)}
echo "Adding OpenFlow rules for Open vSwitch ${n}..."
ovs-ofctl --protocols=${v.openFlowVersion} add-flows ${n} ${ofRules}
'';
postStop = ''
echo "Cleaning Open vSwitch ${n}"
echo "Shuting down internal ${n} interface"
ip link set ${n} down || true
echo "Deleting flows for ${n}"
ovs-ofctl --protocols=${v.openFlowVersion} del-flows ${n} || true
echo "Deleting Open vSwitch ${n}"
ovs-vsctl --if-exists del-br ${n} || true
'';
});
in mapAttrs' createVswitchDevice cfg.vswitches
// {
"network-local-commands" = {
after = [ "systemd-networkd.service" ];
bindsTo = [ "systemd-networkd.service" ];
};
};
}; };
} }

View File

@ -13,7 +13,7 @@ let
slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds) slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds)
++ concatMap (i: i.interfaces) (attrValues cfg.bridges) ++ concatMap (i: i.interfaces) (attrValues cfg.bridges)
++ concatMap (i: i.interfaces) (attrValues cfg.vswitches); ++ concatMap (i: attrNames (filterAttrs (name: config: ! (config.type == "internal" || hasAttr name cfg.interfaces)) i.interfaces)) (attrValues cfg.vswitches);
slaveIfs = map (i: cfg.interfaces.${i}) (filter (i: cfg.interfaces ? ${i}) slaves); slaveIfs = map (i: cfg.interfaces.${i}) (filter (i: cfg.interfaces ? ${i}) slaves);
@ -336,6 +336,32 @@ let
}; };
vswitchInterfaceOpts = {name, ...}: {
options = {
name = mkOption {
description = "Name of the interface";
example = "eth0";
type = types.str;
};
vlan = mkOption {
description = "Vlan tag to apply to interface";
example = 10;
type = types.nullOr types.int;
default = null;
};
type = mkOption {
description = "Openvswitch type to assign to interface";
example = "internal";
type = types.nullOr types.str;
default = null;
};
};
};
hexChars = stringToCharacters "0123456789abcdef"; hexChars = stringToCharacters "0123456789abcdef";
isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s)); isHexString = s: all (c: elem c hexChars) (stringToCharacters (toLower s));
@ -486,8 +512,8 @@ in
networking.vswitches = mkOption { networking.vswitches = mkOption {
default = { }; default = { };
example = example =
{ vs0.interfaces = [ "eth0" "eth1" ]; { vs0.interfaces = { eth0 = { }; lo1 = { type="internal"; }; };
vs1.interfaces = [ "eth2" "wlan0" ]; vs1.interfaces = [ { name = "eth2"; } { name = "lo2"; type="internal"; } ];
}; };
description = description =
'' ''
@ -504,9 +530,8 @@ in
interfaces = mkOption { interfaces = mkOption {
example = [ "eth0" "eth1" ]; example = [ "eth0" "eth1" ];
type = types.listOf types.str; description = "The physical network interfaces connected by the vSwitch.";
description = type = with types; loaOf (submodule vswitchInterfaceOpts);
"The physical network interfaces connected by the vSwitch.";
}; };
controllers = mkOption { controllers = mkOption {
@ -530,6 +555,25 @@ in
''; '';
}; };
# TODO: custom "openflow version" type, with list from existing openflow protocols
supportedOpenFlowVersions = mkOption {
type = types.listOf types.str;
example = [ "OpenFlow10" "OpenFlow13" "OpenFlow14" ];
default = [ "OpenFlow13" ];
description = ''
Supported versions to enable on this switch.
'';
};
# TODO: use same type as elements from supportedOpenFlowVersions
openFlowVersion = mkOption {
type = types.str;
default = "OpenFlow13";
description = ''
Version of OpenFlow protocol to use when communicating with the switch internally (e.g. with <literal>openFlowRules</literal>).
'';
};
extraOvsctlCmds = mkOption { extraOvsctlCmds = mkOption {
type = types.lines; type = types.lines;
default = ""; default = "";

View File

@ -219,7 +219,7 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "libvirtd-config.service" ]; requires = [ "libvirtd-config.service" ];
after = [ "systemd-udev-settle.service" "libvirtd-config.service" ] after = [ "systemd-udev-settle.service" "libvirtd-config.service" ]
++ optional vswitch.enable "vswitchd.service"; ++ optional vswitch.enable "ovs-vswitchd.service";
environment.LIBVIRTD_ARGS = ''--config "${configFile}" ${concatStringsSep " " cfg.extraOptions}''; environment.LIBVIRTD_ARGS = ''--config "${configFile}" ${concatStringsSep " " cfg.extraOptions}'';

View File

@ -124,7 +124,7 @@ in {
''; '';
}; };
systemd.services.vswitchd = { systemd.services.ovs-vswitchd = {
description = "Open_vSwitch Daemon"; description = "Open_vSwitch Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
bindsTo = [ "ovsdb.service" ]; bindsTo = [ "ovsdb.service" ];
@ -139,6 +139,8 @@ in {
PIDFile = "/run/openvswitch/ovs-vswitchd.pid"; PIDFile = "/run/openvswitch/ovs-vswitchd.pid";
# Use service type 'forking' to correctly determine when vswitchd is ready. # Use service type 'forking' to correctly determine when vswitchd is ready.
Type = "forking"; Type = "forking";
Restart = "always";
RestartSec = 3;
}; };
}; };
@ -182,4 +184,7 @@ in {
''; '';
}; };
})])); })]));
meta.maintainers = with maintainers; [ netixx ];
} }

View File

@ -45,10 +45,41 @@ in {
The file name of the VirtualBox appliance. The file name of the VirtualBox appliance.
''; '';
}; };
params = mkOption {
type = with types; attrsOf (oneOf [ str int bool (listOf str) ]);
example = {
audio = "alsa";
rtcuseutc = "on";
usb = "off";
};
description = ''
Parameters passed to the Virtualbox appliance.
Run <literal>VBoxManage modifyvm --help</literal> to see more options.
'';
};
}; };
}; };
config = { config = {
virtualbox.params = mkMerge [
(mapAttrs (name: mkDefault) {
acpi = "on";
vram = 32;
nictype1 = "virtio";
nic1 = "nat";
audiocontroller = "ac97";
audio = "alsa";
audioout = "on";
rtcuseutc = "on";
usb = "on";
usbehci = "on";
mouse = "usbtablet";
})
(mkIf (pkgs.stdenv.hostPlatform.system == "i686-linux") { pae = "on"; })
];
system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix { system.build.virtualBoxOVA = import ../../lib/make-disk-image.nix {
name = cfg.vmDerivationName; name = cfg.vmDerivationName;
@ -69,12 +100,8 @@ in {
VBoxManage createvm --name "$vmName" --register \ VBoxManage createvm --name "$vmName" --register \
--ostype ${if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "Linux26_64" else "Linux26"} --ostype ${if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "Linux26_64" else "Linux26"}
VBoxManage modifyvm "$vmName" \ VBoxManage modifyvm "$vmName" \
--memory ${toString cfg.memorySize} --acpi on --vram 32 \ --memory ${toString cfg.memorySize} \
${optionalString (pkgs.stdenv.hostPlatform.system == "i686-linux") "--pae on"} \ ${lib.cli.toGNUCommandLineShell { } cfg.params}
--nictype1 virtio --nic1 nat \
--audiocontroller ac97 --audio alsa --audioout on \
--rtcuseutc on \
--usb on --usbehci on --mouse usbtablet
VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \ VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
--medium disk.vmdk --medium disk.vmdk

View File

@ -55,6 +55,7 @@ in rec {
"nixos.ova.x86_64-linux" "nixos.ova.x86_64-linux"
"nixos.sd_image.aarch64-linux" "nixos.sd_image.aarch64-linux"
"nixos.tests.boot.biosCdrom.x86_64-linux" "nixos.tests.boot.biosCdrom.x86_64-linux"
"nixos.tests.boot.biosUsb.x86_64-linux"
"nixos.tests.boot-stage1.x86_64-linux" "nixos.tests.boot-stage1.x86_64-linux"
"nixos.tests.boot.uefiCdrom.x86_64-linux" "nixos.tests.boot.uefiCdrom.x86_64-linux"
"nixos.tests.boot.uefiUsb.x86_64-linux" "nixos.tests.boot.uefiUsb.x86_64-linux"
@ -64,6 +65,7 @@ in rec {
"nixos.tests.docker.x86_64-linux" "nixos.tests.docker.x86_64-linux"
"nixos.tests.ecryptfs.x86_64-linux" "nixos.tests.ecryptfs.x86_64-linux"
"nixos.tests.env.x86_64-linux" "nixos.tests.env.x86_64-linux"
"nixos.tests.firefox-esr.x86_64-linux"
"nixos.tests.firefox.x86_64-linux" "nixos.tests.firefox.x86_64-linux"
"nixos.tests.firewall.x86_64-linux" "nixos.tests.firewall.x86_64-linux"
"nixos.tests.fontconfig-default-fonts.x86_64-linux" "nixos.tests.fontconfig-default-fonts.x86_64-linux"
@ -84,6 +86,12 @@ in rec {
"nixos.tests.installer.simple.x86_64-linux" "nixos.tests.installer.simple.x86_64-linux"
"nixos.tests.installer.swraid.x86_64-linux" "nixos.tests.installer.swraid.x86_64-linux"
"nixos.tests.ipv6.x86_64-linux" "nixos.tests.ipv6.x86_64-linux"
"nixos.tests.keymap.azerty.x86_64-linux"
"nixos.tests.keymap.colemak.x86_64-linux"
"nixos.tests.keymap.dvorak.x86_64-linux"
"nixos.tests.keymap.dvp.x86_64-linux"
"nixos.tests.keymap.neo.x86_64-linux"
"nixos.tests.keymap.qwertz.x86_64-linux"
"nixos.tests.lightdm.x86_64-linux" "nixos.tests.lightdm.x86_64-linux"
"nixos.tests.login.x86_64-linux" "nixos.tests.login.x86_64-linux"
"nixos.tests.misc.x86_64-linux" "nixos.tests.misc.x86_64-linux"

View File

@ -46,6 +46,15 @@ import ./make-test-python.nix ({ pkgs, ...} : {
}; };
} }
''; '';
brokenCfg = pkgs.writeText "broken.nix" ''
{
assertions = [
{ assertion = false;
message = "I never evaluate";
}
];
}
'';
in '' in ''
with subtest("Make sure we have a NixOS tree (required by nixos-container create)"): with subtest("Make sure we have a NixOS tree (required by nixos-container create)"):
machine.succeed("PAGER=cat nix-env -qa -A nixos.hello >&2") machine.succeed("PAGER=cat nix-env -qa -A nixos.hello >&2")
@ -130,5 +139,11 @@ import ./make-test-python.nix ({ pkgs, ...} : {
with subtest("Ensure that the container path is gone"): with subtest("Ensure that the container path is gone"):
print(machine.succeed("ls -lsa /var/lib/containers")) print(machine.succeed("ls -lsa /var/lib/containers"))
machine.succeed(f"test ! -e /var/lib/containers/{id1}") machine.succeed(f"test ! -e /var/lib/containers/{id1}")
with subtest("Ensure that a failed container creation doesn'leave any state"):
machine.fail(
"nixos-container create b0rk --config-file ${brokenCfg}"
)
machine.succeed(f"test ! -e /var/lib/containers/b0rk")
''; '';
}) })

View File

@ -197,15 +197,15 @@ in {
# Test whether SSH through a VRF IP is possible. # Test whether SSH through a VRF IP is possible.
# (Note: this seems to be an issue on Linux 5.x, so I decided to add this to # (Note: this seems to be an issue on Linux 5.x, so I decided to add this to
# ensure that we catch this when updating the default kernel). # ensure that we catch this when updating the default kernel).
with subtest("tcp traffic through vrf works"): # with subtest("tcp traffic through vrf works"):
node1.wait_for_open_port(22) # node1.wait_for_open_port(22)
client.succeed( # client.succeed(
"cat ${snakeOilPrivateKey} > privkey.snakeoil" # "cat ${snakeOilPrivateKey} > privkey.snakeoil"
) # )
client.succeed("chmod 600 privkey.snakeoil") # client.succeed("chmod 600 privkey.snakeoil")
client.succeed( # client.succeed(
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@192.168.1.2 true" # "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@192.168.1.2 true"
) # )
# Only configured routes through the VRF from the main routing table should # Only configured routes through the VRF from the main routing table should
# work. Additional IPs are only reachable when binding to the vrf interface. # work. Additional IPs are only reachable when binding to the vrf interface.

View File

@ -28,7 +28,7 @@ assert withOnlineServices -> withTaglib;
assert withReplaygain -> withTaglib; assert withReplaygain -> withTaglib;
let let
version = "2.3.3"; version = "2.4.1";
pname = "cantata"; pname = "cantata";
fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF"); fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
fstats = x: map (fstat x); fstats = x: map (fstat x);
@ -42,7 +42,7 @@ in mkDerivation {
owner = "CDrummond"; owner = "CDrummond";
repo = "cantata"; repo = "cantata";
rev = "v${version}"; rev = "v${version}";
sha256 = "1m651fmdbnb50glym75kzma0bllvqbmrb2afp1g9g5cxm1898c0f"; sha256 = "0ix7xp352bziwz31mw79y7wxxmdn6060p8ry2px243ni1lz1qx1c";
}; };
buildInputs = [ vlc qtbase qtmultimedia qtsvg ] buildInputs = [ vlc qtbase qtmultimedia qtsvg ]
@ -77,7 +77,7 @@ in mkDerivation {
]; ];
meta = with lib; { meta = with lib; {
homepage = https://github.com/cdrummond/cantata; homepage = "https://github.com/cdrummond/cantata";
description = "A graphical client for MPD"; description = "A graphical client for MPD";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ]; maintainers = with maintainers; [ peterhoeg ];

View File

@ -16,10 +16,10 @@ assert vorbisSupport -> vorbisTools != null;
let let
zeroconf = pythonPackages.callPackage ./zeroconf.nix { }; zeroconf = pythonPackages.callPackage ./zeroconf.nix { };
in
in pythonPackages.buildPythonApplication { pythonPackages.buildPythonApplication {
pname = "pulseaudio-dlna"; pname = "pulseaudio-dlna";
version = "2017-11-01"; version = "unstable-2017-11-01";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "masmu"; owner = "masmu";
@ -28,12 +28,9 @@ in pythonPackages.buildPythonApplication {
sha256 = "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk"; sha256 = "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk";
}; };
# pulseaudio-dlna has no tests
doCheck = false;
propagatedBuildInputs = with pythonPackages; [ propagatedBuildInputs = with pythonPackages; [
dbus-python docopt requests setproctitle protobuf psutil futures dbus-python docopt requests setproctitle protobuf psutil futures
chardet notify2 netifaces pyroute2 pygobject2 lxml ] chardet notify2 netifaces pyroute2 pygobject2 lxml setuptools ]
++ [ zeroconf ] ++ [ zeroconf ]
++ stdenv.lib.optional mp3Support lame ++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional opusSupport opusTools ++ stdenv.lib.optional opusSupport opusTools
@ -42,12 +39,15 @@ in pythonPackages.buildPythonApplication {
++ stdenv.lib.optional soxSupport sox ++ stdenv.lib.optional soxSupport sox
++ stdenv.lib.optional vorbisSupport vorbisTools; ++ stdenv.lib.optional vorbisSupport vorbisTools;
# upstream has no tests
checkPhase = ''
$out/bin/pulseaudio-dlna --help > /dev/null
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux"; description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
homepage = https://github.com/masmu/pulseaudio-dlna; homepage = "https://github.com/masmu/pulseaudio-dlna";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ mog ]; maintainers = with maintainers; [ mog ];
platforms = platforms.linux; platforms = platforms.linux;
}; };

View File

@ -0,0 +1,38 @@
{ stdenv, fetchurl, alsaLib, boost, bzip2, fftw, fftwFloat, libfishsound
, libid3tag, liblo, liblrdf, libmad, liboggz, libpulseaudio, libsamplerate
, libsndfile, opusfile, portaudio, rubberband, serd, sord, vampSDK, capnproto
, wrapQtAppsHook, pkgconfig
}:
stdenv.mkDerivation rec {
pname = "sonic-lineup";
version = "1.0.1";
src = fetchurl {
url = "https://code.soundsoftware.ac.uk/attachments/download/2610/${pname}-${version}.tar.gz";
sha256 = "0w4v5zr81d8fh97y820r0vj1rrbl0kwgvhfkdnyl4hiabs97b1i7";
};
buildInputs =
[ alsaLib boost bzip2 fftw fftwFloat libfishsound libid3tag liblo liblrdf
libmad liboggz libpulseaudio libsamplerate libsndfile opusfile pkgconfig
portaudio rubberband serd sord capnproto
];
nativeBuildInputs = [ pkgconfig wrapQtAppsHook ];
enableParallelBuilding = true;
# comment out the tests
preConfigure = ''
sed -i 's/sub_test_svcore_/#sub_test_svcore_/' sonic-lineup.pro
'';
meta = with stdenv.lib; {
description = "Comparative visualisation of related audio recordings";
homepage = https://www.sonicvisualiser.org/sonic-lineup/;
license = licenses.gpl2Plus;
maintainers = [ maintainers.vandenoever ];
platforms = platforms.linux;
};
}

View File

@ -2,10 +2,10 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "spectmorph"; pname = "spectmorph";
version = "0.5.0"; version = "0.5.1";
src = fetchurl { src = fetchurl {
url = "http://spectmorph.org/files/releases/${pname}-${version}.tar.bz2"; url = "http://spectmorph.org/files/releases/${pname}-${version}.tar.bz2";
sha256 = "003wznv3sy1b4g55vqii9pr3i3bb3zmj7nqvwrz7vjsfn2xyd1bn"; sha256 = "06jrfx5g9c56swxn78lix0gyrjkhi21l9wqs56knp8iqcgfi3m0s";
}; };
buildInputs = [ libjack2 lv2 glib qt5.qtbase libao cairo libsndfile fftwFloat ]; buildInputs = [ libjack2 lv2 glib qt5.qtbase libao cairo libsndfile fftwFloat ];

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "spotify-tui"; pname = "spotify-tui";
version = "0.14.0"; version = "0.15.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Rigellute"; owner = "Rigellute";
repo = "spotify-tui"; repo = "spotify-tui";
rev = "v${version}"; rev = "v${version}";
sha256 = "06xqj83m4hz00p8796m0df7lv9875p8zc1v6l9yqbiak1h95lq7h"; sha256 = "19mnnpsidwr5y6igs478gfp7rq76378f66nzfhj4mraqd2jc4nzj";
}; };
cargoSha256 = "1pc4n6lm1w0660ivm0kxzicpckvb351y62dpv0cxa7ckd3raa5pr"; cargoSha256 = "1zhv3sla92z7pjdnf0r4x85n7z9spi70vgy4kw72rdc5v9bmj7q8";
nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ]; nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
buildInputs = [ openssl ] buildInputs = [ openssl ]

View File

@ -8,19 +8,15 @@ let
inherit (gnome2) GConf gnome_vfs; inherit (gnome2) GConf gnome_vfs;
}; };
stableVersion = { stableVersion = {
version = "3.5.3.0"; # "Android Studio 3.5.3" version = "3.6.0.21"; # "Android Studio 3.6"
build = "191.6010548"; build = "192.6200805";
sha256Hash = "1nsm4d3vdx90szqd78a8mjq65xc9m5ipd35cqrlx3c3ny900sqxg"; sha256Hash = "1rf79fh6fbaxsj26q9bgl4vvmakv4wc0amjz026cm89hcwwzrb4d";
};
betaVersion = {
version = "3.6.0.20"; # "Android Studio 3.6 RC 3"
build = "192.6186006";
sha256Hash = "153piq67yps5jwqrbciam4kpxziavml29d8ya5bi2rvfhipdd7da";
}; };
betaVersion = latestVersion;
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "4.0.0.9"; # "Android Studio 4.0 Canary 9" version = "4.0.0.10"; # "Android Studio 4.0 Beta 1"
build = "193.6137316"; build = "193.6220182";
sha256Hash = "1cgxyqp85z5x2jnjh1qabn2cfiziiwvfr6iggzb531dlhllyfyqw"; sha256Hash = "0ibp54wcss4ihm454hbavv1bhar6cd4alp5b0z248ryjr5w9mixf";
}; };
in { in {
# Attributes are named by their corresponding release channels # Attributes are named by their corresponding release channels

View File

@ -2,13 +2,13 @@
mkDerivation rec { mkDerivation rec {
pname = "ghostwriter"; pname = "ghostwriter";
version = "1.8.0"; version = "1.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wereturtle"; owner = "wereturtle";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "13yn82m1l2pq93wbl569a2lzpc3sn8a8g30hsgdch1l9xlmhwran"; sha256 = "0jc6szfh5sdnafhwsr1xv7cn1fznniq58bix41hb9wlbkvq7wzi6";
}; };
nativeBuildInputs = [ qmake pkgconfig qttools ]; nativeBuildInputs = [ qmake pkgconfig qttools ];

View File

@ -1,13 +1,13 @@
{ stdenv, rustPlatform , fetchFromGitHub, Security }: { stdenv, rustPlatform , fetchFromGitHub, Security }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "whitebox_tools"; pname = "whitebox_tools";
version = "0.16.0"; version = "1.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jblindsay"; owner = "jblindsay";
repo = "whitebox-tools"; repo = "whitebox-tools";
rev = "v${version}"; rev = "v${version}";
sha256 = "1vs4hf2x3qjnffs9kjx56rzl67kpcy8xvng6p0r9fp9mfnblxg6j"; sha256 = "0zi32d0wrbl2763dcllv2g0liwacsfiza5lkx52620prjjbhby8i";
}; };
buildInputs = stdenv.lib.optional stdenv.isDarwin Security; buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
# Delete this on next update; see #79975 for details # Delete this on next update; see #79975 for details
legacyCargoFetcher = true; legacyCargoFetcher = true;
cargoSha256 = "1y3vk8bzsaisx7wrncjxcqdh355f2wk4n59vq5qgj37fph2zpy7f"; cargoSha256 = "0zn4b4md3pn1rvb15rnz3zcx9a359x26nfy7zcfp7nx27ais13n5";
# failures: structures::polyline::test::test_polyline_split # failures: structures::polyline::test::test_polyline_split
doCheck = false; doCheck = false;

View File

@ -50,13 +50,13 @@ let
inherit (python2Packages) pygtk wrapPython python; inherit (python2Packages) pygtk wrapPython python;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "gimp"; pname = "gimp";
version = "2.10.14"; version = "2.10.16";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
sha256 = "0m6wdnfvsxyhimdd4v3351g4r1fklllnbipbwcfym3h7q88hz6yz"; sha256 = "1sybf1yilw272lr8qbyx3zbvysf5rc89gk80gd4aj4xr6jazxyfb";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -155,6 +155,7 @@ in stdenv.mkDerivation rec {
configureFlags = [ configureFlags = [
"--without-webkit" # old version is required "--without-webkit" # old version is required
"--disable-check-update"
"--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new" "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
"--with-icc-directory=/run/current-system/sw/share/color/icc" "--with-icc-directory=/run/current-system/sw/share/color/icc"
# fix libdir in pc files (${exec_prefix} needs to be passed verbatim) # fix libdir in pc files (${exec_prefix} needs to be passed verbatim)

View File

@ -1,13 +1,15 @@
diff --git a/app/gimp-version.c b/app/gimp-version.c diff --git a/app/gimp-version.c b/app/gimp-version.c
index 12605c6..a9083da 100644 index 0f7bfb9bf9..1679624b8e 100644
--- a/app/gimp-version.c --- a/app/gimp-version.c
+++ b/app/gimp-version.c +++ b/app/gimp-version.c
@@ -203,7 +203,7 @@ gimp_version (gboolean be_verbose, @@ -228,9 +228,9 @@
lib_versions = gimp_library_versions (localized); "# Libraries #\n%s",
verbose_info = g_strdup_printf ("git-describe: %s\n" GIMP_GIT_VERSION,
"C compiler:\n%s\n%s", GIMP_BUILD_ID,
- GIMP_GIT_VERSION, CC_VERSION, gimp_version_get_revision (),
+ GIMP_GIT_VERSION, "@cc_version@", GIMP_BUILD_PLATFORM,
- CC_VERSION,
+ "@cc_version@",
lib_versions); lib_versions);
g_free (lib_versions); g_free (lib_versions);

View File

@ -17,13 +17,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ideogram"; pname = "ideogram";
version = "1.3.0"; version = "1.3.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cassidyjames"; owner = "cassidyjames";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0ghc7hk4b4r3a0x9r30rrgv3rarxyjr2hf9ig244xwvhh5rn3j10"; sha256 = "08nl11gj3234nrqyigqkq3yiyrqf2hha24x5jkl78ypj2xhcnhw8";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,18 +1,27 @@
{stdenv, fetchFromGitHub, qmake}: { mkDerivation, lib, fetchFromGitHub, qmake, qtbase }:
stdenv.mkDerivation rec {
mkDerivation rec {
pname = "qview"; pname = "qview";
version = "3.0"; version = "3.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jurplel"; owner = "jurplel";
repo = "qView"; repo = "qView";
rev = version; rev = version;
sha256 = "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7"; sha256 = "15a91bs3wcqhgf76wzigbn10hayg628j84pq4j2vaxar94ak0vk7";
}; };
nativeBuildInputs = [ qmake ]; nativeBuildInputs = [ qmake ];
buildInputs = [
qtbase
];
patchPhase = '' patchPhase = ''
sed "s|/usr/|$out/|g" -i qView.pro sed "s|/usr/|$out/|g" -i qView.pro
''; '';
meta = with stdenv.lib; {
meta = with lib; {
description = "Practical and minimal image viewer"; description = "Practical and minimal image viewer";
homepage = "https://interversehq.com/qview/"; homepage = "https://interversehq.com/qview/";
license = licenses.gpl3; license = licenses.gpl3;

View File

@ -78,6 +78,10 @@ in buildRustPackage rec {
++ lib.optionals stdenv.isDarwin [ AppKit CoreGraphics CoreServices CoreText Foundation OpenGL ]; ++ lib.optionals stdenv.isDarwin [ AppKit CoreGraphics CoreServices CoreText Foundation OpenGL ];
outputs = [ "out" "terminfo" ]; outputs = [ "out" "terminfo" ];
postPatch = ''
substituteInPlace alacritty/src/config/mouse.rs \
--replace xdg-open ${xdg_utils}/bin/xdg-open
'';
postBuild = lib.optionalString stdenv.isDarwin "make app"; postBuild = lib.optionalString stdenv.isDarwin "make app";

View File

@ -2,7 +2,7 @@
, ilmbase, libXi, libX11, libXext, libXrender , ilmbase, libXi, libX11, libXext, libXrender
, libjpeg, libpng, libsamplerate, libsndfile , libjpeg, libpng, libsamplerate, libsndfile
, libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio2, openjpeg, python3Packages , libtiff, libGLU, libGL, openal, opencolorio, openexr, openimageio2, openjpeg, python3Packages
, openvdb, libXxf86vm, tbb , openvdb, libXxf86vm, tbb, alembic
, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath , zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
, jackaudioSupport ? false, libjack2 , jackaudioSupport ? false, libjack2
, cudaSupport ? config.cudaSupport or false, cudatoolkit , cudaSupport ? config.cudaSupport or false, cudatoolkit
@ -17,11 +17,11 @@ let python = python3Packages.python; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "blender"; pname = "blender";
version = "2.81a"; version = "2.82";
src = fetchurl { src = fetchurl {
url = "https://download.blender.org/source/${pname}-${version}.tar.xz"; url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
sha256 = "1zl0ar95qkxsrbqw9miz2hrjijlqjl06vg3clfk9rm7krr2l3b2j"; sha256 = "0rgw8nilvn6k6r7p28y2l1rwpami1cc8xz473jaahn7wa4ndyah0";
}; };
patches = lib.optional stdenv.isDarwin ./darwin.patch; patches = lib.optional stdenv.isDarwin ./darwin.patch;
@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
[ boost ffmpeg gettext glew ilmbase [ boost ffmpeg gettext glew ilmbase
freetype libjpeg libpng libsamplerate libsndfile libtiff freetype libjpeg libpng libsamplerate libsndfile libtiff
opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc opencolorio openexr openimageio2 openjpeg python zlib fftw jemalloc
alembic
(opensubdiv.override { inherit cudaSupport; }) (opensubdiv.override { inherit cudaSupport; })
tbb tbb
makeWrapper makeWrapper
@ -75,7 +76,9 @@ stdenv.mkDerivation rec {
''; '';
cmakeFlags = cmakeFlags =
[ "-DWITH_MOD_OCEANSIM=ON" [
"-DWITH_ALEMBIC=ON"
"-DWITH_MOD_OCEANSIM=ON"
"-DWITH_CODEC_FFMPEG=ON" "-DWITH_CODEC_FFMPEG=ON"
"-DWITH_CODEC_SNDFILE=ON" "-DWITH_CODEC_SNDFILE=ON"
"-DWITH_INSTALL_PORTABLE=OFF" "-DWITH_INSTALL_PORTABLE=OFF"

View File

@ -30,11 +30,11 @@ let
in in
mkDerivation rec { mkDerivation rec {
pname = "calibre"; pname = "calibre";
version = "4.8.0"; version = "4.11.2";
src = fetchurl { src = fetchurl {
url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
sha256 = "1lk44qh3hzqhpz2b00iik7cgjg4xm36qjh2pxflkjnbk691gbpqk"; sha256 = "0fxmpygc2ybx8skwhp9j6gnk9drlfiz2cl9g55h10zgxkfzqzqgv";
}; };
patches = [ patches = [

View File

@ -90,6 +90,7 @@ python3Packages.buildPythonApplication {
'' + (if enableQt then '' '' + (if enableQt then ''
substituteInPlace ./electrum/qrscanner.py \ substituteInPlace ./electrum/qrscanner.py \
--replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary} --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
sed -i 's/qdarkstyle<2.7/qdarkstyle<3.0/' contrib/requirements/requirements.txt
'' else '' '' else ''
sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
''); '');

View File

@ -0,0 +1,33 @@
{ lib, python3Packages, radicale2 }:
python3Packages.buildPythonApplication rec {
pname = "etesync-dav";
version = "0.14.2";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "05kzy74r2hd44sqjgd0bc588ganrzbz5brpiginb8sh8z38igb60";
};
propagatedBuildInputs = with python3Packages; [
etesync
flask
flask_wtf
radicale2
];
checkInputs = with python3Packages; [
pytest
];
checkPhase = ''
pytest
'';
meta = with lib; {
homepage = "https://www.etesync.com/";
description = "Secure, end-to-end encrypted, and privacy respecting sync for contacts, calendars and tasks";
license = licenses.gpl3;
maintainers = with maintainers; [ valodim ];
};
}

View File

@ -2,7 +2,7 @@
buildGoModule rec { buildGoModule rec {
pname = "hugo"; pname = "hugo";
version = "0.64.1"; version = "0.65.3";
goPackagePath = "github.com/gohugoio/hugo"; goPackagePath = "github.com/gohugoio/hugo";
@ -10,10 +10,10 @@ buildGoModule rec {
owner = "gohugoio"; owner = "gohugoio";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1h5n5d7g3l2lp25sjrcmavbkqqm1csgv2q5z7afwbb57j0m1nkn8"; sha256 = "1m0xhzm1w6y778x3fplzr9dif7lcqlkfvk4b7plywrisv3ic8yqs";
}; };
modSha256 = "18wfsp3ypfxj5qljmb19kzyc5byf413nkabz5mfvq8srjhcq1ifl"; modSha256 = "1f320zbqnv2ybsp3qmlgn3rsjgp2zdb24qjd3gcys30mw48cx3na";
buildFlags = [ "-tags" "extended" ]; buildFlags = [ "-tags" "extended" ];

View File

@ -97,7 +97,7 @@ in buildFHSUserEnv {
libcap libtiff libva libgphoto2 libxslt libtxc_dxtn libsndfile giflib zlib glib libcap libtiff libva libgphoto2 libxslt libtxc_dxtn libsndfile giflib zlib glib
alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
vulkan-loader xdg_utils sqlite gnutls vulkan-loader xdg_utils sqlite gnutls libbsd
# PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64" # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"

View File

@ -3,12 +3,12 @@
}: }:
mkDerivation rec { mkDerivation rec {
version = "2.3.4"; version = "2.3.4.3";
pname = "lyx"; pname = "lyx";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz"; url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
sha256 = "0qgvc19flnf6ny3ffyj8civwaxrnwcdlw2v708hg49cbmg6f8igh"; sha256 = "1rpp6wq0dc0bxwc0pipajv98vi7cpg391nq10d3c4pmpq38m08wx";
}; };
# LaTeX is used from $PATH, as people often want to have it with extra pkgs # LaTeX is used from $PATH, as people often want to have it with extra pkgs

View File

@ -1,17 +1,16 @@
{ lib, buildPythonPackage, fetchFromGitHub, isPy3k { lib, python3Packages, fetchFromGitHub }:
, pafy
}:
buildPythonPackage rec { with python3Packages;
buildPythonApplication rec {
pname = "mps-youtube"; pname = "mps-youtube";
version = "0.2.8"; version = "unstable-2020-01-28";
disabled = (!isPy3k);
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "mps-youtube"; owner = "mps-youtube";
repo = "mps-youtube"; repo = "mps-youtube";
rev = "v${version}"; rev = "b808697133ec2ad7654953232d1e841b20aa7cc3";
sha256 = "1w1jhw9rg3dx7vp97cwrk5fymipkcy2wrbl1jaa38ivcjhqg596y"; sha256 = "0lqprlpc0v092xqkjc0cc395ag45lijwgd34dpg2jy6i0f2szywv";
}; };
propagatedBuildInputs = [ pafy ]; propagatedBuildInputs = [ pafy ];
@ -30,6 +29,6 @@ buildPythonPackage rec {
description = "Terminal based YouTube player and downloader"; description = "Terminal based YouTube player and downloader";
homepage = "https://github.com/mps-youtube/mps-youtube"; homepage = "https://github.com/mps-youtube/mps-youtube";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ odi ]; maintainers = with maintainers; [ koral odi ];
}; };
} }

View File

@ -2,22 +2,23 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "pastel"; pname = "pastel";
version = "0.6.1"; version = "0.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "sharkdp"; owner = "sharkdp";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1c47bph1qraq3g0g5bp23jqlz7qdn4f8vh264y937jz17avvacx5"; sha256 = "1fh0l64bvpbgm1725qmyq3042pglr8wz3w1azjv6lml9ivrm4b0k";
}; };
cargoSha256 = "1hkqahsrhmgcpgp0pvfpc0wmwqivnqylsxzjrz63k1s9ssdv9syy"; cargoSha256 = "0q7p66r6hwqaalwm9fd2bshadlynhjf3pzd6rnamr07mknyfzh5s";
buildInputs = stdenv.lib.optional stdenv.isDarwin Security; buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "A command-line tool to generate, analyze, convert and manipulate colors"; description = "A command-line tool to generate, analyze, convert and manipulate colors";
homepage = https://github.com/sharkdp/pastel; homepage = "https://github.com/sharkdp/pastel";
changelog = "https://github.com/sharkdp/pastel/releases/tag/v${version}";
license = with licenses; [ asl20 /* or */ mit ]; license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ davidtwco ]; maintainers = with maintainers; [ davidtwco ];
platforms = platforms.all; platforms = platforms.all;

View File

@ -1,21 +1,21 @@
{ stdenv, fetchurl, mkDerivation { stdenv, fetchurl, mkDerivation
, qmake, qtbase, qtquickcontrols , qmake, qtbase, qtquickcontrols2, qtgraphicaleffects
, python3, pyotherside , python3, pyotherside
, pcsclite, yubikey-personalization , pcsclite, yubikey-personalization
, yubikey-manager, makeWrapper }: , yubikey-manager, makeWrapper }:
mkDerivation rec { mkDerivation rec {
pname = "yubioath-desktop"; pname = "yubioath-desktop";
version = "4.3.6"; version = "5.0.2";
src = fetchurl { src = fetchurl {
url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz"; url = "https://developers.yubico.com/yubioath-desktop/Releases/yubioath-desktop-${version}.tar.gz";
sha256 = "0s04anjbb5zm98kfdpp9hr68k3mx3gqlp8fa1miy7nq87pr4f7a5"; sha256 = "19ingk0ab88a22s04apcw8kx9xygxlbk8kp4xnb8pmf8z3k6l2gf";
}; };
doCheck = false; doCheck = false;
buildInputs = [ stdenv qtbase qtquickcontrols python3 ]; buildInputs = [ stdenv qtbase qtquickcontrols2 qtgraphicaleffects python3 ];
nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ]; nativeBuildInputs = [ qmake makeWrapper python3.pkgs.wrapPython ];
@ -48,11 +48,18 @@ mkDerivation rec {
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Yubikey Desktop Authenticator"; description = "Yubico Authenticator";
longDescription = ''
Application for generating Open Authentication (OATH) time-based TOTP and
event-based HOTP one-time password codes, with the help of a YubiKey that
protects the shared secrets.
'';
homepage = https://www.yubico.com/support/knowledge-base/categories/articles/yubico-authenticator-download/; homepage = "https://developers.yubico.com/yubioath-desktop";
downloadPage = "https://developers.yubico.com/yubioath-desktop/Releases/";
changelog = "https://developers.yubico.com/yubioath-desktop/Release_Notes.html";
license = stdenv.lib.licenses.gpl3; license = stdenv.lib.licenses.bsd2;
maintainers = with maintainers; [ mic92 ]; maintainers = with maintainers; [ mic92 risson ];
}; };
} }

View File

@ -82,11 +82,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "brave"; pname = "brave";
version = "1.3.115"; version = "1.4.95";
src = fetchurl { src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb"; url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "1k9g1zjnn0bhyw133padpyym73x8v1i3nm65a040bgkwh6a5jaj8"; sha256 = "1a7rk4r7phlf1y3ap3942z5sfvb6i4qglvq06qqhz49wq1wbgvq1";
}; };
dontConfigure = true; dontConfigure = true;

View File

@ -1,4 +1,4 @@
{ newScope, config, stdenv, llvmPackages_9 { newScope, config, stdenv, llvmPackages_9, llvmPackages_10
, makeWrapper, ed , makeWrapper, ed
, glib, gtk3, gnome3, gsettings-desktop-schemas , glib, gtk3, gnome3, gsettings-desktop-schemas
, libva ? null , libva ? null
@ -19,8 +19,10 @@
}: }:
let let
stdenv = llvmPackages_9.stdenv; llvmPackages = if channel == "dev"
llvmPackages = llvmPackages_9; then llvmPackages_10
else llvmPackages_9;
stdenv = llvmPackages.stdenv;
callPackage = newScope chromium; callPackage = newScope chromium;

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 = "0vsykl3gaql8fp1h5007ljds8m8q2n6n34dsbcqqav2008zlks61"; sha256 = "1bahnvn6i08gg10r9p012n7xjwhnjk1xq4c70kw6sqr4p53423mn";
sha256bin64 = "1bmszzgmzv7hkczs6kcsa2r8vv6nhg39q1sv74695mr3j3j4bdp8"; sha256bin64 = "066lvnh18k5982dv9481g9i31g9pq6a8q92g93xkqgj2bipbv6si";
version = "81.0.4044.17"; version = "81.0.4044.26";
}; };
dev = { dev = {
sha256 = "0vsykl3gaql8fp1h5007ljds8m8q2n6n34dsbcqqav2008zlks61"; sha256 = "0k35sa1qq54cixybb12nyzkjyrwb4cbjfffwfvr5dl859i5bz1kk";
sha256bin64 = "0xx4h82w6jklwlk8p2a2qqk2a9vnf004hmgw69i8iwk6l1d9hxfb"; sha256bin64 = "0ckbgk6jw3zq3gqvvwdlcrqlm110hkvija6jfh9dk0ip1wdx8wkm";
version = "81.0.4044.17"; version = "82.0.4062.3";
}; };
stable = { stable = {
sha256 = "10myihiyrgnm0ly41k4h8ayl3vv3cpshs3pshpqaba0l8i5r5b9f"; sha256 = "0wr487drgd030d7p84rdz1cys0c87wbgh2qg3d7qd98gqbfcpss8";
sha256bin64 = "0pd4ygmyinaq22lmaqjqi1gs3svnb863mkhcf85dzm1354iz1g9k"; sha256bin64 = "0kipzd0q3p3wwklcl1fb937xhklc0s76apsfrjwy0jcmcy47blzf";
version = "80.0.3987.106"; version = "80.0.3987.122";
}; };
} }

View File

@ -19,13 +19,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ephemeral"; pname = "ephemeral";
version = "6.2.0"; version = "6.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cassidyjames"; owner = "cassidyjames";
repo = "ephemeral"; repo = "ephemeral";
rev = version; rev = version;
sha256 = "1y0n1p14kg24qnybi201181q7j6vm20ka4xwmgggjll9v6qflvaz"; sha256 = "182kzk68l6rr878aaaqx31c6npb65x77qzhbc5rbqlrrdrb69zsg";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,26 +0,0 @@
Yep, it's a "return code was ignored" bug.
diff --git a/media/libcubeb/src/cubeb_pulse.c b/media/libcubeb/src/cubeb_pulse.c
index aaaaaaaaaaa..bbbbbbbbbbb 100644
--- a/media/libcubeb/src/cubeb_pulse.c
+++ b/media/libcubeb/src/cubeb_pulse.c
@@ -473,6 +473,8 @@
static int
pulse_context_init(cubeb * ctx)
{
+ int r;
+
if (ctx->context) {
assert(ctx->error == 1);
pulse_context_destroy(ctx);
@@ -486,9 +488,9 @@
WRAP(pa_context_set_state_callback)(ctx->context, context_state_callback, ctx);
WRAP(pa_threaded_mainloop_lock)(ctx->mainloop);
- WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
+ r = WRAP(pa_context_connect)(ctx->context, NULL, 0, NULL);
- if (wait_until_context_ready(ctx) != 0) {
+ if (r < 0 || wait_until_context_ready(ctx) != 0) {
WRAP(pa_threaded_mainloop_unlock)(ctx->mainloop);
pulse_context_destroy(ctx);
ctx->context = NULL;

View File

@ -1,25 +0,0 @@
diff -ru -x '*~' firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp firefox-55.0.3/docshell/base/nsAboutRedirector.cpp
--- firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp 2017-07-31 18:20:51.000000000 +0200
+++ firefox-55.0.3/docshell/base/nsAboutRedirector.cpp 2017-09-26 22:02:00.814151731 +0200
@@ -36,10 +36,6 @@
nsIAboutModule::ALLOW_SCRIPT
},
{
- "buildconfig", "chrome://global/content/buildconfig.html",
- nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT
- },
- {
"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::ALLOW_SCRIPT
diff -ru -x '*~' firefox-55.0.3-orig/toolkit/content/jar.mn firefox-55.0.3/toolkit/content/jar.mn
--- firefox-55.0.3-orig/toolkit/content/jar.mn 2017-07-31 18:20:52.000000000 +0200
+++ firefox-55.0.3/toolkit/content/jar.mn 2017-09-26 22:01:42.383350314 +0200
@@ -40,7 +40,6 @@
content/global/plugins.css
content/global/browser-child.js
content/global/browser-content.js
-* content/global/buildconfig.html
content/global/buildconfig.css
content/global/contentAreaUtils.js
content/global/datepicker.xhtml

View File

@ -1,16 +1,7 @@
{ config, lib, callPackage, fetchurl, fetchFromGitHub, overrideCC, gccStdenv, gcc6 }: { config, lib, callPackage, fetchurl }:
let let
common = opts: callPackage (import ./common.nix opts) {}; common = opts: callPackage (import ./common.nix opts) {};
# Needed on older branches since rustc: 1.32.0 -> 1.33.0
missing-documentation-patch = fetchurl {
name = "missing-documentation.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/deny_missing_docs.patch"
+ "?h=firefox-esr&id=03bdd01f9cf";
sha256 = "1i33n3fgwc8d0v7j4qn7lbdax0an6swar12gay3q2nwrhg3ic4fb";
};
in in
rec { rec {

View File

@ -8,6 +8,7 @@
, google_talk_plugin, fribid, gnome3/*.gnome-shell*/ , google_talk_plugin, fribid, gnome3/*.gnome-shell*/
, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow , browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow
, tridactyl-native , tridactyl-native
, fx_cast_bridge
, udev , udev
, kerberos , kerberos
}: }:
@ -71,6 +72,7 @@ let
++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell
++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator
++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration
++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge
++ extraNativeMessagingHosts ++ extraNativeMessagingHosts
); );
libs = lib.optional stdenv.isLinux udev libs = lib.optional stdenv.isLinux udev

View File

@ -17,11 +17,11 @@ let
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "vivaldi"; pname = "vivaldi";
version = "2.11.1811.38-1"; version = "2.11.1811.44-1";
src = fetchurl { src = fetchurl {
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
sha256 = "0nz7yhxp7fxv6pj1i2684di1wgk4k78hw4icfjqzjwmvc3i710jw"; sha256 = "1hzlcvbp056nzxdiig91rsm5f0s0cjqs0imlgn7822jadp9wwnwn";
}; };
unpackPhase = '' unpackPhase = ''

View File

@ -2,15 +2,15 @@
buildGoModule rec { buildGoModule rec {
pname = "helm"; pname = "helm";
version = "3.0.3"; version = "3.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "helm"; owner = "helm";
repo = "helm"; repo = "helm";
rev = "v${version}"; rev = "v${version}";
sha256 = "1gdrm3zz7524c8v3g128drfzdyalxlipbzxmwhalm7px4p5z4n0j"; sha256 = "16hbwmgq14g28r9s0ipnpiqlppyh57yrcqcspmj05vrf9jsg5vwj";
}; };
modSha256 = "1kmm6yb03g9lsz380rvf32j4icp3rcq7ixxcgsxfgpwqvq08zkn6"; modSha256 = "0618zzi4x37ahsrazsr82anghhfva8yaryzb3p5d737p3ixbiyv8";
subPackages = [ "cmd/helm" ]; subPackages = [ "cmd/helm" ];
buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ]; buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];

View File

@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "luigi"; pname = "luigi";
version = "2.8.11"; version = "2.8.12";
src = python3Packages.fetchPypi { src = python3Packages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "17nc5xrqp6hp3ayscvdpsiiga8gsfpa4whsk0n97gzk5qpndrcy2"; sha256 = "1p83mxqs7w5v27a58ps7wji5mlyfz66cpkbyrndix0pv9hdyzpxn";
}; };
propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ]; propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ];

View File

@ -112,8 +112,8 @@ in rec {
terraform_0_11-full = terraform_0_11.full; terraform_0_11-full = terraform_0_11.full;
terraform_0_12 = pluggable (generic { terraform_0_12 = pluggable (generic {
version = "0.12.20"; version = "0.12.21";
sha256 = "1k94iwhdvp1ifg9w7y26cl89ihki2w9kxv8mz06pp9bnfwfw67x5"; sha256 = "128mrqib8rigy6kk6fby0pjh4jh2qm2qwkrlbn0wgfln0637d9ff";
patches = [ ./provider-path.patch ]; patches = [ ./provider-path.patch ];
passthru = { inherit plugins; }; passthru = { inherit plugins; };
}); });

View File

@ -15,6 +15,7 @@ let
src = oldAttrs.src.override { src = oldAttrs.src.override {
inherit version sha256; inherit version sha256;
}; };
doCheck = oldAttrs.doCheck && (attrname != "psutil");
}); });
}; };
}; };

View File

@ -1,4 +1,4 @@
{ mkDerivation, lib, pkgconfig, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qmake, boost, openssl }: { mkDerivation, stdenv, lib, pkgconfig, fetchFromGitHub, qtbase, qtsvg, qtmultimedia, qmake, boost, openssl, wrapQtAppsHook }:
mkDerivation rec { mkDerivation rec {
pname = "chatterino2"; pname = "chatterino2";
@ -10,8 +10,15 @@ mkDerivation rec {
sha256 = "0i2385hamhd9i7jdy906cfrd81cybw524j92l87c8pzrkxphignk"; sha256 = "0i2385hamhd9i7jdy906cfrd81cybw524j92l87c8pzrkxphignk";
fetchSubmodules = true; fetchSubmodules = true;
}; };
nativeBuildInputs = [ qmake pkgconfig ]; nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
buildInputs = [ qtbase qtsvg qtmultimedia boost openssl ]; buildInputs = [ qtbase qtsvg qtmultimedia boost openssl ];
postInstall = lib.optionalString stdenv.isDarwin ''
mkdir -p "$out/Applications"
mv bin/chatterino.app "$out/Applications/"
'';
postFixup = lib.optionalString stdenv.isDarwin ''
wrapQtApp "$out/Applications/chatterino.app/Contents/MacOS/chatterino"
'';
meta = with lib; { meta = with lib; {
description = "A chat client for Twitch chat"; description = "A chat client for Twitch chat";
longDescription = '' longDescription = ''

View File

@ -7,30 +7,30 @@ in {
pname = "discord"; pname = "discord";
binaryName = "Discord"; binaryName = "Discord";
desktopName = "Discord"; desktopName = "Discord";
version = "0.0.9"; version = "0.0.10";
src = fetchurl { src = fetchurl {
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz"; url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
sha256 = "1i0f8id10rh2fx381hx151qckvvh8hbznfsfav8w0dfbd1bransf"; sha256 = "0kx92i8naqr3algmyy3wyzbh8146z7gigxwf1nbpg1gl16wlplaq";
}; };
}; };
ptb = callPackage ./base.nix rec { ptb = callPackage ./base.nix rec {
pname = "discord-ptb"; pname = "discord-ptb";
binaryName = "DiscordPTB"; binaryName = "DiscordPTB";
desktopName = "Discord PTB"; desktopName = "Discord PTB";
version = "0.0.16"; version = "0.0.18";
src = fetchurl { src = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz"; url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
sha256 = "1ia94xvzygim9rx1sjnnss518ggw0i20mhp9pby33q70ha35n0aq"; sha256 = "1v9xph7shpmabwysbc08qqlkydzgsir8rwarrjf01xmpcpyia17g";
}; };
}; };
canary = callPackage ./base.nix rec { canary = callPackage ./base.nix rec {
pname = "discord-canary"; pname = "discord-canary";
binaryName = "DiscordCanary"; binaryName = "DiscordCanary";
desktopName = "Discord Canary"; desktopName = "Discord Canary";
version = "0.0.98"; version = "0.0.102";
src = fetchurl { src = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz"; url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
sha256 = "0raqsfakjbcsh7g280yi7sg2jsrmy2q4jldg73wb868z35radld4"; sha256 = "1zl53vprkwbkfn3v0lddpp1swignqjxksi4qxl5zqj7482j372a4";
}; };
}; };
}.${branch} }.${branch}

View File

@ -2,24 +2,24 @@
buildGoModule rec { buildGoModule rec {
pname = "gomuks"; pname = "gomuks";
version = "2019-06-28"; version = "2020-02-19";
goPackagePath = "maunium.net/go/gomuks"; goPackagePath = "maunium.net/go/gomuks";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tulir"; owner = "tulir";
repo = pname; repo = pname;
rev = "37df8eb454088e61db7a14f382851205bc1806ad"; rev = "702592bf89dfcf1ec382c0a09d99318bce7a3943";
sha256 = "1hr15d9sbq6mddaxv3pwz86qp1hhzssgrvakfpc49xl4h04dq33g"; sha256 = "0g638q8ypkp6dbfy1s4hz798cpkld301f914il3yd70yf05vvysc";
}; };
modSha256 = "1qrqgzzsxqvmy4m9shypa94bzw34mc941jhmyccip9grk9fzsxws"; modSha256 = "03vbrh50pvx71rp6c23qc2sh0ir4jm1wl0gvi3z1c14ndzhsqky4";
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "https://maunium.net/go/gomuks/"; homepage = "https://maunium.net/go/gomuks/";
description = "A terminal based Matrix client written in Go"; description = "A terminal based Matrix client written in Go";
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ tilpner ]; maintainers = with maintainers; [ tilpner emily ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View File

@ -1,56 +0,0 @@
{ stdenv, fetchFromGitHub, fetchNodeModules, nodejs-10_x, ruby, sencha
, auth0ClientID, auth0Domain }:
stdenv.mkDerivation rec {
pname = "rambox-bare";
version = "0.7.3";
src = fetchFromGitHub {
owner = "ramboxapp";
repo = "community-edition";
rev = version;
sha256 = "03pwzyij2i5m23qzhyqdcipixmqj46qbjmq626swwqy03a0p91qv";
};
nativeBuildInputs = [ nodejs-10_x ruby sencha ];
node_modules = fetchNodeModules {
inherit src;
nodejs = nodejs-10_x;
sha256 = "05vb0r0q3ckg2g87fsm22j0cbfvk81q5z43zwmrzh3pb3zh54xj1";
};
patches = [ ./isDev.patch ];
configurePhase = ''
echo 'var auth0Cfg = { clientID: "${auth0ClientID}", domain: "${auth0Domain}" };' > env.js
ln -s ${node_modules} node_modules
'';
buildPhase = ''
mkdir ../rambox-build
npm run sencha:compile:build
'';
installPhase = ''
mv ../rambox-build/ $out
# https://github.com/saenzramiro/rambox/issues/1281
echo '{"name": "rambox", "version": "${version}", "main": "electron/main.js"}' > $out/package.json
# https://github.com/saenzramiro/rambox/issues/1282
cp --parents ext/packages/ext-locale/build/ext-locale-*.js $out
# Symbolic link causes `Uncaught Error: Cannot find module 'immutable'`
cp -r ${node_modules} $out/node_modules
'';
meta = with stdenv.lib; {
description = "Messaging and emailing app that combines common web applications into one";
homepage = http://rambox.pro;
license = licenses.gpl3;
maintainers = with maintainers; [ gnidorah ];
platforms = platforms.linux;
};
}

View File

@ -1,52 +1,50 @@
{ stdenv, newScope, makeWrapper { stdenv, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
, electron, xdg_utils, makeDesktopItem , libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify
, auth0ClientID ? "0spuNKfIGeLAQ_Iki9t3fGxbfJl3k8SU" }:
, auth0Domain ? "nixpkgs.auth0.com" }:
let let
callPackage = newScope self; version = "0.7.3";
self = { in stdenv.mkDerivation rec {
fetchNodeModules = callPackage ./fetchNodeModules.nix {}; pname = "rambox";
rambox-bare = callPackage ./bare.nix { inherit version;
inherit auth0ClientID auth0Domain; src = {
x86_64-linux = fetchurl {
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb";
sha256 = "09v8zlayas906zhqy2aw4wkvyl87ykr09sjf0nmgmf69piwmjgg6";
}; };
sencha = callPackage ./sencha {}; i686-linux = fetchurl {
url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb";
sha256 = "0gv4pf3vhrw4xyccm24ivv92d9qy4zpwsh0m82ib1w764lyxmyrz";
}; };
desktopItem = makeDesktopItem rec { }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
name = "Rambox";
exec = "rambox";
icon = "${self.rambox-bare}/resources/Icon.png";
desktopName = name;
genericName = "Rambox messenger";
categories = "Network;";
};
in
with self; nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ];
runtimeDependencies = [ udev.lib libnotify ];
stdenv.mkDerivation { unpackPhase = "dpkg-deb -x $src .";
name = "rambox-${rambox-bare.version}";
nativeBuildInputs = [ makeWrapper ];
dontUnpack = true;
dontWrapGApps = true; # we only want $gappsWrapperArgs here
installPhase = '' installPhase = ''
runHook preInstall mkdir -p $out/bin
mkdir -p $out/share/applications cp -r opt $out
ln -s ${desktopItem}/share/applications/* $out/share/applications ln -s $out/opt/Rambox/rambox $out/bin
runHook postInstall
# provide resources
cp -r usr/share $out
substituteInPlace $out/share/applications/rambox.desktop \
--replace Exec=/opt/Rambox/rambox Exec=rambox
''; '';
postFixup = '' postFixup = ''
makeWrapper ${electron}/bin/electron $out/bin/rambox \ wrapProgram $out/opt/Rambox/rambox --prefix PATH : ${xdg_utils}/bin
--add-flags "${rambox-bare} --without-update" \
--prefix PATH : ${xdg_utils}/bin
''; '';
meta = rambox-bare.meta // { meta = with stdenv.lib; {
description = "Free and Open Source messaging and emailing app that combines common web applications into one";
homepage = http://rambox.pro;
license = licenses.mit;
maintainers = [ maintainers.gnidorah ];
platforms = ["i686-linux" "x86_64-linux"]; platforms = ["i686-linux" "x86_64-linux"];
hydraPlatforms = [];
}; };
} }

View File

@ -1,14 +0,0 @@
https://github.com/saenzramiro/rambox/issues/1280
diff -urNZ a/electron/main.js b/electron/main.js
--- a/electron/main.js 2017-11-02 14:58:06.085127616 +0000
+++ b/electron/main.js 2017-11-02 14:58:18.316887679 +0000
@@ -8,7 +8,7 @@
// Configuration
const Config = require('electron-config');
// Development
-const isDev = require('electron-is-dev');
+const isDev = false;
// Updater
const updater = require('./updater');
// File System

View File

@ -1,43 +0,0 @@
{ stdenv, fetchurl, gzip, which, unzip, jdk }:
let
version = "6.6.0.13";
srcs = {
i686-linux = fetchurl {
url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-i386.sh.zip";
sha256 = "15b197108b49mf0afpihkh3p68lxm7580zz2w0xsbahglnvhwyfz";
};
x86_64-linux = fetchurl {
url = "https://cdn.sencha.com/cmd/${version}/no-jre/SenchaCmd-${version}-linux-amd64.sh.zip";
sha256 = "1cxhckmx1802p9qiw09cgb1v5f30wcvnrwkshmia8p8n0q47lpp4";
};
};
in
stdenv.mkDerivation {
inherit version;
pname = "sencha-bare";
src = srcs.${stdenv.hostPlatform.system};
nativeBuildInputs = [ gzip which unzip ];
buildInputs = [ jdk ];
sourceRoot = ".";
configurePhase = ''
substituteAll ${./response.varfile} response.varfile
'';
installPhase = ''
./SenchaCmd*.sh -q -dir $out -varfile response.varfile
# disallow sencha writing into /nix/store/repo
echo "repo.local.dir=$TMP/repo" >> $out/sencha.cfg
rm $out/shell-wrapper.sh $out/Uninstaller
'';
meta = with stdenv.lib; {
license = licenses.unfree;
platforms = attrNames srcs;
};
}

View File

@ -1,17 +0,0 @@
{ stdenv, callPackage, makeWrapper }:
let
sencha-bare = callPackage ./bare.nix {};
in
stdenv.mkDerivation {
name = "sencha-${sencha-bare.version}";
nativeBuildInputs = [ makeWrapper ];
dontUnpack = true;
installPhase = ''
makeWrapper ${sencha-bare}/sencha $out/bin/sencha
'';
}

View File

@ -1,13 +0,0 @@
addToPath$Integer=1
parentDir=.
sys.adminRights$Boolean=false
sys.component.148$Boolean=true
sys.component.157$Boolean=true
sys.component.26$Boolean=true
sys.component.30$Boolean=true
sys.component.90$Boolean=true
sys.component.91$Boolean=true
sys.component.92$Boolean=true
sys.component.94$Boolean=true
sys.installationDir=@out@
sys.languageId=en

View File

@ -8,6 +8,33 @@ let
version = "4.2.0"; version = "4.2.0";
inherit (stdenv.hostPlatform) system;
throwSystem = throw "Unsupported system: ${system}";
pname = "slack";
sha256 = {
x86_64-darwin = "0947a98m7yz4hldjvcqnv9s17dpvlsk9sflc1zc99hf500zck0w1";
x86_64-linux = "01b2klhky04fijdqcpfafgdqx2c5nh2fpnzvzgvz10hv7h16cinv";
}.${system} or throwSystem;
meta = with stdenv.lib; {
description = "Desktop client for Slack";
homepage = https://slack.com;
license = licenses.unfree;
maintainers = [ maintainers.mmahut ];
platforms = [ "x86_64-darwin" "x86_64-linux" ];
};
linux = stdenv.mkDerivation rec {
inherit pname version meta;
src = fetchurl {
url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
inherit sha256;
};
rpath = stdenv.lib.makeLibraryPath [ rpath = stdenv.lib.makeLibraryPath [
alsaLib alsaLib
at-spi2-atk at-spi2-atk
@ -49,21 +76,6 @@ let
xorg.libXScrnSaver xorg.libXScrnSaver
] + ":${stdenv.cc.cc.lib}/lib64"; ] + ":${stdenv.cc.cc.lib}/lib64";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
sha256 = "01b2klhky04fijdqcpfafgdqx2c5nh2fpnzvzgvz10hv7h16cinv";
}
else
throw "Slack is not supported on ${stdenv.hostPlatform.system}";
in stdenv.mkDerivation {
pname = "slack";
inherit version;
inherit src;
buildInputs = [ buildInputs = [
gtk3 # needed for GSETTINGS_SCHEMAS_PATH gtk3 # needed for GSETTINGS_SCHEMAS_PATH
]; ];
@ -116,12 +128,26 @@ in stdenv.mkDerivation {
EOF EOF
asar pack $out/lib/slack/resources/app.asar.unpacked $out/lib/slack/resources/app.asar asar pack $out/lib/slack/resources/app.asar.unpacked $out/lib/slack/resources/app.asar
''; '';
meta = with stdenv.lib; {
description = "Desktop client for Slack";
homepage = https://slack.com;
license = licenses.unfree;
maintainers = [ maintainers.mmahut ];
platforms = [ "x86_64-linux" ];
}; };
}
darwin = stdenv.mkDerivation {
inherit pname version meta;
phases = [ "installPhase" ];
src = fetchurl {
url = "https://downloads.slack-edge.com/mac_releases/Slack-${version}-macOS.dmg";
inherit sha256;
};
installPhase = ''
/usr/bin/hdiutil mount -nobrowse -mountpoint slack-mnt $src
mkdir -p $out/Applications
cp -r ./slack-mnt/Slack.app $out/Applications
/usr/bin/hdiutil unmount slack-mnt
defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
'';
};
in if stdenv.isDarwin
then darwin
else linux

View File

@ -19,12 +19,12 @@ with lib;
mkDerivation rec { mkDerivation rec {
pname = "telegram-desktop"; pname = "telegram-desktop";
version = "1.9.13"; version = "1.9.14";
# Telegram-Desktop with submodules # Telegram-Desktop with submodules
src = fetchurl { src = fetchurl {
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz"; url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
sha256 = "1cd1vy5f0hin01jp7agdr56axwd8539rkngb7c16x17bhj5r7rm7"; sha256 = "0jsss4b51ylf4qk58frvh2yap1s3cjf3isnlc273cc0fh5g1skc6";
}; };
postPatch = '' postPatch = ''

View File

@ -15,6 +15,8 @@ buildPythonPackage rec {
checkInputs = [ mock pytest coverage tox ]; checkInputs = [ mock pytest coverage tox ];
propagatedBuildInputs = [ urwid tweepy future ]; propagatedBuildInputs = [ urwid tweepy future ];
LC_ALL = "en_US.UTF-8";
patches = [ patches = [
(fetchpatch { (fetchpatch {
url = "https://github.com/louipc/turses/commit/be0961b51f502d49fd9e2e5253ac130e543a31c7.patch"; url = "https://github.com/louipc/turses/commit/be0961b51f502d49fd9e2e5253ac130e543a31c7.patch";

View File

@ -14,11 +14,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
let let
inherit (stdenv.lib) concatStringsSep makeBinPath optional; inherit (stdenv.lib) concatStringsSep makeBinPath optional;
version = "3.5.352596.0119"; version = "3.5.359539.0224";
srcs = { srcs = {
x86_64-linux = fetchurl { x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
sha256 = "1h8wki0b920k0hcy812w91ara59z4rmfllxx04nbmzsxh0bvsx90"; sha256 = "1n6rcsl86150y2dzkcgy5rzdij0d6ib3nvg4dz4a4dkyhq5hbla2";
}; };
}; };

View File

@ -27,12 +27,12 @@ let
in in
assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins; assert lib.all (p: p.enabled -> ! (builtins.elem null p.buildInputs)) plugins;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2.7"; version = "2.7.1";
pname = "weechat"; pname = "weechat";
src = fetchurl { src = fetchurl {
url = "https://weechat.org/files/src/weechat-${version}.tar.bz2"; url = "https://weechat.org/files/src/weechat-${version}.tar.bz2";
sha256 = "00hzchzw1w2181kczcrrnj8ngml3bwk7qciha3higxq3qynf0h8c"; sha256 = "0acz41jg7lmipni9z2agfqw4dhmx5hf6k9w4pvr4zih1fhkldva2";
}; };
outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins; outputs = [ "out" "man" ] ++ map (p: p.name) enabledPlugins;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "weechat-autosort"; pname = "weechat-autosort";
version = "3.4"; version = "3.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "de-vri-es"; owner = "de-vri-es";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1sbr6ga9krrfgqznvsxjd3hdxzkvslh41ls5xrj7l2p4ws4gwlkn"; sha256 = "0a2gc8nhklvlivradhqy2pkymsqyy01pvzrmwg60cln8snmcqpd5";
}; };
passthru.scripts = [ "autosort.py" ]; passthru.scripts = [ "autosort.py" ];
@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
description = "Autosort is a weechat script to automatically or manually keep your buffers sorted"; description = "Autosort is a weechat script to automatically or manually keep your buffers sorted";
homepage = https://github.com/de-vri-es/weechat-autosort; homepage = https://github.com/de-vri-es/weechat-autosort;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ ma27 ]; maintainers = with maintainers; [ ma27 emily ];
}; };
} }

View File

@ -75,7 +75,7 @@ in buildPythonPackage {
description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol"; description = "A Python plugin for Weechat that lets Weechat communicate over the Matrix protocol";
homepage = "https://github.com/poljar/weechat-matrix"; homepage = "https://github.com/poljar/weechat-matrix";
license = licenses.isc; license = licenses.isc;
platforms = platforms.linux; platforms = platforms.unix;
maintainers = with maintainers; [ tilpner emily ]; maintainers = with maintainers; [ tilpner emily ];
}; };
} }

View File

@ -30,11 +30,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "claws-mail"; pname = "claws-mail";
version = "3.17.4"; version = "3.17.5";
src = fetchurl { src = fetchurl {
url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz"; url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
sha256 = "00mfhaac16sv67rwiq98hr4nl5zmd1h2afswwwksdcsi3q9x23jr"; sha256 = "1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns";
}; };
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "The user-friendly, lightweight, and fast email client"; description = "The user-friendly, lightweight, and fast email client";
homepage = https://www.claws-mail.org/; homepage = "https://www.claws-mail.org/";
license = licenses.gpl3; license = licenses.gpl3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ fpletz globin ]; maintainers = with maintainers; [ fpletz globin ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "tixati"; pname = "tixati";
version = "2.66"; version = "2.67";
src = fetchurl { src = fetchurl {
url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz"; url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
sha256 = "1qwmxfkgc5q7v6ickxr29khil6mh9crv5mwdm72bp6k64w0akbs7"; sha256 = "0510wkwmwrlv61958zd5nsc4lr0l0lka3jf4pq3dyiyfsf4k20rq";
}; };
installPhase = '' installPhase = ''

View File

@ -5,7 +5,7 @@
let let
sha256 = { sha256 = {
x86_64-linux = "1ysd8fwzm0360qs6ijr6l0y2agqb3njz20h7am1x4kxmhy8ravq9"; x86_64-linux = "0az7n4lhmd4pz0spjvyiwd4w1gnqbh8f1fvr1jinsssyq0j26ldj";
i386-linux = "0vjxbg5hwkqkh600rr75xviwy848r1xw9mxwf6bb6l8b0isvlsgg"; i386-linux = "0vjxbg5hwkqkh600rr75xviwy848r1xw9mxwf6bb6l8b0isvlsgg";
}.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported"); }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
@ -28,7 +28,7 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
pname = "anydesk"; pname = "anydesk";
version = "5.5.1"; version = "5.5.2";
src = fetchurl { src = fetchurl {
urls = [ urls = [

View File

@ -1,8 +1,8 @@
{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools { mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools
, seafile-shared, ccnet, jansson, libsearpc , seafile-shared, ccnet, jansson, libsearpc
, withShibboleth ? true, qtwebengine }: , withShibboleth ? true, qtwebengine }:
stdenv.mkDerivation rec { mkDerivation rec {
pname = "seafile-client"; pname = "seafile-client";
version = "7.0.5"; version = "7.0.5";
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON"; ++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON";
qtWrapperArgs = [ qtWrapperArgs = [
"--suffix PATH : ${stdenv.lib.makeBinPath [ ccnet seafile-shared ]}" "--suffix PATH : ${lib.makeBinPath [ ccnet seafile-shared ]}"
]; ];
meta = with lib; { meta = with lib; {

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre { stdenv, fetchFromGitHub, cmake, libpcap, libnet, zlib, curl, pcre
, openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip , openssl, ncurses, glib, gtk3, atk, pango, flex, bison, geoip, harfbuzz
, pkgconfig }: , pkgconfig }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake flex bison pkgconfig ]; nativeBuildInputs = [ cmake flex bison pkgconfig ];
buildInputs = [ buildInputs = [
libpcap libnet zlib curl pcre openssl ncurses libpcap libnet zlib curl pcre openssl ncurses
glib gtk3 atk pango geoip glib gtk3 atk pango geoip harfbuzz
]; ];
preConfigure = '' preConfigure = ''
@ -30,9 +30,19 @@ stdenv.mkDerivation rec {
"-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" "-DGTK3_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
]; ];
# TODO: Remove after the next release (0.8.4 should work without this):
NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Comprehensive suite for man in the middle attacks"; description = "Comprehensive suite for man in the middle attacks";
homepage = http://ettercap.github.io/ettercap/; longDescription = ''
Ettercap is a comprehensive suite for man in the middle attacks. It
features sniffing of live connections, content filtering on the fly and
many other interesting tricks. It supports active and passive dissection
of many protocols and includes many features for network and host
analysis.
'';
homepage = https://www.ettercap-project.org/;
license = licenses.gpl2; license = licenses.gpl2;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ pSub ]; maintainers = with maintainers; [ pSub ];

View File

@ -2,12 +2,12 @@
let let
pname = "ssb-patchwork"; pname = "ssb-patchwork";
version = "3.17.2"; version = "3.17.5";
name = "Patchwork-${version}"; name = "Patchwork-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage"; url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
sha256 = "1pmy01jwdr461vsl4fsxi3jaqnjx9yl5dw4987y5g73qx21qc5d5"; sha256 = "0zmi6d9v92icbkln69n50648xbaz6jih5sal1fm5a8kw5is8qg4s";
}; };
binary = appimageTools.wrapType2 { binary = appimageTools.wrapType2 {
@ -23,7 +23,7 @@ let
name = "ssb-patchwork"; name = "ssb-patchwork";
exec = "${binary}/bin/ssb-patchwork"; exec = "${binary}/bin/ssb-patchwork";
icon = "ssb-patchwork.png"; icon = "ssb-patchwork.png";
comment = "Decentralized messaging and sharing app"; comment = "Client for the decentralized social network Secure Scuttlebutt";
desktopName = "Patchwork"; desktopName = "Patchwork";
genericName = "Patchwork"; genericName = "Patchwork";
categories = "Network;"; categories = "Network;";
@ -45,9 +45,9 @@ in
longDescription = '' longDescription = ''
sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship. sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
''; '';
homepage = https://www.scuttlebutt.nz/; homepage = "https://www.scuttlebutt.nz/";
license = licenses.agpl3; license = licenses.agpl3;
maintainers = with maintainers; [ thedavidmeister ninjatrappeur flokli ]; maintainers = with maintainers; [ asymmetric ninjatrappeur thedavidmeister ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
} }

View File

@ -26,7 +26,8 @@ rec {
sha256 = "0a7arjlxxy7hjm1brxwd124bf1gkbl92bgygi3sbbhbsv07pjdcr"; sha256 = "0a7arjlxxy7hjm1brxwd124bf1gkbl92bgygi3sbbhbsv07pjdcr";
}; };
# TODO: dictionaries # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
# it and LibreOffice can use these by pointing DICPATH environment variable at the hunspell directory
help = fetchSrc { help = fetchSrc {
name = "help"; name = "help";

View File

@ -26,7 +26,8 @@ rec {
sha256 = "01g09bbn1ixrsfj4l0x6x8p06dz9hnlrhnr3f3xb42drmi9ipvjv"; sha256 = "01g09bbn1ixrsfj4l0x6x8p06dz9hnlrhnr3f3xb42drmi9ipvjv";
}; };
# TODO: dictionaries # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
# it and LibreOffice can use these by pointing DICPATH environment variable at the hunspell directory
help = fetchSrc { help = fetchSrc {
name = "help"; name = "help";

View File

@ -17,6 +17,13 @@ if uname | grep Linux > /dev/null &&
export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session" export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
fi fi
for PROFILE in $NIX_PROFILES; do
HDIR="$PROFILE/share/hunspell"
if [ -d "$HDIR" ]; then
export DICPATH=$DICPATH''${DICPATH:+:}$HDIR
fi
done
"@libreoffice@/bin/$(basename "$0")" "$@" "@libreoffice@/bin/$(basename "$0")" "$@"
code="$?" code="$?"

View File

@ -1,4 +1,4 @@
{ stdenv, python3, glibcLocales }: { stdenv, python3, glibcLocales, installShellFiles, jq }:
let let
inherit (python3.pkgs) buildPythonApplication fetchPypi; inherit (python3.pkgs) buildPythonApplication fetchPypi;
@ -17,6 +17,7 @@ buildPythonApplication rec {
LANG = "en_US.UTF-8"; LANG = "en_US.UTF-8";
LC_TYPE = "en_US.UTF-8"; LC_TYPE = "en_US.UTF-8";
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ glibcLocales ]; buildInputs = [ glibcLocales ];
propagatedBuildInputs = with python3.pkgs; propagatedBuildInputs = with python3.pkgs;
[ atomicwrites click click-log click-repl configobj humanize icalendar parsedatetime [ atomicwrites click click-log click-repl configobj humanize icalendar parsedatetime
@ -28,6 +29,12 @@ buildPythonApplication rec {
makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive" makeWrapperArgs = [ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
"--set CHARSET en_us.UTF-8" ]; "--set CHARSET en_us.UTF-8" ];
postInstall = ''
installShellCompletion --bash contrib/completion/bash/_todo
substituteInPlace contrib/completion/zsh/_todo --replace "jq " "${jq}/bin/jq "
installShellCompletion --zsh contrib/completion/zsh/_todo
'';
preCheck = '' preCheck = ''
# Remove one failing test that only checks whether the command line works # Remove one failing test that only checks whether the command line works
rm tests/test_main.py rm tests/test_main.py

View File

@ -4,14 +4,14 @@
stdenv.mkDerivation { stdenv.mkDerivation {
version = "19.08"; version = "20.02";
pname = "rtl_433"; pname = "rtl_433";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "merbanan"; owner = "merbanan";
repo = "rtl_433"; repo = "rtl_433";
rev = "19.08"; rev = "20.02";
sha256 = "0cm82gm5c86qfl4dw37h8wyk77947k6fv2n1pn3xvk3wz2ygsdi6"; sha256 = "11991xky9gawkragdyg27qsf7kw5bhlg7ygvf3fn7ng00x4xbh1z";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];

View File

@ -7,8 +7,8 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
srcVersion = "jan20a"; srcVersion = "feb20a";
version = "20200101_a"; version = "20200201_a";
pname = "gildas"; pname = "gildas";
src = fetchurl { src = fetchurl {
@ -16,19 +16,15 @@ stdenv.mkDerivation rec {
# source code of the previous release to a different directory # source code of the previous release to a different directory
urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz" urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
"http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ]; "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
sha256 = "12n08pax7gwg2z121ix3ah5prq3yswqnf2yc8jgs4i9rgkpbsfzz"; sha256 = "05f34kpi3pfgf4dsyka7mkcln26yzb2mixnnc306krq0isjm7m26";
}; };
# Python scripts are not converted to Python 3 syntax when parallel
# building is turned on. Disable it until this is fixed upstream.
enableParallelBuilding = false;
nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ]; nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ];
buildInputs = [ gtk2-x11 lesstif cfitsio python3Env ncurses ] buildInputs = [ gtk2-x11 lesstif cfitsio python3Env ncurses ]
++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation ]); ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation ]);
patches = [ ./wrapper.patch ./clang.patch ./aarch64.patch ./imager-py3.patch ]; patches = [ ./wrapper.patch ./clang.patch ./aarch64.patch ];
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument"; NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument";

View File

@ -1,12 +0,0 @@
diff -ruN gildas-src-jan20a.orig/contrib/imager/pro/define.ima gildas-src-jan20a/contrib/imager/pro/define.ima
--- gildas-src-jan20a.orig/contrib/imager/pro/define.ima 2020-01-01 02:15:16.000000000 +0100
+++ gildas-src-jan20a/contrib/imager/pro/define.ima 2020-01-14 11:18:46.000000000 +0100
@@ -9,7 +9,7 @@
!
! Patch for a Bug on Mac-OS/X where Python blocks if activated first
! from a script launched by a widget.
-python print "Starting Python"
+python print("Starting Python")
!
! INPUT, GO and UVT_CONVERT always defined by GreG
define command GO "@ p_go.ima" gag_pro:go_greg.hlp

View File

@ -0,0 +1,77 @@
{ stdenv, lib, fetchFromGitHub, python, makeWrapper
, eigen, fftw, libtiff, zlib, ants, bc
, qt5, libGL, libGLU, libX11, libXext
, withGui ? true }:
stdenv.mkDerivation rec {
pname = "mrtrix";
version = "3.0_RC3_latest";
src = fetchFromGitHub {
owner = "MRtrix3";
repo = "mrtrix3";
rev = version;
sha256 = "184nv524p8j94qicjy9l288bqcgl2yxqqs55a7042i0gfsnwp51c";
fetchSubmodules = true;
};
nativeBuildInputs = [ eigen makeWrapper ] ++ lib.optional withGui qt5.wrapQtAppsHook;
buildInputs = [
ants
python
fftw
libtiff
zlib ] ++ lib.optionals withGui [
libGL
libGLU
libX11
libXext
qt5.qtbase
qt5.qtsvg
];
installCheckInputs = [ bc ];
postPatch = ''
patchShebangs ./build ./configure ./run_tests ./bin/population_template
substituteInPlace ./run_tests \
--replace 'git submodule update --init >> $LOGFILE 2>&1' ""
'';
configurePhase = ''
export EIGEN_CFLAGS="-isystem ${eigen}/include/eigen3"
unset LD # similar to https://github.com/MRtrix3/mrtrix3/issues/1519
./configure ${lib.optionalString (!withGui) "-nogui"};
'';
buildPhase = ''
./build
(cd testing && ../build)
'';
installCheckPhase = "./run_tests";
doInstallCheck = true;
installPhase = ''
runHook preInstall
mkdir -p $out
cp -ar lib $out/lib
cp -ar bin $out/bin
runHook postInstall
'';
postInstall = ''
for prog in $out/bin/*; do
wrapProgram $prog --prefix PATH : ${lib.makeBinPath [ ants ]}
done
'';
meta = with lib; {
homepage = "https://github.com/MRtrix3/mrtrix3";
description = "Suite of tools for diffusion imaging";
maintainers = with maintainers; [ bcdarwin ];
platforms = platforms.linux;
license = licenses.mpl20;
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gtkwave"; pname = "gtkwave";
version = "3.3.103"; version = "3.3.104";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz"; url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
sha256 = "0djqfnxy772a9p44wnm5ansbih7jg76xv1hvcpkv3gblhkzg49ay"; sha256 = "1qvldbnlp3wkqr5ff93f6pdvv9yzij7lxfhpqlizakz08l1xb391";
}; };
nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; nativeBuildInputs = [ pkgconfig wrapGAppsHook ];

View File

@ -1,14 +1,9 @@
{ stdenv, pkgconfig, curl, openssl, zlib, fetchFromGitHub, rustPlatform }: { lib, pkgconfig, curl, openssl, zlib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "elan"; pname = "elan";
version = "0.7.5"; version = "0.7.5";
# Delete this on next update; see #79975 for details
legacyCargoFetcher = true;
cargoSha256 = "0q0xlvyyf88dbz43r7kk9v8rrp6hj0nl5i2i9mg6ibk2gphgdv6v";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "kha"; owner = "kha";
repo = "elan"; repo = "elan";
@ -16,6 +11,8 @@ rustPlatform.buildRustPackage rec {
sha256 = "1147f3lzr6lgvf580ppspn20bdwnf6l8idh1h5ana0p0lf5a0dn1"; sha256 = "1147f3lzr6lgvf580ppspn20bdwnf6l8idh1h5ana0p0lf5a0dn1";
}; };
cargoSha256 = "0vja1cq6z7jlr4nzfdzn4gl8l31yld82zmgzwihnalif13q3fcps";
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ curl zlib openssl ]; buildInputs = [ curl zlib openssl ];
@ -38,7 +35,7 @@ rustPlatform.buildRustPackage rec {
$out/bin/elan completions zsh > "$out/share/zsh/site-functions/_elan" $out/bin/elan completions zsh > "$out/share/zsh/site-functions/_elan"
''; '';
meta = with stdenv.lib; { meta = with lib; {
description = "Small tool to manage your installations of the Lean theorem prover"; description = "Small tool to manage your installations of the Lean theorem prover";
homepage = "https://github.com/Kha/elan"; homepage = "https://github.com/Kha/elan";
license = with licenses; [ asl20 /* or */ mit ]; license = with licenses; [ asl20 /* or */ mit ];

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