Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2022-03-16 00:10:32 +00:00 committed by GitHub
commit d6c63a3ceb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
272 changed files with 4148 additions and 2321 deletions

View file

@ -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, ... }:

View file

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

View file

@ -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 = [ &quot;nvidia&quot; ];</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

View file

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

View file

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

View file

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

View file

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

View file

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

View 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}"
'';
};
}

View 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";
};
};
};
}

View file

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

View file

@ -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
View 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!")
'';
})

View 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")
'';
}

View file

@ -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"')

View 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;
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View 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;
};
}

View file

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

View file

@ -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 .";

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View 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" ];
};
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View 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 ];
};
}

View file

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

View file

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

View file

@ -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
'');
}

View file

@ -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
'');
}

View file

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

View file

@ -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 }: ["

View file

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

View 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.")

View file

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

View file

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

View file

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

View file

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

View file

@ -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" ];
}

View file

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

View file

@ -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()) {

View file

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

View file

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

View file

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

View 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*}

View file

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

View file

@ -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,22 +188,35 @@ stdenv.mkDerivation rec {
done
'';
preFixup = ''
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
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
fi
done < <(find $out $lib $doc -type f -print0)
'';
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
fi
if [[ $i =~ libcudart ]]; then
patchelf --remove-rpath $i
else
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
# /run/opengl-driver(-32)/lib can be found. See the explanation 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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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)" ];

View file

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

View file

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

View file

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

View file

@ -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") ''

View file

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

View file

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

View file

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

View file

@ -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,18 +77,19 @@ 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 ]
++ optional dbusSupport dbus
++ optional pulseaudioSupport libpulseaudio
++ optional udevSupport udev
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 ]
++ optionals x11Support [ libICE libXi libXScrnSaver libXcursor libXinerama libXext libXrandr libXxf86vm ];
buildInputs = [ libiconv ]
++ dlopenBuildInputs
++ optional ibusSupport ibus
++ optional fcitxSupport fcitx
++ optional ibusSupport ibus
++ optional fcitxSupport fcitx
++ optionals stdenv.isDarwin [ AudioUnit Cocoa CoreAudio CoreServices ForceFeedback OpenGL ];
enableParallelBuilding = true;
@ -82,9 +97,9 @@ stdenv.mkDerivation rec {
configureFlags = [
"--disable-oss"
] ++ optional (!x11Support) "--without-x"
++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"
++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles"
++ optional stdenv.isDarwin "--disable-sdltest";
++ optional alsaSupport "--with-alsa-prefix=${alsa-lib.out}/lib"
++ optional stdenv.targetPlatform.isWindows "--disable-video-opengles"
++ optional stdenv.isDarwin "--disable-sdltest";
# We remove libtool .la files when static libs are requested,
# because they make the builds of downstream libs like `SDL_tff`
@ -117,15 +132,17 @@ stdenv.mkDerivation rec {
#
# You can grep SDL sources with `grep -rE 'SDL_(NAME|.*_SYM)'` to
# list the symbols used in this way.
postFixup = let
rpath = makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs);
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"
fi
done
'';
postFixup =
let
rpath = makeLibraryPath (dlopenPropagatedBuildInputs ++ dlopenBuildInputs);
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"
fi
done
'';
setupHook = ./setup-hook.sh;

View file

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

View file

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

View file

@ -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/";

View file

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

View file

@ -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" ];

View file

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

View file

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

View file

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

View file

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

View file

@ -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;
@ -59,16 +94,15 @@ stdenv.mkDerivation rec {
# which has a path length limit. Nix on darwin is using a build directory
# that already has quite a long path and the resulting socket path doesn't
# fit in the limit. https://github.com/NixOS/nix/pull/1085
++ lib.optionals stdenv.isDarwin [ "--disable-gpg-test" ];
++ lib.optionals stdenv.isDarwin [ "--disable-gpg-test" ];
NIX_CFLAGS_COMPILE = toString (
# qgpgme uses Q_ASSERT which retains build inputs at runtime unless
# 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;

View file

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

View 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
-
])

View file

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

View file

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

View file

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