Merge branch 'staging-next' into staging

gstqt5
Jan Tojnar 2020-03-31 21:33:00 +02:00
commit dbb4a47de0
No known key found for this signature in database
GPG Key ID: 7FAB2A15F7A607A4
297 changed files with 9130 additions and 2432 deletions

1
.gitignore vendored
View File

@ -11,6 +11,7 @@ result-*
.version-suffix
.DS_Store
.mypy_cache
/pkgs/development/libraries/qt-5/*/tmp/
/pkgs/desktops/kde-5/*/tmp/

View File

@ -302,6 +302,12 @@
githubId = 786394;
name = "Alexander Krupenkin ";
};
albakham = {
email = "dev@geber.ga";
github = "albakham";
githubId = 43479487;
name = "Titouan Biteau";
};
alexarice = {
email = "alexrice999@hotmail.co.uk";
github = "alexarice";
@ -4398,6 +4404,12 @@
github = "ltavard";
name = "Laure Tavard";
};
luc65r = {
email = "lucas@ransan.tk";
github = "luc65r";
githubId = 59375051;
name = "Lucas Ransan";
};
lucus16 = {
email = "lars.jellema@gmail.com";
github = "Lucus16";
@ -8338,4 +8350,10 @@
githubId = 474343;
name = "Xavier Zwirtz";
};
ymeister = {
name = "Yuri Meister";
email = "47071325+ymeister@users.noreply.github.com";
github = "ymeister";
githubId = 47071325;
};
}

View File

@ -102,10 +102,12 @@ def make_command(args: list) -> str:
def create_vlan(vlan_nr: str) -> Tuple[str, str, "subprocess.Popen[bytes]", Any]:
global log
log.log("starting VDE switch for network {}".format(vlan_nr))
vde_socket = os.path.abspath("./vde{}.ctl".format(vlan_nr))
vde_socket = tempfile.mkdtemp(
prefix="nixos-test-vde-", suffix="-vde{}.ctl".format(vlan_nr)
)
pty_master, pty_slave = pty.openpty()
vde_process = subprocess.Popen(
["vde_switch", "-s", vde_socket, "--dirmode", "0777"],
["vde_switch", "-s", vde_socket, "--dirmode", "0700"],
bufsize=1,
stdin=pty_slave,
stdout=subprocess.PIPE,
@ -939,7 +941,7 @@ if __name__ == "__main__":
machine.process.kill()
for _, _, process, _ in vde_sockets:
process.kill()
process.terminate()
log.close()
tic = time.time()

View File

@ -0,0 +1 @@
azure

View File

@ -0,0 +1,42 @@
# azure
## Demo
Here's a demo of this being used: https://asciinema.org/a/euXb9dIeUybE3VkstLWLbvhmp
## Usage
This is meant to be an example image that you can copy into your own
project and modify to your own needs. Notice that the example image
includes a built-in test user account, which by default uses your
`~/.ssh/id_ed25519.pub` as an `authorized_key`.
Build and upload the image
```shell
$ ./upload-image.sh ./examples/basic/image.nix
...
+ attr=azbasic
+ nix-build ./examples/basic/image.nix --out-link azure
/nix/store/qdpzknpskzw30vba92mb24xzll1dqsmd-azure-image
...
95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565
...
/subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/nixos-images/providers/Microsoft.Compute/images/azure-image-todo-makethisbetter
```
Take the output, boot an Azure VM:
```
img="/subscriptions/.../..." # use output from last command
./boot-vm.sh "${img}"
...
=> booted
```
## Future Work
1. If the user specifies a hard-coded user, then the agent could be removed.
Probably has security benefits; definitely has closure-size benefits.
(It's likely the VM will need to be booted with a special flag. See:
https://github.com/Azure/azure-cli/issues/12775 for details.)

View File

@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -euo pipefail
set -x
image="${1}"
location="westus2"
group="nixos-test-vm"
vm_size="Standard_D2s_v3"; os_size=42;
# ensure group
az group create --location "westus2" --name "${group}"
group_id="$(az group show --name "${group}" -o tsv --query "[id]")"
# (optional) identity
if ! az identity show -n "${group}-identity" -g "${group}" &>/dev/stderr; then
az identity create --name "${group}-identity" --resource-group "${group}"
fi
# (optional) role assignment, to the resource group, bad but not really great alternatives
identity_id="$(az identity show --name "${group}-identity" --resource-group "${group}" -o tsv --query "[id]")"
principal_id="$(az identity show --name "${group}-identity" --resource-group "${group}" -o tsv --query "[principalId]")"
until az role assignment create --assignee "${principal_id}" --role "Owner" --scope "${group_id}"; do sleep 1; done
# boot vm
az vm create \
--name "${group}-vm" \
--resource-group "${group}" \
--assign-identity "${identity_id}" \
--size "${vm_size}" \
--os-disk-size-gb "${os_size}" \
--image "${image}" \
--admin-username "${USER}" \
--location "westus2" \
--storage-sku "Premium_LRS" \
--ssh-key-values "$(ssh-add -L)"

View File

@ -0,0 +1,7 @@
export group="${AZURE_RESOURCE_GROUP:-"azure"}"
export location="${AZURE_LOCATION:-"westus2"}"
img_file=$(echo azure/*.vhd)
img_name="$(basename "${img_file}")"
img_name="${img_name%".vhd"}"
export img_name="${img_name//[._]/-}"

View File

@ -0,0 +1,10 @@
let
pkgs = (import <nixpkgs> {});
machine = import "${pkgs.path}/nixos/lib/eval-config.nix" {
system = "x86_64-linux";
modules = [
({config, ...}: { imports = [ ./system.nix ]; })
];
};
in
machine.config.system.build.azureImage

View File

@ -0,0 +1,34 @@
{ pkgs, modulesPath, ... }:
let username = "azurenixosuser";
in
{
imports = [
"${modulesPath}/virtualisation/azure-common.nix"
"${modulesPath}/virtualisation/azure-image.nix"
];
## NOTE: This is just an example of how to hard-code a user.
## The normal Azure agent IS included and DOES provision a user based
## on the information passed at VM creation time.
users.users."${username}" = {
isNormalUser = true;
home = "/home/${username}";
description = "Azure NixOS Test User";
openssh.authorizedKeys.keys = [ (builtins.readFile ~/.ssh/id_ed25519.pub) ];
};
nix.trustedUsers = [ username ];
virtualisation.azureImage.diskSize = 2500;
system.stateVersion = "20.03";
boot.kernelPackages = pkgs.linuxPackages_latest;
# test user doesn't have a password
services.openssh.passwordAuthentication = false;
security.sudo.wheelNeedsPassword = false;
environment.systemPackages = with pkgs; [
git file htop wget curl
];
}

View File

@ -0,0 +1,13 @@
with (import ../../../../default.nix {});
stdenv.mkDerivation {
name = "nixcfg-azure-devenv";
nativeBuildInputs = [
azure-cli
bash
cacert
azure-storage-azcopy
];
AZURE_CONFIG_DIR="/tmp/azure-cli/.azure";
}

View File

@ -0,0 +1,58 @@
#!/usr/bin/env bash
set -euo pipefail
set -x
image_nix="${1:-"./examples/basic/image.nix"}"
nix-build "${image_nix}" --out-link "azure"
group="nixos-images"
location="westus2"
img_name="nixos-image"
img_file="$(readlink -f ./azure/disk.vhd)"
if ! az group show -n "${group}" &>/dev/null; then
az group create --name "${group}" --location "${location}"
fi
# note: the disk access token song/dance is tedious
# but allows us to upload direct to a disk image
# thereby avoid storage accounts (and naming them) entirely!
if ! az disk show -g "${group}" -n "${img_name}" &>/dev/null; then
bytes="$(stat -c %s ${img_file})"
size="30"
az disk create \
--resource-group "${group}" \
--name "${img_name}" \
--for-upload true --upload-size-bytes "${bytes}"
timeout=$(( 60 * 60 )) # disk access token timeout
sasurl="$(\
az disk grant-access \
--access-level Write \
--resource-group "${group}" \
--name "${img_name}" \
--duration-in-seconds ${timeout} \
| jq -r '.accessSas'
)"
azcopy copy "${img_file}" "${sasurl}" \
--blob-type PageBlob
az disk revoke-access \
--resource-group "${group}" \
--name "${img_name}"
fi
if ! az image show -g "${group}" -n "${img_name}" &>/dev/null; then
diskid="$(az disk show -g "${group}" -n "${img_name}" -o json | jq -r .id)"
az image create \
--resource-group "${group}" \
--name "${img_name}" \
--source "${diskid}" \
--os-type "linux" >/dev/null
fi
imageid="$(az image show -g "${group}" -n "${img_name}" -o json | jq -r .id)"
echo "${imageid}"

View File

@ -0,0 +1,19 @@
{ config, pkgs, lib, ... }:
let
cfg = config.hardware.uinput;
in {
options.hardware.uinput = {
enable = lib.mkEnableOption "uinput support";
};
config = lib.mkIf cfg.enable {
boot.kernelModules = [ "uinput" ];
users.groups.uinput = {};
services.udev.extraRules = ''
SUBSYSTEM=="misc", KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
'';
};
}

View File

@ -65,6 +65,7 @@
./hardware/usb-wwan.nix
./hardware/onlykey.nix
./hardware/wooting.nix
./hardware/uinput.nix
./hardware/video/amdgpu.nix
./hardware/video/amdgpu-pro.nix
./hardware/video/ati.nix
@ -368,6 +369,7 @@
./services/hardware/thermald.nix
./services/hardware/undervolt.nix
./services/hardware/vdr.nix
./services/hardware/xow.nix
./services/logging/SystemdJournal2Gelf.nix
./services/logging/awstats.nix
./services/logging/fluentd.nix
@ -394,6 +396,7 @@
./services/mail/mailcatcher.nix
./services/mail/mailhog.nix
./services/mail/mailman.nix
./services/mail/magic-wormhole-mailbox-server.nix
./services/mail/mlmmj.nix
./services/mail/offlineimap.nix
./services/mail/opendkim.nix

View File

@ -318,7 +318,7 @@ in
description = "Renew ACME Certificate for ${cert}";
after = [ "network.target" "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
wantedBy = mkIf (!config.boot.isContainer) [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
# With RemainAfterExit the service is considered active even

View File

@ -120,10 +120,16 @@ in
++ optional hasDocker "docker.service";
requires = optional hasDocker "docker.service";
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
restartTriggers = [
config.environment.etc."gitlab-runner/config.toml".source
];
serviceConfig = {
StateDirectory = "gitlab-runner";
ExecReload= "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
ExecStart = ''${cfg.package.bin}/bin/gitlab-runner run \
--working-directory ${cfg.workDir} \
--config ${configFile} \
--config /etc/gitlab-runner/config.toml \
--service gitlab-runner \
--user gitlab-runner \
'';
@ -138,6 +144,9 @@ in
# Make the gitlab-runner command availabe so users can query the runner
environment.systemPackages = [ cfg.package ];
# Make sure the config can be reloaded on change
environment.etc."gitlab-runner/config.toml".source = configFile;
users.users.gitlab-runner = {
group = "gitlab-runner";
extraGroups = optional hasDocker "docker";

View File

@ -4,14 +4,13 @@ with lib;
let
cfg = config.services.factorio;
factorio = pkgs.factorio-headless;
name = "Factorio";
stateDir = "/var/lib/${cfg.stateDirName}";
mkSavePath = name: "${stateDir}/saves/${name}.zip";
configFile = pkgs.writeText "factorio.conf" ''
use-system-read-write-data-directories=true
[path]
read-data=${factorio}/share/factorio/data
read-data=${cfg.package}/share/factorio/data
write-data=${stateDir}
'';
serverSettings = {
@ -37,7 +36,7 @@ let
only_admins_can_pause_the_game = true;
autosave_only_on_server = true;
admins = [];
};
} // cfg.extraSettings;
serverSettingsFile = pkgs.writeText "server-settings.json" (builtins.toJSON (filterAttrsRecursive (n: v: v != null) serverSettings));
modDir = pkgs.factorio-utils.mkModDirDrv cfg.mods;
in
@ -115,6 +114,14 @@ in
Description of the game that will appear in the listing.
'';
};
extraSettings = mkOption {
type = types.attrs;
default = {};
example = { admins = [ "username" ];};
description = ''
Extra game configuration that will go into server-settings.json
'';
};
public = mkOption {
type = types.bool;
default = false;
@ -136,6 +143,15 @@ in
Your factorio.com login credentials. Required for games with visibility public.
'';
};
package = mkOption {
type = types.package;
default = pkgs.factorio-headless;
defaultText = "pkgs.factorio-headless";
example = "pkgs.factorio-headless-experimental";
description = ''
Factorio version to use. This defaults to the stable channel.
'';
};
password = mkOption {
type = types.nullOr types.str;
default = null;
@ -184,7 +200,7 @@ in
preStart = toString [
"test -e ${stateDir}/saves/${cfg.saveName}.zip"
"||"
"${factorio}/bin/factorio"
"${cfg.package}/bin/factorio"
"--config=${cfg.configFile}"
"--create=${mkSavePath cfg.saveName}"
(optionalString (cfg.mods != []) "--mod-directory=${modDir}")
@ -197,7 +213,7 @@ in
StateDirectory = cfg.stateDirName;
UMask = "0007";
ExecStart = toString [
"${factorio}/bin/factorio"
"${cfg.package}/bin/factorio"
"--config=${cfg.configFile}"
"--port=${toString cfg.port}"
"--start-server=${mkSavePath cfg.saveName}"

View File

@ -0,0 +1,17 @@
{ config, pkgs, lib, ... }:
let
cfg = config.services.hardware.xow;
in {
options.services.hardware.xow = {
enable = lib.mkEnableOption "xow as a systemd service";
};
config = lib.mkIf cfg.enable {
hardware.uinput.enable = true;
systemd.packages = [ pkgs.xow ];
services.udev.packages = [ pkgs.xow ];
};
}

View File

@ -0,0 +1,28 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.magic-wormhole-mailbox-server;
dataDir = "/var/lib/magic-wormhole-mailbox-server;";
python = pkgs.python3.withPackages (py: [ py.magic-wormhole-mailbox-server py.twisted ]);
in
{
options.services.magic-wormhole-mailbox-server = {
enable = mkEnableOption "Enable Magic Wormhole Mailbox Server";
};
config = mkIf cfg.enable {
systemd.services.magic-wormhole-mailbox-server = {
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
ExecStart = "${python}/bin/twistd --nodaemon wormhole-mailbox";
WorkingDirectory = dataDir;
StateDirectory = baseNameOf dataDir;
};
};
};
}

View File

@ -565,7 +565,7 @@ in {
add_header Referrer-Policy no-referrer;
access_log off;
'';
"~ \\.(?:png|html|ttf|ico|jpg|jpeg)$".extraConfig = ''
"~ \\.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$".extraConfig = ''
try_files $uri /index.php$request_uri;
access_log off;
'';

View File

@ -129,6 +129,7 @@ in
services.xserver.desktopManager.session = [{
name = "xfce";
desktopNames = [ "XFCE" ];
bgSupport = true;
start = ''
${pkgs.runtimeShell} ${pkgs.xfce.xfce4-session.xinitrc} &

View File

@ -412,6 +412,9 @@ in
(dm: wm: let
sessionName = "${dm.name}${optionalString (wm.name != "none") ("+" + wm.name)}";
script = xsession dm wm;
desktopNames = if dm ? desktopNames
then concatStringsSep ";" dm.desktopNames
else sessionName;
in
optional (dm.name != "none" || wm.name != "none")
(pkgs.writeTextFile {
@ -427,7 +430,7 @@ in
TryExec=${script}
Exec=${script}
Name=${sessionName}
DesktopNames=${sessionName}
DesktopNames=${desktopNames}
'';
} // {
providedSessions = [ sessionName ];

View File

@ -842,7 +842,6 @@ in
[Manager]
${optionalString config.systemd.enableCgroupAccounting ''
DefaultCPUAccounting=yes
DefaultBlockIOAccounting=yes
DefaultIOAccounting=yes
DefaultBlockIOAccounting=yes
DefaultIPAccounting=yes

View File

@ -291,13 +291,19 @@ let
${optionalString config.virtualisation.libvirtd.enable ''
# Enslave dynamically added interfaces which may be lost on nixos-rebuild
for uri in qemu:///system lxc:///; do
for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do
${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \
${pkgs.xmlstarlet}/bin/xmlstarlet sel -t -m "//domain/devices/interface[@type='bridge'][source/@bridge='${n}'][target/@dev]" -v "concat('ip link set ',target/@dev,' master ',source/@bridge,';')" | \
${pkgs.bash}/bin/bash
#
# if `libvirtd.service` is not running, do not use `virsh` which would try activate it via 'libvirtd.socket' and thus start it out-of-order.
# `libvirtd.service` will set up bridge interfaces when it will start normally.
#
if ${pkgs.systemd}/bin/systemctl --quiet is-active 'libvirtd.service'; then
for uri in qemu:///system lxc:///; do
for dom in $(${pkgs.libvirt}/bin/virsh -c $uri list --name); do
${pkgs.libvirt}/bin/virsh -c $uri dumpxml "$dom" | \
${pkgs.xmlstarlet}/bin/xmlstarlet sel -t -m "//domain/devices/interface[@type='bridge'][source/@bridge='${n}'][target/@dev]" -v "concat('ip link set ',target/@dev,' master ',source/@bridge,';')" | \
${pkgs.bash}/bin/bash
done
done
done
fi
''}
# Enable stp on the interface

View File

@ -634,19 +634,23 @@ in
networking.bonds =
let
driverOptionsExample = {
miimon = "100";
mode = "active-backup";
};
driverOptionsExample = ''
{
miimon = "100";
mode = "active-backup";
}
'';
in mkOption {
default = { };
example = literalExample {
bond0 = {
interfaces = [ "eth0" "wlan0" ];
driverOptions = driverOptionsExample;
};
anotherBond.interfaces = [ "enp4s0f0" "enp4s0f1" "enp5s0f0" "enp5s0f1" ];
};
example = literalExample ''
{
bond0 = {
interfaces = [ "eth0" "wlan0" ];
driverOptions = ${driverOptionsExample};
};
anotherBond.interfaces = [ "enp4s0f0" "enp4s0f1" "enp5s0f0" "enp5s0f1" ];
}
'';
description = ''
This option allows you to define bond devices that aggregate multiple,
underlying networking interfaces together. The value of this option is
@ -731,12 +735,14 @@ in
networking.macvlans = mkOption {
default = { };
example = literalExample {
wan = {
interface = "enp2s0";
mode = "vepa";
};
};
example = literalExample ''
{
wan = {
interface = "enp2s0";
mode = "vepa";
};
}
'';
description = ''
This option allows you to define macvlan interfaces which should
be automatically created.
@ -764,18 +770,20 @@ in
networking.sits = mkOption {
default = { };
example = literalExample {
hurricane = {
remote = "10.0.0.1";
local = "10.0.0.22";
ttl = 255;
};
msipv6 = {
remote = "192.168.0.1";
dev = "enp3s0";
ttl = 127;
};
};
example = literalExample ''
{
hurricane = {
remote = "10.0.0.1";
local = "10.0.0.22";
ttl = 255;
};
msipv6 = {
remote = "192.168.0.1";
dev = "enp3s0";
ttl = 127;
};
}
'';
description = ''
This option allows you to define 6-to-4 interfaces which should be automatically created.
'';
@ -826,16 +834,18 @@ in
networking.vlans = mkOption {
default = { };
example = literalExample {
vlan0 = {
id = 3;
interface = "enp3s0";
};
vlan1 = {
id = 1;
interface = "wlan0";
};
};
example = literalExample ''
{
vlan0 = {
id = 3;
interface = "enp3s0";
};
vlan1 = {
id = 1;
interface = "wlan0";
};
}
'';
description =
''
This option allows you to define vlan devices that tag packets
@ -868,24 +878,26 @@ in
networking.wlanInterfaces = mkOption {
default = { };
example = literalExample {
wlan-station0 = {
device = "wlp6s0";
};
wlan-adhoc0 = {
type = "ibss";
device = "wlp6s0";
mac = "02:00:00:00:00:01";
};
wlan-p2p0 = {
device = "wlp6s0";
mac = "02:00:00:00:00:02";
};
wlan-ap0 = {
device = "wlp6s0";
mac = "02:00:00:00:00:03";
};
};
example = literalExample ''
{
wlan-station0 = {
device = "wlp6s0";
};
wlan-adhoc0 = {
type = "ibss";
device = "wlp6s0";
mac = "02:00:00:00:00:01";
};
wlan-p2p0 = {
device = "wlp6s0";
mac = "02:00:00:00:00:02";
};
wlan-ap0 = {
device = "wlp6s0";
mac = "02:00:00:00:00:03";
};
}
'';
description =
''
Creating multiple WLAN interfaces on top of one physical WLAN device (NIC).

View File

@ -15,6 +15,8 @@ with lib;
boot.loader.grub.version = 2;
boot.loader.timeout = 0;
boot.growPartition = true;
# Don't put old configurations in the GRUB menu. The user has no
# way to select them anyway.
boot.loader.grub.configurationLimit = 0;

View File

@ -2,27 +2,38 @@
with lib;
let
diskSize = 2048;
cfg = config.virtualisation.azureImage;
in
{
system.build.azureImage = import ../../lib/make-disk-image.nix {
name = "azure-image";
postVM = ''
${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=fixed,force_size -O vpc $diskImage $out/disk.vhd
'';
configFile = ./azure-config-user.nix;
format = "raw";
inherit diskSize;
inherit config lib pkgs;
};
imports = [ ./azure-common.nix ];
options = {
virtualisation.azureImage.diskSize = mkOption {
type = with types; int;
default = 2048;
description = ''
Size of disk image. Unit is MB.
'';
};
};
config = {
system.build.azureImage = import ../../lib/make-disk-image.nix {
name = "azure-image";
postVM = ''
${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o subformat=fixed,force_size -O vpc $diskImage $out/disk.vhd
rm $diskImage
'';
configFile = ./azure-config-user.nix;
format = "raw";
inherit (cfg) diskSize;
inherit config lib pkgs;
};
# Azure metadata is available as a CD-ROM drive.
fileSystems."/metadata".device = "/dev/sr0";
# Azure metadata is available as a CD-ROM drive.
fileSystems."/metadata".device = "/dev/sr0";
systemd.services.fetch-ssh-keys =
{ description = "Fetch host keys and authorized_keys for root user";
systemd.services.fetch-ssh-keys = {
description = "Fetch host keys and authorized_keys for root user";
wantedBy = [ "sshd.service" "waagent.service" ];
before = [ "sshd.service" "waagent.service" ];
@ -54,6 +65,6 @@ in
serviceConfig.RemainAfterExit = true;
serviceConfig.StandardError = "journal+console";
serviceConfig.StandardOutput = "journal+console";
};
};
};
}

View File

@ -214,14 +214,14 @@ in {
};
systemd.services.libvirtd = {
description = "Libvirt Virtual Machine Management Daemon";
wantedBy = [ "multi-user.target" ];
requires = [ "libvirtd-config.service" ];
after = [ "systemd-udev-settle.service" "libvirtd-config.service" ]
++ optional vswitch.enable "ovs-vswitchd.service";
environment.LIBVIRTD_ARGS = ''--config "${configFile}" ${concatStringsSep " " cfg.extraOptions}'';
environment.LIBVIRTD_ARGS = escapeShellArgs (
[ "--config" configFile
"--timeout" "120" # from ${libvirt}/var/lib/sysconfig/libvirtd
] ++ cfg.extraOptions);
path = [ cfg.qemuPackage ] # libvirtd requires qemu-img to manage disk images
++ optional vswitch.enable vswitch.package;
@ -266,5 +266,8 @@ in {
serviceConfig.ExecStart = "@${pkgs.libvirt}/sbin/virtlockd virtlockd";
restartIfChanged = false;
};
systemd.sockets.libvirtd .wantedBy = [ "sockets.target" ];
systemd.sockets.libvirtd-tcp.wantedBy = [ "sockets.target" ];
};
}

View File

@ -170,6 +170,7 @@ in
#logstash = handleTest ./logstash.nix {};
lorri = handleTest ./lorri/default.nix {};
magnetico = handleTest ./magnetico.nix {};
magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
mailcatcher = handleTest ./mailcatcher.nix {};
mathics = handleTest ./mathics.nix {};
matomo = handleTest ./matomo.nix {};

View File

@ -24,7 +24,6 @@ in {
enable = true;
serverId = "aa76c84b-50b0-4711-a0a0-1ee30e45bbd0";
listenAddress = "[::]:80";
jvmPackage = pkgs.jdk12_headless;
jvmHeapLimit = "1g";
plugins = [ lfs ];

View File

@ -0,0 +1,38 @@
import ./make-test-python.nix ({ pkgs, ... }: {
name = "magic-wormhole-mailbox-server";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mmahut ];
};
nodes = {
server = { ... }: {
networking.firewall.allowedTCPPorts = [ 4000 ];
services.magic-wormhole-mailbox-server.enable = true;
};
client_alice = { ... }: {
networking.firewall.enable = false;
environment.systemPackages = [ pkgs.magic-wormhole ];
};
client_bob = { ... }: {
environment.systemPackages = [ pkgs.magic-wormhole ];
};
};
testScript = ''
start_all()
# Start the wormhole relay server
server.wait_for_unit("magic-wormhole-mailbox-server.service")
server.wait_for_open_port(4000)
# Create a secret file and send it to Bob
client_alice.succeed("echo mysecret > secretfile")
client_alice.succeed("wormhole --relay-url=ws://server:4000/v1 send -0 secretfile &")
# Retrieve a secret file from Alice and check its content
client_bob.succeed("wormhole --relay-url=ws://server:4000/v1 receive -0 --accept-file")
client_bob.succeed("grep mysecret secretfile")
'';
})

View File

@ -68,6 +68,11 @@ import ./make-test-python.nix ({ pkgs, ...} : {
"testdb2.*" = "ALL PRIVILEGES";
};
}];
services.mysql.settings = {
mysqld = {
plugin-load-add = [ "ha_tokudb.so" "ha_rocksdb.so" ];
};
};
services.mysql.package = pkgs.mariadb;
};
@ -106,5 +111,33 @@ import ./make-test-python.nix ({ pkgs, ...} : {
mariadb.succeed(
"echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
)
# Check if TokuDB plugin works
mariadb.succeed(
"echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25"
)
mariadb.succeed(
"echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser"
)
# Check if RocksDB plugin works
mariadb.succeed(
"echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
)
mariadb.succeed(
"echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
)
mariadb.succeed(
"echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
)
'';
})

View File

@ -61,7 +61,7 @@
meta = {
description = "Creates MIDI tracks for a soloist to perform over from a user supplied file containing chords";
homepage = http://www.mellowood.ca/mma/index.html;
homepage = "https://www.mellowood.ca/mma/index.html";
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.magnetophon ];
platforms = stdenv.lib.platforms.linux;

View File

@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "aeolus";
version = "0.9.7";
version = "0.9.8";
src = fetchurl {
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "0lhbr95hmbfj8ynbcpawn7jzjbpvrkm6k2yda39yhqk1bzg38v2k";
sha256 = "1zfr3567mwbqsfybkhg03n5dvmhllk88c9ayb10qzz2nh6d7g2qn";
};
buildInputs = [
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Synthetized (not sampled) pipe organ emulator";
homepage = http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html;
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/aeolus/index.html";
license = stdenv.lib.licenses.lgpl3;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.nico202 ];

View File

@ -59,13 +59,13 @@ assert remoteSupport -> curl != null;
stdenv.mkDerivation rec {
pname = "deadbeef";
version = "1.8.2";
version = "1.8.3";
src = fetchFromGitHub {
owner = "DeaDBeeF-Player";
repo = "deadbeef";
rev = version;
sha256 = "016wwnh5jqdcfxn1ff6in5dz73c3gdhh3fva8inq7sc3vzdz5khj";
sha256 = "0n0q7zfl56gnadcqqp5rg7sbh1xvfcmp7cvmh2ax07037b346qig";
};
buildInputs = with stdenv.lib; [ jansson ]
@ -108,7 +108,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Ultimate Music Player for GNU/Linux";
homepage = http://deadbeef.sourceforge.net/;
homepage = "http://deadbeef.sourceforge.net/";
license = licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [ maintainers.abbradar ];

View File

@ -1,19 +0,0 @@
--- a/plugins/wildmidi/src/wildmidi_lib.c
+++ b/plugins/wildmidi/src/wildmidi_lib.c
@@ -394,11 +394,11 @@ free_gauss (void) {
}
}
-unsigned long int delay_size[4][2];
-signed long int a[5][2];
-signed long int b[5][2];
-signed long int gain_in[4];
-signed long int gain_out[4];
+static unsigned long int delay_size[4][2];
+static signed long int a[5][2];
+static signed long int b[5][2];
+static signed long int gain_in[4];
+static signed long int gain_out[4];
void init_lowpass (void) {
float c = 0;

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "lsp-plugins";
version = "1.1.13";
version = "1.1.15";
src = fetchFromGitHub {
owner = "sadko4u";
repo = pname;
rev = "${pname}-${version}";
sha256 = "00mhrr873kgcnqy3q0yi1r5zacfcvz7fqpzsmfhw5d095jm970al";
sha256 = "0lynyjs5zp27gnzcv8a23pvb7c1ghzc2dspypca3ciq40bfpfzik";
};
nativeBuildInputs = [ pkgconfig php makeWrapper ];
@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
makeFlags = [
"PREFIX=${placeholder ''out''}"
"ETC_PATH=$(out)/etc"
];
NIX_CFLAGS_COMPILE = "-DLSP_NO_EXPERIMENTAL";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "samplv1";
version = "0.9.12";
version = "0.9.13";
src = fetchurl {
url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz";
sha256 = "0xzjxiqzcf1ygabrjsy0iachhnpy85rp9519fmj2f568r6ml6hzg";
sha256 = "0clsp6s5qfnh0xaxbd35vq2ppi72q9dfayrzlgl73800a8p7gh9m";
};
buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools];
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
homepage = http://samplv1.sourceforge.net/;
homepage = "http://samplv1.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "spotify-tui";
version = "0.17.0";
version = "0.17.1";
src = fetchFromGitHub {
owner = "Rigellute";
repo = "spotify-tui";
rev = "v${version}";
sha256 = "1jx2qyshqg84l3fm682h8262da0hy68qjjg3dm2i53dxqxrm5ji9";
sha256 = "1gsddjinxmglm05hhphclax08d9pig1f0wjjs3bbcq096fydxgfs";
};
cargoSha256 = "12qwp59gshc9d6nz0s3w03zc8sxqri12vrav94vi54fqagiikinm";
cargoSha256 = "1y398ypckk3gw1sfzf97xzwf5d5z3kxlcpn3bccmsfr59kvkf661";
nativeBuildInputs = [ pkgconfig ] ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
buildInputs = [ openssl ]

View File

@ -2,11 +2,11 @@
mkDerivation rec {
pname = "synthv1";
version = "0.9.12";
version = "0.9.13";
src = fetchurl {
url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
sha256 = "1amxrl1cqwgncw5437r572frgf6xhss3cfpbgh178i8phlq1q731";
sha256 = "0bb48myvgvqcibwm68qhd4852pjr2g19rasf059a799d1hzgfq3l";
};
buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
@ -15,7 +15,7 @@ mkDerivation rec {
meta = with stdenv.lib; {
description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
homepage = https://synthv1.sourceforge.io/;
homepage = "https://synthv1.sourceforge.io/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];

View File

@ -7,7 +7,7 @@ stdenv.mkDerivation {
version = "0.49.6";
src = fetchurl {
url = "http://traverso-daw.org/traverso-0.49.6.tar.gz";
url = "https://traverso-daw.org/traverso-0.49.6.tar.gz";
sha256 = "12f7x8kw4fw1j0xkwjrp54cy4cv1ql0zwz2ba5arclk4pf6bhl7q";
};
@ -23,7 +23,7 @@ stdenv.mkDerivation {
meta = with stdenv.lib; {
description = "Cross-platform multitrack audio recording and audio editing suite";
homepage = http://traverso-daw.org/;
homepage = "https://traverso-daw.org/";
license = with licenses; [ gpl2Plus lgpl21Plus ];
platforms = platforms.all;
maintainers = with maintainers; [ coconnor ];

View File

@ -2,12 +2,12 @@
let
pname = "ledger-live-desktop";
version = "1.20.0";
version = "2.1.0";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
sha256 = "09mgd5nsd65w4irgzgmfz1k0r1k4fgkq490pkil8nqy6akjrsw1z";
sha256 = "1ywvdqmq8asczhmvc6ai2v6di1f5q19x3ygqlinwz8d1hrj3496r";
};
appimageContents = appimageTools.extractType2 {

View File

@ -1070,10 +1070,10 @@
elpaBuild {
pname = "elisp-benchmarks";
ename = "elisp-benchmarks";
version = "1.3";
version = "1.4";
src = fetchurl {
url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.3.tar";
sha256 = "05a891mwbz50q3a44irbf2w4wlp5dm2yxwcvxqrckvpjm1amndmf";
url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.4.tar";
sha256 = "18ia04aq4pqa8374x60g3g66jqmm17c6n904naa0jhqphlgam8pb";
};
packageRequires = [];
meta = {
@ -1572,7 +1572,7 @@
license = lib.licenses.free;
};
}) {};
ioccur = callPackage ({ elpaBuild, fetchurl, lib }:
ioccur = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
elpaBuild {
pname = "ioccur";
ename = "ioccur";
@ -1581,7 +1581,7 @@
url = "https://elpa.gnu.org/packages/ioccur-2.4.el";
sha256 = "1isid3kgsi5qkz27ipvmp9v5knx0qigmv7lz12mqdkwv8alns1p9";
};
packageRequires = [];
packageRequires = [ cl-lib emacs ];
meta = {
homepage = "https://elpa.gnu.org/packages/ioccur.html";
license = lib.licenses.free;
@ -2215,10 +2215,10 @@
elpaBuild {
pname = "oauth2";
ename = "oauth2";
version = "0.11";
version = "0.12";
src = fetchurl {
url = "https://elpa.gnu.org/packages/oauth2-0.11.el";
sha256 = "0ydkc9jazsnbbvfhd47mql52y7k06n3z7r0naqxkwb99j9blqsmp";
url = "https://elpa.gnu.org/packages/oauth2-0.12.el";
sha256 = "1rfyfy0h7shr3fmd8lh6s2i3ahfh28wb5fqiqlsjwspn5h77ll29";
};
packageRequires = [];
meta = {
@ -3056,10 +3056,10 @@
elpaBuild {
pname = "sql-indent";
ename = "sql-indent";
version = "1.4";
version = "1.5";
src = fetchurl {
url = "https://elpa.gnu.org/packages/sql-indent-1.4.tar";
sha256 = "1nilxfm30nb2la1463729rgbgbma7igkf0z325k8cbapqanb1wgl";
url = "https://elpa.gnu.org/packages/sql-indent-1.5.tar";
sha256 = "07k5rn9hbxppnka7nq0a3a6zyqqa1hp8j6qrb344js6zyak0cb63";
};
packageRequires = [ cl-lib ];
meta = {
@ -3225,10 +3225,10 @@
elpaBuild {
pname = "tramp";
ename = "tramp";
version = "2.4.3.2";
version = "2.4.3.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/tramp-2.4.3.2.tar";
sha256 = "17kay6rpkgz79jggzj53awkbqfsp5sq93wpssw5vlwnigd4mrkzx";
url = "https://elpa.gnu.org/packages/tramp-2.4.3.3.tar";
sha256 = "1di9ia59k6x7j9r8flwf05r160j30nrg0jvq5fjc9iazag9lniyw";
};
packageRequires = [ emacs ];
meta = {

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "WYSIWYG PostScript annotator";
homepage = http://flpsed.org/flpsed.html;
homepage = "https://flpsed.org/flpsed.html";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ ];

View File

@ -20,11 +20,11 @@ let
in stdenv.mkDerivation rec {
pname = "nano";
version = "4.9";
version = "4.9.1";
src = fetchurl {
url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
sha256 = "19ik88b3g0d9xwav4hkai2h1acmjy5fdnh21gdc1mjq5s4lrff8f";
sha256 = "0v5s58j3lbg5s6gapl9kjmzph7zgwaam53qspycy2sxaxw65mkaj";
};
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;

View File

@ -17,7 +17,7 @@
python3.pkgs.buildPythonApplication rec {
pname = "drawing";
version = "0.4.11";
version = "0.4.13";
format = "other";
@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "maoschanz";
repo = pname;
rev = version;
sha256 = "00c1h6jns11rmsg35gy40fb6ahvik80wpbm2133bjcqxfwwnlal6";
sha256 = "0mj2nmfrckv89srgkn16fnbrb35f5a655ak8bb3rd9na3hd5bq53";
};
nativeBuildInputs = [

View File

@ -1,40 +1,38 @@
{ stdenv,
lib,
fetchFromGitHub,
rustPlatform,
{ stdenv
, lib
, fetchFromGitHub
, rustPlatform
cmake,
gzip,
installShellFiles,
makeWrapper,
ncurses,
pkgconfig,
python3,
, cmake
, gzip
, installShellFiles
, makeWrapper
, ncurses
, pkgconfig
, python3
expat,
fontconfig,
freetype,
libGL,
libX11,
libXcursor,
libXi,
libXrandr,
libXxf86vm,
libxcb,
libxkbcommon,
wayland,
xdg_utils,
, expat
, fontconfig
, freetype
, libGL
, libX11
, libXcursor
, libXi
, libXrandr
, libXxf86vm
, libxcb
, libxkbcommon
, wayland
, xdg_utils
# Darwin Frameworks
AppKit,
CoreGraphics,
CoreServices,
CoreText,
Foundation,
OpenGL }:
with rustPlatform;
, AppKit
, CoreGraphics
, CoreServices
, CoreText
, Foundation
, OpenGL
}:
let
rpathLibs = [
expat
@ -51,18 +49,19 @@ let
libxkbcommon
wayland
];
in buildRustPackage rec {
in
rustPlatform.buildRustPackage rec {
pname = "alacritty";
version = "0.4.1";
version = "0.4.2";
src = fetchFromGitHub {
owner = "jwilm";
owner = "alacritty";
repo = pname;
rev = "v${version}";
sha256 = "05jcg33ifngpzw2hdhgb614j87ihhhlqgar0kky183rywg0dxikg";
sha256 = "133d8vm7ihlvgw8n1jghhh35h664h0f52h6gci54f11vl6c1spws";
};
cargoSha256 = "182j8ah67b2gw409vjfml3p41i00zh0klx9m8bwfkm64y2ki2bip";
cargoSha256 = "07gq63qd11zz229b8jp9wqggz39qfpzd223z1zk1xch7rhqq0pn4";
nativeBuildInputs = [
cmake
@ -75,9 +74,17 @@ in buildRustPackage rec {
];
buildInputs = rpathLibs
++ lib.optionals stdenv.isDarwin [ AppKit CoreGraphics CoreServices CoreText Foundation OpenGL ];
++ lib.optionals stdenv.isDarwin [
AppKit
CoreGraphics
CoreServices
CoreText
Foundation
OpenGL
];
outputs = [ "out" "terminfo" ];
postPatch = ''
substituteInPlace alacritty/src/config/mouse.rs \
--replace xdg-open ${xdg_utils}/bin/xdg-open
@ -90,14 +97,16 @@ in buildRustPackage rec {
install -D target/release/alacritty $out/bin/alacritty
'' + (if stdenv.isDarwin then ''
mkdir $out/Applications
cp -r target/release/osx/Alacritty.app $out/Applications/Alacritty.app
'' else ''
install -D extra/linux/alacritty.desktop -t $out/share/applications/
install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
patchelf --set-rpath "${stdenv.lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
'') + ''
'' + (
if stdenv.isDarwin then ''
mkdir $out/Applications
cp -r target/release/osx/Alacritty.app $out/Applications/Alacritty.app
'' else ''
install -D extra/linux/Alacritty.desktop -t $out/share/applications/
install -D extra/logo/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $out/bin/alacritty
''
) + ''
installShellCompletion --zsh extra/completions/_alacritty
installShellCompletion --bash extra/completions/alacritty.bash
@ -116,11 +125,11 @@ in buildRustPackage rec {
dontPatchELF = true;
meta = with stdenv.lib; {
description = "GPU-accelerated terminal emulator";
homepage = "https://github.com/jwilm/alacritty";
meta = with lib; {
description = "A cross-platform, GPU-accelerated terminal emulator";
homepage = "https://github.com/alacritty/alacritty";
license = licenses.asl20;
maintainers = with maintainers; [ filalex77 mic92 ];
maintainers = with maintainers; [ filalex77 mic92 cole-h ];
platforms = platforms.unix;
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "calcurse";
version = "4.5.1";
version = "4.6.0";
src = fetchurl {
url = "https://calcurse.org/files/${pname}-${version}.tar.gz";
sha256 = "0cgkd285x5pk62lmdx9fjxl46c5lj8wj2cqbxq7d99yb4il5fdjk";
sha256 = "0hzhdpkkn75jlymanwzl69hrrf1pw29hrchr11wlxqjpl43h62gs";
};
buildInputs = [ ncurses gettext python3 python3Packages.wrapPython ];
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
customized to suit user needs and a very powerful set of command line options can
be used to filter and format appointments, making it suitable for use in scripts.
'';
homepage = http://calcurse.org/;
homepage = "http://calcurse.org/";
license = licenses.bsd2;
platforms = platforms.linux;
};

View File

@ -2,11 +2,11 @@
pythonPackages.buildPythonApplication rec {
pname = "cherrytree";
version = "0.39.0";
version = "0.39.1";
src = fetchurl {
url = "https://www.giuspen.com/software/${pname}-${version}.tar.xz";
sha256 = "07ibr891qix7xa2sk6fdxdsji8q56c1wf786mxaz77500m0xfx4m";
sha256 = "0qhycblnixvbybzr8psgmgcpfs6jc9m0p2h9lmd5zmiaggqlcsv7";
};
nativeBuildInputs = [ gettext ];

View File

@ -0,0 +1,47 @@
# Notes by Charles Duffy <charles@dyfis.net> --
#
# - The new version of OpenMP does not allow outside variables to be referenced
# *at all* without an explicit declaration of how they're supposed to be
# handled. Thus, this was an outright build failure beforehand. The new
# pragmas copy the initial value from the outer scope into each parallel
# thread. Since these variables are all constant within the loops, this is
# clearly correct. (Not sure it's *optimal*, but quite sure it isn't
# *wrong*).
# - Upstream has been contacted -- I'm a Lulzbot customer with an active
# support contract and sent them the patch. That said, they're in the middle
# of some major corporate churn (sold themselves out of near-bankruptcy to an
# out-of-state business entity formed as a holding company; moved to that
# state; have been slowly restaffing after), so a response may take a while.
# - The patch is purely my own work.
--- curaengine/src/support.cpp.orig 2020-03-28 10:38:01.953912363 -0500
+++ curaengine/src/support.cpp 2020-03-28 10:45:28.999791908 -0500
@@ -854,7 +854,7 @@
const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle
xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance);
// for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area
- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic)
+ #pragma omp parallel for default(none) firstprivate(layer_count, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top, tan_angle, xy_distance, xy_distance_overhang) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic)
for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++)
{
Polygons outlines = storage.getLayerOutlines(layer_idx, false);
@@ -1054,7 +1054,7 @@
const int max_checking_layer_idx = std::min(static_cast<int>(storage.support.supportLayers.size())
, static_cast<int>(layer_count - (layer_z_distance_top - 1)));
const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx);
-#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic)
+#pragma omp parallel for default(none) firstprivate(max_checking_idx_size_t, layer_z_distance_top) shared(support_areas, storage) schedule(dynamic)
for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++)
{
support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false));
--- curaengine/src/layerPart.cpp.orig 2020-03-28 10:36:40.381023651 -0500
+++ curaengine/src/layerPart.cpp 2020-03-28 10:39:54.584140465 -0500
@@ -49,7 +49,7 @@
{
const auto total_layers = slicer->layers.size();
assert(mesh.layers.size() == total_layers);
-#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic)
+#pragma omp parallel for default(none) firstprivate(total_layers) shared(mesh, slicer) schedule(dynamic)
for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++)
{
SliceLayer& layer_storage = mesh.layers[layer_nr];

View File

@ -10,6 +10,8 @@ gcc8Stdenv.mkDerivation rec {
sha256 = "0wdkvg1hmqp1gaym804lw09x4ngf5ffasd861jhflpy7djbmkfn8";
};
patches = [ ./curaengine-openmp-compat.patch ];
nativeBuildInputs = [ cmake ];
buildInputs = [ libarcusLulzbot stb protobuf ];

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
positioned at a specific screen position, or position a window
on a specific workspace.
'';
homepage = http://www.gusnan.se/devilspie2/;
homepage = "https://www.gusnan.se/devilspie2/";
license = licenses.gpl3;
maintainers = [ maintainers.ebzzry ];
platforms = platforms.linux;

View File

@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "gallery_dl";
version = "1.13.1";
version = "1.13.3";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0a5k7gcs3vn6x1f2qg3ajpqsl39pmw2hsj2srd5y2l1xw7mkkqj6";
sha256 = "0nhbhli45i2xhkmyj9mpg8fn1l58y2zmr6nnnnms557wpdpg112x";
};
doCheck = false;

View File

@ -0,0 +1,63 @@
{ lib, mkDerivation, fetchFromGitHub, fetchpatch
, python, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
, which, perl, makeWrapper, fixDarwinDylibNames
}:
mkDerivation rec {
pname = "klayout";
version = "0.26.2";
src = fetchFromGitHub {
owner = "KLayout";
repo = "klayout";
rev = "v${version}";
sha256 = "0svyqayvr45snqw0dhx6jpnjhg4qb097pz28s8k1crx5i31nnd94";
};
postPatch = ''
substituteInPlace src/klayout.pri --replace "-Wno-reserved-user-defined-literal" ""
patchShebangs .
'';
nativeBuildInputs = [
which
];
buildInputs = [
python
ruby
qtbase
qtmultimedia
qttools
qtxmlpatterns
];
buildPhase = ''
runHook preBuild
mkdir -p $out/lib
./build.sh -qt5 -prefix $out/lib -j$NIX_BUILD_CORES
runHook postBuild
'';
postBuild = ''
mkdir $out/bin
mv $out/lib/klayout $out/bin/
'';
NIX_CFLAGS_COMPILE = [ "-Wno-parentheses" ];
dontInstall = true; # Installation already happens as part of "build.sh"
# Fix: "gsiDeclQMessageLogger.cc:126:42: error: format not a string literal
# and no format arguments [-Werror=format-security]"
hardeningDisable = [ "format" ];
meta = with lib; {
description = "High performance layout viewer and editor with support for GDS and OASIS";
license = with licenses; [ gpl3 ];
homepage = "https://www.klayout.de/";
platforms = platforms.linux;
maintainers = with maintainers; [ knedlsepp ];
};
}

View File

@ -3,11 +3,11 @@
mkDerivation rec {
pname = "latte-dock";
version = "0.9.9";
version = "0.9.10";
src = fetchurl {
url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
sha256 = "01b2zr2x5hnadkvj687lwi3l6dwq3kdn5y9k4qf1bv0sa4vw6hn9";
sha256 = "11s9fslr33h3ic14ifr43jphf68jpny8jmhvmrrwcz6w0p3falzw";
name = "${pname}-${version}.tar.xz";
};

View File

@ -103,7 +103,7 @@ in buildFHSUserEnv {
# WINE
cups lcms2 mpg123 cairo unixODBC samba4 sane-backends openldap
ocl-icd utillinux
ocl-icd utillinux libkrb5
# Winetricks
fribidi

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "pdfsam-basic";
version = "4.1.1";
version = "4.1.2";
src = fetchurl {
url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
sha256 = "17qb3l7xibhb3fbskddvparrj2cxj4kz9qbril094kxrgbvyc9gs";
sha256 = "1k1azxz92vkb4hylk4ki0szfn47ids0lwg01zfs54yc89j0c6142";
};
unpackPhase = ''

View File

@ -1,32 +1,34 @@
{ stdenv, lib, fetchFromGitHub, makeWrapper, cmake, pkgconfig
{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
, boost, cereal, curl, eigen, expat, glew, libpng, tbb, wxGTK31
, gtest, nlopt, xorg, makeDesktopItem
, cgal_5, gmp, ilmbase, mpfr, qhull, openvdb, systemd
}:
let
nloptVersion = if lib.hasAttr "version" nlopt
then lib.getAttr "version" nlopt
else "2.4";
in
stdenv.mkDerivation rec {
pname = "prusa-slicer";
version = "2.1.1";
version = "2.2.0";
enableParallelBuilding = true;
nativeBuildInputs = [
cmake
makeWrapper
pkgconfig
];
buildInputs = [
boost
cereal
cgal_5
curl
eigen
expat
glew
gmp
ilmbase
libpng
mpfr
nlopt
openvdb
systemd
tbb
wxGTK31
xorg.libX11
@ -35,31 +37,34 @@ stdenv.mkDerivation rec {
checkInputs = [ gtest ];
# The build system uses custom logic - defined in
# xs/src/libnest2d/cmake_modules/FindNLopt.cmake in the package source -
# for finding the nlopt library, which doesn't pick up the package in the nix store.
# We need to set the path via the NLOPT environment variable instead.
# cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt
# library, which doesn't pick up the package in the nix store. We
# additionally need to set the path via the NLOPT environment variable.
NLOPT = nlopt;
# Disable compiler warnings that clutter the build log
# Disable compiler warnings that clutter the build log.
# It seems to be a known issue for Eigen:
# http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
NIX_CFLAGS_COMPILE = "-Wno-ignored-attributes";
# prusa-slicer uses dlopen on `libudev.so` at runtime
NIX_LDFLAGS = "-ludev";
prePatch = ''
# In nix ioctls.h isn't available from the standard kernel-headers package
# like in other distributions. The copy in glibc seems to be identical to the
# one in the kernel though, so we use that one instead.
sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' src/libslic3r/GCodeSender.cpp
'' + lib.optionalString (lib.versionOlder "2.5" nloptVersion) ''
# Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
# now seems to be integrated into the main lib.
sed -i 's|nlopt_cxx|nlopt|g' src/libnest2d/cmake_modules/FindNLopt.cmake
sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
'';
src = fetchFromGitHub {
owner = "prusa3d";
repo = "PrusaSlicer";
sha256 = "0i393nbc2salb4j5l2hvy03ng7hmf90d2xj653pw9bsikhj0r3jd";
sha256 = "0954k9sm09y8qnz1jyswyysg10k54ywz8mswnwa4n2hnpq9qx73m";
rev = "version_${version}";
};
@ -88,6 +93,6 @@ stdenv.mkDerivation rec {
description = "G-code generator for 3D printer";
homepage = https://github.com/prusa3d/PrusaSlicer;
license = licenses.agpl3;
maintainers = with maintainers; [ tweber ];
maintainers = with maintainers; [ moredread tweber ];
};
}

View File

@ -3,13 +3,13 @@
mkDerivation rec {
pname = "qmapshack";
version = "1.14.0";
version = "1.14.1";
src = fetchFromGitHub {
owner = "Maproom";
repo = pname;
rev = "V_${version}";
sha256 = "07c2hrq9sn456w7l3gdr599rmjfv2k6mh159zza7p1py8r7ywksa";
sha256 = "0hghynb4ac98fg1pwc645zriqkghxwp8mr3jhr87pa6fh0y848py";
};
nativeBuildInputs = [ cmake ];
@ -30,7 +30,7 @@ mkDerivation rec {
];
meta = with lib; {
homepage = https://github.com/Maproom/qmapshack;
homepage = "https://github.com/Maproom/qmapshack";
description = "Consumer grade GIS software";
license = licenses.gpl3;
maintainers = with maintainers; [ dotlambda sikmir ];

View File

@ -1,23 +1,25 @@
{ stdenv, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null }:
{ symlinkJoin, lib, rofi-unwrapped, makeWrapper, hicolor-icon-theme, theme ? null, plugins ? [] }:
stdenv.mkDerivation {
pname = "rofi";
version = rofi-unwrapped.version;
symlinkJoin {
name = "rofi-${rofi-unwrapped.version}";
paths = [
rofi-unwrapped.out
] ++ (lib.forEach plugins (p: p.out));
buildInputs = [ makeWrapper ];
preferLocalBuild = true;
passthru.unwrapped = rofi-unwrapped;
buildCommand = ''
mkdir $out
ln -s ${rofi-unwrapped}/* $out
rm $out/bin
postBuild = ''
rm -rf $out/bin
mkdir $out/bin
ln -s ${rofi-unwrapped}/bin/* $out/bin
rm $out/bin/rofi
makeWrapper ${rofi-unwrapped}/bin/rofi $out/bin/rofi \
--prefix XDG_DATA_DIRS : ${hicolor-icon-theme}/share \
${if theme != null then ''--add-flags "-theme ${theme}"'' else ""}
${lib.optionalString (theme != null) ''--add-flags "-theme ${theme}"''} \
${lib.optionalString (plugins != []) ''--add-flags "-plugin-path $out/lib/rofi"''}
rm $out/bin/rofi-theme-selector
makeWrapper ${rofi-unwrapped}/bin/rofi-theme-selector $out/bin/rofi-theme-selector \

View File

@ -19,13 +19,13 @@
stdenv.mkDerivation rec {
pname = "ephemeral";
version = "6.3.0";
version = "6.3.1";
src = fetchFromGitHub {
owner = "cassidyjames";
repo = "ephemeral";
rev = version;
sha256 = "0h159szljvphs2hvagxwv6nncx46q0mvr4ylhl2nimap9jvss91n";
sha256 = "13rl26lv5xgagiv21yp5pz69bkwh4nnz1lx9wryhsplki45xm1sq";
};
nativeBuildInputs = [
@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "The always-incognito web browser";
homepage = https://github.com/cassidyjames/ephemeral;
homepage = "https://github.com/cassidyjames/ephemeral";
maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers;
platforms = platforms.linux;
license = licenses.gpl3;

View File

@ -28,7 +28,7 @@
, apulse
# Media support (implies audio support)
, mediaSupport ? false
, mediaSupport ? true
, ffmpeg
, gmp

View File

@ -258,5 +258,6 @@ in stdenv.mkDerivation rec {
description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
maintainers = with maintainers; [ cstrahan offline ];
platforms = platforms.unix;
broken = true; # Broken since 2019-10-22 (https://hydra.nixos.org/build/115475123)
};
}

View File

@ -0,0 +1,28 @@
{ stdenv, fetchFromGitHub, buildGoPackage}:
buildGoPackage rec {
pname = "dnscontrol";
version = "3.0.0";
goPackagePath = "github.com/StackExchange/dnscontrol";
goDeps = ./deps.nix;
src = fetchFromGitHub {
owner = "StackExchange";
repo = pname;
rev = "v${version}";
sha256 = "1j8i4k7bqkqmi6dmc9fxfab49a7qigig72rlbga902lw336p6cc7";
};
postInstall = ''
rm $bin/bin/{build,convertzone,generate,validate}
'';
meta = with stdenv.lib; {
description = "Synchronize your DNS to multiple providers from a simple DSL";
homepage = "https://stackexchange.github.io/dnscontrol/";
license = licenses.mit;
maintainers = with maintainers; [ mmahut ];
};
}

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "Download backlogs from Matrix as raw text";
homepage = src.meta.homepage;
license = licenses.unfree;
license = licenses.gpl1Plus;
maintainers = with maintainers; [ aw ];
platforms = platforms.unix;
};

View File

@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "1.5.12",
"version": "1.5.14",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"dependencies": {

View File

@ -610,11 +610,11 @@
};
}
{
name = "minimist___minimist_1.2.0.tgz";
name = "minimist___minimist_1.2.2.tgz";
path = fetchurl {
name = "minimist___minimist_1.2.0.tgz";
url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
name = "minimist___minimist_1.2.2.tgz";
url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.2.tgz";
sha1 = "b00a00230a1108c48c169e69a291aafda3aacd63";
};
}
{

View File

@ -6,12 +6,12 @@
let
executableName = "riot-desktop";
version = "1.5.13";
version = "1.5.14";
riot-web-src = fetchFromGitHub {
owner = "vector-im";
repo = "riot-web";
rev = "v${version}";
sha256 = "1p2bdqq8yziv3l7kjkwqvi27a8djav7rk3lsipl7dvdjk1926941";
sha256 = "0dkji5rgiakdzcba2v104hhvbw9j98ik95vzwcckksja79zfjmww";
};
electron = electron_7;

View File

@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec {
pname = "riot-web";
version = "1.5.13";
version = "1.5.14";
src = fetchurl {
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
sha256 = "0xghpf9rv7ns5aipc6n517qd9dp50rr93arvx6r36kqhkdyzbfad";
sha256 = "1dqqrlr9gby4y8dhw6c50w261bz4f5drkcal98g1396ikcfff3mh";
};
installPhase = ''

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, dpkg
, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome3
, gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
, at-spi2-atk, libuuid, at-spi2-core }:
let
@ -29,6 +29,7 @@ let
gnome2.GConf
gdk-pixbuf
gtk3
libappindicator-gtk3
gnome3.gnome-keyring

View File

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

View File

@ -42,10 +42,11 @@ stdenv.mkDerivation rec {
sha256 = "1abkwxdi154hnry8nsvxbklvbsnvd7cs2as0041h2kbiz824pv31";
};
buildInputs= [ wrapGAppsHook gsettings-desktop-schemas gtk3 gnome3.adwaita-icon-theme dconf ];
phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs= [ gsettings-desktop-schemas glib gtk3 gnome3.adwaita-icon-theme dconf ];
dontConfigure = true;
dontBuild = true;
dontStrip = true;
dontPatchELF = true;

View File

@ -38,7 +38,7 @@ mkDerivation rec {
including Funcube Dongle Pro/Pro+, rtl-sdr, HackRF, and Universal
Software Radio Peripheral (USRP) devices.
'';
homepage = http://gqrx.dk/;
homepage = "https://gqrx.dk/";
# Some of the code comes from the Cutesdr project, with a BSD license, but
# it's currently unknown which version of the BSD license that is.
license = licenses.gpl3Plus;

View File

@ -5,13 +5,13 @@
python3Packages.buildPythonApplication rec {
pname = "urh";
version = "2.8.3";
version = "2.8.5";
src = fetchFromGitHub {
owner = "jopohl";
repo = pname;
rev = "v${version}";
sha256 = "17104livp6fv2zg56sqv90lqb7ywqhq2qfnal1hriwwh1b92glv8";
sha256 = "060npn0q7yrby2zj9hi8x7raivs91v9hvryvf45k1ipyqh8dgri6";
};
nativeBuildInputs = [ qt5.wrapQtAppsHook ];

View File

@ -6,13 +6,13 @@
mkDerivation rec {
pname = "stellarium";
version = "0.19.3";
version = "0.20.0";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${version}";
sha256 = "175aj4bgi9b6bif6fvjdlpd68brcwij4x3ml0lxk6i51binv233y";
sha256 = "1732dxkgyqd4xf0ry7v930vcbv60l8iry596869z1d47j2piibs4";
};
nativeBuildInputs = [ cmake perl wrapQtAppsHook ];

View File

@ -4,11 +4,11 @@
with python.pkgs;
buildPythonApplication rec {
pname = "deepTools";
version = "3.3.1";
version = "3.4.1";
src = fetchPypi {
inherit pname version;
sha256 = "08p36p9ncj5s8qf1r7h83x4rnmi63l3yk6mnr3wgpg2qgvwl0hji";
sha256 = "05zw9gk17hz08hns5lnhn7l13idg9jdz4gdba6m6gbr84yz149gs";
};
propagatedBuildInputs = [

View File

@ -2,17 +2,17 @@
stdenv.mkDerivation rec {
pname = "stacks";
version = "2.41";
version = "2.52";
src = fetchurl {
url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
sha256 = "0q420rzjb05jfchcls3pysm4hxfgs6xj2jw246isx0il10g93gkq";
sha256 = "0gq3kbj910jsq591wylzjmd23srjlsssmrckmf46m4ysjqdqd8vm";
};
buildInputs = [ zlib ];
meta = {
description = "Software pipeline for building loci from short-read sequences";
homepage = http://catchenlab.life.illinois.edu/stacks/;
homepage = "http://catchenlab.life.illinois.edu/stacks/";
maintainers = [ stdenv.lib.maintainers.bzizou ];
license = stdenv.lib.licenses.gpl3;
};

View File

@ -4,12 +4,12 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "marvin";
version = "20.6.0";
version = "20.9.0";
src = fetchurl {
name = "marvin-${version}.deb";
url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
sha256 = "1vd1hsj36wzghpn6xnppjmva35kdcin7h0xdj3xmi4w5l3qw7fl6";
sha256 = "1c6q1vb96jsb37g5qbhzcnasd5pdqjyc190yg3caw3gwrd97889q";
};
nativeBuildInputs = [ dpkg makeWrapper ];
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
meta = {
description = "A chemical modelling, analysis and structure drawing program";
homepage = https://chemaxon.com/products/marvin;
homepage = "https://chemaxon.com/products/marvin";
maintainers = with maintainers; [ fusion809 ];
license = licenses.unfree;
platforms = platforms.linux;

View File

@ -0,0 +1,53 @@
{ fetchFromGitHub
, stdenv
, mkDerivation
, SDL2
, libGL
, libarchive
, libusb
, qtbase
, qmake
, git
, libpng_apng
, pkgconfig
}:
mkDerivation rec {
pname = "CEmu";
version = "1.3";
src = fetchFromGitHub {
owner = "CE-Programming";
repo = "CEmu";
rev = "v${version}";
sha256 = "1wcdnzcqscawj6jfdj5wwmw9g9vsd6a1rx0rrramakxzf8b7g47r";
fetchSubmodules = true;
};
nativeBuildInputs = [
qmake
git
pkgconfig
];
buildInputs = [
SDL2
libGL
libarchive
libusb
qtbase
libpng_apng
];
qmakeFlags = [
"gui/qt"
];
meta = with stdenv.lib; {
changelog = "https://github.com/CE-Programming/CEmu/releases/tag/v${version}";
description = "Third-party TI-84 Plus CE / TI-83 Premium CE emulator, focused on developer features";
homepage = "https://ce-programming.github.io/CEmu";
license = licenses.gpl3;
maintainers = with maintainers; [ luc65r ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
};
}

View File

@ -0,0 +1,25 @@
From 0eaef67b683683fb423fcb2d5096b3cdf9a4a9cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sun, 22 Mar 2020 12:26:10 +0100
Subject: [PATCH] Patch plugindir to output
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 50edb74..639ee86 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,7 +50,7 @@ PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.40 gio-unix-2.0 gmodule-2.0 ])
PKG_CHECK_MODULES([cairo], [cairo])
PKG_CHECK_MODULES([rofi], [rofi >= 1.5.4])
-[rofi_PLUGIN_INSTALL_DIR]="`$PKG_CONFIG --variable=pluginsdir rofi`"
+[rofi_PLUGIN_INSTALL_DIR]="`echo $out/lib/rofi`"
AC_SUBST([rofi_PLUGIN_INSTALL_DIR])
LT_INIT([disable-static])
--
2.25.1

View File

@ -0,0 +1,54 @@
{ stdenv
, fetchFromGitHub
, autoreconfHook
, pkgconfig
, rofi-unwrapped
, libqalculate
, glib
, cairo
, gobject-introspection
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "rofi-calc";
version = "1.6";
src = fetchFromGitHub {
owner = "svenstaro";
repo = pname;
rev = "v${version}";
sha256 = "00pz0s99pihjdjy8pl4ckg2qciyp32k439lmjb5iazwck512ar92";
};
nativeBuildInputs = [
autoreconfHook
pkgconfig
gobject-introspection
wrapGAppsHook
];
buildInputs = [
rofi-unwrapped
libqalculate
glib
cairo
];
patches = [
./0001-Patch-plugindir-to-output.patch
];
postPatch = ''
sed "s|qalc_binary = \"qalc\"|qalc_binary = \"${libqalculate}/bin/qalc\"|" -i src/calc.c
'';
meta = with stdenv.lib; {
description = "Do live calculations in rofi!";
homepage = "https://github.com/svenstaro/rofi-calc";
license = licenses.mit;
maintainers = with maintainers; [ luc65r albakham ];
platforms = [ "x86_64-linux" "x86_64-darwin" ];
};
}

View File

@ -2,7 +2,7 @@
python3Packages.buildPythonApplication rec {
pname = "snakemake";
version = "5.10.0";
version = "5.13.0";
propagatedBuildInputs = with python3Packages; [
appdirs
@ -22,13 +22,13 @@ python3Packages.buildPythonApplication rec {
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0n8d5c8sc90kfdw740ad9ffbkg1ic3k1pmlnk68qr4w4vc98pym3";
sha256 = "11snr7sgv70d3y63s5svijfx8f4xpggh96g8chr6lccl4mi1s9x9";
};
doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
meta = with stdenv.lib; {
homepage = http://snakemake.bitbucket.io;
homepage = "http://snakemake.bitbucket.io";
license = licenses.mit;
description = "Python-based execution environment for make-like workflows";
longDescription = ''

View File

@ -179,6 +179,8 @@ let
lefthook = callPackage ./lefthook { };
legit = callPackage ./legit { };
pass-git-helper = python3Packages.callPackage ./pass-git-helper { };
pre-commit = pkgs.python3Packages.toPythonApplication pkgs.python3Packages.pre-commit;

View File

@ -6,12 +6,12 @@
}:
buildPythonApplication rec {
version = "0.9.9";
version = "0.10.5";
pname = "gita";
src = fetchPypi {
inherit pname version;
sha256 = "1si2f9nyisbrvv8cvrjxj8r4cbrgc97ic0wdlbf34gvp020dsmgv";
sha256 = "1xggslmrrfszpl190klkc97fnl88gml1bnkmkzp6aimdch66g4jg";
};
propagatedBuildInputs = [
@ -21,7 +21,7 @@ buildPythonApplication rec {
meta = with lib; {
description = "A command-line tool to manage multiple git repos";
homepage = https://github.com/nosarthur/gita;
homepage = "https://github.com/nosarthur/gita";
license = licenses.mit;
maintainers = with maintainers; [ seqizz ];
};

View File

@ -0,0 +1,30 @@
{ lib, python3Packages }:
python3Packages.buildPythonApplication rec {
pname = "legit";
version = "1.2.0";
src = python3Packages.fetchPypi {
inherit pname version;
sha256 = "0ngh3ar6v15516f52j21k6qz7hykmxfjadhb2rakvl27b5xvjy1c";
};
propagatedBuildInputs = with python3Packages; [
click
clint
crayons
GitPython
six
];
# Prevent tests from trying to create configuration in /homeless-shelter.
preCheck = ''
export HOME=$PWD/test-home
'';
meta = with lib; {
homepage = "https://github.com/frostming/legit";
description = "Git for Humans, Inspired by GitHub for Mac";
license = licenses.bsd3;
maintainers = with maintainers; [ ryneeverett ];
};
}

View File

@ -7,11 +7,11 @@
buildPythonApplication rec {
pname = "ffmpeg-normalize";
version = "1.15.7";
version = "1.15.8";
src = fetchPypi {
inherit pname version;
sha256 = "0161939f864e973b11d50170c657baf3e1433147f46c74a74ed5025a822e9a2d";
sha256 = "01lx1ki1iglg1dz6x99ciqx5zqlbj7hvfb12ga9m68ypjm0fcphl";
};
propagatedBuildInputs = [ ffmpeg tqdm ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "mpv-mpris-${version}.so";
version = "0.3";
version = "0.4";
src = fetchFromGitHub {
owner = "hoyon";
repo = "mpv-mpris";
rev = version;
sha256 = "02lqsgp296s8wr0yh6wm8h7nhn53rj254zahpzbwdv15apgy0z17";
sha256 = "1fr3jvja8s2gdpx8qyk9r17977flms3qpm8zci62nd9r5wjdvr5i";
};
nativeBuildInputs = [ pkgconfig ];
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "MPRIS plugin for mpv";
homepage = https://github.com/hoyon/mpv-mpris;
homepage = "https://github.com/hoyon/mpv-mpris";
license = licenses.mit;
maintainers = with maintainers; [ jfrankenau ];
};

View File

@ -40,7 +40,7 @@ mkDerivation rec {
meta = with stdenv.lib; {
description = "Simple GUI screencast recorder, using ffmpeg";
homepage = "http://linuxecke.volkoh.de/vokoscreen/vokoscreen.html";
homepage = "https://linuxecke.volkoh.de/vokoscreen/vokoscreen.html";
longDescription = ''
vokoscreen is an easy to use screencast creator to record
educational videos, live recordings of browser, installation,

View File

@ -19,14 +19,14 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "bochs";
version = "2.6.10";
version = "2.6.11";
src = fetchurl {
url = "mirror://sourceforge/project/bochs/bochs/${version}/${pname}-${version}.tar.gz";
sha256 = "1c3mw4b8wrjf8z44fvhycs95j1wd1c0b4khcv63giiia5j5q0gvj";
sha256 = "0ql8q6y1k356li1g9gbvl21448mlxphxxi6kjb2b3pxvzd0pp2b3";
};
patches = [ ./bochs-2.6.10-glibc-2.26.patch ];
patches = [ ./bochs-2.6.11-glibc-2.26.patch ./fix-build-smp.patch ];
buildInputs =
[ pkgconfig libtool gtk2 libGLU libGL readline libX11 libXpm docbook_xml_dtd_45 docbook_xsl ]

View File

@ -0,0 +1,21 @@
Description: A fix for SMP-enable configurations
Inspired in: https://sourceforge.net/p/bochs/code/13778/
============
diff -Naur bochs-2.6.11-old/bx_debug/dbg_main.cc bochs-2.6.11-new/bx_debug/dbg_main.cc
--- bochs-2.6.11-old/bx_debug/dbg_main.cc 2019-12-20 04:57:59.818924000 -0300
+++ bochs-2.6.11-new/bx_debug/dbg_main.cc 2020-03-30 23:20:29.402195707 -0300
@@ -1494,11 +1494,11 @@
{
char cpu_param_name[16];
- Bit32u index = BX_ITLB_INDEX_OF(laddr);
+ Bit32u index = BX_CPU(dbg_cpu)->ITLB.get_index_of(laddr);
sprintf(cpu_param_name, "ITLB.entry%d", index);
bx_dbg_show_param_command(cpu_param_name, 0);
- index = BX_DTLB_INDEX_OF(laddr, 0);
+ index = BX_CPU(dbg_cpu)->DTLB.get_index_of(laddr);
sprintf(cpu_param_name, "DTLB.entry%d", index);
bx_dbg_show_param_command(cpu_param_name, 0);
}

View File

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "icewm";
version = "1.6.3";
version = "1.6.5";
src = fetchFromGitHub {
owner = "bbidulock";
repo = "icewm";
rev = version;
sha256 = "0h3w718x28fd4sz36ka9wpgcb98scna6qpycxzls4cjji3rjgm0l";
sha256 = "1glzpkpl0vl5sjn1d9jlvwd9ch16dvxvsf2n310kb0ycpfkl84vs";
};
nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
IceWM is a window manager for the X Window System. The goal of
IceWM is speed, simplicity, and not getting in the user's way.
'';
homepage = http://www.icewm.org/;
homepage = "http://www.icewm.org/";
license = licenses.lgpl2;
maintainers = [ maintainers.AndersonTorres ];
platforms = platforms.linux;

View File

@ -1,4 +1,5 @@
{ lib, runCommandLocal }:
{ lib, runCommandLocal, desktop-file-utils }:
{ name
, type ? "Application"
, exec
@ -8,9 +9,10 @@
, desktopName
, genericName ? null
, mimeType ? null
, categories ? "Application;Other;"
, categories ? null
, startupNotify ? null
, extraEntries ? null
, fileValidation ? true # whether to validate resulting desktop file.
}:
let
@ -18,6 +20,7 @@ let
{k="Comment"; v=comment;}
{k="GenericName"; v=genericName;}
{k="MimeType"; v=mimeType;}
{k="Categories"; v=categories;}
{k="StartupNotify"; v=startupNotify;}];
valueNotNull = {k, v}: v != null;
@ -28,16 +31,20 @@ let
in
runCommandLocal "${name}.desktop" {}
''
mkdir -p $out/share/applications
cat > $out/share/applications/${name}.desktop <<EOF
mkdir -p "$out/share/applications"
cat > "$out/share/applications/${name}.desktop" <<EOF
[Desktop Entry]
Type=${type}
Exec=${exec}
Terminal=${terminal}
Name=${desktopName}
Categories=${categories}
${optionalEntriesString}
${if extraEntries == null then ''EOF'' else ''
${extraEntries}
EOF''}
${lib.optionalString fileValidation ''
echo "Running desktop-file validation"
${desktop-file-utils}/bin/desktop-file-validate "$out/share/applications/${name}.desktop"
''}
''

View File

@ -18,15 +18,12 @@ in {
, configureFlags
# mostly for moving and deleting files from the build directory
# : lines
, postInstall ? ""
# : lines
, postFixup ? ""
, postInstall
# : list Maintainer
, maintainers ? []
# : attrs
, meta ? {}
, ...
} @ args:
}:
let
@ -53,17 +50,24 @@ let
"README.*"
];
in stdenv.mkDerivation ({
in stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://skarnet.org/software/${pname}/${pname}-${version}.tar.gz";
inherit sha256;
};
inherit outputs;
dontDisableStatic = true;
enableParallelBuilding = true;
configureFlags = configureFlags ++ [
"--enable-absolute-paths"
# We assume every nix-based cross target has urandom.
# This might not hold for e.g. BSD.
"--with-sysdep-devurandom=yes"
(if stdenv.isDarwin
then "--disable-shared"
else "--enable-shared")
@ -83,11 +87,13 @@ in stdenv.mkDerivation ({
noiseFiles = commonNoiseFiles;
docFiles = commonMetaFiles;
}} $doc/share/doc/${pname}
'' + postInstall;
${postInstall}
'';
postFixup = ''
${cleanPackaging.checkForRemainingFiles}
'' + postFixup;
'';
meta = {
homepage = "https://skarnet.org/software/${pname}/";
@ -95,9 +101,6 @@ in stdenv.mkDerivation ({
license = stdenv.lib.licenses.isc;
maintainers = with lib.maintainers;
[ pmahoney Profpatsch ] ++ maintainers;
} // meta;
};
} // builtins.removeAttrs args [
"sha256" "configureFlags" "postInstall" "postFixup"
"meta" "description" "platforms" "maintainers"
])
}

View File

@ -4,16 +4,16 @@
stdenv.mkDerivation rec {
pname = "unifont";
version = "12.1.03";
version = "13.0.01";
ttf = fetchurl {
url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
sha256 = "10igjlf05d97h3vcggr2ahxmq9ljby4ypja2g4s9bvxs2w1si51p";
sha256 = "0y5bd7i5hp9ks6d3qq0bshywba7g90i3074wckpn9m8shh98ngcg";
};
pcf = fetchurl {
url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
sha256 = "1cd1fnk3m7giqp099kynnjj4m7q00lqm4ybqb1vzd2wi3j4a1awf";
sha256 = "05zgz00n514cijqh9qcvr4iz0bla4hd028cvi1jlh0ic6fkafix8";
};
nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "numix-icon-theme";
version = "19.09.20";
version = "20.03.20";
src = fetchFromGitHub {
owner = "numixproject";
repo = pname;
rev = version;
sha256 = "0pn3x0mmsph777lwhg890ck366p31bjl3755h4pv161ym08d4z9w";
sha256 = "092f8k38xf9yz898nrangm0ia211d41z8kx0v6njfqfgpiad1s7q";
};
nativeBuildInputs = [ gtk3 ];
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Numix icon theme";
homepage = https://numixproject.github.io;
homepage = "https://numixproject.github.io";
license = licenses.gpl3;
# darwin cannot deal with file names differing only in case
platforms = platforms.linux;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "matcha";
version = "2020-03-24";
version = "2020-03-29";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = pname;
rev = version;
sha256 = "13lcv2cihb24zjsdzhh188kd1rga49mzfa2sddqd63pqxxph188z";
sha256 = "17yyxlm94q8cv3zryishgs852nz74q79v3fh9c7a3f1fs6xlw8p0";
};
buildInputs = [ gdk-pixbuf librsvg ];

View File

@ -0,0 +1,38 @@
From ddc2c4faeec36675654a2f8f04c3011b807fdf79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sun, 22 Mar 2020 07:36:25 +0100
Subject: [PATCH] Add dbus_glib dependency
---
cinnamon-session/meson.build | 2 +-
meson.build | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build
index ee8916f..9dd9283 100644
--- a/cinnamon-session/meson.build
+++ b/cinnamon-session/meson.build
@@ -74,7 +74,7 @@ executable('cinnamon-session',
xext,
xrender,
xtest,
- # elogind,
+ dbus_glib,
],
link_with: [
libegg,
diff --git a/meson.build b/meson.build
index 231a448..db306dc 100644
--- a/meson.build
+++ b/meson.build
@@ -48,6 +48,7 @@ else
gconf = dependency('', required: false)
endif
conf.set('HAVE_GCONF', gconf.found())
+dbus_glib = dependency('dbus-glib-1')
gio_unix = dependency('gio-unix-2.0', required: false)
--
2.25.1

View File

@ -0,0 +1,105 @@
{ fetchFromGitHub
, cinnamon-desktop
, cinnamon-settings-daemon
, dbus-glib
, docbook_xsl
, docbook_xml_dtd_412
, glib
, gsettings-desktop-schemas
, gtk3
, libcanberra
, libxslt
, makeWrapper
, meson
, ninja
, pkgconfig
, python3
, stdenv
, systemd
, wrapGAppsHook
, xapps
, xmlto
, xorg
, cmake
, libexecinfo
, pango
}:
stdenv.mkDerivation rec {
pname = "cinnamon-session";
version = "4.4.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "0hplck17rksfgqm2z58ajvz4p2m4zg6ksdpbc27ki20iv4fv620s";
};
patches = [
./0001-Add-dbus_glib-dependency.patch
];
buildInputs = [
# meson.build
gtk3
glib
libcanberra
pango
xorg.libX11
xorg.libXext
xapps
xorg.libXau
xorg.libXcomposite
systemd
xorg.libXtst
xorg.libXrender
xorg.xtrans
# other (not meson.build)
cinnamon-desktop
cinnamon-settings-daemon
dbus-glib
glib
gsettings-desktop-schemas
];
nativeBuildInputs = [
meson
ninja
wrapGAppsHook
libexecinfo
docbook_xsl
docbook_xml_dtd_412
python3
pkgconfig
libxslt
xmlto
];
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
mesonFlags = [ "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" "-Dgconf=false" "-DENABLE_IPV6=true" ];
postPatch = ''
chmod +x data/meson_install_schemas.py # patchShebangs requires executable file
patchShebangs data/meson_install_schemas.py
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${cinnamon-desktop}/share"
--prefix XDG_CONFIG_DIRS : "${cinnamon-settings-daemon}/etc/xdg"
)
'';
meta = with stdenv.lib; {
homepage = "https://github.com/linuxmint/cinnamon-session";
description = "The Cinnamon session manager";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.mkg20001 ];
};
}

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