···3737* `buildInputs` (optional), is a list of libraries and dependencies that are required to build and run the current derivation, in addition to the default one `[ coq ]`,
3838* `extraBuildInputs` (optional, deprecated), an additional list of derivation to add to `buildInputs`,
3939* `overrideBuildInputs` (optional) replaces the default list of derivation to which `buildInputs` and `extraBuildInputs` adds extras elements,
4040-* `propagatedBuildInputs` (optional) is passed as is to `mkDerivation`, we recommend to use this for Coq libraries and Coq plugin dependencies, as this makes sure the paths of the compiled libraries and plugins will always be added to the build environements of subsequent derivation, which is necessary for Coq packages to work correctly,
4040+* `propagatedBuildInputs` (optional) is passed as is to `mkDerivation`, we recommend to use this for Coq libraries and Coq plugin dependencies, as this makes sure the paths of the compiled libraries and plugins will always be added to the build environments of subsequent derivation, which is necessary for Coq packages to work correctly,
4141* `mlPlugin` (optional, defaults to `false`). Some extensions (plugins) might require OCaml and sometimes other OCaml packages. Standard dependencies can be added by setting the current option to `true`. For a finer grain control, the `coq.ocamlPackages` attribute can be used in `nativeBuildInputs`, `buildInputs`, and `propagatedBuildInputs` to depend on the same package set Coq was built against.
4242* `useDuneifVersion` (optional, default to `(x: false)` uses Dune to build the package if the provided predicate evaluates to true on the version, e.g. `useDuneifVersion = versions.isGe "1.1"` will use dune if the version of the package is greater or equal to `"1.1"`,
4343* `useDune` (optional, defaults to `false`) uses Dune to build the package if set to true, the presence of this attribute overrides the behavior of the previous one.
···4848 "-DPYTHONOCC_WRAP_SMESH=TRUE"
4949 ];
50505151+ passthru = {
5252+ # `python3Packages.pythonocc-core` must be updated in tandem with
5353+ # `opencascade-occt`, and including it in the bulk updates often breaks it.
5454+ skipBulkUpdate = true;
5555+ };
5656+5157 meta = with lib; {
5258 description = "Python wrapper for the OpenCASCADE 3D modeling kernel";
5359 homepage = "https://github.com/tpaviot/pythonocc-core";
···22# Do not edit!
3344{
55- version = "2023.4.3";
55+ version = "2023.4.4";
66 components = {
77 "3_day_blinds" = ps: with ps; [
88 ];
+3-3
pkgs/servers/home-assistant/default.nix
···310310 extraBuildInputs = extraPackages python.pkgs;
311311312312 # Don't forget to run parse-requirements.py after updating
313313- hassVersion = "2023.4.3";
313313+ hassVersion = "2023.4.4";
314314315315in python.pkgs.buildPythonApplication rec {
316316 pname = "homeassistant";
···326326 # Primary source is the pypi sdist, because it contains translations
327327 src = fetchPypi {
328328 inherit pname version;
329329- hash = "sha256-L99fwGHjSHaE4ba9zA5wL0Zd7kTZsZLefjLMrvOgymw=";
329329+ hash = "sha256-96Fjf8FOXxpdt+7QC54Q1UzyhkRFZm11xsNXUkg/D+U=";
330330 };
331331332332 # Secondary source is git for tests
···334334 owner = "home-assistant";
335335 repo = "core";
336336 rev = "refs/tags/${version}";
337337- hash = "sha256-X7qZfehUSOOlW5d6pZDLnx7Qs+U+kw/6Cs6oiJle5qY=";
337337+ hash = "sha256-ATchEqxVkzUDdRbVxW5YRS9T8WgIGPcdlsjCXXxeWoU=";
338338 };
339339340340 nativeBuildInputs = with python3.pkgs; [
+2-2
pkgs/servers/home-assistant/frontend.nix
···44 # the frontend version corresponding to a specific home-assistant version can be found here
55 # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
66 pname = "home-assistant-frontend";
77- version = "20230411.0";
77+ version = "20230411.1";
88 format = "wheel";
991010 src = fetchPypi {
···1212 pname = "home_assistant_frontend";
1313 dist = "py3";
1414 python = "py3";
1515- hash = "sha256-OCNOIFB4BmpEviOiXz39wE8cJ/gcVOOCYF5r8ZiG6o0=";
1515+ hash = "sha256-SV1SglO9XqkxfUD/jUyFgdJIWgKgnPNNQR94MHTYew0=";
1616 };
17171818 # there is nothing to strip in this package
+17-5
pkgs/servers/home-assistant/parse-requirements.py
···2929from urllib.request import urlopen
30303131from packaging import version as Version
3232+from packaging.version import InvalidVersion
3233from rich.console import Console
3334from rich.table import Table
3435···197198 # Therefore, if there's a "#" in the line, only take the part after it
198199 req = req[req.find("#") + 1 :]
199200 name, required_version = req.split("==", maxsplit=1)
201201+ # Strip conditions off version constraints e.g. "1.0; python<3.11"
202202+ required_version = required_version.split(";").pop(0)
200203 # Split package name and extra requires
201204 extras = []
202205 if name.endswith("]"):
···206209 if attr_path:
207210 if our_version := get_pkg_version(attr_path, packages):
208211 attr_name = attr_path.split(".")[-1]
209209- if Version.parse(our_version) < Version.parse(required_version):
210210- outdated[attr_name] = {
211211- 'wanted': required_version,
212212- 'current': our_version
213213- }
212212+ attr_outdated = False
213213+ try:
214214+ Version.parse(our_version)
215215+ except InvalidVersion:
216216+ print(f"Attribute {attr_name} has invalid version specifier {our_version}", file=sys.stderr)
217217+ attr_outdated = True
218218+ else:
219219+ attr_outdated = Version.parse(our_version) < Version.parse(required_version)
220220+ finally:
221221+ if attr_outdated:
222222+ outdated[attr_name] = {
223223+ 'wanted': required_version,
224224+ 'current': our_version
225225+ }
214226 if attr_path is not None:
215227 # Add attribute path without "python3Packages." prefix
216228 pname = attr_path[len(PKG_SET + "."):]