Merge branch 'staging' into staging-next
This commit is contained in:
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
stdenv.mkDerivation (rec {
|
||||
pname = "ed";
|
||||
version = "1.17";
|
||||
version = "1.18";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/ed/${pname}-${version}.tar.lz";
|
||||
sha256 = "0m2yrkfjjraakxr98nsiakqrn351h99n706x9asgmdi57j43kpki";
|
||||
sha256 = "sha256-rKjvrZgAxYdySiC5eqj8R+a1pH34Fgb+q6gxsHRGK08=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ lzip ];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "8.2.4227";
|
||||
version = "8.2.4350";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Xj4ymkrWY5GWpQhEDYtPtaRovBa6j19dW9GWg9WSdig=";
|
||||
sha256 = "sha256-+fCyLZi9+9r7tYoRQsVESkcoHHtM7vrVuOGdJi/9iF0=";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
-52
@@ -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
|
||||
'');
|
||||
}
|
||||
|
||||
@@ -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.")
|
||||
@@ -1,289 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
declare -a autoPatchelfLibs
|
||||
declare -Ag autoPatchelfFailedDeps
|
||||
declare -a extraAutoPatchelfLibs
|
||||
|
||||
gatherLibraries() {
|
||||
autoPatchelfLibs+=("$1/lib")
|
||||
}
|
||||
|
||||
# wrapper around patchelf to raise proper error messages
|
||||
# containing the tried file name and command
|
||||
runPatchelf() {
|
||||
patchelf "$@" || (echo "Command failed: patchelf $*" && exit 1)
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
# (targetOffset is referenced but not assigned.)
|
||||
addEnvHooks "$targetOffset" gatherLibraries
|
||||
|
||||
isExecutable() {
|
||||
# For dynamically linked ELF files it would be enough to check just for the
|
||||
# INTERP section. However, we won't catch statically linked executables as
|
||||
# they only have an ELF type of EXEC but no INTERP.
|
||||
#
|
||||
# So what we do here is just check whether *either* the ELF type is EXEC
|
||||
# *or* there is an INTERP section. This also catches position-independent
|
||||
# executables, as they typically have an INTERP section but their ELF type
|
||||
# is DYN.
|
||||
isExeResult="$(LANG=C $READELF -h -l "$1" 2> /dev/null \
|
||||
| grep '^ *Type: *EXEC\>\|^ *INTERP\>')"
|
||||
# not using grep -q, because it can cause Broken pipe
|
||||
# https://unix.stackexchange.com/questions/305547/broken-pipe-when-grepping-output-but-only-with-i-flag
|
||||
[ -n "$isExeResult" ]
|
||||
}
|
||||
|
||||
# We cache dependencies so that we don't need to search through all of them on
|
||||
# every consecutive call to findDependency.
|
||||
declare -Ag autoPatchelfCachedDepsAssoc
|
||||
declare -ag autoPatchelfCachedDeps
|
||||
|
||||
addToDepCache() {
|
||||
if [[ ${autoPatchelfCachedDepsAssoc[$1]+f} ]]; then return; fi
|
||||
|
||||
# store deps in an assoc. array for efficient lookups
|
||||
# otherwise findDependency would have quadratic complexity
|
||||
autoPatchelfCachedDepsAssoc["$1"]=""
|
||||
|
||||
# also store deps in normal array to maintain their order
|
||||
autoPatchelfCachedDeps+=("$1")
|
||||
}
|
||||
|
||||
declare -gi depCacheInitialised=0
|
||||
declare -gi doneRecursiveSearch=0
|
||||
declare -g foundDependency
|
||||
|
||||
getDepsFromElfBinary() {
|
||||
# NOTE: This does not use runPatchelf because it may encounter non-ELF
|
||||
# files. Caller is expected to check the return code if needed.
|
||||
patchelf --print-needed "$1" 2> /dev/null
|
||||
}
|
||||
|
||||
getRpathFromElfBinary() {
|
||||
# NOTE: This does not use runPatchelf because it may encounter non-ELF
|
||||
# files. Caller is expected to check the return code if needed.
|
||||
local rpath
|
||||
IFS=':' read -ra rpath < <(patchelf --print-rpath "$1" 2> /dev/null) || return $?
|
||||
|
||||
printf "%s\n" "${rpath[@]}"
|
||||
}
|
||||
|
||||
populateCacheForDep() {
|
||||
local so="$1"
|
||||
local rpath found
|
||||
rpath="$(getRpathFromElfBinary "$so")" || return 1
|
||||
|
||||
for found in $(getDepsFromElfBinary "$so"); do
|
||||
local rpathElem
|
||||
for rpathElem in $rpath; do
|
||||
# Ignore empty element or $ORIGIN magic variable which should be
|
||||
# deterministically resolved by adding this package's library
|
||||
# files early anyway.
|
||||
#
|
||||
# shellcheck disable=SC2016
|
||||
# (Expressions don't expand in single quotes, use double quotes for
|
||||
# that.)
|
||||
if [[ -z "$rpathElem" || "$rpathElem" == *'$ORIGIN'* ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
local soname="${found%.so*}"
|
||||
local foundso=
|
||||
for foundso in "$rpathElem/$soname".so*; do
|
||||
addToDepCache "$foundso"
|
||||
done
|
||||
|
||||
# Found in this element of the rpath, no need to check others.
|
||||
if [ -n "$foundso" ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
# Not found in any rpath element.
|
||||
return 1
|
||||
}
|
||||
|
||||
populateCacheWithRecursiveDeps() {
|
||||
# Dependencies may add more to the end of this array, so we use a counter
|
||||
# with while instead of a regular for loop here.
|
||||
local -i i=0
|
||||
while [ $i -lt ${#autoPatchelfCachedDeps[@]} ]; do
|
||||
populateCacheForDep "${autoPatchelfCachedDeps[$i]}"
|
||||
i=$i+1
|
||||
done
|
||||
}
|
||||
|
||||
getBinArch() {
|
||||
$OBJDUMP -f "$1" 2> /dev/null | sed -ne 's/^architecture: *\([^,]\+\).*/\1/p'
|
||||
}
|
||||
|
||||
# Returns the specific OS ABI for an ELF file in the format produced by
|
||||
# readelf(1), like "UNIX - System V" or "UNIX - GNU".
|
||||
getBinOsabi() {
|
||||
$READELF -h "$1" 2> /dev/null | sed -ne 's/^[ \t]*OS\/ABI:[ \t]*\(.*\)/\1/p'
|
||||
}
|
||||
|
||||
# Tests whether two OS ABIs are compatible, taking into account the generally
|
||||
# accepted compatibility of SVR4 ABI with other ABIs.
|
||||
areBinOsabisCompatible() {
|
||||
local wanted="$1"
|
||||
local got="$2"
|
||||
|
||||
if [[ -z "$wanted" || -z "$got" ]]; then
|
||||
# One of the types couldn't be detected, so as a fallback we'll assume
|
||||
# they're compatible.
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Generally speaking, the base ABI (0x00), which is represented by
|
||||
# readelf(1) as "UNIX - System V", indicates broad compatibility with other
|
||||
# ABIs.
|
||||
#
|
||||
# TODO: This isn't always true. For example, some OSes embed ABI
|
||||
# compatibility into SHT_NOTE sections like .note.tag and .note.ABI-tag.
|
||||
# It would be prudent to add these to the detection logic to produce better
|
||||
# ABI information.
|
||||
if [[ "$wanted" == "UNIX - System V" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Similarly here, we should be able to link against a superset of features,
|
||||
# so even if the target has another ABI, this should be fine.
|
||||
if [[ "$got" == "UNIX - System V" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Otherwise, we simply return whether the ABIs are identical.
|
||||
if [[ "$wanted" == "$got" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
# NOTE: If you want to use this function outside of the autoPatchelf function,
|
||||
# keep in mind that the dependency cache is only valid inside the subshell
|
||||
# spawned by the autoPatchelf function, so invoking this directly will possibly
|
||||
# rebuild the dependency cache. See the autoPatchelf function below for more
|
||||
# information.
|
||||
findDependency() {
|
||||
local filename="$1"
|
||||
local arch="$2"
|
||||
local osabi="$3"
|
||||
local lib dep
|
||||
|
||||
if [ $depCacheInitialised -eq 0 ]; then
|
||||
for lib in "${autoPatchelfLibs[@]}"; do
|
||||
for so in "$lib/"*.so*; do addToDepCache "$so"; done
|
||||
done
|
||||
depCacheInitialised=1
|
||||
fi
|
||||
|
||||
for dep in "${autoPatchelfCachedDeps[@]}"; do
|
||||
if [ "$filename" = "${dep##*/}" ]; then
|
||||
if [ "$(getBinArch "$dep")" = "$arch" ] && areBinOsabisCompatible "$osabi" "$(getBinOsabi "$dep")"; then
|
||||
foundDependency="$dep"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Populate the dependency cache with recursive dependencies *only* if we
|
||||
# didn't find the right dependency so far and afterwards run findDependency
|
||||
# again, but this time with $doneRecursiveSearch set to 1 so that it won't
|
||||
# recurse again (and thus infinitely).
|
||||
if [ $doneRecursiveSearch -eq 0 ]; then
|
||||
populateCacheWithRecursiveDeps
|
||||
doneRecursiveSearch=1
|
||||
findDependency "$filename" "$arch" || return 1
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
autoPatchelfFile() {
|
||||
local dep rpath="" toPatch="$1"
|
||||
|
||||
local interpreter
|
||||
interpreter="$(< "$NIX_BINTOOLS/nix-support/dynamic-linker")"
|
||||
|
||||
local interpreterArch interpreterOsabi toPatchArch toPatchOsabi
|
||||
interpreterArch="$(getBinArch "$interpreter")"
|
||||
interpreterOsabi="$(getBinOsabi "$interpreter")"
|
||||
toPatchArch="$(getBinArch "$toPatch")"
|
||||
toPatchOsabi="$(getBinOsabi "$toPatch")"
|
||||
|
||||
if [ "$interpreterArch" != "$toPatchArch" ]; then
|
||||
# Our target architecture is different than this file's architecture,
|
||||
# so skip it.
|
||||
echo "skipping $toPatch because its architecture ($toPatchArch) differs from target ($interpreterArch)" >&2
|
||||
return 0
|
||||
elif ! areBinOsabisCompatible "$interpreterOsabi" "$toPatchOsabi"; then
|
||||
echo "skipping $toPatch because its OS ABI ($toPatchOsabi) is not compatible with target ($interpreterOsabi)" >&2
|
||||
return 0
|
||||
fi
|
||||
|
||||
if isExecutable "$toPatch"; then
|
||||
runPatchelf --set-interpreter "$interpreter" "$toPatch"
|
||||
# shellcheck disable=SC2154
|
||||
# (runtimeDependencies is referenced but not assigned.)
|
||||
if [ -n "$runtimeDependencies" ]; then
|
||||
for dep in $runtimeDependencies; do
|
||||
rpath="$rpath${rpath:+:}$dep/lib"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
local libcLib
|
||||
libcLib="$(< "$NIX_BINTOOLS/nix-support/orig-libc")/lib"
|
||||
|
||||
echo "searching for dependencies of $toPatch" >&2
|
||||
|
||||
local missing
|
||||
missing="$(getDepsFromElfBinary "$toPatch")" || return 0
|
||||
|
||||
# This ensures that we get the output of all missing dependencies instead
|
||||
# of failing at the first one, because it's more useful when working on a
|
||||
# new package where you don't yet know its dependencies.
|
||||
|
||||
for dep in $missing; do
|
||||
if [[ "$dep" == /* ]]; then
|
||||
# This is an absolute path. If it exists, just use it. Otherwise,
|
||||
# we probably want this to produce an error when checked (because
|
||||
# just updating the rpath won't satisfy it).
|
||||
if [ -f "$dep" ]; then
|
||||
continue
|
||||
fi
|
||||
elif [ -f "$libcLib/$dep" ]; then
|
||||
# This library exists in libc, and will be correctly resolved by
|
||||
# the linker.
|
||||
continue
|
||||
fi
|
||||
|
||||
echo -n " $dep -> " >&2
|
||||
if findDependency "$dep" "$toPatchArch" "$toPatchOsabi"; then
|
||||
rpath="$rpath${rpath:+:}${foundDependency%/*}"
|
||||
echo "found: $foundDependency" >&2
|
||||
else
|
||||
echo "not found!" >&2
|
||||
autoPatchelfFailedDeps["$dep"]="$toPatch"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$rpath" ]; then
|
||||
echo "setting RPATH to: $rpath" >&2
|
||||
runPatchelf --set-rpath "$rpath" "$toPatch"
|
||||
fi
|
||||
}
|
||||
|
||||
# Can be used to manually add additional directories with shared object files
|
||||
# to be included for the next autoPatchelf invocation.
|
||||
addAutoPatchelfSearchPath() {
|
||||
local -a findOpts=()
|
||||
|
||||
# XXX: Somewhat similar to the one in the autoPatchelf function, maybe make
|
||||
# it DRY someday...
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--) shift; break;;
|
||||
@@ -296,15 +28,19 @@ addAutoPatchelfSearchPath() {
|
||||
esac
|
||||
done
|
||||
|
||||
while IFS= read -r -d '' file; do
|
||||
addToDepCache "$file"
|
||||
local dir=
|
||||
while IFS= read -r -d '' dir; do
|
||||
extraAutoPatchelfLibs+=("$dir")
|
||||
done < <(find "$@" "${findOpts[@]}" \! -type d \
|
||||
\( -name '*.so' -o -name '*.so.*' \) -print0)
|
||||
\( -name '*.so' -o -name '*.so.*' \) -print0 \
|
||||
| sed -z 's#/[^/]*$##' \
|
||||
| uniq -z
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
autoPatchelf() {
|
||||
local norecurse=
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--) shift; break;;
|
||||
@@ -317,47 +53,14 @@ autoPatchelf() {
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "autoPatchelf: No paths to patch specified." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "automatically fixing dependencies for ELF files" >&2
|
||||
|
||||
# Add all shared objects of the current output path to the start of
|
||||
# autoPatchelfCachedDeps so that it's chosen first in findDependency.
|
||||
addAutoPatchelfSearchPath ${norecurse:+--no-recurse} -- "$@"
|
||||
|
||||
while IFS= read -r -d $'\0' file; do
|
||||
isELF "$file" || continue
|
||||
segmentHeaders="$(LANG=C $READELF -l "$file")"
|
||||
# Skip if the ELF file doesn't have segment headers (eg. object files).
|
||||
# not using grep -q, because it can cause Broken pipe
|
||||
grep -q '^Program Headers:' <<<"$segmentHeaders" || continue
|
||||
if isExecutable "$file"; then
|
||||
# Skip if the executable is statically linked.
|
||||
grep -q "^ *INTERP\\>" <<<"$segmentHeaders" || continue
|
||||
fi
|
||||
# Jump file if patchelf is unable to parse it
|
||||
# Some programs contain binary blobs for testing,
|
||||
# which are identified as ELF but fail to be parsed by patchelf
|
||||
patchelf "$file" || continue
|
||||
autoPatchelfFile "$file"
|
||||
done < <(find "$@" ${norecurse:+-maxdepth 1} -type f -print0)
|
||||
|
||||
# fail if any dependencies were not found and
|
||||
# autoPatchelfIgnoreMissingDeps is not set
|
||||
local depsMissing=0
|
||||
for failedDep in "${!autoPatchelfFailedDeps[@]}"; do
|
||||
echo "autoPatchelfHook could not satisfy dependency $failedDep wanted by ${autoPatchelfFailedDeps[$failedDep]}"
|
||||
depsMissing=1
|
||||
done
|
||||
# shellcheck disable=SC2154
|
||||
# (autoPatchelfIgnoreMissingDeps is referenced but not assigned.)
|
||||
if [[ $depsMissing == 1 && -z "$autoPatchelfIgnoreMissingDeps" ]]; then
|
||||
echo "Add the missing dependencies to the build inputs or set autoPatchelfIgnoreMissingDeps=true"
|
||||
exit 1
|
||||
fi
|
||||
local runtimeDependenciesArray=($runtimeDependencies)
|
||||
@pythonInterpreter@ @autoPatchelfScript@ \
|
||||
${norecurse:+--no-recurse} \
|
||||
${autoPatchelfIgnoreMissingDeps:+--ignore-missing} \
|
||||
--paths "$@" \
|
||||
--libs "${autoPatchelfLibs[@]}" \
|
||||
"${extraAutoPatchelfLibs[@]}" \
|
||||
--runtime-dependencies "${runtimeDependenciesArray[@]/%//lib}"
|
||||
}
|
||||
|
||||
# XXX: This should ultimately use fixupOutputHooks but we currently don't have
|
||||
|
||||
@@ -51,7 +51,19 @@ makeWrapper() {
|
||||
local varName="$2" # name of list variable to add to
|
||||
local separator="$3" # character used to separate elements of list
|
||||
local value="$4" # one value, or multiple values separated by `separator`, to add to list
|
||||
if test -n "$value"; then
|
||||
|
||||
# Disable file globbing, since bash will otherwise try to find
|
||||
# filenames matching the the value to be prefixed/suffixed if
|
||||
# it contains characters considered wildcards, such as `?` and
|
||||
# `*`. We want the value as is, except we also want to split
|
||||
# it on on the separator; hence we can't quote it.
|
||||
local reenableGlob=0
|
||||
if [[ ! -o noglob ]]; then
|
||||
reenableGlob=1
|
||||
fi
|
||||
set -o noglob
|
||||
|
||||
if [[ -n "$value" ]]; then
|
||||
local old_ifs=$IFS
|
||||
IFS=$separator
|
||||
|
||||
@@ -86,6 +98,10 @@ makeWrapper() {
|
||||
done
|
||||
IFS=$old_ifs
|
||||
fi
|
||||
|
||||
if (( reenableGlob )); then
|
||||
set +o noglob
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p "$(dirname "$wrapper")"
|
||||
|
||||
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
"BINDIR=$(bin)/bin"
|
||||
"ZICDIR=$(bin)/bin"
|
||||
"ETCDIR=$(TMPDIR)/etc"
|
||||
"TZDEFAULT=$(TMPDIR)/etc"
|
||||
"TZDEFAULT=tzdefault-to-remove"
|
||||
"LIBDIR=$(dev)/lib"
|
||||
"MANDIR=$(man)/share/man"
|
||||
"AWK=awk"
|
||||
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
|
||||
postInstall =
|
||||
''
|
||||
rm $out/share/zoneinfo-posix
|
||||
rm $out/share/zoneinfo/tzdefault-to-remove
|
||||
mkdir $out/share/zoneinfo/posix
|
||||
( cd $out/share/zoneinfo/posix; ln -s ../* .; rm posix )
|
||||
mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
|
||||
|
||||
@@ -1 +1 @@
|
||||
WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.5/ -A '*.tar.xz' )
|
||||
WGET_ARGS=( https://download.kde.org/stable/plasma/5.24.0/ -A '*.tar.xz' )
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n }:
|
||||
{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n, kcoreaddons }:
|
||||
|
||||
mkDerivation {
|
||||
name = "kdecoration";
|
||||
nativeBuildInputs = [ extra-cmake-modules ];
|
||||
buildInputs = [ qtbase ki18n ];
|
||||
buildInputs = [ qtbase ki18n kcoreaddons ];
|
||||
outputs = [ "out" "dev" ];
|
||||
}
|
||||
|
||||
+4
-4
@@ -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
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -168,6 +168,7 @@ stdenv.mkDerivation rec {
|
||||
./creds-test.patch
|
||||
./go-1.9-skip-flaky-19608.patch
|
||||
./go-1.9-skip-flaky-20072.patch
|
||||
./skip-chown-tests-1.16.patch
|
||||
./skip-external-network-tests-1.16.patch
|
||||
./skip-nohup-tests.patch
|
||||
./skip-cgo-tests-1.15.patch
|
||||
|
||||
@@ -168,6 +168,7 @@ stdenv.mkDerivation rec {
|
||||
./creds-test.patch
|
||||
./go-1.9-skip-flaky-19608.patch
|
||||
./go-1.9-skip-flaky-20072.patch
|
||||
./skip-chown-tests-1.16.patch
|
||||
./skip-external-network-tests-1.16.patch
|
||||
./skip-nohup-tests.patch
|
||||
./skip-cgo-tests-1.15.patch
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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/";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
, pkg-config
|
||||
, zlib
|
||||
, libpng
|
||||
, libjpeg ? null
|
||||
, libwebp ? null
|
||||
, libtiff ? null
|
||||
, libXpm ? null
|
||||
, libjpeg
|
||||
, libwebp
|
||||
, libtiff
|
||||
, libXpm
|
||||
, libavif
|
||||
, fontconfig
|
||||
, freetype
|
||||
}:
|
||||
@@ -41,8 +42,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
nativeBuildInputs = [ autoconf automake pkg-config ];
|
||||
|
||||
buildInputs = [ zlib fontconfig freetype ];
|
||||
propagatedBuildInputs = [ libpng libjpeg libwebp libtiff libXpm ];
|
||||
buildInputs = [ zlib fontconfig freetype libpng libjpeg libwebp libtiff libXpm libavif ];
|
||||
|
||||
outputs = [ "bin" "dev" "out" ];
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gdbm";
|
||||
version = "1.20";
|
||||
version = "1.23";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/gdbm/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-OurAVkizSCoQotqYa586OAoprWUL6AuYF6Q1+4EUopI=";
|
||||
sha256 = "sha256-dLEIHSH/8TrkvXwW5dblBKTCb3zeHcoNljpIQXS7ys0=";
|
||||
};
|
||||
|
||||
doCheck = true; # not cross;
|
||||
|
||||
@@ -45,11 +45,11 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "glib";
|
||||
version = "2.70.2";
|
||||
version = "2.70.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "BVFFnIXNPaPVjdyQFv0ovlr1A/XhYVpxultRKslFgG8=";
|
||||
sha256 = "Iz+khBweGeOW23YH1Y9rdbozE8UL8Pzgey41MtXrfUY=";
|
||||
};
|
||||
|
||||
patches = optionals stdenv.isDarwin [
|
||||
|
||||
Binary file not shown.
@@ -44,7 +44,7 @@
|
||||
|
||||
let
|
||||
version = "2.33";
|
||||
patchSuffix = "-108";
|
||||
patchSuffix = "-117";
|
||||
sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
|
||||
in
|
||||
|
||||
@@ -63,7 +63,7 @@ stdenv.mkDerivation ({
|
||||
[
|
||||
/* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
|
||||
$ git fetch --all -p && git checkout origin/release/2.33/master && git describe
|
||||
glibc-2.33-108-g3e2a15c666
|
||||
glibc-2.33-117-g55446dd8a2
|
||||
$ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
|
||||
|
||||
To compare the archive contents zdiff can be used.
|
||||
|
||||
@@ -20,6 +20,8 @@ in stdenv.mkDerivation {
|
||||
mkdir -p $out
|
||||
cp ${configGuess} $out/config.guess
|
||||
cp ${configSub} $out/config.sub
|
||||
|
||||
chmod +x $out/config.*
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -1,28 +1,37 @@
|
||||
{ lib, stdenv, fetchurl, fetchpatch
|
||||
, autoreconfHook, libgpg-error, gnupg, pkg-config, glib, pth, libassuan
|
||||
, file, which, ncurses
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, libgpg-error
|
||||
, gnupg
|
||||
, pkg-config
|
||||
, glib
|
||||
, pth
|
||||
, libassuan
|
||||
, file
|
||||
, which
|
||||
, ncurses
|
||||
, texinfo
|
||||
, buildPackages
|
||||
, qtbase ? null
|
||||
, pythonSupport ? false, swig2 ? null, python ? null
|
||||
, pythonSupport ? false
|
||||
, swig2 ? null
|
||||
, python ? null
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gpgme";
|
||||
version = "1.16.0";
|
||||
version = "1.17.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
|
||||
sha256 = "1l4yw9fqc1blvx1sq1jnfvp1jijla3ca2jw90p4x9m8hvfpc933c";
|
||||
sha256 = "1xb9k88rrafdi0n95nzx0d6bz7hcn9b44hciqbigrqkvxc6gblsf";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# probably included in > 1.16.0
|
||||
./test_t-edit-sign.diff
|
||||
# https://dev.gnupg.org/rMc4cf527ea227edb468a84bf9b8ce996807bd6992
|
||||
./fix_gpg_list_keys.diff
|
||||
# https://lists.gnupg.org/pipermail/gnupg-devel/2020-April/034591.html
|
||||
@@ -31,22 +40,48 @@ stdenv.mkDerivation rec {
|
||||
url = "https://lists.gnupg.org/pipermail/gnupg-devel/attachments/20200415/f7be62d1/attachment.obj";
|
||||
sha256 = "00d4sxq63601lzdp2ha1i8fvybh7dzih4531jh8bx07fab3sw65g";
|
||||
})
|
||||
# Support Python 3.10 version detection without distutils, https://dev.gnupg.org/D545
|
||||
./python-310-detection-without-distutils.patch
|
||||
# Find correct version string for Python >= 3.10, https://dev.gnupg.org/D546
|
||||
./python-find-version-string-above-310.patch
|
||||
# Disable python tests on Darwin as they use gpg (see configureFlags below)
|
||||
] ++ lib.optional stdenv.isDarwin ./disable-python-tests.patch
|
||||
# Fix _AC_UNDECLARED_WARNING for autoconf≥2.70. See https://lists.gnupg.org/pipermail/gnupg-devel/2020-November/034643.html
|
||||
# Fix _AC_UNDECLARED_WARNING for autoconf>=2.70
|
||||
# See https://lists.gnupg.org/pipermail/gnupg-devel/2020-November/034643.html
|
||||
++ lib.optional stdenv.cc.isClang ./fix-clang-autoconf-undeclared-warning.patch;
|
||||
|
||||
outputs = [ "out" "dev" "info" ];
|
||||
|
||||
outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
|
||||
|
||||
propagatedBuildInputs =
|
||||
[ libgpg-error glib libassuan pth ]
|
||||
++ lib.optional (qtbase != null) qtbase;
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gnupg
|
||||
pkg-config
|
||||
texinfo
|
||||
] ++ lib.optionals pythonSupport [
|
||||
ncurses
|
||||
python
|
||||
swig2
|
||||
which
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config gnupg texinfo autoreconfHook ]
|
||||
++ lib.optionals pythonSupport [ python swig2 which ncurses ];
|
||||
propagatedBuildInputs = [
|
||||
glib
|
||||
libassuan
|
||||
libgpg-error
|
||||
pth
|
||||
] ++ lib.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' )
|
||||
|
||||
+3
-3
@@ -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()) {
|
||||
|
||||
@@ -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,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" ];
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
+1
-1
@@ -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 = [
|
||||
+5
-5
@@ -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 ];
|
||||
};
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user