Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-08-21 20:43:13 +00:00
committed by GitHub
612 changed files with 686 additions and 28220 deletions
+80 -31
View File
@@ -13,39 +13,88 @@ inputs:
runs:
using: composite
steps:
- if: inputs.merged-as-untrusted-at
# Would be great to do the checkouts in git worktrees of the existing spare checkout instead,
# but Nix is broken with them:
# https://github.com/NixOS/nix/issues/6073
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: ${{ inputs.merged-as-untrusted-at }}
path: untrusted
- if: inputs.target-as-trusted-at
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: ${{ inputs.target-as-trusted-at }}
path: trusted
- if: inputs.pinned-from
id: pinned
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
env:
MERGED_SHA: ${{ inputs.merged-as-untrusted-at }}
PINNED_FROM: ${{ inputs.pinned-from }}
TARGET_SHA: ${{ inputs.target-as-trusted-at }}
with:
script: |
const path = require('node:path')
const pinned = require(path.resolve(path.join(process.env.PINNED_FROM, 'ci', 'pinned.json')))
core.setOutput('pinned-at', pinned.pins.nixpkgs.revision)
const { spawn } = require('node:child_process')
const { join } = require('node:path')
- if: steps.pinned.outputs.pinned-at
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
ref: ${{ steps.pinned.outputs.pinned-at }}
path: pinned
sparse-checkout: |
lib
maintainers
nixos/lib
pkgs
async function run(cmd, ...args) {
return new Promise((resolve, reject) => {
const proc = spawn(cmd, args, {
stdio: 'inherit'
})
proc.on('close', (code) => {
if (code === 0) resolve()
else reject(code)
})
})
}
// These are set automatically by the spare checkout for .github/actions.
// Undo them, otherwise git fetch below will not do anything.
await run('git', 'config', 'unset', 'remote.origin.promisor')
await run('git', 'config', 'unset', 'remote.origin.partialclonefilter')
// Getting the pinned SHA via API allows us to do one single fetch call for all commits.
// Otherwise we would have to fetch merged/target first, read pinned, fetch again.
// A single fetch call comes with a lot less overhead. The fetch takes essentially the
// same time no matter whether its 1, 2 or 3 commits at once.
async function getPinnedSha(ref) {
const { content, encoding } = (await github.rest.repos.getContent({
...context.repo,
path: 'ci/pinned.json',
ref,
})).data
const pinned = JSON.parse(Buffer.from(content, encoding).toString())
return pinned.pins.nixpkgs.revision
}
const commits = [
{
sha: process.env.MERGED_SHA,
path: 'untrusted',
},
{
sha: process.env.PINNED_FROM === 'untrusted' && (await getPinnedSha(process.env.MERGED_SHA)),
path: 'pinned'
},
{
sha: process.env.TARGET_SHA,
path: 'trusted',
},
{
sha: process.env.PINNED_FROM === 'trusted' && (await getPinnedSha(process.env.TARGET_SHA)),
path: 'pinned'
}
].filter(({ sha }) => Boolean(sha))
console.log('Checking out the following commits:', commits)
// Fetching all commits at once is much faster than doing multiple checkouts.
// This would fail without --refetch, because the we had a partial clone before, but changed it above.
await run('git', 'fetch', '--depth=1', '--refetch', 'origin', ...(commits.map(({ sha }) => sha)))
// Create all worktrees in parallel.
await Promise.all(commits.map(async ({ sha, path }) => {
// Checking out onto tmpfs takes 1s and is faster by at least factor 10x.
await run('mkdir', path)
switch (process.env.RUNNER_OS) {
case 'macOS':
await run('sudo', 'mount_tmpfs', path)
// macOS creates this hidden folder to log file system activity.
// This trips up git when adding a worktree below, because the target folder is not empty.
await run('sudo', 'rm', '-rf', join(path, '.fseventsd'))
break
case 'Linux':
await run('sudo', 'mount', '-t', 'tmpfs', 'tmpfs', path)
break
}
await run('git', 'worktree', 'add', path, sha, '--no-checkout', '--force')
await run('git', '-C', path, 'sparse-checkout', 'disable')
await run('git', '-C', path, 'checkout', '--progress')
}))
+3 -6
View File
@@ -431,12 +431,9 @@
- changed-files:
- any-glob-to-any-file:
- doc/languages-frameworks/qt.section.md
- nixos/modules/services/x11/desktop-managers/plasma5.nix
- nixos/tests/plasma5.nix
- pkgs/applications/kde/**/*
- pkgs/desktops/plasma-5/**/*
- pkgs/development/libraries/kde-frameworks/**/*
- pkgs/development/libraries/qt-5/**/*
- nixos/modules/services/desktop-managers/plasma6.nix
- nixos/tests/plasma6.nix
- pkgs/kde/**/*
"6.topic: R":
- any:
+2 -2
View File
@@ -217,6 +217,7 @@ jobs:
- name: Check out the PR at the target commit
uses: ./.github/actions/checkout
with:
merged-as-untrusted-at: ${{ inputs.mergedSha }}
target-as-trusted-at: ${{ inputs.targetSha }}
pinned-from: trusted
@@ -240,7 +241,6 @@ jobs:
env:
AUTHOR_ID: ${{ github.event.pull_request.user.id }}
run: |
git -C trusted fetch --depth 1 origin ${{ inputs.mergedSha }}
git -C trusted diff --name-only ${{ inputs.mergedSha }} \
| jq --raw-input --slurp 'split("\n")[:-1]' > touched-files.json
@@ -392,7 +392,7 @@ jobs:
uses: cachix/install-nix-action@fc6e360bedc9ee72d75e701397f0bb30dce77568 # v31
- name: Ensure flake outputs on all systems still evaluate
run: nix flake check --all-systems --no-build ./untrusted
run: nix flake check --all-systems --no-build './untrusted?shallow=1'
- name: Query nixpkgs with aliases enabled to check for basic syntax errors
run: |
+1 -3
View File
@@ -264,9 +264,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000 @ttuegel
/pkgs/development/libraries/qt-6 @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE / Plasma 5
/pkgs/applications/kde @K900 @NickCao @SuperSandro2000 @ttuegel
/pkgs/desktops/plasma-5 @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE Frameworks 5
/pkgs/development/libraries/kde-frameworks @K900 @NickCao @SuperSandro2000 @ttuegel
# KDE / Plasma 6
@@ -33,7 +33,7 @@ Here, we include two modules from the same directory, `vpn.nix` and
{
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
services.desktopManager.plasma6.enable = true;
environment.systemPackages = [ pkgs.vim ];
}
```
@@ -1,10 +1,10 @@
# Graphical {#sec-profile-graphical}
Defines a NixOS configuration with the Plasma 5 desktop. It's used by the
Defines a NixOS configuration with the Plasma 6 desktop. It's used by the
graphical installation CD.
It sets [](#opt-services.xserver.enable),
[](#opt-services.displayManager.sddm.enable),
[](#opt-services.xserver.desktopManager.plasma5.enable),
[](#opt-services.desktopManager.plasma6.enable),
and [](#opt-services.libinput.enable) to true. It also
includes glxinfo and firefox in the system packages list.
@@ -23,7 +23,7 @@ Thus you should pick one or more of the following lines:
```nix
{
services.xserver.desktopManager.plasma5.enable = true;
services.desktopManager.plasma6.enable = true;
services.xserver.desktopManager.xfce.enable = true;
services.desktopManager.gnome.enable = true;
services.xserver.desktopManager.mate.enable = true;
@@ -12,6 +12,8 @@
- The NetworkManager module does not ship with a default set of VPN plugins anymore. All required VPN plugins must now be explicitly configured in [`networking.networkmanager.plugins`](#opt-networking.networkmanager.plugins).
- The Qt 5-based versions of KDE Gear, Plasma, Maui and Deepin have been removed. Users are advised to migrate to Plasma 6 and Gear 25.08, available under `kdePackages`.
## New Modules {#sec-release-25.11-new-modules}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
+1 -1
View File
@@ -53,7 +53,7 @@ in
panel = lib.mkOption {
type = with lib.types; nullOr path;
default = null;
example = lib.literalExpression ''"''${pkgs.plasma5Packages.plasma-desktop}/libexec/kimpanel-ibus-panel"'';
example = lib.literalExpression ''"''${pkgs.kdePackages.plasma-desktop}/libexec/kimpanel-ibus-panel"'';
description = "Replace the IBus panel with another panel.";
};
};
@@ -1,53 +0,0 @@
# This module defines a NixOS installation CD that contains X11 and
# Plasma 5.
{ lib, pkgs, ... }:
{
imports = [ ./installation-cd-graphical-calamares.nix ];
isoImage.edition = lib.mkDefault "plasma5";
services.xserver.desktopManager.plasma5 = {
enable = true;
};
# Automatically login as nixos.
services.displayManager = {
sddm.enable = true;
autoLogin = {
enable = true;
user = "nixos";
};
};
environment.systemPackages = with pkgs; [
# Graphical text editor
plasma5Packages.kate
];
system.activationScripts.installerDesktop =
let
# Comes from documentation.nix when xserver and nixos.enable are true.
manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
homeDir = "/home/nixos/";
desktopDir = homeDir + "Desktop/";
in
''
mkdir -p ${desktopDir}
chown nixos ${homeDir} ${desktopDir}
ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${
desktopDir + "org.kde.konsole.desktop"
}
ln -sfT ${pkgs.calamares-nixos}/share/applications/calamares.desktop ${
desktopDir + "calamares.desktop"
}
'';
}
@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
imports = [ ./installation-cd-graphical-plasma5.nix ];
boot.kernelPackages = pkgs.linuxPackages_latest;
}
@@ -1,50 +0,0 @@
# This module defines a NixOS installation CD that contains X11 and
# Plasma 5.
{ lib, pkgs, ... }:
{
imports = [ ./installation-cd-graphical-base.nix ];
isoImage.edition = lib.mkDefault "plasma5";
services.xserver.desktopManager.plasma5 = {
enable = true;
};
# Automatically login as nixos.
services.displayManager = {
sddm.enable = true;
autoLogin = {
enable = true;
user = "nixos";
};
};
environment.systemPackages = with pkgs; [
# Graphical text editor
plasma5Packages.kate
];
system.activationScripts.installerDesktop =
let
# Comes from documentation.nix when xserver and nixos.enable are true.
manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop";
homeDir = "/home/nixos/";
desktopDir = homeDir + "Desktop/";
in
''
mkdir -p ${desktopDir}
chown nixos ${homeDir} ${desktopDir}
ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"}
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"}
ln -sfT ${pkgs.plasma5Packages.konsole}/share/applications/org.kde.konsole.desktop ${
desktopDir + "org.kde.konsole.desktop"
}
'';
}
-4
View File
@@ -543,10 +543,6 @@
./services/desktops/blueman.nix
./services/desktops/bonsaid.nix
./services/desktops/cpupower-gui.nix
./services/desktops/deepin/app-services.nix
./services/desktops/deepin/dde-api.nix
./services/desktops/deepin/dde-daemon.nix
./services/desktops/deepin/deepin-anything.nix
./services/desktops/dleyna.nix
./services/desktops/espanso.nix
./services/desktops/flatpak.nix
+2 -2
View File
@@ -1,4 +1,4 @@
# This module defines a NixOS configuration with the Plasma 5 desktop.
# This module defines a NixOS configuration with the Plasma 6 desktop.
# It's used by the graphical installation CD.
{ pkgs, ... }:
@@ -6,7 +6,7 @@
{
services.xserver = {
enable = true;
desktopManager.plasma5.enable = true;
desktopManager.plasma6.enable = true;
};
services = {
+1 -1
View File
@@ -27,7 +27,7 @@ in
enablePlasmaBrowserIntegration = lib.mkEnableOption "Native Messaging Host for Plasma Browser Integration";
plasmaBrowserIntegrationPackage = lib.mkPackageOption pkgs [
"plasma5Packages"
"kdePackages"
"plasma-browser-integration"
] { };
+1 -1
View File
@@ -77,7 +77,7 @@ in
Which pinentry package to use. The path to the mainProgram as defined in
the package's meta attributes will be set in /etc/gnupg/gpg-agent.conf.
If not set by the user, it'll pick an appropriate flavor depending on the
system configuration (qt flavor for lxqt and plasma5, gtk2 for xfce,
system configuration (qt flavor for lxqt and plasma, gtk2 for xfce,
gnome3 on all other systems with X enabled, curses otherwise).
'';
};
+1 -1
View File
@@ -15,7 +15,7 @@
`gnomeExtensions.gsconnect` as an alternative
implementation if you use Gnome
'';
package = lib.mkPackageOption pkgs [ "plasma5Packages" "kdeconnect-kde" ] {
package = lib.mkPackageOption pkgs [ "kdePackages" "kdeconnect-kde" ] {
example = "gnomeExtensions.gsconnect";
};
};
-4
View File
@@ -23,10 +23,6 @@
plasma6XdgDesktopPortalSupport =
prev.plasma6XdgDesktopPortalSupport or config.services.desktopManager.plasma6.enable;
# Support Plasma 5 desktop environment if it's enabled on the system.
plasma5XdgDesktopPortalSupport =
prev.plasma5XdgDesktopPortalSupport or config.services.xserver.desktopManager.plasma5.enable;
# Support LXQT desktop environment if it's enabled on the system.
# There's also `config.services.xserver.desktopManager.lxqt.enable`
lxqtXdgDesktopPortalSupport = prev.lxqtXdgDesktopPortalSupport or config.xdg.portal.lxqt.enable;
+16
View File
@@ -127,6 +127,10 @@ in
"services"
"dd-agent"
] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.")
(mkRemovedOptionModule [
"services"
"deepin"
] "the Deepin desktop environment has been removed from nixpkgs due to lack of maintenance.")
(mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
(mkRemovedOptionModule [ "services" "dnscrypt-wrapper" ] ''
The dnscrypt-wrapper module was removed since the project has been effectively unmaintained since 2018;
@@ -265,6 +269,18 @@ in
LightDM. Please use the services.displayManager.autoLogin options
instead, or any other display manager in NixOS as they all support auto-login.
'')
(mkRemovedOptionModule [
"services"
"xserver"
"desktopManager"
"plasma5"
] "the Plasma 5 desktop environment has been removed from nixpkgs, as it has reached EOL upstream.")
(mkRemovedOptionModule [
"services"
"xserver"
"desktopManager"
"deepin"
] "the Deepin desktop environment has been removed from nixpkgs due to lack of maintenance.")
(mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
services.xserver.multitouch (which uses xf86_input_mtrack) has been removed
as the underlying package isn't being maintained. Working alternatives are
+2 -2
View File
@@ -549,8 +549,8 @@ let
'';
};
package = lib.mkPackageOption pkgs.plasma5Packages "kwallet-pam" {
pkgsText = "pkgs.plasma5Packages";
package = lib.mkPackageOption pkgs.kdePackages "kwallet-pam" {
pkgsText = "pkgs.kdePackages";
};
forceRun = lib.mkEnableOption null // {
@@ -20,7 +20,9 @@ in
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
systemd.services.display-manager.path = [ cfg.package ];
systemd.services.display-manager = lib.mkIf config.services.displayManager.enable {
path = [ cfg.package ];
};
services.speechd.enable = true;
};
}
@@ -68,13 +68,6 @@ in
];
config = mkIf cfg.enable {
assertions = [
{
assertion = cfg.enable -> !config.services.xserver.desktopManager.plasma5.enable;
message = "Cannot enable plasma5 and plasma6 at the same time!";
}
];
qt.enable = true;
programs.xwayland.enable = true;
environment.systemPackages =
@@ -1,46 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
###### interface
options = {
services.deepin.app-services = {
enable = lib.mkEnableOption "service collection of DDE applications, including dconfig-center";
};
};
###### implementation
config = lib.mkIf config.services.deepin.app-services.enable {
users.groups.dde-dconfig-daemon = { };
users.users.dde-dconfig-daemon = {
description = "Dconfig daemon user";
home = "/var/lib/dde-dconfig-daemon";
createHome = true;
group = "dde-dconfig-daemon";
isSystemUser = true;
};
environment.systemPackages = [ pkgs.deepin.dde-app-services ];
systemd.packages = [ pkgs.deepin.dde-app-services ];
services.dbus.packages = [ pkgs.deepin.dde-app-services ];
environment.pathsToLink = [ "/share/dsg" ];
};
}
@@ -1,51 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
###### interface
options = {
services.deepin.dde-api = {
enable = lib.mkEnableOption ''
the DDE API, which provides some dbus interfaces that is used for screen zone detecting,
thumbnail generating, and sound playing in Deepin Desktop Environment
'';
};
};
###### implementation
config = lib.mkIf config.services.deepin.dde-api.enable {
environment.systemPackages = [ pkgs.deepin.dde-api ];
services.dbus.packages = [ pkgs.deepin.dde-api ];
systemd.packages = [ pkgs.deepin.dde-api ];
environment.pathsToLink = [ "/lib/deepin-api" ];
users.groups.deepin-sound-player = { };
users.users.deepin-sound-player = {
description = "Deepin sound player";
home = "/var/lib/deepin-sound-player";
createHome = true;
group = "deepin-sound-player";
isSystemUser = true;
};
};
}
@@ -1,41 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
###### interface
options = {
services.deepin.dde-daemon = {
enable = lib.mkEnableOption "daemon for handling the deepin session settings";
};
};
###### implementation
config = lib.mkIf config.services.deepin.dde-daemon.enable {
environment.systemPackages = [ pkgs.deepin.dde-daemon ];
services.dbus.packages = [ pkgs.deepin.dde-daemon ];
services.udev.packages = [ pkgs.deepin.dde-daemon ];
systemd.packages = [ pkgs.deepin.dde-daemon ];
environment.pathsToLink = [ "/lib/deepin-daemon" ];
};
}
@@ -1,43 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
meta = {
maintainers = lib.teams.deepin.members;
};
options = {
services.deepin.deepin-anything = {
enable = lib.mkEnableOption "deepin anything file search tool";
};
};
config = lib.mkIf config.services.deepin.dde-api.enable {
environment.systemPackages = [ pkgs.deepin.deepin-anything ];
services.dbus.packages = [ pkgs.deepin.deepin-anything ];
users.groups.deepin-anything = { };
users.users.deepin-anything = {
description = "Deepin Anything Server";
home = "/var/lib/deepin-anything";
createHome = true;
group = "deepin-anything";
isSystemUser = true;
};
boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything-module ];
boot.kernelModules = [ "vfs_monitor" ];
};
}
@@ -228,7 +228,7 @@ in
'';
};
package = mkPackageOption pkgs [ "plasma5Packages" "sddm" ] { };
package = mkPackageOption pkgs [ "libsForQt5" "sddm" ] { };
enableHidpi = mkOption {
type = types.bool;
@@ -1,233 +0,0 @@
{
config,
lib,
pkgs,
utils,
...
}:
with lib;
let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.deepin;
nixos-gsettings-overrides = pkgs.deepin.dde-gsettings-schemas.override {
extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages;
extraGSettingsOverrides = cfg.extraGSettingsOverrides;
};
in
{
options = {
services.xserver.desktopManager.deepin = {
enable = mkEnableOption "Deepin desktop manager";
extraGSettingsOverrides = mkOption {
default = "";
type = types.lines;
description = "Additional gsettings overrides.";
};
extraGSettingsOverridePackages = mkOption {
default = [ ];
type = types.listOf types.path;
description = "List of packages for which gsettings are overridden.";
};
};
environment.deepin.excludePackages = mkOption {
default = [ ];
type = types.listOf types.package;
description = "List of default packages to exclude from the configuration";
};
};
config = mkIf cfg.enable {
services.displayManager.sessionPackages = [ pkgs.deepin.dde-session ];
services.displayManager.defaultSession = mkDefault "dde-x11";
# Update the DBus activation environment after launching the desktop manager.
services.xserver.displayManager.sessionCommands = ''
${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all
'';
hardware.bluetooth.enable = mkDefault true;
security.polkit.enable = true;
services.deepin.dde-daemon.enable = mkForce true;
services.deepin.dde-api.enable = mkForce true;
services.deepin.app-services.enable = mkForce true;
services.colord.enable = mkDefault true;
services.accounts-daemon.enable = mkDefault true;
services.gvfs.enable = mkDefault true;
services.gnome.glib-networking.enable = mkDefault true;
services.gnome.gnome-keyring.enable = mkDefault true;
services.gnome.gcr-ssh-agent.enable = mkDefault true;
services.bamf.enable = mkDefault true;
services.libinput.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = mkDefault config.powerManagement.enable;
networking.networkmanager.enable = mkDefault true;
programs.dconf.enable = mkDefault true;
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
fonts.packages = with pkgs; [ noto-fonts ];
xdg.mime.enable = true;
xdg.menus.enable = true;
xdg.icons.enable = true;
xdg.portal.enable = mkDefault true;
xdg.portal.extraPortals = mkDefault [
pkgs.xdg-desktop-portal-gtk
];
# https://github.com/NixOS/nixpkgs/pull/247766#issuecomment-1722839259
xdg.portal.config.deepin.default = mkDefault [ "gtk" ];
environment.sessionVariables = {
NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
DDE_POLKIT_AGENT_PLUGINS_DIRS = [ "${pkgs.deepin.dpa-ext-gnomekeyring}/lib/polkit-1-dde/plugins" ];
};
environment.pathsToLink = [
"/lib/dde-dock/plugins"
"/lib/dde-control-center"
"/lib/dde-session-shell"
"/lib/dde-file-manager"
"/share/backgrounds"
"/share/wallpapers"
"/share/dde-daemon"
"/share/dsg"
"/share/deepin-themes"
"/share/deepin"
"/share/dde-shell"
];
environment.etc = {
"deepin-installer.conf".text = ''
system_info_vendor_name="Copyright (c) 2003-2024 NixOS contributors"
'';
};
systemd.tmpfiles.rules = [
"d /var/lib/AccountsService 0775 root root - -"
"C /var/lib/AccountsService/icons 0775 root root - ${pkgs.deepin.dde-account-faces}/var/lib/AccountsService/icons"
];
security.pam.services.dde-lock.text = ''
# original at {dde-session-shell}/etc/pam.d/dde-lock
auth substack login
account include login
password substack login
session include login
'';
environment.systemPackages =
with pkgs;
with deepin;
let
requiredPackages = [
pciutils # for dtkcore/startdde
xdotool # for dde-daemon
glib # for gsettings program / gdbus
gtk3 # for gtk-launch program
xdg-user-dirs # Update user dirs
util-linux # runuser
polkit_gnome
librsvg # dde-api use rsvg-convert
lshw # for dtkcore
libsForQt5.kde-gtk-config # deepin-api/gtk-thumbnailer need
libsForQt5.kglobalaccel
xsettingsd # lightdm-deepin-greeter
dtkcommon
dtkcore
dtkgui
dtkwidget
dtkdeclarative
qt5platform-plugins
qt6platform-plugins
qt5integration
qt6integration
deepin-pw-check
dde-account-faces
deepin-icon-theme
deepin-desktop-theme
deepin-sound-theme
deepin-gtk-theme
deepin-wallpapers
deepin-desktop-base
startdde
dde-shell
dde-launchpad
dde-session-ui
dde-session-shell
dde-file-manager
dde-control-center
dde-network-core
dde-clipboard
dde-polkit-agent
dpa-ext-gnomekeyring
deepin-desktop-schemas
deepin-kwin
dde-session
dde-widgets
dde-appearance
dde-application-manager
deepin-service-manager
dde-api-proxy
dde-tray-loader
];
optionalPackages = [
dde-calendar
dde-grand-search
deepin-terminal
onboard # dde-dock plugin
deepin-calculator
deepin-compressor
deepin-editor
deepin-system-monitor
deepin-shortcut-viewer
];
in
requiredPackages
++ utils.removePackagesByName optionalPackages config.environment.deepin.excludePackages;
services.dbus.packages = with pkgs.deepin; [
dde-shell
dde-launchpad
dde-session-ui
dde-session-shell
dde-file-manager
dde-control-center
dde-calendar
dde-clipboard
deepin-kwin
deepin-pw-check
dde-widgets
dde-session
dde-appearance
dde-application-manager
deepin-service-manager
dde-grand-search
dde-api-proxy
];
systemd.packages = with pkgs.deepin; [
dde-shell
dde-launchpad
dde-file-manager
dde-calendar
dde-clipboard
deepin-kwin
dde-appearance
dde-widgets
dde-session
dde-application-manager
deepin-service-manager
dde-api-proxy
];
};
}
@@ -26,7 +26,6 @@ in
./xterm.nix
./phosh.nix
./xfce.nix
./plasma5.nix
../../desktop-managers/plasma6.nix
./lumina.nix
./lxqt.nix
@@ -39,7 +38,6 @@ in
./cde.nix
./cinnamon.nix
./budgie.nix
./deepin.nix
../../desktop-managers/lomiri.nix
../../desktop-managers/cosmic.nix
../../desktop-managers/gnome.nix
@@ -1,635 +0,0 @@
{
config,
lib,
pkgs,
utils,
...
}:
let
xcfg = config.services.xserver;
cfg = xcfg.desktopManager.plasma5;
# Use only for **internal** options.
# This is not exactly user-friendly.
kdeConfigurationType =
with types;
let
valueTypes =
(oneOf [
bool
float
int
str
])
// {
description = "KDE Configuration value";
emptyValue.value = "";
};
set = (nullOr (lazyAttrsOf valueTypes)) // {
description = "KDE Configuration set";
emptyValue.value = { };
};
in
(lazyAttrsOf set)
// {
description = "KDE Configuration file";
emptyValue.value = { };
};
inherit (lib)
getBin
optionalAttrs
literalExpression
mkRemovedOptionModule
mkRenamedOptionModule
mkDefault
mkIf
mkMerge
mkOption
mkPackageOption
types
;
activationScript = ''
${set_XDG_CONFIG_HOME}
# The KDE icon cache is supposed to update itself automatically, but it uses
# the timestamp on the icon theme directory as a trigger. This doesn't work
# on NixOS because the timestamp never changes. As a workaround, delete the
# icon cache at login and session activation.
# See also: http://lists-archives.org/kde-devel/26175-what-when-will-icon-cache-refresh.html
rm -fv "$HOME"/.cache/icon-cache.kcache
# xdg-desktop-settings generates this empty file but
# it makes kbuildsyscoca5 fail silently. To fix this
# remove that menu if it exists.
rm -fv "''${XDG_CONFIG_HOME}"/menus/applications-merged/xdg-desktop-menu-dummy.menu
# Qt writes a weird libraryPath line to
# ~/.config/Trolltech.conf that causes the KDE plugin
# paths of previous KDE invocations to be searched.
# Obviously using mismatching KDE libraries is potentially
# disastrous, so here we nuke references to the Nix store
# in Trolltech.conf. A better solution would be to stop
# Qt from doing this wackiness in the first place.
trolltech_conf="''${XDG_CONFIG_HOME}/Trolltech.conf"
if [ -e "$trolltech_conf" ]; then
${getBin pkgs.gnused}/bin/sed -i "$trolltech_conf" -e '/nix\\store\|nix\/store/ d'
fi
# Remove the kbuildsyscoca5 cache. It will be regenerated
# immediately after. This is necessary for kbuildsyscoca5 to
# recognize that software that has been removed.
rm -fv "$HOME"/.cache/ksycoca*
${pkgs.plasma5Packages.kservice}/bin/kbuildsycoca5
'';
set_XDG_CONFIG_HOME = ''
# Set the default XDG_CONFIG_HOME if it is unset.
# Per the XDG Base Directory Specification:
# https://specifications.freedesktop.org/basedir-spec/latest
# 1. Never export this variable! If it is unset, then child processes are
# expected to set the default themselves.
# 2. Contaminate / if $HOME is unset; do not check if $HOME is set.
XDG_CONFIG_HOME=''${XDG_CONFIG_HOME:-$HOME/.config}
'';
in
{
options = {
services.xserver.desktopManager.plasma5 = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable the Plasma 5 (KDE 5) desktop environment.";
};
phononBackend = mkOption {
type = types.enum [
"gstreamer"
"vlc"
];
default = "vlc";
example = "gstreamer";
description = "Phonon audio backend to install.";
};
useQtScaling = mkOption {
type = types.bool;
default = false;
description = "Enable HiDPI scaling in Qt.";
};
runUsingSystemd = mkOption {
description = "Use systemd to manage the Plasma session";
type = types.bool;
default = true;
};
notoPackage = mkPackageOption pkgs "Noto fonts" {
default = [ "noto-fonts" ];
example = "noto-fonts-lgc-plus";
};
# Internally allows configuring kdeglobals globally
kdeglobals = mkOption {
internal = true;
default = { };
type = kdeConfigurationType;
};
# Internally allows configuring kwin globally
kwinrc = mkOption {
internal = true;
default = { };
type = kdeConfigurationType;
};
mobile.enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable support for running the Plasma Mobile shell.
'';
};
mobile.installRecommendedSoftware = mkOption {
type = types.bool;
default = true;
description = ''
Installs software recommended for use with Plasma Mobile, but which
is not strictly required for Plasma Mobile to run.
'';
};
bigscreen.enable = mkOption {
type = types.bool;
default = false;
description = ''
Enable support for running the Plasma Bigscreen session.
'';
};
};
environment.plasma5.excludePackages = mkOption {
description = "List of default packages to exclude from the configuration";
type = types.listOf types.package;
default = [ ];
example = literalExpression "[ pkgs.plasma5Packages.oxygen ]";
};
};
imports = [
(mkRemovedOptionModule [
"services"
"xserver"
"desktopManager"
"plasma5"
"enableQt4Support"
] "Phonon no longer supports Qt 4.")
(mkRemovedOptionModule [
"services"
"xserver"
"desktopManager"
"plasma5"
"supportDDC"
] "DDC/CI is no longer supported upstream.")
(mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "kde5" ]
[ "services" "xserver" "desktopManager" "plasma5" ]
)
(mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "plasma5" "excludePackages" ]
[ "environment" "plasma5" "excludePackages" ]
)
];
config = mkMerge [
# Common Plasma dependencies
(mkIf (cfg.enable || cfg.mobile.enable || cfg.bigscreen.enable) {
warnings = [
"Plasma 5 has been deprecated and will be removed in NixOS 25.11. Please migrate your configuration to Plasma 6."
];
security.wrappers = {
kwin_wayland = {
owner = "root";
group = "root";
capabilities = "cap_sys_nice+ep";
source = "${getBin pkgs.plasma5Packages.kwin}/bin/kwin_wayland";
};
}
// optionalAttrs (!cfg.runUsingSystemd) {
start_kdeinit = {
setuid = true;
owner = "root";
group = "root";
source = "${getBin pkgs.plasma5Packages.kinit}/libexec/kf5/start_kdeinit";
};
};
qt.enable = true;
environment.systemPackages =
with pkgs.plasma5Packages;
let
requiredPackages = [
frameworkintegration
kactivities
kauth
kcmutils
kconfig
kconfigwidgets
kcoreaddons
kdoctools
kdbusaddons
kdeclarative
kded
kdesu
kdnssd
kemoticons
kfilemetadata
kglobalaccel
kguiaddons
kiconthemes
kidletime
kimageformats
kinit
kirigami2 # In system profile for SDDM theme. TODO: wrapper.
kio
kjobwidgets
knewstuff
knotifications
knotifyconfig
kpackage
kparts
kpeople
krunner
kservice
ktextwidgets
kwallet
kwallet-pam
kwalletmanager
kwayland
kwayland-integration
kwidgetsaddons
kxmlgui
kxmlrpcclient
plasma-framework
solid
sonnet
threadweaver
breeze-qt5
kactivitymanagerd
kde-cli-tools
kdecoration
kdeplasma-addons
kgamma5
khotkeys
kscreen
kscreenlocker
kwayland
kwin
kwrited
libkscreen
libksysguard
milou
plasma-integration
polkit-kde-agent
qqc2-breeze-style
qqc2-desktop-style
plasma-desktop
plasma-workspace
plasma-workspace-wallpapers
oxygen-sounds
breeze-icons
pkgs.hicolor-icon-theme
kde-gtk-config
breeze-gtk
qtvirtualkeyboard
pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
];
optionalPackages = [
pkgs.aha # needed by kinfocenter for fwupd support
plasma-browser-integration
konsole
oxygen
(lib.getBin qttools) # Expose qdbus in PATH
];
in
requiredPackages
++ utils.removePackagesByName optionalPackages config.environment.plasma5.excludePackages
# Phonon audio backend
++ lib.optional (cfg.phononBackend == "gstreamer") pkgs.plasma5Packages.phonon-backend-gstreamer
++ lib.optional (cfg.phononBackend == "vlc") pkgs.plasma5Packages.phonon-backend-vlc
# Optional hardware support features
++ lib.optionals config.hardware.bluetooth.enable [
bluedevil
bluez-qt
pkgs.openobex
pkgs.obexftp
]
++ lib.optional config.networking.networkmanager.enable plasma-nm
++ lib.optional config.services.pulseaudio.enable plasma-pa
++ lib.optional config.services.pipewire.pulse.enable plasma-pa
++ lib.optional config.powerManagement.enable powerdevil
++ lib.optional config.services.colord.enable pkgs.colord-kde
++ lib.optional config.services.hardware.bolt.enable pkgs.plasma5Packages.plasma-thunderbolt
++ lib.optional config.services.samba.enable kdenetwork-filesharing
++ lib.optional config.services.xserver.wacom.enable pkgs.wacomtablet
++ lib.optional config.services.flatpak.enable flatpak-kcm;
# Extra services for D-Bus activation
services.dbus.packages = [
pkgs.plasma5Packages.kactivitymanagerd
];
environment.pathsToLink = [
# FIXME: modules should link subdirs of `/share` rather than relying on this
"/share"
];
environment.etc."X11/xkb".source = xcfg.xkb.dir;
environment.sessionVariables = {
PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
# Needed for things that depend on other store.kde.org packages to install correctly,
# notably Plasma look-and-feel packages (a.k.a. Global Themes)
#
# FIXME: this is annoyingly impure and should really be fixed at source level somehow,
# but kpackage is a library so we can't just wrap the one thing invoking it and be done.
# This also means things won't work for people not on Plasma, but at least this way it
# works for SOME people.
KPACKAGE_DEP_RESOLVERS_PATH = "${pkgs.plasma5Packages.frameworkintegration.out}/libexec/kf5/kpackagehandlers";
};
# Enable GTK applications to load SVG icons
programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
fonts.packages = with pkgs; [
cfg.notoPackage
hack-font
];
fonts.fontconfig.defaultFonts = {
monospace = [
"Hack"
"Noto Sans Mono"
];
sansSerif = [ "Noto Sans" ];
serif = [ "Noto Serif" ];
};
programs.gnupg.agent.pinentryPackage = mkDefault pkgs.pinentry-qt;
programs.ssh.askPassword = mkDefault "${pkgs.plasma5Packages.ksshaskpass.out}/bin/ksshaskpass";
# Enable helpful DBus services.
services.accounts-daemon.enable = true;
programs.dconf.enable = true;
# when changing an account picture the accounts-daemon reads a temporary file containing the image which systemsettings5 may place under /tmp
systemd.services.accounts-daemon.serviceConfig.PrivateTmp = false;
services.power-profiles-daemon.enable = mkDefault true;
services.system-config-printer.enable = mkIf config.services.printing.enable (mkDefault true);
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
services.libinput.enable = mkDefault true;
# Extra UDEV rules used by Solid
services.udev.packages = [
# libmtp has "bin", "dev", "out" outputs. UDEV rules file is in "out".
pkgs.libmtp.out
pkgs.media-player-info
];
# Enable screen reader by default
services.orca.enable = mkDefault true;
services.displayManager.sddm = {
theme = mkDefault "breeze";
};
security.pam.services.kde = {
allowNullPassword = true;
};
security.pam.services.login.kwallet.enable = true;
systemd.user.services = {
plasma-early-setup = mkIf cfg.runUsingSystemd {
description = "Early Plasma setup";
wantedBy = [ "graphical-session-pre.target" ];
serviceConfig.Type = "oneshot";
script = activationScript;
};
};
xdg.icons.enable = true;
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.plasma5Packages.xdg-desktop-portal-kde ];
xdg.portal.configPackages = mkDefault [ pkgs.plasma5Packages.xdg-desktop-portal-kde ];
# xdg-desktop-portal-kde expects PipeWire to be running.
services.pipewire.enable = mkDefault true;
# Update the start menu for each user that is currently logged in
system.userActivationScripts.plasmaSetup = activationScript;
programs.firefox.nativeMessagingHosts.packages = [
pkgs.plasma5Packages.plasma-browser-integration
];
programs.chromium.enablePlasmaBrowserIntegration = true;
})
(mkIf (cfg.kwinrc != { }) {
environment.etc."xdg/kwinrc".text = lib.generators.toINI { } cfg.kwinrc;
})
(mkIf (cfg.kdeglobals != { }) {
environment.etc."xdg/kdeglobals".text = lib.generators.toINI { } cfg.kdeglobals;
})
# Plasma Desktop
(mkIf cfg.enable {
# Seed our configuration into nixos-generate-config
system.nixos-generate-config.desktopConfiguration = [
''
# Enable the Plasma 5 Desktop Environment.
services.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
''
];
services.displayManager.sessionPackages = [ pkgs.plasma5Packages.plasma-workspace ];
# Default to be `plasma` (X11) instead of `plasmawayland`, since plasma wayland currently has
# many tiny bugs.
# See: https://github.com/NixOS/nixpkgs/issues/143272
services.displayManager.defaultSession = mkDefault "plasma";
environment.systemPackages =
with pkgs.plasma5Packages;
let
requiredPackages = [
ksystemstats
kinfocenter
kmenuedit
plasma-systemmonitor
spectacle
systemsettings
dolphin
dolphin-plugins
ffmpegthumbs
kdegraphics-thumbnailers
kde-inotify-survey
kio-admin
kio-extras
];
optionalPackages = [
ark
elisa
gwenview
okular
khelpcenter
print-manager
];
in
requiredPackages
++ utils.removePackagesByName optionalPackages config.environment.plasma5.excludePackages;
systemd.user.services = {
plasma-run-with-systemd = {
description = "Run KDE Plasma via systemd";
wantedBy = [ "basic.target" ];
serviceConfig.Type = "oneshot";
script = ''
${set_XDG_CONFIG_HOME}
${pkgs.plasma5Packages.kconfig}/bin/kwriteconfig5 \
--file startkderc --group General --key systemdBoot ${lib.boolToString cfg.runUsingSystemd}
'';
};
};
})
# Plasma Mobile
(mkIf cfg.mobile.enable {
assertions = [
{
# The user interface breaks without NetworkManager
assertion = config.networking.networkmanager.enable;
message = "Plasma Mobile requires NetworkManager.";
}
{
# The user interface breaks without bluetooth
assertion = config.hardware.bluetooth.enable;
message = "Plasma Mobile requires Bluetooth.";
}
{
# The user interface breaks without pulse
assertion =
config.services.pulseaudio.enable
|| (config.services.pipewire.enable && config.services.pipewire.pulse.enable);
message = "Plasma Mobile requires a Pulseaudio compatible sound server.";
}
];
environment.systemPackages =
with pkgs.plasma5Packages;
[
# Basic packages without which Plasma Mobile fails to work properly.
plasma-mobile
plasma-nano
pkgs.maliit-framework
pkgs.maliit-keyboard
]
++ lib.optionals (cfg.mobile.installRecommendedSoftware) (
with pkgs.plasma5Packages.plasmaMobileGear;
[
# Additional software made for Plasma Mobile.
alligator
angelfish
audiotube
calindori
kalk
kasts
kclock
keysmith
koko
krecorder
ktrip
kweather
plasma-dialer
plasma-phonebook
plasma-settings
spacebar
]
);
# The following services are needed or the UI is broken.
hardware.bluetooth.enable = true;
networking.networkmanager.enable = true;
# Required for autorotate
hardware.sensor.iio.enable = lib.mkDefault true;
# Recommendations can be found here:
# - https://invent.kde.org/plasma-mobile/plasma-phone-settings/-/tree/master/etc/xdg
# This configuration is the minimum required for Plasma Mobile to *work*.
services.xserver.desktopManager.plasma5 = {
kdeglobals = {
KDE = {
# This forces a numeric PIN for the lockscreen, which is the
# recommendation from upstream.
LookAndFeelPackage = lib.mkDefault "org.kde.plasma.phone";
};
};
kwinrc = {
"Wayland" = {
"InputMethod[$e]" = "/run/current-system/sw/share/applications/com.github.maliit.keyboard.desktop";
"VirtualKeyboardEnabled" = "true";
};
"org.kde.kdecoration2" = {
# No decorations (title bar)
NoPlugin = lib.mkDefault "true";
};
};
};
services.displayManager.sessionPackages = [ pkgs.plasma5Packages.plasma-mobile ];
})
# Plasma Bigscreen
(mkIf cfg.bigscreen.enable {
environment.systemPackages = with pkgs.plasma5Packages; [
plasma-nano
plasma-settings
plasma-bigscreen
plasma-remotecontrollers
aura-browser
plank-player
plasma-pa
plasma-nm
kdeconnect-kde
];
services.displayManager.sessionPackages = [ pkgs.plasma5Packages.plasma-bigscreen ];
# required for plasma-remotecontrollers to work correctly
hardware.uinput.enable = true;
})
];
}
+1 -13
View File
@@ -17,13 +17,6 @@ let
cfg = config.boot.plymouth;
opt = options.boot.plymouth;
nixosBreezePlymouth = pkgs.plasma5Packages.breeze-plymouth.override {
logoFile = cfg.logo;
logoName = "nixos";
osName = "NixOS";
osVersion = config.system.nixos.release;
};
plymouthLogos = pkgs.runCommand "plymouth-logos" { inherit (cfg) logo; } ''
mkdir -p $out
@@ -87,12 +80,7 @@ in
};
themePackages = mkOption {
default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
defaultText = literalMD ''
A NixOS branded variant of the breeze theme when
`config.${opt.theme} == "breeze"`, otherwise
`[ ]`.
'';
default = [ ];
type = types.listOf types.package;
description = ''
Extra theme packages for plymouth.
+1 -1
View File
@@ -171,7 +171,7 @@ rec {
(onFullSupported "nixos.tests.php.fpm")
(onFullSupported "nixos.tests.php.httpd")
(onFullSupported "nixos.tests.php.pcre")
(onFullSupported "nixos.tests.plasma5")
(onFullSupported "nixos.tests.plasma6")
(onSystems [ "x86_64-linux" ] "nixos.tests.podman")
(onFullSupported "nixos.tests.predictable-interface-names.predictableNetworkd")
(onFullSupported "nixos.tests.predictable-interface-names.predictable")
+1 -10
View File
@@ -594,7 +594,7 @@ rec {
{
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
services.desktopManager.plasma6.enable = true;
}
);
@@ -623,15 +623,6 @@ rec {
}
);
deepin = makeClosure (
{ ... }:
{
services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.deepin.enable = true;
}
);
# Linux/Apache/PostgreSQL/PHP stack.
lapp = makeClosure (
{ pkgs, ... }:
-3
View File
@@ -423,7 +423,6 @@ in
dconf = runTest ./dconf.nix;
ddns-updater = runTest ./ddns-updater.nix;
deconz = runTest ./deconz.nix;
deepin = runTest ./deepin.nix;
deluge = runTest ./deluge.nix;
dendrite = runTest ./matrix/dendrite.nix;
dependency-track = runTest ./dependency-track.nix;
@@ -1190,9 +1189,7 @@ in
pinnwand = runTest ./pinnwand.nix;
plantuml-server = runTest ./plantuml-server.nix;
plasma-bigscreen = runTest ./plasma-bigscreen.nix;
plasma5 = runTest ./plasma5.nix;
plasma6 = runTest ./plasma6.nix;
plasma5-systemd-start = runTest ./plasma5-systemd-start.nix;
plausible = runTest ./plausible.nix;
playwright-python = runTest ./playwright-python.nix;
please = runTest ./please.nix;
-55
View File
@@ -1,55 +0,0 @@
{ pkgs, lib, ... }:
{
name = "deepin";
meta.maintainers = lib.teams.deepin.members;
nodes.machine =
{ ... }:
{
imports = [
./common/user-account.nix
];
virtualisation.memorySize = 2048;
services.xserver.enable = true;
services.xserver.displayManager = {
lightdm.enable = true;
autoLogin = {
enable = true;
user = "alice";
};
};
services.xserver.desktopManager.deepin.enable = true;
};
testScript =
{ nodes, ... }:
let
user = nodes.machine.users.users.alice;
in
''
with subtest("Wait for login"):
machine.wait_for_x()
machine.wait_for_file("${user.home}/.Xauthority")
machine.succeed("xauth merge ${user.home}/.Xauthority")
with subtest("Check that logging in has given the user ownership of devices"):
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Check if Deepin session components actually start"):
machine.wait_until_succeeds("pgrep -f dde-session-daemon")
machine.wait_for_window("dde-session-daemon")
machine.wait_until_succeeds("pgrep -f dde-desktop")
machine.wait_for_window("dde-desktop")
with subtest("Open deepin-terminal"):
machine.succeed("su - ${user.name} -c 'DISPLAY=:0 deepin-terminal >&2 &'")
machine.wait_for_window("deepin-terminal")
machine.sleep(20)
machine.screenshot("screen")
'';
}
+2 -5
View File
@@ -31,11 +31,8 @@
gui =
{ ... }:
common {
services.xserver = {
enable = true;
desktopManager.plasma5.enable = true;
desktopManager.plasma5.runUsingSystemd = true;
};
services.xserver.enable = true;
services.desktopManager.plasma6.enable = true;
services.displayManager = {
sddm.enable = true;
-41
View File
@@ -1,41 +0,0 @@
{ pkgs, ... }:
{
name = "plasma-bigscreen";
meta = with pkgs.lib.maintainers; {
maintainers = [
ttuegel
k900
];
};
nodes.machine =
{ ... }:
{
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.displayManager.defaultSession = "plasma-bigscreen-x11";
services.xserver.desktopManager.plasma5.bigscreen.enable = true;
services.displayManager.autoLogin = {
enable = true;
user = "alice";
};
users.users.alice.extraGroups = [ "uinput" ];
};
testScript =
{ nodes, ... }:
''
with subtest("Wait for login"):
start_all()
machine.wait_for_file("/tmp/xauth_*")
machine.succeed("xauth merge /tmp/xauth_*")
with subtest("Check plasmashell started"):
machine.wait_until_succeeds("pgrep plasmashell")
machine.wait_for_window("Plasma Big Screen")
'';
}
-46
View File
@@ -1,46 +0,0 @@
{ pkgs, ... }:
{
name = "plasma5-systemd-start";
meta = with pkgs.lib.maintainers; {
maintainers = [ oxalica ];
};
nodes.machine =
{ ... }:
{
imports = [ ./common/user-account.nix ];
services.xserver = {
enable = true;
desktopManager.plasma5.enable = true;
desktopManager.plasma5.runUsingSystemd = true;
};
services.displayManager = {
sddm.enable = true;
defaultSession = "plasma";
autoLogin = {
enable = true;
user = "alice";
};
};
};
testScript =
{ nodes, ... }:
''
with subtest("Wait for login"):
start_all()
machine.wait_for_file("/tmp/xauth_*")
machine.succeed("xauth merge /tmp/xauth_*")
with subtest("Check plasmashell started"):
machine.wait_until_succeeds("pgrep plasmashell")
machine.wait_for_window("^Desktop ")
status, result = machine.systemctl('--no-pager show plasma-plasmashell.service', user='alice')
assert status == 0, 'Service not found'
assert 'ActiveState=active' in result.split('\n'), 'Systemd service not active'
'';
}
-70
View File
@@ -1,70 +0,0 @@
{ pkgs, ... }:
{
name = "plasma5";
meta = with pkgs.lib.maintainers; {
maintainers = [ ttuegel ];
};
nodes.machine =
{ ... }:
{
imports = [ ./common/user-account.nix ];
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.displayManager.defaultSession = "plasma";
services.xserver.desktopManager.plasma5.enable = true;
environment.plasma5.excludePackages = [ pkgs.plasma5Packages.elisa ];
services.displayManager.autoLogin = {
enable = true;
user = "alice";
};
};
testScript =
{ nodes, ... }:
let
user = nodes.machine.users.users.alice;
xdo = "${pkgs.xdotool}/bin/xdotool";
in
''
with subtest("Wait for login"):
start_all()
machine.wait_for_file("/tmp/xauth_*")
machine.succeed("xauth merge /tmp/xauth_*")
with subtest("Check plasmashell started"):
machine.wait_until_succeeds("pgrep plasmashell")
machine.wait_for_window("^Desktop ")
with subtest("Check that KDED is running"):
machine.succeed("pgrep kded5")
with subtest("Check that logging in has given the user ownership of devices"):
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
with subtest("Ensure Elisa is not installed"):
machine.fail("which elisa")
machine.succeed("su - ${user.name} -c 'xauth merge /tmp/xauth_*'")
with subtest("Run Dolphin"):
machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 dolphin >&2 &'")
machine.wait_for_window(" Dolphin")
with subtest("Run Konsole"):
machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 konsole >&2 &'")
machine.wait_for_window("Konsole")
with subtest("Run systemsettings"):
machine.execute("su - ${user.name} -c 'DISPLAY=:0.0 systemsettings5 >&2 &'")
machine.wait_for_window("Settings")
with subtest("Wait to get a screenshot"):
machine.execute(
"${xdo} key Alt+F1 sleep 10"
)
machine.screenshot("screen")
'';
}
+1 -3
View File
@@ -36,8 +36,6 @@ let
darktile.pkg = p: p.darktile;
deepin-terminal.pkg = p: p.deepin.deepin-terminal;
eterm.pkg = p: p.eterm;
eterm.executable = "Eterm";
eterm.pinkValue = "#D40055";
@@ -63,7 +61,7 @@ let
kitty.pkg = p: p.kitty;
kitty.cmd = "kitty $command";
konsole.pkg = p: p.plasma5Packages.konsole;
konsole.pkg = p: p.kdePackages.konsole;
lxterminal.pkg = p: p.lxterminal;
@@ -1,174 +0,0 @@
# currently needs to be installed into an environment and needs a `kbuildsycoca5` run afterwards for plugin discovery
{
mkDerivation,
fetchFromGitHub,
fetchpatch,
lib,
makeWrapper,
cmake,
extra-cmake-modules,
pkg-config,
libkcddb,
kconfig,
kconfigwidgets,
ki18n,
kdelibs4support,
kio,
solid,
kwidgetsaddons,
kxmlgui,
qtbase,
phonon,
taglib_1,
# optional backends
withCD ? true,
cdparanoia,
withFlac ? true,
flac,
withMidi ? true,
fluidsynth,
timidity,
withSpeex ? false,
speex,
withVorbis ? true,
vorbis-tools,
vorbisgain,
withMp3 ? true,
lame,
mp3gain,
withAac ? true,
faad2,
aacgain,
withUnfreeAac ? false,
faac,
withFfmpeg ? true,
ffmpeg-full,
withMplayer ? false,
mplayer,
withSox ? true,
sox,
withOpus ? true,
opusTools,
withTwolame ? false,
twolame,
withApe ? false,
monkeysAudio,
withWavpack ? false,
wavpack,
}:
assert withAac -> withFfmpeg || withUnfreeAac;
assert withUnfreeAac -> withAac;
let
runtimeDeps =
[ ]
++ lib.optional withCD cdparanoia
++ lib.optional withFlac flac
++ lib.optional withSpeex speex
++ lib.optional withFfmpeg ffmpeg-full
++ lib.optional withMplayer mplayer
++ lib.optional withSox sox
++ lib.optional withOpus opusTools
++ lib.optional withTwolame twolame
++ lib.optional withApe monkeysAudio
++ lib.optional withWavpack wavpack
++ lib.optional withUnfreeAac faac
++ lib.optionals withMidi [
fluidsynth
timidity
]
++ lib.optionals withVorbis [
vorbis-tools
vorbisgain
]
++ lib.optionals withMp3 [
lame
mp3gain
]
++ lib.optionals withAac [
faad2
aacgain
];
in
mkDerivation rec {
pname = "soundkonverter";
version = "3.0.1";
src = fetchFromGitHub {
owner = "dfaust";
repo = "soundkonverter";
rev = "v" + version;
sha256 = "1g2khdsjmsi4zzynkq8chd11cbdhjzmi37r9jhpal0b730nq9x7l";
};
patches = [
# already merged into master, so it can go during the next release
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/dfaust/soundkonverter/pull/87.patch";
sha256 = "sha256-XIpD4ZMTZVcu+F27OtpRy51H+uQgpd5l22IZ6XsD64w=";
name = "soundkonverter_taglib.patch";
stripLen = 1;
})
];
nativeBuildInputs = [
cmake
extra-cmake-modules
pkg-config
kdelibs4support
makeWrapper
];
propagatedBuildInputs = [
libkcddb
kconfig
kconfigwidgets
ki18n
kdelibs4support
kio
solid
kwidgetsaddons
kxmlgui
qtbase
phonon
];
buildInputs = [ taglib_1 ] ++ runtimeDeps;
# encoder plugins go to ${out}/lib so they're found by kbuildsycoca5
cmakeFlags = [ "-DCMAKE_INSTALL_PREFIX=$out" ];
sourceRoot = "${src.name}/src";
# add runt-time deps to PATH
postInstall = ''
wrapProgram $out/bin/soundkonverter --prefix PATH : ${lib.makeBinPath runtimeDeps}
'';
meta = {
homepage = "https://github.com/dfaust/soundkonverter";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.schmittlauch ];
description = "Audio file converter, CD ripper and Replay Gain tool";
mainProgram = "soundkonverter";
longDescription = ''
soundKonverter is a frontend to various audio converters.
The key features are:
- Audio file conversion
- Replay Gain calculation
- CD ripping
soundKonverter supports reading and writing tags and covers for many formats, so they are preserved when converting files.
It is extendable by plugins and supports many backends including:
- Audio file conversion
Backends: faac, faad, ffmpeg, flac, lame, mplayer, neroaac, timidity, fluidsynth, vorbistools, opustools, sox, twolame,
flake, mac, shorten, wavpack and speex
Formats: ogg vorbis, mp3, flac, wma, aac, ac3, opus, alac, mp2, als, amr nb, amr wb, ape, speex, m4a, mp1, musepack shorten,
tta, wavpack, ra, midi, mod, 3gp, rm, avi, mkv, ogv, mpeg, mov, mp4, flv, wmv and rv
- Replay Gain calculation
Backends: aacgain, metaflac, mp3gain, vorbisgain, wvgain, mpcgain
Formats: aac, mp3, flac, ogg vorbis, wavpack, musepack
- CD ripping
Backends: cdparanoia
'';
};
}
@@ -2,7 +2,7 @@
lib,
callPackage,
runCommand,
layer-shell-qt,
layer-shell-qt ? null,
qtwayland,
wrapQtAppsHook,
unwrapped ? callPackage ./unwrapped.nix { },
@@ -3130,6 +3130,19 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
commasemi-nvim = buildVimPlugin {
pname = "commasemi.nvim";
version = "2025-03-06";
src = fetchFromGitHub {
owner = "saifulapm";
repo = "commasemi.nvim";
rev = "cbfa3554e554f0534fcd79de273742a532c0068f";
sha256 = "13b334fx6yn1iyijvm7vb6il1zqpzx112rhw6ajp3lvgqanpz23d";
};
meta.homepage = "https://github.com/saifulapm/commasemi.nvim/";
meta.hydraPlatforms = [ ];
};
comment-box-nvim = buildVimPlugin {
pname = "comment-box.nvim";
version = "2024-02-03";
@@ -239,6 +239,7 @@ https://github.com/lilydjwg/colorizer/,,
https://github.com/Domeee/com.cloudedmountain.ide.neovim/,HEAD,
https://github.com/mluders/comfy-line-numbers.nvim/,HEAD,
https://github.com/wincent/command-t/,,
https://github.com/saifulapm/commasemi.nvim/,HEAD,
https://github.com/LudoPinelli/comment-box.nvim/,HEAD,
https://github.com/numtostr/comment.nvim/,,
https://github.com/rhysd/committia.vim/,,
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "basedpyright";
publisher = "detachhead";
version = "1.31.1";
hash = "sha256-MlkLoM1415KYCKlwfV67HLLvmF7PRtdyQrPgeNm2nyM=";
version = "1.31.3";
hash = "sha256-xQ2XvGdQPmls+bkCtfmFYvbr1d4Q1Nhc8mQQyuWPZoQ=";
};
meta = {
changelog = "https://github.com/detachhead/basedpyright/releases";
@@ -7,7 +7,6 @@
SDL2_ttf,
copyDesktopItems,
expat,
fetchpatch,
fetchurl,
flac,
fontconfig,
@@ -117,16 +116,6 @@ stdenv.mkDerivation rec {
# that you run MAME changing to install directory, so we add absolute paths
# here
./001-use-absolute-paths.diff
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# coreaudio_sound.cpp compares __MAC_OS_X_VERSION_MIN_REQUIRED to 1200
# instead of 120000, causing it to try to use a constant that isn't
# actually defined yet when targeting macOS 11 like Nixpkgs does.
# Backport mamedev/mame#13890 until the next time we update MAME.
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/mamedev/mame/pull/13890.patch";
hash = "sha256-Fqpw4fHEMns4tSSIjc1p36ss+J9Tc/O0cnN3HI/ratM=";
})
];
# Since the bug described in https://github.com/NixOS/nixpkgs/issues/135438,
@@ -1,34 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
akonadi,
calendarsupport,
}:
mkDerivation {
pname = "akonadi-calendar-tools";
meta = {
homepage = "https://github.com/KDE/akonadi-calendar-tools";
description = "Console applications and utilities for managing calendars in Akonadi";
license = with lib.licenses; [
gpl2Plus
cc0
];
maintainers = with lib.maintainers; [ kennyballou ];
platforms = lib.platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
akonadi
calendarsupport
];
outputs = [
"out"
"dev"
];
}
@@ -1,50 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
akonadi-contacts,
kcalendarcore,
kcalutils,
kcontacts,
kidentitymanagement,
kio,
kmailtransport,
messagelib,
}:
mkDerivation {
pname = "akonadi-calendar";
meta = {
license = with lib.licenses; [
gpl2
lgpl21
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
akonadi
akonadi-contacts
kcalendarcore
kcalutils
kcontacts
kidentitymanagement
kio
kmailtransport
messagelib
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
@@ -1,62 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
qtwebengine,
grantlee,
grantleetheme,
kcmutils,
kdbusaddons,
ki18n,
kiconthemes,
kio,
kitemmodels,
ktextwidgets,
prison,
akonadi,
akonadi-mime,
kcontacts,
kmime,
libkleo,
}:
mkDerivation {
pname = "akonadi-contacts";
meta = {
license = with lib.licenses; [
gpl2
lgpl21
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [
qtwebengine
grantlee
kcmutils
kdbusaddons
ki18n
kiconthemes
kio
kitemmodels
ktextwidgets
prison
akonadi-mime
kcontacts
kmime
libkleo
];
propagatedBuildInputs = [
akonadi
grantleetheme
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
@@ -1,55 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
karchive,
kcontacts,
kcrash,
kidentitymanagement,
kio,
kmailtransport,
kwallet,
mailcommon,
mailimporter,
messagelib,
qtkeychain,
libsecret,
}:
mkDerivation {
pname = "akonadi-import-wizard";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
karchive
kcontacts
kcrash
kidentitymanagement
kio
kmailtransport
kwallet
mailcommon
mailimporter
messagelib
qtkeychain
libsecret
];
outputs = [
"out"
"dev"
];
}
-44
View File
@@ -1,44 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
shared-mime-info,
akonadi,
kdbusaddons,
ki18n,
kio,
kitemmodels,
kmime,
}:
mkDerivation {
pname = "akonadi-mime";
meta = {
license = with lib.licenses; [
gpl2
lgpl21
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
shared-mime-info
];
buildInputs = [
akonadi
kdbusaddons
ki18n
kio
kitemmodels
kmime
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
-45
View File
@@ -1,45 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
kcompletion,
ki18n,
kitemmodels,
kmime,
kxmlgui,
}:
mkDerivation {
pname = "akonadi-notes";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
kcompletion
ki18n
kitemmodels
kmime
kxmlgui
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
-55
View File
@@ -1,55 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
akonadi-mime,
kcalendarcore,
kcmutils,
kcontacts,
kcoreaddons,
kmime,
krunner,
qtbase,
xapian,
}:
mkDerivation {
pname = "akonadi-search";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kcmutils
krunner
xapian
];
propagatedBuildInputs = [
akonadi
akonadi-mime
kcalendarcore
kcontacts
kcoreaddons
kmime
qtbase
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
@@ -1,190 +0,0 @@
From ca8ff6e6d527ee968300cce5e8cd148f6a4d256b Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Sun, 25 Apr 2021 08:00:10 -0500
Subject: [PATCH 1/3] akonadi paths
---
src/akonadicontrol/agentmanager.cpp | 4 ++--
src/akonadicontrol/agentprocessinstance.cpp | 2 +-
src/server/storage/dbconfigmysql.cpp | 26 ++++-----------------
src/server/storage/dbconfigpostgresql.cpp | 19 +++------------
4 files changed, 11 insertions(+), 40 deletions(-)
diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
index 44ceec5..eb5fa50 100644
--- a/src/akonadicontrol/agentmanager.cpp
+++ b/src/akonadicontrol/agentmanager.cpp
@@ -47,7 +47,7 @@ public:
connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
QCoreApplication::instance()->exit(255);
});
- start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
+ start(QStringLiteral(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
}
~StorageProcessControl() override
@@ -69,7 +69,7 @@ public:
connect(this, &Akonadi::ProcessControl::unableToStart, this, []() {
qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
});
- start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
+ start(QStringLiteral(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
}
~AgentServerProcessControl() override
diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
index 8e92e08..f98dfd8 100644
--- a/src/akonadicontrol/agentprocessinstance.cpp
+++ b/src/akonadicontrol/agentprocessinstance.cpp
@@ -47,7 +47,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
} else {
Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
const QStringList arguments = QStringList() << executable << identifier();
- const QString agentLauncherExec = Akonadi::StandardDirs::findExecutable(QStringLiteral("akonadi_agent_launcher"));
+ const QString agentLauncherExec = QLatin1String(NIX_OUT "/bin/akonadi_agent_launcher");
mController->start(agentLauncherExec, arguments);
}
return true;
diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
index 1a437ac..3550f9d 100644
--- a/src/server/storage/dbconfigmysql.cpp
+++ b/src/server/storage/dbconfigmysql.cpp
@@ -72,7 +72,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
// determine default settings depending on the driver
QString defaultHostName;
QString defaultOptions;
- QString defaultServerPath;
QString defaultCleanShutdownCommand;
#ifndef Q_OS_WIN
@@ -80,16 +79,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
#endif
const bool defaultInternalServer = true;
-#ifdef MYSQLD_EXECUTABLE
- if (QFile::exists(QStringLiteral(MYSQLD_EXECUTABLE))) {
- defaultServerPath = QStringLiteral(MYSQLD_EXECUTABLE);
- }
-#endif
- if (defaultServerPath.isEmpty()) {
- defaultServerPath = findExecutable(QStringLiteral("mysqld"));
- }
-
- const QString mysqladminPath = findExecutable(QStringLiteral("mysqladmin"));
+ const QString mysqladminPath = QLatin1String(NIXPKGS_MYSQL_MYSQLADMIN);
if (!mysqladminPath.isEmpty()) {
#ifndef Q_OS_WIN
defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
@@ -99,10 +89,10 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
#endif
}
- mMysqlInstallDbPath = findExecutable(QStringLiteral("mysql_install_db"));
+ mMysqlInstallDbPath = QLatin1String(NIXPKGS_MYSQL_MYSQL_INSTALL_DB);
qCDebug(AKONADISERVER_LOG) << "Found mysql_install_db: " << mMysqlInstallDbPath;
- mMysqlCheckPath = findExecutable(QStringLiteral("mysqlcheck"));
+ mMysqlCheckPath = QLatin1String(NIXPKGS_MYSQL_MYSQLCHECK);
qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
@@ -119,7 +109,7 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
mUserName = settings.value(QStringLiteral("User")).toString();
mPassword = settings.value(QStringLiteral("Password")).toString();
mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
- mMysqldPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
+ mMysqldPath = QLatin1String(NIXPKGS_MYSQL_MYSQLD);
mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
settings.endGroup();
@@ -129,9 +119,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
// intentionally not namespaced as we are the only one in this db instance when using internal mode
mDatabaseName = QStringLiteral("akonadi");
}
- if (mInternalServer && (mMysqldPath.isEmpty() || !QFile::exists(mMysqldPath))) {
- mMysqldPath = defaultServerPath;
- }
qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
@@ -141,9 +128,6 @@ bool DbConfigMysql::init(QSettings &settings, bool storeSettings)
settings.setValue(QStringLiteral("Name"), mDatabaseName);
settings.setValue(QStringLiteral("Host"), mHostName);
settings.setValue(QStringLiteral("Options"), mConnectionOptions);
- if (!mMysqldPath.isEmpty()) {
- settings.setValue(QStringLiteral("ServerPath"), mMysqldPath);
- }
settings.setValue(QStringLiteral("StartServer"), mInternalServer);
settings.endGroup();
settings.sync();
@@ -215,7 +199,7 @@ bool DbConfigMysql::startInternalServer()
#endif
// generate config file
- const QString globalConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-global.conf"));
+ const QString globalConfig = QLatin1String(NIX_OUT "/etc/xdg/akonadi/mysql-global.conf");
const QString localConfig = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
if (globalConfig.isEmpty()) {
diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
index 4df61da..e3469c4 100644
--- a/src/server/storage/dbconfigpostgresql.cpp
+++ b/src/server/storage/dbconfigpostgresql.cpp
@@ -125,9 +125,7 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
// determine default settings depending on the driver
QString defaultHostName;
QString defaultOptions;
- QString defaultServerPath;
QString defaultInitDbPath;
- QString defaultPgUpgradePath;
QString defaultPgData;
#ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
@@ -138,12 +136,8 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
if (mInternalServer) {
- const auto paths = postgresSearchPaths(QStringLiteral("/usr/lib/postgresql"));
-
- defaultServerPath = QStandardPaths::findExecutable(QStringLiteral("pg_ctl"), paths);
- defaultInitDbPath = QStandardPaths::findExecutable(QStringLiteral("initdb"), paths);
+ defaultInitDbPath = QLatin1String(NIXPKGS_POSTGRES_INITDB);
defaultHostName = Utils::preferredSocketDirectory(StandardDirs::saveDir("data", QStringLiteral("db_misc")));
- defaultPgUpgradePath = QStandardPaths::findExecutable(QStringLiteral("pg_upgrade"), paths);
defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
}
@@ -162,20 +156,14 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
mUserName = settings.value(QStringLiteral("User")).toString();
mPassword = settings.value(QStringLiteral("Password")).toString();
mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
- mServerPath = settings.value(QStringLiteral("ServerPath"), defaultServerPath).toString();
- if (mInternalServer && mServerPath.isEmpty()) {
- mServerPath = defaultServerPath;
- }
+ mServerPath = QLatin1String(NIXPKGS_POSTGRES_PG_CTL);
qCDebug(AKONADISERVER_LOG) << "Found pg_ctl:" << mServerPath;
mInitDbPath = settings.value(QStringLiteral("InitDbPath"), defaultInitDbPath).toString();
if (mInternalServer && mInitDbPath.isEmpty()) {
mInitDbPath = defaultInitDbPath;
}
qCDebug(AKONADISERVER_LOG) << "Found initdb:" << mServerPath;
- mPgUpgradePath = settings.value(QStringLiteral("UpgradePath"), defaultPgUpgradePath).toString();
- if (mInternalServer && mPgUpgradePath.isEmpty()) {
- mPgUpgradePath = defaultPgUpgradePath;
- }
+ mPgUpgradePath = QLatin1String(NIXPKGS_POSTGRES_PG_UPGRADE);
qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
if (mPgData.isEmpty()) {
@@ -192,7 +180,6 @@ bool DbConfigPostgresql::init(QSettings &settings, bool storeSettings)
settings.setValue(QStringLiteral("Port"), mHostPort);
}
settings.setValue(QStringLiteral("Options"), mConnectionOptions);
- settings.setValue(QStringLiteral("ServerPath"), mServerPath);
settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
settings.setValue(QStringLiteral("StartServer"), mInternalServer);
settings.endGroup();
--
2.31.1
@@ -1,26 +0,0 @@
From f6c446cf6fab2edbd2606b4c6100903e9437362a Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Sun, 25 Apr 2021 08:01:02 -0500
Subject: [PATCH 2/3] akonadi timestamps
---
src/server/storage/dbconfigmysql.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
index 3550f9d..e9e8887 100644
--- a/src/server/storage/dbconfigmysql.cpp
+++ b/src/server/storage/dbconfigmysql.cpp
@@ -241,8 +241,7 @@ bool DbConfigMysql::startInternalServer()
bool confUpdate = false;
QFile actualFile(actualConfig);
// update conf only if either global (or local) is newer than actual
- if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified())
- || (QFileInfo(localConfig).lastModified() > QFileInfo(actualFile).lastModified())) {
+ if (true) {
QFile globalFile(globalConfig);
QFile localFile(localConfig);
if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
--
2.31.1
@@ -1,45 +0,0 @@
From 4b90a0bd4411a66bbe6ecf85ce89a60a58bee969 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Sun, 25 Apr 2021 08:01:21 -0500
Subject: [PATCH 3/3] akonadi revert make relocatable
---
CMakeLists.txt | 3 ---
KPimAkonadiConfig.cmake.in | 6 +++---
2 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e8cc81..63161b7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -368,9 +368,6 @@ configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/KPimAkonadiConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/KPimAkonadiConfig.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
- PATH_VARS AKONADI_DBUS_INTERFACES_INSTALL_DIR
- AKONADI_INCLUDE_DIR
- KF5Akonadi_DATA_DIR
)
install(FILES
diff --git a/KPimAkonadiConfig.cmake.in b/KPimAkonadiConfig.cmake.in
index bcf7320..1574319 100644
--- a/KPimAkonadiConfig.cmake.in
+++ b/KPimAkonadiConfig.cmake.in
@@ -1,10 +1,10 @@
@PACKAGE_INIT@
-set_and_check(AKONADI_DBUS_INTERFACES_DIR "@PACKAGE_AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
-set_and_check(AKONADI_INCLUDE_DIR "@PACKAGE_AKONADI_INCLUDE_DIR@")
+set_and_check(AKONADI_DBUS_INTERFACES_DIR "@AKONADI_DBUS_INTERFACES_INSTALL_DIR@")
+set_and_check(AKONADI_INCLUDE_DIR "@AKONADI_INCLUDE_DIR@")
# The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
-set(KF5Akonadi_DATA_DIR "@PACKAGE_KF5Akonadi_DATA_DIR@")
+set(KF5Akonadi_DATA_DIR "@KF5Akonadi_DATA_DIR@")
# set the directories
if(NOT AKONADI_INSTALL_DIR)
--
2.31.1
-90
View File
@@ -1,90 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
shared-mime-info,
accounts-qt,
boost,
kaccounts-integration,
kcompletion,
kconfigwidgets,
kcrash,
kdbusaddons,
kdesignerplugin,
ki18n,
kiconthemes,
kio,
kitemmodels,
kwindowsystem,
mariadb,
postgresql,
qttools,
signond,
xz,
mysqlSupport ? true,
postgresSupport ? false,
defaultDriver ? if mysqlSupport then "MYSQL" else "POSTGRES",
}:
assert mysqlSupport || postgresSupport;
mkDerivation {
pname = "akonadi";
meta = {
license = [ lib.licenses.lgpl21 ];
maintainers = kdepimTeam;
};
patches = [
./0001-akonadi-paths.patch
./0002-akonadi-timestamps.patch
./0003-akonadi-revert-make-relocatable.patch
];
nativeBuildInputs = [
extra-cmake-modules
shared-mime-info
];
buildInputs = [
kaccounts-integration
kcompletion
kconfigwidgets
kcrash
kdbusaddons
kdesignerplugin
ki18n
kiconthemes
kio
kwindowsystem
xz
accounts-qt
qttools
signond
];
propagatedBuildInputs = [
boost
kitemmodels
];
outputs = [
"out"
"dev"
];
CXXFLAGS = [
''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqld"}\"''
''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqladmin"}\"''
''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysql_install_db"}\"''
''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqlcheck"}\"''
''-DNIXPKGS_POSTGRES_PG_CTL=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/pg_ctl"}\"''
''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/pg_upgrade"}\"''
''-DNIXPKGS_POSTGRES_INITDB=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/initdb"}\"''
''-DNIX_OUT=\"${placeholder "out"}\"''
''-I${lib.getDev kio}/include/KF5'' # Fixes: kio_version.h: No such file or directory
];
cmakeFlags = lib.optional (defaultDriver != "MYSQL") "-DDATABASE_BACKEND=${defaultDriver}";
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
-59
View File
@@ -1,59 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
akonadi-contacts,
calendarsupport,
kcalendarcore,
kcompletion,
kconfigwidgets,
kcontacts,
kdbusaddons,
kitemmodels,
kpimtextedit,
libkdepim,
ktextwidgets,
kxmlgui,
messagelib,
qtbase,
akonadi-search,
xapian,
}:
mkDerivation {
pname = "akonadiconsole";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
akonadi-contacts
calendarsupport
kcalendarcore
kcompletion
kconfigwidgets
kcontacts
kdbusaddons
kitemmodels
kpimtextedit
ktextwidgets
kxmlgui
messagelib
qtbase
libkdepim
akonadi-search
xapian
];
}
-70
View File
@@ -1,70 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
qtwebengine,
grantlee,
kcmutils,
kcrash,
kiconthemes,
knotifyconfig,
kparts,
ktexteditor,
kuserfeedback,
kwindowsystem,
akonadi,
akonadi-mime,
grantleetheme,
kontactinterface,
libkdepim,
libkleo,
messagelib,
syndication,
}:
mkDerivation {
pname = "akregator";
meta = {
homepage = "https://apps.kde.org/akregator/";
description = "KDE feed reader";
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
qtwebengine
grantlee
kcmutils
kcrash
kiconthemes
knotifyconfig
kparts
ktexteditor
kuserfeedback
kwindowsystem
akonadi
akonadi-mime
grantleetheme
kontactinterface
libkdepim
libkleo
messagelib
syndication
];
outputs = [
"out"
"dev"
];
}
-47
View File
@@ -1,47 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
kconfig,
kcoreaddons,
ki18n,
kirigami-addons,
kirigami2,
qtquickcontrols2,
syndication,
}:
mkDerivation {
pname = "alligator";
nativeBuildInputs = [
cmake
extra-cmake-modules
];
buildInputs = [
kconfig
kcoreaddons
ki18n
kirigami-addons
kirigami2
qtquickcontrols2
syndication
];
meta = with lib; {
description = "RSS reader made with kirigami";
mainProgram = "alligator";
homepage = "https://invent.kde.org/plasma-mobile/alligator";
# https://invent.kde.org/plasma-mobile/alligator/-/commit/db30f159c4700244532b17a260deb95551045b7a
# * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
license = with licenses; [
gpl2Only
gpl3Only
];
maintainers = [ ];
};
}
-39
View File
@@ -1,39 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
qtbase,
qtsvg,
eigen,
kdoctools,
qttools,
}:
mkDerivation {
pname = "analitza";
nativeBuildInputs = [
cmake
eigen
extra-cmake-modules
kdoctools
qttools
];
buildInputs = [
qtbase
qtsvg
];
meta = with lib; {
description = "Front end to powerful mathematics and statistics packages";
homepage = "https://cantor.kde.org/";
license = with licenses; [
gpl2Only
lgpl2Only
fdl12Only
];
maintainers = with maintainers; [ hqurve ];
};
}
-80
View File
@@ -1,80 +0,0 @@
{
lib,
mkDerivation,
cargo,
cmake,
corrosion,
extra-cmake-modules,
fetchpatch2,
futuresql,
kconfig,
kcoreaddons,
kdbusaddons,
ki18n,
kirigami-addons,
kirigami2,
knotifications,
kpurpose,
kwindowsystem,
qcoro,
qtfeedback,
qtquickcontrols2,
qqc2-desktop-style,
qtwebengine,
rustPlatform,
rustc,
srcs,
}:
mkDerivation rec {
pname = "angelfish";
patches = [
(fetchpatch2 {
name = "fix-build-with-corrosion-0.5.patch";
url = "https://invent.kde.org/network/angelfish/-/commit/b04928e3b62a11b647622b81fb67b7c0db656ac8.patch";
hash = "sha256-9rpkMKQKrvGJFIQDwSIeeZyk4/vd348r660mBOKzM2E=";
})
];
cargoDeps = rustPlatform.fetchCargoVendor {
# include version in the name so we invalidate the FOD
name = "${pname}-${srcs.angelfish.version}";
inherit (srcs.angelfish) src;
hash = "sha256-M3CtP7eWqOxMvnak6K3QvB/diu4jAfMmlsa6ySFIHCU=";
};
nativeBuildInputs = [
cmake
corrosion
extra-cmake-modules
rustPlatform.cargoSetupHook
cargo
rustc
];
buildInputs = [
futuresql
kconfig
kcoreaddons
kdbusaddons
ki18n
kirigami-addons
kirigami2
knotifications
kpurpose
kwindowsystem
qcoro
qtfeedback
qtquickcontrols2
qqc2-desktop-style
qtwebengine
];
meta = with lib; {
description = "Web browser for Plasma Mobile";
homepage = "https://invent.kde.org/plasma-mobile/angelfish";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
};
}
-63
View File
@@ -1,63 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
qtbase,
qtdeclarative,
qtquickcontrols2,
qtwebchannel,
qtwebengine,
qtwebsockets,
baloo,
karchive,
kconfig,
kcoreaddons,
kdbusaddons,
kfilemetadata,
ki18n,
kirigami-addons,
kitemmodels,
kquickcharts,
kwindowsystem,
qqc2-desktop-style,
}:
mkDerivation {
pname = "arianna";
nativeBuildInputs = [
cmake
extra-cmake-modules
];
buildInputs = [
qtbase
qtdeclarative
qtquickcontrols2
qtwebchannel
qtwebengine
qtwebsockets
baloo
karchive
kconfig
kcoreaddons
kdbusaddons
kfilemetadata
ki18n
kirigami-addons
kitemmodels
kquickcharts
kwindowsystem
qqc2-desktop-style
];
meta = with lib; {
description = "Epub Reader for Plasma and Plasma Mobile";
mainProgram = "arianna";
homepage = "https://invent.kde.org/graphics/arianna";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ Thra11 ];
};
}
-96
View File
@@ -1,96 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
breeze-icons,
karchive,
kconfig,
kcrash,
kdbusaddons,
ki18n,
kiconthemes,
kitemmodels,
khtml,
kio,
kparts,
kpty,
kservice,
kwidgetsaddons,
libarchive,
libzip,
# Archive tools
p7zip,
lrzip,
unar,
# Unfree tools
unfreeEnableUnrar ? false,
unrar,
}:
let
extraTools = [
p7zip
lrzip
unar
]
++ lib.optional unfreeEnableUnrar unrar;
in
mkDerivation {
pname = "ark";
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
libarchive
libzip
]
++ extraTools;
propagatedBuildInputs = [
breeze-icons
karchive
kconfig
kcrash
kdbusaddons
khtml
ki18n
kiconthemes
kio
kitemmodels
kparts
kpty
kservice
kwidgetsaddons
];
qtWrapperArgs = [
"--prefix"
"PATH"
":"
(lib.makeBinPath extraTools)
];
meta = with lib; {
homepage = "https://apps.kde.org/ark/";
description = "Graphical file compression/decompression utility";
mainProgram = "ark";
license =
with licenses;
[
gpl2
lgpl3
]
++ optional unfreeEnableUnrar unfree;
maintainers = [ maintainers.ttuegel ];
};
}
-79
View File
@@ -1,79 +0,0 @@
{
lib,
mkDerivation,
extra-cmake-modules,
wrapGAppsHook3,
futuresql,
gst_all_1,
kcoreaddons,
kcrash,
ki18n,
kirigami2,
kirigami-addons,
kpurpose,
qcoro,
qtimageformats,
qtmultimedia,
qtquickcontrols2,
python3Packages,
}:
mkDerivation rec {
pname = "audiotube";
nativeBuildInputs = [
extra-cmake-modules
wrapGAppsHook3
python3Packages.wrapPython
python3Packages.pybind11
];
buildInputs = [
futuresql
kcoreaddons
kcrash
ki18n
kirigami2
kirigami-addons
kpurpose
qcoro
qtimageformats
qtmultimedia
qtquickcontrols2
]
++ (with gst_all_1; [
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gstreamer
])
++ pythonPath;
pythonPath = with python3Packages; [
yt-dlp
ytmusicapi
];
preFixup = ''
buildPythonPath "$pythonPath"
qtWrapperArgs+=(--prefix PYTHONPATH : "$program_PYTHONPATH")
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
dontWrapGApps = true;
meta = with lib; {
description = "Client for YouTube Music";
mainProgram = "audiotube";
homepage = "https://invent.kde.org/plasma-mobile/audiotube";
# https://invent.kde.org/plasma-mobile/audiotube/-/tree/c503d0607a3386112beaa9cf990ab85fe33ef115/LICENSES
license = with licenses; [
bsd2
cc0
gpl2Only
gpl3Only
];
maintainers = [ ];
};
}
-36
View File
@@ -1,36 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
baloo,
kconfig,
kfilemetadata,
ki18n,
kio,
kservice,
}:
mkDerivation {
pname = "baloo-widgets";
meta = {
license = [ lib.licenses.lgpl21 ];
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
baloo
kconfig
kfilemetadata
ki18n
kio
kservice
];
outputs = [
"out"
"dev"
];
}
-35
View File
@@ -1,35 +0,0 @@
{
mkDerivation,
lib,
libkdegames,
extra-cmake-modules,
kdeclarative,
knewstuff,
}:
mkDerivation {
pname = "bomber";
meta = with lib; {
homepage = "https://apps.kde.org/bomber/";
description = "Single player arcade game";
mainProgram = "bomber";
longDescription = ''
Bomber is a single player arcade game. The player is invading various
cities in a plane that is decreasing in height.
The goal of the game is to destroy all the buildings and advance to the next level.
Each level gets a bit harder by increasing the speed of the plane and the height of the buildings.
'';
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kdeclarative
knewstuff
libkdegames
];
}
-33
View File
@@ -1,33 +0,0 @@
{
mkDerivation,
lib,
libkdegames,
extra-cmake-modules,
kdeclarative,
knewstuff,
}:
mkDerivation {
pname = "bovo";
meta = with lib; {
homepage = "https://apps.kde.org/bovo/";
description = "Five in a row application";
mainProgram = "bovo";
longDescription = ''
Bovo is a Gomoku (from Japanese - lit. "five points") like game for two players,
where the opponents alternate in placing their respective pictogram on the game board.
(Also known as: Connect Five, Five in a row, X and O, Naughts and Crosses)
'';
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kdeclarative
knewstuff
libkdegames
];
}
-55
View File
@@ -1,55 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
akonadi-calendar,
akonadi-mime,
akonadi-notes,
kcalutils,
kholidays,
kidentitymanagement,
kmime,
pimcommon,
qttools,
}:
mkDerivation {
pname = "calendarsupport";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
akonadi-mime
akonadi-notes
kcalutils
kholidays
pimcommon
qttools
];
propagatedBuildInputs = [
akonadi-calendar
kidentitymanagement
kmime
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
-47
View File
@@ -1,47 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
kcalendarcore,
kconfig,
kcoreaddons,
kdbusaddons,
ki18n,
kirigami2,
knotifications,
kpeople,
kservice,
qtquickcontrols2,
}:
mkDerivation {
pname = "calindori";
nativeBuildInputs = [
cmake
extra-cmake-modules
];
buildInputs = [
kcalendarcore
kconfig
kcoreaddons
kdbusaddons
ki18n
kirigami2
knotifications
kpeople
kservice
qtquickcontrols2
];
meta = with lib; {
description = "Calendar for Plasma Mobile";
homepage = "https://invent.kde.org/plasma-mobile/calindori";
license = licenses.gpl3Plus;
maintainers = [ ];
};
}
-131
View File
@@ -1,131 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
makeWrapper,
shared-mime-info,
fetchpatch,
qtbase,
qtsvg,
qttools,
qtwebengine,
qtxmlpatterns,
poppler,
karchive,
kcompletion,
kconfig,
kcoreaddons,
kcrash,
kdoctools,
ki18n,
kiconthemes,
kio,
knewstuff,
kparts,
kpty,
ktexteditor,
ktextwidgets,
kxmlgui,
syntax-highlighting,
libspectre,
# Backends. Set to null if you want to omit from the build
withAnalitza ? true,
analitza,
wtihJulia ? true,
julia,
withQalculate ? true,
libqalculate,
withLua ? true,
luajit,
withPython ? true,
python3,
withR ? true,
R,
withSage ? true,
sage,
sage-with-env ? sage.with-env,
}:
mkDerivation {
pname = "cantor";
nativeBuildInputs = [
cmake
extra-cmake-modules
makeWrapper
shared-mime-info
qttools
];
buildInputs = [
qtbase
qtsvg
qtwebengine
qtxmlpatterns
poppler
karchive
kcompletion
kconfig
kcoreaddons
kcrash
kdoctools
ki18n
kiconthemes
kio
knewstuff
kparts
kpty
ktexteditor
ktextwidgets
kxmlgui
syntax-highlighting
libspectre
]
# backends
++ lib.optional withAnalitza analitza
++ lib.optional wtihJulia julia
++ lib.optional withQalculate libqalculate
++ lib.optional withLua luajit
++ lib.optional withPython python3
++ lib.optional withR R
++ lib.optional withSage sage-with-env;
qtWrapperArgs = [
"--prefix PATH : ${placeholder "out"}/bin"
]
++ lib.optional withSage "--prefix PATH : ${sage-with-env}/bin";
# Causes failures on Hydra and ofborg from some reason
enableParallelBuilding = false;
patches = [
# fix build for julia 1.1 from upstream
(fetchpatch {
url = "https://github.com/KDE/cantor/commit/ed9525ec7895c2251668d11218f16f186db48a59.patch?full_index=1";
hash = "sha256-paq0e7Tl2aiUjBf1bDHLLUpShwdCQLICNTPNsXSoe5M=";
})
];
meta = {
description = "Front end to powerful mathematics and statistics packages";
homepage = "https://cantor.kde.org/";
license = with lib.licenses; [
bsd3
cc0
gpl2Only
gpl2Plus
gpl3Only
];
maintainers = with lib.maintainers; [ hqurve ];
};
}
-56
View File
@@ -1,56 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
ki18n,
kconfig,
kconfigwidgets,
kcoreaddons,
kdbusaddons,
kiconthemes,
kirigami-addons,
kcmutils,
kio,
knotifications,
plasma-framework,
kwidgetsaddons,
kwindowsystem,
kitemmodels,
kitemviews,
lcms2,
libXrandr,
qtx11extras,
}:
mkDerivation {
pname = "colord-kde";
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [
kconfig
kconfigwidgets
kcoreaddons
kdbusaddons
kiconthemes
kirigami-addons
kcmutils
ki18n
kio
knotifications
plasma-framework
kwidgetsaddons
kwindowsystem
kitemmodels
kitemviews
lcms2
libXrandr
qtx11extras
];
meta = with lib; {
homepage = "https://projects.kde.org/projects/playground/graphics/colord-kde";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ttuegel ];
};
}
-284
View File
@@ -1,284 +0,0 @@
/*
# New packages
READ THIS FIRST
This module is for official packages in the KDE Gear. All available
packages are listed in `./srcs.nix`, although some are not yet
packaged in Nixpkgs (see below).
IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE.
Many of the packages released upstream are not yet built in Nixpkgs due to lack
of demand. To add a Nixpkgs build for an upstream package, copy one of the
existing packages here and modify it as necessary. A simple example package that
still shows most of the available features is in `./gwenview`.
# Updates
1. Update the URL in `./fetch.sh`.
2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde`
from the top of the Nixpkgs tree.
3. Use `nox-review wip` to check that everything builds.
4. Commit the changes and open a pull request.
*/
{
lib,
config,
libsForQt5,
fetchurl,
}:
let
mirror = "mirror://kde";
srcs = import ./srcs.nix { inherit fetchurl mirror; };
mkDerivation =
args:
let
inherit (args) pname;
inherit (srcs.${pname}) src version;
mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) { };
in
mkDerivation (
args
// {
inherit pname version src;
outputs = args.outputs or [ "out" ];
meta =
let
meta = args.meta or { };
in
meta
// {
homepage = meta.homepage or "http://www.kde.org";
platforms = meta.platforms or lib.platforms.linux;
};
}
);
packages =
self:
with self;
let
callPackage = self.newScope {
inherit mkDerivation;
# Team of maintainers assigned to the KDE PIM suite
kdepimTeam = with lib.maintainers; [
ttuegel
vandenoever
nyanloutre
];
};
in
{
akonadi = callPackage ./akonadi { };
akonadi-calendar = callPackage ./akonadi-calendar.nix { };
akonadi-calendar-tools = callPackage ./akonadi-calendar-tools.nix { };
akonadi-contacts = callPackage ./akonadi-contacts.nix { };
akonadi-import-wizard = callPackage ./akonadi-import-wizard.nix { };
akonadi-mime = callPackage ./akonadi-mime.nix { };
akonadi-notes = callPackage ./akonadi-notes.nix { };
akonadi-search = callPackage ./akonadi-search.nix { };
akonadiconsole = callPackage ./akonadiconsole.nix { };
akregator = callPackage ./akregator.nix { };
analitza = callPackage ./analitza.nix { };
arianna = callPackage ./arianna.nix { };
ark = callPackage ./ark { };
baloo-widgets = callPackage ./baloo-widgets.nix { };
bomber = callPackage ./bomber.nix { };
bovo = callPackage ./bovo.nix { };
calendarsupport = callPackage ./calendarsupport.nix { };
colord-kde = callPackage ./colord-kde.nix { };
cantor = callPackage ./cantor.nix { };
dolphin = callPackage ./dolphin.nix { };
dolphin-plugins = callPackage ./dolphin-plugins.nix { };
dragon = callPackage ./dragon.nix { };
elisa = callPackage ./elisa.nix { };
eventviews = callPackage ./eventviews.nix { };
falkon = callPackage ./falkon.nix { };
ffmpegthumbs = callPackage ./ffmpegthumbs.nix { };
filelight = callPackage ./filelight.nix { };
ghostwriter = callPackage ./ghostwriter.nix { };
granatier = callPackage ./granatier.nix { };
grantleetheme = callPackage ./grantleetheme { };
gwenview = callPackage ./gwenview { };
incidenceeditor = callPackage ./incidenceeditor.nix { };
juk = callPackage ./juk.nix { };
kaccounts-integration = callPackage ./kaccounts-integration.nix { };
kaccounts-providers = callPackage ./kaccounts-providers.nix { };
kaddressbook = callPackage ./kaddressbook.nix { };
kalarm = callPackage ./kalarm.nix { };
kalgebra = callPackage ./kalgebra.nix { };
merkuro = callPackage ./merkuro.nix { };
kalzium = callPackage ./kalzium.nix { };
kamoso = callPackage ./kamoso.nix { };
kapman = callPackage ./kapman.nix { };
kapptemplate = callPackage ./kapptemplate.nix { };
kate = callPackage ./kate.nix { };
katomic = callPackage ./katomic.nix { };
kblackbox = callPackage ./kblackbox.nix { };
kblocks = callPackage ./kblocks.nix { };
kbounce = callPackage ./kbounce.nix { };
kbreakout = callPackage ./kbreakout.nix { };
kcachegrind = callPackage ./kcachegrind.nix { };
kcalc = callPackage ./kcalc.nix { };
kcalutils = callPackage ./kcalutils.nix { };
kcharselect = callPackage ./kcharselect.nix { };
kcolorchooser = callPackage ./kcolorchooser.nix { };
kde-inotify-survey = callPackage ./kde-inotify-survey.nix { };
kdebugsettings = callPackage ./kdebugsettings.nix { };
kdeconnect-kde = callPackage ./kdeconnect-kde.nix { };
kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix { };
kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers { };
kdenetwork-filesharing = callPackage ./kdenetwork-filesharing.nix { };
kdenlive = callPackage ./kdenlive { };
kdepim-addons = callPackage ./kdepim-addons.nix { };
kdepim-runtime = callPackage ./kdepim-runtime { };
kdev-php = callPackage ./kdevelop/kdev-php.nix { };
kdev-python = callPackage ./kdevelop/kdev-python.nix { };
kdevelop = callPackage ./kdevelop/wrapper.nix { };
kdevelop-pg-qt = callPackage ./kdevelop/kdevelop-pg-qt.nix { };
kdevelop-unwrapped = callPackage ./kdevelop/kdevelop.nix { };
kdf = callPackage ./kdf.nix { };
kdialog = callPackage ./kdialog.nix { };
kdiamond = callPackage ./kdiamond.nix { };
keditbookmarks = callPackage ./keditbookmarks.nix { };
kfind = callPackage ./kfind.nix { };
kgeography = callPackage ./kgeography.nix { };
kget = callPackage ./kget.nix { };
kgpg = callPackage ./kgpg.nix { };
khelpcenter = callPackage ./khelpcenter.nix { };
kidentitymanagement = callPackage ./kidentitymanagement.nix { };
kig = callPackage ./kig.nix { };
kigo = callPackage ./kigo.nix { };
killbots = callPackage ./killbots.nix { };
kimap = callPackage ./kimap.nix { };
kio-admin = callPackage ./kio-admin.nix { };
kio-extras = callPackage ./kio-extras.nix { };
kio-gdrive = callPackage ./kio-gdrive.nix { };
kipi-plugins = callPackage ./kipi-plugins.nix { };
kirigami-gallery = callPackage ./kirigami-gallery.nix { };
kitinerary = callPackage ./kitinerary.nix { };
kldap = callPackage ./kldap.nix { };
kleopatra = callPackage ./kleopatra.nix { };
klettres = callPackage ./klettres.nix { };
klines = callPackage ./klines.nix { };
kmag = callPackage ./kmag.nix { };
kmahjongg = callPackage ./kmahjongg.nix { };
kmail = callPackage ./kmail.nix { };
kmail-account-wizard = callPackage ./kmail-account-wizard.nix { };
kmailtransport = callPackage ./kmailtransport.nix { };
kmbox = callPackage ./kmbox.nix { };
kmime = callPackage ./kmime.nix { };
kmines = callPackage ./kmines.nix { };
kmix = callPackage ./kmix.nix { };
kmousetool = callPackage ./kmousetool.nix { };
kmplot = callPackage ./kmplot.nix { };
knavalbattle = callPackage ./knavalbattle.nix { };
knetwalk = callPackage ./knetwalk.nix { };
knights = callPackage ./knights.nix { };
knotes = callPackage ./knotes.nix { };
kolf = callPackage ./kolf.nix { };
kollision = callPackage ./kollision.nix { };
kolourpaint = callPackage ./kolourpaint.nix { };
kompare = callPackage ./kompare.nix { };
konqueror = callPackage ./konqueror.nix { };
konquest = callPackage ./konquest.nix { };
konsole = callPackage ./konsole.nix { };
kontact = callPackage ./kontact.nix { };
konversation = callPackage ./konversation.nix { };
kontactinterface = callPackage ./kontactinterface.nix { };
kopeninghours = callPackage ./kopeninghours.nix { };
korganizer = callPackage ./korganizer.nix { };
kosmindoormap = callPackage ./kosmindoormap.nix { };
kpat = callPackage ./kpat.nix { };
kpimtextedit = callPackage ./kpimtextedit.nix { };
kpkpass = callPackage ./kpkpass.nix { };
kpmcore = callPackage ./kpmcore { };
kpublictransport = callPackage ./kpublictransport.nix { };
kqtquickcharts = callPackage ./kqtquickcharts.nix { };
krdc = callPackage ./krdc.nix { };
kreversi = callPackage ./kreversi.nix { };
krfb = callPackage ./krfb.nix { };
kruler = callPackage ./kruler.nix { };
ksanecore = callPackage ./ksanecore.nix { };
kshisen = callPackage ./kshisen.nix { };
ksmtp = callPackage ./ksmtp { };
kspaceduel = callPackage ./kspaceduel.nix { };
ksquares = callPackage ./ksquares.nix { };
ksudoku = callPackage ./ksudoku.nix { };
ksystemlog = callPackage ./ksystemlog.nix { };
kteatime = callPackage ./kteatime.nix { };
ktimer = callPackage ./ktimer.nix { };
ktnef = callPackage ./ktnef.nix { };
ktorrent = callPackage ./ktorrent.nix { };
kturtle = callPackage ./kturtle.nix { };
kwalletmanager = callPackage ./kwalletmanager.nix { };
kwave = callPackage ./kwave.nix { };
libgravatar = callPackage ./libgravatar.nix { };
libkcddb = callPackage ./libkcddb.nix { };
libkdcraw = callPackage ./libkdcraw.nix { };
libkdegames = callPackage ./libkdegames.nix { };
libkdepim = callPackage ./libkdepim.nix { };
libkexiv2 = callPackage ./libkexiv2.nix { };
libkgapi = callPackage ./libkgapi.nix { };
libkipi = callPackage ./libkipi.nix { };
libkleo = callPackage ./libkleo.nix { };
libkmahjongg = callPackage ./libkmahjongg.nix { };
libkomparediff2 = callPackage ./libkomparediff2.nix { };
libksane = callPackage ./libksane.nix { };
libksieve = callPackage ./libksieve.nix { };
libktorrent = callPackage ./libktorrent.nix { };
mailcommon = callPackage ./mailcommon.nix { };
mailimporter = callPackage ./mailimporter.nix { };
marble = callPackage ./marble.nix { };
mbox-importer = callPackage ./mbox-importer.nix { };
messagelib = callPackage ./messagelib.nix { };
minuet = callPackage ./minuet.nix { };
okular = callPackage ./okular.nix { };
palapeli = callPackage ./palapeli.nix { };
partitionmanager = callPackage ./partitionmanager { };
picmi = callPackage ./picmi.nix { };
pim-data-exporter = callPackage ./pim-data-exporter.nix { };
pim-sieve-editor = callPackage ./pim-sieve-editor.nix { };
pimcommon = callPackage ./pimcommon.nix { };
print-manager = callPackage ./print-manager.nix { };
rocs = callPackage ./rocs.nix { };
skanlite = callPackage ./skanlite.nix { };
skanpage = callPackage ./skanpage.nix { };
spectacle = callPackage ./spectacle.nix { };
umbrello = callPackage ./umbrello.nix { };
yakuake = callPackage ./yakuake.nix { };
zanshin = callPackage ./zanshin.nix { };
# Plasma Mobile Gear
alligator = callPackage ./alligator.nix { };
angelfish = callPackage ./angelfish.nix { inherit srcs; };
audiotube = callPackage ./audiotube.nix { };
calindori = callPackage ./calindori.nix { };
kalk = callPackage ./kalk.nix { };
kasts = callPackage ./kasts.nix { };
kclock = callPackage ./kclock.nix { };
keysmith = callPackage ./keysmith.nix { };
koko = callPackage ./koko.nix { };
kongress = callPackage ./kongress.nix { };
krecorder = callPackage ./krecorder.nix { };
ktrip = callPackage ./ktrip.nix { };
kweather = callPackage ./kweather.nix { };
plasmatube = callPackage ./plasmatube { };
qmlkonsole = callPackage ./qmlkonsole.nix { };
telly-skout = callPackage ./telly-skout.nix { };
tokodon = callPackage ./tokodon.nix { };
}
// lib.optionalAttrs config.allowAliases {
k3b = throw "libsForQt5.k3b has been dropped in favor of kdePackages.k3b";
ktouch = throw "ktouch has been dropped due keyboard layout issues";
};
in
lib.makeScope libsForQt5.newScope packages
-32
View File
@@ -1,32 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
dolphin,
ki18n,
kio,
kxmlgui,
}:
mkDerivation {
pname = "dolphin-plugins";
meta = {
license = [ lib.licenses.gpl2 ];
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
dolphin
ki18n
kio
kxmlgui
];
outputs = [
"out"
"dev"
];
}
-82
View File
@@ -1,82 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
baloo,
baloo-widgets,
kactivities,
kbookmarks,
kcmutils,
kcompletion,
kconfig,
kcoreaddons,
kdbusaddons,
kfilemetadata,
ki18n,
kiconthemes,
kinit,
kio,
knewstuff,
knotifications,
kparts,
ktexteditor,
kwindowsystem,
phonon,
solid,
kuserfeedback,
wayland,
qtwayland,
qtx11extras,
qtimageformats,
}:
mkDerivation {
pname = "dolphin";
meta = {
homepage = "https://apps.kde.org/dolphin/";
description = "KDE file manager";
license = with lib.licenses; [
gpl2Plus
fdl12Plus
];
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedUserEnvPkgs = [ baloo ];
propagatedBuildInputs = [
baloo
baloo-widgets
kactivities
kbookmarks
kcmutils
kcompletion
kconfig
kcoreaddons
kdbusaddons
kfilemetadata
ki18n
kiconthemes
kinit
kio
knewstuff
knotifications
kparts
ktexteditor
kwindowsystem
phonon
solid
kuserfeedback
wayland
qtwayland
qtx11extras
qtimageformats
];
outputs = [
"out"
"dev"
];
}
-74
View File
@@ -1,74 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
baloo,
baloo-widgets,
kactivities,
kbookmarks,
kcmutils,
kcompletion,
kconfig,
kcoreaddons,
kdbusaddons,
kfilemetadata,
ki18n,
kiconthemes,
kinit,
kio,
knewstuff,
knotifications,
kparts,
ktexteditor,
kwindowsystem,
phonon,
solid,
phonon-backend-gstreamer,
}:
mkDerivation {
pname = "dragon";
meta = {
homepage = "https://apps.kde.org/dragonplayer/";
license = with lib.licenses; [
gpl2Plus
fdl12Plus
];
description = "Simple media player for KDE";
mainProgram = "dragon";
maintainers = [ lib.maintainers.jonathanreeve ];
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
baloo
baloo-widgets
kactivities
kbookmarks
kcmutils
kcompletion
kconfig
kcoreaddons
kdbusaddons
kfilemetadata
ki18n
kiconthemes
kinit
kio
knewstuff
knotifications
kparts
ktexteditor
kwindowsystem
phonon
solid
phonon-backend-gstreamer
];
outputs = [
"out"
"dev"
];
}
-56
View File
@@ -1,56 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
qtmultimedia,
qtquickcontrols2,
qtwebsockets,
kconfig,
kcmutils,
kcrash,
kdeclarative,
kfilemetadata,
kinit,
kirigami2,
baloo,
libvlc,
}:
mkDerivation {
pname = "elisa";
outputs = [
"out"
"dev"
];
buildInputs = [ libvlc ];
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
baloo
kcmutils
kconfig
kcrash
kdeclarative
kfilemetadata
kinit
kirigami2
qtmultimedia
qtquickcontrols2
qtwebsockets
];
meta = with lib; {
homepage = "https://apps.kde.org/elisa/";
description = "Simple media player for KDE";
mainProgram = "elisa";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
};
}
-49
View File
@@ -1,49 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
calendarsupport,
kcalutils,
kdiagram,
libkdepim,
qtbase,
qttools,
kholidays,
}:
mkDerivation {
pname = "eventviews";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
calendarsupport
kcalutils
kdiagram
libkdepim
qtbase
qttools
kholidays
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
-64
View File
@@ -1,64 +0,0 @@
{
stdenv,
mkDerivation,
lib,
cmake,
extra-cmake-modules,
pkg-config,
libpthreadstubs,
libxcb,
libXdmcp,
qtsvg,
qttools,
qtwebengine,
qtx11extras,
qtwayland,
wrapQtAppsHook,
kwallet,
kpurpose,
karchive,
kio,
}:
mkDerivation {
pname = "falkon";
preConfigure = ''
export NONBLOCK_JS_DIALOGS=true
export KDE_INTEGRATION=true
export GNOME_INTEGRATION=false
export FALKON_PREFIX=$out
'';
buildInputs = [
libpthreadstubs
libxcb
libXdmcp
qtsvg
qttools
qtwebengine
qtx11extras
kwallet
kpurpose
karchive
kio
]
++ lib.optionals stdenv.hostPlatform.isLinux [ qtwayland ];
nativeBuildInputs = [
cmake
extra-cmake-modules
pkg-config
qttools
wrapQtAppsHook
];
meta = with lib; {
description = "QtWebEngine based cross-platform web browser";
mainProgram = "falkon";
homepage = "https://www.falkon.org";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.unix;
};
}
-1
View File
@@ -1 +0,0 @@
WGET_ARGS=( https://download.kde.org/stable/release-service/23.08.5/src -A '*.tar.xz' )
-25
View File
@@ -1,25 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
ffmpeg,
kio,
taglib,
}:
mkDerivation {
pname = "ffmpegthumbs";
meta = {
license = with lib.licenses; [
gpl2
bsd3
];
maintainers = [ lib.maintainers.ttuegel ];
};
nativeBuildInputs = [ extra-cmake-modules ];
buildInputs = [
ffmpeg
kio
taglib
];
}
-45
View File
@@ -1,45 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
kio,
kparts,
kxmlgui,
qtscript,
solid,
qtquickcontrols2,
kdeclarative,
kirigami2,
kquickcharts,
}:
mkDerivation {
pname = "filelight";
meta = {
description = "Disk usage statistics";
mainProgram = "filelight";
homepage = "https://apps.kde.org/filelight/";
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ vcunat ];
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
propagatedBuildInputs = [
kio
kparts
kxmlgui
qtscript
solid
qtquickcontrols2
kdeclarative
kirigami2
kquickcharts
];
outputs = [
"out"
"dev"
];
}
-56
View File
@@ -1,56 +0,0 @@
{
lib,
mkDerivation,
extra-cmake-modules,
qttools,
qtwebengine,
kcoreaddons,
kconfigwidgets,
sonnet,
kxmlgui,
hunspell,
cmark,
multimarkdown,
pandoc,
}:
mkDerivation {
pname = "ghostwriter";
nativeBuildInputs = [
extra-cmake-modules
qttools
];
buildInputs = [
qtwebengine
hunspell
kcoreaddons
kconfigwidgets
sonnet
kxmlgui
];
qtWrapperArgs = [
"--prefix"
"PATH"
":"
(lib.makeBinPath [
cmark
multimarkdown
pandoc
])
];
meta = with lib; {
description = "Cross-platform, aesthetic, distraction-free Markdown editor";
mainProgram = "ghostwriter";
homepage = "https://ghostwriter.kde.org/";
changelog = "https://invent.kde.org/office/ghostwriter/-/blob/master/CHANGELOG.md";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
dotlambda
erictapen
];
};
}
-28
View File
@@ -1,28 +0,0 @@
{
mkDerivation,
lib,
libkdegames,
extra-cmake-modules,
kdeclarative,
knewstuff,
}:
mkDerivation {
pname = "granatier";
meta = with lib; {
homepage = "https://kde.org/applications/en/games/org.kde.granatier";
description = "Clone of the classic Bomberman game";
mainProgram = "granatier";
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kdeclarative
knewstuff
libkdegames
];
}
@@ -1,59 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
grantlee,
ki18n,
kiconthemes,
knewstuff,
kservice,
kxmlgui,
qtbase,
}:
mkDerivation {
pname = "grantleetheme";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
grantlee
ki18n
kiconthemes
knewstuff
kservice
kxmlgui
qtbase
];
propagatedBuildInputs = [
grantlee
kiconthemes
knewstuff
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
# This is a really disgusting hack, no idea how search paths work for kde,
# but apparently kde is looking in $out/$out rather than $out for this library.
# Having this symlink fixes kmail finding it and makes my html work (Yay!).
mkdir -p $out/$out/lib/grantlee/
libpath=$(echo $out/lib/grantlee/*)
ln -s $libpath $out/$out/lib/grantlee/$(basename $libpath)
'';
}
@@ -1,77 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
exiv2,
lcms2,
cfitsio,
baloo,
kactivities,
kio,
kipi-plugins,
kitemmodels,
kparts,
libkdcraw,
libkipi,
phonon,
qtimageformats,
qtsvg,
qtx11extras,
kinit,
kpurpose,
kcolorpicker,
kimageannotator,
wayland,
wayland-protocols,
wayland-scanner,
}:
mkDerivation {
pname = "gwenview";
meta = {
homepage = "https://apps.kde.org/gwenview/";
description = "KDE image viewer";
license = with lib.licenses; [
gpl2Plus
fdl12Plus
];
maintainers = [ lib.maintainers.ttuegel ];
mainProgram = "gwenview";
};
# Fix build with versioned kImageAnnotator
patches = [ ./kimageannotator.patch ];
nativeBuildInputs = [
extra-cmake-modules
kdoctools
wayland-scanner
];
buildInputs = [
baloo
kactivities
kio
kitemmodels
kparts
libkdcraw
libkipi
phonon
exiv2
lcms2
cfitsio
qtimageformats
qtsvg
qtx11extras
kpurpose
kcolorpicker
kimageannotator
wayland
wayland-protocols
];
propagatedUserEnvPkgs = [
kipi-plugins
libkipi
(lib.getBin kinit)
];
}
@@ -1,56 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01db0fb1..06319c54 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -166,12 +166,12 @@ if(NOT WITHOUT_X11)
endif()
if (QT_MAJOR_VERSION STREQUAL "5")
- find_package(kImageAnnotator)
- set_package_properties(kImageAnnotator PROPERTIES URL "https://github.com/ksnip/kImageAnnotator" DESCRIPTION "The kImageAnnotator library provides tools to annotate" TYPE REQUIRED)
- if(kImageAnnotator_FOUND)
+ find_package(kImageAnnotator-Qt5)
+ set_package_properties(kImageAnnotator-Qt5 PROPERTIES URL "https://github.com/ksnip/kImageAnnotator" DESCRIPTION "The kImageAnnotator library provides tools to annotate" TYPE REQUIRED)
+ if(kImageAnnotator-Qt5_FOUND)
set(KIMAGEANNOTATOR_FOUND 1)
- find_package(kColorPicker REQUIRED)
- if(NOT kImageAnnotator_VERSION VERSION_LESS 0.5.0)
+ find_package(kColorPicker-Qt5 REQUIRED)
+ if(NOT kImageAnnotator-Qt5_VERSION VERSION_LESS 0.5.0)
set(KIMAGEANNOTATOR_CAN_LOAD_TRANSLATIONS 1)
endif()
endif()
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 8c136835..ef4cff74 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -157,6 +157,6 @@ target_link_libraries(slideshowfileitemaction
KF${QT_MAJOR_VERSION}::KIOWidgets
KF${QT_MAJOR_VERSION}::Notifications)
-if(kImageAnnotator_FOUND)
+if(kImageAnnotator-Qt5_FOUND)
target_link_libraries(gwenview kImageAnnotator::kImageAnnotator)
endif()
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 05a2ea67..4167a1bb 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -157,7 +157,7 @@ set(gwenviewlib_SRCS
touch/touch_helper.cpp
${GV_JPEG_DIR}/transupp.c
)
-if (kImageAnnotator_FOUND)
+if (kImageAnnotator-Qt5_FOUND)
set(gwenviewlib_SRCS ${gwenviewlib_SRCS}
annotate/annotatedialog.cpp
annotate/annotateoperation.cpp
@@ -338,7 +338,7 @@ if (GWENVIEW_SEMANTICINFO_BACKEND_BALOO)
)
endif()
-if(kImageAnnotator_FOUND)
+if(kImageAnnotator-Qt5_FOUND)
target_link_libraries(gwenviewlib kImageAnnotator::kImageAnnotator)
endif()
-51
View File
@@ -1,51 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
akonadi-mime,
calendarsupport,
eventviews,
kdiagram,
kldap,
kmime,
pimcommon,
qtbase,
}:
mkDerivation {
pname = "incidenceeditor";
meta = {
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
akonadi-mime
calendarsupport
eventviews
kdiagram
kldap
kmime
pimcommon
qtbase
];
outputs = [
"out"
"dev"
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$dev/include/KF5"
'';
}
-39
View File
@@ -1,39 +0,0 @@
{
lib,
mkDerivation,
extra-cmake-modules,
wrapQtAppsHook,
kdoctools,
kcoreaddons,
kxmlgui,
kio,
phonon,
taglib,
}:
mkDerivation {
pname = "juk";
nativeBuildInputs = [
extra-cmake-modules
wrapQtAppsHook
kdoctools
];
buildInputs = [
kcoreaddons
kxmlgui
kio
phonon
taglib
];
meta = with lib; {
homepage = "https://invent.kde.org/multimedia/juk";
description = "Audio jukebox app, supporting collections of MP3, Ogg Vorbis and FLAC audio files";
mainProgram = "juk";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = with maintainers; [ zendo ];
};
}
@@ -1,35 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
kcmutils,
kcoreaddons,
kwallet,
accounts-qt,
signond,
qcoro,
}:
mkDerivation {
pname = "kaccounts-integration";
meta = with lib; {
homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
description = "Online accounts integration";
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
kcmutils
kcoreaddons
kdoctools
kwallet
accounts-qt
signond
qcoro
];
}
@@ -1,45 +0,0 @@
{
mkDerivation,
lib,
accounts-qt,
extra-cmake-modules,
intltool,
kaccounts-integration,
kcmutils,
kcoreaddons,
kdeclarative,
kdoctools,
kio,
kpackage,
kwallet,
qtwebengine,
signond,
}:
mkDerivation {
pname = "kaccounts-providers";
meta = with lib; {
homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
description = "Online account providers";
maintainers = with maintainers; [ kennyballou ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
intltool
kdoctools
];
buildInputs = [
accounts-qt
kaccounts-integration
kcmutils
kcoreaddons
kdeclarative
kio
kpackage
kwallet
qtwebengine
signond
];
}
-74
View File
@@ -1,74 +0,0 @@
{
mkDerivation,
lib,
kdepimTeam,
extra-cmake-modules,
kdoctools,
akonadi,
akonadi-search,
grantlee,
grantleetheme,
kcmutils,
kcompletion,
kcrash,
kdbusaddons,
ki18n,
kontactinterface,
kparts,
kpimtextedit,
kuserfeedback,
kxmlgui,
libkdepim,
libkleo,
mailcommon,
pimcommon,
prison,
qgpgme,
qtbase,
}:
mkDerivation {
pname = "kaddressbook";
meta = {
homepage = "https://apps.kde.org/kaddressbook/";
description = "KDE contact manager";
mainProgram = "kaddressbook";
license = with lib.licenses; [
gpl2Plus
lgpl21Plus
fdl12Plus
];
maintainers = kdepimTeam;
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
akonadi
akonadi-search
grantlee
grantleetheme
kcmutils
kcompletion
kcrash
kdbusaddons
ki18n
kontactinterface
kparts
kpimtextedit
kuserfeedback
kxmlgui
libkdepim
libkleo
mailcommon
pimcommon
prison
qgpgme
qtbase
];
postInstall = ''
# added as an include directory by cmake files and fails to compile if it's missing
mkdir -p "$out/include/KF5"
'';
}
-103
View File
@@ -1,103 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kauth,
kcodecs,
kcompletion,
kconfig,
kconfigwidgets,
kdbusaddons,
kdoctools,
kguiaddons,
ki18n,
kiconthemes,
kidletime,
kjobwidgets,
kcmutils,
kio,
knotifications,
knotifyconfig,
kservice,
kwidgetsaddons,
kwindowsystem,
kxmlgui,
phonon,
kimap,
akonadi,
akonadi-contacts,
akonadi-mime,
kcalendarcore,
kcalutils,
kholidays,
kidentitymanagement,
libkdepim,
mailcommon,
kmailtransport,
kmime,
pimcommon,
kpimtextedit,
messagelib,
qtx11extras,
kdepim-runtime,
}:
mkDerivation {
pname = "kalarm";
meta = {
homepage = "https://apps.kde.org/kalarm/";
description = "Personal alarm scheduler";
license = with lib.licenses; [ gpl2 ];
maintainers = [ ];
};
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
kauth
kcodecs
kcompletion
kconfig
kconfigwidgets
kdbusaddons
kdoctools
kguiaddons
ki18n
kiconthemes
kidletime
kjobwidgets
kcmutils
kio
knotifications
knotifyconfig
kservice
kwidgetsaddons
kwindowsystem
kxmlgui
phonon
kimap
akonadi
akonadi-contacts
akonadi-mime
kcalendarcore
kcalutils
kholidays
kidentitymanagement
libkdepim
mailcommon
kmailtransport
kmime
pimcommon
kpimtextedit
messagelib
qtx11extras
];
propagatedUserEnvPkgs = [ kdepim-runtime ];
}
-50
View File
@@ -1,50 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
analitza,
ki18n,
kinit,
kirigami2,
kconfigwidgets,
kwidgetsaddons,
kio,
kxmlgui,
qtwebengine,
plasma-framework,
}:
mkDerivation {
pname = "kalgebra";
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
extra-cmake-modules
kdoctools
];
buildInputs = [
ki18n
analitza
kinit
kirigami2
kconfigwidgets
kwidgetsaddons
kio
kxmlgui
qtwebengine
plasma-framework
];
meta = {
homepage = "https://apps.kde.org/kalgebra/";
description = "2D and 3D Graph Calculator";
license = with lib.licenses; [ gpl2Plus ];
maintainers = with lib.maintainers; [ ninjafb ];
};
}
-52
View File
@@ -1,52 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
bison,
flex,
gmp,
mpfr,
kconfig,
kcoreaddons,
ki18n,
kirigami2,
kunitconversion,
qtfeedback,
qtquickcontrols2,
}:
mkDerivation {
pname = "kalk";
nativeBuildInputs = [
cmake
extra-cmake-modules
bison
flex
];
buildInputs = [
gmp
mpfr
kconfig
kcoreaddons
ki18n
kirigami2
kunitconversion
qtfeedback
qtquickcontrols2
];
meta = with lib; {
description = "Calculator built with kirigami";
mainProgram = "kalk";
homepage = "https://invent.kde.org/plasma-mobile/kalk";
license = licenses.gpl3Plus;
maintainers = [ ];
};
}
-39
View File
@@ -1,39 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
ki18n,
kio,
openbabel,
qtscript,
kparts,
kplotting,
kunitconversion,
}:
mkDerivation {
pname = "kalzium";
meta = with lib; {
homepage = "https://edu.kde.org/kalzium/";
description = "Program that shows you the Periodic Table of Elements";
mainProgram = "kalzium";
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
qtscript
#avogadro
kdoctools
ki18n
kio
openbabel
kparts
kplotting
kunitconversion
];
}
-60
View File
@@ -1,60 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
wrapQtAppsHook,
qtdeclarative,
qtgraphicaleffects,
qtquickcontrols2,
kirigami2,
kpurpose,
gst_all_1,
pcre,
}:
let
gst = with gst_all_1; [
gstreamer
gst-libav
gst-plugins-base
gst-plugins-good
gst-plugins-bad
];
in
mkDerivation {
pname = "kamoso";
nativeBuildInputs = [
extra-cmake-modules
kdoctools
wrapQtAppsHook
];
buildInputs = [ pcre ] ++ gst;
propagatedBuildInputs = [
qtdeclarative
qtgraphicaleffects
qtquickcontrols2
kirigami2
kpurpose
];
cmakeFlags = [
"-DOpenGL_GL_PREFERENCE=GLVND"
"-DGSTREAMER_VIDEO_INCLUDE_DIR=${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0"
];
qtWrapperArgs = [
"--prefix GST_PLUGIN_PATH : ${lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gst}"
];
meta = {
homepage = "https://apps.kde.org/kamoso/";
description = "Simple and friendly program to use your camera";
mainProgram = "kamoso";
license = with lib.licenses; [
lgpl21Only
gpl3Only
];
};
}
-30
View File
@@ -1,30 +0,0 @@
{
mkDerivation,
lib,
extra-cmake-modules,
kdoctools,
ki18n,
kio,
libkdegames,
}:
mkDerivation {
pname = "kapman";
meta = with lib; {
homepage = "https://kde.org/applications/en/games/org.kde.kapman";
description = "Clone of the well known game Pac-Man";
mainProgram = "kapman";
maintainers = with maintainers; [ freezeboy ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
nativeBuildInputs = [
extra-cmake-modules
];
buildInputs = [
libkdegames
kdoctools
ki18n
kio
];
}
-31
View File
@@ -1,31 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
qtbase,
kactivities,
}:
mkDerivation {
pname = "kapptemplate";
nativeBuildInputs = [
extra-cmake-modules
cmake
];
buildInputs = [
kactivities
qtbase
];
meta = with lib; {
description = "KDE App Code Template Generator";
mainProgram = "kapptemplate";
license = licenses.gpl2;
homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
maintainers = [ maintainers.shamilton ];
platforms = platforms.linux;
};
}
-83
View File
@@ -1,83 +0,0 @@
{
lib,
mkDerivation,
cmake,
extra-cmake-modules,
wrapGAppsHook3,
gst_all_1,
kconfig,
kcoreaddons,
ki18n,
kirigami-addons,
kirigami2,
networkmanager-qt,
qtkeychain,
qtmultimedia,
qtquickcontrols2,
syndication,
taglib,
threadweaver,
}:
let
inherit (gst_all_1)
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
;
in
mkDerivation {
pname = "kasts";
nativeBuildInputs = [
cmake
extra-cmake-modules
wrapGAppsHook3
];
buildInputs = [
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gstreamer
kconfig
kcoreaddons
ki18n
kirigami-addons
kirigami2
networkmanager-qt
qtkeychain
qtmultimedia
qtquickcontrols2
syndication
taglib
threadweaver
];
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
dontWrapGApps = true;
meta = with lib; {
description = "Mobile podcast application";
mainProgram = "kasts";
homepage = "https://apps.kde.org/kasts/";
# https://invent.kde.org/plasma-mobile/kasts/-/tree/master/LICENSES
license = with licenses; [
bsd2
cc-by-sa-40
cc0
gpl2Only
gpl2Plus
gpl3Only
gpl3Plus
lgpl3Plus
];
maintainers = [ ];
};
}

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