From 37f15c5282c04bfc505810e179ff48a3a5bdb64a Mon Sep 17 00:00:00 2001 From: Septias Date: Wed, 13 Nov 2024 13:30:12 +0100 Subject: [PATCH] fmt flake with alejandra --- flake.nix | 584 +++++++++++++++++++++++++++--------------------------- 1 file changed, 289 insertions(+), 295 deletions(-) diff --git a/flake.nix b/flake.nix index 5a2160598..c9d8f8e1f 100644 --- a/flake.nix +++ b/flake.nix @@ -8,13 +8,21 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; android.url = "github:tadfisher/android-nixpkgs"; }; - outputs = { self, nixpkgs, flake-utils, nix-filter, naersk, fenix, android }: - flake-utils.lib.eachDefaultSystem (system: - let + outputs = { + self, + nixpkgs, + flake-utils, + nix-filter, + naersk, + fenix, + android, + }: + flake-utils.lib.eachDefaultSystem ( + system: let pkgs = nixpkgs.legacyPackages.${system}; inherit (pkgs.stdenv) isDarwin; fenixPkgs = fenix.packages.${system}; - naersk' = pkgs.callPackage naersk { }; + naersk' = pkgs.callPackage naersk {}; manifest = (pkgs.lib.importTOML ./Cargo.toml).package; androidSdk = android.sdk.${system} (sdkPkgs: builtins.attrValues { @@ -96,7 +104,7 @@ mkRustPackage = packageName: naersk'.buildPackage { pname = packageName; - cargoBuildOptions = x: x ++ [ "--package" packageName ]; + cargoBuildOptions = x: x ++ ["--package" packageName]; version = manifest.version; src = pkgs.lib.cleanSource ./.; nativeBuildInputs = [ @@ -109,22 +117,21 @@ doCheck = false; # Disable test as it requires network access. }; pkgsWin64 = pkgs.pkgsCross.mingwW64; - mkWin64RustPackage = packageName: - let - rustTarget = "x86_64-pc-windows-gnu"; - toolchainWin = fenixPkgs.combine [ - fenixPkgs.stable.rustc - fenixPkgs.stable.cargo - fenixPkgs.targets.${rustTarget}.stable.rust-std - ]; - naerskWin = pkgs.callPackage naersk { - cargo = toolchainWin; - rustc = toolchainWin; - }; - in + mkWin64RustPackage = packageName: let + rustTarget = "x86_64-pc-windows-gnu"; + toolchainWin = fenixPkgs.combine [ + fenixPkgs.stable.rustc + fenixPkgs.stable.cargo + fenixPkgs.targets.${rustTarget}.stable.rust-std + ]; + naerskWin = pkgs.callPackage naersk { + cargo = toolchainWin; + rustc = toolchainWin; + }; + in naerskWin.buildPackage rec { pname = packageName; - cargoBuildOptions = x: x ++ [ "--package" packageName ]; + cargoBuildOptions = x: x ++ ["--package" packageName]; version = manifest.version; strictDeps = true; src = pkgs.lib.cleanSource ./.; @@ -150,44 +157,45 @@ }; pkgsWin32 = pkgs.pkgsCross.mingw32; - mkWin32RustPackage = packageName: - let - rustTarget = "i686-pc-windows-gnu"; - in - let - toolchainWin = fenixPkgs.combine [ - fenixPkgs.stable.rustc - fenixPkgs.stable.cargo - fenixPkgs.targets.${rustTarget}.stable.rust-std - ]; - naerskWin = pkgs.callPackage naersk { - cargo = toolchainWin; - rustc = toolchainWin; - }; + mkWin32RustPackage = packageName: let + rustTarget = "i686-pc-windows-gnu"; + in let + toolchainWin = fenixPkgs.combine [ + fenixPkgs.stable.rustc + fenixPkgs.stable.cargo + fenixPkgs.targets.${rustTarget}.stable.rust-std + ]; + naerskWin = pkgs.callPackage naersk { + cargo = toolchainWin; + rustc = toolchainWin; + }; - # Get rid of MCF Gthread library. - # See - # and - # for details. - # - # Use DWARF-2 instead of SJLJ for exception handling. - winCC = pkgsWin32.buildPackages.wrapCC ( - (pkgsWin32.buildPackages.gcc-unwrapped.override - ({ - threadsCross = { - model = "win32"; - package = null; - }; - })).overrideAttrs (oldAttr: { - configureFlags = oldAttr.configureFlags ++ [ + # Get rid of MCF Gthread library. + # See + # and + # for details. + # + # Use DWARF-2 instead of SJLJ for exception handling. + winCC = pkgsWin32.buildPackages.wrapCC ( + (pkgsWin32.buildPackages.gcc-unwrapped.override + { + threadsCross = { + model = "win32"; + package = null; + }; + }) + .overrideAttrs (oldAttr: { + configureFlags = + oldAttr.configureFlags + ++ [ "--disable-sjlj-exceptions --with-dwarf2" ]; - }) - ); - in + }) + ); + in naerskWin.buildPackage rec { pname = packageName; - cargoBuildOptions = x: x ++ [ "--package" packageName ]; + cargoBuildOptions = x: x ++ ["--package" packageName]; version = manifest.version; strictDeps = true; src = pkgs.lib.cleanSource ./.; @@ -212,29 +220,27 @@ LD = "${winCC}/bin/${winCC.targetPrefix}cc"; }; - mkCrossRustPackage = arch: packageName: - let - rustTarget = arch2targets."${arch}".rustTarget; - crossTarget = arch2targets."${arch}".crossTarget; - pkgsCross = import nixpkgs { - system = system; - crossSystem.config = crossTarget; - }; - in - let - toolchain = fenixPkgs.combine [ - fenixPkgs.stable.rustc - fenixPkgs.stable.cargo - fenixPkgs.targets.${rustTarget}.stable.rust-std - ]; - naersk-lib = pkgs.callPackage naersk { - cargo = toolchain; - rustc = toolchain; - }; - in + mkCrossRustPackage = arch: packageName: let + rustTarget = arch2targets."${arch}".rustTarget; + crossTarget = arch2targets."${arch}".crossTarget; + pkgsCross = import nixpkgs { + system = system; + crossSystem.config = crossTarget; + }; + in let + toolchain = fenixPkgs.combine [ + fenixPkgs.stable.rustc + fenixPkgs.stable.cargo + fenixPkgs.targets.${rustTarget}.stable.rust-std + ]; + naersk-lib = pkgs.callPackage naersk { + cargo = toolchain; + rustc = toolchain; + }; + in naersk-lib.buildPackage rec { pname = packageName; - cargoBuildOptions = x: x ++ [ "--package" packageName ]; + cargoBuildOptions = x: x ++ ["--package" packageName]; version = manifest.version; strictDeps = true; src = rustSrc; @@ -274,25 +280,24 @@ }; }; - mkAndroidRustPackage = arch: packageName: - let - rustTarget = androidAttrs.${arch}.rustTarget; - toolchain = fenixPkgs.combine [ - fenixPkgs.stable.rustc - fenixPkgs.stable.cargo - fenixPkgs.targets.${rustTarget}.stable.rust-std - ]; - naersk-lib = pkgs.callPackage naersk { - cargo = toolchain; - rustc = toolchain; - }; - targetToolchain = "${androidNdkRoot}/toolchains/llvm/prebuilt/linux-x86_64"; - targetCcName = androidAttrs.${arch}.cc; - targetCc = "${targetToolchain}/bin/${targetCcName}"; - in + mkAndroidRustPackage = arch: packageName: let + rustTarget = androidAttrs.${arch}.rustTarget; + toolchain = fenixPkgs.combine [ + fenixPkgs.stable.rustc + fenixPkgs.stable.cargo + fenixPkgs.targets.${rustTarget}.stable.rust-std + ]; + naersk-lib = pkgs.callPackage naersk { + cargo = toolchain; + rustc = toolchain; + }; + targetToolchain = "${androidNdkRoot}/toolchains/llvm/prebuilt/linux-x86_64"; + targetCcName = androidAttrs.${arch}.cc; + targetCc = "${targetToolchain}/bin/${targetCcName}"; + in naersk-lib.buildPackage rec { pname = packageName; - cargoBuildOptions = x: x ++ [ "--package" packageName ]; + cargoBuildOptions = x: x ++ ["--package" packageName]; version = manifest.version; strictDeps = true; src = rustSrc; @@ -318,243 +323,232 @@ "deltachat-repl-${arch}-android" = mkAndroidRustPackage arch "deltachat-repl"; }; - mkRustPackages = arch: - let - rpc-server = mkCrossRustPackage arch "deltachat-rpc-server"; - in - { - "deltachat-repl-${arch}" = mkCrossRustPackage arch "deltachat-repl"; - "deltachat-rpc-server-${arch}" = rpc-server; - "deltachat-rpc-server-${arch}-wheel" = - pkgs.stdenv.mkDerivation { - pname = "deltachat-rpc-server-${arch}-wheel"; - version = manifest.version; - src = nix-filter.lib { - root = ./.; - include = [ - "scripts/wheel-rpc-server.py" - "deltachat-rpc-server/README.md" - "LICENSE" - "Cargo.toml" - ]; - }; - nativeBuildInputs = [ - pkgs.python3 - pkgs.python3Packages.wheel - ]; - buildInputs = [ - rpc-server - ]; - buildPhase = '' - mkdir tmp - cp ${rpc-server}/bin/deltachat-rpc-server tmp/deltachat-rpc-server - python3 scripts/wheel-rpc-server.py ${arch} tmp/deltachat-rpc-server - ''; - installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out''; - }; + mkRustPackages = arch: let + rpc-server = mkCrossRustPackage arch "deltachat-rpc-server"; + in { + "deltachat-repl-${arch}" = mkCrossRustPackage arch "deltachat-repl"; + "deltachat-rpc-server-${arch}" = rpc-server; + "deltachat-rpc-server-${arch}-wheel" = pkgs.stdenv.mkDerivation { + pname = "deltachat-rpc-server-${arch}-wheel"; + version = manifest.version; + src = nix-filter.lib { + root = ./.; + include = [ + "scripts/wheel-rpc-server.py" + "deltachat-rpc-server/README.md" + "LICENSE" + "Cargo.toml" + ]; + }; + nativeBuildInputs = [ + pkgs.python3 + pkgs.python3Packages.wheel + ]; + buildInputs = [ + rpc-server + ]; + buildPhase = '' + mkdir tmp + cp ${rpc-server}/bin/deltachat-rpc-server tmp/deltachat-rpc-server + python3 scripts/wheel-rpc-server.py ${arch} tmp/deltachat-rpc-server + ''; + installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out''; }; - in - { + }; + in { formatter = pkgs.nixpkgs-fmt; packages = - mkRustPackages "aarch64-linux" // - mkRustPackages "i686-linux" // - mkRustPackages "x86_64-linux" // - mkRustPackages "armv7l-linux" // - mkRustPackages "armv6l-linux" // - mkAndroidPackages "armeabi-v7a" // - mkAndroidPackages "arm64-v8a" // - mkAndroidPackages "x86" // - mkAndroidPackages "x86_64" // rec { + mkRustPackages "aarch64-linux" + // mkRustPackages "i686-linux" + // mkRustPackages "x86_64-linux" + // mkRustPackages "armv7l-linux" + // mkRustPackages "armv6l-linux" + // mkAndroidPackages "armeabi-v7a" + // mkAndroidPackages "arm64-v8a" + // mkAndroidPackages "x86" + // mkAndroidPackages "x86_64" + // rec { # Run with `nix run .#deltachat-repl foo.db`. deltachat-repl = mkRustPackage "deltachat-repl"; deltachat-rpc-server = mkRustPackage "deltachat-rpc-server"; deltachat-repl-win64 = mkWin64RustPackage "deltachat-repl"; deltachat-rpc-server-win64 = mkWin64RustPackage "deltachat-rpc-server"; - deltachat-rpc-server-win64-wheel = - pkgs.stdenv.mkDerivation { - pname = "deltachat-rpc-server-win64-wheel"; - version = manifest.version; - src = nix-filter.lib { - root = ./.; - include = [ - "scripts/wheel-rpc-server.py" - "deltachat-rpc-server/README.md" - "LICENSE" - "Cargo.toml" - ]; - }; - nativeBuildInputs = [ - pkgs.python3 - pkgs.python3Packages.wheel + deltachat-rpc-server-win64-wheel = pkgs.stdenv.mkDerivation { + pname = "deltachat-rpc-server-win64-wheel"; + version = manifest.version; + src = nix-filter.lib { + root = ./.; + include = [ + "scripts/wheel-rpc-server.py" + "deltachat-rpc-server/README.md" + "LICENSE" + "Cargo.toml" ]; - buildInputs = [ - deltachat-rpc-server-win64 - ]; - buildPhase = '' - mkdir tmp - cp ${deltachat-rpc-server-win64}/bin/deltachat-rpc-server.exe tmp/deltachat-rpc-server.exe - python3 scripts/wheel-rpc-server.py win64 tmp/deltachat-rpc-server.exe - ''; - installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out''; }; + nativeBuildInputs = [ + pkgs.python3 + pkgs.python3Packages.wheel + ]; + buildInputs = [ + deltachat-rpc-server-win64 + ]; + buildPhase = '' + mkdir tmp + cp ${deltachat-rpc-server-win64}/bin/deltachat-rpc-server.exe tmp/deltachat-rpc-server.exe + python3 scripts/wheel-rpc-server.py win64 tmp/deltachat-rpc-server.exe + ''; + installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out''; + }; deltachat-repl-win32 = mkWin32RustPackage "deltachat-repl"; deltachat-rpc-server-win32 = mkWin32RustPackage "deltachat-rpc-server"; - deltachat-rpc-server-win32-wheel = - pkgs.stdenv.mkDerivation { - pname = "deltachat-rpc-server-win32-wheel"; - version = manifest.version; - src = nix-filter.lib { - root = ./.; - include = [ - "scripts/wheel-rpc-server.py" - "deltachat-rpc-server/README.md" - "LICENSE" - "Cargo.toml" - ]; - }; - nativeBuildInputs = [ - pkgs.python3 - pkgs.python3Packages.wheel + deltachat-rpc-server-win32-wheel = pkgs.stdenv.mkDerivation { + pname = "deltachat-rpc-server-win32-wheel"; + version = manifest.version; + src = nix-filter.lib { + root = ./.; + include = [ + "scripts/wheel-rpc-server.py" + "deltachat-rpc-server/README.md" + "LICENSE" + "Cargo.toml" ]; - buildInputs = [ - deltachat-rpc-server-win32 - ]; - buildPhase = '' - mkdir tmp - cp ${deltachat-rpc-server-win32}/bin/deltachat-rpc-server.exe tmp/deltachat-rpc-server.exe - python3 scripts/wheel-rpc-server.py win32 tmp/deltachat-rpc-server.exe - ''; - installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out''; }; + nativeBuildInputs = [ + pkgs.python3 + pkgs.python3Packages.wheel + ]; + buildInputs = [ + deltachat-rpc-server-win32 + ]; + buildPhase = '' + mkdir tmp + cp ${deltachat-rpc-server-win32}/bin/deltachat-rpc-server.exe tmp/deltachat-rpc-server.exe + python3 scripts/wheel-rpc-server.py win32 tmp/deltachat-rpc-server.exe + ''; + installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out''; + }; # Run `nix build .#docs` to get C docs generated in `./result/`. - docs = - pkgs.stdenv.mkDerivation { - pname = "docs"; - version = manifest.version; - src = pkgs.lib.cleanSource ./.; - nativeBuildInputs = [ pkgs.doxygen ]; - buildPhase = ''scripts/run-doxygen.sh''; - installPhase = ''mkdir -p $out; cp -av deltachat-ffi/html deltachat-ffi/xml $out''; - }; + docs = pkgs.stdenv.mkDerivation { + pname = "docs"; + version = manifest.version; + src = pkgs.lib.cleanSource ./.; + nativeBuildInputs = [pkgs.doxygen]; + buildPhase = ''scripts/run-doxygen.sh''; + installPhase = ''mkdir -p $out; cp -av deltachat-ffi/html deltachat-ffi/xml $out''; + }; - libdeltachat = - pkgs.stdenv.mkDerivation { - pname = "libdeltachat"; - version = manifest.version; - src = rustSrc; - cargoDeps = pkgs.rustPlatform.importCargoLock cargoLock; + libdeltachat = pkgs.stdenv.mkDerivation { + pname = "libdeltachat"; + version = manifest.version; + src = rustSrc; + cargoDeps = pkgs.rustPlatform.importCargoLock cargoLock; - nativeBuildInputs = [ - pkgs.perl # Needed to build vendored OpenSSL. - pkgs.cmake - pkgs.rustPlatform.cargoSetupHook - pkgs.cargo - ]; - buildInputs = pkgs.lib.optionals isDarwin [ - pkgs.darwin.apple_sdk.frameworks.CoreFoundation - pkgs.darwin.apple_sdk.frameworks.Security - pkgs.darwin.apple_sdk.frameworks.SystemConfiguration - pkgs.libiconv - ]; + nativeBuildInputs = [ + pkgs.perl # Needed to build vendored OpenSSL. + pkgs.cmake + pkgs.rustPlatform.cargoSetupHook + pkgs.cargo + ]; + buildInputs = pkgs.lib.optionals isDarwin [ + pkgs.darwin.apple_sdk.frameworks.CoreFoundation + pkgs.darwin.apple_sdk.frameworks.Security + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration + pkgs.libiconv + ]; - postInstall = '' - substituteInPlace $out/include/deltachat.h \ - --replace __FILE__ '"${placeholder "out"}/include/deltachat.h"' - ''; - }; + postInstall = '' + substituteInPlace $out/include/deltachat.h \ + --replace __FILE__ '"${placeholder "out"}/include/deltachat.h"' + ''; + }; # Source package for deltachat-rpc-server. # Fake package that downloads Linux version, # needed to install deltachat-rpc-server on Android with `pip`. - deltachat-rpc-server-source = - pkgs.stdenv.mkDerivation { - pname = "deltachat-rpc-server-source"; - version = manifest.version; - src = pkgs.lib.cleanSource ./.; - nativeBuildInputs = [ - pkgs.python3 - pkgs.python3Packages.wheel - ]; - buildPhase = ''python3 scripts/wheel-rpc-server.py source deltachat-rpc-server-${manifest.version}.tar.gz''; - installPhase = ''mkdir -p $out; cp -av deltachat-rpc-server-${manifest.version}.tar.gz $out''; - }; + deltachat-rpc-server-source = pkgs.stdenv.mkDerivation { + pname = "deltachat-rpc-server-source"; + version = manifest.version; + src = pkgs.lib.cleanSource ./.; + nativeBuildInputs = [ + pkgs.python3 + pkgs.python3Packages.wheel + ]; + buildPhase = ''python3 scripts/wheel-rpc-server.py source deltachat-rpc-server-${manifest.version}.tar.gz''; + installPhase = ''mkdir -p $out; cp -av deltachat-rpc-server-${manifest.version}.tar.gz $out''; + }; - deltachat-rpc-client = - pkgs.python3Packages.buildPythonPackage { - pname = "deltachat-rpc-client"; - version = manifest.version; - src = pkgs.lib.cleanSource ./deltachat-rpc-client; - format = "pyproject"; - propagatedBuildInputs = [ - pkgs.python3Packages.setuptools - pkgs.python3Packages.imap-tools - ]; - }; + deltachat-rpc-client = pkgs.python3Packages.buildPythonPackage { + pname = "deltachat-rpc-client"; + version = manifest.version; + src = pkgs.lib.cleanSource ./deltachat-rpc-client; + format = "pyproject"; + propagatedBuildInputs = [ + pkgs.python3Packages.setuptools + pkgs.python3Packages.imap-tools + ]; + }; - deltachat-python = - pkgs.python3Packages.buildPythonPackage { - pname = "deltachat-python"; - version = manifest.version; - src = pkgs.lib.cleanSource ./python; - format = "pyproject"; - buildInputs = [ - libdeltachat - ]; - nativeBuildInputs = [ - pkgs.pkg-config - ]; - propagatedBuildInputs = [ - pkgs.python3Packages.setuptools - pkgs.python3Packages.pkgconfig - pkgs.python3Packages.cffi - pkgs.python3Packages.imap-tools - pkgs.python3Packages.pluggy - pkgs.python3Packages.requests - ]; - }; - python-docs = - pkgs.stdenv.mkDerivation { - pname = "docs"; - version = manifest.version; - src = pkgs.lib.cleanSource ./.; - buildInputs = [ - deltachat-python - deltachat-rpc-client - pkgs.python3Packages.breathe - pkgs.python3Packages.sphinx_rtd_theme - ]; - nativeBuildInputs = [ pkgs.sphinx ]; - buildPhase = ''sphinx-build -b html -a python/doc/ dist/html''; - installPhase = ''mkdir -p $out; cp -av dist/html $out''; - }; + deltachat-python = pkgs.python3Packages.buildPythonPackage { + pname = "deltachat-python"; + version = manifest.version; + src = pkgs.lib.cleanSource ./python; + format = "pyproject"; + buildInputs = [ + libdeltachat + ]; + nativeBuildInputs = [ + pkgs.pkg-config + ]; + propagatedBuildInputs = [ + pkgs.python3Packages.setuptools + pkgs.python3Packages.pkgconfig + pkgs.python3Packages.cffi + pkgs.python3Packages.imap-tools + pkgs.python3Packages.pluggy + pkgs.python3Packages.requests + ]; + }; + python-docs = pkgs.stdenv.mkDerivation { + pname = "docs"; + version = manifest.version; + src = pkgs.lib.cleanSource ./.; + buildInputs = [ + deltachat-python + deltachat-rpc-client + pkgs.python3Packages.breathe + pkgs.python3Packages.sphinx_rtd_theme + ]; + nativeBuildInputs = [pkgs.sphinx]; + buildPhase = ''sphinx-build -b html -a python/doc/ dist/html''; + installPhase = ''mkdir -p $out; cp -av dist/html $out''; + }; }; - devShells.default = let + devShells.default = let pkgs = import nixpkgs { system = system; - overlays = [ fenix.overlays.default ]; + overlays = [fenix.overlays.default]; + }; + in + pkgs.mkShell { + buildInputs = with pkgs; [ + (fenix.packages.${system}.complete.withComponents [ + "cargo" + "clippy" + "rust-src" + "rustc" + "rustfmt" + ]) + cargo-deny + rust-analyzer-nightly + cargo-nextest + perl # needed to build vendored OpenSSL + git-cliff + ]; }; - in pkgs.mkShell { - - buildInputs = with pkgs; [ - (fenix.packages.${system}.complete.withComponents [ - "cargo" - "clippy" - "rust-src" - "rustc" - "rustfmt" - ]) - cargo-deny - rust-analyzer-nightly - cargo-nextest - perl # needed to build vendored OpenSSL - git-cliff - ]; - }; } ); }