pkgs/kde: init at 6.0.0 / 24.02.0, the Nix bits

This is the thing you want to look at.
This commit is contained in:
K900 2024-02-05 18:43:41 +03:00
parent fc40d637fe
commit ce77225e21
438 changed files with 6375 additions and 0 deletions

84
pkgs/kde/default.nix Normal file
View file

@ -0,0 +1,84 @@
{
lib,
generateSplicesForMkScope,
makeScopeWithSplicing',
fetchurl,
fetchFromGitLab,
libsForQt5,
qt6Packages,
cmark,
gpgme,
taglib,
wayland-protocols,
wayland,
zxing-cpp,
}: let
allPackages = self: let
frameworks = import ./frameworks {inherit (self) callPackage;};
gear = import ./gear {inherit (self) callPackage;};
plasma = import ./plasma {inherit (self) callPackage;};
sets = ["gear" "frameworks" "plasma"];
loadUrls = set: lib.importJSON (./generated/sources + "/${set}.json");
allUrls = lib.attrsets.mergeAttrsList (map loadUrls sets);
sources = lib.mapAttrs (_: v:
(fetchurl {
inherit (v) url hash;
})
// {inherit (v) version;})
allUrls;
in (
qt6Packages
// frameworks
// gear
// plasma
// {
inherit sources;
mkKdeDerivation = self.callPackage (import ./lib/mk-kde-derivation.nix self) {};
# THIRD PARTY
inherit
cmark
gpgme
taglib
wayland
wayland-protocols
zxing-cpp
;
# Alias to match metadata
kquickimageeditor = self.kquickimageedit;
# Alias because it's just data
plasma-wayland-protocols = libsForQt5.plasma-wayland-protocols;
selenium-webdriver-at-spi = null; # Used for integration tests that we don't run, stub
# Not ported to Qt6 yet
kdevelop-pg-qt = null;
okteta = null;
libmediawiki = null;
alpaka = self.callPackage ./misc/alpaka {};
kdiagram = self.callPackage ./misc/kdiagram {};
kdsoap-ws-discovery-client = self.callPackage ./misc/kdsoap-ws-discovery-client {};
kirigami-addons = self.callPackage ./misc/kirigami-addons {};
kio-fuse = self.callPackage ./misc/kio-fuse {};
ktextaddons = self.callPackage ./misc/ktextaddons {};
kunifiedpush = self.callPackage ./misc/kunifiedpush {};
kweathercore = self.callPackage ./misc/kweathercore {};
mpvqt = self.callPackage ./misc/mpvqt {};
oxygen-icons = self.callPackage ./misc/oxygen-icons {};
phonon = self.callPackage ./misc/phonon {};
phonon-vlc = self.callPackage ./misc/phonon-vlc {};
polkit-qt-1 = self.callPackage ./misc/polkit-qt-1 {};
pulseaudio-qt = self.callPackage ./misc/pulseaudio-qt {};
}
);
in
makeScopeWithSplicing' {
otherSplices = generateSplicesForMkScope "kdePackages";
f = allPackages;
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "attica";
}

View file

@ -0,0 +1,10 @@
{
mkKdeDerivation,
qtdeclarative,
lmdb,
}:
mkKdeDerivation {
pname = "baloo";
extraBuildInputs = [qtdeclarative lmdb];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "bluez-qt";
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,16 @@
{
mkKdeDerivation,
python3,
libxml2,
}:
mkKdeDerivation {
pname = "breeze-icons";
extraNativeBuildInputs = [
(python3.withPackages (ps: [ps.lxml]))
libxml2
];
# lots of icons, takes forever, does absolutely nothing
dontStrip = true;
}

View file

@ -0,0 +1,74 @@
{callPackage}: {
attica = callPackage ./attica {};
baloo = callPackage ./baloo {};
bluez-qt = callPackage ./bluez-qt {};
breeze-icons = callPackage ./breeze-icons {};
extra-cmake-modules = callPackage ./extra-cmake-modules {};
frameworkintegration = callPackage ./frameworkintegration {};
kapidox = callPackage ./kapidox {};
karchive = callPackage ./karchive {};
kauth = callPackage ./kauth {};
kbookmarks = callPackage ./kbookmarks {};
kcalendarcore = callPackage ./kcalendarcore {};
kcmutils = callPackage ./kcmutils {};
kcodecs = callPackage ./kcodecs {};
kcolorscheme = callPackage ./kcolorscheme {};
kcompletion = callPackage ./kcompletion {};
kconfig = callPackage ./kconfig {};
kconfigwidgets = callPackage ./kconfigwidgets {};
kcontacts = callPackage ./kcontacts {};
kcoreaddons = callPackage ./kcoreaddons {};
kcrash = callPackage ./kcrash {};
kdav = callPackage ./kdav {};
kdbusaddons = callPackage ./kdbusaddons {};
kdeclarative = callPackage ./kdeclarative {};
kded = callPackage ./kded {};
kdesu = callPackage ./kdesu {};
kdnssd = callPackage ./kdnssd {};
kdoctools = callPackage ./kdoctools {};
kfilemetadata = callPackage ./kfilemetadata {};
kglobalaccel = callPackage ./kglobalaccel {};
kguiaddons = callPackage ./kguiaddons {};
kholidays = callPackage ./kholidays {};
ki18n = callPackage ./ki18n {};
kiconthemes = callPackage ./kiconthemes {};
kidletime = callPackage ./kidletime {};
kimageformats = callPackage ./kimageformats {};
kio = callPackage ./kio {};
kirigami = callPackage ./kirigami {};
kitemmodels = callPackage ./kitemmodels {};
kitemviews = callPackage ./kitemviews {};
kjobwidgets = callPackage ./kjobwidgets {};
knewstuff = callPackage ./knewstuff {};
knotifications = callPackage ./knotifications {};
knotifyconfig = callPackage ./knotifyconfig {};
kpackage = callPackage ./kpackage {};
kparts = callPackage ./kparts {};
kpeople = callPackage ./kpeople {};
kplotting = callPackage ./kplotting {};
kpty = callPackage ./kpty {};
kquickcharts = callPackage ./kquickcharts {};
krunner = callPackage ./krunner {};
kservice = callPackage ./kservice {};
kstatusnotifieritem = callPackage ./kstatusnotifieritem {};
ksvg = callPackage ./ksvg {};
ktexteditor = callPackage ./ktexteditor {};
ktexttemplate = callPackage ./ktexttemplate {};
ktextwidgets = callPackage ./ktextwidgets {};
kunitconversion = callPackage ./kunitconversion {};
kuserfeedback = callPackage ./kuserfeedback {};
kwallet = callPackage ./kwallet {};
kwidgetsaddons = callPackage ./kwidgetsaddons {};
kwindowsystem = callPackage ./kwindowsystem {};
kxmlgui = callPackage ./kxmlgui {};
modemmanager-qt = callPackage ./modemmanager-qt {};
networkmanager-qt = callPackage ./networkmanager-qt {};
prison = callPackage ./prison {};
purpose = callPackage ./purpose {};
qqc2-desktop-style = callPackage ./qqc2-desktop-style {};
solid = callPackage ./solid {};
sonnet = callPackage ./sonnet {};
syndication = callPackage ./syndication {};
syntax-highlighting = callPackage ./syntax-highlighting {};
threadweaver = callPackage ./threadweaver {};
}

View file

@ -0,0 +1,8 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "extra-cmake-modules";
outputs = ["out"];
setupHook = ./ecm-hook.sh;
}

View file

@ -0,0 +1,128 @@
# shellcheck shell=bash
# Variables we use here are set by the stdenv, no use complaining about them
# shellcheck disable=SC2164
ecmEnvHook() {
addToSearchPath XDG_DATA_DIRS "$1/share"
addToSearchPath XDG_CONFIG_DIRS "$1/etc/xdg"
}
addEnvHooks "$targetOffset" ecmEnvHook
ecmPostHook() {
# Because we need to use absolute paths here, we must set *all* the paths.
# Keep this in sync with https://github.com/KDE/extra-cmake-modules/blob/master/kde-modules/KDEInstallDirs6.cmake
if [ "$(uname)" = "Darwin" ]; then
cmakeFlags+=" -DKDE_INSTALL_BUNDLEDIR=${!outputBin}/Applications/KDE"
fi
cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}"
cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib"
cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/libexec"
cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
if [ -n "${qtPluginPrefix-}" ]; then
cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputBin}/$qtPluginPrefix"
cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputBin}/$qtPluginPrefix"
fi
if [ -n "${qtQmlPrefix-}" ]; then
cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputBin}/$qtQmlPrefix"
fi
cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
cmakeFlags+=" -DKDE_INSTALL_SHAREDSTATEDIR=/com" # ???
cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputBin}/share"
cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputBin}/share"
cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputBin}/share/doc/HTML"
cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputBin}/share/config.kcfg"
cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputBin}/share/kconf_update"
cmakeFlags+=" -DKDE_INSTALL_KAPPTEMPLATESDIR=${!outputDev}/share/kdevappwizard/templates"
cmakeFlags+=" -DKDE_INSTALL_KFILETEMPLATESDIR=${!outputDev}/share/kdevfiletemplates/templates"
cmakeFlags+=" -DKDE_INSTALL_KXMLGUIDIR=${!outputBin}/share/kxmlgui6"
cmakeFlags+=" -DKDE_INSTALL_KNOTIFYRCDIR=${!outputBin}/share/knotifications6"
cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputBin}/share/icons"
cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputBin}/share/sounds"
cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputBin}/share/templates"
cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputBin}/share/wallpapers"
cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputBin}/share/applications"
cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputBin}/share/desktop-directories"
cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputBin}/share/mime/packages"
cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputBin}/share/appdata"
cmakeFlags+=" -DKDE_INSTALL_QTQCHDIR=${!outputLib}/share/doc/qch"
cmakeFlags+=" -DKDE_INSTALL_QCHDIR=${!outputLib}/share/doc/qch"
cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputBin}/share/man"
cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputBin}/share/info"
cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputBin}/share/dbus-1"
cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputBin}/share/dbus-1/interfaces"
cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputBin}/share/dbus-1/services"
cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputBin}/share/dbus-1/system-services"
cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputBin}/etc"
cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputBin}/etc/xdg"
cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputBin}/etc/xdg/autostart"
cmakeFlags+=" -DKDE_INSTALL_LOGGINGCATEGORIESDIR=${!outputLib}/share/qlogging-categories6"
cmakeFlags+=" -DKDE_INSTALL_SYSTEMDUNITDIR=${!outputBin}/lib/systemd"
cmakeFlags+=" -DKDE_INSTALL_SYSTEMDUSERUNITDIR=${!outputBin}/share/systemd/user"
}
postHooks+=(ecmPostHook)
xdgDataSubdirs=( \
"config.kcfg" "kconf_update" "knotifications6" "icons" "locale" "sounds" "templates" \
"wallpapers" "applications" "desktop-directories" "mime" "appdata" "dbus-1" \
)
# ecmHostPathsSeen is an associative array of the paths that have already been
# seen by ecmHostPathHook.
declare -gA ecmHostPathsSeen
ecmHostPathIsNotSeen() {
if [[ -n "${ecmHostPathsSeen["$1"]:-}" ]]; then
# The path has been seen before.
return 1
else
# The path has not been seen before.
# Now it is seen, so record it.
ecmHostPathsSeen["$1"]=1
return 0
fi
}
ecmHostPathHook() {
ecmHostPathIsNotSeen "$1" || return 0
local xdgConfigDir="$1/etc/xdg"
if [ -d "$xdgConfigDir" ]
then
qtWrapperArgs+=(--prefix XDG_CONFIG_DIRS : "$xdgConfigDir")
fi
for xdgDataSubdir in "${xdgDataSubdirs[@]}"
do
if [ -d "$1/share/$xdgDataSubdir" ]
then
qtWrapperArgs+=(--prefix XDG_DATA_DIRS : "$1/share")
break
fi
done
local manDir="$1/man"
if [ -d "$manDir" ]
then
qtWrapperArgs+=(--prefix MANPATH : "$manDir")
fi
local infoDir="$1/info"
if [ -d "$infoDir" ]
then
qtWrapperArgs+=(--prefix INFOPATH : "$infoDir")
fi
if [ -d "$1/dbus-1" ]
then
propagatedUserEnvPkgs+=" $1"
fi
}
addEnvHooks "$targetOffset" ecmHostPathHook

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
pkg-config,
packagekit-qt,
}:
mkKdeDerivation {
pname = "frameworkintegration";
extraNativeBuildInputs = [pkg-config];
extraBuildInputs = [packagekit-qt];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kapidox";
}

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qttools,
pkg-config,
xz,
}:
mkKdeDerivation {
pname = "karchive";
extraNativeBuildInputs = [qttools pkg-config];
extraBuildInputs = [xz];
}

View file

@ -0,0 +1,13 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kauth";
# Late resolve paths so things end up in their own prefix
# FIXME(later): discuss with upstream
patches = [./fix-paths.patch];
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,17 @@
diff --git a/KF6AuthConfig.cmake.in b/KF6AuthConfig.cmake.in
index 4ee3f92..65a40d5 100644
--- a/KF6AuthConfig.cmake.in
+++ b/KF6AuthConfig.cmake.in
@@ -4,9 +4,9 @@ set(KAUTH_STUB_FILES_DIR "@PACKAGE_KDE_INSTALL_DATADIR_KF@/kauth/")
set(KAUTH_BACKEND_NAME "@KAUTH_BACKEND_NAME@")
set(KAUTH_HELPER_BACKEND_NAME "@KAUTH_HELPER_BACKEND_NAME@")
-set(KAUTH_POLICY_FILES_INSTALL_DIR "@KAUTH_POLICY_FILES_INSTALL_DIR@")
-set(KAUTH_HELPER_INSTALL_DIR "@KAUTH_HELPER_INSTALL_DIR@")
-set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "@KAUTH_HELPER_INSTALL_ABSOLUTE_DIR@")
+set(KAUTH_POLICY_FILES_INSTALL_DIR "${KDE_INSTALL_DATADIR}/polkit-1/actions")
+set(KAUTH_HELPER_INSTALL_DIR "${KDE_INSTALL_LIBEXECDIR}")
+set(KAUTH_HELPER_INSTALL_ABSOLUTE_DIR "${KDE_INSTALL_LIBEXECDIR}")
include(CMakeFindDependencyMacro)

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kbookmarks";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
libical,
}:
mkKdeDerivation {
pname = "kcalendarcore";
extraBuildInputs = [libical];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kcmutils";
extraPropagatedBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qttools,
gperf,
}:
mkKdeDerivation {
pname = "kcodecs";
extraNativeBuildInputs = [qttools];
extraBuildInputs = [gperf];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kcolorscheme";
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kcompletion";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qttools,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kconfig";
extraNativeBuildInputs = [qttools];
extraPropagatedBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kconfigwidgets";
extraBuildInputs = [qttools];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kcontacts";
}

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qttools,
shared-mime-info,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kcoreaddons";
extraNativeBuildInputs = [qttools shared-mime-info];
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kcrash";
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kdav";
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kdbusaddons";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qtdeclarative,
spirv-tools,
}:
mkKdeDerivation {
pname = "kdeclarative";
extraNativeBuildInputs = [spirv-tools];
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kded";
}

View file

@ -0,0 +1,7 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kdesu";
# Look for NixOS SUID wrapper first
patches = [./kdesu-search-for-wrapped-daemon-first.patch];
}

View file

@ -0,0 +1,38 @@
From 01af4d2a098e5819c09bca37568941dcd4b89d0b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Thu, 16 Jul 2020 13:21:42 -0300
Subject: [PATCH] Search for the daemon first in /run/wrappers/bin
If looking first in libexec, the eventually wrapped one in
/run/wrappers/bin can not be found.
---
src/client.cpp | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/client.cpp b/src/client.cpp
index 44fbacd..6b5abf5 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -384,11 +384,14 @@ int KDEsuClient::stopServer()
static QString findDaemon()
{
- 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_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.";
+ }
}
}
return daemon;
--
2.27.0

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qttools,
avahi,
}:
mkKdeDerivation {
pname = "kdnssd";
extraNativeBuildInputs = [qttools];
extraBuildInputs = [avahi];
}

View file

@ -0,0 +1,18 @@
{
mkKdeDerivation,
docbook_xml_dtd_45,
docbook-xsl-nons,
perl,
perlPackages,
}:
mkKdeDerivation {
pname = "kdoctools";
# lots of self-references, the output is pretty small (~5MB), not worth trying to untangle
outputs = ["out"];
# Perl could be used both at build time and at runtime.
extraNativeBuildInputs = [perl perlPackages.URI];
extraBuildInputs = [docbook_xml_dtd_45 docbook-xsl-nons];
extraPropagatedBuildInputs = [perl perlPackages.URI];
}

View file

@ -0,0 +1,14 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 84cc68c..2e02194 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -85,7 +85,7 @@ install(TARGETS KF6FileMetaData EXPORT KF6FileMetaDataTargets ${KF_INSTALL_TARGE
install(EXPORT KF6FileMetaDataTargets
NAMESPACE KF6::
- DESTINATION ${KDE_INSTALL_LIBDIR}/cmake/KF6FileMetaData
+ DESTINATION ${KDE_INSTALL_FULL_CMAKEPACKAGEDIR}/KF6FileMetaData
FILE KF6FileMetaDataTargets.cmake)
install(FILES

View file

@ -0,0 +1,21 @@
{
mkKdeDerivation,
pkg-config,
attr,
ebook_tools,
exiv2,
ffmpeg,
kconfig,
kdegraphics-mobipocket,
libappimage,
}:
mkKdeDerivation {
pname = "kfilemetadata";
# Fix installing cmake files into wrong directory
# FIXME(later): upstream
patches = [./cmake-install-paths.patch];
extraNativeBuildInputs = [pkg-config];
extraBuildInputs = [attr ebook_tools exiv2 ffmpeg kconfig kdegraphics-mobipocket libappimage];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kglobalaccel";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qtwayland,
pkg-config,
wayland,
}:
mkKdeDerivation {
pname = "kguiaddons";
extraNativeBuildInputs = [pkg-config];
extraBuildInputs = [qtwayland wayland];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qttools,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kholidays";
extraNativeBuildInputs = [qttools];
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "ki18n";
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,15 @@
{
mkKdeDerivation,
qtdeclarative,
qtsvg,
qttools,
}:
mkKdeDerivation {
pname = "kiconthemes";
extraBuildInputs = [
qtdeclarative
qtsvg
qttools
];
}

View file

@ -0,0 +1,13 @@
{
mkKdeDerivation,
qtwayland,
pkg-config,
wayland-protocols,
xorg,
}:
mkKdeDerivation {
pname = "kidletime";
extraNativeBuildInputs = [pkg-config];
extraBuildInputs = [qtwayland xorg.libXScrnSaver wayland-protocols];
}

View file

@ -0,0 +1,16 @@
{
mkKdeDerivation,
pkg-config,
libheif,
libjxl,
libavif,
libraw,
openexr_3,
}:
mkKdeDerivation {
pname = "kimageformats";
extraCmakeFlags = ["-DKIMAGEFORMATS_HEIF=1"];
extraNativeBuildInputs = [pkg-config];
extraBuildInputs = [libheif libjxl libavif libraw openexr_3];
}

View file

@ -0,0 +1,25 @@
From af54a2a37655df26a33bc6783cb472c38f65322f Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Sun, 28 Mar 2021 10:31:12 -0500
Subject: [PATCH 1/2] Remove impure smbd search path
---
src/core/ksambashare.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/ksambashare.cpp b/src/core/ksambashare.cpp
index e810ce4..7cfb4e6 100644
--- a/src/core/ksambashare.cpp
+++ b/src/core/ksambashare.cpp
@@ -61,7 +61,7 @@ KSambaSharePrivate::~KSambaSharePrivate()
bool KSambaSharePrivate::isSambaInstalled()
{
const bool daemonExists =
- !QStandardPaths::findExecutable(QStringLiteral("smbd"), {QStringLiteral("/usr/sbin/"), QStringLiteral("/usr/local/sbin/")}).isEmpty();
+ !QStandardPaths::findExecutable(QStringLiteral("smbd")).isEmpty();
if (!daemonExists) {
qCDebug(KIO_CORE_SAMBASHARE) << "KSambaShare: Could not find smbd";
}
--
2.30.1

View file

@ -0,0 +1,18 @@
{
mkKdeDerivation,
qt5compat,
qttools,
acl,
attr,
}:
mkKdeDerivation {
pname = "kio";
patches = [
# Remove hardcoded smbd search path
# FIXME(later): discuss with upstream?
./0001-Remove-impure-smbd-search-path.patch
];
extraBuildInputs = [qt5compat qttools acl attr];
}

View file

@ -0,0 +1,14 @@
{
mkKdeDerivation,
qtsvg,
qttools,
qtdeclarative,
qt5compat,
}:
mkKdeDerivation {
pname = "kirigami";
extraNativeBuildInputs = [qtsvg qttools];
extraBuildInputs = [qtdeclarative];
extraPropagatedBuildInputs = [qt5compat];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kitemmodels";
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kitemviews";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kjobwidgets";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,16 @@
{
mkKdeDerivation,
qtdeclarative,
qttools,
kcmutils,
}:
mkKdeDerivation {
pname = "knewstuff";
# Late resolve knsrcdir so other things install to their own prefix
# FIXME(later): upstream
patches = [./delay-resolving-knsrcdir.patch];
extraBuildInputs = [qtdeclarative qttools];
extraPropagatedBuildInputs = [kcmutils];
}

View file

@ -0,0 +1,14 @@
diff --git a/KF6NewStuffCoreConfig.cmake.in b/KF6NewStuffCoreConfig.cmake.in
index d70f7132..f75e9fce 100644
--- a/KF6NewStuffCoreConfig.cmake.in
+++ b/KF6NewStuffCoreConfig.cmake.in
@@ -20,7 +20,7 @@ if (NOT @BUILD_SHARED_LIBS@)
endif()
endif()
-set(KDE_INSTALL_KNSRCDIR "@KDE_INSTALL_DATADIR@/knsrcfiles")
+set(KDE_INSTALL_KNSRCDIR "${KDE_INSTALL_DATADIR}/knsrcfiles")
include("${CMAKE_CURRENT_LIST_DIR}/KF6NewStuffCoreTargets.cmake")
@PACKAGE_INCLUDE_CORE_QCHTARGETS@

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qttools,
qtdeclarative,
libcanberra,
}:
mkKdeDerivation {
pname = "knotifications";
extraNativeBuildInputs = [qttools];
extraBuildInputs = [qtdeclarative libcanberra];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
libcanberra,
}:
mkKdeDerivation {
pname = "knotifyconfig";
extraBuildInputs = [libcanberra];
}

View file

@ -0,0 +1,8 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kpackage";
# Follow symlinks when resolving packages
# FIXME(later): upstream
patches = [./follow-symlinks.patch];
}

View file

@ -0,0 +1,13 @@
diff --git a/src/kpackage/packageloader.cpp b/src/kpackage/packageloader.cpp
index 9dbd1f6..c50a6e5 100644
--- a/src/kpackage/packageloader.cpp
+++ b/src/kpackage/packageloader.cpp
@@ -128,7 +128,7 @@ QList<KPluginMetaData> PackageLoader::listPackages(const QString &packageFormat,
}
for (auto const &plugindir : std::as_const(paths)) {
- QDirIterator it(plugindir, QStringList{QStringLiteral("metadata.json")}, QDir::Files, QDirIterator::Subdirectories);
+ QDirIterator it(plugindir, QStringList{QStringLiteral("metadata.json")}, QDir::Files, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
std::unordered_set<QString> dirs;
while (it.hasNext()) {
it.next();

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kparts";
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kpeople";
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kplotting";
extraBuildInputs = [qttools];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kpty";
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "kquickcharts";
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
plasma-activities,
}:
mkKdeDerivation {
pname = "krunner";
extraBuildInputs = [plasma-activities];
}

View file

@ -0,0 +1,10 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kservice";
patches = [
# follow symlinks when generating sycoca
# FIXME(later): upstream
./qdiriterator-follow-symlinks.patch
];
}

View file

@ -0,0 +1,13 @@
diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp
index b125299..0682b90 100644
--- a/src/sycoca/kbuildsycoca.cpp
+++ b/src/sycoca/kbuildsycoca.cpp
@@ -207,7 +207,7 @@ bool KBuildSycoca::build()
const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, QStandardPaths::LocateDirectory);
qCDebug(SYCOCA) << "Looking for subdir" << m_resourceSubdir << "=>" << dirs;
for (const QString &dir : dirs) {
- QDirIterator it(dir, QDirIterator::Subdirectories);
+ QDirIterator it(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
while (it.hasNext()) {
const QString filePath = it.next();
Q_ASSERT(filePath.startsWith(dir)); // due to the line below...

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kstatusnotifieritem";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,10 @@
{
mkKdeDerivation,
qtdeclarative,
qtsvg,
}:
mkKdeDerivation {
pname = "ksvg";
extraBuildInputs = [qtdeclarative qtsvg];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qtdeclarative,
qtspeech,
editorconfig-core-c,
}:
mkKdeDerivation {
pname = "ktexteditor";
extraBuildInputs = [qtdeclarative qtspeech editorconfig-core-c];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtdeclarative,
}:
mkKdeDerivation {
pname = "ktexttemplate";
extraBuildInputs = [qtdeclarative];
}

View file

@ -0,0 +1,13 @@
{
mkKdeDerivation,
qtspeech,
qttools,
}:
mkKdeDerivation {
pname = "ktextwidgets";
extraBuildInputs = [
qtspeech
qttools
];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "kunitconversion";
}

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qttools,
qtsvg,
}:
mkKdeDerivation {
pname = "kuserfeedback";
# Disable server-side stuff we don't care about
extraCmakeFlags = ["-DENABLE_CONSOLE=0" "-DENABLE_CLI=0"];
extraNativeBuildInputs = [qttools qtsvg];
}

View file

@ -0,0 +1,10 @@
{
mkKdeDerivation,
libgcrypt,
kdoctools,
}:
mkKdeDerivation {
pname = "kwallet";
extraBuildInputs = [libgcrypt kdoctools];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kwidgetsaddons";
extraNativeBuildInputs = [qttools];
}

View file

@ -0,0 +1,14 @@
{
mkKdeDerivation,
qttools,
qtdeclarative,
qtwayland,
pkg-config,
wayland,
}:
mkKdeDerivation {
pname = "kwindowsystem";
extraNativeBuildInputs = [qttools pkg-config];
extraBuildInputs = [qtdeclarative qtwayland wayland];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qttools,
}:
mkKdeDerivation {
pname = "kxmlgui";
extraBuildInputs = [qttools];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
pkg-config,
modemmanager,
}:
mkKdeDerivation {
pname = "modemmanager-qt";
extraNativeBuildInputs = [pkg-config];
extraPropagatedBuildInputs = [modemmanager];
}

View file

@ -0,0 +1,13 @@
{
mkKdeDerivation,
qtdeclarative,
pkg-config,
networkmanager,
}:
mkKdeDerivation {
pname = "networkmanager-qt";
extraNativeBuildInputs = [pkg-config];
extraBuildInputs = [qtdeclarative];
extraPropagatedBuildInputs = [networkmanager];
}

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qtdeclarative,
qtmultimedia,
qrencode,
libdmtx,
}:
mkKdeDerivation {
pname = "prison";
extraBuildInputs = [qtdeclarative qtmultimedia qrencode libdmtx];
}

View file

@ -0,0 +1,13 @@
{
mkKdeDerivation,
qtdeclarative,
kaccounts-integration,
kdeclarative,
prison,
}:
mkKdeDerivation {
pname = "purpose";
extraBuildInputs = [qtdeclarative];
extraPropagatedBuildInputs = [kaccounts-integration kdeclarative prison];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qtdeclarative,
sonnet,
}:
mkKdeDerivation {
pname = "qqc2-desktop-style";
extraBuildInputs = [qtdeclarative];
extraPropagatedBuildInputs = [sonnet];
}

View file

@ -0,0 +1,16 @@
{
mkKdeDerivation,
qttools,
bison,
flex,
libimobiledevice,
}:
mkKdeDerivation {
pname = "solid";
# Also search /run/wrappers for mount/umount
patches = [./fix-search-path.patch];
extraNativeBuildInputs = [qttools bison flex];
extraBuildInputs = [libimobiledevice];
}

View file

@ -0,0 +1,17 @@
diff --git a/src/solid/devices/backends/fstab/fstabhandling.cpp b/src/solid/devices/backends/fstab/fstabhandling.cpp
index ac2a628..7ee46cc 100644
--- a/src/solid/devices/backends/fstab/fstabhandling.cpp
+++ b/src/solid/devices/backends/fstab/fstabhandling.cpp
@@ -275,7 +275,11 @@ bool Solid::Backends::Fstab::FstabHandling::callSystemCommand(const QString &com
const QObject *receiver,
std::function<void(QProcess *)> callback)
{
- static const QStringList searchPaths{QStringLiteral("/sbin"), QStringLiteral("/bin"), QStringLiteral("/usr/sbin"), QStringLiteral("/usr/bin")};
+ static const QStringList searchPaths{QStringLiteral("/run/wrappers/bin"),
+ QStringLiteral("/sbin"),
+ QStringLiteral("/bin"),
+ QStringLiteral("/usr/sbin"),
+ QStringLiteral("/usr/bin")};
static const QString joinedPaths = searchPaths.join(QLatin1Char(':'));
const QString exec = QStandardPaths::findExecutable(commandName, searchPaths);
if (exec.isEmpty()) {

View file

@ -0,0 +1,14 @@
{
mkKdeDerivation,
qtdeclarative,
qttools,
pkg-config,
aspell,
hunspell,
}:
mkKdeDerivation {
pname = "sonnet";
extraNativeBuildInputs = [qttools pkg-config];
extraBuildInputs = [qtdeclarative aspell hunspell];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "syndication";
}

View file

@ -0,0 +1,12 @@
{
mkKdeDerivation,
qtdeclarative,
qttools,
perl,
}:
mkKdeDerivation {
pname = "syntax-highlighting";
extraBuildInputs = [qtdeclarative];
extraNativeBuildInputs = [qttools perl];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "threadweaver";
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "akonadi-calendar-tools";
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "akonadi-calendar";
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "akonadi-contacts";
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "akonadi-import-wizard";
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
shared-mime-info,
}:
mkKdeDerivation {
pname = "akonadi-mime";
extraNativeBuildInputs = [shared-mime-info];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "akonadi-notes";
}

View file

@ -0,0 +1,33 @@
{
mkKdeDerivation,
sources,
corrosion,
xapian,
rustPlatform,
cargo,
rustc,
# provided as callPackage input to enable easier overrides through overlays
cargoHash ? "sha256-euUaB+QCwwwPjrUq+3NHt0hjDSW5gch8MwS57KmtIWI=",
}:
mkKdeDerivation rec {
pname = "akonadi-search";
inherit (sources.${pname}) version;
cargoRoot = "agent/rs/htmlparser";
cargoDeps = rustPlatform.fetchCargoTarball {
# include version in the name so we invalidate the FOD
name = "${pname}-${version}";
src = sources.${pname};
sourceRoot = "${pname}-${version}/${cargoRoot}";
hash = cargoHash;
};
extraNativeBuildInputs = [
rustPlatform.cargoSetupHook
cargo
rustc
];
extraBuildInputs = [corrosion xapian];
}

View file

@ -0,0 +1,16 @@
{
mkKdeDerivation,
qttools,
accounts-qt,
kaccounts-integration,
shared-mime-info,
xz,
}:
mkKdeDerivation {
pname = "akonadi";
# FIXME(later): investigate nixpkgs patches
extraNativeBuildInputs = [qttools shared-mime-info];
extraBuildInputs = [kaccounts-integration accounts-qt xz];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
xapian,
}:
mkKdeDerivation {
pname = "akonadiconsole";
extraBuildInputs = [xapian];
}

View file

@ -0,0 +1,9 @@
{
mkKdeDerivation,
qtwebengine,
}:
mkKdeDerivation {
pname = "akregator";
extraBuildInputs = [qtwebengine];
}

View file

@ -0,0 +1,4 @@
{mkKdeDerivation}:
mkKdeDerivation {
pname = "alligator";
}

View file

@ -0,0 +1,14 @@
{
mkKdeDerivation,
qt5compat,
qtsvg,
qttools,
qtdeclarative,
eigen,
}:
mkKdeDerivation {
pname = "analitza";
extraNativeBuildInputs = [qt5compat qtsvg qttools];
extraBuildInputs = [qtdeclarative eigen];
}

View file

@ -0,0 +1,32 @@
{
mkKdeDerivation,
sources,
qtsvg,
qtwebengine,
corrosion,
rustPlatform,
cargo,
rustc,
# provided as callPackage input to enable easier overrides through overlays
cargoHash ? "sha256-kkoLWJvPx1Hq+MQkPgTffrTFYgVlVfKdmJq5ExAW1NE=",
qcoro,
}:
mkKdeDerivation rec {
pname = "angelfish";
inherit (sources.${pname}) version;
cargoDeps = rustPlatform.fetchCargoTarball {
# include version in the name so we invalidate the FOD
name = "${pname}-${version}";
src = sources.${pname};
hash = cargoHash;
};
extraNativeBuildInputs = [
rustPlatform.cargoSetupHook
cargo
rustc
];
extraBuildInputs = [corrosion qtsvg qtwebengine qcoro];
}

View file

@ -0,0 +1,21 @@
{
mkKdeDerivation,
qthttpserver,
qtsvg,
qtwebchannel,
qtwebengine,
kitemmodels,
kquickcharts,
}:
mkKdeDerivation {
pname = "arianna";
extraBuildInputs = [
qthttpserver
qtsvg
qtwebchannel
qtwebengine
kitemmodels
kquickcharts
];
}

View file

@ -0,0 +1,10 @@
{
mkKdeDerivation,
libarchive,
libzip,
}:
mkKdeDerivation {
pname = "ark";
extraBuildInputs = [libarchive libzip];
}

View file

@ -0,0 +1,11 @@
{
mkKdeDerivation,
qtmultimedia,
}:
mkKdeDerivation {
pname = "artikulate";
extraBuildInputs = [qtmultimedia];
# FIXME(qt5)
meta.broken = true;
}

View file

@ -0,0 +1,24 @@
{
lib,
mkKdeDerivation,
cdparanoia,
flac,
libogg,
libvorbis,
substituteAll,
lame,
opusTools,
}:
mkKdeDerivation {
pname = "audiocd-kio";
patches = [
(substituteAll {
src = ./encoder-paths.patch;
lame = lib.getExe lame;
opusenc = "${opusTools}/bin/opusenc";
})
];
extraBuildInputs = [cdparanoia flac libogg libvorbis];
}

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