Unverified Commit 6057bf64 authored by Jeremy Fleischman's avatar Jeremy Fleischman
Browse files

mqtt-exporter: use patch rather than `substituteInPlace`

The problem with this `substituteInPlace` is that it happily continues
doing something once we're on a version of `mqtt-exporter` that has this
bug fixed (which happened upstream in
<https://github.com/kpetremann/mqtt-exporter/commit/53f5f31b28cb5aeec1c8d0bb7d1aea56f036082e>).

Here's how it fails:

```console
$ mqtt-exporter
Traceback (most recent call last):
  File "/nix/store/apglhyifvx73d4ybmrcyic2fdp7dxq38-mqtt-exporter-1.9.0/bin/.mqtt-exporter-wrapped", line 6, in <module>
    from mqtt_exporter.main import main_mqtt_exporter_mqtt_exporter
ImportError: cannot import name 'main_mqtt_exporter_mqtt_exporter' from 'mqtt_exporter.main' (/nix/store/apglhyifvx73d4ybmrcyic2fdp7dxq38-mqtt-exporter-1.9.0/lib/python3.13/site-packages/mqtt_exporter/main.py)
```

The patch will do the correct thing and start to fail once it has
already been applied.
parent 7f05aff1
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  fetchpatch,
  python3,
}:

@@ -16,11 +17,13 @@ python3.pkgs.buildPythonApplication rec {
    hash = "sha256-z2y43sRlwgy3Bwhu8rvlTkf6HOT+v8kjo5FT3lo5CEA=";
  };

  postPatch = ''
    # https://github.com/kpetremann/mqtt-exporter/pull/117
    substituteInPlace pyproject.toml \
      --replace-fail  "mqtt_exporter.main:main" "mqtt_exporter.main:main_mqtt_exporter"
  '';
  patches = [
    (fetchpatch {
      name = "Fix `mqtt-exporter` script";
      url = "https://github.com/kpetremann/mqtt-exporter/commit/53f5f31b28cb5aeec1c8d0bb7d1aea56f036082e.diff";
      hash = "sha256-LS+kO6bHofNQxk9o+ExsJnaecwfY/40S0MIJwpJxCAI=";
    })
  ];

  build-system = with python3.pkgs; [ setuptools ];