Merge staging-next into staging

This commit is contained in:
Frederik Rietdijk 2019-08-09 14:01:00 +02:00
commit 5bc501b7aa
595 changed files with 11993 additions and 5962 deletions

View File

@ -124,3 +124,21 @@ in another file (say `default.nix`) to be able to build it with
``` ```
$ nix-build -A yaml $ nix-build -A yaml
``` ```
## Passing options to `idris` commands
The `build-idris-package` function provides also optional input values to set additional options for the used `idris` commands.
Specifically, you can set `idrisBuildOptions`, `idrisTestOptions`, `idrisInstallOptions` and `idrisDocOptions` to provide additional options to the `idris` command respectively when building, testing, installing and generating docs for your package.
For example you could set
```
build-idris-package {
idrisBuildOptions = [ "--log" "1" "--verbose" ]
...
}
```
to require verbose output during `idris` build phase.

View File

@ -1083,6 +1083,11 @@
github = "codyopel"; github = "codyopel";
name = "Cody Opel"; name = "Cody Opel";
}; };
cohencyril = {
email = "cyril.cohen@inria.fr";
github = "CohenCyril";
name = "Cyril Cohen";
};
colemickens = { colemickens = {
email = "cole.mickens@gmail.com"; email = "cole.mickens@gmail.com";
github = "colemickens"; github = "colemickens";
@ -1698,6 +1703,11 @@
fingerprint = "67FE 98F2 8C44 CF22 1828 E12F D57E FA62 5C9A 925F"; fingerprint = "67FE 98F2 8C44 CF22 1828 E12F D57E FA62 5C9A 925F";
}]; }];
}; };
evanjs = {
email = "evanjsx@gmail.com";
github = "evanjs";
name = "Evan Stoll";
};
evck = { evck = {
email = "eric@evenchick.com"; email = "eric@evenchick.com";
github = "ericevenchick"; github = "ericevenchick";
@ -5599,6 +5609,11 @@
github = "viric"; github = "viric";
name = "Lluís Batlle i Rossell"; name = "Lluís Batlle i Rossell";
}; };
virusdave = {
email = "dave.nicponski@gmail.com";
github = "virusdave";
name = "Dave Nicponski";
};
vizanto = { vizanto = {
email = "danny@prime.vc"; email = "danny@prime.vc";
github = "vizanto"; github = "vizanto";

View File

@ -67,7 +67,7 @@ rec {
in in
{ key = "ip-address"; { key = "ip-address";
config = config =
{ networking.hostName = m.fst; { networking.hostName = mkDefault m.fst;
networking.interfaces = listToAttrs interfaces; networking.interfaces = listToAttrs interfaces;

View File

@ -0,0 +1,90 @@
{ lib, pkgs, config, ... }:
with lib;
let
cfg = config.services.zfs.autoReplication;
recursive = optionalString cfg.recursive " --recursive";
followDelete = optionalString cfg.followDelete " --follow-delete";
in {
options = {
services.zfs.autoReplication = {
enable = mkEnableOption "ZFS snapshot replication.";
followDelete = mkOption {
description = "Remove remote snapshots that don't have a local correspondant.";
default = true;
type = types.bool;
};
host = mkOption {
description = "Remote host where snapshots should be sent.";
example = "example.com";
type = types.str;
};
identityFilePath = mkOption {
description = "Path to SSH key used to login to host.";
example = "/home/username/.ssh/id_rsa";
type = types.path;
};
localFilesystem = mkOption {
description = "Local ZFS fileystem from which snapshots should be sent. Defaults to the attribute name.";
example = "pool/file/path";
type = types.str;
};
remoteFilesystem = mkOption {
description = "Remote ZFS filesystem where snapshots should be sent.";
example = "pool/file/path";
type = types.str;
};
recursive = mkOption {
description = "Recursively discover snapshots to send.";
default = true;
type = types.bool;
};
username = mkOption {
description = "Username used by SSH to login to remote host.";
example = "username";
type = types.str;
};
};
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.lz4
];
systemd.services."zfs-replication" = {
after = [
"zfs-snapshot-daily.service"
"zfs-snapshot-frequent.service"
"zfs-snapshot-hourly.service"
"zfs-snapshot-monthly.service"
"zfs-snapshot-weekly.service"
];
description = "ZFS Snapshot Replication";
documentation = [
"https://github.com/alunduil/zfs-replicate"
];
restartIfChanged = false;
serviceConfig.ExecStart = "${pkgs.zfs-replicate}/bin/zfs-replicate${recursive} -l ${escapeShellArg cfg.username} -i ${escapeShellArg cfg.identityFilePath}${followDelete} ${escapeShellArg cfg.host} ${escapeShellArg cfg.remoteFilesystem} ${escapeShellArg cfg.localFilesystem}";
wantedBy = [
"zfs-snapshot-daily.service"
"zfs-snapshot-frequent.service"
"zfs-snapshot-hourly.service"
"zfs-snapshot-monthly.service"
"zfs-snapshot-weekly.service"
];
};
};
meta = {
maintainers = with lib.maintainers; [ alunduil ];
};
}

View File

@ -251,6 +251,10 @@ in
environment.systemPackages = [ postgresql ]; environment.systemPackages = [ postgresql ];
environment.pathsToLink = [
"/share/postgresql"
];
systemd.services.postgresql = systemd.services.postgresql =
{ description = "PostgreSQL Server"; { description = "PostgreSQL Server";

View File

@ -9,6 +9,20 @@ let
in { in {
options.services.bloop = { options.services.bloop = {
extraOptions = mkOption {
type = types.listOf types.str;
default = [ ];
example = [
"-J-Xmx2G"
"-J-XX:MaxInlineLevel=20"
"-J-XX:+UseParallelGC"
];
description = ''
Specifies additional command line argument to pass to bloop
java process.
'';
};
install = mkOption { install = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -25,9 +39,12 @@ in {
systemd.user.services.bloop = { systemd.user.services.bloop = {
description = "Bloop Scala build server"; description = "Bloop Scala build server";
environment = {
PATH = mkForce "${makeBinPath [ config.programs.java.package ]}";
};
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
ExecStart = ''${pkgs.bloop}/bin/blp-server''; ExecStart = ''${pkgs.bloop}/bin/bloop server'';
Restart = "always"; Restart = "always";
}; };
}; };

View File

@ -8,6 +8,12 @@ in {
options = { options = {
services.throttled = { services.throttled = {
enable = mkEnableOption "fix for Intel CPU throttling"; enable = mkEnableOption "fix for Intel CPU throttling";
extraConfig = mkOption {
type = types.str;
default = "";
description = "Alternative configuration";
};
}; };
}; };
@ -16,6 +22,9 @@ in {
# The upstream package has this in Install, but that's not enough, see the NixOS manual # The upstream package has this in Install, but that's not enough, see the NixOS manual
systemd.services."lenovo_fix".wantedBy = [ "multi-user.target" ]; systemd.services."lenovo_fix".wantedBy = [ "multi-user.target" ];
environment.etc."lenovo_fix.conf".source = "${pkgs.throttled}/etc/lenovo_fix.conf"; environment.etc."lenovo_fix.conf".source =
if cfg.extraConfig != ""
then pkgs.writeText "lenovo_fix.conf" cfg.extraConfig
else "${pkgs.throttled}/etc/lenovo_fix.conf";
}; };
} }

View File

@ -143,21 +143,37 @@ in
users.users.${cfg.user} = { users.users.${cfg.user} = {
description = "Gitolite user"; description = "Gitolite user";
home = cfg.dataDir; home = cfg.dataDir;
createHome = true;
uid = config.ids.uids.gitolite; uid = config.ids.uids.gitolite;
group = cfg.group; group = cfg.group;
useDefaultShell = true; useDefaultShell = true;
}; };
users.groups."${cfg.group}".gid = config.ids.gids.gitolite; users.groups."${cfg.group}".gid = config.ids.gids.gitolite;
systemd.tmpfiles.rules = [
"d '${cfg.dataDir}' 0750 ${cfg.user} ${cfg.group} - -"
"d '${cfg.dataDir}'/.gitolite - ${cfg.user} ${cfg.group} - -"
"d '${cfg.dataDir}'/.gitolite/logs - ${cfg.user} ${cfg.group} - -"
"Z ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -"
];
systemd.services."gitolite-init" = { systemd.services."gitolite-init" = {
description = "Gitolite initialization"; description = "Gitolite initialization";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
unitConfig.RequiresMountsFor = cfg.dataDir; unitConfig.RequiresMountsFor = cfg.dataDir;
serviceConfig.User = "${cfg.user}"; environment = {
serviceConfig.Type = "oneshot"; GITOLITE_RC = ".gitolite.rc";
serviceConfig.RemainAfterExit = true; GITOLITE_RC_DEFAULT = "${rcDir}/gitolite.rc.default";
};
serviceConfig = {
Type = "oneshot";
User = cfg.user;
Group = cfg.group;
WorkingDirectory = "~";
RemainAfterExit = true;
};
path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.diffutils config.programs.ssh.package ]; path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.diffutils config.programs.ssh.package ];
script = script =
@ -187,11 +203,6 @@ in
''; '';
in in
'' ''
cd ${cfg.dataDir}
mkdir -p .gitolite/logs
GITOLITE_RC=.gitolite.rc
GITOLITE_RC_DEFAULT=${rcDir}/gitolite.rc.default
if ( [[ ! -e "$GITOLITE_RC" ]] && [[ ! -L "$GITOLITE_RC" ]] ) || if ( [[ ! -e "$GITOLITE_RC" ]] && [[ ! -L "$GITOLITE_RC" ]] ) ||
( [[ -f "$GITOLITE_RC" ]] && diff -q "$GITOLITE_RC" "$GITOLITE_RC_DEFAULT" >/dev/null ) || ( [[ -f "$GITOLITE_RC" ]] && diff -q "$GITOLITE_RC" "$GITOLITE_RC_DEFAULT" >/dev/null ) ||
( [[ -L "$GITOLITE_RC" ]] && [[ "$(readlink "$GITOLITE_RC")" =~ ^/nix/store/ ]] ) ( [[ -L "$GITOLITE_RC" ]] && [[ "$(readlink "$GITOLITE_RC")" =~ ^/nix/store/ ]] )

View File

@ -34,6 +34,14 @@ in {
<literal>allowed_ip_1</literal> and so on. <literal>allowed_ip_1</literal> and so on.
''; '';
}; };
withRemoteIp = mkOption {
type = types.bool;
default = false;
description = ''
Whether or not the remote IP of a WireGuard peer should be exposed via prometheus.
'';
};
}; };
serviceOpts = { serviceOpts = {
path = [ pkgs.wireguard-tools ]; path = [ pkgs.wireguard-tools ];
@ -45,6 +53,7 @@ in {
-p ${toString cfg.port} \ -p ${toString cfg.port} \
${optionalString cfg.verbose "-v"} \ ${optionalString cfg.verbose "-v"} \
${optionalString cfg.singleSubnetPerField "-s"} \ ${optionalString cfg.singleSubnetPerField "-s"} \
${optionalString cfg.withRemoteIp "-r"} \
${optionalString (cfg.wireguardConfig != null) "-n ${cfg.wireguardConfig}"} ${optionalString (cfg.wireguardConfig != null) "-n ${cfg.wireguardConfig}"}
''; '';
}; };

View File

@ -148,7 +148,7 @@ in
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"e '${stateDir}' 0700 unifi - - -" "e '${stateDir}' 0700 unifi - - -"
"e '${stateDir}/data' 0700 unifi - - -" "d '${stateDir}/data' 0700 unifi - - -"
]; ];
systemd.services.unifi = { systemd.services.unifi = {

View File

@ -20,7 +20,7 @@ in
imports = [ imports = [
./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix
./mate.nix ./pantheon.nix ./mate.nix ./pantheon.nix ./surf-display.nix
]; ];
options = { options = {

View File

@ -102,6 +102,10 @@ in
# Makes qt applications look less alien # Makes qt applications look less alien
export QT_QPA_PLATFORMTHEME=gtk3 export QT_QPA_PLATFORMTHEME=gtk3
export QT_STYLE_OVERRIDE=adwaita export QT_STYLE_OVERRIDE=adwaita
# Settings from elementary-default-settings
export GTK_CSD=1
export GTK_MODULES=$GTK_MODULES:pantheon-filechooser-module
fi fi
''; '';

View File

@ -178,7 +178,7 @@ in
++ lib.optional (cfg.phononBackend == "vlc" && cfg.enableQt4Support) pkgs.phonon-backend-vlc ++ lib.optional (cfg.phononBackend == "vlc" && cfg.enableQt4Support) pkgs.phonon-backend-vlc
# Optional hardware support features # Optional hardware support features
++ lib.optional config.hardware.bluetooth.enable bluedevil ++ lib.optionals config.hardware.bluetooth.enable [ bluedevil bluez-qt ]
++ lib.optional config.networking.networkmanager.enable plasma-nm ++ lib.optional config.networking.networkmanager.enable plasma-nm
++ lib.optional config.hardware.pulseaudio.enable plasma-pa ++ lib.optional config.hardware.pulseaudio.enable plasma-pa
++ lib.optional config.powerManagement.enable powerdevil ++ lib.optional config.powerManagement.enable powerdevil

View File

@ -0,0 +1,127 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.desktopManager.surf-display;
surfDisplayConf = ''
# Surf Kiosk Display: Wrap around surf browser and turn your
# system into a browser screen in KIOSK-mode.
# default download URI for all display screens if not configured individually
DEFAULT_WWW_URI="${cfg.defaultWwwUri}"
# Enforce fixed resolution for all displays (default: not set):
#DEFAULT_RESOLUTION="1920x1080"
# HTTP proxy URL, if needed (default: not set).
#HTTP_PROXY_URL="http://webcache:3128"
# Setting for internal inactivity timer to restart surf-display
# if the user goes inactive/idle.
INACTIVITY_INTERVAL="${builtins.toString cfg.inactivityInterval}"
# log to syslog instead of .xsession-errors
LOG_TO_SYSLOG="yes"
# Launch pulseaudio daemon if not already running.
WITH_PULSEAUDIO="yes"
# screensaver settings, see "man 1 xset" for possible options
SCREENSAVER_SETTINGS="${cfg.screensaverSettings}"
# disable right and middle pointer device click in browser sessions while keeping
# scrolling wheels' functionality intact... (consider "pointer" subcommand on
# xmodmap man page for details).
POINTER_BUTTON_MAP="${cfg.pointerButtonMap}"
# Hide idle mouse pointer.
HIDE_IDLE_POINTER="${cfg.hideIdlePointer}"
${cfg.extraConfig}
'';
in {
options = {
services.xserver.desktopManager.surf-display = {
enable = mkEnableOption "surf-display as a kiosk browser session";
defaultWwwUri = mkOption {
type = types.string;
default = "${pkgs.surf-display}/share/surf-display/empty-page.html";
example = "https://www.example.com/";
description = "Default URI to display.";
};
inactivityInterval = mkOption {
type = types.int;
default = 300;
example = "0";
description = ''
Setting for internal inactivity timer to restart surf-display if the
user goes inactive/idle to get a fresh session for the next user of
the kiosk.
If this value is set to zero, the whole feature of restarting due to
inactivity is disabled.
'';
};
screensaverSettings = mkOption {
type = types.string;
default = "";
description = ''
Screensaver settings, see <literal>man 1 xset</literal> for possible options.
'';
};
pointerButtonMap = mkOption {
type = types.string;
default = "1 0 0 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0";
description = ''
Disable right and middle pointer device click in browser sessions
while keeping scrolling wheels' functionality intact. See pointer
subcommand on <literal>man xmodmap</literal> for details.
'';
};
hideIdlePointer = mkOption {
type = types.string;
default = "yes";
example = "no";
description = "Hide idle mouse pointer.";
};
extraConfig = mkOption {
type = types.string;
default = "";
example = ''
# Enforce fixed resolution for all displays (default: not set):
DEFAULT_RESOLUTION="1920x1080"
# HTTP proxy URL, if needed (default: not set).
HTTP_PROXY_URL="http://webcache:3128"
# Configure individual display screens with host specific parameters:
DISPLAYS['display-host-0']="www_uri=https://www.displayserver.comany.net/display-1/index.html"
DISPLAYS['display-host-1']="www_uri=https://www.displayserver.comany.net/display-2/index.html"
DISPLAYS['display-host-2']="www_uri=https://www.displayserver.comany.net/display-3/index.html|res=1920x1280"
DISPLAYS['display-host-3']="www_uri=https://www.displayserver.comany.net/display-4/index.html"|res=1280x1024"
DISPLAYS['display-host-local-file']="www_uri=file:///usr/share/doc/surf-display/empty-page.html"
'';
description = ''
Extra configuration options to append to <literal>/etc/default/surf-display</literal>.
'';
};
};
};
config = mkIf cfg.enable {
services.xserver.displayManager.extraSessionFilePackages = [
pkgs.surf-display
];
environment.etc."default/surf-display".text = surfDisplayConf;
};
}

View File

@ -96,6 +96,14 @@ in
type = types.bool; type = types.bool;
}; };
autoSuspend = mkOption {
default = true;
description = ''
Suspend the machine after inactivity.
'';
type = types.bool;
};
}; };
}; };
@ -176,10 +184,40 @@ in
systemd.user.services.dbus.wantedBy = [ "default.target" ]; systemd.user.services.dbus.wantedBy = [ "default.target" ];
programs.dconf.profiles.gdm = pkgs.writeText "dconf-gdm-profile" '' programs.dconf.profiles.gdm =
system-db:local let
${gdm}/share/dconf/profile/gdm customDconf = pkgs.writeTextFile {
name = "gdm-dconf";
destination = "/dconf/gdm-custom";
text = ''
${optionalString (!cfg.gdm.autoSuspend) ''
[org/gnome/settings-daemon/plugins/power]
sleep-inactive-ac-type='nothing'
sleep-inactive-battery-type='nothing'
sleep-inactive-ac-timeout=0
sleep-inactive-battery-timeout=0
''}
''; '';
};
customDconfDb = pkgs.stdenv.mkDerivation {
name = "gdm-dconf-db";
buildCommand = ''
${pkgs.gnome3.dconf}/bin/dconf compile $out ${customDconf}/dconf
'';
};
in pkgs.stdenv.mkDerivation {
name = "dconf-gdm-profile";
buildCommand = ''
# Check that the GDM profile starts with what we expect.
if [ $(head -n 1 ${gdm}/share/dconf/profile/gdm) != "user-db:user" ]; then
echo "GDM dconf profile changed, please update gdm.nix"
exit 1
fi
# Insert our custom DB behind it.
sed '2ifile-db:${customDconfDb}' ${gdm}/share/dconf/profile/gdm > $out
'';
};
# Use AutomaticLogin if delay is zero, because it's immediate. # Use AutomaticLogin if delay is zero, because it's immediate.
# Otherwise with TimedLogin with zero seconds the prompt is still # Otherwise with TimedLogin with zero seconds the prompt is still

View File

@ -8,11 +8,12 @@ let
jmxRoles = [{ username = "me"; password = "password"; }]; jmxRoles = [{ username = "me"; password = "password"; }];
jmxRolesFile = ./cassandra-jmx-roles; jmxRolesFile = ./cassandra-jmx-roles;
jmxAuthArgs = "-u ${(builtins.elemAt jmxRoles 0).username} -pw ${(builtins.elemAt jmxRoles 0).password}"; jmxAuthArgs = "-u ${(builtins.elemAt jmxRoles 0).username} -pw ${(builtins.elemAt jmxRoles 0).password}";
jmxPort = 7200; # Non-standard port so it doesn't accidentally work
# Would usually be assigned to 512M # Would usually be assigned to 512M
numMaxHeapSize = "400"; numMaxHeapSize = "400";
getHeapLimitCommand = '' getHeapLimitCommand = ''
nodetool info | grep "^Heap Memory" | awk \'{print $NF}\' nodetool info -p ${toString jmxPort} | grep "^Heap Memory" | awk \'{print $NF}\'
''; '';
checkHeapLimitCommand = '' checkHeapLimitCommand = ''
[ 1 -eq "$(echo "$(${getHeapLimitCommand}) < ${numMaxHeapSize}" | ${pkgs.bc}/bin/bc)" ] [ 1 -eq "$(echo "$(${getHeapLimitCommand}) < ${numMaxHeapSize}" | ${pkgs.bc}/bin/bc)" ]
@ -27,11 +28,12 @@ let
package = testPackage; package = testPackage;
maxHeapSize = "${numMaxHeapSize}M"; maxHeapSize = "${numMaxHeapSize}M";
heapNewSize = "100M"; heapNewSize = "100M";
inherit jmxPort;
}; };
nodeCfg = ipAddress: extra: {pkgs, config, ...}: nodeCfg = ipAddress: extra: {pkgs, config, ...}: rec {
{ environment.systemPackages = [ testPackage ]; environment.systemPackages = [ testPackage ];
networking = { networking = {
firewall.allowedTCPPorts = [ 7000 7199 9042 ]; firewall.allowedTCPPorts = [ 7000 9042 services.cassandra.jmxPort ];
useDHCP = false; useDHCP = false;
interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
{ address = ipAddress; prefixLength = 24; } { address = ipAddress; prefixLength = 24; }
@ -50,7 +52,9 @@ in
cass2 = nodeCfg "192.168.1.3" { jvmOpts = [ "-Dcassandra.replace_address=cass1" ]; }; cass2 = nodeCfg "192.168.1.3" { jvmOpts = [ "-Dcassandra.replace_address=cass1" ]; };
}; };
testScript = '' testScript = let
jmxPortS = toString jmxPort;
in ''
# Check configuration # Check configuration
subtest "Timers exist", sub { subtest "Timers exist", sub {
$cass0->succeed("systemctl list-timers | grep cassandra-full-repair.timer"); $cass0->succeed("systemctl list-timers | grep cassandra-full-repair.timer");
@ -63,51 +67,51 @@ in
}; };
subtest "Nodetool is operational", sub { subtest "Nodetool is operational", sub {
$cass0->waitForUnit("cassandra.service"); $cass0->waitForUnit("cassandra.service");
$cass0->waitUntilSucceeds("nc -z localhost 7199"); $cass0->waitUntilSucceeds("nc -z localhost ${jmxPortS}");
$cass0->succeed("nodetool status --resolve-ip | egrep '^UN[[:space:]]+cass0'"); $cass0->succeed("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass0'");
}; };
subtest "Cluster name was set", sub { subtest "Cluster name was set", sub {
$cass0->waitForUnit("cassandra.service"); $cass0->waitForUnit("cassandra.service");
$cass0->waitUntilSucceeds("nc -z localhost 7199"); $cass0->waitUntilSucceeds("nc -z localhost ${jmxPortS}");
$cass0->waitUntilSucceeds("nodetool describecluster | grep 'Name: ${clusterName}'"); $cass0->waitUntilSucceeds("nodetool describecluster -p ${jmxPortS} | grep 'Name: ${clusterName}'");
}; };
subtest "Heap limit set correctly", sub { subtest "Heap limit set correctly", sub {
# Nodetool takes a while until it can display info # Nodetool takes a while until it can display info
$cass0->waitUntilSucceeds('nodetool info'); $cass0->waitUntilSucceeds('nodetool info -p ${jmxPortS}');
$cass0->succeed('${checkHeapLimitCommand}'); $cass0->succeed('${checkHeapLimitCommand}');
}; };
# Check cluster interaction # Check cluster interaction
subtest "Bring up cluster", sub { subtest "Bring up cluster", sub {
$cass1->waitForUnit("cassandra.service"); $cass1->waitForUnit("cassandra.service");
$cass1->waitUntilSucceeds("nodetool ${jmxAuthArgs} status | egrep -c '^UN' | grep 2"); $cass1->waitUntilSucceeds("nodetool -p ${jmxPortS} ${jmxAuthArgs} status | egrep -c '^UN' | grep 2");
$cass0->succeed("nodetool status --resolve-ip | egrep '^UN[[:space:]]+cass1'"); $cass0->succeed("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass1'");
}; };
'' + lib.optionalString testRemoteAuth '' '' + lib.optionalString testRemoteAuth ''
subtest "Remote authenticated jmx", sub { subtest "Remote authenticated jmx", sub {
# Doesn't work if not enabled # Doesn't work if not enabled
$cass0->waitUntilSucceeds("nc -z localhost 7199"); $cass0->waitUntilSucceeds("nc -z localhost ${jmxPortS}");
$cass1->fail("nc -z 192.168.1.1 7199"); $cass1->fail("nc -z 192.168.1.1 ${toString jmxPort}");
$cass1->fail("nodetool -h 192.168.1.1 status"); $cass1->fail("nodetool -p ${jmxPortS} -h 192.168.1.1 status");
# Works if enabled # Works if enabled
$cass1->waitUntilSucceeds("nc -z localhost 7199"); $cass1->waitUntilSucceeds("nc -z localhost ${toString jmxPort}");
$cass0->succeed("nodetool -h 192.168.1.2 ${jmxAuthArgs} status"); $cass0->succeed("nodetool -p ${jmxPortS} -h 192.168.1.2 ${jmxAuthArgs} status");
}; };
'' + '' '' + ''
subtest "Break and fix node", sub { subtest "Break and fix node", sub {
$cass1->block; $cass1->block;
$cass0->waitUntilSucceeds("nodetool status --resolve-ip | egrep -c '^DN[[:space:]]+cass1'"); $cass0->waitUntilSucceeds("nodetool status -p ${jmxPortS} --resolve-ip | egrep -c '^DN[[:space:]]+cass1'");
$cass0->succeed("nodetool status | egrep -c '^UN' | grep 1"); $cass0->succeed("nodetool status -p ${jmxPortS} | egrep -c '^UN' | grep 1");
$cass1->unblock; $cass1->unblock;
$cass1->waitUntilSucceeds("nodetool ${jmxAuthArgs} status | egrep -c '^UN' | grep 2"); $cass1->waitUntilSucceeds("nodetool -p ${jmxPortS} ${jmxAuthArgs} status | egrep -c '^UN' | grep 2");
$cass0->succeed("nodetool status | egrep -c '^UN' | grep 2"); $cass0->succeed("nodetool status -p ${jmxPortS} | egrep -c '^UN' | grep 2");
}; };
subtest "Replace crashed node", sub { subtest "Replace crashed node", sub {
$cass1->crash; $cass1->crash;
$cass2->waitForUnit("cassandra.service"); $cass2->waitForUnit("cassandra.service");
$cass0->waitUntilFails("nodetool status --resolve-ip | egrep '^UN[[:space:]]+cass1'"); $cass0->waitUntilFails("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass1'");
$cass0->waitUntilSucceeds("nodetool status --resolve-ip | egrep '^UN[[:space:]]+cass2'"); $cass0->waitUntilSucceeds("nodetool status -p ${jmxPortS} --resolve-ip | egrep '^UN[[:space:]]+cass2'");
}; };
''; '';
}) })

26
nixos/tests/initdb.nix Normal file
View File

@ -0,0 +1,26 @@
let
pkgs = import <nixpkgs> { };
in
with import <nixpkgs/nixos/lib/testing.nix> { inherit pkgs; system = builtins.currentSystem; };
with pkgs.lib;
makeTest {
name = "pg-initdb";
machine = {...}:
{
documentation.enable = false;
services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql_9_6;
environment.pathsToLink = [
"/share/postgresql"
];
};
testScript = ''
$machine->start;
$machine->succeed("sudo -u postgres initdb -D /tmp/testpostgres2");
$machine->shutdown;
'';
}

View File

@ -19,7 +19,7 @@ import ./make-test.nix ({ pkgs, ...} : {
services.mysql.initialScript = pkgs.writeText "mysql-init.sql" '' services.mysql.initialScript = pkgs.writeText "mysql-init.sql" ''
CREATE USER 'passworduser'@'localhost' IDENTIFIED BY 'password123'; CREATE USER 'passworduser'@'localhost' IDENTIFIED BY 'password123';
''; '';
services.mysql.package = pkgs.mysql; services.mysql.package = pkgs.mysql57;
}; };
mariadb = mariadb =

View File

@ -0,0 +1,50 @@
{ stdenv, fetchurl, makeDesktopItem, makeWrapper, appimage-run }:
stdenv.mkDerivation rec {
pname = "ledger-live-desktop";
version = "1.12.0";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
sha256 = "0sn0ri8kqvy36d6vjwsb0mh54nwic58416m6q5drl1schsn6wyvj";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ appimage-run ];
desktopIcon = fetchurl {
url = "https://raw.githubusercontent.com/LedgerHQ/${pname}/v${version}/build/icon.png";
sha256 = "1mmfaf0yk7xf1kgbs3ka8wsbz1qgh60xj6z91ica1i7lw2qbdd5h";
};
desktopItem = makeDesktopItem {
name = pname;
exec = "${placeholder "out"}/bin/${pname}";
icon = pname;
desktopName = "Ledger Live";
categories = "Utility;";
};
unpackPhase = ":";
installPhase = ''
runHook preInstall
${desktopItem.buildCommand}
install -D $src $out/share/${src.name}
install -Dm -x ${desktopIcon} \
$out/share/icons/hicolor/1024x1024/apps/${pname}.png
makeWrapper ${appimage-run}/bin/appimage-run $out/bin/${pname} \
--add-flags $out/share/${src.name}
runHook postInstall
'';
meta = with stdenv.lib; {
description = "Wallet app for Ledger Nano S and Ledger Blue";
homepage = "https://www.ledger.com/live";
license = licenses.mit;
maintainers = with maintainers; [ thedavidmeister ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "lnd"; pname = "lnd";
version = "0.7.0-beta"; version = "0.7.1-beta";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lightningnetwork"; owner = "lightningnetwork";
repo = "lnd"; repo = "lnd";
rev = "v${version}"; rev = "v${version}";
sha256 = "0d6m1vfy33rg6d7qmkpydiypav1girxsnxan9njyjz0vhinmq0sx"; sha256 = "1c0sm0lavdai4w6d283q54knggw9d42vvqmglnv2h9swbw1l23ry";
}; };
modSha256 = "0akxi7xhyz7xx0vc003abidva02sp940cc2gfjg4fmzkc95cajc9"; modSha256 = "13hjaf4bswk8g57lyxzdlqqp4a6ddl3qm6n4jja4b1h58mlbil73";
meta = with lib; { meta = with lib; {
description = "Lightning Network Daemon"; description = "Lightning Network Daemon";

View File

@ -25,13 +25,13 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "monero-gui-${version}"; name = "monero-gui-${version}";
version = "0.14.1.0"; version = "0.14.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "monero-project"; owner = "monero-project";
repo = "monero-gui"; repo = "monero-gui";
rev = "v${version}"; rev = "v${version}";
sha256 = "0ilx47771faygf97wilm64xnqxgxa3b43q0g9v014npk0qj8pc31"; sha256 = "1rm043r6y2mzy8pclnzbjjfxgps8pkfa2b92p66k8y8rdmgq6m1k";
}; };
nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ]; nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
@ -48,7 +48,6 @@ stdenv.mkDerivation rec {
patches = [ patches = [
./move-log-file.patch ./move-log-file.patch
./move-translations-dir.patch
]; ];
postPatch = '' postPatch = ''
@ -83,10 +82,6 @@ stdenv.mkDerivation rec {
mkdir -p $out/share/applications mkdir -p $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications cp ${desktopItem}/share/applications/* $out/share/applications
# install translations
mkdir -p $out/share/translations
cp translations/*.qm $out/share/translations/
# install icons # install icons
for n in 16 24 32 48 64 96 128 256; do for n in 16 24 32 48 64 96 128 256; do
size=$n"x"$n size=$n"x"$n
@ -100,7 +95,8 @@ stdenv.mkDerivation rec {
description = "Private, secure, untraceable currency"; description = "Private, secure, untraceable currency";
homepage = https://getmonero.org/; homepage = https://getmonero.org/;
license = licenses.bsd3; license = licenses.bsd3;
platforms = [ "x86_64-linux" ]; platforms = platforms.all;
badPlatforms = platforms.darwin;
maintainers = with maintainers; [ rnhmjoj ]; maintainers = with maintainers; [ rnhmjoj ];
}; };
} }

View File

@ -13,18 +13,3 @@ index a51568d..5a9f683 100644
parser.addOption(logPathOption); parser.addOption(logPathOption);
parser.addHelpOption(); parser.addHelpOption();
parser.process(app); parser.process(app);
diff --git a/Logger.cpp b/Logger.cpp
index 6b1daba..c357762 100644
--- a/Logger.cpp
+++ b/Logger.cpp
@@ -28,8 +28,8 @@ static const QString defaultLogName = "monero-wallet-gui.log";
static const QString appFolder = "Library/Logs";
#else // linux + bsd
//HomeLocation = "~"
- static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::HomeLocation).at(0);
- static const QString appFolder = ".bitmonero";
+ static const QString osPath = QStandardPaths::standardLocations(QStandardPaths::CacheLocation).at(0);
+ static const QString appFolder = "bitmonero";
#endif

View File

@ -1,13 +0,0 @@
diff --git a/TranslationManager.cpp b/TranslationManager.cpp
index e7fc52a..83534cc 100644
--- a/TranslationManager.cpp
+++ b/TranslationManager.cpp
@@ -25,7 +25,7 @@ bool TranslationManager::setLanguage(const QString &language)
return true;
}
- QString dir = qApp->applicationDirPath() + "/translations";
+ QString dir = qApp->applicationDirPath() + "/../share/translations";
QString filename = "monero-core_" + language;
qDebug("%s: loading translation file '%s' from '%s'",

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, vlc { mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig, vlc
, qtbase, qtmultimedia, qtsvg, qttools , qtbase, qtmultimedia, qtsvg, qttools
# Cantata doesn't build with cdparanoia enabled so we disable that # Cantata doesn't build with cdparanoia enabled so we disable that
@ -35,7 +35,7 @@ let
withUdisks = (withTaglib && withDevices); withUdisks = (withTaglib && withDevices);
in stdenv.mkDerivation rec { in mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
@ -46,20 +46,20 @@ in stdenv.mkDerivation rec {
}; };
buildInputs = [ vlc qtbase qtmultimedia qtsvg ] buildInputs = [ vlc qtbase qtmultimedia qtsvg ]
++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ] ++ lib.optionals withTaglib [ taglib taglib_extras ]
++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ] ++ lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
++ stdenv.lib.optional withCdda cdparanoia ++ lib.optional withCdda cdparanoia
++ stdenv.lib.optional withCddb libcddb ++ lib.optional withCddb libcddb
++ stdenv.lib.optional withLame lame ++ lib.optional withLame lame
++ stdenv.lib.optional withMtp libmtp ++ lib.optional withMtp libmtp
++ stdenv.lib.optional withMusicbrainz libmusicbrainz5 ++ lib.optional withMusicbrainz libmusicbrainz5
++ stdenv.lib.optional withUdisks udisks2; ++ lib.optional withUdisks udisks2;
nativeBuildInputs = [ cmake pkgconfig qttools ]; nativeBuildInputs = [ cmake pkgconfig qttools ];
enableParallelBuilding = true; enableParallelBuilding = true;
cmakeFlags = stdenv.lib.flatten [ cmakeFlags = lib.flatten [
(fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ]) (fstats withTaglib [ "TAGLIB" "TAGLIB_EXTRAS" ])
(fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ]) (fstats withReplaygain [ "FFMPEG" "MPG123" "SPEEXDSP" ])
(fstat withCdda "CDPARANOIA") (fstat withCdda "CDPARANOIA")
@ -76,7 +76,7 @@ in stdenv.mkDerivation rec {
"-DENABLE_HTTPS_SUPPORT=ON" "-DENABLE_HTTPS_SUPPORT=ON"
]; ];
meta = with stdenv.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;

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, makeWrapper, chromaprint { stdenv, mkDerivation, fetchFromGitHub, chromaprint
, fftw, flac, faad2, glibcLocales, mp4v2 , fftw, flac, faad2, glibcLocales, mp4v2
, libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis , libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis
, libGLU, libxcb, lilv, lv2, opusfile , libGLU, libxcb, lilv, lv2, opusfile
@ -6,7 +6,7 @@
, qtx11extras, rubberband, scons, sqlite, taglib, upower, vampSDK , qtx11extras, rubberband, scons, sqlite, taglib, upower, vampSDK
}: }:
stdenv.mkDerivation rec { mkDerivation rec {
name = "mixxx-${version}"; name = "mixxx-${version}";
version = "2.2.1"; version = "2.2.1";
@ -17,8 +17,6 @@ stdenv.mkDerivation rec {
sha256 = "1q6c2wfpprsx7s7nz1w0mhm2yhikj54jxcv61kwylxx3n5k2na9r"; sha256 = "1q6c2wfpprsx7s7nz1w0mhm2yhikj54jxcv61kwylxx3n5k2na9r";
}; };
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ buildInputs = [
chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout libsndfile chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout libsndfile
libusb1 libvorbis libxcb libGLU lilv lv2 opusfile pkgconfig portaudio portmidi protobuf qtbase qtscript qtsvg libusb1 libvorbis libxcb libGLU lilv lv2 opusfile pkgconfig portaudio portmidi protobuf qtbase qtscript qtsvg
@ -34,10 +32,9 @@ stdenv.mkDerivation rec {
"opus=1" "opus=1"
]; ];
fixupPhase = '' qtWrapperArgs = [
wrapProgram $out/bin/mixxx \ "--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive"
--set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive; ];
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://mixxx.org; homepage = https://mixxx.org;

View File

@ -24,13 +24,13 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "pulseaudio-modules-bt-${version}"; name = "pulseaudio-modules-bt-${version}";
version = "1.1.99"; version = "1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "EHfive"; owner = "EHfive";
repo = "pulseaudio-modules-bt"; repo = "pulseaudio-modules-bt";
rev = "v${version}"; rev = "v${version}";
sha256 = "0x670xbd62r3fs9a8pa5p4ppvxn6m64hvlrqa702gvikcvyrmwcg"; sha256 = "00xmidcw4fvpbmg0nsm2gk5zw26fpyjbc0pjk6mzr570zbnyqqbn";
}; };
patches = [ patches = [

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }: { stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
stdenv.mkDerivation rec { mkDerivation rec {
version = "0.5.8"; version = "0.5.9";
name = "qjackctl-${version}"; name = "qjackctl-${version}";
# some dependencies such as killall have to be installed additionally # some dependencies such as killall have to be installed additionally
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qjackctl/${name}.tar.gz"; url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
sha256 = "1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n"; sha256 = "1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk";
}; };
buildInputs = [ buildInputs = [

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }: { stdenv, fetchurl, pkgconfig, qt5, alsaLib, libjack2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.5.4"; version = "0.5.5";
name = "qmidinet-${version}"; name = "qmidinet-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qmidinet/${name}.tar.gz"; url = "mirror://sourceforge/qmidinet/${name}.tar.gz";
sha256 = "1il4b8v3azb33yg4fy78npi56xlkz4n60f17sgvckyxb2yj57jwq"; sha256 = "0az20hh14g7k6h779dk1b6fshxnfj2664sj6ypgllzriwv430x9y";
}; };
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qsampler-${version}"; name = "qsampler-${version}";
version = "0.5.5"; version = "0.5.6";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qsampler/${name}.tar.gz"; url = "mirror://sourceforge/qsampler/${name}.tar.gz";
sha256 = "1li2p8zknrdr62wlaassfvgski0rlbr3lvrzywbh32dq8j50w8zf"; sha256 = "0lx2mzyajmjckwfvgf8p8bahzpj0n0lflyip41jk32nwd2hzjhbs";
}; };
nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ]; nativeBuildInputs = [ autoconf automake libtool pkgconfig qttools ];

View File

@ -1,20 +1,21 @@
{ alsaLib, autoconf, automake, dssi, fetchurl, libjack2 { alsaLib, autoconf, automake, dssi, fetchurl, libjack2
, ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile , ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
, libtool, libvorbis, lilv, lv2, pkgconfig, qttools, qtbase, rubberband, serd , libtool, libvorbis, lilv, lv2, pkgconfig, qttools, qtbase, rubberband, serd
, sord, sratom, stdenv, suil }: , sord, sratom, stdenv, suil, wrapQtAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "qtractor"; pname = "qtractor";
version = "0.9.8"; version = "0.9.9";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz"; url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
sha256 = "1llajl450yh7bka32ngm4xdva6a2nnxzjc497ydh07rwkap16smx"; sha256 = "0qlbccdxyfy0f09y6qg1xkg12fm67bf2f2c27c22cg8lzk9ang5j";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
autoconf automake libtool pkgconfig qttools autoconf automake libtool pkgconfig qttools wrapQtAppsHook
]; ];
buildInputs = buildInputs =
[ alsaLib dssi libjack2 ladspaH [ alsaLib dssi libjack2 ladspaH
ladspaPlugins liblo libmad libsamplerate libsndfile libtool ladspaPlugins liblo libmad libsamplerate libsndfile libtool

View File

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

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype { fetchurl, stdenv, squashfsTools, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify , glib, pango, cairo, atk, gdk-pixbuf, gtk2, cups, nspr, nss, libpng, libnotify
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3 , libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_3, curl, zlib, gnome3
, at-spi2-atk, at-spi2-core, apulse , at-spi2-atk
}: }:
let let
@ -10,22 +10,20 @@ let
# If an update breaks things, one of those might have valuable info: # If an update breaks things, one of those might have valuable info:
# https://aur.archlinux.org/packages/spotify/ # https://aur.archlinux.org/packages/spotify/
# https://community.spotify.com/t5/Desktop-Linux # https://community.spotify.com/t5/Desktop-Linux
version = "1.1.10.546.ge08ef575-19"; version = "1.0.96.181.gf6bc1b6b-12";
# To get the latest stable revision: # To get the latest stable revision:
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated' # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
# To get general information: # To get general information:
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.' # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
# More examples of api usage: # More examples of api usage:
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
rev = "36"; rev = "30";
deps = [ deps = [
alsaLib alsaLib
apulse
atk atk
at-spi2-atk at-spi2-atk
at-spi2-core
cairo cairo
cups cups
curl curl
@ -74,7 +72,7 @@ stdenv.mkDerivation {
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334 # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
src = fetchurl { src = fetchurl {
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap"; url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
sha512 = "c49f1a86a9b737e64a475bbe62754a36f607669e908eb725a2395f0a0a6b95968e0c8ce27ab2c8b6c92fe8cbacb1ef58de11c79b92dc0f58c2c6d3a140706a1f"; sha512 = "859730fbc80067f0828f7e13eee9a21b13b749f897a50e17c2da4ee672785cfd79e1af6336e609529d105e040dc40f61b6189524783ac93d49f991c4ea8b3c56";
}; };
buildInputs = [ squashfsTools makeWrapper ]; buildInputs = [ squashfsTools makeWrapper ];
@ -136,8 +134,6 @@ stdenv.mkDerivation {
librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir" librarypath="${stdenv.lib.makeLibraryPath deps}:$libdir"
wrapProgram $out/share/spotify/spotify \ wrapProgram $out/share/spotify/spotify \
--prefix LD_LIBRARY_PATH : "$librarypath" \ --prefix LD_LIBRARY_PATH : "$librarypath" \
--prefix LD_LIBRARY_PATH : "${apulse}/lib/apulse" \
--set APULSE_PLAYBACK_DEVICE plug:dmix \
--prefix PATH : "${gnome3.zenity}/bin" --prefix PATH : "${gnome3.zenity}/bin"
# fix Icon line in the desktop file (#48062) # fix Icon line in the desktop file (#48062)
@ -162,7 +158,7 @@ stdenv.mkDerivation {
homepage = https://www.spotify.com/; homepage = https://www.spotify.com/;
description = "Play music from the Spotify music service"; description = "Play music from the Spotify music service";
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau angristan ]; maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
} }

View File

@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
sha256 = "1iybk9xrrvhrcl2xl5r2xhyn1ydhrgwnnb8ldhsw5c16b32z03q1"; sha256 = "1iybk9xrrvhrcl2xl5r2xhyn1ydhrgwnnb8ldhsw5c16b32z03q1";
}; };
cargoSha256 = "0879p1h32259schmy8j3xnwpw3sw80f8mrj8s6b5aihi3yyzz521"; cargoSha256 = "1dzg4sb95ixjfhx6n4w2rgrq4481vw01nsdrbm746mz7nm71csk3";
cargoBuildFlags = [ cargoBuildFlags = [
"--no-default-features" "--no-default-features"

View File

@ -5,13 +5,18 @@
let let
glfw-git = glfw.overrideAttrs (oldAttrs: rec { glfw-git = glfw.overrideAttrs (oldAttrs: rec {
name = "glfw-git-${version}"; name = "glfw-git-${version}";
version = "unstable-2018-05-29"; version = "2019-06-30";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "glfw"; owner = "AndrewBelt";
repo = "glfw"; repo = "glfw";
rev = "0be4f3f75aebd9d24583ee86590a38e741db0904"; rev = "d9ab59efc781c392128a449361a381fcc93cf6f3";
sha256 = "0zbcjgc7ks25yi949k0wjknfl00a4dqmz45mhp00k62vlq2sj0i5"; sha256 = "1ykkq6qq8y6j5hlfj2zp1p87kr33vwhywziprz20v5avx1q7rjm8";
}; };
# We patch the source to export a function that was added to the glfw fork
# for Rack so it is present when we build glfw as a shared library.
# See https://github.com/AndrewBelt/glfw/pull/1 for discussion of this issue
# with upstream.
patches = [ ./glfw.patch ];
buildInputs = oldAttrs.buildInputs ++ [ libXext libXi ]; buildInputs = oldAttrs.buildInputs ++ [ libXext libXi ];
}); });
pfft-source = fetchFromBitbucket { pfft-source = fetchFromBitbucket {
@ -23,32 +28,31 @@ let
in in
with stdenv.lib; stdenv.mkDerivation rec { with stdenv.lib; stdenv.mkDerivation rec {
name = "VCV-Rack-${version}"; name = "VCV-Rack-${version}";
version = "0.6.2b"; version = "1.1.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "VCVRack"; owner = "VCVRack";
repo = "Rack"; repo = "Rack";
rev = "v${version}"; rev = "v${version}";
sha256 = "17ynhxcci6dyn1yi871fd8yli4924fh12pmk510djwkcj5crhas6"; sha256 = "16q3x0jpwkdwwvh7rn472w7nfjf81s10z9c7bx011kk7rgk88hh2";
fetchSubmodules = true; fetchSubmodules = true;
}; };
patches = [ ./rack-minimize-vendoring.patch ];
prePatch = '' prePatch = ''
ln -s ${pfft-source} dep/jpommier-pffft-source cp -r ${pfft-source} dep/jpommier-pffft-source
mkdir -p dep/include mkdir -p dep/include
cp dep/jpommier-pffft-source/*.h dep/include cp dep/jpommier-pffft-source/*.h dep/include
cp dep/nanosvg/src/*.h dep/include cp dep/nanosvg/**/*.h dep/include
cp dep/nanovg/src/*.h dep/include cp dep/nanovg/src/*.h dep/include
cp dep/osdialog/*.h dep/include cp dep/osdialog/*.h dep/include
cp dep/oui-blendish/*.h dep/include cp dep/oui-blendish/*.h dep/include
substituteInPlace include/audio.hpp --replace "<RtAudio.h>" "<rtaudio/RtAudio.h>" substituteInPlace include/audio.hpp --replace "<RtAudio.h>" "<rtaudio/RtAudio.h>"
substituteInPlace compile.mk --replace "-march=nocona" "" substituteInPlace compile.mk --replace "-march=nocona" ""
substituteInPlace Makefile \
--replace "-Wl,-Bstatic" "" \
--replace "-lglfw3" "-lglfw"
''; '';
enableParallelBuilding = true; enableParallelBuilding = true;
@ -60,13 +64,12 @@ with stdenv.lib; stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
install -D -m755 -t $out/bin Rack install -D -m755 -t $out/bin Rack
cp -r res $out/
mkdir -p $out/share/rack mkdir -p $out/share/vcv-rack
cp LICENSE.txt LICENSE-dist.txt $out/share/rack cp -r res Core.json template.vcv LICENSE* cacert.pem $out/share/vcv-rack
# Override the default global resource file directory # Override the default global resource file directory
wrapProgram $out/bin/Rack --add-flags "-g $out" wrapProgram $out/bin/Rack --add-flags "-s $out/share/vcv-rack"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,13 @@
diff --git a/src/init.c b/src/init.c
index af4a579e..317e25b8 100644
--- a/src/init.c
+++ b/src/init.c
@@ -339,7 +339,7 @@ GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
char glfwOpenedFilename[1024];
-const char *glfwGetOpenedFilename()
+GLFWAPI const char *glfwGetOpenedFilename()
{
if (glfwOpenedFilename[0])
{

View File

@ -0,0 +1,14 @@
diff -ru a/Makefile b/Makefile
--- a/Makefile 1970-01-01 01:00:01.000000000 +0100
+++ b/Makefile 1970-01-01 01:00:01.000000000 +0100
@@ -21,8 +21,8 @@
build/dep/osdialog/osdialog_gtk2.c.o: FLAGS += $(shell pkg-config --cflags gtk+-2.0)
LDFLAGS += -rdynamic \
- dep/lib/libglfw3.a dep/lib/libGLEW.a dep/lib/libjansson.a dep/lib/libspeexdsp.a dep/lib/libzip.a dep/lib/libz.a dep/lib/librtmidi.a dep/lib/librtaudio.a dep/lib/libcurl.a dep/lib/libssl.a dep/lib/libcrypto.a \
- -lpthread -lGL -ldl -lX11 -lasound -ljack \
+ -lGLEW -ljansson -lspeexdsp -lzip -lz -lrtmidi -lrtaudio -lcurl -lssl -lcrypto \
+ -lpthread -lGL -ldl -lX11 -lasound -ljack -lglfw \
$(shell pkg-config --libs gtk+-2.0)
TARGET := Rack
endif

View File

@ -13,9 +13,9 @@ let
sha256Hash = "090rc307mfm0yw4h592l9307lq4aas8zq0ci49csn6kxhds8rsrm"; sha256Hash = "090rc307mfm0yw4h592l9307lq4aas8zq0ci49csn6kxhds8rsrm";
}; };
betaVersion = { betaVersion = {
version = "3.5.0.18"; # "Android Studio 3.5 RC 1" version = "3.5.0.19"; # "Android Studio 3.5 RC 2"
build = "191.5717577"; build = "191.5763348";
sha256Hash = "1p0w7xrfk33m1wvwnc3s3s7w9rm8wn9b3bjn566w2qpjv5ngdkn3"; sha256Hash = "0z7mjpk0cqwk4ysd3cdsahlg70ax90353qvvag9wgyzl2x2sr6d2";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.6.0.3"; # "Android Studio 3.6 Canary 3" version = "3.6.0.3"; # "Android Studio 3.6 Canary 3"

View File

@ -50,4 +50,4 @@ self:
elpaPackages = super // overrides; elpaPackages = super // overrides;
in elpaPackages // { inherit elpaBuild elpaPackages; } in elpaPackages // { inherit elpaBuild; }

View File

@ -1,57 +0,0 @@
{ stdenv, fetchFromGitHub, cmake, emacs, libvterm-neovim }:
let
emacsSources = stdenv.mkDerivation {
name = emacs.name + "-sources";
src = emacs.src;
dontConfigure = true;
dontBuild = true;
doCheck = false;
fixupPhase = ":";
installPhase = ''
mkdir -p $out
cp -a * $out
'';
};
libvterm = libvterm-neovim.overrideAttrs(old: rec {
pname = "libvterm-neovim";
version = "2019-04-27";
name = pname + "-" + version;
src = fetchFromGitHub {
owner = "neovim";
repo = "libvterm";
rev = "89675ffdda615ffc3f29d1c47a933f4f44183364";
sha256 = "0l9ixbj516vl41v78fi302ws655xawl7s94gmx1kb3fmfgamqisy";
};
});
in stdenv.mkDerivation rec {
name = "emacs-libvterm-${version}";
version = "unstable-2019-07-22";
src = fetchFromGitHub {
owner = "akermu";
repo = "emacs-libvterm";
rev = "301fe9fdfd5fb2496c8428a11e0812fd8a4c0820";
sha256 = "0i1hn5gcxayqcbjrnpgczvbicq2vsyn59646ary3crs0mz9wlbpr";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ emacs libvterm ];
cmakeFlags = [
"-DEMACS_SOURCE=${emacsSources}"
"-DUSE_SYSTEM_LIBVTERM=True"
];
installPhase = ''
install -d $out/share/emacs/site-lisp
install ../*.el $out/share/emacs/site-lisp
install ../*.so $out/share/emacs/site-lisp
'';
}

View File

@ -0,0 +1,145 @@
{ lib, external, pkgs }: self: with self; with lib.licenses; {
elisp-ffi = melpaBuild rec {
pname = "elisp-ffi";
version = "1.0.0";
src = pkgs.fetchFromGitHub {
owner = "skeeto";
repo = "elisp-ffi";
rev = "${version}";
sha256 = "0z2n3h5l5fj8wl8i1ilfzv11l3zba14sgph6gz7dx7q12cnp9j22";
};
buildInputs = [ external.libffi ];
preBuild = "make";
recipe = pkgs.writeText "recipe" ''
(elisp-ffi
:repo "skeeto/elisp-ffi"
:fetcher github
:files ("ffi-glue" "ffi.el"))
'';
meta = {
description = "Emacs Lisp Foreign Function Interface";
longDescription = ''
This library provides an FFI for Emacs Lisp so that Emacs
programs can invoke functions in native libraries. It works by
driving a subprocess to do the heavy lifting, passing result
values on to Emacs.
'';
license = publicDomain;
};
};
agda2-mode = with external; trivialBuild {
pname = "agda-mode";
version = Agda.version;
phases = [ "buildPhase" "installPhase" ];
# already byte-compiled by Agda builder
buildPhase = ''
agda=`${Agda}/bin/agda-mode locate`
cp `dirname $agda`/*.el* .
'';
meta = {
description = "Agda2-mode for Emacs extracted from Agda package";
longDescription = ''
Wrapper packages that liberates init.el from `agda-mode locate` magic.
Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
'';
homepage = Agda.meta.homepage;
license = Agda.meta.license;
};
};
ess-R-object-popup =
callPackage ./ess-R-object-popup { };
filesets-plus = callPackage ./filesets-plus { };
font-lock-plus = callPackage ./font-lock-plus { };
ghc-mod = melpaBuild rec {
pname = "ghc";
version = external.ghc-mod.version;
src = external.ghc-mod.src;
packageRequires = [ haskell-mode ];
propagatedUserEnvPkgs = [ external.ghc-mod ];
recipe = pkgs.writeText "recipe" ''
(ghc-mod :repo "DanielG/ghc-mod" :fetcher github :files ("elisp/*.el"))
'';
fileSpecs = [ "elisp/*.el" ];
meta = {
description = "An extension of haskell-mode that provides completion of symbols and documentation browsing";
license = bsd3;
};
};
haskell-unicode-input-method = melpaBuild rec {
pname = "emacs-haskell-unicode-input-method";
version = "20110905.2307";
src = pkgs.fetchFromGitHub {
owner = "roelvandijk";
repo = "emacs-haskell-unicode-input-method";
rev = "d8d168148c187ed19350bb7a1a190217c2915a63";
sha256 = "09b7bg2s9aa4s8f2kdqs4xps3jxkq5wsvbi87ih8b6id38blhf78";
};
recipe = pkgs.writeText "recipe" ''
(haskell-unicode-input-method
:repo "roelvandijk/emacs-haskell-unicode-input-method"
:fetcher github)
'';
packageRequires = [];
meta = {
homepage = "https://melpa.org/#haskell-unicode-input-method/";
license = lib.licenses.free;
};
};
hexrgb = callPackage ./hexrgb { };
header2 = callPackage ./header2 { };
helm-words = callPackage ./helm-words { };
icicles = callPackage ./icicles { };
rtags = melpaBuild rec {
inherit (external.rtags) version src meta;
pname = "rtags";
dontConfigure = true;
propagatedUserEnvPkgs = [ external.rtags ];
recipe = pkgs.writeText "recipe" ''
(rtags
:repo "andersbakken/rtags" :fetcher github
:files ("src/*.el"))
'';
};
lib-requires =
callPackage ./lib-requires { };
org-mac-link =
callPackage ./org-mac-link { };
perl-completion =
callPackage ./perl-completion { };
railgun = callPackage ./railgun { };
gn = callPackage ./gn { };
structured-haskell-mode = self.shm;
thingatpt-plus = callPackage ./thingatpt-plus { };
tramp = callPackage ./tramp { };
yaoddmuse = callPackage ./yaoddmuse { };
zeitgeist = callPackage ./zeitgeist { };
}

View File

@ -12,37 +12,34 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
*/ */
{ lib, external }: { lib, external, pkgs }: variant: self: let
self: dontConfigure = pkg: if pkg != null then pkg.override (args: {
let
inherit (import ./libgenerated.nix lib self) melpaDerivation;
imported = lib.listToAttrs (map (melpaDerivation "unstable")
(lib.importJSON ./recipes-archive-melpa.json));
super = builtins.removeAttrs imported [
"swbuff-x" # required dependency swbuff is missing
];
dontConfigure = pkg: pkg.override (args: {
melpaBuild = drv: args.melpaBuild (drv // { melpaBuild = drv: args.melpaBuild (drv // {
configureScript = "true"; configureScript = "true";
}); });
}); }) else null;
markBroken = pkg: pkg.override (args: { markBroken = pkg: if pkg != null then pkg.override (args: {
melpaBuild = drv: args.melpaBuild (drv // { melpaBuild = drv: args.melpaBuild (drv // {
meta = (drv.meta or {}) // { broken = true; }; meta = (drv.meta or {}) // { broken = true; };
}); });
}); }) else null;
overrides = { generateMelpa = lib.makeOverridable ({
archiveJson ? ./recipes-archive-melpa.json
}: let
inherit (import ./libgenerated.nix lib self) melpaDerivation;
super = lib.listToAttrs (map (melpaDerivation variant) (lib.importJSON archiveJson));
generic = import ./melpa-generic.nix;
overrides = rec {
shared = {
# Expects bash to be at /bin/bash # Expects bash to be at /bin/bash
ac-rtags = markBroken super.ac-rtags; ac-rtags = markBroken super.ac-rtags;
# upstream issue: mismatched filename
ack-menu = markBroken super.ack-menu;
airline-themes = super.airline-themes.override { airline-themes = super.airline-themes.override {
inherit (self.melpaPackages) powerline; inherit (self.melpaPackages) powerline;
}; };
@ -60,22 +57,12 @@ self:
inherit (self.melpaPackages) easy-kill; inherit (self.melpaPackages) easy-kill;
}; };
editorconfig = super.editorconfig.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
});
egg = super.egg.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
# upstream issue: missing file header # upstream issue: missing file header
elmine = markBroken super.elmine; elmine = markBroken super.elmine;
ess-R-data-view = super.ess-R-data-view.override { elpy = super.elpy.overrideAttrs(old: {
inherit (self.melpaPackages) ess ctable popup; propagatedUserEnvPkgs = old.propagatedUserEnvPkgs ++ [ external.elpy ];
}; });
evil-magit = super.evil-magit.overrideAttrs (attrs: { evil-magit = super.evil-magit.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
@ -83,28 +70,26 @@ self:
(attrs.nativeBuildInputs or []) ++ [ external.git ]; (attrs.nativeBuildInputs or []) ++ [ external.git ];
}); });
# missing dependencies ess-R-data-view = super.ess-R-data-view.override {
evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: { inherit (self.melpaPackages) ess ctable popup;
packageRequires = with self; [ evil highlight ]; };
});
# Expects bash to be at /bin/bash # Expects bash to be at /bin/bash
flycheck-rtags = markBroken super.flycheck-rtags; flycheck-rtags = markBroken super.flycheck-rtags;
forge = super.forge.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
# build timeout # build timeout
graphene = markBroken super.graphene; graphene = markBroken super.graphene;
# upstream issue: mismatched filename pdf-tools = super.pdf-tools.overrideAttrs(old: {
helm-lobsters = markBroken super.helm-lobsters; nativeBuildInputs = [ external.pkgconfig ];
buildInputs = with external; old.buildInputs ++ [ autoconf automake libpng zlib poppler ];
# Expects bash to be at /bin/bash preBuild = "make server/epdfinfo";
helm-rtags = markBroken super.helm-rtags; recipe = pkgs.writeText "recipe" ''
(pdf-tools
:repo "politza/pdf-tools" :fetcher github
:files ("lisp/pdf-*.el" "server/epdfinfo"))
'';
});
# Build same version as Haskell package # Build same version as Haskell package
hindent = super.hindent.overrideAttrs (attrs: { hindent = super.hindent.overrideAttrs (attrs: {
@ -118,7 +103,28 @@ self:
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen; ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
# upstream issue: missing file header # upstream issue: missing file header
initsplit = super.initsplit; initsplit = markBroken super.initsplit;
irony = super.irony.overrideAttrs(old: {
preConfigure = ''
cd server
'';
preBuild = ''
make
'';
postInstall = ''
mkdir -p $out
mv $out/share/emacs/site-lisp/elpa/*/server/bin $out
rm -rf $out/share/emacs/site-lisp/elpa/*/server
'';
preCheck = ''
cd source/server
'';
dontUseCmakeBuildDir = true;
doCheck = true;
packageRequires = [ self.emacs ];
nativeBuildInputs = [ external.cmake external.llvmPackages.llvm external.llvmPackages.clang ];
});
# tries to write a log file to $HOME # tries to write a log file to $HOME
insert-shebang = super.insert-shebang.overrideAttrs (attrs: { insert-shebang = super.insert-shebang.overrideAttrs (attrs: {
@ -134,8 +140,7 @@ self:
# upstream issue: missing file header # upstream issue: missing file header
maxframe = markBroken super.maxframe; maxframe = markBroken super.maxframe;
magit = magit = super.magit.overrideAttrs (attrs: {
super.magit.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
nativeBuildInputs = nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ]; (attrs.nativeBuildInputs or []) ++ [ external.git ];
@ -147,6 +152,18 @@ self:
(attrs.nativeBuildInputs or []) ++ [ external.git ]; (attrs.nativeBuildInputs or []) ++ [ external.git ];
}); });
magit-todos = super.magit-todos.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: { magit-gitflow = super.magit-gitflow.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
nativeBuildInputs = nativeBuildInputs =
@ -165,18 +182,13 @@ self:
(attrs.nativeBuildInputs or []) ++ [ external.git ]; (attrs.nativeBuildInputs or []) ++ [ external.git ];
}); });
magit-todos = super.magit-todos.overrideAttrs (attrs: { kubernetes = super.kubernetes.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
nativeBuildInputs = nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ]; (attrs.nativeBuildInputs or []) ++ [ external.git ];
}); });
# upstream issue: missing file header
mhc = super.mhc.override { mhc = super.mhc.override {
inherit (self.melpaPackages) calfw; inherit (self.melpaPackages) calfw;
}; };
@ -190,6 +202,212 @@ self:
# missing OCaml # missing OCaml
ocp-indent = markBroken super.ocp-indent; ocp-indent = markBroken super.ocp-indent;
# upstream issue: missing file header
qiita = markBroken super.qiita;
# upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger;
shm = super.shm.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ external.structured-haskell-mode ];
});
# upstream issue: missing file header
tawny-mode = markBroken super.tawny-mode;
# upstream issue: missing file header
textmate = markBroken super.textmate;
# missing OCaml
utop = markBroken super.utop;
vdiff-magit = super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
# upstream issue: missing file header
voca-builder = markBroken super.voca-builder;
# upstream issue: missing file header
window-numbering = markBroken super.window-numbering;
vterm = let
emacsSources = pkgs.stdenv.mkDerivation {
name = self.emacs.name + "-sources";
src = self.emacs.src;
dontConfigure = true;
dontBuild = true;
doCheck = false;
fixupPhase = ":";
installPhase = ''
mkdir -p $out
cp -a * $out
'';
};
libvterm = pkgs.libvterm-neovim.overrideAttrs(old: rec {
pname = "libvterm-neovim";
version = "2019-04-27";
name = pname + "-" + version;
src = pkgs.fetchFromGitHub {
owner = "neovim";
repo = "libvterm";
rev = "89675ffdda615ffc3f29d1c47a933f4f44183364";
sha256 = "0l9ixbj516vl41v78fi302ws655xawl7s94gmx1kb3fmfgamqisy";
};
});
in pkgs.stdenv.mkDerivation rec {
inherit (super.vterm) name version src;
nativeBuildInputs = [ pkgs.cmake ];
buildInputs = [ self.emacs libvterm ];
cmakeFlags = [
"-DEMACS_SOURCE=${emacsSources}"
"-DUSE_SYSTEM_LIBVTERM=True"
];
installPhase = ''
install -d $out/share/emacs/site-lisp
install ../*.el $out/share/emacs/site-lisp
install ../*.so $out/share/emacs/site-lisp
'';
};
# Legacy alias
emacs-libvterm = shared.vterm;
zmq = super.zmq.overrideAttrs(old: {
stripDebugList = [ "share" ];
preBuild = ''
make
'';
nativeBuildInputs = [
external.autoconf external.automake external.pkgconfig external.libtool
(external.zeromq.override { enableDrafts = true; })
];
postInstall = ''
mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-*
rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src
rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile
'';
});
# Map legacy renames from emacs2nix since code generation was ported to emacs lisp
_0blayout = super."0blayout";
_0xc = super."0xc";
_2048-game = super."2048-game";
_4clojure = super."4clojure";
at = super."@";
desktop-plus = super."desktop+";
ghub-plus = super."ghub+";
git-gutter-plus = super."git-gutter+";
git-gutter-fringe-plus = super."git-gutter-fringe+";
ido-completing-read-plus = super."ido-completing-read+";
image-plus = super."image+";
image-dired-plus = super."image-dired+";
markdown-mode-plus = super."markdown-mode+";
package-plus = super."package+";
rect-plus = super."rect+";
term-plus = super."term+";
term-plus-key-intercept = super."term+key-intercept";
term-plus-mux = super."term+mux";
xml-plus = super."xml+";
};
stable = shared // {
# part of a larger package
# upstream issue: missing package version
cmake-mode = markBroken (dontConfigure super.cmake-mode);
# upstream issue: missing file header
connection = markBroken super.connection;
# upstream issue: missing file header
dictionary = markBroken super.dictionary;
# missing git
egg = markBroken super.egg;
# upstream issue: missing dependency redshank
emr = markBroken super.emr;
# upstream issue: doesn't build
eterm-256color = markBroken super.eterm-256color;
# upstream issue: missing dependency highlight
evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
# upstream issue: missing dependency highlight
floobits = markBroken super.floobits;
# missing OCaml
flycheck-ocaml = markBroken super.flycheck-ocaml;
# upstream issue: missing dependency
fold-dwim-org = markBroken super.fold-dwim-org;
# build timeout
graphene = markBroken super.graphene;
# Expects bash to be at /bin/bash
helm-rtags = markBroken super.helm-rtags;
# upstream issue: missing file header
link = markBroken super.link;
# missing OCaml
merlin = markBroken super.merlin;
# upstream issue: missing file header
po-mode = markBroken super.po-mode;
# upstream issue: truncated file
powershell = markBroken super.powershell;
};
unstable = shared // {
# upstream issue: mismatched filename
ack-menu = markBroken super.ack-menu;
editorconfig = super.editorconfig.overrideAttrs (attrs: {
propagatedUserEnvPkgs = [ external.editorconfig-core-c ];
});
egg = super.egg.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
# missing dependencies
evil-search-highlight-persist = super.evil-search-highlight-persist.overrideAttrs (attrs: {
packageRequires = with self; [ evil highlight ];
});
forge = super.forge.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
# upstream issue: mismatched filename
helm-lobsters = markBroken super.helm-lobsters;
# Expects bash to be at /bin/bash
helm-rtags = markBroken super.helm-rtags;
# Fails with "package does not untar cleanly into ..."
irony = shared.irony.overrideAttrs(old: {
meta = old.meta // {
broken = true;
};
});
orgit = orgit =
(super.orgit.overrideAttrs (attrs: { (super.orgit.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
@ -205,9 +423,6 @@ self:
# upstream issue: mismatched filename # upstream issue: mismatched filename
processing-snippets = markBroken super.processing-snippets; processing-snippets = markBroken super.processing-snippets;
# upstream issue: missing file header
qiita = markBroken super.qiita;
racer = super.racer.overrideAttrs (attrs: { racer = super.racer.overrideAttrs (attrs: {
postPatch = attrs.postPatch or "" + '' postPatch = attrs.postPatch or "" + ''
substituteInPlace racer.el \ substituteInPlace racer.el \
@ -222,39 +437,12 @@ self:
inherit (self.melpaPackages) powerline; inherit (self.melpaPackages) powerline;
}; };
# upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger;
# upstream issue: missing file header
stgit = markBroken super.stgit;
# upstream issue: missing file header
tawny-mode = markBroken super.tawny-mode;
# upstream issue: missing file header
textmate = markBroken super.textmate;
treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: { treemacs-magit = super.treemacs-magit.overrideAttrs (attrs: {
# searches for Git at build time # searches for Git at build time
nativeBuildInputs = nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ]; (attrs.nativeBuildInputs or []) ++ [ external.git ];
}); });
# missing OCaml
utop = markBroken super.utop;
vdiff-magit =
(super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
}));
# upstream issue: missing file header
voca-builder = markBroken super.voca-builder;
# upstream issue: missing file header
window-numbering = markBroken super.window-numbering;
w3m = super.w3m.override (args: { w3m = super.w3m.override (args: {
melpaBuild = drv: args.melpaBuild (drv // { melpaBuild = drv: args.melpaBuild (drv // {
prePatch = prePatch =
@ -265,36 +453,9 @@ self:
''; '';
}); });
}); });
};
# Map legacy renames from emacs2nix since code generation was ported to emacs lisp
_0blayout = super."0blayout";
_0xc = super."0xc";
_2048-game = super."2048-game";
_4clojure = super."4clojure";
at = super."@";
desktop-plus = super."desktop+";
# filesets-plus = super."filesets+";
ghub-plus = super."ghub+";
git-gutter-plus = super."git-gutter+";
git-gutter-fringe-plus = super."git-gutter-fringe+";
ido-completing-read-plus = super."ido-completing-read+";
image-plus = super."image+";
image-dired-plus = super."image-dired+";
markdown-mode-plus = super."markdown-mode+";
package-plus = super."package+";
rect-plus = super."rect+";
term-plus = super."term+";
term-plus-key-intercept = super."term+key-intercept";
term-plus-mux = super."term+mux";
xml-plus = super."xml+";
}; };
melpaPackages = in super // overrides."${variant}");
removeAttrs (super // overrides)
[ in generateMelpa { }
"show-marks" # missing dependency: fm
"lenlen-theme" # missing dependency: color-theme-solarized
];
in
melpaPackages // { inherit melpaPackages; }

View File

@ -1,235 +0,0 @@
/*
# Updating
To update the list of packages from MELPA,
1. Run ./update-melpa
2. Check for evaluation errors:
env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackagesNg.melpaStablePackages
env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPackagesNg.melpaPackages
3. `git commit -m "melpa-packages: $(date -Idate)" recipes-archive-melpa.json`
*/
{ lib, external }:
self:
let
inherit (import ./libgenerated.nix lib self) melpaDerivation;
imported = lib.listToAttrs (map (melpaDerivation "stable")
(lib.importJSON ./recipes-archive-melpa.json));
super = imported;
dontConfigure = pkg: pkg.override (args: {
melpaBuild = drv: args.melpaBuild (drv // {
configureScript = "true";
});
});
markBroken = pkg: if pkg != null then pkg.override (args: {
melpaBuild = drv: args.melpaBuild (drv // {
meta = (drv.meta or {}) // { broken = true; };
});
}) else null;
overrides = {
# Expects bash to be at /bin/bash
ac-rtags = markBroken super.ac-rtags;
airline-themes = super.airline-themes.override {
inherit (self.melpaPackages) powerline;
};
# upstream issue: missing file header
bufshow = markBroken super.bufshow;
# part of a larger package
caml = dontConfigure super.caml;
# part of a larger package
# upstream issue: missing package version
cmake-mode = markBroken (dontConfigure super.cmake-mode);
# Expects bash to be at /bin/bash
company-rtags = markBroken super.company-rtags;
# upstream issue: missing file header
connection = markBroken super.connection;
# upstream issue: missing file header
dictionary = markBroken super.dictionary;
easy-kill-extras = super.easy-kill-extras.override {
inherit (self.melpaPackages) easy-kill;
};
# missing git
egg = markBroken super.egg;
# upstream issue: missing file header
elmine = markBroken super.elmine;
# upstream issue: missing dependency redshank
emr = markBroken super.emr;
ess-R-data-view = super.ess-R-data-view.override {
inherit (self.melpaPackages) ess ctable popup;
};
# upstream issue: doesn't build
eterm-256color = markBroken super.eterm-256color;
# upstream issue: missing dependency highlight
evil-search-highlight-persist = markBroken super.evil-search-highlight-persist;
# upstream issue: missing dependency highlight
floobits = markBroken super.floobits;
# missing OCaml
flycheck-ocaml = markBroken super.flycheck-ocaml;
# Expects bash to be at /bin/bash
flycheck-rtags = markBroken super.flycheck-rtags;
# upstream issue: missing dependency
fold-dwim-org = markBroken super.fold-dwim-org;
# build timeout
graphene = markBroken super.graphene;
# Expects bash to be at /bin/bash
helm-rtags = markBroken super.helm-rtags;
# Build same version as Haskell package
hindent = super.hindent.overrideAttrs (attrs: {
version = external.hindent.version;
src = external.hindent.src;
packageRequires = [ self.haskell-mode ];
propagatedUserEnvPkgs = [ external.hindent ];
});
# upstream issue: missing file header
ido-complete-space-or-hyphen = markBroken super.ido-complete-space-or-hyphen;
# upstream issue: missing file header
initsplit = markBroken super.initsplit;
# upstream issue: recipe fails
insert-shebang = markBroken super.insert-shebang;
# Expects bash to be at /bin/bash
ivy-rtags = markBroken super.ivy-rtags;
# upstream issue: missing file header
jsfmt = markBroken super.jsfmt;
# upstream issue: missing file header
link = markBroken super.link;
# upstream issue: missing file header
maxframe = markBroken super.maxframe;
magit =
(super.magit.override {
# version of magit-popup needs to match magit
# https://github.com/magit/magit/issues/3286
inherit (self.melpaStablePackages) magit-popup;
}).overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
magit-todos = super.magit-todos.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
magit-filenotify = super.magit-filenotify.overrideAttrs (attrs: {
# searches for Git at build time
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
});
# missing OCaml
merlin = markBroken super.merlin;
mhc = super.mhc.override {
inherit (self.melpaPackages) calfw;
};
# missing .NET
nemerle = markBroken super.nemerle;
# part of a larger package
notmuch = dontConfigure super.notmuch;
# missing OCaml
ocp-indent = markBroken super.ocp-indent;
# upstream issue: missing file header
po-mode = markBroken super.po-mode;
# upstream issue: truncated file
powershell = markBroken super.powershell;
# upstream issue: missing file header
qiita = markBroken super.qiita;
# upstream issue: missing file header
speech-tagger = markBroken super.speech-tagger;
# upstream issue: missing file header
stgit = markBroken super.stgit;
# upstream issue: missing file header
tawny-mode = markBroken super.tawny-mode;
# upstream issue: missing file header
textmate = markBroken super.textmate;
# missing OCaml
utop = markBroken super.utop;
vdiff-magit =
(super.vdiff-magit.overrideAttrs (attrs: {
nativeBuildInputs =
(attrs.nativeBuildInputs or []) ++ [ external.git ];
}));
# upstream issue: missing file header
voca-builder = markBroken super.voca-builder;
# upstream issue: missing file header
window-numbering = markBroken super.window-numbering;
# Map legacy renames from emacs2nix since code generation was ported to emacs lisp
_0blayout = super."0blayout";
_0xc = super."0xc";
_2048-game = super."2048-game";
_4clojure = super."4clojure";
at = super."@";
desktop-plus = super."desktop+";
ghub-plus = super."ghub+";
git-gutter-plus = super."git-gutter+";
git-gutter-fringe-plus = super."git-gutter-fringe+";
ido-completing-read-plus = super."ido-completing-read+";
image-plus = super."image+";
image-dired-plus = super."image-dired+";
markdown-mode-plus = super."markdown-mode+";
package-plus = super."package+";
rect-plus = super."rect+";
term-plus = super."term+";
term-plus-key-intercept = super."term+key-intercept";
term-plus-mux = super."term+mux";
xml-plus = super."xml+";
};
melpaStablePackages = super // overrides;
in
melpaStablePackages // { inherit melpaStablePackages; }

View File

@ -1,30 +0,0 @@
{lib, trivialBuild, fetchFromGitHub}:
trivialBuild rec {
pname = "nyan-mode";
version = "20150128";
src = fetchFromGitHub {
owner = "TeMPOraL";
repo = pname;
rev = "41faa2c809da7b2cb3e6f8fadefae3f338ced3f2";
sha256 = "1idaac7sjc8hhbf5zif61ncg1pvg28c0qfihavdx61albww0ll7f";
};
patches = [ ./directory.patch ];
preBuild = ''
substituteInPlace nyan-mode.el \
--replace "@OUT@" "$out/"
'';
postInstall = ''
cp -r img $out
cp -r mus $out
'';
meta = {
description = "An analog indicator of the position in the buffer";
license = lib.licenses.gpl3Plus;
};
}

View File

@ -1,13 +0,0 @@
diff --git a/nyan-mode.el b/nyan-mode.el
index 939a25a..3d0b983 100644
--- a/nyan-mode.el
+++ b/nyan-mode.el
@@ -106,7 +106,7 @@ This can be t or nil."
:group 'nyan)
-(defconst +nyan-directory+ (file-name-directory (or load-file-name buffer-file-name)))
+(defconst +nyan-directory+ "@OUT@")
(defconst +nyan-cat-size+ 3)

View File

@ -28,4 +28,4 @@ self:
orgPackages = super // overrides; orgPackages = super // overrides;
in orgPackages // { inherit orgPackages; } in orgPackages

View File

@ -1,23 +0,0 @@
{ stdenv, fetchgit }:
stdenv.mkDerivation rec {
pname = "redshank";
name = "${pname}-20120510";
src = fetchgit {
url = "http://www.foldr.org/~michaelw/projects/redshank.git";
rev = "f98e68f532e622bcd464292ca4a9cf5fbea14ebb";
sha256 = "1jdkgvd5xy9hl5q611jwah2n05abjp7qcy9sj4k1z11x0ii62b6p";
};
installPhase = ''
mkdir -p $out/share/emacs/site-lisp
cp *.el *.elc $out/share/emacs/site-lisp/
'';
meta = {
description = "Common Lisp Editing Extensions (for Emacs)";
homepage = http://www.foldr.org/~michaelw/emacs/redshank/;
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -1,25 +0,0 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "stgit";
name = "${pname}-2009-10-28";
dontUnpack = true;
src = fetchurl {
url = "https://raw.githubusercontent.com/miracle2k/stgit/master/contrib/stgit.el";
sha256 = "0pl8q480633vdkylr85s7cbd4653xpzwklnxrwm8xhsnvw9d501q";
name = "stgit.el";
};
installPhase = ''
mkdir -p $out/share/emacs/site-lisp
cp $src $out/share/emacs/site-lisp/stgit.el
'';
meta = {
description = "An emacs mode for Stgit";
homepage = http://procode.org/stgit/;
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -1,8 +1,6 @@
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#! nix-shell --show-trace -i sh -p git nix nix-prefetch-git nix-prefetch-hg "import ./updater-emacs.nix" #! nix-shell --show-trace ./updater-emacs.nix -i bash
# "with import ../../../.. {}; emacsWithPackages (epkgs: with epkgs.melpaPackages; [ promise semaphore ])" SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P )"
exec emacs --fg-daemon=updater --quick -l update-melpa.el -f run-updater "$@" exec emacs --fg-daemon=updater --quick -l $SCRIPT_DIR/update-melpa.el -f run-updater "$@"
# exec emacs update-melpa.el "$@"

View File

@ -1,29 +1,40 @@
with import ../../../.. {}; let
(emacsPackagesNgFor emacs26). pkgs = import ../../../.. {};
emacsWithPackages (epkgs: let
emacsEnv = (pkgs.emacsPackagesNgFor pkgs.emacs26).emacsWithPackages (epkgs: let
promise = epkgs.trivialBuild { promise = epkgs.trivialBuild {
pname = "promise"; pname = "promise";
version = "1"; version = "1";
src = fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "bendlas"; owner = "bendlas";
repo = "emacs-promise"; repo = "emacs-promise";
rev = "4da97087c5babbd8429b5ce62a8323b9b03c6022"; rev = "4da97087c5babbd8429b5ce62a8323b9b03c6022";
sha256 = "0yin7kj69g4zxs30pvk47cnfygxlaw7jc7chr3b36lz51yqczjsy"; sha256 = "0yin7kj69g4zxs30pvk47cnfygxlaw7jc7chr3b36lz51yqczjsy";
};
};
};
};
semaphore = epkgs.trivialBuild { semaphore = epkgs.trivialBuild {
pname = "semaphore"; pname = "semaphore";
version = "1"; version = "1";
packageRequires = [ promise ]; packageRequires = [ promise ];
src = fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "webnf"; owner = "webnf";
repo = "semaphore.el"; repo = "semaphore.el";
rev = "93802cb093073bc6a6ccd797328dafffcef248e0"; rev = "93802cb093073bc6a6ccd797328dafffcef248e0";
sha256 = "09pfyp27m35sv340xarhld7xx2vv5fs5xj4418709iw6l6hpk853"; sha256 = "09pfyp27m35sv340xarhld7xx2vv5fs5xj4418709iw6l6hpk853";
};
};
}; in [ promise semaphore ]);
};
in [ promise semaphore ] in pkgs.mkShell {
# ++ (with epkgs.melpaPackages; [ smex rainbow-delimiters paredit ]) buildInputs = [
) pkgs.git
pkgs.nix
pkgs.bash
pkgs.nix-prefetch-git
pkgs.nix-prefetch-hg
emacsEnv
];
}

View File

@ -42,11 +42,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-builder"; pname = "gnome-builder";
version = "3.32.3"; version = "3.32.4";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1vlr69sgiv3kg2qa3n7aw3913bmvlcpyhy3w8lls13wjrgif4wny"; sha256 = "0xip58m206p8wa28p0a3y4ykylzr5xzmirjl3dspg4j25r08i8qr";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -263,12 +263,12 @@ in
datagrip = buildDataGrip rec { datagrip = buildDataGrip rec {
name = "datagrip-${version}"; name = "datagrip-${version}";
version = "2019.1.4"; /* updated by script */ version = "2019.2.1"; /* updated by script */
description = "Your Swiss Army Knife for Databases and SQL"; description = "Your Swiss Army Knife for Databases and SQL";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "0zjcn71fgngkvsixgimzm5afwjbd8zf14zzm6barap4pwp5xx0hb"; /* updated by script */ sha256 = "0va5dcvjxq7mlkz0di5zl1ra5gv6cls3wy40fvkpm2vlirg0m31s"; /* updated by script */
}; };
wmClass = "jetbrains-datagrip"; wmClass = "jetbrains-datagrip";
update-channel = "DataGrip RELEASE"; update-channel = "DataGrip RELEASE";
@ -367,12 +367,12 @@ in
ruby-mine = buildRubyMine rec { ruby-mine = buildRubyMine rec {
name = "ruby-mine-${version}"; name = "ruby-mine-${version}";
version = "2019.1.2"; /* updated by script */ version = "2019.2"; /* updated by script */
description = "The Most Intelligent Ruby and Rails IDE"; description = "The Most Intelligent Ruby and Rails IDE";
license = stdenv.lib.licenses.unfree; license = stdenv.lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
sha256 = "1zhci8nkywv66bwc6hbyh4h3x61qhv2fbmfb5gkw9znkk1qa0q6v"; /* updated by script */ sha256 = "1f4mdarmh7m9jq432d0s9jds9288g0zgpxnlpmx12i26vvq8kykd"; /* updated by script */
}; };
wmClass = "jetbrains-rubymine"; wmClass = "jetbrains-rubymine";
update-channel = "RubyMine RELEASE"; update-channel = "RubyMine RELEASE";

View File

@ -4,12 +4,12 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "kakoune-unwrapped"; pname = "kakoune-unwrapped";
version = "2019.01.20"; version = "2019.07.01";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "kakoune"; repo = "kakoune";
owner = "mawww"; owner = "mawww";
rev = "v${version}"; rev = "v${version}";
sha256 = "04ak1jm7b1i03sx10z3fxw08rn692y2fj482jn5kpzfzj91b2ila"; sha256 = "0jdkldq5rygzc0wcxr1j4fmp2phciy8602ghhf6xq21a9bq2v639";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ ncurses asciidoc docbook_xsl libxslt ]; buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
@ -25,6 +25,11 @@ stdenv.mkDerivation rec {
export version="v${version}" export version="v${version}"
''; '';
doInstallCheckPhase = true;
installCheckPhase = ''
$out/bin/kak -ui json -E "kill 0"
'';
meta = { meta = {
homepage = http://kakoune.org/; homepage = http://kakoune.org/;
description = "A vim inspired text editor"; description = "A vim inspired text editor";

View File

@ -1,16 +1,16 @@
{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper { stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper
, msgpack, neovim, pythonPackages, qtbase }: , msgpack, neovim, pythonPackages, qtbase }:
let let
unwrapped = stdenv.mkDerivation rec { unwrapped = mkDerivation rec {
pname = "neovim-qt-unwrapped"; pname = "neovim-qt-unwrapped";
version = "0.2.11"; version = "0.2.12";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "equalsraf"; owner = "equalsraf";
repo = "neovim-qt"; repo = "neovim-qt";
rev = "v${version}"; rev = "v${version}";
sha256 = "0pc1adxc89p2rdvb6nxyqr9sjzqz9zw2dg7a4ardxsl3a8jga1wh"; sha256 = "09s3044j0y8nmyi8ykslfii6fx7k9mckmdvb0jn2xmdabpb60i20";
}; };
cmakeFlags = [ cmakeFlags = [
@ -24,7 +24,7 @@ let
jinja2 python msgpack jinja2 python msgpack
]); ]);
nativeBuildInputs = [ cmake doxygen makeWrapper ]; nativeBuildInputs = [ cmake doxygen ];
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "quilter"; pname = "quilter";
version = "1.9.2"; version = "1.9.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "lainsce"; owner = "lainsce";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "10r6d695avxj31yghb82ymgnd7f1dawwbqz3gfy0rycjza9dxvv8"; sha256 = "09acknajbkfpw8f5pay2qj69dzhwbiplsvpp1hy9ma6msmxkr6cm";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
description = "Focus on your writing - designed for elementary OS"; description = "Focus on your writing - designed for elementary OS";
homepage = https://github.com/lainsce/quilter; homepage = https://github.com/lainsce/quilter;
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ worldofpeace ]; maintainers = pantheon.maintainers;
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -5,13 +5,13 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "rednotebook"; pname = "rednotebook";
version = "2.8"; version = "2.11.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jendrikseipp"; owner = "jendrikseipp";
repo = "rednotebook"; repo = "rednotebook";
rev = "v${version}"; rev = "v${version}";
sha256 = "0k75lw3p6jx30ngvn8iipk1763gazkbrsad3fpl3sqppaqaggryj"; sha256 = "04c7a0wgmdl88v9386y1052c38ajbkryiwhqps5lx34d4g7r6hm1";
}; };
# We have not packaged tests. # We have not packaged tests.
@ -30,6 +30,10 @@ buildPythonApplication rec {
"--suffix XDG_DATA_DIRS : $XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" "--suffix XDG_DATA_DIRS : $XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
]; ];
# Until gobject-introspection in nativeBuildInputs is supported.
# https://github.com/NixOS/nixpkgs/issues/56943#issuecomment-472568643
strictDeps = false;
meta = with lib; { meta = with lib; {
homepage = http://rednotebook.sourceforge.net/; homepage = http://rednotebook.sourceforge.net/;
description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds"; description = "A modern journal that includes a calendar navigation, customizable templates, export functionality and word clouds";

View File

@ -4,13 +4,13 @@ with python3.pkgs;
buildPythonApplication rec { buildPythonApplication rec {
pname = "thonny"; pname = "thonny";
version = "3.1.2"; version = "3.2.0b7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1simqqxm72k5zhavhllkinsyw8ggy6fjs5ppj82g3l5g3919pfna"; sha256 = "0p0hi5rj873cszx9rpbjjq51vs6xys3rlq9v1rya710i3fnw0hqh";
}; };
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, makeWrapper, electron_3, dpkg, gtk3, glib, gsettings-desktop-schemas, wrapGAppsHook }: { stdenv, fetchurl, makeWrapper, electron_5, dpkg, gtk3, glib, gsettings-desktop-schemas, wrapGAppsHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "typora"; pname = "typora";
version = "0.9.72"; version = "0.9.73";
src = fetchurl { src = fetchurl {
url = "https://www.typora.io/linux/typora_${version}_amd64.deb"; url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
sha256 = "0q7fj77pr3ykpwgip87h12qxvpvlzs15mi9w3phqm3p9mmm9rlrs"; sha256 = "1fgcb4bx5pw8ah5j30d38gw7qi1cmqarfhvgdns9f2n0d57bvvw3";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
''; '';
postFixup = '' postFixup = ''
makeWrapper ${electron_3}/bin/electron $out/bin/typora \ makeWrapper ${electron_5}/bin/electron $out/bin/typora \
--add-flags $out/share/typora \ --add-flags $out/share/typora \
"''${gappsWrapperArgs[@]}" \ "''${gappsWrapperArgs[@]}" \
--prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}" --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}"
@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
homepage = https://typora.io; homepage = https://typora.io;
license = licenses.unfree; license = licenses.unfree;
maintainers = with maintainers; [ jensbin worldofpeace ]; maintainers = with maintainers; [ jensbin worldofpeace ];
inherit (electron_3.meta) platforms; platforms = [ "x86_64-linux"];
}; };
} }

View File

@ -52,13 +52,13 @@
mkDerivation rec { mkDerivation rec {
pname = "digikam"; pname = "digikam";
version = "6.1.0"; version = "6.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "KDE"; owner = "KDE";
repo = "digikam"; repo = "digikam";
rev = "v${version}"; rev = "v${version}";
sha256 = "0h0jqfgpanhxfi3r7cgip58ppypqx79z6c5jj7i7f19hp2zziip8"; sha256 = "1l1nb1nwicmip2jxhn5gzr7h60igvns0zs3kzp36r6qf4wvg3v2z";
}; };
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ]; nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
@ -105,6 +105,8 @@ mkDerivation rec {
threadweaver threadweaver
]; ];
enableParallelBuilding = true;
cmakeFlags = [ cmakeFlags = [
"-DENABLE_MYSQLSUPPORT=1" "-DENABLE_MYSQLSUPPORT=1"
"-DENABLE_INTERNALMYSQL=1" "-DENABLE_INTERNALMYSQL=1"

View File

@ -11,11 +11,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "drawio"; pname = "drawio";
version = "10.9.5"; version = "11.1.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm"; url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
sha256 = "13687d5bfxj7wlbh5j13pvxvs69whlg820wllk3pb1xb3syynlpn"; sha256 = "1jibkxx00rma641c3xr7720qj9slqsvhbpi7nawi6f2f91gzyc10";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -9,11 +9,11 @@ let
pythonPackages = python3Packages; pythonPackages = python3Packages;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "freecad-${version}"; name = "freecad-${version}";
version = "0.18.2"; version = "0.18.3";
src = fetchurl { src = fetchurl {
url = "https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz"; url = "https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz";
sha256 = "1r5rhaiq22yhrfpmcmzx6bflqj6q9asbyjyfja4x4rzfy9yh0a4v"; sha256 = "07j7azgnicmd8cqnyskp15y44ykgj5qqz5y3w1jdynrv3yrvk1kz";
}; };
nativeBuildInputs = [ cmake ninja pkgconfig pythonPackages.pyside2-tools ]; nativeBuildInputs = [ cmake ninja pkgconfig pythonPackages.pyside2-tools ];

View File

@ -1,5 +1,6 @@
{stdenv, fetchFromGitHub, qtbase, mesa_glu}: { stdenv, fetchFromGitHub, mkDerivation, qtbase, mesa_glu }:
stdenv.mkDerivation rec {
mkDerivation rec {
name = "fstl-${version}"; name = "fstl-${version}";
version = "0.9.3"; version = "0.9.3";

View File

@ -10,11 +10,11 @@
mkDerivation rec { mkDerivation rec {
pname = "krita"; pname = "krita";
version = "4.2.2"; version = "4.2.5";
src = fetchurl { src = fetchurl {
url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz"; url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.gz";
sha256 = "1pzk5bqp3kh22djhvsvmsc7ybirs4hsnkpg1y9677m2gxwbqnnps"; sha256 = "1f14r2mrqasl6nr3sss0xy2h8xlxd5wdcjcd64m9nz2gwlm39r7w";
}; };
nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ]; nativeBuildInputs = [ cmake extra-cmake-modules python3Packages.sip makeWrapper ];

View File

@ -14,13 +14,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "openimageio"; pname = "openimageio";
version = "2.0.9"; version = "2.0.10";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenImageIO"; owner = "OpenImageIO";
repo = "oiio"; repo = "oiio";
rev = "Release-${version}"; rev = "Release-${version}";
sha256 = "17diyfk586hll54cl476kbhbcm3nihw6cb4bgjkjxxzxbd3wx839"; sha256 = "0k60kgfahsqcgmydsf1kh1qzshn8mksaw772z48a40qnx28pfjys";
}; };
outputs = [ "bin" "out" "dev" "doc" ]; outputs = [ "bin" "out" "dev" "doc" ];

View File

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "pdfcpu"; pname = "pdfcpu";
version = "0.2.1"; version = "0.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hhrutter"; owner = "hhrutter";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0cg17nph3qv1ca86j3wcd33vqs6clkzi6y2nrajmk7dq5vbzr6nn"; sha256 = "1knvi0v9nfzw40dayrw5cjidg9h900143v1pi6240yd7r7isx348";
}; };
modSha256 = "0cz4gs88s9z2yv1gc9ap92vv2j93ab6kr25zjgl2r7z6clbl5fzp"; modSha256 = "0cz4gs88s9z2yv1gc9ap92vv2j93ab6kr25zjgl2r7z6clbl5fzp";

View File

@ -0,0 +1,45 @@
{ lib
, fetchurl
, appimageTools
, symlinkJoin
}:
let
pname = "runwayml";
version = "0.8.1";
name = "${pname}-${version}";
src = fetchurl {
url = "https://runway-releases.s3.amazonaws.com/Runway%20${version}.AppImage";
sha256 = "0pqnlwk804cly2x9kph39g9ps5dv75ybi2v1fgrvmhk3wbmwmpb0";
name="${pname}-${version}.AppImage";
};
binary = appimageTools.wrapType2 {
name = "${pname}";
inherit src;
};
# we only use this to extract the icon
appimage-contents = appimageTools.extractType2 {
inherit name src;
};
in
symlinkJoin {
inherit name;
paths = [ binary ];
postBuild = ''
mkdir -p $out/share/pixmaps/ $out/share/applications
cp ${appimage-contents}/usr/share/icons/hicolor/1024x1024/apps/runway.png $out/share/pixmaps/runway.png
sed 's:Exec=AppRun:Exec=runwayml:' ${appimage-contents}/runway.desktop > $out/share/applications/runway.desktop
'';
meta = with lib; {
description = "Machine learning for creators";
homepage = https://runwayml.com/;
license = licenses.unfree;
maintainers = with maintainers; [ prusnak ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -1,6 +1,8 @@
{ mkDerivation { mkDerivation
, lib , lib
, extra-cmake-modules , extra-cmake-modules
, breeze-icons
, breeze-qt5
, kdoctools , kdoctools
, kconfig , kconfig
, kcrash , kcrash
@ -19,7 +21,8 @@
, shared-mime-info , shared-mime-info
, libv4l , libv4l
, kfilemetadata , kfilemetadata
, ffmpeg , ffmpeg-full
, frei0r
, phonon-backend-gstreamer , phonon-backend-gstreamer
, qtdeclarative , qtdeclarative
, qtquickcontrols , qtquickcontrols
@ -37,6 +40,8 @@ mkDerivation {
kdoctools kdoctools
]; ];
buildInputs = [ buildInputs = [
breeze-icons
breeze-qt5
kconfig kconfig
kcrash kcrash
kdbusaddons kdbusaddons
@ -59,7 +64,8 @@ mkDerivation {
qtwebkit qtwebkit
shared-mime-info shared-mime-info
libv4l libv4l
ffmpeg ffmpeg-full
frei0r
rttr rttr
kpurpose kpurpose
kdeclarative kdeclarative

View File

@ -1,7 +1,7 @@
{ config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew { config, stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
, ilmbase, libXi, libX11, libXext, libXrender , ilmbase, libXi, libX11, libXext, libXrender
, libjpeg, libpng, libsamplerate, libsndfile , libjpeg, libpng, libsamplerate, libsndfile
, libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, pythonPackages , libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, python3Packages
, 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
@ -11,14 +11,15 @@
with lib; with lib;
let python = pythonPackages.python; in let python = python3Packages.python; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "blender-2.79b"; pname = "blender";
version = "2.80";
src = fetchurl { src = fetchurl {
url = "https://download.blender.org/source/${name}.tar.gz"; url = "https://download.blender.org/source/${pname}-${version}.tar.gz";
sha256 = "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c"; sha256 = "1h550jisdbis50hxwk5kxrvrk1a6sh2fsri3yyj66vhzbi87x7fd";
}; };
nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath; nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
@ -36,7 +37,6 @@ stdenv.mkDerivation rec {
postPatch = postPatch =
'' ''
substituteInPlace doc/manpage/blender.1.py --replace /usr/bin/python ${python}/bin/python3
substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"' substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
''; '';
@ -47,10 +47,7 @@ stdenv.mkDerivation rec {
"-DWITH_INSTALL_PORTABLE=OFF" "-DWITH_INSTALL_PORTABLE=OFF"
"-DWITH_FFTW3=ON" "-DWITH_FFTW3=ON"
#"-DWITH_SDL=ON" #"-DWITH_SDL=ON"
"-DWITH_GAMEENGINE=ON"
"-DWITH_OPENCOLORIO=ON" "-DWITH_OPENCOLORIO=ON"
"-DWITH_SYSTEM_OPENJPEG=ON"
"-DWITH_PLAYER=ON"
"-DWITH_OPENSUBDIV=ON" "-DWITH_OPENSUBDIV=ON"
"-DPYTHON_LIBRARY=${python.libPrefix}m" "-DPYTHON_LIBRARY=${python.libPrefix}m"
"-DPYTHON_LIBPATH=${python}/lib" "-DPYTHON_LIBPATH=${python}/lib"
@ -58,13 +55,10 @@ stdenv.mkDerivation rec {
"-DPYTHON_VERSION=${python.pythonVersion}" "-DPYTHON_VERSION=${python.pythonVersion}"
"-DWITH_PYTHON_INSTALL=OFF" "-DWITH_PYTHON_INSTALL=OFF"
"-DWITH_PYTHON_INSTALL_NUMPY=OFF" "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
"-DPYTHON_NUMPY_PATH=${python3Packages.numpy}/${python.sitePackages}"
] ]
++ optional jackaudioSupport "-DWITH_JACK=ON" ++ optional jackaudioSupport "-DWITH_JACK=ON"
++ optionals cudaSupport ++ optional cudaSupport "-DWITH_CYCLES_CUDA_BINARIES=ON"
[ "-DWITH_CYCLES_CUDA_BINARIES=ON"
# Disable architectures before sm_30 to support new CUDA toolkits.
"-DCYCLES_CUDA_BINARIES_ARCH=sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61"
]
++ optional colladaSupport "-DWITH_OPENCOLLADA=ON"; ++ optional colladaSupport "-DWITH_OPENCOLLADA=ON";
NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}"; NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR -I${python}/include/${python.libPrefix}";
@ -78,7 +72,7 @@ stdenv.mkDerivation rec {
postInstall = optionalString enableNumpy postInstall = optionalString enableNumpy
'' ''
wrapProgram $out/bin/blender \ wrapProgram $out/bin/blender \
--prefix PYTHONPATH : ${pythonPackages.numpy}/${python.sitePackages} --prefix PYTHONPATH : ${python3Packages.numpy}/${python.sitePackages}
''; '';
# Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be # Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be

View File

@ -49,8 +49,7 @@ stdenv.mkDerivation rec {
]); ]);
qtWrapperArgs = [ qtWrapperArgs = [
"--prefix PYTHONPATH: $PYTHONPATH" "--prefix PATH : ${poppler_utils.out}/bin"
"--prefix PATH: ${poppler_utils.out}/bin}"
]; ];
installPhase = '' installPhase = ''
@ -76,7 +75,7 @@ stdenv.mkDerivation rec {
sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre
for program in $out/bin/*; do for program in $out/bin/*; do
wrapQtApp $program wrapQtApp $program --prefix PYTHONPATH : $PYTHONPATH
done done
# Replace @out@ by the output path. # Replace @out@ by the output path.

View File

@ -1,21 +1,20 @@
{ stdenv, fetchurl, pkgconfig, ncurses }: { stdenv, fetchFromGitHub, autoreconfHook, ncurses }:
let
version = "1.2a";
in with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "cmatrix";
version = "2.0";
name = "cmatrix-${version}"; src = fetchFromGitHub {
owner = "abishekvashok";
src = fetchurl{ repo = "cmatrix";
url = "http://www.asty.org/cmatrix/dist/${name}.tar.gz"; rev = "v${version}";
sha256 = "0k06fw2n8nzp1pcdynhajp5prba03gfgsbj91bknyjr5xb5fd9hz"; sha256 = "1h9jz4m4s5l8c3figaq46ja0km1gimrkfxm4dg7mf4s84icmasbm";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ ncurses ]; buildInputs = [ ncurses ];
meta = { meta = with stdenv.lib; {
description = "Simulates the falling characters theme from The Matrix movie"; description = "Simulates the falling characters theme from The Matrix movie";
longDescription = '' longDescription = ''
CMatrix simulates the display from "The Matrix" and is based CMatrix simulates the display from "The Matrix" and is based

View File

@ -1,21 +1,21 @@
{ mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols2, qtgraphicaleffects, curaengine, plugins ? [] }: { mkDerivation, lib, fetchFromGitHub, cmake, python3, qtbase, qtquickcontrols2, qtgraphicaleffects, curaengine, plugins ? [] }:
mkDerivation rec { mkDerivation rec {
name = "cura-${version}"; pname = "cura";
version = "4.1.0"; version = "4.2.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ultimaker"; owner = "Ultimaker";
repo = "Cura"; repo = "Cura";
rev = version; rev = version;
sha256 = "1mfpnjrh3splpkadgml3v71k939g56zb9hbmzghwfjwlrf8valmz"; sha256 = "1qnai8vmgy5lx3lapw96j41i8mw9p6r99i3qzs709l9yzrix6l86";
}; };
materials = fetchFromGitHub { materials = fetchFromGitHub {
owner = "Ultimaker"; owner = "Ultimaker";
repo = "fdm_materials"; repo = "fdm_materials";
rev = version; rev = "4.2.0"; # TODO: change back to `version` after 4.2.1
sha256 = "0yp2162msxfwpixzvassn23p7r3swjpwk4nhsjka5w6fm8pv0wpl"; sha256 = "17x43v0np58qbdfk3wz1k7i9pl0plndx9gmf7y0n23nl9f1qzb0m";
}; };
buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ]; buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
@ -29,6 +29,11 @@ mkDerivation rec {
"-DCURA_VERSION=${version}" "-DCURA_VERSION=${version}"
]; ];
makeWrapperArgs = [
# hacky workaround for https://github.com/NixOS/nixpkgs/issues/59901
"--set OMP_NUM_THREADS 1"
];
postPatch = '' postPatch = ''
sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py
@ -52,6 +57,6 @@ mkDerivation rec {
homepage = https://github.com/Ultimaker/Cura; homepage = https://github.com/Ultimaker/Cura;
license = licenses.lgpl3Plus; license = licenses.lgpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ abbradar ]; maintainers = with maintainers; [ abbradar gebner ];
}; };
} }

View File

@ -1,58 +0,0 @@
{ stdenv, fetchurl, dpkg, bash, python27Packages }:
let
py = python27Packages;
in
stdenv.mkDerivation rec {
name = "cura-lulzbot-${version}";
version = "15.02.1-1.03-5064";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://download.alephobjects.com/ao/aodeb/dists/jessie/main/binary-amd64/cura_${version}_amd64.deb";
sha256 = "1gsfidg3gim5pjbl82vkh0cw4ya253m4p7nirm8nr6yjrsirkzxg";
}
else if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
url = "http://download.alephobjects.com/ao/aodeb/dists/jessie/main/binary-i386/cura_${version}_i386.deb";
sha256 = "0xd3df6bxq4rijgvsqvps454jkc1nzhxbdzzj6j2w317ppsbhyc1";
}
else throw "${name} is not supported on ${stdenv.hostPlatform.system}";
python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ];
pythonPath = python_deps;
propagatedBuildInputs = python_deps;
buildInputs = [ dpkg bash py.wrapPython ];
phases = [ "unpackPhase" "installPhase" ];
unpackPhase = "dpkg-deb -x ${src} ./";
installPhase = ''
mkdir -p $out/bin
cp -r usr/share $out/share
find $out/share -type f -exec sed -i 's|/usr/share/cura|$out/share/cura|g' "{}" \;
cat <<EOT > $out/bin/cura
#!${bash}/bin/bash
PYTHONPATH=$PYTHONPATH:$out/share/cura ${py.python}/bin/python $out/share/cura/cura.py "\$@"
EOT
chmod 555 $out/bin/cura
'';
meta = with stdenv.lib; {
description = "3D printing host software for the Lulzbot";
longDescription = ''
Cura LulzBot Edition is a fork of the 3D printing/slicing
software from Ultimaker, with changes to support 3D printers
from Aleph Objects.
'';
homepage = https://www.lulzbot.com/cura/;
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ pjones ];
};
}

View File

@ -0,0 +1,26 @@
{ stdenv, callPackage, fetchgit, fetchpatch, cmake, libarcusLulzbot, stb, protobuf }:
stdenv.mkDerivation rec {
name = "curaengine-lulzBot-${version}";
version = "3.6.18";
src = fetchgit {
url = https://code.alephobjects.com/source/curaengine-lulzbot.git;
rev = "ec6a1a0f0aa387ef97e5c106633cf8d7fb9cd00d";
sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libarcusLulzbot stb protobuf ];
cmakeFlags = [ "-DCURA_ENGINE_VERSION=${version}" ];
meta = with stdenv.lib; {
description = "A powerful, fast and robust engine for processing 3D models into 3D printing instruction";
homepage = https://code.alephobjects.com/source/curaengine-lulzbot/;
license = licenses.agpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ chaduffy ];
};
}

View File

@ -0,0 +1,78 @@
{ lib, callPackage, fetchgit, cmake, jq, python3Packages, qtbase, qtquickcontrols2 }:
let
# admittedly, we're using (printer firmware) blobs when we could compile them ourselves.
curaBinaryDataVersion = "3.6.18"; # Marlin v2.0.0.144. Keep this accurate wrt. the below.
curaBinaryData = fetchgit {
url = https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git;
rev = "cdc046494bbfe1f65bfb34659a257eef9a0100a0";
sha256 = "0v0s036gxdjiglas2yzw95alv60sw3pq5k1zrrhmw9mxr4irrblb";
};
libarcusLulzbot = callPackage ./libarcus.nix {
inherit (python3Packages) buildPythonPackage sip pythonOlder;
};
libsavitarLulzbot = callPackage ./libsavitar.nix {
inherit (python3Packages) buildPythonPackage sip pythonOlder;
};
inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
curaengine = callPackage ./curaengine.nix {
inherit libarcusLulzbot;
};
uraniumLulzbot = callPackage ./uranium.nix {
inherit callPackage libarcusLulzbot;
inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder;
};
in
python3Packages.buildPythonApplication rec {
name = "cura-lulzbot-${version}";
version = "3.6.18";
src = fetchgit {
url = https://code.alephobjects.com/source/cura-lulzbot.git;
rev = "71f1ac5a2b9f535175a3858a565930348358a9ca";
sha256 = "0by06fpxvdgy858lwhsccbmvkdq67j2s1cz8v6jnrnjrsxk7vzka";
};
format = "other"; # using cmake to build
buildInputs = [ qtbase qtquickcontrols2 ];
# numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415
propagatedBuildInputs = with python3Packages; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl
nativeBuildInputs = [ cmake python3Packages.wrapPython ];
cmakeFlags = [
"-DURANIUM_DIR=${uraniumLulzbot.src}"
"-DCURA_VERSION=${version}"
];
postPatch = ''
sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
sed -i 's, executable_name = .*, executable_name = "${curaengine}/bin/CuraEngine",' plugins/CuraEngineBackend/CuraEngineBackend.py
'';
preFixup = ''
substituteInPlace "$out/bin/cura-lulzbot" --replace 'import cura.CuraApplication' 'import Savitar; import cura.CuraApplication'
ln -sT "${curaBinaryData}/cura/resources/firmware" "$out/share/cura/resources/firmware"
ln -sT "${uraniumLulzbot}/share/uranium" "$out/share/uranium"
${jq}/bin/jq --arg out "$out" '.build=$out' >"$out/version.json" <<'EOF'
${builtins.toJSON {
cura = version;
cura_version = version;
binarydata = curaBinaryDataVersion;
engine = curaengine.version;
libarcus = libarcusLulzbot.version;
libsavitar = libsavitarLulzbot.version;
uranium = uraniumLulzbot.version;
}}
EOF
'';
meta = with lib; {
description = "3D printer / slicing GUI built on top of the Uranium framework";
homepage = https://code.alephobjects.com/diffusion/CURA/;
license = licenses.agpl3; # a partial relicense to LGPL has happened, but not certain that all AGPL bits are expunged
platforms = platforms.linux;
maintainers = with maintainers; [ chaduffy ];
};
}

View File

@ -0,0 +1,33 @@
{ stdenv, buildPythonPackage, fetchgit, fetchurl, cmake, sip, protobuf, pythonOlder }:
buildPythonPackage rec {
pname = "libarcus";
version = "3.6.18";
format = "other";
src = fetchgit {
url = https://code.alephobjects.com/source/arcus.git;
rev = "c795c0644591703ce04e1fd799fc97b1539031aa";
sha256 = "1yap9wbqxbjx3kqyqcsldny4mlcm33ywiwpdjlfgs0wjahfg4ip0";
};
disabled = pythonOlder "3.4.0";
propagatedBuildInputs = [ sip ];
nativeBuildInputs = [ cmake ];
buildInputs = [ protobuf ];
postPatch = ''
# To workaround buggy SIP detection which overrides PYTHONPATH
sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake
'';
meta = with stdenv.lib; {
description = "Communication library between internal components for Ultimaker software";
homepage = https://code.alephobjects.com/source/arcus/;
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ chaduffy ];
};
}

View File

@ -0,0 +1,33 @@
{ stdenv, buildPythonPackage, pythonOlder, fetchgit, cmake, sip }:
buildPythonPackage rec {
pname = "libsavitar-lulzbot";
name = "libsavitar-lulzbot";
version = "3.6.18";
format = "other";
src = fetchgit {
url = https://code.alephobjects.com/source/savitar.git;
rev = "988a26d35b2a1d042f8c38938ccda77ab146af7d";
sha256 = "146agw3a92azkgs5ahmn2rrck4an78m2r3pcss6ihmb60lx165k7";
};
postPatch = ''
# To workaround buggy SIP detection which overrides PYTHONPATH
sed -i '/SET(ENV{PYTHONPATH}/d' cmake/FindSIP.cmake
'';
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = [ sip ];
disabled = pythonOlder "3.4.0";
meta = with stdenv.lib; {
description = "C++ implementation of 3mf loading with SIP python bindings";
homepage = https://github.com/Ultimaker/libSavitar;
license = licenses.lgpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ chaduffy ];
};
}

View File

@ -0,0 +1,16 @@
diff --git a/UM/Qt/Bindings/i18nCatalogProxy.py b/UM/Qt/Bindings/i18nCatalogProxy.py
index 7e2bb16c..cec70dd6 100644
--- a/UM/Qt/Bindings/i18nCatalogProxy.py
+++ b/UM/Qt/Bindings/i18nCatalogProxy.py
@@ -86,9 +86,9 @@ class i18nCatalogProxy(QObject): # [CodeStyle: Ultimaker code style requires cla
# \todo Move this to a more generic place so more things can use it.
def _wrapFunction(self, engine, this_object, function):
# JavaScript code that wraps the Python method call in a closure
- wrap_js = """function(this_object) {{
+ wrap_js = """(function(this_object) {{
return function({args}) {{ return this_object.{function}({args}) }}
- }}"""
+ }})"""
# Get the function name and argument list.
function_name = function.__name__

View File

@ -0,0 +1,41 @@
{ stdenv, callPackage, fetchurl, fetchgit, buildPythonPackage, fetchFromGitHub, python, cmake
, pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }:
buildPythonPackage rec {
version = "3.6.18";
pname = "uranium";
name = "uraniumLulzbot";
format = "other";
src = fetchgit {
url = https://code.alephobjects.com/diffusion/U/uranium.git;
rev = "33df88a7414375ac924ac761113baa48d2ced2b4";
sha256 = "109cbv7y105crbrzfp70lmcr9n20ap5c97i5qd46fmxbx86yj7f8";
};
disabled = pythonOlder "3.5.0";
buildInputs = [ python gettext ];
propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ];
nativeBuildInputs = [ cmake doxygen ];
# Qt 5.12+ support; see https://code.alephobjects.com/rU70b73ba0a270799b9eacf78e400aa8b8ab3fb2ee
patches = [ ./uranium-qt512-support.patch ];
postPatch = ''
sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
sed -i \
-e "s,Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,Resources.addSearchPath(\"$out/share/uranium/resources\")," \
-e "s,self._plugin_registry.addPluginLocation(os.path.join(os.path.abspath(os.path.dirname(__file__)).*,self._plugin_registry.addPluginLocation(\"$out/lib/uranium/plugins\")," \
UM/Application.py
'';
meta = with stdenv.lib; {
description = "A Python framework for building Desktop applications";
homepage = https://code.alephobjects.com/diffusion/U/;
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ chaduffy ];
};
}

View File

@ -6,13 +6,13 @@ let
octoprint = stdenv.mkDerivation rec { octoprint = stdenv.mkDerivation rec {
pname = "Cura-OctoPrintPlugin"; pname = "Cura-OctoPrintPlugin";
version = "3.5.5"; version = "3.5.8";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "fieldOfView"; owner = "fieldOfView";
repo = pname; repo = pname;
rev = "d05a9a4c1a01c584d5cec4f4b7d170077235467a"; rev = "46548cbb8d32d10fe3aee12f272d5d8f34271738";
sha256 = "0ik69g3kbn7rz2wh0cfq9ww8x222kagd8jvsd4xlqgq4yrf0jk7x"; sha256 = "0pllba8qx1746pnf5ccbkqn2j6f8hhknpgyrrv244ykvigrlczx0";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "curaengine-${version}"; name = "curaengine-${version}";
version = "4.1.0"; version = "4.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Ultimaker"; owner = "Ultimaker";
repo = "CuraEngine"; repo = "CuraEngine";
rev = version; rev = version;
sha256 = "14zy9ir46vndsi4l8kapm6byw02fimm7ava2rfi0kvcckf5yq9w8"; sha256 = "13hbzsx4fwrbwviyhh8z04gs9b0m8fjl8a31ci7gr2dfdmgjs6pd";
}; };
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
homepage = https://github.com/Ultimaker/CuraEngine; homepage = https://github.com/Ultimaker/CuraEngine;
license = licenses.agpl3; license = licenses.agpl3;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = with maintainers; [ abbradar ]; maintainers = with maintainers; [ abbradar gebner ];
}; };
} }

View File

@ -7,7 +7,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "dbeaver-ce-${version}"; name = "dbeaver-ce-${version}";
version = "6.1.3"; version = "6.1.4";
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "dbeaver"; name = "dbeaver";
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
sha256 = "1ngfypx0wbq98rv791zls07h46rnj69qixpslw0xn9bb3ky4snbf"; sha256 = "1l4skcannbzddhm773dm3hwv3a7b3xy569gydcfczgdlgzgmlfjq";
}; };
installPhase = '' installPhase = ''

View File

@ -16,13 +16,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gImageReader-${version}"; name = "gImageReader-${version}";
version = "3.3.0"; version = "3.3.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner= "manisandro"; owner= "manisandro";
repo = "gImageReader"; repo = "gImageReader";
rev = "v${version}"; rev = "v${version}";
sha256 = "0pjk4kr7bc5q4hi1xf7na2zln9fyqdazgzq62r3bg41nzy7fakcz"; sha256 = "17hz2dgxx2j7hsk0lx3riidqvlsg0ylnicjd2gphsi3yp7w20zdj";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "gallery_dl"; pname = "gallery_dl";
version = "1.8.6"; version = "1.10.1";
src = python3Packages.fetchPypi { src = python3Packages.fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0in47v6c82a6mqg4wzxrji7wd8a9qh5386rsr77s3a8613am1n2x"; sha256 = "174d2q7w0kwa6xx9k3bl5gdwmk0gklvch963g7vl979wqsf7nskw";
}; };
doCheck = false; doCheck = false;

View File

@ -4,11 +4,11 @@
with stdenv.lib; with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gkrellm-2.3.10"; name = "gkrellm-2.3.11";
src = fetchurl { src = fetchurl {
url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2"; url = "http://gkrellm.srcbox.net/releases/${name}.tar.bz2";
sha256 = "0rnpzjr0ys0ypm078y63q4aplcgdr5nshjzhmz330n6dmnxci7lb"; sha256 = "01lccz4fga40isv09j8rjgr0qy10rff9vj042n6gi6gdv4z69q0y";
}; };
nativeBuildInputs = [ pkgconfig which ]; nativeBuildInputs = [ pkgconfig which ];

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl { stdenv, mkDerivation, fetchurl
, qtbase, qtsvg, qtserialport, qtwebkit, qtmultimedia, qttools, qtconnectivity , qtbase, qtsvg, qtserialport, qtwebkit, qtmultimedia, qttools, qtconnectivity
, yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper , yacc, flex, zlib, qmake, makeDesktopItem, makeWrapper
}: }:
@ -13,7 +13,7 @@ let
comment = "Performance software for cyclists, runners and triathletes"; comment = "Performance software for cyclists, runners and triathletes";
categories = "Application;Utility;"; categories = "Application;Utility;";
}; };
in stdenv.mkDerivation rec { in mkDerivation rec {
name = "golden-cheetah-${version}"; name = "golden-cheetah-${version}";
version = "3.4"; version = "3.4";
src = fetchurl { src = fetchurl {
@ -29,6 +29,9 @@ in stdenv.mkDerivation rec {
NIX_LDFLAGS = [ NIX_LDFLAGS = [
"-lz" "-lz"
]; ];
qtWrapperArgs = [ "--set LD_LIBRARY_PATH ${zlib.out}/lib" ];
preConfigure = '' preConfigure = ''
cp src/gcconfig.pri.in src/gcconfig.pri cp src/gcconfig.pri.in src/gcconfig.pri
cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri cp qwt/qwtconfig.pri.in qwt/qwtconfig.pri
@ -40,7 +43,6 @@ in stdenv.mkDerivation rec {
mkdir -p $out/bin mkdir -p $out/bin
cp src/GoldenCheetah $out/bin cp src/GoldenCheetah $out/bin
wrapProgram $out/bin/GoldenCheetah --set LD_LIBRARY_PATH "${zlib.out}/lib"
install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/ install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/
install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png install -Dm644 src/Resources/images/gc.png $out/share/pixmaps/goldencheetah.png

View File

@ -1,25 +1,29 @@
{ stdenv, fetchFromGitHub, pkgconfig, libXtst, libvorbis, hunspell { mkDerivation, lib, fetchFromGitHub, pkgconfig, libXtst, libvorbis, hunspell
, libao, ffmpeg, libeb, lzo, xz, libtiff , libao, ffmpeg, libeb, lzo, xz, libtiff, opencc
, qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake }: , qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake }:
stdenv.mkDerivation rec { mkDerivation rec {
name = "goldendict-2018-06-13"; name = "goldendict-2019-08-01";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "goldendict"; owner = "goldendict";
repo = "goldendict"; repo = "goldendict";
rev = "48e850c7ec11d83cba7499f7fdce377ef3849bbb"; rev = "0f951b06a55f3a201891cf645a556e773bda5f52";
sha256 = "0i4q4waqjv45hgwillvjik97pg26kwlmz4925djjkx8s6hxgjlq9"; sha256 = "1d1hn95vhvsmbq9q96l5adn90g0hg25dl01knb4y4v6v9x4yrl2x";
}; };
nativeBuildInputs = [ pkgconfig qmake ]; nativeBuildInputs = [ pkgconfig qmake ];
buildInputs = [ buildInputs = [
qtbase qtsvg qtwebkit qtx11extras qttools qtbase qtsvg qtwebkit qtx11extras qttools
libXtst libvorbis hunspell libao ffmpeg libeb lzo xz libtiff libXtst libvorbis hunspell libao ffmpeg libeb lzo xz libtiff opencc
]; ];
qmakeFlags = [ "CONFIG+=zim_support" ]; qmakeFlags = [
"goldendict.pro"
"CONFIG+=zim_support"
"CONFIG+=chinese_conversion_support"
];
meta = with stdenv.lib; { meta = with lib; {
homepage = http://goldendict.org/; homepage = http://goldendict.org/;
description = "A feature-rich dictionary lookup program"; description = "A feature-rich dictionary lookup program";
platforms = platforms.linux; platforms = platforms.linux;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "jgmenu"; pname = "jgmenu";
version = "3.1"; version = "3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "johanmalm"; owner = "johanmalm";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "03lk89d6wvqv234qciksd4zm0z4lkvrxfh6r9ff0d8yzg67m7rd0"; sha256 = "02qpvlmcis7217hkqilhszza4g1smb4byx4gihgp5207aj8qhz0l";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -1,4 +1,4 @@
{ stdenv { mkDerivation
, lib , lib
, fetchurl , fetchurl
, extra-cmake-modules , extra-cmake-modules
@ -18,7 +18,7 @@
, kwayland , kwayland
}: }:
stdenv.mkDerivation rec { mkDerivation rec {
pname = "kdeconnect"; pname = "kdeconnect";
version = "1.3.4"; version = "1.3.4";

View File

@ -2,11 +2,11 @@
, desktop-file-utils, libSM, imagemagick }: , desktop-file-utils, libSM, imagemagick }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "19.04"; version = "19.07";
name = "mediainfo-gui-${version}"; name = "mediainfo-gui-${version}";
src = fetchurl { src = fetchurl {
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz"; url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
sha256 = "11wag23gx7nprrm1qlgvbc83rs9zxdsshqrp98zwia80xh8c9bk5"; sha256 = "0b2ypdlpj5v64ggqk628mgqraba27z725sa0zf0fa4agxhf9ka44";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];

View File

@ -1,71 +1,85 @@
{ stdenv, fetchurl, pkgconfig, libpng, openssl, curl, gtk2, check, SDL { stdenv, fetchurl, fetchpatch, makeWrapper, wrapGAppsHook
, libxml2, libidn, perl, nettools, perlPackages
, libXcursor, libXrandr, makeWrapper # Buildtime dependencies.
, check, pkgconfig, xxd
# Runtime dependencies.
, curl, expat, libXcursor, libXrandr, libidn, libjpeg, libpng, libwebp, libxml2
, openssl, perl, perlPackages
# uilib-specific dependencies
, gtk2 # GTK 2
, SDL # Framebuffer
# Configuration
, uilib ? "framebuffer" , uilib ? "framebuffer"
, buildsystem
, nsgenbind # Netsurf-specific dependencies
, libnsfb
, libwapcaplet , libcss, libdom, libhubbub, libnsbmp, libnsfb, libnsgif
, libparserutils , libnslog, libnspsl, libnsutils, libparserutils, libsvgtiny, libutf8proc
, libcss , libwapcaplet, nsgenbind
, libhubbub
, libdom
, libnsbmp
, libnsgif
, libnsutils
, libutf8proc
}: }:
let
inherit (stdenv.lib) optional optionals;
in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "netsurf-${version}"; name = "netsurf-${version}";
version = "3.5"; version = "3.9";
# UI libs incldue Framebuffer, and gtk
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/netsurf/releases/source/netsurf-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/netsurf/releases/source/netsurf-${version}-src.tar.gz";
sha256 = "1k0x8mzgavfy7q9kywl6kzsc084g1xlymcnsxi5v6jp279nsdwwq"; sha256 = "1hzcm2s2wh5sapgr000lg63hcdbj6hyajxl43xa1x80kc5piqbyp";
}; };
nativeBuildInputs = [ pkgconfig ]; patches = [
buildInputs = [ libpng openssl curl gtk2 check libxml2 libidn perl # GTK: prefer using curl's intrinsic defaults for CURLOPT_CA*
nettools perlPackages.HTMLParser libXcursor libXrandr makeWrapper SDL (fetchpatch {
buildsystem name = "0001-GTK-prefer-using-curl-s-intrinsic-defaults-for-CURLO.patch";
nsgenbind url = "http://source.netsurf-browser.org/netsurf.git/patch/?id=87177d8aa109206d131e0d80a2080ce55dab01c7";
libnsfb sha256 = "08bc60pc5k5qpckqv21zgmgszj3rpwskfc84shs8vg92vkimv2ai";
libwapcaplet })
libparserutils
libcss
libhubbub
libdom
libnsbmp
libnsgif
libnsutils
libutf8proc
]; ];
nativeBuildInputs = [
makeWrapper
perl
perlPackages.HTMLParser
pkgconfig
xxd
]
++ optional (uilib == "gtk") wrapGAppsHook
;
buildInputs = [
check curl libXcursor libXrandr libidn libjpeg libpng libwebp libxml2 openssl
# Netsurf-specific libraries
nsgenbind libnsfb libwapcaplet libparserutils libnslog libcss
libhubbub libdom libnsbmp libnsgif libsvgtiny libnsutils libnspsl
libutf8proc
]
++ optionals (uilib == "framebuffer") [ expat SDL ]
++ optional (uilib == "gtk") gtk2
;
preConfigure = '' preConfigure = ''
cat <<EOF > Makefile.conf cat <<EOF > Makefile.conf
override NETSURF_GTK_RESOURCES := $out/share/Netsurf/${uilib}/res override NETSURF_GTK_RES_PATH := $out/share/
override NETSURF_USE_GRESOURCE := YES override NETSURF_USE_GRESOURCE := YES
EOF EOF
''; '';
makeFlags = [ makeFlags = [
"PREFIX=$(out)" "PREFIX=${placeholder "out"}"
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
"TARGET=${uilib}" "TARGET=${uilib}"
]; ];
installPhase = ''
mkdir -p $out/bin $out/share/Netsurf/${uilib}
cmd=$(case "${uilib}" in framebuffer) echo nsfb;; gtk) echo nsgtk;; esac)
cp $cmd $out/bin/netsurf
wrapProgram $out/bin/netsurf --set NETSURFRES $out/share/Netsurf/${uilib}/res
tar -hcf - ${uilib}/res | (cd $out/share/Netsurf/ && tar -xvpf -)
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://www.netsurf-browser.org/; homepage = http://www.netsurf-browser.org/;
description = "Free opensource web browser"; description = "Free opensource web browser";

View File

@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libcss"; libname = "libcss";
version = "0.6.0"; version = "0.9.0";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "0qp4p1q1dwgdra4pkrzd081zjzisxkgwx650ijx323j8bj725daf"; sha256 = "1vw9j3d2mr4wbvs8fyqmgslkbxknvac10456775hflxxcivbm3xr";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -9,11 +9,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libdom"; libname = "libdom";
version = "0.3.0"; version = "0.4.0";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "1kk6qbqagx5ypiy9kf0059iqdzyz8fqaw336vzhb5gnrzjw3wv4a"; sha256 = "1ixkqsl3f7dl1kajksm0c231w1v5xy8z6hm3v67hgm9nh4qcvfcy";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -7,11 +7,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libhubbub"; libname = "libhubbub";
version = "0.3.3"; version = "0.3.6";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "101781iw32p47386fxqr01nrkywi12w17ajh02k2vlga4z8zyv86"; sha256 = "1x3v7xvagx85v9h3pypzc86rcxs4mij87mmcqkp8pq50q6awfmnp";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libnsbmp"; libname = "libnsbmp";
version = "0.1.3"; version = "0.1.5";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "0gmvzw1whh7553d6s98vr4ri2whjwrgggcq1z5b160gwjw20mzyy"; sha256 = "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libnsfb"; libname = "libnsfb";
version = "0.1.4"; version = "0.2.1";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "176f8why9gzbaca9nnxjqasl02qzc6g507z5w3dzkcjifnkz4mzl"; sha256 = "09qag9lgn5ahanbcyf2rvfmsz15vazfwnl8xpn8f1iczd44b0bv0";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libnsgif"; libname = "libnsgif";
version = "0.1.3"; version = "0.2.1";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "1a4z45gh0fw4iybf34fig725av25h31ffk0azi0snzh4130cklnk"; sha256 = "0jwshypgmx16xlsbx3d8njk8a5khazlplca5mxd3rdbhrlsabbly";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -0,0 +1,33 @@
{ stdenv, fetchurl, pkgconfig, bison, flex
, buildsystem
}:
stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}";
libname = "libnslog";
version = "0.1.2";
src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "1ggs6xvxp8fbg5w8pifalipm458ygr9ab6j2yvj8fnnmxwvdh4jd";
};
nativeBuildInputs = [ pkgconfig bison flex ];
buildInputs = [
buildsystem
];
makeFlags = [
"PREFIX=$(out)"
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
];
meta = with stdenv.lib; {
homepage = http://www.netsurf-browser.org/;
description = "NetSurf Parametric Logging Library";
license = licenses.mit;
maintainers = [ maintainers.samueldr ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,33 @@
{ stdenv, fetchurl, pkgconfig
, buildsystem
}:
stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}";
libname = "libnspsl";
version = "0.1.5";
src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "0siq8zjfxv75i9fw6q5hkaijpdm1w3zskd5qk6vsvz8cqan4vifd";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
buildsystem
];
makeFlags = [
"PREFIX=$(out)"
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
];
meta = with stdenv.lib; {
homepage = http://www.netsurf-browser.org/;
description = "NetSurf Public Suffix List - Handling library";
license = licenses.mit;
maintainers = [ maintainers.samueldr ];
platforms = platforms.linux;
};
}

View File

@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libnsutils"; libname = "libnsutils";
version = "0.0.2"; version = "0.0.5";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "03p4xmd08yhj70nyj7acjccmmshs59lv4n4zsqpsn5lgkwa23lzy"; sha256 = "09w1rixps1iiq6wirjwxmd6h87llvjzvw565rahjb3rlyhcplfqf";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}"; name = "netsurf-${libname}-${version}";
libname = "libparserutils"; libname = "libparserutils";
version = "0.2.3"; version = "0.2.4";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "01gzlsabgl6x0icd8758d9jqs8rrf9574bdkjainn04w3fs3znf5"; sha256 = "1n2794y2l0c8nv8z2pxwfnbn882987ifmxjv60zdxkhcndhswarj";
}; };
buildInputs = [ buildsystem perl ]; buildInputs = [ buildsystem perl ];

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, pkgconfig, gperf
, buildsystem
, libdom
, libhubbub
, libparserutils
, libwapcaplet
}:
stdenv.mkDerivation rec {
name = "netsurf-${libname}-${version}";
libname = "libsvgtiny";
version = "0.1.7";
src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
sha256 = "10bpkmvfpydj74im3r6kqm9vnvgib6afy0alx71q5n0w5yawy39c";
};
nativeBuildInputs = [ pkgconfig gperf ];
buildInputs = [
buildsystem
libdom
libhubbub
libparserutils
libwapcaplet
];
makeFlags = [
"PREFIX=$(out)"
"NSSHARED=${buildsystem}/share/netsurf-buildsystem"
];
meta = with stdenv.lib; {
homepage = http://www.netsurf-browser.org/;
description = "NetSurf SVG decoder";
license = licenses.mit;
maintainers = [ maintainers.samueldr ];
platforms = platforms.linux;
};
}

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