Change:
Steps to reproduce the behavior: pgadmin.service Add any other context about the problem here. Please run and paste the result.
I know. The PR needs to be merged.
seems like it might be some time before this gets fixed. In the meantime, is there a way I could force my system to use an older version of pgadmin? I'm using flakes for my system config.
The way I do it, is to maintain my own fork of and cherry-pick PR's like that. An older version will not work, because they will run into similar errors. You could only run an older version of . This is a problem due to updated dependencies in nixpkgs. I re-requested an review from and/or maybe someone else has time to review/commit the PR.
OK I got it working for now by changing my as follows: Please let me know if that's a terrible idea in your opinion ...
No, not really. I use my branch which I regularly update, which includes my cherry-picked commits. The commit you picked reflects the status of at the time of the commit of pgadmin (and obviously the changes to pgadmin) You just need to be aware that due to the pinning, a will not update currently and should probably be reverted once the PR got merged.
thanks that's what I'll do!
I'm a little fuzzy on what happens next here. Am I seeing correctly that this problem is still not resolved?
The PR needs to be merged. AFAIK everything is done with the PR
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
Got it working using in my flake.

Discussion:
}; initialEmail = mkOption { <del> description = lib.mdDoc "Initial email for the pgAdmin account."; </del> <ins> description = lib.mdDoc "Initial email for the pgAdmin account"; </ins> type = types.str; }; initialPasswordFile = mkOption { description = lib.mdDoc '' Initial password file for the pgAdmin account. <del> NOTE: Should be string not a store path, to prevent the password from being world readable. </del> <ins> NOTE: Should be string not a store path, to prevent the password from being world readable </ins> ''; type = types.path; }; <ins> emailServer = { enable = mkOption { description = lib.mdDoc '' Enable SMTP email server. This is necessary, if you want to use password recovery or change your own password ''; type = types.bool; default = false; }; address = mkOption { description = lib.mdDoc "SMTP server for email delivery"; type = types.str; default = "localhost"; }; port = mkOption { description = lib.mdDoc "SMTP server port for email delivery"; type = types.port; default = 25; }; useSSL = mkOption { description = lib.mdDoc "SMTP server should use SSL"; type = types.bool; default = false; }; useTLS = mkOption { description = lib.mdDoc "SMTP server should use TLS"; type = types.bool; default = false; }; username = mkOption { description = lib.mdDoc "SMTP server username for email delivery"; type = types.nullOr types.str; default = null; }; sender = mkOption { description = lib.mdDoc '' SMTP server sender email for email delivery. Some servers require this to be a valid email address from that server ''; type = types.str; example = "noreply@example.com"; }; passwordFile = mkOption { description = lib.mdDoc '' Password for SMTP email account. NOTE: Should be string not a store path, to prevent the password from being world readable ''; type = types.path; }; }; </ins> openFirewall = mkEnableOption (lib.mdDoc "firewall passthrough for pgadmin4"); settings = mkOption { description = lib.mdDoc '' Settings for pgadmin4. <del> [Documentation](https://www.pgadmin.org/docs/pgadmin4/development/config_py.html). </del> <ins> [Documentation](https://www.pgadmin.org/docs/pgadmin4/development/config_py.html) </ins> ''; type = pyType; <del> default= {}; </del> <ins> default = { }; </ins> }; };

SERVER_MODE = true; } // (optionalAttrs cfg.openFirewall { DEFAULT_SERVER = mkDefault "::"; <ins> }) // (optionalAttrs cfg.emailServer.enable { MAIL_SERVER = cfg.emailServer.address; MAIL_PORT = cfg.emailServer.port; MAIL_USE_SSL = cfg.emailServer.useSSL; MAIL_USE_TLS = cfg.emailServer.useTLS; MAIL_USERNAME = cfg.emailServer.username; SECURITY_EMAIL_SENDER = cfg.emailServer.sender; </ins> }); systemd.services.pgadmin = {

group = "pgadmin"; }; <del> users.groups.pgadmin = {}; </del> <ins> users.groups.pgadmin = { }; </ins> environment.etc."pgadmin/config_system.py" = { <del> text = formatPy cfg.settings; </del> <ins> text = lib.optionalString cfg.emailServer.enable '' with open("${cfg.emailServer.passwordFile}") as f: pw = f.read() MAIL_PASSWORD = pw '' + formatPy cfg.settings; </ins> mode = "0600"; user = "pgadmin"; group = "pgadmin";

&& sed -i 's|driver_local.maximize_window()||' web/regression/runtests.py" ) <del> # don't bother to test LDAP authentification # exclude resql test due to recent postgres 14.4 update # see bugreport here https://redmine.postgresql.org/issues/7527 </del> <ins> # Don't bother to test LDAP or kerberos authentification # For now deactivate change_password API test. Current bug report at https://redmine.postgresql.org/issues/7648 # Password change works from the UI, if email SMTP is configured. </ins> with subtest("run browser test"): machine.succeed( 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web  && python regression/runtests.py  --pkg browser  <del> --exclude browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login,resql' </del> <ins> --exclude browser.tests.test_ldap_login.LDAPLoginTestCase,browser.tests.test_ldap_login,browser.tests.test_kerberos_with_mocking,browser.tests.test_change_password' </ins> ) # fontconfig is necessary for chromium to run

&& python regression/runtests.py --pkg feature_tests' ) <del> # reactivate this test again, when the postgres 14.4 test has been fixed # with subtest("run resql test"): #    machine.succeed( #         'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web  #         && python regression/runtests.py --pkg resql' #    ) </del> <ins> with subtest("run resql test"): machine.succeed( 'cd ${pgadmin4SrcDir}/pgadmin4-${pkgs.pgadmin4.version}/web  && python regression/runtests.py --pkg resql' ) </ins> ''; })

let pname = "pgadmin"; <del> version = "6.12"; </del> <ins> version = "6.13"; </ins> src = fetchurl { url = "https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v${version}/source/pgadmin4-${version}.tar.gz"; <del> sha256 = "sha256-cO7GdZDfJ0pq1jpMyrVy0UM49WhrKOIJOmMJauSkbyo="; </del> <ins> sha256 = "sha256-vLItmE76R1IzgMYEGEvIeOmbfQQac5WK12AkkZknTFU="; </ins> }; yarnDeps = mkYarnModules {

azure-identity ]; <del> # override necessary on pgadmin4 6.12 </del> <ins> # keep the scope, as it is used throughout the derivation and tests # this also makes potential future overrides easier </ins> pythonPackages = python3.pkgs.overrideScope (final: prev: rec { <del> werkzeug = prev.werkzeug.overridePythonAttrs (oldAttrs: rec { version = "2.0.3"; </del> <ins> # flask 2.2 is incompatible with pgadmin 6.13 # https://redmine.postgresql.org/issues/7651 flask = prev.flask.overridePythonAttrs (oldAttrs: rec { version = "2.1.3"; </ins> src = oldAttrs.src.override { inherit version; <del> sha256 = "sha256-uGP4/wV8UiFktgZ8niiwQRYbS+W6TQ2s7qpQoWOCLTw="; </del> <ins> sha256 = "sha256-FZcuUBffBXXD1sCQuhaLbbkCWeYgrI1+qBOjlrrVtss="; </ins> }; }); });

# build the documentation cd docs/en_US <del> ${sphinx}/bin/sphinx-build -W -b html -d _build/doctrees . _build/html </del> <ins> sphinx-build -W -b html -d _build/doctrees . _build/html </ins> # Build the clean tree cd ../../web

cp -v ../pkg/pip/setup_pip.py setup.py ''; <del> nativeBuildInputs = with pythonPackages; [ cython pip ]; </del> <ins> nativeBuildInputs = with pythonPackages; [ cython pip sphinx ]; </ins> buildInputs = [ zlib pythonPackages.wheel

<ins> #!/usr/bin/env nix-shell #!nix-shell -i bash -p curl wget jq yarn2nix yarn common-updater-scripts set -eu -o pipefail scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd) nixpkgs=$(realpath "$scriptDir"/../../../..) newest_version="$(curl -s https://www.pgadmin.org/versions.json | jq -r .pgadmin4.version)" old_version=$(nix-instantiate --eval -E "(import "$nixpkgs" { config = {}; overlays = []; }).pgadmin4.version" | tr -d '"') url="https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v${newest_version}/source/pgadmin4-${newest_version}.tar.gz" if [[ $newest_version == $old_version ]]; then echo "Already at latest version $newest_version" exit 0 fi echo "New version: $newest_version" pushd $(mktemp -d --suffix=-pgadmin4-updater) wget $url tar -xzf "pgadmin4-$newest_version.tar.gz" cd "pgadmin4-$newest_version/web" yarn2nix > yarn.nix cp yarn.nix yarn.lock package.json "$nixpkgs/pkgs/tools/admin/pgadmin/" popd update-source-version pgadmin4 "$newest_version" --print-changes </ins>