Merge master into haskell-updates
This commit is contained in:
commit
d6c63a3ceb
|
@ -77,7 +77,7 @@ In Nixpkgs, we have multiple implementations of the BLAS/LAPACK numerical linear
|
|||
|
||||
The Nixpkgs attribute is `openblas` for ILP64 (integer width = 64 bits) and `openblasCompat` for LP64 (integer width = 32 bits). `openblasCompat` is the default.
|
||||
|
||||
- [LAPACK reference](http://www.netlib.org/lapack/) (also provides BLAS)
|
||||
- [LAPACK reference](http://www.netlib.org/lapack/) (also provides BLAS and CBLAS)
|
||||
|
||||
The Nixpkgs attribute is `lapack-reference`.
|
||||
|
||||
|
@ -117,7 +117,23 @@ $ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH n
|
|||
|
||||
Intel MKL requires an `openmp` implementation when running with multiple processors. By default, `mkl` will use Intel's `iomp` implementation if no other is specified, but this is a runtime-only dependency and binary compatible with the LLVM implementation. To use that one instead, Intel recommends users set it with `LD_PRELOAD`. Note that `mkl` is only available on `x86_64-linux` and `x86_64-darwin`. Moreover, Hydra is not building and distributing pre-compiled binaries using it.
|
||||
|
||||
For BLAS/LAPACK switching to work correctly, all packages must depend on `blas` or `lapack`. This ensures that only one BLAS/LAPACK library is used at one time. There are two versions of BLAS/LAPACK currently in the wild, `LP64` (integer size = 32 bits) and `ILP64` (integer size = 64 bits). Some software needs special flags or patches to work with `ILP64`. You can check if `ILP64` is used in Nixpkgs with `blas.isILP64` and `lapack.isILP64`. Some software does NOT work with `ILP64`, and derivations need to specify an assertion to prevent this. You can prevent `ILP64` from being used with the following:
|
||||
To override `blas` and `lapack` with its reference implementations (i.e. for development purposes), one can use the following overlay:
|
||||
|
||||
```nix
|
||||
self: super:
|
||||
|
||||
{
|
||||
blas = super.blas.override {
|
||||
blasProvider = self.lapack-reference;
|
||||
};
|
||||
|
||||
lapack = super.lapack.override {
|
||||
lapackProvider = self.lapack-reference;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
For BLAS/LAPACK switching to work correctly, all packages must depend on `blas` or `lapack`. This ensures that only one BLAS/LAPACK library is used at one time. There are two versions of BLAS/LAPACK currently in the wild, `LP64` (integer size = 32 bits) and `ILP64` (integer size = 64 bits). The attributes `blas` and `lapack` are `LP64` by default. Their `ILP64` version are provided through the attributes `blas-ilp64` and `lapack-ilp64`. Some software needs special flags or patches to work with `ILP64`. You can check if `ILP64` is used in Nixpkgs with `blas.isILP64` and `lapack.isILP64`. Some software does NOT work with `ILP64`, and derivations need to specify an assertion to prevent this. You can prevent `ILP64` from being used with the following:
|
||||
|
||||
```nix
|
||||
{ stdenv, blas, lapack, ... }:
|
||||
|
|
|
@ -7241,6 +7241,12 @@
|
|||
githubId = 918448;
|
||||
name = "Anthony Lodi";
|
||||
};
|
||||
loicreynier = {
|
||||
email = "loic@loireynier.fr";
|
||||
github = "loicreynier";
|
||||
githubId = 88983487;
|
||||
name = "Loïc Reynier";
|
||||
};
|
||||
lopsided98 = {
|
||||
email = "benwolsieffer@gmail.com";
|
||||
github = "lopsided98";
|
||||
|
|
|
@ -306,6 +306,12 @@
|
|||
with many features.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://clusterlabs.org/pacemaker/">pacemaker</link>
|
||||
cluster resource manager
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-22.05-incompatibilities">
|
||||
|
@ -404,6 +410,24 @@
|
|||
in your configuration.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>fonts.fonts</literal> no longer includes ancient
|
||||
bitmap fonts when both
|
||||
<literal>config.services.xserver.enable</literal> and
|
||||
<literal>config.nixpkgs.config.allowUnfree</literal> are
|
||||
enabled. If you still want these fonts, use:
|
||||
</para>
|
||||
<programlisting language="bash">
|
||||
{
|
||||
fonts.fonts = [
|
||||
pkgs.xorg.fontbhlucidatypewriter100dpi
|
||||
pkgs.xorg.fontbhlucidatypewriter75dpi
|
||||
pkgs.xorg.fontbh100dpi
|
||||
];
|
||||
}
|
||||
</programlisting>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The DHCP server (<literal>services.dhcpd4</literal>,
|
||||
|
@ -1290,6 +1314,15 @@
|
|||
<literal>pkgs.theLoungePlugins.themes</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option
|
||||
<literal>services.xserver.videoDriver = [ "nvidia" ];</literal>
|
||||
will now also install
|
||||
<link xlink:href="https://github.com/elFarto/nvidia-vaapi-driver">nvidia
|
||||
VA-API drivers</link> by default.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>firmwareLinuxNonfree</literal> package has been
|
||||
|
|
|
@ -87,6 +87,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [blocky](https://0xerr0r.github.io/blocky/), fast and lightweight DNS proxy as ad-blocker for local network with many features.
|
||||
|
||||
- [pacemaker](https://clusterlabs.org/pacemaker/) cluster resource manager
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
|
||||
|
@ -131,6 +133,19 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
This change may require a reboot to take effect, and k3s may not be able to run if the boot cgroup hierarchy does not match its configuration.
|
||||
The previous behavior may be retained by explicitly setting `systemd.enableUnifiedCgroupHierarchy = false` in your configuration.
|
||||
|
||||
- `fonts.fonts` no longer includes ancient bitmap fonts when both `config.services.xserver.enable` and `config.nixpkgs.config.allowUnfree` are enabled.
|
||||
If you still want these fonts, use:
|
||||
|
||||
```nix
|
||||
{
|
||||
fonts.fonts = [
|
||||
pkgs.xorg.fontbhlucidatypewriter100dpi
|
||||
pkgs.xorg.fontbhlucidatypewriter75dpi
|
||||
pkgs.xorg.fontbh100dpi
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
- The DHCP server (`services.dhcpd4`, `services.dhcpd6`) has been hardened.
|
||||
The service is now using the systemd's `DynamicUser` mechanism to run as an unprivileged dynamically-allocated user with limited capabilities.
|
||||
The dhcpd state files are now always stored in `/var/lib/dhcpd{4,6}` and the `services.dhcpd4.stateDir` and `service.dhcpd6.stateDir` options have been removed.
|
||||
|
@ -477,6 +492,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The option `services.thelounge.plugins` has been added to allow installing plugins for The Lounge. Plugins can be found in `pkgs.theLoungePlugins.plugins` and `pkgs.theLoungePlugins.themes`.
|
||||
|
||||
- The option `services.xserver.videoDriver = [ "nvidia" ];` will now also install [nvidia VA-API drivers](https://github.com/elFarto/nvidia-vaapi-driver) by default.
|
||||
|
||||
- The `firmwareLinuxNonfree` package has been renamed to `linux-firmware`.
|
||||
|
||||
- It is now possible to specify wordlists to include as handy to access environment variables using the `config.environment.wordlist` configuration options.
|
||||
|
|
|
@ -39,11 +39,6 @@ let
|
|||
defaultXFonts =
|
||||
[ (if hasHidpi then fontcursormisc_hidpi else pkgs.xorg.fontcursormisc)
|
||||
pkgs.xorg.fontmiscmisc
|
||||
] ++ optionals (config.nixpkgs.config.allowUnfree or false)
|
||||
[ # these are unfree, and will make usage with xserver fail
|
||||
pkgs.xorg.fontbhlucidatypewriter100dpi
|
||||
pkgs.xorg.fontbhlucidatypewriter75dpi
|
||||
pkgs.xorg.fontbh100dpi
|
||||
];
|
||||
|
||||
in
|
||||
|
|
|
@ -285,8 +285,12 @@ in
|
|||
|
||||
hardware.opengl.package = mkIf (!offloadCfg.enable) nvidia_x11.out;
|
||||
hardware.opengl.package32 = mkIf (!offloadCfg.enable) nvidia_x11.lib32;
|
||||
hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;
|
||||
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32;
|
||||
hardware.opengl.extraPackages = [
|
||||
pkgs.nvidia-vaapi-driver
|
||||
] ++ optional offloadCfg.enable nvidia_x11.out;
|
||||
hardware.opengl.extraPackages32 = [
|
||||
pkgs.pkgsi686Linux.nvidia-vaapi-driver
|
||||
] ++ optional offloadCfg.enable nvidia_x11.lib32;
|
||||
|
||||
environment.systemPackages = [ nvidia_x11.bin ]
|
||||
++ optionals cfg.nvidiaSettings [ nvidia_x11.settings ]
|
||||
|
|
|
@ -302,6 +302,7 @@
|
|||
./services/backup/znapzend.nix
|
||||
./services/blockchain/ethereum/geth.nix
|
||||
./services/backup/zrepl.nix
|
||||
./services/cluster/corosync/default.nix
|
||||
./services/cluster/hadoop/default.nix
|
||||
./services/cluster/k3s/default.nix
|
||||
./services/cluster/kubernetes/addons/dns.nix
|
||||
|
@ -314,6 +315,7 @@
|
|||
./services/cluster/kubernetes/pki.nix
|
||||
./services/cluster/kubernetes/proxy.nix
|
||||
./services/cluster/kubernetes/scheduler.nix
|
||||
./services/cluster/pacemaker/default.nix
|
||||
./services/cluster/spark/default.nix
|
||||
./services/computing/boinc/client.nix
|
||||
./services/computing/foldingathome/client.nix
|
||||
|
|
|
@ -40,13 +40,15 @@ in
|
|||
KDEDIRS = [ "" ];
|
||||
QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
|
||||
QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
|
||||
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
||||
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" "/lib/gtk-4.0" ];
|
||||
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
||||
XDG_DATA_DIRS = [ "/share" ];
|
||||
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
||||
LIBEXEC_PATH = [ "/lib/libexec" ];
|
||||
};
|
||||
|
||||
environment.pathsToLink = [ "/lib/gtk-2.0" "/lib/gtk-3.0" "/lib/gtk-4.0" ];
|
||||
|
||||
environment.extraInit =
|
||||
''
|
||||
unset ASPELL_CONF
|
||||
|
|
112
nixos/modules/services/cluster/corosync/default.nix
Normal file
112
nixos/modules/services/cluster/corosync/default.nix
Normal file
|
@ -0,0 +1,112 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.corosync;
|
||||
in
|
||||
{
|
||||
# interface
|
||||
options.services.corosync = {
|
||||
enable = mkEnableOption "corosync";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.corosync;
|
||||
defaultText = literalExpression "pkgs.corosync";
|
||||
description = "Package that should be used for corosync.";
|
||||
};
|
||||
|
||||
clusterName = mkOption {
|
||||
type = types.str;
|
||||
default = "nixcluster";
|
||||
description = "Name of the corosync cluster.";
|
||||
};
|
||||
|
||||
extraOptions = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [];
|
||||
description = "Additional options with which to start corosync.";
|
||||
};
|
||||
|
||||
nodelist = mkOption {
|
||||
description = "Corosync nodelist: all cluster members.";
|
||||
default = [];
|
||||
type = with types; listOf (submodule {
|
||||
options = {
|
||||
nodeid = mkOption {
|
||||
type = int;
|
||||
description = "Node ID number";
|
||||
};
|
||||
name = mkOption {
|
||||
type = str;
|
||||
description = "Node name";
|
||||
};
|
||||
ring_addrs = mkOption {
|
||||
type = listOf str;
|
||||
description = "List of addresses, one for each ring.";
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
environment.etc."corosync/corosync.conf".text = ''
|
||||
totem {
|
||||
version: 2
|
||||
secauth: on
|
||||
cluster_name: ${cfg.clusterName}
|
||||
transport: knet
|
||||
}
|
||||
|
||||
nodelist {
|
||||
${concatMapStrings ({ nodeid, name, ring_addrs }: ''
|
||||
node {
|
||||
nodeid: ${toString nodeid}
|
||||
name: ${name}
|
||||
${concatStrings (imap0 (i: addr: ''
|
||||
ring${toString i}_addr: ${addr}
|
||||
'') ring_addrs)}
|
||||
}
|
||||
'') cfg.nodelist}
|
||||
}
|
||||
|
||||
quorum {
|
||||
# only corosync_votequorum is supported
|
||||
provider: corosync_votequorum
|
||||
wait_for_all: 0
|
||||
${optionalString (builtins.length cfg.nodelist < 3) ''
|
||||
two_node: 1
|
||||
''}
|
||||
}
|
||||
|
||||
logging {
|
||||
to_syslog: yes
|
||||
}
|
||||
'';
|
||||
|
||||
environment.etc."corosync/uidgid.d/root".text = ''
|
||||
# allow pacemaker connection by root
|
||||
uidgid {
|
||||
uid: 0
|
||||
gid: 0
|
||||
}
|
||||
'';
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.services.corosync = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
StateDirectory = "corosync";
|
||||
StateDirectoryMode = "0700";
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."sysconfig/corosync".text = lib.optionalString (cfg.extraOptions != []) ''
|
||||
COROSYNC_OPTIONS="${lib.escapeShellArgs cfg.extraOptions}"
|
||||
'';
|
||||
};
|
||||
}
|
52
nixos/modules/services/cluster/pacemaker/default.nix
Normal file
52
nixos/modules/services/cluster/pacemaker/default.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.pacemaker;
|
||||
in
|
||||
{
|
||||
# interface
|
||||
options.services.pacemaker = {
|
||||
enable = mkEnableOption "pacemaker";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.pacemaker;
|
||||
defaultText = literalExpression "pkgs.pacemaker";
|
||||
description = "Package that should be used for pacemaker.";
|
||||
};
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [ {
|
||||
assertion = config.services.corosync.enable;
|
||||
message = ''
|
||||
Enabling services.pacemaker requires a services.corosync configuration.
|
||||
'';
|
||||
} ];
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
# required by pacemaker
|
||||
users.users.hacluster = {
|
||||
isSystemUser = true;
|
||||
group = "pacemaker";
|
||||
home = "/var/lib/pacemaker";
|
||||
};
|
||||
users.groups.pacemaker = {};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/log/pacemaker 0700 hacluster pacemaker -"
|
||||
];
|
||||
|
||||
systemd.packages = [ cfg.package ];
|
||||
systemd.services.pacemaker = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
StateDirectory = "pacemaker";
|
||||
StateDirectoryMode = "0700";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1008,7 +1008,11 @@ in
|
|||
#InaccessiblePaths = [ "-+${runDir}/root" ];
|
||||
UMask = "0066";
|
||||
BindPaths = [ stateDir ];
|
||||
BindReadOnlyPaths = [ storeDir "/etc" ];
|
||||
BindReadOnlyPaths = [ storeDir "/etc" ] ++
|
||||
optionals config.services.resolved.enable [
|
||||
"/run/systemd/resolve/stub-resolv.conf"
|
||||
"/run/systemd/resolve/resolv.conf"
|
||||
];
|
||||
AmbientCapabilities = [""] ++ lib.optional bindsPrivilegedPort "CAP_NET_BIND_SERVICE";
|
||||
CapabilityBoundingSet = [""] ++ lib.optional bindsPrivilegedPort "CAP_NET_BIND_SERVICE";
|
||||
# ProtectClock= adds DeviceAllow=char-rtc r
|
||||
|
|
|
@ -384,6 +384,7 @@ in
|
|||
os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
|
||||
osrm-backend = handleTest ./osrm-backend.nix {};
|
||||
overlayfs = handleTest ./overlayfs.nix {};
|
||||
pacemaker = handleTest ./pacemaker.nix {};
|
||||
packagekit = handleTest ./packagekit.nix {};
|
||||
pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
|
||||
pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
|
||||
|
@ -433,6 +434,7 @@ in
|
|||
prometheus = handleTest ./prometheus.nix {};
|
||||
prometheus-exporters = handleTest ./prometheus-exporters.nix {};
|
||||
prosody = handleTest ./xmpp/prosody.nix {};
|
||||
prosody-mysql = handleTest ./xmpp/prosody-mysql.nix {};
|
||||
proxy = handleTest ./proxy.nix {};
|
||||
prowlarr = handleTest ./prowlarr.nix {};
|
||||
pt2-clone = handleTest ./pt2-clone.nix {};
|
||||
|
|
110
nixos/tests/pacemaker.nix
Normal file
110
nixos/tests/pacemaker.nix
Normal file
|
@ -0,0 +1,110 @@
|
|||
import ./make-test-python.nix ({ pkgs, lib, ... }: rec {
|
||||
name = "pacemaker";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ astro ];
|
||||
};
|
||||
|
||||
nodes =
|
||||
let
|
||||
node = i: {
|
||||
networking.interfaces.eth1.ipv4.addresses = [ {
|
||||
address = "192.168.0.${toString i}";
|
||||
prefixLength = 24;
|
||||
} ];
|
||||
|
||||
services.corosync = {
|
||||
enable = true;
|
||||
clusterName = "zentralwerk-network";
|
||||
nodelist = lib.imap (i: name: {
|
||||
nodeid = i;
|
||||
inherit name;
|
||||
ring_addrs = [
|
||||
(builtins.head nodes.${name}.networking.interfaces.eth1.ipv4.addresses).address
|
||||
];
|
||||
}) (builtins.attrNames nodes);
|
||||
};
|
||||
environment.etc."corosync/authkey" = {
|
||||
source = builtins.toFile "authkey"
|
||||
# minimum length: 128 bytes
|
||||
"testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest";
|
||||
mode = "0400";
|
||||
};
|
||||
|
||||
services.pacemaker.enable = true;
|
||||
|
||||
# used for pacemaker resource
|
||||
systemd.services.ha-cat = {
|
||||
description = "Highly available netcat";
|
||||
serviceConfig.ExecStart = "${pkgs.netcat}/bin/nc -l discard";
|
||||
};
|
||||
};
|
||||
in {
|
||||
node1 = node 1;
|
||||
node2 = node 2;
|
||||
node3 = node 3;
|
||||
};
|
||||
|
||||
# sets up pacemaker with resources configuration, then crashes a
|
||||
# node and waits for service restart on another node
|
||||
testScript =
|
||||
let
|
||||
resources = builtins.toFile "cib-resources.xml" ''
|
||||
<resources>
|
||||
<primitive id="cat" class="systemd" type="ha-cat">
|
||||
<operations>
|
||||
<op id="stop-cat" name="start" interval="0" timeout="1s"/>
|
||||
<op id="start-cat" name="start" interval="0" timeout="1s"/>
|
||||
<op id="monitor-cat" name="monitor" interval="1s" timeout="1s"/>
|
||||
</operations>
|
||||
</primitive>
|
||||
</resources>
|
||||
'';
|
||||
in ''
|
||||
import re
|
||||
import time
|
||||
|
||||
start_all()
|
||||
|
||||
${lib.concatMapStrings (node: ''
|
||||
${node}.wait_until_succeeds("corosync-quorumtool")
|
||||
${node}.wait_for_unit("pacemaker.service")
|
||||
'') (builtins.attrNames nodes)}
|
||||
|
||||
# No STONITH device
|
||||
node1.succeed("crm_attribute -t crm_config -n stonith-enabled -v false")
|
||||
# Configure the cat resource
|
||||
node1.succeed("cibadmin --replace --scope resources --xml-file ${resources}")
|
||||
|
||||
# wait until the service is started
|
||||
while True:
|
||||
output = node1.succeed("crm_resource -r cat --locate")
|
||||
match = re.search("is running on: (.+)", output)
|
||||
if match:
|
||||
for machine in machines:
|
||||
if machine.name == match.group(1):
|
||||
current_node = machine
|
||||
break
|
||||
time.sleep(1)
|
||||
|
||||
current_node.log("Service running here!")
|
||||
current_node.crash()
|
||||
|
||||
# pick another node that's still up
|
||||
for machine in machines:
|
||||
if machine.booted:
|
||||
check_node = machine
|
||||
# find where the service has been started next
|
||||
while True:
|
||||
output = check_node.succeed("crm_resource -r cat --locate")
|
||||
match = re.search("is running on: (.+)", output)
|
||||
# output will remain the old current_node until the crash is detected by pacemaker
|
||||
if match and match.group(1) != current_node.name:
|
||||
for machine in machines:
|
||||
if machine.name == match.group(1):
|
||||
next_node = machine
|
||||
break
|
||||
time.sleep(1)
|
||||
|
||||
next_node.log("Service migrated here!")
|
||||
'';
|
||||
})
|
124
nixos/tests/xmpp/prosody-mysql.nix
Normal file
124
nixos/tests/xmpp/prosody-mysql.nix
Normal file
|
@ -0,0 +1,124 @@
|
|||
let
|
||||
cert = pkgs: pkgs.runCommand "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } ''
|
||||
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -subj '/CN=example.com/CN=uploads.example.com/CN=conference.example.com' -days 36500
|
||||
mkdir -p $out
|
||||
cp key.pem cert.pem $out
|
||||
'';
|
||||
createUsers = pkgs: pkgs.writeScriptBin "create-prosody-users" ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
set -e
|
||||
|
||||
# Creates and set password for the 2 xmpp test users.
|
||||
#
|
||||
# Doing that in a bash script instead of doing that in the test
|
||||
# script allow us to easily provision the users when running that
|
||||
# test interactively.
|
||||
|
||||
prosodyctl register cthon98 example.com nothunter2
|
||||
prosodyctl register azurediamond example.com hunter2
|
||||
'';
|
||||
delUsers = pkgs: pkgs.writeScriptBin "delete-prosody-users" ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
set -e
|
||||
|
||||
# Deletes the test users.
|
||||
#
|
||||
# Doing that in a bash script instead of doing that in the test
|
||||
# script allow us to easily provision the users when running that
|
||||
# test interactively.
|
||||
|
||||
prosodyctl deluser cthon98@example.com
|
||||
prosodyctl deluser azurediamond@example.com
|
||||
'';
|
||||
in import ../make-test-python.nix {
|
||||
name = "prosody-mysql";
|
||||
nodes = {
|
||||
client = { nodes, pkgs, config, ... }: {
|
||||
security.pki.certificateFiles = [ "${cert pkgs}/cert.pem" ];
|
||||
console.keyMap = "fr-bepo";
|
||||
networking.extraHosts = ''
|
||||
${nodes.server.config.networking.primaryIPAddress} example.com
|
||||
${nodes.server.config.networking.primaryIPAddress} conference.example.com
|
||||
${nodes.server.config.networking.primaryIPAddress} uploads.example.com
|
||||
'';
|
||||
environment.systemPackages = [
|
||||
(pkgs.callPackage ./xmpp-sendmessage.nix { connectTo = nodes.server.config.networking.primaryIPAddress; })
|
||||
];
|
||||
};
|
||||
server = { config, pkgs, ... }: {
|
||||
nixpkgs.overlays = [
|
||||
(self: super: {
|
||||
prosody = super.prosody.override {
|
||||
withExtraLuaPackages = p: [ p.luadbi-mysql ];
|
||||
};
|
||||
})
|
||||
];
|
||||
security.pki.certificateFiles = [ "${cert pkgs}/cert.pem" ];
|
||||
console.keyMap = "fr-bepo";
|
||||
networking.extraHosts = ''
|
||||
${config.networking.primaryIPAddress} example.com
|
||||
${config.networking.primaryIPAddress} conference.example.com
|
||||
${config.networking.primaryIPAddress} uploads.example.com
|
||||
'';
|
||||
networking.firewall.enable = false;
|
||||
environment.systemPackages = [
|
||||
(createUsers pkgs)
|
||||
(delUsers pkgs)
|
||||
];
|
||||
services.prosody = {
|
||||
enable = true;
|
||||
ssl.cert = "${cert pkgs}/cert.pem";
|
||||
ssl.key = "${cert pkgs}/key.pem";
|
||||
virtualHosts.example = {
|
||||
domain = "example.com";
|
||||
enabled = true;
|
||||
ssl.cert = "${cert pkgs}/cert.pem";
|
||||
ssl.key = "${cert pkgs}/key.pem";
|
||||
};
|
||||
muc = [
|
||||
{
|
||||
domain = "conference.example.com";
|
||||
}
|
||||
];
|
||||
uploadHttp = {
|
||||
domain = "uploads.example.com";
|
||||
};
|
||||
extraConfig = ''
|
||||
storage = "sql"
|
||||
sql = {
|
||||
driver = "MySQL";
|
||||
database = "prosody";
|
||||
host = "mysql";
|
||||
port = 3306;
|
||||
username = "prosody";
|
||||
password = "password123";
|
||||
};
|
||||
'';
|
||||
};
|
||||
};
|
||||
mysql = { config, pkgs, ... }: {
|
||||
networking.firewall.enable = false;
|
||||
services.mysql = {
|
||||
enable = true;
|
||||
initialScript = pkgs.writeText "mysql_init.sql" ''
|
||||
CREATE DATABASE prosody;
|
||||
CREATE USER 'prosody'@'server' IDENTIFIED BY 'password123';
|
||||
GRANT ALL PRIVILEGES ON prosody.* TO 'prosody'@'server';
|
||||
FLUSH PRIVILEGES;
|
||||
'';
|
||||
package = pkgs.mariadb;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
# Check with mysql storage
|
||||
mysql.wait_for_unit("mysql.service")
|
||||
server.wait_for_unit("prosody.service")
|
||||
server.succeed('prosodyctl status | grep "Prosody is running"')
|
||||
|
||||
server.succeed("create-prosody-users")
|
||||
client.succeed("send-message")
|
||||
server.succeed("delete-prosody-users")
|
||||
'';
|
||||
}
|
|
@ -81,6 +81,7 @@ in import ../make-test-python.nix {
|
|||
};
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
# Check with sqlite storage
|
||||
server.wait_for_unit("prosody.service")
|
||||
server.succeed('prosodyctl status | grep "Prosody is running"')
|
||||
|
||||
|
|
99
pkgs/applications/audio/furnace/default.nix
Normal file
99
pkgs/applications/audio/furnace/default.nix
Normal file
|
@ -0,0 +1,99 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, nix-update-script
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, pkg-config
|
||||
, makeWrapper
|
||||
, fmt_8
|
||||
, libsndfile
|
||||
, SDL2
|
||||
, zlib
|
||||
, withJACK ? stdenv.hostPlatform.isUnix
|
||||
, libjack2
|
||||
, withGUI ? true
|
||||
, Cocoa
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "furnace";
|
||||
version = "0.5.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tildearrow";
|
||||
repo = "furnace";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-BcaPQuDFkAaxFQKwoI6xdSWcyHo5VsqZcwf++JISqRs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "0001-furnace-fix-wrong-include-path.patch";
|
||||
url = "https://github.com/tildearrow/furnace/commit/456db22f9d9f0ed40d74fe50dde492e69e901fcc.patch";
|
||||
sha256 = "17ikb1z9ldm7kdj00m4swsrq1qx94vlzhc6h020x3ryzwnglc8d3";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# rtmidi is not used yet
|
||||
sed -i -e '/add_subdirectory(extern\/rtmidi/d' -e '/DEPENDENCIES_LIBRARIES rtmidi/d' CMakeLists.txt
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
fmt_8
|
||||
libsndfile
|
||||
SDL2
|
||||
zlib
|
||||
] ++ lib.optionals withJACK [
|
||||
libjack2
|
||||
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
Cocoa
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_GUI=${if withGUI then "ON" else "OFF"}"
|
||||
"-DSYSTEM_FMT=ON"
|
||||
"-DSYSTEM_LIBSNDFILE=ON"
|
||||
"-DSYSTEM_ZLIB=ON"
|
||||
"-DSYSTEM_SDL2=ON"
|
||||
"-DWITH_JACK=${if withJACK then "ON" else "OFF"}"
|
||||
"-DWARNINGS_ARE_ERRORS=ON"
|
||||
];
|
||||
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
# Normal CMake install phase on Darwin only installs the binary, the user is expected to use CPack to build a
|
||||
# bundle. That adds alot of overhead for not much benefit (CPack is currently abit broken, and needs impure access
|
||||
# to /usr/bin/hdiutil). So we'll manually assemble & install everything instead.
|
||||
|
||||
mkdir -p $out/{Applications/Furnace.app/Contents/{MacOS,Resources},share/{,doc,licenses}/furnace}
|
||||
mv $out/{bin,Applications/Furnace.app/Contents/MacOS}/furnace
|
||||
makeWrapper $out/{Applications/Furnace.app/Contents/MacOS,bin}/furnace
|
||||
|
||||
install -m644 {../res,$out/Applications/Furnace.app/Contents}/Info.plist
|
||||
install -m644 ../res/icon.icns $out/Applications/Furnace.app/Contents/Resources/Furnace.icns
|
||||
install -m644 {..,$out/share/licenses/furnace}/LICENSE
|
||||
cp -r ../papers $out/share/doc/furnace/
|
||||
cp -r ../demos $out/share/furnace/
|
||||
'';
|
||||
|
||||
passthru.updateScript = nix-update-script {
|
||||
attrPath = pname;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Multi-system chiptune tracker compatible with DefleMask modules";
|
||||
homepage = "https://github.com/tildearrow/furnace";
|
||||
license = with licenses; [ gpl2Plus ];
|
||||
maintainers = with maintainers; [ OPNA2608 ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pt2-clone";
|
||||
version = "1.41";
|
||||
version = "1.42";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "8bitbubsy";
|
||||
repo = "pt2-clone";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-FnGtUoA6ol4lqp5HXjoJ3CHjdRs8eML0WI917ruid84=";
|
||||
sha256 = "sha256-CwnEvQsxrYStJ4RxnE0lHt1fBHQEZrjSldnQnTOPaE0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
|
||||
stdenv.mkDerivation (rec {
|
||||
pname = "ed";
|
||||
version = "1.17";
|
||||
version = "1.18";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/ed/${pname}-${version}.tar.lz";
|
||||
sha256 = "0m2yrkfjjraakxr98nsiakqrn351h99n706x9asgmdi57j43kpki";
|
||||
sha256 = "sha256-rKjvrZgAxYdySiC5eqj8R+a1pH34Fgb+q6gxsHRGK08=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ lzip ];
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "8.2.4227";
|
||||
version = "8.2.4350";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Xj4ymkrWY5GWpQhEDYtPtaRovBa6j19dW9GWg9WSdig=";
|
||||
sha256 = "sha256-+fCyLZi9+9r7tYoRQsVESkcoHHtM7vrVuOGdJi/9iF0=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dolphin-emu";
|
||||
version = "5.0-15993";
|
||||
version = "5.0-16101";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dolphin-emu";
|
||||
repo = "dolphin";
|
||||
rev = "5e595616379a694789fe749e40a27ef069f0090e";
|
||||
sha256 = "1kid8qjn8r7dxh2yc1y6yal6qkfxij0ymi3zryxsnym3rjh1jds9";
|
||||
rev = "8ecfa537a242de74d2e372e30d9d79b14584b2fb";
|
||||
sha256 = "3jLGVzTDzEtHWvIb9DFTbJiA9dE9Pm14vYER998Zln0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -55,6 +55,10 @@ in buildPythonApplication rec {
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
# https://github.com/NixOS/nixpkgs/issues/149812
|
||||
# https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks-gobject-introspection
|
||||
strictDeps = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Genealogy software";
|
||||
homepage = "https://gramps-project.org";
|
||||
|
|
48
pkgs/applications/misc/kchmviewer/default.nix
Normal file
48
pkgs/applications/misc/kchmviewer/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{ lib, stdenv, fetchFromGitHub, fetchpatch, qmake, wrapQtAppsHook, chmlib, libzip, qtwebengine }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kchmviewer";
|
||||
version = "8.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gyunaev";
|
||||
repo = pname;
|
||||
rev = "RELEASE_${lib.replaceStrings [ "." ] [ "_" ] version}";
|
||||
sha256 = "sha256-YNpiBf6AFBCRbAZRPODvqGbQQedJJJrZFQIQyzIeBlw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# remove unused webkit
|
||||
(fetchpatch {
|
||||
url = "https://github.com/gyunaev/kchmviewer/commit/a4a3984465cb635822953350c571950ae726b539.patch";
|
||||
sha256 = "sha256-nHW18a4SrTG4fETJmKS4ojHXwnX1d1uN1m4H0GIuI28=";
|
||||
})
|
||||
# QtWebengine fixes
|
||||
(fetchpatch {
|
||||
url = "https://github.com/gyunaev/kchmviewer/commit/9ac73e7ad15de08aab6b1198115be2eb44da7afe.patch";
|
||||
sha256 = "sha256-qg2ytqA2On7jg19WZmHIOU7vLQI2hoyqItySLEA64SY=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/gyunaev/kchmviewer/commit/99a6d94bdfce9c4578cce82707e71863a71d1453.patch";
|
||||
sha256 = "sha256-o8JkaMmcJObmMt+o/6ooCAPCi+yRAWDAgxV+tR5eHfY=";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ chmlib libzip qtwebengine ];
|
||||
|
||||
nativeBuildInputs = [ qmake wrapQtAppsHook ];
|
||||
|
||||
postInstall = ''
|
||||
install -Dm755 bin/kchmviewer -t $out/bin
|
||||
install -Dm644 packages/kchmviewer.png -t $out/share/pixmaps
|
||||
install -Dm644 packages/kchmviewer.desktop -t $out/share/applications
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "CHM (Winhelp) files viewer";
|
||||
homepage = "http://www.ulduzsoft.com/linux/kchmviewer/";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ sikmir ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -7,10 +7,10 @@ in
|
|||
rec {
|
||||
firefox = common rec {
|
||||
pname = "firefox";
|
||||
version = "97.0.2";
|
||||
version = "98.0.1";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "efbf33723f5979025454b6cc183927afb4bc72a51c00b5d45940122da596b8ac99080f3a6a59f5dd85a725e356349ec57e7eba1c36cdab7d55a28b04895d274c";
|
||||
sha512 = "1434ff775e6cdc6d9a75fa0e6d07a4680ada86ecfd7b65208c597ed765e847d900b68df355e6bea6461f6d86ee7a8b2ce3117f23826ad144bd87dfe64ee39b42";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -50,11 +50,11 @@ let
|
|||
in stdenv.mkDerivation rec {
|
||||
|
||||
pname = "opera";
|
||||
version = "84.0.4316.21";
|
||||
version = "84.0.4316.31";
|
||||
|
||||
src = fetchurl {
|
||||
url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
|
||||
sha256 = "sha256-CEKUd2QlZQJbpBO1t4oKmyd+uhPiCOY+eXtSrZf75e4=";
|
||||
sha256 = "sha256-ypSnarhtJNQn3yOtydjmf6WmHAYbOfMg3xatCxTfIMY=";
|
||||
};
|
||||
|
||||
unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
|
||||
|
|
|
@ -19,16 +19,16 @@ let
|
|||
in
|
||||
buildGoModule rec {
|
||||
pname = "argo";
|
||||
version = "3.2.9";
|
||||
version = "3.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-lZ6FjWXhVc51BlioDSryeYe5aZeUhMMEde+kk2SwV20=";
|
||||
sha256 = "sha256-BDHbbb3WqQvRJB1A4NInfvujjB3r/AMmVvos8i/CnyU=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-hxSr0sNlz93JxOxnE2SnR6/OgCGK8DrJZxqQtSxfbj8=";
|
||||
vendorSha256 = "sha256-YeSeaYOkNRjQgxsK9G7iPbVpfrPs4HRRFwfoUDxoCm0=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
@ -46,30 +46,30 @@ with lib;
|
|||
# Those pieces of software we entirely ignore upstream's handling of, and just
|
||||
# make sure they're in the path if desired.
|
||||
let
|
||||
k3sVersion = "1.23.3+k3s1"; # k3s git tag
|
||||
k3sCommit = "6f4217a3405d16a1a51bbb40872d7dcb87207bb9"; # k3s git commit at the above version
|
||||
k3sRepoSha256 = "sha256-0dRusG1vL+1KbmViIUNCZK1b+FEgV6otcVUyFonHmm4=";
|
||||
k3sVendorSha256 = "sha256-8Yp9csyRNSYi9wo8E8mF8cu92wG1t3l18wJ8Y4L7HEA=";
|
||||
k3sVersion = "1.23.4+k3s1"; # k3s git tag
|
||||
k3sCommit = "43b1cb48200d8f6af85c16ed944d68fcc96b6506"; # k3s git commit at the above version
|
||||
k3sRepoSha256 = "1sn7rd5hqfqvwj036blk0skmq6r8igbmiqk1dnpaqnkkddpzdgmc";
|
||||
k3sVendorSha256 = "sha256-1/kQvNqFUWwch1JH+twWzBdjNYseoZyVObB1+s9WPM4=";
|
||||
|
||||
k3sServerVendorSha256 = "sha256-9+2k/ipAOhc8JJU+L2dwaM01Dkw+0xyrF5kt6mL19G0=";
|
||||
k3sServerVendorSha256 = "sha256-2KIFff43jfqWdxX61aWofrjmc5mMkr5aEJRFdGpLyU8=";
|
||||
|
||||
# taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
|
||||
# The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
|
||||
traefikChartVersion = "10.9.1";
|
||||
traefikChartSha256 = "sha256-XM1DLofU1zEEFeB5bNQ7cgv102gXsToPP7SFh87QuGQ=";
|
||||
traefikChartVersion = "10.14.1";
|
||||
traefikChartSha256 = "09a6cialx7nrh7nwi1gkkh8zcsasxcgb52dyx0r8bjq9ng29simj";
|
||||
|
||||
# taken from ./scripts/version.sh VERSION_ROOT https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L47
|
||||
k3sRootVersion = "0.9.1";
|
||||
k3sRootSha256 = "0r2cj4l50cxkrvszpzxfk36lvbjf9vcmp6d5lvxg8qsah8lki3x8";
|
||||
k3sRootVersion = "0.11.0";
|
||||
k3sRootSha256 = "016n56vi09xkvjph7wgzb2m86mhd5x65fs4d11pmh20hl249r620";
|
||||
|
||||
# taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L45
|
||||
k3sCNIVersion = "0.9.1-k3s1";
|
||||
k3sCNISha256 = "1327vmfph7b8i14q05c2xdfzk60caflg1zhycx0mrf3d59f4zsz5";
|
||||
k3sCNIVersion = "1.0.1-k3s1";
|
||||
k3sCNISha256 = "11ihlzzdnqf9p21y0a4ckpbxac016nm7746dcykhj26ym9zxyv92";
|
||||
|
||||
# taken from go.mod, the 'github.com/containerd/containerd' line
|
||||
# run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
|
||||
containerdVersion = "1.5.9-k3s1";
|
||||
containerdSha256 = "sha256-7xlhBA6KuwFlw+jyThygv4Ow9F3xjjIUtS6x8YHwjic=";
|
||||
containerdSha256 = "09wfy20z3c9fnla353pibpsb10xzl0f4xwp8qdjh3fwa1q2626gg";
|
||||
|
||||
# run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
|
||||
criCtlVersion = "1.22.0-k3s1";
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{ buildGoModule, lib, fetchFromGitHub }:
|
||||
buildGoModule rec {
|
||||
pname = "tfswitch";
|
||||
version = "0.13.1201";
|
||||
version = "0.13.1218";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warrensbox";
|
||||
repo = "terraform-switcher";
|
||||
rev = version;
|
||||
sha256 = "sha256-gJa8oVdgerDi0GdTSNus5rHLsFuzg8ZqVeKTMuPXu0o=";
|
||||
sha256 = "sha256-RJdbNXO+6TqFLapWiZ1UeXGS5522ykQvhhNDEHPr8xE=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-z3UDrwlMHFFH56U3oylSWE3wqWOCA4RI2smafHHwYkQ=";
|
||||
vendorSha256 = "sha256-Xqgki072Iy+snRriPVJ9oaDNJ/LiKL+AuU+eVw0zlDU=";
|
||||
|
||||
# Disable tests since it requires network access and relies on the
|
||||
# presence of release.hashicorp.com
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{ buildGoPackage, lib, fetchFromGitHub }:
|
||||
buildGoPackage rec {
|
||||
pname = "tgswitch";
|
||||
version = "0.5.382";
|
||||
version = "0.5.389";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warrensbox";
|
||||
repo = "tgswitch";
|
||||
rev = version;
|
||||
sha256 = "sha256-DbPf1o1XlXLpuYSrNMRwHRqi/urQhSfzPW5BPIvZC/Y=";
|
||||
sha256 = "sha256-6hErfI7LEJFgOoJR8IF9jTSBwqbQYeGiwdeJShqxVQ0=";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/warrensbox/tgswitch";
|
||||
|
|
|
@ -11,15 +11,15 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "werf";
|
||||
version = "1.2.73";
|
||||
version = "1.2.74";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "werf";
|
||||
repo = "werf";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-E16p40Pmr9o2946XlO3TUE/xUueG0NBWux23MgAVLlI=";
|
||||
sha256 = "sha256-Mfgvl6ljmYn9Vu/tWS0JAuH1pzQZ4zoD5+5ejUJF/Lg=";
|
||||
};
|
||||
vendorSha256 = "sha256-NHeUj1JWRqElY2BpQ+7ANqwlOYQ5H2R00LGqktcsoF4=";
|
||||
vendorSha256 = "sha256-MsIbuwsb0sKEh3Z7ArtG/8SWFPaXLu+TGNruhsHhtb4=";
|
||||
proxyVendor = true;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "alfaview";
|
||||
version = "8.37.0";
|
||||
version = "8.40.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
|
||||
sha256 = "sha256-hU4tqDu95ej8ChiWJq3ZPhEwxBcmTQkA/n///pPVa5U=";
|
||||
sha256 = "sha256-meiIDIG7OXxF2aclHA/8FN8aSz5KWJliDbm2p/flD4k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "signalbackup-tools";
|
||||
version = "20220303";
|
||||
version = "20220314";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bepaald";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-3fT9cHosg/A/JowIARQ46OxmsQWFOBb7tIiRWVNfUo4=";
|
||||
sha256 = "sha256-E3gH4Ym2tmH9qmbfKWybgO6qUW2rpJQyhBh6LPpfFHE=";
|
||||
};
|
||||
|
||||
# Remove when Apple SDK is >= 10.13
|
||||
|
|
|
@ -70,7 +70,7 @@ let
|
|||
in
|
||||
env.mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "3.5.2";
|
||||
version = "3.6.0";
|
||||
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
|
||||
|
||||
# Telegram-Desktop with submodules
|
||||
|
@ -79,7 +79,7 @@ env.mkDerivation rec {
|
|||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "05324xvb00yz2jfigyy7izk8wnq8phm3sidw62kf7xqyh63qnrzh";
|
||||
sha256 = "0zcjm08nfdlxrsv0fi6dqg3lk52bcvsxnsf6jm5fv6gf5v9ia3hq";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
stdenv.mkDerivation {
|
||||
pname = "tg_owt";
|
||||
version = "unstable-2022-02-09";
|
||||
version = "unstable-2022-02-25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "desktop-app";
|
||||
repo = "tg_owt";
|
||||
rev = "4cba1acdd718b700bb33945c0258283689d4eac7";
|
||||
sha256 = "0j201x9k38mvcyhf1wlyghyvdpv1l75xwgj9rl2l7r55afrpw4ca";
|
||||
rev = "a264028ec71d9096e0aa629113c49c25db89d260";
|
||||
sha256 = "10p3x8z3ps8s1ivi9y8px2gsg4pvsvz6g9wbgh5w8hilikxqq7r5";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "juju";
|
||||
version = "2.9.25";
|
||||
version = "2.9.26";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "juju";
|
||||
repo = "juju";
|
||||
rev = "juju-${version}";
|
||||
sha256 = "sha256-h4w12dmGEviV2N0BWXQKt1eUVxdbgwRKLQghnd6bLFI=";
|
||||
sha256 = "sha256-phzjjW9KG0Z5WAzxtYdI7i2Nw4FHVNeEJswQreHga4M=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-AATK4tDg2eW8Bt8gU88tIk6I+qp5ZeUtXzD74/59c7w=";
|
||||
vendorSha256 = "sha256-Jzd6I3a/2Un2a3/T2vzFuHwe9Y3eGEvfpZWSwjWokM0=";
|
||||
|
||||
# Disable tests because it attempts to use a mongodb instance
|
||||
doCheck = false;
|
||||
|
|
328
pkgs/applications/networking/n8n/node-packages.nix
generated
328
pkgs/applications/networking/n8n/node-packages.nix
generated
|
@ -40,13 +40,13 @@ let
|
|||
sha512 = "QmmJmexXKtPyc3/rsZR/YTLDvMatzbzAypJmLzvlfxgz/SkgnqV/D4f6F2LsK6tBj1qhyp8BoXiOebiej0zz3A==";
|
||||
};
|
||||
};
|
||||
"@azure/core-lro-2.2.3" = {
|
||||
"@azure/core-lro-2.2.4" = {
|
||||
name = "_at_azure_slash_core-lro";
|
||||
packageName = "@azure/core-lro";
|
||||
version = "2.2.3";
|
||||
version = "2.2.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.3.tgz";
|
||||
sha512 = "UMdlR9NsqDCLTba3EUbRjfMF4gDmWvld196JmUjbz9WWhJ2XT00OR5MXeWiR+vmGT+ETiO4hHFCi2/eGO5YVtg==";
|
||||
url = "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.2.4.tgz";
|
||||
sha512 = "e1I2v2CZM0mQo8+RSix0x091Av493e4bnT22ds2fcQGslTHzM2oTbswkB65nP4iEpCxBrFxOSDPKExmTmjCVtQ==";
|
||||
};
|
||||
};
|
||||
"@azure/core-paging-1.2.1" = {
|
||||
|
@ -103,22 +103,22 @@ let
|
|||
sha512 = "UA/8dgLy3+ZiwJjAZHxL4MUB14fFQPkaAOZ94jsTW/Z6WmoOeny2+cLk0+dyIX/iH6qSrEWKwbStEeB970B9pA==";
|
||||
};
|
||||
};
|
||||
"@azure/storage-blob-12.8.0" = {
|
||||
"@azure/storage-blob-12.9.0" = {
|
||||
name = "_at_azure_slash_storage-blob";
|
||||
packageName = "@azure/storage-blob";
|
||||
version = "12.8.0";
|
||||
version = "12.9.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.8.0.tgz";
|
||||
sha512 = "c8+Wz19xauW0bGkTCoqZH4dYfbtBniPiGiRQOn1ca6G5jsjr4azwaTk9gwjVY8r3vY2Taf95eivLzipfIfiS4A==";
|
||||
url = "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.9.0.tgz";
|
||||
sha512 = "ank38FdCLfJ+EoeMzCz3hkYJuZAd63ARvDKkxZYRDb+beBYf+/+gx8jNTqkq/hfyUl4dJQ/a7tECU0Y0F98CHg==";
|
||||
};
|
||||
};
|
||||
"@babel/runtime-7.17.2" = {
|
||||
"@babel/runtime-7.17.7" = {
|
||||
name = "_at_babel_slash_runtime";
|
||||
packageName = "@babel/runtime";
|
||||
version = "7.17.2";
|
||||
version = "7.17.7";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.2.tgz";
|
||||
sha512 = "hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==";
|
||||
url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.7.tgz";
|
||||
sha512 = "L6rvG9GDxaLgFjg41K+5Yv9OMrU98sWe+Ykmc6FDJW/+vYZMhdOMKkISgzptMaERHvS2Y2lw9MDRm2gHhlQQoA==";
|
||||
};
|
||||
};
|
||||
"@colors/colors-1.5.0" = {
|
||||
|
@ -139,13 +139,13 @@ let
|
|||
sha512 = "hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==";
|
||||
};
|
||||
};
|
||||
"@fontsource/open-sans-4.5.5" = {
|
||||
"@fontsource/open-sans-4.5.6" = {
|
||||
name = "_at_fontsource_slash_open-sans";
|
||||
packageName = "@fontsource/open-sans";
|
||||
version = "4.5.5";
|
||||
version = "4.5.6";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@fontsource/open-sans/-/open-sans-4.5.5.tgz";
|
||||
sha512 = "h1oUPSQpoMnDrnzIZTVS9PPBFhWXS87v6/cd9FY2Xc+GKbOVcjPZxcvUDU1TnCie2QSoYY9aifERRV/d8JHtWQ==";
|
||||
url = "https://registry.npmjs.org/@fontsource/open-sans/-/open-sans-4.5.6.tgz";
|
||||
sha512 = "bQuNS0H1VL1VLC6FwmReHlpJaICVe/seODU3Q9cpTQbJ5OtRD4TwWMrAjfTxqcFNollA6O0AlE4BnRSWMQLfvw==";
|
||||
};
|
||||
};
|
||||
"@icetee/ftp-0.3.15" = {
|
||||
|
@ -445,13 +445,13 @@ let
|
|||
sha512 = "zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==";
|
||||
};
|
||||
};
|
||||
"@types/lodash-4.14.179" = {
|
||||
"@types/lodash-4.14.180" = {
|
||||
name = "_at_types_slash_lodash";
|
||||
packageName = "@types/lodash";
|
||||
version = "4.14.179";
|
||||
version = "4.14.180";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.179.tgz";
|
||||
sha512 = "uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==";
|
||||
url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.180.tgz";
|
||||
sha512 = "XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==";
|
||||
};
|
||||
};
|
||||
"@types/lossless-json-1.0.1" = {
|
||||
|
@ -472,13 +472,13 @@ let
|
|||
sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
|
||||
};
|
||||
};
|
||||
"@types/node-12.20.46" = {
|
||||
"@types/node-12.20.47" = {
|
||||
name = "_at_types_slash_node";
|
||||
packageName = "@types/node";
|
||||
version = "12.20.46";
|
||||
version = "12.20.47";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/@types/node/-/node-12.20.46.tgz";
|
||||
sha512 = "cPjLXj8d6anFPzFvOPxS3fvly3Shm5nTfl6g8X5smexixbuGUf7hfr21J5tX9JW+UPStp/5P5R8qrKL5IyVJ+A==";
|
||||
url = "https://registry.npmjs.org/@types/node/-/node-12.20.47.tgz";
|
||||
sha512 = "BzcaRsnFuznzOItW1WpQrDHM7plAa7GIDMZ6b5pnMbkqEtM/6WCOhvZar39oeMQP79gwvFUWjjptE7/KGcNqFg==";
|
||||
};
|
||||
};
|
||||
"@types/node-17.0.21" = {
|
||||
|
@ -976,13 +976,13 @@ let
|
|||
sha512 = "uUbetCWczQHbsKyX1C99XpQHBM8SWfovvaZhPIj23/1uV7SQf0WeRZbiLpw0JZm+LHTChfNgrLfDJOVoU2kU+A==";
|
||||
};
|
||||
};
|
||||
"aws-sdk-2.1087.0" = {
|
||||
"aws-sdk-2.1093.0" = {
|
||||
name = "aws-sdk";
|
||||
packageName = "aws-sdk";
|
||||
version = "2.1087.0";
|
||||
version = "2.1093.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1087.0.tgz";
|
||||
sha512 = "m5EERT29Fwh2cv3SaSdygeAjJBXnjSaXRRERy70bf6PQ7KgmASJouBxY11g5G7LTEPK/yfB0TGshujKh3hEtPA==";
|
||||
url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1093.0.tgz";
|
||||
sha512 = "YD6VNemoKkzDMHsUiGP/MwpM0T20ukp3KTSxPY34Xw3Ww0zP19C54CfjaXhn//R27f2c57BtVez+he2RZ5GwyQ==";
|
||||
};
|
||||
};
|
||||
"aws-sign2-0.7.0" = {
|
||||
|
@ -1471,6 +1471,15 @@ let
|
|||
sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
|
||||
};
|
||||
};
|
||||
"clamp-1.0.1" = {
|
||||
name = "clamp";
|
||||
packageName = "clamp";
|
||||
version = "1.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz";
|
||||
sha1 = "66a0e64011816e37196828fdc8c8c147312c8634";
|
||||
};
|
||||
};
|
||||
"class-validator-0.13.2" = {
|
||||
name = "class-validator";
|
||||
packageName = "class-validator";
|
||||
|
@ -1777,6 +1786,15 @@ let
|
|||
sha512 = "Mn4AJiYkR3TAZH1Xm/RU7gFS/0kM5TBSAQDry8y40Aez0ASY+3boUhv+3QE5XbOXiXM2JjdhkKve3IsBvWCibQ==";
|
||||
};
|
||||
};
|
||||
"cookie-0.4.1" = {
|
||||
name = "cookie";
|
||||
packageName = "cookie";
|
||||
version = "0.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz";
|
||||
sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
|
||||
};
|
||||
};
|
||||
"cookie-0.4.2" = {
|
||||
name = "cookie";
|
||||
packageName = "cookie";
|
||||
|
@ -1786,6 +1804,15 @@ let
|
|||
sha512 = "aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==";
|
||||
};
|
||||
};
|
||||
"cookie-parser-1.4.6" = {
|
||||
name = "cookie-parser";
|
||||
packageName = "cookie-parser";
|
||||
version = "1.4.6";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz";
|
||||
sha512 = "z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==";
|
||||
};
|
||||
};
|
||||
"cookie-signature-1.0.6" = {
|
||||
name = "cookie-signature";
|
||||
packageName = "cookie-signature";
|
||||
|
@ -3604,13 +3631,13 @@ let
|
|||
sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
|
||||
};
|
||||
};
|
||||
"isbot-3.4.3" = {
|
||||
"isbot-3.4.5" = {
|
||||
name = "isbot";
|
||||
packageName = "isbot";
|
||||
version = "3.4.3";
|
||||
version = "3.4.5";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/isbot/-/isbot-3.4.3.tgz";
|
||||
sha512 = "5hAgiY9ysMIJcVQlGHcXptwgZr1yYbIGNBE36a3sPo7cLZ9eLTLx0qOssekFKaTHiXTwd/ZZMTuOS7w4faOmpw==";
|
||||
url = "https://registry.npmjs.org/isbot/-/isbot-3.4.5.tgz";
|
||||
sha512 = "+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw==";
|
||||
};
|
||||
};
|
||||
"isexe-2.0.0" = {
|
||||
|
@ -4045,6 +4072,15 @@ let
|
|||
sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
|
||||
};
|
||||
};
|
||||
"lodash.throttle-4.1.1" = {
|
||||
name = "lodash.throttle";
|
||||
packageName = "lodash.throttle";
|
||||
version = "4.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz";
|
||||
sha1 = "c23e91b710242ac70c37f1e1cda9274cc39bf2f4";
|
||||
};
|
||||
};
|
||||
"lodash.uniqby-4.7.0" = {
|
||||
name = "lodash.uniqby";
|
||||
packageName = "lodash.uniqby";
|
||||
|
@ -4135,6 +4171,15 @@ let
|
|||
sha512 = "IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ==";
|
||||
};
|
||||
};
|
||||
"luxon-2.3.1" = {
|
||||
name = "luxon";
|
||||
packageName = "luxon";
|
||||
version = "2.3.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/luxon/-/luxon-2.3.1.tgz";
|
||||
sha512 = "I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==";
|
||||
};
|
||||
};
|
||||
"mailparser-3.4.0" = {
|
||||
name = "mailparser";
|
||||
packageName = "mailparser";
|
||||
|
@ -4180,13 +4225,22 @@ let
|
|||
sha512 = "etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==";
|
||||
};
|
||||
};
|
||||
"mappersmith-2.37.1" = {
|
||||
"mappersmith-2.38.0" = {
|
||||
name = "mappersmith";
|
||||
packageName = "mappersmith";
|
||||
version = "2.37.1";
|
||||
version = "2.38.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mappersmith/-/mappersmith-2.37.1.tgz";
|
||||
sha512 = "3QiXhRADHTK/it1riJMJm/sHmLlGdw3pfLgZJQu9MfT1CNeiO93keNY0BVLlRmpPBsMER/P7kj3mtcAK2V331Q==";
|
||||
url = "https://registry.npmjs.org/mappersmith/-/mappersmith-2.38.0.tgz";
|
||||
sha512 = "D2+ICkvNGnGCz01MADdQQilcHGffwLd1ell4b4uXS9QYvLfrX0r5nl5zb9V+2YDy3142u6VUl1b154pxJAxw3g==";
|
||||
};
|
||||
};
|
||||
"material-colors-1.2.6" = {
|
||||
name = "material-colors";
|
||||
packageName = "material-colors";
|
||||
version = "1.2.6";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz";
|
||||
sha512 = "6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==";
|
||||
};
|
||||
};
|
||||
"md5-2.3.0" = {
|
||||
|
@ -4261,22 +4315,22 @@ let
|
|||
sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
|
||||
};
|
||||
};
|
||||
"mime-db-1.51.0" = {
|
||||
"mime-db-1.52.0" = {
|
||||
name = "mime-db";
|
||||
packageName = "mime-db";
|
||||
version = "1.51.0";
|
||||
version = "1.52.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
|
||||
sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
|
||||
url = "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz";
|
||||
sha512 = "sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==";
|
||||
};
|
||||
};
|
||||
"mime-types-2.1.34" = {
|
||||
"mime-types-2.1.35" = {
|
||||
name = "mime-types";
|
||||
packageName = "mime-types";
|
||||
version = "2.1.34";
|
||||
version = "2.1.35";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
|
||||
sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
|
||||
url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz";
|
||||
sha512 = "ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==";
|
||||
};
|
||||
};
|
||||
"mimic-fn-2.1.0" = {
|
||||
|
@ -4486,49 +4540,49 @@ let
|
|||
sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
|
||||
};
|
||||
};
|
||||
"n8n-core-0.107.0" = {
|
||||
"n8n-core-0.109.0" = {
|
||||
name = "n8n-core";
|
||||
packageName = "n8n-core";
|
||||
version = "0.107.0";
|
||||
version = "0.109.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.107.0.tgz";
|
||||
sha512 = "jwlEv67bPCn1Npp5SkZ11MViQgN96B2bUmSdsKPIBkJGkAPdd6BAUNAhF6qlAS53KhkbSqjuZkn71sDwbHv1cg==";
|
||||
url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.109.0.tgz";
|
||||
sha512 = "hzimsUZbWHfG9RofSX7czg0DgB7YAIcLi7JRFUVB90HVdasFf1HQFVM2AwFZC/lLVckktuadWSpq2MOKW+lE3Q==";
|
||||
};
|
||||
};
|
||||
"n8n-design-system-0.13.0" = {
|
||||
"n8n-design-system-0.14.0" = {
|
||||
name = "n8n-design-system";
|
||||
packageName = "n8n-design-system";
|
||||
version = "0.13.0";
|
||||
version = "0.14.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.13.0.tgz";
|
||||
sha512 = "dnweYfFdU9RLdZhmllAlF35dFp0F8Cxw2YAVPMTYOJ2saTs992kvI+09k5iVHDdRxA92BKRXgRRfvY1p0goXcQ==";
|
||||
url = "https://registry.npmjs.org/n8n-design-system/-/n8n-design-system-0.14.0.tgz";
|
||||
sha512 = "E9Tvnjd9hktVPsqBcX579Fr4Nn/QEVAHQaYZlPGrqxXLVD76mF0WQWJpU6XTZEs/9pKfEftk/TmDihtENLVTxg==";
|
||||
};
|
||||
};
|
||||
"n8n-editor-ui-0.133.0" = {
|
||||
"n8n-editor-ui-0.135.0" = {
|
||||
name = "n8n-editor-ui";
|
||||
packageName = "n8n-editor-ui";
|
||||
version = "0.133.0";
|
||||
version = "0.135.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.133.0.tgz";
|
||||
sha512 = "lKi2eyx5mn5vfo5sArvsnQ+1khdkX7I1Aqml5VFgzTUhHDLZB2Pvupu+czE55l9QSGs6oqaN9a9NRblWOHc0zQ==";
|
||||
url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.135.0.tgz";
|
||||
sha512 = "oM+Pnh4ZaUnDy5lj6u71EyXUPGNlbEIn3lpi4+xyO8tYtFyaN1kifS/q/a1sYrgZlwbWaksgUvTqufZ3Te6Yqw==";
|
||||
};
|
||||
};
|
||||
"n8n-nodes-base-0.164.0" = {
|
||||
"n8n-nodes-base-0.166.0" = {
|
||||
name = "n8n-nodes-base";
|
||||
packageName = "n8n-nodes-base";
|
||||
version = "0.164.0";
|
||||
version = "0.166.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.164.0.tgz";
|
||||
sha512 = "5GSd0f1rQZfKt9e0S1zwn5K34TSd1lYkd3MEPKDHjvksxfNOumtZpf0rwEgb/7Uf6azw7ESqk4VXwxiVQu0sgw==";
|
||||
url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.166.0.tgz";
|
||||
sha512 = "Iet76bGJrS3rTal5KbuBsJvYzAw3o9xfcLHERpDJyXOxgvrPfZ62A7RpmLMLA3KJLfKevY+VLGLWW5odTSvtEg==";
|
||||
};
|
||||
};
|
||||
"n8n-workflow-0.89.0" = {
|
||||
"n8n-workflow-0.91.0" = {
|
||||
name = "n8n-workflow";
|
||||
packageName = "n8n-workflow";
|
||||
version = "0.89.0";
|
||||
version = "0.91.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.89.0.tgz";
|
||||
sha512 = "hggmmjHsa3VjP5puRssH4Q8hoigqJ3W+KQeY54Qsa1rJoJEjZYy53NGOQ3QMmuPuTUvVMHe4Z/Hb6u4Bbh1wAg==";
|
||||
url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.91.0.tgz";
|
||||
sha512 = "a4yqSvcalQs2MEDkOeadQc9cwK/3f6t+EKr/e8rEN5D9djnmuvoRJC+V9v6KPuHy66q1pv6w7fpmnrLRO+2WrA==";
|
||||
};
|
||||
};
|
||||
"named-placeholders-1.1.2" = {
|
||||
|
@ -5089,6 +5143,42 @@ let
|
|||
sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==";
|
||||
};
|
||||
};
|
||||
"passport-0.5.2" = {
|
||||
name = "passport";
|
||||
packageName = "passport";
|
||||
version = "0.5.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/passport/-/passport-0.5.2.tgz";
|
||||
sha512 = "w9n/Ot5I7orGD4y+7V3EFJCQEznE5RxHamUxcqLT2QoJY0f2JdN8GyHonYFvN0Vz+L6lUJfVhrk2aZz2LbuREw==";
|
||||
};
|
||||
};
|
||||
"passport-cookie-1.0.9" = {
|
||||
name = "passport-cookie";
|
||||
packageName = "passport-cookie";
|
||||
version = "1.0.9";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/passport-cookie/-/passport-cookie-1.0.9.tgz";
|
||||
sha512 = "8a6foX2bbGoJzup0RAiNcC2tTqzYS46RQEK3Z4u8p86wesPUjgDaji3C7+5j4TGyCq4ZoOV+3YLw1Hy6cV6kyw==";
|
||||
};
|
||||
};
|
||||
"passport-jwt-4.0.0" = {
|
||||
name = "passport-jwt";
|
||||
packageName = "passport-jwt";
|
||||
version = "4.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.0.tgz";
|
||||
sha512 = "BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==";
|
||||
};
|
||||
};
|
||||
"passport-strategy-1.0.0" = {
|
||||
name = "passport-strategy";
|
||||
packageName = "passport-strategy";
|
||||
version = "1.0.0";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz";
|
||||
sha1 = "b5539aa8fc225a3d1ad179476ddf236b440f52e4";
|
||||
};
|
||||
};
|
||||
"path-case-3.0.4" = {
|
||||
name = "path-case";
|
||||
packageName = "path-case";
|
||||
|
@ -5134,6 +5224,15 @@ let
|
|||
sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
|
||||
};
|
||||
};
|
||||
"pause-0.0.1" = {
|
||||
name = "pause";
|
||||
packageName = "pause";
|
||||
version = "0.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz";
|
||||
sha1 = "1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d";
|
||||
};
|
||||
};
|
||||
"pdf-parse-1.1.1" = {
|
||||
name = "pdf-parse";
|
||||
packageName = "pdf-parse";
|
||||
|
@ -5287,13 +5386,13 @@ let
|
|||
sha512 = "vrlOGvNVELko0+J8NpGC5lHWDGrk8LQJq9nwAMIVEVBfN1Lib3BLxAaLRGDTuUnvl45j5N9dT2H85PULz6IjjQ==";
|
||||
};
|
||||
};
|
||||
"popsicle-redirects-1.1.0" = {
|
||||
"popsicle-redirects-1.1.1" = {
|
||||
name = "popsicle-redirects";
|
||||
packageName = "popsicle-redirects";
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/popsicle-redirects/-/popsicle-redirects-1.1.0.tgz";
|
||||
sha512 = "XCpzVjVk7tty+IJnSdqWevmOr1n8HNDhL86v7mZ6T1JIIf2KGybxUk9mm7ZFOhWMkGB0e8XkacHip7BV8AQWQA==";
|
||||
url = "https://registry.npmjs.org/popsicle-redirects/-/popsicle-redirects-1.1.1.tgz";
|
||||
sha512 = "mC2HrKjdTAWDalOjGxlXw9j6Qxrz/Yd2ui6bPxpi2IQDYWpF4gUAMxbA8EpSWJhLi0PuWKDwTHHPrUPGutAoIA==";
|
||||
};
|
||||
};
|
||||
"popsicle-transport-http-1.2.1" = {
|
||||
|
@ -6682,6 +6781,15 @@ let
|
|||
sha512 = "a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==";
|
||||
};
|
||||
};
|
||||
"tinycolor2-1.4.2" = {
|
||||
name = "tinycolor2";
|
||||
packageName = "tinycolor2";
|
||||
version = "1.4.2";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz";
|
||||
sha512 = "vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==";
|
||||
};
|
||||
};
|
||||
"tlds-1.224.0" = {
|
||||
name = "tlds";
|
||||
packageName = "tlds";
|
||||
|
@ -7159,6 +7267,24 @@ let
|
|||
sha512 = "xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw==";
|
||||
};
|
||||
};
|
||||
"vue-2.6.14" = {
|
||||
name = "vue";
|
||||
packageName = "vue";
|
||||
version = "2.6.14";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz";
|
||||
sha512 = "x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==";
|
||||
};
|
||||
};
|
||||
"vue-color-2.8.1" = {
|
||||
name = "vue-color";
|
||||
packageName = "vue-color";
|
||||
version = "2.8.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/vue-color/-/vue-color-2.8.1.tgz";
|
||||
sha512 = "BoLCEHisXi2QgwlhZBg9UepvzZZmi4176vbr+31Shen5WWZwSLVgdScEPcB+yrAtuHAz42309C0A4+WiL9lNBw==";
|
||||
};
|
||||
};
|
||||
"vue-fragment-1.5.2" = {
|
||||
name = "vue-fragment";
|
||||
packageName = "vue-fragment";
|
||||
|
@ -7177,6 +7303,15 @@ let
|
|||
sha512 = "SX35iJHL5PJ4Gfh0Mo/q0shyHiI2V6Zkh51c+k8E9O1RKv5BQyYrCxRzpvPrsIOJEnLaeiovet3dsUB0e/kDzw==";
|
||||
};
|
||||
};
|
||||
"vue2-boring-avatars-0.3.4" = {
|
||||
name = "vue2-boring-avatars";
|
||||
packageName = "vue2-boring-avatars";
|
||||
version = "0.3.4";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/vue2-boring-avatars/-/vue2-boring-avatars-0.3.4.tgz";
|
||||
sha512 = "N3FYX9Z6rZdTeP3BOBz2LMxlWo9WRmPF6SOsYzz+tEuUH0QjX8UD7c1X95J8pZ7cFvbh9QflVujYQRqRiiwoAg==";
|
||||
};
|
||||
};
|
||||
"webidl-conversions-3.0.1" = {
|
||||
name = "webidl-conversions";
|
||||
packageName = "webidl-conversions";
|
||||
|
@ -7480,10 +7615,10 @@ in
|
|||
n8n = nodeEnv.buildNodePackage {
|
||||
name = "n8n";
|
||||
packageName = "n8n";
|
||||
version = "0.166.0";
|
||||
version = "0.168.1";
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/n8n/-/n8n-0.166.0.tgz";
|
||||
sha512 = "t8tRpOyrEIxaIuLzfBajDPjAMygcCapiIqHDjU8YloJalI0MnbuoQ6DgA2RdRDZElN0yew0rQR8ZxZ2nMUk8Fg==";
|
||||
url = "https://registry.npmjs.org/n8n/-/n8n-0.168.1.tgz";
|
||||
sha512 = "bghyOcF+KZmRsmyC9p2ARb+RIlUBDwTKCMLd5eUFW1SKMBCWgQZwG8KCLCRApWjXjP1SYekeyDo1PSl5fa7Hxw==";
|
||||
};
|
||||
dependencies = [
|
||||
(sources."@azure/abort-controller-1.0.5" // {
|
||||
|
@ -7503,7 +7638,7 @@ in
|
|||
sources."tslib-2.3.1"
|
||||
];
|
||||
})
|
||||
(sources."@azure/core-lro-2.2.3" // {
|
||||
(sources."@azure/core-lro-2.2.4" // {
|
||||
dependencies = [
|
||||
sources."tslib-2.3.1"
|
||||
];
|
||||
|
@ -7530,12 +7665,12 @@ in
|
|||
];
|
||||
})
|
||||
sources."@azure/ms-rest-nodeauth-3.1.1"
|
||||
(sources."@azure/storage-blob-12.8.0" // {
|
||||
(sources."@azure/storage-blob-12.9.0" // {
|
||||
dependencies = [
|
||||
sources."tslib-2.3.1"
|
||||
];
|
||||
})
|
||||
sources."@babel/runtime-7.17.2"
|
||||
sources."@babel/runtime-7.17.7"
|
||||
sources."@colors/colors-1.5.0"
|
||||
(sources."@dabh/diagnostics-2.0.3" // {
|
||||
dependencies = [
|
||||
|
@ -7543,7 +7678,7 @@ in
|
|||
sources."kuler-2.0.0"
|
||||
];
|
||||
})
|
||||
sources."@fontsource/open-sans-4.5.5"
|
||||
sources."@fontsource/open-sans-4.5.6"
|
||||
sources."@icetee/ftp-0.3.15"
|
||||
sources."@kafkajs/confluent-schema-registry-1.0.6"
|
||||
sources."@kwsites/file-exists-1.1.1"
|
||||
|
@ -7592,7 +7727,7 @@ in
|
|||
sources."@types/ftp-0.3.33"
|
||||
sources."@types/json-diff-0.5.2"
|
||||
sources."@types/jsonwebtoken-8.5.8"
|
||||
sources."@types/lodash-4.14.179"
|
||||
sources."@types/lodash-4.14.180"
|
||||
sources."@types/lossless-json-1.0.1"
|
||||
sources."@types/mime-1.3.2"
|
||||
sources."@types/node-17.0.21"
|
||||
|
@ -7664,7 +7799,7 @@ in
|
|||
];
|
||||
})
|
||||
sources."avsc-5.7.3"
|
||||
(sources."aws-sdk-2.1087.0" // {
|
||||
(sources."aws-sdk-2.1093.0" // {
|
||||
dependencies = [
|
||||
sources."buffer-4.9.2"
|
||||
sources."events-1.1.1"
|
||||
|
@ -7774,6 +7909,7 @@ in
|
|||
sources."cheerio-select-1.5.0"
|
||||
sources."chokidar-3.5.2"
|
||||
sources."chownr-1.1.4"
|
||||
sources."clamp-1.0.1"
|
||||
sources."class-validator-0.13.2"
|
||||
sources."clean-stack-3.0.1"
|
||||
sources."cli-color-0.1.7"
|
||||
|
@ -7835,7 +7971,8 @@ in
|
|||
sources."content-disposition-0.5.4"
|
||||
sources."content-type-1.0.4"
|
||||
sources."convict-6.2.1"
|
||||
sources."cookie-0.4.2"
|
||||
sources."cookie-0.4.1"
|
||||
sources."cookie-parser-1.4.6"
|
||||
sources."cookie-signature-1.0.6"
|
||||
sources."core-js-3.21.1"
|
||||
sources."core-util-is-1.0.2"
|
||||
|
@ -7923,6 +8060,7 @@ in
|
|||
sources."expand-tilde-2.0.2"
|
||||
(sources."express-4.17.3" // {
|
||||
dependencies = [
|
||||
sources."cookie-0.4.2"
|
||||
sources."debug-2.6.9"
|
||||
sources."ms-2.0.0"
|
||||
];
|
||||
|
@ -8078,7 +8216,7 @@ in
|
|||
sources."is-windows-1.0.2"
|
||||
sources."is-wsl-2.2.0"
|
||||
sources."isarray-0.0.1"
|
||||
sources."isbot-3.4.3"
|
||||
sources."isbot-3.4.5"
|
||||
sources."isexe-2.0.0"
|
||||
sources."iso-639-1-2.1.13"
|
||||
sources."isstream-0.1.2"
|
||||
|
@ -8137,6 +8275,7 @@ in
|
|||
sources."lodash.merge-4.6.2"
|
||||
sources."lodash.once-4.1.1"
|
||||
sources."lodash.set-4.3.2"
|
||||
sources."lodash.throttle-4.1.1"
|
||||
sources."lodash.uniqby-4.7.0"
|
||||
sources."lodash.unset-4.5.2"
|
||||
sources."logform-2.4.0"
|
||||
|
@ -8154,6 +8293,7 @@ in
|
|||
sources."yallist-2.1.2"
|
||||
];
|
||||
})
|
||||
sources."luxon-2.3.1"
|
||||
(sources."mailparser-3.4.0" // {
|
||||
dependencies = [
|
||||
sources."iconv-lite-0.6.3"
|
||||
|
@ -8168,7 +8308,8 @@ in
|
|||
})
|
||||
sources."make-error-1.3.6"
|
||||
sources."make-error-cause-2.3.0"
|
||||
sources."mappersmith-2.37.1"
|
||||
sources."mappersmith-2.38.0"
|
||||
sources."material-colors-1.2.6"
|
||||
sources."md5-2.3.0"
|
||||
sources."media-typer-0.3.0"
|
||||
sources."merge-descriptors-1.0.1"
|
||||
|
@ -8177,8 +8318,8 @@ in
|
|||
sources."micromatch-4.0.4"
|
||||
sources."millisecond-0.1.2"
|
||||
sources."mime-1.6.0"
|
||||
sources."mime-db-1.51.0"
|
||||
sources."mime-types-2.1.34"
|
||||
sources."mime-db-1.52.0"
|
||||
sources."mime-types-2.1.35"
|
||||
sources."mimic-fn-2.1.0"
|
||||
sources."minimalistic-assert-1.0.1"
|
||||
sources."minimatch-3.1.2"
|
||||
|
@ -8224,19 +8365,19 @@ in
|
|||
];
|
||||
})
|
||||
sources."mz-2.7.0"
|
||||
(sources."n8n-core-0.107.0" // {
|
||||
(sources."n8n-core-0.109.0" // {
|
||||
dependencies = [
|
||||
sources."qs-6.10.3"
|
||||
];
|
||||
})
|
||||
sources."n8n-design-system-0.13.0"
|
||||
sources."n8n-editor-ui-0.133.0"
|
||||
(sources."n8n-nodes-base-0.164.0" // {
|
||||
sources."n8n-design-system-0.14.0"
|
||||
sources."n8n-editor-ui-0.135.0"
|
||||
(sources."n8n-nodes-base-0.166.0" // {
|
||||
dependencies = [
|
||||
sources."iconv-lite-0.6.3"
|
||||
];
|
||||
})
|
||||
sources."n8n-workflow-0.89.0"
|
||||
sources."n8n-workflow-0.91.0"
|
||||
(sources."named-placeholders-1.1.2" // {
|
||||
dependencies = [
|
||||
sources."lru-cache-4.1.5"
|
||||
|
@ -8341,6 +8482,10 @@ in
|
|||
sources."tslib-2.3.1"
|
||||
];
|
||||
})
|
||||
sources."passport-0.5.2"
|
||||
sources."passport-cookie-1.0.9"
|
||||
sources."passport-jwt-4.0.0"
|
||||
sources."passport-strategy-1.0.0"
|
||||
(sources."path-case-3.0.4" // {
|
||||
dependencies = [
|
||||
sources."tslib-2.3.1"
|
||||
|
@ -8350,6 +8495,7 @@ in
|
|||
sources."path-is-absolute-1.0.1"
|
||||
sources."path-to-regexp-0.1.7"
|
||||
sources."path-type-4.0.0"
|
||||
sources."pause-0.0.1"
|
||||
(sources."pdf-parse-1.1.1" // {
|
||||
dependencies = [
|
||||
sources."debug-3.2.7"
|
||||
|
@ -8378,7 +8524,7 @@ in
|
|||
sources."popsicle-12.1.0"
|
||||
sources."popsicle-content-encoding-1.0.0"
|
||||
sources."popsicle-cookie-jar-1.0.0"
|
||||
sources."popsicle-redirects-1.1.0"
|
||||
sources."popsicle-redirects-1.1.1"
|
||||
sources."popsicle-transport-http-1.2.1"
|
||||
sources."popsicle-transport-xhr-2.0.0"
|
||||
sources."popsicle-user-agent-1.0.0"
|
||||
|
@ -8564,7 +8710,7 @@ in
|
|||
sources."tdigest-0.1.1"
|
||||
(sources."tedious-6.7.1" // {
|
||||
dependencies = [
|
||||
sources."@types/node-12.20.46"
|
||||
sources."@types/node-12.20.47"
|
||||
sources."bl-3.0.1"
|
||||
sources."depd-2.0.0"
|
||||
sources."iconv-lite-0.5.2"
|
||||
|
@ -8588,6 +8734,7 @@ in
|
|||
sources."through2-filter-3.0.0"
|
||||
sources."throwback-4.1.0"
|
||||
sources."timeago.js-4.0.2"
|
||||
sources."tinycolor2-1.4.2"
|
||||
sources."tlds-1.224.0"
|
||||
sources."tmp-0.0.33"
|
||||
(sources."tmp-promise-3.0.3" // {
|
||||
|
@ -8663,8 +8810,11 @@ in
|
|||
sources."vary-1.1.2"
|
||||
sources."verror-1.10.0"
|
||||
sources."vm2-3.9.9"
|
||||
sources."vue-2.6.14"
|
||||
sources."vue-color-2.8.1"
|
||||
sources."vue-fragment-1.5.2"
|
||||
sources."vue-i18n-8.27.0"
|
||||
sources."vue2-boring-avatars-0.3.4"
|
||||
sources."webidl-conversions-3.0.1"
|
||||
sources."whatwg-url-5.0.0"
|
||||
sources."which-1.3.1"
|
||||
|
|
|
@ -15,13 +15,13 @@ with lib;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "remmina";
|
||||
version = "1.4.24";
|
||||
version = "1.4.25";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "Remmina";
|
||||
repo = "Remmina";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-rcxgr3HVOWA3mTfX8tka9bPGDRDtKhBRsfQ3hv9XHf0=";
|
||||
sha256 = "sha256-1val/KCClEtw1prVWuXJe8DmmQ7e7oqwAfAnT9G9iHI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ninja pkg-config wrapGAppsHook ];
|
||||
|
|
|
@ -18,10 +18,6 @@ let
|
|||
py = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
django = super.django_3;
|
||||
django-picklefield = super.django-picklefield.overrideAttrs (oldAttrs: {
|
||||
# Checks do not pass with django 3
|
||||
doInstallCheck = false;
|
||||
});
|
||||
# Avoid warning in django-q versions > 1.3.4
|
||||
# https://github.com/jonaswinkler/paperless-ng/issues/857
|
||||
# https://github.com/Koed00/django-q/issues/526
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "phd2";
|
||||
version = "2.6.10";
|
||||
version = "2.6.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenPHDGuiding";
|
||||
repo = "phd2";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2ZiPjhlguWXFcC53xG1aqAode7twtoHWszFUMQkK5xU=";
|
||||
sha256 = "sha256-iautgHOVzdLWYGOVu3wHBDt30uCbaP58mDz/l7buB1k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "siril";
|
||||
version = "0.99.10.1";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "free-astro";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-gqV+pJNaU+GnYiUo/imofgNdeM+AtDg/pSH7aoqhkYA=";
|
||||
sha256 = "sha256-yqWFEa1fnSwl0ecN9hMI13QCfj0f69CFqTJlEAhTpJI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
25
pkgs/applications/science/logic/nuXmv/default.nix
Normal file
25
pkgs/applications/science/logic/nuXmv/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, stdenv, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nuXmv";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://es-static.fbk.eu/tools/nuxmv/downloads/nuXmv-${version}-linux64.tar.gz";
|
||||
sha256 = "0nndrw994clf8lnlcfzdf1mf00vif3fvd4xsiwcjpbyk12091zqr";
|
||||
};
|
||||
|
||||
installPhase= ''
|
||||
runHook preInstall
|
||||
install -Dm755 -t $out/bin ./bin/nuXmv
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Symbolic model checker for analysis of finite and infinite state systems";
|
||||
homepage = "https://nuxmv.fbk.eu/pmwiki.php";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ siraben ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
diff --git a/src/sage/repl/interface_magic.py b/src/sage/repl/interface_magic.py
|
||||
index 8a455b69b0..a93e1c9e04 100644
|
||||
--- a/src/sage/repl/interface_magic.py
|
||||
+++ b/src/sage/repl/interface_magic.py
|
||||
@@ -260,7 +260,7 @@ class InterfaceMagic(object):
|
||||
2
|
||||
120
|
||||
sage: shell.run_cell('%%gap foo\n1+1;\n')
|
||||
- ...File "<string>", line unknown
|
||||
+ ...File...<string>...
|
||||
SyntaxError: Interface magics have no options, got "foo"
|
||||
<BLANKLINE>
|
||||
sage: shell.run_cell('%%gap?')
|
||||
diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py
|
||||
index 71dbe429fd..36b1d986d6 100644
|
||||
--- a/src/sage/repl/interpreter.py
|
||||
+++ b/src/sage/repl/interpreter.py
|
||||
@@ -70,25 +70,6 @@ that shell. The bulk of this functionality is provided through
|
||||
|
||||
TESTS:
|
||||
|
||||
-Check that Cython source code appears in tracebacks::
|
||||
-
|
||||
- sage: from sage.repl.interpreter import get_test_shell
|
||||
- sage: shell = get_test_shell()
|
||||
- sage: print("dummy line"); shell.run_cell('1/0') # see #25320 for the reason of the `...` and the dummy line in this test
|
||||
- dummy line
|
||||
- ...
|
||||
- ZeroDivisionError...Traceback (most recent call last)
|
||||
- <ipython-input-...> in <module>...
|
||||
- ----> 1 Integer(1)/Integer(0)
|
||||
- .../sage/rings/integer.pyx in sage.rings.integer.Integer...div...
|
||||
- ...
|
||||
- -> ... raise ZeroDivisionError("rational division by zero")
|
||||
- ....: x = <Rational> Rational.__new__(Rational)
|
||||
- ....: mpq_div_zz(x.value, ....value, (<Integer>right).value)
|
||||
- <BLANKLINE>
|
||||
- ZeroDivisionError: rational division by zero
|
||||
- sage: shell.quit()
|
||||
-
|
||||
Test prompt transformer::
|
||||
|
||||
sage: from sage.repl.interpreter import SagePromptTransformer
|
||||
@@ -423,7 +404,7 @@ def SagePreparseTransformer(lines):
|
||||
sage: from sage.repl.interpreter import get_test_shell
|
||||
sage: shell = get_test_shell()
|
||||
sage: shell.run_cell(bad_syntax)
|
||||
- File "<string>", line unknown
|
||||
+ File...<string>...
|
||||
SyntaxError: Mismatched ']'
|
||||
<BLANKLINE>
|
||||
sage: shell.quit()
|
|
@ -119,15 +119,13 @@ stdenv.mkDerivation rec {
|
|||
# https://trac.sagemath.org/ticket/32959
|
||||
./patches/linbox-1.7-upgrade.patch
|
||||
|
||||
# To emit better tracebacks, IPython 8 parses Python files using the ast
|
||||
# module (via the stack_data package). Since Cython is a superset of Python,
|
||||
# this results in no Cython code being printed in tracebacks. Fixing this
|
||||
# properly is tracked in https://github.com/alexmojaki/stack_data/issues/21,
|
||||
# but for now we just disable the corresponding test. An alternative would
|
||||
# be to revert IPython's IPython/core/ultratb.py, but this would need to be
|
||||
# Sage-specific (since it would worsen tracebacks for pure Python code).
|
||||
# Sage tracks this at https://trac.sagemath.org/ticket/33170
|
||||
./patches/no-cython-sources-in-tracebacks-on-ipython8.patch
|
||||
# https://trac.sagemath.org/ticket/33170
|
||||
(fetchSageDiff {
|
||||
base = "9.5.rc1";
|
||||
name = "ipython-8-update.patch";
|
||||
rev = "a90a314616d86d6be9c0d5233f0d36c4bfe06231";
|
||||
sha256 = "sha256-pXdtokTo84xNCnV+HyAKEzG562z8FjzJ7hczOja0dRw=";
|
||||
})
|
||||
|
||||
# https://trac.sagemath.org/ticket/32968
|
||||
(fetchSageDiff {
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "bada-bib";
|
||||
version = "0.5.1";
|
||||
version = "0.6.0";
|
||||
format = "other";
|
||||
strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
|
||||
|
||||
|
@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec {
|
|||
owner = "RogerCrocker";
|
||||
repo = "BadaBib";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-tb/720WPqcO4w1EMmidjtEidsjZ0dEhe+/vnJPM6kxo=";
|
||||
sha256 = "sha256-gfZc3R8hrYy4Nco+XwG29lzZd537ByEgd3RL8h7f6DQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -52,7 +52,6 @@ python3Packages.buildPythonApplication rec {
|
|||
pythonPath = with python3Packages; [
|
||||
bibtexparser
|
||||
pygobject3
|
||||
watchgod
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xterm";
|
||||
version = "371";
|
||||
version = "372";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
|
||||
"https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
|
||||
];
|
||||
sha256 = "MviIJ3sZ4o68CjESv/AAYHwHvtBnnKoL7rs2+crUhPU=";
|
||||
sha256 = "xtCBJ8skCcOgS8rlWbcCUZbtdwu3vyZjCry0XZX2CrE=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "gh";
|
||||
version = "2.5.2";
|
||||
version = "2.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cli";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-60XEc0V8stbl+JozTqu8yO37K1NXX/X2xFkcO9p/QNY=";
|
||||
sha256 = "sha256-NvVm/deO4LSIl5TSziqsrGt9atCXjt4UZ/VJfmX3i4c=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-aMD4a+jwCINcHV/z5UyTF+o3BzN9wviz+kLwDys9/BI=";
|
||||
vendorSha256 = "sha256-pBjg6WyD61+Bl3ttcpl/b9XoWBCi7cDvE8NPaZGu7Aw=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "git-cliff";
|
||||
version = "0.6.0";
|
||||
version = "0.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orhun";
|
||||
repo = "git-cliff";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-cctgZz65BliOePal4zrPpTbxMkz4GJj6gIh2YzEg+Do=";
|
||||
sha256 = "sha256-CJ/2Cv/XoLq9U7u5mexH8iCCHbGtV6xohP3FapqO3+g=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-M/BNqLZnLthaBONwn5XMmulmqyZTWv5LQFvxASDrBCI=";
|
||||
cargoSha256 = "sha256-pYStKDgvvV/Z96TAonpDW7DIs1YSO6gAoiUCieVa9QY=";
|
||||
|
||||
# attempts to run the program on .git in src which is not deterministic
|
||||
doCheck = false;
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "f1viewer";
|
||||
version = "2.5.0";
|
||||
version = "2.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SoMuchForSubtlety";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-cTXueIOD+OXx4WikhdNv3v/F2/f5aDicyPP7FgTU6AM=";
|
||||
sha256 = "sha256-MY8xqpAzK1c4XL7w/LR83DyHFCI5X7wldosDDo7pXNI=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-47uLx4t0N1T3zqZ9o/su/onJEUdGXpq+iVSUaRnwW3I=";
|
||||
vendorSha256 = "sha256-8c1+t6Lo11Q2kEDy9IWLw9bsZYtJFksE7Om3ysx7fc4=";
|
||||
|
||||
meta = with lib; {
|
||||
description =
|
||||
|
|
35
pkgs/applications/video/mpv/scripts/vr-reversal.nix
Normal file
35
pkgs/applications/video/mpv/scripts/vr-reversal.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenvNoCC, fetchFromGitHub, ffmpeg }:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "vr-reversal";
|
||||
version = "1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dfaker";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1wn2ngcvn7wcsl3kmj782x5q9130qw951lj6ilrkafp6q6zscpqr";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
# reset_rot is only available in ffmpeg 5.0, see 5bcc61ce87922ecccaaa0bd303a7e195929859a8
|
||||
postPatch = lib.optionalString (lib.versionOlder ffmpeg.version "5.0") ''
|
||||
substituteInPlace 360plugin.lua --replace ":reset_rot=1:" ":"
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/mpv/scripts
|
||||
cp -r 360plugin.lua $out/share/mpv/scripts/
|
||||
'';
|
||||
|
||||
passthru.scriptName = "360plugin.lua";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Script for mpv to play VR video with optional saving of head tracking data.";
|
||||
homepage = "https://github.com/dfaker/VR-reversal";
|
||||
license = licenses.unlicense;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ schnusch ];
|
||||
};
|
||||
}
|
|
@ -8,16 +8,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "lima";
|
||||
version = "0.9.0";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lima-vm";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-jbWz4HVYR3OEze2fFgG6Tg4p50IL0NStmaa8+GUPkNw=";
|
||||
sha256 = "sha256-Y15oYAdq+bsG2qD/ZTqXHgkelAdQF4SnOE79gDhlNGE=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-RX8HfeDVvLUX4Ez2ma04gTl+8+lM7WGNSpmFNnf+5Xs=";
|
||||
vendorSha256 = "sha256-66CcLWG45vZwM2LVc1xsjJYyxefGEBW4fY3wo1ESQUM=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
||||
|
|
|
@ -15,16 +15,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "i3status-rust";
|
||||
version = "0.21.6";
|
||||
version = "0.21.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "greshake";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-2PBGw5LHIOOPXBZ+12wL2ZGH+gfbkXNIItpE6SLT8so=";
|
||||
sha256 = "sha256-2fh1/7/or++AzvkJfwXD07UiyX8U8CIEe+qXc5S82mM=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-wtxfdQw5zKCxYu7N2BpcLVTlitQmwY7s8oO4dpK8MjE=";
|
||||
cargoSha256 = "sha256-ERBxY0PBQOvAVeWCRcB7rApTLjtHxa0KMV4qGlU/j/Q=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, stdenv
|
||||
, lapack-reference, openblasCompat, openblas
|
||||
, lapack-reference, openblas
|
||||
, isILP64 ? false
|
||||
, blasProvider ? if isILP64 then openblas else openblasCompat }:
|
||||
, blasProvider ? openblas }:
|
||||
|
||||
let
|
||||
blasFortranSymbols = [
|
||||
|
@ -32,10 +32,13 @@ let
|
|||
|
||||
|
||||
blasImplementation = lib.getName blasProvider;
|
||||
blasProvider' = if blasImplementation == "mkl"
|
||||
then blasProvider
|
||||
else blasProvider.override { blas64 = isILP64; };
|
||||
|
||||
in
|
||||
|
||||
assert isILP64 -> (blasImplementation == "openblas" && blasProvider.blas64) || blasImplementation == "mkl";
|
||||
assert isILP64 -> blasImplementation == "mkl" || blasProvider'.blas64;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "blas";
|
||||
|
@ -43,13 +46,13 @@ stdenv.mkDerivation {
|
|||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
meta = (blasProvider.meta or {}) // {
|
||||
meta = (blasProvider'.meta or {}) // {
|
||||
description = "${lib.getName blasProvider} with just the BLAS C and FORTRAN ABI";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit isILP64;
|
||||
provider = blasProvider;
|
||||
provider = blasProvider';
|
||||
implementation = blasImplementation;
|
||||
};
|
||||
|
||||
|
@ -62,10 +65,10 @@ stdenv.mkDerivation {
|
|||
installPhase = (''
|
||||
mkdir -p $out/lib $dev/include $dev/lib/pkgconfig
|
||||
|
||||
libblas="${lib.getLib blasProvider}/lib/libblas${canonicalExtension}"
|
||||
libblas="${lib.getLib blasProvider'}/lib/libblas${canonicalExtension}"
|
||||
|
||||
if ! [ -e "$libblas" ]; then
|
||||
echo "$libblas does not exist, ${blasProvider.name} does not provide libblas."
|
||||
echo "$libblas does not exist, ${blasProvider'.name} does not provide libblas."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -79,11 +82,11 @@ stdenv.mkDerivation {
|
|||
|
||||
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
|
||||
patchelf --set-soname libblas${canonicalExtension} $out/lib/libblas${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libblas${canonicalExtension}
|
||||
'' else if stdenv.hostPlatform.isDarwin then ''
|
||||
install_name_tool \
|
||||
-id $out/lib/libblas${canonicalExtension} \
|
||||
-add_rpath ${lib.getLib blasProvider}/lib \
|
||||
-add_rpath ${lib.getLib blasProvider'}/lib \
|
||||
$out/lib/libblas${canonicalExtension}
|
||||
'' else "") + ''
|
||||
|
||||
|
@ -99,10 +102,10 @@ Libs: -L$out/lib -lblas
|
|||
Cflags: -I$dev/include
|
||||
EOF
|
||||
|
||||
libcblas="${lib.getLib blasProvider}/lib/libcblas${canonicalExtension}"
|
||||
libcblas="${lib.getLib blasProvider'}/lib/libcblas${canonicalExtension}"
|
||||
|
||||
if ! [ -e "$libcblas" ]; then
|
||||
echo "$libcblas does not exist, ${blasProvider.name} does not provide libcblas."
|
||||
echo "$libcblas does not exist, ${blasProvider'.name} does not provide libcblas."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -111,11 +114,11 @@ EOF
|
|||
|
||||
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
|
||||
patchelf --set-soname libcblas${canonicalExtension} $out/lib/libcblas${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libcblas${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libcblas${canonicalExtension}
|
||||
'' else if stdenv.hostPlatform.isDarwin then ''
|
||||
install_name_tool \
|
||||
-id $out/lib/libcblas${canonicalExtension} \
|
||||
-add_rpath ${lib.getLib blasProvider}/lib \
|
||||
-add_rpath ${lib.getLib blasProvider'}/lib \
|
||||
$out/lib/libcblas${canonicalExtension}
|
||||
'' else "") + ''
|
||||
if [ "$out/lib/libcblas${canonicalExtension}" != "$out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then
|
||||
|
@ -135,6 +138,6 @@ EOF
|
|||
mkdir -p $out/nix-support
|
||||
echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook
|
||||
ln -s $out/lib/libblas${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary}
|
||||
ln -sf ${blasProvider}/include/* $dev/include
|
||||
ln -sf ${blasProvider'}/include/* $dev/include
|
||||
'');
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, stdenv
|
||||
, lapack-reference, openblasCompat, openblas
|
||||
, lapack-reference, openblas
|
||||
, isILP64 ? false
|
||||
, lapackProvider ? if isILP64 then openblas else openblasCompat }:
|
||||
, lapackProvider ? openblas }:
|
||||
|
||||
let
|
||||
|
||||
|
@ -11,10 +11,13 @@ let
|
|||
else stdenv.hostPlatform.extensions.sharedLibrary;
|
||||
|
||||
lapackImplementation = lib.getName lapackProvider;
|
||||
lapackProvider' = if lapackImplementation == "mkl"
|
||||
then lapackProvider
|
||||
else lapackProvider.override { blas64 = isILP64; };
|
||||
|
||||
in
|
||||
|
||||
assert isILP64 -> (lapackImplementation == "openblas" && lapackProvider.blas64) || lapackImplementation == "mkl";
|
||||
assert isILP64 -> lapackImplementation == "mkl" || lapackProvider'.blas64;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "lapack";
|
||||
|
@ -22,13 +25,13 @@ stdenv.mkDerivation {
|
|||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
meta = (lapackProvider.meta or {}) // {
|
||||
description = "${lib.getName lapackProvider} with just the LAPACK C and FORTRAN ABI";
|
||||
meta = (lapackProvider'.meta or {}) // {
|
||||
description = "${lib.getName lapackProvider'} with just the LAPACK C and FORTRAN ABI";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit isILP64;
|
||||
provider = lapackProvider;
|
||||
provider = lapackProvider';
|
||||
implementation = lapackImplementation;
|
||||
};
|
||||
|
||||
|
@ -41,10 +44,10 @@ stdenv.mkDerivation {
|
|||
installPhase = (''
|
||||
mkdir -p $out/lib $dev/include $dev/lib/pkgconfig
|
||||
|
||||
liblapack="${lib.getLib lapackProvider}/lib/liblapack${canonicalExtension}"
|
||||
liblapack="${lib.getLib lapackProvider'}/lib/liblapack${canonicalExtension}"
|
||||
|
||||
if ! [ -e "$liblapack" ]; then
|
||||
echo "$liblapack does not exist, ${lapackProvider.name} does not provide liblapack."
|
||||
echo "$liblapack does not exist, ${lapackProvider'.name} does not provide liblapack."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -53,7 +56,7 @@ stdenv.mkDerivation {
|
|||
|
||||
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
|
||||
patchelf --set-soname liblapack${canonicalExtension} $out/lib/liblapack${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider}/lib" $out/lib/liblapack${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider'}/lib" $out/lib/liblapack${canonicalExtension}
|
||||
'' else "") + ''
|
||||
|
||||
if [ "$out/lib/liblapack${canonicalExtension}" != "$out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then
|
||||
|
@ -70,10 +73,10 @@ Cflags: -I$dev/include
|
|||
Libs: -L$out/lib -llapack
|
||||
EOF
|
||||
|
||||
liblapacke="${lib.getLib lapackProvider}/lib/liblapacke${canonicalExtension}"
|
||||
liblapacke="${lib.getLib lapackProvider'}/lib/liblapacke${canonicalExtension}"
|
||||
|
||||
if ! [ -e "$liblapacke" ]; then
|
||||
echo "$liblapacke does not exist, ${lapackProvider.name} does not provide liblapacke."
|
||||
echo "$liblapacke does not exist, ${lapackProvider'.name} does not provide liblapacke."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -82,7 +85,7 @@ EOF
|
|||
|
||||
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
|
||||
patchelf --set-soname liblapacke${canonicalExtension} $out/lib/liblapacke${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider}/lib" $out/lib/liblapacke${canonicalExtension}
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider'}/lib" $out/lib/liblapacke${canonicalExtension}
|
||||
'' else "") + ''
|
||||
|
||||
if [ -f "$out/lib/liblapacke.so.3" ]; then
|
||||
|
@ -102,6 +105,6 @@ EOF
|
|||
mkdir -p $out/nix-support
|
||||
echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook
|
||||
ln -s $out/lib/liblapack${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary}
|
||||
ln -sf ${lapackProvider}/include/* $dev/include
|
||||
ln -sf ${lapackProvider'}/include/* $dev/include
|
||||
'');
|
||||
}
|
||||
|
|
|
@ -33,6 +33,20 @@ NIX_CFLAGS_COMPILE_@suffixSalt@="-B@out@/bin/ $NIX_CFLAGS_COMPILE_@suffixSalt@"
|
|||
# Export and assign separately in order that a failing $(..) will fail
|
||||
# the script.
|
||||
|
||||
# Currently bootstrap-tools does not split glibc, and gcc files into
|
||||
# separate directories. As a workaround we want resulting cflags to be
|
||||
# ordered as: crt1-cflags libc-cflags cc-cflags. Otherwise we mix crt/libc.so
|
||||
# from different libc as seen in
|
||||
# https://github.com/NixOS/nixpkgs/issues/158042
|
||||
#
|
||||
# Note that below has reverse ordering as we prepend flags one-by-one.
|
||||
# Once bootstrap-tools is split into different directories we can stop
|
||||
# relying on flag ordering below.
|
||||
|
||||
if [ -e @out@/nix-support/cc-cflags ]; then
|
||||
NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/cc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
|
||||
fi
|
||||
|
||||
if [[ "$cInclude" = 1 ]] && [ -e @out@/nix-support/libc-cflags ]; then
|
||||
NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
|
||||
fi
|
||||
|
@ -49,10 +63,6 @@ if [ -e @out@/nix-support/libcxx-ldflags ]; then
|
|||
NIX_CXXSTDLIB_LINK_@suffixSalt@+=" $(< @out@/nix-support/libcxx-ldflags)"
|
||||
fi
|
||||
|
||||
if [ -e @out@/nix-support/cc-cflags ]; then
|
||||
NIX_CFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/cc-cflags) $NIX_CFLAGS_COMPILE_@suffixSalt@"
|
||||
fi
|
||||
|
||||
if [ -e @out@/nix-support/gnat-cflags ]; then
|
||||
NIX_GNATFLAGS_COMPILE_@suffixSalt@="$(< @out@/nix-support/gnat-cflags) $NIX_GNATFLAGS_COMPILE_@suffixSalt@"
|
||||
fi
|
||||
|
|
|
@ -9,7 +9,7 @@ fi
|
|||
|
||||
pkgs=$1
|
||||
tmpfile=$(mktemp /tmp/nuget-to-nix.XXXXXX)
|
||||
trap 'rm -f "$tmpfile" EXIT
|
||||
trap "rm -f ${tmpfile}" EXIT
|
||||
|
||||
echo "{ fetchNuGet }: ["
|
||||
|
||||
|
|
|
@ -54,9 +54,9 @@ fetchurl ({
|
|||
"$tmpfile" > "$out"
|
||||
|
||||
if [ ! -s "$out" ]; then
|
||||
echo "error: Filtered patch '$out$' is empty (while the original patch file was not)!" 1>&2
|
||||
echo "error: Filtered patch '$out' is empty (while the original patch file was not)!" 1>&2
|
||||
echo "Check your includes and excludes." 1>&2
|
||||
echo "Normalizd patch file was:" 1>&2
|
||||
echo "Normalized patch file was:" 1>&2
|
||||
cat "$tmpfile" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
|
329
pkgs/build-support/setup-hooks/auto-patchelf.py
Normal file
329
pkgs/build-support/setup-hooks/auto-patchelf.py
Normal file
|
@ -0,0 +1,329 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from collections import defaultdict
|
||||
from contextlib import contextmanager
|
||||
from dataclasses import dataclass
|
||||
from elftools.common.exceptions import ELFError # type: ignore
|
||||
from elftools.elf.dynamic import DynamicSection # type: ignore
|
||||
from elftools.elf.elffile import ELFFile # type: ignore
|
||||
from elftools.elf.enums import ENUM_E_TYPE, ENUM_EI_OSABI # type: ignore
|
||||
from itertools import chain
|
||||
from pathlib import Path, PurePath
|
||||
|
||||
from typing import Tuple, Optional, Iterator, List, DefaultDict, Set
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import pprint
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
|
||||
@contextmanager
|
||||
def open_elf(path: Path) -> Iterator[ELFFile]:
|
||||
with path.open('rb') as stream:
|
||||
yield ELFFile(stream)
|
||||
|
||||
|
||||
def is_static_executable(elf: ELFFile) -> bool:
|
||||
# Statically linked executables have an ELF type of EXEC but no INTERP.
|
||||
return (elf.header["e_type"] == 'ET_EXEC'
|
||||
and not elf.get_section_by_name(".interp"))
|
||||
|
||||
|
||||
def is_dynamic_executable(elf: ELFFile) -> bool:
|
||||
# We do not require an ELF type of EXEC. This also catches
|
||||
# position-independent executables, as they typically have an INTERP
|
||||
# section but their ELF type is DYN.
|
||||
return bool(elf.get_section_by_name(".interp"))
|
||||
|
||||
|
||||
def get_dependencies(elf: ELFFile) -> List[str]:
|
||||
dependencies = []
|
||||
# This convoluted code is here on purpose. For some reason, using
|
||||
# elf.get_section_by_name(".dynamic") does not always return an
|
||||
# instance of DynamicSection, but that is required to call iter_tags
|
||||
for section in elf.iter_sections():
|
||||
if isinstance(section, DynamicSection):
|
||||
for tag in section.iter_tags('DT_NEEDED'):
|
||||
dependencies.append(tag.needed)
|
||||
break # There is only one dynamic section
|
||||
|
||||
return dependencies
|
||||
|
||||
|
||||
def get_rpath(elf: ELFFile) -> List[str]:
|
||||
# This convoluted code is here on purpose. For some reason, using
|
||||
# elf.get_section_by_name(".dynamic") does not always return an
|
||||
# instance of DynamicSection, but that is required to call iter_tags
|
||||
for section in elf.iter_sections():
|
||||
if isinstance(section, DynamicSection):
|
||||
for tag in section.iter_tags('DT_RUNPATH'):
|
||||
return tag.runpath.split(':')
|
||||
|
||||
for tag in section.iter_tags('DT_RPATH'):
|
||||
return tag.rpath.split(':')
|
||||
|
||||
break # There is only one dynamic section
|
||||
|
||||
return []
|
||||
|
||||
|
||||
def get_arch(elf: ELFFile) -> str:
|
||||
return elf.get_machine_arch()
|
||||
|
||||
|
||||
def get_osabi(elf: ELFFile) -> str:
|
||||
return elf.header["e_ident"]["EI_OSABI"]
|
||||
|
||||
|
||||
def osabi_are_compatible(wanted: str, got: str) -> bool:
|
||||
"""
|
||||
Tests whether two OS ABIs are compatible, taking into account the
|
||||
generally accepted compatibility of SVR4 ABI with other ABIs.
|
||||
"""
|
||||
if not wanted or not got:
|
||||
# One of the types couldn't be detected, so as a fallback we'll
|
||||
# assume they're compatible.
|
||||
return True
|
||||
|
||||
# Generally speaking, the base ABI (0x00), which is represented by
|
||||
# readelf(1) as "UNIX - System V", indicates broad compatibility
|
||||
# with other ABIs.
|
||||
#
|
||||
# TODO: This isn't always true. For example, some OSes embed ABI
|
||||
# compatibility into SHT_NOTE sections like .note.tag and
|
||||
# .note.ABI-tag. It would be prudent to add these to the detection
|
||||
# logic to produce better ABI information.
|
||||
if wanted == 'ELFOSABI_SYSV':
|
||||
return True
|
||||
|
||||
# Similarly here, we should be able to link against a superset of
|
||||
# features, so even if the target has another ABI, this should be
|
||||
# fine.
|
||||
if got == 'ELFOSABI_SYSV':
|
||||
return True
|
||||
|
||||
# Otherwise, we simply return whether the ABIs are identical.
|
||||
return wanted == got
|
||||
|
||||
|
||||
def glob(path: Path, pattern: str, recursive: bool) -> Iterator[Path]:
|
||||
return path.rglob(pattern) if recursive else path.glob(pattern)
|
||||
|
||||
|
||||
cached_paths: Set[Path] = set()
|
||||
soname_cache: DefaultDict[Tuple[str, str], List[Tuple[Path, str]]] = defaultdict(list)
|
||||
|
||||
|
||||
def populate_cache(initial: List[Path], recursive: bool =False) -> None:
|
||||
lib_dirs = list(initial)
|
||||
|
||||
while lib_dirs:
|
||||
lib_dir = lib_dirs.pop(0)
|
||||
|
||||
if lib_dir in cached_paths:
|
||||
continue
|
||||
|
||||
cached_paths.add(lib_dir)
|
||||
|
||||
for path in glob(lib_dir, "*.so*", recursive):
|
||||
if not path.is_file():
|
||||
continue
|
||||
|
||||
resolved = path.resolve()
|
||||
try:
|
||||
with open_elf(path) as elf:
|
||||
osabi = get_osabi(elf)
|
||||
arch = get_arch(elf)
|
||||
rpath = [Path(p) for p in get_rpath(elf)
|
||||
if p and '$ORIGIN' not in p]
|
||||
lib_dirs += rpath
|
||||
soname_cache[(path.name, arch)].append((resolved.parent, osabi))
|
||||
|
||||
except ELFError:
|
||||
# Not an ELF file in the right format
|
||||
pass
|
||||
|
||||
|
||||
def find_dependency(soname: str, soarch: str, soabi: str) -> Optional[Path]:
|
||||
for lib, libabi in soname_cache[(soname, soarch)]:
|
||||
if osabi_are_compatible(soabi, libabi):
|
||||
return lib
|
||||
return None
|
||||
|
||||
|
||||
@dataclass
|
||||
class Dependency:
|
||||
file: Path # The file that contains the dependency
|
||||
name: Path # The name of the dependency
|
||||
found: bool = False # Whether it was found somewhere
|
||||
|
||||
|
||||
def auto_patchelf_file(path: Path, runtime_deps: list[Path]) -> list[Dependency]:
|
||||
try:
|
||||
with open_elf(path) as elf:
|
||||
|
||||
if is_static_executable(elf):
|
||||
# No point patching these
|
||||
print(f"skipping {path} because it is statically linked")
|
||||
return []
|
||||
|
||||
if elf.num_segments() == 0:
|
||||
# no segment (e.g. object file)
|
||||
print(f"skipping {path} because it contains no segment")
|
||||
return []
|
||||
|
||||
file_arch = get_arch(elf)
|
||||
if interpreter_arch != file_arch:
|
||||
# Our target architecture is different than this file's
|
||||
# architecture, so skip it.
|
||||
print(f"skipping {path} because its architecture ({file_arch})"
|
||||
f" differs from target ({interpreter_arch})")
|
||||
return []
|
||||
|
||||
file_osabi = get_osabi(elf)
|
||||
if not osabi_are_compatible(interpreter_osabi, file_osabi):
|
||||
print(f"skipping {path} because its OS ABI ({file_osabi}) is"
|
||||
f" not compatible with target ({interpreter_osabi})")
|
||||
return []
|
||||
|
||||
file_is_dynamic_executable = is_dynamic_executable(elf)
|
||||
|
||||
file_dependencies = map(Path, get_dependencies(elf))
|
||||
|
||||
except ELFError:
|
||||
return []
|
||||
|
||||
rpath = []
|
||||
if file_is_dynamic_executable:
|
||||
print("setting interpreter of", path)
|
||||
subprocess.run(
|
||||
["patchelf", "--set-interpreter", interpreter_path.as_posix(), path.as_posix()],
|
||||
check=True)
|
||||
rpath += runtime_deps
|
||||
|
||||
print("searching for dependencies of", path)
|
||||
dependencies = []
|
||||
# Be sure to get the output of all missing dependencies instead of
|
||||
# failing at the first one, because it's more useful when working
|
||||
# on a new package where you don't yet know the dependencies.
|
||||
for dep in file_dependencies:
|
||||
if dep.is_absolute() and dep.is_file():
|
||||
# This is an absolute path. If it exists, just use it.
|
||||
# Otherwise, we probably want this to produce an error when
|
||||
# checked (because just updating the rpath won't satisfy
|
||||
# it).
|
||||
continue
|
||||
elif (libc_lib / dep).is_file():
|
||||
# This library exists in libc, and will be correctly
|
||||
# resolved by the linker.
|
||||
continue
|
||||
|
||||
if found_dependency := find_dependency(dep.name, file_arch, file_osabi):
|
||||
rpath.append(found_dependency)
|
||||
dependencies.append(Dependency(path, dep, True))
|
||||
print(f" {dep} -> found: {found_dependency}")
|
||||
else:
|
||||
dependencies.append(Dependency(path, dep, False))
|
||||
print(f" {dep} -> not found!")
|
||||
|
||||
# Dedup the rpath
|
||||
rpath_str = ":".join(dict.fromkeys(map(Path.as_posix, rpath)))
|
||||
|
||||
if rpath:
|
||||
print("setting RPATH to:", rpath_str)
|
||||
subprocess.run(
|
||||
["patchelf", "--set-rpath", rpath_str, path.as_posix()],
|
||||
check=True)
|
||||
|
||||
return dependencies
|
||||
|
||||
|
||||
def auto_patchelf(
|
||||
paths_to_patch: List[Path],
|
||||
lib_dirs: List[Path],
|
||||
runtime_deps: List[Path],
|
||||
recursive: bool =True,
|
||||
ignore_missing: bool =False) -> None:
|
||||
|
||||
if not paths_to_patch:
|
||||
sys.exit("No paths to patch, stopping.")
|
||||
|
||||
# Add all shared objects of the current output path to the cache,
|
||||
# before lib_dirs, so that they are chosen first in find_dependency.
|
||||
populate_cache(paths_to_patch, recursive)
|
||||
populate_cache(lib_dirs)
|
||||
|
||||
dependencies = []
|
||||
for path in chain.from_iterable(glob(p, '*', recursive) for p in paths_to_patch):
|
||||
if not path.is_symlink() and path.is_file():
|
||||
dependencies += auto_patchelf_file(path, runtime_deps)
|
||||
|
||||
missing = [dep for dep in dependencies if not dep.found]
|
||||
|
||||
# Print a summary of the missing dependencies at the end
|
||||
for dep in missing:
|
||||
print(f"auto-patchelf could not satisfy dependency {dep.name} wanted by {dep.file}")
|
||||
|
||||
if missing and not ignore_missing:
|
||||
sys.exit('auto-patchelf failed to find all the required dependencies.\n'
|
||||
'Add the missing dependencies to --libs or use --ignore-missing.')
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="auto-patchelf",
|
||||
description='auto-patchelf tries as hard as possible to patch the'
|
||||
' provided binary files by looking for compatible'
|
||||
'libraries in the provided paths.')
|
||||
parser.add_argument(
|
||||
"--ignore-missing",
|
||||
action="store_true",
|
||||
help="Do not fail when some dependencies are not found.")
|
||||
parser.add_argument(
|
||||
"--no-recurse",
|
||||
dest="recursive",
|
||||
action="store_false",
|
||||
help="Patch only the provided paths, and ignore their children")
|
||||
parser.add_argument(
|
||||
"--paths", nargs="*", type=Path,
|
||||
help="Paths whose content needs to be patched.")
|
||||
parser.add_argument(
|
||||
"--libs", nargs="*", type=Path,
|
||||
help="Paths where libraries are searched for.")
|
||||
parser.add_argument(
|
||||
"--runtime-dependencies", nargs="*", type=Path,
|
||||
help="Paths to prepend to the runtime path of executable binaries.")
|
||||
|
||||
print("automatically fixing dependencies for ELF files")
|
||||
args = parser.parse_args()
|
||||
pprint.pprint(vars(args))
|
||||
|
||||
auto_patchelf(
|
||||
args.paths,
|
||||
args.libs,
|
||||
args.runtime_dependencies,
|
||||
args.recursive,
|
||||
args.ignore_missing)
|
||||
|
||||
|
||||
interpreter_path: Path = None # type: ignore
|
||||
interpreter_osabi: str = None # type: ignore
|
||||
interpreter_arch: str = None # type: ignore
|
||||
libc_lib: Path = None # type: ignore
|
||||
|
||||
if __name__ == "__main__":
|
||||
nix_support = Path(os.environ['NIX_BINTOOLS']) / 'nix-support'
|
||||
interpreter_path = Path((nix_support / 'dynamic-linker').read_text().strip())
|
||||
libc_lib = Path((nix_support / 'orig-libc').read_text().strip()) / 'lib'
|
||||
|
||||
with open_elf(interpreter_path) as interpreter:
|
||||
interpreter_osabi = get_osabi(interpreter)
|
||||
interpreter_arch = get_arch(interpreter)
|
||||
|
||||
if interpreter_arch and interpreter_osabi and interpreter_path and libc_lib:
|
||||
main()
|
||||
else:
|
||||
sys.exit("Failed to parse dynamic linker (ld) properties.")
|
|
@ -1,289 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
declare -a autoPatchelfLibs
|
||||
declare -Ag autoPatchelfFailedDeps
|
||||
declare -a extraAutoPatchelfLibs
|
||||
|
||||
gatherLibraries() {
|
||||
autoPatchelfLibs+=("$1/lib")
|
||||
}
|
||||
|
||||
# wrapper around patchelf to raise proper error messages
|
||||
# containing the tried file name and command
|
||||
runPatchelf() {
|
||||
patchelf "$@" || (echo "Command failed: patchelf $*" && exit 1)
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
# (targetOffset is referenced but not assigned.)
|
||||
addEnvHooks "$targetOffset" gatherLibraries
|
||||
|
||||
isExecutable() {
|
||||
# For dynamically linked ELF files it would be enough to check just for the
|
||||
# INTERP section. However, we won't catch statically linked executables as
|
||||
# they only have an ELF type of EXEC but no INTERP.
|
||||
#
|
||||
# So what we do here is just check whether *either* the ELF type is EXEC
|
||||
# *or* there is an INTERP section. This also catches position-independent
|
||||
# executables, as they typically have an INTERP section but their ELF type
|
||||
# is DYN.
|
||||
isExeResult="$(LANG=C $READELF -h -l "$1" 2> /dev/null \
|
||||
| grep '^ *Type: *EXEC\>\|^ *INTERP\>')"
|
||||
# not using grep -q, because it can cause Broken pipe
|
||||
# https://unix.stackexchange.com/questions/305547/broken-pipe-when-grepping-output-but-only-with-i-flag
|
||||
[ -n "$isExeResult" ]
|
||||
}
|
||||
|
||||
# We cache dependencies so that we don't need to search through all of them on
|
||||
# every consecutive call to findDependency.
|
||||
declare -Ag autoPatchelfCachedDepsAssoc
|
||||
declare -ag autoPatchelfCachedDeps
|
||||
|
||||
addToDepCache() {
|
||||
if [[ ${autoPatchelfCachedDepsAssoc[$1]+f} ]]; then return; fi
|
||||
|
||||
# store deps in an assoc. array for efficient lookups
|
||||
# otherwise findDependency would have quadratic complexity
|
||||
autoPatchelfCachedDepsAssoc["$1"]=""
|
||||
|
||||
# also store deps in normal array to maintain their order
|
||||
autoPatchelfCachedDeps+=("$1")
|
||||
}
|
||||
|
||||
declare -gi depCacheInitialised=0
|
||||
declare -gi doneRecursiveSearch=0
|
||||
declare -g foundDependency
|
||||
|
||||
getDepsFromElfBinary() {
|
||||
# NOTE: This does not use runPatchelf because it may encounter non-ELF
|
||||
# files. Caller is expected to check the return code if needed.
|
||||
patchelf --print-needed "$1" 2> /dev/null
|
||||
}
|
||||
|
||||
getRpathFromElfBinary() {
|
||||
# NOTE: This does not use runPatchelf because it may encounter non-ELF
|
||||
# files. Caller is expected to check the return code if needed.
|
||||
local rpath
|
||||
IFS=':' read -ra rpath < <(patchelf --print-rpath "$1" 2> /dev/null) || return $?
|
||||
|
||||
printf "%s\n" "${rpath[@]}"
|
||||
}
|
||||
|
||||
populateCacheForDep() {
|
||||
local so="$1"
|
||||
local rpath found
|
||||
rpath="$(getRpathFromElfBinary "$so")" || return 1
|
||||
|
||||
for found in $(getDepsFromElfBinary "$so"); do
|
||||
local rpathElem
|
||||
for rpathElem in $rpath; do
|
||||
# Ignore empty element or $ORIGIN magic variable which should be
|
||||
# deterministically resolved by adding this package's library
|
||||
# files early anyway.
|
||||
#
|
||||
# shellcheck disable=SC2016
|
||||
# (Expressions don't expand in single quotes, use double quotes for
|
||||
# that.)
|
||||
if [[ -z "$rpathElem" || "$rpathElem" == *'$ORIGIN'* ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
local soname="${found%.so*}"
|
||||
local foundso=
|
||||
for foundso in "$rpathElem/$soname".so*; do
|
||||
addToDepCache "$foundso"
|
||||
done
|
||||
|
||||
# Found in this element of the rpath, no need to check others.
|
||||
if [ -n "$foundso" ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Not found in any rpath element.
|
||||
return 1
|
||||
}
|
||||
|
||||
populateCacheWithRecursiveDeps() {
|
||||
# Dependencies may add more to the end of this array, so we use a counter
|
||||
# with while instead of a regular for loop here.
|
||||
local -i i=0
|
||||
while [ $i -lt ${#autoPatchelfCachedDeps[@]} ]; do
|
||||
populateCacheForDep "${autoPatchelfCachedDeps[$i]}"
|
||||
i=$i+1
|
||||
done
|
||||
}
|
||||
|
||||
getBinArch() {
|
||||
$OBJDUMP -f "$1" 2> /dev/null | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p'
|
||||
}
|
||||
|
||||
# Returns the specific OS ABI for an ELF file in the format produced by
|
||||
# readelf(1), like "UNIX - System V" or "UNIX - GNU".
|
||||
getBinOsabi() {
|
||||
$READELF -h "$1" 2> /dev/null | sed -ne 's/^[ \t]*OS\/ABI:[ \t]*\(.*\)/\1/p'
|
||||
}
|
||||
|
||||
# Tests whether two OS ABIs are compatible, taking into account the generally
|
||||
# accepted compatibility of SVR4 ABI with other ABIs.
|
||||
areBinOsabisCompatible() {
|
||||
local wanted="$1"
|
||||
local got="$2"
|
||||
|
||||
if [[ -z "$wanted" || -z "$got" ]]; then
|
||||
# One of the types couldn't be detected, so as a fallback we'll assume
|
||||
# they're compatible.
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Generally speaking, the base ABI (0x00), which is represented by
|
||||
# readelf(1) as "UNIX - System V", indicates broad compatibility with other
|
||||
# ABIs.
|
||||
#
|
||||
# TODO: This isn't always true. For example, some OSes embed ABI
|
||||
# compatibility into SHT_NOTE sections like .note.tag and .note.ABI-tag.
|
||||
# It would be prudent to add these to the detection logic to produce better
|
||||
# ABI information.
|
||||
if [[ "$wanted" == "UNIX - System V" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Similarly here, we should be able to link against a superset of features,
|
||||
# so even if the target has another ABI, this should be fine.
|
||||
if [[ "$got" == "UNIX - System V" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Otherwise, we simply return whether the ABIs are identical.
|
||||
if [[ "$wanted" == "$got" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
# NOTE: If you want to use this function outside of the autoPatchelf function,
|
||||
# keep in mind that the dependency cache is only valid inside the subshell
|
||||
# spawned by the autoPatchelf function, so invoking this directly will possibly
|
||||
# rebuild the dependency cache. See the autoPatchelf function below for more
|
||||
# information.
|
||||
findDependency() {
|
||||
local filename="$1"
|
||||
local arch="$2"
|
||||
local osabi="$3"
|
||||
local lib dep
|
||||
|
||||
if [ $depCacheInitialised -eq 0 ]; then
|
||||
for lib in "${autoPatchelfLibs[@]}"; do
|
||||
for so in "$lib/"*.so*; do addToDepCache "$so"; done
|
||||
done
|
||||
depCacheInitialised=1
|
||||
fi
|
||||
|
||||
for dep in "${autoPatchelfCachedDeps[@]}"; do
|
||||
if [ "$filename" = "${dep##*/}" ]; then
|
||||
if [ "$(getBinArch "$dep")" = "$arch" ] && areBinOsabisCompatible "$osabi" "$(getBinOsabi "$dep")"; then
|
||||
foundDependency="$dep"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Populate the dependency cache with recursive dependencies *only* if we
|
||||
# didn't find the right dependency so far and afterwards run findDependency
|
||||
# again, but this time with $doneRecursiveSearch set to 1 so that it won't
|
||||
# recurse again (and thus infinitely).
|
||||
if [ $doneRecursiveSearch -eq 0 ]; then
|
||||
populateCacheWithRecursiveDeps
|
||||
doneRecursiveSearch=1
|
||||
findDependency "$filename" "$arch" || return 1
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
autoPatchelfFile() {
|
||||
local dep rpath="" toPatch="$1"
|
||||
|
||||
local interpreter
|
||||
interpreter="$(< "$NIX_BINTOOLS/nix-support/dynamic-linker")"
|
||||
|
||||
local interpreterArch interpreterOsabi toPatchArch toPatchOsabi
|
||||
interpreterArch="$(getBinArch "$interpreter")"
|
||||
interpreterOsabi="$(getBinOsabi "$interpreter")"
|
||||
toPatchArch="$(getBinArch "$toPatch")"
|
||||
toPatchOsabi="$(getBinOsabi "$toPatch")"
|
||||
|
||||
if [ "$interpreterArch" != "$toPatchArch" ]; then
|
||||
# Our target architecture is different than this file's architecture,
|
||||
# so skip it.
|
||||
echo "skipping $toPatch because its architecture ($toPatchArch) differs from target ($interpreterArch)" >&2
|
||||
return 0
|
||||
elif ! areBinOsabisCompatible "$interpreterOsabi" "$toPatchOsabi"; then
|
||||
echo "skipping $toPatch because its OS ABI ($toPatchOsabi) is not compatible with target ($interpreterOsabi)" >&2
|
||||
return 0
|
||||
fi
|
||||
|
||||
if isExecutable "$toPatch"; then
|
||||
runPatchelf --set-interpreter "$interpreter" "$toPatch"
|
||||
# shellcheck disable=SC2154
|
||||
# (runtimeDependencies is referenced but not assigned.)
|
||||
if [ -n "$runtimeDependencies" ]; then
|
||||
for dep in $runtimeDependencies; do
|
||||
rpath="$rpath${rpath:+:}$dep/lib"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
local libcLib
|
||||
libcLib="$(< "$NIX_BINTOOLS/nix-support/orig-libc")/lib"
|
||||
|
||||
echo "searching for dependencies of $toPatch" >&2
|
||||
|
||||
local missing
|
||||
missing="$(getDepsFromElfBinary "$toPatch")" || return 0
|
||||
|
||||
# This ensures that we get the output of all missing dependencies instead
|
||||
# of failing at the first one, because it's more useful when working on a
|
||||
# new package where you don't yet know its dependencies.
|
||||
|
||||
for dep in $missing; do
|
||||
if [[ "$dep" == /* ]]; then
|
||||
# This is an absolute path. If it exists, just use it. Otherwise,
|
||||
# we probably want this to produce an error when checked (because
|
||||
# just updating the rpath won't satisfy it).
|
||||
if [ -f "$dep" ]; then
|
||||
continue
|
||||
fi
|
||||
elif [ -f "$libcLib/$dep" ]; then
|
||||
# This library exists in libc, and will be correctly resolved by
|
||||
# the linker.
|
||||
continue
|
||||
fi
|
||||
|
||||
echo -n " $dep -> " >&2
|
||||
if findDependency "$dep" "$toPatchArch" "$toPatchOsabi"; then
|
||||
rpath="$rpath${rpath:+:}${foundDependency%/*}"
|
||||
echo "found: $foundDependency" >&2
|
||||
else
|
||||
echo "not found!" >&2
|
||||
autoPatchelfFailedDeps["$dep"]="$toPatch"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$rpath" ]; then
|
||||
echo "setting RPATH to: $rpath" >&2
|
||||
runPatchelf --set-rpath "$rpath" "$toPatch"
|
||||
fi
|
||||
}
|
||||
|
||||
# Can be used to manually add additional directories with shared object files
|
||||
# to be included for the next autoPatchelf invocation.
|
||||
addAutoPatchelfSearchPath() {
|
||||
local -a findOpts=()
|
||||
|
||||
# XXX: Somewhat similar to the one in the autoPatchelf function, maybe make
|
||||
# it DRY someday...
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--) shift; break;;
|
||||
|
@ -296,15 +28,19 @@ addAutoPatchelfSearchPath() {
|
|||
esac
|
||||
done
|
||||
|
||||
while IFS= read -r -d '' file; do
|
||||
addToDepCache "$file"
|
||||
local dir=
|
||||
while IFS= read -r -d '' dir; do
|
||||
extraAutoPatchelfLibs+=("$dir")
|
||||
done < <(find "$@" "${findOpts[@]}" \! -type d \
|
||||
\( -name '*.so' -o -name '*.so.*' \) -print0)
|
||||
\( -name '*.so' -o -name '*.so.*' \) -print0 \
|
||||
| sed -z 's#/[^/]*$##' \
|
||||
| uniq -z
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
autoPatchelf() {
|
||||
local norecurse=
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--) shift; break;;
|
||||
|
@ -317,47 +53,14 @@ autoPatchelf() {
|
|||
esac
|
||||
done
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "autoPatchelf: No paths to patch specified." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "automatically fixing dependencies for ELF files" >&2
|
||||
|
||||
# Add all shared objects of the current output path to the start of
|
||||
# autoPatchelfCachedDeps so that it's chosen first in findDependency.
|
||||
addAutoPatchelfSearchPath ${norecurse:+--no-recurse} -- "$@"
|
||||
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
isELF "$file" || continue
|
||||
segmentHeaders="$(LANG=C $READELF -l "$file")"
|
||||
# Skip if the ELF file doesn't have segment headers (eg. object files).
|
||||
# not using grep -q, because it can cause Broken pipe
|
||||
grep -q '^Program Headers:' <<<"$segmentHeaders" || continue
|
||||
if isExecutable "$file"; then
|
||||
# Skip if the executable is statically linked.
|
||||
grep -q "^ *INTERP\\>" <<<"$segmentHeaders" || continue
|
||||
fi
|
||||
# Jump file if patchelf is unable to parse it
|
||||
# Some programs contain binary blobs for testing,
|
||||
# which are identified as ELF but fail to be parsed by patchelf
|
||||
patchelf "$file" || continue
|
||||
autoPatchelfFile "$file"
|
||||
done < <(find "$@" ${norecurse:+-maxdepth 1} -type f -print0)
|
||||
|
||||
# fail if any dependencies were not found and
|
||||
# autoPatchelfIgnoreMissingDeps is not set
|
||||
local depsMissing=0
|
||||
for failedDep in "${!autoPatchelfFailedDeps[@]}"; do
|
||||
echo "autoPatchelfHook could not satisfy dependency $failedDep wanted by ${autoPatchelfFailedDeps[$failedDep]}"
|
||||
depsMissing=1
|
||||
done
|
||||
# shellcheck disable=SC2154
|
||||
# (autoPatchelfIgnoreMissingDeps is referenced but not assigned.)
|
||||
if [[ $depsMissing == 1 && -z "$autoPatchelfIgnoreMissingDeps" ]]; then
|
||||
echo "Add the missing dependencies to the build inputs or set autoPatchelfIgnoreMissingDeps=true"
|
||||
exit 1
|
||||
fi
|
||||
local runtimeDependenciesArray=($runtimeDependencies)
|
||||
@pythonInterpreter@ @autoPatchelfScript@ \
|
||||
${norecurse:+--no-recurse} \
|
||||
${autoPatchelfIgnoreMissingDeps:+--ignore-missing} \
|
||||
--paths "$@" \
|
||||
--libs "${autoPatchelfLibs[@]}" \
|
||||
"${extraAutoPatchelfLibs[@]}" \
|
||||
--runtime-dependencies "${runtimeDependenciesArray[@]/%//lib}"
|
||||
}
|
||||
|
||||
# XXX: This should ultimately use fixupOutputHooks but we currently don't have
|
||||
|
|
|
@ -51,7 +51,19 @@ makeWrapper() {
|
|||
local varName="$2" # name of list variable to add to
|
||||
local separator="$3" # character used to separate elements of list
|
||||
local value="$4" # one value, or multiple values separated by `separator`, to add to list
|
||||
if test -n "$value"; then
|
||||
|
||||
# Disable file globbing, since bash will otherwise try to find
|
||||
# filenames matching the the value to be prefixed/suffixed if
|
||||
# it contains characters considered wildcards, such as `?` and
|
||||
# `*`. We want the value as is, except we also want to split
|
||||
# it on on the separator; hence we can't quote it.
|
||||
local reenableGlob=0
|
||||
if [[ ! -o noglob ]]; then
|
||||
reenableGlob=1
|
||||
fi
|
||||
set -o noglob
|
||||
|
||||
if [[ -n "$value" ]]; then
|
||||
local old_ifs=$IFS
|
||||
IFS=$separator
|
||||
|
||||
|
@ -86,6 +98,10 @@ makeWrapper() {
|
|||
done
|
||||
IFS=$old_ifs
|
||||
fi
|
||||
|
||||
if (( reenableGlob )); then
|
||||
set +o noglob
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p "$(dirname "$wrapper")"
|
||||
|
|
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
|||
"BINDIR=$(bin)/bin"
|
||||
"ZICDIR=$(bin)/bin"
|
||||
"ETCDIR=$(TMPDIR)/etc"
|
||||
"TZDEFAULT=$(TMPDIR)/etc"
|
||||
"TZDEFAULT=tzdefault-to-remove"
|
||||
"LIBDIR=$(dev)/lib"
|
||||
"MANDIR=$(man)/share/man"
|
||||
"AWK=awk"
|
||||
|
@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
|
|||
postInstall =
|
||||
''
|
||||
rm $out/share/zoneinfo-posix
|
||||
rm $out/share/zoneinfo/tzdefault-to-remove
|
||||
mkdir $out/share/zoneinfo/posix
|
||||
( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix )
|
||||
mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
|
||||
|
|
|
@ -1 +1 @@
|
|||
WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.5/ -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/plasma/5.24.0/ -A '*.tar.xz' )
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n }:
|
||||
{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n, kcoreaddons }:
|
||||
|
||||
mkDerivation {
|
||||
pname = "kdecoration";
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
buildInputs = [ qtbase ki18n ];
|
||||
buildInputs = [ qtbase ki18n kcoreaddons ];
|
||||
outputs = [ "out" "dev" ];
|
||||
}
|
||||
|
|
|
@ -63,11 +63,11 @@ index 0000000..726065d
|
|||
+
|
||||
+}// namespace
|
||||
+
|
||||
+#endif // SERVICE_UTILS_H
|
||||
diff --git a/src/service_utils.h b/src/service_utils.h
|
||||
+#endif // NIXOS_UTILS_H
|
||||
diff --git a/src/utils/serviceutils.h b/src/utils/serviceutils.h
|
||||
index 8a70c1f..475b15d 100644
|
||||
--- a/src/service_utils.h
|
||||
+++ b/src/service_utils.h
|
||||
--- a/src/utils/serviceutils.h
|
||||
+++ b/src/utils/serviceutils.h
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <QLoggingCategory>
|
||||
//KF
|
||||
|
|
|
@ -11,11 +11,10 @@ diff --git a/processui/scripting.cpp b/processui/scripting.cpp
|
|||
index efed8ff..841761a 100644
|
||||
--- a/processui/scripting.cpp
|
||||
+++ b/processui/scripting.cpp
|
||||
@@ -167,7 +167,7 @@ void Scripting::loadContextMenu() {
|
||||
QStringList scripts;
|
||||
@@ -293,7 +293,7 @@ void Scripting::loadContextMenu()
|
||||
const QStringList dirs =
|
||||
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("ksysguard/scripts/"), QStandardPaths::LocateDirectory);
|
||||
Q_FOREACH (const QString &dir, dirs) {
|
||||
for (const QString &dir : dirs) {
|
||||
- QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
|
||||
+ QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
|
||||
while (it.hasNext()) {
|
||||
|
|
|
@ -14,33 +14,33 @@ diff --git a/startkde/plasma-session/startup.cpp b/startkde/plasma-session/start
|
|||
index 270744053..356160e96 100644
|
||||
--- a/startkde/plasma-session/startup.cpp
|
||||
+++ b/startkde/plasma-session/startup.cpp
|
||||
@@ -143,7 +143,7 @@ Startup::Startup(QObject *parent)
|
||||
const AutoStart autostart;
|
||||
@@ -179,7 +179,7 @@ Startup::Startup(QObject *parent)
|
||||
}
|
||||
|
||||
// Keep for KF5; remove in KF6 (KInit will be gone then)
|
||||
- QProcess::execute(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), QStringList());
|
||||
+ QProcess::execute(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), QStringList());
|
||||
|
||||
KJob *windowManagerJob = nullptr;
|
||||
if (qEnvironmentVariable("XDG_SESSION_TYPE") != QLatin1String("wayland")) {
|
||||
diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
|
||||
KJob *phase1 = nullptr;
|
||||
m_lock.reset(new QEventLoopLocker);
|
||||
diff --git a/startkde/startplasma-wayland.cpp b/startkde/startplasma-wayland.cpp
|
||||
index 3a054a04f..b2e7ab3fb 100644
|
||||
--- a/startkde/startplasma-waylandsession.cpp
|
||||
+++ b/startkde/startplasma-waylandsession.cpp
|
||||
@@ -33,7 +33,7 @@ int main(int argc, char **argv)
|
||||
out << "startplasma-waylandsession: Shutting down...\n";
|
||||
--- a/startkde/startplasma-wayland.cpp
|
||||
+++ b/startkde/startplasma-wayland.cpp
|
||||
@@ -91,7 +91,7 @@ int main(int argc, char **argv)
|
||||
out << "startplasma-wayland: Shutting down...\n";
|
||||
|
||||
// Keep for KF5; remove in KF6 (KInit will be gone then)
|
||||
- runSync(QStringLiteral("kdeinit5_shutdown"), {});
|
||||
+ runSync(QStringLiteral(NIXPKGS_KDEINIT5_SHUTDOWN), {});
|
||||
|
||||
out << "startplasma-waylandsession: Done.\n";
|
||||
|
||||
out << "startplasmacompositor: Shutting down...\n";
|
||||
cleanupPlasmaEnvironment(oldSystemdEnvironment);
|
||||
diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
|
||||
index d6b2c5439..534eeb0e5 100644
|
||||
--- a/startkde/startplasma-x11.cpp
|
||||
+++ b/startkde/startplasma-x11.cpp
|
||||
@@ -90,7 +90,7 @@ int main(int argc, char **argv)
|
||||
@@ -89,7 +89,7 @@ int main(int argc, char **argv)
|
||||
out << "startkde: Shutting down...\n";
|
||||
|
||||
// Keep for KF5; remove in KF6 (KInit will be gone then)
|
||||
|
@ -53,7 +53,7 @@ diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
|
|||
index 008fdfcaf..72468f21c 100644
|
||||
--- a/startkde/startplasma.cpp
|
||||
+++ b/startkde/startplasma.cpp
|
||||
@@ -39,7 +39,7 @@ QTextStream out(stderr);
|
||||
@@ -50,7 +50,7 @@ QTextStream out(stderr);
|
||||
void messageBox(const QString &text)
|
||||
{
|
||||
out << text;
|
||||
|
@ -62,7 +62,7 @@ index 008fdfcaf..72468f21c 100644
|
|||
}
|
||||
|
||||
QStringList allServices(const QLatin1String &prefix)
|
||||
@@ -340,7 +340,7 @@ void setupX11()
|
||||
@@ -412,7 +412,7 @@ void setupX11()
|
||||
// If the user has overwritten fonts, the cursor font may be different now
|
||||
// so don't move this up.
|
||||
|
||||
|
@ -70,17 +70,8 @@ index 008fdfcaf..72468f21c 100644
|
|||
+ runSync(QStringLiteral(NIXPKGS_XSETROOT), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
|
||||
}
|
||||
|
||||
void cleanupPlasmaEnvironment(const std::optional<QStringList> &oldSystemdEnvironment)
|
||||
@@ -403,7 +403,7 @@ void setupFontDpi()
|
||||
// TODO port to c++?
|
||||
const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
|
||||
QProcess p;
|
||||
- p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
|
||||
+ p.start(QStringLiteral(NIXPKGS_XRDB), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
|
||||
p.setProcessChannelMode(QProcess::ForwardedChannels);
|
||||
p.write(input);
|
||||
p.closeWriteChannel();
|
||||
@@ -425,7 +425,7 @@ QProcess *setupKSplash()
|
||||
void cleanupPlasmaEnvironment(const std::optional<QProcessEnvironment> &oldSystemdEnvironment)
|
||||
@@ -500,7 +500,7 @@ QProcess *setupKSplash()
|
||||
KConfigGroup ksplashCfg = cfg.group("KSplash");
|
||||
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
|
||||
p = new QProcess;
|
||||
|
|
|
@ -15,8 +15,8 @@ index a560da3..f723c1e 100644
|
|||
type=image
|
||||
color=#1d99f3
|
||||
fontSize=10
|
||||
-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.png
|
||||
+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.png
|
||||
-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.jpg
|
||||
+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.jpg
|
||||
needsFullUserModel=false
|
||||
--
|
||||
2.30.0
|
||||
|
|
|
@ -4,427 +4,435 @@
|
|||
|
||||
{
|
||||
bluedevil = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/bluedevil-5.23.5.tar.xz";
|
||||
sha256 = "1nbnmfdaisqngygyz1478fswsm1xp28v9l78xlw70yvvyjk2kc6v";
|
||||
name = "bluedevil-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/bluedevil-5.24.0.tar.xz";
|
||||
sha256 = "128br83hkxxrb6wca3d1racygdnfgk3r5md1gcjvgwb0gpy6bnzp";
|
||||
name = "bluedevil-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
breeze = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/breeze-5.23.5.tar.xz";
|
||||
sha256 = "1pyw7rhzkbd9kwsm8l7iz867jhwlbmkarc5iihg0bkbcg1ds18ic";
|
||||
name = "breeze-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/breeze-5.24.0.tar.xz";
|
||||
sha256 = "08b3hihz98z7kdybb0y1b74q1dn511ga81qqqxzlfirgpp8c9f9q";
|
||||
name = "breeze-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
breeze-grub = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/breeze-grub-5.23.5.tar.xz";
|
||||
sha256 = "12rm9a3vrmb3sm04l2c4vcj8psfyjxplp9wgh87q3k1rcyqz7fqk";
|
||||
name = "breeze-grub-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/breeze-grub-5.24.0.tar.xz";
|
||||
sha256 = "0p0pzmsd6scssyxcm9n58mp7fc9vz1lg4n7c1ch4bqragih1gnlr";
|
||||
name = "breeze-grub-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
breeze-gtk = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/breeze-gtk-5.23.5.tar.xz";
|
||||
sha256 = "1ynbvfgy2nlxg5svjqazj70m7py58ixxa7xyj13dcj6i2ikbcjld";
|
||||
name = "breeze-gtk-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/breeze-gtk-5.24.0.tar.xz";
|
||||
sha256 = "090cczxc1ciic6wghz3p21gpfdwnc8pjcvq6wn7bfkp1i3r5mihp";
|
||||
name = "breeze-gtk-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
breeze-plymouth = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/breeze-plymouth-5.23.5.tar.xz";
|
||||
sha256 = "1sllcrhz8hniqkgybk5bbb36fzjcdp5drjbf7v7jn4ih4wvybwmk";
|
||||
name = "breeze-plymouth-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/breeze-plymouth-5.24.0.tar.xz";
|
||||
sha256 = "1qqpwgp1yy3p1s0z21xwds6wx4z8daibkgk1bynj73cx7a2wch9g";
|
||||
name = "breeze-plymouth-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
discover = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/discover-5.23.5.tar.xz";
|
||||
sha256 = "1kzp7jpw2kgml2yc3cx9n5syln3kyd9fxa5klh3sa1xn6bz9f8zr";
|
||||
name = "discover-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/discover-5.24.0.tar.xz";
|
||||
sha256 = "0dbfvqana31wqharsbyb8rcrw1w6l9x1g6p02aqwiph0inkrz20q";
|
||||
name = "discover-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
drkonqi = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/drkonqi-5.23.5.tar.xz";
|
||||
sha256 = "08jjh52r6dmgp7dyxjxvavb4cxhmvzirwdn7hnmfhdbwkm09fqm5";
|
||||
name = "drkonqi-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/drkonqi-5.24.0.tar.xz";
|
||||
sha256 = "1ismgg7rcxijkprn4sci15wn4w2gmdn0fdbgvzxdcrqaf4g6qc3s";
|
||||
name = "drkonqi-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kactivitymanagerd = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kactivitymanagerd-5.23.5.tar.xz";
|
||||
sha256 = "09v6pia34a694g0amj0miqi0j42yqvhfcv6yr9zfix4gf1qcdidn";
|
||||
name = "kactivitymanagerd-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kactivitymanagerd-5.24.0.tar.xz";
|
||||
sha256 = "12dvgm3ilyqlxzm8209b7g42nfk0ahfzizs3pbmi18zapjszcsps";
|
||||
name = "kactivitymanagerd-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kde-cli-tools = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kde-cli-tools-5.23.5.tar.xz";
|
||||
sha256 = "1203z87i4dmhq1vlrfj4kiw157i5zkccd2bwc7p7qwhgbddaw5jd";
|
||||
name = "kde-cli-tools-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kde-cli-tools-5.24.0.tar.xz";
|
||||
sha256 = "0l8a4ysz1cqwdh3c20q51qamwh58vvs8yzb5jdvbp8bahsyyc4mr";
|
||||
name = "kde-cli-tools-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kde-gtk-config = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kde-gtk-config-5.23.5.tar.xz";
|
||||
sha256 = "14qqxy2vz9004kfam9biv6q0601sn9yhrkx0i8y0958a58s5z3hp";
|
||||
name = "kde-gtk-config-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kde-gtk-config-5.24.0.tar.xz";
|
||||
sha256 = "024pglycz2kbp9npnvbx5qpkz9381wyyp6xkalqynzr9gy58syrx";
|
||||
name = "kde-gtk-config-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdecoration = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kdecoration-5.23.5.tar.xz";
|
||||
sha256 = "1kqj8l95wy46kfsw3f1crxwba9zwdlbgi7345mamhyks74wj1628";
|
||||
name = "kdecoration-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kdecoration-5.24.0.tar.xz";
|
||||
sha256 = "0xl8892w49z11k9mxgh7lp8a4l1x8wldmaij82kd1vnh9sxvb3f3";
|
||||
name = "kdecoration-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kdeplasma-addons = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kdeplasma-addons-5.23.5.tar.xz";
|
||||
sha256 = "0cq0g8nqrkwv12010rsrmzqvxsa5arjpa87gvws8pah3v9k1xnkq";
|
||||
name = "kdeplasma-addons-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kdeplasma-addons-5.24.0.tar.xz";
|
||||
sha256 = "0q8yf0gz4gjn1kyf545i8fpsn2dpy48qhjpm8ssp3ywv6s2abjxn";
|
||||
name = "kdeplasma-addons-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kgamma5 = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kgamma5-5.23.5.tar.xz";
|
||||
sha256 = "17j0kv00ibs2g9jxfvflk965221iznm0ydgj3i05i6j2bd8301zn";
|
||||
name = "kgamma5-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kgamma5-5.24.0.tar.xz";
|
||||
sha256 = "07w7l25snpi98j5bxg3zri5lsymabnli6h9d5w0qx0c19wzjwayl";
|
||||
name = "kgamma5-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
khotkeys = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/khotkeys-5.23.5.tar.xz";
|
||||
sha256 = "13562p0bv0jkamx9q07wi5vs78bdrhd0h3qg5rxajc5s36gyh63a";
|
||||
name = "khotkeys-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/khotkeys-5.24.0.tar.xz";
|
||||
sha256 = "0gjdwdzg5vybalima8jnwrprqj0rnxmzds0x8w707nb9ypz4k7k6";
|
||||
name = "khotkeys-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kinfocenter = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kinfocenter-5.23.5.tar.xz";
|
||||
sha256 = "0f7ik3gg1pimjlc94dp6psk0sha8k7pinx50nvmgsglap4k1xbk7";
|
||||
name = "kinfocenter-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kinfocenter-5.24.0.tar.xz";
|
||||
sha256 = "09fq69q4300ppi1y9pp8s4h1bbai1p5qsz384bb445pjvwsyn6nf";
|
||||
name = "kinfocenter-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kmenuedit = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kmenuedit-5.23.5.tar.xz";
|
||||
sha256 = "0k3dbip98zwia6m8nlgiw4mz09pkw7bik4cn3j73v2x3n7y3c542";
|
||||
name = "kmenuedit-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kmenuedit-5.24.0.tar.xz";
|
||||
sha256 = "0bjiqdw4wqi5vpkn98wjjz23x6k47lvxac8nyxs8ddd9i8mlklij";
|
||||
name = "kmenuedit-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kscreen = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kscreen-5.23.5.tar.xz";
|
||||
sha256 = "0j5rgzj132j7qy1pgi12mhihf1a89a3xh8j5f7dp5s1f8kyjq0yi";
|
||||
name = "kscreen-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kscreen-5.24.0.tar.xz";
|
||||
sha256 = "19kqvvgj209ri035ldzn1k5l36l54rvagsnfzhw61v8rd9r6r02x";
|
||||
name = "kscreen-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kscreenlocker = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kscreenlocker-5.23.5.tar.xz";
|
||||
sha256 = "07vhwvcyz9ynjzh44zny1f6di2knzy3fkiji3bhrki8p3zc9vjpm";
|
||||
name = "kscreenlocker-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kscreenlocker-5.24.0.tar.xz";
|
||||
sha256 = "0d827h5br27sdd925brljb1mwnkzj739g5q0k8xkw9f9q9bxk8l8";
|
||||
name = "kscreenlocker-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
ksshaskpass = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/ksshaskpass-5.23.5.tar.xz";
|
||||
sha256 = "0p8aka60mc8p96v3bx954jy99n9lf0a4b09sig307clwinfr23if";
|
||||
name = "ksshaskpass-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/ksshaskpass-5.24.0.tar.xz";
|
||||
sha256 = "1xiw25imhmkcikp746q9s393djmkdpkh9jb7h1diwwhambnimy6d";
|
||||
name = "ksshaskpass-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
ksystemstats = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/ksystemstats-5.23.5.tar.xz";
|
||||
sha256 = "1xmr0yk5xynja6z7xc6l1zd529q5si5qs71f72dba2zna22hb7hb";
|
||||
name = "ksystemstats-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/ksystemstats-5.24.0.tar.xz";
|
||||
sha256 = "1182dfcg1av9329g9p9ll64yiwyxm46kczakxb3vj4d2ajaclzm1";
|
||||
name = "ksystemstats-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwallet-pam = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kwallet-pam-5.23.5.tar.xz";
|
||||
sha256 = "1cha41wiqsfgyrqb8di5qnnz0mnvmchprxay48czrn3r5mz49pw9";
|
||||
name = "kwallet-pam-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kwallet-pam-5.24.0.tar.xz";
|
||||
sha256 = "0jzi2rcwxxjp3lg8cywp96ysnwm51a0m9pdwk8z7n3v1ncr2p38q";
|
||||
name = "kwallet-pam-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwayland-integration = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kwayland-integration-5.23.5.tar.xz";
|
||||
sha256 = "0gs68v4rriknn59fv0yjcgrmcryv7wxgskswdgi1xx18v0rlc4ag";
|
||||
name = "kwayland-integration-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kwayland-integration-5.24.0.tar.xz";
|
||||
sha256 = "1yq9cjb8xcvqr747p5hm8xxg4rn6mahchd5c2camv3qrjbqm8ll6";
|
||||
name = "kwayland-integration-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwayland-server = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kwayland-server-5.23.5.tar.xz";
|
||||
sha256 = "0b8c1mkh36cgxhx18v9j23n9gnvzy22x50gpiw3dbkjzsmr1n7by";
|
||||
name = "kwayland-server-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kwayland-server-5.24.0.tar.xz";
|
||||
sha256 = "1zbi4c14zvjwkxxqlg80mv749ybnkmcdvn72irmrzbbf4g1z7k32";
|
||||
name = "kwayland-server-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwin = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kwin-5.23.5.tar.xz";
|
||||
sha256 = "00azqmdgkh72bg4d8868cin984vxxk6s6pk5x4dfvlaknzlyfjgp";
|
||||
name = "kwin-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kwin-5.24.0.tar.xz";
|
||||
sha256 = "19q5pphqnr1xc1c4z0sd3yr60jsiq190llwllfmlj4acjlbcbbn6";
|
||||
name = "kwin-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
kwrited = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/kwrited-5.23.5.tar.xz";
|
||||
sha256 = "0aj911kfzd100jq1k1sg7i1nhiixnl7qiphc2bczn47f1jj64iqv";
|
||||
name = "kwrited-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/kwrited-5.24.0.tar.xz";
|
||||
sha256 = "018wvkkqzg4qyjd0w1h2d3ms72ghlq8mg79rrsj518l7hhlv6rsg";
|
||||
name = "kwrited-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
layer-shell-qt = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/layer-shell-qt-5.23.5.tar.xz";
|
||||
sha256 = "1ah66z9hiricw6h3j7x2k7d49y7g4l2s9w2658wjrava2qng9bsr";
|
||||
name = "layer-shell-qt-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/layer-shell-qt-5.24.0.tar.xz";
|
||||
sha256 = "0y3z2xr9vpxnm84gs1zpa1apma341wza7pjcpwibaqd6aiz9vpqv";
|
||||
name = "layer-shell-qt-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
libkscreen = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/libkscreen-5.23.5.tar.xz";
|
||||
sha256 = "08wgg96clp685fl5lflrfd4kmf5c2p5ms7n1q2izvg0n6qr37m1i";
|
||||
name = "libkscreen-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/libkscreen-5.24.0.tar.xz";
|
||||
sha256 = "0h6sycib940gbw2rf6ax3v7mg77pzga36xzwzbyz9h49fba3dpjk";
|
||||
name = "libkscreen-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
libksysguard = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/libksysguard-5.23.5.tar.xz";
|
||||
sha256 = "1gy1grkkz7vwglby52vv4gr8zbzsv8rbvwbp6rqvvhmqg7ascc1h";
|
||||
name = "libksysguard-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/libksysguard-5.24.0.tar.xz";
|
||||
sha256 = "1f0hwk2kzmgpjxmsjfd4g25sr91qyazp4hysyfjdhrrs2ajdkm0b";
|
||||
name = "libksysguard-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
milou = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/milou-5.23.5.tar.xz";
|
||||
sha256 = "05bc6hc5pn5rz4zp6b2akjdbssv7xppvzsw3pidkqb8pincl01gh";
|
||||
name = "milou-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/milou-5.24.0.tar.xz";
|
||||
sha256 = "0sxsisrzfancxwk8lsxhj2b85sgjdb9gzy4l0nax4fp942ygiirs";
|
||||
name = "milou-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
oxygen = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/oxygen-5.23.5.tar.xz";
|
||||
sha256 = "1vvy9yqllqq9dx2riwv4bmxfq13wph5wagy84f1hhl7zxnbcyv0c";
|
||||
name = "oxygen-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/oxygen-5.24.0.tar.xz";
|
||||
sha256 = "0ym74q29c2f32l1xm3kd0s2p7zzbg6a96g7d39fkp5paxicx5fb7";
|
||||
name = "oxygen-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-browser-integration = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-browser-integration-5.23.5.tar.xz";
|
||||
sha256 = "0jw9jircgbilig4pryyjxhby8qc7nag9a1s5nk1zdsnlaqr08jyp";
|
||||
name = "plasma-browser-integration-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-browser-integration-5.24.0.tar.xz";
|
||||
sha256 = "1gp9m7drwxflb0ms0vbvk7qydm1bghhzalc00lpcjh4nrf0bgh33";
|
||||
name = "plasma-browser-integration-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-desktop = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-desktop-5.23.5.tar.xz";
|
||||
sha256 = "0ym8cssw351ygw2vy27cyxql05y0gaflnqnq4fwkdgidldvmi45k";
|
||||
name = "plasma-desktop-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-desktop-5.24.0.tar.xz";
|
||||
sha256 = "1brnm6yivjy2piy88ncmclv4g2rxkaiyi923c557dmiipah2bx7z";
|
||||
name = "plasma-desktop-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-disks = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-disks-5.23.5.tar.xz";
|
||||
sha256 = "0197zyj5p7j8y80g0vvf5d9bq86qxkhwpa9dzb5l3is50y8lkj6p";
|
||||
name = "plasma-disks-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-disks-5.24.0.tar.xz";
|
||||
sha256 = "1c3pwnyhdmj7grk3gjh4kw5437m5cxhp70qsbhnfsaacps3mdv5d";
|
||||
name = "plasma-disks-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-firewall = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-firewall-5.23.5.tar.xz";
|
||||
sha256 = "0fhycjrb89blh6wf24rvq7bafqqrxj37ir0daj5jlph9f1w4laq0";
|
||||
name = "plasma-firewall-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-firewall-5.24.0.tar.xz";
|
||||
sha256 = "1jjw414547qksjxg2x5n666iq6qildbn9k9c8hqipmwnlkprpbb1";
|
||||
name = "plasma-firewall-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-integration = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-integration-5.23.5.tar.xz";
|
||||
sha256 = "03c0cqvr5cdpvxgm145sqpbbr8wv0qv4pqjl69v3bs010pd755lg";
|
||||
name = "plasma-integration-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-integration-5.24.0.tar.xz";
|
||||
sha256 = "17dqf6j1za3q8hzk7jfc5wc7s4kr28slrkq5iqvzqgyqjqy3z7rv";
|
||||
name = "plasma-integration-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-mobile = {
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-mobile-5.24.0.tar.xz";
|
||||
sha256 = "0g9mbb8dzqcngc1sq43knwyc3kr81w3vl359wyrgvnr8r1qikv2z";
|
||||
name = "plasma-mobile-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-nano = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-nano-5.23.5.tar.xz";
|
||||
sha256 = "1yh67bh1smk7zx35hd72pafjbjdv7wwwhm76ga5sj251m61ncxim";
|
||||
name = "plasma-nano-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-nano-5.24.0.tar.xz";
|
||||
sha256 = "0i8lsp83g2i3c88djkmxawwbwa6lr0w89lzxj73fr6az6vdcrypj";
|
||||
name = "plasma-nano-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-nm = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-nm-5.23.5.tar.xz";
|
||||
sha256 = "14sknzy4v4xx1ihjn1s6x0lv5difnp4gi24zsdqvnkxkmxzhcij3";
|
||||
name = "plasma-nm-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-nm-5.24.0.tar.xz";
|
||||
sha256 = "17pmyklmr46qg21w4ql9q5nhfdjw1xmmv1qz7lyhlww7qa6mz1ny";
|
||||
name = "plasma-nm-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-pa = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-pa-5.23.5.tar.xz";
|
||||
sha256 = "1pcnf59qj7rgmcbc5xhad5zl487r48i2kyp6nc3yrlgj1xcfpfxg";
|
||||
name = "plasma-pa-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-pa-5.24.0.tar.xz";
|
||||
sha256 = "19n2plbk455qwgq0lcpb7rj2ck78ck64fpvlldmh53j9vxyzcasl";
|
||||
name = "plasma-pa-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-phone-components = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-phone-components-5.23.5.tar.xz";
|
||||
sha256 = "08c03pycvv7ald21d8ckxpv6d25qlxs28gjm99hdn6x8m74j7frn";
|
||||
name = "plasma-phone-components-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-phone-components-5.24.0.tar.xz";
|
||||
sha256 = "0g9mbb8dzqcngc1sq43knwyc3kr81w3vl359wyrgvnr8r1qikv2z";
|
||||
name = "plasma-phone-components-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-sdk = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-sdk-5.23.5.tar.xz";
|
||||
sha256 = "1s0l09lgqipks0w0jplaaipcs4a1ny4iclkz9hkfx4xjgcvk5m2j";
|
||||
name = "plasma-sdk-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-sdk-5.24.0.tar.xz";
|
||||
sha256 = "16fn98rv4qaci3b5whzjs6csbbxyrnmnr9gngn5dirdpla8cffld";
|
||||
name = "plasma-sdk-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-systemmonitor = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-systemmonitor-5.23.5.tar.xz";
|
||||
sha256 = "1snzabxgja9rsk000h97qjadb9fs8zdbqpr4zqa9sk0jjgm011lf";
|
||||
name = "plasma-systemmonitor-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-systemmonitor-5.24.0.tar.xz";
|
||||
sha256 = "0zkvbgwm2rpyisbx72a75ywy45d2primjjpnmw76x6924j8sp7pd";
|
||||
name = "plasma-systemmonitor-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-tests = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-tests-5.23.5.tar.xz";
|
||||
sha256 = "125b0sf7h0ibjl7msw1sc3cccms8nrrkx6cgwd46a9xi5svrsfg2";
|
||||
name = "plasma-tests-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-tests-5.24.0.tar.xz";
|
||||
sha256 = "1q95mrrb0p9ah4dg3bhkc9yh2ydasdmyd87jclraybcsfl6fi9kf";
|
||||
name = "plasma-tests-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-thunderbolt = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-thunderbolt-5.23.5.tar.xz";
|
||||
sha256 = "1ich92w479llvq1vjlfyvxh3dvqc4pgycfi97hz4sfhn7dnaw3vr";
|
||||
name = "plasma-thunderbolt-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-thunderbolt-5.24.0.tar.xz";
|
||||
sha256 = "1vsb3wf2sgbfbm2wk8kj18qhv4z9l4yzxaf8g30zpz4d1sva7jdc";
|
||||
name = "plasma-thunderbolt-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-vault = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-vault-5.23.5.tar.xz";
|
||||
sha256 = "1gf531q29qnvvsdxqgb1zyxwh5ck25kb0h1kk0d95pjkkylgyv0d";
|
||||
name = "plasma-vault-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-vault-5.24.0.tar.xz";
|
||||
sha256 = "1vk38iarhsr6rdrmhbcyjziw3dn8yjmgyn4dy2xdr0l4yqpq7qzz";
|
||||
name = "plasma-vault-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-workspace = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-workspace-5.23.5.tar.xz";
|
||||
sha256 = "0x950nb56xmmdf7hfpbrd9hvgq1a8vca0x8g1qsvrjhh5ymydgif";
|
||||
name = "plasma-workspace-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-workspace-5.24.0.tar.xz";
|
||||
sha256 = "0jnksl2i2viw5aaqv38b371z4lxrxah6p1bjp40a1zfa68vr8dz3";
|
||||
name = "plasma-workspace-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plasma-workspace-wallpapers = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plasma-workspace-wallpapers-5.23.5.tar.xz";
|
||||
sha256 = "0nr631yz8v671a87vh9f2a5kfjhn4f9147b339p09fwgfpx06vfx";
|
||||
name = "plasma-workspace-wallpapers-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plasma-workspace-wallpapers-5.24.0.tar.xz";
|
||||
sha256 = "0329ks3q32nb9k3dxddlmxccjilgyxx5jplwbpln5b0p4plkn77k";
|
||||
name = "plasma-workspace-wallpapers-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
plymouth-kcm = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/plymouth-kcm-5.23.5.tar.xz";
|
||||
sha256 = "0ynyqfm6az8yj3d30yxza5mjcsgfw6mmdkcgr3v95r6db112hqbx";
|
||||
name = "plymouth-kcm-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/plymouth-kcm-5.24.0.tar.xz";
|
||||
sha256 = "1pcvfrv8vmk43s14209iv8gngi3al9g4za74yz2l79nxscyppzh5";
|
||||
name = "plymouth-kcm-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
polkit-kde-agent = {
|
||||
version = "1-5.23.5";
|
||||
version = "1-5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/polkit-kde-agent-1-5.23.5.tar.xz";
|
||||
sha256 = "1wgpgbq987qa6fdayw4155fwym6rcn2z7w66s8faqv94x78njzln";
|
||||
name = "polkit-kde-agent-1-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/polkit-kde-agent-1-5.24.0.tar.xz";
|
||||
sha256 = "1qayxff5hl8qr9p5bsfrq0cz3x1jlwc8f0nx66rkbngphdm7085n";
|
||||
name = "polkit-kde-agent-1-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
powerdevil = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/powerdevil-5.23.5.tar.xz";
|
||||
sha256 = "1lxjqd4w3jvnffcn9751j9k1fzsyasd1z8b1gm2iaf38iys21116";
|
||||
name = "powerdevil-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/powerdevil-5.24.0.tar.xz";
|
||||
sha256 = "06mrahlrqibvgfhcxywh72h6jblqq6sjsxqjzbq7zbq61vgc3jg3";
|
||||
name = "powerdevil-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
qqc2-breeze-style = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/qqc2-breeze-style-5.23.5.tar.xz";
|
||||
sha256 = "15i9h2md54a1h7isvma4x9pni3iy0bk84z8ibn3a36ydimyq5hra";
|
||||
name = "qqc2-breeze-style-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/qqc2-breeze-style-5.24.0.tar.xz";
|
||||
sha256 = "11kwrqsq5i1y1kvhg75hvax7bz122cjdsvb66f6hvni09yfcgyci";
|
||||
name = "qqc2-breeze-style-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
sddm-kcm = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/sddm-kcm-5.23.5.tar.xz";
|
||||
sha256 = "0csj1gml8w29dzv62zpbia9g10qz5k1nzv1yywsvay1q8rbqccxv";
|
||||
name = "sddm-kcm-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/sddm-kcm-5.24.0.tar.xz";
|
||||
sha256 = "011b68vca8nnmj9rxlyl5gl3xrrbysmcrx8szyfhha0wl9rgy2hx";
|
||||
name = "sddm-kcm-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
systemsettings = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/systemsettings-5.23.5.tar.xz";
|
||||
sha256 = "0shsqancxbxy6f4fd9m2a30x7gnjmd6gb8kq4nhlj6rramcwn3jh";
|
||||
name = "systemsettings-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/systemsettings-5.24.0.tar.xz";
|
||||
sha256 = "1jx1kllfd5561fq11d90r7m68736rsdlyzb109yq8awdwrl1vkp3";
|
||||
name = "systemsettings-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
xdg-desktop-portal-kde = {
|
||||
version = "5.23.5";
|
||||
version = "5.24.0";
|
||||
src = fetchurl {
|
||||
url = "${mirror}/stable/plasma/5.23.5/xdg-desktop-portal-kde-5.23.5.tar.xz";
|
||||
sha256 = "09s3fpjdrnxqvnyxmxva0rx612d6pxv28qqvm00hzrb23nxz6qgb";
|
||||
name = "xdg-desktop-portal-kde-5.23.5.tar.xz";
|
||||
url = "${mirror}/stable/plasma/5.24.0/xdg-desktop-portal-kde-5.24.0.tar.xz";
|
||||
sha256 = "0f5wv4557avzcn7gf2hjqpn2p9r0d16k1iqcijzcfdmnvh2cp69d";
|
||||
name = "xdg-desktop-portal-kde-5.24.0.tar.xz";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
12
pkgs/development/compilers/4th/001-install-manual-fixup.diff
Normal file
12
pkgs/development/compilers/4th/001-install-manual-fixup.diff
Normal file
|
@ -0,0 +1,12 @@
|
|||
diff -Naur 4th-3.64.0-old/sources/Makefile 4th-3.64.0-new/sources/Makefile
|
||||
--- 4th-3.64.0-old/sources/Makefile 2022-03-15 12:37:45.925122854 -0300
|
||||
+++ 4th-3.64.0-new/sources/Makefile 2022-03-15 12:38:50.987870211 -0300
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
install: mostlyinstall
|
||||
install -Dm644 ../documentation/4th.1 $(MANDIR)/man1/4th.1
|
||||
- install -Dm644 ../documentation/4tHmanual.txt $(DOCDIR)/4th/
|
||||
+ install -Dm644 ../documentation/4tHmanual.pdf $(DOCDIR)/4th/
|
||||
|
||||
uninstall:
|
||||
-rm -f $(LIBRARIES)/lib4th.{a,so*}
|
|
@ -2,13 +2,18 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "4th";
|
||||
version = "3.62.5";
|
||||
version = "3.64.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://sourceforge.net/projects/forth-4th/files/${pname}-${version}/${pname}-${version}-unix.tar.gz";
|
||||
sha256 = "sha256-+CL33Yz7CxdEpi1lPG7+kzV4rheJ7GCgiFCaOLyktPw=";
|
||||
hash = "sha256-wJBekjFsFRIkhY/P/yHBQ8he+k+fGyrePGTP2Yjgpqg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix install manual; report this patch to upstream
|
||||
./001-install-manual-fixup.diff
|
||||
];
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
makeFlags = [
|
||||
|
@ -31,9 +36,11 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A portable Forth compiler";
|
||||
homepage = "https://thebeez.home.xs4all.nl/4tH/index.html";
|
||||
license = licenses.lgpl3;
|
||||
platforms = platforms.all;
|
||||
description = "A portable Forth compiler";
|
||||
license = licenses.lgpl3Plus;
|
||||
maintainers = with maintainers; [ AndersonTorres ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
# TODO: set Makefile according to platform
|
||||
|
|
|
@ -61,8 +61,6 @@ stdenv.mkDerivation rec {
|
|||
gtk2 glib fontconfig freetype unixODBC alsa-lib
|
||||
];
|
||||
|
||||
rpath = "${lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc.lib}/lib64";
|
||||
|
||||
unpackPhase = ''
|
||||
sh $src --keep --noexec
|
||||
|
||||
|
@ -119,6 +117,12 @@ stdenv.mkDerivation rec {
|
|||
fi
|
||||
done
|
||||
mv pkg/builds/cuda_nvcc/nvvm $out/nvvm
|
||||
|
||||
mv pkg/builds/cuda_sanitizer_api $out/cuda_sanitizer_api
|
||||
ln -s $out/cuda_sanitizer_api/compute-sanitizer/compute-sanitizer $out/bin/compute-sanitizer
|
||||
|
||||
mv pkg/builds/nsight_systems/target-linux-x64 $out/target-linux-x64
|
||||
mv pkg/builds/nsight_systems/host-linux-x64 $out/host-linux-x64
|
||||
''}
|
||||
|
||||
rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
|
||||
|
@ -184,21 +188,34 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
while IFS= read -r -d ''$'\0' i; do
|
||||
preFixup =
|
||||
let rpath = lib.concatStringsSep ":" [
|
||||
(lib.makeLibraryPath (runtimeDependencies ++ [ "$lib" "$out" "$out/nvvm" ]))
|
||||
"${stdenv.cc.cc.lib}/lib64"
|
||||
"$out/jre/lib/amd64/jli"
|
||||
"$out/lib64"
|
||||
"$out/nvvm/lib64"
|
||||
];
|
||||
in
|
||||
''
|
||||
while IFS= read -r -d $'\0' i; do
|
||||
if ! isELF "$i"; then continue; fi
|
||||
echo "patching $i..."
|
||||
if [[ ! $i =~ \.so ]]; then
|
||||
patchelf \
|
||||
--set-interpreter "''$(cat $NIX_CC/nix-support/dynamic-linker)" $i
|
||||
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $i
|
||||
fi
|
||||
if [[ $i =~ libcudart ]]; then
|
||||
patchelf --remove-rpath $i
|
||||
else
|
||||
rpath2=$rpath:$lib/lib:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64
|
||||
patchelf --set-rpath "$rpath2" --force-rpath $i
|
||||
patchelf --set-rpath "${rpath}" --force-rpath $i
|
||||
fi
|
||||
done < <(find $out $lib $doc -type f -print0)
|
||||
'' + lib.optionalString (lib.versionAtLeast version "11") ''
|
||||
for file in $out/target-linux-x64/*.so; do
|
||||
echo "patching $file..."
|
||||
patchelf --set-rpath "${rpath}:\$ORIGIN" $file
|
||||
done
|
||||
'';
|
||||
|
||||
# Set RPATH so that libcuda and other libraries in
|
||||
|
@ -208,6 +225,10 @@ stdenv.mkDerivation rec {
|
|||
# --force-rpath prevents changing RPATH (set above) to RUNPATH.
|
||||
postFixup = ''
|
||||
addOpenGLRunpath --force-rpath {$out,$lib}/lib/lib*.so
|
||||
'' + lib.optionalString (lib.versionAtLeast version "11") ''
|
||||
addOpenGLRunpath $out/cuda_sanitizer_api/compute-sanitizer/*
|
||||
addOpenGLRunpath $out/cuda_sanitizer_api/compute-sanitizer/x86/*
|
||||
addOpenGLRunpath $out/target-linux-x64/*
|
||||
'';
|
||||
|
||||
# cuda-gdb doesn't run correctly when not using sandboxing, so
|
||||
|
|
|
@ -168,6 +168,7 @@ stdenv.mkDerivation rec {
|
|||
./creds-test.patch
|
||||
./go-1.9-skip-flaky-19608.patch
|
||||
./go-1.9-skip-flaky-20072.patch
|
||||
./skip-chown-tests-1.16.patch
|
||||
./skip-external-network-tests-1.16.patch
|
||||
./skip-nohup-tests.patch
|
||||
./skip-cgo-tests-1.15.patch
|
||||
|
|
|
@ -168,6 +168,7 @@ stdenv.mkDerivation rec {
|
|||
./creds-test.patch
|
||||
./go-1.9-skip-flaky-19608.patch
|
||||
./go-1.9-skip-flaky-20072.patch
|
||||
./skip-chown-tests-1.16.patch
|
||||
./skip-external-network-tests-1.16.patch
|
||||
./skip-nohup-tests.patch
|
||||
./skip-cgo-tests-1.15.patch
|
||||
|
|
|
@ -54,11 +54,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "go";
|
||||
version = "1.18rc1";
|
||||
version = "1.18";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://go.dev/dl/go${version}.src.tar.gz";
|
||||
sha256 = "sha256-XOx6ZlMAj6hfiCGzNmXeN74om3oC8X829wWojEOYC7g=";
|
||||
sha256 = "sha256-OPQj20zINIg/K1I0QoL6ejn7uTZQ3GKhH98L5kCb2tY=";
|
||||
};
|
||||
|
||||
# perl is used for testing go vet
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
|
||||
index 94a7553e273b..8a1d455950b2 100644
|
||||
--- a/lib/Driver/Driver.cpp
|
||||
+++ b/lib/Driver/Driver.cpp
|
||||
@@ -412,6 +412,13 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const {
|
||||
}
|
||||
#endif
|
||||
|
||||
+ {
|
||||
+ Arg *A = DAL->MakeFlagArg(/*BaseArg=*/nullptr,
|
||||
+ Opts.getOption(options::OPT_nostdlibinc));
|
||||
+ A->claim();
|
||||
+ DAL->append(A);
|
||||
+ }
|
||||
+
|
||||
return DAL;
|
||||
}
|
||||
|
|
@ -42,6 +42,7 @@ let
|
|||
# mis-compilation in firefox.
|
||||
# See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454
|
||||
./revert-malloc-alignment-assumption.patch
|
||||
./add-nostdlibinc-flag.patch
|
||||
(substituteAll {
|
||||
src = ../../clang-11-12-LLVMgold-path.patch;
|
||||
libllvmLibdir = "${libllvm.lib}/lib";
|
||||
|
@ -51,10 +52,6 @@ let
|
|||
postPatch = ''
|
||||
(cd tools && ln -s ../../clang-tools-extra extra)
|
||||
|
||||
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
|
||||
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
|
||||
lib/Driver/ToolChains/*.cpp
|
||||
|
||||
# Patch for standalone doc building
|
||||
sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
|
||||
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
release_version = "13.0.0";
|
||||
release_version = "13.0.1";
|
||||
candidate = ""; # empty or "rcN"
|
||||
dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
|
||||
rev = ""; # When using a Git commit
|
||||
|
@ -30,7 +30,7 @@ let
|
|||
owner = "llvm";
|
||||
repo = "llvm-project";
|
||||
rev = if rev != "" then rev else "llvmorg-${version}";
|
||||
sha256 = "0cjl0vssi4y2g4nfr710fb6cdhxmn5r0vis15sf088zsc5zydfhw";
|
||||
sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k";
|
||||
};
|
||||
|
||||
llvm_meta = {
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "qbe";
|
||||
version = "unstable-2021-12-05";
|
||||
version = "unstable-2022-03-11";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://c9x.me/qbe.git";
|
||||
rev = "367c8215d99054892740ad74c690b106c45ebf60";
|
||||
sha256 = "sha256-xhTEiFR1RXMHtxmXlRof3O8monXEjstyWP3GClZmMuU=";
|
||||
rev = "c7842d84da65bcaf2d3c82aa69fb3ec930c7369f";
|
||||
sha256 = "sha256-fbxeoMJcVltrIGRLdJtxWykGIop8DVzpfrBatXniDPk=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
|
|
@ -10,11 +10,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sdcc";
|
||||
version = "4.1.0";
|
||||
version = "4.2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/sdcc/sdcc-src-${version}.tar.bz2";
|
||||
sha256 = "0gskzli17ghnn5qllvn4d56qf9bvvclqjh63nnj63p52smvggvc1";
|
||||
sha256 = "sha256-tJuuHSO81gV6gsT/5WE/nNDLz9HpQOnYTEv+nfCowFM=";
|
||||
};
|
||||
|
||||
buildInputs = [ boost gputils texinfo zlib ];
|
||||
|
|
|
@ -90,8 +90,8 @@ in rec {
|
|||
};
|
||||
|
||||
vala_0_54 = generic {
|
||||
version = "0.54.6";
|
||||
sha256 = "SdYNlqP99sQoc5dEK8bW2Vv0CqffZ47kkSjEsRum5Gk=";
|
||||
version = "0.54.7";
|
||||
sha256 = "Ygecof8C5dF65yqppa3GGuav3P67DZ8GBjo2776soMc=";
|
||||
};
|
||||
|
||||
vala = vala_0_54;
|
||||
|
|
|
@ -9,11 +9,11 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "stm32cubemx";
|
||||
version = "6.4.0";
|
||||
version = "6.5.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}-lin.zip";
|
||||
sha256 = "sha256-5qotjAyaNFtYUjHlNKwywmBJGAzS/IM9bF+dmONE4bk=";
|
||||
sha256 = "sha256-19RG+bJCmkaytMtDpDLbDvfKo27Z+Mo/sOrs8lOVV44=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
|
|
@ -191,7 +191,6 @@ in with passthru; stdenv.mkDerivation {
|
|||
|
||||
prePatch = optionalString stdenv.isDarwin ''
|
||||
substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
|
||||
substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' '
|
||||
'' + optionalString (pythonOlder "3.9" && stdenv.isDarwin && x11Support) ''
|
||||
# Broken on >= 3.9; replaced with ./3.9/darwin-tcl-tk.patch
|
||||
substituteInPlace setup.py --replace /Library/Frameworks /no-such-path
|
||||
|
@ -342,8 +341,6 @@ in with passthru; stdenv.mkDerivation {
|
|||
substituteInPlace ./setup.py --replace $i /no-such-path
|
||||
done
|
||||
'' + optionalString stdenv.isDarwin ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.6
|
||||
# Override the auto-detection in setup.py, which assumes a universal build
|
||||
export PYTHON_DECIMAL_WITH_MACHINE=${if stdenv.isAarch64 then "uint128" else "x64"}
|
||||
'' + optionalString (isPy3k && pythonOlder "3.7") ''
|
||||
|
|
|
@ -282,9 +282,9 @@ in {
|
|||
sourceVersion = {
|
||||
major = "7";
|
||||
minor = "3";
|
||||
patch = "6";
|
||||
patch = "8";
|
||||
};
|
||||
sha256 = "sha256-ghJ/Q/rmznXUfWxFOfjB6jcunC2/pA+ui1g1HVInk6Q="; # linux64
|
||||
sha256 = "0h493q0lhpz035afi4g09f4mz5a72vqx4sa7qcry5z4zagxq8bhz"; # linux64
|
||||
pythonVersion = "2.7";
|
||||
inherit passthruFun;
|
||||
};
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
# Dependencies
|
||||
, bzip2
|
||||
, zlib
|
||||
, openssl_1_0_2
|
||||
, expat
|
||||
, ncurses6
|
||||
, tcl-8_5
|
||||
|
@ -50,7 +49,6 @@ let
|
|||
deps = [
|
||||
bzip2
|
||||
zlib
|
||||
openssl_1_0_2
|
||||
expat
|
||||
ncurses6
|
||||
tcl-8_5
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
From a31d1f1683ef2e9c063c3fa1db79d111cca99414 Mon Sep 17 00:00:00 2001
|
||||
From: David Redondo <kde@david-redondo.de>
|
||||
Date: Fri, 10 Dec 2021 16:22:34 +0100
|
||||
Subject: [PATCH] Fix build against wayland 1.20
|
||||
|
||||
Fixes #5088
|
||||
|
||||
(cherry picked from commit e2ade2bfc46d915cd306c63c830b81d800b2575f)
|
||||
---
|
||||
src/video/wayland/SDL_waylanddyn.h | 2 ++
|
||||
src/video/wayland/SDL_waylandsym.h | 4 ++++
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/src/video/wayland/SDL_waylanddyn.h b/src/video/wayland/SDL_waylanddyn.h
|
||||
index 485a9c19f..37070e946 100644
|
||||
--- a/src/video/wayland/SDL_waylanddyn.h
|
||||
+++ b/src/video/wayland/SDL_waylanddyn.h
|
||||
@@ -81,6 +81,8 @@ void SDL_WAYLAND_UnloadSymbols(void);
|
||||
#define wl_proxy_add_listener (*WAYLAND_wl_proxy_add_listener)
|
||||
#define wl_proxy_marshal_constructor (*WAYLAND_wl_proxy_marshal_constructor)
|
||||
#define wl_proxy_marshal_constructor_versioned (*WAYLAND_wl_proxy_marshal_constructor_versioned)
|
||||
+#define wl_proxy_marshal_flags (*WAYLAND_wl_proxy_marshal_flags)
|
||||
+#define wl_proxy_marshal_array_flags (*WAYLAND_wl_proxy_marshal_array_flags)
|
||||
|
||||
#define wl_seat_interface (*WAYLAND_wl_seat_interface)
|
||||
#define wl_surface_interface (*WAYLAND_wl_surface_interface)
|
||||
diff --git a/src/video/wayland/SDL_waylandsym.h b/src/video/wayland/SDL_waylandsym.h
|
||||
index c4c189d3c..789f49e27 100644
|
||||
--- a/src/video/wayland/SDL_waylandsym.h
|
||||
+++ b/src/video/wayland/SDL_waylandsym.h
|
||||
@@ -71,6 +71,10 @@ SDL_WAYLAND_SYM(struct wl_proxy *, wl_proxy_marshal_constructor, (struct wl_prox
|
||||
SDL_WAYLAND_MODULE(WAYLAND_CLIENT_1_10)
|
||||
SDL_WAYLAND_SYM(struct wl_proxy *, wl_proxy_marshal_constructor_versioned, (struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interface, uint32_t version, ...))
|
||||
|
||||
+SDL_WAYLAND_MODULE(WAYLAND_CLIENT_1_20)
|
||||
+SDL_WAYLAND_SYM(struct wl_proxy*, wl_proxy_marshal_flags, (struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interfac, uint32_t version, uint32_t flags, ...))
|
||||
+SDL_WAYLAND_SYM(struct wl_proxy*, wl_proxy_marshal_array_flags, (struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interface, uint32_t version, uint32_t flags, union wl_argument *args))
|
||||
+
|
||||
SDL_WAYLAND_INTERFACE(wl_seat_interface)
|
||||
SDL_WAYLAND_INTERFACE(wl_surface_interface)
|
||||
SDL_WAYLAND_INTERFACE(wl_shm_pool_interface)
|
||||
--
|
||||
2.33.1
|
|
@ -1,20 +1,50 @@
|
|||
{ lib, stdenv, config, fetchurl, pkg-config
|
||||
{ lib
|
||||
, stdenv
|
||||
, config
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
|
||||
, openglSupport ? libGLSupported, libGL
|
||||
, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsa-lib
|
||||
, openglSupport ? libGLSupported
|
||||
, libGL
|
||||
, alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
, alsa-lib
|
||||
, x11Support ? !stdenv.targetPlatform.isWindows && !stdenv.hostPlatform.isAndroid
|
||||
, libX11, xorgproto, libICE, libXi, libXScrnSaver, libXcursor
|
||||
, libXinerama, libXext, libXxf86vm, libXrandr
|
||||
, libX11
|
||||
, xorgproto
|
||||
, libICE
|
||||
, libXi
|
||||
, libXScrnSaver
|
||||
, libXcursor
|
||||
, libXinerama
|
||||
, libXext
|
||||
, libXxf86vm
|
||||
, libXrandr
|
||||
, waylandSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
, wayland, wayland-protocols, libxkbcommon
|
||||
, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, dbus
|
||||
, udevSupport ? false, udev
|
||||
, ibusSupport ? false, ibus
|
||||
, fcitxSupport ? false, fcitx
|
||||
, wayland
|
||||
, wayland-protocols
|
||||
, libxkbcommon
|
||||
, dbusSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
, dbus
|
||||
, udevSupport ? false
|
||||
, udev
|
||||
, ibusSupport ? false
|
||||
, ibus
|
||||
, fcitxSupport ? false
|
||||
, fcitx
|
||||
, libdecorSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
, libdecor
|
||||
, pipewireSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
, pipewire # NOTE: must be built with SDL2 without pipewire support
|
||||
, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid
|
||||
, libpulseaudio
|
||||
, AudioUnit, Cocoa, CoreAudio, CoreServices, ForceFeedback, OpenGL
|
||||
, audiofile, libiconv
|
||||
, AudioUnit
|
||||
, Cocoa
|
||||
, CoreAudio
|
||||
, CoreServices
|
||||
, ForceFeedback
|
||||
, OpenGL
|
||||
, audiofile
|
||||
, libiconv
|
||||
, withStatic ? false
|
||||
}:
|
||||
|
||||
|
@ -25,32 +55,16 @@ with lib;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "SDL2";
|
||||
version = "2.0.14";
|
||||
version = "2.0.20";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.libsdl.org/release/${pname}-${version}.tar.gz";
|
||||
sha256 = "1g1jahknv5r4yhh1xq5sf0md20ybdw1zh1i15lry26sq39bmn8fq";
|
||||
sha256 = "sha256-xWq6HXtbDn6Znkp2mMcLY6M5T/lwS19uHFfgwW8E3QY=";
|
||||
};
|
||||
dontDisableStatic = withStatic;
|
||||
outputs = [ "out" "dev" ];
|
||||
outputBin = "dev"; # sdl-config
|
||||
|
||||
patches = [
|
||||
./find-headers.patch
|
||||
# To fix the build with wayland 1.20.0:
|
||||
./Fix-build-against-wayland-1.20.patch
|
||||
];
|
||||
|
||||
# Fix with mesa 19.2: https://bugzilla.libsdl.org/show_bug.cgi?id=4797
|
||||
postPatch = ''
|
||||
substituteInPlace include/SDL_opengl_glext.h \
|
||||
--replace "typedef ptrdiff_t GLsizeiptr;" "typedef signed long int khronos_ssize_t; typedef khronos_ssize_t GLsizeiptr;" \
|
||||
--replace "typedef ptrdiff_t GLintptr;" "typedef signed long int khronos_intptr_t; typedef khronos_intptr_t GLintptr;"
|
||||
|
||||
substituteInPlace configure \
|
||||
--replace 'WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`' 'WAYLAND_SCANNER=`pkg-config --variable=wayland_scanner wayland-scanner`'
|
||||
'';
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ] ++ optionals waylandSupport [ wayland ];
|
||||
|
@ -63,9 +77,10 @@ stdenv.mkDerivation rec {
|
|||
# Propagated for #include <X11/Xlib.h> and <X11/Xatom.h> in SDL_syswm.h.
|
||||
++ optionals x11Support [ libX11 xorgproto ];
|
||||
|
||||
dlopenBuildInputs = [ ]
|
||||
++ optionals alsaSupport [ alsa-lib audiofile ]
|
||||
dlopenBuildInputs = optionals alsaSupport [ alsa-lib audiofile ]
|
||||
++ optional dbusSupport dbus
|
||||
++ optional libdecorSupport libdecor
|
||||
++ optional pipewireSupport pipewire
|
||||
++ optional pulseaudioSupport libpulseaudio
|
||||
++ optional udevSupport udev
|
||||
++ optionals waylandSupport [ wayland wayland-protocols libxkbcommon ]
|
||||
|
@ -117,9 +132,11 @@ stdenv.mkDerivation rec {
|
|||
#
|
||||
# You can grep SDL sources with `grep -rE 'SDL_(NAME|.*_SYM)'` to
|
||||
# list the symbols used in this way.
|
||||
postFixup = let
|
||||
postFixup =
|
||||
let
|
||||
rpath = makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs);
|
||||
in optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") ''
|
||||
in
|
||||
optionalString (stdenv.hostPlatform.extensions.sharedLibrary == ".so") ''
|
||||
for lib in $out/lib/*.so* ; do
|
||||
if ! [[ -L "$lib" ]]; then
|
||||
patchelf --set-rpath "$(patchelf --print-rpath $lib):${rpath}" "$lib"
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
diff -ru3 SDL2-2.0.14/sdl2-config.cmake.in SDL2-2.0.14-new/sdl2-config.cmake.in
|
||||
--- SDL2-2.0.14/sdl2-config.cmake.in 2020-12-21 18:44:36.000000000 +0100
|
||||
+++ SDL2-2.0.14-new/sdl2-config.cmake.in 2021-01-16 23:53:40.721121792 +0100
|
||||
@@ -6,7 +6,8 @@
|
||||
set(SDL2_PREFIX "@prefix@")
|
||||
set(SDL2_EXEC_PREFIX "@prefix@")
|
||||
set(SDL2_LIBDIR "@libdir@")
|
||||
-set(SDL2_INCLUDE_DIRS "@includedir@/SDL2")
|
||||
+set(SDL2_INCLUDE_DIRS "@includedir@/SDL2" $ENV{SDL2_PATH})
|
||||
+separate_arguments(SDL2_INCLUDE_DIRS)
|
||||
set(SDL2_LIBRARIES "-L${SDL2_LIBDIR} @SDL_RLD_FLAGS@ @SDL_LIBS@")
|
||||
string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
|
||||
|
||||
@@ -20,14 +21,14 @@
|
||||
|
||||
add_library(SDL2::SDL2 SHARED IMPORTED)
|
||||
set_target_properties(SDL2::SDL2 PROPERTIES
|
||||
- INTERFACE_INCLUDE_DIRECTORIES "@includedir@/SDL2"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION "@libdir@/${CMAKE_SHARED_LIBRARY_PREFIX}SDL2${CMAKE_SHARED_LIBRARY_SUFFIX}"
|
||||
INTERFACE_LINK_LIBRARIES "${SDL2_EXTRA_LINK_FLAGS}")
|
||||
|
||||
add_library(SDL2::SDL2-static STATIC IMPORTED)
|
||||
set_target_properties(SDL2::SDL2-static PROPERTIES
|
||||
- INTERFACE_INCLUDE_DIRECTORIES "@includedir@/SDL2"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
|
||||
IMPORTED_LOCATION "@libdir@/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
INTERFACE_LINK_LIBRARIES "${SDL2_EXTRA_LINK_FLAGS_STATIC}")
|
||||
diff -ru3 SDL2-2.0.14/sdl2-config.in SDL2-2.0.14-new/sdl2-config.in
|
||||
--- SDL2-2.0.14/sdl2-config.in 2020-12-21 18:44:36.000000000 +0100
|
||||
+++ SDL2-2.0.14-new/sdl2-config.in 2021-01-16 23:57:11.940353171 +0100
|
||||
@@ -42,7 +42,11 @@
|
||||
echo @SDL_VERSION@
|
||||
;;
|
||||
--cflags)
|
||||
- echo -I@includedir@/SDL2 @SDL_CFLAGS@
|
||||
+ SDL_CFLAGS=""
|
||||
+ for i in @includedir@/SDL2 $SDL2_PATH; do
|
||||
+ SDL_CFLAGS="$SDL_CFLAGS -I$i"
|
||||
+ done
|
||||
+ echo $SDL_CFLAGS @SDL_CFLAGS@
|
||||
;;
|
||||
@ENABLE_SHARED_TRUE@ --libs)
|
||||
@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aws-checksums";
|
||||
version = "0.1.11";
|
||||
version = "0.1.12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "awslabs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-fXu7GI2UR9QiBGP2n2pEFRjz9ZwA+BAK9zxhNnoYWt4=";
|
||||
sha256 = "sha256-k3hIGk92HncRAktpuvNcZnaBZiLj63/wQBz2WScUjhQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -127,7 +127,14 @@ stdenv.mkDerivation {
|
|||
extraPrefix = "libs/context/";
|
||||
})
|
||||
++ optional (and (versionAtLeast version "1.70") (!versionAtLeast version "1.73")) ./cmake-paths.patch
|
||||
++ optional (versionAtLeast version "1.73") ./cmake-paths-173.patch;
|
||||
++ optional (versionAtLeast version "1.73") ./cmake-paths-173.patch
|
||||
++ optional (version == "1.77.0") (fetchpatch {
|
||||
url = "https://github.com/boostorg/math/commit/7d482f6ebc356e6ec455ccb5f51a23971bf6ce5b.patch";
|
||||
sha256 = "sha256-KlmIbixcds6GyKYt1fx5BxDIrU7msrgDdYo9Va/KJR4=";
|
||||
stripLen = 2;
|
||||
extraPrefix = "";
|
||||
includes = [ "boost/math/special_functions/detail/bernoulli_details.hpp" ];
|
||||
});
|
||||
|
||||
meta = {
|
||||
homepage = "http://boost.org/";
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "expat";
|
||||
version = "2.4.4";
|
||||
version = "2.4.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/libexpat/libexpat/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-tdJdbjczUcLtGbVitHMtAdJYmsjI6eeWLY3xIHzDEbg=";
|
||||
sha256 = "sha256-3lV5S3qbwhSFL9wHW+quzYVO/hNhWX5iaO6HlGlRKJs=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ]; # TODO: fix referrers
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
, pkg-config
|
||||
, zlib
|
||||
, libpng
|
||||
, libjpeg ? null
|
||||
, libwebp ? null
|
||||
, libtiff ? null
|
||||
, libXpm ? null
|
||||
, libjpeg
|
||||
, libwebp
|
||||
, libtiff
|
||||
, libXpm
|
||||
, libavif
|
||||
, fontconfig
|
||||
, freetype
|
||||
}:
|
||||
|
@ -41,8 +42,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ autoconf automake pkg-config ];
|
||||
|
||||
buildInputs = [ zlib fontconfig freetype ];
|
||||
propagatedBuildInputs = [ libpng libjpeg libwebp libtiff libXpm ];
|
||||
buildInputs = [ zlib fontconfig freetype libpng libjpeg libwebp libtiff libXpm libavif ];
|
||||
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gdbm";
|
||||
version = "1.20";
|
||||
version = "1.23";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/gdbm/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-OurAVkizSCoQotqYa586OAoprWUL6AuYF6Q1+4EUopI=";
|
||||
sha256 = "sha256-dLEIHSH/8TrkvXwW5dblBKTCb3zeHcoNljpIQXS7ys0=";
|
||||
};
|
||||
|
||||
doCheck = true; # not cross;
|
||||
|
|
|
@ -45,11 +45,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "glib";
|
||||
version = "2.70.2";
|
||||
version = "2.70.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "BVFFnIXNPaPVjdyQFv0ovlr1A/XhYVpxultRKslFgG8=";
|
||||
sha256 = "Iz+khBweGeOW23YH1Y9rdbozE8UL8Pzgey41MtXrfUY=";
|
||||
};
|
||||
|
||||
patches = optionals stdenv.isDarwin [
|
||||
|
|
Binary file not shown.
|
@ -44,7 +44,7 @@
|
|||
|
||||
let
|
||||
version = "2.33";
|
||||
patchSuffix = "-108";
|
||||
patchSuffix = "-117";
|
||||
sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
|
||||
in
|
||||
|
||||
|
@ -63,7 +63,7 @@ stdenv.mkDerivation ({
|
|||
[
|
||||
/* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
|
||||
$ git fetch --all -p && git checkout origin/release/2.33/master && git describe
|
||||
glibc-2.33-108-g3e2a15c666
|
||||
glibc-2.33-117-g55446dd8a2
|
||||
$ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
|
||||
|
||||
To compare the archive contents zdiff can be used.
|
||||
|
|
|
@ -20,6 +20,8 @@ in stdenv.mkDerivation {
|
|||
mkdir -p $out
|
||||
cp ${configGuess} $out/config.guess
|
||||
cp ${configSub} $out/config.sub
|
||||
|
||||
chmod +x $out/config.*
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,28 +1,37 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch
|
||||
, autoreconfHook, libgpg-error, gnupg, pkg-config, glib, pth, libassuan
|
||||
, file, which, ncurses
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, libgpg-error
|
||||
, gnupg
|
||||
, pkg-config
|
||||
, glib
|
||||
, pth
|
||||
, libassuan
|
||||
, file
|
||||
, which
|
||||
, ncurses
|
||||
, texinfo
|
||||
, buildPackages
|
||||
, qtbase ? null
|
||||
, pythonSupport ? false, swig2 ? null, python ? null
|
||||
, pythonSupport ? false
|
||||
, swig2 ? null
|
||||
, python ? null
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gpgme";
|
||||
version = "1.16.0";
|
||||
version = "1.17.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
|
||||
sha256 = "1l4yw9fqc1blvx1sq1jnfvp1jijla3ca2jw90p4x9m8hvfpc933c";
|
||||
sha256 = "1xb9k88rrafdi0n95nzx0d6bz7hcn9b44hciqbigrqkvxc6gblsf";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# probably included in > 1.16.0
|
||||
./test_t-edit-sign.diff
|
||||
# https://dev.gnupg.org/rMc4cf527ea227edb468a84bf9b8ce996807bd6992
|
||||
./fix_gpg_list_keys.diff
|
||||
# https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html
|
||||
|
@ -31,22 +40,48 @@ stdenv.mkDerivation rec {
|
|||
url = "https://lists.gnupg.org/pipermail/gnupg-devel/attachments/20200415/f7be62d1/attachment.obj";
|
||||
sha256 = "00d4sxq63601lzdp2ha1i8fvybh7dzih4531jh8bx07fab3sw65g";
|
||||
})
|
||||
# Support Python 3.10 version detection without distutils, https://dev.gnupg.org/D545
|
||||
./python-310-detection-without-distutils.patch
|
||||
# Find correct version string for Python >= 3.10, https://dev.gnupg.org/D546
|
||||
./python-find-version-string-above-310.patch
|
||||
# Disable python tests on Darwin as they use gpg (see configureFlags below)
|
||||
] ++ lib.optional stdenv.isDarwin ./disable-python-tests.patch
|
||||
# Fix _AC_UNDECLARED_WARNING for autoconf≥2.70. See https://lists.gnupg.org/pipermail/gnupg-devel/2020-November/034643.html
|
||||
# Fix _AC_UNDECLARED_WARNING for autoconf>=2.70
|
||||
# See https://lists.gnupg.org/pipermail/gnupg-devel/2020-November/034643.html
|
||||
++ lib.optional stdenv.cc.isClang ./fix-clang-autoconf-undeclared-warning.patch;
|
||||
|
||||
outputs = [ "out" "dev" "info" ];
|
||||
|
||||
outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
|
||||
|
||||
propagatedBuildInputs =
|
||||
[ libgpg-error glib libassuan pth ]
|
||||
++ lib.optional (qtbase != null) qtbase;
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gnupg
|
||||
pkg-config
|
||||
texinfo
|
||||
] ++ lib.optionals pythonSupport [
|
||||
ncurses
|
||||
python
|
||||
swig2
|
||||
which
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config gnupg texinfo autoreconfHook ]
|
||||
++ lib.optionals pythonSupport [ python swig2 which ncurses ];
|
||||
propagatedBuildInputs = [
|
||||
glib
|
||||
libassuan
|
||||
libgpg-error
|
||||
pth
|
||||
] ++ lib.optionals (qtbase != null) [
|
||||
qtbase
|
||||
];
|
||||
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
checkInputs = [
|
||||
which
|
||||
];
|
||||
|
||||
depsBuildBuild = [
|
||||
buildPackages.stdenv.cc
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
|
@ -66,9 +101,8 @@ stdenv.mkDerivation rec {
|
|||
# debugging is disabled
|
||||
lib.optional (qtbase != null) "-DQT_NO_DEBUG"
|
||||
# https://www.gnupg.org/documentation/manuals/gpgme/Largefile-Support-_0028LFS_0029.html
|
||||
++ lib.optional (system == "i686-linux") "-D_FILE_OFFSET_BITS=64");
|
||||
|
||||
checkInputs = [ which ];
|
||||
++ lib.optional (system == "i686-linux") "-D_FILE_OFFSET_BITS=64"
|
||||
);
|
||||
|
||||
doCheck = true;
|
||||
|
||||
|
|
|
@ -0,0 +1,273 @@
|
|||
diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
|
||||
--- a/m4/ax_python_devel.m4
|
||||
+++ b/m4/ax_python_devel.m4
|
||||
@@ -1,5 +1,5 @@
|
||||
# ===========================================================================
|
||||
-# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
|
||||
+# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
@@ -12,8 +12,8 @@
|
||||
# in your configure.ac.
|
||||
#
|
||||
# This macro checks for Python and tries to get the include path to
|
||||
-# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
|
||||
-# output variables. It also exports $(PYTHON_EXTRA_LIBS) and
|
||||
+# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
|
||||
+# variables. It also exports $(PYTHON_EXTRA_LIBS) and
|
||||
# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
|
||||
#
|
||||
# You can search for some particular version of Python by passing a
|
||||
@@ -67,7 +67,7 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
-#serial 17
|
||||
+#serial 23
|
||||
|
||||
AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
|
||||
AC_DEFUN([AX_PYTHON_DEVEL],[
|
||||
@@ -99,7 +99,7 @@
|
||||
This version of the AC@&t@_PYTHON_DEVEL macro
|
||||
doesn't work properly with versions of Python before
|
||||
2.1.0. You may need to re-run configure, setting the
|
||||
-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
|
||||
+variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
|
||||
PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
|
||||
Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
|
||||
to something else than an empty string.
|
||||
@@ -135,16 +135,25 @@
|
||||
#
|
||||
# Check if you have distutils, else fail
|
||||
#
|
||||
- AC_MSG_CHECKING([for the distutils Python package])
|
||||
- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
|
||||
- if test -z "$ac_distutils_result"; then
|
||||
+ AC_MSG_CHECKING([for the sysconfig Python package])
|
||||
+ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
|
||||
+ if test $? -eq 0; then
|
||||
AC_MSG_RESULT([yes])
|
||||
+ IMPORT_SYSCONFIG="import sysconfig"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
- AC_MSG_ERROR([cannot import Python module "distutils".
|
||||
+
|
||||
+ AC_MSG_CHECKING([for the distutils Python package])
|
||||
+ ac_sysconfig_result=`$PYTHON -c "from distutils import sysconfig" 2>&1`
|
||||
+ if test $? -eq 0; then
|
||||
+ AC_MSG_RESULT([yes])
|
||||
+ IMPORT_SYSCONFIG="from distutils import sysconfig"
|
||||
+ else
|
||||
+ AC_MSG_ERROR([cannot import Python module "distutils".
|
||||
Please check your Python installation. The error was:
|
||||
-$ac_distutils_result])
|
||||
- PYTHON_VERSION=""
|
||||
+$ac_sysconfig_result])
|
||||
+ PYTHON_VERSION=""
|
||||
+ fi
|
||||
fi
|
||||
|
||||
#
|
||||
@@ -152,10 +161,19 @@
|
||||
#
|
||||
AC_MSG_CHECKING([for Python include path])
|
||||
if test -z "$PYTHON_CPPFLAGS"; then
|
||||
- python_path=`$PYTHON -c "import distutils.sysconfig; \
|
||||
- print (distutils.sysconfig.get_python_inc ());"`
|
||||
- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
|
||||
- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
|
||||
+ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
|
||||
+ # sysconfig module has different functions
|
||||
+ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_path ('include'));"`
|
||||
+ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_path ('platinclude'));"`
|
||||
+ else
|
||||
+ # old distutils way
|
||||
+ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_python_inc ());"`
|
||||
+ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_python_inc (plat_specific=1));"`
|
||||
+ fi
|
||||
if test -n "${python_path}"; then
|
||||
if test "${plat_python_path}" != "${python_path}"; then
|
||||
python_path="-I$python_path -I$plat_python_path"
|
||||
@@ -172,14 +190,14 @@
|
||||
# Check for Python library path
|
||||
#
|
||||
AC_MSG_CHECKING([for Python library path])
|
||||
- if test -z "$PYTHON_LDFLAGS"; then
|
||||
+ if test -z "$PYTHON_LIBS"; then
|
||||
# (makes two attempts to ensure we've got a version number
|
||||
# from the interpreter)
|
||||
ac_python_version=`cat<<EOD | $PYTHON -
|
||||
|
||||
# join all versioning strings, on some systems
|
||||
# major/minor numbers could be in different list elements
|
||||
-from distutils.sysconfig import *
|
||||
+from sysconfig import *
|
||||
e = get_config_var('VERSION')
|
||||
if e is not None:
|
||||
print(e)
|
||||
@@ -197,7 +215,7 @@
|
||||
# Make the versioning information available to the compiler
|
||||
|
||||
# JW: We don't need it and it interferes with the hack
|
||||
- # to detect multiple Pyhton versions
|
||||
+ # to detect multiple Python versions
|
||||
#AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
|
||||
# [If available, contains the Python version number currently in use.])
|
||||
|
||||
@@ -205,8 +223,8 @@
|
||||
ac_python_libdir=`cat<<EOD | $PYTHON -
|
||||
|
||||
# There should be only one
|
||||
-import distutils.sysconfig
|
||||
-e = distutils.sysconfig.get_config_var('LIBDIR')
|
||||
+$IMPORT_SYSCONFIG
|
||||
+e = sysconfig.get_config_var('LIBDIR')
|
||||
if e is not None:
|
||||
print (e)
|
||||
EOD`
|
||||
@@ -214,8 +232,8 @@
|
||||
# Now, for the library:
|
||||
ac_python_library=`cat<<EOD | $PYTHON -
|
||||
|
||||
-import distutils.sysconfig
|
||||
-c = distutils.sysconfig.get_config_vars()
|
||||
+$IMPORT_SYSCONFIG
|
||||
+c = sysconfig.get_config_vars()
|
||||
if 'LDVERSION' in c:
|
||||
print ('python'+c[['LDVERSION']])
|
||||
else:
|
||||
@@ -230,44 +248,67 @@
|
||||
then
|
||||
# use the official shared library
|
||||
ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
|
||||
- PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
|
||||
+ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
|
||||
else
|
||||
# old way: use libpython from python_configdir
|
||||
ac_python_libdir=`$PYTHON -c \
|
||||
- "from distutils.sysconfig import get_python_lib as f; \
|
||||
+ "from sysconfig import get_python_lib as f; \
|
||||
import os; \
|
||||
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
|
||||
- PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
|
||||
+ PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
|
||||
fi
|
||||
|
||||
- if test -z "PYTHON_LDFLAGS"; then
|
||||
+ if test -z "PYTHON_LIBS"; then
|
||||
AC_MSG_ERROR([
|
||||
Cannot determine location of your Python DSO. Please check it was installed with
|
||||
- dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
|
||||
+ dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
|
||||
])
|
||||
fi
|
||||
fi
|
||||
- AC_MSG_RESULT([$PYTHON_LDFLAGS])
|
||||
- AC_SUBST([PYTHON_LDFLAGS])
|
||||
+ AC_MSG_RESULT([$PYTHON_LIBS])
|
||||
+ AC_SUBST([PYTHON_LIBS])
|
||||
|
||||
#
|
||||
# Check for site packages
|
||||
#
|
||||
AC_MSG_CHECKING([for Python site-packages path])
|
||||
if test -z "$PYTHON_SITE_PKG"; then
|
||||
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
|
||||
- print (distutils.sysconfig.get_python_lib(0,0));"`
|
||||
+ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
|
||||
+ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_path('purelib'));"`
|
||||
+ else
|
||||
+ # distutils.sysconfig way
|
||||
+ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_python_lib(0,0));"`
|
||||
+ fi
|
||||
fi
|
||||
AC_MSG_RESULT([$PYTHON_SITE_PKG])
|
||||
AC_SUBST([PYTHON_SITE_PKG])
|
||||
|
||||
+ #
|
||||
+ # Check for platform-specific site packages
|
||||
+ #
|
||||
+ AC_MSG_CHECKING([for Python platform specific site-packages path])
|
||||
+ if test -z "$PYTHON_SITE_PKG"; then
|
||||
+ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
|
||||
+ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_path('platlib'));"`
|
||||
+ else
|
||||
+ # distutils.sysconfig way
|
||||
+ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ print (sysconfig.get_python_lib(1,0));"`
|
||||
+ fi
|
||||
+ fi
|
||||
+ AC_MSG_RESULT([$PYTHON_PLATFORM_SITE_PKG])
|
||||
+ AC_SUBST([PYTHON_PLATFORM_SITE_PKG])
|
||||
+
|
||||
#
|
||||
# libraries which must be linked in when embedding
|
||||
#
|
||||
AC_MSG_CHECKING(python extra libraries)
|
||||
if test -z "$PYTHON_EXTRA_LIBS"; then
|
||||
- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
|
||||
- conf = distutils.sysconfig.get_config_var; \
|
||||
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ conf = sysconfig.get_config_var; \
|
||||
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
|
||||
fi
|
||||
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
|
||||
@@ -278,8 +319,8 @@
|
||||
#
|
||||
AC_MSG_CHECKING(python extra linking flags)
|
||||
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
|
||||
- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
|
||||
- conf = distutils.sysconfig.get_config_var; \
|
||||
+ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
|
||||
+ conf = sysconfig.get_config_var; \
|
||||
print (conf('LINKFORSHARED'))"`
|
||||
fi
|
||||
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
|
||||
@@ -291,8 +332,10 @@
|
||||
AC_MSG_CHECKING([consistency of all components of python development environment])
|
||||
# save current global flags
|
||||
ac_save_LIBS="$LIBS"
|
||||
+ ac_save_LDFLAGS="$LDFLAGS"
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
|
||||
+ LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
|
||||
+ LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
|
||||
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
|
||||
AC_LANG_PUSH([C])
|
||||
AC_LINK_IFELSE([
|
||||
@@ -303,15 +346,17 @@
|
||||
# turn back to default flags
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
LIBS="$ac_save_LIBS"
|
||||
+ LDFLAGS="$ac_save_LDFLAGS"
|
||||
|
||||
AC_MSG_RESULT([$pythonexists])
|
||||
|
||||
if test ! "x$pythonexists" = "xyes"; then
|
||||
+ # gpgme: only warn here, no error, as we are looking for multiple versions
|
||||
AC_MSG_WARN([
|
||||
Could not link test program to Python. Maybe the main Python library has been
|
||||
installed in some non-standard library path. If so, pass it to configure,
|
||||
- via the LDFLAGS environment variable.
|
||||
- Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
|
||||
+ via the LIBS environment variable.
|
||||
+ Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
|
||||
============================================================================
|
||||
You probably have to install the development version of the Python package
|
||||
for your distribution. The exact name of this package varies among them.
|
||||
@@ -323,4 +368,4 @@
|
||||
#
|
||||
# all done!
|
||||
#
|
||||
-])
|
||||
+])
|
||||
\ No newline at end of file
|
||||
|
|
@ -0,0 +1,373 @@
|
|||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -425,11 +425,12 @@
|
||||
if test "$found_py" = "1" -o "$found_py3" = "1"; then
|
||||
# Reset everything, so that we can look for another Python.
|
||||
m4_foreach([mym4pythonver],
|
||||
- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]],
|
||||
+ [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[3.10],[all]],
|
||||
[unset PYTHON
|
||||
unset PYTHON_VERSION
|
||||
unset PYTHON_CPPFLAGS
|
||||
unset PYTHON_LDFLAGS
|
||||
+ unset PYTHON_LIBS
|
||||
unset PYTHON_SITE_PKG
|
||||
unset PYTHON_EXTRA_LIBS
|
||||
unset PYTHON_EXTRA_LDFLAGS
|
||||
diff --git a/m4/python.m4 b/m4/python.m4
|
||||
--- a/m4/python.m4
|
||||
+++ b/m4/python.m4
|
||||
@@ -1,10 +1,10 @@
|
||||
## ------------------------ -*- Autoconf -*-
|
||||
## Python file handling
|
||||
## From Andrew Dalke
|
||||
-## Updated by James Henstridge
|
||||
+## Updated by James Henstridge and other contributors.
|
||||
## Updated by Werner Koch 2018-10-17
|
||||
-## ---------------------------------
|
||||
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
|
||||
+## ------------------------
|
||||
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@@ -36,13 +36,12 @@
|
||||
# numbers and dots only.
|
||||
AC_DEFUN([AM_PATH_PYTHON],
|
||||
[
|
||||
- dnl Find a Python interpreter. Python versions prior to 2.0 are not
|
||||
- dnl supported. (2.0 was released on October 16, 2000). Python 3.0
|
||||
- dnl through to Python 3.9 are also not supported.
|
||||
+ dnl Find a Python interpreter. Python versions prior to 2.7 are not
|
||||
+ dnl supported. Python 3.0 through to Python 3.3 are also not supported.
|
||||
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
|
||||
[python2 python2.7 dnl
|
||||
python dnl
|
||||
- python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4
|
||||
+ python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4
|
||||
])
|
||||
|
||||
AC_ARG_VAR([PYTHON], [the Python interpreter])
|
||||
@@ -85,34 +84,141 @@
|
||||
])
|
||||
|
||||
if test "$PYTHON" = :; then
|
||||
- dnl Run any user-specified action, or abort.
|
||||
+ dnl Run any user-specified action, or abort.
|
||||
m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
|
||||
else
|
||||
|
||||
- dnl Query Python for its version number. Getting [:3] seems to be
|
||||
- dnl the best way to do this; it's what "site.py" does in the standard
|
||||
- dnl library.
|
||||
-
|
||||
+ dnl Query Python for its version number. Although site.py simply uses
|
||||
+ dnl sys.version[:3], printing that failed with Python 3.10, since the
|
||||
+ dnl trailing zero was eliminated. So now we output just the major
|
||||
+ dnl and minor version numbers, as numbers. Apparently the tertiary
|
||||
+ dnl version is not of interest.
|
||||
+ dnl
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
|
||||
- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
|
||||
+ [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
|
||||
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
|
||||
|
||||
- dnl Use the values of $prefix and $exec_prefix for the corresponding
|
||||
- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
|
||||
- dnl distinct variables so they can be overridden if need be. However,
|
||||
- dnl general consensus is that you shouldn't need this ability.
|
||||
-
|
||||
- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
|
||||
- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
|
||||
-
|
||||
- dnl At times (like when building shared libraries) you may want
|
||||
+ dnl At times, e.g., when building shared libraries, you may want
|
||||
dnl to know which OS platform Python thinks this is.
|
||||
-
|
||||
+ dnl
|
||||
AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
|
||||
[am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
|
||||
AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
|
||||
|
||||
- # Just factor out some code duplication.
|
||||
+ dnl emacs-page
|
||||
+ dnl If --with-python-sys-prefix is given, use the values of sys.prefix
|
||||
+ dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
|
||||
+ dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
|
||||
+ dnl ${exec_prefix} variables.
|
||||
+ dnl
|
||||
+ dnl The two are made distinct variables so they can be overridden if
|
||||
+ dnl need be, although general consensus is that you shouldn't need
|
||||
+ dnl this separation.
|
||||
+ dnl
|
||||
+ dnl Also allow directly setting the prefixes via configure options,
|
||||
+ dnl overriding any default.
|
||||
+ dnl
|
||||
+ if test "x$prefix" = xNONE; then
|
||||
+ am__usable_prefix=$ac_default_prefix
|
||||
+ else
|
||||
+ am__usable_prefix=$prefix
|
||||
+ fi
|
||||
+
|
||||
+ # Allow user to request using sys.* values from Python,
|
||||
+ # instead of the GNU $prefix values.
|
||||
+ AC_ARG_WITH([python-sys-prefix],
|
||||
+ [AS_HELP_STRING([--with-python-sys-prefix],
|
||||
+ [use Python's sys.prefix and sys.exec_prefix values])],
|
||||
+ [am_use_python_sys=:],
|
||||
+ [am_use_python_sys=false])
|
||||
+
|
||||
+ # Allow user to override whatever the default Python prefix is.
|
||||
+ AC_ARG_WITH([python_prefix],
|
||||
+ [AS_HELP_STRING([--with-python_prefix],
|
||||
+ [override the default PYTHON_PREFIX])],
|
||||
+ [am_python_prefix_subst=$withval
|
||||
+ am_cv_python_prefix=$withval
|
||||
+ AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
|
||||
+ AC_MSG_RESULT([$am_cv_python_prefix])],
|
||||
+ [
|
||||
+ if $am_use_python_sys; then
|
||||
+ # using python sys.prefix value, not GNU
|
||||
+ AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
|
||||
+ [am_cv_python_prefix],
|
||||
+ [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`])
|
||||
+
|
||||
+ dnl If sys.prefix is a subdir of $prefix, replace the literal value of
|
||||
+ dnl $prefix with a variable reference so it can be overridden.
|
||||
+ case $am_cv_python_prefix in
|
||||
+ $am__usable_prefix*)
|
||||
+ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
|
||||
+ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
|
||||
+ ;;
|
||||
+ *)
|
||||
+ am_python_prefix_subst=$am_cv_python_prefix
|
||||
+ ;;
|
||||
+ esac
|
||||
+ else # using GNU prefix value, not python sys.prefix
|
||||
+ am_python_prefix_subst='${prefix}'
|
||||
+ am_python_prefix=$am_python_prefix_subst
|
||||
+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
|
||||
+ AC_MSG_RESULT([$am_python_prefix])
|
||||
+ fi])
|
||||
+ # Substituting python_prefix_subst value.
|
||||
+ AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
|
||||
+
|
||||
+ # emacs-page Now do it all over again for Python exec_prefix, but with yet
|
||||
+ # another conditional: fall back to regular prefix if that was specified.
|
||||
+ AC_ARG_WITH([python_exec_prefix],
|
||||
+ [AS_HELP_STRING([--with-python_exec_prefix],
|
||||
+ [override the default PYTHON_EXEC_PREFIX])],
|
||||
+ [am_python_exec_prefix_subst=$withval
|
||||
+ am_cv_python_exec_prefix=$withval
|
||||
+ AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
|
||||
+ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
|
||||
+ [
|
||||
+ # no explicit --with-python_exec_prefix, but if
|
||||
+ # --with-python_prefix was given, use its value for python_exec_prefix too.
|
||||
+ AS_IF([test -n "$with_python_prefix"],
|
||||
+ [am_python_exec_prefix_subst=$with_python_prefix
|
||||
+ am_cv_python_exec_prefix=$with_python_prefix
|
||||
+ AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
|
||||
+ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
|
||||
+ [
|
||||
+ # Set am__usable_exec_prefix whether using GNU or Python values,
|
||||
+ # since we use that variable for pyexecdir.
|
||||
+ if test "x$exec_prefix" = xNONE; then
|
||||
+ am__usable_exec_prefix=$am__usable_prefix
|
||||
+ else
|
||||
+ am__usable_exec_prefix=$exec_prefix
|
||||
+ fi
|
||||
+ #
|
||||
+ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
|
||||
+ AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
|
||||
+ [am_cv_python_exec_prefix],
|
||||
+ [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`])
|
||||
+ dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
|
||||
+ dnl literal value of $exec_prefix with a variable reference so it can
|
||||
+ dnl be overridden.
|
||||
+ case $am_cv_python_exec_prefix in
|
||||
+ $am__usable_exec_prefix*)
|
||||
+ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
|
||||
+ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
|
||||
+ ;;
|
||||
+ *)
|
||||
+ am_python_exec_prefix_subst=$am_cv_python_exec_prefix
|
||||
+ ;;
|
||||
+ esac
|
||||
+ else # using GNU $exec_prefix, not python sys.exec_prefix
|
||||
+ am_python_exec_prefix_subst='${exec_prefix}'
|
||||
+ am_python_exec_prefix=$am_python_exec_prefix_subst
|
||||
+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
|
||||
+ AC_MSG_RESULT([$am_python_exec_prefix])
|
||||
+ fi])])
|
||||
+ # Substituting python_exec_prefix_subst.
|
||||
+ AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
|
||||
+
|
||||
+ # Factor out some code duplication into this shell variable.
|
||||
am_python_setup_sysconfig="\
|
||||
import sys
|
||||
# Prefer sysconfig over distutils.sysconfig, for better compatibility
|
||||
@@ -132,96 +238,95 @@
|
||||
except ImportError:
|
||||
pass"
|
||||
|
||||
- dnl Set up 4 directories:
|
||||
+ dnl emacs-page Set up 4 directories:
|
||||
|
||||
- dnl pythondir -- where to install python scripts. This is the
|
||||
- dnl site-packages directory, not the python standard library
|
||||
- dnl directory like in previous automake betas. This behavior
|
||||
- dnl is more consistent with lispdir.m4 for example.
|
||||
+ dnl 1. pythondir: where to install python scripts. This is the
|
||||
+ dnl site-packages directory, not the python standard library
|
||||
+ dnl directory like in previous automake betas. This behavior
|
||||
+ dnl is more consistent with lispdir.m4 for example.
|
||||
dnl Query distutils for this directory.
|
||||
- AC_CACHE_CHECK([for $am_display_PYTHON script directory],
|
||||
- [am_cv_python_pythondir],
|
||||
- [if test "x$prefix" = xNONE
|
||||
- then
|
||||
- am_py_prefix=$ac_default_prefix
|
||||
- else
|
||||
- am_py_prefix=$prefix
|
||||
- fi
|
||||
- am_cv_python_pythondir=`$PYTHON -c "
|
||||
+ dnl
|
||||
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
|
||||
+ [am_cv_python_pythondir],
|
||||
+ [if test "x$am_cv_python_prefix" = x; then
|
||||
+ am_py_prefix=$am__usable_prefix
|
||||
+ else
|
||||
+ am_py_prefix=$am_cv_python_prefix
|
||||
+ fi
|
||||
+ am_cv_python_pythondir=`$PYTHON -c "
|
||||
$am_python_setup_sysconfig
|
||||
if can_use_sysconfig:
|
||||
- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
|
||||
+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
|
||||
else:
|
||||
- from distutils import sysconfig
|
||||
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
|
||||
+ from distutils import sysconfig
|
||||
+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
|
||||
sys.stdout.write(sitedir)"`
|
||||
- case $am_cv_python_pythondir in
|
||||
- $am_py_prefix*)
|
||||
- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
|
||||
- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
|
||||
- ;;
|
||||
- *)
|
||||
- case $am_py_prefix in
|
||||
- /usr|/System*) ;;
|
||||
- *)
|
||||
- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
|
||||
- ;;
|
||||
- esac
|
||||
- ;;
|
||||
+ #
|
||||
+ case $am_cv_python_pythondir in
|
||||
+ $am_py_prefix*)
|
||||
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
|
||||
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
|
||||
+ ;;
|
||||
+ *)
|
||||
+ case $am_py_prefix in
|
||||
+ /usr|/System*) ;;
|
||||
+ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
|
||||
+ ;;
|
||||
esac
|
||||
- ])
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ])
|
||||
AC_SUBST([pythondir], [$am_cv_python_pythondir])
|
||||
|
||||
- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
|
||||
- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
|
||||
- dnl more consistent with the rest of automake.
|
||||
-
|
||||
+ dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was
|
||||
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
|
||||
+ dnl more consistent with the rest of automake.
|
||||
+ dnl
|
||||
AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
|
||||
|
||||
- dnl pyexecdir -- directory for installing python extension modules
|
||||
- dnl (shared libraries)
|
||||
+ dnl 3. pyexecdir: directory for installing python extension modules
|
||||
+ dnl (shared libraries).
|
||||
dnl Query distutils for this directory.
|
||||
- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
|
||||
- [am_cv_python_pyexecdir],
|
||||
- [if test "x$exec_prefix" = xNONE
|
||||
- then
|
||||
- am_py_exec_prefix=$am_py_prefix
|
||||
- else
|
||||
- am_py_exec_prefix=$exec_prefix
|
||||
- fi
|
||||
- am_cv_python_pyexecdir=`$PYTHON -c "
|
||||
+ dnl
|
||||
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)],
|
||||
+ [am_cv_python_pyexecdir],
|
||||
+ [if test "x$am_cv_python_exec_prefix" = x; then
|
||||
+ am_py_exec_prefix=$am__usable_exec_prefix
|
||||
+ else
|
||||
+ am_py_exec_prefix=$am_cv_python_exec_prefix
|
||||
+ fi
|
||||
+ am_cv_python_pyexecdir=`$PYTHON -c "
|
||||
$am_python_setup_sysconfig
|
||||
if can_use_sysconfig:
|
||||
- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
|
||||
+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
|
||||
else:
|
||||
- from distutils import sysconfig
|
||||
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
|
||||
+ from distutils import sysconfig
|
||||
+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
|
||||
sys.stdout.write(sitedir)"`
|
||||
- case $am_cv_python_pyexecdir in
|
||||
- $am_py_exec_prefix*)
|
||||
- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
|
||||
- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
|
||||
- ;;
|
||||
- *)
|
||||
- case $am_py_exec_prefix in
|
||||
- /usr|/System*) ;;
|
||||
- *)
|
||||
- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
|
||||
- ;;
|
||||
- esac
|
||||
- ;;
|
||||
+ #
|
||||
+ case $am_cv_python_pyexecdir in
|
||||
+ $am_py_exec_prefix*)
|
||||
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
|
||||
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
|
||||
+ ;;
|
||||
+ *)
|
||||
+ case $am_py_exec_prefix in
|
||||
+ /usr|/System*) ;;
|
||||
+ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
|
||||
+ ;;
|
||||
esac
|
||||
- ])
|
||||
+ ;;
|
||||
+ esac
|
||||
+ ])
|
||||
AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
|
||||
|
||||
- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
|
||||
-
|
||||
+ dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
|
||||
+ dnl
|
||||
AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
|
||||
|
||||
dnl Run any user-specified action.
|
||||
$2
|
||||
fi
|
||||
-
|
||||
])
|
||||
|
||||
|
||||
|
|
@ -1,125 +0,0 @@
|
|||
From 81a33ea5e1b86d586b956e893a5b25c4cd41c969 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
|
||||
Date: Sat, 26 Jun 2021 18:02:47 +0200
|
||||
Subject: [PATCH] core: Fix use-after-free issue in test
|
||||
|
||||
* tests/gpg/t-edit-sign.c (sign_key, verify_key_signature): New.
|
||||
(main): Factored out signing and verifying the result.
|
||||
--
|
||||
|
||||
Factoring the two steps of the test into different functions fixes the
|
||||
use-after-free issue that was caused by accidentaly using a variable
|
||||
of the first step in the second step.
|
||||
|
||||
GnuPG-bug-id: 5509
|
||||
---
|
||||
tests/gpg/t-edit-sign.c | 54 ++++++++++++++++++++++++++++-------------
|
||||
1 file changed, 37 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/tests/gpg/t-edit-sign.c b/tests/gpg/t-edit-sign.c
|
||||
index 2f983622..e0494c54 100644
|
||||
--- a/tests/gpg/t-edit-sign.c
|
||||
+++ b/tests/gpg/t-edit-sign.c
|
||||
@@ -107,31 +107,19 @@ interact_fnc (void *opaque, const char *status, const char *args, int fd)
|
||||
}
|
||||
|
||||
|
||||
-int
|
||||
-main (int argc, char **argv)
|
||||
+void
|
||||
+sign_key (const char *key_fpr, const char *signer_fpr)
|
||||
{
|
||||
gpgme_ctx_t ctx;
|
||||
gpgme_error_t err;
|
||||
gpgme_data_t out = NULL;
|
||||
- const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */
|
||||
gpgme_key_t signing_key = NULL;
|
||||
- const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */
|
||||
gpgme_key_t key = NULL;
|
||||
- gpgme_key_t signed_key = NULL;
|
||||
- gpgme_user_id_t signed_uid = NULL;
|
||||
- gpgme_key_sig_t key_sig = NULL;
|
||||
char *agent_info;
|
||||
- int mode;
|
||||
-
|
||||
- (void)argc;
|
||||
- (void)argv;
|
||||
-
|
||||
- init_gpgme (GPGME_PROTOCOL_OpenPGP);
|
||||
|
||||
err = gpgme_new (&ctx);
|
||||
fail_if_err (err);
|
||||
|
||||
- /* Sign the key */
|
||||
agent_info = getenv("GPG_AGENT_INFO");
|
||||
if (!(agent_info && strchr (agent_info, ':')))
|
||||
gpgme_set_passphrase_cb (ctx, passphrase_cb, 0);
|
||||
@@ -159,8 +147,23 @@ main (int argc, char **argv)
|
||||
gpgme_data_release (out);
|
||||
gpgme_key_unref (key);
|
||||
gpgme_key_unref (signing_key);
|
||||
+ gpgme_release (ctx);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+void
|
||||
+verify_key_signature (const char *key_fpr, const char *signer_keyid)
|
||||
+{
|
||||
+ gpgme_ctx_t ctx;
|
||||
+ gpgme_error_t err;
|
||||
+ gpgme_key_t signed_key = NULL;
|
||||
+ gpgme_user_id_t signed_uid = NULL;
|
||||
+ gpgme_key_sig_t key_sig = NULL;
|
||||
+ int mode;
|
||||
+
|
||||
+ err = gpgme_new (&ctx);
|
||||
+ fail_if_err (err);
|
||||
|
||||
- /* Verify the key signature */
|
||||
mode = gpgme_get_keylist_mode (ctx);
|
||||
mode |= GPGME_KEYLIST_MODE_SIGS;
|
||||
err = gpgme_set_keylist_mode (ctx, mode);
|
||||
@@ -168,7 +171,7 @@ main (int argc, char **argv)
|
||||
err = gpgme_get_key (ctx, key_fpr, &signed_key, 0);
|
||||
fail_if_err (err);
|
||||
|
||||
- signed_uid = key->uids;
|
||||
+ signed_uid = signed_key->uids;
|
||||
if (!signed_uid)
|
||||
{
|
||||
fprintf (stderr, "Signed key has no user IDs\n");
|
||||
@@ -180,7 +183,7 @@ main (int argc, char **argv)
|
||||
exit (1);
|
||||
}
|
||||
key_sig = signed_uid->signatures->next;
|
||||
- if (strcmp ("2D727CC768697734", key_sig->keyid))
|
||||
+ if (strcmp (signer_keyid, key_sig->keyid))
|
||||
{
|
||||
fprintf (stderr, "Unexpected key ID in second user ID sig: %s\n",
|
||||
key_sig->keyid);
|
||||
@@ -196,6 +199,23 @@ main (int argc, char **argv)
|
||||
|
||||
gpgme_key_unref (signed_key);
|
||||
gpgme_release (ctx);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+int
|
||||
+main (int argc, char **argv)
|
||||
+{
|
||||
+ const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */
|
||||
+ const char *signer_keyid = signer_fpr + strlen(signer_fpr) - 16;
|
||||
+ const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */
|
||||
+
|
||||
+ (void)argc;
|
||||
+ (void)argv;
|
||||
+
|
||||
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
|
||||
+
|
||||
+ sign_key (key_fpr, signer_fpr);
|
||||
+ verify_key_signature (key_fpr, signer_keyid);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.32.0
|
|
@ -24,7 +24,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "3.2.0";
|
||||
version = "3.3.2";
|
||||
inherit (lib) optional optionals optionalString;
|
||||
mesonFeatureFlag = opt: b:
|
||||
"-D${opt}=${if b then "enabled" else "disabled"}";
|
||||
|
@ -39,7 +39,7 @@ stdenv.mkDerivation {
|
|||
owner = "harfbuzz";
|
||||
repo = "harfbuzz";
|
||||
rev = version;
|
||||
sha256 = "sha256-iNYp/hyJTaaF6e09YpUL7ktBhq2wRN9zKiEH59WLbYU=";
|
||||
sha256 = "sha256-UbYqV7Ch9ugTIwSsCpjnS8H7tcv4P3OVpFDFDZtQCk0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -1 +1 @@
|
|||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.90/ -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.91/ -A '*.tar.xz' )
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue