Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-09-05 00:02:47 +00:00 committed by GitHub
commit 1a5c2acd74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
153 changed files with 1127 additions and 4973 deletions

View File

@ -38,7 +38,7 @@
- [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), an Open Source implementation of IPv4/IPv6 translation on Linux. Available as [networking.jool.enable](#opt-networking.jool.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

@ -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

@ -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

@ -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

@ -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 {};

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,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

@ -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 =

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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, boost } :
{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost } :
stdenv.mkDerivation rec {
pname = "cm256cc";
@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "sha256-T7ZUVVYGdzAialse//MoqWCVNBpbZvzWMAKc0cw7O9k=";
};
patches = [
# Pull fix pending upstream inclusion for gcc-13 support:
# https://github.com/f4exb/cm256cc/pull/18
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/f4exb/cm256cc/commit/a7f142bcdae8be1c646d67176ba0ba0f7e8dcd68.patch";
hash = "sha256-J7bm44sqnGsdPhJxQrE8LDxZ6tkTzLslHQnnKmtgrtM=";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [ boost ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, ladspaH, libjack2, liblo, alsa-lib, qt4, libX11, libsndfile, libSM
{ lib, stdenv, fetchurl, ladspaH, libjack2, liblo, alsa-lib, libX11, libsndfile, libSM
, libsamplerate, libtool, autoconf, automake, xorgproto, libICE, pkg-config
}:
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ autoconf automake pkg-config ];
buildInputs =
[ ladspaH libjack2 liblo alsa-lib qt4 libX11 libsndfile libSM
[ ladspaH libjack2 liblo alsa-lib libX11 libsndfile libSM
libsamplerate libtool xorgproto libICE
];

View File

@ -88,6 +88,12 @@ stdenv.mkDerivation rec {
''}
'' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
export LC_ALL=C
'' + lib.optionalString stdenv.isAarch32 ''
# these tests are fixed in 0.28, remove when updating to 0.28
rm -f ../tests/bugfixes/github/test_issue_1503.py
rm -f ../tests/bugfixes/github/test_pr1475_AVIF.py
rm -f ../tests/bugfixes/github/test_pr1475_HEIC.py
rm -f ../tests/bugfixes/github/test_pr1475_HIF.py
'';
# With CMake we have to enable samples or there won't be

View File

@ -1,5 +1,6 @@
{ lib
, fetchurl
, fetchpatch
, stdenv
, testers
, cmake
@ -14,6 +15,16 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-sfB3ZpSBxaPmKv/EnpbrBvKBmHpdNv2rIlIX5bgl5Mw=";
};
patches = [
# Pull upstream fix of `gcc-13` build failure:
# https://github.com/libgeos/geos/pull/805
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/libgeos/geos/commit/bea3188be44075034fd349f5bb117c943bdb7fb1.patch";
hash = "sha256-dQT3Hf9YJchgjon/r46TLIXXbE6C0ZnewyvfYJea4jM=";
})
];
nativeBuildInputs = [ cmake ];
doCheck = true;

View File

@ -1,21 +0,0 @@
{ lib, stdenv, fetchurl, cmake, qt4, pkg-config, gsasl }:
stdenv.mkDerivation rec {
pname = "libjreen";
version = "1.2.0";
src = fetchurl {
url = "https://qutim.org/dwnl/73/${pname}-${version}.tar.bz2";
sha256 = "14nwwk40xx8w6x7yaysgcr0lgzhs7l064f7ikp32s5y9a8mmp582";
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [ qt4 gsasl ];
meta = {
description = "C++ Jabber library using Qt framework";
homepage = "https://qutim.org/jreen/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
};
}

View File

@ -0,0 +1,23 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, autoreconfHook }:
stdenv.mkDerivation rec {
pname = "libuev";
version = "2.4.0";
src = fetchFromGitHub {
owner = "troglobit";
repo = "libuev";
rev = "v${version}";
hash = "sha256-x6l7CqlZ82kc8shAf2SxgIa4ESu0fTtnOgGz5joVCEY=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
meta = with lib; {
description = "Lightweight event loop library for Linux epoll() family APIs";
homepage = "https://codedocs.xyz/troglobit/libuev/";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ vifino ];
};
}

View File

@ -1,34 +0,0 @@
{ lib, stdenv, fetchurl, qt4, pkg-config, libnl, python3 }:
stdenv.mkDerivation rec {
pname = "ntrack";
version = "016";
src = fetchurl {
url = "https://launchpad.net/ntrack/main/${version}/+download/${pname}-${version}.tar.gz";
sha256 = "037ig5y0mp327m0hh4pnfr3vmsk3wrxgfjy3645q4ws9vdhx807w";
};
buildInputs = [ libnl qt4 ];
nativeBuildInputs = [ pkg-config python3 ];
# error: ISO C does not support '__FUNCTION__' predefined identifier [-Werror=pedantic]
env.NIX_CFLAGS_COMPILE = "-Wno-error";
configureFlags = [ "--without-gobject" "CFLAGS=--std=gnu99" ];
# Remove this patch after version 016
patches = [ ./libnl-fix.patch ];
postPatch = ''
sed -e "s@/usr\(/lib/ntrack/modules/\)@$out&@" -i common/ntrack.c
'';
meta = with lib; {
description = "Network Connectivity Tracking library for Desktop Applications";
homepage = "https://launchpad.net/ntrack";
platforms = platforms.linux;
license = licenses.lgpl3Plus;
};
}

View File

@ -1,11 +0,0 @@
--- ./modules/ntrack-libnl.c.orig 2013-12-02 11:31:54.749215448 -0600
+++ ./modules/ntrack-libnl.c 2013-12-02 11:34:46.597684553 -0600
@@ -530,7 +530,7 @@
op_default_route_disappeared ((struct _ntrack_monitor_arch*) self, nl_info);
} else if (nl_info->topmost_route && topmost_route) {
int diff_bits;
- if ((diff_bits = (route_obj_ops.oo_id_attrs | ROUTE_ATTR_OIF
+ if ((diff_bits = (nl_object_get_id_attrs(OBJ_CAST(topmost_route)) | ROUTE_ATTR_OIF
| ROUTE_ATTR_GATEWAY) &
nl_object_diff (OBJ_CAST (nl_info->topmost_route),
OBJ_CAST (topmost_route)))) {

View File

@ -1,21 +0,0 @@
{ lib, stdenv, fetchurl, cmake, qrencode, qt4, libdmtx }:
stdenv.mkDerivation rec {
pname = "prison";
version = "1.0";
src = fetchurl {
url = "mirror://kde/stable/prison/${version}/src/prison-${version}.tar.gz";
sha256 = "08hkzzda36jpdywjqlyzcvli7cx17h4l9yffzsdnhdd788n28krr";
};
buildInputs = [ qt4 qrencode libdmtx ];
nativeBuildInputs = [ cmake ];
meta = {
description = "Qt4 library for QR-codes";
license = lib.licenses.mit;
inherit (qt4.meta) platforms;
};
}

View File

@ -1,23 +0,0 @@
{lib, stdenv, fetchurl, cmake, qt4}:
stdenv.mkDerivation rec {
pname = "qimageblitz";
version = "0.0.4";
src = fetchurl {
url = "mirror://sourceforge/qimageblitz/qimageblitz-${version}.tar.bz2";
sha256 = "0pnaf3qi7rgkxzs2mssmslb3f9ya4cyx09wzwlis3ppyvf72j0p9";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ qt4 ];
patches = [ ./qimageblitz-9999-exec-stack.patch ];
meta = {
description = "Graphical effect and filter library for KDE4";
license = lib.licenses.bsd2;
homepage = "http://qimageblitz.sourceforge.net";
platforms = lib.platforms.linux;
};
}

View File

@ -1,11 +0,0 @@
diff -uar qimageblitz/blitz/asm_scale.S qimageblitz~/blitz/asm_scale.S
--- qimageblitz-orig/blitz/asm_scale.S 2007-10-17 01:17:57.000000000 +0200
+++ qimageblitz/blitz/asm_scale.S 2007-10-17 01:19:12.000000000 +0200
@@ -814,3 +814,7 @@
SIZE(qimageScale_mmx_AARGBA)
#endif
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+

View File

@ -1,67 +0,0 @@
{ stdenv
, lib
, fetchurl
, unzip
, qt4
, qmake4Hook
}:
stdenv.mkDerivation rec {
pname = "qscintilla-qt4";
version = "2.11.6";
src = fetchurl {
url = "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${version}/QScintilla-${version}.tar.gz";
sha256 = "5zRgV9tH0vs4RGf6/M/LE6oHQTc8XVk7xytVsvDdIKc=";
};
sourceRoot = "QScintilla-${version}/Qt4Qt5";
buildInputs = [ qt4 ];
nativeBuildInputs = [ unzip qmake4Hook ];
patches = [
./fix-qt4-build.patch
];
# Make sure that libqscintilla2.so is available in $out/lib since it is expected
# by some packages such as sqlitebrowser
postFixup = ''
ln -s $out/lib/libqscintilla2_qt4.so $out/lib/libqscintilla2.so
'';
dontWrapQtApps = true;
postPatch = ''
substituteInPlace qscintilla.pro \
--replace '$$[QT_INSTALL_LIBS]' $out/lib \
--replace '$$[QT_INSTALL_HEADERS]' $out/include \
--replace '$$[QT_INSTALL_TRANSLATIONS]' $out/translations \
--replace '$$[QT_HOST_DATA]/mkspecs' $out/mkspecs \
--replace '$$[QT_INSTALL_DATA]/mkspecs' $out/mkspecs \
--replace '$$[QT_INSTALL_DATA]' $out/share
'';
meta = with lib; {
description = "A Qt port of the Scintilla text editing library";
longDescription = ''
QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor
control.
As well as features found in standard text editing components,
QScintilla includes features especially useful when editing and
debugging source code. These include support for syntax styling,
error indicators, code completion and call tips. The selection
margin can contain markers like those used in debuggers to
indicate breakpoints and the current line. Styling choices are
more open than with many editors, allowing the use of
proportional fonts, bold and italics, multiple foreground and
background colours and multiple fonts.
'';
homepage = "https://www.riverbankcomputing.com/software/qscintilla/intro";
license = with licenses; [ gpl3 ]; # and commercial
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.linux;
};
}

View File

@ -1,11 +0,0 @@
diff -ur QScintilla_gpl-2.11.2/Qt4Qt5/Qsci/qsciscintillabase.h QScintilla_gpl-2.11.2-fix/Qt4Qt5/Qsci/qsciscintillabase.h
--- Qt4Qt5/Qsci/qsciscintillabase.h 2019-06-25 14:49:27.000000000 +0200
+++ Qt4Qt5-fix/Qsci/qsciscintillabase.h 2019-10-04 10:22:26.337474261 +0200
@@ -27,6 +27,7 @@
#include <QByteArray>
#include <QPoint>
#include <QTimer>
+#include <QUrl>
#include <Qsci/qsciglobal.h>

View File

@ -1,13 +0,0 @@
diff --git a/src/gui/text/qfontengine_coretext.mm b/src/gui/text/qfontengine_coretext.mm
index 204d685..e05179e 100644
--- a/src/gui/text/qfontengine_coretext.mm
+++ b/src/gui/text/qfontengine_coretext.mm
@@ -886,7 +886,7 @@ void QCoreTextFontEngine::getUnscaledGlyph(glyph_t glyph, QPainterPath *path, gl
QFixed QCoreTextFontEngine::emSquareSize() const
{
- return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont)));
+ return QFixed(int(CTFontGetUnitsPerEm(ctfont)));
}
QFontEngine *QCoreTextFontEngine::cloneWithSize(qreal pixelSize) const

View File

@ -1,239 +0,0 @@
{ stdenv, lib, fetchurl, fetchpatch, substituteAll
, libXrender, libXinerama, libXcursor, libXv, libXext
, libXfixes, libXrandr, libSM, freetype, fontconfig, zlib, libjpeg, libpng
, libmng, which, libGLU, openssl, dbus, cups, pkg-config
, libtiff, glib, icu, libmysqlclient, postgresql, sqlite, perl, coreutils, libXi
, alsa-lib
, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
, gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2, gdk-pixbuf
, gnomeStyle ? false, libgnomeui, GConf, gnome_vfs
, developerBuild ? false
, docs ? false
, examples ? false
, demos ? false
# darwin support
, libobjc, ApplicationServices, OpenGL, Cocoa, AGL, libcxx
}:
# TODO:
# * move some plugins (e.g., SQL plugins) to dedicated derivations to avoid
# false build-time dependencies
stdenv.mkDerivation rec {
pname = "qt" + lib.optionalString ( docs && demos && examples && developerBuild ) "-full";
version = "4.8.7";
src = fetchurl {
url = "http://download.qt-project.org/official_releases/qt/"
+ "${lib.versions.majorMinor version}/${version}/qt-everywhere-opensource-src-${version}.tar.gz";
sha256 = "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272";
};
outputs = [ "out" "dev" ];
outputInclude = "out";
setOutputFlags = false;
prePatch = ''
substituteInPlace configure --replace /bin/pwd pwd
substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
substituteInPlace src/3rdparty/javascriptcore/JavaScriptCore/jit/JITStubs.cpp \
--replace 'asm volatile' 'asm'
sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i mkspecs/*/*.conf
'' + lib.optionalString stdenv.isDarwin ''
# remove impure reference to /usr/lib/libstdc++.6.dylib
# there might be more references, but this is the only one I could find
substituteInPlace tools/macdeployqt/tests/tst_deployment_mac.cpp \
--replace /usr/lib/libstdc++.6.dylib "${stdenv.cc}/lib/libstdc++.6.dylib"
'' + lib.optionalString stdenv.cc.isClang ''
substituteInPlace src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp \
--replace 'optionalHeight > 0' 'optionalHeight != NULL'
'';
patches =
lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
./glib-2.32.patch
./libressl.patch
./parallel-configure.patch
./clang-5-darwin.patch
./qt-4.8.7-unixmake-darwin.patch
./kill-legacy-darwin-apis.patch
(substituteAll {
src = ./dlopen-absolute-paths.diff;
cups = if cups != null then lib.getLib cups else null;
icu = icu.out;
libXfixes = libXfixes.out;
glibc = stdenv.cc.libc.out;
})
(fetchpatch {
name = "fix-medium-font.patch";
url = "https://salsa.debian.org/qt-kde-team/qt/qt4-x11/raw/"
+ "21b342d71c19e6d68b649947f913410fe6129ea4/debian/patches/kubuntu_39_fix_medium_font.diff";
sha256 = "0bli44chn03c2y70w1n8l7ss4ya0b40jqqav8yxrykayi01yf95j";
})
# Patches are no longer available from here, so vendoring it for now.
#(fetchpatch {
# name = "qt4-gcc6.patch";
# url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qt4-gcc6.patch?h=packages/qt4&id=ca773a144f5abb244ac4f2749eeee9333cac001f";
# sha256 = "07lrva7bjh6i40p7b3ml26a2jlznri8bh7y7iyx5zmvb1gfxmj34";
#})
./qt4-gcc6.patch
./qt4-openssl-1.1.patch
(fetchpatch {
name = "gcc9-foreach.patch";
url = "https://salsa.debian.org/qt-kde-team/qt/qt4-x11/raw/"
+ "0d4a3dd61ccb156dee556c214dbe91c04d44a717/debian/patches/gcc9-qforeach.patch";
sha256 = "0dzn6qxrgxb75rvck9kmy5gspawdn970wsjw56026dhkih8cp3pg";
})
# Pull upstream fix for gcc-11 support.
(fetchpatch {
name = "gcc11-ptr-cmp.patch";
url = "https://github.com/qt/qttools/commit/7138c963f9d1258bc1b49cb4d63c3e2b7d0ccfda.patch";
sha256 = "1a9g05r267c94qpw3ssb6k4lci200vla3vm5hri1nna6xwdsmrhc";
# "src/" -> "tools/"
stripLen = 2;
extraPrefix = "tools/";
})
]
++ lib.optional gtkStyle (substituteAll ({
src = ./dlopen-gtkstyle.diff;
# substituteAll ignores env vars starting with capital letter
gtk = gtk2.out;
} // lib.optionalAttrs gnomeStyle {
gconf = GConf.out;
libgnomeui = libgnomeui.out;
gnome_vfs = gnome_vfs.out;
}))
++ lib.optional stdenv.isAarch64 (fetchpatch {
url = "https://src.fedoraproject.org/rpms/qt/raw/ecf530486e0fb7fe31bad26805cde61115562b2b/f/qt-aarch64.patch";
sha256 = "1fbjh78nmafqmj7yk67qwjbhl3f6ylkp6x33b1dqxfw9gld8b3gl";
})
++ lib.optionals stdenv.hostPlatform.isMusl [
./qt-musl.patch
./qt-musl-iconv-no-bom.patch
./patch-qthread-stacksize.diff
./qsettings-recursive-global-mutex.patch
];
preConfigure = ''
export LD_LIBRARY_PATH="`pwd`/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
configureFlags+="
-docdir $out/share/doc/qt-${version}
-plugindir $out/lib/qt4/plugins
-importdir $out/lib/qt4/imports
-examplesdir $TMPDIR/share/doc/qt-${version}/examples
-demosdir $TMPDIR/share/doc/qt-${version}/demos
-datadir $out/share/qt-${version}
-translationdir $out/share/qt-${version}/translations
--jobs=$NIX_BUILD_CORES
"
unset LD # Makefile uses gcc for linking; setting LD interferes
'' + lib.optionalString stdenv.cc.isClang ''
sed -i 's/QMAKE_CC = gcc/QMAKE_CC = clang/' mkspecs/common/g++-base.conf
sed -i 's/QMAKE_CXX = g++/QMAKE_CXX = clang++/' mkspecs/common/g++-base.conf
'' + lib.optionalString stdenv.hostPlatform.isWindows ''
sed -i -e 's/ g++/ ${stdenv.cc.targetPrefix}g++/' \
-e 's/ gcc/ ${stdenv.cc.targetPrefix}gcc/' \
-e 's/ ar/ ${stdenv.cc.targetPrefix}ar/' \
-e 's/ strip/ ${stdenv.cc.targetPrefix}strip/' \
-e 's/ windres/ ${stdenv.cc.targetPrefix}windres/' \
mkspecs/win32-g++/qmake.conf
'';
prefixKey = "-prefix ";
configurePlatforms = [];
configureFlags = let
mk = cond: name: "-${lib.optionalString (!cond) "no-"}${name}";
platformFlag =
if stdenv.hostPlatform != stdenv.buildPlatform
then "-xplatform"
else "-platform";
in (if stdenv.hostPlatform != stdenv.buildPlatform then [
# I've not tried any case other than i686-pc-mingw32.
# -nomake tools: it fails linking some asian language symbols
# -no-svg: it fails to build on mingw64
"-static" "-release" "-confirm-license" "-opensource"
"-no-opengl" "-no-phonon"
"-no-svg"
"-make" "qmake" "-make" "libs" "-nomake" "tools"
] else [
"-v" "-no-separate-debug-info" "-release" "-fast" "-confirm-license" "-opensource"
(mk (!stdenv.isFreeBSD) "opengl") "-xrender" "-xrandr" "-xinerama" "-xcursor" "-xinput" "-xfixes" "-fontconfig"
"-qdbus" (mk (cups != null) "cups") "-glib" "-dbus-linked" "-openssl-linked"
"-${if libmysqlclient != null then "plugin" else "no"}-sql-mysql" "-system-sqlite"
"-exceptions" "-xmlpatterns"
"-make" "libs" "-make" "tools" "-make" "translations"
"-no-phonon" "-no-webkit" "-no-multimedia" "-audio-backend"
]) ++ [
"-${lib.optionalString (!demos) "no"}make" "demos"
"-${lib.optionalString (!examples) "no"}make" "examples"
"-${lib.optionalString (!docs) "no"}make" "docs"
] ++ lib.optional developerBuild "-developer-build"
++ lib.optionals stdenv.hostPlatform.isDarwin [ platformFlag "unsupported/macx-clang-libc++" ]
++ lib.optionals stdenv.hostPlatform.isWindows [ platformFlag "win32-g++-4.6" ];
propagatedBuildInputs =
[ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
libSM zlib libpng openssl dbus freetype fontconfig glib ]
# Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
++ lib.optional libGLSupported libGLU;
# The following libraries are only used in plugins
buildInputs =
[ cups # Qt dlopen's libcups instead of linking to it
postgresql sqlite libjpeg libmng libtiff icu ]
++ lib.optionals (libmysqlclient != null) [ libmysqlclient ]
++ lib.optionals gtkStyle [ gtk2 gdk-pixbuf ]
++ lib.optionals stdenv.isDarwin [ ApplicationServices OpenGL Cocoa AGL libcxx libobjc ];
nativeBuildInputs = [ perl pkg-config which ];
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = toString (
# with gcc7 the warnings blow the log over Hydra's limit
[ "-Wno-expansion-to-defined" "-Wno-unused-local-typedefs" ]
++ lib.optional stdenv.isLinux "-std=gnu++98" # gnu++ in (Obj)C flags is no good on Darwin
++ lib.optionals (stdenv.isFreeBSD || stdenv.isDarwin)
[ "-I${glib.dev}/include/glib-2.0" "-I${glib.out}/lib/glib-2.0/include" ]
++ lib.optional stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1");
NIX_LDFLAGS = lib.optionalString (stdenv.isFreeBSD || stdenv.isDarwin) "-lglib-2.0";
preBuild = lib.optionalString stdenv.isDarwin ''
# resolve "extra qualification on member" error
sed -i 's/struct ::TabletProximityRec;/struct TabletProximityRec;/' \
src/gui/kernel/qt_cocoa_helpers_mac_p.h
find . -name "Makefile*" | xargs sed -i 's/^\(LINK[[:space:]]* = clang++\)/\1 ${NIX_LDFLAGS}/'
sed -i 's/^\(LIBS[[:space:]]*=.*$\)/\1 -lobjc/' ./src/corelib/Makefile.Release
'';
doCheck = false; # qwebframe test fails with fontconfig errors
postInstall = ''
rm -rf $out/tests
''
# I don't know why it does not install qmake
+ lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
cp bin/qmake* $out/bin
'';
dontStrip = stdenv.hostPlatform != stdenv.buildPlatform;
meta = {
homepage = "https://qt-project.org/";
description = "A cross-platform application framework for C++";
license = lib.licenses.lgpl21Plus; # or gpl3
maintainers = with lib.maintainers; [ orivej lovek323 sander ];
platforms = lib.platforms.unix;
badPlatforms = [ "x86_64-darwin" "aarch64-darwin" ];
};
}

View File

@ -1,74 +0,0 @@
diff --git a/src/corelib/tools/qlocale_icu.cpp b/src/corelib/tools/qlocale_icu.cpp
index c3e2907..2fac4e1 100644
--- a/src/corelib/tools/qlocale_icu.cpp
+++ b/src/corelib/tools/qlocale_icu.cpp
@@ -81,7 +81,7 @@ bool qt_initIcu(const QString &localeString)
if (status == NotLoaded) {
// resolve libicui18n
- QLibrary lib(QLatin1String("icui18n"), QLatin1String(U_ICU_VERSION_SHORT));
+ QLibrary lib(QLatin1String("@icu@/lib/libicui18n"), QLatin1String(U_ICU_VERSION_SHORT));
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!lib.load()) {
qWarning() << "Unable to load library icui18n" << lib.errorString();
@@ -111,7 +111,7 @@ bool qt_initIcu(const QString &localeString)
}
// resolve libicuuc
- QLibrary ucLib(QLatin1String("icuuc"), QLatin1String(U_ICU_VERSION_SHORT));
+ QLibrary ucLib(QLatin1String("@icu@/lib/libicuuc"), QLatin1String(U_ICU_VERSION_SHORT));
ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!ucLib.load()) {
qWarning() << "Unable to load library icuuc" << ucLib.errorString();
diff --git a/src/gui/painting/qcups.cpp b/src/gui/painting/qcups.cpp
index 99ea43f..acdf9c9 100644
--- a/src/gui/painting/qcups.cpp
+++ b/src/gui/painting/qcups.cpp
@@ -87,7 +87,7 @@ static CupsPrintFile _cupsPrintFile = 0;
static void resolveCups()
{
- QLibrary cupsLib(QLatin1String("cups"), 2);
+ QLibrary cupsLib(QLatin1String("@cups@/lib/libcups"), 2);
if(cupsLib.load()) {
_cupsGetDests = (CupsGetDests) cupsLib.resolve("cupsGetDests");
_cupsFreeDests = (CupsFreeDests) cupsLib.resolve("cupsFreeDests");
diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp
index 3d15538..f0f5351 100644
--- a/src/gui/painting/qprinterinfo_unix.cpp
+++ b/src/gui/painting/qprinterinfo_unix.cpp
@@ -454,7 +454,7 @@ int qt_retrieveNisPrinters(QList<QPrinterDescription> *printers)
char *domain;
int err;
- QLibrary lib(QLatin1String("nsl"));
+ QLibrary lib(QLatin1String("@glibc@/lib/libnsl"));
typedef int (*ypGetDefaultDomain)(char **);
ypGetDefaultDomain _ypGetDefaultDomain = (ypGetDefaultDomain)lib.resolve("yp_get_default_domain");
typedef int (*ypAll)(const char *, const char *, const struct ypall_callback *);
diff --git a/src/network/kernel/qhostinfo_unix.cpp b/src/network/kernel/qhostinfo_unix.cpp
index 6b42d1e..f88b628 100644
--- a/src/network/kernel/qhostinfo_unix.cpp
+++ b/src/network/kernel/qhostinfo_unix.cpp
@@ -95,7 +95,7 @@ static res_state_ptr local_res = 0;
static void resolveLibrary()
{
#if !defined(QT_NO_LIBRARY) && !defined(Q_OS_QNX)
- QLibrary lib(QLatin1String("resolv"));
+ QLibrary lib(QLatin1String("@glibc@/lib/libresolv"));
lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
if (!lib.load())
return;
diff --git a/src/plugins/platforms/xlib/qxlibstatic.cpp b/src/plugins/platforms/xlib/qxlibstatic.cpp
index f8f3d69..d63c5bc 100644
--- a/src/plugins/platforms/xlib/qxlibstatic.cpp
+++ b/src/plugins/platforms/xlib/qxlibstatic.cpp
@@ -242,7 +242,7 @@ static void* qt_load_library_runtime(const char *library, int vernum,
}
# define XFIXES_LOAD_RUNTIME(vernum, symbol, symbol_type) \
- (symbol_type)qt_load_library_runtime("libXfixes", vernum, 4, #symbol);
+ (symbol_type)qt_load_library_runtime("@libXfixes@/lib/libXfixes", vernum, 4, #symbol);
# define XFIXES_LOAD_V1(symbol) \
XFIXES_LOAD_RUNTIME(1, symbol, Ptr##symbol)
# define XFIXES_LOAD_V2(symbol) \

View File

@ -1,37 +0,0 @@
diff --git a/src/gui/styles/qgtkstyle_p.cpp b/src/gui/styles/qgtkstyle_p.cpp
index 3b128e6..39434db 100644
--- a/src/gui/styles/qgtkstyle_p.cpp
+++ b/src/gui/styles/qgtkstyle_p.cpp
@@ -312,7 +312,7 @@ GtkStyle* QGtkStylePrivate::gtkStyle(const QHashableLatin1Literal &path)
void QGtkStylePrivate::resolveGtk() const
{
// enforce the "0" suffix, so we'll open libgtk-x11-2.0.so.0
- QLibrary libgtk(QLS("gtk-x11-2.0"), 0, 0);
+ QLibrary libgtk(QLS("@gtk@/lib/libgtk-x11-2.0"), 0, 0);
libgtk.setLoadHints(QLibrary::ImprovedSearchHeuristics);
gtk_init = (Ptr_gtk_init)libgtk.resolve("gtk_init");
@@ -435,8 +435,8 @@ void QGtkStylePrivate::resolveGtk() const
pango_font_description_get_family = (Ptr_pango_font_description_get_family)libgtk.resolve("pango_font_description_get_family");
pango_font_description_get_style = (Ptr_pango_font_description_get_style)libgtk.resolve("pango_font_description_get_style");
- gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("gnomeui-2"), 0, "gnome_icon_lookup_sync");
- gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("gnomevfs-2"), 0, "gnome_vfs_init");
+ gnome_icon_lookup_sync = (Ptr_gnome_icon_lookup_sync)QLibrary::resolve(QLS("@libgnomeui@/lib/libgnomeui-2"), 0, "gnome_icon_lookup_sync");
+ gnome_vfs_init= (Ptr_gnome_vfs_init)QLibrary::resolve(QLS("@gnome_vfs@/lib/libgnomevfs-2"), 0, "gnome_vfs_init");
}
/* \internal
@@ -608,9 +608,9 @@ void QGtkStylePrivate::cleanupGtkWidgets()
static bool resolveGConf()
{
if (!QGtkStylePrivate::gconf_client_get_default) {
- QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_default");
- QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_string");
- QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("gconf-2"), 4, "gconf_client_get_bool");
+ QGtkStylePrivate::gconf_client_get_default = (Ptr_gconf_client_get_default)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_default");
+ QGtkStylePrivate::gconf_client_get_string = (Ptr_gconf_client_get_string)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_string");
+ QGtkStylePrivate::gconf_client_get_bool = (Ptr_gconf_client_get_bool)QLibrary::resolve(QLS("@gconf@/lib/libgconf-2"), 4, "gconf_client_get_bool");
}
return (QGtkStylePrivate::gconf_client_get_default !=0);
}

View File

@ -1,12 +0,0 @@
diff -Naur qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h qt-everywhere-opensource-src-4.8.2/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
--- qt-everywhere-opensource-src-4.8.2-orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2012-04-26 15:46:22.000000000 -0400
+++ qt-everywhere-opensource-src-4.8.2/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h 2012-07-14 22:47:02.145152876 -0400
@@ -89,7 +89,7 @@
#include <pthread.h>
#elif PLATFORM(GTK)
#include <wtf/gtk/GOwnPtr.h>
-typedef struct _GMutex GMutex;
+typedef union _GMutex GMutex;
typedef struct _GCond GCond;
#endif

View File

@ -1,330 +0,0 @@
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index 4a9049b..c0ac9db 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -242,9 +242,8 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
#else
char *ret = 0;
# if defined(Q_OS_MAC) && !defined(Q_OS_IOS)
- // When using -mmacosx-version-min=10.4, we get the legacy realpath implementation,
- // which does not work properly with the realpath(X,0) form. See QTBUG-28282.
- if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) {
+ // In Nix-on-Darwin, we don't support ancient macOS anyway, and the deleted branch relies on
+ // a symbol that's been deprecated for years and that our CF doesn't have
ret = (char*)malloc(PATH_MAX + 1);
if (ret && realpath(entry.nativeFilePath().constData(), (char*)ret) == 0) {
const int savedErrno = errno; // errno is checked below, and free() might change it
@@ -252,19 +251,6 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
errno = savedErrno;
ret = 0;
}
- } else {
- // on 10.5 we can use FSRef to resolve the file path.
- QString path = QDir::cleanPath(entry.filePath());
- FSRef fsref;
- if (FSPathMakeRef((const UInt8 *)path.toUtf8().data(), &fsref, 0) == noErr) {
- CFURLRef urlref = CFURLCreateFromFSRef(NULL, &fsref);
- CFStringRef canonicalPath = CFURLCopyFileSystemPath(urlref, kCFURLPOSIXPathStyle);
- QString ret = QCFString::toQString(canonicalPath);
- CFRelease(canonicalPath);
- CFRelease(urlref);
- return QFileSystemEntry(ret);
- }
- }
# else
# if _POSIX_VERSION >= 200801L
ret = realpath(entry.nativeFilePath().constData(), (char*)0);
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
index 3bf7342..b6bcfc0 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
+++ b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.h
@@ -43,7 +43,6 @@ BOOL stringIsCaseInsensitiveEqualToString(NSString *first, NSString *second);
BOOL hasCaseInsensitiveSuffix(NSString *string, NSString *suffix);
BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring);
NSString *filenameByFixingIllegalCharacters(NSString *string);
-CFStringEncoding stringEncodingForResource(Handle resource);
#ifdef __cplusplus
}
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
index d6c3f0c..c88ca76 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
+++ b/src/3rdparty/webkit/Source/WebCore/platform/mac/WebCoreNSStringExtras.mm
@@ -68,45 +68,4 @@ BOOL hasCaseInsensitiveSubstring(NSString *string, NSString *substring)
return filename;
}
-CFStringEncoding stringEncodingForResource(Handle resource)
-{
- short resRef = HomeResFile(resource);
- if (ResError() != noErr)
- return NSMacOSRomanStringEncoding;
-
- // Get the FSRef for the current resource file
- FSRef fref;
- OSStatus error = FSGetForkCBInfo(resRef, 0, NULL, NULL, NULL, &fref, NULL);
- if (error != noErr)
- return NSMacOSRomanStringEncoding;
-
- RetainPtr<CFURLRef> url(AdoptCF, CFURLCreateFromFSRef(NULL, &fref));
- if (!url)
- return NSMacOSRomanStringEncoding;
-
- NSString *path = [(NSURL *)url.get() path];
-
- // Get the lproj directory name
- path = [path stringByDeletingLastPathComponent];
- if (!stringIsCaseInsensitiveEqualToString([path pathExtension], @"lproj"))
- return NSMacOSRomanStringEncoding;
-
- NSString *directoryName = [[path stringByDeletingPathExtension] lastPathComponent];
- RetainPtr<CFStringRef> locale(AdoptCF, CFLocaleCreateCanonicalLocaleIdentifierFromString(NULL, (CFStringRef)directoryName));
- if (!locale)
- return NSMacOSRomanStringEncoding;
-
- LangCode lang;
- RegionCode region;
- error = LocaleStringToLangAndRegionCodes([(NSString *)locale.get() UTF8String], &lang, &region);
- if (error != noErr)
- return NSMacOSRomanStringEncoding;
-
- TextEncoding encoding;
- error = UpgradeScriptInfoToTextEncoding(kTextScriptDontCare, lang, region, NULL, &encoding);
- if (error != noErr)
- return NSMacOSRomanStringEncoding;
-
- return encoding;
-}
diff --git a/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp b/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
index 865ea32..20bda8d 100644
--- a/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp
@@ -101,33 +101,6 @@ static WTF::RetainPtr<CFDictionaryRef> readPListFile(CFStringRef fileName, bool
return map;
}
-static Vector<String> stringListFromResourceId(SInt16 id)
-{
- Vector<String> list;
-
- Handle handle = Get1Resource('STR#', id);
- if (!handle)
- return list;
-
- CFStringEncoding encoding = stringEncodingForResource(handle);
-
- unsigned char* p = (unsigned char*)*handle;
- if (!p)
- return list;
-
- SInt16 count = *(SInt16*)p;
- p += sizeof(SInt16);
-
- for (SInt16 i = 0; i < count; ++i) {
- unsigned char length = *p;
- WTF::RetainPtr<CFStringRef> str = CFStringCreateWithPascalString(0, p, encoding);
- list.append(str.get());
- p += 1 + length;
- }
-
- return list;
-}
-
bool PluginPackage::fetchInfo()
{
if (!load())
@@ -202,36 +175,8 @@ bool PluginPackage::fetchInfo()
m_description = (CFStringRef)CFBundleGetValueForInfoDictionaryKey(m_module, CFSTR("WebPluginDescription"));
} else {
- int resFile = CFBundleOpenBundleResourceMap(m_module);
-
- UseResFile(resFile);
-
- Vector<String> mimes = stringListFromResourceId(MIMEListStringStringNumber);
-
- if (mimes.size() % 2 != 0)
- return false;
-
- Vector<String> descriptions = stringListFromResourceId(MIMEDescriptionStringNumber);
- if (descriptions.size() != mimes.size() / 2)
- return false;
-
- for (size_t i = 0; i < mimes.size(); i += 2) {
- String mime = mimes[i].lower();
- Vector<String> extensions;
- mimes[i + 1].lower().split(UChar(','), extensions);
-
- m_mimeToExtensions.set(mime, extensions);
-
- m_mimeToDescriptions.set(mime, descriptions[i / 2]);
- }
-
- Vector<String> names = stringListFromResourceId(PluginNameOrDescriptionStringNumber);
- if (names.size() == 2) {
- m_description = names[0];
- m_name = names[1];
- }
-
- CFBundleCloseBundleResourceMap(m_module, resFile);
+ LOG(Plugins, "Nix removed ancient code that relies on long-deprecated functionality that we don't want to support!");
+ return false;
}
LOG(Plugins, "PluginPackage::fetchInfo(): Found plug-in '%s'", m_name.utf8().data());
diff --git a/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm b/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
index b206e48..669d442 100644
--- a/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
+++ b/src/3rdparty/webkit/Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm
@@ -26,7 +26,6 @@
#import "config.h"
#import "NetscapePluginModule.h"
-#import <WebCore/WebCoreNSStringExtras.h>
#import <wtf/HashSet.h>
using namespace WebCore;
@@ -196,132 +195,6 @@ static bool getPluginInfoFromPropertyLists(CFBundleRef bundle, PluginInfo& plugi
return true;
}
-class ResourceMap {
-public:
- explicit ResourceMap(CFBundleRef bundle)
- : m_bundle(bundle)
- , m_currentResourceFile(CurResFile())
- , m_bundleResourceMap(CFBundleOpenBundleResourceMap(m_bundle))
- {
- UseResFile(m_bundleResourceMap);
- }
-
- ~ResourceMap()
- {
- // Close the resource map.
- CFBundleCloseBundleResourceMap(m_bundle, m_bundleResourceMap);
-
- // And restore the old resource.
- UseResFile(m_currentResourceFile);
- }
-
- bool isValid() const { return m_bundleResourceMap != -1; }
-
-private:
- CFBundleRef m_bundle;
- ResFileRefNum m_currentResourceFile;
- ResFileRefNum m_bundleResourceMap;
-};
-
-static bool getStringListResource(ResID resourceID, Vector<String>& stringList) {
- Handle stringListHandle = Get1Resource('STR#', resourceID);
- if (!stringListHandle || !*stringListHandle)
- return false;
-
- // Get the string list size.
- Size stringListSize = GetHandleSize(stringListHandle);
- if (stringListSize < static_cast<Size>(sizeof(UInt16)))
- return false;
-
- CFStringEncoding stringEncoding = stringEncodingForResource(stringListHandle);
-
- unsigned char* ptr = reinterpret_cast<unsigned char*>(*stringListHandle);
- unsigned char* end = ptr + stringListSize;
-
- // Get the number of strings in the string list.
- UInt16 numStrings = *reinterpret_cast<UInt16*>(ptr);
- ptr += sizeof(UInt16);
-
- for (UInt16 i = 0; i < numStrings; ++i) {
- // We're past the end of the string, bail.
- if (ptr >= end)
- return false;
-
- // Get the string length.
- unsigned char stringLength = *ptr++;
-
- RetainPtr<CFStringRef> cfString(AdoptCF, CFStringCreateWithBytesNoCopy(kCFAllocatorDefault, ptr, stringLength, stringEncoding, false, kCFAllocatorNull));
- if (!cfString.get())
- return false;
-
- stringList.append(cfString.get());
- ptr += stringLength;
- }
-
- if (ptr != end)
- return false;
-
- return true;
-}
-
-static const ResID PluginNameOrDescriptionStringNumber = 126;
-static const ResID MIMEDescriptionStringNumber = 127;
-static const ResID MIMEListStringStringNumber = 128;
-
-static bool getPluginInfoFromCarbonResources(CFBundleRef bundle, PluginInfo& pluginInfo)
-{
- ResourceMap resourceMap(bundle);
- if (!resourceMap.isValid())
- return false;
-
- // Get the description and name string list.
- Vector<String> descriptionAndName;
- if (!getStringListResource(PluginNameOrDescriptionStringNumber, descriptionAndName))
- return false;
-
- // Get the MIME types and extensions string list. This list needs to be a multiple of two.
- Vector<String> mimeTypesAndExtensions;
- if (!getStringListResource(MIMEListStringStringNumber, mimeTypesAndExtensions))
- return false;
-
- if (mimeTypesAndExtensions.size() % 2)
- return false;
-
- // Now get the MIME type descriptions string list. This string list needs to be the same length as the number of MIME types.
- Vector<String> mimeTypeDescriptions;
- if (!getStringListResource(MIMEDescriptionStringNumber, mimeTypeDescriptions))
- return false;
-
- // Add all MIME types.
- for (size_t i = 0; i < mimeTypesAndExtensions.size() / 2; ++i) {
- MimeClassInfo mimeClassInfo;
-
- const String& mimeType = mimeTypesAndExtensions[i * 2];
- String description;
- if (i < mimeTypeDescriptions.size())
- description = mimeTypeDescriptions[i];
-
- mimeClassInfo.type = mimeType.lower();
- mimeClassInfo.desc = description;
-
- Vector<String> extensions;
- mimeTypesAndExtensions[i * 2 + 1].split(',', extensions);
-
- for (size_t i = 0; i < extensions.size(); ++i)
- mimeClassInfo.extensions.append(extensions[i].lower());
-
- pluginInfo.mimes.append(mimeClassInfo);
- }
-
- // Set the description and name if they exist.
- if (descriptionAndName.size() > 0)
- pluginInfo.desc = descriptionAndName[0];
- if (descriptionAndName.size() > 1)
- pluginInfo.name = descriptionAndName[1];
-
- return true;
-}
-
bool NetscapePluginModule::getPluginInfo(const String& pluginPath, PluginInfoStore::Plugin& plugin)
{
RetainPtr<CFStringRef> bundlePath(AdoptCF, pluginPath.createCFString());
@@ -344,8 +217,7 @@ static bool getPluginInfoFromCarbonResources(CFBundleRef bundle, PluginInfo& plu
return false;
// Check that there's valid info for this plug-in.
- if (!getPluginInfoFromPropertyLists(bundle.get(), plugin.info) &&
- !getPluginInfoFromCarbonResources(bundle.get(), plugin.info))
+ if (!getPluginInfoFromPropertyLists(bundle.get(), plugin.info))
return false;
plugin.path = pluginPath;

View File

@ -1,64 +0,0 @@
$OpenBSD: patch-src_network_ssl_qsslsocket_openssl_symbols_cpp,v 1.3 2015/09/17 12:24:42 dcoppa Exp $
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp Wed Sep 16 13:27:39 2015
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp Wed Sep 16 13:33:06 2015
@@ -228,13 +228,17 @@ DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, re
#ifndef OPENSSL_NO_SSL2
DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
#endif
+#ifndef OPENSSL_NO_SSL3
DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
+#endif
DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
#ifndef OPENSSL_NO_SSL2
DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
#endif
+#ifndef OPENSSL_NO_SSL3
DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
+#endif
DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
#else
@@ -822,13 +826,17 @@ bool q_resolveOpenSslSymbols()
#ifndef OPENSSL_NO_SSL2
RESOLVEFUNC(SSLv2_client_method)
#endif
+#ifndef OPENSSL_NO_SSL3
RESOLVEFUNC(SSLv3_client_method)
+#endif
RESOLVEFUNC(SSLv23_client_method)
RESOLVEFUNC(TLSv1_client_method)
#ifndef OPENSSL_NO_SSL2
RESOLVEFUNC(SSLv2_server_method)
#endif
+#ifndef OPENSSL_NO_SSL3
RESOLVEFUNC(SSLv3_server_method)
+#endif
RESOLVEFUNC(SSLv23_server_method)
RESOLVEFUNC(TLSv1_server_method)
RESOLVEFUNC(X509_NAME_entry_count)
--- a/src/network/ssl/qsslsocket_openssl.cpp Thu May 7 16:14:44 2015
+++ b/src/network/ssl/qsslsocket_openssl.cpp Wed Sep 16 13:30:03 2015
@@ -267,15 +267,19 @@ init_context:
#endif
break;
case QSsl::SslV3:
+#ifndef OPENSSL_NO_SSL3
ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
+#else
+ ctx = 0; // SSL 3 not supported by the system, but chosen deliberately -> error
+#endif
break;
- case QSsl::SecureProtocols: // SslV2 will be disabled below
- case QSsl::TlsV1SslV3: // SslV2 will be disabled below
case QSsl::AnyProtocol:
- default:
ctx = q_SSL_CTX_new(client ? q_SSLv23_client_method() : q_SSLv23_server_method());
break;
case QSsl::TlsV1:
+ case QSsl::SecureProtocols:
+ case QSsl::TlsV1SslV3:
+ default:
ctx = q_SSL_CTX_new(client ? q_TLSv1_client_method() : q_TLSv1_server_method());
break;
}

View File

@ -1,22 +0,0 @@
--- a/configure
+++ b/configure
@@ -1087,2 +1087,3 @@ fi
#-------------------------------------------------------------------------------
+JOBS=
@@ -2528,2 +2529,5 @@ while [ "$#" -gt 0 ]; do
;;
+ jobs)
+ JOBS=-j$VAL
+ ;;
*)
@@ -5072,3 +5076,3 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
- (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
+ (cd "$outpath/qmake" && "$MAKE" $JOBS -f "$mkfile" depend) >/dev/null 2>&1
sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
@@ -5080,3 +5084,3 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
QMAKE_BUILD_ERROR=no
- (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
+ (cd "$outpath/qmake"; "$MAKE" $JOBS) || QMAKE_BUILD_ERROR=yes
[ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake

View File

@ -1,54 +0,0 @@
--- a/src/corelib/thread/qthread_unix.cpp.orig 2015-11-23 19:05:40.000000000 +0100
+++ b/src/corelib/thread/qthread_unix.cpp 2015-11-24 11:22:31.000000000 +0100
@@ -79,6 +79,7 @@
#endif
+#include <sys/resource.h> // getrlimit/setrlimit
#if defined(Q_OS_MAC)
# ifdef qDebug
# define old_qDebug qDebug
# undef qDebug
@@ -649,6 +650,43 @@
#endif // QT_HAS_THREAD_PRIORITY_SCHEDULING
+ if (d->stackSize == 0) {
+ // Fix the default (too small) stack size for threads on OS X,
+ // which also affects the thread pool.
+ // See also:
+ // https://bugreports.qt.io/browse/QTBUG-2568
+ // This fix can also be found in Chromium:
+ // https://chromium.googlesource.com/chromium/src.git/+/master/base/threading/platform_thread_mac.mm#186
+
+ // The Mac OS X default for a pthread stack size is 512kB.
+ // Libc-594.1.4/pthreads/pthread.c's pthread_attr_init uses
+ // DEFAULT_STACK_SIZE for this purpose.
+ //
+ // 512kB isn't quite generous enough for some deeply recursive threads that
+ // otherwise request the default stack size by specifying 0. Here, adopt
+ // glibc's behavior as on Linux, which is to use the current stack size
+ // limit (ulimit -s) as the default stack size. See
+ // glibc-2.11.1/nptl/nptl-init.c's __pthread_initialize_minimal_internal. To
+ // avoid setting the limit below the Mac OS X default or the minimum usable
+ // stack size, these values are also considered. If any of these values
+ // can't be determined, or if stack size is unlimited (ulimit -s unlimited),
+ // stack_size is left at 0 to get the system default.
+ //
+ // Mac OS X normally only applies ulimit -s to the main thread stack. On
+ // contemporary OS X and Linux systems alike, this value is generally 8MB
+ // or in that neighborhood.
+ size_t default_stack_size = 0;
+ struct rlimit stack_rlimit;
+ if (pthread_attr_getstacksize(&attr, &default_stack_size) == 0 &&
+ getrlimit(RLIMIT_STACK, &stack_rlimit) == 0 &&
+ stack_rlimit.rlim_cur != RLIM_INFINITY) {
+ default_stack_size =
+ std::max(std::max(default_stack_size,
+ static_cast<size_t>(PTHREAD_STACK_MIN)),
+ static_cast<size_t>(stack_rlimit.rlim_cur));
+ }
+ d->stackSize = default_stack_size;
+ }
if (d->stackSize > 0) {
#if defined(_POSIX_THREAD_ATTR_STACKSIZE) && (_POSIX_THREAD_ATTR_STACKSIZE-0 > 0)
int code = pthread_attr_setstacksize(&attr, d->stackSize);

View File

@ -1,21 +0,0 @@
qmakeConfigurePhase() {
runHook preConfigure
$QMAKE PREFIX=$out $qmakeFlags
if ! [[ -v enableParallelBuilding ]]; then
enableParallelBuilding=1
echo "qmake4Hook: enabled parallel building"
fi
if ! [[ -v enableParallelInstalling ]]; then
enableParallelInstalling=1
echo "qmake: enabled parallel installing"
fi
runHook postConfigure
}
export QMAKE=@qt4@/bin/qmake
configurePhase=qmakeConfigurePhase

View File

@ -1,17 +0,0 @@
Calling qsettings before constructing qapplications causes a dead-lock.
http://sourceforge.net/tracker/?func=detail&aid=3168620&group_id=4932&atid=104932
http://developer.qt.nokia.com/forums/viewthread/10365
--- ./src/corelib/io/qsettings.cpp.orig
+++ ./src/corelib/io/qsettings.cpp
@@ -122,7 +122,7 @@
Q_GLOBAL_STATIC(ConfFileCache, unusedCacheFunc)
Q_GLOBAL_STATIC(PathHash, pathHashFunc)
Q_GLOBAL_STATIC(CustomFormatVector, customFormatVectorFunc)
-Q_GLOBAL_STATIC(QMutex, globalMutex)
+Q_GLOBAL_STATIC_WITH_ARGS(QMutex, globalMutex, (QMutex::Recursive))
static QSettings::Format globalDefaultFormat = QSettings::NativeFormat;
#ifndef Q_OS_WIN

View File

@ -1,11 +0,0 @@
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -831,7 +831,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
else if(project->first("TEMPLATE") == "app" && !project->isEmpty("QMAKE_STRIPFLAGS_APP"))
ret += " " + var("QMAKE_STRIPFLAGS_APP");
if(bundle)
- ret = " \"" + dst_targ + "/Contents/MacOS/$(QMAKE_TARGET)\"";
+ ret += " \"" + dst_targ + "/Contents/MacOS/$(QMAKE_TARGET)\"";
else
ret += " \"" + dst_targ + "\"";
}

View File

@ -1,11 +0,0 @@
--- qt-everywhere-opensource-src-4.8.5/src/corelib/codecs/qiconvcodec.cpp.orig
+++ qt-everywhere-opensource-src-4.8.5/src/corelib/codecs/qiconvcodec.cpp
@@ -62,7 +62,7 @@
#elif defined(Q_OS_AIX)
# define NO_BOM
# define UTF16 "UCS-2"
-#elif defined(Q_OS_FREEBSD) || defined(Q_OS_MAC)
+#elif defined(Q_OS_FREEBSD) || defined(Q_OS_MAC) || (defined(Q_OS_LINUX) && !defined(__GLIBC__))
# define NO_BOM
# if Q_BYTE_ORDER == Q_BIG_ENDIAN
# define UTF16 "UTF-16BE"

View File

@ -1,14 +0,0 @@
--- qt-everywhere-opensource-src-4.8.5/mkspecs/linux-g++/qplatformdefs.h.orig
+++ qt-everywhere-opensource-src-4.8.5/mkspecs/linux-g++/qplatformdefs.h
@@ -86,11 +86,7 @@
#undef QT_SOCKLEN_T
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
#define QT_SOCKLEN_T socklen_t
-#else
-#define QT_SOCKLEN_T int
-#endif
#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)
#define QT_SNPRINTF ::snprintf

View File

@ -1,33 +0,0 @@
--- qt-everywhere-opensource-src-4.8.7/configure.gcc6 2016-04-15 07:04:19.430268222 -0500
+++ qt-everywhere-opensource-src-4.8.7/configure 2016-04-15 07:05:22.157568689 -0500
@@ -7744,7 +7744,7 @@
*-g++*)
# Check gcc's version
case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
- 5*|4*|3.4*)
+ 9*|8*|7*|6*|5*|4*|3.4*)
;;
3.3*)
canBuildWebKit="no"
@@ -8060,7 +8060,7 @@
3.*)
COMPILER_VERSION="3.*"
;;
- 5*|4.*)
+ 9*|8*|7*|6*|5*|4.*)
COMPILER_VERSION="4"
;;
*)
--- qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h.gcc6 2015-05-07 09:14:48.000000000 -0500
+++ qt-everywhere-opensource-src-4.8.7/src/xmlpatterns/api/qcoloroutput_p.h 2016-04-15 07:04:19.431268227 -0500
@@ -70,8 +70,8 @@
ForegroundShift = 10,
BackgroundShift = 20,
SpecialShift = 20,
- ForegroundMask = ((1 << ForegroundShift) - 1) << ForegroundShift,
- BackgroundMask = ((1 << BackgroundShift) - 1) << BackgroundShift
+ ForegroundMask = 0x1f << ForegroundShift,
+ BackgroundMask = 0x7 << BackgroundShift
};
public:

View File

@ -1,398 +0,0 @@
--- a/src/network/ssl/qsslcertificate.cpp
+++ b/src/network/ssl/qsslcertificate.cpp
@@ -259,10 +259,10 @@
QByteArray QSslCertificate::version() const
{
QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
- if (d->versionString.isEmpty() && d->x509)
+ if (d->versionString.isEmpty() && d->x509) {
d->versionString =
- QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
-
+ QByteArray::number(qlonglong(q_X509_get_version(d->x509)) + 1);
+ }
return d->versionString;
}
@@ -276,7 +276,7 @@
{
QMutexLocker lock(QMutexPool::globalInstanceGet(d.data()));
if (d->serialNumberString.isEmpty() && d->x509) {
- ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
+ ASN1_INTEGER *serialNumber = q_X509_get_serialNumber(d->x509);
// if we cannot convert to a long, just output the hexadecimal number
if (serialNumber->length > 4) {
QByteArray hexString;
@@ -489,24 +489,33 @@
QSslKey key;
key.d->type = QSsl::PublicKey;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
X509_PUBKEY *xkey = d->x509->cert_info->key;
+#else
+ X509_PUBKEY *xkey = q_X509_get_X509_PUBKEY(d->x509);
+#endif
EVP_PKEY *pkey = q_X509_PUBKEY_get(xkey);
Q_ASSERT(pkey);
- if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
+ int key_id;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ key_id = q_EVP_PKEY_type(pkey->type);
+#else
+ key_id = q_EVP_PKEY_base_id(pkey);
+#endif
+ if (key_id == EVP_PKEY_RSA) {
key.d->rsa = q_EVP_PKEY_get1_RSA(pkey);
key.d->algorithm = QSsl::Rsa;
key.d->isNull = false;
- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
+ } else if (key_id == EVP_PKEY_DSA) {
key.d->dsa = q_EVP_PKEY_get1_DSA(pkey);
key.d->algorithm = QSsl::Dsa;
key.d->isNull = false;
- } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
+ } else if (key_id == EVP_PKEY_DH) {
// DH unsupported
} else {
// error?
}
-
q_EVP_PKEY_free(pkey);
return key;
}
--- a/src/network/ssl/qsslkey.cpp
+++ b/src/network/ssl/qsslkey.cpp
@@ -321,8 +321,19 @@
{
if (d->isNull)
return -1;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
return (d->algorithm == QSsl::Rsa)
? q_BN_num_bits(d->rsa->n) : q_BN_num_bits(d->dsa->p);
+#else
+ if (d->algorithm == QSsl::Rsa) {
+ return q_RSA_bits(d->rsa);
+ }else{
+ BIGNUM *p = NULL;
+ q_DSA_get0_pqg(d->dsa, &p, NULL, NULL);
+ return q_BN_num_bits(p);
+ }
+#endif
+
}
/*!
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -93,6 +93,7 @@
bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
bool QSslSocketPrivate::s_loadRootCertsOnDemand = false;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
/* \internal
From OpenSSL's thread(3) manual page:
@@ -174,6 +175,8 @@
}
} // extern "C"
+#endif //OPENSSL_VERSION_NUMBER >= 0x10100000L
+
QSslSocketBackendPrivate::QSslSocketBackendPrivate()
: ssl(0),
ctx(0),
@@ -222,9 +225,12 @@
ciph.d->encryptionMethod = descriptionList.at(4).mid(4);
ciph.d->exportable = (descriptionList.size() > 6 && descriptionList.at(6) == QLatin1String("export"));
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
ciph.d->bits = cipher->strength_bits;
ciph.d->supportedBits = cipher->alg_bits;
-
+#else
+ ciph.d->bits = q_SSL_CIPHER_get_bits(cipher, &ciph.d->supportedBits);
+#endif
}
return ciph;
}
@@ -367,7 +373,7 @@
//
// See also: QSslContext::fromConfiguration()
if (caCertificate.expiryDate() >= QDateTime::currentDateTime()) {
- q_X509_STORE_add_cert(ctx->cert_store, (X509 *)caCertificate.handle());
+ q_X509_STORE_add_cert(q_SSL_CTX_get_cert_store(ctx), (X509 *)caCertificate.handle());
}
}
@@ -504,8 +510,10 @@
*/
void QSslSocketPrivate::deinitialize()
{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
q_CRYPTO_set_id_callback(0);
q_CRYPTO_set_locking_callback(0);
+#endif
}
/*!
@@ -526,13 +534,17 @@
return false;
// Check if the library itself needs to be initialized.
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
QMutexLocker locker(openssl_locks()->initLock());
+#endif
if (!s_libraryLoaded) {
s_libraryLoaded = true;
// Initialize OpenSSL.
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
q_CRYPTO_set_id_callback(id_function);
q_CRYPTO_set_locking_callback(locking_function);
+#endif
if (q_SSL_library_init() != 1)
return false;
q_SSL_load_error_strings();
@@ -571,7 +583,9 @@
void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
{
- QMutexLocker locker(openssl_locks()->initLock());
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ QMutexLocker locker(openssl_locks()->initLock());
+#endif
if (s_loadedCiphersAndCerts)
return;
s_loadedCiphersAndCerts = true;
@@ -663,13 +677,18 @@
STACK_OF(SSL_CIPHER) *supportedCiphers = q_SSL_get_ciphers(mySsl);
for (int i = 0; i < q_sk_SSL_CIPHER_num(supportedCiphers); ++i) {
if (SSL_CIPHER *cipher = q_sk_SSL_CIPHER_value(supportedCiphers, i)) {
- if (cipher->valid) {
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (cipher->valid) {
+#endif
QSslCipher ciph = QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(cipher);
if (!ciph.isNull()) {
if (!ciph.name().toLower().startsWith(QLatin1String("adh")))
ciphers << ciph;
}
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
}
+#endif
}
}
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
@@ -290,6 +290,22 @@
DEFINEFUNC(void, OPENSSL_add_all_algorithms_conf, void, DUMMYARG, return, DUMMYARG)
DEFINEFUNC3(int, SSL_CTX_load_verify_locations, SSL_CTX *ctx, ctx, const char *CAfile, CAfile, const char *CApath, CApath, return 0, return)
DEFINEFUNC(long, SSLeay, void, DUMMYARG, return 0, return)
+DEFINEFUNC(X509_STORE *, SSL_CTX_get_cert_store, const SSL_CTX *ctx, ctx, return 0, return)
+
+DEFINEFUNC(ASN1_INTEGER *, X509_get_serialNumber, X509 *x, x, return 0, return)
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+DEFINEFUNC(int, EVP_PKEY_id, const EVP_PKEY *pkey, pkey, return 0, return)
+DEFINEFUNC(int, EVP_PKEY_base_id, const EVP_PKEY *pkey, pkey, return 0, return)
+DEFINEFUNC2(int, SSL_CIPHER_get_bits, const SSL_CIPHER *cipher, cipher, int *alg_bits, alg_bits, return 0, return)
+DEFINEFUNC2(long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, long options, options, return 0, return)
+DEFINEFUNC(long, X509_get_version, X509 *x, x, return 0, return)
+DEFINEFUNC(X509_PUBKEY *, X509_get_X509_PUBKEY, X509 *x, x, return 0, return)
+DEFINEFUNC(int, RSA_bits, const RSA *rsa, rsa, return 0, return)
+DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
+DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return)
+DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return)
+DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return)
+#endif
#ifdef Q_OS_SYMBIAN
#define RESOLVEFUNC(func, ordinal, lib) \
@@ -801,6 +817,7 @@
RESOLVEFUNC(SSL_CTX_use_PrivateKey)
RESOLVEFUNC(SSL_CTX_use_RSAPrivateKey)
RESOLVEFUNC(SSL_CTX_use_PrivateKey_file)
+ RESOLVEFUNC(SSL_CTX_get_cert_store)
RESOLVEFUNC(SSL_accept)
RESOLVEFUNC(SSL_clear)
RESOLVEFUNC(SSL_connect)
@@ -823,6 +840,23 @@
RESOLVEFUNC(SSL_set_connect_state)
RESOLVEFUNC(SSL_shutdown)
RESOLVEFUNC(SSL_write)
+
+ RESOLVEFUNC(X509_get_serialNumber)
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+ RESOLVEFUNC(SSL_CTX_ctrl)
+ RESOLVEFUNC(EVP_PKEY_id)
+ RESOLVEFUNC(EVP_PKEY_base_id)
+ RESOLVEFUNC(SSL_CIPHER_get_bits)
+ RESOLVEFUNC(SSL_CTX_set_options)
+ RESOLVEFUNC(X509_get_version)
+ RESOLVEFUNC(X509_get_X509_PUBKEY)
+ RESOLVEFUNC(RSA_bits)
+ RESOLVEFUNC(DSA_security_bits)
+ RESOLVEFUNC(DSA_get0_pqg)
+ RESOLVEFUNC(X509_get_notAfter)
+ RESOLVEFUNC(X509_get_notBefore)
+#endif
+
#ifndef OPENSSL_NO_SSL2
RESOLVEFUNC(SSLv2_client_method)
#endif
--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
+++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
@@ -399,7 +399,25 @@
PEM_ASN1_write_bio((int (*)(void*, unsigned char**))q_i2d_DSAPrivateKey,PEM_STRING_DSA,\
bp,(char *)x,enc,kstr,klen,cb,u)
#endif
+
+X509_STORE * q_SSL_CTX_get_cert_store(const SSL_CTX *ctx);
+ASN1_INTEGER * q_X509_get_serialNumber(X509 *x);
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
#define q_SSL_CTX_set_options(ctx,op) q_SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
+#define q_X509_get_version(x) X509_get_version(x)
+#else
+int q_EVP_PKEY_id(const EVP_PKEY *pkey);
+int q_EVP_PKEY_base_id(const EVP_PKEY *pkey);
+int q_SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits);
+long q_SSL_CTX_set_options(SSL_CTX *ctx, long options);
+long q_X509_get_version(X509 *x);
+X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x);
+int q_RSA_bits(const RSA *rsa);
+int q_DSA_security_bits(const DSA *dsa);
+void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g);
+#endif
+
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)
#define q_SKM_sk_value(type, st,i) ((type * (*)(const STACK_OF(type) *, int))q_sk_value)(st, i)
#define q_sk_GENERAL_NAME_num(st) q_SKM_sk_num(GENERAL_NAME, (st))
@@ -410,8 +428,15 @@
#define q_sk_SSL_CIPHER_value(st, i) q_SKM_sk_value(SSL_CIPHER, (st), (i))
#define q_SSL_CTX_add_extra_chain_cert(ctx,x509) \
q_SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
#define q_X509_get_notAfter(x) X509_get_notAfter(x)
#define q_X509_get_notBefore(x) X509_get_notBefore(x)
+#else
+ASN1_TIME *q_X509_get_notAfter(X509 *x);
+ASN1_TIME *q_X509_get_notBefore(X509 *x);
+#endif
+
#define q_EVP_PKEY_assign_RSA(pkey,rsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\
(char *)(rsa))
#define q_EVP_PKEY_assign_DSA(pkey,dsa) q_EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp.omv~ 2017-03-15 02:27:18.143322736 +0100
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslcertificate.cpp 2017-03-15 02:29:56.215819741 +0100
@@ -696,7 +696,7 @@
unsigned char *data = 0;
int size = q_ASN1_STRING_to_UTF8(&data, q_X509_NAME_ENTRY_get_data(e));
info[QString::fromUtf8(obj)] = QString::fromUtf8((char*)data, size);
- q_CRYPTO_free(data);
+ q_OPENSSL_free(data);
}
return info;
}
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp.0131~ 2017-03-15 02:22:37.053244125 +0100
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslkey.cpp 2017-03-15 02:22:37.055244057 +0100
@@ -328,7 +328,7 @@
if (d->algorithm == QSsl::Rsa) {
return q_RSA_bits(d->rsa);
}else{
- BIGNUM *p = NULL;
+ const BIGNUM *p = NULL;
q_DSA_get0_pqg(d->dsa, &p, NULL, NULL);
return q_BN_num_bits(p);
}
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp.0131~ 2017-03-15 02:22:37.054244091 +0100
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2017-03-15 02:29:41.155236836 +0100
@@ -111,16 +111,16 @@
DEFINEFUNC2(int, ASN1_STRING_to_UTF8, unsigned char **a, a, ASN1_STRING *b, b, return 0, return);
DEFINEFUNC4(long, BIO_ctrl, BIO *a, a, int b, b, long c, c, void *d, d, return -1, return)
DEFINEFUNC(int, BIO_free, BIO *a, a, return 0, return)
-DEFINEFUNC(BIO *, BIO_new, BIO_METHOD *a, a, return 0, return)
+DEFINEFUNC(BIO *, BIO_new, const BIO_METHOD *a, a, return 0, return)
DEFINEFUNC2(BIO *, BIO_new_mem_buf, void *a, a, int b, b, return 0, return)
DEFINEFUNC3(int, BIO_read, BIO *a, a, void *b, b, int c, c, return -1, return)
-DEFINEFUNC(BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
+DEFINEFUNC(const BIO_METHOD *, BIO_s_mem, void, DUMMYARG, return 0, return)
DEFINEFUNC3(int, BIO_write, BIO *a, a, const void *b, b, int c, c, return -1, return)
DEFINEFUNC(int, BN_num_bits, const BIGNUM *a, a, return 0, return)
DEFINEFUNC(int, CRYPTO_num_locks, DUMMYARG, DUMMYARG, return 0, return)
DEFINEFUNC(void, CRYPTO_set_locking_callback, void (*a)(int, int, const char *, int), a, return, DUMMYARG)
DEFINEFUNC(void, CRYPTO_set_id_callback, unsigned long (*a)(), a, return, DUMMYARG)
-DEFINEFUNC(void, CRYPTO_free, void *a, a, return, DUMMYARG)
+DEFINEFUNC(void, OPENSSL_free, void *a, a, return, DUMMYARG)
DEFINEFUNC(void, DSA_free, DSA *a, a, return, DUMMYARG)
#if OPENSSL_VERSION_NUMBER < 0x00908000L
DEFINEFUNC3(X509 *, d2i_X509, X509 **a, a, unsigned char **b, b, long c, c, return 0, return)
@@ -300,7 +300,7 @@
DEFINEFUNC(int, DSA_security_bits, const DSA *dsa, dsa, return 0, return)
DEFINEFUNC(ASN1_TIME *, X509_get_notAfter, X509 *x, x, return 0, return)
DEFINEFUNC(ASN1_TIME *, X509_get_notBefore, X509 *x, x, return 0, return)
-DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, BIGNUM **p, p, BIGNUM **q, q, BIGNUM **g, g, return, return)
+DEFINEFUNC4(void, DSA_get0_pqg, const DSA *d, d, const BIGNUM **p, p, const BIGNUM **q, q, const BIGNUM **g, g, return, return)
#endif
#ifdef Q_OS_SYMBIAN
--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h.0131~ 2017-03-15 02:22:37.054244091 +0100
+++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols_p.h 2017-03-15 02:29:50.192986268 +0100
@@ -59,6 +59,9 @@
QT_BEGIN_NAMESPACE
#define DUMMYARG
+#ifndef OPENSSL_NO_SSL2
+#define OPENSSL_NO_SSL2 1
+#endif
#if !defined QT_LINKED_OPENSSL
// **************** Shared declarations ******************
@@ -207,16 +210,16 @@
int q_ASN1_STRING_to_UTF8(unsigned char **a, ASN1_STRING *b);
long q_BIO_ctrl(BIO *a, int b, long c, void *d);
int q_BIO_free(BIO *a);
-BIO *q_BIO_new(BIO_METHOD *a);
+BIO *q_BIO_new(const BIO_METHOD *a);
BIO *q_BIO_new_mem_buf(void *a, int b);
int q_BIO_read(BIO *a, void *b, int c);
-BIO_METHOD *q_BIO_s_mem();
+const BIO_METHOD *q_BIO_s_mem();
int q_BIO_write(BIO *a, const void *b, int c);
int q_BN_num_bits(const BIGNUM *a);
int q_CRYPTO_num_locks();
void q_CRYPTO_set_locking_callback(void (*a)(int, int, const char *, int));
void q_CRYPTO_set_id_callback(unsigned long (*a)());
-void q_CRYPTO_free(void *a);
+void q_OPENSSL_free(void *a);
void q_DSA_free(DSA *a);
#if OPENSSL_VERSION_NUMBER >= 0x00908000L
// 0.9.8 broke SC and BC by changing this function's signature.
@@ -326,7 +329,6 @@
void q_SSL_set_connect_state(SSL *a);
int q_SSL_shutdown(SSL *a);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-const SSL_METHOD *q_SSLv2_client_method();
const SSL_METHOD *q_SSLv3_client_method();
const SSL_METHOD *q_SSLv23_client_method();
const SSL_METHOD *q_TLSv1_client_method();
@@ -335,7 +337,6 @@
const SSL_METHOD *q_SSLv23_server_method();
const SSL_METHOD *q_TLSv1_server_method();
#else
-SSL_METHOD *q_SSLv2_client_method();
SSL_METHOD *q_SSLv3_client_method();
SSL_METHOD *q_SSLv23_client_method();
SSL_METHOD *q_TLSv1_client_method();
@@ -415,7 +416,7 @@
X509_PUBKEY * q_X509_get_X509_PUBKEY(X509 *x);
int q_RSA_bits(const RSA *rsa);
int q_DSA_security_bits(const DSA *dsa);
-void q_DSA_get0_pqg(const DSA *d, BIGNUM **p, BIGNUM **q, BIGNUM **g);
+void q_DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
#endif
#define q_SKM_sk_num(type, st) ((int (*)(const STACK_OF(type) *))q_sk_num)(st)

View File

@ -1,54 +0,0 @@
{ lib, stdenv, fetchFromGitHub, qt4, libX11, coreutils, bluez, perl }:
# possible additional dependencies: pulseaudio udev networkmanager immerson qmf
stdenv.mkDerivation rec {
version = "1.2.0";
pname = "qt-mobility";
src = fetchFromGitHub {
owner = "qtproject";
repo = "qt-mobility";
rev = "v${version}";
sha256 = "14713pbscysd6d0b9rgm7gg145jzwvgdn22778pf2v13qzvfmy1i";
};
env.NIX_CFLAGS_COMPILE = "-fpermissive";
configurePhase = ''
./configure -prefix $out
'';
# we need to prevent the 'make install' to want to write to ${qt4}!
# according to thiago#qt@freenode these are used for the QML engine
preBuild = ''
for i in connectivity contacts feedback gallery location multimedia organizer publishsubscribe sensors serviceframework systeminfo; do
substituteInPlace plugins/declarative/$i/Makefile --replace "${qt4}/lib/qt4/imports/" "$out/lib/qt4/imports/"
done
'';
# Features files (*.prf) are not installed on nixos
# https://bugreports.qt-project.org/browse/QTMOBILITY-1085
# - features/mobility.prf (/tmp/nix-build-9kh12nhf9cyplfwiws96gz414v6wgl67-qt-mobility-1.2.0.drv-0/qt-mobility-opensource-src-1.2.0)
patchPhase = ''
# required to make the configure script work
substituteInPlace configure --replace "/bin/pwd" "${coreutils}/bin/pwd"
# required to make /include generator work
substituteInPlace bin/syncheaders --replace "/usr/bin/perl" "${perl}/bin/perl"
# required to make the -prefix variable parsing work
substituteInPlace bin/pathhelper --replace "/usr/bin/perl" "${perl}/bin/perl"
'';
buildInputs = [ qt4 libX11 bluez perl ];
meta = with lib; {
description = "Qt Mobility";
homepage = "http://qt.nokia.com/products/qt-addons/mobility";
maintainers = [ maintainers.qknight ];
platforms = platforms.linux;
license = with licenses; [ bsd3 fdl13Plus gpl3Plus lgpl21Plus ];
};
}

View File

@ -1,42 +0,0 @@
{ lib, stdenv, fetchFromGitHub, qmake4Hook , qt4, libX11, libXext }:
stdenv.mkDerivation rec {
pname = "qtstyleplugin-kvantum-qt4";
version = "1.0.10";
src = fetchFromGitHub {
owner = "tsujan";
repo = "Kvantum";
rev = "V${version}";
hash = "sha256-48Blio8qHLmXSKG0c1tphXSfiwQXs0Xqwxe187nM3Ro=";
};
nativeBuildInputs = [ qmake4Hook ];
buildInputs = [ qt4 libX11 libXext ];
sourceRoot = "${src.name}/Kvantum";
buildPhase = ''
runHook preBuild
qmake kvantum.pro
make
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir $TMP/kvantum
make INSTALL_ROOT="$TMP/kvantum" install
mv $TMP/kvantum/usr/ $out
mv $TMP/kvantum/${qt4}/lib $out
runHook postInstall
'';
meta = with lib; {
description = "SVG-based Qt4 theme engine";
homepage = "https://github.com/tsujan/Kvantum";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.bugworm ];
};
}

View File

@ -1,42 +0,0 @@
{ lib, stdenv, fetchurl, qt4, qmake4Hook, AGL }:
stdenv.mkDerivation rec {
pname = "qwt";
version = "6.1.5";
src = fetchurl {
url = "mirror://sourceforge/qwt/qwt-${version}.tar.bz2";
sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0";
};
buildInputs = [
qt4
] ++ lib.optionals stdenv.isDarwin [ AGL ];
nativeBuildInputs = [ qmake4Hook ];
enableParallelBuilding = true;
postPatch = ''
sed -e "s|QWT_INSTALL_PREFIX.*=.*|QWT_INSTALL_PREFIX = $out|g" -i qwtconfig.pri
'';
# qwt.framework output includes a relative reference to itself, which breaks dependents
preFixup =
lib.optionalString stdenv.isDarwin ''
echo "Attempting to repair qwt"
install_name_tool -id "$out/lib/qwt.framework/Versions/6/qwt" "$out/lib/qwt.framework/Versions/6/qwt"
'';
qmakeFlags = [ "-after doc.path=$out/share/doc/qwt-${version}" ];
meta = with lib; {
description = "Qt widgets for technical applications";
homepage = "http://qwt.sourceforge.net/";
# LGPL 2.1 plus a few exceptions (more liberal)
license = lib.licenses.qwt;
platforms = platforms.linux ++ platforms.darwin;
maintainers = [ maintainers.bjornfor ];
branch = "6";
};
}

View File

@ -1,23 +0,0 @@
{ stdenv, lib, cmake, qt4, fetchzip }:
stdenv.mkDerivation rec {
pname = "smokegen";
version = "4.14.3";
src = fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz";
hash = "sha256-finsoruPeJZLawIjNUJ25Pq54eaCByfALVraNQJPk7c=";
};
strictDeps = true;
nativeBuildInputs = [ cmake qt4 ];
buildInputs = [ qt4 ];
meta = with lib; {
description = "A general purpose C++ parser with a plugin infrastructure";
homepage = "https://invent.kde.org/unmaintained/smokegen";
license = licenses.gpl2Only;
platforms = platforms.unix;
maintainers = with maintainers; [ uthar ];
};
}

View File

@ -1,27 +0,0 @@
{ stdenv, lib, cmake, qt4, smokegen, fetchzip }:
stdenv.mkDerivation rec {
pname = "smokeqt";
version = "4.14.3";
src = fetchzip {
url = "https://invent.kde.org/unmaintained/${pname}/-/archive/v${version}/${pname}-v${version}.tar.gz";
hash = "sha256-8FiEGF8gduVw5I/bi2wExGUWmjIjYEhWpjpXKJGBNMg=";
};
strictDeps = true;
nativeBuildInputs = [ cmake smokegen ];
buildInputs = [ qt4 ];
cmakeFlags = [
"-DCMAKE_CXX_STANDARD=98"
];
meta = with lib; {
description = "Bindings for the Qt libraries";
homepage = "https://invent.kde.org/unmaintained/smokeqt";
license = licenses.gpl2Only;
platforms = platforms.unix;
maintainers = with maintainers; [ uthar ];
};
}

View File

@ -11,9 +11,6 @@ let
optionals
hasSuffix
splitString
remove
optionalString
stringLength
;
# Used by builds that would otherwise attempt to write into storeDir.
@ -45,11 +42,6 @@ let
# Patches are already applied in `build`
patches = [];
src = build;
# TODO(kasper): handle this with a setup hook
LD_LIBRARY_PATH =
build.LD_LIBRARY_PATH
+ (optionalString (stringLength build.LD_LIBRARY_PATH != 0) ":")
+ "${build}";
});
# A little hacky
@ -340,97 +332,5 @@ let
};
version = "f19162e76";
});
qt = let
rev = "dffff3ee3dbd0686c85c323f579b8bbf4881e60e";
in build-with-compile-into-pwd rec {
pname = "commonqt";
version = builtins.substring 0 7 rev;
src = pkgs.fetchFromGitHub {
inherit rev;
owner = pname;
repo = pname;
hash = "sha256-GAgwT0D9mIkYPTHfCH/KxxIv7b6QGwcxwZE7ehH5xug=";
};
buildInputs = [ pkgs.qt4 ];
nativeBuildInputs = [ pkgs.smokegen pkgs.smokeqt ];
nativeLibs = [ pkgs.qt4 pkgs.smokegen pkgs.smokeqt ];
systems = [ "qt" ];
lispLibs = with ql; [
cffi named-readtables cl-ppcre alexandria
closer-mop iterate trivial-garbage bordeaux-threads
];
};
qt-libs = build-with-compile-into-pwd {
inherit (ql.qt-libs) pname version src;
patches = [ ./patches/qt-libs-dont-download.patch ];
prePatch = ''
substituteInPlace systems/*.asd --replace ":qt+libs" ":qt"
echo "LD Path: $LD_LIBRARY_PATH"
'';
lispLibs = ql.qt-libs.lispLibs ++ [ qt ];
systems = [
"qt-libs"
"commonqt"
# "phonon"
# "qimageblitz"
# "qsci"
"qt3support"
"qtcore"
"qtdbus"
"qtdeclarative"
"qtgui"
"qthelp"
"qtnetwork"
"qtopengl"
"qtscript"
"qtsql"
"qtsvg"
"qttest"
"qtuitools"
# "qtwebkit"
"qtxml"
"qtxmlpatterns"
# "qwt"
"smokebase"
];
};
commonqt = qt-libs;
qt3support = qt-libs;
qtcore = qt-libs;
qtdbus = qt-libs;
qtdeclarative = qt-libs;
qtgui = qt-libs;
qthelp = qt-libs;
qtnetwork = qt-libs;
qtopengl = qt-libs;
qtscript = qt-libs;
qtsql = qt-libs;
qtsvg = qt-libs;
qttest = qt-libs;
qtuitools = qt-libs;
qtxml = qt-libs;
qtxmlpatterns = qt-libs;
smokebase = qt-libs;
qtools = build-with-compile-into-pwd {
inherit (ql.qtools) pname version src nativeLibs;
lispLibs = [ qt ] ++ remove ql.qt_plus_libs ql.qtools.lispLibs ++ [ qt-libs ];
patches = [ ./patches/qtools-use-nix-libs.patch ];
};
magicl = build-with-compile-into-pwd {
inherit (ql.magicl) pname version src lispLibs;
nativeBuildInputs = [ pkgs.gfortran ];
nativeLibs = [ pkgs.openblas ];
patches = [ ./patches/magicl-dont-build-fortran-twice.patch ];
};
};
in packages

View File

@ -1,36 +0,0 @@
--- a/qt-libs.asd
+++ b/qt-libs.asd
@@ -17,5 +17,4 @@
:components ((:file "qt-libs"))
:depends-on (:qt-lib-generator
:cl-ppcre
- :cffi)
- :perform (asdf:load-op :after (op c) (uiop:symbol-call :qt-libs :ensure-standalone-libs)))
+ :cffi))
--- a/qt-libs.lisp
+++ b/qt-libs.lisp
@@ -94,16 +94,14 @@
standalone-dir)
(defun %ensure-lib-loaded (file)
- (let ((file (etypecase file
- (pathname file)
- (string (installed-library-file file))))
- (name (intern (string-upcase (pathname-name file))))
- #+sbcl(sb-ext:*muffled-warnings* 'style-warning))
- (cffi::register-foreign-library
- name `((T ,file))
- :search-path (to-directory file))
- (unless (cffi:foreign-library-loaded-p name)
- (cffi:load-foreign-library name))))
+ (let ((name (make-pathname :name (format nil "lib~a" file)
+ :type #+unix "so"
+ #+darwin "dylib")))
+ (or (find-if (lambda (lib)
+ (equal (cffi:foreign-library-pathname lib)
+ (namestring name)))
+ (cffi:list-foreign-libraries))
+ (cffi:load-foreign-library name))))
(defun ensure-lib-loaded (file)
(cond ((pathnamep file)

View File

@ -535,88 +535,6 @@ let
});
qt = let
rev = "dffff3ee3dbd0686c85c323f579b8bbf4881e60e";
in build-with-compile-into-pwd rec {
pname = "commonqt";
version = builtins.substring 0 7 rev;
src = pkgs.fetchFromGitHub {
inherit rev;
owner = pname;
repo = pname;
hash = "sha256-GAgwT0D9mIkYPTHfCH/KxxIv7b6QGwcxwZE7ehH5xug=";
};
buildInputs = [ pkgs.qt4 ];
nativeBuildInputs = [ pkgs.smokegen pkgs.smokeqt ];
nativeLibs = [ pkgs.qt4 pkgs.smokegen pkgs.smokeqt ];
systems = [ "qt" ];
lispLibs = with super; [
cffi named-readtables cl-ppcre alexandria
closer-mop iterate trivial-garbage bordeaux-threads
];
};
qt-libs = build-with-compile-into-pwd {
inherit (super.qt-libs) pname version src;
patches = [ ./patches/qt-libs-dont-download.patch ];
prePatch = ''
substituteInPlace systems/*.asd --replace ":qt+libs" ":qt"
'';
lispLibs = super.qt-libs.lispLibs ++ [ self.qt ];
systems = [
"qt-libs"
"commonqt"
# "phonon"
# "qimageblitz"
# "qsci"
"qt3support"
"qtcore"
"qtdbus"
"qtdeclarative"
"qtgui"
"qthelp"
"qtnetwork"
"qtopengl"
"qtscript"
"qtsql"
"qtsvg"
"qttest"
"qtuitools"
# "qtwebkit"
"qtxml"
"qtxmlpatterns"
# "qwt"
"smokebase"
];
};
commonqt = self.qt-libs;
qt3support = self.qt-libs;
qtcore = self.qt-libs;
qtdbus = self.qt-libs;
qtdeclarative = self.qt-libs;
qtgui = self.qt-libs;
qthelp = self.qt-libs;
qtnetwork = self.qt-libs;
qtopengl = self.qt-libs;
qtscript = self.qt-libs;
qtsql = self.qt-libs;
qtsvg = self.qt-libs;
qttest = self.qt-libs;
qtuitools = self.qt-libs;
qtxml = self.qt-libs;
qtxmlpatterns = self.qt-libs;
smokebase = self.qt-libs;
qtools = build-with-compile-into-pwd {
inherit (super.qtools) pname version src nativeLibs;
lispLibs = [ self.qt ] ++ remove super.qt_plus_libs super.qtools.lispLibs ++ [ self.qt-libs ];
patches = [ ./patches/qtools-use-nix-libs.patch ];
};
magicl = build-with-compile-into-pwd {
inherit (super.magicl) pname version src lispLibs;
nativeBuildInputs = [ pkgs.gfortran ];

View File

@ -1,19 +0,0 @@
Dont use the qt+libs system for managing Qt dependencies, because Nix provides
them already.
Don't build the deploy.lisp helper file, because Nix also can handle deployment.
--- a/qtools.asd
+++ b/qtools.asd
@@ -33,10 +33,9 @@
(:file "generate")
(:file "dynamic")
(:file "precompile")
- (:file "deploy")
(:file "fast-call")
(:file "documentation"))
- :depends-on (:qt+libs
+ :depends-on (:qt
:deploy
:cl-ppcre
:closer-mop
Diff finished. Sun Oct 2 14:38:06 2022

View File

@ -7,7 +7,6 @@
, withTreeVisualization ? false
, lxml
, withXmlSupport ? false
, pyqt4
, pyqt5
}:
@ -25,7 +24,7 @@ buildPythonPackage rec {
pythonImportsCheck = [ "ete3" ];
propagatedBuildInputs = [ six numpy ]
++ lib.optional withTreeVisualization (if isPy3k then pyqt5 else pyqt4)
++ lib.optional withTreeVisualization pyqt5
++ lib.optional withXmlSupport lxml;
meta = with lib; {

View File

@ -20,7 +20,7 @@
buildPythonPackage rec {
pname = "mautrix";
version = "0.20.0";
version = "0.20.1";
format = "setuptools";
disabled = pythonOlder "3.9";
@ -29,7 +29,7 @@ buildPythonPackage rec {
owner = "mautrix";
repo = "python";
rev = "refs/tags/v${version}";
hash = "sha256-op28CGpJBcCBiy0WXboaf4JeNRIMX6653QkAV6XW/yI=";
hash = "sha256-Byvwg6WW4b8kRWJkl6DG2Ioz4HYDaJyVEV98tS/ybXQ=";
};
propagatedBuildInputs = [

View File

@ -2,7 +2,6 @@
, buildPythonPackage
, fetchFromGitHub
, vmprof
, pyqt4
, isPyPy
, pkgs
, scons
@ -21,7 +20,7 @@ buildPythonPackage rec {
hash = "sha256-8eWOcxATVS866nlN39b2VU1CuXAfcn0yQsDweHS2yDU=";
};
nativeCheckInputs = [ vmprof pyqt4 ];
nativeCheckInputs = [ vmprof ];
nativeBuildInputs = [ scons ];
propagatedBuildInputs = [ chrpath ];

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