From 01cb0dae78fb255f3b2065318957e798f98b951d Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sun, 28 Sep 2025 21:53:47 -0400 Subject: [PATCH 1/2] nixos/chatgpt-retrieval-plugin: drop Corresponding package has been marked broken for a full release cycle. Dropping per RFC 180. --- .../manual/release-notes/rl-2511.section.md | 2 + nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 4 + .../web-apps/chatgpt-retrieval-plugin.nix | 118 ------------------ 4 files changed, 6 insertions(+), 119 deletions(-) delete mode 100644 nixos/modules/services/web-apps/chatgpt-retrieval-plugin.nix diff --git a/nixos/doc/manual/release-notes/rl-2511.section.md b/nixos/doc/manual/release-notes/rl-2511.section.md index 43633514305d..c9d6ba99a724 100644 --- a/nixos/doc/manual/release-notes/rl-2511.section.md +++ b/nixos/doc/manual/release-notes/rl-2511.section.md @@ -176,6 +176,8 @@ - `programs.goldwarden` has been removed, due to the software not working with newer versions of the Bitwarden and Vaultwarden servers, as well as it being abandoned upstream. +- The `chatgpt-retrieval-plugin` package and `services.chatgpt-retrieval-plugin` module were removed due to the package having been broken since at least November 2024. + - The `cardboard` package and `programs.cardboard` module were removed due to the package having been broken since at least November 2024. - The default `kops` version is now 1.33.0 and versions 1.30 and older have been dropped. See [Upgrading Kubernetes](https://kops.sigs.k8s.io/tutorial/upgrading-kubernetes/) for instructions on how to update kOps. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 9507f4472eb9..6b10044e8f50 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1552,7 +1552,6 @@ ./services/web-apps/calibre-web.nix ./services/web-apps/castopod.nix ./services/web-apps/changedetection-io.nix - ./services/web-apps/chatgpt-retrieval-plugin.nix ./services/web-apps/chhoto-url.nix ./services/web-apps/cloudlog.nix ./services/web-apps/code-server.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index c7e541c8a628..d72f1a9c9211 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -113,6 +113,10 @@ in "cgmanager" "enable" ] "cgmanager was deprecated by lxc and therefore removed from nixpkgs.") + (mkRemovedOptionModule [ + "services" + "chatgpt-retrieval-plugin" + ] "The corresponding package was removed from nixpkgs.") (mkRemovedOptionModule [ "services" "chronos" diff --git a/nixos/modules/services/web-apps/chatgpt-retrieval-plugin.nix b/nixos/modules/services/web-apps/chatgpt-retrieval-plugin.nix deleted file mode 100644 index dba076436df7..000000000000 --- a/nixos/modules/services/web-apps/chatgpt-retrieval-plugin.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: - -with lib; - -let - cfg = config.services.chatgpt-retrieval-plugin; -in -{ - options.services.chatgpt-retrieval-plugin = { - enable = mkEnableOption "chatgpt-retrieval-plugin service"; - - port = mkOption { - type = types.port; - default = 8080; - description = "Port the chatgpt-retrieval-plugin service listens on."; - }; - - host = mkOption { - type = types.str; - default = "127.0.0.1"; - example = "0.0.0.0"; - description = "The hostname or IP address for chatgpt-retrieval-plugin to bind to."; - }; - - bearerTokenPath = mkOption { - type = types.path; - description = '' - Path to the secret bearer token used for the http api authentication. - ''; - default = ""; - example = "config.age.secrets.CHATGPT_RETRIEVAL_PLUGIN_BEARER_TOKEN.path"; - }; - - openaiApiKeyPath = mkOption { - type = types.path; - description = '' - Path to the secret openai api key used for embeddings. - ''; - default = ""; - example = "config.age.secrets.CHATGPT_RETRIEVAL_PLUGIN_OPENAI_API_KEY.path"; - }; - - datastore = mkOption { - type = types.enum [ - "pinecone" - "weaviate" - "zilliz" - "milvus" - "qdrant" - "redis" - ]; - default = "qdrant"; - description = "This specifies the vector database provider you want to use to store and query embeddings."; - }; - - qdrantCollection = mkOption { - type = types.str; - description = '' - name of the qdrant collection used to store documents. - ''; - default = "document_chunks"; - }; - }; - - config = mkIf cfg.enable { - - assertions = [ - { - assertion = cfg.bearerTokenPath != ""; - message = "services.chatgpt-retrieval-plugin.bearerTokenPath should not be an empty string."; - } - { - assertion = cfg.openaiApiKeyPath != ""; - message = "services.chatgpt-retrieval-plugin.openaiApiKeyPath should not be an empty string."; - } - ]; - - systemd.services.chatgpt-retrieval-plugin = { - description = "ChatGPT Retrieval Plugin"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - DynamicUser = true; - Restart = "always"; - LoadCredential = [ - "BEARER_TOKEN:${cfg.bearerTokenPath}" - "OPENAI_API_KEY:${cfg.openaiApiKeyPath}" - ]; - StateDirectory = "chatgpt-retrieval-plugin"; - StateDirectoryMode = "0755"; - }; - - # it doesn't make sense to pass secrets as env vars, this is a hack until - # upstream has proper secret management. - script = '' - export BEARER_TOKEN=$(${pkgs.systemd}/bin/systemd-creds cat BEARER_TOKEN) - export OPENAI_API_KEY=$(${pkgs.systemd}/bin/systemd-creds cat OPENAI_API_KEY) - exec ${pkgs.chatgpt-retrieval-plugin}/bin/start --host ${cfg.host} --port ${toString cfg.port} - ''; - - environment = { - DATASTORE = cfg.datastore; - QDRANT_COLLECTION = mkIf (cfg.datastore == "qdrant") cfg.qdrantCollection; - }; - }; - - systemd.tmpfiles.rules = [ - # create the directory for static files for fastapi - "C /var/lib/chatgpt-retrieval-plugin/.well-known - - - - ${pkgs.chatgpt-retrieval-plugin}/${pkgs.python3Packages.python.sitePackages}/.well-known" - ]; - }; -} From feff0029d18bd518259135b38e50f3ded7b90221 Mon Sep 17 00:00:00 2001 From: Michael Daniels Date: Sun, 28 Sep 2025 22:00:26 -0400 Subject: [PATCH 2/2] chatgpt-retrieval-plugin: drop Has been marked broken for a full release cycle. Dropping per RFC 180 --- .../ch/chatgpt-retrieval-plugin/package.nix | 73 ------------------- pkgs/top-level/aliases.nix | 1 + 2 files changed, 1 insertion(+), 73 deletions(-) delete mode 100644 pkgs/by-name/ch/chatgpt-retrieval-plugin/package.nix diff --git a/pkgs/by-name/ch/chatgpt-retrieval-plugin/package.nix b/pkgs/by-name/ch/chatgpt-retrieval-plugin/package.nix deleted file mode 100644 index 6e53f0438127..000000000000 --- a/pkgs/by-name/ch/chatgpt-retrieval-plugin/package.nix +++ /dev/null @@ -1,73 +0,0 @@ -{ - lib, - python3Packages, - fetchFromGitHub, - python3, - nix-update-script, - dasel, -}: - -python3Packages.buildPythonApplication { - pname = "chatgpt-retrieval-plugin"; - version = "0-unstable-2023-03-28"; - format = "pyproject"; - - src = fetchFromGitHub { - owner = "openai"; - repo = "chatgpt-retrieval-plugin"; - rev = "958bb787bf34823538482a9eb3157c5bf994a182"; - hash = "sha256-fCNGzK5Uji6wGDTEwAf4FF/i+RC7ny3v4AsvQwIbehY="; - }; - - postPatch = '' - substituteInPlace pyproject.toml \ - --replace 'fastapi = "^0.92.0"' 'fastapi = ">=0.92.0"' \ - --replace 'python-dotenv = "^0.21.1"' 'python-dotenv = "*"' \ - --replace 'python-multipart = "^0.0.6"' 'python-multipart = "^0.0.5"' \ - --replace 'redis = "4.5.1"' 'redis = "^4.5.1"' \ - --replace 'tiktoken = "^0.2.0"' 'tiktoken = "^0.3.0"' \ - --replace 'packages = [{include = "server"}]' 'packages = [{include = "server"}, {include = "models"}, {include = "datastore"}, {include = "services"}]' - - substituteInPlace server/main.py \ - --replace 'directory=".well-known"' 'directory="/var/lib/chatgpt-retrieval-plugin/.well-known"' \ - --replace '0.0.0.0' '127.0.0.1' \ - --replace '8000' '8080' - - ${dasel}/bin/dasel put -t string -f pyproject.toml -v '.well-known/*' '.tool.poetry.include.[]' - ''; - - nativeBuildInputs = with python3Packages; [ - poetry-core - ]; - - propagatedBuildInputs = with python3.pkgs; [ - fastapi - arrow - tiktoken - python-multipart - python-dotenv - openai - weaviate-client - pinecone-client - pymilvus - uvicorn - python-pptx - tenacity - pypdf2 - qdrant-client - redis - docx2txt - ]; - - passthru = { - updateScript = nix-update-script { }; - }; - - meta = with lib; { - broken = true; # dependencies are not up to date, the project doesn't look well maintained, this doesn't look like it's going in the right direction. I'm happy to handle maintainership to whoever wants to. - homepage = "https://github.com/openai/chatgpt-retrieval-plugin"; - description = "Tool to search and find personal or work documents by asking questions in everyday language"; - license = licenses.mit; - maintainers = with maintainers; [ happysalada ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 8f20ddd0dd3e..a2fbdd3c4a2e 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -602,6 +602,7 @@ mapAliases { challenger = taler-challenger; # Added 2024-09-04 charmcraft = throw "charmcraft was removed in Sep 25 following removal of LXD from nixpkgs"; # added 2025-09-18 + chatgpt-retrieval-plugin = throw "chatgpt-retrieval-plugin has been removed because it has been marked as broken since at least November 2024."; # Added 2025-09-28 check_smartmon = nagiosPlugins.check_smartmon; # Added 2024-05-03 check_systemd = nagiosPlugins.check_systemd; # Added 2024-05-03 check_zfs = nagiosPlugins.check_zfs; # Added 2024-05-03