nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 316 lines 9.3 kB view raw
1{ 2 stdenv, 3 pkgs, 4 lib, 5 chickenEggs, 6}: 7let 8 inherit (lib) addMetaAttrs; 9 addToNativeBuildInputs = pkg: old: { 10 nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ lib.toList pkg; 11 }; 12 addToBuildInputs = pkg: old: { 13 buildInputs = (old.buildInputs or [ ]) ++ lib.toList pkg; 14 }; 15 addToPropagatedBuildInputs = pkg: old: { 16 propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ lib.toList pkg; 17 }; 18 addPkgConfig = old: { 19 nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ]; 20 }; 21 addToBuildInputsWithPkgConfig = pkg: old: (addPkgConfig old) // (addToBuildInputs pkg old); 22 addToPropagatedBuildInputsWithPkgConfig = 23 pkg: old: (addPkgConfig old) // (addToPropagatedBuildInputs pkg old); 24 broken = addMetaAttrs { broken = true; }; 25 brokenOnDarwin = addMetaAttrs { broken = stdenv.hostPlatform.isDarwin; }; 26 addToCscOptions = opt: old: { 27 CSC_OPTIONS = lib.concatStringsSep " " ([ old.CSC_OPTIONS or "" ] ++ lib.toList opt); 28 }; 29in 30{ 31 breadline = addToBuildInputs pkgs.readline; 32 blas = addToBuildInputsWithPkgConfig pkgs.blas; 33 blosc = addToBuildInputs pkgs.c-blosc; 34 botan = broken; 35 cairo = 36 old: 37 (addToBuildInputsWithPkgConfig pkgs.cairo old) 38 // (addToPropagatedBuildInputs (with chickenEggs; [ 39 srfi-1 40 srfi-13 41 ]) old); 42 cmark = addToBuildInputs pkgs.cmark; 43 epoxy = 44 old: 45 (addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy old) 46 // { 47 env.NIX_CFLAGS_COMPILE = toString [ 48 ( 49 if stdenv.cc.isClang then 50 "-Wno-error=incompatible-function-pointer-types" 51 else 52 "-Wno-error=incompatible-pointer-types" 53 ) 54 "-Wno-error=int-conversion" 55 ]; 56 }; 57 espeak = addToBuildInputsWithPkgConfig pkgs.espeak-ng; 58 exif = addToBuildInputsWithPkgConfig pkgs.libexif; 59 expat = 60 old: 61 (addToBuildInputsWithPkgConfig pkgs.expat old) 62 // { 63 env.NIX_CFLAGS_COMPILE = toString [ 64 ( 65 if stdenv.cc.isClang then 66 "-Wno-error=incompatible-function-pointer-types" 67 else 68 "-Wno-error=incompatible-pointer-types" 69 ) 70 ]; 71 }; 72 ezxdisp = 73 old: 74 (addToBuildInputsWithPkgConfig pkgs.libx11 old) 75 // { 76 env.NIX_CFLAGS_COMPILE = toString [ 77 "-Wno-error=implicit-function-declaration" 78 ]; 79 }; 80 freetype = addToBuildInputsWithPkgConfig pkgs.freetype; 81 fuse = addToBuildInputsWithPkgConfig pkgs.fuse; 82 gl-math = old: { 83 env.NIX_CFLAGS_COMPILE = toString [ 84 "-Wno-error=incompatible-pointer-types" 85 ]; 86 }; 87 gl-utils = addPkgConfig; 88 glfw3 = addToBuildInputsWithPkgConfig pkgs.glfw3; 89 glls = addPkgConfig; 90 glut = 91 old: 92 (brokenOnDarwin old) 93 // lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) ( 94 addToCscOptions [ 95 "-I${(lib.getDev pkgs.libglut)}/include" 96 "-I${(lib.getDev pkgs.libGL)}/include" 97 "-I${(lib.getDev pkgs.libGLU)}/include" 98 ] old 99 ) 100 // (addToBuildInputs pkgs.libglut old); 101 icu = addToBuildInputsWithPkgConfig pkgs.icu; 102 imlib2 = addToBuildInputsWithPkgConfig pkgs.imlib2; 103 inotify = 104 old: 105 (addToBuildInputs (lib.optional stdenv.hostPlatform.isDarwin pkgs.libinotify-kqueue) old) 106 // lib.optionalAttrs stdenv.hostPlatform.isDarwin (addToCscOptions "-L -linotify" old); 107 leveldb = addToBuildInputs pkgs.leveldb; 108 magic = addToBuildInputs pkgs.file; 109 magic-pipes = addToBuildInputs pkgs.chickenPackages_5.chickenEggs.regex; 110 mdh = 111 old: 112 (addToBuildInputs pkgs.pcre old) 113 // { 114 env.NIX_CFLAGS_COMPILE = toString [ 115 "-Wno-error=implicit-function-declaration" 116 "-Wno-error=implicit-int" 117 ]; 118 }; 119 # missing dependency in upstream egg 120 mistie = addToPropagatedBuildInputs (with chickenEggs; [ srfi-1 ]); 121 mosquitto = addToPropagatedBuildInputs [ pkgs.mosquitto ]; 122 nanomsg = addToBuildInputs pkgs.nanomsg; 123 ncurses = addToBuildInputsWithPkgConfig [ pkgs.ncurses ]; 124 opencl = addToBuildInputs [ 125 pkgs.opencl-headers 126 pkgs.ocl-icd 127 ]; 128 openssl = addToBuildInputs pkgs.openssl; 129 plot = addToBuildInputs pkgs.plotutils; 130 postgresql = addToBuildInputsWithPkgConfig pkgs.libpq; 131 rocksdb = addToBuildInputs pkgs.rocksdb_8_3; 132 # missing dependency in upstream egg 133 s9fes-char-graphics-shapes = addToPropagatedBuildInputs ( 134 with chickenEggs; 135 [ 136 utf8 137 s9fes-char-graphics 138 ] 139 ); 140 # missing dependency in upstream egg 141 s9fes-char-graphics = addToPropagatedBuildInputs ( 142 with chickenEggs; 143 [ 144 srfi-1 145 utf8 146 record-variants 147 ] 148 ); 149 scheme2c-compatibility = addPkgConfig; 150 sdl-base = 151 old: 152 ( 153 (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL old) 154 // 155 # needed for sdl-config to be in PATH 156 (addToNativeBuildInputs pkgs.SDL old) 157 ); 158 sdl2 = 159 old: 160 ( 161 (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2 old) 162 // 163 # needed for sdl2-config to be in PATH 164 (addToNativeBuildInputs pkgs.SDL2 old) 165 ); 166 sdl2-image = 167 old: 168 ( 169 (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2_image old) 170 // 171 # needed for sdl2-config to be in PATH 172 (addToNativeBuildInputs pkgs.SDL2 old) 173 ); 174 sdl2-ttf = 175 old: 176 ( 177 (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2_ttf old) 178 // 179 # needed for sdl2-config to be in PATH 180 (addToNativeBuildInputs pkgs.SDL2 old) 181 ); 182 soil = addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy; 183 sqlite3 = addToBuildInputs pkgs.sqlite; 184 stemmer = old: (addToBuildInputs pkgs.libstemmer old) // (addToCscOptions "-L -lstemmer" old); 185 stfl = 186 old: (addToBuildInputs [ pkgs.ncurses pkgs.stfl ] old) // (addToCscOptions "-L -lncurses" old); 187 taglib = 188 old: 189 (addToBuildInputs [ pkgs.zlib pkgs.taglib_1 ] old) 190 // ( 191 # needed for tablib-config to be in PATH 192 addToNativeBuildInputs pkgs.taglib_1 old 193 ); 194 uuid-lib = addToBuildInputs pkgs.libuuid; 195 ws-client = addToBuildInputs pkgs.zlib; 196 xlib = addToPropagatedBuildInputs pkgs.libx11; 197 yaml = addToBuildInputs pkgs.libyaml; 198 zlib = addToBuildInputs pkgs.zlib; 199 zmq = addToBuildInputs pkgs.zeromq; 200 zstd = addToBuildInputs pkgs.zstd; 201 202 # less trivial fixes, should be upstreamed 203 git = 204 old: 205 (addToBuildInputsWithPkgConfig pkgs.libgit2 old) 206 // { 207 postPatch = '' 208 substituteInPlace libgit2.scm \ 209 --replace "asize" "reserved" 210 ''; 211 }; 212 lazy-ffi = 213 old: 214 (addToBuildInputs pkgs.libffi old) 215 // { 216 postPatch = '' 217 substituteInPlace lazy-ffi.scm \ 218 --replace "ffi/ffi.h" "ffi.h" 219 ''; 220 }; 221 opengl = 222 old: 223 (brokenOnDarwin old) 224 // (addToBuildInputsWithPkgConfig (lib.optionals (!stdenv.hostPlatform.isDarwin) [ 225 pkgs.libGL 226 pkgs.libGLU 227 ]) old) 228 // { 229 postPatch = '' 230 substituteInPlace opengl.egg \ 231 --replace 'framework ' 'framework" "' 232 ''; 233 }; 234 posix-shm = old: { 235 postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' 236 substituteInPlace build.scm \ 237 --replace "-lrt" "" 238 ''; 239 }; 240 241 # platform changes 242 pledge = addMetaAttrs { platforms = lib.platforms.openbsd; }; 243 unveil = addMetaAttrs { platforms = lib.platforms.openbsd; }; 244 245 # overrides for chicken 5.4 246 dbus = 247 old: 248 (addToBuildInputsWithPkgConfig [ pkgs.dbus ] old) 249 // { 250 # backticks in compiler options 251 # aren't supported anymore as of chicken 5.4, it seems. 252 preBuild = '' 253 substituteInPlace \ 254 dbus.egg dbus.setup \ 255 --replace '`pkg-config --cflags dbus-1`' "$(pkg-config --cflags dbus-1)" \ 256 --replace '`pkg-config --libs dbus-1`' "$(pkg-config --libs dbus-1)" 257 ''; 258 }; 259 math = old: { 260 # define-values is used but not imported 261 # some breaking change happened now it needs to be done 262 # explicitly? 263 preBuild = '' 264 substituteInPlace *.scm **/*.scm \ 265 --replace-quiet 'only chicken.base' 'only chicken.base define-values' 266 ''; 267 }; 268 socket = old: { 269 # chicken-do checks for changes to a file that doesn't exist 270 preBuild = '' 271 touch socket-config 272 ''; 273 }; 274 275 # mark broken 276 allegro = 277 old: 278 (broken old) 279 // { 280 # depends on 'chicken' egg, which doesn't exist, so we specify all the deps here (needs to be 281 # kept around even when marked as broken so that evaluation doesn't break due to the missing 282 # attribute). 283 propagatedBuildInputs = [ 284 chickenEggs.foreigners 285 ]; 286 }; 287 ephem = broken; 288 canvas-draw = broken; 289 coops-utils = broken; 290 crypt = broken; 291 gemini = broken; 292 gemini-client = broken; 293 hypergiant = broken; 294 iup = broken; 295 kiwi = broken; 296 lmdb-ht = broken; 297 mpi = broken; 298 pyffi = broken; 299 qt-light = broken; 300 sundials = broken; 301 svn-client = broken; 302 tokyocabinet = broken; 303 # webkitgtk_4_0 was removed 304 webview = broken; 305 306 # mark broken darwin 307 308 # The last successful Darwin Hydra build was in 2024 309 iconv = brokenOnDarwin; 310 # fatal error: 'mqueue.h' file not found 311 posix-mq = brokenOnDarwin; 312 # Undefined symbols for architecture arm64: "_pthread_setschedprio" 313 pthreads = brokenOnDarwin; 314 # error: use of undeclared identifier 'B4000000' 315 stty = brokenOnDarwin; 316}