lol

rPackages: add packagesWithRDepends

+32 -4
+32 -4
pkgs/development/r-modules/default.nix
··· 78 78 }) 79 79 ) overrides; 80 80 81 + # Overrides package definitions with new R dependencies. 82 + # For example, 83 + # 84 + # overrideRDepends { 85 + # foo = [ self.bar ] 86 + # } old 87 + # 88 + # results in 89 + # 90 + # { 91 + # foo = old.foo.overrideDerivation (attrs: { 92 + # nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ]; 93 + # propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ]; 94 + # }); 95 + # } 96 + overrideRDepends = overrides: old: 97 + lib.mapAttrs (name: value: 98 + (builtins.getAttr name old).overrideDerivation (attrs: { 99 + nativeBuildInputs = attrs.nativeBuildInputs ++ value; 100 + propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ value; 101 + }) 102 + ) overrides; 103 + 81 104 # Overrides package definition requiring X running to install. 82 105 # For example, 83 106 # ··· 158 181 let 159 182 old1 = old0 // (overrideRequireX packagesRequireingX old0); 160 183 old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1); 161 - old3 = old2 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old2); 162 - old4 = old3 // (overrideBuildInputs packagesWithBuildInputs old3); 163 - old5 = old4 // (overrideBroken brokenPackages old4); 164 - old = old5; 184 + old3 = old2 // (overrideRDepends packagesWithRDepends old2); 185 + old4 = old3 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old3); 186 + old5 = old4 // (overrideBuildInputs packagesWithBuildInputs old4); 187 + old6 = old5 // (overrideBroken brokenPackages old5); 188 + old = old6; 165 189 in old // (otherOverrides old new); 166 190 167 191 # Recursive override pattern. ··· 172 196 _self = import ./cran-packages.nix { inherit self derive; }; 173 197 174 198 # tweaks for the individual packages and "in self" follow 199 + 200 + packagesWithRDepends = { 201 + # sort -t '=' -k 2 202 + }; 175 203 176 204 packagesWithNativeBuildInputs = { 177 205 # sort -t '=' -k 2