Compare commits

...

4 Commits

15 changed files with 203 additions and 277 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": 1685604690,
"narHash": "sha256-TEAMrNsfZZ2vuSBRU6giSy4xKkXyzdw41Xtio7UWa7M=",
"lastModified": 1696757521,
"narHash": "sha256-cfgtLNCBLFx2qOzRLI6DHfqTdfWI+UbvsKYa3b3fvaA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50bc0fd68fcadd68df77d554dff6a27d456827cd",
"rev": "2646b294a146df2781b1ca49092450e8a32814e1",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"rust": "rust"
}
},
"rust": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1685587239,
"narHash": "sha256-zpOir1AWpWyQscP5dMpqMrCgBzjzH7Wv0FNUsQ0dcS0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "acb7e896a73b0cf2c6ffe40b2051eb7f88fc2a10",
"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,68 +1,10 @@
{
description = "Syndicate utilities";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
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;
in {
inherit (self) lib;
acpi_actor = final.nimPackages.callPackage ./packages/acpi_actor { };
fontconfig_actor =
final.nimPackages.callPackage ./packages/fontconfig_actor { };
libnotify_actor =
final.nimPackages.callPackage ./packages/libnotify_actor { };
nimPackages = prev.nimPackages.overrideScope' (final': prev': {
noiseprotocol = final'.callPackage ./packages/nim/noiseprotocol { };
preserves = final'.callPackage ./packages/preserves-nim { };
syndicate = final'.callPackage ./packages/syndicate-nim { };
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;
});
nix_actor = final.nimPackages.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.nimPackages.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.nimPackages.callPackage ./packages/xapian_actor { };
};
overlays.default = import ./overlay.nix;
legacyPackages =
self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default) {
@ -73,10 +15,10 @@
with pkgs; {
inherit fontconfig_actor libnotify_actor noise-c preserves-tools squeak
squeaker syndicate-server;
inherit (nimPackages) syndicate_utils xdg_open_ng;
preserves-nim = nimPackages.preserves;
inherit (nim2Packages) syndicate_utils xdg_open_ng;
preserves-nim = nim2Packages.preserves;
preserves-py = python3Packages.preserves;
syndicate-nim = nimPackages.syndicate;
syndicate-nim = nim2Packages.syndicate;
syndicate-py = python3Packages.syndicate;
}) self.legacyPackages;

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,47 +0,0 @@
{ lib, stdenv, buildNimPackage, fetchFromGitea, fetchFromGitHub, runCommand
, nim-unwrapped, preserves }:
let
compiler = runCommand "compiler.nimble" { inherit (nim-unwrapped) src; } ''
mkdir -p $out
tar xf $src --strip-components=1 -C $out
'';
npeg = fetchFromGitHub {
owner = "zevv";
repo = "npeg";
rev = "1.2.1";
hash = "sha256-kN91cp50ZL4INeRWqwrRK6CAkVXUq4rN4YlcN6WL/3Y=";
};
in buildNimPackage rec {
pname = "preserves";
version = "20230530";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = "${pname}-nim";
rev = version;
sha256 = "sha256-IRIBGjv4po8VyL873v++ovqz8Vg6a9Qbh/M1fxpQXvY=";
};
propagatedBuildInputs = [ compiler npeg ];
propagatedNativeBuildInputs =
lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) preserves;
# propagate the utilities of this package for this build platform
preConfigure = "substituteInPlace preserves.nimble --replace '# bin ' 'bin '";
postInstall = ''
pushd $out/bin
for link in preserves_decode preserves_from_json preserves_to_json;
do ln -s preserves_encode $link
done
popd
'';
doCheck = true;
meta = 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,21 +1,22 @@
{ lib, buildNimPackage, fetchFromGitea, fetchFromGitHub, syndicate }:
{ lib, buildNimPackage, fetchFromGitea, nimFlagsFromLockFile }:
buildNimPackage rec {
buildNimPackage (final: prev: {
pname = "syndicate_utils";
version = "20230518";
version = "20231005";
src = fetchFromGitea {
domain = "git.syndicate-lang.org";
owner = "ehmry";
repo = pname;
rev = version;
hash = "sha256-syYxxsl7rbE1FdFsT6ib3eUbxG6nOxbavo04ZzlTFOs=";
repo = final.pname;
rev = final.version;
hash = "sha256-RNbEoD4p8o4ZrBFGD2wdmM4VmqfeCbhm0bOzIO0pVNI=";
};
propagatedBuildInputs = [ syndicate ];
nimBinOnly = true;
nimFlags = nimFlagsFromLockFile "${final.src}/lock.json";
meta = src.meta // {
meta = final.src.meta // {
maintainers = [ lib.maintainers.ehmry ];
license = lib.licenses.unlicense;
};
}
})

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)";