at master 242 lines 7.8 kB view raw
1/* 2 # New packages 3 4 READ THIS FIRST 5 6 This module is for official packages in KDE Frameworks 5. All available packages 7 are 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/development/libraries/kde-frameworks` 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 config, 27 libsForQt5, 28 lib, 29 fetchurl, 30}: 31 32let 33 maintainers = with lib.maintainers; [ 34 ttuegel 35 nyanloutre 36 ]; 37 license = with lib.licenses; [ 38 lgpl21Plus 39 lgpl3Plus 40 bsd2 41 mit 42 gpl2Plus 43 gpl3Plus 44 fdl12Plus 45 ]; 46 47 srcs = import ./srcs.nix { 48 inherit fetchurl; 49 mirror = "mirror://kde"; 50 }; 51 52 mkDerivation = libsForQt5.callPackage ( 53 { 54 stdenv, 55 mkDerivation ? stdenv.mkDerivation, 56 }: 57 mkDerivation 58 ) { }; 59 60 packages = 61 self: 62 with self; 63 # SUPPORT 64 let 65 66 propagate = 67 out: 68 let 69 setupHook = 70 { writeScript }: 71 writeScript "setup-hook" '' 72 if [ "''${hookName:-}" != postHook ]; then 73 postHooks+=("source @dev@/nix-support/setup-hook") 74 else 75 # Propagate $dev so that this setup hook is propagated 76 # But only if there is a separate $dev output 77 if [ "''${outputDev:?}" != out ]; then 78 appendToVar propagatedBuildInputs "@dev@" 79 fi 80 fi 81 ''; 82 in 83 callPackage setupHook { }; 84 85 propagateBin = propagate "bin"; 86 87 callPackage = self.newScope { 88 89 inherit propagate propagateBin; 90 91 mkDerivation = 92 args: 93 let 94 95 inherit (args) pname; 96 inherit (srcs.${pname}) src version; 97 98 outputs = 99 args.outputs or [ 100 "bin" 101 "dev" 102 "out" 103 ]; 104 hasSeparateDev = lib.elem "dev" outputs; 105 106 defaultSetupHook = if hasSeparateDev then propagateBin else null; 107 setupHook = args.setupHook or defaultSetupHook; 108 109 meta = 110 let 111 meta = args.meta or { }; 112 in 113 meta 114 // { 115 homepage = meta.homepage or "https://kde.org"; 116 license = meta.license or license; 117 maintainers = (meta.maintainers or [ ]) ++ maintainers; 118 platforms = meta.platforms or lib.platforms.all; 119 }; 120 121 in 122 mkDerivation ( 123 args 124 // { 125 inherit 126 pname 127 meta 128 outputs 129 setupHook 130 src 131 version 132 ; 133 } 134 ); 135 136 }; 137 138 mkThrow = 139 name: throw "libsForQt5.${name} has been removed, as KDE Frameworks 5 has reached end of life."; 140 in 141 ( 142 { 143 extra-cmake-modules = callPackage ./extra-cmake-modules { }; 144 145 # TIER 1 146 attica = callPackage ./attica.nix { }; 147 breeze-icons = callPackage ./breeze-icons.nix { }; 148 karchive = callPackage ./karchive.nix { }; 149 kcalendarcore = callPackage ./kcalendarcore.nix { }; 150 kcodecs = callPackage ./kcodecs.nix { }; 151 kconfig = callPackage ./kconfig.nix { }; 152 kcoreaddons = callPackage ./kcoreaddons.nix { }; 153 kdbusaddons = callPackage ./kdbusaddons.nix { }; 154 kdnssd = callPackage ./kdnssd.nix { }; 155 kguiaddons = callPackage ./kguiaddons.nix { }; 156 ki18n = callPackage ./ki18n.nix { }; 157 kidletime = callPackage ./kidletime.nix { }; 158 kirigami2 = callPackage ./kirigami2.nix { }; 159 kitemmodels = callPackage ./kitemmodels.nix { }; 160 kitemviews = callPackage ./kitemviews.nix { }; 161 kplotting = callPackage ./kplotting.nix { }; 162 kwayland = callPackage ./kwayland.nix { }; 163 kwidgetsaddons = callPackage ./kwidgetsaddons.nix { }; 164 kwindowsystem = callPackage ./kwindowsystem { }; 165 solid = callPackage ./solid { }; 166 sonnet = callPackage ./sonnet.nix { }; 167 syntax-highlighting = callPackage ./syntax-highlighting.nix { }; 168 169 # TIER 2 170 kactivities = callPackage ./kactivities.nix { }; 171 kauth = callPackage ./kauth { }; 172 kcompletion = callPackage ./kcompletion.nix { }; 173 kcrash = callPackage ./kcrash.nix { }; 174 kdoctools = callPackage ./kdoctools { }; 175 kjobwidgets = callPackage ./kjobwidgets.nix { }; 176 knotifications = callPackage ./knotifications.nix { }; 177 kpackage = callPackage ./kpackage { }; 178 kunitconversion = callPackage ./kunitconversion.nix { }; 179 syndication = callPackage ./syndication.nix { }; 180 181 # TIER 3 182 kactivities-stats = callPackage ./kactivities-stats.nix { }; 183 kbookmarks = callPackage ./kbookmarks.nix { }; 184 kcmutils = callPackage ./kcmutils.nix { }; 185 kconfigwidgets = callPackage ./kconfigwidgets.nix { }; 186 kdeclarative = callPackage ./kdeclarative.nix { }; 187 kded = callPackage ./kded.nix { }; 188 kemoticons = callPackage ./kemoticons.nix { }; 189 kglobalaccel = callPackage ./kglobalaccel.nix { }; 190 kiconthemes = callPackage ./kiconthemes { }; 191 kinit = callPackage ./kinit { }; 192 kio = callPackage ./kio { }; 193 knewstuff = callPackage ./knewstuff { }; 194 knotifyconfig = callPackage ./knotifyconfig.nix { }; 195 kparts = callPackage ./kparts.nix { }; 196 kservice = callPackage ./kservice { }; 197 ktextwidgets = callPackage ./ktextwidgets.nix { }; 198 kwallet = callPackage ./kwallet.nix { }; 199 kxmlgui = callPackage ./kxmlgui.nix { }; 200 plasma-framework = callPackage ./plasma-framework.nix { }; 201 202 # TIER 4 203 frameworkintegration = callPackage ./frameworkintegration.nix { }; 204 205 # PORTING AIDS 206 kdelibs4support = callPackage ./kdelibs4support { }; 207 kdesignerplugin = callPackage ./kdesignerplugin.nix { }; 208 } 209 // lib.optionalAttrs config.allowAliases { 210 baloo = mkThrow "baloo"; 211 bluez-qt = mkThrow "bluez-qt"; 212 kapidox = mkThrow "kapidox"; 213 kcontacts = mkThrow "kcontacts"; 214 kdav = mkThrow "kdav"; 215 kdesu = mkThrow "kdesu"; 216 kfilemetadata = mkThrow "kfilemetadata"; 217 kholidays = mkThrow "kholidays"; 218 khtml = mkThrow "kthml"; 219 kimageformats = mkThrow "kimageformats"; 220 kjs = mkThrow "kjs"; 221 kjsembed = mkThrow "kjsembed"; 222 kmediaplayer = mkThrow "kmediaplayer"; 223 kpeople = mkThrow "kpeople"; 224 kpty = mkThrow "kpty"; 225 kpurpose = mkThrow "kpurpose"; 226 kquickcharts = mkThrow "kquickcharts"; 227 kross = mkThrow "kross"; 228 krunner = mkThrow "krunner"; 229 ktexteditor = mkThrow "ktexteditor"; 230 kxmlrpcclient = mkThrow "kxmlrpcclient"; 231 modemmanager-qt = mkThrow "modemmanager-qt"; 232 networkmanager-qt = mkThrow "networkmanager-qt"; 233 oxygen-icons = mkThrow "oxygen-icons"; 234 oxygen-icons5 = mkThrow "oxygen-icons"; 235 prison = mkThrow "prison"; 236 qqc2-desktop-style = mkThrow "qqc2-desktop-style"; 237 threadweaver = mkThrow "threadweaver"; 238 } 239 ); 240 241in 242lib.makeScope libsForQt5.newScope packages