Deflakification

This commit is contained in:
Emery Hemingway 2023-10-10 11:50:58 +01:00
parent a581bce64c
commit 8c727296c0
14 changed files with 196 additions and 251 deletions

8
default.nix Normal file
View File

@ -0,0 +1,8 @@
{ pkgs ? null }:
let
overlay = import ./overlay.nix;
pkgs' = if pkgs == null then
import <nixpkgs> { overlays = [ overlay ]; }
else
pkgs.extend overlay;
in builtins.intersectAttrs (overlay { } { }) pkgs'

View File

@ -1,79 +1,22 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1691412377,
"narHash": "sha256-WpMRfQUxBLM2yZ8DzgnrI3BuTTpZGMUX6Owm39PKD3Y=",
"owner": "ehmry",
"lastModified": 1696757521,
"narHash": "sha256-cfgtLNCBLFx2qOzRLI6DHfqTdfWI+UbvsKYa3b3fvaA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "13df68506e632a15e95d57252cec4d9f0ea20701",
"rev": "2646b294a146df2781b1ca49092450e8a32814e1",
"type": "github"
},
"original": {
"owner": "ehmry",
"ref": "nim",
"repo": "nixpkgs",
"type": "github"
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"rust": "rust"
}
},
"rust": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1692151776,
"narHash": "sha256-nE3Z0bRcABHQq2RFC1RsUVnGCJS0Y5xhYUBY9amxgJA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "dea24da3d3be23ab53ee80314474afd5fcb03c1c",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
"nixpkgs": "nixpkgs"
}
}
},

View File

@ -1,96 +1,10 @@
{
description = "Syndicate utilities";
inputs = {
nixpkgs.url = "github:ehmry/nixpkgs/nim";
rust = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, rust }: {
outputs = { self, nixpkgs }: {
lib = nixpkgs.lib.extend (import ./lib.nix);
overlays.default = final: prev:
let
rust' = (prev.extend rust.overlay).rust-bin.nightly.latest.default;
nimOverlay = final': prev': {
noiseprotocol = final'.callPackage ./packages/nim/noiseprotocol { };
preserves = prev'.preserves.overrideAttrs (finalAttrs: prevAttrs: {
pname = "preserves";
version = "20230806";
src = final.fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "preserves-nim";
rev = finalAttrs.version;
hash = "sha256-kSIGqdcbrrdDiD7AbH0jOuqxywqbS7htBRBdJc1RO3U=";
};
nimFlags = [ "--path:${final'.nim.passthru.nim}/nim" ];
});
syndicate = prev'.syndicate.overrideAttrs (finalAttrs: prevAttrs: {
version = "20230816";
src = final.fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "${finalAttrs.pname}-nim";
rev = finalAttrs.version;
hash = "sha256-0zZngM2OFicDNisZVAKMS1yOfgf3huL21uA4AU1lWMg=";
};
nimFlags = [ ];
});
syndicate_utils =
final'.callPackage ./packages/syndicate_utils-nim { };
syndicated-open = final'.callPackage ./packages/syndicated-open { };
xdg_open_ng =
builtins.trace "xdg_open_ng has been renamed to syndicated-open"
final'.syndicated-open;
};
in {
inherit (self) lib;
acpi_actor = final.nim2Packages.callPackage ./packages/acpi_actor { };
fontconfig_actor =
final.nim2Packages.callPackage ./packages/fontconfig_actor { };
libnotify_actor =
final.nim2Packages.callPackage ./packages/libnotify_actor { };
nimPackages = prev.nimPackages.overrideScope' nimOverlay;
nim2Packages = prev.nim2Packages.overrideScope' nimOverlay;
nix_actor = final.nim2Packages.callPackage ./packages/nix_actor { };
noise-c = final.callPackage ./packages/noise-c { };
python3Packages = prev.python3Packages.overrideScope (final': prev': {
preserves = final'.callPackage ./packages/preserves-py { };
syndicate = final'.callPackage ./packages/syndicate-py { };
});
preserves-tools =
final.callPackage ./packages/preserves-tools { rust = rust'; };
sqlite_actor =
final.nim2Packages.callPackage ./packages/sqlite_actor { };
squeak = final.callPackage ./packages/squeak { };
squeaker = final.python3Packages.callPackage ./packages/squeaker { };
syndicate-server =
final.callPackage ./packages/syndicate-server { rust = rust'; };
synit-pid1 = final.callPackage ./packages/synit-pid1 { rust = rust'; };
xapian_actor =
final.nim2Packages.callPackage ./packages/xapian_actor { };
};
overlays.default = import ./overlay.nix;
legacyPackages =
self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default) {

86
overlay.nix Normal file
View File

@ -0,0 +1,86 @@
final: prev:
let
nimOverlay = final': prev': {
nix_actor = final'.callPackage ./packages/nix_actor { };
noiseprotocol = final'.callPackage ./packages/nim/noiseprotocol { };
syndicate_utils = final'.callPackage ./packages/syndicate_utils-nim { };
syndicated-open = final'.callPackage ./packages/syndicated-open { };
xdg_open_ng =
builtins.trace "xdg_open_ng has been renamed to syndicated-open"
final'.syndicated-open;
};
rustPkgs = let
overlay = import (prev.fetchFromGitHub {
owner = "oxalica";
repo = "rust-overlay";
rev = "acb7e896a73b0cf2c6ffe40b2051eb7f88fc2a10";
hash = "sha256-zpOir1AWpWyQscP5dMpqMrCgBzjzH7Wv0FNUsQ0dcS0=";
});
in final.extend overlay;
rust' = rustPkgs.rust-bin.nightly.latest.default;
in {
lib = prev.lib.extend (import ./lib.nix);
acpi_actor = final.nim2Packages.callPackage ./packages/acpi_actor { };
fontconfig_actor =
final.nim2Packages.callPackage ./packages/fontconfig_actor { };
libnotify_actor =
final.nim2Packages.callPackage ./packages/libnotify_actor { };
nimFlagsFromLockFile = let
fetchDependency = let
methods = {
fetchzip = { url, sha256, ... }:
final.fetchzip {
name = "source";
inherit url sha256;
};
git = { fetchSubmodules, leaveDotGit, rev, sha256, url, ... }:
final.fetchgit {
inherit fetchSubmodules leaveDotGit rev sha256 url;
};
};
in attrs@{ method, ... }: methods.${method} attrs // attrs;
in lockFile:
with builtins;
final.lib.pipe lockFile [
readFile
fromJSON
(getAttr "depends")
(map fetchDependency)
(map ({ outPath, srcDir, ... }: ''--path:"${outPath}/${srcDir}"''))
];
nimPackages = prev.nimPackages.overrideScope' nimOverlay;
nim2Packages = prev.nim2Packages.overrideScope' nimOverlay;
inherit (final.nim2Packages) nix_actor;
noise-c = final.callPackage ./packages/noise-c { };
preserves-tools = final.callPackage ./packages/preserves-tools { };
python3Packages = prev.python3Packages.overrideScope (final': prev': {
preserves = final'.callPackage ./packages/preserves-py { };
syndicate = final'.callPackage ./packages/syndicate-py { };
});
sqlite_actor = final.nim2Packages.callPackage ./packages/sqlite_actor { };
squeak = final.callPackage ./packages/squeak { };
squeaker = final.python3Packages.callPackage ./packages/squeaker { };
syndicate-server =
final.callPackage ./packages/syndicate-server { rust = rust'; };
synit-pid1 = final.callPackage ./packages/synit-pid1 { };
xapian_actor = final.nim2Packages.callPackage ./packages/xapian_actor { };
}

View File

@ -1,21 +1,21 @@
{ lib, buildNimPackage, fetchFromGitea, syndicate }:
{ lib, buildNimPackage, fetchFromGitea, nimFlagsFromLockFile }:
buildNimPackage rec {
buildNimPackage (final: prev: {
pname = "acpi_actor";
version = "20230506";
version = "20231010";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-48O+nMrfuYRlULE3fa6vjyaUULPvYiv770ye637RRVY=";
repo = final.pname;
rev = final.version;
hash = "sha256-eN3VC2yL6UvjeIGvzx0PAujR/Xd6Rc1e9Ftf6fKKk2E=";
};
propagatedBuildInputs = [ syndicate ];
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = src.meta // {
meta = final.src.meta // {
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

View File

@ -1,24 +1,27 @@
{ lib, buildNimPackage, fetchFromGitea, fontconfig, pkg-config, syndicate }:
{ lib, buildNimPackage, fetchFromGitea, fontconfig, pkg-config
, nimFlagsFromLockFile }:
buildNimPackage rec {
buildNimPackage (final: prev: {
pname = "fontconfig_actor";
version = "20230506";
version = "20231009";
nimBinOnly = true;
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-TH6tu6l7gfb7GmYCyZInTUmKsUBRJCpbkL1Ec5El0Iw=";
repo = final.pname;
rev = final.version;
hash = "sha256-DeoHz+vi3/cXANxm54C7zY2H0lzrHTj2bfWLAMGOZBw=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ fontconfig syndicate ];
buildInputs = [ fontconfig ];
meta = src.meta // {
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = final.src.meta // {
description = "Syndicate actor for asserting Fontconfig information";
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

View File

@ -1,22 +1,25 @@
{ lib, buildNimPackage, fetchFromGitea, syndicate, libnotify, pkg-config }:
{ lib, buildNimPackage, fetchFromGitea, libnotify, pkg-config
, nimFlagsFromLockFile }:
buildNimPackage rec {
buildNimPackage (final: prev: {
pname = "libnotify_actor";
version = "20230506";
version = "20231009";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-sTLmogaqnxoX/pp0/A4+343lXCYsASnoKKIY6J+1nv4=";
repo = final.pname;
rev = final.version;
hash = "sha256-xNHadWL3Lay1HGEfdmjpLDJsOddrqziMGm0A74tbeYA=";
};
propagatedNativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ libnotify syndicate ];
propagatedBuildInputs = [ libnotify ];
meta = src.meta // {
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = final.src.meta // {
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

View File

@ -1,22 +1,35 @@
{ lib, buildNimPackage, fetchFromGitea, boost, nix, pkg-config, syndicate }:
{ lib, buildNimPackage, fetchFromGitea, fetchFromGitHub, boost, nix
, nimFlagsFromLockFile, pkg-config }:
buildNimPackage rec {
let
nix' = nix.overrideAttrs (final: prev: {
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
rev = "2.13.3";
hash = "sha256-jUc2ccTR8f6MGY2pUKgujm+lxSPNGm/ZAP+toX+nMNc=";
};
});
in buildNimPackage (final: prev: {
pname = "nix_actor";
version = "20230530";
version = "20231009";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-HOdpwZ9jEvYEHx3MKYkaG/DguH94p4E1bVa30mYy6JQ=";
repo = final.pname;
rev = final.version;
hash = "sha256-+wMhpmC1233Ze4+xnd5sNnIfsXkGEx67bZN3oMYu2EQ=";
};
propagatedNativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ boost nix syndicate ];
nimBinOnly = true;
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = src.meta // {
propagatedNativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ boost nix' ];
meta = final.src.meta // {
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

View File

@ -1,4 +1,4 @@
{ lib, rustPlatform, rust, fetchCrate }:
{ lib, rustPlatform, rustc, fetchCrate }:
rustPlatform.buildRustPackage rec {
pname = "preserves-tool";
@ -12,11 +12,14 @@ rustPlatform.buildRustPackage rec {
sha256 = "sha256-I9dqY2pej/HRQg2VGkEoWKOlo4c9TYwk/jw23eN1nlU=";
};
cargoHash = "sha256-0UMGDoyfdEJQQDoUadbU6Ev6yA2k0sQHRvO/Z+4QF5g=";
nativeBuildInputs = [ rust ];
nativeBuildInputs = [ rustc ];
RUSTC_BOOTSTRAP = true;
meta = {
description = "Swiss army knife for working with Preserves documents";
homepage = "https://preserves.gitlab.io/preserves/doc/preserves-tool.html";
maintainers = with lib.maintainers; [ ehmry ];
mainProgram = "preserves-tool";
};
}

View File

@ -1,22 +1,25 @@
{ lib, buildNimPackage, fetchFromGitea, pkg-config, syndicate, sqlcipher }:
{ lib, buildNimPackage, fetchFromGitea, pkg-config, sqlcipher
, nimFlagsFromLockFile }:
buildNimPackage rec {
buildNimPackage (final: prev: {
pname = "sqlite_actor";
version = "20230527";
version = "20231010";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-+I4rJtsRA0LKpkIXwGpRoc1mCxGRQM4oU0ABR6OjFdw=";
repo = final.pname;
rev = final.version;
hash = "sha256-oKw5GUsK1F2RegOFiNYkLXT5CvtWcF/8H6QdE4DXa1A=";
};
propagatedNativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ sqlcipher syndicate ];
propagatedBuildInputs = [ sqlcipher ];
meta = src.meta // {
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = final.src.meta // {
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

View File

@ -1,36 +0,0 @@
{ lib, buildNimPackage, fetchFromGitea, fetchFromGitHub, preserves }:
let
hashlib = buildNimPackage rec {
pname = "hashlib";
version = "1.0.1";
src = fetchFromGitHub {
owner = "khchen";
repo = pname;
rev = "84e0247555e4488594975900401baaf5bbbfb531";
hash = "sha256-nWNThelCh0LPVU7ryZgS/23hRRvJDVL2xWbQibb+zN0=";
};
doCheck = true;
};
in buildNimPackage rec {
pname = "syndicate";
version = "20230530";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "${pname}-nim";
rev = version;
hash = "sha256-lUHoMSQwUlz9EDMvpFL9GlrwbwMvZDILSmuakONwe50=";
};
propagatedBuildInputs = [ hashlib preserves ];
doCheck = true;
meta = src.meta // {
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}

View File

@ -1,18 +1,19 @@
{ lib, buildNimPackage, fetchFromGitea, illwill, syndicate }:
{ lib, buildNimPackage, fetchFromGitea, nimFlagsFromLockFile }:
buildNimPackage (final: prev: {
pname = "syndicate_utils";
version = "20230801";
version = "20231005";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = final.pname;
rev = final.version;
hash = "sha256-O9n9y0v0cQg5b2P4GjOEKYj6t1fGTMy4v/QpeAScv2Q=";
hash = "sha256-RNbEoD4p8o4ZrBFGD2wdmM4VmqfeCbhm0bOzIO0pVNI=";
};
propagatedBuildInputs = [ illwill syndicate ];
nimBinOnly = true;
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = final.src.meta // {
maintainers = [ lib.maintainers.ehmry ];

View File

@ -1,21 +1,23 @@
{ lib, buildNimPackage, fetchFromGitea, makeDesktopItem, pkg-config, pcre, syndicate }:
{ lib, buildNimPackage, fetchFromGitea, makeDesktopItem, pkg-config, pcre
, nimFlagsFromLockFile }:
buildNimPackage rec {
buildNimPackage (final: prev: {
pname = "syndicated-open";
version = "20230630";
version = "20231010";
nimBinOnly = true;
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-BRSvsIkaingUhtaBKQYwFzr6uC4WFs2/BmfWWPfI/6s=";
repo = final.pname;
rev = final.version;
hash = "sha256-DVBSsnN59XKV7Pc1spBxcLwyOIif3xMHXHID9khVJck=";
};
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ pcre ];
propagatedBuildInputs = [ pcre syndicate ];
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
desktopItem = makeDesktopItem rec {
name = "open";
@ -36,9 +38,9 @@ buildNimPackage rec {
cp -a $desktopItem/* $out/
'';
meta = src.meta // {
meta = final.src.meta // {
description = "Syndicated open command";
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

View File

@ -1,6 +1,6 @@
# https://git.syndicate-lang.org/synit/synit/src/branch/main/packaging/packages/synit-pid1/APKBUILD
{ lib, rustPlatform, rust, fetchFromGitea }:
{ lib, rustPlatform, rustc, fetchFromGitea }:
rustPlatform.buildRustPackage rec {
pname = "synit-pid1";
@ -27,7 +27,9 @@ rustPlatform.buildRustPackage rec {
sourceRoot = "source/${pname}";
cargoHash = "sha256-57ZUlR+lIwQf3/4pDeeEMUc1juNTddcHpzNQZTUWbtU=";
nativeBuildInputs = [ rust ];
nativeBuildInputs = [ rustc ];
RUSTC_BOOTSTRAP = true;
meta = src.meta // {
description = "Synit pid 1 program (patched for NixOS)";