Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-09-05 00:11:37 +00:00 committed by GitHub
commit 58c3652956
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
249 changed files with 3355 additions and 6216 deletions

View File

@ -10889,6 +10889,12 @@
githubId = 613740;
name = "Martin Baillie";
};
mbalatsko = {
email = "mbalatsko@gmail.com";
github = "mbalatsko";
githubId = 15967073;
name = "Maksym Balatsko";
};
mbbx6spp = {
email = "me@susanpotter.net";
github = "mbbx6spp";
@ -13844,6 +13850,13 @@
fingerprint = "DD54 130B ABEC B65C 1F6B 2A38 8312 4F97 A318 EA18";
}];
};
p-rintz = {
email = "nix@rintz.net";
github = "p-rintz";
githubId = 13933258;
name = "Philipp Rintz";
matrix = "@philipp:srv.icu";
};
ProducerMatt = {
name = "Matthew Pherigo";
email = "ProducerMatt42@gmail.com";

View File

@ -6,6 +6,8 @@
- Support for WiFi6 (IEEE 802.11ax) and WPA3-SAE-PK was enabled in the `hostapd` package, along with a significant rework of the hostapd module.
- LXD now supports virtual machine instances to complement the existing container support
## New Services {#sec-release-23.11-new-services}
- [MCHPRS](https://github.com/MCHPR/MCHPRS), a multithreaded Minecraft server built for redstone. Available as [services.mchprs](#opt-services.mchprs.enable).
@ -34,7 +36,9 @@
- [sitespeed-io](https://sitespeed.io), a tool that can generate metrics (timings, diagnostics) for websites. Available as [services.sitespeed-io](#opt-services.sitespeed-io.enable).
- [Jool](https://nicmx.github.io/Jool/en/index.html), an Open Source implementation of IPv4/IPv6 translation on Linux. Available as [networking.jool.enable](#opt-networking.jool.enable).
- [stalwart-mail](https://stalw.art), an all-in-one email server (SMTP, IMAP, JMAP). Available as [services.stalwart-mail](#opt-services.stalwart-mail.enable).
- [Jool](https://nicmx.github.io/Jool/en/index.html), a kernelspace NAT64 and SIIT implementation, providing translation between IPv4 and IPv6. Available as [networking.jool.enable](#opt-networking.jool.enable).
- [Apache Guacamole](https://guacamole.apache.org/), a cross-platform, clientless remote desktop gateway. Available as [services.guacamole-server](#opt-services.guacamole-server.enable) and [services.guacamole-client](#opt-services.guacamole-client.enable) services.

View File

@ -0,0 +1,20 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, lib, ... }:
{
imports =
[
# Include the default lxd configuration.
../../../modules/virtualisation/lxc-container.nix
# Include the container-specific autogenerated configuration.
./lxd.nix
];
networking.useDHCP = false;
networking.interfaces.eth0.useDHCP = true;
system.stateVersion = "21.05"; # Did you read the comment?
}

View File

@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }:
{ lib, pkgs, ... }:
{
imports = [
@ -16,8 +16,8 @@
system.activationScripts.config = ''
if [ ! -e /etc/nixos/configuration.nix ]; then
mkdir -p /etc/nixos
cat ${./lxd-image-inner.nix} > /etc/nixos/configuration.nix
sed 's|../../../modules/virtualisation/lxc-container.nix|<nixpkgs/nixos/modules/virtualisation/lxc-container.nix>|g' -i /etc/nixos/configuration.nix
cat ${./lxd-container-image-inner.nix} > /etc/nixos/configuration.nix
${lib.getExe pkgs.gnused} 's|../../../modules/virtualisation/lxc-container.nix|<nixpkgs/nixos/modules/virtualisation/lxc-container.nix>|g' -i /etc/nixos/configuration.nix
fi
'';

View File

@ -1,95 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, lib, ... }:
{
imports =
[ # Include the default lxd configuration.
../../../modules/virtualisation/lxc-container.nix
# Include the container-specific autogenerated configuration.
./lxd.nix
];
# networking.hostName = mkForce "nixos"; # Overwrite the hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Set your time zone.
# time.timeZone = "Europe/Amsterdam";
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
networking.useDHCP = false;
networking.interfaces.eth0.useDHCP = true;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8";
# console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
# };
# Enable the X11 windowing system.
# services.xserver.enable = true;
# Configure keymap in X11
# services.xserver.layout = "us";
# services.xserver.xkbOptions = "eurosign:e";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
# sound.enable = true;
# hardware.pulseaudio.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
# users.users.alice = {
# isNormalUser = true;
# extraGroups = [ "wheel" ]; # Enable sudo for the user.
# };
# List packages installed in system profile. To search, run:
# $ nix search wget
# environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
# firefox
# ];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.05"; # Did you read the comment?
}

View File

@ -0,0 +1,20 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, lib, ... }:
{
imports =
[
# Include the default lxd configuration.
../../../modules/virtualisation/lxd-virtual-machine.nix
# Include the container-specific autogenerated configuration.
./lxd.nix
];
networking.useDHCP = false;
networking.interfaces.eth0.useDHCP = true;
system.stateVersion = "23.05"; # Did you read the comment?
}

View File

@ -0,0 +1,27 @@
{ lib, pkgs, ... }:
{
imports = [
../../../modules/virtualisation/lxd-virtual-machine.nix
];
virtualisation.lxc.templates.nix = {
enable = true;
target = "/etc/nixos/lxd.nix";
template = ./nix.tpl;
when = ["create" "copy"];
};
# copy the config for nixos-rebuild
system.activationScripts.config = ''
if [ ! -e /etc/nixos/configuration.nix ]; then
mkdir -p /etc/nixos
cat ${./lxd-virtual-machine-image-inner.nix} > /etc/nixos/configuration.nix
${lib.getExe pkgs.gnused} 's|../../../modules/virtualisation/lxd-virtual-machine.nix|<nixpkgs/nixos/modules/virtualisation/lxd-virtual-machine.nix>|g' -i /etc/nixos/configuration.nix
fi
'';
# Network
networking.useDHCP = false;
networking.interfaces.enp5s0.useDHCP = true;
}

View File

@ -10,7 +10,7 @@ in
i18n.inputMethod.uim = {
toolbar = mkOption {
type = types.enum [ "gtk" "gtk3" "gtk-systray" "gtk3-systray" "qt4" ];
type = types.enum [ "gtk" "gtk3" "gtk-systray" "gtk3-systray" "qt5" ];
default = "gtk";
example = "gtk-systray";
description = lib.mdDoc ''

View File

@ -594,6 +594,7 @@
./services/mail/rss2email.nix
./services/mail/schleuder.nix
./services/mail/spamassassin.nix
./services/mail/stalwart-mail.nix
./services/mail/sympa.nix
./services/mail/zeyple.nix
./services/matrix/appservice-discord.nix

View File

@ -192,6 +192,10 @@ in
###### implementation
config = mkIf cfg.enable {
assertions = [
{ assertion = cfg.package.pname != "sudo-rs";
message = "The NixOS `sudo` module does not work with `sudo-rs` yet."; }
];
# We `mkOrder 600` so that the default rule shows up first, but there is
# still enough room for a user to `mkBefore` it.

View File

@ -0,0 +1,106 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.stalwart-mail;
configFormat = pkgs.formats.toml { };
configFile = configFormat.generate "stalwart-mail.toml" cfg.settings;
dataDir = "/var/lib/stalwart-mail";
in {
options.services.stalwart-mail = {
enable = mkEnableOption (mdDoc "the Stalwart all-in-one email server");
package = mkPackageOptionMD pkgs "stalwart-mail" { };
settings = mkOption {
inherit (configFormat) type;
default = { };
description = mdDoc ''
Configuration options for the Stalwart email server.
See <https://stalw.art/docs/> for available options.
By default, the module is configured to store everything locally.
'';
};
};
config = mkIf cfg.enable {
# Default config: all local
services.stalwart-mail.settings = {
global.tracing.method = mkDefault "stdout";
global.tracing.level = mkDefault "info";
queue.path = mkDefault "${dataDir}/queue";
report.path = mkDefault "${dataDir}/reports";
store.db.path = mkDefault "${dataDir}/data/index.sqlite3";
store.blob.type = mkDefault "local";
store.blob.local.path = mkDefault "${dataDir}/data/blobs";
resolver.type = mkDefault "system";
};
systemd.services.stalwart-mail = {
wantedBy = [ "multi-user.target" ];
after = [ "local-fs.target" "network.target" ];
preStart = ''
mkdir -p ${dataDir}/{queue,reports,data/blobs}
'';
serviceConfig = {
ExecStart =
"${cfg.package}/bin/stalwart-mail --config=${configFile}";
# Base from template resources/systemd/stalwart-mail.service
Type = "simple";
LimitNOFILE = 65536;
KillMode = "process";
KillSignal = "SIGINT";
Restart = "on-failure";
RestartSec = 5;
StandardOutput = "syslog";
StandardError = "syslog";
SyslogIdentifier = "stalwart-mail";
DynamicUser = true;
User = "stalwart-mail";
StateDirectory = "stalwart-mail";
# Bind standard privileged ports
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
# Hardening
DeviceAllow = [ "" ];
LockPersonality = true;
MemoryDenyWriteExecute = true;
PrivateDevices = true;
PrivateUsers = false; # incompatible with CAP_NET_BIND_SERVICE
ProcSubset = "pid";
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectProc = "invisible";
ProtectSystem = "strict";
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallFilter = [ "@system-service" "~@privileged" ];
UMask = "0077";
};
};
# Make admin commands available in the shell
environment.systemPackages = [ cfg.package ];
};
meta = {
maintainers = with maintainers; [ happysalada pacien ];
};
}

View File

@ -159,7 +159,6 @@ in {
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-telegram}/bin/mautrix-telegram \
--generate-registration \
--base-config='${pkgs.mautrix-telegram}/${pkgs.mautrix-telegram.pythonModule.sitePackages}/mautrix_telegram/example-config.yaml' \
--config='${settingsFile}' \
--registration='${registrationFile}'
fi

View File

@ -11,53 +11,47 @@
settingsFileUnsubstituted = settingsFormat.generate "mautrix-whatsapp-config-unsubstituted.json" cfg.settings;
settingsFormat = pkgs.formats.json {};
appservicePort = 29318;
mkDefaults = lib.mapAttrsRecursive (n: v: lib.mkDefault v);
defaultConfig = {
homeserver.address = "http://localhost:8448";
appservice = {
hostname = "[::]";
port = appservicePort;
database.type = "sqlite3";
database.uri = "${dataDir}/mautrix-whatsapp.db";
id = "whatsapp";
bot.username = "whatsappbot";
bot.displayname = "WhatsApp Bridge Bot";
as_token = "";
hs_token = "";
};
bridge = {
username_template = "whatsapp_{{.}}";
displayname_template = "{{if .BusinessName}}{{.BusinessName}}{{else if .PushName}}{{.PushName}}{{else}}{{.JID}}{{end}} (WA)";
double_puppet_server_map = {};
login_shared_secret_map = {};
command_prefix = "!wa";
permissions."*" = "relay";
relay.enabled = true;
};
logging = {
min_level = "info";
writers = lib.singleton {
type = "stdout";
format = "pretty-colored";
time_format = " ";
};
};
};
in {
imports = [];
options.services.mautrix-whatsapp = {
enable = lib.mkEnableOption "mautrix-whatsapp, a puppeting/relaybot bridge between Matrix and WhatsApp.";
enable = lib.mkEnableOption (lib.mdDoc "mautrix-whatsapp, a puppeting/relaybot bridge between Matrix and WhatsApp.");
settings = lib.mkOption {
type = settingsFormat.type;
default = {
appservice = {
address = "http://localhost:${toString appservicePort}";
hostname = "[::]";
port = appservicePort;
database = {
type = "sqlite3";
uri = "${dataDir}/mautrix-whatsapp.db";
};
id = "whatsapp";
bot = {
username = "whatsappbot";
displayname = "WhatsApp Bridge Bot";
};
as_token = "";
hs_token = "";
};
bridge = {
username_template = "whatsapp_{{.}}";
displayname_template = "{{if .BusinessName}}{{.BusinessName}}{{else if .PushName}}{{.PushName}}{{else}}{{.JID}}{{end}} (WA)";
double_puppet_server_map = {};
login_shared_secret_map = {};
command_prefix = "!wa";
permissions."*" = "relay";
relay.enabled = true;
};
logging = {
min_level = "info";
writers = [
{
type = "stdout";
format = "pretty-colored";
}
{
type = "file";
format = "json";
}
];
};
};
default = defaultConfig;
description = lib.mdDoc ''
{file}`config.yaml` configuration as a Nix attribute set.
Configuration options should match those described in
@ -117,10 +111,22 @@ in {
};
config = lib.mkIf cfg.enable {
services.mautrix-whatsapp.settings = {
homeserver.domain = lib.mkDefault config.services.matrix-synapse.settings.server_name;
users.users.mautrix-whatsapp = {
isSystemUser = true;
group = "mautrix-whatsapp";
home = dataDir;
description = "Mautrix-WhatsApp bridge user";
};
users.groups.mautrix-whatsapp = {};
services.mautrix-whatsapp.settings = lib.mkMerge (map mkDefaults [
defaultConfig
# Note: this is defined here to avoid the docs depending on `config`
{ homeserver.domain = config.services.matrix-synapse.settings.server_name; }
]);
systemd.services.mautrix-whatsapp = {
description = "Mautrix-WhatsApp Service - A WhatsApp bridge for Matrix";
@ -158,10 +164,11 @@ in {
'';
serviceConfig = {
DynamicUser = true;
User = "mautrix-whatsapp";
Group = "mautrix-whatsapp";
EnvironmentFile = cfg.environmentFile;
StateDirectory = baseNameOf dataDir;
WorkingDirectory = "${dataDir}";
WorkingDirectory = dataDir;
ExecStart = ''
${pkgs.mautrix-whatsapp}/bin/mautrix-whatsapp \
--config='${settingsFile}' \

View File

@ -32,11 +32,21 @@ in {
type = types.package;
description = lib.mdDoc ''Mimir package to use.'';
};
extraFlags = mkOption {
type = types.listOf types.str;
default = [];
example = [ "--config.expand-env=true" ];
description = lib.mdDoc ''
Specify a list of additional command line flags,
which get escaped and are then passed to Mimir.
'';
};
};
config = mkIf cfg.enable {
# for mimirtool
environment.systemPackages = [ pkgs.mimir ];
environment.systemPackages = [ cfg.package ];
assertions = [{
assertion = (
@ -60,7 +70,7 @@ in {
else cfg.configFile;
in
{
ExecStart = "${cfg.package}/bin/mimir --config.file=${conf}";
ExecStart = "${cfg.package}/bin/mimir --config.file=${conf} ${escapeShellArgs cfg.extraFlags}";
DynamicUser = true;
Restart = "always";
ProtectSystem = "full";

View File

@ -16,7 +16,7 @@ let
TemporaryFileSystem = [ "/" ];
BindReadOnlyPaths = [
builtins.storeDir
"/run/current-system/kernel-modules"
"/run/booted-system/kernel-modules"
];
# Give capabilities to load the module and configure it
@ -31,26 +31,96 @@ let
configFormat = pkgs.formats.json {};
mkDefaultAttrs = lib.mapAttrs (n: v: lib.mkDefault v);
# Generate the config file of instance `name`
nat64Conf = name:
configFormat.generate "jool-nat64-${name}.conf"
(cfg.nat64.${name} // { instance = name; });
siitConf = name:
configFormat.generate "jool-siit-${name}.conf"
(cfg.siit.${name} // { instance = name; });
defaultNat64 = {
instance = "default";
framework = "netfilter";
global.pool6 = "64:ff9b::/96";
};
defaultSiit = {
instance = "default";
framework = "netfilter";
# NAT64 config type
nat64Options = lib.types.submodule {
# The format is plain JSON
freeformType = configFormat.type;
# Some options with a default value
options.framework = lib.mkOption {
type = lib.types.enum [ "netfilter" "iptables" ];
default = "netfilter";
description = lib.mdDoc ''
The framework to use for attaching Jool's translation to the exist
kernel packet processing rules. See the
[documentation](https://nicmx.github.io/Jool/en/intro-jool.html#design)
for the differences between the two options.
'';
};
options.global.pool6 = lib.mkOption {
type = lib.types.strMatching "[[:xdigit:]:]+/[[:digit:]]+"
// { description = "Network prefix in CIDR notation"; };
default = "64:ff9b::/96";
description = lib.mdDoc ''
The prefix used for embedding IPv4 into IPv6 addresses.
Defaults to the well-known NAT64 prefix, defined by
[RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052).
'';
};
};
nat64Conf = configFormat.generate "jool-nat64.conf" cfg.nat64.config;
siitConf = configFormat.generate "jool-siit.conf" cfg.siit.config;
# SIIT config type
siitOptions = lib.types.submodule {
# The format is, again, plain JSON
freeformType = configFormat.type;
# Some options with a default value
options = { inherit (nat64Options.getSubOptions []) framework; };
};
makeNat64Unit = name: opts: {
"jool-nat64-${name}" = {
description = "Jool, NAT64 setup of instance ${name}";
documentation = [ "https://nicmx.github.io/Jool/en/documentation.html" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${pkgs.kmod}/bin/modprobe jool";
ExecStart = "${jool-cli}/bin/jool file handle ${nat64Conf name}";
ExecStop = "${jool-cli}/bin/jool -f ${nat64Conf name} instance remove";
} // hardening;
};
};
makeSiitUnit = name: opts: {
"jool-siit-${name}" = {
description = "Jool, SIIT setup of instance ${name}";
documentation = [ "https://nicmx.github.io/Jool/en/documentation.html" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${pkgs.kmod}/bin/modprobe jool_siit";
ExecStart = "${jool-cli}/bin/jool_siit file handle ${siitConf name}";
ExecStop = "${jool-cli}/bin/jool_siit -f ${siitConf name} instance remove";
} // hardening;
};
};
checkNat64 = name: _: ''
printf 'Validating Jool configuration for NAT64 instance "${name}"... '
jool file check ${nat64Conf name}
printf 'Ok.\n'; touch "$out"
'';
checkSiit = name: _: ''
printf 'Validating Jool configuration for SIIT instance "${name}"... '
jool_siit file check ${siitConf name}
printf 'Ok.\n'; touch "$out"
'';
in
{
###### interface
options = {
networking.jool.enable = lib.mkOption {
type = lib.types.bool;
@ -64,157 +134,146 @@ in
NAT64, analogous to the IPv4 NAPT. Refer to the upstream
[documentation](https://nicmx.github.io/Jool/en/intro-xlat.html) for
the supported modes of translation and how to configure them.
Enabling this option will install the Jool kernel module and the
command line tools for controlling it.
'';
};
networking.jool.nat64.enable = lib.mkEnableOption (lib.mdDoc "a NAT64 instance of Jool.");
networking.jool.nat64.config = lib.mkOption {
type = configFormat.type;
default = defaultNat64;
networking.jool.nat64 = lib.mkOption {
type = lib.types.attrsOf nat64Options;
default = { };
example = lib.literalExpression ''
{
# custom NAT64 prefix
global.pool6 = "2001:db8:64::/96";
default = {
# custom NAT64 prefix
global.pool6 = "2001:db8:64::/96";
# Port forwarding
bib = [
{ # SSH 192.0.2.16 → 2001:db8:a::1
"protocol" = "TCP";
"ipv4 address" = "192.0.2.16#22";
"ipv6 address" = "2001:db8:a::1#22";
}
{ # DNS (TCP) 192.0.2.16 → 2001:db8:a::2
"protocol" = "TCP";
"ipv4 address" = "192.0.2.16#53";
"ipv6 address" = "2001:db8:a::2#53";
}
{ # DNS (UDP) 192.0.2.16 → 2001:db8:a::2
"protocol" = "UDP";
"ipv4 address" = "192.0.2.16#53";
"ipv6 address" = "2001:db8:a::2#53";
}
];
# Port forwarding
bib = [
{ # SSH 192.0.2.16 → 2001:db8:a::1
"protocol" = "TCP";
"ipv4 address" = "192.0.2.16#22";
"ipv6 address" = "2001:db8:a::1#22";
}
{ # DNS (TCP) 192.0.2.16 → 2001:db8:a::2
"protocol" = "TCP";
"ipv4 address" = "192.0.2.16#53";
"ipv6 address" = "2001:db8:a::2#53";
}
{ # DNS (UDP) 192.0.2.16 → 2001:db8:a::2
"protocol" = "UDP";
"ipv4 address" = "192.0.2.16#53";
"ipv6 address" = "2001:db8:a::2#53";
}
];
pool4 = [
# Ports for dynamic translation
{ protocol = "TCP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
{ protocol = "UDP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
{ protocol = "ICMP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
pool4 = [
# Port ranges for dynamic translation
{ protocol = "TCP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
{ protocol = "UDP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
{ protocol = "ICMP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
# Ports for static BIB entries
{ protocol = "TCP"; prefix = "192.0.2.16/32"; "port range" = "22"; }
{ protocol = "UDP"; prefix = "192.0.2.16/32"; "port range" = "53"; }
];
# Ports for static BIB entries
{ protocol = "TCP"; prefix = "192.0.2.16/32"; "port range" = "22"; }
{ protocol = "UDP"; prefix = "192.0.2.16/32"; "port range" = "53"; }
];
};
}
'';
description = lib.mdDoc ''
The configuration of a stateful NAT64 instance of Jool managed through
NixOS. See https://nicmx.github.io/Jool/en/config-atomic.html for the
available options.
Definitions of NAT64 instances of Jool.
See the
[documentation](https://nicmx.github.io/Jool/en/config-atomic.html) for
the available options. Also check out the
[tutorial](https://nicmx.github.io/Jool/en/run-nat64.html) for an
introduction to NAT64 and how to troubleshoot the setup.
The attribute name defines the name of the instance, with the main one
being `default`: this can be accessed from the command line without
specifying the name with `-i`.
::: {.note}
Existing or more instances created manually will not interfere with the
NixOS instance, provided the respective `pool4` addresses and port
ranges are not overlapping.
Instances created imperatively from the command line will not interfere
with the NixOS instances, provided the respective `pool4` addresses and
port ranges are not overlapping.
:::
::: {.warning}
Changes to the NixOS instance performed via `jool instance nixos-nat64`
are applied correctly but will be lost after restarting
`jool-nat64.service`.
Changes to an instance performed via `jool -i <name>` are applied
correctly but will be lost after restarting the respective
`jool-nat64-<name>.service`.
:::
'';
};
networking.jool.siit.enable = lib.mkEnableOption (lib.mdDoc "a SIIT instance of Jool.");
networking.jool.siit.config = lib.mkOption {
type = configFormat.type;
default = defaultSiit;
networking.jool.siit = lib.mkOption {
type = lib.types.attrsOf siitOptions;
default = { };
example = lib.literalExpression ''
{
# Maps any IPv4 address x.y.z.t to 2001:db8::x.y.z.t and v.v.
pool6 = "2001:db8::/96";
default = {
# Maps any IPv4 address x.y.z.t to 2001:db8::x.y.z.t and v.v.
global.pool6 = "2001:db8::/96";
# Explicit address mappings
eamt = [
# 2001:db8:1:: ←→ 192.0.2.0
{ "ipv6 prefix": "2001:db8:1::/128", "ipv4 prefix": "192.0.2.0" }
# 2001:db8:1::x ←→ 198.51.100.x
{ "ipv6 prefix": "2001:db8:2::/120", "ipv4 prefix": "198.51.100.0/24" }
]
# Explicit address mappings
eamt = [
# 2001:db8:1:: ←→ 192.0.2.0
{ "ipv6 prefix" = "2001:db8:1::/128"; "ipv4 prefix" = "192.0.2.0"; }
# 2001:db8:1::x ←→ 198.51.100.x
{ "ipv6 prefix" = "2001:db8:2::/120"; "ipv4 prefix" = "198.51.100.0/24"; }
];
};
}
'';
description = lib.mdDoc ''
The configuration of a SIIT instance of Jool managed through
NixOS. See https://nicmx.github.io/Jool/en/config-atomic.html for the
available options.
Definitions of SIIT instances of Jool.
See the
[documentation](https://nicmx.github.io/Jool/en/config-atomic.html) for
the available options. Also check out the
[tutorial](https://nicmx.github.io/Jool/en/run-vanilla.html) for an
introduction to SIIT and how to troubleshoot the setup.
The attribute name defines the name of the instance, with the main one
being `default`: this can be accessed from the command line without
specifying the name with `-i`.
::: {.note}
Existing or more instances created manually will not interfere with the
NixOS instance, provided the respective `EAMT` address mappings are not
overlapping.
Instances created imperatively from the command line will not interfere
with the NixOS instances, provided the respective EAMT addresses and
port ranges are not overlapping.
:::
::: {.warning}
Changes to the NixOS instance performed via `jool instance nixos-siit`
are applied correctly but will be lost after restarting
`jool-siit.service`.
Changes to an instance performed via `jool -i <name>` are applied
correctly but will be lost after restarting the respective
`jool-siit-<name>.service`.
:::
'';
};
};
###### implementation
config = lib.mkIf cfg.enable {
environment.systemPackages = [ jool-cli ];
# Install kernel module and cli tools
boot.extraModulePackages = [ jool ];
environment.systemPackages = [ jool-cli ];
systemd.services.jool-nat64 = lib.mkIf cfg.nat64.enable {
description = "Jool, NAT64 setup";
documentation = [ "https://nicmx.github.io/Jool/en/documentation.html" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${pkgs.kmod}/bin/modprobe jool";
ExecStart = "${jool-cli}/bin/jool file handle ${nat64Conf}";
ExecStop = "${jool-cli}/bin/jool -f ${nat64Conf} instance remove";
} // hardening;
};
systemd.services.jool-siit = lib.mkIf cfg.siit.enable {
description = "Jool, SIIT setup";
documentation = [ "https://nicmx.github.io/Jool/en/documentation.html" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${pkgs.kmod}/bin/modprobe jool_siit";
ExecStart = "${jool-cli}/bin/jool_siit file handle ${siitConf}";
ExecStop = "${jool-cli}/bin/jool_siit -f ${siitConf} instance remove";
} // hardening;
};
system.checks = lib.singleton (pkgs.runCommand "jool-validated" {
nativeBuildInputs = [ pkgs.buildPackages.jool-cli ];
preferLocalBuild = true;
} ''
printf 'Validating Jool configuration... '
${lib.optionalString cfg.siit.enable "jool_siit file check ${siitConf}"}
${lib.optionalString cfg.nat64.enable "jool file check ${nat64Conf}"}
printf 'ok\n'
touch "$out"
'');
networking.jool.nat64.config = mkDefaultAttrs defaultNat64;
networking.jool.siit.config = mkDefaultAttrs defaultSiit;
# Install services for each instance
systemd.services = lib.mkMerge
(lib.mapAttrsToList makeNat64Unit cfg.nat64 ++
lib.mapAttrsToList makeSiitUnit cfg.siit);
# Check the configuration of each instance
system.checks = lib.optional (cfg.nat64 != {} || cfg.siit != {})
(pkgs.runCommand "jool-validated"
{
nativeBuildInputs = with pkgs.buildPackages; [ jool-cli ];
preferLocalBuild = true;
}
(lib.concatStrings
(lib.mapAttrsToList checkNat64 cfg.nat64 ++
lib.mapAttrsToList checkSiit cfg.siit)));
};
meta.maintainers = with lib.maintainers; [ rnhmjoj ];

View File

@ -70,6 +70,26 @@ in
'';
};
networking.nftables.checkRulesetRedirects = mkOption {
type = types.addCheck (types.attrsOf types.path) (attrs: all types.path.check (attrNames attrs));
default = {
"/etc/hosts" = config.environment.etc.hosts.source;
"/etc/protocols" = config.environment.etc.protocols.source;
"/etc/services" = config.environment.etc.services.source;
};
defaultText = literalExpression ''
{
"/etc/hosts" = config.environment.etc.hosts.source;
"/etc/protocols" = config.environment.etc.protocols.source;
"/etc/services" = config.environment.etc.services.source;
}
'';
description = mdDoc ''
Set of paths that should be intercepted and rewritten while checking the ruleset
using `pkgs.buildPackages.libredirect`.
'';
};
networking.nftables.preCheckRuleset = mkOption {
type = types.lines;
default = "";
@ -282,7 +302,7 @@ in
cp $out ruleset.conf
sed 's|include "${deletionsScriptVar}"||' -i ruleset.conf
${cfg.preCheckRuleset}
export NIX_REDIRECTS=/etc/protocols=${pkgs.buildPackages.iana-etc}/etc/protocols:/etc/services=${pkgs.buildPackages.iana-etc}/etc/services
export NIX_REDIRECTS=${escapeShellArg (concatStringsSep ":" (mapAttrsToList (n: v: "${n}=${v}") cfg.checkRulesetRedirects))}
LD_PRELOAD="${pkgs.buildPackages.libredirect}/lib/libredirect.so ${pkgs.buildPackages.lklWithFirewall.lib}/lib/liblkl-hijack.so" \
${pkgs.buildPackages.nftables}/bin/nft --check --file ruleset.conf
'';

View File

@ -134,6 +134,7 @@ in {
# Update user directories.
xdg-user-dirs
]
++ lib.optional config.networking.networkmanager.enable pkgs.networkmanagerapplet
++ (utils.removePackagesByName [
cinnamon.nemo
mate.eom
@ -192,7 +193,7 @@ in {
# Required by Budgie Panel plugins and/or Budgie Control Center panels.
networking.networkmanager.enable = mkDefault true; # for BCC's Network panel.
programs.nm-applet.enable = config.networking.networkmanager.enable; # Budgie has no Network applet.
programs.nm-applet.indicator = false; # Budgie doesn't support AppIndicators.
programs.nm-applet.indicator = true; # Budgie uses AppIndicators.
hardware.bluetooth.enable = mkDefault true; # for Budgie's Status Indicator and BCC's Bluetooth panel.
hardware.pulseaudio.enable = mkDefault true; # for Budgie's Status Indicator and BCC's Sound panel.

View File

@ -1,96 +1,16 @@
{ lib, config, pkgs, ... }:
with lib;
let
templateSubmodule = { ... }: {
options = {
enable = mkEnableOption (lib.mdDoc "this template");
target = mkOption {
description = lib.mdDoc "Path in the container";
type = types.path;
};
template = mkOption {
description = lib.mdDoc ".tpl file for rendering the target";
type = types.path;
};
when = mkOption {
description = lib.mdDoc "Events which trigger a rewrite (create, copy)";
type = types.listOf (types.str);
};
properties = mkOption {
description = lib.mdDoc "Additional properties";
type = types.attrs;
default = {};
};
};
};
toYAML = name: data: pkgs.writeText name (generators.toYAML {} data);
cfg = config.virtualisation.lxc;
templates = if cfg.templates != {} then let
list = mapAttrsToList (name: value: { inherit name; } // value)
(filterAttrs (name: value: value.enable) cfg.templates);
in
{
files = map (tpl: {
source = tpl.template;
target = "/templates/${tpl.name}.tpl";
}) list;
properties = listToAttrs (map (tpl: nameValuePair tpl.target {
when = tpl.when;
template = "${tpl.name}.tpl";
properties = tpl.properties;
}) list);
}
else { files = []; properties = {}; };
in
{
in {
imports = [
../installer/cd-dvd/channel.nix
../profiles/clone-config.nix
../profiles/minimal.nix
./lxc-instance-common.nix
];
options = {
virtualisation.lxc = {
templates = mkOption {
description = lib.mdDoc "Templates for LXD";
type = types.attrsOf (types.submodule (templateSubmodule));
default = {};
example = literalExpression ''
{
# create /etc/hostname on container creation. also requires networking.hostName = "" to be set
"hostname" = {
enable = true;
target = "/etc/hostname";
template = builtins.toFile "hostname.tpl" "{{ container.name }}";
when = [ "create" ];
};
# create /etc/nixos/hostname.nix with a configuration for keeping the hostname applied
"hostname-nix" = {
enable = true;
target = "/etc/nixos/hostname.nix";
template = builtins.toFile "hostname-nix.tpl" "{ ... }: { networking.hostName = \"{{ container.name }}\"; }";
# copy keeps the file updated when the container is changed
when = [ "create" "copy" ];
};
# copy allow the user to specify a custom configuration.nix
"configuration-nix" = {
enable = true;
target = "/etc/nixos/configuration.nix";
template = builtins.toFile "configuration-nix" "{{ config_get(\"user.user-data\", properties.default) }}";
when = [ "create" ];
};
};
'';
};
privilegedContainer = mkOption {
type = types.bool;
privilegedContainer = lib.mkOption {
type = lib.types.bool;
default = false;
description = lib.mdDoc ''
Whether this LXC container will be running as a privileged container or not. If set to `true` then
@ -116,24 +36,6 @@ in
${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
'';
system.build.metadata = pkgs.callPackage ../../lib/make-system-tarball.nix {
contents = [
{
source = toYAML "metadata.yaml" {
architecture = builtins.elemAt (builtins.match "^([a-z0-9_]+).+" (toString pkgs.system)) 0;
creation_date = 1;
properties = {
description = "${config.system.nixos.distroName} ${config.system.nixos.codeName} ${config.system.nixos.label} ${pkgs.system}";
os = "${config.system.nixos.distroId}";
release = "${config.system.nixos.codeName}";
};
templates = templates.properties;
};
target = "/metadata.yaml";
}
] ++ templates.files;
};
# TODO: build rootfs as squashfs for faster unpack
system.build.tarball = pkgs.callPackage ../../lib/make-system-tarball.nix {
extraArgs = "--owner=0";
@ -180,7 +82,7 @@ in
ProtectKernelTunables=no
NoNewPrivileges=no
LoadCredential=
'' + optionalString cfg.privilegedContainer ''
'' + lib.optionalString cfg.privilegedContainer ''
# Additional settings for privileged containers
ProtectHome=no
ProtectSystem=no
@ -193,28 +95,8 @@ in
})
];
# Allow the user to login as root without password.
users.users.root.initialHashedPassword = mkOverride 150 "";
system.activationScripts.installInitScript = mkForce ''
system.activationScripts.installInitScript = lib.mkForce ''
ln -fs $systemConfig/init /sbin/init
'';
# Some more help text.
services.getty.helpLine =
''
Log in as "root" with an empty password.
'';
# Containers should be light-weight, so start sshd on demand.
services.openssh.enable = mkDefault true;
services.openssh.startWhenNeeded = mkDefault true;
# As this is intended as a standalone image, undo some of the minimal profile stuff
environment.noXlibs = false;
documentation.enable = true;
documentation.nixos.enable = true;
services.logrotate.enable = true;
};
}

View File

@ -0,0 +1,104 @@
{ lib, config, pkgs, ... }:
let
templateSubmodule = {...}: {
options = {
enable = lib.mkEnableOption "this template";
target = lib.mkOption {
description = "Path in the container";
type = lib.types.path;
};
template = lib.mkOption {
description = ".tpl file for rendering the target";
type = lib.types.path;
};
when = lib.mkOption {
description = "Events which trigger a rewrite (create, copy)";
type = lib.types.listOf (lib.types.str);
};
properties = lib.mkOption {
description = "Additional properties";
type = lib.types.attrs;
default = {};
};
};
};
toYAML = name: data: pkgs.writeText name (lib.generators.toYAML {} data);
cfg = config.virtualisation.lxc;
templates = if cfg.templates != {} then let
list = lib.mapAttrsToList (name: value: { inherit name; } // value)
(lib.filterAttrs (name: value: value.enable) cfg.templates);
in
{
files = map (tpl: {
source = tpl.template;
target = "/templates/${tpl.name}.tpl";
}) list;
properties = lib.listToAttrs (map (tpl: lib.nameValuePair tpl.target {
when = tpl.when;
template = "${tpl.name}.tpl";
properties = tpl.properties;
}) list);
}
else { files = []; properties = {}; };
in {
options = {
virtualisation.lxc = {
templates = lib.mkOption {
description = "Templates for LXD";
type = lib.types.attrsOf (lib.types.submodule templateSubmodule);
default = {};
example = lib.literalExpression ''
{
# create /etc/hostname on container creation
"hostname" = {
enable = true;
target = "/etc/hostname";
template = builtins.writeFile "hostname.tpl" "{{ container.name }}";
when = [ "create" ];
};
# create /etc/nixos/hostname.nix with a configuration for keeping the hostname applied
"hostname-nix" = {
enable = true;
target = "/etc/nixos/hostname.nix";
template = builtins.writeFile "hostname-nix.tpl" "{ ... }: { networking.hostName = "{{ container.name }}"; }";
# copy keeps the file updated when the container is changed
when = [ "create" "copy" ];
};
# copy allow the user to specify a custom configuration.nix
"configuration-nix" = {
enable = true;
target = "/etc/nixos/configuration.nix";
template = builtins.writeFile "configuration-nix" "{{ config_get(\"user.user-data\", properties.default) }}";
when = [ "create" ];
};
};
'';
};
};
};
config = {
system.build.metadata = pkgs.callPackage ../../lib/make-system-tarball.nix {
contents = [
{
source = toYAML "metadata.yaml" {
architecture = builtins.elemAt (builtins.match "^([a-z0-9_]+).+" (toString pkgs.system)) 0;
creation_date = 1;
properties = {
description = "${config.system.nixos.distroName} ${config.system.nixos.codeName} ${config.system.nixos.label} ${pkgs.system}";
os = "${config.system.nixos.distroId}";
release = "${config.system.nixos.codeName}";
};
templates = templates.properties;
};
target = "/metadata.yaml";
}
] ++ templates.files;
};
};
}

View File

@ -0,0 +1,30 @@
{lib, ...}:
{
imports = [
./lxc-image-metadata.nix
../installer/cd-dvd/channel.nix
../profiles/clone-config.nix
../profiles/minimal.nix
];
# Allow the user to login as root without password.
users.users.root.initialHashedPassword = lib.mkOverride 150 "";
# Some more help text.
services.getty.helpLine = ''
Log in as "root" with an empty password.
'';
# Containers should be light-weight, so start sshd on demand.
services.openssh.enable = lib.mkDefault true;
services.openssh.startWhenNeeded = lib.mkDefault true;
# As this is intended as a standalone image, undo some of the minimal profile stuff
environment.noXlibs = false;
documentation.enable = true;
documentation.nixos.enable = true;
services.logrotate.enable = true;
}

View File

@ -0,0 +1,46 @@
{ config, lib, pkgs, ... }:
let
serialDevice =
if pkgs.stdenv.hostPlatform.isx86
then "ttyS0"
else "ttyAMA0"; # aarch64
in {
imports = [
./lxc-instance-common.nix
../profiles/qemu-guest.nix
];
config = {
system.build.qemuImage = import ../../lib/make-disk-image.nix {
inherit pkgs lib config;
partitionTableType = "efi";
format = "qcow2-compressed";
copyChannel = true;
};
fileSystems = {
"/" = {
device = "/dev/disk/by-label/nixos";
autoResize = true;
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-label/ESP";
fsType = "vfat";
};
};
boot.growPartition = true;
boot.loader.systemd-boot.enable = true;
# image building needs to know what device to install bootloader on
boot.loader.grub.device = "/dev/vda";
boot.kernelParams = ["console=tty1" "console=${serialDevice}"];
virtualisation.lxd.agent.enable = lib.mkDefault true;
};
}

View File

@ -196,7 +196,7 @@ in {
"kernel.keys.maxkeys" = 2000;
};
boot.kernelModules = [ "veth" "xt_comment" "xt_CHECKSUM" "xt_MASQUERADE" ]
boot.kernelModules = [ "veth" "xt_comment" "xt_CHECKSUM" "xt_MASQUERADE" "vhost_vsock" ]
++ optionals (!config.networking.nftables.enable) [ "iptable_mangle" ];
};
}

View File

@ -313,7 +313,7 @@ in rec {
);
# An image that can be imported into lxd and used for container creation
lxdImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
lxdContainerImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
with import ./.. { inherit system; };
@ -322,14 +322,14 @@ in rec {
modules =
[ configuration
versionModule
./maintainers/scripts/lxd/lxd-image.nix
./maintainers/scripts/lxd/lxd-container-image.nix
];
}).config.system.build.tarball)
);
# Metadata for the lxd image
lxdMeta = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
lxdContainerMeta = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
with import ./.. { inherit system; };
@ -338,7 +338,39 @@ in rec {
modules =
[ configuration
versionModule
./maintainers/scripts/lxd/lxd-image.nix
./maintainers/scripts/lxd/lxd-container-image.nix
];
}).config.system.build.metadata)
);
# An image that can be imported into lxd and used for container creation
lxdVirtualMachineImage = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
with import ./.. { inherit system; };
hydraJob ((import lib/eval-config.nix {
inherit system;
modules =
[ configuration
versionModule
./maintainers/scripts/lxd/lxd-virtual-machine-image.nix
];
}).config.system.build.qemuImage)
);
# Metadata for the lxd image
lxdVirtualMachineImageMeta = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system:
with import ./.. { inherit system; };
hydraJob ((import lib/eval-config.nix {
inherit system;
modules =
[ configuration
versionModule
./maintainers/scripts/lxd/lxd-virtual-machine-image.nix
];
}).config.system.build.metadata)

View File

@ -395,7 +395,7 @@ in {
jibri = handleTest ./jibri.nix {};
jirafeau = handleTest ./jirafeau.nix {};
jitsi-meet = handleTest ./jitsi-meet.nix {};
jool = handleTest ./jool.nix {};
jool = import ./jool.nix { inherit pkgs runTest; };
k3s = handleTest ./k3s {};
kafka = handleTest ./kafka.nix {};
kanidm = handleTest ./kanidm.nix {};
@ -728,6 +728,7 @@ in {
sslh = handleTest ./sslh.nix {};
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
stalwart-mail = handleTest ./stalwart-mail.nix {};
stargazer = runTest ./web-servers/stargazer.nix;
starship = handleTest ./starship.nix {};
static-web-server = handleTest ./web-servers/static-web-server.nix {};

View File

@ -131,8 +131,8 @@ let
# chromium-based browsers refuse to run as root
test-support.displayManager.auto.user = "alice";
# browsers may hang with the default memory
virtualisation.memorySize = 600;
# machine often runs out of memory with less
virtualisation.memorySize = 1024;
environment.systemPackages = [ pkgs.xdotool pkgs.${browser} ];
};

View File

@ -1,9 +1,4 @@
{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; }
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
{ pkgs, runTest }:
let
inherit (pkgs) lib;
@ -23,7 +18,6 @@ let
description = "Mock webserver";
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.Restart = "always";
script = ''
while true; do
{
@ -40,7 +34,7 @@ let
in
{
siit = makeTest {
siit = runTest {
# This test simulates the setup described in [1] with two IPv6 and
# IPv4-only devices on different subnets communicating through a border
# relay running Jool in SIIT mode.
@ -49,8 +43,7 @@ in
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
# Border relay
nodes.relay = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
nodes.relay = {
virtualisation.vlans = [ 1 2 ];
# Enable packet routing
@ -65,20 +58,13 @@ in
eth2.ipv4.addresses = [ { address = "192.0.2.1"; prefixLength = 24; } ];
};
networking.jool = {
enable = true;
siit.enable = true;
siit.config.global.pool6 = "fd::/96";
};
networking.jool.enable = true;
networking.jool.siit.default.global.pool6 = "fd::/96";
};
# IPv6 only node
nodes.alice = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv6Only
(webserver 6 "Hello, Bob!")
];
nodes.alice = {
imports = [ ipv6Only (webserver 6 "Hello, Bob!") ];
virtualisation.vlans = [ 1 ];
networking.interfaces.eth1.ipv6 = {
@ -89,12 +75,8 @@ in
};
# IPv4 only node
nodes.bob = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv4Only
(webserver 4 "Hello, Alice!")
];
nodes.bob = {
imports = [ ipv4Only (webserver 4 "Hello, Alice!") ];
virtualisation.vlans = [ 2 ];
networking.interfaces.eth1.ipv4 = {
@ -107,17 +89,17 @@ in
testScript = ''
start_all()
relay.wait_for_unit("jool-siit.service")
relay.wait_for_unit("jool-siit-default.service")
alice.wait_for_unit("network-addresses-eth1.service")
bob.wait_for_unit("network-addresses-eth1.service")
with subtest("Alice and Bob can't ping each other"):
relay.systemctl("stop jool-siit.service")
relay.systemctl("stop jool-siit-default.service")
alice.fail("ping -c1 fd::192.0.2.16")
bob.fail("ping -c1 198.51.100.8")
with subtest("Alice and Bob can ping using the relay"):
relay.systemctl("start jool-siit.service")
relay.systemctl("start jool-siit-default.service")
alice.wait_until_succeeds("ping -c1 fd::192.0.2.16")
bob.wait_until_succeeds("ping -c1 198.51.100.8")
@ -132,7 +114,7 @@ in
'';
};
nat64 = makeTest {
nat64 = runTest {
# This test simulates the setup described in [1] with two IPv6-only nodes
# (a client and a homeserver) on the LAN subnet and an IPv4 node on the WAN.
# The router runs Jool in stateful NAT64 mode, masquarading the LAN and
@ -142,8 +124,7 @@ in
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
# Router
nodes.router = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
nodes.router = {
virtualisation.vlans = [ 1 2 ];
# Enable packet routing
@ -158,32 +139,29 @@ in
eth2.ipv4.addresses = [ { address = "203.0.113.1"; prefixLength = 24; } ];
};
networking.jool = {
enable = true;
nat64.enable = true;
nat64.config = {
bib = [
{ # forward HTTP 203.0.113.1 (router) → 2001:db8::9 (homeserver)
"protocol" = "TCP";
"ipv4 address" = "203.0.113.1#80";
"ipv6 address" = "2001:db8::9#80";
}
];
pool4 = [
# Ports for dynamic translation
{ protocol = "TCP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
{ protocol = "UDP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
{ protocol = "ICMP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
# Ports for static BIB entries
{ protocol = "TCP"; prefix = "203.0.113.1/32"; "port range" = "80"; }
];
};
networking.jool.enable = true;
networking.jool.nat64.default = {
bib = [
{ # forward HTTP 203.0.113.1 (router) → 2001:db8::9 (homeserver)
"protocol" = "TCP";
"ipv4 address" = "203.0.113.1#80";
"ipv6 address" = "2001:db8::9#80";
}
];
pool4 = [
# Ports for dynamic translation
{ protocol = "TCP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
{ protocol = "UDP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
{ protocol = "ICMP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
# Ports for static BIB entries
{ protocol = "TCP"; prefix = "203.0.113.1/32"; "port range" = "80"; }
];
};
};
# LAN client (IPv6 only)
nodes.client = { ... }: {
imports = [ ../modules/profiles/minimal.nix ipv6Only ];
nodes.client = {
imports = [ ipv6Only ];
virtualisation.vlans = [ 1 ];
networking.interfaces.eth1.ipv6 = {
@ -194,12 +172,8 @@ in
};
# LAN server (IPv6 only)
nodes.homeserver = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv6Only
(webserver 6 "Hello from IPv6!")
];
nodes.homeserver = {
imports = [ ipv6Only (webserver 6 "Hello from IPv6!") ];
virtualisation.vlans = [ 1 ];
networking.interfaces.eth1.ipv6 = {
@ -210,12 +184,8 @@ in
};
# WAN server (IPv4 only)
nodes.server = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv4Only
(webserver 4 "Hello from IPv4!")
];
nodes.server = {
imports = [ ipv4Only (webserver 4 "Hello from IPv4!") ];
virtualisation.vlans = [ 2 ];
networking.interfaces.eth1.ipv4.addresses =
@ -229,7 +199,7 @@ in
node.wait_for_unit("network-addresses-eth1.service")
with subtest("Client can ping the WAN server"):
router.wait_for_unit("jool-nat64.service")
router.wait_for_unit("jool-nat64-default.service")
client.succeed("ping -c1 64:ff9b::203.0.113.16")
with subtest("Client can connect to the WAN webserver"):

View File

@ -1,7 +1,7 @@
import ../make-test-python.nix ({ pkgs, lib, ... } :
let
lxd-image = import ../../release.nix {
releases = import ../../release.nix {
configuration = {
# Building documentation makes the test unnecessarily take a longer time:
documentation.enable = lib.mkForce false;
@ -11,14 +11,14 @@ let
};
};
lxd-image-metadata = lxd-image.lxdMeta.${pkgs.stdenv.hostPlatform.system};
lxd-image-rootfs = lxd-image.lxdImage.${pkgs.stdenv.hostPlatform.system};
lxd-image-metadata = releases.lxdContainerMeta.${pkgs.stdenv.hostPlatform.system};
lxd-image-rootfs = releases.lxdContainerImage.${pkgs.stdenv.hostPlatform.system};
in {
name = "lxd";
name = "lxd-container";
meta = with pkgs.lib.maintainers; {
maintainers = [ patryk27 ];
maintainers = [ patryk27 adamcstephens ];
};
nodes.machine = { lib, ... }: {

View File

@ -6,4 +6,5 @@
container = import ./container.nix {inherit system pkgs;};
nftables = import ./nftables.nix {inherit system pkgs;};
ui = import ./ui.nix {inherit system pkgs;};
virtual-machine = import ./virtual-machine.nix { inherit system pkgs; };
}

View File

@ -0,0 +1,64 @@
import ../make-test-python.nix ({ pkgs, lib, ... }:
let
releases = import ../../release.nix {
configuration = {
# Building documentation makes the test unnecessarily take a longer time:
documentation.enable = lib.mkForce false;
# Our tests require `grep` & friends:
environment.systemPackages = with pkgs; [busybox];
};
};
lxd-image-metadata = releases.lxdVirtualMachineImageMeta.${pkgs.stdenv.hostPlatform.system};
lxd-image-disk = releases.lxdVirtualMachineImage.${pkgs.stdenv.hostPlatform.system};
instance-name = "instance1";
in {
name = "lxd-virtual-machine";
meta = with pkgs.lib.maintainers; {
maintainers = [adamcstephens];
};
nodes.machine = {lib, ...}: {
virtualisation = {
diskSize = 4096;
cores = 2;
# Ensure we have enough memory for the nested virtual machine
memorySize = 1024;
lxc.lxcfs.enable = true;
lxd.enable = true;
};
};
testScript = ''
def instance_is_up(_) -> bool:
status, _ = machine.execute("lxc exec ${instance-name} --disable-stdin --force-interactive /run/current-system/sw/bin/true")
return status == 0
machine.wait_for_unit("sockets.target")
machine.wait_for_unit("lxd.service")
machine.wait_for_file("/var/lib/lxd/unix.socket")
# Wait for lxd to settle
machine.succeed("lxd waitready")
machine.succeed("lxd init --minimal")
with subtest("virtual-machine image can be imported"):
machine.succeed("lxc image import ${lxd-image-metadata}/*/*.tar.xz ${lxd-image-disk}/nixos.qcow2 --alias nixos")
with subtest("virtual-machine can be launched and become available"):
machine.succeed("lxc launch nixos ${instance-name} --vm --config limits.memory=512MB --config security.secureboot=false")
with machine.nested("Waiting for instance to start and be usable"):
retry(instance_is_up)
with subtest("lxd-agent is started"):
machine.succeed("lxc exec ${instance-name} systemctl is-active lxd-agent")
'';
})

View File

@ -0,0 +1,117 @@
# Rudimentary test checking that the Stalwart email server can:
# - receive some message through SMTP submission, then
# - serve this message through IMAP.
let
certs = import ./common/acme/server/snakeoil-certs.nix;
domain = certs.domain;
in import ./make-test-python.nix ({ lib, ... }: {
name = "stalwart-mail";
nodes.main = { pkgs, ... }: {
security.pki.certificateFiles = [ certs.ca.cert ];
services.stalwart-mail = {
enable = true;
settings = {
server.hostname = domain;
certificate."snakeoil" = {
cert = "file://${certs.${domain}.cert}";
private-key = "file://${certs.${domain}.key}";
};
server.tls = {
certificate = "snakeoil";
enable = true;
implicit = false;
};
server.listener = {
"smtp-submission" = {
bind = [ "[::]:587" ];
protocol = "smtp";
};
"imap" = {
bind = [ "[::]:143" ];
protocol = "imap";
};
};
session.auth.mechanisms = [ "PLAIN" ];
session.auth.directory = "in-memory";
jmap.directory = "in-memory"; # shared with imap
session.rcpt.directory = "in-memory";
queue.outbound.next-hop = [ "local" ];
directory."in-memory" = {
type = "memory";
users = [
{
name = "alice";
secret = "foobar";
email = [ "alice@${domain}" ];
}
{
name = "bob";
secret = "foobar";
email = [ "bob@${domain}" ];
}
];
};
};
};
environment.systemPackages = [
(pkgs.writers.writePython3Bin "test-smtp-submission" { } ''
from smtplib import SMTP
with SMTP('localhost', 587) as smtp:
smtp.starttls()
smtp.login('alice', 'foobar')
smtp.sendmail(
'alice@${domain}',
'bob@${domain}',
"""
From: alice@${domain}
To: bob@${domain}
Subject: Some test message
This is a test message.
""".strip()
)
'')
(pkgs.writers.writePython3Bin "test-imap-read" { } ''
from imaplib import IMAP4
with IMAP4('localhost') as imap:
imap.starttls()
imap.login('bob', 'foobar')
imap.select('"All Mail"')
status, [ref] = imap.search(None, 'ALL')
assert status == 'OK'
[msgId] = ref.split()
status, msg = imap.fetch(msgId, 'BODY[TEXT]')
assert status == 'OK'
assert msg[0][1].strip() == b'This is a test message.'
'')
];
};
testScript = /* python */ ''
main.wait_for_unit("stalwart-mail.service")
main.wait_for_open_port(587)
main.wait_for_open_port(143)
main.succeed("test-smtp-submission")
main.succeed("test-imap-read")
'';
meta = {
maintainers = with lib.maintainers; [ happysalada pacien ];
};
})

View File

@ -1,48 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, cmake
, alsa-lib
, boost
, glib
, lash
, libjack2
, libarchive
, libsndfile
, lrdf
, qt4
}:
stdenv.mkDerivation rec {
version = "0.9.7";
pname = "hydrogen";
src = fetchFromGitHub {
owner = "hydrogen-music";
repo = "hydrogen";
rev = version;
sha256 = "sha256-6ycNUcumtAEl/6XbIpW6JglGv4nNOdMrOJ1nvJg3z/c=";
};
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [
alsa-lib
boost
glib
lash
libjack2
libarchive
libsndfile
lrdf
qt4
];
meta = with lib; {
description = "Advanced drum machine";
homepage = "http://www.hydrogen-music.org";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.goibhniu ];
};
}

View File

@ -1,30 +0,0 @@
{ lib, stdenv, fetchurl, pkg-config, qt4, alsa-lib }:
stdenv.mkDerivation rec {
version = "0.4.0";
pname = "qmidiroute";
src = fetchurl {
url = "mirror://sourceforge/project/alsamodular/QMidiRoute/${version}/${pname}-${version}.tar.gz";
sha256 = "0vmjwarsxr5540rafhmdcc62yarf0w2l05bjjl9s28zzr5m39z3n";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ qt4 alsa-lib ];
meta = with lib; {
description = "MIDI event processor and router";
longDescription = ''
qmidiroute is a versatile MIDI event processor and router for the ALSA
sequencer. The graphical interface is based on the Qt4 toolkit.
qmidiroute permits setting up an unlimited number of MIDI maps in which
incoming events are selected, modified or even changed in type before
being directed to a dedicated ALSA output port. The maps work in
parallel, and they are organized in tabs.
'';
license = licenses.gpl2;
maintainers = [ maintainers.lebastr ];
platforms = lib.platforms.linux;
};
}

View File

@ -1,34 +0,0 @@
{ stdenv, lib, fetchurl, withMtp ? true, libmtp, pkg-config, which, qt4, qmake4Hook }:
stdenv.mkDerivation rec {
pname = "qtscrobbler";
version = "0.11";
src = fetchurl {
url = "mirror://sourceforge/qtscrob/qtscrob/${version}/qtscrob-${version}.tar.bz2";
sha256 = "01c8e48f616ed09504833d27d92fd62f455bd645ea2d1cc2a5f4c287d641daba";
};
nativeBuildInputs = [ qmake4Hook ] ++ lib.optionals withMtp [ pkg-config which ];
buildInputs = [ qt4 ] ++ lib.optional withMtp libmtp;
enableParallelBuilding = true;
postPatch = ''
cd src
sed -i -e "s,/usr/local,$out," -e "s,/usr,," common.pri
'';
meta = with lib; {
description = "Qt based last.fm scrobbler";
longDescription = ''
QTScrobbler is a tool to upload information about the tracks you have played from your Digital Audio Player (DAP) to your last.fm account.
It is able to gather this information from Apple iPods or DAPs running the Rockbox replacement firmware.
'';
homepage = "https://qtscrob.sourceforge.net";
license = licenses.gpl2;
maintainers = [ maintainers.vanzef ];
platforms = platforms.linux;
};
}

View File

@ -1,56 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, autoreconfHook
, help2man
, pkg-config
, libsndfile
, fftwFloat
, libjack2
, libxml2
, qt4
, boost
, ecasound
, glibcLocales
, libGLU
, libGL # Needed because help2man basically does a ./ssr-binaural --help and ssr-binaural needs libGL
}:
stdenv.mkDerivation {
pname = "soundscape-renderer";
version = "unstable-2016-11-03";
src = fetchFromGitHub {
owner = "SoundScapeRenderer";
repo = "ssr";
rev = "0dd0136dd24e47b63d8a4e05de467f5c7b047ec9";
sha256 = "sha256-9s+Elaxz9kX+Nle1CqBU/9r0hdI4dhsJ6GrNqvP5HIs=";
};
# Without it doesn't find all of the boost libraries.
BOOST_LIB_DIR = "${boost}/lib";
# uses the deprecated get_generic_category() in boost_system
env.NIX_CFLAGS_COMPILE = "-DBOOST_SYSTEM_ENABLE_DEPRECATED=1";
LC_ALL = "en_US.UTF-8";
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ boost boost.dev ecasound libGLU libGL help2man libsndfile fftwFloat libjack2 libxml2 qt4 glibcLocales ];
# 1) Fix detecting version. https://github.com/SoundScapeRenderer/ssr/pull/53
# 2) Make it find ecasound headers
# 3) Fix locale for help2man
prePatch = ''
substituteInPlace configure.ac --replace 'git describe ||' 'git describe 2> /dev/null ||';
substituteInPlace configure.ac --replace '/{usr,opt}/{,local/}' '${ecasound}/'
substituteInPlace man/Makefile.am --replace '--locale=en' '--locale=en_US.UTF-8'
'';
meta = {
homepage = "http://spatialaudio.net/ssr/";
description = "The SoundScape Renderer (SSR) is a tool for real-time spatial audio reproduction";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.fridh ];
};
}

View File

@ -2,11 +2,11 @@
let
pname = "ledger-live-desktop";
version = "2.64.2";
version = "2.66.0";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-8cb5FA/Ogd6GI0AclxHicZGV3K5bVsZuIl/3A03r5qQ=";
hash = "sha256-Du2bvtlNjxtkJ31RCKZmGtWxOEIjohbmEC5o3VvFGlY=";
};

View File

@ -1,8 +1,7 @@
{ lib, stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkg-config, qt4, protobuf, qrencode, hexdump
, withGui }:
{ lib, stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkg-config, hexdump }:
stdenv.mkDerivation rec {
pname = "namecoin" + lib.optionalString (!withGui) "d";
pname = "namecoind";
version = "25.0";
src = fetchFromGitHub {
@ -25,10 +24,6 @@ stdenv.mkDerivation rec {
db4
miniupnpc
eject
] ++ lib.optionals withGui [
qt4
protobuf
qrencode
];
enableParallelBuilding = true;

View File

@ -3,24 +3,18 @@
, makeWrapper
, fetchurl
, makeDesktopItem
, curl
, dotnetCorePackages
, lttng-ust_2_12
, fontconfig
, krb5
, openssl
, xorg
, zlib
}:
let
dotnet-runtime = dotnetCorePackages.runtime_6_0;
# These libraries are dynamically loaded by the application,
# and need to be present in LD_LIBRARY_PATH
runtimeLibs = [
curl
fontconfig.lib
krb5
openssl
stdenv.cc.cc.lib
xorg.libX11
@ -31,11 +25,11 @@ let
in
stdenv.mkDerivation rec {
pname = "wasabiwallet";
version = "2.0.3";
version = "2.0.4";
src = fetchurl {
url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
sha256 = "sha256-RlWaeOK6XqxyCIQQp1/X6iG9t7f3ER5K+S3ZvPg6wBg=";
sha256 = "sha256-VYyf9rKBRPpnxuaeO6aAq7cQwDfBRLRbH4SlPS+bxFQ=";
};
dontBuild = true;
@ -58,8 +52,10 @@ stdenv.mkDerivation rec {
mkdir -p $out/opt/${pname} $out/bin $out/share/applications
cp -Rv . $out/opt/${pname}
makeWrapper "${dotnet-runtime}/bin/dotnet" "$out/bin/${pname}" \
--add-flags "$out/opt/${pname}/WalletWasabi.Fluent.Desktop.dll" \
makeWrapper "$out/opt/${pname}/wassabee" "$out/bin/${pname}" \
--suffix "LD_LIBRARY_PATH" : "${lib.makeLibraryPath runtimeLibs}"
makeWrapper "$out/opt/${pname}/wassabeed" "$out/bin/${pname}d" \
--suffix "LD_LIBRARY_PATH" : "${lib.makeLibraryPath runtimeLibs}"
cp -v $desktopItem/share/applications/* $out/share/applications

View File

@ -38,13 +38,13 @@ let
in
stdenv.mkDerivation rec {
pname = "cudatext";
version = "1.197.0";
version = "1.198.0";
src = fetchFromGitHub {
owner = "Alexey-T";
repo = "CudaText";
rev = version;
hash = "sha256-960Ucp2iNDqK2n/sJSIyMWxgCCs0LVyafn8SRRhli4c=";
hash = "sha256-zm5acOTcjQdgKf6cSPP3mE070TVXbV6ixVa/+7g/SFE=";
};
postPatch = ''

View File

@ -11,13 +11,13 @@
},
"ATFlatControls": {
"owner": "Alexey-T",
"rev": "2023.08.12",
"hash": "sha256-YBIuwiHE83mxxtl9PNrQN3LrEBFHvYY74zhV+UtAbZ4="
"rev": "2023.09.03",
"hash": "sha256-8mopVCqhmDW5MkrOzjt9+iBVgOf7/SbZy0Y40CzuNG0="
},
"ATSynEdit": {
"owner": "Alexey-T",
"rev": "2023.08.12",
"hash": "sha256-hFDWb7gMQiTkItFC5KfSrpAW3FSkmAhxcc5GOdov3EE="
"rev": "2023.09.03",
"hash": "sha256-Sk7G4dP5703yq26MC/c1EBhphBVWIbanvHJMcFJDqfk="
},
"ATSynEdit_Cmp": {
"owner": "Alexey-T",

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "ldtk";
version = "1.3.3";
version = "1.3.4";
src = fetchurl {
url = "https://github.com/deepnight/ldtk/releases/download/v${finalAttrs.version}/ubuntu-distribution.zip";
hash = "sha256-egvAe4nAzPDBeTaAzrqhlDsG60bGNnKXB5Vt16vIZrQ";
hash = "sha256-/EFmuzj8hYhQJegZpZhZb4fuSeMF9wdG1Be4duEvW54=";
};
nativeBuildInputs = [ unzip makeWrapper copyDesktopItems appimage-run ];

View File

@ -1,60 +0,0 @@
{ lib, stdenv, callPackage, fetchurl,
guile_1_8, qt4, zlib, freetype, CoreFoundation, Cocoa, gettext, libiconv, ghostscript,
tex ? null,
aspell ? null,
netpbm ? null,
imagemagick ? null,
extraFonts ? false,
chineseFonts ? false,
japaneseFonts ? false,
koreanFonts ? false }:
let
version = "1.99.4";
common = callPackage ./common.nix {
inherit tex extraFonts chineseFonts japaneseFonts koreanFonts;
};
in
stdenv.mkDerivation {
pname = "TeXmacs";
inherit version;
src= fetchurl {
url = "http://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
sha256 = "1z8sj0xd1ncbl7ipzfsib6lmc7ahgvmiw61ln5zxm2l88jf7qc1a";
};
patches = [ ./darwin.patch ];
buildInputs = [ guile_1_8.dev qt4 freetype CoreFoundation Cocoa gettext libiconv ghostscript ];
GUILE_CPPFLAGS="-D_THREAD_SAFE -I${guile_1_8.dev}/include -I${guile_1_8.dev}/include/guile ";
NIX_LDFLAGS="${zlib}/lib/libz.dylib";
buildPhase = ''
substituteInPlace Makefile \
--replace 'find -d $(MACOS_PACKAGE_TEXMACS)' 'find $(MACOS_PACKAGE_TEXMACS) -depth' \
--replace '$(MACOS_PACKAGE_SRC)/bundle-libs.sh' 'true'
make MACOS_BUNDLE
'';
installPhase = ''
mkdir -p $out/Applications
cp -R ../distr/TeXmacs-${version}.app $out/Applications
'';
inherit (common) postPatch;
postInstall = "wrapProgram $out/Applications/TeXmacs-${version}/Contents/MacOS/TeXmacs --suffix PATH : " +
"${ghostscript}/bin:" +
(lib.optionalString (aspell != null) "${aspell}/bin:") +
(lib.optionalString (tex != null) "${tex}/bin:") +
(lib.optionalString (netpbm != null) "${lib.getBin netpbm}/bin:") +
(lib.optionalString (imagemagick != null) "${imagemagick}/bin:");
enableParallelBuilding = true;
meta = common.meta // {
platforms = lib.platforms.darwin;
};
}

View File

@ -1,29 +0,0 @@
--- a/configure
+++ b/configure
@@ -7461,7 +7461,7 @@ $as_echo "final adjustments for cygwin host" >&6; }
CONFIG_QTPIPES="yes"
CONFIG_CXXFLAGS="-I${prefix}/include"
CONFIG_BSHARED=""
- CONFIG_BFLAGS="-framework Cocoa -framework IOKit"
+ CONFIG_BFLAGS="-framework Cocoa -framework IOKit -framework CoreFoundation"
CONFIG_BPATH=""
CONFIG_SO="dylib"
CONFIG_LIB_PATH="DYLD_LIBRARY_PATH"
@@ -8281,6 +8281,7 @@ _ASEOF
if $QMAKE ${additional_qmake_flags} ; then :; else
as_fn_error $? "Calling $QMAKE failed." "$LINENO" 5
fi
+ echo "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10" >> $pro_file
# Try to compile a simple Qt app.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can build a simple Qt app" >&5
$as_echo_n "checking whether we can build a simple Qt app... " >&6; }
--- a/src/Plugins/Unix/unix_sys_utils.cpp
+++ b/src/Plugins/Unix/unix_sys_utils.cpp
@@ -17,6 +17,7 @@
#include <spawn.h>
#include <unistd.h>
#include <sys/wait.h>
+#include <pthread.h>
// for thread safe strings
#include <string>

View File

@ -1,26 +0,0 @@
{ fetchFromGitHub, lib, stdenv, cmake, qt4 }:
stdenv.mkDerivation {
pname = "resim";
version = "unstable-2016-11-11";
src = fetchFromGitHub {
owner = "itszor";
repo = "resim";
rev = "cdc7808ceb7ba4ac00d0d08ca646b58615059150";
sha256 = "1743lngqxd7ai4k6cd4d1cf9h60z2pnvr2iynfs1zlpcj3w1hx0c";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 ];
installPhase = ''
mkdir -pv $out/{lib,bin}
cp -v libresim/libarmsim.so $out/lib/libarmsim.so
cp -v vc4emul/vc4emul $out/bin/vc4emul
'';
cmakeFlags = [
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
"-DCMAKE_SKIP_BUILD_RPATH=ON"
];
meta.license = lib.licenses.mit;
}

View File

@ -1,39 +0,0 @@
{ stdenv, lib, fetchurl, cmake, qt4, file }:
stdenv.mkDerivation rec {
pname = "animbar";
version = "1.2";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
sha256 = "0836nwcpyfdrapyj3hbg3wh149ihc26pc78h01adpc7c0r7d9pr9";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 file ];
installPhase = ''
mkdir -p $out/bin $out/share/pixmaps
cp src/animbar $out/bin
cp ../icon/* $out/share/pixmaps
'';
meta = with lib; {
description = "Create your own animation on paper and transparancy";
longDescription = ''
Animbar lets you easily create your own animation on paper and
transparancy. From a set of input images two output images are
computed, that are printed one on paper and one on
transparency. By moving the transparency over the paper you
create a fascinating animation effect. This kind of animation
technique is hundreds of years old and known under several
names: picket fence animation, barrier grid animation, Moiré
animation, to name a few.
'';
homepage = "http://animbar.mnim.org";
maintainers = with maintainers; [ leenaars ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View File

@ -1,23 +1,34 @@
{ lib, stdenv, fetchurl, dos2unix, which, qt, Carbon }:
{ stdenv
, lib
, fetchgit
, dos2unix
, qtbase
, qttools
, qtx11extras
, wrapQtAppsHook
, cmake }:
stdenv.mkDerivation rec {
pname = "qscreenshot";
version = "1.0";
version = "unstable-2021-10-18";
src = fetchurl {
url = "mirror://sourceforge/qscreenshot/qscreenshot-${version}-src.tar.gz";
sha256 = "1spj5fg2l8p5bk81xsv6hqn1kcrdiy54w19jsfb7g5i94vcb1pcx";
src = fetchgit {
url = "https://git.code.sf.net/p/qscreenshot/code";
rev = "e340f06ae2f1a92a353eaa68e103d1c840adc12d";
sha256 = "0mdiwn74vngiyazr3lq72f3jnv5zw8wyd2dw6rik6dbrvfs69jig";
};
buildInputs = [ dos2unix which qt ]
++ lib.optional stdenv.isDarwin Carbon;
# Remove carriage returns that cause /bin/sh to abort
preConfigure = ''
dos2unix configure
sed -i "s|lrelease-qt4|lrelease|" src/src.pro
'';
preConfigure = "cd qScreenshot";
nativeBuildInputs = [
cmake
qttools
wrapQtAppsHook
];
buildInputs = [
qtbase
qtx11extras
];
meta = with lib; {
description = "Simple creation and editing of screenshots";
homepage = "https://sourceforge.net/projects/qscreenshot/";

View File

@ -1,26 +0,0 @@
{ lib, stdenv, fetchFromGitHub, qt4, cmake, libjpeg, libtiff, boost }:
stdenv.mkDerivation rec {
pname = "scantailor";
version = "0.9.12.1";
src = fetchFromGitHub {
owner = "scantailor";
repo = "scantailor";
rev = "RELEASE_${lib.replaceStrings ["."] ["_"] version}";
sha256 = "sha256-Jn8+X737vwaE0ZPYdQv/1SocmWFA74XL90IW8yNiafA=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 libjpeg libtiff boost ];
meta = {
homepage = "https://scantailor.org/";
description = "Interactive post-processing tool for scanned pages";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.viric ];
platforms = lib.platforms.gnu ++ lib.platforms.linux;
};
}

View File

@ -10,10 +10,15 @@ python3.pkgs.buildPythonApplication rec {
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
nativeBuildInputs = [
python3.pkgs.setuptools-scm
nativeBuildInputs = with python3.pkgs; [
setuptools-scm
sphinxHook
sphinx-autoapi
sphinx-autodoc-typehints
];
sphinxBuilders = [ "man" ];
propagatedBuildInputs = with python3.pkgs; [
atomicwrites
configobj
@ -40,5 +45,6 @@ python3.pkgs.buildPythonApplication rec {
description = "Console carddav client";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ matthiasbeyer ];
mainProgram = "khard";
};
}

View File

@ -51,7 +51,7 @@ in buildFHSEnv {
fluidsynth hidapi mesa libdrm
# MAME
qt48 fontconfig SDL2_ttf
fontconfig SDL2_ttf
# Mednafen
freeglut mesa_glu
@ -65,9 +65,6 @@ in buildFHSEnv {
# Mupen64Plus
boost dash
# Osmose
qt4
# Overwatch 2
libunwind

View File

@ -1,32 +0,0 @@
{ lib, stdenv, fetchurl, qt4, qmake4Hook }:
stdenv.mkDerivation rec {
pname = "navipowm";
version = "0.2.4";
src = fetchurl {
url = "mirror://sourceforge/navipowm/NaviPOWM-${version}.tar.gz";
sha256 = "1kdih8kwpgcgfh6l6njkr9gq2j5hv39xvzmzgvhip553kn6bss7b";
};
preConfigure = ''
cd Qt/KDevelop
'';
installPhase = ''
mkdir -p $out/bin $out/share/navipowm-${version}/Icons
cp bin/NaviPOWM $out/bin
cp ../../common/Config/navipowm.ini $out/share/navipowm-${version}
cp ../../common/Images/* $out/share/navipowm-${version}
'';
buildInputs = [ qt4 ];
nativeBuildInputs = [ qmake4Hook ];
meta = {
homepage = "https://navipowm.sourceforge.net/";
description = "Car navigation system";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ ];
platforms = with lib.platforms; linux;
};
}

View File

@ -1,31 +0,0 @@
{ lib, stdenv, fetchurl, qmake4Hook, unzip, qt4 }:
stdenv.mkDerivation rec {
pname = "qmetro";
version = "0.7.1";
src = fetchurl {
url = "mirror://sourceforge/qmetro/qmetro-${version}.zip";
sha256 = "1zdj87lzcr43gr2h05g17z31pd22n5kxdwbvx7rx656rmhv0sjq5";
};
nativeBuildInputs = [ qmake4Hook unzip ];
buildInputs = [ qt4 ];
postPatch = ''
sed -e 's#Exec=/usr/bin/qmetro#Exec=qmetro#' -i rc/qmetro.desktop
echo 'LIBS += -lz' >> qmetro.pro
'';
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://sourceforge.net/projects/qmetro/";
description = "Worldwide transit maps viewer";
license = licenses.gpl3;
maintainers = with maintainers; [ orivej ];
platforms = platforms.unix;
};
}

View File

@ -1,34 +0,0 @@
{ lib, stdenv, fetchFromGitHub, cmake, qt4, qscintilla-qt4 }:
stdenv.mkDerivation rec {
pname = "sqliteman";
version = "1.2.0";
src = fetchFromGitHub {
repo = "sqliteman";
owner = "pvanek";
rev = version;
sha256 = "1blzyh1646955d580f71slgdvz0nqx0qacryx0jc9w02yrag17cs";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 qscintilla-qt4 ];
prePatch = ''
sed -i 's,m_file(0),m_file(QString()),' Sqliteman/sqliteman/main.cpp
'';
preConfigure = ''
cd Sqliteman
sed -i 's,/usr/include/Qsci,${qscintilla-qt4}/include/Qsci,' cmake/modules/FindQScintilla.cmake
sed -i 's,PATHS ''${QT_LIBRARY_DIR},PATHS ${qscintilla-qt4}/libs,' cmake/modules/FindQScintilla.cmake
'';
meta = with lib; {
description = "A simple but powerful Sqlite3 GUI database manager";
homepage = "http://sqliteman.yarpen.cz/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.eikek ];
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, lib, qt4, openssl, pkg-config }:
{ stdenv, fetchurl, lib, openssl, pkg-config }:
stdenv.mkDerivation rec {
pname = "yate";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
# TODO zaptel ? postgres ?
nativeBuildInputs = [ pkg-config ];
buildInputs = [ qt4 openssl ];
buildInputs = [ openssl ];
# /dev/null is used when linking which is a impure path for the wrapper
postPatch =

File diff suppressed because it is too large Load Diff

View File

@ -12,20 +12,20 @@
rustPlatform.buildRustPackage rec {
pname = "habitat";
version = "1.6.652";
version = "1.6.848";
src = fetchFromGitHub {
owner = "habitat-sh";
repo = "habitat";
rev = version;
hash = "sha256-aWQ4A8NxTOauwad1q58Q4IFDUImX/L/4YTCeVLaq8gw=";
hash = "sha256-oK9ZzENwpEq6W1qnhSgkr7Rhy7Fxt/BS4U5nxecyPu8=";
};
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"clap-2.33.1" = "sha256-ixyNr91VNB2ce2cIr0CdPmvKYRlckhKLeaSbqxouIAY=";
"configopt-0.1.0" = "sha256-DvpC4WDIzknN5A6+68H7p8bG5lwZ2f+kc9yYhTl16ZM=";
"configopt-0.1.0" = "sha256-76MeSoRD796ZzBqX3CoDJnunekVo2XfctpxrpspxmAU=";
"rants-0.6.0" = "sha256-B8uDoiqddCki3j7aC8kilEcmJjvB4ICjZjjTun2UEkY=";
"retry-1.0.0" = "sha256-ZaHnzOCelV4V0+MTIbH3DXxdz8QZVgcMq2YeV0S6X6o=";
"structopt-0.3.15" = "sha256-0vIX7J7VktKytT3ZnOm45qPRMHDkdJg20eU6pZBIH+Q=";
@ -59,7 +59,7 @@ rustPlatform.buildRustPackage rec {
homepage = "https://www.habitat.sh";
changelog = "https://github.com/habitat-sh/habitat/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ rushmorem ];
maintainers = with maintainers; [ rushmorem qjoly ];
mainProgram = "hab";
platforms = [ "x86_64-linux" ];
};

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "k8sgpt";
version = "0.3.13";
version = "0.3.14";
src = fetchFromGitHub {
owner = "k8sgpt-ai";
repo = "k8sgpt";
rev = "v${version}";
hash = "sha256-JXKM39tODHg5jRE5p0u5xETPFDZrQgFri3FrYJFVUZU=";
hash = "sha256-n1bWAx3BQxgiuhDdTb2HU1DSEBQqOP/ek9bJBZlbWEM=";
};
vendorHash = "sha256-L8/GLhjCI93R9S1fE+wgXyPObIXRMkj5MF71iWAZVQk=";
vendorHash = "sha256-FUgIziVI99kL3dLJLqVFPEmQqLKXxAMie2q46sp0PeU=";
CGO_ENABLED = 0;

View File

@ -9,13 +9,13 @@
buildGoModule rec {
pname = "kaniko";
version = "1.14.0";
version = "1.15.0";
src = fetchFromGitHub {
owner = "GoogleContainerTools";
repo = "kaniko";
rev = "v${version}";
hash = "sha256-sDZg2eKTwy3Y7Uaky4rz7EuU1EKY/S4VAEaj7GMN6Uo=";
hash = "sha256-PNAqdeB/ya3i1hRbagpfmpwS0tNRZbWBm9YIXME1HMc=";
};
vendorHash = null;

View File

@ -8,13 +8,13 @@
buildGoModule rec {
pname = "karmor";
version = "0.13.13";
version = "0.13.15";
src = fetchFromGitHub {
owner = "kubearmor";
repo = "kubearmor-client";
rev = "v${version}";
hash = "sha256-3lgbJ6bxKirb2KR9e4yI0gqkXfpgCdnX0smyMS5BBKA=";
hash = "sha256-irpfZFswZjowKDnHmoutTo6960jl5C3Dq+NurjOk3p8=";
};
vendorHash = "sha256-raMR27DqgT/Hjp3yAMAKLbfOjIZs0K0XsncgmIP6vxk=";

View File

@ -5,13 +5,13 @@
buildGoModule rec {
pname = "yor";
version = "0.1.183";
version = "0.1.185";
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = pname;
rev = version;
hash = "sha256-OMwDqBZPzjeG47CKk/heRo0JxyN7E7qh/dnV8cAzUfo=";
hash = "sha256-5CBOLbqsEVzYyU67c7QTGTe471XQlEC/826wYCPHzEo=";
};
vendorHash = "sha256-ZeTjGmlu8LndD2DKNncPzlpECdvkOjfwaVvV6S3sL9E=";

View File

@ -1,12 +1,12 @@
{ callPackage }: builtins.mapAttrs (pname: attrs: callPackage ./generic.nix (attrs // { inherit pname; })) {
signal-desktop = {
dir = "Signal";
version = "6.27.1";
hash = "sha256-nEOt6bep6SqhAab8yD9NlRrDGU2IvZeOxSqPj2u1bio=";
version = "6.29.1";
hash = "sha256-QtQVH8cs42vwzJNiq6klaSQO2pmB80OYjzAR4Bibb/s";
};
signal-desktop-beta = {
dir = "Signal Beta";
version = "6.24.0-beta.1";
hash = "sha256-tA1xsgtAeOn0c0HcZutj+Pqrsr0JV5bQOnknH4t/QkY=";
version = "6.30.0-beta.2";
hash = "sha256-EMgstKlHA6ilSlbDmsPAu/jNC21XGzF7LS7QzWcK2F0";
};
}

View File

@ -1,52 +0,0 @@
{ lib, stdenv, fetchurl, pkg-config, freetype, lcms, libtiff, libxml2
, libart_lgpl, qt4, python2, cups, fontconfig, libjpeg
, zlib, libpng, xorg, cairo, podofo, hunspell, boost, cmake, imagemagick, ghostscript }:
let
icon = fetchurl {
url = "https://gist.githubusercontent.com/ejpcmac/a74b762026c9bc4000be624c3d085517/raw/18edc497c5cb6fdeef1c8aede37a0ee68413f9d3/scribus-icon-centered.svg";
sha256 = "0hq3i7c2l50445an9glhhg47kj26y16svfajc6naqn307ph9vzc3";
};
pythonEnv = python2.withPackages(ps: [ps.tkinter ps.pillow]);
in stdenv.mkDerivation rec {
pname = "scribus";
version = "1.4.8";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.xz";
sha256 = "0bq433myw6h1siqlsakxv6ghb002rp3mfz5k12bg68s0k6skn992";
};
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = with xorg;
[ freetype lcms libtiff libxml2 libart_lgpl qt4
pythonEnv cups fontconfig
libjpeg zlib libpng podofo hunspell cairo
boost # for internal 2geom library
libXaw libXext libX11 libXtst libXi libXinerama
libpthreadstubs libXau libXdmcp
imagemagick # To build the icon
];
postPatch = ''
substituteInPlace scribus/util_ghostscript.cpp \
--replace 'QString gsName("gs");' \
'QString gsName("${ghostscript}/bin/gs");'
'';
postInstall = ''
for i in 16 24 48 64 96 128 256 512; do
mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
convert -background none -resize ''${i}x''${i} ${icon} $out/share/icons/hicolor/''${i}x''${i}/apps/scribus.png
done
'';
meta = {
maintainers = [ lib.maintainers.marcweber ];
platforms = lib.platforms.linux;
description = "Desktop Publishing (DTP) and Layout program for Linux";
homepage = "https://www.scribus.net";
license = lib.licenses.gpl2;
};
}

View File

@ -1,5 +1,6 @@
{ lib, mkDerivation, fetchzip, qtbase, qttools, cmake, sqlite }:
mkDerivation rec {
{ stdenv, lib, fetchzip, qtbase, qttools, cmake, sqlite, wrapQtAppsHook }:
stdenv.mkDerivation rec {
pname = "tagainijisho";
version = "1.2.2";
@ -8,8 +9,8 @@ mkDerivation rec {
hash = "sha256-CTDMoYGbVE4W0SDerW//aAdUVsySWFQycSy0I3a9+94=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qtbase qttools sqlite ];
nativeBuildInputs = [ qttools cmake wrapQtAppsHook ];
buildInputs = [ qtbase sqlite ];
cmakeFlags = [
"-DEMBED_SQLITE=OFF"

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "treesheets";
version = "unstable-2023-08-17";
version = "unstable-2023-08-31";
src = fetchFromGitHub {
owner = "aardappel";
repo = "treesheets";
rev = "e88dd955bf1346b560da3c34234f9206463baf0b";
sha256 = "DOvCJiZ76CzlJF6f0V8ABHi5uUJo4XCzJDUoikKkpMI=";
rev = "7f68776a9e072520c735479929efecd0d58f362d";
sha256 = "AO0+Jqt2bEr3pwv417wey9zZWNX9rg0kDoO7qT+YPDg=";
};
nativeBuildInputs = [

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, libpulseaudio, libX11 }:
{ lib, stdenv, fetchFromGitHub, cmake, libpulseaudio, libX11, makeWrapper, sox }:
stdenv.mkDerivation rec {
pname = "multimon-ng";
@ -13,7 +13,11 @@ stdenv.mkDerivation rec {
buildInputs = lib.optionals stdenv.isLinux [ libpulseaudio libX11 ];
nativeBuildInputs = [ cmake ];
nativeBuildInputs = [ cmake makeWrapper ];
postInstall = ''
wrapProgram $out/bin/multimon-ng --prefix PATH : "${lib.makeBinPath [sox]}"
'';
meta = with lib; {
description = "Multimon is a digital baseband audio protocol decoder";

View File

@ -1,30 +0,0 @@
{ lib, stdenv, fetchurl, cmake, qt4, zlib, eigen, openbabel, pkg-config, libGLU, libGL, libX11, doxygen }:
stdenv.mkDerivation rec {
pname = "avogadro";
version = "1.1.1";
src = fetchurl {
url = "mirror://sourceforge/avogadro/avogadro-${version}.tar.bz2";
sha256 = "050ag9p4vg7jg8hj1wqfv7lsm6ar2isxjw2vw85s49vsl7g7nvzy";
};
buildInputs = [ qt4 eigen zlib openbabel libGL libGLU libX11 ];
nativeBuildInputs = [ cmake pkg-config doxygen ];
env.NIX_CFLAGS_COMPILE = "-include ${libGLU.dev}/include/GL/glu.h";
patches = [
(fetchurl {
url = "https://data.gpo.zugaina.org/fusion809/sci-chemistry/avogadro/files/avogadro-1.1.0-xlibs.patch";
sha256 = "1p113v19z3zwr9gxj2k599f8p97a8rwm93pa4amqvd0snn31mw0k";
})
];
meta = with lib; {
description = "Molecule editor and visualizer";
maintainers = with maintainers; [ danielbarter ];
platforms = platforms.mesaPlatforms;
};
}

View File

@ -1,91 +1,98 @@
{ lib
, stdenv
, python3
, fetchPypi
, fetchFromBitbucket
, fetchpatch
, substituteAll
, geos
, buildPythonApplication
, pyqt5
, matplotlib
, numpy
, cycler
, python-dateutil
, kiwisolver
, six
, setuptools
, dill
, rtree
, pyopengl
, vispy
, ortools
, svg-path
, simplejson
, shapely
, freetype-py
, fonttools
, rasterio
, lxml
, ezdxf
, qrcode
, reportlab
, svglib
, gdal
, pyserial
, python3
}:
let
python = python3.override {
packageOverrides = self: super: {
shapely = super.shapely.overridePythonAttrs (old: rec {
version = "1.8.4";
src = fetchPypi {
pname = "Shapely";
inherit version;
hash = "sha256-oZXlHKr6IYKR8suqP+9p/TNTyT7EtlsqRyLEz0DDGYw=";
};
# Environment variable used in shapely/_buildcfg.py
GEOS_LIBRARY_PATH = "${geos}/lib/libgeos_c${stdenv.hostPlatform.extensions.sharedLibrary}";
patches = [
# Patch to search form GOES .so/.dylib files in a Nix-aware way
(substituteAll {
src = ./shapely-library-paths.patch;
libgeos_c = GEOS_LIBRARY_PATH;
libc = lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace 'setuptools<64' 'setuptools'
'';
});
};
};
in
python.pkgs.buildPythonApplication rec {
buildPythonApplication rec {
pname = "flatcam";
version = "8.5";
version = "unstable-2022-02-02";
src = fetchFromBitbucket {
owner = "jpcgt";
repo = pname;
rev = "533afd6a1772857cb633c011b5e0a15b60b1e92e"; # 8.5 with Red Hat packaging.
sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m";
rev = "ebf5cb9e3094362c4b0774a54cf119559c02211d"; # beta branch as of 2022-02-02
hash = "sha256-QKkBPEM+HVYmSZ83b4JRmOmCMp7C3EUqbJKPqUXMiKE=";
};
propagatedBuildInputs = with python.pkgs; [
format = "other";
dontBuild = true;
propagatedBuildInputs = [
pyqt5
matplotlib
numpy
packaging
pyqt4
rtree
scipy
setuptools
shapely
simplejson
cycler
python-dateutil
kiwisolver
six
setuptools
dill
rtree
pyopengl
vispy
ortools
svg-path
simplejson
shapely
freetype-py
fonttools
rasterio
lxml
ezdxf
qrcode
reportlab
svglib
gdal
pyserial
];
packaging_fix_pull_request_patch = fetchpatch {
name = "packaging_fix_pull_request.patch";
url = "https://bitbucket.org/trepetti/flatcam/commits/5591ed889d1f48a5190fe237b562cb932cb5876c/raw";
sha256 = "19rhjdrf1n1q29cgpcry6pl2kl90zq0d613hhkwdir9bhq5bkknp";
};
preInstall = ''
patchShebangs .
patches = [
packaging_fix_pull_request_patch
./release.patch
];
sed -i "s|/usr/local/bin|$out/bin|" Makefile
postPatch = ''
substituteInPlace setup.py --replace "'shapely>=1.3'" "'shapely>=1.3',"
mkdir -p $out/share/{flatcam,applications}
mkdir -p $out/bin
'';
# Only non-GUI tests can be run deterministically in the Nix build environment.
checkPhase = ''
python -m unittest tests.test_excellon
python -m unittest tests.test_gerber_buffer
python -m unittest tests.test_paint
python -m unittest tests.test_pathconnect
installFlags = [
"USER_ID=0"
"LOCAL_PATH=/build/source/."
"INSTALL_PATH=${placeholder "out"}/share/flatcam"
"APPS_PATH=${placeholder "out"}/share/applications"
];
postInstall = ''
sed -i "s|python3|${python3.withPackages (_: propagatedBuildInputs)}/bin/python3|" $out/bin/flatcam-beta
mv $out/bin/flatcam{-beta,}
'';
meta = with lib; {

View File

@ -1,13 +0,0 @@
diff --git a/FlatCAMVersion.py b/FlatCAMVersion.py
index ba9e04a5..2c64d5a6 100644
--- a/FlatCAMVersion.py
+++ b/FlatCAMVersion.py
@@ -16,7 +16,7 @@ version = {
"number": 8.5,
"date": (2016, 7, 1), # Year, Month, Day
"name": None,
- "release": False,
+ "release": True,
}

View File

@ -1,28 +0,0 @@
{ lib, stdenv, fetchurl, qt4, cmake, graphviz, pkg-config }:
stdenv.mkDerivation rec {
pname = "qfsm";
version = "0.54.0";
src = fetchurl {
url = "mirror://sourceforge/qfsm/qfsm-${version}-Source.tar.bz2";
sha256 = "0rl7bc5cr29ng67yij4akciyid9z7npal812ys4c3m229vjvflrb";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ qt4 graphviz ];
patches = [
./drop-hardcoded-prefix.patch
./gcc6-fixes.patch
];
hardeningDisable = [ "format" ];
meta = {
description = "Graphical editor for finite state machines";
homepage = "https://qfsm.sourceforge.net/";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
};
}

View File

@ -1,20 +0,0 @@
diff -ubrw qfsm-0.53.0-Source-orig/CMakeLists.txt qfsm-0.53.0-Source-new/CMakeLists.txt
--- qfsm-0.53.0-Source-orig/CMakeLists.txt 2012-11-11 20:13:01.935856229 +0100
+++ qfsm-0.53.0-Source-new/CMakeLists.txt 2012-11-11 20:13:24.962930007 +0100
@@ -406,10 +406,6 @@
IF(UNIX AND NOT WIN32)
- SET(CMAKE_INSTALL_PREFIX "/usr")
-ENDIF(UNIX AND NOT WIN32)
-
-IF(UNIX AND NOT WIN32)
ADD_DEFINITIONS(-DQFSM_LANGUAGE_DIR="${CMAKE_INSTALL_PREFIX}/share/qfsm/")
ADD_DEFINITIONS(-DQFSM_HELP_DIR="${CMAKE_INSTALL_PREFIX}/share/doc/qfsm/")
ELSE(UNIX AND NOT WIN32)
@@ -472,5 +468,3 @@
)
ENDIF(UNIX AND NOT WIN32)
-
-

View File

@ -1,20 +0,0 @@
--- qfsm-0.54.0-Source-orig/src/FileIO.cpp 2015-01-02 19:01:46.000000000 +0100
+++ qfsm-0.54.0-Source/src/FileIO.cpp 2017-09-11 19:53:30.579488402 +0200
@@ -1617,7 +1617,7 @@
QString ext;
if (!imp)
- return FALSE;
+ return NULL;
Project* p=NULL;
importdlg->setAcceptMode(QFileDialog::AcceptOpen);
@@ -1641,7 +1641,7 @@
ifstream fin(act_importfile);
if (!fin)
- return FALSE;
+ return NULL;
emit setWaitCursor();

View File

@ -1,34 +0,0 @@
diff --git i/qucs-core/CMakeLists.txt w/qucs-core/CMakeLists.txt
index 2dbbd41..d174b50 100644
--- i/qucs-core/CMakeLists.txt
+++ w/qucs-core/CMakeLists.txt
@@ -158,26 +158,9 @@ ENDIF()
#
# Need Bison
-#
-# This is a HACK to get arround a PATH issue with Qt Creator on OSX.
-# It seams impossible to pass a custom PATH to Qt Creator on OSX, ie, cannot prepend `/usr/local/bin/` for intance.
-# The FIND_PACKAGE fails. For now we provide a fallback with a custom FIND_PROGRAM. The variable BISON_DIR is also available.
-IF(WIN32)
- FIND_PACKAGE(BISON 2.4 REQUIRED)
- IF(BISON_FOUND)
- #MESSAGE(STATUS "Found bison: ${BISON_EXECUTABLE} / Version: ${BISON_VERSION}" )
- ENDIF()
-ELSE() # Linux, OSX
- # use -DBISON_DIR=/path/ to provide the path to bison
- FIND_PROGRAM( BISON_EXECUTABLE bison
- PATHS /usr/local/bin/ /opt/local/bin/ /usr/bin ${BISON_DIR}
- DOC "bison path"
- NO_DEFAULT_PATH )
- IF(BISON_EXECUTABLE )
- MESSAGE(STATUS "Found bison: " ${BISON_EXECUTABLE})
- ELSE()
- MESSAGE(FATAL_ERROR "Unable to find bison. Try to provide -DBISON_DIR=[path]")
- ENDIF()
+FIND_PACKAGE(BISON 2.4 REQUIRED)
+IF(BISON_FOUND)
+ #MESSAGE(STATUS "Found bison: ${BISON_EXECUTABLE} / Version: ${BISON_VERSION}" )
ENDIF()
#

View File

@ -1,30 +0,0 @@
{lib, stdenv, fetchFromGitHub, flex, bison, qt4, libX11, cmake, gperf, adms }:
stdenv.mkDerivation rec {
version = "0.0.19";
pname = "qucs";
src = fetchFromGitHub {
owner = "Qucs";
repo = "qucs";
rev = "qucs-${version}";
sha256 = "106h3kjyg7c0hkmzkin7h8fcl32n60835121b2qqih8ixi6r5id6";
};
QTDIR=qt4;
patches = [
./cmakelists.patch
];
nativeBuildInputs = [ cmake flex bison ];
buildInputs = [ qt4 libX11 gperf adms ];
meta = {
description = "Integrated circuit simulator";
homepage = "https://qucs.sourceforge.net";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [viric];
platforms = with lib.platforms; linux;
};
}

View File

@ -55,6 +55,7 @@ let
"8.16.1".sha256 = "sha256-n7830+zfZeyYHEOGdUo57bH6bb2/SZs8zv8xJhV+iAc=";
"8.17.0".sha256 = "sha256-TGwm7S6+vkeZ8cidvp8pkiAd9tk008jvvPvYgfEOXhM=";
"8.17.1".sha256 = "sha256-x+RwkbxMg9aR0L3WSCtpIz8jwA5cJA4tXAtHMZb20y4=";
"8.18+rc1".sha256 = "sha256-TmV0lzfzhpSnBoVyfTfVFUyBrXpUWSnyN1Le7b8IPTs=";
};
releaseRev = v: "V${v}";
fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@ -73,7 +74,7 @@ let
'';
ocamlPackages = if customOCamlPackages != null then customOCamlPackages
else with versions; switch coq-version [
{ case = range "8.16" "8.17"; out = ocamlPackages_4_14; }
{ case = range "8.16" "8.18"; out = ocamlPackages_4_14; }
{ case = range "8.14" "8.15"; out = ocamlPackages_4_12; }
{ case = range "8.11" "8.13"; out = ocamlPackages_4_10; }
{ case = range "8.7" "8.10"; out = ocamlPackages_4_09; }

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "cvc5";
version = "1.0.6";
version = "1.0.7";
src = fetchFromGitHub {
owner = "cvc5";
repo = "cvc5";
rev = "cvc5-${version}";
hash = "sha256-pZiXAO92cwnYtaVMDFBEmk+NzDf4eKdc0eY0RltofPA=";
hash = "sha256-0uT2Lzz0ZbfNWZBptjaGI1fN0mMniBz41eEwipGc5fc=";
};
nativeBuildInputs = [ pkg-config cmake flex ];

View File

@ -10,19 +10,19 @@
, gtest
, uhdm
, antlr4
, flatbuffers
, capnproto
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "surelog";
version = "1.57";
version = "1.73";
src = fetchFromGitHub {
owner = "chipsalliance";
repo = pname;
rev = "v${version}";
hash = "sha256-Gty0OSNG5Nonyw7v2KiKP51LhiugMY7uqI6aJ6as0SQ=";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-z47Eqs3fP53pbEb3s66CqMiO4UpEwox+fKakxtRBakQ=";
fetchSubmodules = false; # we use all dependencies from nix
};
nativeBuildInputs = [
@ -40,14 +40,13 @@ stdenv.mkDerivation rec {
buildInputs = [
libuuid
gperftools
flatbuffers
uhdm
capnproto
antlr4.runtime.cpp
];
cmakeFlags = [
"-DSURELOG_USE_HOST_FLATBUFFERS=On"
"-DSURELOG_USE_HOST_CAPNP=On"
"-DSURELOG_USE_HOST_UHDM=On"
"-DSURELOG_USE_HOST_GTEST=On"
"-DSURELOG_USE_HOST_ANTLR=On"
@ -66,7 +65,8 @@ stdenv.mkDerivation rec {
description = "SystemVerilog 2017 Pre-processor, Parser, Elaborator, UHDM Compiler";
homepage = "https://github.com/chipsalliance/Surelog";
license = lib.licenses.asl20;
mainProgram = "surelog";
maintainers = with lib.maintainers; [ matthuszagh ];
platforms = lib.platforms.all;
};
}
})

View File

@ -7,15 +7,16 @@
, gtest
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "UHDM";
version = "1.57";
version = "1.73";
src = fetchFromGitHub {
owner = "chipsalliance";
repo = pname;
rev = "v${version}";
hash = "sha256-z3vURlKXCW5W2naVwJjBXcn94u80JsBxlUOIy9ylsJw=";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-VmRn51UrJTGEG4n2fi5kRv8khXakfGbqMtYPejsZCBI=";
fetchSubmodules = false; # we use all dependencies from nix
};
nativeBuildInputs = [
@ -43,4 +44,4 @@ stdenv.mkDerivation rec {
maintainers = with lib.maintainers; [ matthuszagh ];
platforms = lib.platforms.all;
};
}
})

View File

@ -1,60 +0,0 @@
{ lib, stdenv, fetchurl, rpmextract, makeWrapper, patchelf, qt4, zlib, libX11, libXt, libSM, libICE, libXext, libGLU, libGL }:
with lib;
stdenv.mkDerivation {
pname = "aliza";
version = "1.98.57";
src = fetchurl {
# See https://www.aliza-dicom-viewer.com/download
urls = [
"https://drive.google.com/uc?export=download&id=1-AXa3tjy_onecW2k7ftjAQl0KGTb0B1Y"
"https://web.archive.org/web/20210327224315/https://doc-0s-0s-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/1lgjid9ti29rdf5ebmd7o58iqhs3gfpo/1616884950000/16072287944266838401/*/1-AXa3tjy_onecW2k7ftjAQl0KGTb0B1Y?e=download"
];
sha256 = "01qk2gadmc24pmfdnmpiz7vgfiqkvhznyq9rsr153frscg76gc9b";
name = "aliza.rpm";
};
nativeBuildInputs = [ makeWrapper rpmextract ];
unpackCmd = "rpmextract $curSrc";
postPatch = ''
sed -i 's/^Exec.*$/Exec=aliza %F/' share/applications/aliza.desktop
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r bin share $out
runHook postInstall
'';
postInstall = let
libs = lib.makeLibraryPath [ qt4 zlib stdenv.cc.cc libSM libICE libX11 libXext libXt libGLU libGL ];
in ''
${patchelf}/bin/patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
$out/bin/aliza
${patchelf}/bin/patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
$out/bin/aliza-vtkvol
wrapProgram $out/bin/aliza \
--prefix LD_LIBRARY_PATH : ${libs}
wrapProgram $out/bin/aliza-vtkvol \
--prefix LD_LIBRARY_PATH : ${libs}
'';
meta = {
description = "Medical imaging software with 2D, 3D and 4D capabilities";
homepage = "https://www.aliza-dicom-viewer.com";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ mounium ];
platforms = platforms.linux;
};
}

View File

@ -2,7 +2,6 @@
, lib
, callPackage
, fetchurl
, fetchpatch
, makeWrapper
, cmake
, coreutils
@ -14,6 +13,7 @@
, gnugrep
, gnused
, gsl
, gtest
, lapack
, libX11
, libXpm
@ -23,7 +23,7 @@
, libGL
, libxcrypt
, libxml2
, llvm_9
, llvm_13
, lsof
, lz4
, xz
@ -55,23 +55,9 @@
, noSplash ? false
}:
let
_llvm_9 = llvm_9.overrideAttrs (prev: {
patches = (prev.patches or [ ]) ++ [
(fetchpatch {
url = "https://github.com/root-project/root/commit/a9c961cf4613ff1f0ea50f188e4a4b0eb749b17d.diff";
stripLen = 3;
hash = "sha256-LH2RipJICEDWOr7JzX5s0QiUhEwXNMFEJihYKy9qWpo=";
})
];
});
in
stdenv.mkDerivation rec {
pname = "root";
version = "6.26.10";
version = "6.28.06";
passthru = {
tests = import ./tests { inherit callPackage; };
@ -79,7 +65,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
hash = "sha256-jla+w5cQQBeqVPnrVU3noaE0R0/gs7sPQ6cPxPq9Yl8=";
hash = "sha256-rztnO5rKOTpcmuG/huqyZyqvGEG2WMXG56MKuTxYZTM=";
};
nativeBuildInputs = [ makeWrapper cmake pkg-config git ];
@ -97,10 +83,11 @@ stdenv.mkDerivation rec {
lapack
libxcrypt
libxml2
_llvm_9
llvm_13
lz4
xz
gsl
gtest
openblas
openssl
xxHash
@ -122,27 +109,16 @@ stdenv.mkDerivation rec {
patches = [
./sw_vers.patch
] ++ lib.optionals (python.pkgs.pythonAtLeast "3.11") [
# Fix build against Python 3.11
(fetchpatch {
url = "https://github.com/root-project/root/commit/484deb056dacf768aba4954073b41105c431bffc.patch";
hash = "sha256-4qur2e3SxMIPgOg4IjlvuULR2BObuP7xdvs+LmNT2/s=";
})
];
# Fix build against vanilla LLVM 9
postPatch = ''
sed \
-e '/#include "llvm.*RTDyldObjectLinkingLayer.h"/i#define private protected' \
-e '/#include "llvm.*RTDyldObjectLinkingLayer.h"/a#undef private' \
-i interpreter/cling/lib/Interpreter/IncrementalJIT.h
'';
preConfigure = ''
rm -rf builtins/*
substituteInPlace cmake/modules/SearchInstalledSoftware.cmake \
--replace 'set(lcgpackages ' '#set(lcgpackages '
substituteInPlace interpreter/llvm/src/tools/clang/tools/driver/CMakeLists.txt \
--replace 'add_clang_symlink(''${link} clang)' ""
# Don't require textutil on macOS
: > cmake/modules/RootCPack.cmake
@ -167,6 +143,8 @@ stdenv.mkDerivation rec {
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-Dbuiltin_llvm=OFF"
"-Dbuiltin_freetype=OFF"
"-Dbuiltin_gtest=OFF"
"-Dbuiltin_nlohmannjson=OFF"
"-Dbuiltin_openui5=OFF"
"-Dalien=OFF"
@ -240,23 +218,20 @@ stdenv.mkDerivation rec {
# but it also need to support Bash-less POSIX shell like dash,
# as they are mentioned in `thisroot.sh`.
# `thisroot.sh` would include commands `lsof` and `procps` since ROOT 6.28.
# See https://github.com/root-project/root/pull/10332
patchRcPathPosix "$out/bin/thisroot.sh" "${lib.makeBinPath [
coreutils # dirname tail
gnugrep # grep
gnused # sed
lsof # lsof # for ROOT (>=6.28)
lsof # lsof
man # manpath
procps # ps # for ROOT (>=6.28)
procps # ps
which # which
]}"
patchRcPathCsh "$out/bin/thisroot.csh" "${lib.makeBinPath [
coreutils
gnugrep
gnused
lsof # lsof # for ROOT (>=6.28)
lsof # lsof
man
which
]}"

View File

@ -1,33 +1,19 @@
{ fetchsvn, lib, stdenv, cmake, qt4, libGLU, libGL }:
{ stdenv, fetchFromGitLab, lib, cmake, qtbase, qttools, qtcharts, libGLU, libGL, glm, glew, wrapQtAppsHook }:
# ViTE 1.1 has several bugs, so use the SVN version.
let
rev = "1543";
externals = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/externals";
sha256 = "1a422n3dp72v4visq5b1i21cf8sj12903sgg5v2hah3sgk02dnyz";
inherit rev;
};
in
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "vite";
version = "1.2pre${rev}";
version = "unstable-2022-05-17";
src = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/trunk";
sha256 = "02479dv96h29d0w0svp42mjjrxhmv8lkkqp30w7mlx5gr2g0v7lf";
inherit rev;
src = fetchFromGitLab {
domain = "gitlab.inria.fr";
owner = "solverstack";
repo = pname;
rev = "6d497cc519fac623e595bd174e392939c4de845c";
hash = "sha256-Yf2jYALZplIXzVtd/sg6gzEYrZ+oU0zLG1ETd/hiTi0=";
};
preConfigure = ''
rm -rv externals
ln -sv "${externals}" externals
'';
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 libGLU libGL ];
NIX_LDFLAGS = "-lGLU";
nativeBuildInputs = [ cmake qttools wrapQtAppsHook ];
buildInputs = [ qtbase qtcharts libGLU libGL glm glew ];
meta = {
description = "Visual Trace Explorer (ViTE), a tool to visualize execution traces";

View File

@ -89,9 +89,9 @@ dependencies = [
[[package]]
name = "addr2line"
version = "0.20.0"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
dependencies = [
"gimli",
]
@ -115,18 +115,18 @@ dependencies = [
[[package]]
name = "aho-corasick"
version = "1.0.2"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
dependencies = [
"memchr",
]
[[package]]
name = "android-activity"
version = "0.4.2"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40bc1575e653f158cbdc6ebcd917b9564e66321c5325c232c3591269c257be69"
checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0"
dependencies = [
"android-properties",
"bitflags 1.3.2",
@ -163,9 +163,9 @@ dependencies = [
[[package]]
name = "anyhow"
version = "1.0.72"
version = "1.0.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
[[package]]
name = "arboard"
@ -199,7 +199,7 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
[[package]]
name = "asusctl"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"asusd",
"cargo-husky",
@ -218,7 +218,7 @@ dependencies = [
[[package]]
name = "asusd"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"async-trait",
"cargo-husky",
@ -242,7 +242,7 @@ dependencies = [
[[package]]
name = "asusd-user"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"config-traits",
@ -323,15 +323,15 @@ dependencies = [
"polling",
"rustix 0.37.23",
"slab",
"socket2",
"socket2 0.4.9",
"waker-fn",
]
[[package]]
name = "async-lock"
version = "2.7.0"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7"
checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
dependencies = [
"event-listener",
]
@ -374,7 +374,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -385,13 +385,13 @@ checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
[[package]]
name = "async-trait"
version = "0.1.72"
version = "0.1.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09"
checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -426,9 +426,9 @@ checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
[[package]]
name = "atomic_refcell"
version = "0.1.10"
version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31"
checksum = "112ef6b3f6cb3cb6fc5b6b494ef7a848492cff1ab0ef4de10b0f7d572861c905"
[[package]]
name = "atspi"
@ -471,9 +471,9 @@ checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973"
[[package]]
name = "backtrace"
version = "0.3.68"
version = "0.3.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
dependencies = [
"addr2line",
"cc",
@ -486,9 +486,9 @@ dependencies = [
[[package]]
name = "base64"
version = "0.13.1"
version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
[[package]]
name = "bindgen"
@ -518,9 +518,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.3.3"
version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
dependencies = [
"serde",
]
[[package]]
name = "block"
@ -594,7 +597,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -656,11 +659,12 @@ checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad"
[[package]]
name = "cc"
version = "1.0.79"
version = "1.0.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
dependencies = [
"jobserver",
"libc",
]
[[package]]
@ -680,9 +684,9 @@ dependencies = [
[[package]]
name = "cfg-expr"
version = "0.15.3"
version = "0.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c"
checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
dependencies = [
"smallvec",
"target-lexicon",
@ -767,7 +771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f76990911f2267d837d9d0ad060aa63aaad170af40904b29461734c339030d4d"
dependencies = [
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -781,7 +785,7 @@ dependencies = [
[[package]]
name = "config-traits"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"log",
@ -869,6 +873,12 @@ dependencies = [
"typenum",
]
[[package]]
name = "deranged"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
[[package]]
name = "derivative"
version = "2.2.0"
@ -1079,7 +1089,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -1119,9 +1129,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "errno"
version = "0.3.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
dependencies = [
"errno-dragonfly",
"libc",
@ -1190,9 +1200,9 @@ dependencies = [
[[package]]
name = "flate2"
version = "1.0.26"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010"
dependencies = [
"crc32fast",
"miniz_oxide 0.7.1",
@ -1286,7 +1296,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -1420,9 +1430,9 @@ dependencies = [
[[package]]
name = "gimli"
version = "0.27.3"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
[[package]]
name = "gio"
@ -1544,9 +1554,9 @@ dependencies = [
[[package]]
name = "glutin"
version = "0.30.9"
version = "0.30.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23b0385782048be65f0a9dd046c469d6a758a53fe1aa63a8111dea394d2ffa2f"
checksum = "8fc93b03242719b8ad39fb26ed2b01737144ce7bd4bfc7adadcef806596760fe"
dependencies = [
"bitflags 1.3.2",
"cfg_aliases",
@ -1579,9 +1589,9 @@ dependencies = [
[[package]]
name = "glutin_egl_sys"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b3bcbddc51573b977fc6dca5d93867e4f29682cdbaf5d13e48f4fa4346d4d87"
checksum = "af784eb26c5a68ec85391268e074f0aa618c096eadb5d6330b0911cf34fe57c5"
dependencies = [
"gl_generator",
"windows-sys 0.45.0",
@ -1776,9 +1786,9 @@ dependencies = [
[[package]]
name = "inotify"
version = "0.10.1"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ff335215fb898bf09c45833b657233d8c0b699a616d7dd64d0513080da270ab6"
checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc"
dependencies = [
"bitflags 1.3.2",
"futures-core",
@ -1826,7 +1836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
dependencies = [
"hermit-abi",
"rustix 0.38.4",
"rustix 0.38.9",
"windows-sys 0.48.0",
]
@ -1983,9 +1993,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]]
name = "linux-raw-sys"
version = "0.4.3"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
[[package]]
name = "lock_api"
@ -1999,15 +2009,15 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.19"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
[[package]]
name = "logind-zbus"
version = "3.1.1"
version = "3.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14b36b364be05220b24411a1c1a1ee4df0ba77b09c9880e70e5f4c16ebdec157"
checksum = "c07a2542f6e91ea92780158654852190edb2ba0b232d9d00d649d0c691cb7eb3"
dependencies = [
"serde",
"zbus",
@ -2015,9 +2025,9 @@ dependencies = [
[[package]]
name = "mac-notification-sys"
version = "0.5.8"
version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abc434554ad0e640d772f7f262aa28e61d485212533d3673abe5f3d1729bd42a"
checksum = "9402858e87f85f88bf518bd2e68450640df1c99b1ddb3ea28c4d5d823bb54cdd"
dependencies = [
"cc",
"dirs-next",
@ -2274,7 +2284,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -2340,9 +2350,9 @@ dependencies = [
[[package]]
name = "object"
version = "0.31.1"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe"
dependencies = [
"memchr",
]
@ -2355,9 +2365,9 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
[[package]]
name = "orbclient"
version = "0.3.45"
version = "0.3.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1"
checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f"
dependencies = [
"redox_syscall 0.3.5",
]
@ -2433,7 +2443,7 @@ dependencies = [
"libc",
"redox_syscall 0.3.5",
"smallvec",
"windows-targets 0.48.1",
"windows-targets 0.48.5",
]
[[package]]
@ -2456,9 +2466,9 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
[[package]]
name = "pin-project-lite"
version = "0.2.10"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
[[package]]
name = "pin-utils"
@ -2480,9 +2490,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
[[package]]
name = "png"
version = "0.17.9"
version = "0.17.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64"
dependencies = [
"bitflags 1.3.2",
"crc32fast",
@ -2577,9 +2587,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.32"
version = "1.0.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
dependencies = [
"proc-macro2",
]
@ -2651,9 +2661,9 @@ dependencies = [
[[package]]
name = "regex"
version = "1.9.1"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
dependencies = [
"aho-corasick",
"memchr",
@ -2663,9 +2673,9 @@ dependencies = [
[[package]]
name = "regex-automata"
version = "0.3.3"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
dependencies = [
"aho-corasick",
"memchr",
@ -2680,7 +2690,7 @@ checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
[[package]]
name = "rog-control-center"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"asusd",
"cargo-husky",
@ -2713,7 +2723,7 @@ dependencies = [
[[package]]
name = "rog_anime"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"gif",
@ -2730,7 +2740,7 @@ dependencies = [
[[package]]
name = "rog_aura"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"log",
@ -2744,7 +2754,7 @@ dependencies = [
[[package]]
name = "rog_dbus"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"rog_anime",
@ -2756,7 +2766,7 @@ dependencies = [
[[package]]
name = "rog_platform"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"concat-idents",
@ -2769,26 +2779,26 @@ dependencies = [
"serde_derive",
"sysfs-class",
"typeshare",
"udev 0.7.0",
"udev",
"zbus",
]
[[package]]
name = "rog_profiles"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"cargo-husky",
"log",
"serde",
"serde_derive",
"typeshare",
"udev 0.7.0",
"udev",
"zbus",
]
[[package]]
name = "rog_simulators"
version = "4.7.0-RC3"
version = "4.7.1"
dependencies = [
"glam",
"log",
@ -2799,20 +2809,21 @@ dependencies = [
[[package]]
name = "ron"
version = "0.8.0"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff"
checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
dependencies = [
"base64",
"bitflags 1.3.2",
"bitflags 2.4.0",
"serde",
"serde_derive",
]
[[package]]
name = "rusb"
version = "0.9.2"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44a8c36914f9b1a3be712c1dfa48c9b397131f9a75707e570a391735f785c5d1"
checksum = "45fff149b6033f25e825cbb7b2c625a11ee8e6dac09264d49beb125e39aa97bf"
dependencies = [
"libc",
"libusb1-sys",
@ -2855,14 +2866,14 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.38.4"
version = "0.38.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
checksum = "9bfe0f2582b4931a45d1fa608f8a8722e8b3c7ac54dd6d5f3b3212791fedef49"
dependencies = [
"bitflags 2.3.3",
"bitflags 2.4.0",
"errno",
"libc",
"linux-raw-sys 0.4.3",
"linux-raw-sys 0.4.5",
"windows-sys 0.48.0",
]
@ -2937,29 +2948,29 @@ checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
[[package]]
name = "serde"
version = "1.0.174"
version = "1.0.188"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b88756493a5bd5e5395d53baa70b194b05764ab85b59e43e4b8f4e1192fa9b1"
checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.174"
version = "1.0.188"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e5c3a298c7f978e53536f95a63bdc4c4a64550582f31a0359a9afda6aede62e"
checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
name = "serde_json"
version = "1.0.103"
version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
dependencies = [
"itoa",
"ryu",
@ -2968,13 +2979,13 @@ dependencies = [
[[package]]
name = "serde_repr"
version = "0.1.15"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e168eaaf71e8f9bd6037feb05190485708e019f4fd87d161b3c0a0d37daf85e5"
checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -3024,15 +3035,15 @@ dependencies = [
[[package]]
name = "simd-adler32"
version = "0.3.5"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
[[package]]
name = "slab"
version = "0.4.8"
version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
dependencies = [
"autocfg",
]
@ -3108,6 +3119,16 @@ dependencies = [
"winapi",
]
[[package]]
name = "socket2"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
dependencies = [
"libc",
"windows-sys 0.48.0",
]
[[package]]
name = "static_assertions"
version = "1.1.0"
@ -3128,8 +3149,8 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
[[package]]
name = "supergfxctl"
version = "5.1.1"
source = "git+https://gitlab.com/asus-linux/supergfxctl.git#fcba63b1a29284fc76da65e60751a33b81380259"
version = "5.1.2"
source = "git+https://gitlab.com/asus-linux/supergfxctl.git#c2a1bb3461c7abbcdabecdc463d668555120f953"
dependencies = [
"log",
"logind-zbus",
@ -3137,7 +3158,7 @@ dependencies = [
"serde_derive",
"serde_json",
"tokio",
"udev 0.6.3",
"udev",
"zbus",
]
@ -3154,9 +3175,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.27"
version = "2.0.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0"
checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
dependencies = [
"proc-macro2",
"quote",
@ -3187,9 +3208,9 @@ dependencies = [
[[package]]
name = "systemd-zbus"
version = "0.1.0"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abba675e441b13248eaf74f1acfacf64adc7b5c030f2f3ff66cc7e02b9a0c417"
checksum = "ffbb1b6ea6d96b14a7e94532711efc4106337fe8b1d6bdf8ba5318012a9fa7e3"
dependencies = [
"serde",
"zbus",
@ -3197,9 +3218,9 @@ dependencies = [
[[package]]
name = "target-lexicon"
version = "0.12.10"
version = "0.12.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e"
checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
[[package]]
name = "tauri-winrt-notification"
@ -3213,14 +3234,14 @@ dependencies = [
[[package]]
name = "tempfile"
version = "3.7.0"
version = "3.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998"
checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
dependencies = [
"cfg-if",
"fastrand 2.0.0",
"redox_syscall 0.3.5",
"rustix 0.38.4",
"rustix 0.38.9",
"windows-sys 0.48.0",
]
@ -3235,30 +3256,31 @@ dependencies = [
[[package]]
name = "thiserror"
version = "1.0.44"
version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.44"
version = "1.0.47"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
name = "time"
version = "0.3.23"
version = "0.3.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446"
checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07"
dependencies = [
"deranged",
"serde",
"time-core",
]
@ -3320,17 +3342,16 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.29.1"
version = "1.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
dependencies = [
"autocfg",
"backtrace",
"libc",
"mio",
"num_cpus",
"pin-project-lite",
"socket2",
"socket2 0.5.3",
"tokio-macros",
"windows-sys 0.48.0",
]
@ -3343,7 +3364,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -3386,7 +3407,7 @@ dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"winnow 0.5.0",
"winnow",
]
[[package]]
@ -3409,7 +3430,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.27",
"syn 2.0.29",
]
[[package]]
@ -3455,17 +3476,6 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "udev"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c960764f7e816eed851a96c364745d37f9fe71a2e7dba79fbd40104530b5dd0"
dependencies = [
"libc",
"libudev-sys",
"pkg-config",
]
[[package]]
name = "udev"
version = "0.7.0"
@ -3758,9 +3768,9 @@ dependencies = [
[[package]]
name = "webbrowser"
version = "0.8.10"
version = "0.8.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd222aa310eb7532e3fd427a5d7db7e44bc0b0cf1c1e21139c345325511a85b6"
checksum = "b2c79b77f525a2d670cb40619d7d9c673d09e0666f72c591ebd7861f84a87e57"
dependencies = [
"core-foundation",
"home",
@ -3849,7 +3859,7 @@ version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
dependencies = [
"windows-targets 0.48.1",
"windows-targets 0.48.5",
]
[[package]]
@ -3889,7 +3899,7 @@ version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
dependencies = [
"windows-targets 0.48.1",
"windows-targets 0.48.5",
]
[[package]]
@ -3909,17 +3919,17 @@ dependencies = [
[[package]]
name = "windows-targets"
version = "0.48.1"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
dependencies = [
"windows_aarch64_gnullvm 0.48.0",
"windows_aarch64_msvc 0.48.0",
"windows_i686_gnu 0.48.0",
"windows_i686_msvc 0.48.0",
"windows_x86_64_gnu 0.48.0",
"windows_x86_64_gnullvm 0.48.0",
"windows_x86_64_msvc 0.48.0",
"windows_aarch64_gnullvm 0.48.5",
"windows_aarch64_msvc 0.48.5",
"windows_i686_gnu 0.48.5",
"windows_i686_msvc 0.48.5",
"windows_x86_64_gnu 0.48.5",
"windows_x86_64_gnullvm 0.48.5",
"windows_x86_64_msvc 0.48.5",
]
[[package]]
@ -3930,9 +3940,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_msvc"
@ -3948,9 +3958,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
[[package]]
name = "windows_aarch64_msvc"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_i686_gnu"
@ -3966,9 +3976,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
[[package]]
name = "windows_i686_gnu"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_msvc"
@ -3984,9 +3994,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
[[package]]
name = "windows_i686_msvc"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_x86_64_gnu"
@ -4002,9 +4012,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
[[package]]
name = "windows_x86_64_gnu"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnullvm"
@ -4014,9 +4024,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_msvc"
@ -4032,9 +4042,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
[[package]]
name = "windows_x86_64_msvc"
version = "0.48.0"
version = "0.48.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "winit"
@ -4073,18 +4083,9 @@ dependencies = [
[[package]]
name = "winnow"
version = "0.4.1"
version = "0.5.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28"
dependencies = [
"memchr",
]
[[package]]
name = "winnow"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
dependencies = [
"memchr",
]
@ -4149,9 +4150,9 @@ checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1"
[[package]]
name = "zbus"
version = "3.13.1"
version = "3.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c3d77c9966c28321f1907f0b6c5a5561189d1f7311eea6d94180c6be9daab29"
checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
dependencies = [
"async-broadcast",
"async-executor",
@ -4162,6 +4163,7 @@ dependencies = [
"async-recursion",
"async-task",
"async-trait",
"blocking",
"byteorder",
"derivative",
"enumflags2",
@ -4189,16 +4191,15 @@ dependencies = [
[[package]]
name = "zbus_macros"
version = "3.13.1"
version = "3.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6e341d12edaff644e539ccbbf7f161601294c9a84ed3d7e015da33155b435af"
checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"regex",
"syn 1.0.109",
"winnow 0.4.1",
"zvariant_utils",
]

View File

@ -13,13 +13,13 @@
rustPlatform.buildRustPackage rec {
pname = "asusctl";
version = "4.7.0";
version = "4.7.1";
src = fetchFromGitLab {
owner = "asus-linux";
repo = "asusctl";
rev = version;
hash = "sha256-SZijR9PotN0O72laj+FBSCVMXLXadmLRhCSD4XqobD0=";
hash = "sha256-T/KAhKoxZRdbJspL+Fkos6YqVhiUxCtxbCSm+8CX1to=";
};
cargoHash = "";
@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
outputHashes = {
"ecolor-0.21.0" = "sha256-m7eHX6flwO21umtx3dnIuVUnNsEs3ZCyOk5Vvp/lVfI=";
"notify-rust-4.6.0" = "sha256-jhCgisA9f6AI9e9JQUYRtEt47gQnDv5WsdRKFoKvHJs=";
"supergfxctl-5.1.1" = "sha256-H00QHNILEjOtavXdj4Jd+rdLprJpVSlSVV3qkTeknzQ=";
"supergfxctl-5.1.2" = "sha256-1XCIltd7o+Bc+UXmeuPAXdPKU86UP0p+Qh0gTZyrbH8=";
};
};

View File

@ -7,13 +7,13 @@
rustPlatform.buildRustPackage rec {
pname = "gex";
version = "0.6.2";
version = "0.6.3";
src = fetchFromGitHub {
owner = "Piturnah";
repo = pname;
rev = "v${version}";
hash = "sha256-iCK3fiVchbfQh5JPHzBN/b24dkoXKW5dJdCsyoG0Kvw=";
hash = "sha256-ADVF+Kb0DDiR3dS43uzhefFFEg1O8IC22i5fmziEp6I=";
};
nativeBuildInputs = [ pkg-config ];
@ -22,7 +22,7 @@ rustPlatform.buildRustPackage rec {
libgit2_1_6
];
cargoHash = "sha256-5w8VzYoevWesMGQJe4rDbugCFQrE1LDNb69CaJ2bQ0w=";
cargoHash = "sha256-XBBZ56jvBtYI5J/sSc4ckk/KXzCHNgM9A4jGolGKh2E=";
meta = with lib; {
description = "Git Explorer: cross-platform git workflow improvement tool inspired by Magit";

View File

@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "git-repo";
version = "2.36";
version = "2.36.1";
src = fetchFromGitHub {
owner = "android";
repo = "tools_repo";
rev = "v${version}";
hash = "sha256-TCCVdPhrR4NWwqNjEAySSsiW2D7gCdLAiD+UeuvBJvI=";
hash = "sha256-jq9Frh3rufI9Q3auh2Qfoo89x+jKsbxBB8ojreVgmjc=";
};
# Fix 'NameError: name 'ssl' is not defined'

View File

@ -6,26 +6,33 @@
pythonPackages.buildPythonApplication rec {
pname = "git-up";
version = "1.6.1";
version = "2.2.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
sha256 = "0gs791yb0cndg9879vayvcj329jwhzpk6wrf9ri12l5hg8g490za";
pname = "git_up";
inherit version;
hash = "sha256-GTX2IWLQ48yWfPnmtEa9HJ5umQLttqgTlgZQlaWgeE4=";
};
nativeBuildInputs = with pythonPackages; [
poetry-core
];
# git should be on path for tool to work correctly
propagatedBuildInputs = [
git
] ++ (with pythonPackages; [
click
colorama
docopt
gitpython
six
termcolor
]);
nativeCheckInputs = [ git pythonPackages.nose ]; # git needs to be on path
nativeCheckInputs = [
git
pythonPackages.pytestCheckHook
];
# 1. git fails to run as it cannot detect the email address, so we set it
# 2. $HOME is by default not a valid dir, so we have to set that too
# https://github.com/NixOS/nixpkgs/issues/12591

View File

@ -2,20 +2,21 @@
, buildGoModule
, fetchFromGitHub
, stdenv
, nix-update-script
}:
buildGoModule rec {
pname = "kraftkit";
version = "0.6.4";
version = "0.6.6";
src = fetchFromGitHub {
owner = "unikraft";
repo = "kraftkit";
rev = "v${version}";
hash = "sha256-+aZrJqxgPGIoWEW4PZj6Nib7Z49HitxqMbeoyIe14iM=";
hash = "sha256-3dI3F1cCeLEOd+zusWUDZWLrVaaKHXzwOL/mF/yPZC8=";
};
vendorHash = "sha256-4V7GTqCDSHybuwIrnmO1MJ+DwMpkKOdA7UC72YJqStM=";
vendorHash = "sha256-4zciooCUNVLTQ/0tctqV3hExR5vRY5VumHzGtL8xdws=";
ldflags = [
"-s"
@ -25,6 +26,12 @@ buildGoModule rec {
subPackages = [ "cmd/kraft" ];
passthru = {
updateScript = nix-update-script {
extraArgs = [ "--version-regex" "^v([0-9.]+)" ];
};
};
meta = {
description = "Build and use highly customized and ultra-lightweight unikernel VMs";
homepage = "https://github.com/unikraft/kraftkit";

View File

@ -47,11 +47,11 @@ stdenv.mkDerivation (finalAttrs: {
+ lib.optionalString xenSupport "-xen"
+ lib.optionalString hostCpuOnly "-host-cpu-only"
+ lib.optionalString nixosTestRunner "-for-vm-tests";
version = "8.0.4";
version = "8.1.0";
src = fetchurl {
url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
hash = "sha256-gcgX3aOK+Vi+W+8abPVbZYuy0/uHwealcd5reyxEUWw=";
hash = "sha256-cQwQEZjjNNR2Lu9l9km8Q/qKXddTA1VLis/sPrJfDlU=";
};
depsBuildBuild = [ buildPackages.stdenv.cc ]
@ -153,9 +153,6 @@ stdenv.mkDerivation (finalAttrs: {
"--enable-tools"
"--localstatedir=/var"
"--sysconfdir=/etc"
# Always use our Meson, not the bundled version, which doesn't
# have our patches and will be subtly broken because of that.
"--meson=meson"
"--cross-prefix=${stdenv.cc.targetPrefix}"
(lib.enableFeature guestAgentSupport "guest-agent")
] ++ lib.optional numaSupport "--enable-numa"
@ -219,6 +216,7 @@ stdenv.mkDerivation (finalAttrs: {
# point tests towards correct binaries
substituteInPlace ../tests/unit/test-qga.c \
--replace '/bin/bash' "$(type -P bash)" \
--replace '/bin/echo' "$(type -P echo)"
substituteInPlace ../tests/unit/test-io-channel-command.c \
--replace '/bin/socat' "$(type -P socat)"

View File

@ -7,20 +7,20 @@ let
apptainer = callPackage
(import ./generic.nix rec {
pname = "apptainer";
version = "1.1.7";
version = "1.2.2";
projectName = "apptainer";
src = fetchFromGitHub {
owner = "apptainer";
repo = "apptainer";
rev = "v${version}";
hash = "sha256-3F8qwP27IXcnnEYMnLzkCOxQDx7yej6QIZ40Wb5pk34=";
hash = "sha256-CpNuoG+QykP+HDCyFuIbZKYez5XnYrE75SWFoWu34rg=";
};
# Update by running
# nix-prefetch -E "{ sha256 }: ((import ./. { }).apptainer.override { vendorHash = sha256; }).goModules"
# at the root directory of the Nixpkgs repository
vendorHash = "sha256-PfFubgR/W1WBXIsRO+Kg7hA6ebeAcRiJlTlAZbnl19A=";
vendorHash = "sha256-Y0gOqg+WGgssXGEYHc9IFwiIpkb3hetlQI89vseAQPc=";
extraDescription = " (previously known as Singularity)";
extraMeta.homepage = "https://apptainer.org";
@ -38,20 +38,20 @@ let
singularity = callPackage
(import ./generic.nix rec {
pname = "singularity-ce";
version = "3.11.1";
version = "3.11.4";
projectName = "singularity";
src = fetchFromGitHub {
owner = "sylabs";
repo = "singularity";
rev = "v${version}";
hash = "sha256-gdgg6VN3Ily+2Remz6dZBhhfWIxyaBa4bIlFcgrA/uY=";
hash = "sha256-v8iHbn2OzK/egP2Go76BI74iX8izfy2PM4Uo8LsE8FY=";
};
# Update by running
# nix-prefetch -E "{ sha256 }: ((import ./. { }).singularity.override { vendorHash = sha256; }).goModules"
# at the root directory of the Nixpkgs repository
vendorHash = "sha256-mBhlH6LSmcJuc6HbU/3Q9ii7vJkW9jcikBWCl8oeMOk=";
vendorHash = "sha256-24Hnpq6LRh3JgaiJWCmHfJKoWLxsbceCdJutjPqZsX8=";
# Do not build conmon from the Git submodule source,
# Use Nixpkgs provided version

View File

@ -1,4 +1,4 @@
# given a pakcage with a $name.desktop file, makes a copy
# given a package with a $name.desktop file, makes a copy
# as autostart item.
{stdenv, lib}:

View File

@ -3,12 +3,12 @@
let
generator = pkgsBuildBuild.buildGoModule rec {
pname = "v2ray-domain-list-community";
version = "20230825070717";
version = "20230902035830";
src = fetchFromGitHub {
owner = "v2fly";
repo = "domain-list-community";
rev = version;
hash = "sha256-xB+8WhFnaQ8YD99FcihqI58R8fxiBAzQK5b4VVdWbMo=";
hash = "sha256-xrx0+Zf9c5TYMWVKsAOJvI8x/ZoElnpjzLCPbkZjrzw=";
};
vendorHash = "sha256-dYaGR5ZBORANKAYuPAi9i+KQn2OAGDGTZxdyVjkcVi8=";
meta = with lib; {

View File

@ -4,6 +4,7 @@
, budgie-desktop-view
, glib
, gsettings-desktop-schemas
, magpie
, mate
, nixos-artwork
, nixos-background-light ? nixos-artwork.wallpapers.nineish
@ -31,9 +32,15 @@ let
document-font-name="Noto Sans 10"
monospace-font-name="Hack 10"
[org.gnome.desktop.peripherals.touchpad:Budgie]
tap-to-click=true
[org.gnome.desktop.wm.preferences:Budgie]
titlebar-font="Noto Sans Bold 10"
[org.gnome.mutter:Budgie]
edge-tiling=true
[com.solus-project.budgie-menu:Budgie]
use-default-menu-icon=true
@ -56,6 +63,7 @@ let
budgie-desktop
budgie-desktop-view
gsettings-desktop-schemas
magpie
] ++ extraGSettingsOverridePackages;
in

View File

@ -7,16 +7,16 @@ let
arch = if stdenv.isAarch64 then "arm64" else "x86_64";
hashes =
{
"x86_64-linux" = "443a763487366fa960120bfe193441e6bbe86fdb31baeed7dbb17d410dee0522";
"aarch64-linux" = "f11bec3b094df0c0958a8f1e07af5570199e671a882ad5fe979f1e7e482e986d";
"x86_64-darwin" = "d05a88d13e240fdbc1bf64bd1a4a9ec4d3d53c95961bb9e338449b856df91853";
"aarch64-darwin" = "bb105e7aebae3c637b761017c6fb49d9696eba1022f27ec594aac9c2dbffd907";
"x86_64-linux" = "b13110bacc3f71c2a3e12c52172a821a85cc13243a95249ca18c8beb296c0ce8";
"aarch64-linux" = "afbc71f0570b86215942d1b4207fe3de0299e6fdfd2e6caac78bf688c81b9bd1";
"x86_64-darwin" = "50a3df09b02b34e1653beb1507c6de0f332674e088ded7c66af4e5987753304e";
"aarch64-darwin" = "174a5bfec355361c4f030861405513818be25fd7e4325f7221aa71ebd27475d3";
};
in
stdenv.mkDerivation rec {
pname = "lamdera";
version = "1.1.0";
version = "1.2.0";
src = fetchurl {
url = "https://static.lamdera.com/bin/lamdera-${version}-${os}-${arch}";

View File

@ -1,63 +0,0 @@
{ lib, stdenv, fetchgit, qt4, ecl, xorgserver, xkbcomp, xkeyboard_config }:
stdenv.mkDerivation rec {
version = "unstable-2012-12-10";
pname = "eql";
src = fetchgit {
rev = "9097bf98446ee33c07bb155d800395775ce0d9b2";
url = "https://gitlab.com/eql/eql.git";
sha256 = "17h23qr7fyr9hvjgiq0yhacmjs43x06vh8978aq42ymcgipxdcww";
};
buildInputs = [ ecl qt4 xorgserver xkbcomp xkeyboard_config ];
env.NIX_CFLAGS_COMPILE = "-fPIC";
postPatch = ''
sed -re 's@[(]in-home "gui/.command-history"[)]@(concatenate '"'"'string (ext:getenv "HOME") "/.eql-gui-command-history")@' -i gui/gui.lisp
# cl_def_c_function was renamed to ecl_def_c_function in ECL 20.4.24.
find . -type f -exec sed -e 's/\scl_def_c_function(/ ecl_def_c_function(/' -i {} \;
'';
buildPhase = ''
cd src
ecl -shell make-eql-lib.lisp
qmake eql_lib.pro
make
cd ..
cd src
qmake eql_exe.pro
make
cd ..
cd src
'';
installPhase = ''
cd ..
mkdir -p $out/bin $out/lib/eql/ $out/include $out/include/gen $out/lib
cp -r . $out/lib/eql/build-dir
ln -s $out/lib/eql/build-dir/eql $out/bin
ln -s $out/lib/eql/build-dir/src/*.h $out/include
ln -s $out/lib/eql/build-dir/src/gen/*.h $out/include/gen
ln -s $out/lib/eql/build-dir/libeql*.so* $out/lib
'';
meta = with lib; {
description = "Embedded Qt Lisp (ECL+Qt)";
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
license = licenses.mit;
};
passthru = {
updateInfo = {
downloadPage = "http://password-taxi.at/EQL";
method = "fetchgit";
rev = src.rev;
url = src.url;
hash = src.sha256;
};
};
}

View File

@ -1,47 +0,0 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, libpng
, zlib
, qt4
, bison
, flex
, libGLU
, python3Packages
}:
stdenv.mkDerivation rec {
pname = "seexpr";
version = "3.0.1";
src = fetchFromGitHub {
owner = "wdas";
repo = "SeExpr";
rev = "v${version}";
sha256 = "sha256-r6mgyb/FGz4KYZOgLDgmIqjO+PSmneD3KUWjymZXtEk=";
};
cmakeFlags = [
"-DENABLE_SSE4=OFF"
# file RPATH_CHANGE could not write new RPATH
"-DCMAKE_SKIP_BUILD_RPATH=ON"
];
nativeBuildInputs = [ cmake ];
buildInputs = [ libGLU libpng zlib qt4 python3Packages.pyqt4 python3Packages.boost bison flex ];
# https://github.com/wdas/SeExpr/issues/106
postPatch = ''
substituteInPlace src/build/seexpr2.pc.in \
--replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
'';
meta = with lib; {
description = "Embeddable expression evaluation engine from Disney Animation";
homepage = "https://wdas.github.io/SeExpr/";
maintainers = with maintainers; [ hodapp ];
license = licenses.asl20;
platforms = platforms.linux;
};
}

View File

@ -11,17 +11,16 @@
, capnproto
, surelog
, antlr4
, flatbuffers
, pkg-config
}: let
version = "1.20230425";
version = "1.20230808";
src = fetchFromGitHub {
owner = "chipsalliance";
repo = "yosys-f4pga-plugins";
rev = "v${version}";
hash = "sha256-KNkmhvpKTby85P88+DqCOOGxIKpzbw5KF9ymqy40pfw=";
hash = "sha256-wksAHLgLjVZE4Vk2QVcJN1mnQ9mxWCZHk55oO99cVJ0=";
};
# Supported symbiflow plugins.

View File

@ -5,7 +5,7 @@ mkCoqDerivation {
owner = "uwplse";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.version [
{ case = range "8.14" "8.17"; out = "20230107"; }
{ case = range "8.14" "8.18"; out = "20230107"; }
{ case = range "8.6" "8.16"; out = "20200201"; }
] null;
release."20230107".rev = "bad8ad2476e14df6b5a819b7aaddc27a7c53fb69";

View File

@ -5,7 +5,7 @@ mkCoqDerivation {
owner = "fblanqui";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.version [
{case = range "8.14" "8.17"; out = "1.8.4"; }
{case = range "8.14" "8.18"; out = "1.8.4"; }
{case = range "8.12" "8.16"; out = "1.8.2"; }
{case = range "8.10" "8.11"; out = "1.7.0"; }
{case = range "8.8" "8.9"; out = "1.6.0"; }

View File

@ -6,19 +6,20 @@ mkCoqDerivation {
owner = "HoTT";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.coq-version [
{ case = range "8.14" "8.17"; out = coq.coq-version; }
{ case = range "8.14" "8.18"; out = coq.coq-version; }
] null;
releaseRev = v: "V${v}";
release."8.14".sha256 = "sha256-7kXk2pmYsTNodHA+Qts3BoMsewvzmCbYvxw9Sgwyvq0=";
release."8.15".sha256 = "sha256-JfeiRZVnrjn3SQ87y6dj9DWNwCzrkK3HBogeZARUn9g=";
release."8.16".sha256 = "sha256-xcEbz4ZQ+U7mb0SEJopaczfoRc2GSgF2BGzUSWI0/HY=";
release."8.17".sha256 = "sha256-GjTUpzL9UzJm4C2ilCaYEufLG3hcj7rJPc5Op+OMal8=";
release."8.18".sha256 = "sha256-URoUoQOsG0432wg9i6pTRomWQZ+ewutq2+V29TBrVzc=";
# versions of HoTT for Coq 8.17 and onwards will use dune
# opam-name = if lib.versions.isLe "8.17" coq.coq-version then "coq-hott" else null;
opam-name = "coq-hott";
useDune = lib.versions.isGe "8.17" coq.coq-version;
patchPhase = ''
patchShebangs etc
'';

View File

@ -5,7 +5,7 @@ mkCoqDerivation {
owner = "DistributedComponents";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.version [
{ case = range "8.9" "8.17"; out = "20230107"; }
{ case = range "8.9" "8.18"; out = "20230107"; }
{ case = range "8.5" "8.16"; out = "20200131"; }
] null;
release."20230107".rev = "601e89ec019501c48c27fcfc14b9a3c70456e408";

View File

@ -4,7 +4,7 @@ mkCoqDerivation {
pname = "LibHyps";
owner = "Matafou";
inherit version;
defaultVersion = if (lib.versions.range "8.11" "8.17") coq.version then "2.0.4.1" else null;
defaultVersion = if (lib.versions.range "8.11" "8.18") coq.version then "2.0.4.1" else null;
release = {
"2.0.4.1".sha256 = "09p89701zhrfdmqlpxw3mziw8yylj1w1skb4b0xpbdwd1vsn4k3h";
};

View File

@ -5,7 +5,7 @@ mkCoqDerivation {
owner = "uwplse";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.coq-version [
{ case = range "8.9" "8.17"; out = "20230107"; }
{ case = range "8.9" "8.18"; out = "20230107"; }
{ case = range "8.6" "8.16"; out = "20210328"; }
{ case = range "8.5" "8.13"; out = "20181102"; }
] null;

View File

@ -6,7 +6,7 @@ mkCoqDerivation {
owner = "uwplse";
inherit version;
defaultVersion = with lib.versions; lib.switch coq.coq-version [
{ case = range "8.9" "8.17"; out = "20230503"; }
{ case = range "8.9" "8.18"; out = "20230503"; }
{ case = range "8.7" "8.16"; out = "20211026"; }
{ case = range "8.7" "8.14"; out = "20210524"; }
{ case = range "8.7" "8.13"; out = "20200131"; }

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