Merge branch 'staging' into staging-next

This commit is contained in:
Vladimír Čunát
2022-02-22 13:47:05 +01:00
150 changed files with 2717 additions and 1931 deletions
+18 -2
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, ... }:
@@ -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;
};
}
+2 -2
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 ];
+2 -2
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;
@@ -1,52 +0,0 @@
diff --git a/src/sage/repl/interface_magic.py b/src/sage/repl/interface_magic.py
index 8a455b69b0..a93e1c9e04 100644
--- a/src/sage/repl/interface_magic.py
+++ b/src/sage/repl/interface_magic.py
@@ -260,7 +260,7 @@ class InterfaceMagic(object):
2
120
sage: shell.run_cell('%%gap foo\n1+1;\n')
- ...File "<string>", line unknown
+ ...File...<string>...
SyntaxError: Interface magics have no options, got "foo"
<BLANKLINE>
sage: shell.run_cell('%%gap?')
diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py
index 71dbe429fd..36b1d986d6 100644
--- a/src/sage/repl/interpreter.py
+++ b/src/sage/repl/interpreter.py
@@ -70,25 +70,6 @@ that shell. The bulk of this functionality is provided through
TESTS:
-Check that Cython source code appears in tracebacks::
-
- sage: from sage.repl.interpreter import get_test_shell
- sage: shell = get_test_shell()
- sage: print("dummy line"); shell.run_cell('1/0') # see #25320 for the reason of the `...` and the dummy line in this test
- dummy line
- ...
- ZeroDivisionError...Traceback (most recent call last)
- <ipython-input-...> in <module>...
- ----> 1 Integer(1)/Integer(0)
- .../sage/rings/integer.pyx in sage.rings.integer.Integer...div...
- ...
- -> ... raise ZeroDivisionError("rational division by zero")
- ....: x = <Rational> Rational.__new__(Rational)
- ....: mpq_div_zz(x.value, ....value, (<Integer>right).value)
- <BLANKLINE>
- ZeroDivisionError: rational division by zero
- sage: shell.quit()
-
Test prompt transformer::
sage: from sage.repl.interpreter import SagePromptTransformer
@@ -423,7 +404,7 @@ def SagePreparseTransformer(lines):
sage: from sage.repl.interpreter import get_test_shell
sage: shell = get_test_shell()
sage: shell.run_cell(bad_syntax)
- File "<string>", line unknown
+ File...<string>...
SyntaxError: Mismatched ']'
<BLANKLINE>
sage: shell.quit()
@@ -119,15 +119,13 @@ stdenv.mkDerivation rec {
# https://trac.sagemath.org/ticket/32959
./patches/linbox-1.7-upgrade.patch
# To emit better tracebacks, IPython 8 parses Python files using the ast
# module (via the stack_data package). Since Cython is a superset of Python,
# this results in no Cython code being printed in tracebacks. Fixing this
# properly is tracked in https://github.com/alexmojaki/stack_data/issues/21,
# but for now we just disable the corresponding test. An alternative would
# be to revert IPython's IPython/core/ultratb.py, but this would need to be
# Sage-specific (since it would worsen tracebacks for pure Python code).
# Sage tracks this at https://trac.sagemath.org/ticket/33170
./patches/no-cython-sources-in-tracebacks-on-ipython8.patch
# https://trac.sagemath.org/ticket/33170
(fetchSageDiff {
base = "9.5.rc1";
name = "ipython-8-update.patch";
rev = "a90a314616d86d6be9c0d5233f0d36c4bfe06231";
sha256 = "sha256-pXdtokTo84xNCnV+HyAKEzG562z8FjzJ7hczOja0dRw=";
})
# https://trac.sagemath.org/ticket/32968
(fetchSageDiff {
@@ -1,7 +1,7 @@
{ lib, stdenv
, lapack-reference, openblasCompat, openblas
, lapack-reference, openblas
, isILP64 ? false
, blasProvider ? if isILP64 then openblas else openblasCompat }:
, blasProvider ? openblas }:
let
blasFortranSymbols = [
@@ -32,10 +32,13 @@ let
blasImplementation = lib.getName blasProvider;
blasProvider' = if blasImplementation == "mkl"
then blasProvider
else blasProvider.override { blas64 = isILP64; };
in
assert isILP64 -> (blasImplementation == "openblas" && blasProvider.blas64) || blasImplementation == "mkl";
assert isILP64 -> blasImplementation == "mkl" || blasProvider'.blas64;
stdenv.mkDerivation {
pname = "blas";
@@ -43,13 +46,13 @@ stdenv.mkDerivation {
outputs = [ "out" "dev" ];
meta = (blasProvider.meta or {}) // {
meta = (blasProvider'.meta or {}) // {
description = "${lib.getName blasProvider} with just the BLAS C and FORTRAN ABI";
};
passthru = {
inherit isILP64;
provider = blasProvider;
provider = blasProvider';
implementation = blasImplementation;
};
@@ -62,10 +65,10 @@ stdenv.mkDerivation {
installPhase = (''
mkdir -p $out/lib $dev/include $dev/lib/pkgconfig
libblas="${lib.getLib blasProvider}/lib/libblas${canonicalExtension}"
libblas="${lib.getLib blasProvider'}/lib/libblas${canonicalExtension}"
if ! [ -e "$libblas" ]; then
echo "$libblas does not exist, ${blasProvider.name} does not provide libblas."
echo "$libblas does not exist, ${blasProvider'.name} does not provide libblas."
exit 1
fi
@@ -79,11 +82,11 @@ stdenv.mkDerivation {
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
patchelf --set-soname libblas${canonicalExtension} $out/lib/libblas${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libblas${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libblas${canonicalExtension}
'' else if stdenv.hostPlatform.isDarwin then ''
install_name_tool \
-id $out/lib/libblas${canonicalExtension} \
-add_rpath ${lib.getLib blasProvider}/lib \
-add_rpath ${lib.getLib blasProvider'}/lib \
$out/lib/libblas${canonicalExtension}
'' else "") + ''
@@ -99,10 +102,10 @@ Libs: -L$out/lib -lblas
Cflags: -I$dev/include
EOF
libcblas="${lib.getLib blasProvider}/lib/libcblas${canonicalExtension}"
libcblas="${lib.getLib blasProvider'}/lib/libcblas${canonicalExtension}"
if ! [ -e "$libcblas" ]; then
echo "$libcblas does not exist, ${blasProvider.name} does not provide libcblas."
echo "$libcblas does not exist, ${blasProvider'.name} does not provide libcblas."
exit 1
fi
@@ -111,11 +114,11 @@ EOF
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
patchelf --set-soname libcblas${canonicalExtension} $out/lib/libcblas${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider}/lib" $out/lib/libcblas${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libcblas${canonicalExtension}
'' else if stdenv.hostPlatform.isDarwin then ''
install_name_tool \
-id $out/lib/libcblas${canonicalExtension} \
-add_rpath ${lib.getLib blasProvider}/lib \
-add_rpath ${lib.getLib blasProvider'}/lib \
$out/lib/libcblas${canonicalExtension}
'' else "") + ''
if [ "$out/lib/libcblas${canonicalExtension}" != "$out/lib/libcblas${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then
@@ -135,6 +138,6 @@ EOF
mkdir -p $out/nix-support
echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook
ln -s $out/lib/libblas${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary}
ln -sf ${blasProvider}/include/* $dev/include
ln -sf ${blasProvider'}/include/* $dev/include
'');
}
@@ -1,7 +1,7 @@
{ lib, stdenv
, lapack-reference, openblasCompat, openblas
, lapack-reference, openblas
, isILP64 ? false
, lapackProvider ? if isILP64 then openblas else openblasCompat }:
, lapackProvider ? openblas }:
let
@@ -11,10 +11,13 @@ let
else stdenv.hostPlatform.extensions.sharedLibrary;
lapackImplementation = lib.getName lapackProvider;
lapackProvider' = if lapackImplementation == "mkl"
then lapackProvider
else lapackProvider.override { blas64 = isILP64; };
in
assert isILP64 -> (lapackImplementation == "openblas" && lapackProvider.blas64) || lapackImplementation == "mkl";
assert isILP64 -> lapackImplementation == "mkl" || lapackProvider'.blas64;
stdenv.mkDerivation {
pname = "lapack";
@@ -22,13 +25,13 @@ stdenv.mkDerivation {
outputs = [ "out" "dev" ];
meta = (lapackProvider.meta or {}) // {
description = "${lib.getName lapackProvider} with just the LAPACK C and FORTRAN ABI";
meta = (lapackProvider'.meta or {}) // {
description = "${lib.getName lapackProvider'} with just the LAPACK C and FORTRAN ABI";
};
passthru = {
inherit isILP64;
provider = lapackProvider;
provider = lapackProvider';
implementation = lapackImplementation;
};
@@ -41,10 +44,10 @@ stdenv.mkDerivation {
installPhase = (''
mkdir -p $out/lib $dev/include $dev/lib/pkgconfig
liblapack="${lib.getLib lapackProvider}/lib/liblapack${canonicalExtension}"
liblapack="${lib.getLib lapackProvider'}/lib/liblapack${canonicalExtension}"
if ! [ -e "$liblapack" ]; then
echo "$liblapack does not exist, ${lapackProvider.name} does not provide liblapack."
echo "$liblapack does not exist, ${lapackProvider'.name} does not provide liblapack."
exit 1
fi
@@ -53,7 +56,7 @@ stdenv.mkDerivation {
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
patchelf --set-soname liblapack${canonicalExtension} $out/lib/liblapack${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider}/lib" $out/lib/liblapack${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider'}/lib" $out/lib/liblapack${canonicalExtension}
'' else "") + ''
if [ "$out/lib/liblapack${canonicalExtension}" != "$out/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}" ]; then
@@ -70,10 +73,10 @@ Cflags: -I$dev/include
Libs: -L$out/lib -llapack
EOF
liblapacke="${lib.getLib lapackProvider}/lib/liblapacke${canonicalExtension}"
liblapacke="${lib.getLib lapackProvider'}/lib/liblapacke${canonicalExtension}"
if ! [ -e "$liblapacke" ]; then
echo "$liblapacke does not exist, ${lapackProvider.name} does not provide liblapacke."
echo "$liblapacke does not exist, ${lapackProvider'.name} does not provide liblapacke."
exit 1
fi
@@ -82,7 +85,7 @@ EOF
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
patchelf --set-soname liblapacke${canonicalExtension} $out/lib/liblapacke${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider}/lib" $out/lib/liblapacke${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider'}/lib" $out/lib/liblapacke${canonicalExtension}
'' else "") + ''
if [ -f "$out/lib/liblapacke.so.3" ]; then
@@ -102,6 +105,6 @@ EOF
mkdir -p $out/nix-support
echo 'export MKL_INTERFACE_LAYER=${lib.optionalString isILP64 "I"}LP64,GNU' > $out/nix-support/setup-hook
ln -s $out/lib/liblapack${canonicalExtension} $out/lib/libmkl_rt${stdenv.hostPlatform.extensions.sharedLibrary}
ln -sf ${lapackProvider}/include/* $dev/include
ln -sf ${lapackProvider'}/include/* $dev/include
'');
}
+14 -4
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
@@ -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.")
+17 -314
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
+17 -1
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")"
+2 -1
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
+1 -1
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' )
+2 -2
View File
@@ -1,8 +1,8 @@
{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n }:
{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n, kcoreaddons }:
mkDerivation {
name = "kdecoration";
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [ qtbase ki18n ];
buildInputs = [ qtbase ki18n kcoreaddons ];
outputs = [ "out" "dev" ];
}
@@ -63,11 +63,11 @@ index 0000000..726065d
+
+}// namespace
+
+#endif // SERVICE_UTILS_H
diff --git a/src/service_utils.h b/src/service_utils.h
+#endif // NIXOS_UTILS_H
diff --git a/src/utils/serviceutils.h b/src/utils/serviceutils.h
index 8a70c1f..475b15d 100644
--- a/src/service_utils.h
+++ b/src/service_utils.h
--- a/src/utils/serviceutils.h
+++ b/src/utils/serviceutils.h
@@ -19,6 +19,7 @@
#include <QLoggingCategory>
//KF
@@ -11,11 +11,10 @@ diff --git a/processui/scripting.cpp b/processui/scripting.cpp
index efed8ff..841761a 100644
--- a/processui/scripting.cpp
+++ b/processui/scripting.cpp
@@ -167,7 +167,7 @@ void Scripting::loadContextMenu() {
QStringList scripts;
@@ -293,7 +293,7 @@ void Scripting::loadContextMenu()
const QStringList dirs =
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("ksysguard/scripts/"), QStandardPaths::LocateDirectory);
Q_FOREACH (const QString &dir, dirs) {
for (const QString &dir : dirs) {
- QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories);
+ QDirIterator it(dir, QStringList() << QStringLiteral("*.desktop"), QDir::NoFilter, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
while (it.hasNext()) {
@@ -14,33 +14,33 @@ diff --git a/startkde/plasma-session/startup.cpp b/startkde/plasma-session/start
index 270744053..356160e96 100644
--- a/startkde/plasma-session/startup.cpp
+++ b/startkde/plasma-session/startup.cpp
@@ -143,7 +143,7 @@ Startup::Startup(QObject *parent)
const AutoStart autostart;
@@ -179,7 +179,7 @@ Startup::Startup(QObject *parent)
}
// Keep for KF5; remove in KF6 (KInit will be gone then)
- QProcess::execute(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), QStringList());
+ QProcess::execute(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), QStringList());
KJob *windowManagerJob = nullptr;
if (qEnvironmentVariable("XDG_SESSION_TYPE") != QLatin1String("wayland")) {
diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
KJob *phase1 = nullptr;
m_lock.reset(new QEventLoopLocker);
diff --git a/startkde/startplasma-wayland.cpp b/startkde/startplasma-wayland.cpp
index 3a054a04f..b2e7ab3fb 100644
--- a/startkde/startplasma-waylandsession.cpp
+++ b/startkde/startplasma-waylandsession.cpp
@@ -33,7 +33,7 @@ int main(int argc, char **argv)
out << "startplasma-waylandsession: Shutting down...\n";
--- a/startkde/startplasma-wayland.cpp
+++ b/startkde/startplasma-wayland.cpp
@@ -91,7 +91,7 @@ int main(int argc, char **argv)
out << "startplasma-wayland: Shutting down...\n";
// Keep for KF5; remove in KF6 (KInit will be gone then)
- runSync(QStringLiteral("kdeinit5_shutdown"), {});
+ runSync(QStringLiteral(NIXPKGS_KDEINIT5_SHUTDOWN), {});
out << "startplasma-waylandsession: Done.\n";
out << "startplasmacompositor: Shutting down...\n";
cleanupPlasmaEnvironment(oldSystemdEnvironment);
diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
index d6b2c5439..534eeb0e5 100644
--- a/startkde/startplasma-x11.cpp
+++ b/startkde/startplasma-x11.cpp
@@ -90,7 +90,7 @@ int main(int argc, char **argv)
@@ -89,7 +89,7 @@ int main(int argc, char **argv)
out << "startkde: Shutting down...\n";
// Keep for KF5; remove in KF6 (KInit will be gone then)
@@ -53,7 +53,7 @@ diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
index 008fdfcaf..72468f21c 100644
--- a/startkde/startplasma.cpp
+++ b/startkde/startplasma.cpp
@@ -39,7 +39,7 @@ QTextStream out(stderr);
@@ -50,7 +50,7 @@ QTextStream out(stderr);
void messageBox(const QString &text)
{
out << text;
@@ -62,7 +62,7 @@ index 008fdfcaf..72468f21c 100644
}
QStringList allServices(const QLatin1String &prefix)
@@ -340,7 +340,7 @@ void setupX11()
@@ -412,7 +412,7 @@ void setupX11()
// If the user has overwritten fonts, the cursor font may be different now
// so don't move this up.
@@ -70,17 +70,8 @@ index 008fdfcaf..72468f21c 100644
+ runSync(QStringLiteral(NIXPKGS_XSETROOT), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
}
void cleanupPlasmaEnvironment(const std::optional<QStringList> &oldSystemdEnvironment)
@@ -403,7 +403,7 @@ void setupFontDpi()
// TODO port to c++?
const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
QProcess p;
- p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
+ p.start(QStringLiteral(NIXPKGS_XRDB), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
p.setProcessChannelMode(QProcess::ForwardedChannels);
p.write(input);
p.closeWriteChannel();
@@ -425,7 +425,7 @@ QProcess *setupKSplash()
void cleanupPlasmaEnvironment(const std::optional<QProcessEnvironment> &oldSystemdEnvironment)
@@ -500,7 +500,7 @@ QProcess *setupKSplash()
KConfigGroup ksplashCfg = cfg.group("KSplash");
if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
p = new QProcess;
@@ -15,8 +15,8 @@ index a560da3..f723c1e 100644
type=image
color=#1d99f3
fontSize=10
-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.png
+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.png
-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.jpg
+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.jpg
needsFullUserModel=false
--
2.30.0
+220 -212
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";
};
};
}
+1
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
+1
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
@@ -0,0 +1,18 @@
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 94a7553e273b..8a1d455950b2 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -412,6 +412,13 @@ DerivedArgList *Driver::TranslateInputArgs(const InputArgList &Args) const {
}
#endif
+ {
+ Arg *A = DAL->MakeFlagArg(/*BaseArg=*/nullptr,
+ Opts.getOption(options::OPT_nostdlibinc));
+ A->claim();
+ DAL->append(A);
+ }
+
return DAL;
}
@@ -42,6 +42,7 @@ let
# mis-compilation in firefox.
# See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454
./revert-malloc-alignment-assumption.patch
./add-nostdlibinc-flag.patch
(substituteAll {
src = ../../clang-11-12-LLVMgold-path.patch;
libllvmLibdir = "${libllvm.lib}/lib";
@@ -51,10 +52,6 @@ let
postPatch = ''
(cd tools && ln -s ../../clang-tools-extra extra)
sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
-e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
lib/Driver/ToolChains/*.cpp
# Patch for standalone doc building
sed -i '1s,^,find_package(Sphinx REQUIRED)\n,' docs/CMakeLists.txt
'' + lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -18,7 +18,7 @@
}:
let
release_version = "13.0.0";
release_version = "13.0.1";
candidate = ""; # empty or "rcN"
dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
rev = ""; # When using a Git commit
@@ -30,7 +30,7 @@ let
owner = "llvm";
repo = "llvm-project";
rev = if rev != "" then rev else "llvmorg-${version}";
sha256 = "0cjl0vssi4y2g4nfr710fb6cdhxmn5r0vis15sf088zsc5zydfhw";
sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k";
};
llvm_meta = {
+2 -2
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;
@@ -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") ''
@@ -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
+66 -49
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;
@@ -1,46 +0,0 @@
diff -ru3 SDL2-2.0.14/sdl2-config.cmake.in SDL2-2.0.14-new/sdl2-config.cmake.in
--- SDL2-2.0.14/sdl2-config.cmake.in 2020-12-21 18:44:36.000000000 +0100
+++ SDL2-2.0.14-new/sdl2-config.cmake.in 2021-01-16 23:53:40.721121792 +0100
@@ -6,7 +6,8 @@
set(SDL2_PREFIX "@prefix@")
set(SDL2_EXEC_PREFIX "@prefix@")
set(SDL2_LIBDIR "@libdir@")
-set(SDL2_INCLUDE_DIRS "@includedir@/SDL2")
+set(SDL2_INCLUDE_DIRS "@includedir@/SDL2" $ENV{SDL2_PATH})
+separate_arguments(SDL2_INCLUDE_DIRS)
set(SDL2_LIBRARIES "-L${SDL2_LIBDIR} @SDL_RLD_FLAGS@ @SDL_LIBS@")
string(STRIP "${SDL2_LIBRARIES}" SDL2_LIBRARIES)
@@ -20,14 +21,14 @@
add_library(SDL2::SDL2 SHARED IMPORTED)
set_target_properties(SDL2::SDL2 PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "@includedir@/SDL2"
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "@libdir@/${CMAKE_SHARED_LIBRARY_PREFIX}SDL2${CMAKE_SHARED_LIBRARY_SUFFIX}"
INTERFACE_LINK_LIBRARIES "${SDL2_EXTRA_LINK_FLAGS}")
add_library(SDL2::SDL2-static STATIC IMPORTED)
set_target_properties(SDL2::SDL2-static PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "@includedir@/SDL2"
+ INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "@libdir@/${CMAKE_STATIC_LIBRARY_PREFIX}SDL2${CMAKE_STATIC_LIBRARY_SUFFIX}"
INTERFACE_LINK_LIBRARIES "${SDL2_EXTRA_LINK_FLAGS_STATIC}")
diff -ru3 SDL2-2.0.14/sdl2-config.in SDL2-2.0.14-new/sdl2-config.in
--- SDL2-2.0.14/sdl2-config.in 2020-12-21 18:44:36.000000000 +0100
+++ SDL2-2.0.14-new/sdl2-config.in 2021-01-16 23:57:11.940353171 +0100
@@ -42,7 +42,11 @@
echo @SDL_VERSION@
;;
--cflags)
- echo -I@includedir@/SDL2 @SDL_CFLAGS@
+ SDL_CFLAGS=""
+ for i in @includedir@/SDL2 $SDL2_PATH; do
+ SDL_CFLAGS="$SDL_CFLAGS -I$i"
+ done
+ echo $SDL_CFLAGS @SDL_CFLAGS@
;;
@ENABLE_SHARED_TRUE@ --libs)
@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "aws-checksums";
version = "0.1.11";
version = "0.1.12";
src = fetchFromGitHub {
owner = "awslabs";
repo = pname;
rev = "v${version}";
sha256 = "sha256-fXu7GI2UR9QiBGP2n2pEFRjz9ZwA+BAK9zxhNnoYWt4=";
sha256 = "sha256-k3hIGk92HncRAktpuvNcZnaBZiLj63/wQBz2WScUjhQ=";
};
nativeBuildInputs = [ cmake ];
+8 -1
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/";
+2 -2
View File
@@ -7,11 +7,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
+6 -6
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" ];
+2 -2
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;
+2 -2
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 [
+2 -2
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.
@@ -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; {
+55 -21
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 autoconf2.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.optional (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;
@@ -0,0 +1,273 @@
diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
--- a/m4/ax_python_devel.m4
+++ b/m4/ax_python_devel.m4
@@ -1,5 +1,5 @@
# ===========================================================================
-# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
+# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
# ===========================================================================
#
# SYNOPSIS
@@ -12,8 +12,8 @@
# in your configure.ac.
#
# This macro checks for Python and tries to get the include path to
-# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
-# output variables. It also exports $(PYTHON_EXTRA_LIBS) and
+# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
+# variables. It also exports $(PYTHON_EXTRA_LIBS) and
# $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
#
# You can search for some particular version of Python by passing a
@@ -67,7 +67,7 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
-#serial 17
+#serial 23
AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
AC_DEFUN([AX_PYTHON_DEVEL],[
@@ -99,7 +99,7 @@
This version of the AC@&t@_PYTHON_DEVEL macro
doesn't work properly with versions of Python before
2.1.0. You may need to re-run configure, setting the
-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
+variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
to something else than an empty string.
@@ -135,16 +135,25 @@
#
# Check if you have distutils, else fail
#
- AC_MSG_CHECKING([for the distutils Python package])
- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
- if test -z "$ac_distutils_result"; then
+ AC_MSG_CHECKING([for the sysconfig Python package])
+ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
+ if test $? -eq 0; then
AC_MSG_RESULT([yes])
+ IMPORT_SYSCONFIG="import sysconfig"
else
AC_MSG_RESULT([no])
- AC_MSG_ERROR([cannot import Python module "distutils".
+
+ AC_MSG_CHECKING([for the distutils Python package])
+ ac_sysconfig_result=`$PYTHON -c "from distutils import sysconfig" 2>&1`
+ if test $? -eq 0; then
+ AC_MSG_RESULT([yes])
+ IMPORT_SYSCONFIG="from distutils import sysconfig"
+ else
+ AC_MSG_ERROR([cannot import Python module "distutils".
Please check your Python installation. The error was:
-$ac_distutils_result])
- PYTHON_VERSION=""
+$ac_sysconfig_result])
+ PYTHON_VERSION=""
+ fi
fi
#
@@ -152,10 +161,19 @@
#
AC_MSG_CHECKING([for Python include path])
if test -z "$PYTHON_CPPFLAGS"; then
- python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc ());"`
- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
+ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
+ # sysconfig module has different functions
+ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_path ('include'));"`
+ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_path ('platinclude'));"`
+ else
+ # old distutils way
+ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_python_inc ());"`
+ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_python_inc (plat_specific=1));"`
+ fi
if test -n "${python_path}"; then
if test "${plat_python_path}" != "${python_path}"; then
python_path="-I$python_path -I$plat_python_path"
@@ -172,14 +190,14 @@
# Check for Python library path
#
AC_MSG_CHECKING([for Python library path])
- if test -z "$PYTHON_LDFLAGS"; then
+ if test -z "$PYTHON_LIBS"; then
# (makes two attempts to ensure we've got a version number
# from the interpreter)
ac_python_version=`cat<<EOD | $PYTHON -
# join all versioning strings, on some systems
# major/minor numbers could be in different list elements
-from distutils.sysconfig import *
+from sysconfig import *
e = get_config_var('VERSION')
if e is not None:
print(e)
@@ -197,7 +215,7 @@
# Make the versioning information available to the compiler
# JW: We don't need it and it interferes with the hack
- # to detect multiple Pyhton versions
+ # to detect multiple Python versions
#AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
# [If available, contains the Python version number currently in use.])
@@ -205,8 +223,8 @@
ac_python_libdir=`cat<<EOD | $PYTHON -
# There should be only one
-import distutils.sysconfig
-e = distutils.sysconfig.get_config_var('LIBDIR')
+$IMPORT_SYSCONFIG
+e = sysconfig.get_config_var('LIBDIR')
if e is not None:
print (e)
EOD`
@@ -214,8 +232,8 @@
# Now, for the library:
ac_python_library=`cat<<EOD | $PYTHON -
-import distutils.sysconfig
-c = distutils.sysconfig.get_config_vars()
+$IMPORT_SYSCONFIG
+c = sysconfig.get_config_vars()
if 'LDVERSION' in c:
print ('python'+c[['LDVERSION']])
else:
@@ -230,44 +248,67 @@
then
# use the official shared library
ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
- PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
+ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
else
# old way: use libpython from python_configdir
ac_python_libdir=`$PYTHON -c \
- "from distutils.sysconfig import get_python_lib as f; \
+ "from sysconfig import get_python_lib as f; \
import os; \
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
- PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
+ PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
fi
- if test -z "PYTHON_LDFLAGS"; then
+ if test -z "PYTHON_LIBS"; then
AC_MSG_ERROR([
Cannot determine location of your Python DSO. Please check it was installed with
- dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
+ dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
])
fi
fi
- AC_MSG_RESULT([$PYTHON_LDFLAGS])
- AC_SUBST([PYTHON_LDFLAGS])
+ AC_MSG_RESULT([$PYTHON_LIBS])
+ AC_SUBST([PYTHON_LIBS])
#
# Check for site packages
#
AC_MSG_CHECKING([for Python site-packages path])
if test -z "$PYTHON_SITE_PKG"; then
- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
- print (distutils.sysconfig.get_python_lib(0,0));"`
+ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
+ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_path('purelib'));"`
+ else
+ # distutils.sysconfig way
+ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_python_lib(0,0));"`
+ fi
fi
AC_MSG_RESULT([$PYTHON_SITE_PKG])
AC_SUBST([PYTHON_SITE_PKG])
+ #
+ # Check for platform-specific site packages
+ #
+ AC_MSG_CHECKING([for Python platform specific site-packages path])
+ if test -z "$PYTHON_SITE_PKG"; then
+ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
+ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_path('platlib'));"`
+ else
+ # distutils.sysconfig way
+ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ print (sysconfig.get_python_lib(1,0));"`
+ fi
+ fi
+ AC_MSG_RESULT([$PYTHON_PLATFORM_SITE_PKG])
+ AC_SUBST([PYTHON_PLATFORM_SITE_PKG])
+
#
# libraries which must be linked in when embedding
#
AC_MSG_CHECKING(python extra libraries)
if test -z "$PYTHON_EXTRA_LIBS"; then
- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ conf = sysconfig.get_config_var; \
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
@@ -278,8 +319,8 @@
#
AC_MSG_CHECKING(python extra linking flags)
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
- conf = distutils.sysconfig.get_config_var; \
+ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
+ conf = sysconfig.get_config_var; \
print (conf('LINKFORSHARED'))"`
fi
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
@@ -291,8 +332,10 @@
AC_MSG_CHECKING([consistency of all components of python development environment])
# save current global flags
ac_save_LIBS="$LIBS"
+ ac_save_LDFLAGS="$LDFLAGS"
ac_save_CPPFLAGS="$CPPFLAGS"
- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
+ LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
+ LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
AC_LANG_PUSH([C])
AC_LINK_IFELSE([
@@ -303,15 +346,17 @@
# turn back to default flags
CPPFLAGS="$ac_save_CPPFLAGS"
LIBS="$ac_save_LIBS"
+ LDFLAGS="$ac_save_LDFLAGS"
AC_MSG_RESULT([$pythonexists])
if test ! "x$pythonexists" = "xyes"; then
+ # gpgme: only warn here, no error, as we are looking for multiple versions
AC_MSG_WARN([
Could not link test program to Python. Maybe the main Python library has been
installed in some non-standard library path. If so, pass it to configure,
- via the LDFLAGS environment variable.
- Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
+ via the LIBS environment variable.
+ Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
============================================================================
You probably have to install the development version of the Python package
for your distribution. The exact name of this package varies among them.
@@ -323,4 +368,4 @@
#
# all done!
#
-])
+])
\ No newline at end of file
@@ -0,0 +1,373 @@
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -425,11 +425,12 @@
if test "$found_py" = "1" -o "$found_py3" = "1"; then
# Reset everything, so that we can look for another Python.
m4_foreach([mym4pythonver],
- [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[all]],
+ [[2.7],[3.4],[3.5],[3.6],[3.7],[3.8],[3.9],[3.10],[all]],
[unset PYTHON
unset PYTHON_VERSION
unset PYTHON_CPPFLAGS
unset PYTHON_LDFLAGS
+ unset PYTHON_LIBS
unset PYTHON_SITE_PKG
unset PYTHON_EXTRA_LIBS
unset PYTHON_EXTRA_LDFLAGS
diff --git a/m4/python.m4 b/m4/python.m4
--- a/m4/python.m4
+++ b/m4/python.m4
@@ -1,10 +1,10 @@
## ------------------------ -*- Autoconf -*-
## Python file handling
## From Andrew Dalke
-## Updated by James Henstridge
+## Updated by James Henstridge and other contributors.
## Updated by Werner Koch 2018-10-17
-## ---------------------------------
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+## ------------------------
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -36,13 +36,12 @@
# numbers and dots only.
AC_DEFUN([AM_PATH_PYTHON],
[
- dnl Find a Python interpreter. Python versions prior to 2.0 are not
- dnl supported. (2.0 was released on October 16, 2000). Python 3.0
- dnl through to Python 3.9 are also not supported.
+ dnl Find a Python interpreter. Python versions prior to 2.7 are not
+ dnl supported. Python 3.0 through to Python 3.3 are also not supported.
m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
[python2 python2.7 dnl
python dnl
- python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4
+ python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4
])
AC_ARG_VAR([PYTHON], [the Python interpreter])
@@ -85,34 +84,141 @@
])
if test "$PYTHON" = :; then
- dnl Run any user-specified action, or abort.
+ dnl Run any user-specified action, or abort.
m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
else
- dnl Query Python for its version number. Getting [:3] seems to be
- dnl the best way to do this; it's what "site.py" does in the standard
- dnl library.
-
+ dnl Query Python for its version number. Although site.py simply uses
+ dnl sys.version[:3], printing that failed with Python 3.10, since the
+ dnl trailing zero was eliminated. So now we output just the major
+ dnl and minor version numbers, as numbers. Apparently the tertiary
+ dnl version is not of interest.
+ dnl
AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
- [am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[[:3]])"`])
+ [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
- dnl Use the values of $prefix and $exec_prefix for the corresponding
- dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made
- dnl distinct variables so they can be overridden if need be. However,
- dnl general consensus is that you shouldn't need this ability.
-
- AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
- AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
-
- dnl At times (like when building shared libraries) you may want
+ dnl At times, e.g., when building shared libraries, you may want
dnl to know which OS platform Python thinks this is.
-
+ dnl
AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
[am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
- # Just factor out some code duplication.
+ dnl emacs-page
+ dnl If --with-python-sys-prefix is given, use the values of sys.prefix
+ dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
+ dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
+ dnl ${exec_prefix} variables.
+ dnl
+ dnl The two are made distinct variables so they can be overridden if
+ dnl need be, although general consensus is that you shouldn't need
+ dnl this separation.
+ dnl
+ dnl Also allow directly setting the prefixes via configure options,
+ dnl overriding any default.
+ dnl
+ if test "x$prefix" = xNONE; then
+ am__usable_prefix=$ac_default_prefix
+ else
+ am__usable_prefix=$prefix
+ fi
+
+ # Allow user to request using sys.* values from Python,
+ # instead of the GNU $prefix values.
+ AC_ARG_WITH([python-sys-prefix],
+ [AS_HELP_STRING([--with-python-sys-prefix],
+ [use Python's sys.prefix and sys.exec_prefix values])],
+ [am_use_python_sys=:],
+ [am_use_python_sys=false])
+
+ # Allow user to override whatever the default Python prefix is.
+ AC_ARG_WITH([python_prefix],
+ [AS_HELP_STRING([--with-python_prefix],
+ [override the default PYTHON_PREFIX])],
+ [am_python_prefix_subst=$withval
+ am_cv_python_prefix=$withval
+ AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
+ AC_MSG_RESULT([$am_cv_python_prefix])],
+ [
+ if $am_use_python_sys; then
+ # using python sys.prefix value, not GNU
+ AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
+ [am_cv_python_prefix],
+ [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`])
+
+ dnl If sys.prefix is a subdir of $prefix, replace the literal value of
+ dnl $prefix with a variable reference so it can be overridden.
+ case $am_cv_python_prefix in
+ $am__usable_prefix*)
+ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
+ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
+ ;;
+ *)
+ am_python_prefix_subst=$am_cv_python_prefix
+ ;;
+ esac
+ else # using GNU prefix value, not python sys.prefix
+ am_python_prefix_subst='${prefix}'
+ am_python_prefix=$am_python_prefix_subst
+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
+ AC_MSG_RESULT([$am_python_prefix])
+ fi])
+ # Substituting python_prefix_subst value.
+ AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
+
+ # emacs-page Now do it all over again for Python exec_prefix, but with yet
+ # another conditional: fall back to regular prefix if that was specified.
+ AC_ARG_WITH([python_exec_prefix],
+ [AS_HELP_STRING([--with-python_exec_prefix],
+ [override the default PYTHON_EXEC_PREFIX])],
+ [am_python_exec_prefix_subst=$withval
+ am_cv_python_exec_prefix=$withval
+ AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
+ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
+ [
+ # no explicit --with-python_exec_prefix, but if
+ # --with-python_prefix was given, use its value for python_exec_prefix too.
+ AS_IF([test -n "$with_python_prefix"],
+ [am_python_exec_prefix_subst=$with_python_prefix
+ am_cv_python_exec_prefix=$with_python_prefix
+ AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
+ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
+ [
+ # Set am__usable_exec_prefix whether using GNU or Python values,
+ # since we use that variable for pyexecdir.
+ if test "x$exec_prefix" = xNONE; then
+ am__usable_exec_prefix=$am__usable_prefix
+ else
+ am__usable_exec_prefix=$exec_prefix
+ fi
+ #
+ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
+ AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
+ [am_cv_python_exec_prefix],
+ [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`])
+ dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
+ dnl literal value of $exec_prefix with a variable reference so it can
+ dnl be overridden.
+ case $am_cv_python_exec_prefix in
+ $am__usable_exec_prefix*)
+ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
+ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
+ ;;
+ *)
+ am_python_exec_prefix_subst=$am_cv_python_exec_prefix
+ ;;
+ esac
+ else # using GNU $exec_prefix, not python sys.exec_prefix
+ am_python_exec_prefix_subst='${exec_prefix}'
+ am_python_exec_prefix=$am_python_exec_prefix_subst
+ AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
+ AC_MSG_RESULT([$am_python_exec_prefix])
+ fi])])
+ # Substituting python_exec_prefix_subst.
+ AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
+
+ # Factor out some code duplication into this shell variable.
am_python_setup_sysconfig="\
import sys
# Prefer sysconfig over distutils.sysconfig, for better compatibility
@@ -132,96 +238,95 @@
except ImportError:
pass"
- dnl Set up 4 directories:
+ dnl emacs-page Set up 4 directories:
- dnl pythondir -- where to install python scripts. This is the
- dnl site-packages directory, not the python standard library
- dnl directory like in previous automake betas. This behavior
- dnl is more consistent with lispdir.m4 for example.
+ dnl 1. pythondir: where to install python scripts. This is the
+ dnl site-packages directory, not the python standard library
+ dnl directory like in previous automake betas. This behavior
+ dnl is more consistent with lispdir.m4 for example.
dnl Query distutils for this directory.
- AC_CACHE_CHECK([for $am_display_PYTHON script directory],
- [am_cv_python_pythondir],
- [if test "x$prefix" = xNONE
- then
- am_py_prefix=$ac_default_prefix
- else
- am_py_prefix=$prefix
- fi
- am_cv_python_pythondir=`$PYTHON -c "
+ dnl
+ AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
+ [am_cv_python_pythondir],
+ [if test "x$am_cv_python_prefix" = x; then
+ am_py_prefix=$am__usable_prefix
+ else
+ am_py_prefix=$am_cv_python_prefix
+ fi
+ am_cv_python_pythondir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
- sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+ sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
sys.stdout.write(sitedir)"`
- case $am_cv_python_pythondir in
- $am_py_prefix*)
- am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
- am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,$PYTHON_PREFIX,"`
- ;;
- *)
- case $am_py_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pythondir=$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
+ #
+ case $am_cv_python_pythondir in
+ $am_py_prefix*)
+ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
+ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
+ ;;
+ *)
+ case $am_py_prefix in
+ /usr|/System*) ;;
+ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+ ;;
esac
- ])
+ ;;
+ esac
+ ])
AC_SUBST([pythondir], [$am_cv_python_pythondir])
- dnl pkgpythondir -- $PACKAGE directory under pythondir. Was
- dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
- dnl more consistent with the rest of automake.
-
+ dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was
+ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
+ dnl more consistent with the rest of automake.
+ dnl
AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
- dnl pyexecdir -- directory for installing python extension modules
- dnl (shared libraries)
+ dnl 3. pyexecdir: directory for installing python extension modules
+ dnl (shared libraries).
dnl Query distutils for this directory.
- AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
- [am_cv_python_pyexecdir],
- [if test "x$exec_prefix" = xNONE
- then
- am_py_exec_prefix=$am_py_prefix
- else
- am_py_exec_prefix=$exec_prefix
- fi
- am_cv_python_pyexecdir=`$PYTHON -c "
+ dnl
+ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)],
+ [am_cv_python_pyexecdir],
+ [if test "x$am_cv_python_exec_prefix" = x; then
+ am_py_exec_prefix=$am__usable_exec_prefix
+ else
+ am_py_exec_prefix=$am_cv_python_exec_prefix
+ fi
+ am_cv_python_pyexecdir=`$PYTHON -c "
$am_python_setup_sysconfig
if can_use_sysconfig:
- sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+ sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'})
else:
- from distutils import sysconfig
- sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+ from distutils import sysconfig
+ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
sys.stdout.write(sitedir)"`
- case $am_cv_python_pyexecdir in
- $am_py_exec_prefix*)
- am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
- am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,$PYTHON_EXEC_PREFIX,"`
- ;;
- *)
- case $am_py_exec_prefix in
- /usr|/System*) ;;
- *)
- am_cv_python_pyexecdir=$PYTHON_EXEC_PREFIX/lib/python$PYTHON_VERSION/site-packages
- ;;
- esac
- ;;
+ #
+ case $am_cv_python_pyexecdir in
+ $am_py_exec_prefix*)
+ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
+ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
+ ;;
+ *)
+ case $am_py_exec_prefix in
+ /usr|/System*) ;;
+ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
+ ;;
esac
- ])
+ ;;
+ esac
+ ])
AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
- dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
-
+ dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
+ dnl
AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
dnl Run any user-specified action.
$2
fi
-
])
@@ -1,125 +0,0 @@
From 81a33ea5e1b86d586b956e893a5b25c4cd41c969 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= <dev@ingo-kloecker.de>
Date: Sat, 26 Jun 2021 18:02:47 +0200
Subject: [PATCH] core: Fix use-after-free issue in test
* tests/gpg/t-edit-sign.c (sign_key, verify_key_signature): New.
(main): Factored out signing and verifying the result.
--
Factoring the two steps of the test into different functions fixes the
use-after-free issue that was caused by accidentaly using a variable
of the first step in the second step.
GnuPG-bug-id: 5509
---
tests/gpg/t-edit-sign.c | 54 ++++++++++++++++++++++++++++-------------
1 file changed, 37 insertions(+), 17 deletions(-)
diff --git a/tests/gpg/t-edit-sign.c b/tests/gpg/t-edit-sign.c
index 2f983622..e0494c54 100644
--- a/tests/gpg/t-edit-sign.c
+++ b/tests/gpg/t-edit-sign.c
@@ -107,31 +107,19 @@ interact_fnc (void *opaque, const char *status, const char *args, int fd)
}
-int
-main (int argc, char **argv)
+void
+sign_key (const char *key_fpr, const char *signer_fpr)
{
gpgme_ctx_t ctx;
gpgme_error_t err;
gpgme_data_t out = NULL;
- const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */
gpgme_key_t signing_key = NULL;
- const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */
gpgme_key_t key = NULL;
- gpgme_key_t signed_key = NULL;
- gpgme_user_id_t signed_uid = NULL;
- gpgme_key_sig_t key_sig = NULL;
char *agent_info;
- int mode;
-
- (void)argc;
- (void)argv;
-
- init_gpgme (GPGME_PROTOCOL_OpenPGP);
err = gpgme_new (&ctx);
fail_if_err (err);
- /* Sign the key */
agent_info = getenv("GPG_AGENT_INFO");
if (!(agent_info && strchr (agent_info, ':')))
gpgme_set_passphrase_cb (ctx, passphrase_cb, 0);
@@ -159,8 +147,23 @@ main (int argc, char **argv)
gpgme_data_release (out);
gpgme_key_unref (key);
gpgme_key_unref (signing_key);
+ gpgme_release (ctx);
+}
+
+
+void
+verify_key_signature (const char *key_fpr, const char *signer_keyid)
+{
+ gpgme_ctx_t ctx;
+ gpgme_error_t err;
+ gpgme_key_t signed_key = NULL;
+ gpgme_user_id_t signed_uid = NULL;
+ gpgme_key_sig_t key_sig = NULL;
+ int mode;
+
+ err = gpgme_new (&ctx);
+ fail_if_err (err);
- /* Verify the key signature */
mode = gpgme_get_keylist_mode (ctx);
mode |= GPGME_KEYLIST_MODE_SIGS;
err = gpgme_set_keylist_mode (ctx, mode);
@@ -168,7 +171,7 @@ main (int argc, char **argv)
err = gpgme_get_key (ctx, key_fpr, &signed_key, 0);
fail_if_err (err);
- signed_uid = key->uids;
+ signed_uid = signed_key->uids;
if (!signed_uid)
{
fprintf (stderr, "Signed key has no user IDs\n");
@@ -180,7 +183,7 @@ main (int argc, char **argv)
exit (1);
}
key_sig = signed_uid->signatures->next;
- if (strcmp ("2D727CC768697734", key_sig->keyid))
+ if (strcmp (signer_keyid, key_sig->keyid))
{
fprintf (stderr, "Unexpected key ID in second user ID sig: %s\n",
key_sig->keyid);
@@ -196,6 +199,23 @@ main (int argc, char **argv)
gpgme_key_unref (signed_key);
gpgme_release (ctx);
+}
+
+
+int
+main (int argc, char **argv)
+{
+ const char *signer_fpr = "A0FF4590BB6122EDEF6E3C542D727CC768697734"; /* Alpha Test */
+ const char *signer_keyid = signer_fpr + strlen(signer_fpr) - 16;
+ const char *key_fpr = "D695676BDCEDCC2CDD6152BCFE180B1DA9E3B0B2"; /* Bravo Test */
+
+ (void)argc;
+ (void)argv;
+
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+ sign_key (key_fpr, signer_fpr);
+ verify_key_signature (key_fpr, signer_keyid);
return 0;
}
--
2.32.0
@@ -24,7 +24,7 @@
}:
let
version = "3.2.0";
version = "3.3.2";
inherit (lib) optional optionals optionalString;
mesonFeatureFlag = opt: b:
"-D${opt}=${if b then "enabled" else "disabled"}";
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
owner = "harfbuzz";
repo = "harfbuzz";
rev = version;
sha256 = "sha256-iNYp/hyJTaaF6e09YpUL7ktBhq2wRN9zKiEH59WLbYU=";
sha256 = "sha256-UbYqV7Ch9ugTIwSsCpjnS8H7tcv4P3OVpFDFDZtQCk0=";
};
postPatch = ''
@@ -1 +1 @@
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.90/ -A '*.tar.xz' )
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.91/ -A '*.tar.xz' )
@@ -13,18 +13,18 @@ diff --git a/src/client.cpp b/src/client.cpp
index 44fbacd..6b5abf5 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -378,11 +378,14 @@ int KDEsuClient::stopServer()
@@ -384,11 +384,14 @@ int KDEsuClient::stopServer()
static QString findDaemon()
{
- QString daemon = QFile::decodeName(KDE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
- QString daemon = QFile::decodeName(KDE_INSTALL_FULL_LIBEXECDIR_KF "/kdesud");
- if (!QFile::exists(daemon)) { // if not in libexec, find it in PATH
- daemon = QStandardPaths::findExecutable(QStringLiteral("kdesud"));
- if (daemon.isEmpty()) {
- qCWarning(KSU_LOG) << "kdesud daemon not found.";
+ QString daemon = QFile::decodeName("/run/wrappers/bin/kdesud");
+ if (!QFile::exists(daemon)) { // if not in wrappers
+ daemon = QFile::decodeName(KDE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
+ daemon = QFile::decodeName(KDE_INSTALL_FULL_LIBEXECDIR_KF "/kdesud");
+ if (!QFile::exists(daemon)) { // if not in libexec, find it in PATH
+ daemon = QStandardPaths::findExecutable(QStringLiteral("kdesud"));
+ if (daemon.isEmpty()) {
+332 -332
View File
@@ -4,667 +4,667 @@
{
attica = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/attica-5.90.0.tar.xz";
sha256 = "0zs37qyh9biafk76ps2xfc41hbd1n4dq42qqqcvbqcrwfgqz2wlk";
name = "attica-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/attica-5.91.0.tar.xz";
sha256 = "0svvy7qflidwxns12y2lra54gg6lhglcddzmrw7ccvbdyqcy2pn0";
name = "attica-5.91.0.tar.xz";
};
};
baloo = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/baloo-5.90.0.tar.xz";
sha256 = "1nnfys8dyiivd2if81qrgrmpprfni77an9l3wff0l5k85ac86i56";
name = "baloo-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/baloo-5.91.0.tar.xz";
sha256 = "1cqjbaiwqba707xaz9zsrdz9cms2mdrhv6jpwsq8q7f4g4rxcx3m";
name = "baloo-5.91.0.tar.xz";
};
};
bluez-qt = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/bluez-qt-5.90.0.tar.xz";
sha256 = "056i5ndrg5fqm1bx49a0plfhlladphha128wi766zdhcm6np11z3";
name = "bluez-qt-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/bluez-qt-5.91.0.tar.xz";
sha256 = "0p37jrmppwahh4vaq3wkw6xn0ms8dxcxpfd4glzjlnw426zrwnjr";
name = "bluez-qt-5.91.0.tar.xz";
};
};
breeze-icons = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/breeze-icons-5.90.0.tar.xz";
sha256 = "06dfh571rf8gp4gnnqn13xqgc1bpc4ycn6bmxf38x53fxxfl3fnn";
name = "breeze-icons-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/breeze-icons-5.91.0.tar.xz";
sha256 = "0aj24gn48c17n9jzrj0az04ph4hpx7zf2rj4vgwl19iip69vfzf1";
name = "breeze-icons-5.91.0.tar.xz";
};
};
extra-cmake-modules = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/extra-cmake-modules-5.90.0.tar.xz";
sha256 = "1c5wza7srib3mdkf29ygmyj5b6jq322s6h7k5hlljqm5xhy7q07k";
name = "extra-cmake-modules-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/extra-cmake-modules-5.91.0.tar.xz";
sha256 = "0k65rvxh926ya6qahzk2ns7g1fya1429648mlx7iipxa61g8h5wp";
name = "extra-cmake-modules-5.91.0.tar.xz";
};
};
frameworkintegration = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/frameworkintegration-5.90.0.tar.xz";
sha256 = "1v7vlq2gk7j5b6gzbawgnpii7csh2zclp5v24qhx4qrmpfssylan";
name = "frameworkintegration-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/frameworkintegration-5.91.0.tar.xz";
sha256 = "1176ql8f96ap4gzjaj8vm4cr6f2rsx9z93gpc4hx4jcqjhxqrg3z";
name = "frameworkintegration-5.91.0.tar.xz";
};
};
kactivities = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kactivities-5.90.0.tar.xz";
sha256 = "0wf7nnf3bjz2iq2wqxnyay1100ks0zscsh7sa8xfcijrl7pp305w";
name = "kactivities-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kactivities-5.91.0.tar.xz";
sha256 = "03y4hx7jgrhac12ys8pm22h0f49kms8b71gck4xv577p3ywi3j60";
name = "kactivities-5.91.0.tar.xz";
};
};
kactivities-stats = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kactivities-stats-5.90.0.tar.xz";
sha256 = "0qamy8xggjlnm8pkv6vxbaagcp1hg9vgi2ws2yb9xpqk8mdlfbvp";
name = "kactivities-stats-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kactivities-stats-5.91.0.tar.xz";
sha256 = "0864qfljh20723djfzdv8h6nipw01825lhiknyqz17aj2x2ymzcq";
name = "kactivities-stats-5.91.0.tar.xz";
};
};
kapidox = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kapidox-5.90.0.tar.xz";
sha256 = "16jl519sx7pirjp5x57x5gbgv477457063rrbwpvyf2ldb6lc29p";
name = "kapidox-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kapidox-5.91.0.tar.xz";
sha256 = "1xxpl8rn49d2cr7ld94j3wsg21019l2kq14p5bvilisnj3salka3";
name = "kapidox-5.91.0.tar.xz";
};
};
karchive = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/karchive-5.90.0.tar.xz";
sha256 = "0411rpgr9dy0zf9mmhj7n7ax0afrn7zvkpzpnjvpvvqsrfkz7qm6";
name = "karchive-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/karchive-5.91.0.tar.xz";
sha256 = "1kjc47zzdd9jhcmynq6zw6y6zaj2c1i8pxvszx3d9x5asaz2qq53";
name = "karchive-5.91.0.tar.xz";
};
};
kauth = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kauth-5.90.0.tar.xz";
sha256 = "1g4i1prspcczpx25wvd8lgdk8c3my7kp3wv489gvcci40rl5z913";
name = "kauth-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kauth-5.91.0.tar.xz";
sha256 = "001svdyvs8qc6h8zkb9x072npkz6xabz6j0djjb380gl9h9wnrgq";
name = "kauth-5.91.0.tar.xz";
};
};
kbookmarks = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kbookmarks-5.90.0.tar.xz";
sha256 = "1svc1i9zxbxf65crfhnv6sz5gknb7x87lzjd8cn11y5lwnsw36kx";
name = "kbookmarks-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kbookmarks-5.91.0.tar.xz";
sha256 = "0iqfngsvpbgxk6h8l68idcp97df28sa2zwj707zs0mf2bl9k68m4";
name = "kbookmarks-5.91.0.tar.xz";
};
};
kcalendarcore = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcalendarcore-5.90.0.tar.xz";
sha256 = "0qbds2ysjv9rqwpvrhisvdd6wyhq5qwhbw5xcbj7ndxwpf8lpa8w";
name = "kcalendarcore-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcalendarcore-5.91.0.tar.xz";
sha256 = "0gkn0mzk3za86pjrpi8gd9d71bfv0ihzkgn8yy1ik3dw1rf9gxip";
name = "kcalendarcore-5.91.0.tar.xz";
};
};
kcmutils = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcmutils-5.90.0.tar.xz";
sha256 = "04crq3j48xwlvp047p3waqrv1gg5sv1950jh02w85q00yjjh0qxk";
name = "kcmutils-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcmutils-5.91.0.tar.xz";
sha256 = "009r9r7fz1588g2cnqw585d2fz170x8j8bip1zqr7i4jl21ms68s";
name = "kcmutils-5.91.0.tar.xz";
};
};
kcodecs = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcodecs-5.90.0.tar.xz";
sha256 = "0kwqyhjs63pqslqcmv3sngyqvl6ah8iaa6nn045sb8a58xb09inh";
name = "kcodecs-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcodecs-5.91.0.tar.xz";
sha256 = "0qkwvbp4vp3w57f3fyjknxd66qac77hl77mf042c7jxjl5vq7h1y";
name = "kcodecs-5.91.0.tar.xz";
};
};
kcompletion = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcompletion-5.90.0.tar.xz";
sha256 = "0hd3nsixibw5z846mpib2lap3ar65rqvasifdnlmqsrvxfmw0ggk";
name = "kcompletion-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcompletion-5.91.0.tar.xz";
sha256 = "1l6z85a4rh3vrf4x5g3pqvp0q36gwmw0fbp9ny1iaqyy21dlh8i4";
name = "kcompletion-5.91.0.tar.xz";
};
};
kconfig = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kconfig-5.90.0.tar.xz";
sha256 = "0yqs3ydxzhhb7rrl01swjc9xw8j1bs3n204bf9slb2bs7lfz56rn";
name = "kconfig-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kconfig-5.91.0.tar.xz";
sha256 = "0axdnqipa8xgx864zylxllnzchlp50q59bbfw3c98svvvkm3yg56";
name = "kconfig-5.91.0.tar.xz";
};
};
kconfigwidgets = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kconfigwidgets-5.90.0.tar.xz";
sha256 = "1sm1x64x2v3xfcz9ia6qk8d8y1q02fggrc2q0yy5ag5xh1yr9zwq";
name = "kconfigwidgets-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kconfigwidgets-5.91.0.tar.xz";
sha256 = "01mvv01hv64wadjh8xk3hhp1vbs04cvbrjpfl1g9cv2sa6hr7102";
name = "kconfigwidgets-5.91.0.tar.xz";
};
};
kcontacts = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcontacts-5.90.0.tar.xz";
sha256 = "0vv2136da5a6lwdj2x38jx2qwrk96hgn8iwaad4yynvc2csx6dim";
name = "kcontacts-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcontacts-5.91.0.tar.xz";
sha256 = "1c839c9rvys3jwmi3fzw06r1nhgvrb4z8sdh8gda0w03vqh7h1hv";
name = "kcontacts-5.91.0.tar.xz";
};
};
kcoreaddons = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcoreaddons-5.90.0.tar.xz";
sha256 = "02m4h4r0kdy94zq8c6d2fhnd8qwrp4a0v5i4wf6khk4yf4fqy5kf";
name = "kcoreaddons-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcoreaddons-5.91.0.tar.xz";
sha256 = "16vimllvcs6rnb1ccbv9zg8hxbzacisgrlffyvwm608f4q1xmqyz";
name = "kcoreaddons-5.91.0.tar.xz";
};
};
kcrash = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kcrash-5.90.0.tar.xz";
sha256 = "0634jqzbvr8xkv53n2q3fcqlkcmq843w7g455v3swnlaqi92l04f";
name = "kcrash-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kcrash-5.91.0.tar.xz";
sha256 = "0gdknmp5a36ipvzms4jhxywyxpjh0vy26861c54jfsk13yircjal";
name = "kcrash-5.91.0.tar.xz";
};
};
kdav = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kdav-5.90.0.tar.xz";
sha256 = "0181ray8vigmwlamx4j5dinw10al0g4l965kyx4wjq9k59nxxgbi";
name = "kdav-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kdav-5.91.0.tar.xz";
sha256 = "026w3bk2lmc7lqzra8w9jq8i2l1hvqsxz36r1jzj9p01skhdm32v";
name = "kdav-5.91.0.tar.xz";
};
};
kdbusaddons = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kdbusaddons-5.90.0.tar.xz";
sha256 = "0g609bymfixwaic30y7i0q96anf7pi3galipmjbbfg85ghj9rsa4";
name = "kdbusaddons-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kdbusaddons-5.91.0.tar.xz";
sha256 = "18qhpj0s4abypkb8ix2d84wv1kqv6qxyblninn2f9hjkl2dnlwis";
name = "kdbusaddons-5.91.0.tar.xz";
};
};
kdeclarative = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kdeclarative-5.90.0.tar.xz";
sha256 = "1z7zyj6pw2ym3izi19kpgy12mqpar6mbdbsn6jpxy36l6m3jld1y";
name = "kdeclarative-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kdeclarative-5.91.0.tar.xz";
sha256 = "183df5c0xyjqsip0izqvvk4wy2bjb973900s1wqsldhhvc7gpf7z";
name = "kdeclarative-5.91.0.tar.xz";
};
};
kded = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kded-5.90.0.tar.xz";
sha256 = "094g6p87nd5cxcars71315w6zrxjgiw2080p6cf6g72ww54k7sps";
name = "kded-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kded-5.91.0.tar.xz";
sha256 = "1zi0sixlzaxvw4lfil2r36i3xrav3vfwxp2r1lp4n65dpl7nv7p5";
name = "kded-5.91.0.tar.xz";
};
};
kdelibs4support = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kdelibs4support-5.90.0.tar.xz";
sha256 = "0zxc11jbg06qz79ljrd6wl36jp73hafcmbk29d0hcvxnkscg3k29";
name = "kdelibs4support-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kdelibs4support-5.91.0.tar.xz";
sha256 = "1373fi9vi7ki8frr0lsw6yp335i95v8yq2j41s7ip003dpy4hr2g";
name = "kdelibs4support-5.91.0.tar.xz";
};
};
kdesignerplugin = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kdesignerplugin-5.90.0.tar.xz";
sha256 = "18gsy8f32hjadzjnavi3dsknc6hflcnfpr0107lwfc735fd2x2iq";
name = "kdesignerplugin-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kdesignerplugin-5.91.0.tar.xz";
sha256 = "07lvvryc3k418hd0j7ddlqhid26c51isa8mvk7g6gd0v2x3gp76q";
name = "kdesignerplugin-5.91.0.tar.xz";
};
};
kdesu = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kdesu-5.90.0.tar.xz";
sha256 = "1q8k2q7c41fzw9gwx9nq4zjpjdwvh29zyh3zd0w3r2kxf6vhf1wp";
name = "kdesu-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kdesu-5.91.0.tar.xz";
sha256 = "1wj099w810dabqn43pqis4sism3zwq3d1qa9mvcdyjafqbl7xnjm";
name = "kdesu-5.91.0.tar.xz";
};
};
kdewebkit = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kdewebkit-5.90.0.tar.xz";
sha256 = "19dqlxy2sl822aldqy1jj7fvxabmg97a0av7d5ayzhnbhhy5izx1";
name = "kdewebkit-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kdewebkit-5.91.0.tar.xz";
sha256 = "1mln0w1dzrbpm373vfpcyss4xxnrfgwh9nhzr8wmzs8965bn3wqq";
name = "kdewebkit-5.91.0.tar.xz";
};
};
kdnssd = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kdnssd-5.90.0.tar.xz";
sha256 = "17szlqsafz6p4h7s9wascaggn5909c1ig452wy6y4z4402s2lsrr";
name = "kdnssd-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kdnssd-5.91.0.tar.xz";
sha256 = "1smzwh7lvz8g7vydxnd2kkh0ymg7yp6akc7k2vg8q65pa6pxqn3g";
name = "kdnssd-5.91.0.tar.xz";
};
};
kdoctools = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kdoctools-5.90.0.tar.xz";
sha256 = "1l2a9mlcm8np3s8myq0hj08l82284r90yhx3z2gn7h68b8fzyx0s";
name = "kdoctools-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kdoctools-5.91.0.tar.xz";
sha256 = "02lr4l4n5gnv7ffzml8lbrdwgfpq6m7ayhz3bdqqijdfvw6h283n";
name = "kdoctools-5.91.0.tar.xz";
};
};
kemoticons = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kemoticons-5.90.0.tar.xz";
sha256 = "08mgk56dafj3q9gs69qcx17qfc45s8ifkjrpzg44p8zs0q51q6cb";
name = "kemoticons-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kemoticons-5.91.0.tar.xz";
sha256 = "1jznkiq87rkndv10xs6974b5k0v82ly32agy5acxc2xy9wq7la0h";
name = "kemoticons-5.91.0.tar.xz";
};
};
kfilemetadata = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kfilemetadata-5.90.0.tar.xz";
sha256 = "18y4bn6hz8xa68m0nxv88a1f3xkkks7c7pbiqb1vkrp9bbh52yax";
name = "kfilemetadata-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kfilemetadata-5.91.0.tar.xz";
sha256 = "1z030irzcvmjq329nwfk3h8cd51dwy9mppnwbgcd0lw6y3bka0rq";
name = "kfilemetadata-5.91.0.tar.xz";
};
};
kglobalaccel = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kglobalaccel-5.90.0.tar.xz";
sha256 = "04qd1fcc22x70jacqzrv44q1jg5ldzynlfpw5cg2679409r0wnxw";
name = "kglobalaccel-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kglobalaccel-5.91.0.tar.xz";
sha256 = "09wscg6f19sh314ywpxp47pdr1xf1wzpjchg9rcjg207zrfhqqf0";
name = "kglobalaccel-5.91.0.tar.xz";
};
};
kguiaddons = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kguiaddons-5.90.0.tar.xz";
sha256 = "0m9l8xyc7xyj29fzxwp8ahr2l1rzs5rw1c26x446kb7smxvy8awx";
name = "kguiaddons-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kguiaddons-5.91.0.tar.xz";
sha256 = "0gn8lvpm4i11s5vavlpm162bizjkmh5cb4dhj3p34dlp4vcc4mky";
name = "kguiaddons-5.91.0.tar.xz";
};
};
kholidays = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kholidays-5.90.0.tar.xz";
sha256 = "1p1kgy110ijk5a3ix4g9y1i7w0gsnzf82jdkwbdza95vibm82iz8";
name = "kholidays-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kholidays-5.91.0.tar.xz";
sha256 = "165vfmi5y8l00ng494469w5s1gjnf9zkggqrzmq65dfkdis3amdm";
name = "kholidays-5.91.0.tar.xz";
};
};
khtml = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/khtml-5.90.0.tar.xz";
sha256 = "1bi839x4dhlkqxmv98pq01725b8i8szdxf9b1hf1jv37fk468mja";
name = "khtml-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/khtml-5.91.0.tar.xz";
sha256 = "1ldkk1f954mmgz30vqa895z1nw2jaknnb53lsd5vqxzxi3cmc054";
name = "khtml-5.91.0.tar.xz";
};
};
ki18n = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/ki18n-5.90.0.tar.xz";
sha256 = "13k8kbkmgdywclcdbfj5ri3gmdblv8yzalmvqd0hn7sym6pkdqfw";
name = "ki18n-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/ki18n-5.91.0.tar.xz";
sha256 = "11gdd2gvzsz3r8zvqbxxwbpwjvjwnzzhzyrd4spbpdy0w7j8n6ly";
name = "ki18n-5.91.0.tar.xz";
};
};
kiconthemes = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kiconthemes-5.90.0.tar.xz";
sha256 = "0w3wi4xy1yy2s1a927cj4my63q0fqhw06ghy9zjw830m31xwpx1k";
name = "kiconthemes-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kiconthemes-5.91.0.tar.xz";
sha256 = "1khh4ngivwdj9rxxcpx08ka8anskc9i1z9n2zijp4m5ix8mmj3c2";
name = "kiconthemes-5.91.0.tar.xz";
};
};
kidletime = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kidletime-5.90.0.tar.xz";
sha256 = "1xzwmk0aqv1lcdi51nl1k0lyiinnqxwla6w0xxmsh6193qa3fpvq";
name = "kidletime-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kidletime-5.91.0.tar.xz";
sha256 = "12qmiwc8p3izj1y5h0rndj2s496ckm1p85dv4g51zbpg7m8a48qv";
name = "kidletime-5.91.0.tar.xz";
};
};
kimageformats = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kimageformats-5.90.0.tar.xz";
sha256 = "0r3ihkly0hf20aqbn7b9171mzqjna078rksdp96z6f7f1qy99v1v";
name = "kimageformats-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kimageformats-5.91.0.tar.xz";
sha256 = "0df8in33xwajqay487w0hjfsplz8y51w9sjb75na7yqsn75p38xb";
name = "kimageformats-5.91.0.tar.xz";
};
};
kinit = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kinit-5.90.0.tar.xz";
sha256 = "0z65hfhj68ahjm558p2pj7dlrczcww8f2xyw9f44w10bp3p5hf1a";
name = "kinit-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kinit-5.91.0.tar.xz";
sha256 = "1y62k24mwzbg4gchvjb8wn6ygq57wc72clb3jgyipw034czdihvi";
name = "kinit-5.91.0.tar.xz";
};
};
kio = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kio-5.90.0.tar.xz";
sha256 = "0ds6465fyzjj2azwdghrkxr9wvih0m96lv4kp6syqwii8nv2w7rs";
name = "kio-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kio-5.91.0.tar.xz";
sha256 = "14v28qilb5ayv9shw86hb88k60nr4bbd2pa4vwsqij9xkwlympgj";
name = "kio-5.91.0.tar.xz";
};
};
kirigami2 = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kirigami2-5.90.0.tar.xz";
sha256 = "0r48n11pv3yqsf11phl19cs52ph5ldabrfmq3xmsvxsknm6c4f9b";
name = "kirigami2-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kirigami2-5.91.0.tar.xz";
sha256 = "0ifljwa6hli2rndfadpzs30dpwc99nnvcm3yi9j5dim2bdf6glwc";
name = "kirigami2-5.91.0.tar.xz";
};
};
kitemmodels = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kitemmodels-5.90.0.tar.xz";
sha256 = "0f7zlif7kskbwpw8yrzlfyl954b623icdd9qn0algjcc2i9gqbzi";
name = "kitemmodels-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kitemmodels-5.91.0.tar.xz";
sha256 = "189kgrw2vjr9067mqr4f2sv06xmnjaapry0bf8s41v6r9v7py708";
name = "kitemmodels-5.91.0.tar.xz";
};
};
kitemviews = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kitemviews-5.90.0.tar.xz";
sha256 = "10s285vxaaxjcy3am4bvch5wd7wv64wwcjvj7lqk2866aql9hmzp";
name = "kitemviews-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kitemviews-5.91.0.tar.xz";
sha256 = "16cm4zmv1ngrsmy6k0ybv5wxd0g8cc8zwq6ab7jvs7a04sykv238";
name = "kitemviews-5.91.0.tar.xz";
};
};
kjobwidgets = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kjobwidgets-5.90.0.tar.xz";
sha256 = "1jv3c68mlsxhnd6jgqw5d4qqd66jf8bh6zbcs6bq0bad52ad2r8d";
name = "kjobwidgets-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kjobwidgets-5.91.0.tar.xz";
sha256 = "14pkyd6j78kignr62xfkvpyi2fwvzcvcsdnn23h8jxkhwm2ri42v";
name = "kjobwidgets-5.91.0.tar.xz";
};
};
kjs = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kjs-5.90.0.tar.xz";
sha256 = "1z5d1ixzvaq6x9x0jhmh5bdrdqpsl1x7mh3s8wnycfxwmln6bawv";
name = "kjs-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kjs-5.91.0.tar.xz";
sha256 = "0jbwlnmf8whzgjkrbnsvdsnn3kv0h44ghf63m2qcgg2l9wb0j8rj";
name = "kjs-5.91.0.tar.xz";
};
};
kjsembed = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kjsembed-5.90.0.tar.xz";
sha256 = "0ydrsg7z1b5hkskjvkb0b9lhx60aqcby2alhfbmkac197sf2frn4";
name = "kjsembed-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kjsembed-5.91.0.tar.xz";
sha256 = "124y7518jhjg3y2x7bcyl6b3c0bfxfbgd2sz6dwk45y4byx7rl60";
name = "kjsembed-5.91.0.tar.xz";
};
};
kmediaplayer = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kmediaplayer-5.90.0.tar.xz";
sha256 = "010m5qrn41hcxsmxsq72m83qxikfvn3mgibkgy4bn2x8kxibzmlq";
name = "kmediaplayer-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kmediaplayer-5.91.0.tar.xz";
sha256 = "0rn9azrj8k1m67y9ni0f3nwl9ldf1ksiqv6dgnzrx6xh0rxfm2h1";
name = "kmediaplayer-5.91.0.tar.xz";
};
};
knewstuff = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/knewstuff-5.90.0.tar.xz";
sha256 = "0q30p7z5zg3p24gp8q83i7my5bg4yfcdwsblmhl230kih8aap2cg";
name = "knewstuff-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/knewstuff-5.91.0.tar.xz";
sha256 = "0akaxi9klmpwn4pyr6ys5sxcapdspldq1f64im7vd6byzqrgpnax";
name = "knewstuff-5.91.0.tar.xz";
};
};
knotifications = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/knotifications-5.90.0.tar.xz";
sha256 = "15qb3jh5y1z84dp6wddwid4bk3ks05knkxlwv79hb9cdj8m4m7gi";
name = "knotifications-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/knotifications-5.91.0.tar.xz";
sha256 = "1207rimq8si1zxnn827631a1hskrd3m3ilgaj3wj859qrbkqmxzm";
name = "knotifications-5.91.0.tar.xz";
};
};
knotifyconfig = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/knotifyconfig-5.90.0.tar.xz";
sha256 = "1qss40sr7az9x4yvl59mblzzgjm3hd8nvxgqmqlylargvggw496c";
name = "knotifyconfig-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/knotifyconfig-5.91.0.tar.xz";
sha256 = "07m5mphd8mrak5sdqlldbcd51946v49xpcwi9fhn7w0kx29hknyf";
name = "knotifyconfig-5.91.0.tar.xz";
};
};
kpackage = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kpackage-5.90.0.tar.xz";
sha256 = "1rig9aws8530sav0pmginqmdcrnz10qjbxfc5lw6mmb3sfig53z0";
name = "kpackage-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kpackage-5.91.0.tar.xz";
sha256 = "12w8lfwifa107wlrld3zz774hczn9mkib6wqxw24yxxmzfw9lc2i";
name = "kpackage-5.91.0.tar.xz";
};
};
kparts = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kparts-5.90.0.tar.xz";
sha256 = "1x8kxd8kgzabd9dyqx2yx1qrrzl1mms4hm3lyg3f1nxki7xl6ra2";
name = "kparts-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kparts-5.91.0.tar.xz";
sha256 = "10ni6b114acjnmrahvvqw75iqkc10ii97y3z7lirj2727a3qmzzj";
name = "kparts-5.91.0.tar.xz";
};
};
kpeople = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kpeople-5.90.0.tar.xz";
sha256 = "1632k365bn9n3n8babq620v0px2hmapk8fprx28xpfp27zakhfgw";
name = "kpeople-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kpeople-5.91.0.tar.xz";
sha256 = "09l2q8cg9p8g7zkd1mjx6x08bqkr4ykxjibskc184asff7v47gvp";
name = "kpeople-5.91.0.tar.xz";
};
};
kplotting = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kplotting-5.90.0.tar.xz";
sha256 = "0i5ganvpzkpkd2p1avw0fpbp3mgbbifg8mmpvdf28ayh75dvrh9y";
name = "kplotting-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kplotting-5.91.0.tar.xz";
sha256 = "0rgmmliw9cfi0j2miszqz2kphqm04r5nfs8dqq6pnvclk1k9kss6";
name = "kplotting-5.91.0.tar.xz";
};
};
kpty = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kpty-5.90.0.tar.xz";
sha256 = "1p5ny9ry0wwwprhpj9s9xg96h9476rldly7mawvfp5q3ihys8c4a";
name = "kpty-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kpty-5.91.0.tar.xz";
sha256 = "1yy1k96kikvvnlyd00krc08ifiqbrz0x5vwv3pgdbpnwgl8p580d";
name = "kpty-5.91.0.tar.xz";
};
};
kquickcharts = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kquickcharts-5.90.0.tar.xz";
sha256 = "1vf9vwrb03z6f19xyc1dc50s3kz21s4mkrv85mmyia0by4qvq5fi";
name = "kquickcharts-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kquickcharts-5.91.0.tar.xz";
sha256 = "1ghiymm257b8xgmkibb7s7bwb28x3zhnrgrrsya47q5njb87h0ck";
name = "kquickcharts-5.91.0.tar.xz";
};
};
kross = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kross-5.90.0.tar.xz";
sha256 = "1gs7h03j753pq78q0fmajgd5pw8j3mc105rsph1c22l23vccya3z";
name = "kross-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kross-5.91.0.tar.xz";
sha256 = "06f8220jmvjsfbzjkr2ybwicwjffbi3yw9sr3bcyrilchrrpgqal";
name = "kross-5.91.0.tar.xz";
};
};
krunner = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/krunner-5.90.0.tar.xz";
sha256 = "1q3hsml5274v8dy8rnqpnwxliad2q7a8mbs8k6kpqzih9z94crgi";
name = "krunner-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/krunner-5.91.0.tar.xz";
sha256 = "17iaw55rkzyfpgkbw2an6pa4wid79b0dnb3310vfaq0xkm0gjxq6";
name = "krunner-5.91.0.tar.xz";
};
};
kservice = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kservice-5.90.0.tar.xz";
sha256 = "121y8bbq3m4pv5m9pj753v2nk914216a86ksmdqbgffw217qckdd";
name = "kservice-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kservice-5.91.0.tar.xz";
sha256 = "0m4j7djiyapi1hm23lz9nd238rrlldxlggzkqq056z486v2137bp";
name = "kservice-5.91.0.tar.xz";
};
};
ktexteditor = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/ktexteditor-5.90.0.tar.xz";
sha256 = "1g1dky9bgr2zjr0rw9c730shz588ykyw7qw3sgf0dr3sh8aq222n";
name = "ktexteditor-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/ktexteditor-5.91.0.tar.xz";
sha256 = "1bkz6v1y5vyxav398a6224ldqa9pqhbad3vmhxrjb2hxcbha2cpm";
name = "ktexteditor-5.91.0.tar.xz";
};
};
ktextwidgets = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/ktextwidgets-5.90.0.tar.xz";
sha256 = "02g85zahh6hfsw3fcac7hp8kv4d1ha2asmmhnknqd054yl0adxjg";
name = "ktextwidgets-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/ktextwidgets-5.91.0.tar.xz";
sha256 = "0xmzrak5mwg1l4v38g14i7j1yr3j6sj13q2iqa433hs5agl6l6n4";
name = "ktextwidgets-5.91.0.tar.xz";
};
};
kunitconversion = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kunitconversion-5.90.0.tar.xz";
sha256 = "1vrvbsd8limfsmgjcv5kvzyf7g62rv1a0rvbdyq15z23zf4rsmf3";
name = "kunitconversion-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kunitconversion-5.91.0.tar.xz";
sha256 = "0n2v0f08s71z2imhn41jkm2knjvk7bkwmcz70gs8h97ykrj6niap";
name = "kunitconversion-5.91.0.tar.xz";
};
};
kwallet = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kwallet-5.90.0.tar.xz";
sha256 = "06ffg84jvrc8xhymg1g5j311vq3ajfqg3arx2cxa98aqld213akl";
name = "kwallet-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kwallet-5.91.0.tar.xz";
sha256 = "1z1qb6a2b5rqj7js88ms8n67fbs885pw6djbf1l86na2zhf0adip";
name = "kwallet-5.91.0.tar.xz";
};
};
kwayland = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kwayland-5.90.0.tar.xz";
sha256 = "0n7f4rx695q889j8g4sdpdi3jhk29z8zc4wrk5srs2diqi4y0qqi";
name = "kwayland-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kwayland-5.91.0.tar.xz";
sha256 = "1a03ckacp39lpsqyykkm6lxajxm71s6ifpzgj8q0a37v75jzmz9y";
name = "kwayland-5.91.0.tar.xz";
};
};
kwidgetsaddons = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kwidgetsaddons-5.90.0.tar.xz";
sha256 = "1c17iq0q2w80p7v7k32db0pc5sbzqhvh0w5d145a1nkgr3nbnk6a";
name = "kwidgetsaddons-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kwidgetsaddons-5.91.0.tar.xz";
sha256 = "03pj98sgybkcz487vr774x05w46imnipq2794nkv426nnhyxrd73";
name = "kwidgetsaddons-5.91.0.tar.xz";
};
};
kwindowsystem = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kwindowsystem-5.90.0.tar.xz";
sha256 = "0fj7a86dk833ld76c3b1s4ri47bhpvjsi6ryfgdv5q7h2fwh6ia5";
name = "kwindowsystem-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kwindowsystem-5.91.0.tar.xz";
sha256 = "1yy02fvfabrsvdpmrkdnjdsdd3d2crxavsl47si6ry8fdxb90y95";
name = "kwindowsystem-5.91.0.tar.xz";
};
};
kxmlgui = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/kxmlgui-5.90.0.tar.xz";
sha256 = "1q8v1wrx67c37jnd874ilkk8kfk3zvf3f86qg51k16ml0nrwjysg";
name = "kxmlgui-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/kxmlgui-5.91.0.tar.xz";
sha256 = "1qww2isx99lx0mn1dv0vzrvmr2xdp8zgikyvgw1wf8hfay3v2s1g";
name = "kxmlgui-5.91.0.tar.xz";
};
};
kxmlrpcclient = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/portingAids/kxmlrpcclient-5.90.0.tar.xz";
sha256 = "0mq2wgi4qnvscjdkis7jhs004k3s1b3wg0vijjai7xzy772kvclc";
name = "kxmlrpcclient-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/portingAids/kxmlrpcclient-5.91.0.tar.xz";
sha256 = "1bnymf5wq4apjsgshvbhcggdw7jc0yxv4jag3k19ff9820lskhph";
name = "kxmlrpcclient-5.91.0.tar.xz";
};
};
modemmanager-qt = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/modemmanager-qt-5.90.0.tar.xz";
sha256 = "08nlvg5lwvl3rspi848gp2b2b5pki6sy8c3ww9nn4afy4lk7p609";
name = "modemmanager-qt-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/modemmanager-qt-5.91.0.tar.xz";
sha256 = "15l46lkh8nkal1nai494dabaysy581jzi8nwrv4kjvc6qwc3yrx2";
name = "modemmanager-qt-5.91.0.tar.xz";
};
};
networkmanager-qt = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/networkmanager-qt-5.90.0.tar.xz";
sha256 = "0i9wvrxbkbil21zndiq4cmnldbqsrdp9gnhmp2ns78xdih8wysa7";
name = "networkmanager-qt-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/networkmanager-qt-5.91.0.tar.xz";
sha256 = "0f27qin2ks3q7rin53sk9vjjnadjnax99d9k245sjr6fjpczy81f";
name = "networkmanager-qt-5.91.0.tar.xz";
};
};
oxygen-icons5 = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/oxygen-icons5-5.90.0.tar.xz";
sha256 = "1izfh6cxivmwiymy7lwbmf9j1hxy2skv6z1lbjr0c4snmx6pqx1g";
name = "oxygen-icons5-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/oxygen-icons5-5.91.0.tar.xz";
sha256 = "0j3j2lyxr2iz68vasvpjqkix4bnnj6wc4sr97i6x6z06zq0kawai";
name = "oxygen-icons5-5.91.0.tar.xz";
};
};
plasma-framework = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/plasma-framework-5.90.0.tar.xz";
sha256 = "1msqjnwvb815kii0rjhn1lvsnvq5wr8iprdjzsviw67va6gaz4p1";
name = "plasma-framework-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/plasma-framework-5.91.0.tar.xz";
sha256 = "0ydhhpnwf7lfl3kdjsw92mgsza5gy292f7v6kyby4ygjnir1hizl";
name = "plasma-framework-5.91.0.tar.xz";
};
};
prison = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/prison-5.90.0.tar.xz";
sha256 = "0z2k2hyjj86va5rqgd8qrvhflfppcl2d3f9smxb5w9pp19ashvyk";
name = "prison-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/prison-5.91.0.tar.xz";
sha256 = "0k1zp3jzh8gjsji6wh5g8k41zdl8s1vd58ipm0lxy670a71wcqcg";
name = "prison-5.91.0.tar.xz";
};
};
purpose = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/purpose-5.90.0.tar.xz";
sha256 = "182196hj3mdy1k7wfgadfxy7m1kbqzk6kksn7yd681h2gpky82l1";
name = "purpose-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/purpose-5.91.0.tar.xz";
sha256 = "1z6wpz7d9byx4n5zx6chmyy9k1jkmghdgahsvkqsc33z6hnh2b4m";
name = "purpose-5.91.0.tar.xz";
};
};
qqc2-desktop-style = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/qqc2-desktop-style-5.90.0.tar.xz";
sha256 = "05g1rydx0innmiz28mslix4bjsrhsnci227gadngzijncp2v288r";
name = "qqc2-desktop-style-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/qqc2-desktop-style-5.91.0.tar.xz";
sha256 = "0rd9rvffhif8yckwr7axjcv5iqn5b0jdviij7f9y8vjpkzyjvm8i";
name = "qqc2-desktop-style-5.91.0.tar.xz";
};
};
solid = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/solid-5.90.0.tar.xz";
sha256 = "10hk4mh426dhi7is5hxa1varn15ijzra5a420zk297pzkphvx0ip";
name = "solid-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/solid-5.91.0.tar.xz";
sha256 = "1a4k0amyg8mvfr2ld7v8zyphhxv33yybh55vqcshwv4a0jm1wmjg";
name = "solid-5.91.0.tar.xz";
};
};
sonnet = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/sonnet-5.90.0.tar.xz";
sha256 = "0d4xxm9vw1rc2mypv4z0yihcn679sab0afxr2kbzq01wr6p759y7";
name = "sonnet-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/sonnet-5.91.0.tar.xz";
sha256 = "067xj5mllpzl0gnxxljhfi9y4xdgrpqbckm7pykczzqrklrrx8dx";
name = "sonnet-5.91.0.tar.xz";
};
};
syndication = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/syndication-5.90.0.tar.xz";
sha256 = "0a9j443w42jwvlzjh5mfxn25kwjrz1ya6sgy0c4y3n5xbg031zmx";
name = "syndication-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/syndication-5.91.0.tar.xz";
sha256 = "1f2kb6mh1xc1k1bn536lq9gq0j2lb65qw4vpp4ixynlfij4zq1gy";
name = "syndication-5.91.0.tar.xz";
};
};
syntax-highlighting = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/syntax-highlighting-5.90.0.tar.xz";
sha256 = "19mckdfdxb5i26y75cgmda91s864jbh1wmf98bv8xa1iqxwkwj5z";
name = "syntax-highlighting-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/syntax-highlighting-5.91.0.tar.xz";
sha256 = "0fprqi2z8issh3jkql6labszkwd3cpvd6qadsg9fi46vfjr4a2ip";
name = "syntax-highlighting-5.91.0.tar.xz";
};
};
threadweaver = {
version = "5.90.0";
version = "5.91.0";
src = fetchurl {
url = "${mirror}/stable/frameworks/5.90/threadweaver-5.90.0.tar.xz";
sha256 = "1frhzlzmnrp5y3lrl0ahzxh8syj4vlkjvaypsmbm2bkkn4akizg3";
name = "threadweaver-5.90.0.tar.xz";
url = "${mirror}/stable/frameworks/5.91/threadweaver-5.91.0.tar.xz";
sha256 = "1900kqglkwzkjc24mvl0j7jf7xcx6cr6b1g78s5b5m18rw050j12";
name = "threadweaver-5.91.0.tar.xz";
};
};
}
+2 -2
View File
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "lcms2";
version = "2.12";
version = "2.13.1";
src = fetchurl {
url = "mirror://sourceforge/lcms/${pname}-${version}.tar.gz";
sha256 = "sha256-GGY5hehkEARVrD5QdiXEOMNxA1TYXly7fNQEPhH+EPU=";
sha256 = "sha256-1HPnlueyfFrwG9bRVS1CtFtDRX5xgs6ZA/OLt0ggO4g=";
};
outputs = [ "bin" "dev" "out" ];
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "libaom";
version = "3.2.0";
version = "3.3.0";
src = fetchzip {
url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz";
sha256 = "0fmnbzpl481i7kchx4hbvb507r5pfgyrzfrlrs7jk3bicycm75qv";
sha256 = "sha256-g6QkKLrk+SH1s5fRmseAQMmM6y4QwmKmVDPxdbqGmwg=";
stripRoot = false;
};
@@ -12,13 +12,13 @@ assert xarSupport -> libxml2 != null;
stdenv.mkDerivation rec {
pname = "libarchive";
version = "3.5.2";
version = "3.6.0";
src = fetchFromGitHub {
owner = "libarchive";
repo = "libarchive";
rev = "v${version}";
sha256 = "sha256-H00UJ+ON1kBc19BgWBBKmO8f23oAg2mk7o9hhDhn50Q=";
sha256 = "sha256-u6Zeu9yTjhx5U7KZVUkuuUsQPjWN71mE5egG4T+FGfY=";
};
outputs = [ "out" "lib" "dev" ];
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "libbsd";
version = "0.11.3";
version = "0.11.5";
src = fetchurl {
url = "https://libbsd.freedesktop.org/releases/${pname}-${version}.tar.xz";
sha256 = "18a2bcl9z0zyxhrm1lfv4yhhz0589s6jz0s78apaq78mhj0wz5gz";
sha256 = "sha256-GpyVJSVjXBu2dwyyLpabk42Oap15EjYrmO6DcFmbDv0=";
};
outputs = [ "out" "dev" "man" ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Common functions found on BSD systems";
homepage = "https://libbsd.freedesktop.org/";
license = licenses.bsd3;
license = with licenses; [ beerware bsd2 bsd3 bsdOriginal isc mit ];
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ matthewbauer ];
};
@@ -27,6 +27,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake ninja python3 ];
buildInputs = [ llvm clang-unwrapped ];
strictDeps = true;
cmakeFlags = [
"-DCMAKE_INSTALL_INCLUDEDIR=include"
];
meta = with lib; {
homepage = "http://libclc.llvm.org/";
@@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
pname = "libdrm";
version = "2.4.109";
version = "2.4.110";
src = fetchurl {
url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
sha256 = "09kzrdsd14zr0i3izvi5mck4vqccl3c9hr84r9i4is0zikh554v2";
sha256 = "0dwpry9m5l27dlhq48j4bsiqwm0247cxdqwv3b7ddmkynk2f9kpf";
};
outputs = [ "out" "dev" "bin" ];
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libgee";
version = "0.20.4";
version = "0.20.5";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "03nyf8n7i7f67fsh220g52slmihdk1lv4iwspm7xmkgrj3rink2j";
sha256 = "MYY6iVfVpyf5BnSVyr8KCIn6XT1EYm5UCUMxGI1cFRg=";
};
doCheck = true;
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libnfs";
version = "4.0.0";
version = "5.0.1";
src = fetchFromGitHub {
owner = "sahlberg";
repo = "libnfs";
rev = "libnfs-${version}";
sha256 = "0i27wd4zvhjz7620q043p4d4mkx8zv2yz9adm1byin47dynahyda";
sha256 = "sha256-5jyY7hqEhBPiQ8pNd+mRTEc4brht4ID7PoV7O2RFNQA=";
};
nativeBuildInputs = [ autoreconfHook ];
@@ -11,7 +11,7 @@ let
whenPatched = lib.optionalString apngSupport;
in stdenv.mkDerivation rec {
name = "libpng" + whenPatched "-apng" + "-${version}";
pname = "libpng" + whenPatched "-apng";
version = "1.6.37";
src = fetchurl {
@@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "libqmi";
version = "1.30.2";
version = "1.30.4";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
sha256 = "sha256-vgHs4OosIZTL6ldEv1qvBsBLpft+x4h6ExFsdtEU/t0=";
sha256 = "sha256-ANfaMKT40RhfN8uiic+vHfzQSljy921qz99bhTEtbtY=";
};
nativeBuildInputs = [
@@ -25,13 +25,13 @@
stdenv.mkDerivation rec {
pname = "librsvg";
version = "2.52.5";
version = "2.52.6";
outputs = [ "out" "dev" "installedTests" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "QHy7q1GBN+oYo/MiC+oYD77nXz5b1roQp6hiwab3TYI=";
sha256 = "o/k5oeajpgQIJEYy0DI/jDsg60t7AAU24uW9k7jv+q0=";
};
cargoVendorDir = "vendor";
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
pname = "libsigsegv";
version = "2.13";
version = "2.14";
src = fetchurl {
url = "mirror://gnu/libsigsegv/libsigsegv-${version}.tar.gz";
sha256 = "sha256-vnjuQXawX3x1/wMpjYSHTbkPS2ydVQPw2hIms6PEgRk=";
sha256 = "sha256-zaw5QYAzZM+BqQhJm+t5wgDq1gtrW0DK0ST9HgbKopU=";
};
patches = if enableSigbusFix then [ ./sigbus_fix.patch ] else null;
@@ -1,5 +1,6 @@
{ lib, stdenv
, fetchurl
, fetchpatch
, autoreconfHook
, pkg-config
@@ -27,6 +28,21 @@ stdenv.mkDerivation rec {
# libc++abi 11 has an `#include <version>`, this picks up files name
# `version` in the project's include paths
./rename-version.patch
(fetchpatch {
name = "CVE-2022-22844.patch";
url = "https://gitlab.com/libtiff/libtiff/-/commit/03047a26952a82daaa0792957ce211e0aa51bc64.patch";
sha256 = "0cfih55f5qpc84mvlwsffik80bgz6drkflkhrdyqq8m84jw3mbwb";
})
(fetchpatch {
name = "CVE-2022-0561.patch";
url = "https://gitlab.com/freedesktop-sdk/mirrors/gitlab/libtiff/libtiff/-/commit/eecb0712f4c3a5b449f70c57988260a667ddbdef.patch";
sha256 = "0m57fdxyvhhr9cc260lvkkn2g4zr4n4v9nricc6lf9h6diagd7mk";
})
(fetchpatch {
name = "CVE-2022-0562.patch";
url = "https://gitlab.com/freedesktop-sdk/mirrors/gitlab/libtiff/libtiff/-/commit/561599c99f987dc32ae110370cfdd7df7975586b.patch";
sha256 = "0ycirjjc1vigj03kwjb92n6jszsl9p17ccw5hry7lli9gxyyr0an";
})
];
postPatch = ''
@@ -12,7 +12,7 @@
stdenv.mkDerivation rec {
pname = "libwacom";
version = "1.99.1";
version = "2.0.0";
outputs = [ "out" "dev" ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
owner = "linuxwacom";
repo = "libwacom";
rev = "libwacom-${version}";
sha256 = "sha256-WGW/4m+BTe6dEigUcuUIZjoTeamInW6zrtrlaqKM6Js=";
sha256 = "sha256-k8pEgEu+oWNa0rI47osVPKaZGxgwX/ENaz9jPrQXy0E=";
};
nativeBuildInputs = [
@@ -21,14 +21,14 @@
stdenv.mkDerivation rec {
pname = "libwnck";
version = "40.0";
version = "40.1";
outputs = [ "out" "dev" "devdoc" ];
outputBin = "dev";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "MMt5qDn5DNZvPiAvP5jLUWb6DNm5LrVxrZxHCkMCHYM=";
sha256 = "AxNPoRTvP740B1qoNnj1iqLevp/O9OojwHeeKGAdZhE=";
};
nativeBuildInputs = [
@@ -21,11 +21,11 @@
stdenv.mkDerivation rec {
pname = "libxkbcommon";
version = "1.3.1";
version = "1.4.0";
src = fetchurl {
url = "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
sha256 = "0d4jzq0zv1xmng0z0q5lb4rz03ikgxdwi68k3r70ac16gb911ixk";
sha256 = "0ca00awfzvxiznvd4mgwgxyqxiwvi07j5xxmg5z0l47rcd9fqv0h";
};
outputs = [ "out" "dev" "doc" ];
+75 -47
View File
@@ -1,20 +1,37 @@
{ stdenv, lib, fetchurl, fetchpatch
, zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs
{ stdenv
, lib
, fetchurl
, zlib
, pkg-config
, autoreconfHook
, xz
, libintl
, python
, gettext
, ncurses
, findXMLCatalogs
, libiconv
, pythonSupport ? enableShared && stdenv.buildPlatform == stdenv.hostPlatform
, icuSupport ? false, icu ? null
, icuSupport ? false
, icu
, enableShared ? stdenv.hostPlatform.libc != "msvcrt" && !stdenv.hostPlatform.isStatic
, enableStatic ? !enableShared
, gnome
}:
stdenv.mkDerivation rec {
pname = "libxml2";
version = "2.9.12";
version = "2.9.13";
outputs = [ "bin" "dev" "out" "man" "doc" ]
++ lib.optional pythonSupport "py"
++ lib.optional (enableStatic && enableShared) "static";
src = fetchurl {
url = "http://xmlsoft.org/sources/${pname}-${version}.tar.gz";
sha256 = "14hxwzmf5xqppx77z7i0ni9lpzg1a84dqpf8j8l1fvy570g6imn8";
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "J2EwYC0S/khOzANEfuXnWdBGVVj7yda9FE43RTBuvw4=";
};
patches = [
# Upstream bugs:
# https://bugzilla.gnome.org/show_bug.cgi?id=789714
@@ -28,63 +45,66 @@ stdenv.mkDerivation rec {
# https://github.com/NixOS/nixpkgs/pull/63174
# https://github.com/NixOS/nixpkgs/pull/72342
./utf8-xmlErrorFuncHandler.patch
# Work around lxml API misuse.
# https://gitlab.gnome.org/GNOME/libxml2/issues/255
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/libxml2/commit/85b1792e37b131e7a51af98a37f92472e8de5f3f.patch";
sha256 = "epqlNs2S0Zczox3KyCB6R2aJKh87lXydlZ0x6tLHweE=";
})
];
outputs = [ "bin" "dev" "out" "man" "doc" ]
++ lib.optional pythonSupport "py"
++ lib.optional (enableStatic && enableShared) "static";
strictDeps = true;
buildInputs = lib.optional pythonSupport python
++ lib.optional (pythonSupport && python?isPy2 && python.isPy2) gettext
++ lib.optional (pythonSupport && python?isPy3 && python.isPy3) ncurses
++ lib.optional (stdenv.isDarwin &&
pythonSupport && python?isPy2 && python.isPy2) libintl
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = lib.optionals pythonSupport [
python
] ++ lib.optionals (pythonSupport && python?isPy2 && python.isPy2) [
gettext
] ++ lib.optionals (pythonSupport && python?isPy3 && python.isPy3) [
ncurses
] ++ lib.optionals (stdenv.isDarwin && pythonSupport && python?isPy2 && python.isPy2) [
libintl
] ++ lib.optionals stdenv.isFreeBSD [
# Libxml2 has an optional dependency on liblzma. However, on impure
# platforms, it may end up using that from /usr/lib, and thus lack a
# RUNPATH for that, leading to undefined references for its users.
++ lib.optional stdenv.isFreeBSD xz;
xz
];
propagatedBuildInputs = [ zlib findXMLCatalogs ]
++ lib.optional stdenv.isDarwin libiconv
++ lib.optional icuSupport icu;
propagatedBuildInputs = [
zlib
findXMLCatalogs
] ++ lib.optionals stdenv.isDarwin [
libiconv
] ++ lib.optionals icuSupport [
icu
];
configureFlags = [
"--exec_prefix=$dev"
"--exec-prefix=${placeholder "dev"}"
(lib.enableFeature enableStatic "static")
(lib.enableFeature enableShared "shared")
(lib.withFeature icuSupport "icu")
(lib.withFeatureAs pythonSupport "python" python)
];
installFlags = lib.optionals pythonSupport [
"pythondir=\"${placeholder "py"}/${python.sitePackages}\""
];
enableParallelBuilding = true;
doCheck =
(stdenv.hostPlatform == stdenv.buildPlatform) &&
!stdenv.isDarwin &&
stdenv.hostPlatform.libc != "musl";
preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
MACOSX_DEPLOYMENT_TARGET=10.16
'';
enableParallelBuilding = true;
# disable test that's problematic with newer pythons: see
# https://mail.gnome.org/archives/xml/2017-August/msg00014.html
preCheck = lib.optionalString (pythonSupport && !(python?pythonOlder && python.pythonOlder "3.5")) ''
echo "" > python/tests/tstLastError.py
preInstall = lib.optionalString pythonSupport ''
substituteInPlace python/libxml2mod.la --replace "$dev/${python.sitePackages}" "$py/${python.sitePackages}"
'';
doCheck = (stdenv.hostPlatform == stdenv.buildPlatform) && !stdenv.isDarwin &&
stdenv.hostPlatform.libc != "musl";
preInstall = lib.optionalString pythonSupport
''substituteInPlace python/libxml2mod.la --replace "${python}" "$py"'';
installFlags = lib.optional pythonSupport
"pythondir=\"${placeholder "py"}/lib/${python.libPrefix}/site-packages\"";
postFixup = ''
moveToOutput bin/xml2-config "$dev"
moveToOutput lib/xml2Conf.sh "$dev"
@@ -93,13 +113,21 @@ stdenv.mkDerivation rec {
moveToOutput lib/libxml2.a "$static"
'';
passthru = { inherit version; pythonSupport = pythonSupport; };
passthru = {
inherit version;
pythonSupport = pythonSupport;
meta = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
homepage = "http://xmlsoft.org/";
description = "An XML parsing library for C";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = [ lib.maintainers.eelco ];
description = "XML parsing library for C";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ eelco jtojnar ];
};
}
+44 -17
View File
@@ -1,38 +1,60 @@
{ lib, stdenv, fetchurl
{ lib
, stdenv
, fetchurl
, pkg-config
, libxml2, findXMLCatalogs, gettext, python, libgcrypt
, autoreconfHook
, libxml2
, findXMLCatalogs
, gettext
, python
, ncurses
, libgcrypt
, cryptoSupport ? false
, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
, gnome
}:
stdenv.mkDerivation rec {
pname = "libxslt";
version = "1.1.34";
src = fetchurl {
url = "http://xmlsoft.org/sources/${pname}-${version}.tar.gz";
sha256 = "0zrzz6kjdyavspzik6fbkpvfpbd25r2qg6py5nnjaabrsr3bvccq";
};
version = "1.1.35";
outputs = [ "bin" "dev" "out" "man" "doc" ] ++ lib.optional pythonSupport "py";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "gkfzPpqHLGrIWapFAYvExNALl+L+rJ7rwQyTzh803Xk=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [ libxml2.dev ]
++ lib.optional stdenv.isDarwin gettext
++ lib.optionals pythonSupport [ libxml2.py python ]
++ lib.optionals cryptoSupport [ libgcrypt ];
buildInputs = [
libxml2.dev
] ++ lib.optional stdenv.isDarwin [
gettext
] ++ lib.optionals pythonSupport [
libxml2.py
python
ncurses
] ++ lib.optionals cryptoSupport [
libgcrypt
];
propagatedBuildInputs = [ findXMLCatalogs ];
propagatedBuildInputs = [
findXMLCatalogs
];
configureFlags = [
"--without-debug"
"--without-mem-debug"
"--without-debugger"
] ++ lib.optional pythonSupport "--with-python=${python}"
++ lib.optional (!cryptoSupport) "--without-crypto";
] ++ lib.optionals pythonSupport [
"--with-python=${python}"
] ++ lib.optionals (!cryptoSupport) [
"--without-crypto"
];
postFixup = ''
moveToOutput bin/xslt-config "$dev"
@@ -46,6 +68,11 @@ stdenv.mkDerivation rec {
passthru = {
inherit pythonSupport;
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
@@ -53,7 +80,7 @@ stdenv.mkDerivation rec {
description = "A C library and tools to do XSL transformations";
license = licenses.mit;
platforms = platforms.all;
maintainers = [ maintainers.eelco ];
broken = !(pythonSupport -> libxml2.pythonSupport); # see #73102 for why this is not an assert
maintainers = with maintainers; [ eelco jtojnar ];
broken = pythonSupport && !libxml2.pythonSupport; # see #73102 for why this is not an assert
};
}
+2 -7
View File
@@ -33,7 +33,7 @@ with lib;
let
# Release calendar: https://www.mesa3d.org/release-calendar.html
# Release frequency: https://www.mesa3d.org/releasing.html#schedule
version = "21.3.5";
version = "21.3.6";
branch = versions.major version;
self = stdenv.mkDerivation {
@@ -47,18 +47,13 @@ self = stdenv.mkDerivation {
"ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
];
sha256 = "0k2ary16ixsrp65m2n5djpr51nbwdgzpv81pfrnqbvk44jfjlfyr";
sha256 = "0dk717mrp59i6wgf5nir7126hmjw48jw1z15s10smsa6slgpdfwn";
};
# TODO:
# revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved
# ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
patches = [
# To fix flickering on Intel GPUs (iris), see https://github.com/NixOS/nixpkgs/issues/153377:
(fetchpatch {
url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/07dc3d4238e57901ccf98e0b506d9aad2c86b9d9.diff";
sha256 = "sha256-3fa1qHJes3x1/iXsxfjgy9HnEGlOyFtJatSkU1a3XDI=";
})
# fixes pkgsMusl.mesa build
./musl.patch
(fetchpatch {
@@ -13,7 +13,7 @@
stdenv.mkDerivation rec {
# Note the revision needs to be adjusted.
version = "6.3";
name = "ncurses-${version}" + lib.optionalString (abiVersion == "5") "-abi5-compat";
pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat";
# We cannot use fetchFromGitHub (which calls fetchzip)
# because we need to be able to use fetchurlBoot.
+2 -2
View File
@@ -14,12 +14,12 @@ let
in
stdenv.mkDerivation rec {
version = "0.31.2";
version = "0.32.2";
pname = "neon";
src = fetchurl {
url = "https://notroj.github.io/${pname}/${pname}-${version}.tar.gz";
sha256 = "0y46dbhiblcvg8k41bdydr3fivghwk73z040ki5825d24ynf67ng";
sha256 = "sha256-mGVmRoxilfxdD7FBpZgeMcn4LuOOk4N0q+2Ece8vsoY=";
};
patches = optionals stdenv.isDarwin [ ./darwin-fix-configure.patch ];
@@ -5,9 +5,9 @@
}:
stdenv.mkDerivation {
name = "nettle-${version}";
pname = "nettle";
inherit src;
inherit version src;
outputs = [ "out" "dev" ];
outputBin = "dev";
+2 -2
View File
@@ -27,7 +27,7 @@ let
# It will rebuild itself using the version of this package (NSS) and if
# an update is required do the required changes to the expression.
# Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
version = "3.74";
version = "3.75";
in
stdenv.mkDerivation rec {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM/src/${pname}-${version}.tar.gz";
sha256 = "0mnhdkm4galhpvfz4rv0918jwmjlwkvcvb1f5va8f3zlz48qi4l8";
sha256 = "10l5qn68gly2l4ifv0v6by1qc8nsmhra08nm9m7n913jh83iamzx";
};
depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "openh264";
version = "2.1.1";
version = "2.2.0";
src = fetchFromGitHub {
owner = "cisco";
repo = pname;
rev = "v${version}";
sha256 = "0ffav46pz3sbj92nipd62z03fibyqgclfq9w8lgr80s6za6zdk5s";
sha256 = "sha256-l64xP39Uaislqh4D7oSxJiQGhXkklol4LgS9BVPbaGk=";
};
nativeBuildInputs = [ nasm ];
+2 -2
View File
@@ -24,14 +24,14 @@
stdenv.mkDerivation rec {
pname = "pango";
version = "1.50.3";
version = "1.50.4";
outputs = [ "bin" "out" "dev" ]
++ lib.optionals withDocs [ "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "St0F7fUcH7N1oczedJiRQSDiPLKA3XOVsa60QfGDikw=";
sha256 = "9K1j6H3CsUUwBUKk+wBNB6n5GzQVL64N2+UOzdhRwWI=";
};
strictDeps = !withIntrospection;
@@ -20,7 +20,6 @@
, udev
, libva
, libsndfile
, SDL2
, vulkan-headers
, vulkan-loader
, webrtc-audio-processing
@@ -129,7 +128,6 @@ let
vulkan-headers
vulkan-loader
webrtc-audio-processing
SDL2
systemd
] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
++ lib.optionals libcameraSupport [ libcamera libdrm ]
@@ -139,7 +137,7 @@ let
++ lib.optional zeroconfSupport avahi
++ lib.optional raopSupport openssl
++ lib.optional rocSupport roc-toolkit
++ lib.optionals x11Support [ libcanberra xorg.libxcb ];
++ lib.optionals x11Support [ libcanberra xorg.libX11 ];
# Valgrind binary is required for running one optional test.
checkInputs = lib.optional withValgrind valgrind;
@@ -169,6 +167,7 @@ let
"-Dsession-managers="
"-Dvulkan=enabled"
"-Dx11=${mesonEnableFeature x11Support}"
"-Dsdl2=disabled" # required only to build examples, causes dependency loop
];
# Fontconfig error: Cannot load default config file
@@ -7,11 +7,11 @@
mkDerivation rec {
pname = "plasma-wayland-protocols";
version = "1.5.0";
version = "1.6.0";
src = fetchurl {
url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
sha256 = "sha256-zMn8INehMO2/sjPDOxMldArAGyZAqjelxUTtv7oYqDM=";
sha256 = "sha256-t0/6yWnvBn5HGA50imejoYFrcVf/TqYg7UQy9Ztw8B8=";
};
nativeBuildInputs = [ extra-cmake-modules ];
@@ -65,6 +65,12 @@ stdenv.mkDerivation rec {
url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683.patch";
sha256 = "162jkpg2myq0rb0s5k3nfr4pqwv9im13jf6vzj8p5l39nazg5i4s";
})
# File descriptor leak allows an unprivileged user to cause a crash (CVE-2021-4115)
(fetchpatch {
name = "CVE-2021-4115.patch";
url = "https://src.fedoraproject.org/rpms/polkit/raw/0a203bd46a1e2ec8cc4b3626840e2ea9d0d13a9a/f/CVE-2021-4115.patch";
sha256 = "sha256-BivHVVpYB4Ies1YbBDyKwUmNlqq2D1MpMipH9/dZM54=";
})
] ++ lib.optionals stdenv.hostPlatform.isMusl [
# Make netgroup support optional (musl does not have it)
# Upstream MR: https://gitlab.freedesktop.org/polkit/polkit/merge_requests/10
@@ -1,8 +1,8 @@
{
"qt3d": {
"url": "https://invent.kde.org/qt/qt/qt3d.git",
"rev": "7edec6e014de27b9dd03f63875c471aac606a918",
"sha256": "0qv4vhciigqd8bnqzrs7y71ls7jx1p9cal2rh78m42qgskk1ci59"
"rev": "dba14d48611b9e9d59576172658779ab4a39b416",
"sha256": "1w2m1rm6mhj9qbanak36rqvc30x495zvj7mh2syy1yd29by0g5i8"
},
"qtactiveqt": {
"url": "https://invent.kde.org/qt/qt/qtactiveqt.git",
@@ -16,8 +16,8 @@
},
"qtbase": {
"url": "https://invent.kde.org/qt/qt/qtbase.git",
"rev": "c9fde86b0a2440133bc08f4811b6ca793be47f0a",
"sha256": "1fqhdkv3sp3nbzqi2a5wvxn5d4v0xcrq2bl609bdyj4nx367a8wp"
"rev": "d16bf02a11953dcac01dca73e6f3778f293adefe",
"sha256": "0rpyd5r60707lzfmfi3y501c7is1gzhh30bframsy8bwglck2hjj"
},
"qtcharts": {
"url": "https://invent.kde.org/qt/qt/qtcharts.git",
@@ -26,8 +26,8 @@
},
"qtconnectivity": {
"url": "https://invent.kde.org/qt/qt/qtconnectivity.git",
"rev": "69a87a9b831e36a578594a0a13130c384ad03121",
"sha256": "0ph07rdf9qfxnw3z2nqbmh6na65z0p2snmlzdw80amd7s0g255kw"
"rev": "5e9ca5d36d65dadb98ef90013a1dcf15fbd7ae26",
"sha256": "1lpiq3svlnj8f8apd12if11sng7k0l8y6vhr317srzz4dd77cfry"
},
"qtdatavis3d": {
"url": "https://invent.kde.org/qt/qt/qtdatavis3d.git",
@@ -36,8 +36,8 @@
},
"qtdeclarative": {
"url": "https://invent.kde.org/qt/qt/qtdeclarative.git",
"rev": "55324650f9e759a43dce927f823c9858574106c3",
"sha256": "0cxz4pqvb8l0wqpc4hr0xmc72csqf7dpbbzdqgil9nyyg21ihkz0"
"rev": "1d49a5b678957adde7e2db23a485a3f48157bc8f",
"sha256": "1wdpgh23mdn0nny9c837iyg9kszc3m4cdmaanf8glymkzn0rkd8w"
},
"qtdoc": {
"url": "https://invent.kde.org/qt/qt/qtdoc.git",
@@ -101,8 +101,8 @@
},
"qtquickcontrols2": {
"url": "https://invent.kde.org/qt/qt/qtquickcontrols2.git",
"rev": "be66bf9a5618c745d2a6ee2262967af6307b3b07",
"sha256": "11h3f3rb2kqgsw7njzhjwazw1k03v12i83irjndylafiaqw6c6ks"
"rev": "d8d6b14b9907adbc6ce307d52be34aaa761a58fa",
"sha256": "15c7nrvvn7qc3l7kdbl5wdpazqwv8zvg1aij2jvcrhbymn0zl3mc"
},
"qtquicktimeline": {
"url": "https://invent.kde.org/qt/qt/qtquicktimeline.git",
@@ -146,8 +146,8 @@
},
"qtsvg": {
"url": "https://invent.kde.org/qt/qt/qtsvg.git",
"rev": "24128cdf8bef53eddf31a5709bbbc46293006b1c",
"sha256": "0vinjcbq4saxhlmvb5i93bzgg30qc3j8r2qfwrzaxc4vmfhfgi56"
"rev": "728012f7762ecd5762d493f8796907c6456f31e7",
"sha256": "1ldizgybl4fp95xlzf103hqmsqdmr3jbx048jyxcb5gjd3pbwh7p"
},
"qttools": {
"url": "https://invent.kde.org/qt/qt/qttools.git",
@@ -161,18 +161,18 @@
},
"qtvirtualkeyboard": {
"url": "https://invent.kde.org/qt/qt/qtvirtualkeyboard.git",
"rev": "353b75b2e34bdae901625bbddf5c5e3f3e6c0de5",
"sha256": "12nv773zc05yrbai1z6i481yinih0kxcjzgm9pa0580qz69gd9a5"
"rev": "98d1fd864cbb6c7c012c4139118808af110fb8f0",
"sha256": "07xjmhca7z5bva03zk73d948qz0a3wnn4kvyy6j4cnp3w5giz5kc"
},
"qtwayland": {
"url": "https://invent.kde.org/qt/qt/qtwayland.git",
"rev": "992833ca741efe8f533c61abfaf129a1d8bfcfee",
"sha256": "1w8mq38k6s0fncqv113bw1pc7g10ysfmsbyg23hxh9fr5q4ia4q7"
"rev": "214f7ab9d3384a4123f14d9f6cd0205cf0aaa794",
"sha256": "1qd64w5c16gmpgi936dfjc0pn1a1rbs752k8lfqv2xwysx7qkqwi"
},
"qtwebchannel": {
"url": "https://invent.kde.org/qt/qt/qtwebchannel.git",
"rev": "47be9a51b01d9fd9e7f6dca81e98d4eedcec6d38",
"sha256": "167rp43c86xr4grzxs4bl46y6sf1q9xa0641mgp4r94g2ipxyc1d"
"rev": "fa8b07105b5e274daaa8adcc129fa4aa0447f9f7",
"sha256": "0mggqa8kixknbm1p5i5lkrmkj1na3b2xflj011dkjbj8wb78i42n"
},
"qtwebglplugin": {
"url": "https://invent.kde.org/qt/qt/qtwebglplugin.git",
@@ -181,8 +181,8 @@
},
"qtwebsockets": {
"url": "https://invent.kde.org/qt/qt/qtwebsockets.git",
"rev": "e7883bc64440b1ff4666272ac6eb710ee4bc221b",
"sha256": "1rj99y1f0wn6g1m2k53xkni5v79zgq25yv8b9wx2bz0n2r9iasca"
"rev": "b13b56904b76e96ea52d0efe56395acc94b17d96",
"sha256": "047asrq7c44v7cn2d7c5zba47qzpsb6nidba77i2xn7gqlfv6z3b"
},
"qtwebview": {
"url": "https://invent.kde.org/qt/qt/qtwebview.git",
@@ -1,4 +1,6 @@
# Automatically generated by `update-patch-set.sh'; do not edit.
patch: [
(patch "001" "0i4ikdqgcjnb40y2ss3lm09rq56zih5rzma3bib50dk3d1d4cak8")
(patch "002" "1p15sfx5xg5k4lam12lyd0givk7dfjddqpnb1jdp3c4clray0nz5")
]
@@ -0,0 +1 @@
../../../shells/bash/update-patch-set.sh
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
description = "BLAS-compatible library optimized for AMD CPUs";
homepage = "https://developer.amd.com/amd-aocl/blas-library/";
license = licenses.bsd3;
maintainers = [ ];
maintainers = [ maintainers.markuskowa ];
platforms = [ "x86_64-linux" ];
};
}
@@ -6,8 +6,12 @@
, amd-blis
, withOpenMP ? true
, blas64 ? false
}:
# right now only LP64 is supported
assert !blas64;
stdenv.mkDerivation rec {
pname = "amd-libflame";
version = "3.0";
@@ -26,6 +30,8 @@ stdenv.mkDerivation rec {
./add-lapacke.diff
];
passthru = { inherit blas64; };
nativeBuildInputs = [ gfortran python3 ];
buildInputs = [ amd-blis ];
@@ -1,4 +1,7 @@
{ lib, stdenv, fetchurl, gfortran }:
{ lib, stdenv, fetchurl, cmake, gfortran
# Wether to build with ILP64 interface
, blas64 ? false
}:
stdenv.mkDerivation rec {
pname = "blas";
@@ -9,50 +12,19 @@ stdenv.mkDerivation rec {
sha256 = "sha256-LjYNmcm9yEB6YYiMQKqFP7QhlCDruCZNtIbLiGBGirM=";
};
nativeBuildInputs = [ gfortran ];
passthru = { inherit blas64; };
configurePhase = ''
echo >make.inc "SHELL = ${stdenv.shell}"
echo >>make.inc "PLAT = _LINUX"
echo >>make.inc "FORTRAN = gfortran"
echo >>make.inc "OPTS = -O2 -fPIC"
echo >>make.inc "DRVOPTS = $$(OPTS)"
echo >>make.inc "NOOPT = -O0 -fPIC"
echo >>make.inc "LOADER = gfortran"
echo >>make.inc "LOADOPTS ="
echo >>make.inc "AR = gfortran"
echo >>make.inc "ARFLAGS = -shared -o"
echo >>make.inc "RANLIB = echo"
echo >>make.inc "BLASLIB = libblas.so.${version}"
'';
nativeBuildInputs = [ cmake gfortran ];
buildPhase = ''
make
echo >>make.inc "ARFLAGS = "
echo >>make.inc "BLASLIB = libblas.a"
echo >>make.inc "AR = ar rcs"
echo >>make.inc "RANLIB = ranlib"
make
'';
cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ]
++ lib.optional blas64 "-DBUILD_INDEX64=ON";
installPhase =
# FreeBSD's stdenv doesn't use Coreutils.
let dashD = if stdenv.isFreeBSD then "" else "-D"; in
(lib.optionalString stdenv.isFreeBSD "mkdir -p $out/lib ;")
+ ''
install ${dashD} -m755 libblas.a "$out/lib/libblas.a"
install ${dashD} -m755 libblas.so.${version} "$out/lib/libblas.so.${version}"
ln -s libblas.so.${version} "$out/lib/libblas.so.3"
ln -s libblas.so.${version} "$out/lib/libblas.so"
# Write pkg-config alias.
# See also openblas/default.nix
mkdir $out/lib/pkgconfig
cat <<EOF > $out/lib/pkgconfig/blas.pc
Name: blas
Version: ${version}
Description: blas provided by the BLAS package.
Libs: -L$out/lib -lblas
EOF
postInstall = let
canonicalExtension = if stdenv.hostPlatform.isLinux
then "${stdenv.hostPlatform.extensions.sharedLibrary}.${lib.versions.major version}"
else stdenv.hostPlatform.extensions.sharedLibrary;
in lib.optionalString blas64 ''
ln -s $out/lib/libblas64${canonicalExtension} $out/lib/libblas${canonicalExtension}
'';
preFixup = lib.optionalString stdenv.isDarwin ''
@@ -62,10 +34,11 @@ EOF
done
'';
meta = {
meta = with lib; {
description = "Basic Linear Algebra Subprograms";
license = lib.licenses.publicDomain;
license = licenses.publicDomain;
maintainers = [ maintainers.markuskowa ];
homepage = "http://www.netlib.org/blas/";
platforms = lib.platforms.unix;
platforms = platforms.unix;
};
}
@@ -5,6 +5,8 @@
, gfortran
, cmake
, shared ? true
# Compile with ILP64 interface
, blas64 ? false
}:
stdenv.mkDerivation rec {
@@ -36,7 +38,19 @@ stdenv.mkDerivation rec {
"-DLAPACKE=ON"
"-DCBLAS=ON"
"-DBUILD_TESTING=ON"
] ++ lib.optional shared "-DBUILD_SHARED_LIBS=ON";
] ++ lib.optional shared "-DBUILD_SHARED_LIBS=ON"
++ lib.optional blas64 "-DBUILD_INDEX64=ON";
passthru = { inherit blas64; };
postInstall = let
canonicalExtension = if stdenv.hostPlatform.isLinux
then "${stdenv.hostPlatform.extensions.sharedLibrary}.${lib.versions.major version}"
else stdenv.hostPlatform.extensions.sharedLibrary;
in lib.optionalString blas64 ''
ln -s $out/lib/liblapack64${canonicalExtension} $out/lib/liblapack${canonicalExtension}
ln -s $out/lib/liblapacke64${canonicalExtension} $out/lib/liblapacke${canonicalExtension}
'';
doCheck = true;
@@ -63,7 +77,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Linear Algebra PACKage";
homepage = "http://www.netlib.org/lapack/";
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ markuskowa ];
license = licenses.bsd3;
platforms = platforms.all;
};
@@ -129,7 +129,7 @@ let
in
stdenv.mkDerivation rec {
pname = "openblas";
version = "0.3.19";
version = "0.3.20";
outputs = [ "out" "dev" ];
@@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
owner = "xianyi";
repo = "OpenBLAS";
rev = "v${version}";
sha256 = "sha256-EqA6oFM2theuvvuDOWeOx0Bv6AEFffmpWHJBzp23br0=";
sha256 = "sha256-FLPVcepf7tv/es+4kur9Op7o3iVAAayuYN4hY/P4mmQ=";
};
inherit blas64;
+9 -1
View File
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, fftw, speexdsp }:
{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, pkg-config, fftw, speexdsp }:
stdenv.mkDerivation rec {
pname = "speex";
@@ -13,6 +13,14 @@ stdenv.mkDerivation rec {
sed -i '/AC_CONFIG_MACRO_DIR/i PKG_PROG_PKG_CONFIG' configure.ac
'';
patches = [
(fetchpatch {
name = "CVE-2020-23903.patch";
url = "https://github.com/xiph/speex/commit/870ff845b32f314aec0036641ffe18aba4916887.patch";
sha256 = "sha256-uEMDhDTw/LIWNPPCXW6kF+udBmNO88G/jJTojAA9fs8=";
})
];
outputs = [ "out" "dev" "doc" ];
nativeBuildInputs = [ autoreconfHook pkg-config ];
+2 -1
View File
@@ -3,7 +3,8 @@
, ... }:
tcl.mkTclDerivation {
name = "tk-${tcl.version}";
pname = "tk";
version = tcl.version;
inherit src patches;
@@ -1,138 +0,0 @@
{ lib, stdenv
, fetchFromGitHub
, fetchurl
, pkg-config
, libXinerama
, libSM
, libXxf86vm
, libXtst
, gtk2
, GConf ? null
, gtk3
, xorgproto
, gst_all_1
, setfile
, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
, withMesa ? libGLSupported
, libGLU ? null
, libGL ? null
, compat28 ? false
, compat30 ? true
, unicode ? true
, withGtk2 ? true
, withWebKit ? false
, webkitgtk ? null
, AGL ? null
, Carbon ? null
, Cocoa ? null
, Kernel ? null
, QTKit ? null
}:
with lib;
assert withMesa -> libGLU != null && libGL != null;
assert withWebKit -> webkitgtk != null;
assert assertMsg (withGtk2 -> withWebKit == false) "wxGTK31: You cannot enable withWebKit when using withGtk2.";
stdenv.mkDerivation rec {
version = "3.1.4";
pname = "wxwidgets";
src = fetchFromGitHub {
owner = "wxWidgets";
repo = "wxWidgets";
rev = "v${version}";
sha256 = "1fwzrk6w5k0vs8kqdq5lpzdbp5c09hx740wg6mi6vgmc1r67dv67";
fetchSubmodules = true;
};
buildInputs = [
libXinerama
libSM
libXxf86vm
libXtst
xorgproto
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
] ++ optionals withGtk2 [ gtk2 GConf ]
++ optional (!withGtk2) gtk3
++ optional withMesa libGLU
++ optional withWebKit webkitgtk
++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ];
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = optional stdenv.isDarwin AGL;
patches = [
(fetchurl {
# https://trac.wxwidgets.org/ticket/17942
url = "https://trac.wxwidgets.org/raw-attachment/ticket/17942/"
+ "fix_assertion_using_hide_in_destroy.diff";
sha256 = "009y3dav79wiig789vkkc07g1qdqprg1544lih79199kb1h64lvy";
})
];
configureFlags =
[
"--disable-precomp-headers"
"--enable-mediactrl"
(if compat28 then "--enable-compat28" else "--disable-compat28")
(if compat30 then "--enable-compat30" else "--disable-compat30")
]
++ optional unicode "--enable-unicode"
++ optional withMesa "--with-opengl"
++ optionals stdenv.isDarwin
# allow building on 64-bit
[ "--with-cocoa" "--enable-universal-binaries" "--with-macosx-version-min=10.7" ]
++ optionals withWebKit
[ "--enable-webview" "--enable-webviewwebkit" ];
SEARCH_LIB = "${libGLU.out}/lib ${libGL.out}/lib ";
preConfigure = "
substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
substituteInPlace configure --replace /usr /no-such-path
" + optionalString stdenv.isDarwin ''
substituteInPlace configure --replace \
'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' \
'ac_cv_prog_SETFILE="${setfile}/bin/SetFile"'
substituteInPlace configure --replace \
"-framework System" \
-lSystem
'';
postInstall = "
(cd $out/include && ln -s wx-*/* .)
";
passthru = {
inherit compat28 compat30 unicode;
gtk = if withGtk2 then gtk2 else gtk3;
};
enableParallelBuilding = true;
meta = {
platforms = with platforms; darwin ++ linux;
license = licenses.wxWindows;
homepage = "https://www.wxwidgets.org/";
description = "A C++ library that lets developers create applications for Windows, macOS, Linux and other platforms with a single code base";
longDescription = ''
WxWidgets gives you a single, easy-to-use API for
writing GUI applications on multiple platforms that still utilize the
native platform's controls and utilities. Link with the appropriate library
for your platform and compiler, and your application will adopt the look
and feel appropriate to that platform. On top of great GUI functionality,
wxWidgets gives you: online help, network programming, streams, clipboard
and drag and drop, multithreading, image loading and saving in a variety of
popular formats, database support, HTML viewing and printing, and much
more.
'';
badPlatforms = [ "x86_64-darwin" ];
maintainers = with maintainers; [ tfmoraes ];
};
}
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
patches = [
# https://github.com/wxWidgets/wxWidgets/issues/17942
../0001-fix-assertion-using-hide-in-destroy.patch
./0001-fix-assertion-using-hide-in-destroy.patch
];
nativeBuildInputs = [
@@ -12,8 +12,8 @@
, pkg-config
, xorgproto
, withMesa ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
, compat24 ? false
, compat26 ? true
, compat26 ? false
, compat28 ? true
, unicode ? true
, withGtk2 ? true
, withWebKit ? false, webkitgtk
@@ -66,14 +66,14 @@ stdenv.mkDerivation rec {
patches = [
# https://github.com/wxWidgets/wxWidgets/issues/17942
../0001-fix-assertion-using-hide-in-destroy.patch
./0001-fix-assertion-using-hide-in-destroy.patch
];
configureFlags = [
"--disable-precomp-headers"
"--enable-mediactrl"
(if compat24 then "--enable-compat24" else "--disable-compat24")
(if compat26 then "--enable-compat26" else "--disable-compat26")
(if compat28 then "--enable-compat28" else "--disable-compat28")
]
++ lib.optional unicode "--enable-unicode"
++ lib.optional withMesa "--with-opengl"
@@ -133,6 +133,6 @@ stdenv.mkDerivation rec {
passthru = {
inherit gtk;
inherit compat24 compat26 unicode;
inherit compat26 compat28 unicode;
};
}
@@ -0,0 +1,149 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchurl
, gnome2
, gst_all_1
, gtk2
, gtk3
, libGL
, libGLU
, libSM
, libXinerama
, libXtst
, libXxf86vm
, pkg-config
, xorgproto
, compat28 ? false
, compat30 ? true
, unicode ? true
, withGtk2 ? true
, withMesa ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
, withWebKit ? false, webkitgtk
, darwin
}:
assert withMesa -> libGLU != null && libGL != null;
assert withWebKit -> webkitgtk != null;
assert withGtk2 -> (!withWebKit);
let
inherit (darwin.stubs) setfile;
inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
inherit (gnome2) GConf;
inherit (gst_all_1) gst-plugins-base gstreamer;
gtk = if withGtk2 then gtk2 else gtk3;
in
stdenv.mkDerivation rec {
pname = "wxwidgets";
version = "3.1.5";
src = fetchFromGitHub {
owner = "wxWidgets";
repo = "wxWidgets";
rev = "v${version}";
hash = "sha256-2zMvcva0GUDmSYK0Wk3/2Y6R3F7MgdqGBrOhmWgVA6g=";
fetchSubmodules = true;
};
patches = [
# https://github.com/wxWidgets/wxWidgets/issues/17942
./0001-fix-assertion-using-hide-in-destroy.patch
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gst-plugins-base
gstreamer
gtk
libSM
libXinerama
libXtst
libXxf86vm
xorgproto
]
++ lib.optionals withGtk2 [
GConf
]
++ lib.optional withMesa libGLU
++ lib.optional withWebKit webkitgtk
++ lib.optionals stdenv.isDarwin [
Carbon
Cocoa
Kernel
QTKit
setfile
];
propagatedBuildInputs = lib.optional stdenv.isDarwin AGL;
configureFlags = [
"--disable-precomp-headers"
"--enable-mediactrl"
(if compat28 then "--enable-compat28" else "--disable-compat28")
(if compat30 then "--enable-compat30" else "--disable-compat30")
]
++ lib.optional unicode "--enable-unicode"
++ lib.optional withMesa "--with-opengl"
++ lib.optionals stdenv.isDarwin [
# allow building on 64-bit
"--enable-universal-binaries"
"--with-cocoa"
"--with-macosx-version-min=10.7"
]
++ lib.optionals withWebKit [
"--enable-webview"
"--enable-webviewwebkit"
];
SEARCH_LIB = "${libGLU.out}/lib ${libGL.out}/lib ";
preConfigure = ''
substituteInPlace configure --replace \
'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE='
substituteInPlace configure --replace \
'SEARCH_LIB=' 'DUMMY_SEARCH_LIB='
substituteInPlace configure --replace \
/usr /no-such-path
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace configure --replace \
'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' \
'ac_cv_prog_SETFILE="${setfile}/bin/SetFile"'
substituteInPlace configure --replace \
"-framework System" "-lSystem"
'';
postInstall = "
pushd $out/include
ln -s wx-*/* .
popd
";
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://www.wxwidgets.org/";
description = "A Cross-Platform C++ GUI Library";
longDescription = ''
wxWidgets gives you a single, easy-to-use API for writing GUI applications
on multiple platforms that still utilize the native platform's controls
and utilities. Link with the appropriate library for your platform and
compiler, and your application will adopt the look and feel appropriate to
that platform. On top of great GUI functionality, wxWidgets gives you:
online help, network programming, streams, clipboard and drag and drop,
multithreading, image loading and saving in a variety of popular formats,
database support, HTML viewing and printing, and much more.
'';
license = licenses.wxWindows;
maintainers = with maintainers; [ AndersonTorres tfmoraes ];
platforms = platforms.unix;
badPlatforms = platforms.darwin; # ofBorg is failing, don't know if internal
};
passthru = {
inherit gtk;
inherit compat28 compat30 unicode;
};
}
@@ -10,11 +10,11 @@
stdenv.mkDerivation rec {
pname = "xdg-dbus-proxy";
version = "0.1.2";
version = "0.1.3";
src = fetchurl {
url = "https://github.com/flatpak/xdg-dbus-proxy/releases/download/${version}/${pname}-${version}.tar.xz";
sha256 = "03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p";
sha256 = "sha256-A7XSjKh5JT3bvOMQmJCb7MoUleqBGmN3pJLijxbAm5s=";
};
nativeBuildInputs = [
@@ -92,7 +92,10 @@ buildPythonPackage rec {
# Probably because we run `python -m pytest` instead of `pytest` in the hook.
preCheck = ''
cd tests
'';
'' + lib.optionalString stdenv.isDarwin ''
# Work around "OSError: AF_UNIX path too long"
export TMPDIR="/tmp"
'';
meta = with lib; {
description = "Asynchronous HTTP Client/Server for Python and asyncio";
@@ -9,7 +9,7 @@
buildPythonPackage rec {
pname = "aiosignal";
version = "1.2.0"; # re-enable tests after 1.2.0
version = "1.2.0";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
@@ -23,8 +23,6 @@ buildPythonPackage rec {
frozenlist
];
# not compatible w ith latest asyncio
doCheck = false;
checkInputs = [
pytest-asyncio
pytestCheckHook
@@ -32,6 +30,7 @@ buildPythonPackage rec {
postPatch = ''
substituteInPlace pytest.ini \
--replace "filterwarnings = error" "" \
--replace "--cov=aiosignal" ""
'';
@@ -1,4 +1,10 @@
{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy35, pytest, pytest-asyncio }:
{ lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, pytest-asyncio
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "async-generator";
@@ -12,17 +18,17 @@ buildPythonPackage rec {
sha256 = "6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144";
};
# no longer compatible with pytest-asyncio
doCheck = false;
checkInputs = [ pytest pytest-asyncio ];
checkInputs = [
pytest-asyncio
pytestCheckHook
];
checkPhase = ''
pytest -W error -ra -v --pyargs async_generator
'';
pythonImportsCheck = [ "async_generator" ];
meta = with lib; {
description = "Async generators and context managers for Python 3.5+";
homepage = "https://github.com/python-trio/async_generator";
license = with licenses; [ mit asl20 ];
maintainers = with maintainers; [ dotlambda ];
};
}
@@ -1,8 +1,12 @@
{ stdenv, lib
, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm, pytestCheckHook
{ stdenv
, lib
, buildPythonPackage
, fetchPypi
, pythonOlder
, setuptools-scm
, pytestCheckHook
, aiohttp
, aiohttp-cors
, attrs
, click
, colorama
, dataclasses
@@ -19,13 +23,13 @@
buildPythonPackage rec {
pname = "black";
version = "21.12b0";
version = "22.1.0";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-d7gPaTpWni5SeVhFljTxjfmwuiYluk4MLV2lvkLm8rM=";
hash = "sha256-p8AZLTVjX2/BF0vldct5FekuXdYp7nn9rw3PpBqAr7U=";
};
nativeBuildInputs = [ setuptools-scm ];
@@ -61,17 +65,15 @@ buildPythonPackage rec {
propagatedBuildInputs = [
aiohttp
aiohttp-cors
attrs
click
colorama
mypy-extensions
pathspec
platformdirs
tomli
typed-ast # required for tests and python2 extra
uvloop
] ++ lib.optional (pythonOlder "3.7") dataclasses
++ lib.optional (pythonOlder "3.8") typing-extensions;
] ++ lib.optional (pythonOlder "3.8") typed-ast
++ lib.optional (pythonOlder "3.10") typing-extensions;
meta = with lib; {
description = "The uncompromising Python code formatter";
@@ -1,4 +1,5 @@
{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, python
@@ -20,9 +21,14 @@ buildPythonPackage rec {
checkInputs = [ nose ];
# on non x86-64 some charsets are identified as their superset, so we skip these tests (last checked with version 2.1.7)
preCheck = ''
cp -R src/tests $TMPDIR
pushd $TMPDIR
'' + lib.optionalString (stdenv.hostPlatform.system != "x86_64-linux") ''
rm $TMPDIR/tests/testdata/th/tis-620.txt # identified as iso-8859-11, which is fine for all practical purposes
rm $TMPDIR/tests/testdata/ga/iso-8859-1.txt # identified as windows-1252, which is fine for all practical purposes
rm $TMPDIR/tests/testdata/fi/iso-8859-1.txt # identified as windows-1252, which is fine for all practical purposes
'';
checkPhase = ''
@@ -7,7 +7,7 @@
buildPythonPackage rec {
pname = "charset-normalizer";
version = "2.0.10";
version = "2.0.12";
format = "setuptools";
disabled = pythonOlder "3.5";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
owner = "Ousret";
repo = "charset_normalizer";
rev = version;
hash = "sha256-QsUqrC2oycvyCbOzGmHahgNi40YZ0sujb3Cj8EnsGS8=";
hash = "sha256-d5vWnZtFR669l1Meg4ZSsYIyBlJZya7SpXJMx2AP8NU=";
};
checkInputs = [
@@ -8,22 +8,21 @@
, pep517
, pytestCheckHook
, toml
, pythonOlder
}:
buildPythonPackage rec {
pname = "check-manifest";
version = "0.47";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
sha256 = "56dadd260a9c7d550b159796d2894b6d0bcc176a94cbc426d9bb93e5e48d12ce";
hash = "sha256-VtrdJgqcfVULFZeW0olLbQvMF2qUy8Qm2buT5eSNEs4=";
};
# Test requires filesystem access
postPatch = ''
substituteInPlace tests.py --replace "test_build_sdist" "no_test_build_sdist"
'';
propagatedBuildInputs = [
build
pep517
@@ -37,11 +36,18 @@ buildPythonPackage rec {
pytestCheckHook
];
pythonImportsCheck = [ "check_manifest" ];
disabledTests = [
# Test wants to setup a venv
"test_build_sdist_pep517_isolated"
];
pythonImportsCheck = [
"check_manifest"
];
meta = with lib; {
homepage = "https://github.com/mgedmin/check-manifest";
description = "Check MANIFEST.in in a Python source package for completeness";
homepage = "https://github.com/mgedmin/check-manifest";
license = licenses.mit;
maintainers = with maintainers; [ lewo ];
};
+3 -2
View File
@@ -5,13 +5,14 @@
}:
buildPythonPackage rec {
pname = "Django";
pname = "django";
version = "2.2.27";
disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
pname = "Django";
inherit version;
sha256 = "sha256-HuNwRrC/K2HoOzoB0GcyNRbsO28rF81JsTJt1LqdyRM=";
};

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