fix: nix package

This commit is contained in:
emily 2024-08-24 18:37:18 +02:00
parent 877b216eae
commit c95296b82c
No known key found for this signature in database
GPG key ID: F6F4C66207FCF995
5 changed files with 54 additions and 15 deletions

View file

@ -25,6 +25,10 @@
inherit system; inherit system;
}; };
in { in {
apps.update-modules = {
type = "app";
program = self.packages.${system}.versiajs.passthru.updateScript;
};
devShells = { devShells = {
default = pkgs.mkShell { default = pkgs.mkShell {
buildInputs = with pkgs; [ buildInputs = with pkgs; [

View file

@ -1,6 +0,0 @@
{ lib }: {
x86_64-linux = "sha256-T/U9altP5HFzmULtsuvHQIXQXDCmQEAau8KFN8J5i/8=";
x86_64-darwin = lib.fakeHash;
aarch64-linux = "sha256-6ZzrYI2G+7q9Efgu5iKhZB3bT2C7T5fk4I/t5glpQYA=";
aarch64-darwin = lib.fakeHash;
}

View file

@ -1,24 +1,29 @@
{ {
lib, lib,
stdenv, stdenv,
fetchFromGitHub,
bun, bun,
callPackage, callPackage,
nodeHashes ? callPackage ./nodeHashes.nix { inherit lib; }, modulesSrc ? callPackage ./source.nix {},
nodePackages_latest, nodePackages_latest,
makeBinaryWrapper, makeBinaryWrapper,
}: }:
assert lib.assertMsg (
with builtins; hashFile "sha256" ../bun.lockb == hashFile "sha256" "${modulesSrc.src}/bun.lockb"
) "bun.lockb has changed. Please run 'nix run .#apps.x86_64-linux.update-modules'";
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "versiajs"; pname = "versiajs";
version = "0.7.0"; version = "0.7.0";
src = ../.; src = ../.;
node_modules = stdenv.mkDerivation { versiajsModules = stdenv.mkDerivation (modulesAttrs: {
pname = "${finalAttrs.pname}-node_modules"; pname = "${finalAttrs.pname}-modules";
inherit (finalAttrs) version src; inherit (finalAttrs) version;
src = modulesSrc.src;
nativeBuildInputs = with nodePackages_latest; [ bun nodejs typescript ]; nativeBuildInputs = with nodePackages_latest; [ bun nodejs typescript ];
@ -35,9 +40,9 @@ stdenv.mkDerivation (finalAttrs: {
dontFixup = true; dontFixup = true;
outputHash = nodeHashes.${stdenv.system}; outputHash = modulesSrc.outputHash.${stdenv.system};
outputHashMode = "recursive"; outputHashMode = "recursive";
}; });
nativeBuildInputs = [ bun ]; nativeBuildInputs = [ bun ];
@ -48,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
configurePhase = '' configurePhase = ''
runHook preConfigure runHook preConfigure
cp -r ${finalAttrs.node_modules}/node_modules . cp -r ${finalAttrs.versiajsModules}/node_modules .
runHook postConfigure runHook postConfigure
''; '';
@ -80,11 +85,13 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall runHook postInstall
''; '';
passthru.updateScript = ./update.sh;
meta = { meta = {
description = "A new federated server written with TypeScript and Bun "; description = "A new federated server written with TypeScript and Bun ";
homepage = "https://lysand.org"; homepage = "https://lysand.org";
license = with lib.licenses; [ agpl3Plus ]; license = with lib.licenses; [ agpl3Plus ];
maintainers = with lib.maintainers; [ snaki ]; maintainers = with lib.maintainers; [ snaki ];
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; platforms = [ "x86_64-linux" "aarch64-linux" ];
}; };
}) })

13
nix/source.nix Normal file
View file

@ -0,0 +1,13 @@
{
lib,
fetchFromGitHub,
}: {
outputHash.x86_64-linux = "sha256-SbOgLEdrKA7MwkiUvmenXyfbwgrKsq3AYo4Rjlqn0YA=";
outputHash.aarch64-linux = "sha256-KJBsOhtDOmW/EVFgZF1TNB5G7mSeRZs18zwZlh1MsUM=";
src = fetchFromGitHub {
owner = "lysand-org";
repo = "server";
rev = "832f72160f574f86c8a8897e5dcb3d6382d8192c";
hash = "sha256-BaojznCj0WWA0KkDMLjjlYikwpn975arGLyd0lFBXm0=";
};
}

21
nix/update.sh Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p nix-prefetch-github
set -euo pipefail
SOURCE=$(nix-prefetch-github --nix lysand-org server | tail -n 6)
cat > ./nix/source.nix << EOF
{
lib,
fetchFromGitHub,
}: {
outputHash.x86_64-linux = lib.fakeHash;
outputHash.aarch64-linux = lib.fakeHash;
src = fetchFromGitHub {
${SOURCE};
}
EOF
echo "Done."
echo "Please update the attributes of 'outputHash' in nix/source.nix."