about summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-12-06 06:01:30 +0000
committerGitHub <noreply@github.com>2023-12-06 06:01:30 +0000
commit035a649a67c56b9d16be608e8bb87b9c215b33da (patch)
treecdb7f52fa90bd89fe14628303333ba524f1c49be /pkgs/servers
parent2622221e95392f62f81ae60c35504e338e9ac2cf (diff)
parentbf78e6a54601fc74d8d27fb918a420c84fb6f5b3 (diff)
downloadnixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.tar
nixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.tar.gz
nixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.tar.bz2
nixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.tar.lz
nixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.tar.xz
nixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.tar.zst
nixlib-035a649a67c56b9d16be608e8bb87b9c215b33da.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/apache-airflow/0001-Revert-fix-yarn-warning-from-d3-color-27139.patch51
-rw-r--r--pkgs/servers/home-assistant/build-custom-component/check_manifest.py38
-rw-r--r--pkgs/servers/home-assistant/build-custom-component/default.nix6
-rw-r--r--pkgs/servers/home-assistant/custom-components/README.md30
-rw-r--r--pkgs/servers/home-assistant/custom-components/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-components/prometheus_sensor/default.nix (renamed from pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix)3
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/default.nix2
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix39
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix6
-rw-r--r--pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch12
-rw-r--r--pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch88
-rw-r--r--pkgs/servers/mail/spamassassin/sa-update_add--siteconfigpath.patch44
-rw-r--r--pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch51
-rw-r--r--pkgs/servers/mxisd/0001-gradle.patch22
-rw-r--r--pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch22
-rw-r--r--pkgs/servers/web-apps/netbox/config_3_3.patch50
-rw-r--r--pkgs/servers/web-apps/netbox/graphql-3_2_0.patch21
17 files changed, 100 insertions, 387 deletions
diff --git a/pkgs/servers/apache-airflow/0001-Revert-fix-yarn-warning-from-d3-color-27139.patch b/pkgs/servers/apache-airflow/0001-Revert-fix-yarn-warning-from-d3-color-27139.patch
deleted file mode 100644
index 4e6f56a7cf12..000000000000
--- a/pkgs/servers/apache-airflow/0001-Revert-fix-yarn-warning-from-d3-color-27139.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From eca202d2893c9f2f91628ad6244b52cf7880bfcf Mon Sep 17 00:00:00 2001
-From: Graham Bennett <graham@grahambennett.org>
-Date: Mon, 21 Nov 2022 15:39:54 +0000
-Subject: [PATCH] Revert "fix yarn warning from d3-color (#27139)"
-
-This reverts commit b9e133e40c2848b0d555051a99bf8d2816fd28a7.
----
- airflow/www/package.json |  3 ---
- airflow/www/yarn.lock    | 13 +++++++++----
- 2 files changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/airflow/www/package.json b/airflow/www/package.json
-index f694089ee6..3d37ad4c46 100644
---- a/airflow/www/package.json
-+++ b/airflow/www/package.json
-@@ -120,8 +120,5 @@
-     "redoc": "^2.0.0-rc.72",
-     "type-fest": "^2.17.0",
-     "url-search-params-polyfill": "^8.1.0"
--  },
--  "resolutions": {
--    "d3-color": "^3.1.0"
-   }
- }
-diff --git a/airflow/www/yarn.lock b/airflow/www/yarn.lock
-index bafd63a368..dad0ebabab 100644
---- a/airflow/www/yarn.lock
-+++ b/airflow/www/yarn.lock
-@@ -4518,10 +4518,15 @@ d3-collection@1, d3-collection@^1.0.4:
-   resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e"
-   integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==
- 
--d3-color@1, "d3-color@1 - 2", d3-color@^3.1.0:
--  version "3.1.0"
--  resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2"
--  integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
-+d3-color@1:
-+  version "1.4.1"
-+  resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a"
-+  integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
-+
-+"d3-color@1 - 2":
-+  version "2.0.0"
-+  resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e"
-+  integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==
- 
- d3-contour@1:
-   version "1.3.2"
--- 
-2.37.3
-
diff --git a/pkgs/servers/home-assistant/build-custom-component/check_manifest.py b/pkgs/servers/home-assistant/build-custom-component/check_manifest.py
index bbe9535824e7..463a7579763d 100644
--- a/pkgs/servers/home-assistant/build-custom-component/check_manifest.py
+++ b/pkgs/servers/home-assistant/build-custom-component/check_manifest.py
@@ -1,28 +1,31 @@
 #!/usr/bin/env python3
 
 import json
-import importlib_metadata
+import os
 import sys
 
+import importlib_metadata
 from packaging.requirements import Requirement
 
 
+def error(msg: str) -> None:
+    print(f"  - {msg}", file=sys.stderr)
+    return False
+
+
 def check_requirement(req: str):
     # https://packaging.pypa.io/en/stable/requirements.html
     requirement = Requirement(req)
     try:
         version = importlib_metadata.distribution(requirement.name).version
     except importlib_metadata.PackageNotFoundError:
-        print(f"  - Dependency {requirement.name} is missing", file=sys.stderr)
-        return False
+        return error(f"{requirement.name}{requirement.specifier} not present")
 
     # https://packaging.pypa.io/en/stable/specifiers.html
-    if not version in requirement.specifier:
-        print(
-            f"  - {requirement.name}{requirement.specifier} expected, but got {version}",
-            file=sys.stderr,
+    if version not in requirement.specifier:
+        return error(
+            f"{requirement.name}{requirement.specifier} expected, but got {version}"
         )
-        return False
 
     return True
 
@@ -30,13 +33,24 @@ def check_requirement(req: str):
 def check_manifest(manifest_file: str):
     with open(manifest_file) as fd:
         manifest = json.load(fd)
+
+    ok = True
+
+    derivation_domain = os.environ.get("domain")
+    manifest_domain = manifest["domain"]
+    if derivation_domain != manifest_domain:
+        ok = False
+        error(
+            f"Derivation attribute domain ({derivation_domain}) must match manifest domain ({manifest_domain})"
+        )
+
     if "requirements" in manifest:
-        ok = True
         for requirement in manifest["requirements"]:
             ok &= check_requirement(requirement)
-        if not ok:
-            print("Manifest requirements are not met", file=sys.stderr)
-            sys.exit(1)
+
+    if not ok:
+        error("Manifest check failed.")
+        sys.exit(1)
 
 
 if __name__ == "__main__":
diff --git a/pkgs/servers/home-assistant/build-custom-component/default.nix b/pkgs/servers/home-assistant/build-custom-component/default.nix
index 05b7c2d4b039..2948d15bb814 100644
--- a/pkgs/servers/home-assistant/build-custom-component/default.nix
+++ b/pkgs/servers/home-assistant/build-custom-component/default.nix
@@ -3,7 +3,8 @@
 , makeSetupHook
 }:
 
-{ pname
+{ owner
+, domain
 , version
 , format ? "other"
 , ...
@@ -17,13 +18,14 @@ let
 in
 home-assistant.python.pkgs.buildPythonPackage (
   {
+    pname = "${owner}/${domain}";
     inherit format;
 
     installPhase = ''
       runHook preInstall
 
       mkdir $out
-      cp -r $src/custom_components/ $out/
+      cp -r ./custom_components/ $out/
 
       runHook postInstall
     '';
diff --git a/pkgs/servers/home-assistant/custom-components/README.md b/pkgs/servers/home-assistant/custom-components/README.md
index a7244b25c173..d7137e5c62f7 100644
--- a/pkgs/servers/home-assistant/custom-components/README.md
+++ b/pkgs/servers/home-assistant/custom-components/README.md
@@ -25,7 +25,7 @@ versions into the Python environment.
 }:
 
 buildHomeAssistantComponent {
-  # pname, version
+  # owner, domain, version
 
   src = fetchFromGithub {
     # owner, repo, rev, hash
@@ -40,18 +40,34 @@ buildHomeAssistantComponent {
   }
 }
 
-## Package name normalization
+## Package attribute
 
-Apply the same normalization rules as defined for python packages in
-[PEP503](https://peps.python.org/pep-0503/#normalized-names).
-The name should be lowercased and dots, underlines or multiple
-dashes should all be replaced by a single dash.
+The attribute name must reflect the domain as seen in the
+`manifest.json`, which in turn will match the python module name below
+in the `custom_components/` directory.
+
+**Example:**
+
+The project [mweinelt/ha-prometheus-sensor](https://github.com/mweinelt/ha-prometheus-sensor/blob/1.0.0/custom_components/prometheus_sensor/manifest.json#L2)
+would receive the attribute name `"prometheus_sensor"`, because both
+domain in the `manifest.json` as well as the module name are
+`prometheus_sensor`.
+
+## Package name
+
+The `pname` attribute is a composition of both `owner` and `domain`.
+
+Don't set `pname`, set `owner and `domain` instead.
+
+Exposing the `domain` attribute separately allows checking for
+conflicting components at eval time.
 
 ## Manifest check
 
 The `buildHomeAssistantComponent` builder uses a hook to check whether
 the dependencies specified in the `manifest.json` are present and
-inside the specified version range.
+inside the specified version range. It also makes sure derivation
+and manifest agree about the domain name.
 
 There shouldn't be a need to disable this hook, but you can set
 `dontCheckManifest` to `true` in the derivation to achieve that.
diff --git a/pkgs/servers/home-assistant/custom-components/default.nix b/pkgs/servers/home-assistant/custom-components/default.nix
index 4a96b305964a..15bd721c72e8 100644
--- a/pkgs/servers/home-assistant/custom-components/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/default.nix
@@ -2,5 +2,5 @@
 }:
 
 {
-  prometheus-sensor = callPackage ./prometheus-sensor {};
+  prometheus_sensor = callPackage ./prometheus_sensor {};
 }
diff --git a/pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix b/pkgs/servers/home-assistant/custom-components/prometheus_sensor/default.nix
index 07bcd9abec1c..2368d85552b2 100644
--- a/pkgs/servers/home-assistant/custom-components/prometheus-sensor/default.nix
+++ b/pkgs/servers/home-assistant/custom-components/prometheus_sensor/default.nix
@@ -4,7 +4,8 @@
 }:
 
 buildHomeAssistantComponent rec {
-  pname = "prometheus-sensor";
+  owner = "mweinelt";
+  domain = "prometheus_sensor";
   version = "1.0.0";
 
   src = fetchFromGitHub {
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/default.nix
index 4bb1e63b5f7f..848e6062451a 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/default.nix
@@ -2,6 +2,8 @@
 }:
 
 {
+  light-entity-card = callPackage ./light-entity-card { };
+
   mini-graph-card = callPackage ./mini-graph-card {};
 
   mini-media-player = callPackage ./mini-media-player {};
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix
new file mode 100644
index 000000000000..0cdf9ee1677e
--- /dev/null
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/light-entity-card/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+}:
+
+buildNpmPackage rec {
+  pname = "light-entity-card";
+  version = "6.1.0";
+
+  src = fetchFromGitHub {
+    owner = "ljmerza";
+    repo = "light-entity-card";
+    rev = "refs/tags/${version}";
+    hash = "sha256-CJpRvgPf7+v9m/8/O2R+nut3PnyDPC8OTipyE+Brp9U=";
+  };
+
+  npmDepsHash = "sha256-EZDTWtn3joikwiC5Kfn94+tXRDpBhMDHqHozfIkfbJ0=";
+
+  env.NODE_OPTIONS = "--openssl-legacy-provider";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir $out
+    cp -v dist/light-entity-card.js* $out/
+
+    runHook postInstall
+  '';
+
+  passthru.entrypoint = "light-entity-card";
+
+  meta = with lib; {
+    description = "Control any light or switch entity";
+    homepage = "https://github.com/ljmerza/light-entity-card";
+    changelog = "https://github.com/ljmerza/light-entity-card/releases/tag/${version}";
+    maintainers = with maintainers; [ SuperSandro2000 ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
index 6945b18bde20..749b15398f4b 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/mini-media-player/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "mini-media-player";
-  version = "1.16.5";
+  version = "1.16.6";
 
   src = fetchFromGitHub {
     owner = "kalkih";
     repo = "mini-media-player";
     rev = "v${version}";
-    hash = "sha256-ydkY7Qx2GMh4CpvvBAQubJ7PlxSscDZRJayn82bOczM=";
+    hash = "sha256-1cC9dyZ9+7dXSL/dmFD0HV7SgsBW2zA7a+eOKVwbzg8=";
   };
 
-  npmDepsHash = "sha256-v9NvZOrQPMOoG3LKACnu79jKgZtcnGiopWad+dFbplw=";
+  npmDepsHash = "sha256-/7roW1xkZmGuB/8nFaQz0Yeuai6yJ+cH7Uqa/zxfa5w=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch b/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch
deleted file mode 100644
index 1d0d716290dd..000000000000
--- a/pkgs/servers/http/bozohttpd/0001-include-stdint.h.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/libexec/httpd/bozohttpd.c b/libexec/httpd/bozohttpd.c
-index 67083b2c6782..273cb5f5a42b 100644
---- a/libexec/httpd/bozohttpd.c
-+++ b/libexec/httpd/bozohttpd.c
-@@ -138,6 +138,7 @@
- #include <grp.h>
- #include <stdarg.h>
- #include <stdlib.h>
-+#include <stdint.h>
- #include <strings.h>
- #include <string.h>
- #include <syslog.h>
diff --git a/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch b/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch
deleted file mode 100644
index 9a01a4adce7f..000000000000
--- a/pkgs/servers/http/bozohttpd/0002-dont-use-host-BUFSIZ.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-diff --git a/libexec/httpd/auth-bozo.c b/libexec/httpd/auth-bozo.c
-index a2f2ee4304c1..c9eefe3313dd 100644
---- a/libexec/httpd/auth-bozo.c
-+++ b/libexec/httpd/auth-bozo.c
-@@ -54,7 +54,7 @@ bozo_auth_check(bozo_httpreq_t *request, const char *file)
- 	bozohttpd_t *httpd = request->hr_httpd;
- 	struct stat sb;
- 	char dir[MAXPATHLEN], authfile[MAXPATHLEN], *basename;
--	char user[BUFSIZ], *pass;
-+	char user[BOZO_MINBUFSIZE], *pass;
- 	FILE *fp;
- 	int len;
- 
-@@ -144,7 +144,7 @@ bozo_auth_check_headers(bozo_httpreq_t *request, char *val, char *str,
- 
- 	if (strcasecmp(val, "authorization") == 0 &&
- 	    strncasecmp(str, "Basic ", 6) == 0) {
--		char	authbuf[BUFSIZ];
-+		char	authbuf[BOZO_MINBUFSIZE];
- 		char	*pass = NULL;
- 		ssize_t	alen;
- 
-diff --git a/libexec/httpd/bozohttpd.c b/libexec/httpd/bozohttpd.c
-index 273cb5f5a42b..f619567ba822 100644
---- a/libexec/httpd/bozohttpd.c
-+++ b/libexec/httpd/bozohttpd.c
-@@ -2275,7 +2275,7 @@ bozo_http_error(bozohttpd_t *httpd, int code, bozo_httpreq_t *request,
- 		}
- #endif /* !NO_USER_SUPPORT */
- 
--		size = snprintf(httpd->errorbuf, BUFSIZ,
-+		size = snprintf(httpd->errorbuf, BOZO_MINBUFSIZE,
- 		    "<html><head><title>%s</title></head>\n"
- 		    "<body><h1>%s</h1>\n"
- 		    "%s%s: <pre>%s</pre>\n"
-@@ -2285,10 +2285,10 @@ bozo_http_error(bozohttpd_t *httpd, int code, bozo_httpreq_t *request,
- 		    user ? user : "", file,
- 		    reason, hostname, portbuf, hostname, portbuf);
- 		free(user);
--		if (size >= (int)BUFSIZ) {
-+		if (size >= (int)BOZO_MINBUFSIZE) {
- 			bozowarn(httpd,
- 				"bozo_http_error buffer too small, truncated");
--			size = (int)BUFSIZ;
-+			size = (int)BOZO_MINBUFSIZE;
- 		}
- 
- 		if (file_alloc)
-@@ -2515,7 +2515,7 @@ bozo_init_httpd(bozohttpd_t *httpd)
- 	httpd->mmapsz = BOZO_MMAPSZ;
- 
- 	/* error buffer for bozo_http_error() */
--	if ((httpd->errorbuf = malloc(BUFSIZ)) == NULL) {
-+	if ((httpd->errorbuf = malloc(BOZO_MINBUFSIZE)) == NULL) {
- 		fprintf(stderr,
- 			"bozohttpd: memory_allocation failure\n");
- 		return 0;
-diff --git a/libexec/httpd/bozohttpd.h b/libexec/httpd/bozohttpd.h
-index c83bd112d9d7..7b19494cf5ad 100644
---- a/libexec/httpd/bozohttpd.h
-+++ b/libexec/httpd/bozohttpd.h
-@@ -227,6 +227,8 @@ typedef struct bozoprefs_t {
- /* only allow this many total headers bytes */
- #define BOZO_HEADERS_MAX_SIZE (16 * 1024)
- 
-+#define BOZO_MINBUFSIZE (4 * 1024)
-+
- /* debug flags */
- #define DEBUG_NORMAL	1
- #define DEBUG_FAT	2
-diff --git a/libexec/httpd/testsuite/t10.out b/libexec/httpd/testsuite/t10.out
-index cf410110627c..b3ab88f94fb9 100644
---- a/libexec/httpd/testsuite/t10.out
-+++ b/libexec/httpd/testsuite/t10.out
-@@ -1,8 +1,8 @@
- HTTP/1.0 404 Not Found

- Content-Type: text/html

--Content-Length: 1024

--Server: bozohttpd/20140708

-+Content-Length: 4096

-+Server: bozohttpd/20210403

- 

- <html><head><title>404 Not Found</title></head>
- <body><h1>404 Not Found</h1>
--/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-\ No newline at end of file
-+/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-\ No newline at end of file
diff --git a/pkgs/servers/mail/spamassassin/sa-update_add--siteconfigpath.patch b/pkgs/servers/mail/spamassassin/sa-update_add--siteconfigpath.patch
deleted file mode 100644
index bac048892fe8..000000000000
--- a/pkgs/servers/mail/spamassassin/sa-update_add--siteconfigpath.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 60abf3ee8864980a95b32e2d6cf60e26b49654c0 Mon Sep 17 00:00:00 2001
-From: joachim schiele <js@lastlog.de>
-Date: Wed, 7 Jun 2017 22:15:39 +0200
-Subject: [PATCH 2/2] Adding --siteconfigpath to not be forced to use global /etc/spamasassin configuration directory but to provide an alternative location.
-
----
- sa-update.raw | 5 +++++
- lib/Mail/SpamAssassin/PerMsgStatus.pm | 2 +
- 2 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/sa-update.raw b/sa-update.raw
-index bb7396d..39f681f 100755
---- a/sa-update.raw
-+++ b/sa-update.raw
-@@ -196,6 +196,7 @@ GetOptions(
-   'gpgkeyfile=s'			=> \$opt{'gpgkeyfile'},
-   'channelfile=s'			=> \$opt{'channelfile'},
-   'updatedir=s'				=> \$opt{'updatedir'},
-+  'siteconfigpath=s'                           => \$opt{'siteconfigpath'},
-   'gpg!'				=> \$GPG_ENABLED,
- 
-   '4'                                   => sub { $opt{'force_pf'} = 'inet' },
-@@ -267,6 +268,9 @@ else {
-   $opt{'updatedir'} = $SA->sed_path('__local_state_dir__/__version__');
- }
- 
-+if (defined $opt{'siteconfigpath'}) {
-+  $LOCAL_RULES_DIR = untaint_file_path($opt{'siteconfigpath'});
-+}
- 
- # check only disabled gpg
- # https://issues.apache.org/SpamAssassin/show_bug.cgi?id=5854
-@@ -1808,7 +1812,7 @@ Options:
-   --updatedir path        Directory to place updates, defaults to the
-                           SpamAssassin site rules directory
-                           (default: @@LOCAL_STATE_DIR@@/@@VERSION@@)
-+  --siteconfigpath=path   Path for site configs
-   --refreshmirrors        Force the MIRRORED.BY file to be updated
-   -D, --debug [area=n,...]  Print debugging messages
-   -v, --verbose           Be verbose, like print updated channel names;
--- 
-
-2.12.2
-
diff --git a/pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch b/pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch
deleted file mode 100644
index 28616251f37e..000000000000
--- a/pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From e81b06df67b1d42ef915615fafa0b56ef956673b Mon Sep 17 00:00:00 2001
-From: Andreas Fuchs <asf@boinkor.net>
-Date: Thu, 11 Feb 2021 17:30:44 -0500
-Subject: [PATCH] Return the cached value if it's not time to scan again yet
-
-This should ensure that if we have a valid value cached (which ought
-to be every time after the first scan), we return it as metrics.
-
-This fixes the crashes that would happen if queries happened earlier
-than the re-scan interval allowed.
-
-Address review feedback: Shorten the time-to-scan logic
-
-We can express this in a single if statement, so it takes fewer lines
-to do the "should we check again" check.
----
- readjson.go | 11 ++---------
- 1 file changed, 2 insertions(+), 9 deletions(-)
-
-diff --git a/readjson.go b/readjson.go
-index da35448..c9996fd 100644
---- a/readjson.go
-+++ b/readjson.go
-@@ -78,14 +78,7 @@ func readData(device string) (gjson.Result, error) {
- 
- 	if _, err := os.Stat(device); err == nil {
- 		cacheValue, cacheOk := jsonCache[device]
--		timeToScan := false
--		if cacheOk {
--			timeToScan = time.Now().After(cacheValue.LastCollect.Add(options.SMARTctl.CollectPeriodDuration))
--		} else {
--			timeToScan = true
--		}
--
--		if timeToScan {
-+		if !cacheOk || time.Now().After(cacheValue.LastCollect.Add(options.SMARTctl.CollectPeriodDuration)) {
- 			json, ok := readSMARTctl(device)
- 			if ok {
- 				jsonCache[device] = JSONCache{JSON: json, LastCollect: time.Now()}
-@@ -93,7 +86,7 @@ func readData(device string) (gjson.Result, error) {
- 			}
- 			return gjson.Parse(DEFAULT_EMPTY_JSON), fmt.Errorf("smartctl returned bad data for device %s", device)
- 		}
--		return gjson.Parse(DEFAULT_EMPTY_JSON), fmt.Errorf("Too early collect called for device %s", device)
-+		return cacheValue.JSON, nil
- 	}
- 	return gjson.Parse(DEFAULT_EMPTY_JSON), fmt.Errorf("Device %s unavialable", device)
- }
--- 
-2.33.1
-
diff --git a/pkgs/servers/mxisd/0001-gradle.patch b/pkgs/servers/mxisd/0001-gradle.patch
deleted file mode 100644
index 8a9f5a81180b..000000000000
--- a/pkgs/servers/mxisd/0001-gradle.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/build.gradle	2019-05-16 21:09:08.373112953 +0200
-+++ b/build.gradle	2019-05-16 21:09:37.093114427 +0200
-@@ -72,7 +72,7 @@
- 
- buildscript {
-     repositories {
--        jcenter()
-+REPLACE
-     }
- 
-     dependencies {
-@@ -81,9 +81,7 @@
- }
- 
- repositories {
--    jcenter()
--    maven { url "https://kamax.io/maven/releases/" }
--    maven { url "https://kamax.io/maven/snapshots/" }
-+REPLACE
- }
- 
- dependencies {
diff --git a/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch b/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch
deleted file mode 100644
index 30493b543e38..000000000000
--- a/pkgs/servers/web-apps/discourse/use_mv_instead_of_rename.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/lib/discourse.rb b/lib/discourse.rb
-index ea2a3cbafd..66454d9157 100644
---- a/lib/discourse.rb
-+++ b/lib/discourse.rb
-@@ -62,7 +62,7 @@ module Discourse
-         fd.fsync()
-       end
- 
--      File.rename(temp_destination, destination)
-+      FileUtils.mv(temp_destination, destination)
- 
-       nil
-     end
-@@ -76,7 +76,7 @@ module Discourse
-       FileUtils.mkdir_p(File.join(Rails.root, 'tmp'))
-       temp_destination = File.join(Rails.root, 'tmp', SecureRandom.hex)
-       execute_command('ln', '-s', source, temp_destination)
--      File.rename(temp_destination, destination)
-+      FileUtils.mv(temp_destination, destination)
- 
-       nil
-     end
diff --git a/pkgs/servers/web-apps/netbox/config_3_3.patch b/pkgs/servers/web-apps/netbox/config_3_3.patch
deleted file mode 100644
index 1adc0b537a4e..000000000000
--- a/pkgs/servers/web-apps/netbox/config_3_3.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
-index d5a7bfaec..68754a8c5 100644
---- a/netbox/netbox/settings.py
-+++ b/netbox/netbox/settings.py
-@@ -222,6 +222,7 @@ TASKS_REDIS_PASSWORD = TASKS_REDIS.get('PASSWORD', '')
- TASKS_REDIS_DATABASE = TASKS_REDIS.get('DATABASE', 0)
- TASKS_REDIS_SSL = TASKS_REDIS.get('SSL', False)
- TASKS_REDIS_SKIP_TLS_VERIFY = TASKS_REDIS.get('INSECURE_SKIP_TLS_VERIFY', False)
-+TASKS_REDIS_URL = TASKS_REDIS.get('URL')
- 
- # Caching
- if 'caching' not in REDIS:
-@@ -236,11 +237,12 @@ CACHING_REDIS_SENTINELS = REDIS['caching'].get('SENTINELS', [])
- CACHING_REDIS_SENTINEL_SERVICE = REDIS['caching'].get('SENTINEL_SERVICE', 'default')
- CACHING_REDIS_PROTO = 'rediss' if REDIS['caching'].get('SSL', False) else 'redis'
- CACHING_REDIS_SKIP_TLS_VERIFY = REDIS['caching'].get('INSECURE_SKIP_TLS_VERIFY', False)
-+CACHING_REDIS_URL = REDIS['caching'].get('URL', f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}')
- 
- CACHES = {
-     'default': {
-         'BACKEND': 'django_redis.cache.RedisCache',
--        'LOCATION': f'{CACHING_REDIS_PROTO}://{CACHING_REDIS_HOST}:{CACHING_REDIS_PORT}/{CACHING_REDIS_DATABASE}',
-+        'LOCATION': CACHING_REDIS_URL,
-         'OPTIONS': {
-             'CLIENT_CLASS': 'django_redis.client.DefaultClient',
-             'PASSWORD': CACHING_REDIS_PASSWORD,
-@@ -383,7 +385,7 @@ USE_X_FORWARDED_HOST = True
- X_FRAME_OPTIONS = 'SAMEORIGIN'
- 
- # Static files (CSS, JavaScript, Images)
--STATIC_ROOT = BASE_DIR + '/static'
-+STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(BASE_DIR, 'static')).rstrip('/')
- STATIC_URL = f'/{BASE_PATH}static/'
- STATICFILES_DIRS = (
-     os.path.join(BASE_DIR, 'project-static', 'dist'),
-@@ -562,6 +564,14 @@ if TASKS_REDIS_USING_SENTINEL:
-             'socket_connect_timeout': TASKS_REDIS_SENTINEL_TIMEOUT
-         },
-     }
-+elif TASKS_REDIS_URL:
-+    RQ_PARAMS = {
-+        'URL': TASKS_REDIS_URL,
-+        'PASSWORD': TASKS_REDIS_PASSWORD,
-+        'SSL': TASKS_REDIS_SSL,
-+        'SSL_CERT_REQS': None if TASKS_REDIS_SKIP_TLS_VERIFY else 'required',
-+        'DEFAULT_TIMEOUT': RQ_DEFAULT_TIMEOUT,
-+    }
- else:
-     RQ_PARAMS = {
-         'HOST': TASKS_REDIS_HOST,
diff --git a/pkgs/servers/web-apps/netbox/graphql-3_2_0.patch b/pkgs/servers/web-apps/netbox/graphql-3_2_0.patch
deleted file mode 100644
index 1e97b7d85ce0..000000000000
--- a/pkgs/servers/web-apps/netbox/graphql-3_2_0.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/netbox/netbox/graphql/scalars.py b/netbox/netbox/graphql/scalars.py
-index 7d14189dd..0a18e79d2 100644
---- a/netbox/netbox/graphql/scalars.py
-+++ b/netbox/netbox/graphql/scalars.py
-@@ -1,6 +1,6 @@
- from graphene import Scalar
- from graphql.language import ast
--from graphql.type.scalars import MAX_INT, MIN_INT
-+from graphql.type.scalars import GRAPHQL_MAX_INT, GRAPHQL_MIN_INT
- 
- 
- class BigInt(Scalar):
-@@ -10,7 +10,7 @@ class BigInt(Scalar):
-     @staticmethod
-     def to_float(value):
-         num = int(value)
--        if num > MAX_INT or num < MIN_INT:
-+        if num > GRAPHQL_MAX_INT or num < GRAPHQL_MIN_INT:
-             return float(num)
-         return num
-