Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2022-05-24 00:02:57 +00:00 committed by GitHub
commit 574f2d4696
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
86 changed files with 1995 additions and 215 deletions

View file

@ -28,14 +28,14 @@ jobs:
pairs:
- from: master
into: haskell-updates
- from: release-21.05
into: staging-next-21.05
- from: staging-next-21.05
into: staging-21.05
- from: release-21.11
into: staging-next-21.11
- from: staging-next-21.11
into: staging-21.11
- from: release-22.05
into: staging-next-22.05
- from: staging-next-22.05
into: staging-22.05
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v3

View file

@ -1 +1 @@
22.05
22.11

View file

@ -34,8 +34,11 @@ rec {
# Either of these can be losslessly-extracted from `parsed` iff parsing succeeds.
system = parse.doubleFromSystem final.parsed;
config = parse.tripleFromSystem final.parsed;
# Determine whether we are compatible with the provided CPU
isCompatible = platform: parse.isCompatible final.parsed.cpu platform.parsed.cpu;
# Determine whether we can execute binaries built for the provided platform.
canExecute = platform:
parse.isCompatible final.parsed.cpu platform.parsed.cpu
&& final.parsed.kernel == platform.parsed.kernel;
isCompatible = _: throw "2022-05-23: isCompatible has been removed in favor of canExecute, refer to the 22.11 changelog for details";
# Derived meta-data
libc =
/**/ if final.isDarwin then "libSystem"

View file

@ -148,8 +148,10 @@ rec {
# Every CPU is compatible with itself.
# - (transitivity)
# If A is compatible with B and B is compatible with C then A is compatible with C.
# - (compatible under multiple endianness)
# CPUs with multiple modes of endianness are pairwise compatible.
#
# Note: Since 22.11 the archs of a mode switching CPU are no longer considered
# pairwise compatible. Mode switching implies that binaries built for A
# and B respectively can't be executed at the same time.
isCompatible = a: b: with cpuTypes; lib.any lib.id [
# x86
(b == i386 && isCompatible a i486)
@ -191,22 +193,13 @@ rec {
(b == aarch64 && a == armv8a)
(b == armv8a && isCompatible a aarch64)
(b == aarch64 && a == aarch64_be)
(b == aarch64_be && isCompatible a aarch64)
# PowerPC
(b == powerpc && isCompatible a powerpc64)
(b == powerpcle && isCompatible a powerpc)
(b == powerpc && a == powerpcle)
(b == powerpc64le && isCompatible a powerpc64)
(b == powerpc64 && a == powerpc64le)
(b == powerpcle && isCompatible a powerpc64le)
# MIPS
(b == mips && isCompatible a mips64)
(b == mips && a == mipsel)
(b == mipsel && isCompatible a mips)
(b == mips64 && a == mips64el)
(b == mips64el && isCompatible a mips64)
(b == mipsel && isCompatible a mips64el)
# RISCV
(b == riscv32 && isCompatible a riscv64)

View file

@ -195,7 +195,7 @@ rec {
On each release the first letter is bumped and a new animal is chosen
starting with that new letter.
*/
codeName = "Quokka";
codeName = "Raccoon";
/* Returns the current nixpkgs version suffix as string. */
versionSuffix =

View file

@ -3429,6 +3429,12 @@
fingerprint = "389A 78CB CD88 5E0C 4701 DEB9 FD42 C7D0 D414 94C8";
}];
};
dukc = {
email = "ajieskola@gmail.com";
github = "dukc";
githubId = 24233408;
name = "Ate Eskola";
};
dump_stack = {
email = "root@dumpstack.io";
github = "jollheef";

View file

@ -0,0 +1,80 @@
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-release-22.11">
<title>Release 22.11 (“Raccoon”, 2022.11/??)</title>
<para>
Support is planned until the end of June 2023, handing over to
23.05.
</para>
<section xml:id="sec-release-22.11-highlights">
<title>Highlights</title>
<para>
In addition to numerous new and upgraded packages, this release
has the following highlights:
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
During cross-compilation, tests are now executed if the test
suite can be executed by the build platform. This is the case
when doing “native” cross-compilation where the build and host
platforms are largely the same, but the nixpkgs cross
compilation infrastructure is used, e.g.
<literal>pkgsStatic</literal> and <literal>pkgsLLVM</literal>.
Another possibility is that the build platform is a superset
of the host platform, e.g. when cross-compiling from
<literal>x86_64-unknown-linux</literal> to
<literal>i686-unknown-linux</literal>. The predicate gating
test suite execution is the newly added
<literal>canExecute</literal> predicate: You can e.g. check if
<literal>stdenv.buildPlatform</literal> can execute binaries
built for <literal>stdenv.hostPlatform</literal> (i.e.
produced by <literal>stdenv.cc</literal>) by evaluating
<literal>stdenv.buildPlatform.canExecute stdenv.hostPlatform</literal>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.11-new-services">
<title>New Services</title>
<itemizedlist spacing="compact">
<listitem>
<para>
Please remove this line when you add the first item since
docbook requires the section to be non-empty
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.11-incompatibilities">
<title>Backward Incompatibilities</title>
<itemizedlist spacing="compact">
<listitem>
<para>
The <literal>isCompatible</literal> predicate checking CPU
compatibility is no longer exposed by the platform sets
generated using <literal>lib.systems.elaborate</literal>. In
most cases you will want to use the new
<literal>canExecute</literal> predicate instead which also
considers the kernel / syscall interface. It is briefly
described in the releases
<link linkend="sec-release-22.11-highlights">highlights
section</link>.
<literal>lib.systems.parse.isCompatible</literal> still
exists, but has changed semantically: Architectures with
differing endianness modes are <emphasis>no longer considered
compatible</emphasis>.
</para>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-22.11-notable-changes">
<title>Other Notable Changes</title>
<itemizedlist spacing="compact">
<listitem>
<para>
Please remove this line when you add the first item since
docbook requires the section to be non-empty
</para>
</listitem>
</itemizedlist>
</section>
</section>

View file

@ -8,6 +8,7 @@
This section lists the release notes for each stable version of NixOS and
current unstable revision.
</para>
<xi:include href="../from_md/release-notes/rl-2211.section.xml" />
<xi:include href="../from_md/release-notes/rl-2205.section.xml" />
<xi:include href="../from_md/release-notes/rl-2111.section.xml" />
<xi:include href="../from_md/release-notes/rl-2105.section.xml" />

View file

@ -0,0 +1,43 @@
# Release 22.11 (“Raccoon”, 2022.11/??) {#sec-release-22.11}
Support is planned until the end of June 2023, handing over to 23.05.
## Highlights {#sec-release-22.11-highlights}
In addition to numerous new and upgraded packages, this release has the following highlights:
- During cross-compilation, tests are now executed if the test suite can be executed
by the build platform. This is the case when doing “native” cross-compilation
where the build and host platforms are largely the same, but the nixpkgs' cross
compilation infrastructure is used, e.g. `pkgsStatic` and `pkgsLLVM`. Another
possibility is that the build platform is a superset of the host platform, e.g. when
cross-compiling from `x86_64-unknown-linux` to `i686-unknown-linux`.
The predicate gating test suite execution is the newly added `canExecute`
predicate: You can e.g. check if `stdenv.buildPlatform` can execute binaries
built for `stdenv.hostPlatform` (i.e. produced by `stdenv.cc`) by evaluating
`stdenv.buildPlatform.canExecute stdenv.hostPlatform`.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## New Services {#sec-release-22.11-new-services}
- Please remove this line when you add the first item since docbook requires the section to be non-empty
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Backward Incompatibilities {#sec-release-22.11-incompatibilities}
- The `isCompatible` predicate checking CPU compatibility is no longer exposed
by the platform sets generated using `lib.systems.elaborate`. In most cases
you will want to use the new `canExecute` predicate instead which also
considers the kernel / syscall interface. It is briefly described in the
release's [highlights section](#sec-release-22.11-highlights).
`lib.systems.parse.isCompatible` still exists, but has changed semantically:
Architectures with differing endianness modes are *no longer considered compatible*.
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
## Other Notable Changes {#sec-release-22.11-notable-changes}
- Please remove this line when you add the first item since docbook requires the section to be non-empty
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

View file

@ -17,7 +17,7 @@ let
else if xserverCfg.enable || config.programs.sway.enable then
"gnome3"
else
null;
"curses";
in

View file

@ -633,8 +633,13 @@ in {
services.nextcloud.phpPackage =
if versionOlder cfg.package.version "21" then pkgs.php74
else if versionOlder cfg.package.version "24" then pkgs.php80
else pkgs.php81;
# FIXME: Use PHP 8.1 with Nextcloud 24 and higher, once issues like this one are fixed:
#
# https://github.com/nextcloud/twofactor_totp/issues/1192
#
# else if versionOlder cfg.package.version "24" then pkgs.php80
# else pkgs.php81;
else pkgs.php80;
}
{ assertions = [

View file

@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "0ka2kscpjff7gflsargv3r9fdaxhkf3nym9mfaln3pnq6q7fwdki";
};
NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
NIX_CFLAGS_COMPILE = lib.optional stdenv.cc.isGNU "-Wno-error=catch-value";
nativeBuildInputs = [ pkg-config ];
@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
description = "gnuclad tries to help the environment by creating trees. Its primary use will be generating cladogram trees for the GNU/Linux distro timeline project";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mog ];
platforms = platforms.linux;
platforms = platforms.unix;
};
}

View file

@ -5,14 +5,14 @@
python3Packages.buildPythonApplication rec {
pname = "flexget";
version = "3.3.11";
version = "3.3.12";
# Fetch from GitHub in order to use `requirements.in`
src = fetchFromGitHub {
owner = "flexget";
repo = "flexget";
rev = "refs/tags/v${version}";
hash = "sha256-nmGGGzqsce9agAPmE+xJ6/jv2avWlSDhaQr2PxptYcQ=";
hash = "sha256-DrM2925PcNuwJooq9qGHgIq64JWHb7byDeaeVsWgEjc=";
};
postPatch = ''

View file

@ -1,5 +1,4 @@
{ mkDerivation
, lib
{ lib
, fetchFromGitHub
, callPackage
, pkg-config
@ -10,9 +9,10 @@
, wrapQtAppsHook
, extra-cmake-modules
, qtbase
, qtsvg
, qtimageformats
, qt5compat
, gtk3
, kwayland
, libdbusmenu
, lz4
, xxHash
@ -70,7 +70,7 @@ let
in
env.mkDerivation rec {
pname = "telegram-desktop";
version = "3.6.0";
version = "3.7.3";
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
# Telegram-Desktop with submodules
@ -79,17 +79,9 @@ env.mkDerivation rec {
repo = "tdesktop";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "0zcjm08nfdlxrsv0fi6dqg3lk52bcvsxnsf6jm5fv6gf5v9ia3hq";
sha256 = "01b3nrhfbxhq4w63nsjnrhyfsdq3fm4l7sfkasbh8ib4qk3c9vwz";
};
patches = [
# fix build with KWayland 5.94+
# cf. https://invent.kde.org/frameworks/kwayland/-/commit/de442e4a94e249a29cf2e005db8e0a5e4a6a13ed
# upstream bug: https://github.com/telegramdesktop/tdesktop/issues/24375
# FIXME remove when no longer necessary
./kf594.diff
];
postPatch = ''
substituteInPlace Telegram/CMakeLists.txt \
--replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
@ -120,9 +112,10 @@ env.mkDerivation rec {
buildInputs = [
qtbase
qtsvg
qtimageformats
qt5compat
gtk3
kwayland
libdbusmenu
lz4
xxHash
@ -166,8 +159,6 @@ env.mkDerivation rec {
"-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
# See: https://github.com/NixOS/nixpkgs/pull/130827#issuecomment-885212649
"-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF"
# TODO: Remove once QT6 is available in nixpkgs
"-DDESKTOP_APP_QT6=OFF"
];
postFixup = ''

View file

@ -1,57 +0,0 @@
diff --git a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
index 7641579aa..3c195e397 100644
--- a/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
+++ b/Telegram/SourceFiles/platform/linux/linux_wayland_integration.cpp
@@ -9,10 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "base/platform/base_platform_info.h"
-#include <connection_thread.h>
-#include <registry.h>
-#include <surface.h>
-#include <plasmashell.h>
+#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/registry.h>
+#include <KWayland/Client/surface.h>
+#include <KWayland/Client/plasmashell.h>
using namespace KWayland::Client;
Submodule Telegram/lib_base contains modified content
diff --git a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
index 32f0de6..30a087f 100644
--- a/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
+++ b/Telegram/lib_base/base/platform/linux/base_linux_wayland_integration.cpp
@@ -13,11 +13,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include <QtCore/QPointer>
#include <QtGui/QWindow>
-#include <connection_thread.h>
-#include <registry.h>
-#include <surface.h>
-#include <xdgforeign.h>
-#include <idleinhibit.h>
+#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/registry.h>
+#include <KWayland/Client/surface.h>
+#include <KWayland/Client/xdgforeign.h>
+#include <KWayland/Client/idleinhibit.h>
using namespace KWayland::Client;
Submodule Telegram/lib_ui contains modified content
diff --git a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
index 01f1e80..163cb6a 100644
--- a/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
+++ b/Telegram/lib_ui/ui/platform/linux/ui_linux_wayland_integration.cpp
@@ -24,8 +24,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include <private/qwaylandwindow_p.h>
#include <private/qwaylandshellsurface_p.h>
-#include <connection_thread.h>
-#include <registry.h>
+#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/registry.h>
Q_DECLARE_METATYPE(QMargins);

View file

@ -9,13 +9,13 @@
stdenv.mkDerivation {
pname = "tg_owt";
version = "unstable-2022-02-25";
version = "unstable-2022-04-14";
src = fetchFromGitHub {
owner = "desktop-app";
repo = "tg_owt";
rev = "a264028ec71d9096e0aa629113c49c25db89d260";
sha256 = "10p3x8z3ps8s1ivi9y8px2gsg4pvsvz6g9wbgh5w8hilikxqq7r5";
rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396";
sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM=";
fetchSubmodules = true;
};

View file

@ -165,6 +165,11 @@
"https://ftp.postgresql.org/pub/"
];
# Qt
qt = [
"https://download.qt.io/"
];
# Roy marples mirrors
roy = [
"https://roy.marples.name/downloads/"

View file

@ -60,24 +60,46 @@ stdenv.mkDerivation rec {
# Not using patches option to make it easy to patch, for example, dmd and
# Phobos at same time if that's required
patchPhase =
lib.optionalString (builtins.compareVersions version "2.092.1" <= 0) ''
# Migrates D1-style operator overloads in DMD source, to allow building with
# a newer DMD
lib.optionalString (lib.versionOlder version "2.088.0") ''
patch -p1 -F3 --directory=dmd -i ${(fetchpatch {
url = "https://github.com/dlang/dmd/commit/c4d33e5eb46c123761ac501e8c52f33850483a8a.patch";
sha256 = "0rhl9h3hsi6d0qrz24f4zx960cirad1h8mm383q6n21jzcw71cp5";
})}
''
# Fixes C++ tests that compiled on older C++ but not on the current one
+ lib.optionalString (lib.versionOlder version "2.092.2") ''
patch -p1 -F3 --directory=druntime -i ${(fetchpatch {
url = "https://github.com/dlang/druntime/commit/438990def7e377ca1f87b6d28246673bb38022ab.patch";
sha256 = "0nxzkrd1rzj44l83j7jj90yz2cv01na8vn9d116ijnm85jl007b4";
})}
''
+ postPatch;
'' + postPatch;
postPatch =
''
patchShebangs .
''
'' + lib.optionalString (version == "2.092.1") ''
# This one has tested against a hardcoded year, then against a current year on
# and off again. It just isn't worth it to patch all the historical versions
# of it, so just remove it until the most recent change.
+ lib.optionalString (lib.versionOlder version "2.091.0") ''
rm dmd/test/compilable/ddocYear.d
''
+ lib.optionalString (version == "2.092.1") ''
rm dmd/test/dshell/test6952.d
'' + lib.optionalString (builtins.compareVersions "2.092.1" version < 0) ''
'' + lib.optionalString (lib.versionAtLeast version "2.092.2") ''
substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
''
'' + ''
+ ''
rm dmd/test/runnable/gdb1.d
rm dmd/test/runnable/gdb10311.d
rm dmd/test/runnable/gdb14225.d
@ -87,8 +109,9 @@ stdenv.mkDerivation rec {
rm dmd/test/runnable/gdb15729.sh
rm dmd/test/runnable/gdb4149.d
rm dmd/test/runnable/gdb4181.d
''
'' + lib.optionalString stdenv.isLinux ''
+ lib.optionalString stdenv.isLinux ''
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
@ -178,7 +201,7 @@ stdenv.mkDerivation rec {
# Everything is now Boost licensed, even the backend.
# https://github.com/dlang/dmd/pull/6680
license = licenses.boost;
maintainers = with maintainers; [ ThomasMader lionello ];
maintainers = with maintainers; [ ThomasMader lionello dukc ];
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
};
}

View file

@ -1,24 +1,22 @@
{ lib, pkgs, stdenv, fetchFromGitHub, jdk11_headless }:
{ lib, pkgs, stdenv, fetchzip, jdk17_headless }:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "lfc";
version = "0.1.0";
version = "0.2.0";
src = fetchFromGitHub {
owner = "revol-xut";
repo = "lingua-franca-nix-releases";
rev = "d37bbfa530f0189c3e86ce0191134cdf42c6aec7";
sha256 = "/qMBOjffvShCPcbh9rJ7aVgdgZQ1hilHakjLyEhSmgs=";
src = fetchzip {
url = "https://github.com/lf-lang/lingua-franca/releases/download/v${version}/lfc_${version}.zip";
sha256 = "rBx7UnPLufZBO7lG0In5upHqYCyRtI4kQv0V83CZHew=";
};
buildInputs = [ jdk11_headless ];
buildInputs = [ jdk17_headless ];
_JAVA_HOME = "${jdk11_headless}/";
_JAVA_HOME = "${jdk17_headless}/";
postPatch = ''
substituteInPlace bin/lfc \
--replace 'base=`dirname $(dirname ''${abs_path})`' "base='$out'" \
--replace "run_lfc_with_args" "${jdk11_headless}/bin/java -jar $out/lib/jars/org.lflang.lfc-0.1.0-SNAPSHOT-all.jar"
--replace "run_lfc_with_args" "${jdk17_headless}/bin/java -jar $out/lib/jars/org.lflang.lfc-${version}-SNAPSHOT-all.jar"
'';
installPhase = ''

View file

@ -17,9 +17,9 @@ stdenv.mkDerivation rec {
};
nativeBuildInputs = [ cmake ]
++ lib.optional (!(stdenv.hostPlatform.isCompatible stdenv.buildPlatform)) capnproto;
++ lib.optional (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) capnproto;
cmakeFlags = lib.optional (!(stdenv.hostPlatform.isCompatible stdenv.buildPlatform)) "-DEXTERNAL_CAPNP";
cmakeFlags = lib.optional (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) "-DEXTERNAL_CAPNP";
# Upstream 77ac9154440bcc216fda1092fd5bb51da62ae09c, modified to apply to v0.9.1. Drop on update.
patches = lib.optional stdenv.hostPlatform.isMusl ./musl-no-fibers.patch;

View file

@ -1,7 +1,9 @@
{ lib, stdenv, fetchurl, fetchpatch
, autoreconfHook
, doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping
# test suite depends on dejagnu which cannot be used during bootstrapping
# dejagnu also requires tcl which can't be built statically at the moment
, doCheck ? !(stdenv.hostPlatform.isStatic)
, dejagnu
}:

View file

@ -0,0 +1,129 @@
commit 4f497c358e0386b65df1c1d636aadf72f8647134
Author: Nick Cao <nickcao@nichi.co>
Date: Tue Apr 19 13:49:59 2022 +0800
patch cmake file generation for nixpkgs packaging
As of qt 6.3.0, installing components into different prefixes is not
supported. To workaround that, we move files to their designated in the
postInstall hook. However the generated cmake files still have
references to the original prefix, and would cause issues when using
said components as the dependency of other packages. The purpose of this
patch is to closely match the output layout of qt, and rewrite the
generated cmake files to point to the corrected pathes.
diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx
index 8b0f64e23b..03291e2ee2 100644
--- a/Source/cmExportFileGenerator.cxx
+++ b/Source/cmExportFileGenerator.cxx
@@ -6,6 +6,7 @@
#include <cstring>
#include <sstream>
#include <utility>
+#include <cstdlib>
#include <cm/memory>
@@ -325,9 +326,23 @@ static void prefixItems(std::string& exportDirs)
for (std::string const& e : entries) {
exportDirs += sep;
sep = ";";
- if (!cmSystemTools::FileIsFullPath(e) &&
- e.find("${_IMPORT_PREFIX}") == std::string::npos) {
- exportDirs += "${_IMPORT_PREFIX}/";
+ if (!cmSystemTools::FileIsFullPath(e)) {
+ if (std::getenv("dev")) {
+ if (cmHasLiteralPrefix(e, "include") || cmHasLiteralPrefix(e, "./include")) {
+ exportDirs += std::getenv("dev");
+ } else if (cmHasLiteralPrefix(e, "bin") || cmHasLiteralPrefix(e, "./bin")) {
+ exportDirs += std::getenv("dev");
+ } else if (cmHasLiteralPrefix(e, "mkspecs") || cmHasLiteralPrefix(e, "./mkspecs")) {
+ exportDirs += std::getenv("dev");
+ } else if (cmHasLiteralPrefix(e, "libexec") || cmHasLiteralPrefix(e, "./libexec")) {
+ exportDirs += std::getenv("dev");
+ } else {
+ exportDirs += std::getenv("out");
+ }
+ } else {
+ exportDirs += std::getenv("out");
+ }
+ exportDirs += "/";
}
exportDirs += e;
}
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index 4a3c565bce..5afa9e5e50 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -5,6 +5,7 @@
#include <memory>
#include <sstream>
#include <utility>
+#include <cstdlib>
#include "cmExportSet.h"
#include "cmGeneratedFileStream.h"
@@ -263,7 +264,7 @@ void cmExportInstallFileGenerator::LoadConfigFiles(std::ostream& os)
void cmExportInstallFileGenerator::ReplaceInstallPrefix(std::string& input)
{
- cmGeneratorExpression::ReplaceInstallPrefix(input, "${_IMPORT_PREFIX}");
+ cmGeneratorExpression::ReplaceInstallPrefix(input, std::getenv("out"));
}
bool cmExportInstallFileGenerator::GenerateImportFileConfig(
@@ -381,9 +382,24 @@ void cmExportInstallFileGenerator::SetImportLocationProperty(
// Construct the installed location of the target.
std::string dest = itgen->GetDestination(config);
std::string value;
+
if (!cmSystemTools::FileIsFullPath(dest)) {
- // The target is installed relative to the installation prefix.
- value = "${_IMPORT_PREFIX}/";
+ if (std::getenv("dev")) {
+ if (cmHasLiteralPrefix(dest, "include") || cmHasLiteralPrefix(dest, "./include")) {
+ value = std::getenv("dev");
+ } else if (cmHasLiteralPrefix(dest, "bin") || cmHasLiteralPrefix(dest, "./bin")) {
+ value = std::getenv("dev");
+ } else if (cmHasLiteralPrefix(dest, "mkspecs") || cmHasLiteralPrefix(dest, "./mkspecs")) {
+ value = std::getenv("dev");
+ } else if (cmHasLiteralPrefix(dest, "libexec") || cmHasLiteralPrefix(dest, "./libexec")) {
+ value = std::getenv("dev");
+ } else {
+ value = std::getenv("out");
+ }
+ } else {
+ value = std::getenv("out");
+ }
+ value += "/";
}
value += dest;
value += "/";
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx
index 840f5112d6..7bb4ab41aa 100644
--- a/Source/cmGeneratorExpression.cxx
+++ b/Source/cmGeneratorExpression.cxx
@@ -197,7 +197,22 @@ static void prefixItems(const std::string& content, std::string& result,
sep = ";";
if (!cmSystemTools::FileIsFullPath(e) &&
cmGeneratorExpression::Find(e) != 0) {
- result += prefix;
+ if (std::getenv("dev")) {
+ if (cmHasLiteralPrefix(e, "include") || cmHasLiteralPrefix(e, "./include")) {
+ result += std::getenv("dev");
+ } else if (cmHasLiteralPrefix(e, "bin") || cmHasLiteralPrefix(e, "./bin")) {
+ result += std::getenv("dev");
+ } else if (cmHasLiteralPrefix(e, "mkspecs") || cmHasLiteralPrefix(e, "./mkspecs")) {
+ result += std::getenv("dev");
+ } else if (cmHasLiteralPrefix(e, "libexec") || cmHasLiteralPrefix(e, "./libexec")) {
+ result += std::getenv("dev");
+ } else {
+ result += std::getenv("out");
+ }
+ } else {
+ result += std::getenv("out");
+ }
+ result += "/";
}
result += e;
}

View file

@ -0,0 +1,94 @@
{ newScope
, lib
, stdenv
, fetchurl
, fetchgit
, fetchpatch
, fetchFromGitHub
, makeSetupHook
, makeWrapper
, bison
, cups
, harfbuzz
, libGL
, perl
, cmake
, ninja
, writeText
, gstreamer
, gst-plugins-base
, gtk3
, dconf
# options
, developerBuild ? false
, debug ? false
}:
let
srcs = import ./srcs.nix {
inherit fetchurl;
mirror = "mirror://qt";
};
qtModule =
import ./qtModule.nix
{ inherit stdenv lib perl cmake ninja writeText; }
{ inherit self srcs; };
addPackages = self: with self;
let
callPackage = self.newScope { inherit qtModule srcs; };
in
{
inherit callPackage qtModule srcs;
qtbase = callPackage ./modules/qtbase.nix {
withGtk3 = true;
inherit (srcs.qtbase) src version;
inherit bison cups harfbuzz libGL dconf gtk3 developerBuild cmake;
};
qt3d = callPackage ./modules/qt3d.nix { };
qt5compat = callPackage ./modules/qt5compat.nix { };
qtcharts = callPackage ./modules/qtcharts.nix { };
qtconnectivity = callPackage ./modules/qtconnectivity.nix { };
qtdatavis3d = callPackage ./modules/qtdatavis3d.nix { };
qtdeclarative = callPackage ./modules/qtdeclarative.nix { };
qtdoc = callPackage ./modules/qtdoc.nix { };
qtimageformats = callPackage ./modules/qtimageformats.nix { };
qtlanguageserver = callPackage ./modules/qtlanguageserver.nix { };
qtlottie = callPackage ./modules/qtlottie.nix { };
qtmultimedia = callPackage ./modules/qtmultimedia.nix {
inherit gstreamer gst-plugins-base;
};
qtnetworkauth = callPackage ./modules/qtnetworkauth.nix { };
qtpositioning = callPackage ./modules/qtpositioning.nix { };
qtsensors = callPackage ./modules/qtsensors.nix { };
qtserialbus = callPackage ./modules/qtserialbus.nix { };
qtserialport = callPackage ./modules/qtserialport.nix { };
qtshadertools = callPackage ./modules/qtshadertools.nix { };
qtquick3d = callPackage ./modules/qtquick3d.nix { };
qtquicktimeline = callPackage ./modules/qtquicktimeline.nix { };
qtremoteobjects = callPackage ./modules/qtremoteobjects.nix { };
qtsvg = callPackage ./modules/qtsvg.nix { };
qtscxml = callPackage ./modules/qtscxml.nix { };
qttools = callPackage ./modules/qttools.nix { };
qttranslations = callPackage ./modules/qttranslations.nix { };
qtvirtualkeyboard = callPackage ./modules/qtvirtualkeyboard.nix { };
qtwayland = callPackage ./modules/qtwayland.nix { };
qtwebchannel = callPackage ./modules/qtwebchannel.nix { };
qtwebengine = callPackage ./modules/qtwebengine.nix { };
qtwebsockets = callPackage ./modules/qtwebsockets.nix { };
qtwebview = callPackage ./modules/qtwebview.nix { };
wrapQtAppsHook = makeSetupHook
{
deps = [ self.qtbase.dev self.qtwayland.dev makeWrapper ];
} ./hooks/wrap-qt-apps-hook.sh;
};
self = lib.makeScope newScope addPackages;
in
self

View file

@ -0,0 +1 @@
WGET_ARGS=( http://download.qt.io/official_releases/qt/6.3/6.3.0/submodules/ -A '*.tar.xz' )

View file

@ -0,0 +1,43 @@
if [[ -n "${__nix_qtbase-}" ]]; then
# Throw an error if a different version of Qt was already set up.
if [[ "$__nix_qtbase" != "@dev@" ]]; then
echo >&2 "Error: detected mismatched Qt dependencies:"
echo >&2 " @dev@"
echo >&2 " $__nix_qtbase"
exit 1
fi
else # Only set up Qt once.
__nix_qtbase="@dev@"
qtPluginPrefix=@qtPluginPrefix@
qtQmlPrefix=@qtQmlPrefix@
# Disable debug symbols if qtbase was built without debugging.
# This stops -dev paths from leaking into other outputs.
if [ -z "@debug@" ]; then
NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE-}${NIX_CFLAGS_COMPILE:+ }-DQT_NO_DEBUG"
fi
# Integration with CMake:
# Set the CMake build type corresponding to how qtbase was built.
if [ -n "@debug@" ]; then
cmakeBuildType="Debug"
else
cmakeBuildType="Release"
fi
qtPreHook() {
# Check that wrapQtAppsHook is used, or it is explicitly disabled.
if [[ -z "$__nix_wrapQtAppsHook" && -z "$dontWrapQtApps" ]]; then
echo >&2 "Error: wrapQtAppsHook is not used, and dontWrapQtApps is not set."
exit 1
fi
}
prePhases+=" qtPreHook"
addQtModulePrefix () {
addToSearchPath QT_ADDITIONAL_PACKAGES_PREFIX_PATH $1
}
addEnvHooks "$hostOffset" addQtModulePrefix
fi

View file

@ -0,0 +1,107 @@
if [[ -z "${__nix_wrapQtAppsHook-}" ]]; then
__nix_wrapQtAppsHook=1 # Don't run this hook more than once.
# Inherit arguments given in mkDerivation
qtWrapperArgs=( ${qtWrapperArgs-} )
qtHostPathSeen=()
qtUnseenHostPath() {
for pkg in "${qtHostPathSeen[@]}"
do
if [ "${pkg:?}" == "$1" ]
then
return 1
fi
done
qtHostPathSeen+=("$1")
return 0
}
qtHostPathHook() {
qtUnseenHostPath "$1" || return 0
local pluginDir="$1/${qtPluginPrefix:?}"
if [ -d "$pluginDir" ]
then
qtWrapperArgs+=(--prefix QT_PLUGIN_PATH : "$pluginDir")
fi
local qmlDir="$1/${qtQmlPrefix:?}"
if [ -d "$qmlDir" ]
then
qtWrapperArgs+=(--prefix QML2_IMPORT_PATH : "$qmlDir")
fi
}
addEnvHooks "$hostOffset" qtHostPathHook
makeQtWrapper() {
local original="$1"
local wrapper="$2"
shift 2
makeWrapper "$original" "$wrapper" "${qtWrapperArgs[@]}" "$@"
}
wrapQtApp() {
local program="$1"
shift 1
wrapProgram "$program" "${qtWrapperArgs[@]}" "$@"
}
qtOwnPathsHook() {
local xdgDataDir="${!outputBin}/share"
if [ -d "$xdgDataDir" ]
then
qtWrapperArgs+=(--prefix XDG_DATA_DIRS : "$xdgDataDir")
fi
local xdgConfigDir="${!outputBin}/etc/xdg"
if [ -d "$xdgConfigDir" ]
then
qtWrapperArgs+=(--prefix XDG_CONFIG_DIRS : "$xdgConfigDir")
fi
qtHostPathHook "${!outputBin}"
}
preFixupPhases+=" qtOwnPathsHook"
# Note: $qtWrapperArgs still gets defined even if ${dontWrapQtApps-} is set.
wrapQtAppsHook() {
# skip this hook when requested
[ -z "${dontWrapQtApps-}" ] || return 0
# guard against running multiple times (e.g. due to propagation)
[ -z "$wrapQtAppsHookHasRun" ] || return 0
wrapQtAppsHookHasRun=1
local targetDirs=( "$prefix/bin" "$prefix/sbin" "$prefix/libexec" "$prefix/Applications" "$prefix/"*.app )
echo "wrapping Qt applications in ${targetDirs[@]}"
for targetDir in "${targetDirs[@]}"
do
[ -d "$targetDir" ] || continue
find "$targetDir" ! -type d -executable -print0 | while IFS= read -r -d '' file
do
isELF "$file" || isMachO "$file" || continue
if [ -f "$file" ]
then
echo "wrapping $file"
wrapQtApp "$file"
elif [ -h "$file" ]
then
target="$(readlink -e "$file")"
echo "wrapping $file -> $target"
rm "$file"
makeQtWrapper "$target" "$file"
fi
done
done
}
fixupOutputHooks+=(wrapQtAppsHook)
fi

View file

@ -0,0 +1,12 @@
{ qtModule
, qtbase
, qtdeclarative
, qtmultimedia
, assimp
}:
qtModule {
pname = "qt3d";
qtInputs = [ qtbase qtdeclarative qtmultimedia ];
propagatedBuildInputs = [ assimp ];
}

View file

@ -0,0 +1,13 @@
{ qtModule
, qtbase
, qtdeclarative
, libiconv
, icu
, openssl
}:
qtModule {
pname = "qt5compat";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ libiconv icu openssl openssl ];
}

View file

@ -0,0 +1,222 @@
{ stdenv
, lib
, src
, patches ? [ ]
, version
, coreutils
, bison
, flex
, gdb
, gperf
, lndir
, perl
, pkg-config
, python3
, which
, cmake
, ninja
, ccache
, xmlstarlet
, libproxy
, xlibsWrapper
, xorg
, zstd
, double-conversion
, util-linux
, systemd
, libb2
, md4c
, mtdev
, lksctp-tools
, libselinux
, libsepol
, vulkan-headers
, vulkan-loader
, valgrind
, libthai
, libdrm
, libdatrie
, lttng-ust
, epoxy
, libiconv
, dbus
, fontconfig
, freetype
, glib
, harfbuzz
, icu
, libX11
, libXcomposite
, libXcursor
, libXext
, libXi
, libXrender
, libinput
, libjpeg
, libpng
, libxcb
, libxkbcommon
, libxml2
, libxslt
, openssl
, pcre
, pcre2
, sqlite
, udev
, xcbutil
, xcbutilimage
, xcbutilkeysyms
, xcbutilrenderutil
, xcbutilwm
, zlib
, at-spi2-core
, unixODBC
, unixODBCDrivers
# optional dependencies
, cups
, libmysqlclient
, postgresql
, withGtk3 ? false
, dconf
, gtk3
# options
, libGLSupported ? true
, libGL
, debug ? false
, developerBuild ? false
}:
let
debugSymbols = debug || developerBuild;
in
stdenv.mkDerivation rec {
pname = "qtbase";
inherit src version;
debug = debugSymbols;
propagatedBuildInputs = [
libxml2
libxslt
openssl
sqlite
zlib
unixODBC
# Text rendering
harfbuzz
icu
# Image formats
libjpeg
libpng
pcre2
pcre
libproxy
xlibsWrapper
zstd
double-conversion
util-linux
systemd
libb2
md4c
mtdev
lksctp-tools
libselinux
libsepol
lttng-ust
vulkan-headers
vulkan-loader
libthai
libdrm
libdatrie
valgrind
dbus
glib
udev
# Text rendering
fontconfig
freetype
# X11 libs
libX11
libXcomposite
libXext
libXi
libXrender
libxcb
libxkbcommon
xcbutil
xcbutilimage
xcbutilkeysyms
xcbutilrenderutil
xcbutilwm
xorg.libXdmcp
xorg.libXtst
xorg.xcbutilcursor
epoxy
] ++ (with unixODBCDrivers; [
psql
sqlite
mariadb
]) ++ lib.optional libGLSupported libGL;
buildInputs = [
python3
at-spi2-core
libinput
]
++ lib.optional withGtk3 gtk3
++ lib.optional developerBuild gdb
++ lib.optional (cups != null) cups
++ lib.optional (libmysqlclient != null) libmysqlclient
++ lib.optional (postgresql != null) postgresql;
nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ];
propagatedNativeBuildInputs = [ lndir ];
enableParallelBuilding = true;
inherit patches;
# https://bugreports.qt.io/browse/QTBUG-97568
postPatch = ''
substituteInPlace src/corelib/CMakeLists.txt --replace /bin/ls ${coreutils}/bin/ls
'';
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/build/lib:$PWD/build/plugins/platforms''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
'';
qtPluginPrefix = "lib/qt-6/plugins";
qtQmlPrefix = "lib/qt-6/qml";
cmakeFlags = [
"-DINSTALL_PLUGINSDIR=${qtPluginPrefix}"
"-DINSTALL_QMLDIR=${qtQmlPrefix}"
"-DQT_FEATURE_journald=ON"
"-DQT_FEATURE_sctp=ON"
"-DQT_FEATURE_libproxy=ON"
"-DQT_FEATURE_system_sqlite=ON"
"-DQT_FEATURE_vulkan=ON"
"-DQT_FEATURE_openssl_linked=ON"
];
outputs = [ "out" "dev" ];
postInstall = ''
mkdir -p $dev
mv $out/mkspecs $out/bin $out/libexec $dev/
'';
dontStrip = debugSymbols;
setupHook = ../hooks/qtbase-setup-hook.sh;
meta = with lib; {
homepage = "https://www.qt.io/";
description = "A cross-platform application framework for C++";
license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
maintainers = with maintainers; [ milahu nickcao ];
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtcharts";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,15 @@
{ qtModule
, lib
, stdenv
, qtbase
, qtdeclarative
, bluez
, pkg-config
}:
qtModule {
pname = "qtconnectivity";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ bluez ];
nativeBuildInputs = [ pkg-config ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtdatavis3d";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,19 @@
{ qtModule
, qtbase
, qtshadertools
, openssl
, python3
}:
qtModule {
pname = "qtdeclarative";
qtInputs = [ qtbase qtshadertools ];
propagatedBuildInputs = [ openssl python3 ];
preConfigure = ''
export LD_LIBRARY_PATH="$PWD/build/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
'';
postInstall = ''
substituteInPlace "$out/lib/cmake/Qt6Qml/Qt6QmlMacros.cmake" \
--replace ''\'''${QT6_INSTALL_PREFIX}' "$out"
'';
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtdeclarative
}:
qtModule {
pname = "qtdoc";
qtInputs = [ qtdeclarative ];
outputs = [ "out" ];
}

View file

@ -0,0 +1,13 @@
{ qtModule
, qtbase
, libwebp
, jasper
, libmng
, libtiff
}:
qtModule {
pname = "qtimageformats";
qtInputs = [ qtbase ];
buildInputs = [ libwebp jasper libmng libtiff ];
}

View file

@ -0,0 +1,8 @@
{ qtModule
, qtbase
}:
qtModule {
pname = "qtlanguageserver";
qtInputs = [ qtbase ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtlottie";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,24 @@
{ qtModule
, lib
, stdenv
, qtbase
, qtdeclarative
, qtshadertools
, qtsvg
, pkg-config
, alsa-lib
, gstreamer
, gst-plugins-base
, libpulseaudio
, wayland
, elfutils
, libunwind
, orc
}:
qtModule {
pname = "qtmultimedia";
qtInputs = [ qtbase qtdeclarative qtsvg qtshadertools ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gstreamer gst-plugins-base libpulseaudio elfutils libunwind alsa-lib wayland orc ];
}

View file

@ -0,0 +1,6 @@
{ qtModule, qtbase }:
qtModule {
pname = "qtnetworkauth";
qtInputs = [ qtbase ];
}

View file

@ -0,0 +1,14 @@
{ qtModule
, qtbase
, qtdeclarative
, qtserialport
, pkg-config
, openssl
}:
qtModule {
pname = "qtpositioning";
qtInputs = [ qtbase qtdeclarative qtserialport ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,11 @@
{ qtModule
, qtbase
, qtdeclarative
, openssl
}:
qtModule {
pname = "qtquick3d";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtquicktimeline";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,9 @@
{ qtModule
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qtremoteobjects";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,6 @@
{ qtModule, qtbase, qtdeclarative }:
qtModule {
pname = "qtscxml";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,10 @@
{ qtModule
, qtbase
, qtdeclarative
, qtsvg
}:
qtModule {
pname = "qtsensors";
qtInputs = [ qtbase qtdeclarative qtsvg ];
}

View file

@ -0,0 +1,6 @@
{ qtModule, qtbase, qtserialport }:
qtModule {
pname = "qtserialbus";
qtInputs = [ qtbase qtserialport ];
}

View file

@ -0,0 +1,14 @@
{ qtModule
, stdenv
, lib
, qtbase
, udev
, pkg-config
}:
qtModule {
pname = "qtserialport";
qtInputs = [ qtbase ];
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ udev ];
}

View file

@ -0,0 +1,8 @@
{ qtModule
, qtbase
}:
qtModule {
pname = "qtshadertools";
qtInputs = [ qtbase ];
}

View file

@ -0,0 +1,15 @@
{ qtModule
, qtbase
, libwebp
, jasper
, libmng
, zlib
, pkg-config
}:
qtModule {
pname = "qtsvg";
qtInputs = [ qtbase ];
buildInputs = [ libwebp jasper libmng zlib ];
nativeBuildInputs = [ pkg-config ];
}

View file

@ -0,0 +1,11 @@
{ qtModule
, stdenv
, lib
, qtbase
, qtdeclarative
}:
qtModule {
pname = "qttools";
qtInputs = [ qtbase qtdeclarative ];
}

View file

@ -0,0 +1,8 @@
{ qtModule
, qttools
}:
qtModule {
pname = "qttranslations";
qtInputs = [ qttools ];
}

View file

@ -0,0 +1,15 @@
{ qtModule
, qtbase
, qtdeclarative
, qtsvg
, hunspell
, pkg-config
}:
qtModule {
pname = "qtvirtualkeyboard";
qtInputs = [ qtbase qtdeclarative qtsvg ];
propagatedBuildInputs = [ hunspell ];
nativeBuildInputs = [ pkg-config ];
outputs = [ "out" ];
}

View file

@ -0,0 +1,16 @@
{ qtModule
, qtbase
, qtquick3d
, qtdeclarative
, wayland
, pkg-config
, xlibsWrapper
, libdrm
}:
qtModule {
pname = "qtwayland";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ wayland xlibsWrapper libdrm ];
nativeBuildInputs = [ pkg-config ];
}

View file

@ -0,0 +1,12 @@
{ qtModule
, qtbase
, qtdeclarative
, qtwebsockets
, openssl
}:
qtModule {
pname = "qtwebchannel";
qtInputs = [ qtbase qtdeclarative qtwebsockets ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,234 @@
{ qtModule
, qtdeclarative
, qtwebchannel
, qtpositioning
, qtwebsockets
, bison
, coreutils
, flex
, git
, gperf
, ninja
, pkg-config
, python3
, which
, nodejs
, qtbase
, perl
, xorg
, libXcursor
, libXScrnSaver
, libXrandr
, libXtst
, libxshmfence
, libXi
, fontconfig
, freetype
, harfbuzz
, icu
, dbus
, libdrm
, zlib
, minizip
, libjpeg
, libpng
, libtiff
, libwebp
, libopus
, jsoncpp
, protobuf
, libvpx
, srtp
, snappy
, nss
, libevent
, openssl
, alsa-lib
, pulseaudio
, libcap
, pciutils
, systemd
, pipewire
, gn
, cups
, openbsm
, runCommand
, writeScriptBin
, ffmpeg
, lib
, stdenv
, fetchpatch
, glib
, libxml2
, libxslt
, lcms2
, re2
, kerberos
, enableProprietaryCodecs ? true
}:
qtModule rec {
pname = "qtwebengine";
qtInputs = [ qtdeclarative qtwebchannel qtwebsockets qtpositioning ];
nativeBuildInputs = [
bison
coreutils
flex
git
gperf
ninja
pkg-config
(python3.withPackages (ps: with ps; [ html5lib ]))
which
gn
nodejs
];
doCheck = true;
outputs = [ "out" "dev" ];
dontUseGnConfigure = true;
# ninja builds some components with -Wno-format,
# which cannot be set at the same time as -Wformat-security
hardeningDisable = [ "format" ];
patches = [
# drop UCHAR_TYPE override to fix build with system ICU
(fetchpatch {
url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=75f0f4eb";
stripLen = 1;
extraPrefix = "src/3rdparty/";
sha256 = "sha256-3aMcVXJg+v+UbsSO27g6MA6/uVkWUxyQsMD1EzlzXDs=";
})
];
postPatch = ''
# Patch Chromium build tools
(
cd src/3rdparty/chromium;
# Manually fix unsupported shebangs
substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
--replace "/usr/bin/env -S make -f" "/usr/bin/make -f" || true
substituteInPlace third_party/webgpu-cts/src/tools/deno \
--replace "/usr/bin/env -S deno" "/usr/bin/deno" || true
patchShebangs .
)
# Patch library paths in sources
sed -i \
-e "s,QLibraryInfo::location(QLibraryInfo::DataPath),QLatin1String(\"$out\"),g" \
-e "s,QLibraryInfo::location(QLibraryInfo::TranslationsPath),QLatin1String(\"$out/translations\"),g" \
-e "s,QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath),QLatin1String(\"$out/libexec\"),g" \
src/core/web_engine_library_info.cpp
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc
'';
cmakeFlags = [
"-DQT_FEATURE_qtpdf_build=ON"
"-DQT_FEATURE_qtpdf_widgets_build=ON"
"-DQT_FEATURE_qtpdf_quick_build=ON"
"-DQT_FEATURE_pdf_v8=ON"
"-DQT_FEATURE_pdf_xfa=ON"
"-DQT_FEATURE_pdf_xfa_bmp=ON"
"-DQT_FEATURE_pdf_xfa_gif=ON"
"-DQT_FEATURE_pdf_xfa_png=ON"
"-DQT_FEATURE_pdf_xfa_tiff=ON"
"-DQT_FEATURE_webengine_system_icu=ON"
"-DQT_FEATURE_webengine_system_libevent=ON"
"-DQT_FEATURE_webengine_system_libxml=ON"
"-DQT_FEATURE_webengine_system_ffmpeg=ON"
# android only. https://bugreports.qt.io/browse/QTBUG-100293
# "-DQT_FEATURE_webengine_native_spellchecker=ON"
"-DQT_FEATURE_webengine_sanitizer=ON"
"-DQT_FEATURE_webengine_webrtc_pipewire=ON"
"-DQT_FEATURE_webengine_kerberos=ON"
] ++ lib.optional enableProprietaryCodecs "-DQT_FEATURE_webengine_proprietary_codecs=ON";
propagatedBuildInputs = [
# Image formats
libjpeg
libpng
libtiff
libwebp
# Video formats
srtp
libvpx
# Audio formats
libopus
# Text rendering
harfbuzz
icu
openssl
glib
libxml2
libxslt
lcms2
re2
libevent
ffmpeg
dbus
zlib
minizip
snappy
nss
protobuf
jsoncpp
# Audio formats
alsa-lib
pulseaudio
# Text rendering
fontconfig
freetype
libcap
pciutils
# X11 libs
xorg.xrandr
libXScrnSaver
libXcursor
libXrandr
xorg.libpciaccess
libXtst
xorg.libXcomposite
xorg.libXdamage
libdrm
xorg.libxkbfile
libxshmfence
libXi
xorg.libXext
# Pipewire
pipewire
kerberos
];
buildInputs = [
cups
];
requiredSystemFeatures = [ "big-parallel" ];
meta = with lib; {
description = "A web engine based on the Chromium web browser";
platforms = platforms.linux;
# This build takes a long time; particularly on slow architectures
# 1 hour on 32x3.6GHz -> maybe 12 hours on 4x2.4GHz
timeout = 24 * 3600;
};
}

View file

@ -0,0 +1,11 @@
{ qtModule
, qtbase
, qtdeclarative
, openssl
}:
qtModule {
pname = "qtwebsockets";
qtInputs = [ qtbase qtdeclarative ];
buildInputs = [ openssl ];
}

View file

@ -0,0 +1,11 @@
{ lib
, stdenv
, qtModule
, qtdeclarative
, qtwebengine
}:
qtModule {
pname = "qtwebview";
qtInputs = [ qtdeclarative qtwebengine ];
}

View file

@ -0,0 +1,45 @@
{ stdenv, lib, perl, cmake, ninja, writeText }:
{ self, srcs, patches ? [ ] }:
args:
let
inherit (args) pname;
version = args.version or srcs.${pname}.version;
src = args.src or srcs.${pname}.src;
in
stdenv.mkDerivation (args // {
inherit pname version src;
patches = args.patches or patches.${pname} or [ ];
buildInputs = args.buildInputs or [ ];
nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [
perl
cmake
ninja
];
propagatedBuildInputs = args.qtInputs ++ (args.propagatedBuildInputs or [ ]);
outputs = args.outputs or [ "out" "dev" ];
dontWrapQtApps = args.dontWrapQtApps or true;
postInstall = ''
if [ ! -z "$dev" ]; then
mkdir "$dev"
for dir in bin libexec mkspecs
do
moveToOutput "$dir" "$dev"
done
fi
${args.postInstall or ""}
'';
meta = with lib; {
homepage = "https://www.qt.io/";
description = "A cross-platform application framework for C++";
license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
maintainers = with maintainers; [ milahu nickcao ];
platforms = platforms.linux;
} // (args.meta or { });
})

View file

@ -0,0 +1,262 @@
# DO NOT EDIT! This file is generated automatically.
# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-6/6.3
{ fetchurl, mirror }:
{
qt3d = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qt3d-everywhere-src-6.3.0.tar.xz";
sha256 = "1qadnm2i2cgzigzq2wl0id5wzmc1p6zls4mrg1w8hd5d1lw65rvl";
name = "qt3d-everywhere-src-6.3.0.tar.xz";
};
};
qt5compat = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qt5compat-everywhere-src-6.3.0.tar.xz";
sha256 = "0gkis7504qdpavimkx33zl9082r4rfa2v4iba4a943f5h3krn69b";
name = "qt5compat-everywhere-src-6.3.0.tar.xz";
};
};
qtactiveqt = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtactiveqt-everywhere-src-6.3.0.tar.xz";
sha256 = "01sziyhzmvqn1flw6y73aszqll1yijxxc7hyzkd269zbmpm42l4c";
name = "qtactiveqt-everywhere-src-6.3.0.tar.xz";
};
};
qtbase = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtbase-everywhere-src-6.3.0.tar.xz";
sha256 = "168g39xiasriwpny9rf4alx3k8gnkffqjqm1n2rr5xsp6gjalrdq";
name = "qtbase-everywhere-src-6.3.0.tar.xz";
};
};
qtcharts = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtcharts-everywhere-src-6.3.0.tar.xz";
sha256 = "1k9ngvl94xd5xr34ycwvchvzih037yvfzvdf625cik21yv2n49v7";
name = "qtcharts-everywhere-src-6.3.0.tar.xz";
};
};
qtconnectivity = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtconnectivity-everywhere-src-6.3.0.tar.xz";
sha256 = "06p6n23y2a6nca0rzdli6zl7m2i42h2pm28092zb4vd578p17xwq";
name = "qtconnectivity-everywhere-src-6.3.0.tar.xz";
};
};
qtdatavis3d = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtdatavis3d-everywhere-src-6.3.0.tar.xz";
sha256 = "138dkvarvh45j4524y1piw0dm2j16s3lk5pazbggi3xjnbrjwl89";
name = "qtdatavis3d-everywhere-src-6.3.0.tar.xz";
};
};
qtdeclarative = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtdeclarative-everywhere-src-6.3.0.tar.xz";
sha256 = "0dxa9j8cxfd86nqpvxvzxd1jdlw8h0xxqvsiv9jlyb9bvhlv156j";
name = "qtdeclarative-everywhere-src-6.3.0.tar.xz";
};
};
qtdoc = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtdoc-everywhere-src-6.3.0.tar.xz";
sha256 = "0r9giv6xpg6zhghrrv4chlk1cimmiw93cj6rdf4rkf2g3qmgv6d8";
name = "qtdoc-everywhere-src-6.3.0.tar.xz";
};
};
qtimageformats = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtimageformats-everywhere-src-6.3.0.tar.xz";
sha256 = "1vxbjdfy1zya4pgcl4483912aw7ip0d768xmnrz2md3mxlbhsp82";
name = "qtimageformats-everywhere-src-6.3.0.tar.xz";
};
};
qtlanguageserver = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtlanguageserver-everywhere-src-6.3.0.tar.xz";
sha256 = "1apfkq5grxkx69d8x7gmj19klr3jypsz1csw6r00q7hf0vvxiakh";
name = "qtlanguageserver-everywhere-src-6.3.0.tar.xz";
};
};
qtlottie = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtlottie-everywhere-src-6.3.0.tar.xz";
sha256 = "1svxz5ndljhrn52vyyr1yziar63ksjz78mvaxfhjgdd5pc5mgnrr";
name = "qtlottie-everywhere-src-6.3.0.tar.xz";
};
};
qtmultimedia = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtmultimedia-everywhere-src-6.3.0.tar.xz";
sha256 = "0gpylyrjkks27y5bfaxqs7idj0wyscpn1kh51i4ahx19z1zj8l6h";
name = "qtmultimedia-everywhere-src-6.3.0.tar.xz";
};
};
qtnetworkauth = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtnetworkauth-everywhere-src-6.3.0.tar.xz";
sha256 = "17q6v4d2qglw88gd2i9m4cvvacpfsw6a544g0ch8a0hr56a9hfi0";
name = "qtnetworkauth-everywhere-src-6.3.0.tar.xz";
};
};
qtpositioning = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtpositioning-everywhere-src-6.3.0.tar.xz";
sha256 = "0vi3123pa9pc4xqh6rgxwz40xvvl4w0x09fn6kdld8s5nbv51vg9";
name = "qtpositioning-everywhere-src-6.3.0.tar.xz";
};
};
qtquick3d = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtquick3d-everywhere-src-6.3.0.tar.xz";
sha256 = "0zijxf33v5b2hrwppp4gr1i1dscdxqjjcb8a48c4ny0zxv8mpl0a";
name = "qtquick3d-everywhere-src-6.3.0.tar.xz";
};
};
qtquicktimeline = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtquicktimeline-everywhere-src-6.3.0.tar.xz";
sha256 = "06hwygywqc6kqs2ss8ng6ymjs3m72r51x2lzppjnpz4y2lqskw4z";
name = "qtquicktimeline-everywhere-src-6.3.0.tar.xz";
};
};
qtremoteobjects = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtremoteobjects-everywhere-src-6.3.0.tar.xz";
sha256 = "0v2ax6xynv13z1dqnklnvfxxdhh9fallrjdmqpkmkydgy163zckm";
name = "qtremoteobjects-everywhere-src-6.3.0.tar.xz";
};
};
qtscxml = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtscxml-everywhere-src-6.3.0.tar.xz";
sha256 = "1w3hi9c5v0lji59pkk0dhaq3xly9skf3jsm93gxj0y9nmkbdpc09";
name = "qtscxml-everywhere-src-6.3.0.tar.xz";
};
};
qtsensors = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtsensors-everywhere-src-6.3.0.tar.xz";
sha256 = "0j4ppqn8m04hfqrzrmp80fmwpr474arcycf58jypm17fnlrwfmy7";
name = "qtsensors-everywhere-src-6.3.0.tar.xz";
};
};
qtserialbus = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtserialbus-everywhere-src-6.3.0.tar.xz";
sha256 = "1mi76sxh21wj1b1myqrzaaspf1iwa4bxr342p1b6krrnrf4ckxnj";
name = "qtserialbus-everywhere-src-6.3.0.tar.xz";
};
};
qtserialport = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtserialport-everywhere-src-6.3.0.tar.xz";
sha256 = "0kxnblyk8bw02bdjsnjbblczg0dvj7ys95bpr2w49h4cshs6kggf";
name = "qtserialport-everywhere-src-6.3.0.tar.xz";
};
};
qtshadertools = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtshadertools-everywhere-src-6.3.0.tar.xz";
sha256 = "0v5xmyc9d3vacvdm2zpancqqmsvaz0635cba2aym9hipkndrb62l";
name = "qtshadertools-everywhere-src-6.3.0.tar.xz";
};
};
qtsvg = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtsvg-everywhere-src-6.3.0.tar.xz";
sha256 = "1qxhilxbk7wgnah7qlfcr5gsn19626dp6dc260wh8r1zgr6m0r1i";
name = "qtsvg-everywhere-src-6.3.0.tar.xz";
};
};
qttools = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qttools-everywhere-src-6.3.0.tar.xz";
sha256 = "175is0yf74vdxlmcb9nvm86n6m7qj54mhiwkhyi84mwjxa44dsgw";
name = "qttools-everywhere-src-6.3.0.tar.xz";
};
};
qttranslations = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qttranslations-everywhere-src-6.3.0.tar.xz";
sha256 = "1cs06kiv34zdkicxdjhxydv5rn1ylf4z2f4jl4a9ajm3jbw4xpg4";
name = "qttranslations-everywhere-src-6.3.0.tar.xz";
};
};
qtvirtualkeyboard = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtvirtualkeyboard-everywhere-src-6.3.0.tar.xz";
sha256 = "0wv54zmr9chwx1bds5b2j1436ynq6b5lbv7lbj7sycjlrxdg3al9";
name = "qtvirtualkeyboard-everywhere-src-6.3.0.tar.xz";
};
};
qtwayland = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtwayland-everywhere-src-6.3.0.tar.xz";
sha256 = "1411l2rc399bj6r36wd8n06a0rpdxkhmr0mashc5kz1zwkv6gdg7";
name = "qtwayland-everywhere-src-6.3.0.tar.xz";
};
};
qtwebchannel = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtwebchannel-everywhere-src-6.3.0.tar.xz";
sha256 = "03p4ggi9dk11q3zqw29awwxvddgfb3nsrrm58q053y0zlclc9i7b";
name = "qtwebchannel-everywhere-src-6.3.0.tar.xz";
};
};
qtwebengine = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtwebengine-everywhere-src-6.3.0.tar.xz";
sha256 = "0g899mn6fx9w0mb9dm7y25x3d9gcy8ramwbcpk8pmjqxv1fv8090";
name = "qtwebengine-everywhere-src-6.3.0.tar.xz";
};
};
qtwebsockets = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtwebsockets-everywhere-src-6.3.0.tar.xz";
sha256 = "0qb39qnli5wshrnzr9kbdrbddzi2l0y9vg3b1mbdkdv0x6gs0670";
name = "qtwebsockets-everywhere-src-6.3.0.tar.xz";
};
};
qtwebview = {
version = "6.3.0";
src = fetchurl {
url = "${mirror}/official_releases/qt/6.3/6.3.0/submodules/qtwebview-everywhere-src-6.3.0.tar.xz";
sha256 = "0mi1fkxz4mags32ld8km4svsnvbai0i81398f435sd1n9ach3gfy";
name = "qtwebview-everywhere-src-6.3.0.tar.xz";
};
};
}

View file

@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://erratique.ch/software/cmdliner";
description = "An OCaml module for the declarative definition of command line interfaces";
license = licenses.bsd3;
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
};

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, result }:
stdenv.mkDerivation rec {
pname = "cmdliner";
version = "1.1.1";
src = fetchurl {
url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
sha256 = "sha256-oa6Hw6eZQO+NHdWfdED3dtHckm4BmEbdMiAuRkYntfs=";
};
minimalOCamlVersion = "4.08";
nativeBuildInputs = [ ocaml ];
makeFlags = [ "PREFIX=$(out)" ];
installTargets = "install install-doc";
installFlags = [
"LIBDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib/${pname}"
"DOCDIR=$(out)/share/doc/${pname}"
];
postInstall = ''
mv $out/lib/ocaml/${ocaml.version}/site-lib/${pname}/{opam,${pname}.opam}
'';
meta = with lib; {
homepage = "https://erratique.ch/software/cmdliner";
description = "An OCaml module for the declarative definition of command line interfaces";
license = licenses.isc;
inherit (ocaml.meta) platforms;
maintainers = [ maintainers.vbgl ];
};
}

View file

@ -3,6 +3,7 @@
, fetchFromGitHub
, pytestCheckHook
, pythonOlder
, stdenv
}:
buildPythonPackage rec {
@ -25,9 +26,12 @@ buildPythonPackage rec {
pytestCheckHook
];
# fails on darwin due to case-insensitive file system
disabledTests = lib.optional stdenv.isDarwin ["test_application_directory_case"];
meta = with lib; {
description = "Utilities for refactoring imports in python-like syntax.";
homepage = "https://github.com/asottile/reorder_python_imports";
homepage = "https://github.com/asottile/aspy.refactor_imports";
license = licenses.mit;
maintainers = with maintainers; [ gador ];
};

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "django-allauth";
version = "0.47.0";
version = "0.50.0";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -19,18 +19,27 @@ buildPythonPackage rec {
owner = "pennersr";
repo = pname;
rev = version;
hash = "sha256-wKrsute6TCl331UrxNEBf/zTtGnyGHsOZQwdiicbg2o=";
hash = "sha256-O6KEDt+Z1MJUvKXQJILqLRgNj+ZrCZjlb3CJHpRL1Kk=";
};
postPatch = ''
chmod +x manage.py
patchShebangs manage.py
'';
propagatedBuildInputs = [
requests
requests-oauthlib
django
python3-openid
requests
requests-oauthlib
];
# Tests requires a Django instance
doCheck = false;
checkPhase = ''
# test is out of date
rm allauth/socialaccount/providers/cern/tests.py
./manage.py test
'';
pythonImportsCheck = [
"allauth"
@ -40,6 +49,6 @@ buildPythonPackage rec {
description = "Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication";
homepage = "https://www.intenct.nl/projects/django-allauth";
license = licenses.mit;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -1,29 +1,51 @@
{ lib,
fetchPypi,
django,
djangorestframework,
six,
buildPythonPackage
{ lib
, buildPythonPackage
, fetchFromGitHub
, django
, django-allauth
, djangorestframework
, drf-jwt
, responses
, six
}:
buildPythonPackage rec {
pname = "django-rest-auth";
version = "0.9.5";
src = fetchPypi {
inherit pname version;
sha256 = "f11e12175dafeed772f50d740d22caeab27e99a3caca24ec65e66a8d6de16571";
src = fetchFromGitHub {
owner = "Tivix";
repo = "django-rest-auth";
rev = version;
sha256 = "sha256-rCChUHv8sTEFErDCZnPN5b5XVtMJ7JNVZwBYF3d99mY=";
};
propagatedBuildInputs = [ django djangorestframework six ];
postPatch = ''
substituteInPlace setup.py \
--replace "djangorestframework-jwt" "drf-jwt"
'';
# pypi release does not include tests
propagatedBuildInputs = [
django
djangorestframework
six
];
checkInputs = [
django-allauth
drf-jwt
responses
];
# tests are icnompatible with current django version
doCheck = false;
pythonImportsCheck = [ "rest_auth" ];
meta = with lib; {
description = "Django app that makes registration and authentication easy";
homepage = "https://github.com/Tivix/django-rest-auth";
license = licenses.mit;
maintainers = with maintainers; [ ];
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -0,0 +1,33 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, django
}:
buildPythonPackage rec {
pname = "drf-spectacular-sidecar";
version = "2022.5.1";
src = fetchFromGitHub {
owner = "tfranzel";
repo = "drf-spectacular-sidecar";
rev = version;
sha256 = "sha256-UBuHU+F4b+plhGbvqho8/bgmq6yDUXSTnfxyD1xlDY4=";
};
propagatedBuildInputs = [
django
];
# no tests
doCheck = false;
pythonImportsCheck = [ "drf_spectacular_sidecar" ];
meta = with lib; {
description = "Serve self-contained distribution builds of Swagger UI and Redoc with Django";
homepage = "https://github.com/tfranzel/drf-spectacular-sidecar";
license = licenses.bsd3;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View file

@ -14,7 +14,7 @@
buildPythonPackage rec {
pname = "hahomematic";
version = "1.4.0";
version = "1.5.0";
format = "pyproject";
disabled = pythonOlder "3.9";
@ -23,7 +23,7 @@ buildPythonPackage rec {
owner = "danielperna84";
repo = pname;
rev = "refs/tags/${version}";
sha256 = "sha256-1JYakfs+lLCfB2Ann1QfNw+MBrB9PiixOUqdA7UgbWE=";
sha256 = "sha256-TB6NPc155uZUb1cMH/QKIZYm+yJKAukZh0SUZQZgQXM=";
};
propagatedBuildInputs = [

View file

@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "sepaxml";
version = "2.4.1";
version = "2.5.0";
format = "setuptools";
disabled = pythonOlder "3.6";
@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "raphaelm";
repo = "python-sepaxml";
rev = version;
sha256 = "sha256-Up6zHm20tc6+lQk958csdgC4FMJFhdt+oAJcNcVbcjk=";
hash = "sha256-9gPUAZ60q5o11eAnkzTBrFCpBUGxw3MGuKY4MtPxoSA=";
};
propagatedBuildInputs = [
@ -28,8 +28,8 @@ buildPythonPackage rec {
];
checkInputs = [
pytestCheckHook
lxml
pytestCheckHook
];
pythonImportsCheck = [

View file

@ -1,32 +1,38 @@
{ lib
, buildPythonPackage
, isPy3k
, fetchPypi
, django
, pep8
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "shortuuid";
version = "1.0.8";
version = "1.0.9";
format = "setuptools";
disabled = !isPy3k;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
sha256 = "9435e87e5a64f3b92f7110c81f989a3b7bdb9358e22d2359829167da476cfc23";
hash = "sha256-RZ8S+hrMNP8hOxNxRnwDJRaWRaMe2YniaIcjOa91Y9U=";
};
checkInputs = [
django
pep8
pytestCheckHook
];
pythonImportsCheck = [
"shortuuid"
];
pytestFlagsArray = [
"shortuuid/tests.py"
];
meta = with lib; {
description = "A generator library for concise, unambiguous and URL-safe UUIDs";
description = "Library to generate concise, unambiguous and URL-safe UUIDs";
homepage = "https://github.com/stochastic-technologies/shortuuid/";
license = licenses.bsd3;
maintainers = with maintainers; [ zagy ];
};
}

View file

@ -5,12 +5,12 @@
buildPythonPackage rec {
pname = "types-setuptools";
version = "57.4.14";
version = "57.4.15";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-3wL+HdJE9Yz05nz8PQqXkwotYact2J8h2BxxAXzYP5o=";
sha256 = "sha256-ZQUozoA1hgKdfxU/Mq7S26prsoiLIzM0r4DXumPtPIc=";
};
# Module doesn't have tests

View file

@ -1,26 +1,37 @@
{lib, fetchPypi, buildPythonPackage, isPy27, six, lxml }:
{ lib
, fetchFromGitHub
, buildPythonPackage
, lxml
, pythonOlder
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "unittest-xml-reporting";
version = "3.2.0";
disabled = isPy27;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "xmlrunner";
repo = "unittest-xml-reporting";
rev = version;
sha256 = "sha256-lOJ/+8CVJUXdIaZLLF5PpPkG0DzlNgo46kRZ1Xy7Ju0=";
};
propagatedBuildInputs = [
lxml
six
];
# The tarball from Pypi doesn't actually contain the unit tests
doCheck = false;
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "xmlrunner" ];
src = fetchPypi {
inherit pname version;
sha256 = "sha256-7djTFwtAw6gbjPkQ9GxqMErihH7AEDbQLpwPm4V2LSg=";
};
meta = with lib; {
homepage = "https://github.com/xmlrunner/unittest-xml-reporting/tree/master/";
description = "A unittest runner that can save test results to XML files";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ rprospero ];
homepage = "https://github.com/xmlrunner/unittest-xml-reporting";
description = "unittest-based test runner with Ant/JUnit like XML reporting";
license = licenses.bsd2;
maintainers = with maintainers; [ rprospero SuperSandro2000 ];
};
}

View file

@ -8,16 +8,17 @@
}:
buildPythonPackage rec {
version = "1.11.0";
pname = "xmlschema";
version = "1.11.1";
format = "setuptools";
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "sissaschool";
repo = "xmlschema";
rev = "refs/tags/v${version}";
sha256 = "sha256-WnX4MmrHHELzUcUnP34A+kK0x4ARm6qrEN7+KQk9/Ts=";
hash = "sha256-ccbVYvQBM4U8wgNXlgi5qYxUZHpajWs/eVXbCFdG5bU=";
};
propagatedBuildInputs = [
@ -42,7 +43,9 @@ buildPythonPackage rec {
"tests/test_validation.py"
];
pythonImportsCheck = [ "xmlschema" ];
pythonImportsCheck = [
"xmlschema"
];
meta = with lib; {
description = "XML Schema validator and data conversion library for Python";

View file

@ -68,5 +68,9 @@ rec {
version = "0.20.1";
};
ocamlformat = ocamlformat_0_20_1;
ocamlformat_0_21_0 = mkOCamlformat {
version = "0.21.0";
};
ocamlformat = ocamlformat_0_21_0;
}

View file

@ -25,6 +25,7 @@ let src =
"0.19.0" = "0ihgwl7d489g938m1jvgx8azdgq9f5np5mzqwwya797hx2m4dz32";
"0.20.0" = "sha256-JtmNCgwjbCyUE4bWqdH5Nc2YSit+rekwS43DcviIfgk=";
"0.20.1" = "sha256-fTpRZFQW+ngoc0T6A69reEUAZ6GmHkeQvxspd5zRAjU=";
"0.21.0" = "sha256-KhgX9rxYH/DM6fCqloe4l7AnJuKrdXSe6Y1XY3BXMy0=";
}."${version}";
};
ocamlPackages =
@ -60,7 +61,7 @@ buildDunePackage {
if lib.versionAtLeast version "0.20.0"
then [
base
cmdliner
(if lib.versionAtLeast version "0.21.0" then cmdliner_1_1 else cmdliner_1_0)
dune-build-info
either
fix
@ -78,7 +79,7 @@ buildDunePackage {
else if lib.versionAtLeast version "0.19.0"
then [
base
cmdliner
cmdliner_1_0
fpath
re
stdio
@ -94,7 +95,7 @@ buildDunePackage {
else if lib.versionAtLeast version "0.18.0"
then [
base
cmdliner
cmdliner_1_0
fpath
odoc
re
@ -112,7 +113,7 @@ buildDunePackage {
else if lib.versionAtLeast version "0.17.0"
then [
base
cmdliner
cmdliner_1_0
fpath
odoc
re
@ -131,7 +132,7 @@ buildDunePackage {
else if lib.versionAtLeast version "0.15.1"
then [
base
cmdliner
cmdliner_1_0
fpath
odoc
re
@ -148,7 +149,7 @@ buildDunePackage {
else if lib.versionAtLeast version "0.14"
then [
base
cmdliner
cmdliner_1_0
fpath
ocaml-migrate-parsetree
odoc
@ -161,7 +162,7 @@ buildDunePackage {
menhirSdk
] else [
base
cmdliner
cmdliner_1_0
fpath
ocaml-migrate-parsetree
odoc
@ -178,4 +179,3 @@ buildDunePackage {
license = lib.licenses.mit;
};
}

View file

@ -2,15 +2,15 @@
rustPlatform.buildRustPackage rec {
pname = "snazy";
version = "0.9.0";
version = "0.10.0";
src = fetchFromGitHub {
owner = "chmouel";
repo = pname;
rev = version;
sha256 = "sha256-SoyGvy1F39kvMLuT9QFXiGEpN0DWS3X9ZDZhFocymCw=";
sha256 = "sha256-0LxpwvQxHxNQ09kCsM8fJfcOxPMKqzQlW1Kl2y0I3Zg=";
};
cargoSha256 = "sha256-vz2bXmuRWFCx7dH0u2zVJLurtUAQ51ZqWVAcuUrm6d8=";
cargoSha256 = "sha256-onYVVBB91Zn+WcELpBhybT3hV1gZMXHXbmScA6a1mys=";
doInstallCheck = true;
installCheckPhase = ''

View file

@ -8,13 +8,13 @@ let
kerneldir = "lib/modules/${kernel.modDirVersion}";
in stdenv.mkDerivation rec {
pname = "gcadapter-oc-kmod";
version = "1.4";
version = "unstable-2021-12-11";
src = fetchFromGitHub {
owner = "HannesMann";
repo = pname;
rev = "v${version}";
sha256 = "1nqhj3vqq9rnj37cnm2c4867mnxkr8di3i036shcz44h9qmy9d40";
rev = "d4ddf15deb74c51dbdfc814d481ef127c371f444";
sha256 = "sha256-bHA1611rcO8/d48b1CHsiurEt3/n+5WErtHXAU7Eh1o=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;

View file

@ -15,14 +15,15 @@
let
pname = "wallabag";
version = "2.4.3";
version = "2.5.0";
in
stdenv.mkDerivation {
inherit pname version;
# GitHub distribution does not include vendored files
src = fetchurl {
url = "https://static.wallabag.org/releases/wallabag-release-${version}.tar.gz";
hash = "sha256-u6TflAzxoaxjLhNMv5ua+NPBv4kxGycgz2QXnhtDHTo=";
hash = "sha256-fE/4bVwImQ03wrfdrx6AlulO2xU1M2HIaSOGpTAb02E=";
};
patches = [

View file

@ -167,8 +167,8 @@ makeOverlayable (overrideAttrs:
let
# TODO(@oxij, @Ericson2314): This is here to keep the old semantics, remove when
# no package has `doCheck = true`.
doCheck' = doCheck && stdenv.hostPlatform == stdenv.buildPlatform;
doInstallCheck' = doInstallCheck && stdenv.hostPlatform == stdenv.buildPlatform;
doCheck' = doCheck && stdenv.buildPlatform.canExecute stdenv.hostPlatform;
doInstallCheck' = doInstallCheck && stdenv.buildPlatform.canExecute stdenv.hostPlatform;
separateDebugInfo' = separateDebugInfo && stdenv.hostPlatform.isLinux && !(stdenv.hostPlatform.useLLVM or false);
outputs' = outputs ++ lib.optional separateDebugInfo' "debug";

View file

@ -31,7 +31,7 @@
# compatible with or current architecture.
getCompatibleTools = lib.foldl (v: system:
if v != null then v
else if localSystem.isCompatible (lib.systems.elaborate { inherit system; }) then archLookupTable.${system}
else if localSystem.canExecute (lib.systems.elaborate { inherit system; }) then archLookupTable.${system}
else null) null (lib.attrNames archLookupTable);
archLookupTable = table.${localSystem.libc}

View file

@ -1,21 +1,38 @@
{ lib, python3Packages }:
{ lib
, python3
}:
python3Packages.buildPythonPackage rec {
python3.pkgs.buildPythonApplication rec {
pname = "s3bro";
version = "2.8";
format = "setuptools";
src = python3Packages.fetchPypi {
src = python3.pkgs.fetchPypi {
inherit pname version;
sha256 = "0k25g3vch0q772f29jlghda5mjvps55h5lgwhwwbd5g2nlnrrspq";
hash = "sha256-+OqcLbXilbY4h/zRAkvRd8taVIOPyiScOAcDyPZ4RUw=";
};
propagatedBuildInputs = with python3Packages; [ boto3 botocore click termcolor ];
propagatedBuildInputs = with python3.pkgs; [
boto3
botocore
click
termcolor
];
postPatch = ''
substituteInPlace setup.py \
--replace "use_2to3=True," ""
'';
# No tests
doCheck = false;
pythonImportsCheck = [
"s3bro"
];
meta = with lib; {
description = "A handy s3 cli tool";
description = "s3 CLI tool";
homepage = "https://github.com/rsavordelli/s3bro";
license = licenses.mit;
maintainers = with maintainers; [ psyanticy ];

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "syft";
version = "0.46.1";
version = "0.46.2";
src = fetchFromGitHub {
owner = "anchore";
repo = pname;
rev = "v${version}";
sha256 = "sha256-ojjudnS0yJZ6YoHmq4m0YKyCqq9Ge+AFU7ejlPop71w=";
sha256 = "sha256-eVW8Ho23Yylo8B7m7h175yCDjDuh7dbI+ZeiB4SCNAM=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@ -20,7 +20,7 @@ buildGoModule rec {
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorSha256 = "sha256-nb7QcdmwAfYDTzCFNjs7uKwK/gng2iMD36ANaFSsftk=";
vendorSha256 = "sha256-K4bPldGOQVkmAavEbVxMjOhiHgfSrNpQ2ljFLqyceCw=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "httm";
version = "0.10.9";
version = "0.10.10";
src = fetchFromGitHub {
owner = "kimono-koans";
repo = pname;
rev = version;
sha256 = "L8yqf+QadN+uZxBjT3RWG7L3QqIerNrNc1u9PP1pt1I=";
sha256 = "kqI5zswQSjWlYwMVHCZSYr7OOHYXoWOYOPc9MuC0yw0=";
};
cargoSha256 = "UxqgJBgKD7hGT0UjAVYqb+sjbZ1sYVVOQSDvRQROOso=";
cargoSha256 = "zpcfywc2TZQksLugb6fWTN+/wu3aq6AoaNnzc+3V78w=";
nativeBuildInputs = [ installShellFiles ];

View file

@ -13568,7 +13568,7 @@ with pkgs;
ocamlformat_0_11_0 ocamlformat_0_12 ocamlformat_0_13_0 ocamlformat_0_14_0
ocamlformat_0_14_1 ocamlformat_0_14_2 ocamlformat_0_14_3 ocamlformat_0_15_0
ocamlformat_0_15_1 ocamlformat_0_16_0 ocamlformat_0_17_0 ocamlformat_0_18_0
ocamlformat_0_19_0 ocamlformat_0_20_0 ocamlformat_0_20_1;
ocamlformat_0_19_0 ocamlformat_0_20_0 ocamlformat_0_20_1 ocamlformat_0_21_0;
orc = callPackage ../development/compilers/orc { };
@ -20235,6 +20235,23 @@ with pkgs;
qtEnv = qt5.env;
qt5Full = qt5.full;
qt6 = recurseIntoAttrs (makeOverridable
(import ../development/libraries/qt-6) {
inherit newScope;
inherit lib stdenv fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper writeText;
inherit bison cups dconf harfbuzz libGL perl gtk3 ninja;
inherit (gst_all_1) gstreamer gst-plugins-base;
cmake = cmake.overrideAttrs (attrs: {
patches = attrs.patches ++ [
../development/libraries/qt-6/cmake.patch
];
});
});
qt6Packages = recurseIntoAttrs (import ./qt6-packages.nix {
inherit lib pkgs qt6;
});
qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
quark-engine = callPackage ../tools/security/quark-engine { };
@ -29840,7 +29857,7 @@ with pkgs;
taskopen = callPackage ../applications/misc/taskopen { };
tdesktop = libsForQt5.callPackage ../applications/networking/instant-messengers/telegram/tdesktop {
tdesktop = qt6Packages.callPackage ../applications/networking/instant-messengers/telegram/tdesktop {
abseil-cpp = abseil-cpp_202111;
};

View file

@ -177,7 +177,13 @@ let
cil = callPackage ../development/ocaml-modules/cil { };
cmdliner = callPackage ../development/ocaml-modules/cmdliner { };
cmdliner_1_0 = callPackage ../development/ocaml-modules/cmdliner/1_0.nix { };
cmdliner_1_1 = callPackage ../development/ocaml-modules/cmdliner/1_1.nix { };
# The 1.1.0 release broke a lot of packages and is not compatible with
# OCaml < 4.08.
cmdliner = cmdliner_1_0;
cohttp = callPackage ../development/ocaml-modules/cohttp { };

View file

@ -6542,6 +6542,21 @@ let
};
};
DBMDeep = buildPerlPackage {
pname = "DBM-Deep";
version = "2.0016";
src = fetchurl {
url = "https://cpan.metacpan.org/authors/id/S/SP/SPROUT/DBM-Deep-2.0016.tar.gz";
sha256 = "sha256-kCp8eqBIjY0KDops89oOlrQJOuRx5rdy8MbViY5HDk0=";
};
buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
meta = {
homepage = "https://github.com/robkinyon/dbm-deep";
description = "A pure perl multi-level hash/array DBM that supports transactions";
license = with lib.licenses; [ artistic1 gpl1Plus ];
};
};
DataBinary = buildPerlPackage {
pname = "Data-Binary";
version = "0.01";
@ -16927,6 +16942,22 @@ let
};
};
NumberPhone = buildPerlPackage {
pname = "Number-Phone";
version = "3.8004";
src = fetchurl {
url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Number-Phone-3.8004.tar.gz";
sha256 = "sha256-ZY7hyNGXTvSwV+B4L0mTi/PelA6QY/2bYecY6siwO+8=";
};
buildInputs = [ DevelHide FileShareDirInstall ParallelForkManager TestDifferences TestPod TestPodCoverage TestWarnings ];
propagatedBuildInputs = [ DataDumperConcise DBMDeep DevelCheckOS FileFindRule FileShareDir ];
meta = {
homepage = "https://github.com/DrHyde/perl-modules-Number-Phone";
description = "Large suite of perl modules for parsing and dealing with phone numbers";
license = with lib.licenses; [ artistic1 gpl2 ];
};
};
NumberWithError = buildPerlPackage {
pname = "Number-WithError";
version = "1.01";

View file

@ -2540,6 +2540,8 @@ in {
drf-nested-routers = callPackage ../development/python-modules/drf-nested-routers { };
drf-spectacular-sidecar = callPackage ../development/python-modules/drf-spectacular-sidecar { };
drf-yasg = callPackage ../development/python-modules/drf-yasg { };
drivelib = callPackage ../development/python-modules/drivelib { };

View file

@ -0,0 +1,20 @@
# Qt packages set.
#
# Attributes in this file are packages requiring Qt and will be made available
# for every Qt version. Qt applications are called from `all-packages.nix` via
# this file.
{ lib
, pkgs
, qt6
}:
(lib.makeScope pkgs.newScope ( self:
let
libsForQt6 = self;
callPackage = self.callPackage;
in
(qt6 // {
})))