Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát 2017-11-27 15:09:53 +01:00
commit 6705f30e2c
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
109 changed files with 3879 additions and 1522 deletions

View File

@ -15,7 +15,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
afl21 = spdx {
spdxId = "AFL-2.1";
fullName = "Academic Free License";
fullName = "Academic Free License v2.1";
};
afl3 = spdx {
spdxId = "AFL-3.0";
fullName = "Academic Free License v3.0";
};
agpl3 = spdx {
@ -426,6 +431,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "Notion modified LGPL";
};
nposl3 = spdx {
spdxId = "NPOSL-3.0";
fullName = "Non-Profit Open Software License 3.0";
};
ofl = spdx {
spdxId = "OFL-1.1";
fullName = "SIL Open Font License 1.1";
@ -441,7 +451,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
fullName = "OpenSSL License";
};
osl = spdx {
osl21 = spdx {
spdxId = "OSL-2.1";
fullName = "Open Software License 2.1";
};
osl3 = spdx {
spdxId = "OSL-3.0";
fullName = "Open Software License 3.0";
};

View File

@ -120,6 +120,7 @@
chrisrosset = "Christopher Rosset <chris@rosset.org.uk>";
christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
ciil = "Simon Lackerbauer <simon@lackerbauer.com>";
ck3d = "Christian Kögler <ck3d@gmx.de>";
ckampka = "Christian Kampka <christian@kampka.net>";
ckauhaus = "Christian Kauhaus <christian@kauhaus.de>";
cko = "Christine Koppelt <christine.koppelt@gmail.com>";
@ -642,6 +643,7 @@
theuni = "Christian Theune <ct@flyingcircus.io>";
ThomasMader = "Thomas Mader <thomas.mader@gmail.com>";
thoughtpolice = "Austin Seipp <aseipp@pobox.com>";
thpham = "Thomas Pham <thomas.pham@ithings.ch>";
timbertson = "Tim Cuthbertson <tim@gfxmonk.net>";
timokau = "Timo Kaufmann <timokau@zoho.com>";
titanous = "Jonathan Rudenberg <jonathan@titanous.com>";
@ -699,6 +701,7 @@
womfoo = "Kranium Gikos Mendoza <kranium@gikos.net>";
wscott = "Wayne Scott <wsc9tt@gmail.com>";
wyvie = "Elijah Rum <elijahrum@gmail.com>";
xaverdh = "Dominik Xaver Hörl <hoe.dom@gmx.de>";
xnwdd = "Guillermo NWDD <nwdd+nixos@no.team>";
xvapx = "Marti Serra <marti.serra.coscollano@gmail.com>";
xwvvvvwx = "David Terry <davidterry@posteo.de>";

View File

@ -146,6 +146,7 @@ sub start {
($self->{allowReboot} ? "" : "-no-reboot ") .
"-monitor unix:./monitor -chardev socket,id=shell,path=./shell " .
"-device virtio-serial -device virtconsole,chardev=shell " .
"-device virtio-rng-pci " .
($showGraphics ? "-serial stdio" : "-nographic") . " " . ($ENV{QEMU_OPTS} || "");
chdir $self->{stateDir} or die;
exec $self->{startCommand};

View File

@ -45,7 +45,7 @@ let
uid = ids.uids.pulseaudio;
gid = ids.gids.pulseaudio;
stateDir = "/var/run/pulse";
stateDir = "/run/pulse";
# Create pulse/client.conf even if PulseAudio is disabled so
# that we can disable the autospawn feature in programs that
@ -219,6 +219,12 @@ in {
{ target = "pulse/daemon.conf";
source = writeText "daemon.conf" (lib.generators.toKeyValue {} cfg.daemon.config); }
{ target = "openal/alsoft.conf";
source = writeText "alsoft.conf" "drivers=pulse"; }
{ target = "libao.conf";
source = writeText "libao.conf" "default_driver=pulse"; }
];
# Allow PulseAudio to get realtime priority using rtkit.

View File

@ -582,13 +582,15 @@ in {
{
environment = {
etc = mapAttrs' (name: { packages, ... }: {
name = "per-user-pkgs/${name}";
value.source = pkgs.symlinkJoin {
name = "per-user-pkgs.${name}";
name = "profiles/per-user/${name}";
value.source = pkgs.buildEnv {
name = "user-environment";
paths = packages;
inherit (config.environment) pathsToLink extraOutputsToInstall;
inherit (config.system.path) ignoreCollisions postBuild;
};
}) (filterAttrs (_: { packages, ... }: packages != []) cfg.users);
profiles = ["/etc/per-user-pkgs/$LOGNAME"];
profiles = ["/etc/profiles/per-user/$USER"];
};
}
];

View File

@ -4,7 +4,7 @@
{ config, pkgs, ... }:
{
boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_scsi" "9p" "9pnet_virtio" ];
boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" "virtio_rng" ];
boot.initrd.postDeviceCommands =

View File

@ -48,6 +48,10 @@ with lib;
(mkRemovedOptionModule [ "services" "rmilter" "bindInetSockets" ] "Use services.rmilter.bindSocket.* instead")
(mkRemovedOptionModule [ "services" "rmilter" "bindUnixSockets" ] "Use services.rmilter.bindSocket.* instead")
# Xsession script
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "job" "logsXsession" ] [ "services" "xserver" "displayManager" "job" "logToFile" ])
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "logToJournal" ] [ "services" "xserver" "displayManager" "job" "logToJournal" ])
# Old Grub-related options.
(mkRenamedOptionModule [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ])
(mkRenamedOptionModule [ "boot" "extraKernelParams" ] [ "boot" "kernelParams" ])

View File

@ -4,14 +4,6 @@ with lib;
let
cfg = config.services.buildkite-agent;
configFile = pkgs.writeText "buildkite-agent.cfg"
''
token="${cfg.token}"
name="${cfg.name}"
meta-data="${cfg.meta-data}"
hooks-path="${cfg.package}/share/hooks"
build-path="${cfg.dataDir}"
'';
in
{
@ -39,10 +31,13 @@ in
type = types.listOf types.package;
};
token = mkOption {
type = types.str;
tokenPath = mkOption {
type = types.path;
description = ''
The token from your Buildkite "Agents" page.
A run-time path to the token file, which is supposed to be provisioned
outside of Nix store.
'';
};
@ -62,16 +57,22 @@ in
};
openssh =
{ privateKey = mkOption {
type = types.str;
{ privateKeyPath = mkOption {
type = types.path;
description = ''
Private agent key.
A run-time path to the key file, which is supposed to be provisioned
outside of Nix store.
'';
};
publicKey = mkOption {
type = types.str;
publicKeyPath = mkOption {
type = types.path;
description = ''
Public agent key.
A run-time path to the key file, which is supposed to be provisioned
outside of Nix store.
'';
};
};
@ -84,11 +85,15 @@ in
home = cfg.dataDir;
createHome = true;
description = "Buildkite agent user";
extraGroups = [ "keys" ];
};
environment.systemPackages = [ cfg.package ];
systemd.services.buildkite-agent =
let copy = x: target: perms:
"cp -f ${x} ${target}; ${pkgs.coreutils}/bin/chmod ${toString perms} ${target}; ";
in
{ description = "Buildkite Agent";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
@ -97,18 +102,26 @@ in
HOME = cfg.dataDir;
NIX_REMOTE = "daemon";
};
## NB: maximum care is taken so that secrets (ssh keys and the CI token)
## don't end up in the Nix store.
preStart = ''
${pkgs.coreutils}/bin/mkdir -m 0700 -p ${cfg.dataDir}/.ssh
${pkgs.coreutils}/bin/mkdir -m 0700 -p ${cfg.dataDir}/.ssh
${copy (toString cfg.openssh.privateKeyPath) "${cfg.dataDir}/.ssh/id_rsa" 600}
${copy (toString cfg.openssh.publicKeyPath) "${cfg.dataDir}/.ssh/id_rsa.pub" 600}
echo "${cfg.openssh.privateKey}" > ${cfg.dataDir}/.ssh/id_rsa
${pkgs.coreutils}/bin/chmod 600 ${cfg.dataDir}/.ssh/id_rsa
echo "${cfg.openssh.publicKey}" > ${cfg.dataDir}/.ssh/id_rsa.pub
${pkgs.coreutils}/bin/chmod 600 ${cfg.dataDir}/.ssh/id_rsa.pub
'';
cat > "${cfg.dataDir}/buildkite-agent.cfg" <<EOF
token="$(cat ${toString cfg.tokenPath})"
name="${cfg.name}"
meta-data="${cfg.meta-data}"
hooks-path="${pkgs.buildkite-agent}/share/hooks"
build-path="${cfg.dataDir}/builds"
bootstrap-script="${pkgs.buildkite-agent}/share/bootstrap.sh"
EOF
'';
serviceConfig =
{ ExecStart = "${pkgs.buildkite-agent}/bin/buildkite-agent start --config ${configFile}";
{ ExecStart = "${pkgs.buildkite-agent}/bin/buildkite-agent start --config /var/lib/buildkite-agent/buildkite-agent.cfg";
User = "buildkite-agent";
RestartSec = 5;
Restart = "on-failure";
@ -116,4 +129,9 @@ in
};
};
};
imports = [
(mkRenamedOptionModule [ "services" "buildkite-agent" "token" ] [ "services" "buildkite-agent" "tokenPath" ])
(mkRenamedOptionModule [ "services" "buildkite-agent" "openssh" "privateKey" ] [ "services" "buildkite-agent" "openssh" "privateKeyPath" ])
(mkRenamedOptionModule [ "services" "buildkite-agent" "openssh" "publicKey" ] [ "services" "buildkite-agent" "openssh" "publicKeyPath" ])
];
}

View File

@ -188,8 +188,7 @@ let
/* date format to be used while writing to the owncloud logfile */
'logdateformat' => 'F d, Y H:i:s',
/* timezone used while writing to the owncloud logfile (default: UTC) */
'logtimezone' => '${serverInfo.fullConfig.time.timeZone}',
${tzSetting}
/* Append all database queries and parameters to the log file.
(watch out, this option can increase the size of your log file)*/
@ -339,6 +338,31 @@ let
'';
tzSetting = let tz = serverInfo.fullConfig.time.timeZone; in optionalString (!isNull tz) ''
/* timezone used while writing to the owncloud logfile (default: UTC) */
'logtimezone' => '${tz}',
'';
postgresql = serverInfo.fullConfig.services.postgresql.package;
setupDb = pkgs.writeScript "setup-owncloud-db" ''
#!${pkgs.stdenv.shell}
PATH="${postgresql}/bin"
createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
createdb "${config.dbName}" -O "${config.dbUser}" || true
psql -U postgres -d postgres -c "alter user ${config.dbUser} with password '${config.dbPassword}';" || true
QUERY="CREATE TABLE appconfig
( appid VARCHAR( 255 ) NOT NULL
, configkey VARCHAR( 255 ) NOT NULL
, configvalue VARCHAR( 255 ) NOT NULL
);
GRANT ALL ON appconfig TO ${config.dbUser};
ALTER TABLE appconfig OWNER TO ${config.dbUser};"
psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
'';
in
rec {
@ -353,7 +377,7 @@ rec {
''}
<Directory ${config.package}>
${builtins.readFile "${config.package}/.htaccess"}
Include ${config.package}/.htaccess
</Directory>
'';
@ -373,7 +397,7 @@ rec {
defaultText = "pkgs.owncloud70";
example = literalExample "pkgs.owncloud70";
description = ''
PostgreSQL package to use.
ownCloud package to use.
'';
};
@ -574,13 +598,7 @@ rec {
chmod -R o-rwx ${config.dataDir}
chown -R wwwrun:wwwrun ${config.dataDir}
${pkgs.postgresql}/bin/createuser -s -r postgres
${pkgs.postgresql}/bin/createuser --no-superuser --no-createdb --no-createrole "${config.dbUser}" || true
${pkgs.postgresql}/bin/createdb "${config.dbName}" -O "${config.dbUser}" || true
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -U postgres -d postgres -c "alter user ${config.dbUser} with password '${config.dbPassword}';" || true
QUERY="CREATE TABLE appconfig (appid VARCHAR( 255 ) NOT NULL ,configkey VARCHAR( 255 ) NOT NULL ,configvalue VARCHAR( 255 ) NOT NULL); GRANT ALL ON appconfig TO ${config.dbUser}; ALTER TABLE appconfig OWNER TO ${config.dbUser};"
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
${pkgs.sudo}/bin/sudo -u postgres ${setupDb}
fi
if [ -e ${config.package}/config/ca-bundle.crt ]; then
@ -591,7 +609,11 @@ rec {
chown wwwrun:wwwrun ${config.dataDir}/owncloud.log || true
QUERY="INSERT INTO groups (gid) values('admin'); INSERT INTO users (uid,password) values('${config.adminUser}','${builtins.hashString "sha1" config.adminPassword}'); INSERT INTO group_user (gid,uid) values('admin','${config.adminUser}');"
${pkgs.sudo}/bin/sudo -u postgres ${pkgs.postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
QUERY="INSERT INTO groups (gid) values('admin');
INSERT INTO users (uid,password)
values('${config.adminUser}','${builtins.hashString "sha1" config.adminPassword}');
INSERT INTO group_user (gid,uid)
values('admin','${config.adminUser}');"
${pkgs.sudo}/bin/sudo -u postgres ${postgresql}/bin/psql -h "/tmp" -U postgres -d ${config.dbName} -Atw -c "$QUERY" || true
'';
}

View File

@ -59,12 +59,6 @@ let
# Now it should be safe to assume that the script was called with the
# expected parameters.
${optionalString cfg.displayManager.logToJournal ''
if [ -z "$_DID_SYSTEMD_CAT" ]; then
_DID_SYSTEMD_CAT=1 exec ${config.systemd.package}/bin/systemd-cat -t xsession -- "$0" "$@"
fi
''}
. /etc/profile
cd "$HOME"
@ -72,16 +66,23 @@ let
sessionType="$1"
if [ "$sessionType" = default ]; then sessionType=""; fi
${optionalString (!cfg.displayManager.job.logsXsession && !cfg.displayManager.logToJournal) ''
exec > ~/.xsession-errors 2>&1
''}
${optionalString cfg.startDbusSession ''
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
exec ${pkgs.dbus.dbus-launch} --exit-with-session "$0" "$sessionType"
fi
''}
${optionalString cfg.displayManager.job.logToJournal ''
if [ -z "$_DID_SYSTEMD_CAT" ]; then
export _DID_SYSTEMD_CAT=1
exec ${config.systemd.package}/bin/systemd-cat -t xsession "$0" "$sessionType"
fi
''}
${optionalString cfg.displayManager.job.logToFile ''
exec &> >(tee ~/.xsession-errors)
''}
# Start PulseAudio if enabled.
${optionalString (config.hardware.pulseaudio.enable) ''
${optionalString (!config.hardware.pulseaudio.systemWide)
@ -306,26 +307,24 @@ in
description = "Additional environment variables needed by the display manager.";
};
logsXsession = mkOption {
logToFile = mkOption {
type = types.bool;
default = false;
description = ''
Whether the display manager redirects the
output of the session script to
<filename>~/.xsession-errors</filename>.
Whether the display manager redirects the output of the
session script to <filename>~/.xsession-errors</filename>.
'';
};
};
logToJournal = mkOption {
type = types.bool;
default = true;
description = ''
Whether the display manager redirects the output of the
session script to the systemd journal.
'';
};
logToJournal = mkOption {
type = types.bool;
default = true;
description = ''
By default, the stdout/stderr of sessions is written
to <filename>~/.xsession-errors</filename>. When this option
is enabled, it will instead be written to the journal.
'';
};
};

View File

@ -190,7 +190,7 @@ in
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = {
logsXsession = true;
logToFile = true;
# lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
execCmd = ''

View File

@ -205,7 +205,7 @@ in
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = {
logsXsession = true;
logToFile = true;
environment = {
# Load themes from system environment

View File

@ -220,7 +220,7 @@ in
'';
services.xserver.displayManager.job = {
logsXsession = true;
logToFile = true;
execCmd = ''
${optionalString (cfg.pulseaudio)

View File

@ -5,7 +5,13 @@
with lib;
let kernel = config.boot.kernelPackages.kernel; in
let
kernel = config.boot.kernelPackages.kernel;
# FIXME: figure out a common place for this instead of copy pasting
serialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
in
{
@ -22,8 +28,8 @@ let kernel = config.boot.kernelPackages.kernel; in
systemd.services.backdoor =
{ wantedBy = [ "multi-user.target" ];
requires = [ "dev-hvc0.device" "dev-ttyS0.device" ];
after = [ "dev-hvc0.device" "dev-ttyS0.device" ];
requires = [ "dev-hvc0.device" "dev-${serialDevice}.device" ];
after = [ "dev-hvc0.device" "dev-${serialDevice}.device" ];
script =
''
export USER=root
@ -40,7 +46,7 @@ let kernel = config.boot.kernelPackages.kernel; in
cd /tmp
exec < /dev/hvc0 > /dev/hvc0
while ! exec 2> /dev/ttyS0; do sleep 0.1; done
while ! exec 2> /dev/${serialDevice}; do sleep 0.1; done
echo "connecting to host..." >&2
stty -F /dev/hvc0 raw -echo # prevent nl -> cr/nl conversion
echo
@ -49,10 +55,10 @@ let kernel = config.boot.kernelPackages.kernel; in
serviceConfig.KillSignal = "SIGHUP";
};
# Prevent agetty from being instantiated on ttyS0, since it
# interferes with the backdoor (writes to ttyS0 will randomly fail
# Prevent agetty from being instantiated on ${serialDevice}, since it
# interferes with the backdoor (writes to ${serialDevice} will randomly fail
# with EIO). Likewise for hvc0.
systemd.services."serial-getty@ttyS0".enable = false;
systemd.services."serial-getty@${serialDevice}".enable = false;
systemd.services."serial-getty@hvc0".enable = false;
boot.initrd.preDeviceCommands =
@ -88,7 +94,7 @@ let kernel = config.boot.kernelPackages.kernel; in
# Panic if an error occurs in stage 1 (rather than waiting for
# user intervention).
boot.kernelParams =
[ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
[ "console=${serialDevice}" "panic=1" "boot.panic_on_fail" ];
# `xwininfo' is used by the test driver to query open windows.
environment.systemPackages = [ pkgs.xorg.xwininfo ];

View File

@ -14,6 +14,17 @@ with lib;
let
qemu = config.system.build.qemu or pkgs.qemu_test;
qemuKvm = {
"i686-linux" = "${qemu}/bin/qemu-kvm";
"x86_64-linux" = "${qemu}/bin/qemu-kvm -cpu kvm64";
"armv7l-linux" = "${qemu}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
"aarch64-linux" = "${qemu}/bin/qemu-system-aarch64 -enable-kvm -machine virt -cpu host";
}.${pkgs.stdenv.system};
# FIXME: figure out a common place for this instead of copy pasting
serialDevice = if pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64 then "ttyS0"
else if pkgs.stdenv.isArm || pkgs.stdenv.isAarch64 then "ttyAMA0"
else throw "Unknown QEMU serial device for system '${pkgs.stdenv.system}'";
vmName =
if config.networking.hostName == ""
@ -23,7 +34,7 @@ let
cfg = config.virtualisation;
qemuGraphics = if cfg.graphics then "" else "-nographic";
kernelConsole = if cfg.graphics then "" else "console=ttyS0";
kernelConsole = if cfg.graphics then "" else "console=${serialDevice}";
ttys = [ "tty1" "tty2" "tty3" "tty4" "tty5" "tty6" ];
# Shell script to start the VM.
@ -72,11 +83,10 @@ let
'')}
# Start QEMU.
exec ${qemu}/bin/qemu-kvm \
exec ${qemuKvm} \
-name ${vmName} \
-m ${toString config.virtualisation.memorySize} \
-smp ${toString config.virtualisation.cores} \
${optionalString (pkgs.stdenv.system == "x86_64-linux") "-cpu kvm64"} \
${concatStringsSep " " config.virtualisation.qemu.networkingOptions} \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \
@ -434,7 +444,9 @@ in
virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
virtualisation.qemu.options = [ "-vga std" "-usbdevice tablet" ];
# FIXME: Figure out how to make this work on non-x86
virtualisation.qemu.options =
mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ "-vga std" "-usbdevice tablet" ];
# Mount the host filesystem via 9P, and bind-mount the Nix store
# of the host into our own filesystem. We use mkVMOverride to

View File

@ -263,7 +263,7 @@ in rec {
tests.hibernate = callTest tests/hibernate.nix {};
tests.hound = callTest tests/hound.nix {};
tests.i3wm = callTest tests/i3wm.nix {};
tests.initrd-network-ssh = callTest tests/initrd-network-ssh.nix {};
tests.initrd-network-ssh = callTest tests/initrd-network-ssh {};
tests.installer = callSubTests tests/installer.nix {};
tests.influxdb = callTest tests/influxdb.nix {};
tests.ipv6 = callTest tests/ipv6.nix {};
@ -309,6 +309,7 @@ in rec {
tests.leaps = callTest tests/leaps.nix { };
tests.nsd = callTest tests/nsd.nix {};
tests.openssh = callTest tests/openssh.nix {};
tests.owncloud = callTest tests/owncloud.nix {};
tests.pam-oath-login = callTest tests/pam-oath-login.nix {};
#tests.panamax = hydraJob (import tests/panamax.nix { system = "x86_64-linux"; });
tests.peerflix = callTest tests/peerflix.nix {};

View File

@ -1,19 +1,6 @@
import ./make-test.nix ({ pkgs, lib, ... }:
import ../make-test.nix ({ pkgs, lib, ... }:
let
keys = pkgs.runCommand "gen-keys" {
outputs = [ "out" "dbPub" "dbPriv" "sshPub" "sshPriv" ];
buildInputs = with pkgs; [ dropbear openssh ];
}
''
touch $out
dropbearkey -t rsa -f $dbPriv -s 4096 | sed -n 2p > $dbPub
ssh-keygen -q -t rsa -b 4096 -N "" -f client
mv client $sshPriv
mv client.pub $sshPub
'';
in {
{
name = "initrd-network-ssh";
meta = with lib.maintainers; {
maintainers = [ willibutz ];
@ -32,9 +19,9 @@ in {
enable = true;
ssh = {
enable = true;
authorizedKeys = [ "${readFile keys.sshPub}" ];
authorizedKeys = [ "${readFile ./openssh.pub}" ];
port = 22;
hostRSAKey = keys.dbPriv;
hostRSAKey = ./dropbear.priv;
};
};
boot.initrd.preLVMCommands = ''
@ -56,7 +43,7 @@ in {
"${toString (head (splitString " " (
toString (elemAt (splitString "\n" config.networking.extraHosts) 2)
)))} "
"${readFile keys.dbPub}"
"${readFile ./dropbear.pub}"
];
};
};
@ -65,7 +52,7 @@ in {
testScript = ''
startAll;
$client->waitForUnit("network.target");
$client->copyFileFromHost("${keys.sshPriv}","/etc/sshKey");
$client->copyFileFromHost("${./openssh.priv}","/etc/sshKey");
$client->succeed("chmod 0600 /etc/sshKey");
$client->waitUntilSucceeds("ping -c 1 server");
$client->succeed("ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'touch /fnord'");

Binary file not shown.

View File

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzJ0OniLB91MpPC86I1m3wwJeAc+Gme7bAuaLIU/cSfPwxT5NO7MfCp0Pu94gYDKtDXMs/wXg0bTAVDeAFFkdIj6kBBumEmQLCTL48q2UxDIXVLT/E/AAgj6q7WwgCg7fwm4Vjn4z7aUyBx8EfRy+5/SQyeYla3D/lFYgMi5x4D6J+yeR+JPAptDE/IR5IizNV7mY0ZcoXYyHrrehI1tTYEEqjX13ZqS4OCBFWwHe1QHhRNM+jHhcATbgikjAj8FyFPtLvc+dSVtkuhQktQl36Bi8zMUQcV6+mM7Ln6DBcDlM9urHKLYPTWmUAyhxM955iglOn5z0RaAIcyNMT6hz0rHaNf0BIlmbXoTC0XGjHh/OnoOEC/zg0JqgQTnPiU45K4TnRSSXp2GfiDfiQAK0+HaXACkjuFR68u7WCZpB1Bse1OgKNClFqtRhIr5DilUb2/e5DCCmFkddMUcjmYqzZdbXNt7fo8CFULe+mbiCp8+tMg4aRTaDZ/Hk93nCvGE5TP2ypEMbfL6nRVKvXOjhdvSQQgKwx+O003FDEHCSG0Bpageh7yVpna+SPrbGklce7MjTpbx3iIwmvKpQ6asnK1L3KkahpY1S3NhQ+/S3Gs8KWQ5LAU+d3xiPX3jfIVHsCIIyxHDbwcJvxM4MFBFQpqRMD6E+LoM9RHjl4C9k2iQ== tmtynkky@duuni

View File

@ -0,0 +1,12 @@
with import ../../.. {};
runCommand "gen-keys" {
buildInputs = [ dropbear openssh ];
}
''
mkdir $out
dropbearkey -t rsa -f $out/dropbear.priv -s 4096 | sed -n 2p > $out/dropbear.pub
ssh-keygen -q -t rsa -b 4096 -N "" -f client
mv client $out/openssh.priv
mv client.pub $out/openssh.pub
''

View File

@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEA7+9A2PCPOTAlFmrablrUWA+VZdAuLfM6JXeHsOF7ZbC2F6lv
WmvDM925DQqhiAjcgWnt5WHWS5Y+b7lGnuzT7fyKegXd80nCRmqlpSG3srX0/lxR
aQAJLzfoDjcsF+ceswQo6GSsYnCHVxMNs007gbbVY3f7o+sWZtLdxJPD2iHvl5Zr
LK0d1RLMmU6cfIhIABlL0S8EWiv29RROepsCQnS0dnK2b+von1SCYoggvAMe2ToA
IAJ8+uqaYfGAyn9q8fjZiRHxLmKDq90tKoCUL5r/2dmEIE+t8T/3PfHoq1QzZts9
W9idhBdT21dEXBtGyoMtckp5njk5m82LQDYiOXkuSoIUhSOteh5g7fBv1BtVSERx
Jg3UeJjPeGKFwdnzapmAKC2w/6V8xcIINNA+fhZA7B9fD1RAi2TECZ+gyMYDc4T+
USlMSm9cfvSOrf2+5ngtFb84nHjqvClxCMLu+bCWK8HamqUzhE/a5LbR+48E7PyG
s3KV+sWFN9KOnakTjj/6iQhXZRhgeAK39F2XTk5Ms5Y+BRSStnMoMZA2grIV+jHi
1zbWokVqXPI5YRo5isR/PgtKAV6FfNWumcYoFJ9F40pMHQ6hJVEmtrCBx7EApSl3
mSGbQJUmilLC51qNhwQRbD//ZtpIrN82HTMKzZ6kj7kDCdsff+wsnkIXmmMCAwEA
AQKCAgA4tMINw6UF7hQF3VEsnbjr6xrzCiWv5HlMm5htPI1OdlpC81+G7ksfOfrf
UzDkFrwOtftsqBfem268Nvyy2OQprfMIbdSMCFWrEM9/XJ2u1gRGDYmMGF8TUtI8
cduw9oWx53zHl+uKBHBoKu+k/c7flFeQf63wisIroRCawhWau0SF/h3sXCndzuie
Hw8q+4aQx2m80bDkotlmCNuXbIU3MZ/pEql9gDLlXTLHmMaryM0EqAmZhx0ErGe6
WDqJIV4kPB0loSDwRoY6GzbugZ8ENUzcruTkQhCpIOYNNNw5idfwKkaxK1vm+SBv
iYt1fVjYyfH2vhVKSNoNsaGEloa1u4Dymt/FpFztEpRzHXcw93N8BdLxJ4OUhzm2
iAbpiyjniTIeAVVi7BUwLXh5WAx8nT0eeb1zKoZg1p1ciK5cYl1Uel7j8xRycsSW
3YgmtuPqY4Agbc9v3eXbQZNDk48JFMEqpIxk97FAkRYpzfxg5Qq14WJCp60CkdRt
T60hXy8lT/BcI8OWLfGJuBbsVLNRiC7PpwqRKQAinXSv134FpP7jrhpkMybs2oIS
5obRG7J5OfOTp925erG5mrpwqa3BPkgqx347Wj9z8quOZyuhi+XaPvqmPtvs5JOl
4RCqjt6RQlHm7xos9ZZGI4jDAIFaFWgyVZrYplOgwxWma4DTgQKCAQEA9+tizQRU
lF0lxNcEPvsFnYJo80Y+MQK9VdtlhR19YuSfwP1NCaMG1MhQ+PVBVmepOwJMRJR7
9PLfOouNMfixKBGP12dtStMuh7jowq/BxhRI6JWp3RhTZ1yJ9ouzHze7IDrEBa6w
p0hUu9H0Sbt51LXbC3JmTyhbdhfry559DfyGW1Ma/bv/pihL9B5Y7sNf1thNp1gi
GbQ9B+o2Yyw8ZD8zY+sl+aYDSWyCtcBV/KXEF74Bkfs/a5ExJ00X0jYj/TAp2ray
T4PY0FR8wN/O10bFLP9j+Xa/ywbcPhoj8nvVRIg9VfWT/QaEd+KR0EZVxdjCCqne
enbSQksTpAZNwQKCAQEA98E+BMmS+yHUVUhNZABtQ5avwuV4+DoSN8KTp3xwQ0CH
m9fWxSDs12FdyMhDxrJPeywvHtZ18/7cl3dr8wnFVE0s4ongnRDXsNk5xN6J3AaO
KqW4HF9cbwZqzLILy8TrO+EK/EQV9FypbrxqvxAlP1kezIA2CJNzVRAgimSuV/H7
05HTnp5W06fjtEf8U1CUrdNetoSROUo1j/IMGPYGlsBFYAGrj5y/BlKd+3T3kjRp
Xje7HpiykjrZHn0WDp04Ln+u9nveEewXmHKch313emt7HpW0xspp8JM8OZtEKozk
D5PfYdBfMJJOUlqovCCzTTJ6kNOahknKXFeO/qs5IwKCAQEAjF0/zhWikXF/fcfD
Bql2z2vTYdEmSvdjHSYff1Nn90K71DdVk5wytOxJM/sfp/z+yoMNjVKIL/IGQw5Z
va4xFx+CUhGjxlZ0pLEjT37U9gHsGYsK5jvslLvG/MixfH5AOwoqi5ERQVTpbIF9
jvVPEAh6YSu/ExglWGJIxTsRUIblxvTxdjEnl/p+rlM0RNJnA6vpo1J51BXA7CdF
7bZQ5u0Feo/bK1I70ClYg/DGfkmYEV0pZG5cxNkqfDbgwsqWa7YGLGd94xkh+ymq
jETqxeWyozxhbQ83nYpfzeVc7t//qlJ8b5uf0wUKoRmtNr9rtp13lzP/21REzPXW
w+oxwQKCAQAoAf2Y2lAw25KlPuq4ZlU+n9u8FkBFnWMJvBMJ7c9XHNmJMf6NkLaO
RTvWy3geYvbwxf7J9QnRH+vRTciR05cY+Olxn6A03N5nwXxRrToH3MsiWeZ0NnX/
u8KNUYcUHbV60ulqOThuYHQ/3I9EUUAijaqqjV2sXts19ke68W0x6HKpBJhuudT9
ktPzbdhyP8Xyl/pocNnerXwexZBsi3Ye6+eIDFz+8OnsBHVcgNPluS72tvsxgqj7
ciNTiBGCxKKo55eCWBhRPpXE2WUrf/hGPYsBMl2h6FfZMH1+M/N7B4tgdJmS+woU
Ftws8lTjJEiwA6HFN1ZxrwLNjJobx9yPAoIBAE0igsBuWWn6rXeOPylYg4264XOq
8gb94pte2n9amDgCzyCn8m6AL3snLC/AoCD19DK+gyK0ukoesXPa3iX6w2xv69ZC
urDx36Jhd4zrJb4QsFPoeKfDP+UvNVZaS41vipRRzY/y11em15prUZ4U8FA/UT1Y
FzkBo9r6iUZRnyBLppMuEfWASDtuRNmeIHynoT1AcQOH3l9vR210iEpmAuJr0CYA
bvTuz3UzzGGEAuIUvuaiRtkfKY52jBmiEr7SSPCr1HvLj3Ccz8bgjgR2kiXmcU50
1zLnaPAD44LZ/0Fjqj+PimQGT6K7CNXPllmYh7MvoU52g3SVPf6rHlIR0Nc=
-----END RSA PRIVATE KEY-----

View File

@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDv70DY8I85MCUWatpuWtRYD5Vl0C4t8zold4ew4XtlsLYXqW9aa8Mz3bkNCqGICNyBae3lYdZLlj5vuUae7NPt/Ip6Bd3zScJGaqWlIbeytfT+XFFpAAkvN+gONywX5x6zBCjoZKxicIdXEw2zTTuBttVjd/uj6xZm0t3Ek8PaIe+XlmssrR3VEsyZTpx8iEgAGUvRLwRaK/b1FE56mwJCdLR2crZv6+ifVIJiiCC8Ax7ZOgAgAnz66pph8YDKf2rx+NmJEfEuYoOr3S0qgJQvmv/Z2YQgT63xP/c98eirVDNm2z1b2J2EF1PbV0RcG0bKgy1ySnmeOTmbzYtANiI5eS5KghSFI616HmDt8G/UG1VIRHEmDdR4mM94YoXB2fNqmYAoLbD/pXzFwgg00D5+FkDsH18PVECLZMQJn6DIxgNzhP5RKUxKb1x+9I6t/b7meC0VvziceOq8KXEIwu75sJYrwdqapTOET9rkttH7jwTs/IazcpX6xYU30o6dqROOP/qJCFdlGGB4Arf0XZdOTkyzlj4FFJK2cygxkDaCshX6MeLXNtaiRWpc8jlhGjmKxH8+C0oBXoV81a6ZxigUn0XjSkwdDqElUSa2sIHHsQClKXeZIZtAlSaKUsLnWo2HBBFsP/9m2kis3zYdMwrNnqSPuQMJ2x9/7CyeQheaYw== tmtynkky@duuni

39
nixos/tests/owncloud.nix Normal file
View File

@ -0,0 +1,39 @@
import ./make-test.nix ({ pkgs, ... }:
{
name = "owncloud";
nodes =
{ web =
{ config, pkgs, ... }:
{
services.postgresql.enable = true;
services.httpd = {
enable = true;
logPerVirtualHost = true;
adminAddr = "example@example.com";
virtualHosts = [
{
hostName = "owncloud";
extraSubservices =
[
{
serviceType = "owncloud";
adminPassword = "secret";
dbPassword = "secret";
}
];
}
];
};
};
};
testScript = ''
startAll;
$web->waitForUnit("postgresql");
$web->waitForUnit("httpd");
$web->succeed("curl -L 127.0.0.1:80");
'';
})

View File

@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/kid3-qt --prefix QT_PLUGIN_PATH : $out/lib/qt4/plugins
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "A simple and powerful audio tag editor";
longDescription = ''

View File

@ -2,7 +2,7 @@
, gnome3, libnotify, intltool, itstool, glib, gtk3, libxml2
, coreutils, libsecret, pcre, libxkbcommon, wrapGAppsHook
, libpthreadstubs, libXdmcp, epoxy, at_spi2_core, dbus, libgpgerror
, appstream-glib, desktop_file_utils, atk, pango, duplicity
, appstream-glib, desktop_file_utils, duplicity
}:
stdenv.mkDerivation rec {
@ -44,29 +44,15 @@ stdenv.mkDerivation rec {
glib-compile-schemas $out/share/glib-2.0/schemas
'';
# Manual rpath definition until https://github.com/mesonbuild/meson/issues/314 is fixed
postFixup =
let
rpath = stdenv.lib.makeLibraryPath [
glib
gtk3
gnome3.gnome_online_accounts
gnome3.libpeas
gnome3.nautilus
libgpgerror
libsecret
# Transitive
atk
pango
];
in ''
# Unwrap accidentally wrapped library
mv $out/libexec/deja-dup/tools/.libduplicity.so-wrapped $out/libexec/deja-dup/tools/libduplicity.so
postFixup = ''
# Unwrap accidentally wrapped library
mv $out/libexec/deja-dup/tools/.libduplicity.so-wrapped $out/libexec/deja-dup/tools/libduplicity.so
for elf in "$out"/bin/.*-wrapped "$out"/libexec/deja-dup/.deja-dup-monitor-wrapped "$out"/libexec/deja-dup/tools/*.so "$out"/lib/deja-dup/*.so "$out"/lib/nautilus/extensions-3.0/*.so; do
patchelf --set-rpath '${rpath}':"$out/lib/deja-dup" "$elf"
done
'';
# Patched meson does not add internal libraries to rpath
for elf in "$out/bin/.deja-dup-wrapped" "$out/libexec/deja-dup/.deja-dup-monitor-wrapped" "$out/libexec/deja-dup/tools/libduplicity.so"; do
patchelf --set-rpath "$(patchelf --print-rpath "$elf"):$out/lib/deja-dup" "$elf"
done
'';
meta = with stdenv.lib; {
description = "A simple backup tool";

View File

@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
libkomparediff2
];
enableParallelBuilding = true;
meta = with stdenv.lib; {
maintainers = [ maintainers.ambrop72 ];
platforms = platforms.linux;

View File

@ -1,20 +1,26 @@
{ stdenv, python3Packages, fetchurl }:
{ stdenv, python3Packages, fetchFromGitHub }:
with python3Packages;
buildPythonApplication rec {
name = "${pname}-${version}";
pname = "cheat";
version = "2.2.1";
version = "2.2.2";
propagatedBuildInputs = with python3Packages; [ docopt pygments ];
propagatedBuildInputs = [ docopt pygments ];
src = fetchPypi {
inherit pname version;
sha256 = "0w4k1h02p2gjv5wcr1c7r0ynb7v50qajx4hpyxz0ndh96f6x30pl";
src = fetchFromGitHub {
owner = "chrisallenlane";
repo = "cheat";
rev = version;
sha256 = "1da4m4n6nivjakpll6jj0aszrv24g2zax74034lzpv3pbh84fvas";
};
# no tests available
doCheck = false;
postInstall = ''
install -D man1/cheat.1.gz $out/share/man/man1/cheat.1.gz
'';
meta = with stdenv.lib; {
description = "cheat allows you to create and view interactive cheatsheets on the command-line";
maintainers = with maintainers; [ mic92 ];

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "exercism-${version}";
version = "2.4.0";
version = "2.4.1";
goPackagePath = "github.com/exercism/cli";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "exercism";
repo = "cli";
rev = "v${version}";
sha256 = "1hl13sr4ymqg9sjhkxdmhf8cfw69cic3bysw34xfv2j6bjjxfwaa";
sha256 = "1nab4459zi2gkh18k9vsm54bz39c2sb60v2xy0i72j1vd99axjjj";
};
meta = with stdenv.lib; {

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation {
# MojoSetups have a ZIP file at the end. ZIPs magic string is
# most often PK\x03\x04. This *should* work for future updates,
# but feel free to come up with something more reasonable.
dataZipOffset=$(grep --max-count=1 --byte-offset --only-matching --text $'PK\x03\x04' $curSrc | cut -d: -f1)
dataZipOffset=$(grep --max-count=1 --byte-offset --only-matching --text ''$'PK\x03\x04' $curSrc | cut -d: -f1)
dd bs=$dataZipOffset skip=1 if=$curSrc of=data.zip 2>/dev/null
unzip -q data.zip "data/*"
rm data.zip

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc }:
{ stdenv, fetchurl, patchelf, makeWrapper, xorg, gcc, gcc-unwrapped }:
assert stdenv.isLinux;
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
buildPhase = with xorg; ''
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libX11 libXext libXrender libXtst libXi ]}" ./jre/lib/amd64/xawt/libmawt.so
patchelf --set-rpath "${gcc.cc}/lib" ./libiKVM64.so
patchelf --set-rpath "${gcc-unwrapped.lib}/lib" ./libiKVM64.so
patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ libXcursor libX11 libXext libXrender libXtst libXi ]}" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/javaws
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/amd64/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
'';

View File

@ -0,0 +1,34 @@
{ stdenv, fetchurl, xorg, x11 }:
stdenv.mkDerivation rec {
version = "1.2.sakura.5";
vname = "1.2.5";
name = "oneko-${vname}";
src = fetchurl {
url = "http://www.daidouji.com/oneko/distfiles/oneko-${version}.tar.gz";
sha256 = "2c2e05f1241e9b76f54475b5577cd4fb6670de058218d04a741a04ebd4a2b22f";
};
buildInputs = [ xorg.imake xorg.gccmakedep x11 ];
configurePhase = "xmkmf";
installPhase = ''
make install BINDIR=$out/bin
make install.man MANPATH=$out/share/man
'';
meta = with stdenv.lib; {
description = "Creates a cute cat chasing around your mouse cursor";
longDescription = ''
Oneko changes your mouse cursor into a mouse
and creates a little cute cat, which starts
chasing around your mouse cursor.
When the cat is done catching the mouse, it starts sleeping.
'';
homepage = "http://www.daidouji.com/oneko/";
license = licenses.publicDomain;
maintainers = [ maintainers.xaverdh ];
meta.platforms = platforms.linux;
};
}

View File

@ -3,7 +3,7 @@
buildGoPackage rec {
name = "machine-${version}";
version = "0.12.2";
version = "0.13.0";
goPackagePath = "github.com/docker/machine";
@ -11,7 +11,7 @@ buildGoPackage rec {
rev = "v${version}";
owner = "docker";
repo = "machine";
sha256 = "0ikgjb6x6h7f43vjabxnqgrrlq516zsz7vj945hca1w919jpdwhf";
sha256 = "1bqblgz2avrvp9xv6rlvgl0xh2ghpml3a00xhq3mmzkznayw6chq";
};
postInstall = ''

View File

@ -0,0 +1,23 @@
{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "kompose-${version}";
version = "1.5.0";
goPackagePath = "github.com/kubernetes/kompose";
src = fetchFromGitHub {
rev = "v${version}";
owner = "kubernetes";
repo = "kompose";
sha256 = "1r5f8jbr2c1xxb5fpfgy23w4m30zahhmrw23jlk1hpx2w1pi1iyh";
};
meta = with stdenv.lib; {
description = "A tool to help users who are familiar with docker-compose move to Kubernetes";
homepage = https://github.com/kubernetes/kompose;
license = licenses.asl20;
maintainers = with maintainers; [thpham];
platforms = platforms.unix;
};
}

View File

@ -4,7 +4,7 @@
let
version = "4.30.0.1663";
version = "4.30.2.1665";
rpath = stdenv.lib.makeLibraryPath [
xdg_utils
@ -44,7 +44,7 @@ let
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
sha256 = "13mh49nx75pvaygzi70sg96iad3mn9ym0p4p3ja46amkxbdkq7h7";
sha256 = "0gk1h2p5apppw94353378b2z93c5kllhgadb91z1g3mczczsbm0n";
}
else
throw "HipChat is not supported on ${stdenv.system}";

View File

@ -7,13 +7,13 @@
mkDerivation rec {
name = "qtox-${version}";
version = "1.12.1";
version = "1.13.0";
src = fetchFromGitHub {
owner = "qTox";
repo = "qTox";
rev = "v${version}";
sha256 = "1l1k8s10jj6nm9i33m8xhjwdhikvp7csdp6x1gxjxdj526aak8q9";
sha256 = "08x71p23d0sp0w11k8z3wf3k56iclmdq9x652n8ggidgyrdi9f6y";
};
buildInputs = [

View File

@ -1,29 +1,29 @@
{ mkDerivation, lib, fetchgit, qtbase, qtquickcontrols, cmake }:
{ stdenv, lib, fetchFromGitHub, qtbase, qtquickcontrols, cmake, libqmatrixclient }:
mkDerivation rec {
name = "quaternion-git-${version}";
version = "2017-10-07";
stdenv.mkDerivation rec {
name = "quaternion-${version}";
version = "0.0.4";
# quaternion and tensor share the same libqmatrixclient library as a git submodule
#
# As all 3 projects are in very early stages, we simply load the submodule.
#
# At some point in the future, we should separate out libqmatrixclient into its own
# derivation.
# libqmatrixclient doesn't support dynamic linking as of 0.1 so we simply pull in the source
src = fetchgit {
url = "https://github.com/QMatrixClient/Quaternion.git";
rev = "1007f2ca4ad5e8cc5dba437d6a0cdea07d1f1332";
sha256 = "0hvc81ld7fcwyrxsr2q3yvzh0rzhgmflby4nmyzcbjds7b7pv0xq";
fetchSubmodules = true;
src = fetchFromGitHub {
owner = "QMatrixClient";
repo = "Quaternion";
rev = "v${version}";
sha256 = "0an2nvwjs1hf7cb4maaj3rskhgsjgimzazsx53ndxskzwcssidvi";
};
buildInputs = [ qtbase qtquickcontrols ];
buildInputs = [ qtbase qtquickcontrols libqmatrixclient ];
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-Wno-dev"
];
enableParallelBuilding = true;
# take the source from libqmatrixclient
postPatch = ''
rm -rf lib
ln -s ${libqmatrixclient.src} lib
'';
postInstall = ''
substituteInPlace $out/share/applications/quaternion.desktop \

View File

@ -1,5 +1,8 @@
{ stdenv, fetchgit, qtbase, qtquickcontrols, qmake, makeDesktopItem }:
# we now have libqmatrixclient so a future version of tensor that supports it
# should use that
stdenv.mkDerivation rec {
name = "tensor-git-${version}";
version = "2017-02-21";

View File

@ -72,7 +72,6 @@ in stdenv.mkDerivation rec {
"--enable-system-sqlite"
#"--enable-system-cairo"
"--enable-startup-notification"
"--enable-content-sandbox" # available since 26.0, but not much info available
"--disable-crashreporter"
"--disable-tests"
"--disable-necko-wifi" # maybe we want to enable this at some point

View File

@ -15,7 +15,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches = [
./patches/fix-13791.patch
# https://bugzilla.abisource.com/show_bug.cgi?id=13791
(fetchurl {
url = https://bugzilla.abisource.com/attachment.cgi?id=5860;
sha256 = "02p8kz02xm1197zcpzjs010mna9hxsbq5lwgxr8b7qhh9yxja7al";
})
];
buildInputs =

View File

@ -1,161 +0,0 @@
From 46388f407c893123d9b3824a7570b050fc3b049b Mon Sep 17 00:00:00 2001
From: James Cameron <quozl@laptop.org>
Date: Thu, 17 Aug 2017 15:05:39 +1000
Subject: [PATCH] Fix flickering
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- in GR_Caret::s_blink_timeout, avoid repeated calls by stopping the
timer, it will be restarted when needed,
- in GR_Caret::s_enable, avoid extra unnecessary _blink calls when blink
is enabled, as they serve no purpose,
- in XAP_UnixFrameImpl::_fe::expose, use the Cairo clip rectangle
instead of the expose event area, thanks to Hubert Figuière in
865c1dda7e13deff04573ffc42028b71fee07f9c,
- in XAP_UnixFrameImpl::_fe::expose, do not return FALSE, as other
handlers will need to handle the draw event,
- in GR_UnixCairoGraphics::flush, fix excessive draw events;
gtk_widget_queue_draw only marks the widget as needing redrawing,
which causes a draw event for each call to flush, therefore every
caret blink, so use gdk_flush instead,
Fixes AbiSource #13791.
Fixes Debian #851052.
Fixes Fedora #1287835.
Fixes Ubuntu LP: #1574278.
Fixes Sugar Labs #4915.
Signed-off-by: James Cameron <quozl@laptop.org>
---
src/af/gr/gtk/gr_UnixCairoGraphics.cpp | 4 +---
src/af/gr/xp/gr_Caret.cpp | 13 ++++---------
src/af/xap/gtk/xap_UnixFrameImpl.cpp | 27 ++++++++++++++++++---------
src/af/xap/gtk/xap_UnixFrameImpl.h | 2 +-
4 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/src/af/gr/gtk/gr_UnixCairoGraphics.cpp b/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
index 509bd37..7c3c06f 100644
--- a/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
+++ b/src/af/gr/gtk/gr_UnixCairoGraphics.cpp
@@ -577,9 +577,7 @@ void GR_UnixCairoGraphics::_endPaint()
void GR_UnixCairoGraphics::flush(void)
{
- if (m_Widget) {
- gtk_widget_queue_draw(m_Widget);
- }
+ gdk_flush();
}
bool GR_UnixCairoGraphics::queryProperties(GR_Graphics::Properties gp) const
diff --git a/src/af/gr/xp/gr_Caret.cpp b/src/af/gr/xp/gr_Caret.cpp
index 5d5d116..a8aa451 100644
--- a/src/af/gr/xp/gr_Caret.cpp
+++ b/src/af/gr/xp/gr_Caret.cpp
@@ -155,22 +155,17 @@ void GR_Caret::s_enable(UT_Worker * _w)
{
GR_Caret * c = static_cast<GR_Caret *>(_w->getInstanceData());
+ c->m_enabler->stop();
c->m_worker->stop();
- c->_blink(true);
- if (!c->m_bCursorIsOn)
- c->_blink(true); // blink again
- else
- {
- c->_blink(true); // ?? - MARCM
- c->_blink(true);
- }
c->m_worker->start();
- c->m_enabler->stop();
+ c->_blink(true);
}
void GR_Caret::s_blink_timeout(UT_Worker * _w)
{
GR_Caret * c = static_cast<GR_Caret *>(_w->getInstanceData());
+
+ c->m_blinkTimeout->stop();
if (c->isEnabled())
c->disable();
}
diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.cpp b/src/af/xap/gtk/xap_UnixFrameImpl.cpp
index 780000e..e81961a 100644
--- a/src/af/xap/gtk/xap_UnixFrameImpl.cpp
+++ b/src/af/xap/gtk/xap_UnixFrameImpl.cpp
@@ -1208,15 +1208,23 @@ gint XAP_UnixFrameImpl::_fe::delete_event(GtkWidget * w, GdkEvent * /*event*/, g
}
#if GTK_CHECK_VERSION(3,0,0)
-gint XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr)
+gboolean XAP_UnixFrameImpl::_fe::draw(GtkWidget * w, cairo_t * cr)
#else
gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent)
#endif
{
XAP_UnixFrameImpl * pUnixFrameImpl = static_cast<XAP_UnixFrameImpl *>(g_object_get_data(G_OBJECT(w), "user_data"));
FV_View * pView = static_cast<FV_View *>(pUnixFrameImpl->getFrame()->getCurrentView());
+ double x, y, width, height;
#if GTK_CHECK_VERSION(3,0,0)
- GdkEventExpose *pExposeEvent = reinterpret_cast<GdkEventExpose *>(gtk_get_current_event());
+ cairo_clip_extents (cr, &x, &y, &width, &height);
+ width -= x;
+ height -= y;
+#else
+ x = pExposeEvent->area.x;
+ y = pExposeEvent->area.y;
+ width = pExposeEvent->area.width;
+ height = pExposeEvent->area.height;
#endif
/* Jean: commenting out next lines since the zoom update code does draw only
* part of what needs to be updated. */
@@ -1230,20 +1238,21 @@ gint XAP_UnixFrameImpl::_fe::expose(GtkWidget * w, GdkEventExpose* pExposeEvent)
UT_Rect rClip;
if (pGr->getPaintCount () > 0)
return TRUE;
- xxx_UT_DEBUGMSG(("Expose area: x %d y %d width %d height %d \n",pExposeEvent->area.x,pExposeEvent->area.y,pExposeEvent->area.width,pExposeEvent->area.height));
- rClip.left = pGr->tlu(pExposeEvent->area.x);
- rClip.top = pGr->tlu(pExposeEvent->area.y);
- rClip.width = pGr->tlu(pExposeEvent->area.width)+1;
- rClip.height = pGr->tlu(pExposeEvent->area.height)+1;
-#if GTK_CHECK_VERSION(3,0,0)
+ rClip.left = pGr->tlu(x);
+ rClip.top = pGr->tlu(y);
+ #if GTK_CHECK_VERSION(3,0,0)
+ rClip.width = pGr->tlu(width);
+ rClip.height = pGr->tlu(height);
static_cast<GR_CairoGraphics *>(pGr)->setCairo(cr);
pView->draw(&rClip);
static_cast<GR_CairoGraphics *>(pGr)->setCairo(NULL);
#else
+ rClip.width = pGr->tlu(width)+1;
+ rClip.height = pGr->tlu(height)+1;
pView->draw(&rClip);
#endif
}
- return FALSE;
+ return TRUE;
}
static bool bScrollWait = false;
diff --git a/src/af/xap/gtk/xap_UnixFrameImpl.h b/src/af/xap/gtk/xap_UnixFrameImpl.h
index 30ee5d8..26fbb2e 100644
--- a/src/af/xap/gtk/xap_UnixFrameImpl.h
+++ b/src/af/xap/gtk/xap_UnixFrameImpl.h
@@ -152,7 +152,7 @@ protected:
static gint key_release_event(GtkWidget* w, GdkEventKey* e);
static gint delete_event(GtkWidget * w, GdkEvent * /*event*/, gpointer /*data*/);
#if GTK_CHECK_VERSION(3,0,0)
- static gint draw(GtkWidget * w, cairo_t * cr);
+ static gboolean draw(GtkWidget * w, cairo_t * cr);
#else
static gint expose(GtkWidget * w, GdkEventExpose* pExposeEvent);
#endif
--
2.11.0

View File

@ -1,25 +1,32 @@
{ stdenv, fetchurl
, intltool, pkgconfig, wrapGAppsHook
{ stdenv, fetchFromGitHub, meson, ninja
, gettext, pkgconfig, desktop_file_utils, wrapGAppsHook
, appstream-glib, epoxy, glib, gtk3, mpv
}:
stdenv.mkDerivation rec {
name = "gnome-mpv-${version}";
version = "0.9";
version = "0.13";
src = fetchurl {
sha256 = "06pgxl6f3kkgxv8nlmyl7gy3pg55sqf8vgr8m6426mlpm4p3qdn0";
url = "https://github.com/gnome-mpv/gnome-mpv/releases/download/v${version}/${name}.tar.xz";
src = fetchFromGitHub {
owner = "gnome-mpv";
repo = "gnome-mpv";
rev = "0d73b33d60050fd32bf8fae77d831548970a0b69"; # upstream forgot to update appdata
# rev = "v${version}";
sha256 = "1cjhw3kz163iwj2japhnv354i1lr112xyyfkxw82cwy2554cfim4";
};
nativeBuildInputs = [ intltool pkgconfig wrapGAppsHook ];
buildInputs = [ appstream-glib epoxy glib.dev gtk3 mpv ];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
nativeBuildInputs = [ meson ninja appstream-glib gettext pkgconfig desktop_file_utils wrapGAppsHook ];
buildInputs = [ epoxy glib gtk3 mpv ];
enableParallelBuilding = true;
postPatch = ''
patchShebangs .
sed -i '/gtk-update-icon-cache/s/^/#/' meson_post_install.py
'';
doCheck = true;
checkPhase = "meson test";
meta = with stdenv.lib; {
description = "Simple GTK+ frontend for the mpv video player";

View File

@ -4,7 +4,7 @@
, makeWrapper
, attr, libcap, libcap_ng
, CoreServices, Cocoa, rez, setfile
, numaSupport ? stdenv.isLinux, numactl
, numaSupport ? stdenv.isLinux && !stdenv.isArm, numactl
, seccompSupport ? stdenv.isLinux, libseccomp
, pulseSupport ? !stdenv.isDarwin, libpulseaudio
, sdlSupport ? !stdenv.isDarwin, SDL
@ -12,7 +12,7 @@
, spiceSupport ? !stdenv.isDarwin, spice, spice_protocol
, usbredirSupport ? spiceSupport, usbredir
, xenSupport ? false, xen
, x86Only ? false
, hostCpuOnly ? false
, nixosTestRunner ? false
}:
@ -23,12 +23,17 @@ let
audio = optionalString (hasSuffix "linux" stdenv.system) "alsa,"
+ optionalString pulseSupport "pa,"
+ optionalString sdlSupport "sdl,";
hostCpuTargets = if stdenv.isi686 || stdenv.isx86_64 then "i386-softmmu,x86_64-softmmu"
else if stdenv.isArm then "arm-softmmu"
else if stdenv.isAarch64 then "aarch64-softmmu"
else throw "Don't know how to build a 'hostCpuOnly = true' QEMU";
in
stdenv.mkDerivation rec {
name = "qemu-"
+ stdenv.lib.optionalString xenSupport "xen-"
+ stdenv.lib.optionalString x86Only "x86-only-"
+ stdenv.lib.optionalString hostCpuOnly "host-cpu-only-"
+ stdenv.lib.optionalString nixosTestRunner "for-vm-tests-"
+ version;
@ -75,7 +80,7 @@ stdenv.mkDerivation rec {
++ optional seccompSupport "--enable-seccomp"
++ optional spiceSupport "--enable-spice"
++ optional usbredirSupport "--enable-usb-redir"
++ optional x86Only "--target-list=i386-softmmu,x86_64-softmmu"
++ optional hostCpuOnly "--target-list=${hostCpuTargets}"
++ optional stdenv.isDarwin "--enable-cocoa"
++ optional stdenv.isLinux "--enable-linux-aio"
++ optional xenSupport "--enable-xen";

View File

@ -43,6 +43,10 @@ in stdenv.mkDerivation (args // {
postUnpack = ''
eval "$cargoDepsHook"
unpackFile "$cargoDeps"
cargoDepsCopy=$(stripHash $(basename $cargoDeps))
chmod -R +w "$cargoDepsCopy"
mkdir .cargo
cat >.cargo/config <<-EOF
[source.crates-io]
@ -50,9 +54,11 @@ in stdenv.mkDerivation (args // {
replace-with = 'vendored-sources'
[source.vendored-sources]
directory = '$cargoDeps'
directory = '$(pwd)/$cargoDepsCopy'
EOF
unset cargoDepsCopy
export RUST_LOG=${logLevel}
export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
'' + (args.postUnpack or "");

View File

@ -3,7 +3,7 @@
, img ? "bzImage"
, storeDir ? builtins.storeDir
, rootModules ?
[ "virtio_pci" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "rtc_cmos" ]
[ "virtio_pci" "virtio_mmio" "virtio_blk" "virtio_balloon" "virtio_rng" "ext4" "unix" "9p" "9pnet_virtio" "rtc_cmos" ]
}:
with pkgs;

View File

@ -1,18 +1,88 @@
{ stdenv, fetchzip }:
{
stdenv, lib,
fetchFromGitHub, fetchurl,
runCommand, writeText,
nodejs, ttfautohint-nox, otfcc,
# Custom font set options.
# See https://github.com/be5invis/Iosevka#build-your-own-style
design ? [], upright ? [], italic ? [], oblique ? [],
# Custom font set name. Required if any custom settings above.
set ? null
}:
assert (design != []) -> set != null;
assert (upright != []) -> set != null;
assert (italic != []) -> set != null;
assert (oblique != []) -> set != null;
let
installPackageLock = import ./package-lock.nix { inherit fetchurl lib; };
in
let pname = if set != null then "iosevka-${set}" else "iosevka"; in
let
version = "1.13.3";
in fetchzip rec {
name = "iosevka-${version}";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "be5invis";
repo ="Iosevka";
rev = "v${version}";
sha256 = "0wfhfiahllq8ngn0mybvp29cfcm7b8ndk3fyhizd620wrj50bazf";
};
in
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/iosevka-pack-${version}.zip";
with lib;
let unwords = concatStringsSep " "; in
postFetch = ''
mkdir -p $out/share/fonts
unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
let
param = name: options:
if options != [] then "${name}='${unwords options}'" else null;
config = unwords (lib.filter (x: x != null) [
(param "design" design)
(param "upright" upright)
(param "italic" italic)
(param "oblique" oblique)
]);
custom = design != [] || upright != [] || italic != [] || oblique != [];
in
stdenv.mkDerivation {
inherit name pname version src;
nativeBuildInputs = [ nodejs ttfautohint-nox otfcc ];
passAsFile = [ "installPackageLock" ];
installPackageLock = installPackageLock ./package-lock.json;
preConfigure = ''
HOME=$TMPDIR
source "$installPackageLockPath";
npm --offline rebuild
'';
sha256 = "0103rjxcp2sis42xp7fh7g8i03h5snvs8n78lgsf79g8ssw0p9d4";
configurePhase = ''
runHook preConfigure
${optionalString custom ''make custom-config set=${set} ${config}''}
runHook postConfigure
'';
makeFlags = lib.optionals custom [ "custom" "set=${set}" ];
installPhase = ''
runHook preInstall
fontdir="$out/share/fonts/$pname"
install -d "$fontdir"
install "dist/$pname/ttf"/* "$fontdir"
runHook postInstall
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
homepage = https://be5invis.github.io/Iosevka/;
@ -23,6 +93,6 @@ in fetchzip rec {
'';
license = licenses.ofl;
platforms = platforms.all;
maintainers = [ maintainers.cstrahan ];
maintainers = with maintainers; [ cstrahan jfrankenau ttuegel ];
};
}

1017
pkgs/data/fonts/iosevka/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,142 @@
{ lib, fetchurl }:
with lib; with builtins;
let
# Convert a base64-encoded string into a list of quads and padding.
fromBase64 = str:
let
len = stringLength str;
quads = 3 * len - 4 * padding;
padding =
if hasSuffix "==" str then 2 else
if hasSuffix "=" str then 1 else
0;
chars = stringToCharacters (substring 0 (len - padding) str);
table = {
"A" = [0 0 0];
"B" = [0 0 1];
"C" = [0 0 2];
"D" = [0 0 3];
"E" = [0 1 0];
"F" = [0 1 1];
"G" = [0 1 2];
"H" = [0 1 3];
"I" = [0 2 0];
"J" = [0 2 1];
"K" = [0 2 2];
"L" = [0 2 3];
"M" = [0 3 0];
"N" = [0 3 1];
"O" = [0 3 2];
"P" = [0 3 3];
"Q" = [1 0 0];
"R" = [1 0 1];
"S" = [1 0 2];
"T" = [1 0 3];
"U" = [1 1 0];
"V" = [1 1 1];
"W" = [1 1 2];
"X" = [1 1 3];
"Y" = [1 2 0];
"Z" = [1 2 1];
"a" = [1 2 2];
"b" = [1 2 3];
"c" = [1 3 0];
"d" = [1 3 1];
"e" = [1 3 2];
"f" = [1 3 3];
"g" = [2 0 0];
"h" = [2 0 1];
"i" = [2 0 2];
"j" = [2 0 3];
"k" = [2 1 0];
"l" = [2 1 1];
"m" = [2 1 2];
"n" = [2 1 3];
"o" = [2 2 0];
"p" = [2 2 1];
"q" = [2 2 2];
"r" = [2 2 3];
"s" = [2 3 0];
"t" = [2 3 1];
"u" = [2 3 2];
"v" = [2 3 3];
"w" = [3 0 0];
"x" = [3 0 1];
"y" = [3 0 2];
"z" = [3 0 3];
"0" = [3 1 0];
"1" = [3 1 1];
"2" = [3 1 2];
"3" = [3 1 3];
"4" = [3 2 0];
"5" = [3 2 1];
"6" = [3 2 2];
"7" = [3 2 3];
"8" = [3 3 0];
"9" = [3 3 1];
"+" = [3 3 2];
"/" = [3 3 3];
};
in
take quads (concatMap (c: table.${c}) chars);
# Convert a list of quads with padding into a base16-encoded string.
toBase16 = quads:
if length quads == 0 then "" else
if length quads == 1 then throw "toBase16: odd quads" else
let
hexad = 4 * elemAt quads 0 + elemAt quads 1;
hexits = "0123456789abcdef";
in
substring hexad 1 hexits + toBase16 (drop 2 quads);
in
let
fetchResolved = { resolved, integrity, ... }:
let args = { url = resolved; } // integrityHash integrity; in
fetchurl args;
integrityHash = integrity:
if hasPrefix "sha1-" integrity then integritySHA1 integrity else
if hasPrefix "sha512-" integrity then integritySHA512 integrity else
throw "don't understand integrity: ${integrity}";
integritySHA1 = integrity:
{ sha1 = toBase16 (fromBase64 (removePrefix "sha1-" integrity)); };
integritySHA512 = integrity:
{ sha512 = toBase16 (fromBase64 (removePrefix "sha512-" integrity)); };
in
let
depend = name: attrs@{ version, dependencies ? {}, ... }:
{
inherit name version;
src = fetchResolved attrs;
depends = mapAttrsToList depend dependencies;
};
prepareDepend = { name, src, depends, ... }:
''
unpackFile '${src}'
mv package '${name}'
mkdir -p '${name}/node_modules'
(
cd '${name}/node_modules'
${concatMapStrings prepareDepend depends}
)
'';
in
packageLockFile:
let
packageLock = fromJSON (readFile packageLockFile);
depends = mapAttrsToList depend packageLock.dependencies;
in
''
mkdir -p node_modules
(
cd node_modules
${concatMapStrings prepareDepend depends}
)
''

View File

@ -18,6 +18,10 @@ stdenv.mkDerivation rec {
configureFlags = "--x-includes=${libX11.dev}/include --x-libraries=${libX11.out}/lib";
# libtool --tag=CXX --mode=link g++ -g -O2 libexamples.la ../src/platform/X11/libaggplatformX11.la ../src/libagg.la -o alpha_mask2 alpha_mask2.o
# libtool: error: cannot find the library 'libexamples.la'
enableParallelBuilding = false;
meta = {
description = "High quality rendering engine for C++";

View File

@ -6,11 +6,11 @@
with stdenv.lib;
stdenv.mkDerivation rec {
name = "eccodes-${version}";
version = "2.2.0";
version = "2.5.0";
src = fetchurl {
url = https://software.ecmwf.int/wiki/download/attachments/45757960/eccodes-2.2.0-Source.tar.gz;
sha256 = "1hzl0akjfxphqivnaj2kg131w8ki80ba3872h0a45f4pchci4h8s";
url = "https://software.ecmwf.int/wiki/download/attachments/45757960/eccodes-${version}-Source.tar.gz";
sha256 = "0kiff19gk0w7ij0kx5ydqpsmdq499ylxxxq79lrgss218jy49aqq";
};
nativeBuildInputs = [ cmake ];

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec{
name = "grib-api-${version}";
version = "1.19.0";
version = "1.24.0";
src = fetchurl {
url = "https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-${version}-Source.tar.gz";
sha256 = "07cj9mw5bb249lxx1m9nmfdqb8b2a8cm7s6x62cdwca3sp16dv6a";
sha256 = "1kbvyzaghbn1bqn97sslskmb6k3ki1dnr0g5abk5sb40n0y483bb";
};
preConfigure = ''

View File

@ -9,11 +9,11 @@ assert pythonSupport -> python != null && swig != null;
assert docSupport -> doxygen != null;
stdenv.mkDerivation rec {
name = "libftdi1-1.3";
name = "libftdi1-1.4";
src = fetchurl {
url = "http://www.intra2net.com/en/developer/libftdi/download/${name}.tar.bz2";
sha256 = "1x41mbzh4qy7mrv2n86r2cr176rx03iacn0a99c3dkzv9g4rb34s";
sha256 = "0x0vncf6i92slgrn0h7ghkskqbglbs534220qa84d0qg114zndpc";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -0,0 +1,40 @@
{ stdenv, fetchFromGitHub, cmake
, qtbase }:
# This doesn't actually do anything really yet as it doesn't support dynamic building
# When it does, quaternion and tensor should use it
stdenv.mkDerivation rec {
name = "libqmatrixclient-${version}";
version = "0.1";
src = fetchFromGitHub {
owner = "QMatrixClient";
repo = "libqmatrixclient";
rev = "v${version}";
sha256 = "1dlanf0y65zf6n1b1f4jzw04w07sl85wiw01c3yyn2ivp3clr13l";
};
buildInputs = [ qtbase ];
nativeBuildInputs = [ cmake ];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
install -Dm644 -t $out/lib *.a
runHook postInstall
'';
meta = with stdenv.lib; {
description= "A Qt5 library to write cross-platfrom clients for Matrix";
homepage = https://matrix.org/docs/projects/sdk/libqmatrixclient.html;
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = with maintainers; [ peterhoeg ];
hydraPlatforms = [ ];
};
}

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, json_c, hidapi }:
stdenv.mkDerivation rec {
name = "libu2f-host-1.1.1";
name = "libu2f-host-1.1.4";
src = fetchurl {
url = "https://developers.yubico.com/libu2f-host/Releases/${name}.tar.xz";
sha256 = "0g0f012w0c00cvj5g319x2b8prbh0d3fcac9960cy7xsd8chckg1";
sha256 = "0vvs2p3b25cbybccv3f4ridnp7sg5i4hkzx3hx48ldcn1l1fqhv0";
};
nativeBuildInputs = [ pkgconfig ];

View File

@ -1,5 +1,10 @@
{ stdenv, fetchgit, cmake }:
{ stdenv, fetchgit, cmake
, hostPlatform, buildPlatform
}:
let
nativeBuild = hostPlatform == buildPlatform;
in
stdenv.mkDerivation rec {
name = "microsoft_gsl-${version}";
version = "2017-02-13";
@ -10,8 +15,11 @@ stdenv.mkDerivation rec {
sha256 = "03d17mnx6n175aakin313308q14wzvaa9pd0m1yfk6ckhha4qf35";
};
# build phase just runs the unit tests
buildInputs = [ cmake ];
# build phase just runs the unit tests, so skip it if
# we're doing a cross build
nativeBuildInputs = [ cmake ];
buildPhase = if nativeBuild then "make" else "true";
installPhase = ''
mkdir -p $out/include
@ -20,9 +28,9 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Functions and types that are suggested for use by the C++ Core Guidelines";
homepage = https://github.com/Microsoft/GSL;
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ xwvvvvwx ];
homepage = https://github.com/Microsoft/GSL;
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ thoughtpolice xwvvvvwx ];
};
}

View File

@ -1,24 +1,28 @@
{ stdenv, fetchurl, pkgconfig }:
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
name = "snappy-${version}";
version = "1.1.4";
version = "1.1.7";
src = fetchurl {
url = "http://github.com/google/snappy/releases/download/${version}/"
+ "snappy-${version}.tar.gz";
sha256 = "0mq0nz8gbi1sp3y6xcg0a6wbvnd6gc717f3vh2xrjmfj5w9gwjqk";
src = fetchFromGitHub {
owner = "google";
repo = "snappy";
rev = "${version}";
sha256 = "1x7r8sjmdqlqjz0xfiwdyrqpgaj5yrvrgb28ivgpvnxgar5qv6m2";
};
outputs = [ "out" "dev" "doc" ];
outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ cmake ];
# -DNDEBUG for speed
configureFlags = [ "CXXFLAGS=-DNDEBUG" ];
# SIGILL on darwin
doCheck = !stdenv.isDarwin;
checkPhase = ''
(cd .. && ./build/snappy_unittest)
'';
meta = with stdenv.lib; {
homepage = https://google.github.io/snappy/;

View File

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
};
# Works around bunch of "format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'uint64_t {aka long long unsigned int}'" warnings
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isi686 "-Wno-error=format";
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.is64bit) "-Wno-error=format";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libusb ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, gnum4, pkgconfig, python2
, intel-gpu-tools, libdrm, libva, libX11, mesa_noglu, wayland
, intel-gpu-tools, libdrm, libva, libX11, mesa_noglu, wayland, libXext
}:
stdenv.mkDerivation rec {
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ gnum4 pkgconfig python2 ];
buildInputs = [ intel-gpu-tools libdrm libva libX11 mesa_noglu wayland ];
buildInputs = [ intel-gpu-tools libdrm libva libX11 libXext mesa_noglu wayland ];
meta = with stdenv.lib; {
homepage = http://cgit.freedesktop.org/vaapi/intel-driver/;

View File

@ -2119,13 +2119,13 @@ let
sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
};
};
"ajv-5.4.0" = {
"ajv-5.5.0" = {
name = "ajv";
packageName = "ajv";
version = "5.4.0";
version = "5.5.0";
src = fetchurl {
url = "https://registry.npmjs.org/ajv/-/ajv-5.4.0.tgz";
sha1 = "32d1cf08dbc80c432f426f12e10b2511f6b46474";
url = "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz";
sha1 = "eb2840746e9dc48bd5e063a36e3fd400c5eab5a9";
};
};
"har-schema-2.0.0" = {
@ -4045,13 +4045,13 @@ let
sha1 = "6373db76909fe570e08d73583365ed828a74eeeb";
};
};
"commander-2.12.0" = {
"commander-2.12.1" = {
name = "commander";
packageName = "commander";
version = "2.12.0";
version = "2.12.1";
src = fetchurl {
url = "https://registry.npmjs.org/commander/-/commander-2.12.0.tgz";
sha512 = "3drb1rxa9qbsn65n8gbwfj96afi8kv3kh9z30mm1x0hssz84kj7akkksd6qpbikcnpnmrm9fpxvqy5w6jw1xj9q4z3ijligiddjcl6h";
url = "https://registry.npmjs.org/commander/-/commander-2.12.1.tgz";
sha512 = "36cb2mrf9piidjbqiz8krwx7r9hikgirjxzfrbyk3hd39xpmg489lia9d3cmzci80sx99428hg960sz9j5b72fn7pi928z5289ln8rw";
};
};
"is-my-json-valid-2.16.1" = {
@ -4063,15 +4063,6 @@ let
sha512 = "2wmvqb2vfzjbnd2znxkg4sqpksxb9mi1lbr4r5zv535ykxzfv8dbnafra1lhk415wrbg9r1lfhyimcw5xfj3k4ry7inbmcjlnr4zj51";
};
};
"@types/node-7.0.48" = {
name = "_at_types_slash_node";
packageName = "@types/node";
version = "7.0.48";
src = fetchurl {
url = "https://registry.npmjs.org/@types/node/-/node-7.0.48.tgz";
sha512 = "3bjps45216v1znjwv914yqhiya6y0gxra26zk80bv49rzsqf84kxv7ilrzm7j6wj5895957a0jbqwsdy78ylfbx61v3w11pydlmgf9c";
};
};
"generate-function-2.0.0" = {
name = "generate-function";
packageName = "generate-function";
@ -4844,7 +4835,7 @@ in
})
(sources."har-validator-5.0.3" // {
dependencies = [
(sources."ajv-5.4.0" // {
(sources."ajv-5.5.0" // {
dependencies = [
sources."co-4.6.0"
sources."fast-deep-equal-1.0.0"
@ -6257,11 +6248,7 @@ in
sources."supports-color-2.0.0"
];
})
(sources."commander-2.12.0" // {
dependencies = [
sources."@types/node-7.0.48"
];
})
sources."commander-2.12.1"
(sources."is-my-json-valid-2.16.1" // {
dependencies = [
sources."generate-function-2.0.0"

View File

@ -28,6 +28,7 @@
, "gulp"
, "hipache"
, "htmlhint"
, "html-minifier"
, "ionic"
, "ios-deploy"
, "istanbul"

File diff suppressed because it is too large Load Diff

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-ppx_deriving_yojson-${version}";
version = "3.0";
version = "3.1";
src = fetchFromGitHub {
owner = "whitequark";
owner = "ocaml-ppx";
repo = "ppx_deriving_yojson";
rev = "v${version}";
sha256 = "1id1a29qq0ax9qp98b5hv6p2q2r0vp4fbkkwzm1bxdhnasw97msk";
sha256 = "1pwfnq7z60nchba4gnf58918ll11w3gj5i88qhz1p2jm45hxqgnw";
};
buildInputs = [ ocaml findlib ocamlbuild opam cppo ounit ppx_import ];
@ -28,6 +28,5 @@ stdenv.mkDerivation rec {
license = stdenv.lib.licenses.mit;
maintainers = [ stdenv.lib.maintainers.vbgl ];
inherit (ocaml.meta) platforms;
broken = stdenv.lib.versionAtLeast ocaml.version "4.05";
};
}

View File

@ -4,15 +4,15 @@
buildOcaml rec {
name = "ppx_import";
version = "1.1";
version = "1.4";
minimumSupportedOcamlVersion = "4.02";
src = fetchFromGitHub {
owner = "whitequark";
owner = "ocaml-ppx";
repo = "ppx_import";
rev = "v${version}";
sha256 = "1hfvbc81dg58q7kkpn808b3j0xazrqfrr4v71sd1yvmnk71wak6k";
sha256 = "14c2lp7r9080c4hsb1y1drbxxx3v44b7ib5wfh3kkh3f1jfsjwbk";
};
buildInputs = [ cppo ounit ppx_deriving opam ];
@ -29,4 +29,4 @@ buildOcaml rec {
description = "A syntax extension that allows to pull in types or signatures from other compiled interface files";
license = licenses.mit;
};
}
}

View File

@ -0,0 +1,47 @@
{ lib
, buildPythonPackage
, fetchPypi
, fetchpatch
, ipykernel
, isPy27
, pexpect
}:
buildPythonPackage rec {
pname = "bash_kernel";
version = "0.7.1";
name = "${pname}-${version}";
format = "flit";
disabled = isPy27;
src = fetchPypi {
inherit pname version;
sha256 = "1s2kc7m52kq28b4j1q3456g5ani6nmq4n0rpbqi3yvh7ks0rby19";
};
patches = [
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/takluyver/bash_kernel/pull/69.diff";
sha256 = "1qd7qjjmcph4dk6j0bl31h2fdmfiyyazvrc9xqqj8y21ki2sl33j";
})
];
propagatedBuildInputs = [ ipykernel pexpect ];
doCheck = false;
preBuild = ''
mkdir tmp
export HOME=$PWD/tmp
'';
postInstall = ''
python -m bash_kernel.install --prefix $out
'';
meta = {
description = "Bash Kernel for Jupyter";
homepage = "https://github.com/takluyver/bash_kernel";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ zimbatm ];
};
}

View File

@ -78,5 +78,6 @@ buildPythonPackage rec {
description = "Statistical and novel interactive HTML plots for Python";
homepage = "http://github.com/bokeh/bokeh";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ orivej ];
};
}

View File

@ -0,0 +1,44 @@
{ lib
, buildPythonPackage
, fetchPypi
, ptyprocess
}:
buildPythonPackage rec {
pname = "pexpect";
version = "4.3.0";
name = "${pname}-${version}";
src = fetchPypi {
inherit pname version;
sha256 = "1nfjmz81gsixv22dywidakm7pff3ly1i4yly950bfp8gz1r0iaq0";
};
# Wants to run pythonin a subprocess
doCheck = false;
propagatedBuildInputs = [ ptyprocess ];
meta = with lib; {
homepage = http://www.noah.org/wiki/Pexpect;
description = "Automate interactive console applications such as ssh, ftp, etc";
license = licenses.mit;
maintainers = with maintainers; [ zimbatm ];
longDescription = ''
Pexpect is similar to the Don Libes "Expect" system, but Pexpect
as a different interface that is easier to understand. Pexpect
is basically a pattern matching system. It runs programs and
watches output. When output matches a given pattern Pexpect can
respond as if a human were typing responses. Pexpect can be used
for automation, testing, and screen scraping. Pexpect can be
used for automating interactive console applications such as
ssh, ftp, passwd, telnet, etc. It can also be used to control
web applications via "lynx", "w3m", or some other text-based web
browser. Pexpect is pure Python. Unlike other Expect-like
modules for Python Pexpect does not require TCL or Expect nor
does it require C extensions to be compiled. It should work on
any platform that supports the standard Python pty module.
'';
};
}

View File

@ -1,17 +0,0 @@
source "$stdenv"/setup
cp --recursive "$src" ./
chmod --recursive u=rwx ./"$(basename "$src")"
cd ./"$(basename "$src")"
cmake ./
make
mkdir --parents "$out"/bin
cp ./TraceFileGen "$out"/bin
mkdir --parents "$out"/share/doc/"$name"/html
cp --recursive ./Documentation/html/* "$out/share/doc/$name/html/"

View File

@ -1,22 +1,29 @@
{ stdenv, fetchgit, cmake }:
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
name = "tracefilegen-2015-11-14";
name = "tracefilegen-2017-05-13";
src = fetchgit {
url = "https://github.com/GarCoSim/TraceFileGen.git";
rev = "4acf75b142683cc475c6b1c841a221db0753b404";
sha256 = "0mh661l9d1lczv0mr2y9swzqqlwikyqiv1hdd71r9v8cvm54y5ij";
src = fetchFromGitHub {
owner = "GarCoSim";
repo = "TraceFileGen";
rev = "0ebfd1fdb54079d4bdeaa81fc9267ecb9f016d60";
sha256 = "1gsx18ksgz5gwl3v62vgrmhxc0wc99i74qwhpn0h57zllk41drjc";
};
buildInputs = [ cmake ];
nativeBuildInputs = [ cmake ];
builder = ./builder.sh;
patches = [ ./gcc7.patch ];
installPhase = ''
install -Dm755 TraceFileGen $out/bin/TraceFileGen
mkdir -p $out/share/doc/${name}/
cp -ar $src/Documentation/html $out/share/doc/${name}/.
'';
meta = with stdenv.lib; {
description = "Automatically generate all types of basic memory management operations and write into trace files";
homepage = https://github.com/GarCoSim;
homepage = https://github.com/GarCoSim;
maintainers = [ maintainers.cmcdragonkai ];
license = licenses.gpl2;
platforms = platforms.linux;

View File

@ -0,0 +1,13 @@
diff --git a/Utils/Logger.cpp b/Utils/Logger.cpp
index 747cd63..e3efdf1 100644
--- a/Utils/Logger.cpp
+++ b/Utils/Logger.cpp
@@ -29,7 +29,7 @@ Logger::Logger(char* tracepath) {
trace = fopen(tracepath, "w");
// dot file is not used, set null as default value
- dot = '\0';
+ dot = nullptr;
//dot = fopen("gcKons.dot", "w");
//fprintf(dot,"digraph G {\n");
}

View File

@ -1,8 +1,8 @@
{ stdenv, fetchurl, jre, bc }:
{ stdenv, fetchurl, jre }:
stdenv.mkDerivation rec {
name = "sbt-${version}";
version = "1.0.3";
version = "1.0.4";
src = fetchurl {
urls = [
@ -10,14 +10,11 @@ stdenv.mkDerivation rec {
"https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
"https://cocl.us/sbt-${version}.tgz"
];
sha256 = "041cv25gxqsi3rlglw5d8aqgdzb6y5ak3f52dwqvzrrj854vyx13";
sha256 = "0gz2akifi842y8av2hh7w2z6fd6z400nvk8ip87rkyhx3gw7cdw1";
};
patchPhase = ''
echo -java-home ${jre.home} >>conf/sbtopts
substituteInPlace bin/sbt-launch-lib.bash \
--replace "| bc)" "| ${bc}/bin/bc)"
'';
installPhase = ''
@ -30,7 +27,7 @@ stdenv.mkDerivation rec {
homepage = http://www.scala-sbt.org/;
license = licenses.bsd3;
description = "A build tool for Scala, Java and more";
maintainers = with maintainers; [ rickynils ];
maintainers = with maintainers; [ nequissimus rickynils ];
platforms = platforms.unix;
};
}

View File

@ -0,0 +1,36 @@
{ stdenv, buildGoPackage, fetchFromGitHub, go }:
buildGoPackage rec {
name = "cloudfoundry-cli-${version}";
version = "6.32.0";
goPackagePath = "code.cloudfoundry.org/cli";
subPackages = [ "." ];
src = fetchFromGitHub {
rev = "v${version}";
owner = "cloudfoundry-attic";
repo = "cli-with-i18n";
sha256 = "16r8zvahn4b98krmyb8zq9370i6572dhz88bfxb3fnddcv6zy1ng";
};
outputs = [ "out" ];
buildFlagsArray = ''
-ldflags= -X ${goPackagePath}/version.binaryVersion=${version}
'';
installPhase = ''
install -Dm555 go/bin/cli "$out/bin/cf"
remove-references-to -t ${go} "$out/bin/cf"
install -Dm444 -t "$out/share/bash-completion/completions/" "$src/ci/installers/completion/cf"
'';
meta = with stdenv.lib; {
description = "The official command line client for Cloud Foundry";
homepage = https://github.com/cloudfoundry/cli;
maintainers = with maintainers; [ ris ];
license = licenses.asl20;
};
}

View File

@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'jazzy'

View File

@ -0,0 +1,100 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (2.3.5)
activesupport (4.2.10)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
claide (1.0.2)
cocoapods (1.3.1)
activesupport (>= 4.0.2, < 5)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.3.1)
cocoapods-deintegrate (>= 1.0.1, < 2.0)
cocoapods-downloader (>= 1.1.3, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-stats (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.2.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
fourflusher (~> 2.0.1)
gh_inspector (~> 1.0)
molinillo (~> 0.5.7)
nap (~> 1.0)
ruby-macho (~> 1.1)
xcodeproj (>= 1.5.1, < 2.0)
cocoapods-core (1.3.1)
activesupport (>= 4.0.2, < 6)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
cocoapods-deintegrate (1.0.1)
cocoapods-downloader (1.1.3)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.1.0)
colored2 (3.1.2)
concurrent-ruby (1.0.5)
escape (0.0.4)
ffi (1.9.18)
fourflusher (2.0.1)
fuzzy_match (2.0.4)
gh_inspector (1.0.3)
i18n (0.9.0)
concurrent-ruby (~> 1.0)
jazzy (0.9.0)
cocoapods (~> 1.0)
mustache (~> 0.99)
open4
redcarpet (~> 3.2)
rouge (~> 1.5)
sass (~> 3.4)
sqlite3 (~> 1.3)
xcinvoke (~> 0.3.0)
liferaft (0.0.6)
minitest (5.10.3)
molinillo (0.5.7)
mustache (0.99.8)
nanaimo (0.2.3)
nap (1.1.0)
netrc (0.11.0)
open4 (1.3.4)
rb-fsevent (0.10.2)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
redcarpet (3.4.0)
rouge (1.11.1)
ruby-macho (1.1.0)
sass (3.5.3)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sqlite3 (1.3.13)
thread_safe (0.3.6)
tzinfo (1.2.4)
thread_safe (~> 0.1)
xcinvoke (0.3.0)
liferaft (~> 0.0.6)
xcodeproj (1.5.3)
CFPropertyList (~> 2.3.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.2.3)
PLATFORMS
ruby
DEPENDENCIES
jazzy
BUNDLED WITH
1.14.6

View File

@ -0,0 +1,17 @@
{ lib, bundlerEnv, ruby }:
bundlerEnv rec {
inherit ruby;
pname = "jazzy";
gemdir = ./.;
meta = with lib; {
description = "A command-line utility that generates documentation for Swift or Objective-C";
homepage = https://github.com/realm/jazzy;
license = licenses.mit;
platforms = platforms.darwin;
maintainers = with maintainers; [
peterromfeldhk
];
};
}

View File

@ -0,0 +1,343 @@
{
activesupport = {
dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0s12j8vl8vrxfngkdlz9g8bpz9akq1z42d57mx5r537b2pji8nr7";
type = "gem";
};
version = "4.2.10";
};
CFPropertyList = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "06dddgcai6nay552h8wmnb2m93xx5hni48s16vkbf9vbym4nfw5x";
type = "gem";
};
version = "2.3.5";
};
claide = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0az54rp691hc42yl1xyix2cxv58byhaaf4gxbpghvvq29l476rzc";
type = "gem";
};
version = "1.0.2";
};
cocoapods = {
dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "050b7795jc6802wcpcgi702qkgy8vjidgq6c6mbx2alrq7l0n8q7";
type = "gem";
};
version = "1.3.1";
};
cocoapods-core = {
dependencies = ["activesupport" "fuzzy_match" "nap"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pr42lpqs6q51gnnfxmgmbx7sw0dwyawylssj588izj8av18rhpy";
type = "gem";
};
version = "1.3.1";
};
cocoapods-deintegrate = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1x4hxlip6zkrs1vcmw7sh45ayn5pxvsg782iifnmgjwn2pyskj7l";
type = "gem";
};
version = "1.0.1";
};
cocoapods-downloader = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1664qg1wml70slcfklpnyq5ixp145f6iyn3c6pcqkqc64i1bsg87";
type = "gem";
};
version = "1.1.3";
};
cocoapods-plugins = {
dependencies = ["nap"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16na82sfyc8801qs1n22nwq486s4j7yj6rj7fcp8cbxmj371fpbj";
type = "gem";
};
version = "1.0.0";
};
cocoapods-search = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "02wmy5rbjk29c65zn62bffxv30qs11slql23qx65snkm0vd93mn6";
type = "gem";
};
version = "1.0.0";
};
cocoapods-stats = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0sfcwq2vq6cadj1811jdjys3d28pmk2r2a83px6w94rz6i19axid";
type = "gem";
};
version = "1.0.0";
};
cocoapods-trunk = {
dependencies = ["nap" "netrc"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0shxr64j7f50yglp5l90vr1ba5p9pkk0a3b8apkbci2lmq5kq60b";
type = "gem";
};
version = "1.3.0";
};
cocoapods-try = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gf2zjmcjhh9psq15yfy82wz5jnlihf5bcw79f8hlv4cnqyspncj";
type = "gem";
};
version = "1.1.0";
};
colored2 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
type = "gem";
};
version = "3.1.2";
};
concurrent-ruby = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf";
type = "gem";
};
version = "1.0.5";
};
escape = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0sa1xkfc9jvkwyw1jbz3jhkq0ms1zrvswi6mmfiwcisg5fp497z4";
type = "gem";
};
version = "0.0.4";
};
ffi = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0";
type = "gem";
};
version = "1.9.18";
};
fourflusher = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1dzmkxyzrk475c1yk5zddwhhj28b6fnj4jkk1h5gr1c2mrar72d5";
type = "gem";
};
version = "2.0.1";
};
fuzzy_match = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "19gw1ifsgfrv7xdi6n61658vffgm1867f4xdqfswb2b5h6alzpmm";
type = "gem";
};
version = "2.0.4";
};
gh_inspector = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1lxvp8xpjd2cazzcp90phy567spp4v41bnk9awgx8absndv70k1x";
type = "gem";
};
version = "1.0.3";
};
i18n = {
dependencies = ["concurrent-ruby"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h5wygnbpxas8kwhqkwk6n4s334dxyxvlxykc6mxfndb0m56166r";
type = "gem";
};
version = "0.9.0";
};
jazzy = {
dependencies = ["cocoapods" "mustache" "open4" "redcarpet" "rouge" "sass" "sqlite3" "xcinvoke"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0vvyszmpnzm0my5fp50z5bnqij6zq3cig2p46vgl683hsm48ldsq";
type = "gem";
};
version = "0.9.0";
};
liferaft = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kasbbx84gzsxx8w8bgr6xjg43h9bvzzaqg7si8jirnja8yc27k3";
type = "gem";
};
version = "0.0.6";
};
minitest = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "05521clw19lrksqgvg2kmm025pvdhdaniix52vmbychrn2jm7kz2";
type = "gem";
};
version = "5.10.3";
};
molinillo = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "19h1nks0x2ljwyijs2rd1f9sh05j8xqvjaqk1rslp5nyy6h4a758";
type = "gem";
};
version = "0.5.7";
};
mustache = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
type = "gem";
};
version = "0.99.8";
};
nanaimo = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0z6rbji02x75vm5jw4hbpp75khp4z5yfgbaz1h9l8aa00hqf0fxd";
type = "gem";
};
version = "0.2.3";
};
nap = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
type = "gem";
};
version = "1.1.0";
};
netrc = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
type = "gem";
};
version = "0.11.0";
};
open4 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1";
type = "gem";
};
version = "1.3.4";
};
rb-fsevent = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fbpmjypwxkb8r7y1kmhmyp6gawa4byw0yb3jc3dn9ly4ld9lizf";
type = "gem";
};
version = "0.10.2";
};
rb-inotify = {
dependencies = ["ffi"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
type = "gem";
};
version = "0.9.10";
};
redcarpet = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h9qz2hik4s9knpmbwrzb3jcp3vc5vygp9ya8lcpl7f1l9khmcd7";
type = "gem";
};
version = "3.4.0";
};
rouge = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "13amckbdknnc5491ag28y8pqbyfpbzx5n4rlmadxhd3wkrhp92c8";
type = "gem";
};
version = "1.11.1";
};
ruby-macho = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1i9vkz3ki3yvps4z1hca2q2axniq95x4yypnc22p9pcfjdfrbrq6";
type = "gem";
};
version = "1.1.0";
};
sass = {
dependencies = ["sass-listen"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1167camc4ccqf9lcjlpyf96ji00f0041i7xanj2nm41fkx7kr7kr";
type = "gem";
};
version = "3.5.3";
};
sass-listen = {
dependencies = ["rb-fsevent" "rb-inotify"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
type = "gem";
};
version = "4.0.0";
};
sqlite3 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i";
type = "gem";
};
version = "1.3.13";
};
thread_safe = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
type = "gem";
};
version = "0.3.6";
};
tzinfo = {
dependencies = ["thread_safe"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09dpbrih054mn42flbbcdpzk2727mzfvjrgqb12zdafhx7p9rrzp";
type = "gem";
};
version = "1.2.4";
};
xcinvoke = {
dependencies = ["liferaft"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16pyq7wvx2c0fywrqxk3vg6psa3yjhbd7hw7hv2mjim6myjkdsb7";
type = "gem";
};
version = "0.3.0";
};
xcodeproj = {
dependencies = ["CFPropertyList" "claide" "colored2" "nanaimo"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1gvnd5ixa4wbn1cpc6jp6i9z0dxhcwlxny47irzbr6zr8wpj3ww7";
type = "gem";
};
version = "1.5.3";
};
}

View File

@ -0,0 +1,10 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p bash ruby bundler bundix
rm Gemfile.lock
bundler install
bundix
if [ "clean" == "$1" ]; then
rm -rf ~/.gem
fi

View File

@ -13,11 +13,11 @@ let
in
stdenv.mkDerivation rec {
name = "iozone-3.434";
name = "iozone-3.471";
src = fetchurl {
url = http://www.iozone.org/src/current/iozone3_434.tar;
sha256 = "0aj63mlb91aivz3z71zn8nbwci1pi18qk8zc65dm19cknffqsf1c";
url = http://www.iozone.org/src/current/iozone3_471.tar;
sha256 = "0w63b3d4ws1sm52lpdd08sl7n4ay438dl3wy0q9la12iq81rglid";
};
license = fetchurl {

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
name = "stm32flash-1.0";
stdenv.mkDerivation rec {
name = "stm32flash-0.5";
src = fetchurl {
url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/stm32flash/stm32flash.tar.gz";
sha256 = "04k631g9lzvp9xr4sw51xpq1g542np61s1l8fpwx9rbsc8m5l0i6";
url = "mirror://sourceforge/stm32flash/${name}.tar.gz";
sha256 = "01p396daqw3zh6nijffbfbwyqza33bi2k4q3m5yjzs02xwi99alp";
};
buildFlags = [ "CC=cc" ];
@ -21,6 +21,6 @@ stdenv.mkDerivation {
homepage = https://sourceforge.net/projects/stm32flash/;
license = stdenv.lib.licenses.gpl2;
platforms = platforms.all; # Should work on all platforms
maintainers = [ maintainers.the-kenny ];
maintainers = with maintainers; [ the-kenny elitak ];
};
}

View File

@ -37,6 +37,8 @@ stdenv.mkDerivation {
++ optional (!gtkClient) "--enable-fcmp=cli"
++ optional (!server) "--disable-server";
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Multiplayer (or single player), turn-based strategy game";

View File

@ -0,0 +1,35 @@
{ fetchurl, ncurses, stdenv,
updateAutotoolsGnuConfigScriptsHook }:
stdenv.mkDerivation rec {
name = "freesweep-${version}";
version = "1.0.1";
src = fetchurl {
url = "https://github.com/rwestlund/freesweep/archive/v${version}.tar.gz";
sha256 = "0l2kf14558lsq9qd2hs0kcyn9bbl1jdbzwrvcs6mnyjl7zpizcpj";
};
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
buildInputs = [ ncurses ];
preConfigure = ''
configureFlags="$configureFlags --with-prefsdir=$out/share"
'';
installPhase = ''
runHook preInstall
install -D -m 0555 freesweep $out/bin/freesweep
install -D -m 0444 sweeprc $out/share/sweeprc
install -D -m 0444 freesweep.6 $out/share/man/man6/freesweep.6
runHook postInstall
'';
meta = with stdenv.lib; {
description = "A console minesweeper-style game written in C for Unix-like systems";
homepage = https://github.com/rwestlund/freesweep;
license = licenses.gpl2;
maintainers = with maintainers; [ kierdavis ];
platforms = platforms.unix;
};
}

View File

@ -0,0 +1,9 @@
# This file substitutes $sourceRoot/build/custom.mk
VERSION_EXEC:=false
SYMLINK_FOR_BINARY:=false
INSTALL_CONTRIB:=true
INSTALL_BASE:=${out}
INSTALL_DOC_DIR:=${INSTALL_BASE}/share/doc/openmsx
INSTALL_SHARE_DIR:=${INSTALL_BASE}/share/openmsx
INSTALL_BINARY_DIR:=${INSTALL_BASE}/bin

View File

@ -0,0 +1,48 @@
{ stdenv, fetchFromGitHub, pkgconfig
, python
, alsaLib, glew, mesa_noglu, libpng
, libogg, libtheora, libvorbis
, SDL, SDL_image, SDL_ttf
, freetype, tcl, zlib
}:
stdenv.mkDerivation rec {
name = "openmsx-${version}";
version = "git-2017-11-02";
src = fetchFromGitHub {
owner = "openMSX";
repo = "openMSX";
rev = "eeb74206ae347a3b17e9b99f91f2b4682c5db22c";
sha256 = "170amj7k6wjhwx6psbplqljvckvhxxbv3aw72jrdxl1fb8zlnq3s";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkgconfig python ];
buildInputs = [ alsaLib glew mesa_noglu libpng
libogg libtheora libvorbis freetype
SDL SDL_image SDL_ttf tcl zlib ];
postPatch = ''
cp ${./custom-nixos.mk} build/custom.mk
'';
dontAddPrefix = true;
# Many thanks @mthuurne from OpenMSX project
# for providing support to Nixpkgs :)
TCL_CONFIG="${tcl}/lib/";
meta = with stdenv.lib; {
description = "A MSX emulator";
longDescription = ''
OpenMSX is an emulator for the MSX home computer system. Its goal is
to emulate all aspects of the MSX with 100% accuracy.
'';
homepage = https://openmsx.org;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
};
}

View File

@ -16,7 +16,8 @@ let
buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or [];
buildPhase = "make -f Makefile.libretro";
makefile = "Makefile.libretro";
installPhase = ''
COREDIR="$out/lib/retroarch/cores"
mkdir -p $out/bin

View File

@ -32,15 +32,15 @@ in rec {
unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well.
version = "2.19";
version = "2.21";
url = "https://dl.winehq.org/wine/source/2.x/wine-${version}.tar.xz";
sha256 = "15b0lvs456zjh5wwkhs9wh1ycih12ragk6170hnrrbkmk3k32wa8";
sha256 = "1vxbnikdpsmca3nx064mqrm83xpjsfshy25mdfxmyg5vrzl09yms";
inherit (stable) mono gecko32 gecko64;
};
staging = fetchFromGitHub rec {
inherit (unstable) version;
sha256 = "16jps0x4srxnpdy3vxygvspz7qpd09i83c6j6kg8vv4qkna2lswi";
sha256 = "1qznp4kgss4mhk1vvr91jmszsi47xg312r64l76jkgwijhypmvb7";
owner = "wine-compholio";
repo = "wine-staging";
rev = "v${version}";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, pkgconfig, cmake
{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, cmake
# dependencies
, glib, libXinerama
@ -73,6 +73,16 @@ stdenv.mkDerivation rec {
sha256 = "15j8h251v9jpdg6h6wn1vb45pkk806pf9s5n3rdrps9r185w8hn8";
};
patches = [
# Patch to fix compilation on gcc-7 from conky PR
# https://github.com/brndnmtthws/conky/pull/402
(fetchpatch {
name = "gcc7.patch";
url = "https://github.com/brndnmtthws/conky/commit/6140122b82d50acc333e5d2a813cc1933ecc6d21.patch";
sha256 = "1fblfj1w2kc0gshc2pq9lc1pxxsgmgh8byb1xs2v6amx15kj11k7";
})
];
postPatch = ''
sed -i -e '/include.*CheckIncludeFile)/i include(CheckIncludeFiles)' \
cmake/ConkyPlatformChecks.cmake

View File

@ -3,9 +3,9 @@
with stdenv.lib;
let
version = "4.14.1";
version = "4.14.2";
revision = "a";
sha256 = "0yp05xyz2ygxkhd17s85cqnvi93a49svgm0l1kbyb7y08mg5gp4j";
sha256 = "0bpkff1phc68shw6spkhd6zbxgjkgvdglym8b2hp383h14845qhb";
# modVersion needs to be x.y.z, will automatically add .0 if needed
modVersion = concatStrings (intersperse "." (take 3 (splitString "." "${version}.0")));

View File

@ -1,36 +1,38 @@
{ stdenv, fetchurl, pkgconfig, libxml2, perl, autoreconfHook, doxygen }:
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, libtool, gettext
, libxml2, perl, doxygen }:
let
version = "2.3.2";
in
stdenv.mkDerivation {
stdenv.mkDerivation rec {
name = "libsmbios-${version}";
version = "2.3.3";
src = fetchurl {
url = "https://github.com/dell/libsmbios/archive/v${version}.tar.gz";
sha256 = "0kvi36jrvhspyyq0pjfdyvzvimdn27fvbdpf429qm3xdmfi78y2j";
src = fetchFromGitHub {
owner = "dell";
repo = "libsmbios";
rev = "v${version}";
sha256 = "1cl5nb6qk8ki87hwqf9n1dd9nlhkjnlpdxlhzvm82za16gs7apkl";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ libxml2 perl doxygen ];
nativeBuildInputs = [ autoreconfHook doxygen gettext libtool perl pkgconfig ];
buildInputs = [ libxml2 ];
# It tries to install some Python stuff even when Python is disabled.
installFlags = "pkgpythondir=$(TMPDIR)/python";
configureFlags = [ "--disable-python" "--disable-graphviz" ];
enableParallelBuilding = true;
postInstall =
''
mkdir -p $out/include
cp -va "src/include/"* "$out/include/"
cp -va "out/public-include/"* "$out/include/"
cp -a src/include/smbios_c $out/include/
cp -a out/public-include/smbios_c $out/include/
'';
# Hack to avoid TMPDIR in RPATHs.
preFixup = ''rm -rf "$(pwd)" '';
preFixup = ''rm -rf "$(pwd)" ''; # Hack to avoid TMPDIR in RPATHs
meta = {
homepage = http://linux.dell.com/libsmbios/main;
homepage = https://github.com/dell/libsmbios;
description = "A library to obtain BIOS information";
license = stdenv.lib.licenses.gpl2Plus; # alternatively, under the Open Software License version 2.1
license = with stdenv.lib.licenses; [ osl21 gpl2Plus ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
}

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
description = "Library and tools for non-uniform memory access (NUMA) machines";
homepage = http://oss.sgi.com/projects/libnuma/;
license = licenses.gpl2;
platforms = platforms.linux;
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
maintainers = with maintainers; [ wkennington ];
};
}

View File

@ -47,6 +47,16 @@
'';
};
modsecurity-beta = {
src = fetchFromGitHub {
owner = "SpiderLabs";
repo = "ModSecurity-nginx";
rev = "abbf2c47f6f3205484a1a9db618e067dce213b89";
sha256 = "04ar51bnqjca6g4p2irymgdmc8rh5nsi8ml43srm4krllnkvw8qn";
};
inputs = [ pkgs.curl pkgs.geoip pkgs.libmodsecurity pkgs.libxml2 pkgs.lmdb pkgs.yajl ];
};
echo = {
src = fetchFromGitHub {
owner = "openresty";

View File

@ -0,0 +1,39 @@
From 4e6ae6235c68de243b1c2419027472d7659aa2b4 Mon Sep 17 00:00:00 2001
From: Jeremy Harris <jgh146exb@wizmail.org>
Date: Fri, 24 Nov 2017 20:22:33 +0000
Subject: [PATCH] Avoid release of store if there have been later allocations.
Bug 2199
---
src/receive.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/receive.c b/src/receive.c
index e7e518a..d9b5001 100644
--- a/src/receive.c
+++ b/src/receive.c
@@ -1810,8 +1810,8 @@ for (;;)
(and sometimes lunatic messages can have ones that are 100s of K long) we
call store_release() for strings that have been copied - if the string is at
the start of a block (and therefore the only thing in it, because we aren't
- doing any other gets), the block gets freed. We can only do this because we
- know there are no other calls to store_get() going on. */
+ doing any other gets), the block gets freed. We can only do this release if
+ there were no allocations since the once that we want to free. */
if (ptr >= header_size - 4)
{
@@ -1820,9 +1820,10 @@ for (;;)
header_size *= 2;
if (!store_extend(next->text, oldsize, header_size))
{
+ BOOL release_ok = store_last_get[store_pool] == next->text;
uschar *newtext = store_get(header_size);
memcpy(newtext, next->text, ptr);
- store_release(next->text);
+ if (release_ok) store_release(next->text);
next->text = newtext;
}
}
--
1.9.1

View File

@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
url = "https://anonscm.debian.org/git/pkg-exim4/exim4.git/plain/debian/patches/79_CVE-2017-1000369.patch?h=4.89-2%2bdeb9u1";
sha256 = "0v46zywgkv1rdqhybqqrd0rwkdaj6q1f4x0a3vm9p0wz8vad3023";
})
./cve-2017-16943.patch
];
nativeBuildInputs = [ pkgconfig ];

View File

@ -22,6 +22,18 @@ stdenv.mkDerivation rec {
url = "http://git.openafs.org/?p=openafs.git;a=patch;h=c193e5cba18273a062d4162118c7055b54f7eb5e";
sha256 = "1yc4gygcazwsslf6mzk1ai92as5jbsjv7212jcbb2dw83jydhc09";
})
# linux 4.14
(fetchpatch {
name = "test-for-__vfs_write-rather-than-__vfs_read.patch";
url = "http://git.openafs.org/?p=openafs.git;a=patch;h=929e77a886fc9853ee292ba1aa52a920c454e94b";
sha256 = "0g4jxqzvyrjy2q7mhxc5ikhypj3ljw1wri4lipzm66crsvycp9x5";
})
# linux 4.14
(fetchpatch {
name = "use-kernel_read-kernel_write-when-__vfs-variants-are-unavailable.patch";
url = "http://git.openafs.org/?p=openafs.git;a=patch;h=5ee516b3789d3545f3d78fb3aba2480308359945";
sha256 = "1vx55qb120y857mn1l00i58fj9cckschp86ch3g6hqrdc5q5bxv2";
})
];
preConfigure = ''

View File

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Web-based kanban board";
license = licenses.osl;
license = licenses.osl3;
homepage = http://restya.com;
maintainers = with maintainers; [ tstrobel ];
platforms = platforms.linux;

View File

@ -1,18 +1,18 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
version = "2.2.1";
version = "2.2.2";
name = "antigen-${version}";
src = fetchurl {
url = "https://github.com/zsh-users/antigen/releases/download/v${version}/antigen.zsh";
sha256 = "0s32280ak0gd0rr66g5dj6r5px0si8w47bcxlqfpaijg7i8xk1i7";
sha256 = "0635dvnsqh7dpqdwx5qq3kx7m1cx2038zln6y9ycnbi3i0ilgj9z";
};
phases = "installPhase";
installPhase = ''
outdir=$out/share/antigen
mkdir -p $outdir
cp $src $outdir/antigen.zsh
'';

View File

@ -35,11 +35,11 @@ let
# source both, but source the more global configuration files earlier
# than the more local ones, so that more local configurations inherit
# from but override the more global locations.
if test -f /etc/fish/config.fish
source /etc/fish/config.fish
end
# #
############### ↑ Nix hook for sourcing /etc/fish/config.fish ↑ ###############
'';
@ -88,13 +88,15 @@ let
fish = stdenv.mkDerivation rec {
name = "fish-${version}";
version = "2.6.0";
version = "2.7.0";
etcConfigAppendix = builtins.toFile "etc-config.appendix.fish" etcConfigAppendixText;
src = fetchurl {
url = "http://fishshell.com/files/${version}/${name}.tar.gz";
sha256 = "1yzx73kg5ng5ivhi68756sl5hpb8869110l9fwim6gn7f7bbprby";
# There are differences between the release tarball and the tarball github packages from the tag
# Hence we cannot use fetchFromGithub
url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${name}.tar.gz";
sha256 = "1jvvm27hp46w0cia14lfz6161dkz8b935j1m7j38i7rgx75bfxis";
};
buildInputs = [ ncurses libiconv pcre2 ];
@ -157,6 +159,8 @@ let
tee -a $out/share/fish/__fish_build_paths.fish < ${(writeText "__fish_build_paths_suffix.fish" fishPreInitHooks)}
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Smart and user-friendly command line shell";
homepage = http://fishshell.com/;

View File

@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
name = "xonsh-${version}";
version = "0.5.12";
version = "0.6.0";
src = fetchFromGitHub {
owner = "scopatz";
repo = "xonsh";
rev = version;
sha256= "1s733ay5vcpcl14x23n0amnddyjfla55irddalvw52vijhd2aljz";
sha256= "0hfsan22i81wffx2xbamm8wwkxgpv12z4kfl37p9m22vpqgg0fdg";
};
LC_ALL = "en_US.UTF-8";

View File

@ -0,0 +1,31 @@
{ stdenv, fetchFromGitHub }:
# To make use of this plugin, need to add
# programs.zsh.interactiveShellInit = ''
# source ${pkgs.zsh-command-time}/share/zsh-command-time/command-time.plugin.zsh
# ZSH_COMMAND_TIME_MIN_SECONDS=3
# ZSH_COMMAND_TIME_ECHO=1
# '';
stdenv.mkDerivation rec {
version = "2017-05-09";
name = "zsh-command-time-${version}";
src = fetchFromGitHub {
owner = "popstas";
repo = "zsh-command-time";
rev = "2111361cbc88c542c834fbab7802ae5ae8339824";
sha256 = "0hr9c7196wy9cg7vkmknszr2h446yvg9pqrq0rf3213kz074dhpg";
};
installPhase = ''
install -D $src/command-time.plugin.zsh --target-directory=$out/share/zsh-command-time
'';
meta = with stdenv.lib; {
description = "Plugin that output time: xx after long commands";
homepage = https://github.com/popstas/zsh-command-time;
license = licenses.mit;
platforms = platforms.unix;
};
}

View File

@ -2,7 +2,7 @@
buildGoPackage rec {
name = "restic-${version}";
version = "0.7.1";
version = "0.8.0";
goPackagePath = "github.com/restic/restic";
@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "restic";
repo = "restic";
rev = "v${version}";
sha256 = "07614wp0b6kjl8lq3qir271g0s2h8wvpdh43wsz1k6bip60nmqbf";
sha256 = "10r2p4mkspkkzmj41jskqii02qkliwz2zfhvsabkg8clr8lzfkv9";
};
buildPhase = ''

View File

@ -0,0 +1,73 @@
{ stdenv, fetchurl, skktools }:
let
# kana to kanji
small = fetchurl {
url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.S";
sha256 = "15kp4iwz58fp1zg0i13x7w9wwm15v8n2hhm0nf2zsl7az5mn5yi4";
};
medium = fetchurl {
url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.M";
sha256 = "1vhagixhrp9lq5x7dldxcanhznawazp00xivpp1z52kx10lnkmv0";
};
large = fetchurl {
url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.L";
sha256 = "07cv0j95iajkr48j4ln411vnhl3z93yx96zjc03bgs10dbpagaaz";
};
# english to japanese
edict = fetchurl {
url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.edict";
sha256 = "18k8z1wkgwgfwbs6sylf39h1nc1p5l2b00h7mfjlb8p91plkb45w";
};
# misc
assoc = fetchurl {
url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.assoc";
sha256 = "12d6xpp1bfin9nwl35ydl5yc6vx0qpwhxss0khi19n1nsbyqnixm";
};
in
stdenv.mkDerivation rec {
name = "skk-dicts-unstable-${version}";
version = "2017-10-26";
srcs = [ small medium large edict assoc ];
nativeBuildInputs = [ skktools ];
phases = [ "installPhase" ];
installPhase = ''
function dictname() {
src=$1
name=$(basename $src) # remove dir name
dict=$(echo $name | cut -b34-) # remove sha256 prefix
echo $dict
}
mkdir -p $out/share
for src in $srcs; do
dst=$out/share/$(dictname $src)
echo ";;; -*- coding: utf-8 -*-" > $dst # libskk requires this on the first line
iconv -f EUC-JP -t UTF-8 $src |\
${skktools}/bin/skkdic-expr2 >> $dst
done
# combine .L .edict and .assoc for convenience
dst=$out/share/SKK-JISYO.combined
echo ";;; -*- coding: utf-8 -*-" > $dst
${skktools}/bin/skkdic-expr2 \
$out/share/$(dictname ${large}) + \
$out/share/$(dictname ${edict}) + \
$out/share/$(dictname ${assoc}) >> $dst
'';
meta = {
description = "A collection of standard SKK dictionaries";
longDescription = ''
This package provides a collection of standard kana-to-kanji
dictionaries for the SKK Japanese input method.
'';
homepage = https://github.com/skk-dev/dict;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ yuriaisaka ];
platforms = with stdenv.lib.platforms; linux;
};
}

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