mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
chore: run nix fmt
This commit is contained in:
134
flake.nix
134
flake.nix
@@ -8,18 +8,30 @@
|
|||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
android.url = "github:tadfisher/android-nixpkgs";
|
android.url = "github:tadfisher/android-nixpkgs";
|
||||||
};
|
};
|
||||||
outputs = { self, nixpkgs, flake-utils, nix-filter, naersk, fenix, android }:
|
outputs =
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
nix-filter,
|
||||||
|
naersk,
|
||||||
|
fenix,
|
||||||
|
android,
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachDefaultSystem (
|
||||||
|
system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
inherit (pkgs.stdenv) isDarwin;
|
inherit (pkgs.stdenv) isDarwin;
|
||||||
fenixPkgs = fenix.packages.${system};
|
fenixPkgs = fenix.packages.${system};
|
||||||
naersk' = pkgs.callPackage naersk { };
|
naersk' = pkgs.callPackage naersk { };
|
||||||
manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
|
manifest = (pkgs.lib.importTOML ./Cargo.toml).package;
|
||||||
androidSdk = android.sdk.${system} (sdkPkgs:
|
androidSdk = android.sdk.${system} (
|
||||||
|
sdkPkgs:
|
||||||
builtins.attrValues {
|
builtins.attrValues {
|
||||||
inherit (sdkPkgs) ndk-27-0-11902837 cmdline-tools-latest;
|
inherit (sdkPkgs) ndk-27-0-11902837 cmdline-tools-latest;
|
||||||
});
|
}
|
||||||
|
);
|
||||||
androidNdkRoot = "${androidSdk}/share/android-sdk/ndk/27.0.11902837";
|
androidNdkRoot = "${androidSdk}/share/android-sdk/ndk/27.0.11902837";
|
||||||
|
|
||||||
rustSrc = nix-filter.lib {
|
rustSrc = nix-filter.lib {
|
||||||
@@ -93,10 +105,17 @@
|
|||||||
"lettre-0.9.2" = "sha256-+hU1cFacyyeC9UGVBpS14BWlJjHy90i/3ynMkKAzclk=";
|
"lettre-0.9.2" = "sha256-+hU1cFacyyeC9UGVBpS14BWlJjHy90i/3ynMkKAzclk=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
mkRustPackage = packageName:
|
mkRustPackage =
|
||||||
|
packageName:
|
||||||
naersk'.buildPackage {
|
naersk'.buildPackage {
|
||||||
pname = packageName;
|
pname = packageName;
|
||||||
cargoBuildOptions = x: x ++ [ "--package" packageName ];
|
cargoBuildOptions =
|
||||||
|
x:
|
||||||
|
x
|
||||||
|
++ [
|
||||||
|
"--package"
|
||||||
|
packageName
|
||||||
|
];
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@@ -109,7 +128,8 @@
|
|||||||
doCheck = false; # Disable test as it requires network access.
|
doCheck = false; # Disable test as it requires network access.
|
||||||
};
|
};
|
||||||
pkgsWin64 = pkgs.pkgsCross.mingwW64;
|
pkgsWin64 = pkgs.pkgsCross.mingwW64;
|
||||||
mkWin64RustPackage = packageName:
|
mkWin64RustPackage =
|
||||||
|
packageName:
|
||||||
let
|
let
|
||||||
rustTarget = "x86_64-pc-windows-gnu";
|
rustTarget = "x86_64-pc-windows-gnu";
|
||||||
toolchainWin = fenixPkgs.combine [
|
toolchainWin = fenixPkgs.combine [
|
||||||
@@ -124,7 +144,13 @@
|
|||||||
in
|
in
|
||||||
naerskWin.buildPackage rec {
|
naerskWin.buildPackage rec {
|
||||||
pname = packageName;
|
pname = packageName;
|
||||||
cargoBuildOptions = x: x ++ [ "--package" packageName ];
|
cargoBuildOptions =
|
||||||
|
x:
|
||||||
|
x
|
||||||
|
++ [
|
||||||
|
"--package"
|
||||||
|
packageName
|
||||||
|
];
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
@@ -150,7 +176,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
pkgsWin32 = pkgs.pkgsCross.mingw32;
|
pkgsWin32 = pkgs.pkgsCross.mingw32;
|
||||||
mkWin32RustPackage = packageName:
|
mkWin32RustPackage =
|
||||||
|
packageName:
|
||||||
let
|
let
|
||||||
rustTarget = "i686-pc-windows-gnu";
|
rustTarget = "i686-pc-windows-gnu";
|
||||||
in
|
in
|
||||||
@@ -172,13 +199,13 @@
|
|||||||
#
|
#
|
||||||
# Use DWARF-2 instead of SJLJ for exception handling.
|
# Use DWARF-2 instead of SJLJ for exception handling.
|
||||||
winCC = pkgsWin32.buildPackages.wrapCC (
|
winCC = pkgsWin32.buildPackages.wrapCC (
|
||||||
(pkgsWin32.buildPackages.gcc-unwrapped.override
|
(pkgsWin32.buildPackages.gcc-unwrapped.override ({
|
||||||
({
|
|
||||||
threadsCross = {
|
threadsCross = {
|
||||||
model = "win32";
|
model = "win32";
|
||||||
package = null;
|
package = null;
|
||||||
};
|
};
|
||||||
})).overrideAttrs (oldAttr: {
|
})).overrideAttrs
|
||||||
|
(oldAttr: {
|
||||||
configureFlags = oldAttr.configureFlags ++ [
|
configureFlags = oldAttr.configureFlags ++ [
|
||||||
"--disable-sjlj-exceptions --with-dwarf2"
|
"--disable-sjlj-exceptions --with-dwarf2"
|
||||||
];
|
];
|
||||||
@@ -187,7 +214,13 @@
|
|||||||
in
|
in
|
||||||
naerskWin.buildPackage rec {
|
naerskWin.buildPackage rec {
|
||||||
pname = packageName;
|
pname = packageName;
|
||||||
cargoBuildOptions = x: x ++ [ "--package" packageName ];
|
cargoBuildOptions =
|
||||||
|
x:
|
||||||
|
x
|
||||||
|
++ [
|
||||||
|
"--package"
|
||||||
|
packageName
|
||||||
|
];
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
@@ -212,7 +245,8 @@
|
|||||||
LD = "${winCC}/bin/${winCC.targetPrefix}cc";
|
LD = "${winCC}/bin/${winCC.targetPrefix}cc";
|
||||||
};
|
};
|
||||||
|
|
||||||
mkCrossRustPackage = arch: packageName:
|
mkCrossRustPackage =
|
||||||
|
arch: packageName:
|
||||||
let
|
let
|
||||||
rustTarget = arch2targets."${arch}".rustTarget;
|
rustTarget = arch2targets."${arch}".rustTarget;
|
||||||
crossTarget = arch2targets."${arch}".crossTarget;
|
crossTarget = arch2targets."${arch}".crossTarget;
|
||||||
@@ -234,7 +268,13 @@
|
|||||||
in
|
in
|
||||||
naersk-lib.buildPackage rec {
|
naersk-lib.buildPackage rec {
|
||||||
pname = packageName;
|
pname = packageName;
|
||||||
cargoBuildOptions = x: x ++ [ "--package" packageName ];
|
cargoBuildOptions =
|
||||||
|
x:
|
||||||
|
x
|
||||||
|
++ [
|
||||||
|
"--package"
|
||||||
|
packageName
|
||||||
|
];
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
src = rustSrc;
|
src = rustSrc;
|
||||||
@@ -274,7 +314,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkAndroidRustPackage = arch: packageName:
|
mkAndroidRustPackage =
|
||||||
|
arch: packageName:
|
||||||
let
|
let
|
||||||
rustTarget = androidAttrs.${arch}.rustTarget;
|
rustTarget = androidAttrs.${arch}.rustTarget;
|
||||||
toolchain = fenixPkgs.combine [
|
toolchain = fenixPkgs.combine [
|
||||||
@@ -292,7 +333,13 @@
|
|||||||
in
|
in
|
||||||
naersk-lib.buildPackage rec {
|
naersk-lib.buildPackage rec {
|
||||||
pname = packageName;
|
pname = packageName;
|
||||||
cargoBuildOptions = x: x ++ [ "--package" packageName ];
|
cargoBuildOptions =
|
||||||
|
x:
|
||||||
|
x
|
||||||
|
++ [
|
||||||
|
"--package"
|
||||||
|
packageName
|
||||||
|
];
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
src = rustSrc;
|
src = rustSrc;
|
||||||
@@ -318,15 +365,15 @@
|
|||||||
"deltachat-repl-${arch}-android" = mkAndroidRustPackage arch "deltachat-repl";
|
"deltachat-repl-${arch}-android" = mkAndroidRustPackage arch "deltachat-repl";
|
||||||
};
|
};
|
||||||
|
|
||||||
mkRustPackages = arch:
|
mkRustPackages =
|
||||||
|
arch:
|
||||||
let
|
let
|
||||||
rpc-server = mkCrossRustPackage arch "deltachat-rpc-server";
|
rpc-server = mkCrossRustPackage arch "deltachat-rpc-server";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"deltachat-repl-${arch}" = mkCrossRustPackage arch "deltachat-repl";
|
"deltachat-repl-${arch}" = mkCrossRustPackage arch "deltachat-repl";
|
||||||
"deltachat-rpc-server-${arch}" = rpc-server;
|
"deltachat-rpc-server-${arch}" = rpc-server;
|
||||||
"deltachat-rpc-server-${arch}-wheel" =
|
"deltachat-rpc-server-${arch}-wheel" = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "deltachat-rpc-server-${arch}-wheel";
|
pname = "deltachat-rpc-server-${arch}-wheel";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = nix-filter.lib {
|
src = nix-filter.lib {
|
||||||
@@ -358,25 +405,25 @@
|
|||||||
formatter = pkgs.nixfmt-rfc-style;
|
formatter = pkgs.nixfmt-rfc-style;
|
||||||
|
|
||||||
packages =
|
packages =
|
||||||
mkRustPackages "aarch64-linux" //
|
mkRustPackages "aarch64-linux"
|
||||||
mkRustPackages "i686-linux" //
|
// mkRustPackages "i686-linux"
|
||||||
mkRustPackages "x86_64-linux" //
|
// mkRustPackages "x86_64-linux"
|
||||||
mkRustPackages "armv7l-linux" //
|
// mkRustPackages "armv7l-linux"
|
||||||
mkRustPackages "armv6l-linux" //
|
// mkRustPackages "armv6l-linux"
|
||||||
mkRustPackages "x86_64-darwin" //
|
// mkRustPackages "x86_64-darwin"
|
||||||
mkRustPackages "aarch64-darwin" //
|
// mkRustPackages "aarch64-darwin"
|
||||||
mkAndroidPackages "armeabi-v7a" //
|
// mkAndroidPackages "armeabi-v7a"
|
||||||
mkAndroidPackages "arm64-v8a" //
|
// mkAndroidPackages "arm64-v8a"
|
||||||
mkAndroidPackages "x86" //
|
// mkAndroidPackages "x86"
|
||||||
mkAndroidPackages "x86_64" // rec {
|
// mkAndroidPackages "x86_64"
|
||||||
|
// rec {
|
||||||
# Run with `nix run .#deltachat-repl foo.db`.
|
# Run with `nix run .#deltachat-repl foo.db`.
|
||||||
deltachat-repl = mkRustPackage "deltachat-repl";
|
deltachat-repl = mkRustPackage "deltachat-repl";
|
||||||
deltachat-rpc-server = mkRustPackage "deltachat-rpc-server";
|
deltachat-rpc-server = mkRustPackage "deltachat-rpc-server";
|
||||||
|
|
||||||
deltachat-repl-win64 = mkWin64RustPackage "deltachat-repl";
|
deltachat-repl-win64 = mkWin64RustPackage "deltachat-repl";
|
||||||
deltachat-rpc-server-win64 = mkWin64RustPackage "deltachat-rpc-server";
|
deltachat-rpc-server-win64 = mkWin64RustPackage "deltachat-rpc-server";
|
||||||
deltachat-rpc-server-win64-wheel =
|
deltachat-rpc-server-win64-wheel = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "deltachat-rpc-server-win64-wheel";
|
pname = "deltachat-rpc-server-win64-wheel";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = nix-filter.lib {
|
src = nix-filter.lib {
|
||||||
@@ -405,8 +452,7 @@
|
|||||||
|
|
||||||
deltachat-repl-win32 = mkWin32RustPackage "deltachat-repl";
|
deltachat-repl-win32 = mkWin32RustPackage "deltachat-repl";
|
||||||
deltachat-rpc-server-win32 = mkWin32RustPackage "deltachat-rpc-server";
|
deltachat-rpc-server-win32 = mkWin32RustPackage "deltachat-rpc-server";
|
||||||
deltachat-rpc-server-win32-wheel =
|
deltachat-rpc-server-win32-wheel = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "deltachat-rpc-server-win32-wheel";
|
pname = "deltachat-rpc-server-win32-wheel";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = nix-filter.lib {
|
src = nix-filter.lib {
|
||||||
@@ -433,8 +479,7 @@
|
|||||||
installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out'';
|
installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out'';
|
||||||
};
|
};
|
||||||
# Run `nix build .#docs` to get C docs generated in `./result/`.
|
# Run `nix build .#docs` to get C docs generated in `./result/`.
|
||||||
docs =
|
docs = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "docs";
|
pname = "docs";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
@@ -443,8 +488,7 @@
|
|||||||
installPhase = ''mkdir -p $out; cp -av deltachat-ffi/html deltachat-ffi/xml $out'';
|
installPhase = ''mkdir -p $out; cp -av deltachat-ffi/html deltachat-ffi/xml $out'';
|
||||||
};
|
};
|
||||||
|
|
||||||
libdeltachat =
|
libdeltachat = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "libdeltachat";
|
pname = "libdeltachat";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = rustSrc;
|
src = rustSrc;
|
||||||
@@ -472,8 +516,7 @@
|
|||||||
# Source package for deltachat-rpc-server.
|
# Source package for deltachat-rpc-server.
|
||||||
# Fake package that downloads Linux version,
|
# Fake package that downloads Linux version,
|
||||||
# needed to install deltachat-rpc-server on Android with `pip`.
|
# needed to install deltachat-rpc-server on Android with `pip`.
|
||||||
deltachat-rpc-server-source =
|
deltachat-rpc-server-source = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "deltachat-rpc-server-source";
|
pname = "deltachat-rpc-server-source";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
@@ -485,8 +528,7 @@
|
|||||||
installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-${manifest.version}.tar.gz $out'';
|
installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-${manifest.version}.tar.gz $out'';
|
||||||
};
|
};
|
||||||
|
|
||||||
deltachat-rpc-client =
|
deltachat-rpc-client = pkgs.python3Packages.buildPythonPackage {
|
||||||
pkgs.python3Packages.buildPythonPackage {
|
|
||||||
pname = "deltachat-rpc-client";
|
pname = "deltachat-rpc-client";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = pkgs.lib.cleanSource ./deltachat-rpc-client;
|
src = pkgs.lib.cleanSource ./deltachat-rpc-client;
|
||||||
@@ -497,8 +539,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
deltachat-python =
|
deltachat-python = pkgs.python3Packages.buildPythonPackage {
|
||||||
pkgs.python3Packages.buildPythonPackage {
|
|
||||||
pname = "deltachat-python";
|
pname = "deltachat-python";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = pkgs.lib.cleanSource ./python;
|
src = pkgs.lib.cleanSource ./python;
|
||||||
@@ -518,8 +559,7 @@
|
|||||||
pkgs.python3Packages.requests
|
pkgs.python3Packages.requests
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
python-docs =
|
python-docs = pkgs.stdenv.mkDerivation {
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "docs";
|
pname = "docs";
|
||||||
version = manifest.version;
|
version = manifest.version;
|
||||||
src = pkgs.lib.cleanSource ./.;
|
src = pkgs.lib.cleanSource ./.;
|
||||||
|
|||||||
Reference in New Issue
Block a user