From 3cc8b4477e175bb700022c147a59bd40e0de8161 Mon Sep 17 00:00:00 2001 From: Guillaume Girol Date: Sat, 8 Apr 2023 12:00:00 +0000 Subject: [PATCH] python3.pkgs.ihatemoney: remove sqlalchemy and flask releases break ihatemoney faster than upstream updates, so the maintenance burden increases over time. --- nixos/modules/module-list.nix | 1 - nixos/modules/rename.nix | 1 + .../services/web-apps/ihatemoney/default.nix | 153 ------------------ nixos/tests/all-tests.nix | 1 - nixos/tests/ihatemoney/default.nix | 71 -------- nixos/tests/ihatemoney/rates.json | 39 ----- nixos/tests/ihatemoney/server.crt | 28 ---- nixos/tests/ihatemoney/server.key | 52 ------ .../python-modules/ihatemoney/default.nix | 129 --------------- .../poetry2nix/overrides/build-systems.json | 3 - pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 2 - 12 files changed, 2 insertions(+), 479 deletions(-) delete mode 100644 nixos/modules/services/web-apps/ihatemoney/default.nix delete mode 100644 nixos/tests/ihatemoney/default.nix delete mode 100644 nixos/tests/ihatemoney/rates.json delete mode 100644 nixos/tests/ihatemoney/server.crt delete mode 100644 nixos/tests/ihatemoney/server.key delete mode 100644 pkgs/development/python-modules/ihatemoney/default.nix diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index bac096efac2c..aa6cc02c0761 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -1165,7 +1165,6 @@ ./services/web-apps/hledger-web.nix ./services/web-apps/icingaweb2/icingaweb2.nix ./services/web-apps/icingaweb2/module-monitoring.nix - ./services/web-apps/ihatemoney ./services/web-apps/invidious.nix ./services/web-apps/invoiceplane.nix ./services/web-apps/isso.nix diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix index 158c7934195b..097d8e86c211 100644 --- a/nixos/modules/rename.nix +++ b/nixos/modules/rename.nix @@ -58,6 +58,7 @@ with lib; (mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed") (mkRemovedOptionModule [ "services" "fprot" ] "The corresponding package was removed from nixpkgs.") (mkRemovedOptionModule [ "services" "frab" ] "The frab module has been removed") + (mkRemovedOptionModule [ "services" "ihatemoney" ] "The ihatemoney module has been removed for lack of downstream maintainer") (mkRemovedOptionModule [ "services" "kippo" ] "The corresponding package was removed from nixpkgs.") (mkRemovedOptionModule [ "services" "mailpile" ] "The corresponding package was removed from nixpkgs.") (mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.") diff --git a/nixos/modules/services/web-apps/ihatemoney/default.nix b/nixos/modules/services/web-apps/ihatemoney/default.nix deleted file mode 100644 index a61aa445f82c..000000000000 --- a/nixos/modules/services/web-apps/ihatemoney/default.nix +++ /dev/null @@ -1,153 +0,0 @@ -{ config, pkgs, lib, ... }: -with lib; -let - cfg = config.services.ihatemoney; - user = "ihatemoney"; - group = "ihatemoney"; - db = "ihatemoney"; - python3 = config.services.uwsgi.package.python3; - pkg = python3.pkgs.ihatemoney; - toBool = x: if x then "True" else "False"; - configFile = pkgs.writeText "ihatemoney.cfg" '' - from secrets import token_hex - # load a persistent secret key - SECRET_KEY_FILE = "/var/lib/ihatemoney/secret_key" - SECRET_KEY = "" - try: - with open(SECRET_KEY_FILE) as f: - SECRET_KEY = f.read() - except FileNotFoundError: - pass - if not SECRET_KEY: - print("ihatemoney: generating a new secret key") - SECRET_KEY = token_hex(50) - with open(SECRET_KEY_FILE, "w") as f: - f.write(SECRET_KEY) - del token_hex - del SECRET_KEY_FILE - - # "normal" configuration - DEBUG = False - SQLALCHEMY_DATABASE_URI = '${ - if cfg.backend == "sqlite" - then "sqlite:////var/lib/ihatemoney/ihatemoney.sqlite" - else "postgresql:///${db}"}' - SQLALCHEMY_TRACK_MODIFICATIONS = False - MAIL_DEFAULT_SENDER = (r"${cfg.defaultSender.name}", r"${cfg.defaultSender.email}") - ACTIVATE_DEMO_PROJECT = ${toBool cfg.enableDemoProject} - ADMIN_PASSWORD = r"${toString cfg.adminHashedPassword /*toString null == ""*/}" - ALLOW_PUBLIC_PROJECT_CREATION = ${toBool cfg.enablePublicProjectCreation} - ACTIVATE_ADMIN_DASHBOARD = ${toBool cfg.enableAdminDashboard} - SESSION_COOKIE_SECURE = ${toBool cfg.secureCookie} - ENABLE_CAPTCHA = ${toBool cfg.enableCaptcha} - LEGAL_LINK = r"${toString cfg.legalLink}" - - ${cfg.extraConfig} - ''; -in - { - options.services.ihatemoney = { - enable = mkEnableOption (lib.mdDoc "ihatemoney webapp. Note that this will set uwsgi to emperor mode"); - backend = mkOption { - type = types.enum [ "sqlite" "postgresql" ]; - default = "sqlite"; - description = lib.mdDoc '' - The database engine to use for ihatemoney. - If `postgresql` is selected, then a database called - `${db}` will be created. If you disable this option, - it will however not be removed. - ''; - }; - adminHashedPassword = mkOption { - type = types.nullOr types.str; - default = null; - description = lib.mdDoc "The hashed password of the administrator. To obtain it, run `ihatemoney generate_password_hash`"; - }; - uwsgiConfig = mkOption { - type = types.attrs; - example = { - http = ":8000"; - }; - description = lib.mdDoc "Additional configuration of the UWSGI vassal running ihatemoney. It should notably specify on which interfaces and ports the vassal should listen."; - }; - defaultSender = { - name = mkOption { - type = types.str; - default = "Budget manager"; - description = lib.mdDoc "The display name of the sender of ihatemoney emails"; - }; - email = mkOption { - type = types.str; - default = "ihatemoney@${config.networking.hostName}"; - defaultText = literalExpression ''"ihatemoney@''${config.networking.hostName}"''; - description = lib.mdDoc "The email of the sender of ihatemoney emails"; - }; - }; - secureCookie = mkOption { - type = types.bool; - default = true; - description = lib.mdDoc "Use secure cookies. Disable this when ihatemoney is served via http instead of https"; - }; - enableDemoProject = mkEnableOption (lib.mdDoc "access to the demo project in ihatemoney"); - enablePublicProjectCreation = mkEnableOption (lib.mdDoc "permission to create projects in ihatemoney by anyone"); - enableAdminDashboard = mkEnableOption (lib.mdDoc "ihatemoney admin dashboard"); - enableCaptcha = mkEnableOption (lib.mdDoc "a simplistic captcha for some forms"); - legalLink = mkOption { - type = types.nullOr types.str; - default = null; - description = lib.mdDoc "The URL to a page explaining legal statements about your service, eg. GDPR-related information."; - }; - extraConfig = mkOption { - type = types.str; - default = ""; - description = lib.mdDoc "Extra configuration appended to ihatemoney's configuration file. It is a python file, so pay attention to indentation."; - }; - }; - config = mkIf cfg.enable { - services.postgresql = mkIf (cfg.backend == "postgresql") { - enable = true; - ensureDatabases = [ db ]; - ensureUsers = [ { - name = user; - ensurePermissions = { - "DATABASE ${db}" = "ALL PRIVILEGES"; - }; - } ]; - }; - systemd.services.postgresql = mkIf (cfg.backend == "postgresql") { - wantedBy = [ "uwsgi.service" ]; - before = [ "uwsgi.service" ]; - }; - systemd.tmpfiles.rules = [ - "d /var/lib/ihatemoney 770 ${user} ${group}" - ]; - users = { - users.${user} = { - isSystemUser = true; - inherit group; - }; - groups.${group} = {}; - }; - services.uwsgi = { - enable = true; - plugins = [ "python3" ]; - instance = { - type = "emperor"; - vassals.ihatemoney = { - type = "normal"; - strict = true; - immediate-uid = user; - immediate-gid = group; - # apparently flask uses threads: https://github.com/spiral-project/ihatemoney/commit/c7815e48781b6d3a457eaff1808d179402558f8c - enable-threads = true; - module = "wsgi:application"; - chdir = "${pkg}/${pkg.pythonModule.sitePackages}/ihatemoney"; - env = [ "IHATEMONEY_SETTINGS_FILE_PATH=${configFile}" ]; - pythonPackages = self: [ self.ihatemoney ]; - } // cfg.uwsgiConfig; - }; - }; - }; - } - - diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2ad1ec35022a..6beee2124c17 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -310,7 +310,6 @@ in { i3wm = handleTest ./i3wm.nix {}; icingaweb2 = handleTest ./icingaweb2.nix {}; iftop = handleTest ./iftop.nix {}; - ihatemoney = handleTest ./ihatemoney {}; incron = handleTest ./incron.nix {}; influxdb = handleTest ./influxdb.nix {}; initrd-network-openvpn = handleTest ./initrd-network-openvpn {}; diff --git a/nixos/tests/ihatemoney/default.nix b/nixos/tests/ihatemoney/default.nix deleted file mode 100644 index d172bf79b8c6..000000000000 --- a/nixos/tests/ihatemoney/default.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ system ? builtins.currentSystem, - config ? {}, - pkgs ? import ../../.. { inherit system config; } -}: - -let - inherit (import ../../lib/testing-python.nix { inherit system pkgs; }) makeTest; - f = backend: makeTest { - name = "ihatemoney-${backend}"; - nodes.machine = { nodes, lib, ... }: { - services.ihatemoney = { - enable = true; - enablePublicProjectCreation = true; - secureCookie = false; - inherit backend; - uwsgiConfig = { - http = ":8000"; - }; - }; - boot.tmp.cleanOnBoot = true; - # for exchange rates - security.pki.certificateFiles = [ ./server.crt ]; - networking.extraHosts = "127.0.0.1 api.exchangerate.host"; - services.nginx = { - enable = true; - virtualHosts."api.exchangerate.host" = { - addSSL = true; - # openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 1000000 -nodes -subj '/CN=api.exchangerate.host' - sslCertificate = ./server.crt; - sslCertificateKey = ./server.key; - locations."/".return = "200 '${builtins.readFile ./rates.json}'"; - }; - }; - # ihatemoney needs a local smtp server otherwise project creation just crashes - services.postfix.enable = true; - }; - testScript = '' - machine.wait_for_open_port(8000) - machine.wait_for_unit("uwsgi.service") - machine.wait_until_succeeds("curl --fail https://api.exchangerate.host") - machine.wait_until_succeeds("curl --fail http://localhost:8000") - - result = machine.succeed( - "curl --fail -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com&default_currency=XXX'" - ) - assert '"yay"' in result, repr(result) - owner, timestamp = machine.succeed( - "stat --printf %U:%G___%Y /var/lib/ihatemoney/secret_key" - ).split("___") - assert "ihatemoney:ihatemoney" == owner - - with subtest("Restart machine and service"): - machine.shutdown() - machine.start() - machine.wait_for_open_port(8000) - machine.wait_for_unit("uwsgi.service") - - with subtest("check that the database is really persistent"): - machine.succeed("curl --fail --basic -u yay:yay http://localhost:8000/api/projects/yay") - - with subtest("check that the secret key is really persistent"): - timestamp2 = machine.succeed("stat --printf %Y /var/lib/ihatemoney/secret_key") - assert timestamp == timestamp2 - - assert "ihatemoney" in machine.succeed("curl --fail http://localhost:8000") - ''; - }; -in { - ihatemoney-sqlite = f "sqlite"; - ihatemoney-postgresql = f "postgresql"; -} diff --git a/nixos/tests/ihatemoney/rates.json b/nixos/tests/ihatemoney/rates.json deleted file mode 100644 index ebdd2651b040..000000000000 --- a/nixos/tests/ihatemoney/rates.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "rates": { - "CAD": 1.3420055134, - "HKD": 7.7513783598, - "ISK": 135.9407305307, - "PHP": 49.3762922123, - "DKK": 6.4126464507, - "HUF": 298.9145416954, - "CZK": 22.6292212267, - "GBP": 0.7838128877, - "RON": 4.1630771881, - "SEK": 8.8464851826, - "IDR": 14629.5658166782, - "INR": 74.8328738801, - "BRL": 5.2357856651, - "RUB": 71.8416609235, - "HRK": 6.4757064094, - "JPY": 106.2715368711, - "THB": 31.7203652653, - "CHF": 0.9243625086, - "EUR": 0.8614748449, - "MYR": 4.2644727774, - "BGN": 1.6848725017, - "TRY": 6.8483804273, - "CNY": 7.0169710544, - "NOK": 9.213731909, - "NZD": 1.5080978635, - "ZAR": 16.7427636113, - "USD": 1, - "MXN": 22.4676085458, - "SGD": 1.3855099931, - "AUD": 1.4107512061, - "ILS": 3.4150585803, - "KRW": 1203.3339076499, - "PLN": 3.794452102 - }, - "base": "USD", - "date": "2020-07-24" -} diff --git a/nixos/tests/ihatemoney/server.crt b/nixos/tests/ihatemoney/server.crt deleted file mode 100644 index 10e568b14b14..000000000000 --- a/nixos/tests/ihatemoney/server.crt +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEvjCCAqYCCQDkTQrENPCZjjANBgkqhkiG9w0BAQsFADAgMR4wHAYDVQQDDBVh -cGkuZXhjaGFuZ2VyYXRlLmhvc3QwIBcNMjEwNzE0MTI1MzQ0WhgPNDc1OTA2MTEx -MjUzNDRaMCAxHjAcBgNVBAMMFWFwaS5leGNoYW5nZXJhdGUuaG9zdDCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL5zpwUYa/ySqvJ/PUnXYsl1ww5SNGJh -NujCRxC0Gw+5t5O7USSHRdz7Eb2PNFMa7JR+lliLAWdjHfqPXJWmP10X5ebvyxeQ -TJkR1HpDSY6TQQlJvwr/JNGryyoQYjXvnyeyVu4TS3U0TTI631OonDAj+HbFIs9L -gr/HfHzFmxRVLwaJ7hebanihc5RzoWTxgswiOwYQu5AivXQqcvUIxELeT7CxWwiw -be/SlalDgoezB/poqaa215FUuN2av+nTn+swH3WOi9kwePLgVKn9BnDMwyh8et13 -yt27RWCSOcZagRSYsSbBaEJbClZvnuYvDqooJEy0GVbGBZpClKRKe92yd0PTf3ZJ -GupyNoCFQlGugY//WLrsPv/Q4WwP+qZ6t97sV0CdM+epKVde/LfPKn+tFMv86qIg -Q/uGHdDwUI8XH2EysAavhdlssSrovmpl4hyo9UkzTWfJgAbmOZY3Vba41wsq12FT -usDsswGLBD10MdXWltR/Hdk8OnosLmeJxfZODAv31KSfd+4b6Ntr9BYQvAQSO+1/ -Mf7gEQtNhO003VKIyV5cpH4kVQieEcvoEKgq32NVBSKVf6UIPWIefu19kvrttaUu -Q2QW2Qm4Ph/4cWpxl0jcrN5rjmgaBtIMmKYjRIS0ThDWzfVkJdmJuATzExJAplLN -nYPBG3gOtQQpAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAJzt/aN7wl88WrvBasVi -fSJmJjRaW2rYyBUMptQNkm9ElHN2eQQxJgLi8+9ArQxuGKhHx+D1wMGF8w2yOp0j -4atfbXDcT+cTQY55qdEeYgU8KhESHHGszGsUpv7hzU2cACZiXG0YbOmORFYcn49Z -yPyN98kW8BViLzNF9v+I/NJPuaaCeWKjXCqY2GCzddiuotrlLtz0CODXZJ506I1F -38vQgZb10yAe6+R4y0BK7sUlmfr9BBqVcDQ/z74Kph1aB32zwP8KrNitwG1Tyk6W -rxD1dStEQyX8uDPAspe2JrToMWsOMje9F5lotmuzyvwRJYfAav300EtIggBqpiHR -o0P/1xxBzmaCHxEUJegdoYg8Q27llqsjR2T78uv/BlxpX9Dv5kNex5EZThKqyz4a -Fn1VqiA3D9IsvxH4ud+8eDaP24u1yYObSTDIBsw9xDvoV8fV+NWoNNhcAL5GwC0P -Goh7/brZSHUprxGpwRB524E//8XmCsRd/+ShtXbi4gEODMH4xLdkD7fZIJC4eG1H -GOVc1MwjiYvbQlPs6MOcQ0iKQneSlaEJmyyO5Ro5OKiKj89Az/mLYX3R17AIsu0T -Q5pGcmhKVRyu0zXvkGfK352TLwoe+4vbmakDq21Pkkcy8V9M4wP+vpCfQkg1REQ1 -+mr1Vg+SFya3mlCxpFTy3j8E ------END CERTIFICATE----- diff --git a/nixos/tests/ihatemoney/server.key b/nixos/tests/ihatemoney/server.key deleted file mode 100644 index 72a43577d64d..000000000000 --- a/nixos/tests/ihatemoney/server.key +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PRIVATE KEY----- -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 -NaEkKVO0D0jFtk37s/YqJpCsXg/B7yc= ------END PRIVATE KEY----- diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix deleted file mode 100644 index c2aaac654859..000000000000 --- a/pkgs/development/python-modules/ihatemoney/default.nix +++ /dev/null @@ -1,129 +0,0 @@ -{ lib -, buildPythonPackage -, pythonOlder -, nixosTests -, fetchPypi -, alembic -, aniso8601 -, babel -, blinker -, cachetools -, click -, dnspython -, email-validator -, flask -, flask-babel -, flask-cors -, flask_mail -, flask_migrate -, flask-restful -, flask-talisman -, flask-wtf -, debts -, idna -, itsdangerous -, jinja2 -, mako -, markupsafe -, python-dateutil -, pytz -, requests -, sqlalchemy -, sqlalchemy-utils -, sqlalchemy-continuum -, sqlalchemy-i18n -, werkzeug -, wtforms -, psycopg2 # optional, for postgresql support -, flask-testing -, pytestCheckHook -}: - -buildPythonPackage rec { - pname = "ihatemoney"; - version = "5.2.0"; - format = "setuptools"; - - disabled = pythonOlder "3.7"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-uQgZBbpqqbZYHpR+GwHWX0c7di2rVvEz0jPRY6+BkkQ="; - }; - - propagatedBuildInputs = [ - aniso8601 - babel - blinker - cachetools - click - debts - dnspython - email-validator - flask - flask_mail - flask_migrate - flask-wtf - flask-babel - flask-cors - flask-restful - flask-talisman - idna - itsdangerous - jinja2 - mako - markupsafe - psycopg2 - python-dateutil - pytz - requests - sqlalchemy - sqlalchemy-continuum - werkzeug - wtforms - ]; - - postPatch = '' - substituteInPlace setup.cfg \ - --replace "cachetools>=4.1,<5" "cachetools>=4.1" \ - --replace "SQLAlchemy>=1.3.0,<1.4" "SQLAlchemy>=1.3.0,<1.5" \ - --replace "WTForms>=2.3.1,<3.1" "WTForms" - ''; - - nativeCheckInputs = [ - flask-testing - pytestCheckHook - ]; - - pythonImportsCheck = [ - "ihatemoney" - ]; - - disabledTests = [ - # Requires running service - "test_notifications" - "test_invite" - "test_access_other_projects" - "test_authentication" - "test_manage_bills" - "test_member_delete_method" - "test_membership" - "test_bill_add_remove_add" - "test_clear_ip_records" - "test_disable_clear_no_new_records" - "test_logs_for_common_actions" - # Requires DNS resolution - "test_invitation_email_failure" - ]; - - passthru.tests = { - inherit (nixosTests.ihatemoney) ihatemoney-postgresql ihatemoney-sqlite; - }; - - meta = with lib; { - description = "Shared budget manager web application"; - homepage = "https://ihatemoney.org"; - license = licenses.beerware; - maintainers = with maintainers; [ symphorien ]; - }; -} diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json index 2007dfc4dbe5..7f7ce60764dd 100644 --- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json +++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides/build-systems.json @@ -7208,9 +7208,6 @@ "igraph": [ "setuptools" ], - "ihatemoney": [ - "setuptools" - ], "ijson": [ "setuptools" ], diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index b3bd9c69d688..7af70d4884f4 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -128,6 +128,7 @@ mapAliases ({ hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18 HTSeq = htseq; # added 2023-02-19 hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29 + ihatemoney = throw "ihatemoney was removed because it is no longer maintained downstream"; # added 2023-04-08 IMAPClient = imapclient; # added 2021-10-28 imdbpy = throw "imdbpy has been renamed to cinemagoer"; # added 2022-08-08 intreehook = throw "intreehooks has been removed because it is obsolete as a backend-path key was added to PEP 517"; # added 2023-04-11 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5337743f2c38..c867a75d6baa 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4668,8 +4668,6 @@ self: super: with self; { inherit (pkgs) igraph; }; - ihatemoney = callPackage ../development/python-modules/ihatemoney { }; - ijson = callPackage ../development/python-modules/ijson { }; ilua = callPackage ../development/python-modules/ilua { };