Merge master into staging-next

authored by github-actions[bot] and committed by GitHub fbb4f932 3b76a64c

+1094 -747
+609 -609
doc/languages-frameworks/python.section.md
··· 1 # Python {#python} 2 3 ## User Guide {#user-guide} 4 5 ### Using Python {#using-python} ··· 993 example we use `buildPythonPackage` that is part of the set `python3Packages`, 994 and in this case the `python3` interpreter is automatically used. 995 996 - ## Reference {#reference} 997 - 998 - ### Interpreters {#interpreters} 999 - 1000 - | Package | Aliases | Interpreter | 1001 - |------------|-----------------|-------------| 1002 - | python27 | python2, python | CPython 2.7 | 1003 - | python38 | | CPython 3.8 | 1004 - | python39 | | CPython 3.9 | 1005 - | python310 | python3 | CPython 3.10 | 1006 - | python311 | | CPython 3.11 | 1007 - | python312 | | CPython 3.12 | 1008 - | pypy27 | pypy2, pypy | PyPy2.7 | 1009 - | pypy39 | pypy3 | PyPy 3.9 | 1010 - 1011 - The Nix expressions for the interpreters can be found in 1012 - `pkgs/development/interpreters/python`. 1013 - 1014 - All packages depending on any Python interpreter get appended 1015 - `out/{python.sitePackages}` to `$PYTHONPATH` if such directory 1016 - exists. 1017 - 1018 - #### Missing `tkinter` module standard library {#missing-tkinter-module-standard-library} 1019 - 1020 - To reduce closure size the `Tkinter`/`tkinter` is available as a separate package, `pythonPackages.tkinter`. 1021 - 1022 - #### Attributes on interpreters packages {#attributes-on-interpreters-packages} 1023 - 1024 - Each interpreter has the following attributes: 1025 - 1026 - - `libPrefix`. Name of the folder in `${python}/lib/` for corresponding interpreter. 1027 - - `interpreter`. Alias for `${python}/bin/${executable}`. 1028 - - `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation. 1029 - - `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation. 1030 - - `sitePackages`. Alias for `lib/${libPrefix}/site-packages`. 1031 - - `executable`. Name of the interpreter executable, e.g. `python3.10`. 1032 - - `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`. 1033 - 1034 - ### Optimizations {#optimizations} 1035 - 1036 - The Python interpreters are by default not built with optimizations enabled, because 1037 - the builds are in that case not reproducible. To enable optimizations, override the 1038 - interpreter of interest, e.g using 1039 - 1040 - ``` 1041 - let 1042 - pkgs = import ./. {}; 1043 - mypython = pkgs.python3.override { 1044 - enableOptimizations = true; 1045 - reproducibleBuild = false; 1046 - self = mypython; 1047 - }; 1048 - in mypython 1049 - ``` 1050 - 1051 - ### Building packages and applications {#building-packages-and-applications} 1052 - 1053 - Python libraries and applications that use `setuptools` or 1054 - `distutils` are typically built with respectively the `buildPythonPackage` and 1055 - `buildPythonApplication` functions. These two functions also support installing a `wheel`. 1056 - 1057 - All Python packages reside in `pkgs/top-level/python-packages.nix` and all 1058 - applications elsewhere. In case a package is used as both a library and an 1059 - application, then the package should be in `pkgs/top-level/python-packages.nix` 1060 - since only those packages are made available for all interpreter versions. The 1061 - preferred location for library expressions is in 1062 - `pkgs/development/python-modules`. It is important that these packages are 1063 - called from `pkgs/top-level/python-packages.nix` and not elsewhere, to guarantee 1064 - the right version of the package is built. 1065 - 1066 - Based on the packages defined in `pkgs/top-level/python-packages.nix` an 1067 - attribute set is created for each available Python interpreter. The available 1068 - sets are 1069 - 1070 - * `pkgs.python27Packages` 1071 - * `pkgs.python3Packages` 1072 - * `pkgs.python38Packages` 1073 - * `pkgs.python39Packages` 1074 - * `pkgs.python310Packages` 1075 - * `pkgs.python311Packages` 1076 - * `pkgs.pypyPackages` 1077 - 1078 - and the aliases 1079 - 1080 - * `pkgs.python2Packages` pointing to `pkgs.python27Packages` 1081 - * `pkgs.python3Packages` pointing to `pkgs.python310Packages` 1082 - * `pkgs.pythonPackages` pointing to `pkgs.python2Packages` 1083 - 1084 - #### `buildPythonPackage` function {#buildpythonpackage-function} 1085 - 1086 - The `buildPythonPackage` function is implemented in 1087 - `pkgs/development/interpreters/python/mk-python-derivation.nix` 1088 - using setup hooks. 1089 - 1090 - The following is an example: 1091 - 1092 - ```nix 1093 - { lib 1094 - , buildPythonPackage 1095 - , fetchPypi 1096 - 1097 - # build-system 1098 - , setuptools-scm 1099 - 1100 - # dependencies 1101 - , attrs 1102 - , pluggy 1103 - , py 1104 - , setuptools 1105 - , six 1106 - 1107 - # tests 1108 - , hypothesis 1109 - }: 1110 - 1111 - buildPythonPackage rec { 1112 - pname = "pytest"; 1113 - version = "3.3.1"; 1114 - format = "setuptools"; 1115 - 1116 - src = fetchPypi { 1117 - inherit pname version; 1118 - hash = "sha256-z4Q23FnYaVNG/NOrKW3kZCXsqwDWQJbOvnn7Ueyy65M="; 1119 - }; 1120 - 1121 - postPatch = '' 1122 - # don't test bash builtins 1123 - rm testing/test_argcomplete.py 1124 - ''; 1125 - 1126 - nativeBuildInputs = [ 1127 - setuptools-scm 1128 - ]; 1129 - 1130 - propagatedBuildInputs = [ 1131 - attrs 1132 - py 1133 - setuptools 1134 - six 1135 - pluggy 1136 - ]; 1137 - 1138 - nativeCheckInputs = [ 1139 - hypothesis 1140 - ]; 1141 - 1142 - meta = with lib; { 1143 - changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; 1144 - description = "Framework for writing tests"; 1145 - homepage = "https://github.com/pytest-dev/pytest"; 1146 - license = licenses.mit; 1147 - maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; 1148 - }; 1149 - } 1150 - ``` 1151 - 1152 - The `buildPythonPackage` mainly does four things: 1153 - 1154 - * In the `buildPhase`, it calls `${python.pythonForBuild.interpreter} setup.py bdist_wheel` to 1155 - build a wheel binary zipfile. 1156 - * In the `installPhase`, it installs the wheel file using `pip install *.whl`. 1157 - * In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to 1158 - wrap all programs in the `$out/bin/*` directory to include `$PATH` 1159 - environment variable and add dependent libraries to script's `sys.path`. 1160 - * In the `installCheck` phase, `${python.interpreter} setup.py test` is run. 1161 - 1162 - By default tests are run because `doCheck = true`. Test dependencies, like 1163 - e.g. the test runner, should be added to `nativeCheckInputs`. 1164 - 1165 - By default `meta.platforms` is set to the same value 1166 - as the interpreter unless overridden otherwise. 1167 - 1168 - ##### `buildPythonPackage` parameters {#buildpythonpackage-parameters} 1169 - 1170 - All parameters from `stdenv.mkDerivation` function are still supported. The 1171 - following are specific to `buildPythonPackage`: 1172 - 1173 - * `catchConflicts ? true`: If `true`, abort package build if a package name 1174 - appears more than once in dependency tree. Default is `true`. 1175 - * `disabled ? false`: If `true`, package is not built for the particular Python 1176 - interpreter version. 1177 - * `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs. 1178 - * `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment 1179 - variable in wrapped programs. 1180 - * `format ? "setuptools"`: Format of the source. Valid options are 1181 - `"setuptools"`, `"pyproject"`, `"flit"`, `"wheel"`, and `"other"`. 1182 - `"setuptools"` is for when the source has a `setup.py` and `setuptools` is 1183 - used to build a wheel, `flit`, in case `flit` should be used to build a wheel, 1184 - and `wheel` in case a wheel is provided. Use `other` when a custom 1185 - `buildPhase` and/or `installPhase` is needed. 1186 - * `makeWrapperArgs ? []`: A list of strings. Arguments to be passed to 1187 - `makeWrapper`, which wraps generated binaries. By default, the arguments to 1188 - `makeWrapper` set `PATH` and `PYTHONPATH` environment variables before calling 1189 - the binary. Additional arguments here can allow a developer to set environment 1190 - variables which will be available when the binary is run. For example, 1191 - `makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`. 1192 - * `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this 1193 - defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications to `""`. 1194 - * `pipInstallFlags ? []`: A list of strings. Arguments to be passed to `pip 1195 - install`. To pass options to `python setup.py install`, use 1196 - `--install-option`. E.g., `pipInstallFlags=["--install-option='--cpp_implementation'"]`. 1197 - * `pipBuildFlags ? []`: A list of strings. Arguments to be passed to `pip wheel`. 1198 - * `pypaBuildFlags ? []`: A list of strings. Arguments to be passed to `python -m build --wheel`. 1199 - * `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages 1200 - in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`). 1201 - * `preShellHook`: Hook to execute commands before `shellHook`. 1202 - * `postShellHook`: Hook to execute commands after `shellHook`. 1203 - * `removeBinByteCode ? true`: Remove bytecode from `/bin`. Bytecode is only 1204 - created when the filenames end with `.py`. 1205 - * `setupPyGlobalFlags ? []`: List of flags passed to `setup.py` command. 1206 - * `setupPyBuildFlags ? []`: List of flags passed to `setup.py build_ext` command. 1207 - 1208 - The `stdenv.mkDerivation` function accepts various parameters for describing 1209 - build inputs (see "Specifying dependencies"). The following are of special 1210 - interest for Python packages, either because these are primarily used, or 1211 - because their behaviour is different: 1212 - 1213 - * `nativeBuildInputs ? []`: Build-time only dependencies. Typically executables 1214 - as well as the items listed in `setup_requires`. 1215 - * `buildInputs ? []`: Build and/or run-time dependencies that need to be 1216 - compiled for the host machine. Typically non-Python libraries which are being 1217 - linked. 1218 - * `nativeCheckInputs ? []`: Dependencies needed for running the `checkPhase`. These 1219 - are added to `nativeBuildInputs` when `doCheck = true`. Items listed in 1220 - `tests_require` go here. 1221 - * `propagatedBuildInputs ? []`: Aside from propagating dependencies, 1222 - `buildPythonPackage` also injects code into and wraps executables with the 1223 - paths included in this list. Items listed in `install_requires` go here. 1224 - 1225 - ##### Overriding Python packages {#overriding-python-packages} 1226 - 1227 - The `buildPythonPackage` function has a `overridePythonAttrs` method that can be 1228 - used to override the package. In the following example we create an environment 1229 - where we have the `blaze` package using an older version of `pandas`. We 1230 - override first the Python interpreter and pass `packageOverrides` which contains 1231 - the overrides for packages in the package set. 1232 - 1233 - ```nix 1234 - with import <nixpkgs> {}; 1235 - 1236 - (let 1237 - python = let 1238 - packageOverrides = self: super: { 1239 - pandas = super.pandas.overridePythonAttrs(old: rec { 1240 - version = "0.19.1"; 1241 - src = fetchPypi { 1242 - pname = "pandas"; 1243 - inherit version; 1244 - hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE="; 1245 - }; 1246 - }); 1247 - }; 1248 - in pkgs.python3.override {inherit packageOverrides; self = python;}; 1249 - 1250 - in python.withPackages(ps: [ ps.blaze ])).env 1251 - ``` 1252 - 1253 - The next example shows a non trivial overriding of the `blas` implementation to 1254 - be used through out all of the Python package set: 1255 - 1256 - ```nix 1257 - python3MyBlas = pkgs.python3.override { 1258 - packageOverrides = self: super: { 1259 - # We need toPythonModule for the package set to evaluate this 1260 - blas = super.toPythonModule(super.pkgs.blas.override { 1261 - blasProvider = super.pkgs.mkl; 1262 - }); 1263 - lapack = super.toPythonModule(super.pkgs.lapack.override { 1264 - lapackProvider = super.pkgs.mkl; 1265 - }); 1266 - }; 1267 - }; 1268 - ``` 1269 - 1270 - This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations. 1271 - Note that using simply `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in 1272 - compilation issues, because scipy dependencies need to use the same blas implementation as well. 1273 - 1274 - #### Optional extra dependencies {#python-optional-dependencies} 1275 - 1276 - Some packages define optional dependencies for additional features. With 1277 - `setuptools` this is called `extras_require` and `flit` calls it 1278 - `extras-require`, while PEP 621 calls these `optional-dependencies`. A 1279 - method for supporting this is by declaring the extras of a package in its 1280 - `passthru`, e.g. in case of the package `dask` 1281 - 1282 - ```nix 1283 - passthru.optional-dependencies = { 1284 - complete = [ distributed ]; 1285 - }; 1286 - ``` 1287 - 1288 - and letting the package requiring the extra add the list to its dependencies 1289 - 1290 - ```nix 1291 - propagatedBuildInputs = [ 1292 - ... 1293 - ] ++ dask.optional-dependencies.complete; 1294 - ``` 1295 - 1296 - Note this method is preferred over adding parameters to builders, as that can 1297 - result in packages depending on different variants and thereby causing 1298 - collisions. 1299 - 1300 - #### `buildPythonApplication` function {#buildpythonapplication-function} 1301 - 1302 - The `buildPythonApplication` function is practically the same as 1303 - `buildPythonPackage`. The main purpose of this function is to build a Python 1304 - package where one is interested only in the executables, and not importable 1305 - modules. For that reason, when adding this package to a `python.buildEnv`, the 1306 - modules won't be made available. 1307 - 1308 - Another difference is that `buildPythonPackage` by default prefixes the names of 1309 - the packages with the version of the interpreter. Because this is irrelevant for 1310 - applications, the prefix is omitted. 1311 - 1312 - When packaging a Python application with `buildPythonApplication`, it should be 1313 - called with `callPackage` and passed `python` or `pythonPackages` (possibly 1314 - specifying an interpreter version), like this: 1315 - 1316 - ```nix 1317 - { lib 1318 - , python3 1319 - , fetchPypi 1320 - }: 1321 - 1322 - python3.pkgs.buildPythonApplication rec { 1323 - pname = "luigi"; 1324 - version = "2.7.9"; 1325 - format = "setuptools"; 1326 - 1327 - src = fetchPypi { 1328 - inherit pname version; 1329 - hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw="; 1330 - }; 1331 - 1332 - propagatedBuildInputs = with python3.pkgs; [ 1333 - tornado 1334 - python-daemon 1335 - ]; 1336 - 1337 - meta = with lib; { 1338 - ... 1339 - }; 1340 - } 1341 - ``` 1342 - 1343 - This is then added to `all-packages.nix` just as any other application would be. 1344 - 1345 - ```nix 1346 - luigi = callPackage ../applications/networking/cluster/luigi { }; 1347 - ``` 1348 - 1349 - Since the package is an application, a consumer doesn't need to care about 1350 - Python versions or modules, which is why they don't go in `pythonPackages`. 1351 - 1352 - #### `toPythonApplication` function {#topythonapplication-function} 1353 - 1354 - A distinction is made between applications and libraries, however, sometimes a 1355 - package is used as both. In this case the package is added as a library to 1356 - `python-packages.nix` and as an application to `all-packages.nix`. To reduce 1357 - duplication the `toPythonApplication` can be used to convert a library to an 1358 - application. 1359 - 1360 - The Nix expression shall use `buildPythonPackage` and be called from 1361 - `python-packages.nix`. A reference shall be created from `all-packages.nix` to 1362 - the attribute in `python-packages.nix`, and the `toPythonApplication` shall be 1363 - applied to the reference: 1364 - 1365 - ```nix 1366 - youtube-dl = with pythonPackages; toPythonApplication youtube-dl; 1367 - ``` 1368 - 1369 - #### `toPythonModule` function {#topythonmodule-function} 1370 - 1371 - In some cases, such as bindings, a package is created using 1372 - `stdenv.mkDerivation` and added as attribute in `all-packages.nix`. The Python 1373 - bindings should be made available from `python-packages.nix`. The 1374 - `toPythonModule` function takes a derivation and makes certain Python-specific 1375 - modifications. 1376 - 1377 - ```nix 1378 - opencv = toPythonModule (pkgs.opencv.override { 1379 - enablePython = true; 1380 - pythonPackages = self; 1381 - }); 1382 - ``` 1383 - 1384 - Do pay attention to passing in the right Python version! 1385 - 1386 - #### `python.buildEnv` function {#python.buildenv-function} 1387 - 1388 - Python environments can be created using the low-level `pkgs.buildEnv` function. 1389 - This example shows how to create an environment that has the Pyramid Web Framework. 1390 - Saving the following as `default.nix` 1391 - 1392 - ```nix 1393 - with import <nixpkgs> {}; 1394 - 1395 - python.buildEnv.override { 1396 - extraLibs = [ pythonPackages.pyramid ]; 1397 - ignoreCollisions = true; 1398 - } 1399 - ``` 1400 - 1401 - and running `nix-build` will create 1402 - 1403 - ``` 1404 - /nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env 1405 - ``` 1406 - 1407 - with wrapped binaries in `bin/`. 1408 - 1409 - You can also use the `env` attribute to create local environments with needed 1410 - packages installed. This is somewhat comparable to `virtualenv`. For example, 1411 - running `nix-shell` with the following `shell.nix` 1412 - 1413 - ```nix 1414 - with import <nixpkgs> {}; 1415 - 1416 - (python3.buildEnv.override { 1417 - extraLibs = with python3Packages; [ 1418 - numpy 1419 - requests 1420 - ]; 1421 - }).env 1422 - ``` 1423 - 1424 - will drop you into a shell where Python will have the 1425 - specified packages in its path. 1426 - 1427 - ##### `python.buildEnv` arguments {#python.buildenv-arguments} 1428 - 1429 - 1430 - * `extraLibs`: List of packages installed inside the environment. 1431 - * `postBuild`: Shell command executed after the build of environment. 1432 - * `ignoreCollisions`: Ignore file collisions inside the environment (default is `false`). 1433 - * `permitUserSite`: Skip setting the `PYTHONNOUSERSITE` environment variable in 1434 - wrapped binaries in the environment. 1435 - 1436 - #### `python.withPackages` function {#python.withpackages-function} 1437 - 1438 - The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality. 1439 - It takes a function as an argument that is passed the set of python packages and returns the list 1440 - of the packages to be included in the environment. Using the `withPackages` function, the previous 1441 - example for the Pyramid Web Framework environment can be written like this: 1442 - 1443 - ```nix 1444 - with import <nixpkgs> {}; 1445 - 1446 - python.withPackages (ps: [ ps.pyramid ]) 1447 - ``` 1448 - 1449 - `withPackages` passes the correct package set for the specific interpreter 1450 - version as an argument to the function. In the above example, `ps` equals 1451 - `pythonPackages`. But you can also easily switch to using python3: 1452 - 1453 - ```nix 1454 - with import <nixpkgs> {}; 1455 - 1456 - python3.withPackages (ps: [ ps.pyramid ]) 1457 - ``` 1458 - 1459 - Now, `ps` is set to `python3Packages`, matching the version of the interpreter. 1460 - 1461 - As `python.withPackages` simply uses `python.buildEnv` under the hood, it also 1462 - supports the `env` attribute. The `shell.nix` file from the previous section can 1463 - thus be also written like this: 1464 - 1465 - ```nix 1466 - with import <nixpkgs> {}; 1467 - 1468 - (python3.withPackages (ps: with ps; [ 1469 - numpy 1470 - requests 1471 - ])).env 1472 - ``` 1473 - 1474 - In contrast to `python.buildEnv`, `python.withPackages` does not support the 1475 - more advanced options such as `ignoreCollisions = true` or `postBuild`. If you 1476 - need them, you have to use `python.buildEnv`. 1477 - 1478 - Python 2 namespace packages may provide `__init__.py` that collide. In that case 1479 - `python.buildEnv` should be used with `ignoreCollisions = true`. 1480 - 1481 - #### Setup hooks {#setup-hooks} 1482 - 1483 - The following are setup hooks specifically for Python packages. Most of these 1484 - are used in `buildPythonPackage`. 1485 - 1486 - - `eggUnpackhook` to move an egg to the correct folder so it can be installed 1487 - with the `eggInstallHook` 1488 - - `eggBuildHook` to skip building for eggs. 1489 - - `eggInstallHook` to install eggs. 1490 - - `flitBuildHook` to build a wheel using `flit`. 1491 - - `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system 1492 - (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`. 1493 - - `pypaBuildHook` to build a wheel using 1494 - [`pypa/build`](https://pypa-build.readthedocs.io/en/latest/index.html) and 1495 - PEP 517/518. Note a build system (e.g. `setuptools` or `flit`) should still 1496 - be added as `nativeBuildInput`. 1497 - - `pipInstallHook` to install wheels. 1498 - - `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook). 1499 - - `pythonCatchConflictsHook` to check whether a Python package is not already existing. 1500 - - `pythonImportsCheckHook` to check whether importing the listed modules works. 1501 - - `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package. 1502 - See [example usage](#using-pythonrelaxdepshook). 1503 - - `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder. 1504 - - `setuptoolsBuildHook` to build a wheel using `setuptools`. 1505 - - `setuptoolsCheckHook` to run tests with `python setup.py test`. 1506 - - `sphinxHook` to build documentation and manpages using Sphinx. 1507 - - `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A 1508 - `venv` is created if it does not yet exist. `postVenvCreation` can be used to 1509 - to run commands only after venv is first created. 1510 - - `wheelUnpackHook` to move a wheel to the correct folder so it can be installed 1511 - with the `pipInstallHook`. 1512 - - `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook). 1513 - 1514 - ### Development mode {#development-mode} 1515 - 1516 - Development or editable mode is supported. To develop Python packages 1517 - `buildPythonPackage` has additional logic inside `shellPhase` to run `pip 1518 - install -e . --prefix $TMPDIR/`for the package. 1519 - 1520 - Warning: `shellPhase` is executed only if `setup.py` exists. 1521 - 1522 - Given a `default.nix`: 1523 - 1524 - ```nix 1525 - with import <nixpkgs> {}; 1526 - 1527 - pythonPackages.buildPythonPackage { 1528 - name = "myproject"; 1529 - buildInputs = with pythonPackages; [ pyramid ]; 1530 - 1531 - src = ./.; 1532 - } 1533 - ``` 1534 - 1535 - Running `nix-shell` with no arguments should give you the environment in which 1536 - the package would be built with `nix-build`. 1537 - 1538 - Shortcut to setup environments with C headers/libraries and Python packages: 1539 - 1540 - ```shell 1541 - nix-shell -p pythonPackages.pyramid zlib libjpeg git 1542 - ``` 1543 - 1544 - Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked. 1545 - 1546 - ### Tools {#tools} 1547 - 1548 - Packages inside nixpkgs must use the `buildPythonPackage` or `buildPythonApplication` function directly, 1549 - because we can only provide security support for non-vendored dependencies. 1550 - 1551 - We recommend [nix-init](https://github.com/nix-community/nix-init) for creating new python packages within nixpkgs, 1552 - as it already prefetches the source, parses dependencies for common formats and prefills most things in `meta`. 1553 - 1554 - ### Deterministic builds {#deterministic-builds} 1555 - 1556 - The Python interpreters are now built deterministically. Minor modifications had 1557 - to be made to the interpreters in order to generate deterministic bytecode. This 1558 - has security implications and is relevant for those using Python in a 1559 - `nix-shell`. 1560 - 1561 - When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will 1562 - have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` 1563 - and [PYTHONHASHSEED=0](https://docs.python.org/3.11/using/cmdline.html#envvar-PYTHONHASHSEED). 1564 - Both are also exported in `nix-shell`. 1565 - 1566 - ### Automatic tests {#automatic-tests} 1567 - 1568 - It is recommended to test packages as part of the build process. 1569 - Source distributions (`sdist`) often include test files, but not always. 1570 - 1571 - By default the command `python setup.py test` is run as part of the 1572 - `checkPhase`, but often it is necessary to pass a custom `checkPhase`. An 1573 - example of such a situation is when `py.test` is used. 1574 - 1575 - #### Common issues {#common-issues} 1576 - 1577 - * Non-working tests can often be deselected. By default `buildPythonPackage` 1578 - runs `python setup.py test`. which is deprecated. Most Python modules however 1579 - do follow the standard test protocol where the pytest runner can be used 1580 - instead. `pytest` supports the `-k` and `--ignore` parameters to ignore test 1581 - methods or classes as well as whole files. For `pytestCheckHook` these are 1582 - conveniently exposed as `disabledTests` and `disabledTestPaths` respectively. 1583 - 1584 - ```nix 1585 - buildPythonPackage { 1586 - # ... 1587 - nativeCheckInputs = [ 1588 - pytestCheckHook 1589 - ]; 1590 - 1591 - disabledTests = [ 1592 - "function_name" 1593 - "other_function" 1594 - ]; 1595 - 1596 - disabledTestPaths = [ 1597 - "this/file.py" 1598 - ]; 1599 - } 1600 - ``` 1601 - 1602 - * Tests that attempt to access `$HOME` can be fixed by using the following 1603 - work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)` 1604 - 1605 ## FAQ {#faq} 1606 1607 ### How to solve circular dependencies? {#how-to-solve-circular-dependencies} ··· 1949 * `setup_requires` corresponds to `nativeBuildInputs` 1950 * `install_requires` corresponds to `propagatedBuildInputs` 1951 * `tests_require` corresponds to `nativeCheckInputs` 1952 1953 ## Contributing {#contributing} 1954
··· 1 # Python {#python} 2 3 + ## Reference {#reference} 4 + 5 + ### Interpreters {#interpreters} 6 + 7 + | Package | Aliases | Interpreter | 8 + |------------|-----------------|-------------| 9 + | python27 | python2, python | CPython 2.7 | 10 + | python38 | | CPython 3.8 | 11 + | python39 | | CPython 3.9 | 12 + | python310 | python3 | CPython 3.10 | 13 + | python311 | | CPython 3.11 | 14 + | python312 | | CPython 3.12 | 15 + | pypy27 | pypy2, pypy | PyPy2.7 | 16 + | pypy39 | pypy3 | PyPy 3.9 | 17 + 18 + The Nix expressions for the interpreters can be found in 19 + `pkgs/development/interpreters/python`. 20 + 21 + All packages depending on any Python interpreter get appended 22 + `out/{python.sitePackages}` to `$PYTHONPATH` if such directory 23 + exists. 24 + 25 + #### Missing `tkinter` module standard library {#missing-tkinter-module-standard-library} 26 + 27 + To reduce closure size the `Tkinter`/`tkinter` is available as a separate package, `pythonPackages.tkinter`. 28 + 29 + #### Attributes on interpreters packages {#attributes-on-interpreters-packages} 30 + 31 + Each interpreter has the following attributes: 32 + 33 + - `libPrefix`. Name of the folder in `${python}/lib/` for corresponding interpreter. 34 + - `interpreter`. Alias for `${python}/bin/${executable}`. 35 + - `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation. 36 + - `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation. 37 + - `sitePackages`. Alias for `lib/${libPrefix}/site-packages`. 38 + - `executable`. Name of the interpreter executable, e.g. `python3.10`. 39 + - `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`. 40 + 41 + ### Building packages and applications {#building-packages-and-applications} 42 + 43 + Python libraries and applications that use `setuptools` or 44 + `distutils` are typically built with respectively the `buildPythonPackage` and 45 + `buildPythonApplication` functions. These two functions also support installing a `wheel`. 46 + 47 + All Python packages reside in `pkgs/top-level/python-packages.nix` and all 48 + applications elsewhere. In case a package is used as both a library and an 49 + application, then the package should be in `pkgs/top-level/python-packages.nix` 50 + since only those packages are made available for all interpreter versions. The 51 + preferred location for library expressions is in 52 + `pkgs/development/python-modules`. It is important that these packages are 53 + called from `pkgs/top-level/python-packages.nix` and not elsewhere, to guarantee 54 + the right version of the package is built. 55 + 56 + Based on the packages defined in `pkgs/top-level/python-packages.nix` an 57 + attribute set is created for each available Python interpreter. The available 58 + sets are 59 + 60 + * `pkgs.python27Packages` 61 + * `pkgs.python3Packages` 62 + * `pkgs.python38Packages` 63 + * `pkgs.python39Packages` 64 + * `pkgs.python310Packages` 65 + * `pkgs.python311Packages` 66 + * `pkgs.pypyPackages` 67 + 68 + and the aliases 69 + 70 + * `pkgs.python2Packages` pointing to `pkgs.python27Packages` 71 + * `pkgs.python3Packages` pointing to `pkgs.python310Packages` 72 + * `pkgs.pythonPackages` pointing to `pkgs.python2Packages` 73 + 74 + #### `buildPythonPackage` function {#buildpythonpackage-function} 75 + 76 + The `buildPythonPackage` function is implemented in 77 + `pkgs/development/interpreters/python/mk-python-derivation.nix` 78 + using setup hooks. 79 + 80 + The following is an example: 81 + 82 + ```nix 83 + { lib 84 + , buildPythonPackage 85 + , fetchPypi 86 + 87 + # build-system 88 + , setuptools-scm 89 + 90 + # dependencies 91 + , attrs 92 + , pluggy 93 + , py 94 + , setuptools 95 + , six 96 + 97 + # tests 98 + , hypothesis 99 + }: 100 + 101 + buildPythonPackage rec { 102 + pname = "pytest"; 103 + version = "3.3.1"; 104 + format = "setuptools"; 105 + 106 + src = fetchPypi { 107 + inherit pname version; 108 + hash = "sha256-z4Q23FnYaVNG/NOrKW3kZCXsqwDWQJbOvnn7Ueyy65M="; 109 + }; 110 + 111 + postPatch = '' 112 + # don't test bash builtins 113 + rm testing/test_argcomplete.py 114 + ''; 115 + 116 + nativeBuildInputs = [ 117 + setuptools-scm 118 + ]; 119 + 120 + propagatedBuildInputs = [ 121 + attrs 122 + py 123 + setuptools 124 + six 125 + pluggy 126 + ]; 127 + 128 + nativeCheckInputs = [ 129 + hypothesis 130 + ]; 131 + 132 + meta = with lib; { 133 + changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; 134 + description = "Framework for writing tests"; 135 + homepage = "https://github.com/pytest-dev/pytest"; 136 + license = licenses.mit; 137 + maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; 138 + }; 139 + } 140 + ``` 141 + 142 + The `buildPythonPackage` mainly does four things: 143 + 144 + * In the `buildPhase`, it calls `${python.pythonForBuild.interpreter} setup.py bdist_wheel` to 145 + build a wheel binary zipfile. 146 + * In the `installPhase`, it installs the wheel file using `pip install *.whl`. 147 + * In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to 148 + wrap all programs in the `$out/bin/*` directory to include `$PATH` 149 + environment variable and add dependent libraries to script's `sys.path`. 150 + * In the `installCheck` phase, `${python.interpreter} setup.py test` is run. 151 + 152 + By default tests are run because `doCheck = true`. Test dependencies, like 153 + e.g. the test runner, should be added to `nativeCheckInputs`. 154 + 155 + By default `meta.platforms` is set to the same value 156 + as the interpreter unless overridden otherwise. 157 + 158 + ##### `buildPythonPackage` parameters {#buildpythonpackage-parameters} 159 + 160 + All parameters from `stdenv.mkDerivation` function are still supported. The 161 + following are specific to `buildPythonPackage`: 162 + 163 + * `catchConflicts ? true`: If `true`, abort package build if a package name 164 + appears more than once in dependency tree. Default is `true`. 165 + * `disabled ? false`: If `true`, package is not built for the particular Python 166 + interpreter version. 167 + * `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs. 168 + * `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment 169 + variable in wrapped programs. 170 + * `format ? "setuptools"`: Format of the source. Valid options are 171 + `"setuptools"`, `"pyproject"`, `"flit"`, `"wheel"`, and `"other"`. 172 + `"setuptools"` is for when the source has a `setup.py` and `setuptools` is 173 + used to build a wheel, `flit`, in case `flit` should be used to build a wheel, 174 + and `wheel` in case a wheel is provided. Use `other` when a custom 175 + `buildPhase` and/or `installPhase` is needed. 176 + * `makeWrapperArgs ? []`: A list of strings. Arguments to be passed to 177 + `makeWrapper`, which wraps generated binaries. By default, the arguments to 178 + `makeWrapper` set `PATH` and `PYTHONPATH` environment variables before calling 179 + the binary. Additional arguments here can allow a developer to set environment 180 + variables which will be available when the binary is run. For example, 181 + `makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`. 182 + * `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this 183 + defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications to `""`. 184 + * `pipInstallFlags ? []`: A list of strings. Arguments to be passed to `pip 185 + install`. To pass options to `python setup.py install`, use 186 + `--install-option`. E.g., `pipInstallFlags=["--install-option='--cpp_implementation'"]`. 187 + * `pipBuildFlags ? []`: A list of strings. Arguments to be passed to `pip wheel`. 188 + * `pypaBuildFlags ? []`: A list of strings. Arguments to be passed to `python -m build --wheel`. 189 + * `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages 190 + in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`). 191 + * `preShellHook`: Hook to execute commands before `shellHook`. 192 + * `postShellHook`: Hook to execute commands after `shellHook`. 193 + * `removeBinByteCode ? true`: Remove bytecode from `/bin`. Bytecode is only 194 + created when the filenames end with `.py`. 195 + * `setupPyGlobalFlags ? []`: List of flags passed to `setup.py` command. 196 + * `setupPyBuildFlags ? []`: List of flags passed to `setup.py build_ext` command. 197 + 198 + The `stdenv.mkDerivation` function accepts various parameters for describing 199 + build inputs (see "Specifying dependencies"). The following are of special 200 + interest for Python packages, either because these are primarily used, or 201 + because their behaviour is different: 202 + 203 + * `nativeBuildInputs ? []`: Build-time only dependencies. Typically executables 204 + as well as the items listed in `setup_requires`. 205 + * `buildInputs ? []`: Build and/or run-time dependencies that need to be 206 + compiled for the host machine. Typically non-Python libraries which are being 207 + linked. 208 + * `nativeCheckInputs ? []`: Dependencies needed for running the `checkPhase`. These 209 + are added to `nativeBuildInputs` when `doCheck = true`. Items listed in 210 + `tests_require` go here. 211 + * `propagatedBuildInputs ? []`: Aside from propagating dependencies, 212 + `buildPythonPackage` also injects code into and wraps executables with the 213 + paths included in this list. Items listed in `install_requires` go here. 214 + 215 + ##### Overriding Python packages {#overriding-python-packages} 216 + 217 + The `buildPythonPackage` function has a `overridePythonAttrs` method that can be 218 + used to override the package. In the following example we create an environment 219 + where we have the `blaze` package using an older version of `pandas`. We 220 + override first the Python interpreter and pass `packageOverrides` which contains 221 + the overrides for packages in the package set. 222 + 223 + ```nix 224 + with import <nixpkgs> {}; 225 + 226 + (let 227 + python = let 228 + packageOverrides = self: super: { 229 + pandas = super.pandas.overridePythonAttrs(old: rec { 230 + version = "0.19.1"; 231 + src = fetchPypi { 232 + pname = "pandas"; 233 + inherit version; 234 + hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE="; 235 + }; 236 + }); 237 + }; 238 + in pkgs.python3.override {inherit packageOverrides; self = python;}; 239 + 240 + in python.withPackages(ps: [ ps.blaze ])).env 241 + ``` 242 + 243 + The next example shows a non trivial overriding of the `blas` implementation to 244 + be used through out all of the Python package set: 245 + 246 + ```nix 247 + python3MyBlas = pkgs.python3.override { 248 + packageOverrides = self: super: { 249 + # We need toPythonModule for the package set to evaluate this 250 + blas = super.toPythonModule(super.pkgs.blas.override { 251 + blasProvider = super.pkgs.mkl; 252 + }); 253 + lapack = super.toPythonModule(super.pkgs.lapack.override { 254 + lapackProvider = super.pkgs.mkl; 255 + }); 256 + }; 257 + }; 258 + ``` 259 + 260 + This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations. 261 + Note that using simply `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in 262 + compilation issues, because scipy dependencies need to use the same blas implementation as well. 263 + 264 + #### `buildPythonApplication` function {#buildpythonapplication-function} 265 + 266 + The `buildPythonApplication` function is practically the same as 267 + `buildPythonPackage`. The main purpose of this function is to build a Python 268 + package where one is interested only in the executables, and not importable 269 + modules. For that reason, when adding this package to a `python.buildEnv`, the 270 + modules won't be made available. 271 + 272 + Another difference is that `buildPythonPackage` by default prefixes the names of 273 + the packages with the version of the interpreter. Because this is irrelevant for 274 + applications, the prefix is omitted. 275 + 276 + When packaging a Python application with `buildPythonApplication`, it should be 277 + called with `callPackage` and passed `python` or `pythonPackages` (possibly 278 + specifying an interpreter version), like this: 279 + 280 + ```nix 281 + { lib 282 + , python3 283 + , fetchPypi 284 + }: 285 + 286 + python3.pkgs.buildPythonApplication rec { 287 + pname = "luigi"; 288 + version = "2.7.9"; 289 + format = "setuptools"; 290 + 291 + src = fetchPypi { 292 + inherit pname version; 293 + hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw="; 294 + }; 295 + 296 + propagatedBuildInputs = with python3.pkgs; [ 297 + tornado 298 + python-daemon 299 + ]; 300 + 301 + meta = with lib; { 302 + ... 303 + }; 304 + } 305 + ``` 306 + 307 + This is then added to `all-packages.nix` just as any other application would be. 308 + 309 + ```nix 310 + luigi = callPackage ../applications/networking/cluster/luigi { }; 311 + ``` 312 + 313 + Since the package is an application, a consumer doesn't need to care about 314 + Python versions or modules, which is why they don't go in `pythonPackages`. 315 + 316 + #### `toPythonApplication` function {#topythonapplication-function} 317 + 318 + A distinction is made between applications and libraries, however, sometimes a 319 + package is used as both. In this case the package is added as a library to 320 + `python-packages.nix` and as an application to `all-packages.nix`. To reduce 321 + duplication the `toPythonApplication` can be used to convert a library to an 322 + application. 323 + 324 + The Nix expression shall use `buildPythonPackage` and be called from 325 + `python-packages.nix`. A reference shall be created from `all-packages.nix` to 326 + the attribute in `python-packages.nix`, and the `toPythonApplication` shall be 327 + applied to the reference: 328 + 329 + ```nix 330 + youtube-dl = with pythonPackages; toPythonApplication youtube-dl; 331 + ``` 332 + 333 + #### `toPythonModule` function {#topythonmodule-function} 334 + 335 + In some cases, such as bindings, a package is created using 336 + `stdenv.mkDerivation` and added as attribute in `all-packages.nix`. The Python 337 + bindings should be made available from `python-packages.nix`. The 338 + `toPythonModule` function takes a derivation and makes certain Python-specific 339 + modifications. 340 + 341 + ```nix 342 + opencv = toPythonModule (pkgs.opencv.override { 343 + enablePython = true; 344 + pythonPackages = self; 345 + }); 346 + ``` 347 + 348 + Do pay attention to passing in the right Python version! 349 + 350 + #### `python.buildEnv` function {#python.buildenv-function} 351 + 352 + Python environments can be created using the low-level `pkgs.buildEnv` function. 353 + This example shows how to create an environment that has the Pyramid Web Framework. 354 + Saving the following as `default.nix` 355 + 356 + ```nix 357 + with import <nixpkgs> {}; 358 + 359 + python.buildEnv.override { 360 + extraLibs = [ pythonPackages.pyramid ]; 361 + ignoreCollisions = true; 362 + } 363 + ``` 364 + 365 + and running `nix-build` will create 366 + 367 + ``` 368 + /nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env 369 + ``` 370 + 371 + with wrapped binaries in `bin/`. 372 + 373 + You can also use the `env` attribute to create local environments with needed 374 + packages installed. This is somewhat comparable to `virtualenv`. For example, 375 + running `nix-shell` with the following `shell.nix` 376 + 377 + ```nix 378 + with import <nixpkgs> {}; 379 + 380 + (python3.buildEnv.override { 381 + extraLibs = with python3Packages; [ 382 + numpy 383 + requests 384 + ]; 385 + }).env 386 + ``` 387 + 388 + will drop you into a shell where Python will have the 389 + specified packages in its path. 390 + 391 + ##### `python.buildEnv` arguments {#python.buildenv-arguments} 392 + 393 + 394 + * `extraLibs`: List of packages installed inside the environment. 395 + * `postBuild`: Shell command executed after the build of environment. 396 + * `ignoreCollisions`: Ignore file collisions inside the environment (default is `false`). 397 + * `permitUserSite`: Skip setting the `PYTHONNOUSERSITE` environment variable in 398 + wrapped binaries in the environment. 399 + 400 + #### `python.withPackages` function {#python.withpackages-function} 401 + 402 + The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality. 403 + It takes a function as an argument that is passed the set of python packages and returns the list 404 + of the packages to be included in the environment. Using the `withPackages` function, the previous 405 + example for the Pyramid Web Framework environment can be written like this: 406 + 407 + ```nix 408 + with import <nixpkgs> {}; 409 + 410 + python.withPackages (ps: [ ps.pyramid ]) 411 + ``` 412 + 413 + `withPackages` passes the correct package set for the specific interpreter 414 + version as an argument to the function. In the above example, `ps` equals 415 + `pythonPackages`. But you can also easily switch to using python3: 416 + 417 + ```nix 418 + with import <nixpkgs> {}; 419 + 420 + python3.withPackages (ps: [ ps.pyramid ]) 421 + ``` 422 + 423 + Now, `ps` is set to `python3Packages`, matching the version of the interpreter. 424 + 425 + As `python.withPackages` simply uses `python.buildEnv` under the hood, it also 426 + supports the `env` attribute. The `shell.nix` file from the previous section can 427 + thus be also written like this: 428 + 429 + ```nix 430 + with import <nixpkgs> {}; 431 + 432 + (python3.withPackages (ps: with ps; [ 433 + numpy 434 + requests 435 + ])).env 436 + ``` 437 + 438 + In contrast to `python.buildEnv`, `python.withPackages` does not support the 439 + more advanced options such as `ignoreCollisions = true` or `postBuild`. If you 440 + need them, you have to use `python.buildEnv`. 441 + 442 + Python 2 namespace packages may provide `__init__.py` that collide. In that case 443 + `python.buildEnv` should be used with `ignoreCollisions = true`. 444 + 445 + #### Setup hooks {#setup-hooks} 446 + 447 + The following are setup hooks specifically for Python packages. Most of these 448 + are used in `buildPythonPackage`. 449 + 450 + - `eggUnpackhook` to move an egg to the correct folder so it can be installed 451 + with the `eggInstallHook` 452 + - `eggBuildHook` to skip building for eggs. 453 + - `eggInstallHook` to install eggs. 454 + - `flitBuildHook` to build a wheel using `flit`. 455 + - `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system 456 + (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`. 457 + - `pypaBuildHook` to build a wheel using 458 + [`pypa/build`](https://pypa-build.readthedocs.io/en/latest/index.html) and 459 + PEP 517/518. Note a build system (e.g. `setuptools` or `flit`) should still 460 + be added as `nativeBuildInput`. 461 + - `pipInstallHook` to install wheels. 462 + - `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook). 463 + - `pythonCatchConflictsHook` to check whether a Python package is not already existing. 464 + - `pythonImportsCheckHook` to check whether importing the listed modules works. 465 + - `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package. 466 + See [example usage](#using-pythonrelaxdepshook). 467 + - `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder. 468 + - `setuptoolsBuildHook` to build a wheel using `setuptools`. 469 + - `setuptoolsCheckHook` to run tests with `python setup.py test`. 470 + - `sphinxHook` to build documentation and manpages using Sphinx. 471 + - `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A 472 + `venv` is created if it does not yet exist. `postVenvCreation` can be used to 473 + to run commands only after venv is first created. 474 + - `wheelUnpackHook` to move a wheel to the correct folder so it can be installed 475 + with the `pipInstallHook`. 476 + - `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook). 477 + 478 + ### Development mode {#development-mode} 479 + 480 + Development or editable mode is supported. To develop Python packages 481 + `buildPythonPackage` has additional logic inside `shellPhase` to run `pip 482 + install -e . --prefix $TMPDIR/`for the package. 483 + 484 + Warning: `shellPhase` is executed only if `setup.py` exists. 485 + 486 + Given a `default.nix`: 487 + 488 + ```nix 489 + with import <nixpkgs> {}; 490 + 491 + pythonPackages.buildPythonPackage { 492 + name = "myproject"; 493 + buildInputs = with pythonPackages; [ pyramid ]; 494 + 495 + src = ./.; 496 + } 497 + ``` 498 + 499 + Running `nix-shell` with no arguments should give you the environment in which 500 + the package would be built with `nix-build`. 501 + 502 + Shortcut to setup environments with C headers/libraries and Python packages: 503 + 504 + ```shell 505 + nix-shell -p pythonPackages.pyramid zlib libjpeg git 506 + ``` 507 + 508 + Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked. 509 + 510 ## User Guide {#user-guide} 511 512 ### Using Python {#using-python} ··· 1500 example we use `buildPythonPackage` that is part of the set `python3Packages`, 1501 and in this case the `python3` interpreter is automatically used. 1502 1503 ## FAQ {#faq} 1504 1505 ### How to solve circular dependencies? {#how-to-solve-circular-dependencies} ··· 1847 * `setup_requires` corresponds to `nativeBuildInputs` 1848 * `install_requires` corresponds to `propagatedBuildInputs` 1849 * `tests_require` corresponds to `nativeCheckInputs` 1850 + 1851 + ### How to enable interpreter optimizations? {#optimizations} 1852 + 1853 + The Python interpreters are by default not built with optimizations enabled, because 1854 + the builds are in that case not reproducible. To enable optimizations, override the 1855 + interpreter of interest, e.g using 1856 + 1857 + ``` 1858 + let 1859 + pkgs = import ./. {}; 1860 + mypython = pkgs.python3.override { 1861 + enableOptimizations = true; 1862 + reproducibleBuild = false; 1863 + self = mypython; 1864 + }; 1865 + in mypython 1866 + ``` 1867 + 1868 + ### How to add optional dependencies? {#python-optional-dependencies} 1869 + 1870 + Some packages define optional dependencies for additional features. With 1871 + `setuptools` this is called `extras_require` and `flit` calls it 1872 + `extras-require`, while PEP 621 calls these `optional-dependencies`. A 1873 + method for supporting this is by declaring the extras of a package in its 1874 + `passthru`, e.g. in case of the package `dask` 1875 + 1876 + ```nix 1877 + passthru.optional-dependencies = { 1878 + complete = [ distributed ]; 1879 + }; 1880 + ``` 1881 + 1882 + and letting the package requiring the extra add the list to its dependencies 1883 + 1884 + ```nix 1885 + propagatedBuildInputs = [ 1886 + ... 1887 + ] ++ dask.optional-dependencies.complete; 1888 + ``` 1889 + 1890 + Note this method is preferred over adding parameters to builders, as that can 1891 + result in packages depending on different variants and thereby causing 1892 + collisions. 1893 + 1894 + ### How to contribute a Python package to nixpkgs? {#tools} 1895 + 1896 + Packages inside nixpkgs must use the `buildPythonPackage` or `buildPythonApplication` function directly, 1897 + because we can only provide security support for non-vendored dependencies. 1898 + 1899 + We recommend [nix-init](https://github.com/nix-community/nix-init) for creating new python packages within nixpkgs, 1900 + as it already prefetches the source, parses dependencies for common formats and prefills most things in `meta`. 1901 + 1902 + ### Are Python interpreters built deterministically? {#deterministic-builds} 1903 + 1904 + The Python interpreters are now built deterministically. Minor modifications had 1905 + to be made to the interpreters in order to generate deterministic bytecode. This 1906 + has security implications and is relevant for those using Python in a 1907 + `nix-shell`. 1908 + 1909 + When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will 1910 + have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` 1911 + and [PYTHONHASHSEED=0](https://docs.python.org/3.11/using/cmdline.html#envvar-PYTHONHASHSEED). 1912 + Both are also exported in `nix-shell`. 1913 + 1914 + ### How to provide automatic tests to Python packages? {#automatic-tests} 1915 + 1916 + It is recommended to test packages as part of the build process. 1917 + Source distributions (`sdist`) often include test files, but not always. 1918 + 1919 + By default the command `python setup.py test` is run as part of the 1920 + `checkPhase`, but often it is necessary to pass a custom `checkPhase`. An 1921 + example of such a situation is when `py.test` is used. 1922 + 1923 + #### Common issues {#common-issues} 1924 + 1925 + * Non-working tests can often be deselected. By default `buildPythonPackage` 1926 + runs `python setup.py test`. which is deprecated. Most Python modules however 1927 + do follow the standard test protocol where the pytest runner can be used 1928 + instead. `pytest` supports the `-k` and `--ignore` parameters to ignore test 1929 + methods or classes as well as whole files. For `pytestCheckHook` these are 1930 + conveniently exposed as `disabledTests` and `disabledTestPaths` respectively. 1931 + 1932 + ```nix 1933 + buildPythonPackage { 1934 + # ... 1935 + nativeCheckInputs = [ 1936 + pytestCheckHook 1937 + ]; 1938 + 1939 + disabledTests = [ 1940 + "function_name" 1941 + "other_function" 1942 + ]; 1943 + 1944 + disabledTestPaths = [ 1945 + "this/file.py" 1946 + ]; 1947 + } 1948 + ``` 1949 + 1950 + * Tests that attempt to access `$HOME` can be fixed by using the following 1951 + work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)` 1952 1953 ## Contributing {#contributing} 1954
+6
maintainers/maintainer-list.nix
··· 13950 githubId = 115877; 13951 name = "Kenny Shen"; 13952 }; 13953 quag = { 13954 email = "quaggy@gmail.com"; 13955 github = "quag";
··· 13950 githubId = 115877; 13951 name = "Kenny Shen"; 13952 }; 13953 + quadradical = { 13954 + email = "nixos@henryhiles.com"; 13955 + github = "Henry-Hiles"; 13956 + githubId = 71790868; 13957 + name = "Henry Hiles"; 13958 + }; 13959 quag = { 13960 email = "quaggy@gmail.com"; 13961 github = "quag";
+261 -70
pkgs/applications/editors/vim/plugins/generated.nix
··· 967 968 base46 = buildVimPluginFrom2Nix { 969 pname = "base46"; 970 - version = "2023-07-29"; 971 src = fetchFromGitHub { 972 owner = "nvchad"; 973 repo = "base46"; 974 - rev = "1a3faca5fdb6da541a28c37efdb60d99b34c15cc"; 975 - sha256 = "1yjhfd8cc8k449qxbf4c7mm5fgi3qblbh6775byrib73hbli7p2c"; 976 }; 977 meta.homepage = "https://github.com/nvchad/base46/"; 978 }; ··· 1235 src = fetchFromGitHub { 1236 owner = "ms-jpq"; 1237 repo = "chadtree"; 1238 - rev = "7dbc8b17c6d22a7511a8818636a8f7a428cf56f8"; 1239 - sha256 = "1vqw7g4kqjrcjfqzq4r995lh0yc466pa88d24ii38vwzmzp27z10"; 1240 }; 1241 meta.homepage = "https://github.com/ms-jpq/chadtree/"; 1242 }; ··· 2033 meta.homepage = "https://github.com/Exafunction/codeium.vim/"; 2034 }; 2035 2036 codi-vim = buildVimPluginFrom2Nix { 2037 pname = "codi.vim"; 2038 version = "2023-02-28"; ··· 2947 meta.homepage = "https://github.com/direnv/direnv.vim/"; 2948 }; 2949 2950 doki-theme-vim = buildVimPluginFrom2Nix { 2951 pname = "doki-theme-vim"; 2952 version = "2023-01-07"; ··· 3299 3300 firenvim = buildVimPluginFrom2Nix { 3301 pname = "firenvim"; 3302 - version = "2023-08-07"; 3303 src = fetchFromGitHub { 3304 owner = "glacambre"; 3305 repo = "firenvim"; 3306 - rev = "2a709e2bf9e2ff065e13619d21b5a672e51023f6"; 3307 - sha256 = "1bk5fdsv55cydbqli86xq9fw170qm46zi3m7l1jfz2hd1dlw4q1z"; 3308 }; 3309 meta.homepage = "https://github.com/glacambre/firenvim/"; 3310 }; ··· 3418 meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/"; 3419 }; 3420 3421 formatter-nvim = buildVimPluginFrom2Nix { 3422 pname = "formatter.nvim"; 3423 version = "2023-07-13"; ··· 3852 3853 grammar-guard-nvim = buildVimPluginFrom2Nix { 3854 pname = "grammar-guard.nvim"; 3855 - version = "2022-01-03"; 3856 src = fetchFromGitHub { 3857 owner = "brymer-meneses"; 3858 repo = "grammar-guard.nvim"; 3859 - rev = "ea163c4adfd68fdd40e095cdf39cb506bf3ce3b2"; 3860 - sha256 = "0wdbpkg1y0s7fhaybyj735dxdkvfgnng49i8k0zrsy16d75md4bs"; 3861 }; 3862 meta.homepage = "https://github.com/brymer-meneses/grammar-guard.nvim/"; 3863 }; ··· 4150 4151 hotpot-nvim = buildVimPluginFrom2Nix { 4152 pname = "hotpot.nvim"; 4153 - version = "2023-08-11"; 4154 src = fetchFromGitHub { 4155 owner = "rktjmp"; 4156 repo = "hotpot.nvim"; 4157 - rev = "42cb3f364a7ac6c2dfca08c8b86f950b00097657"; 4158 - sha256 = "0y1049gmg6ia594ms00hx485d06cjmj9g65wgqnmziyjkssvbjan"; 4159 }; 4160 meta.homepage = "https://github.com/rktjmp/hotpot.nvim/"; 4161 }; ··· 4246 4247 image-nvim = buildVimPluginFrom2Nix { 4248 pname = "image.nvim"; 4249 - version = "2023-07-17"; 4250 src = fetchFromGitHub { 4251 owner = "3rd"; 4252 repo = "image.nvim"; 4253 - rev = "24c312191ca6bc04e45610a7bcb984d3bf208820"; 4254 - sha256 = "1fy024nd01wryrasibc4b8divcfzx3a7xxfzx968l4a4l1q3l6vc"; 4255 }; 4256 meta.homepage = "https://github.com/3rd/image.nvim/"; 4257 }; ··· 4579 sha256 = "13p3i0b8azkmhafyv8hc4hav1pmgqg52xzvk2a3gp3ppqqx9bwpc"; 4580 }; 4581 meta.homepage = "https://github.com/kmonad/kmonad-vim/"; 4582 }; 4583 4584 kommentary = buildVimPluginFrom2Nix { ··· 5265 meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/"; 5266 }; 5267 5268 marks-nvim = buildVimPluginFrom2Nix { 5269 pname = "marks.nvim"; 5270 version = "2023-02-25"; ··· 5385 meta.homepage = "https://github.com/savq/melange-nvim/"; 5386 }; 5387 5388 mini-nvim = buildVimPluginFrom2Nix { 5389 pname = "mini.nvim"; 5390 - version = "2023-08-08"; 5391 src = fetchFromGitHub { 5392 owner = "echasnovski"; 5393 repo = "mini.nvim"; 5394 - rev = "1b52c4ce7880b95d6c80eeb3cfe8e2da27d19db4"; 5395 - sha256 = "02262ykxldwxhwf6aw0q9hsz3qda43qcj770hmr1fn6xmg4b6zyl"; 5396 }; 5397 meta.homepage = "https://github.com/echasnovski/mini.nvim/"; 5398 }; ··· 5503 sha256 = "0djk5z1bs3w3ysvpq8yabb2g7n0vbamsj95pa4jgsnah3slmqrkm"; 5504 }; 5505 meta.homepage = "https://github.com/yegappan/mru/"; 5506 }; 5507 5508 ncm2 = buildVimPluginFrom2Nix { ··· 5735 5736 neco-vim = buildVimPluginFrom2Nix { 5737 pname = "neco-vim"; 5738 - version = "2023-07-31"; 5739 src = fetchFromGitHub { 5740 owner = "Shougo"; 5741 repo = "neco-vim"; 5742 - rev = "c1803742fed623212e675909ed74657cf6a77a2f"; 5743 - sha256 = "1w4gqdjiv624izl5j92sjrrc2p72k9vq6pq1gwkyvhhvvaqnxhzs"; 5744 }; 5745 meta.homepage = "https://github.com/Shougo/neco-vim/"; 5746 }; 5747 5748 neo-tree-nvim = buildVimPluginFrom2Nix { 5749 pname = "neo-tree.nvim"; 5750 - version = "2023-08-07"; 5751 src = fetchFromGitHub { 5752 owner = "nvim-neo-tree"; 5753 repo = "neo-tree.nvim"; 5754 - rev = "38293fe690981aba6cfef5e440f26d8b956d463e"; 5755 - sha256 = "1mr6wllc1nv6zdrw4hzya5hmhzw1vclfim6f90xhln3vkbyci88b"; 5756 }; 5757 meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; 5758 }; ··· 5795 5796 neodev-nvim = buildVimPluginFrom2Nix { 5797 pname = "neodev.nvim"; 5798 - version = "2023-08-10"; 5799 src = fetchFromGitHub { 5800 owner = "folke"; 5801 repo = "neodev.nvim"; 5802 - rev = "81a893eb94d502b2cbb08ed3871eeaadfd240131"; 5803 - sha256 = "1b3lhl2hr42vhh7nvjhm4isp034n80il4d5x6b415vcacc0187ag"; 5804 }; 5805 meta.homepage = "https://github.com/folke/neodev.nvim/"; 5806 }; 5807 5808 neoformat = buildVimPluginFrom2Nix { 5809 pname = "neoformat"; 5810 - version = "2023-08-03"; 5811 src = fetchFromGitHub { 5812 owner = "sbdchd"; 5813 repo = "neoformat"; 5814 - rev = "08a621bd659511379e753970a4f3adebd45be8f4"; 5815 - sha256 = "04dbccd9nfqj2vv5iv7a9fdz2mdk8kvpyd5gqwjzwsy84v7qx89h"; 5816 }; 5817 meta.homepage = "https://github.com/sbdchd/neoformat/"; 5818 }; ··· 5831 5832 neogit = buildVimPluginFrom2Nix { 5833 pname = "neogit"; 5834 - version = "2023-08-11"; 5835 src = fetchFromGitHub { 5836 owner = "NeogitOrg"; 5837 repo = "neogit"; 5838 - rev = "e80cd6424a8a85d93bac25b8cd8d1758105f2b0f"; 5839 - sha256 = "1x5cp250qim36l63qgikqpygmsdcciq7i69gcs3qfx9jxfgih4fh"; 5840 }; 5841 meta.homepage = "https://github.com/NeogitOrg/neogit/"; 5842 }; ··· 5887 sha256 = "1rdgbx76kvlzg81cn653bqg9lj52gxnf15zla1kscw7wgh6hjvyh"; 5888 }; 5889 meta.homepage = "https://github.com/rafamadriz/neon/"; 5890 }; 5891 5892 neorg = buildVimPluginFrom2Nix { ··· 6215 6216 nerdcommenter = buildVimPluginFrom2Nix { 6217 pname = "nerdcommenter"; 6218 - version = "2023-06-26"; 6219 src = fetchFromGitHub { 6220 owner = "preservim"; 6221 repo = "nerdcommenter"; 6222 - rev = "ab2ae4d502a26bc591db78a8548823ddd04bbc9c"; 6223 - sha256 = "1my8nkc1fvs1awlzxqdy8q4448niwbg9ay5jliwly8aiiaxp2qvr"; 6224 }; 6225 meta.homepage = "https://github.com/preservim/nerdcommenter/"; 6226 }; ··· 6455 6456 null-ls-nvim = buildVimPluginFrom2Nix { 6457 pname = "null-ls.nvim"; 6458 - version = "2023-07-06"; 6459 src = fetchFromGitHub { 6460 owner = "jose-elias-alvarez"; 6461 repo = "null-ls.nvim"; 6462 - rev = "db09b6c691def0038c456551e4e2772186449f35"; 6463 - sha256 = "133qcapq5klinnbhvbqmww5ibwfrrqn9ysg5gjx1kg2vva7nv8p8"; 6464 }; 6465 meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/"; 6466 }; ··· 6599 6600 nvim-cmp = buildNeovimPlugin { 6601 pname = "nvim-cmp"; 6602 - version = "2023-08-10"; 6603 src = fetchFromGitHub { 6604 owner = "hrsh7th"; 6605 repo = "nvim-cmp"; 6606 - rev = "3b9f28061a67b19cadc13946de981426a6425e4a"; 6607 - sha256 = "11vxrizzkgk3x2hnd5cjdg53m5hjlf8548hi8aqfnfpr977d3v9s"; 6608 }; 6609 meta.homepage = "https://github.com/hrsh7th/nvim-cmp/"; 6610 }; ··· 6815 6816 nvim-gdb = buildVimPluginFrom2Nix { 6817 pname = "nvim-gdb"; 6818 - version = "2023-08-11"; 6819 src = fetchFromGitHub { 6820 owner = "sakhnik"; 6821 repo = "nvim-gdb"; 6822 - rev = "a15b1a6a060d77e5a0047ac2962b90c0d47c9903"; 6823 - sha256 = "088n6ix7hz0k49ykwmpyxphw7mqs1dxdkl43ba0b9nnwbfr6ii1z"; 6824 }; 6825 meta.homepage = "https://github.com/sakhnik/nvim-gdb/"; 6826 }; ··· 6907 sha256 = "1sv9p5kn0v7m2r8zq6j43hvg2bavai3qhymxh7mc4bw9jfa621md"; 6908 }; 6909 meta.homepage = "https://github.com/gennaro-tedesco/nvim-jqx/"; 6910 }; 6911 6912 nvim-lastplace = buildVimPluginFrom2Nix { ··· 7203 src = fetchFromGitHub { 7204 owner = "dstein64"; 7205 repo = "nvim-scrollview"; 7206 - rev = "f3991f78682fd24ad65d936d55715f4c7363016e"; 7207 - sha256 = "0csf3z48zl3zbj255sd0h823ggi4y2lg6gxy8qr4j0gwrphq1qsc"; 7208 }; 7209 meta.homepage = "https://github.com/dstein64/nvim-scrollview/"; 7210 }; 7211 7212 nvim-snippy = buildVimPluginFrom2Nix { 7213 pname = "nvim-snippy"; 7214 version = "2023-05-15"; ··· 7319 7320 nvim-treesitter = buildVimPluginFrom2Nix { 7321 pname = "nvim-treesitter"; 7322 - version = "2023-08-11"; 7323 src = fetchFromGitHub { 7324 owner = "nvim-treesitter"; 7325 repo = "nvim-treesitter"; 7326 - rev = "fa414da96f4a2e60c2ac8082f0c1802b8f3c8f6c"; 7327 - sha256 = "027702lqkkn1pmwnypmwx1s8bz6lg6ix882g1rcwyrpn3lb85489"; 7328 }; 7329 meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; 7330 }; ··· 7389 meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; 7390 }; 7391 7392 nvim-ts-autotag = buildVimPluginFrom2Nix { 7393 pname = "nvim-ts-autotag"; 7394 version = "2023-06-16"; ··· 7446 sha256 = "0sq8fnbvys14b98w8qjdcypkw2mibv8hvz7b19l8f4hyd2nwl3l4"; 7447 }; 7448 meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/"; 7449 }; 7450 7451 nvim-web-devicons = buildVimPluginFrom2Nix { ··· 7558 7559 oil-nvim = buildVimPluginFrom2Nix { 7560 pname = "oil.nvim"; 7561 - version = "2023-08-09"; 7562 src = fetchFromGitHub { 7563 owner = "stevearc"; 7564 repo = "oil.nvim"; 7565 - rev = "0e5fca35cdc743cf3a448cea1a6251cf25cebafa"; 7566 - sha256 = "16imjy6hyy9k1s6krkwl1z5vlra81a6fig2553hmwgndi7cjg3x8"; 7567 fetchSubmodules = true; 7568 }; 7569 meta.homepage = "https://github.com/stevearc/oil.nvim/"; ··· 7882 meta.homepage = "https://github.com/motus/pig.vim/"; 7883 }; 7884 7885 plantuml-syntax = buildVimPluginFrom2Nix { 7886 pname = "plantuml-syntax"; 7887 version = "2022-08-26"; ··· 8001 sha256 = "1l9s6linmjy7wlxsp4gipffnxakwvi1037phcnsr294c920d4dz5"; 8002 }; 8003 meta.homepage = "https://github.com/ewilazarus/preto/"; 8004 }; 8005 8006 prev_indent = buildVimPluginFrom2Nix { ··· 9306 9307 telescope-file-browser-nvim = buildVimPluginFrom2Nix { 9308 pname = "telescope-file-browser.nvim"; 9309 - version = "2023-07-30"; 9310 src = fetchFromGitHub { 9311 owner = "nvim-telescope"; 9312 repo = "telescope-file-browser.nvim"; 9313 - rev = "6fe423eea6604c2fcbb906ff5f7e27f748a6ed87"; 9314 - sha256 = "1hckw1jq0azx33sqawganlk256a88vzifa3f4x0h1q4579j38n1x"; 9315 }; 9316 meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/"; 9317 }; 9318 9319 telescope-frecency-nvim = buildVimPluginFrom2Nix { 9320 pname = "telescope-frecency.nvim"; 9321 - version = "2023-08-11"; 9322 src = fetchFromGitHub { 9323 owner = "nvim-telescope"; 9324 repo = "telescope-frecency.nvim"; 9325 - rev = "9b17c177447915f066cf78952892fe771c3e43c5"; 9326 - sha256 = "0c9f7ahlhvky1n9wkc4vfkbiqnwf5d6b4mphcj7grrpm1imxfj8d"; 9327 }; 9328 meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/"; 9329 }; ··· 9957 9958 typescript-nvim = buildVimPluginFrom2Nix { 9959 pname = "typescript.nvim"; 9960 - version = "2023-06-28"; 9961 src = fetchFromGitHub { 9962 owner = "jose-elias-alvarez"; 9963 repo = "typescript.nvim"; 9964 - rev = "de304087e6e49981fde01af8ccc5b21e8519306f"; 9965 - sha256 = "0l3i9fj76y3yl63fh6hprs5fja0h0jl11lidv3p76bdr041gw06g"; 9966 }; 9967 meta.homepage = "https://github.com/jose-elias-alvarez/typescript.nvim/"; 9968 }; ··· 11887 meta.homepage = "https://github.com/rhysd/vim-grammarous/"; 11888 }; 11889 11890 vim-graphql = buildVimPluginFrom2Nix { 11891 pname = "vim-graphql"; 11892 version = "2023-01-16"; ··· 13368 13369 vim-pasta = buildVimPluginFrom2Nix { 13370 pname = "vim-pasta"; 13371 - version = "2018-09-08"; 13372 src = fetchFromGitHub { 13373 owner = "ku1ik"; 13374 repo = "vim-pasta"; 13375 - rev = "cb4501a123d74fc7d66ac9f10b80c9d393746c66"; 13376 - sha256 = "14rswwx24i75xzgkbx1hywan1msn2ki26353ly2pyvznnqss1pwq"; 13377 }; 13378 meta.homepage = "https://github.com/ku1ik/vim-pasta/"; 13379 }; ··· 15458 15459 yats-vim = buildVimPluginFrom2Nix { 15460 pname = "yats.vim"; 15461 - version = "2023-08-04"; 15462 src = fetchFromGitHub { 15463 owner = "HerringtonDarkholme"; 15464 repo = "yats.vim"; 15465 - rev = "6d569339acf5866c468df9c2a06e050c0407ada3"; 15466 - sha256 = "1zz38g545ar0jis3i8dasfdifnnd0l40q6pclwphwspx6idlzajd"; 15467 fetchSubmodules = true; 15468 }; 15469 meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/"; ··· 15755 sha256 = "19gndx91dj3c76zbidlk4gjgjw0qkpv4x0ws6f1fsga9b9gplf3g"; 15756 }; 15757 meta.homepage = "https://github.com/rose-pine/neovim/"; 15758 }; 15759 15760 tinykeymap = buildVimPluginFrom2Nix {
··· 967 968 base46 = buildVimPluginFrom2Nix { 969 pname = "base46"; 970 + version = "2023-08-12"; 971 src = fetchFromGitHub { 972 owner = "nvchad"; 973 repo = "base46"; 974 + rev = "e56d8b27addf13504ac112ecdb37acb5ac16065b"; 975 + sha256 = "0wzi5fkzdxx5xcbs20a9a52yb8b6v60gbd8j3n76bppss06h0lmg"; 976 }; 977 meta.homepage = "https://github.com/nvchad/base46/"; 978 }; ··· 1235 src = fetchFromGitHub { 1236 owner = "ms-jpq"; 1237 repo = "chadtree"; 1238 + rev = "f897f9caaee339c8447280838c6d0c6770ef534a"; 1239 + sha256 = "1ckpch1i1d3lfmrm5mxw9dikrbsa2mhp5q3fwm7yrlx1mlvh1ahg"; 1240 }; 1241 meta.homepage = "https://github.com/ms-jpq/chadtree/"; 1242 }; ··· 2033 meta.homepage = "https://github.com/Exafunction/codeium.vim/"; 2034 }; 2035 2036 + codewindow-nvim = buildVimPluginFrom2Nix { 2037 + pname = "codewindow.nvim"; 2038 + version = "2023-07-23"; 2039 + src = fetchFromGitHub { 2040 + owner = "gorbit99"; 2041 + repo = "codewindow.nvim"; 2042 + rev = "11fb5520898d22a563fe6a124a61c0d2887f3d3f"; 2043 + sha256 = "1rnw5z3vwc183gvk3v3xciyzgqwfp0jsd5vckj5gpig1lg9l4yzf"; 2044 + }; 2045 + meta.homepage = "https://github.com/gorbit99/codewindow.nvim/"; 2046 + }; 2047 + 2048 codi-vim = buildVimPluginFrom2Nix { 2049 pname = "codi.vim"; 2050 version = "2023-02-28"; ··· 2959 meta.homepage = "https://github.com/direnv/direnv.vim/"; 2960 }; 2961 2962 + distant-nvim = buildVimPluginFrom2Nix { 2963 + pname = "distant.nvim"; 2964 + version = "2023-07-24"; 2965 + src = fetchFromGitHub { 2966 + owner = "chipsenkbeil"; 2967 + repo = "distant.nvim"; 2968 + rev = "17bcd37f8d91dcb987456be456d8a95db1a772ba"; 2969 + sha256 = "0z6if0p7n8bi5gd4p3h7i7z3kq8q2yr864nfq0bvzy9ps131z9wl"; 2970 + }; 2971 + meta.homepage = "https://github.com/chipsenkbeil/distant.nvim/"; 2972 + }; 2973 + 2974 doki-theme-vim = buildVimPluginFrom2Nix { 2975 pname = "doki-theme-vim"; 2976 version = "2023-01-07"; ··· 3323 3324 firenvim = buildVimPluginFrom2Nix { 3325 pname = "firenvim"; 3326 + version = "2023-08-12"; 3327 src = fetchFromGitHub { 3328 owner = "glacambre"; 3329 repo = "firenvim"; 3330 + rev = "1acdf0270bdd9b83a876a15c99dca3c9b40fbaa5"; 3331 + sha256 = "0fi5rf408ii5k3zkjkvc2n8n18g1wd54c3k4a8ir0bzgsiwqv767"; 3332 }; 3333 meta.homepage = "https://github.com/glacambre/firenvim/"; 3334 }; ··· 3442 meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/"; 3443 }; 3444 3445 + fold-preview-nvim = buildVimPluginFrom2Nix { 3446 + pname = "fold-preview.nvim"; 3447 + version = "2023-01-27"; 3448 + src = fetchFromGitHub { 3449 + owner = "anuvyklack"; 3450 + repo = "fold-preview.nvim"; 3451 + rev = "b7920cb0aba2b48a6b679bff45f98c3ebc0f0b89"; 3452 + sha256 = "1hjzwcs7cdyf8sn3hj4vl5zpn3lzd2qvsg44wzvlslnynqcxkg0l"; 3453 + }; 3454 + meta.homepage = "https://github.com/anuvyklack/fold-preview.nvim/"; 3455 + }; 3456 + 3457 formatter-nvim = buildVimPluginFrom2Nix { 3458 pname = "formatter.nvim"; 3459 version = "2023-07-13"; ··· 3888 3889 grammar-guard-nvim = buildVimPluginFrom2Nix { 3890 pname = "grammar-guard.nvim"; 3891 + version = "2023-08-12"; 3892 src = fetchFromGitHub { 3893 owner = "brymer-meneses"; 3894 repo = "grammar-guard.nvim"; 3895 + rev = "265e5a0eba8cf5b14702a93841b218d4c05be43b"; 3896 + sha256 = "040m6gpvgqh1h9cysbbrmklbf5vw13ij4ffvxbnzs33xfbl8q058"; 3897 }; 3898 meta.homepage = "https://github.com/brymer-meneses/grammar-guard.nvim/"; 3899 }; ··· 4186 4187 hotpot-nvim = buildVimPluginFrom2Nix { 4188 pname = "hotpot.nvim"; 4189 + version = "2023-08-12"; 4190 src = fetchFromGitHub { 4191 owner = "rktjmp"; 4192 repo = "hotpot.nvim"; 4193 + rev = "e5bb83d608271a9d977718f30f1b6bc9bd1b0dbe"; 4194 + sha256 = "18nakf34apry57c4b3jprkc40ixg4p3a4nws7rh9i5dfi504blr7"; 4195 }; 4196 meta.homepage = "https://github.com/rktjmp/hotpot.nvim/"; 4197 }; ··· 4282 4283 image-nvim = buildVimPluginFrom2Nix { 4284 pname = "image.nvim"; 4285 + version = "2023-07-22"; 4286 src = fetchFromGitHub { 4287 owner = "3rd"; 4288 repo = "image.nvim"; 4289 + rev = "5d8b8b3acbe2ec6fcfe782cbda3a8ebdad9c1b51"; 4290 + sha256 = "0s7s803gg2b4wilfx973kf4c2gppsyr747wkwjlms3yjbx8iyb8k"; 4291 }; 4292 meta.homepage = "https://github.com/3rd/image.nvim/"; 4293 }; ··· 4615 sha256 = "13p3i0b8azkmhafyv8hc4hav1pmgqg52xzvk2a3gp3ppqqx9bwpc"; 4616 }; 4617 meta.homepage = "https://github.com/kmonad/kmonad-vim/"; 4618 + }; 4619 + 4620 + knap = buildVimPluginFrom2Nix { 4621 + pname = "knap"; 4622 + version = "2023-07-25"; 4623 + src = fetchFromGitHub { 4624 + owner = "frabjous"; 4625 + repo = "knap"; 4626 + rev = "503010f541696e99ed5c62f658620e546cebf8b0"; 4627 + sha256 = "1aqfy1c4h95p94npdvyd7dhkr19f4qbnmr05sg1wbvqd9lfkslym"; 4628 + }; 4629 + meta.homepage = "https://github.com/frabjous/knap/"; 4630 }; 4631 4632 kommentary = buildVimPluginFrom2Nix { ··· 5313 meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/"; 5314 }; 5315 5316 + markid = buildVimPluginFrom2Nix { 5317 + pname = "markid"; 5318 + version = "2023-07-01"; 5319 + src = fetchFromGitHub { 5320 + owner = "David-Kunz"; 5321 + repo = "markid"; 5322 + rev = "46d03e1b7d82c07bbf06ef2f6595fea73ae6410b"; 5323 + sha256 = "1mk96p5if9zd3apv7d2kn4c3h2ik39v80apr0qf10h8lwx5zx19c"; 5324 + }; 5325 + meta.homepage = "https://github.com/David-Kunz/markid/"; 5326 + }; 5327 + 5328 marks-nvim = buildVimPluginFrom2Nix { 5329 pname = "marks.nvim"; 5330 version = "2023-02-25"; ··· 5445 meta.homepage = "https://github.com/savq/melange-nvim/"; 5446 }; 5447 5448 + mind-nvim = buildVimPluginFrom2Nix { 5449 + pname = "mind.nvim"; 5450 + version = "2023-03-22"; 5451 + src = fetchFromGitHub { 5452 + owner = "phaazon"; 5453 + repo = "mind.nvim"; 5454 + rev = "002137dd7cf97865ebd01b6a260209d2daf2da66"; 5455 + sha256 = "1p7gb8p1jrb2wx3x67lv7am3k1a14kvwsq89fdpb8b060s2l1214"; 5456 + }; 5457 + meta.homepage = "https://github.com/phaazon/mind.nvim/"; 5458 + }; 5459 + 5460 mini-nvim = buildVimPluginFrom2Nix { 5461 pname = "mini.nvim"; 5462 + version = "2023-08-12"; 5463 src = fetchFromGitHub { 5464 owner = "echasnovski"; 5465 repo = "mini.nvim"; 5466 + rev = "654c723046d8f06151c7e940819c66030df011e7"; 5467 + sha256 = "1glvdrws6q2ynmmnhhw88704lb1q5npqnl4vwls8yy3pvwwz78l8"; 5468 }; 5469 meta.homepage = "https://github.com/echasnovski/mini.nvim/"; 5470 }; ··· 5575 sha256 = "0djk5z1bs3w3ysvpq8yabb2g7n0vbamsj95pa4jgsnah3slmqrkm"; 5576 }; 5577 meta.homepage = "https://github.com/yegappan/mru/"; 5578 + }; 5579 + 5580 + nabla-nvim = buildVimPluginFrom2Nix { 5581 + pname = "nabla.nvim"; 5582 + version = "2023-04-22"; 5583 + src = fetchFromGitHub { 5584 + owner = "jbyuki"; 5585 + repo = "nabla.nvim"; 5586 + rev = "8c143ad2b3ab3b8ffbd51e238ccfcbd246452a7e"; 5587 + sha256 = "17iw6ca9b8mrw68f4zkghnf3if76yrpj5fn8cp8829zpm722l6b1"; 5588 + }; 5589 + meta.homepage = "https://github.com/jbyuki/nabla.nvim/"; 5590 }; 5591 5592 ncm2 = buildVimPluginFrom2Nix { ··· 5819 5820 neco-vim = buildVimPluginFrom2Nix { 5821 pname = "neco-vim"; 5822 + version = "2023-08-12"; 5823 src = fetchFromGitHub { 5824 owner = "Shougo"; 5825 repo = "neco-vim"; 5826 + rev = "98f142bc8279d467e4e8ad81f1f007b1fe13d0a1"; 5827 + sha256 = "0a5v767ad746m4vhzj5lq11h7zxc78zz4mxs4dr0s5n9a3g6z9sl"; 5828 }; 5829 meta.homepage = "https://github.com/Shougo/neco-vim/"; 5830 }; 5831 5832 neo-tree-nvim = buildVimPluginFrom2Nix { 5833 pname = "neo-tree.nvim"; 5834 + version = "2023-08-12"; 5835 src = fetchFromGitHub { 5836 owner = "nvim-neo-tree"; 5837 repo = "neo-tree.nvim"; 5838 + rev = "76c43f4017b26127b4749570f947385d0c872224"; 5839 + sha256 = "12qja6fw5pmpwn914gmgkk0ck55g61z9ndlqpadk1z8d3939rnbp"; 5840 }; 5841 meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; 5842 }; ··· 5879 5880 neodev-nvim = buildVimPluginFrom2Nix { 5881 pname = "neodev.nvim"; 5882 + version = "2023-08-12"; 5883 src = fetchFromGitHub { 5884 owner = "folke"; 5885 repo = "neodev.nvim"; 5886 + rev = "9a5c0f0de5c15fba52d4fb83d425d3f4fa7abfa1"; 5887 + sha256 = "1yvshl98nlza20lzay9q3rwv16xcnbrvjiwqn0f71zxrs7hzzs66"; 5888 }; 5889 meta.homepage = "https://github.com/folke/neodev.nvim/"; 5890 }; 5891 5892 neoformat = buildVimPluginFrom2Nix { 5893 pname = "neoformat"; 5894 + version = "2023-08-12"; 5895 src = fetchFromGitHub { 5896 owner = "sbdchd"; 5897 repo = "neoformat"; 5898 + rev = "159e3e24fc018e16a937286488be17602aff8e3c"; 5899 + sha256 = "1fyg3s8sqavmg5gqvpfdrywbyx8rfg2qrkc7qlhgs767k6dnp1vw"; 5900 }; 5901 meta.homepage = "https://github.com/sbdchd/neoformat/"; 5902 }; ··· 5915 5916 neogit = buildVimPluginFrom2Nix { 5917 pname = "neogit"; 5918 + version = "2023-08-12"; 5919 src = fetchFromGitHub { 5920 owner = "NeogitOrg"; 5921 repo = "neogit"; 5922 + rev = "b92d229086f201b983f561a41f3eb18fef7f0e53"; 5923 + sha256 = "00xwhyiwcyrmbh9zmlbxsrw956vafnn673vdrg06rfx9mqkjzy2f"; 5924 }; 5925 meta.homepage = "https://github.com/NeogitOrg/neogit/"; 5926 }; ··· 5971 sha256 = "1rdgbx76kvlzg81cn653bqg9lj52gxnf15zla1kscw7wgh6hjvyh"; 5972 }; 5973 meta.homepage = "https://github.com/rafamadriz/neon/"; 5974 + }; 5975 + 5976 + neorepl-nvim = buildVimPluginFrom2Nix { 5977 + pname = "neorepl.nvim"; 5978 + version = "2022-11-07"; 5979 + src = fetchFromGitHub { 5980 + owner = "ii14"; 5981 + repo = "neorepl.nvim"; 5982 + rev = "bc819bb42edca9c4a6b6e5d00f09f94a49c3b735"; 5983 + sha256 = "05fd3ygqpw5vyqgwc7iwbm8a7y70fl438khp6lz62bcsdd28yirs"; 5984 + }; 5985 + meta.homepage = "https://github.com/ii14/neorepl.nvim/"; 5986 }; 5987 5988 neorg = buildVimPluginFrom2Nix { ··· 6311 6312 nerdcommenter = buildVimPluginFrom2Nix { 6313 pname = "nerdcommenter"; 6314 + version = "2023-08-12"; 6315 src = fetchFromGitHub { 6316 owner = "preservim"; 6317 repo = "nerdcommenter"; 6318 + rev = "d2e21d417f6c788b11ae3b90d7ac478930dead36"; 6319 + sha256 = "140xp1kqj76gyn440bs62ff85b4xvlvxiyidvb5r4w0imrlacnpc"; 6320 }; 6321 meta.homepage = "https://github.com/preservim/nerdcommenter/"; 6322 }; ··· 6551 6552 null-ls-nvim = buildVimPluginFrom2Nix { 6553 pname = "null-ls.nvim"; 6554 + version = "2023-08-12"; 6555 src = fetchFromGitHub { 6556 owner = "jose-elias-alvarez"; 6557 repo = "null-ls.nvim"; 6558 + rev = "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7"; 6559 + sha256 = "00nkg77y9mp7ac46bdcaga36bbbrwbp7k1d6ajjgg9qf76pk8q3i"; 6560 }; 6561 meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/"; 6562 }; ··· 6695 6696 nvim-cmp = buildNeovimPlugin { 6697 pname = "nvim-cmp"; 6698 + version = "2023-08-12"; 6699 src = fetchFromGitHub { 6700 owner = "hrsh7th"; 6701 repo = "nvim-cmp"; 6702 + rev = "51f1e11a89ec701221877532ee1a23557d291dd5"; 6703 + sha256 = "11v940v6md7sj1digh7kwckb80zbxxp3shlszi44c43iw9viznxi"; 6704 }; 6705 meta.homepage = "https://github.com/hrsh7th/nvim-cmp/"; 6706 }; ··· 6911 6912 nvim-gdb = buildVimPluginFrom2Nix { 6913 pname = "nvim-gdb"; 6914 + version = "2023-08-12"; 6915 src = fetchFromGitHub { 6916 owner = "sakhnik"; 6917 repo = "nvim-gdb"; 6918 + rev = "31511c2b27b7c69ab64e6b369d54cbd4b82348e2"; 6919 + sha256 = "1ff1b9wgi3711hyx0xr48g4wis0x5hhsrymclrpjiykyvmrjibc2"; 6920 }; 6921 meta.homepage = "https://github.com/sakhnik/nvim-gdb/"; 6922 }; ··· 7003 sha256 = "1sv9p5kn0v7m2r8zq6j43hvg2bavai3qhymxh7mc4bw9jfa621md"; 7004 }; 7005 meta.homepage = "https://github.com/gennaro-tedesco/nvim-jqx/"; 7006 + }; 7007 + 7008 + nvim-julia-autotest = buildVimPluginFrom2Nix { 7009 + pname = "nvim-julia-autotest"; 7010 + version = "2022-10-31"; 7011 + src = fetchgit { 7012 + url = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; 7013 + rev = "b74e2f9c961e604cb56cc23f87188348bfa0f33f"; 7014 + sha256 = "0jd6r5chh4rdj1jyrsqhb67glwqjcygzvk8gyp0v7axr2xn6r8r1"; 7015 + }; 7016 + meta.homepage = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; 7017 }; 7018 7019 nvim-lastplace = buildVimPluginFrom2Nix { ··· 7310 src = fetchFromGitHub { 7311 owner = "dstein64"; 7312 repo = "nvim-scrollview"; 7313 + rev = "69edd48b8cf0b0502566a436967b78f42ca56a14"; 7314 + sha256 = "1s8vb06v6hcr71kv4jia2h1kjcd2wci7bcd1imhiqbkh5y5pxh2a"; 7315 }; 7316 meta.homepage = "https://github.com/dstein64/nvim-scrollview/"; 7317 }; 7318 7319 + nvim-search-and-replace = buildVimPluginFrom2Nix { 7320 + pname = "nvim-search-and-replace"; 7321 + version = "2022-09-06"; 7322 + src = fetchFromGitHub { 7323 + owner = "s1n7ax"; 7324 + repo = "nvim-search-and-replace"; 7325 + rev = "1b455cf945c42fa28f95d111d1a1110d24b37175"; 7326 + sha256 = "054qj69i45lgjflzrfck4jdmsl41mfvk9d092h68a19znsms1i30"; 7327 + }; 7328 + meta.homepage = "https://github.com/s1n7ax/nvim-search-and-replace/"; 7329 + }; 7330 + 7331 nvim-snippy = buildVimPluginFrom2Nix { 7332 pname = "nvim-snippy"; 7333 version = "2023-05-15"; ··· 7438 7439 nvim-treesitter = buildVimPluginFrom2Nix { 7440 pname = "nvim-treesitter"; 7441 + version = "2023-08-12"; 7442 src = fetchFromGitHub { 7443 owner = "nvim-treesitter"; 7444 repo = "nvim-treesitter"; 7445 + rev = "800b2f388b0f880be8a2fcd29494f7459af30a21"; 7446 + sha256 = "18zyqj9s071fx8i9m3rmwsy98rv6h2mcl2i8vblhaa55nv6f7y4j"; 7447 }; 7448 meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; 7449 }; ··· 7508 meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; 7509 }; 7510 7511 + nvim-treesitter-textsubjects = buildVimPluginFrom2Nix { 7512 + pname = "nvim-treesitter-textsubjects"; 7513 + version = "2023-08-03"; 7514 + src = fetchFromGitHub { 7515 + owner = "RRethy"; 7516 + repo = "nvim-treesitter-textsubjects"; 7517 + rev = "df75fcec548014f158cda6498ac38c4622c221e1"; 7518 + sha256 = "0fx8b9w03zn6v8db2w6h29y8hpbjckvm27nh49vvsis3icqyk7iv"; 7519 + }; 7520 + meta.homepage = "https://github.com/RRethy/nvim-treesitter-textsubjects/"; 7521 + }; 7522 + 7523 nvim-ts-autotag = buildVimPluginFrom2Nix { 7524 pname = "nvim-ts-autotag"; 7525 version = "2023-06-16"; ··· 7577 sha256 = "0sq8fnbvys14b98w8qjdcypkw2mibv8hvz7b19l8f4hyd2nwl3l4"; 7578 }; 7579 meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/"; 7580 + }; 7581 + 7582 + nvim-unception = buildVimPluginFrom2Nix { 7583 + pname = "nvim-unception"; 7584 + version = "2023-04-11"; 7585 + src = fetchFromGitHub { 7586 + owner = "samjwill"; 7587 + repo = "nvim-unception"; 7588 + rev = "0cbf11a6c5c4314e88245b69d460f85f30885d2e"; 7589 + sha256 = "12fy3nchbg7w8yyhk1ym5amx8kvvx73wmlqgi8ss2ikywc7n5d0c"; 7590 + }; 7591 + meta.homepage = "https://github.com/samjwill/nvim-unception/"; 7592 }; 7593 7594 nvim-web-devicons = buildVimPluginFrom2Nix { ··· 7701 7702 oil-nvim = buildVimPluginFrom2Nix { 7703 pname = "oil.nvim"; 7704 + version = "2023-08-12"; 7705 src = fetchFromGitHub { 7706 owner = "stevearc"; 7707 repo = "oil.nvim"; 7708 + rev = "0ccf95ae5d0ea731de8d427304f95d384a0664c4"; 7709 + sha256 = "0md4ih34kcfs15vf9g1acnnyzpcja214zdzr8yxzis9idqyh3liz"; 7710 fetchSubmodules = true; 7711 }; 7712 meta.homepage = "https://github.com/stevearc/oil.nvim/"; ··· 8025 meta.homepage = "https://github.com/motus/pig.vim/"; 8026 }; 8027 8028 + plantuml-previewer-vim = buildVimPluginFrom2Nix { 8029 + pname = "plantuml-previewer.vim"; 8030 + version = "2023-03-07"; 8031 + src = fetchFromGitHub { 8032 + owner = "weirongxu"; 8033 + repo = "plantuml-previewer.vim"; 8034 + rev = "1dd4d0f2b09cd80a217f76d82f93830dbbe689b3"; 8035 + sha256 = "0pvdiyyqd9j65q9wf3y6jxgry4lxvnbd2ah1761a4vbn02zdrr2v"; 8036 + }; 8037 + meta.homepage = "https://github.com/weirongxu/plantuml-previewer.vim/"; 8038 + }; 8039 + 8040 plantuml-syntax = buildVimPluginFrom2Nix { 8041 pname = "plantuml-syntax"; 8042 version = "2022-08-26"; ··· 8156 sha256 = "1l9s6linmjy7wlxsp4gipffnxakwvi1037phcnsr294c920d4dz5"; 8157 }; 8158 meta.homepage = "https://github.com/ewilazarus/preto/"; 8159 + }; 8160 + 8161 + pretty-fold-nvim = buildVimPluginFrom2Nix { 8162 + pname = "pretty-fold.nvim"; 8163 + version = "2022-07-20"; 8164 + src = fetchFromGitHub { 8165 + owner = "anuvyklack"; 8166 + repo = "pretty-fold.nvim"; 8167 + rev = "a7d8b424abe0eedf50116c460fbe6dfd5783b1d5"; 8168 + sha256 = "0fjjd5zyh588czz886v29wff8jy5fwa4nbjfailwph4p9b1xj0rx"; 8169 + }; 8170 + meta.homepage = "https://github.com/anuvyklack/pretty-fold.nvim/"; 8171 }; 8172 8173 prev_indent = buildVimPluginFrom2Nix { ··· 9473 9474 telescope-file-browser-nvim = buildVimPluginFrom2Nix { 9475 pname = "telescope-file-browser.nvim"; 9476 + version = "2023-08-12"; 9477 src = fetchFromGitHub { 9478 owner = "nvim-telescope"; 9479 repo = "telescope-file-browser.nvim"; 9480 + rev = "0e054a9dd786280a4226c50e85e447992f6b3ff0"; 9481 + sha256 = "1a4q9dfmb5dbsznbpnd3iaqnysa1y29jnpy6kqhk22iwqgj8hwnz"; 9482 }; 9483 meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/"; 9484 }; 9485 9486 telescope-frecency-nvim = buildVimPluginFrom2Nix { 9487 pname = "telescope-frecency.nvim"; 9488 + version = "2023-08-12"; 9489 src = fetchFromGitHub { 9490 owner = "nvim-telescope"; 9491 repo = "telescope-frecency.nvim"; 9492 + rev = "2ac311a2666edb447db5139b326777c44adc1e2a"; 9493 + sha256 = "1p8wi76mpr6gsyksbf7xcd6b4888csrrgj1g6hif9yb3d6r7fzm6"; 9494 }; 9495 meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/"; 9496 }; ··· 10124 10125 typescript-nvim = buildVimPluginFrom2Nix { 10126 pname = "typescript.nvim"; 10127 + version = "2023-08-12"; 10128 src = fetchFromGitHub { 10129 owner = "jose-elias-alvarez"; 10130 repo = "typescript.nvim"; 10131 + rev = "4de85ef699d7e6010528dcfbddc2ed4c2c421467"; 10132 + sha256 = "0rx29i3hmzh2knxx098fvfc0iafx3j08bs1zbv4dxadq56dnhaxm"; 10133 }; 10134 meta.homepage = "https://github.com/jose-elias-alvarez/typescript.nvim/"; 10135 }; ··· 12054 meta.homepage = "https://github.com/rhysd/vim-grammarous/"; 12055 }; 12056 12057 + vim-graphical-preview = buildVimPluginFrom2Nix { 12058 + pname = "vim-graphical-preview"; 12059 + version = "2022-11-28"; 12060 + src = fetchFromGitHub { 12061 + owner = "bytesnake"; 12062 + repo = "vim-graphical-preview"; 12063 + rev = "d5692493d33d5c9d776e94c9d77493741a3293c8"; 12064 + sha256 = "1w7w46359s9s8n2ndihd39bwv69jc4nwjsjy3bgzgrd2qni9xf6p"; 12065 + }; 12066 + meta.homepage = "https://github.com/bytesnake/vim-graphical-preview/"; 12067 + }; 12068 + 12069 vim-graphql = buildVimPluginFrom2Nix { 12070 pname = "vim-graphql"; 12071 version = "2023-01-16"; ··· 13547 13548 vim-pasta = buildVimPluginFrom2Nix { 13549 pname = "vim-pasta"; 13550 + version = "2023-08-12"; 13551 src = fetchFromGitHub { 13552 owner = "ku1ik"; 13553 repo = "vim-pasta"; 13554 + rev = "2b786703eef9f82ae7a56f3de4ee43e1e5efaaa5"; 13555 + sha256 = "1q4d512rq57awasb441slqp29mkzi3jxmy8clrp2s9ydwdbndwlx"; 13556 }; 13557 meta.homepage = "https://github.com/ku1ik/vim-pasta/"; 13558 }; ··· 15637 15638 yats-vim = buildVimPluginFrom2Nix { 15639 pname = "yats.vim"; 15640 + version = "2023-08-12"; 15641 src = fetchFromGitHub { 15642 owner = "HerringtonDarkholme"; 15643 repo = "yats.vim"; 15644 + rev = "8878bdd7fc01eec647267d4433a763474b6a5db4"; 15645 + sha256 = "0070r63v9kjl3cx9w8xsilyww9nwyharc6l274y7mg4bfhddpbr3"; 15646 fetchSubmodules = true; 15647 }; 15648 meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/"; ··· 15934 sha256 = "19gndx91dj3c76zbidlk4gjgjw0qkpv4x0ws6f1fsga9b9gplf3g"; 15935 }; 15936 meta.homepage = "https://github.com/rose-pine/neovim/"; 15937 + }; 15938 + 15939 + samodostal-image-nvim = buildVimPluginFrom2Nix { 15940 + pname = "samodostal-image-nvim"; 15941 + version = "2023-06-08"; 15942 + src = fetchFromGitHub { 15943 + owner = "samodostal"; 15944 + repo = "image.nvim"; 15945 + rev = "dcabdf47b0b974b61d08eeafa2c519927e37cf27"; 15946 + sha256 = "1c0s460nzw1imvvzj6b9hsalv60jmcyrfga5gldbskz58hyj739m"; 15947 + }; 15948 + meta.homepage = "https://github.com/samodostal/image.nvim/"; 15949 }; 15950 15951 tinykeymap = buildVimPluginFrom2Nix {
+6 -6
pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
··· 1929 }; 1930 teal = buildGrammar { 1931 language = "teal"; 1932 - version = "0.0.0+rev=2158ecc"; 1933 src = fetchFromGitHub { 1934 owner = "euclidianAce"; 1935 repo = "tree-sitter-teal"; 1936 - rev = "2158ecce11ea542f9b791baf2c7fb33798174ed2"; 1937 - hash = "sha256-Vofqs1AW5/a7kdPjY8+fu/t/mfBpaXiFFeG1Y0hsP6E="; 1938 }; 1939 generate = true; 1940 meta.homepage = "https://github.com/euclidianAce/tree-sitter-teal"; ··· 2187 }; 2188 wing = buildGrammar { 2189 language = "wing"; 2190 - version = "0.0.0+rev=f416d4b"; 2191 src = fetchFromGitHub { 2192 owner = "winglang"; 2193 repo = "wing"; 2194 - rev = "f416d4b76141d803ea2ebadf0629fca164133723"; 2195 - hash = "sha256-xSt6C64PmNJOqZxon4TWbAIlMzSaRClPc47wi9Sxdpk="; 2196 }; 2197 location = "libs/tree-sitter-wing"; 2198 generate = true;
··· 1929 }; 1930 teal = buildGrammar { 1931 language = "teal"; 1932 + version = "0.0.0+rev=33482c9"; 1933 src = fetchFromGitHub { 1934 owner = "euclidianAce"; 1935 repo = "tree-sitter-teal"; 1936 + rev = "33482c92a0dfa694491d34e167a1d2f52b0dccb1"; 1937 + hash = "sha256-6T9hn+Tvz8AYMsAu2J8vt6WkRQRrdGwGJcw3c85W14I="; 1938 }; 1939 generate = true; 1940 meta.homepage = "https://github.com/euclidianAce/tree-sitter-teal"; ··· 2187 }; 2188 wing = buildGrammar { 2189 language = "wing"; 2190 + version = "0.0.0+rev=9399564"; 2191 src = fetchFromGitHub { 2192 owner = "winglang"; 2193 repo = "wing"; 2194 + rev = "9399564d1e32864c6af2d49c0dcd1f76d54443f2"; 2195 + hash = "sha256-Me+AhVl0a38w54vWa4yvxOPHMwVnJw1wewrn0bBC9AM="; 2196 }; 2197 location = "libs/tree-sitter-wing"; 2198 generate = true;
+15
pkgs/applications/editors/vim/plugins/vim-plugin-names
··· 169 https://github.com/neoclide/coc.nvim/,release, 170 https://github.com/manicmaniac/coconut.vim/,HEAD, 171 https://github.com/Exafunction/codeium.vim/,HEAD, 172 https://github.com/metakirby5/codi.vim/,, 173 https://github.com/tjdevries/colorbuddy.nvim/,, 174 https://github.com/lilydjwg/colorizer/,, ··· 245 https://github.com/sindrets/diffview.nvim/,, 246 https://github.com/elihunter173/dirbuf.nvim/,HEAD, 247 https://github.com/direnv/direnv.vim/,, 248 https://github.com/doki-theme/doki-theme-vim/,, 249 https://github.com/Mofiqul/dracula.nvim/,HEAD, 250 https://github.com/stevearc/dressing.nvim/,, ··· 285 https://github.com/fhill2/floating.nvim/,, 286 https://github.com/floobits/floobits-neovim/,, 287 https://github.com/akinsho/flutter-tools.nvim/,HEAD, 288 https://github.com/mhartington/formatter.nvim/,, 289 https://github.com/megaannum/forms/,, 290 https://github.com/rafamadriz/friendly-snippets/,, ··· 356 https://github.com/idris-hackers/idris-vim/,, 357 https://github.com/edwinb/idris2-vim/,, 358 https://github.com/3rd/image.nvim/,HEAD, 359 https://github.com/lewis6991/impatient.nvim/,, 360 https://github.com/smjonas/inc-rename.nvim/,HEAD, 361 https://github.com/nishigori/increment-activator/,, ··· 383 https://github.com/rebelot/kanagawa.nvim/,, 384 https://github.com/anuvyklack/keymap-layer.nvim/,HEAD, 385 https://github.com/kmonad/kmonad-vim/,, 386 https://github.com/b3nj5m1n/kommentary/,, 387 https://github.com/udalov/kotlin-vim/,, 388 https://github.com/qnighy/lalrpop.vim/,, ··· 440 https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD, 441 https://github.com/winston0410/mark-radar.nvim/,HEAD, 442 https://github.com/iamcco/markdown-preview.nvim/,, 443 https://github.com/chentoast/marks.nvim/,, 444 https://github.com/williamboman/mason-lspconfig.nvim/,HEAD, 445 https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/,HEAD, ··· 450 https://github.com/vim-scripts/mayansmoke/,, 451 https://github.com/chikamichi/mediawiki.vim/,HEAD, 452 https://github.com/savq/melange-nvim/,, 453 https://github.com/echasnovski/mini.nvim/,, 454 https://github.com/wfxr/minimap.vim/,, 455 https://github.com/jghauser/mkdir.nvim/,main, ··· 461 https://github.com/shaunsingh/moonlight.nvim/,,pure-lua 462 https://github.com/leafo/moonscript-vim/,HEAD, 463 https://github.com/yegappan/mru/,, 464 https://github.com/ncm2/ncm2/,, 465 https://github.com/ncm2/ncm2-bufword/,, 466 https://github.com/ncm2/ncm2-cssomni/,, ··· 493 https://github.com/neomake/neomake/,, 494 https://github.com/Shougo/neomru.vim/,, 495 https://github.com/rafamadriz/neon/,, 496 https://github.com/nvim-neorg/neorg/,, 497 https://github.com/nvim-neorg/neorg-telescope/,HEAD, 498 https://github.com/karb94/neoscroll.nvim/,, ··· 580 https://github.com/neovimhaskell/nvim-hs.vim/,, 581 https://github.com/mfussenegger/nvim-jdtls/,, 582 https://github.com/gennaro-tedesco/nvim-jqx/,, 583 https://github.com/ethanholz/nvim-lastplace/,HEAD, 584 https://github.com/kosayoda/nvim-lightbulb/,, 585 https://github.com/josa42/nvim-lightline-lsp/,, ··· 605 https://github.com/olrtg/nvim-rename-state/,HEAD, 606 https://github.com/petertriho/nvim-scrollbar/,HEAD, 607 https://github.com/dstein64/nvim-scrollview/,, 608 https://github.com/dcampos/nvim-snippy/,HEAD, 609 https://github.com/ishan9299/nvim-solarized-lua/,, 610 https://github.com/nvim-pack/nvim-spectre/,, ··· 620 https://github.com/eddiebergman/nvim-treesitter-pyfold/,, 621 https://github.com/nvim-treesitter/nvim-treesitter-refactor/,, 622 https://github.com/nvim-treesitter/nvim-treesitter-textobjects/,, 623 https://github.com/windwp/nvim-ts-autotag/,, 624 https://github.com/joosepalviste/nvim-ts-context-commentstring/,, 625 https://github.com/mrjones2014/nvim-ts-rainbow/,, 626 https://gitlab.com/HiPhish/nvim-ts-rainbow2,HEAD, 627 https://github.com/kevinhwang91/nvim-ufo/,HEAD, 628 https://github.com/kyazdani42/nvim-web-devicons/,, 629 https://github.com/AckslD/nvim-whichkey-setup.lua/,, 630 https://github.com/roxma/nvim-yarp/,, ··· 661 https://github.com/pest-parser/pest.vim/,HEAD, 662 https://github.com/lifepillar/pgsql.vim/,, 663 https://github.com/motus/pig.vim/,, 664 https://github.com/aklt/plantuml-syntax/,, 665 https://github.com/nvim-treesitter/playground/,, 666 https://github.com/nvim-lua/plenary.nvim/,, ··· 671 https://github.com/andweeb/presence.nvim/,, 672 https://github.com/sotte/presenting.vim/,, 673 https://github.com/ewilazarus/preto/,HEAD, 674 https://github.com/vim-scripts/prev_indent/,, 675 https://github.com/ahmedkhalf/project.nvim/,, 676 https://github.com/kevinhwang91/promise-async/,HEAD,
··· 169 https://github.com/neoclide/coc.nvim/,release, 170 https://github.com/manicmaniac/coconut.vim/,HEAD, 171 https://github.com/Exafunction/codeium.vim/,HEAD, 172 + https://github.com/gorbit99/codewindow.nvim/,HEAD, 173 https://github.com/metakirby5/codi.vim/,, 174 https://github.com/tjdevries/colorbuddy.nvim/,, 175 https://github.com/lilydjwg/colorizer/,, ··· 246 https://github.com/sindrets/diffview.nvim/,, 247 https://github.com/elihunter173/dirbuf.nvim/,HEAD, 248 https://github.com/direnv/direnv.vim/,, 249 + https://github.com/chipsenkbeil/distant.nvim/,HEAD, 250 https://github.com/doki-theme/doki-theme-vim/,, 251 https://github.com/Mofiqul/dracula.nvim/,HEAD, 252 https://github.com/stevearc/dressing.nvim/,, ··· 287 https://github.com/fhill2/floating.nvim/,, 288 https://github.com/floobits/floobits-neovim/,, 289 https://github.com/akinsho/flutter-tools.nvim/,HEAD, 290 + https://github.com/anuvyklack/fold-preview.nvim/,HEAD, 291 https://github.com/mhartington/formatter.nvim/,, 292 https://github.com/megaannum/forms/,, 293 https://github.com/rafamadriz/friendly-snippets/,, ··· 359 https://github.com/idris-hackers/idris-vim/,, 360 https://github.com/edwinb/idris2-vim/,, 361 https://github.com/3rd/image.nvim/,HEAD, 362 + https://github.com/samodostal/image.nvim/,HEAD,samodostal-image-nvim 363 https://github.com/lewis6991/impatient.nvim/,, 364 https://github.com/smjonas/inc-rename.nvim/,HEAD, 365 https://github.com/nishigori/increment-activator/,, ··· 387 https://github.com/rebelot/kanagawa.nvim/,, 388 https://github.com/anuvyklack/keymap-layer.nvim/,HEAD, 389 https://github.com/kmonad/kmonad-vim/,, 390 + https://github.com/frabjous/knap/,HEAD, 391 https://github.com/b3nj5m1n/kommentary/,, 392 https://github.com/udalov/kotlin-vim/,, 393 https://github.com/qnighy/lalrpop.vim/,, ··· 445 https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD, 446 https://github.com/winston0410/mark-radar.nvim/,HEAD, 447 https://github.com/iamcco/markdown-preview.nvim/,, 448 + https://github.com/David-Kunz/markid/,HEAD, 449 https://github.com/chentoast/marks.nvim/,, 450 https://github.com/williamboman/mason-lspconfig.nvim/,HEAD, 451 https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/,HEAD, ··· 456 https://github.com/vim-scripts/mayansmoke/,, 457 https://github.com/chikamichi/mediawiki.vim/,HEAD, 458 https://github.com/savq/melange-nvim/,, 459 + https://github.com/phaazon/mind.nvim/,HEAD, 460 https://github.com/echasnovski/mini.nvim/,, 461 https://github.com/wfxr/minimap.vim/,, 462 https://github.com/jghauser/mkdir.nvim/,main, ··· 468 https://github.com/shaunsingh/moonlight.nvim/,,pure-lua 469 https://github.com/leafo/moonscript-vim/,HEAD, 470 https://github.com/yegappan/mru/,, 471 + https://github.com/jbyuki/nabla.nvim/,HEAD, 472 https://github.com/ncm2/ncm2/,, 473 https://github.com/ncm2/ncm2-bufword/,, 474 https://github.com/ncm2/ncm2-cssomni/,, ··· 501 https://github.com/neomake/neomake/,, 502 https://github.com/Shougo/neomru.vim/,, 503 https://github.com/rafamadriz/neon/,, 504 + https://github.com/ii14/neorepl.nvim/,HEAD, 505 https://github.com/nvim-neorg/neorg/,, 506 https://github.com/nvim-neorg/neorg-telescope/,HEAD, 507 https://github.com/karb94/neoscroll.nvim/,, ··· 589 https://github.com/neovimhaskell/nvim-hs.vim/,, 590 https://github.com/mfussenegger/nvim-jdtls/,, 591 https://github.com/gennaro-tedesco/nvim-jqx/,, 592 + https://gitlab.com/usmcamp0811/nvim-julia-autotest,HEAD, 593 https://github.com/ethanholz/nvim-lastplace/,HEAD, 594 https://github.com/kosayoda/nvim-lightbulb/,, 595 https://github.com/josa42/nvim-lightline-lsp/,, ··· 615 https://github.com/olrtg/nvim-rename-state/,HEAD, 616 https://github.com/petertriho/nvim-scrollbar/,HEAD, 617 https://github.com/dstein64/nvim-scrollview/,, 618 + https://github.com/s1n7ax/nvim-search-and-replace/,HEAD, 619 https://github.com/dcampos/nvim-snippy/,HEAD, 620 https://github.com/ishan9299/nvim-solarized-lua/,, 621 https://github.com/nvim-pack/nvim-spectre/,, ··· 631 https://github.com/eddiebergman/nvim-treesitter-pyfold/,, 632 https://github.com/nvim-treesitter/nvim-treesitter-refactor/,, 633 https://github.com/nvim-treesitter/nvim-treesitter-textobjects/,, 634 + https://github.com/RRethy/nvim-treesitter-textsubjects/,HEAD, 635 https://github.com/windwp/nvim-ts-autotag/,, 636 https://github.com/joosepalviste/nvim-ts-context-commentstring/,, 637 https://github.com/mrjones2014/nvim-ts-rainbow/,, 638 https://gitlab.com/HiPhish/nvim-ts-rainbow2,HEAD, 639 https://github.com/kevinhwang91/nvim-ufo/,HEAD, 640 + https://github.com/samjwill/nvim-unception/,HEAD, 641 https://github.com/kyazdani42/nvim-web-devicons/,, 642 https://github.com/AckslD/nvim-whichkey-setup.lua/,, 643 https://github.com/roxma/nvim-yarp/,, ··· 674 https://github.com/pest-parser/pest.vim/,HEAD, 675 https://github.com/lifepillar/pgsql.vim/,, 676 https://github.com/motus/pig.vim/,, 677 + https://github.com/weirongxu/plantuml-previewer.vim/,HEAD, 678 https://github.com/aklt/plantuml-syntax/,, 679 https://github.com/nvim-treesitter/playground/,, 680 https://github.com/nvim-lua/plenary.nvim/,, ··· 685 https://github.com/andweeb/presence.nvim/,, 686 https://github.com/sotte/presenting.vim/,, 687 https://github.com/ewilazarus/preto/,HEAD, 688 + https://github.com/anuvyklack/pretty-fold.nvim/,HEAD, 689 https://github.com/vim-scripts/prev_indent/,, 690 https://github.com/ahmedkhalf/project.nvim/,, 691 https://github.com/kevinhwang91/promise-async/,HEAD,
+6 -3
pkgs/applications/misc/get_iplayer/default.nix
··· 1 - { lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}: 2 3 perlPackages.buildPerlPackage rec { 4 pname = "get_iplayer"; ··· 12 }; 13 14 nativeBuildInputs = [ makeWrapper ]; 15 - buildInputs = [ perl ]; 16 propagatedBuildInputs = with perlPackages; [ 17 HTMLParser HTTPCookies LWP LWPProtocolHttps XMLLibXML XMLSimple Mojolicious 18 ]; ··· 27 wrapProgram $out/bin/get_iplayer --suffix PATH : ${lib.makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB 28 cp get_iplayer.1 $out/share/man/man1 29 ''; 30 31 meta = with lib; { 32 description = "Downloads TV and radio from BBC iPlayer"; 33 license = licenses.gpl3Plus; 34 homepage = "https://squarepenguin.co.uk/"; 35 platforms = platforms.all; 36 - maintainers = with maintainers; [ rika ]; 37 }; 38 39 }
··· 1 + { lib, fetchFromGitHub, stdenv, shortenPerlShebang, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}: 2 3 perlPackages.buildPerlPackage rec { 4 pname = "get_iplayer"; ··· 12 }; 13 14 nativeBuildInputs = [ makeWrapper ]; 15 + buildInputs = [ perl ] ++ lib.optional stdenv.isDarwin shortenPerlShebang; 16 propagatedBuildInputs = with perlPackages; [ 17 HTMLParser HTTPCookies LWP LWPProtocolHttps XMLLibXML XMLSimple Mojolicious 18 ]; ··· 27 wrapProgram $out/bin/get_iplayer --suffix PATH : ${lib.makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB 28 cp get_iplayer.1 $out/share/man/man1 29 ''; 30 + postInstall = lib.optionalString stdenv.isDarwin '' 31 + shortenPerlShebang $out/bin/.get_iplayer-wrapped 32 + ''; 33 34 meta = with lib; { 35 description = "Downloads TV and radio from BBC iPlayer"; 36 license = licenses.gpl3Plus; 37 homepage = "https://squarepenguin.co.uk/"; 38 platforms = platforms.all; 39 + maintainers = with maintainers; [ rika jgarcia ]; 40 }; 41 42 }
+2 -1
pkgs/applications/networking/browsers/chromium/common.nix
··· 361 362 # Optional features: 363 use_gio = true; 364 - use_gnome_keyring = false; # Superseded by libsecret 365 use_cups = cupsSupport; 366 367 # Feature overrides: ··· 384 # We do intentionally not set rustc_version as nixpkgs will never do incremental 385 # rebuilds, thus leaving this empty is fine. 386 rust_sysroot_absolute = "${rustc}"; 387 } // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) { 388 # https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html 389 arm_control_flow_integrity = "none";
··· 361 362 # Optional features: 363 use_gio = true; 364 use_cups = cupsSupport; 365 366 # Feature overrides: ··· 383 # We do intentionally not set rustc_version as nixpkgs will never do incremental 384 # rebuilds, thus leaving this empty is fine. 385 rust_sysroot_absolute = "${rustc}"; 386 + # Building with rust is disabled for now - this matches the flags in other major distributions. 387 + enable_rust = false; 388 } // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) { 389 # https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html 390 arm_control_flow_integrity = "none";
+14 -14
pkgs/applications/networking/browsers/chromium/upstream-info.nix
··· 35 }; 36 deps = { 37 gn = { 38 - rev = "e9e83d9095d3234adf68f3e2866f25daf766d5c7"; 39 - sha256 = "0y07c18xskq4mclqiz3a63fz8jicz2kqridnvdhqdf75lhp61f8a"; 40 url = "https://gn.googlesource.com/gn"; 41 - version = "2023-05-19"; 42 }; 43 }; 44 - sha256 = "1h3j24ihn76qkvckzg703pm1jsh6nbkc48n2zx06kia8wz96567z"; 45 - sha256bin64 = "04jklk2zwkyy8i70v9nk7nw35w2g9pyxdw9w3sn9mddgbjjph5z9"; 46 - version = "115.0.5790.170"; 47 }; 48 ungoogled-chromium = { 49 deps = { 50 gn = { 51 - rev = "e9e83d9095d3234adf68f3e2866f25daf766d5c7"; 52 - sha256 = "0y07c18xskq4mclqiz3a63fz8jicz2kqridnvdhqdf75lhp61f8a"; 53 url = "https://gn.googlesource.com/gn"; 54 - version = "2023-05-19"; 55 }; 56 ungoogled-patches = { 57 - rev = "115.0.5790.170-1"; 58 - sha256 = "0vk82jacadb4id16596s4751j4idq6903w6sl2s7cj4ppxd6pyf1"; 59 }; 60 }; 61 - sha256 = "1h3j24ihn76qkvckzg703pm1jsh6nbkc48n2zx06kia8wz96567z"; 62 - sha256bin64 = "04jklk2zwkyy8i70v9nk7nw35w2g9pyxdw9w3sn9mddgbjjph5z9"; 63 - version = "115.0.5790.170"; 64 }; 65 }
··· 35 }; 36 deps = { 37 gn = { 38 + rev = "4bd1a77e67958fb7f6739bd4542641646f264e5d"; 39 + sha256 = "14h9jqspb86sl5lhh6q0kk2rwa9zcak63f8drp7kb3r4dx08vzsw"; 40 url = "https://gn.googlesource.com/gn"; 41 + version = "2023-06-09"; 42 }; 43 }; 44 + sha256 = "108wrm64pig0v24n44zd52jfzsy2kda84r5k8abfvg4sjlm0bh8y"; 45 + sha256bin64 = "1sr7wfssayw94x8bfn7bk03040221npj7612ccxgzdgr4x5i4adl"; 46 + version = "116.0.5845.96"; 47 }; 48 ungoogled-chromium = { 49 deps = { 50 gn = { 51 + rev = "4bd1a77e67958fb7f6739bd4542641646f264e5d"; 52 + sha256 = "14h9jqspb86sl5lhh6q0kk2rwa9zcak63f8drp7kb3r4dx08vzsw"; 53 url = "https://gn.googlesource.com/gn"; 54 + version = "2023-06-09"; 55 }; 56 ungoogled-patches = { 57 + rev = "116.0.5845.96-1"; 58 + sha256 = "14smm0vmqzn2664qdbv7asm8n2gg88zcvwrjpsn54qwk0njv7zlr"; 59 }; 60 }; 61 + sha256 = "108wrm64pig0v24n44zd52jfzsy2kda84r5k8abfvg4sjlm0bh8y"; 62 + sha256bin64 = "1sr7wfssayw94x8bfn7bk03040221npj7612ccxgzdgr4x5i4adl"; 63 + version = "116.0.5845.96"; 64 }; 65 }
+2 -2
pkgs/applications/networking/twingate/default.nix
··· 13 14 stdenv.mkDerivation rec { 15 pname = "twingate"; 16 - version = "1.0.83+88994"; 17 18 src = fetchurl { 19 url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb"; 20 - hash = "sha256-rPYjGSrjSNSdjMZRP0Gd7a9lRC+I06oOvZZEUEJ6s5k="; 21 }; 22 23 buildInputs = [
··· 13 14 stdenv.mkDerivation rec { 15 pname = "twingate"; 16 + version = "2023.227.93197"; 17 18 src = fetchurl { 19 url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb"; 20 + hash = "sha256-YV56U+RXpTOJvyufVKtTY1c460//ZJcifq2XroTQLXU="; 21 }; 22 23 buildInputs = [
+2 -2
pkgs/applications/radio/qdmr/default.nix
··· 22 23 stdenv.mkDerivation rec { 24 pname = "qdmr"; 25 - version = "0.11.2"; 26 27 src = fetchFromGitHub { 28 owner = "hmatuschek"; 29 repo = "qdmr"; 30 rev = "v${version}"; 31 - sha256 = "sha256-zT31tzsm5OM99vz8DzGCdPmnemiwiJpKccYwECnUgOQ="; 32 }; 33 34 nativeBuildInputs = [
··· 22 23 stdenv.mkDerivation rec { 24 pname = "qdmr"; 25 + version = "0.11.3"; 26 27 src = fetchFromGitHub { 28 owner = "hmatuschek"; 29 repo = "qdmr"; 30 rev = "v${version}"; 31 + sha256 = "sha256-YLGsKGcKIPd0ihd5IzlT71dYkxZfeH7BpnKQMEyY8dI="; 32 }; 33 34 nativeBuildInputs = [
+2 -1
pkgs/applications/video/alass/default.nix
··· 25 ''; 26 27 meta = with lib; { 28 - description = "Automatic Language-Agnostic Subtitle Synchronization"; 29 homepage = "https://github.com/kaegi/alass"; 30 license = licenses.gpl3Plus; 31 maintainers = with maintainers; [ erictapen ]; 32 }; 33 }
··· 25 ''; 26 27 meta = with lib; { 28 + description = "Automatic Language-Agnostic Subtitles Synchronization"; 29 homepage = "https://github.com/kaegi/alass"; 30 license = licenses.gpl3Plus; 31 maintainers = with maintainers; [ erictapen ]; 32 + mainProgram = "alass-cli"; 33 }; 34 }
+51
pkgs/data/icons/google-cursor/default.nix
···
··· 1 + { stdenvNoCC 2 + , fetchzip 3 + , lib 4 + }: 5 + 6 + let 7 + colors = [ 8 + { 9 + name = "Black"; 10 + hash = "sha256-pb2U9j1m8uJaILxUxKqp8q9FGuwzZsQvhPP3bfGZL5I="; 11 + } 12 + { 13 + name = "Blue"; 14 + hash = "sha256-PmJeGShQLIC7ceRwQvSbphqz19fKptksZeHKi9QSL5Y="; 15 + } 16 + { 17 + name = "Red"; 18 + hash = "sha256-/X81jLoWaw4UMoDRf1f6oaKKRWexQc4PAACy3doV4Kc="; 19 + } 20 + { 21 + name = "White"; 22 + hash = "sha256-eT/Zy6O6TBD6G8q/dg+9rNYDHutLLxEY1lvLDP90b+g="; 23 + } 24 + ]; 25 + in 26 + stdenvNoCC.mkDerivation (finalAttrs: { 27 + pname = "google-cursor"; 28 + version = "2.0.0"; 29 + 30 + sourceRoot = "."; 31 + srcs = map 32 + (color: (fetchzip { 33 + url = "https://github.com/ful1e5/Google_Cursor/releases/download/v${finalAttrs.version}/GoogleDot-${color.name}.tar.gz"; 34 + name = "GoogleDot-${color.name}"; 35 + hash = color.hash; 36 + })) 37 + colors; 38 + 39 + postInstall = '' 40 + mkdir -p $out/share/icons 41 + cp -r GoogleDot-* $out/share/icons 42 + ''; 43 + 44 + meta = with lib; { 45 + description = "An opensource cursor theme inspired by Google"; 46 + homepage = "https://github.com/ful1e5/Google_Cursor"; 47 + license = licenses.gpl3Plus; 48 + platforms = platforms.all; 49 + maintainers = with maintainers; [ quadradical ]; 50 + }; 51 + })
+7
pkgs/development/libraries/libxc/default.nix
··· 11 hash = "sha256-JYhuyW95I7Q0edLIe7H//+ej5vh6MdAGxXjmNxDMuhQ="; 12 }; 13 14 nativeBuildInputs = [ perl cmake gfortran ]; 15 16 preConfigure = ''
··· 11 hash = "sha256-JYhuyW95I7Q0edLIe7H//+ej5vh6MdAGxXjmNxDMuhQ="; 12 }; 13 14 + # Timeout increase has already been included upstream in master. 15 + # Check upon updates if this can be removed. 16 + postPatch = '' 17 + substituteInPlace testsuite/CMakeLists.txt \ 18 + --replace "PROPERTIES TIMEOUT 1" "PROPERTIES TIMEOUT 30" 19 + ''; 20 + 21 nativeBuildInputs = [ perl cmake gfortran ]; 22 23 preConfigure = ''
+1 -1
pkgs/development/python-modules/numba/default.nix
··· 83 postPatch = '' 84 substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='0.57.1'" 85 substituteInPlace numba/_version.py \ 86 - --replace 'git_refnames = ""' 'git_refnames = "0.57.1"' 87 ''; 88 89 postFixup = lib.optionalString cudaSupport ''
··· 83 postPatch = '' 84 substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='0.57.1'" 85 substituteInPlace numba/_version.py \ 86 + --replace 'git_refnames = " (HEAD -> main)"' 'git_refnames = "tag: 0.57.1"' 87 ''; 88 89 postFixup = lib.optionalString cudaSupport ''
+2 -1
pkgs/development/python-modules/pyplatec/default.nix
··· 13 sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg"; 14 }; 15 16 meta = with lib; { 17 description = "Library to simulate plate tectonics with Python bindings"; 18 homepage = "https://github.com/Mindwerks/plate-tectonics"; 19 license = licenses.lgpl3; 20 - broken = stdenv.isLinux; 21 }; 22 23 }
··· 13 sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg"; 14 }; 15 16 + env.NIX_CFLAGS_COMPILE = "-std=c++11"; 17 + 18 meta = with lib; { 19 description = "Library to simulate plate tectonics with Python bindings"; 20 homepage = "https://github.com/Mindwerks/plate-tectonics"; 21 license = licenses.lgpl3; 22 }; 23 24 }
+48
pkgs/development/python-modules/qbittorrent-api/default.nix
···
··· 1 + { lib 2 + , buildPythonPackage 3 + , fetchPypi 4 + , requests 5 + , six 6 + , urllib3 7 + , packaging 8 + , setuptools 9 + , wheel 10 + }: 11 + 12 + buildPythonPackage rec { 13 + pname = "qbittorrent-api"; 14 + version = "2023.7.52"; 15 + format = "pyproject"; 16 + 17 + src = fetchPypi { 18 + inherit pname version; 19 + hash = "sha256-RHOupNo0jteUpxcxAojOfnBGGBt293j0OCHeKEritpQ="; 20 + }; 21 + 22 + propagatedBuildInputs = [ 23 + requests 24 + six 25 + urllib3 26 + packaging 27 + ]; 28 + 29 + nativeBuildInputs = [ 30 + setuptools 31 + wheel 32 + ]; 33 + 34 + # Tests require internet access 35 + doCheck = false; 36 + 37 + pythonImportsCheck = [ 38 + "qbittorrentapi" 39 + ]; 40 + 41 + meta = with lib; { 42 + description = "Python client implementation for qBittorrent's Web API"; 43 + homepage = "https://github.com/rmartin16/qbittorrent-api"; 44 + changelog = "https://github.com/rmartin16/qbittorrent-api/blob/v${version}/CHANGELOG.md"; 45 + license = licenses.mit; 46 + maintainers = with maintainers; [ savyajha ]; 47 + }; 48 + }
+7 -2
pkgs/development/python-modules/scikit-build-core/default.nix
··· 8 , hatchling 9 , cattrs 10 , cmake 11 , packaging 12 , pathspec 13 , pyproject-metadata ··· 18 19 buildPythonPackage rec { 20 pname = "scikit-build-core"; 21 - version = "0.2.0"; 22 format = "pyproject"; 23 24 src = fetchPypi { 25 pname = "scikit_build_core"; 26 inherit version; 27 - hash = "sha256-0qdtlEekEgONxeJd0lmwPCUnhmGgx8Padmu5ccGprNI="; 28 }; 29 30 postPatch = '' ··· 58 nativeCheckInputs = [ 59 cattrs 60 cmake 61 pytest-subprocess 62 pytestCheckHook 63 ] ++ passthru.optional-dependencies.pyproject; 64 65 disabledTestPaths = [ 66 # runs pip, requires network access 67 "tests/test_pyproject_pep517.py" 68 "tests/test_pyproject_pep518.py" 69 "tests/test_setuptools_pep517.py" 70 "tests/test_setuptools_pep518.py" 71 ]; ··· 77 meta = with lib; { 78 description = "A next generation Python CMake adaptor and Python API for plugins"; 79 homepage = "https://github.com/scikit-build/scikit-build-core"; 80 license = with licenses; [ asl20 ]; 81 maintainers = with maintainers; [ veprbl ]; 82 };
··· 8 , hatchling 9 , cattrs 10 , cmake 11 + , ninja 12 , packaging 13 , pathspec 14 , pyproject-metadata ··· 19 20 buildPythonPackage rec { 21 pname = "scikit-build-core"; 22 + version = "0.4.8"; 23 format = "pyproject"; 24 25 src = fetchPypi { 26 pname = "scikit_build_core"; 27 inherit version; 28 + hash = "sha256-n6wcrBo4uhFoGQt72Y9irs8GzUbbcYXsjCeyfg2krUs="; 29 }; 30 31 postPatch = '' ··· 59 nativeCheckInputs = [ 60 cattrs 61 cmake 62 + ninja 63 pytest-subprocess 64 pytestCheckHook 65 ] ++ passthru.optional-dependencies.pyproject; 66 67 disabledTestPaths = [ 68 # runs pip, requires network access 69 + "tests/test_custom_modules.py" 70 "tests/test_pyproject_pep517.py" 71 "tests/test_pyproject_pep518.py" 72 + "tests/test_pyproject_pep660.py" 73 "tests/test_setuptools_pep517.py" 74 "tests/test_setuptools_pep518.py" 75 ]; ··· 81 meta = with lib; { 82 description = "A next generation Python CMake adaptor and Python API for plugins"; 83 homepage = "https://github.com/scikit-build/scikit-build-core"; 84 + changelog = "https://github.com/scikit-build/scikit-build-core/releases/tag/v${version}"; 85 license = with licenses; [ asl20 ]; 86 maintainers = with maintainers; [ veprbl ]; 87 };
+1 -1
pkgs/development/python-modules/worldengine/default.nix
··· 68 ]; 69 70 meta = with lib; { 71 - homepage = "http://world-engine.org"; 72 description = "World generator using simulation of plates, rain shadow, erosion, etc"; 73 license = licenses.mit; 74 maintainers = with maintainers; [ rardiol ];
··· 68 ]; 69 70 meta = with lib; { 71 + homepage = "https://github.com/mindwerks/worldengine"; 72 description = "World generator using simulation of plates, rain shadow, erosion, etc"; 73 license = licenses.mit; 74 maintainers = with maintainers; [ rardiol ];
+3
pkgs/servers/mail/public-inbox/default.nix
··· 55 # got: 'makefile' 56 # expected: 'make' 57 "hl_mod" 58 # Failed test 'clone + index v1 synced ->created_at' 59 # at t/lei-mirror.t line 175. 60 # got: '1638378723'
··· 55 # got: 'makefile' 56 # expected: 'make' 57 "hl_mod" 58 + # Hangs on "inbox unlocked on initial fetch, waiting for IDLE". 59 + # Fixed in HEAD: 7234e671 ("t/imapd: workaround a Perl 5.36.0 readline regression") 60 + "imapd" 61 # Failed test 'clone + index v1 synced ->created_at' 62 # at t/lei-mirror.t line 175. 63 # got: '1638378723'
+19 -14
pkgs/tools/graphics/timg/default.nix
··· 1 - { lib 2 - , stdenv 3 , fetchFromGitHub 4 - , cmake 5 - , pkg-config 6 , ffmpeg 7 , graphicsmagick 8 , libdeflate 9 , libexif 10 , libjpeg 11 , libsixel 12 , openslide 13 }: 14 15 - stdenv.mkDerivation rec { 16 pname = "timg"; 17 - version = "1.5.1"; 18 19 src = fetchFromGitHub { 20 owner = "hzeller"; 21 repo = "timg"; 22 - rev = "v${version}"; 23 - hash = "sha256-hGQL6MAsaSVV/w5fDKAcd4KIBuh2pvl3D2QUzi/aeG0="; 24 }; 25 26 buildInputs = [ ··· 31 libjpeg 32 libsixel 33 openslide 34 ]; 35 36 nativeBuildInputs = [ cmake pkg-config ]; ··· 43 "-DWITH_LIBSIXEL=On" 44 ]; 45 46 - meta = with lib; { 47 - homepage = "https://timg.sh/"; 48 description = "A terminal image and video viewer"; 49 - license = licenses.gpl2Only; 50 - platforms = platforms.unix; 51 - maintainers = with maintainers; [ hzeller ]; 52 }; 53 - }
··· 1 + { cmake 2 , fetchFromGitHub 3 , ffmpeg 4 , graphicsmagick 5 + , lib 6 , libdeflate 7 , libexif 8 , libjpeg 9 , libsixel 10 , openslide 11 + , pkg-config 12 + , stb 13 + , qoi 14 + , stdenv 15 }: 16 17 + stdenv.mkDerivation (finalAttrs: { 18 pname = "timg"; 19 + version = "1.5.2"; 20 21 src = fetchFromGitHub { 22 owner = "hzeller"; 23 repo = "timg"; 24 + rev = "v${finalAttrs.version}"; 25 + hash = "sha256-e2Uy1jvS0+gdhto4Sgz6YlqEqXJ7KGUAA6iuixfvvJg="; 26 }; 27 28 buildInputs = [ ··· 33 libjpeg 34 libsixel 35 openslide 36 + qoi.dev 37 + stb 38 ]; 39 40 nativeBuildInputs = [ cmake pkg-config ]; ··· 47 "-DWITH_LIBSIXEL=On" 48 ]; 49 50 + meta = { 51 description = "A terminal image and video viewer"; 52 + homepage = "https://timg.sh/"; 53 + license = lib.licenses.gpl2Only; 54 + mainProgram = "timg"; 55 + maintainers = with lib.maintainers; [ hzeller ]; 56 + platforms = lib.platforms.unix; 57 }; 58 + })
+2 -6
pkgs/tools/networking/ip2unix/default.nix
··· 5 6 stdenv.mkDerivation rec { 7 pname = "ip2unix"; 8 - version = "2.1.4"; 9 10 src = fetchFromGitHub { 11 owner = "nixcloud"; 12 repo = "ip2unix"; 13 rev = "v${version}"; 14 - sha256 = "1pl8ayadxb0zzh5s26yschkjhr1xffbzzv347m88f9y0jv34d24r"; 15 }; 16 - 17 - postPatch = '' 18 - sed '1i#include <array>' -i src/dynports/dynports.cc # gcc12 19 - ''; 20 21 nativeBuildInputs = [ 22 meson ninja pkg-config asciidoc libxslt.bin docbook_xml_dtd_45 docbook_xsl
··· 5 6 stdenv.mkDerivation rec { 7 pname = "ip2unix"; 8 + version = "2.2.0"; 9 10 src = fetchFromGitHub { 11 owner = "nixcloud"; 12 repo = "ip2unix"; 13 rev = "v${version}"; 14 + hash = "sha256-7Q2s7wBkt5OTbQnx7Q5mGRWBOtr6yRsFBh+CUu8CmMQ"; 15 }; 16 17 nativeBuildInputs = [ 18 meson ninja pkg-config asciidoc libxslt.bin docbook_xml_dtd_45 docbook_xsl
+22 -12
pkgs/tools/package-management/nvd/default.nix
··· 1 - { fetchFromGitLab, installShellFiles, lib, python3, stdenv }: 2 3 - stdenv.mkDerivation rec { 4 pname = "nvd"; 5 version = "0.2.3"; 6 7 src = fetchFromGitLab { 8 owner = "khumba"; 9 - repo = pname; 10 - rev = "refs/tags/v${version}"; 11 - sha256 = "sha256:005nh24j01s0hd5j0g0qp67wpivpjwryxyyh6y44jijb4arrfrjf"; 12 }; 13 14 - buildInputs = [ python3 ]; 15 16 - nativeBuildInputs = [ installShellFiles ]; 17 18 installPhase = '' 19 runHook preInstall ··· 22 runHook postInstall 23 ''; 24 25 - meta = with lib; { 26 description = "Nix/NixOS package version diff tool"; 27 homepage = "https://gitlab.com/khumba/nvd"; 28 - license = licenses.asl20; 29 - maintainers = with maintainers; [ khumba ]; 30 - platforms = platforms.all; 31 }; 32 - }
··· 1 + { fetchFromGitLab 2 + , installShellFiles 3 + , lib 4 + , python3 5 + , stdenv 6 + }: 7 8 + stdenv.mkDerivation (finalAttrs: { 9 pname = "nvd"; 10 version = "0.2.3"; 11 12 src = fetchFromGitLab { 13 owner = "khumba"; 14 + repo = "nvd"; 15 + rev = "refs/tags/v${finalAttrs.version}"; 16 + hash = "sha256-TmaXsyJLRkmIN9D77jOXd8fLj7kYPCBLg0AHIImAtgA="; 17 }; 18 19 + buildInputs = [ 20 + python3 21 + ]; 22 23 + nativeBuildInputs = [ 24 + installShellFiles 25 + ]; 26 27 installPhase = '' 28 runHook preInstall ··· 31 runHook postInstall 32 ''; 33 34 + meta = { 35 description = "Nix/NixOS package version diff tool"; 36 homepage = "https://gitlab.com/khumba/nvd"; 37 + license = lib.licenses.asl20; 38 + mainProgram = "nvd"; 39 + maintainers = with lib.maintainers; [ khumba ]; 40 + platforms = lib.platforms.all; 41 }; 42 + })
+2 -2
pkgs/tools/text/mmdoc/default.nix
··· 12 13 stdenv.mkDerivation rec { 14 pname = "mmdoc"; 15 - version = "0.14.0"; 16 17 src = fetchFromGitHub { 18 owner = "ryantm"; 19 repo = "mmdoc"; 20 rev = version; 21 - hash = "sha256-1e6TS4TjshicUdT7wuvLsDpotr2LUxbn15r+eNXMo2M="; 22 }; 23 24 nativeBuildInputs = [ ninja meson pkg-config xxd ];
··· 12 13 stdenv.mkDerivation rec { 14 pname = "mmdoc"; 15 + version = "0.15.0"; 16 17 src = fetchFromGitHub { 18 owner = "ryantm"; 19 repo = "mmdoc"; 20 rev = version; 21 + hash = "sha256-xOi91BSQh+AN13V6YyAzOe7kUsyPAvUKWTJ+PUPlPJQ="; 22 }; 23 24 nativeBuildInputs = [ ninja meson pkg-config xxd ];
+2
pkgs/top-level/all-packages.nix
··· 5400 5401 go-thumbnailer = callPackage ../applications/misc/go-thumbnailer { }; 5402 5403 geckodriver = callPackage ../development/tools/geckodriver { 5404 inherit (darwin.apple_sdk.frameworks) Security; 5405 };
··· 5400 5401 go-thumbnailer = callPackage ../applications/misc/go-thumbnailer { }; 5402 5403 + google-cursor = callPackage ../data/icons/google-cursor { }; 5404 + 5405 geckodriver = callPackage ../development/tools/geckodriver { 5406 inherit (darwin.apple_sdk.frameworks) Security; 5407 };
+2
pkgs/top-level/python-packages.nix
··· 10704 10705 pyzufall = callPackage ../development/python-modules/pyzufall { }; 10706 10707 qcelemental = callPackage ../development/python-modules/qcelemental { }; 10708 10709 qcengine = callPackage ../development/python-modules/qcengine { };
··· 10704 10705 pyzufall = callPackage ../development/python-modules/pyzufall { }; 10706 10707 + qbittorrent-api = callPackage ../development/python-modules/qbittorrent-api { }; 10708 + 10709 qcelemental = callPackage ../development/python-modules/qcelemental { }; 10710 10711 qcengine = callPackage ../development/python-modules/qcengine { };