diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 00d52376b18a..8009e2337888 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -22,6 +22,8 @@ ## Backward Incompatibilities {#sec-release-23.11-incompatibilities} +- `python3.pkgs.sequoia` was removed in favor of `python3.pkgs.pysequoia`. The latter package is based on upstream's dedicated repository for sequoia's Python bindings, where the Python bindings from [gitlab:sequoia-pgp/sequoia](https://gitlab.com/sequoia-pgp/sequoia) were removed long ago. + - `writeTextFile` now requires `executable` to be boolean, values like `null` or `""` will now fail to evaluate. - The latest version of `clonehero` now stores custom content in `~/.clonehero`. See the [migration instructions](https://clonehero.net/2022/11/29/v23-to-v1-migration-instructions.html). Typically, these content files would exist along side the binary, but the previous build used a wrapper script that would store them in `~/.config/unity3d/srylain Inc_/Clone Hero`. diff --git a/pkgs/development/python-modules/pysequoia/default.nix b/pkgs/development/python-modules/pysequoia/default.nix new file mode 100644 index 000000000000..ffc7486cf20a --- /dev/null +++ b/pkgs/development/python-modules/pysequoia/default.nix @@ -0,0 +1,61 @@ +{ lib +, buildPythonPackage +, fetchFromGitLab +, pkg-config +, rustPlatform +, cargo +, rustc +, bzip2 +, nettle +, openssl +, pcsclite +, stdenv +, darwin +}: + +buildPythonPackage rec { + pname = "pysequoia"; + version = "0.1.14"; + format = "pyproject"; + + src = fetchFromGitLab { + owner = "sequoia-pgp"; + repo = "pysequoia"; + rev = "v${version}"; + hash = "sha256-63kUUxZTG33cB/IiD4AiDpLOI6Uew/fETgqhaGc7zp0="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + hash = "sha256-S/j3bGgU46nvVQFs35ih05teVEIJrFN4Ryq4B7rLFDE="; + }; + + nativeBuildInputs = [ + pkg-config + rustPlatform.bindgenHook + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + cargo + rustc + ]; + + buildInputs = [ + bzip2 + nettle + openssl + pcsclite + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.CoreFoundation + darwin.apple_sdk.frameworks.Security + ]; + + pythonImportsCheck = [ "pysequoia" ]; + + meta = with lib; { + description = "This library provides OpenPGP facilities in Python through the Sequoia PGP library"; + homepage = "https://sequoia-pgp.gitlab.io/pysequoia"; + license = licenses.asl20; + maintainers = with maintainers; [ doronbehar ]; + }; +} diff --git a/pkgs/tools/security/sequoia-sq/default.nix b/pkgs/tools/security/sequoia-sq/default.nix new file mode 100644 index 000000000000..4da70b5155bf --- /dev/null +++ b/pkgs/tools/security/sequoia-sq/default.nix @@ -0,0 +1,62 @@ +{ stdenv +, fetchFromGitLab +, lib +, darwin +, nettle +, nix-update-script +, rustPlatform +, pkg-config +, openssl +, sqlite +}: + +rustPlatform.buildRustPackage rec { + pname = "sequoia-sq"; + version = "0.30.1"; + + src = fetchFromGitLab { + owner = "sequoia-pgp"; + repo = "sequoia-sq"; + rev = "v${version}"; + hash = "sha256-uFcmuyz0JsUTvKqCb+3t8JdB4Dn4hJq00jeEhvMNW18="; + }; + + cargoHash = "sha256-9UQojec2jy9DVwQQplaKuPWYCeRXtWtdzj1d/LLyfJQ="; + + nativeBuildInputs = [ + pkg-config + rustPlatform.bindgenHook + ]; + + buildInputs = [ + openssl + sqlite + nettle + ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; + + # Sometimes, tests fail on CI (ofborg) & hydra without this + checkFlags = [ + # doctest for sequoia-ipc fail for some reason + "--skip=macros::assert_send_and_sync" + "--skip=macros::time_it" + ]; + + # Install manual pages, see https://gitlab.com/sequoia-pgp/sequoia-sq#building + postInstall = '' + mkdir -p $out/share/man + SQ_MAN=$out/share/man/man1 cargo run + ''; + + doCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = with lib; { + description = "A cool new OpenPGP implementation"; + homepage = "https://sequoia-pgp.org/"; + changelog = "https://gitlab.com/sequoia-pgp/sequoia-sq/-/blob/v${version}/NEWS"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ minijackson doronbehar ]; + mainProgram = "sq"; + }; +} diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix deleted file mode 100644 index aed53b57f55d..000000000000 --- a/pkgs/tools/security/sequoia/default.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ stdenv -, fetchFromGitLab -, fetchpatch -, lib -, darwin -, git -, nettle -, nix-update-script -, cargo -, rustc -, rustPlatform -, pkg-config -, openssl -, sqlite -, capnproto -, ensureNewerSourcesForZipFilesHook -, pythonSupport ? true -, pythonPackages ? null -}: - -assert pythonSupport -> pythonPackages != null; - -rustPlatform.buildRustPackage rec { - pname = "sequoia"; - # Upstream has separate version numbering for the library and the CLI frontend. - # This derivation provides the CLI frontend, and thus uses its version number. - version = "0.28.0"; - - src = fetchFromGitLab { - owner = "sequoia-pgp"; - repo = "sequoia"; - rev = "sq/v${version}"; - hash = "sha256-T7WOYMqyBeVHs+4w8El99t0NTUKqMW1QeAkNGKcaWr0="; - }; - - cargoHash = "sha256-zaAAEFBumfHU4hGzAOmLvBu3X4J7LAlmexqixHtVPr8="; - - patches = [ - (fetchpatch { - url = "https://gitlab.com/sequoia-pgp/sequoia/-/commit/4dc6e624c2394936dc447f18aedb4a4810bb2ddb.patch"; - hash = "sha256-T6hh7U1gvKvyn/OCuJBvLM7TG1VFnpvpAiWS72m3P6I="; - }) - ]; - - nativeBuildInputs = [ - pkg-config - cargo - rustc - git - rustPlatform.bindgenHook - ensureNewerSourcesForZipFilesHook - capnproto - ] ++ - lib.optionals pythonSupport [ pythonPackages.setuptools ] - ; - - nativeCheckInputs = lib.optionals pythonSupport [ - pythonPackages.pytest - pythonPackages.pytest-runner - ]; - - buildInputs = [ - openssl - sqlite - nettle - ] ++ lib.optionals pythonSupport [ pythonPackages.python pythonPackages.cffi ] - ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ] - ; - - makeFlags = [ - "PREFIX=${placeholder "out"}" - # Defaults to "ginstall" from some reason, although upstream's Makefiles check uname - "INSTALL=install" - ]; - - buildFlags = [ - "build-release" - ]; - - # Sometimes, tests fail on CI (ofborg) & hydra without this - checkFlags = [ - # doctest for sequoia-ipc fail for some reason - "--skip=macros::assert_send_and_sync" - "--skip=macros::time_it" - ]; - - preInstall = lib.optionalString pythonSupport '' - export installFlags="PYTHONPATH=$PYTHONPATH:$out/${pythonPackages.python.sitePackages}" - '' + lib.optionalString (!pythonSupport) '' - export makeFlags="PYTHON=disable" - ''; - - # Don't use buildRustPackage phases, only use it for rust deps setup - configurePhase = null; - buildPhase = null; - doCheck = true; - checkPhase = null; - installPhase = null; - - passthru.updateScript = nix-update-script { }; - - meta = with lib; { - description = "A cool new OpenPGP implementation"; - homepage = "https://sequoia-pgp.org/"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ minijackson doronbehar ]; - mainProgram = "sq"; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index efae4ef55088..3969dc57923d 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1537,6 +1537,7 @@ mapAliases ({ seeks = throw "seeks has been removed from nixpkgs, as it was unmaintained"; # Added 2020-06-21 sepolgen = throw "sepolgen was merged into selinux-python"; # Added 2021-11-11 session-desktop-appimage = session-desktop; + sequoia = sequoia-sq; # Added 2023-06-26 sget = throw "sget has been removed from nixpkgs, as it is not supported upstream anymore see https://github.com/sigstore/sget/issues/145"; # Added 2023-05-26 shared_mime_info = throw "'shared_mime_info' has been renamed to/replaced by 'shared-mime-info'"; # Converted to throw 2022-02-22 inherit (libsForQt5.mauiPackages) shelf; # added 2022-05-17 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b85950f1e450..3d525b86e8e2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12443,9 +12443,7 @@ with pkgs; seqdiag = with python3Packages; toPythonApplication seqdiag; - sequoia = callPackage ../tools/security/sequoia { - pythonPackages = python3Packages; - }; + sequoia-sq = callPackage ../tools/security/sequoia-sq { }; sequoia-chameleon-gnupg = callPackage ../tools/security/sequoia-chameleon-gnupg { }; diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index c8418129950c..c0f63cc0d865 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -297,6 +297,7 @@ mapAliases ({ scikitimage = scikit-image; # added 2023-05-14 scikitlearn = scikit-learn; # added 2021-07-21 selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10 + sequoia = throw "python3Packages.sequoia was replaced by pysequoia - built from a dedicated repository, with a new API."; # added 2023-06-24 setuptools_scm = setuptools-scm; # added 2021-06-03 sharkiqpy = sharkiq; # added 2022-05-21 ssh-mitm = throw "ssh-mitm was removed in favor of the top-level ssh-mitm"; # added 2023-05-09 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 3e2540841e3d..41148d8c56d8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7823,6 +7823,8 @@ self: super: with self; { pysbd = callPackage ../development/python-modules/pysbd { }; + pysequoia = callPackage ../development/python-modules/pysequoia { }; + pyschemes = callPackage ../development/python-modules/pyschemes { }; pyschlage = callPackage ../development/python-modules/pyschlage { }; @@ -11149,11 +11151,6 @@ self: super: with self; { seqeval = callPackage ../development/python-modules/seqeval { }; - sequoia = disabledIf isPyPy (toPythonModule (pkgs.sequoia.override { - pythonPackages = self; - pythonSupport = true; - })); - serialio = callPackage ../development/python-modules/serialio { }; serpent = callPackage ../development/python-modules/serpent { }; diff --git a/pkgs/top-level/python2-packages.nix b/pkgs/top-level/python2-packages.nix index a79dc31ed9dd..1a19118678eb 100644 --- a/pkgs/top-level/python2-packages.nix +++ b/pkgs/top-level/python2-packages.nix @@ -71,8 +71,6 @@ with self; with super; { scandir = callPackage ../development/python2-modules/scandir { }; - sequoia = disabled super.sequoia; - setuptools = callPackage ../development/python2-modules/setuptools { }; setuptools-scm = callPackage ../development/python2-modules/setuptools-scm { };