Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 218 lines 8.2 kB view raw
1/* 2 # New packages 3 4 READ THIS FIRST 5 6 This module is for official packages in KDE Plasma 5. All available packages are 7 listed in `./srcs.nix`, although a few are not yet packaged in Nixpkgs (see 8 below). 9 10 IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE. 11 12 Many of the packages released upstream are not yet built in Nixpkgs due to lack 13 of demand. To add a Nixpkgs build for an upstream package, copy one of the 14 existing packages here and modify it as necessary. 15 16 # Updates 17 18 1. Update the URL in `./fetch.sh`. 19 2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5` 20 from the top of the Nixpkgs tree. 21 3. Use `nox-review wip` to check that everything builds. 22 4. Commit the changes and open a pull request. 23*/ 24 25{ 26 libsForQt5, 27 lib, 28 config, 29 fetchurl, 30 gsettings-desktop-schemas, 31}: 32 33let 34 maintainers = with lib.maintainers; [ 35 ttuegel 36 nyanloutre 37 ]; 38 license = with lib.licenses; [ 39 lgpl21Plus 40 lgpl3Plus 41 bsd2 42 mit 43 gpl2Plus 44 gpl3Plus 45 fdl12Plus 46 ]; 47 48 srcs = import ./srcs.nix { 49 inherit fetchurl; 50 mirror = "mirror://kde"; 51 }; 52 53 qtStdenv = libsForQt5.callPackage ({ stdenv }: stdenv) { }; 54 55 packages = 56 self: 57 let 58 59 propagate = 60 out: 61 let 62 setupHook = 63 { writeScript }: 64 writeScript "setup-hook" '' 65 if [[ "''${hookName-}" != postHook ]]; then 66 postHooks+=("source @dev@/nix-support/setup-hook") 67 else 68 # Propagate $${out} output 69 appendToVar propagatedUserEnvPkgs "@${out}@" 70 71 if [ -z "$outputDev" ]; then 72 echo "error: \$outputDev is unset!" >&2 73 exit 1 74 fi 75 76 # Propagate $dev so that this setup hook is propagated 77 # But only if there is a separate $dev output 78 if [ "$outputDev" != out ]; then 79 appendToVar propagatedBuildInputs "@dev@" 80 fi 81 fi 82 ''; 83 in 84 callPackage setupHook { }; 85 86 propagateBin = propagate "bin"; 87 88 callPackage = self.newScope { 89 inherit propagate propagateBin; 90 91 mkDerivation = 92 args: 93 let 94 inherit (args) pname; 95 sname = args.sname or pname; 96 inherit (srcs.${sname}) src version; 97 98 outputs = args.outputs or [ "out" ]; 99 hasBin = lib.elem "bin" outputs; 100 hasDev = lib.elem "dev" outputs; 101 102 defaultSetupHook = if hasBin && hasDev then propagateBin else null; 103 setupHook = args.setupHook or defaultSetupHook; 104 nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ libsForQt5.wrapQtAppsHook ]; 105 106 meta = 107 let 108 meta = args.meta or { }; 109 in 110 meta 111 // { 112 homepage = meta.homepage or "http://www.kde.org"; 113 license = meta.license or license; 114 maintainers = (meta.maintainers or [ ]) ++ maintainers; 115 platforms = meta.platforms or lib.platforms.linux; 116 }; 117 in 118 qtStdenv.mkDerivation ( 119 args 120 // { 121 inherit 122 pname 123 version 124 meta 125 outputs 126 setupHook 127 src 128 nativeBuildInputs 129 ; 130 } 131 ); 132 }; 133 134 in 135 { 136 aura-browser = callPackage ./aura-browser.nix { }; 137 bluedevil = callPackage ./bluedevil.nix { }; 138 breeze-gtk = callPackage ./breeze-gtk.nix { }; 139 breeze-qt5 = callPackage ./breeze-qt5.nix { }; 140 breeze-grub = callPackage ./breeze-grub.nix { }; 141 breeze-plymouth = callPackage ./breeze-plymouth { }; 142 discover = callPackage ./discover.nix { }; 143 flatpak-kcm = callPackage ./flatpak-kcm.nix { }; 144 kactivitymanagerd = callPackage ./kactivitymanagerd.nix { }; 145 kde-cli-tools = callPackage ./kde-cli-tools.nix { }; 146 kde-gtk-config = callPackage ./kde-gtk-config { inherit gsettings-desktop-schemas; }; 147 kdecoration = callPackage ./kdecoration.nix { }; 148 kdeplasma-addons = callPackage ./kdeplasma-addons.nix { }; 149 kgamma5 = callPackage ./kgamma5.nix { }; 150 khotkeys = callPackage ./khotkeys.nix { }; 151 kinfocenter = callPackage ./kinfocenter { }; 152 kmenuedit = callPackage ./kmenuedit.nix { }; 153 kpipewire = callPackage ./kpipewire.nix { }; 154 kscreen = callPackage ./kscreen.nix { }; 155 kscreenlocker = callPackage ./kscreenlocker.nix { }; 156 ksshaskpass = callPackage ./ksshaskpass.nix { }; 157 ksystemstats = callPackage ./ksystemstats.nix { }; 158 kwallet-pam = callPackage ./kwallet-pam.nix { }; 159 kwayland-integration = callPackage ./kwayland-integration.nix { }; 160 kwin = callPackage ./kwin { }; 161 kwrited = callPackage ./kwrited.nix { }; 162 layer-shell-qt = callPackage ./layer-shell-qt.nix { }; 163 libkscreen = callPackage ./libkscreen { }; 164 libksysguard = callPackage ./libksysguard { }; 165 milou = callPackage ./milou.nix { }; 166 oxygen = callPackage ./oxygen.nix { }; 167 oxygen-sounds = callPackage ./oxygen-sounds.nix { }; 168 plank-player = callPackage ./plank-player.nix { }; 169 plasma-bigscreen = callPackage ./plasma-bigscreen.nix { }; 170 plasma-browser-integration = callPackage ./plasma-browser-integration.nix { }; 171 plasma-desktop = callPackage ./plasma-desktop { }; 172 plasma-disks = callPackage ./plasma-disks.nix { }; 173 plasma-firewall = callPackage ./plasma-firewall.nix { }; 174 plasma-integration = callPackage ./plasma-integration { }; 175 plasma-mobile = callPackage ./plasma-mobile { }; 176 plasma-nano = callPackage ./plasma-nano { }; 177 plasma-nm = callPackage ./plasma-nm { }; 178 plasma-pa = callPackage ./plasma-pa.nix { }; 179 plasma-remotecontrollers = callPackage ./plasma-remotecontrollers.nix { }; 180 plasma-sdk = callPackage ./plasma-sdk.nix { }; 181 plasma-systemmonitor = callPackage ./plasma-systemmonitor.nix { }; 182 plasma-thunderbolt = callPackage ./plasma-thunderbolt.nix { }; 183 plasma-vault = callPackage ./plasma-vault { }; 184 plasma-welcome = callPackage ./plasma-welcome.nix { }; 185 plasma-workspace = callPackage ./plasma-workspace { }; 186 plasma-workspace-wallpapers = callPackage ./plasma-workspace-wallpapers.nix { }; 187 polkit-kde-agent = callPackage ./polkit-kde-agent.nix { }; 188 powerdevil = callPackage ./powerdevil.nix { }; 189 qqc2-breeze-style = callPackage ./qqc2-breeze-style.nix { }; 190 sddm-kcm = callPackage ./sddm-kcm.nix { }; 191 systemsettings = callPackage ./systemsettings.nix { }; 192 xdg-desktop-portal-kde = callPackage ./xdg-desktop-portal-kde.nix { }; 193 194 thirdParty = 195 let 196 inherit (libsForQt5) callPackage; 197 in 198 { 199 plasma-applet-caffeine-plus = callPackage ./3rdparty/addons/caffeine-plus.nix { }; 200 plasma-applet-virtual-desktop-bar = callPackage ./3rdparty/addons/virtual-desktop-bar.nix { }; 201 bismuth = callPackage ./3rdparty/addons/bismuth { }; 202 kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { }; 203 kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { }; 204 krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { }; 205 krunner-ssh = callPackage ./3rdparty/addons/krunner-ssh.nix { }; 206 krunner-symbols = callPackage ./3rdparty/addons/krunner-symbols.nix { }; 207 kzones = callPackage ./3rdparty/kwin/scripts/kzones.nix { }; 208 lightly = callPackage ./3rdparty/lightly { }; 209 parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { }; 210 }; 211 212 } 213 // lib.optionalAttrs config.allowAliases { 214 ksysguard = throw "ksysguard has been replaced with plasma-systemmonitor"; 215 plasma-phone-components = throw "'plasma-phone-components' has been renamed to/replaced by 'plasma-mobile'"; 216 }; 217in 218lib.makeScope libsForQt5.newScope packages