zaphyra's git: nixfiles

zaphyra's nixfiles

commit 5b8ad7ffca93247212c8be0a33a210cf3660043e
parent 9c91c74e5c02d3c88af23598b1fccdff6b9b557f
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Fri, 19 Jun 2026 00:59:47 +0200

packages/gotosocial: update to 0.22.0-unstable-2026-06-18-c53f27
1 file changed, 40 insertions(+), 47 deletions(-)
M
packages/gotosocial-unstable/package.nix
|
87
++++++++++++++++++++++++++++++++++++-------------------------------------------
diff --git a/packages/gotosocial-unstable/package.nix b/packages/gotosocial-unstable/package.nix
@@ -1,14 +1,12 @@
 {
-  stdenv,
   unstable,
   lib,
   fetchFromGitea,
   applyPatches,
   fetchYarnDeps,
-  yarnConfigHook,
-  yarnBuildHook,
-  yarnInstallHook,
   nodejs,
+  yarn,
+  yarnConfigHook,
   makeWrapper,
   installShellFiles,
   nixosTests,

@@ -17,9 +15,9 @@
 
 unstable.buildGoModule (finalAttrs: {
   pname = "gotosocial";
-  version = "0.22.0-unstable-2026-05-20-${builtins.substring 0 6 finalAttrs.rev}";
-  rev = "7161b5c7db457353f09a41612c4d3be3775c2636";
-  srcHash = "sha256-CJfov3aMCgijlqNN8BOO8RO9IqPoyruMQQw2654pBX0=";
+  version = "0.22.0-unstable-2026-06-18-${builtins.substring 0 6 finalAttrs.rev}";
+  rev = "c53f27bc1ceb246ade3494190cd7b3e253d6375d";
+  srcHash = "sha256-sSL0VKTn6uDjrkS/fKbTXvaDWxlzh7D74HV469ZD3sI=";
 
   src = applyPatches {
     src = fetchFromGitea {

@@ -34,37 +32,47 @@ unstable.buildGoModule (finalAttrs: {
     ];
   };
 
-  frontend-assets = stdenv.mkDerivation {
-    name = "${finalAttrs.pname}-${finalAttrs.version}-frontendAssets";
-    inherit (finalAttrs) version;
-
-    src = "${finalAttrs.src}/web";
-
-    yarnOfflineCache = fetchYarnDeps {
-      yarnLock = "${finalAttrs.src}/web/source/yarn.lock";
-      hash = "sha256-rfZxslIEoOTufENIvk8Eq5wzdD3rUpUP3wrMjmLH44k=";
-    };
+  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    nodejs
+    yarn
+    yarnConfigHook
+    installShellFiles
+  ];
 
-    nativeBuildInputs = [
-      yarnConfigHook
-      yarnBuildHook
-      yarnInstallHook
-      nodejs
-    ];
+  yarnOfflineCache = fetchYarnDeps {
+    yarnLock = "${finalAttrs.src}/web/source/yarn.lock";
+    hash = "sha256-rfZxslIEoOTufENIvk8Eq5wzdD3rUpUP3wrMjmLH44k=";
+  };
 
-    postPatch = ''
-      mkdir -p ./source ./assets
+  # manually calling yarnConfigHook in sub-directory
+  dontYarnInstallDeps = true;
 
-      cp -r $src/source/. ./source
-      cp -r $src/assets/. ./assets
+  postConfigure = ''
+    pushd ./web/source
+    runHook yarnConfigHook
+    popd
+  '';
 
-      cd ./source
-    '';
+  # preparing assets
+  # https://codeberg.org/superseriousbusiness/gotosocial/src/branch/main/.goreleaser.yml#L12
+  preBuild = ''
+    go run ./vendor/github.com/go-swagger/go-swagger/cmd/swagger generate spec --scan-models --exclude-deps -o web/assets/swagger.yaml
+    substituteInPlace web/assets/swagger.yaml --replace-fail "REPLACE_ME" "${finalAttrs.version}"
+    yarn --offline --cwd ./web/source ts-patch install
+    yarn --offline --cwd ./web/source build
+    ./scripts/bundle_licenses.sh
+  '';
 
-    installPhase = "cp -r ../assets $out";
+  postInstall = ''
+    mkdir -p $out/share/gotosocial/web
+    mv web/{assets,template} $out/share/gotosocial/web
 
-    meta.license = lib.licenses.agpl3Only;
-  };
+    installShellCompletion --cmd gotosocial \
+      --bash <($out/bin/gotosocial completion bash) \
+      --fish <($out/bin/gotosocial completion fish) \
+      --zsh <($out/bin/gotosocial completion zsh)
+  '';
 
   ldflags = [
     "-s"

@@ -84,9 +92,6 @@ unstable.buildGoModule (finalAttrs: {
 
   vendorHash = null;
 
-  nativeBuildInputs = [ installShellFiles ];
-  buildInputs = [ makeWrapper ];
-
   # tests are working only on x86_64-linux
   # doCheck = stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64;
   # checks are currently very unstable in our setup, so we should test manually for now

@@ -110,18 +115,6 @@ unstable.buildGoModule (finalAttrs: {
     runHook postCheck
   '';
 
-  postInstall = ''
-    mkdir -p $out/share/${finalAttrs.pname}/web/{templates,assets}
-
-    cp -r  ./web/template/.                $out/share/${finalAttrs.pname}/web/template/
-    cp -rf ${finalAttrs.frontend-assets}/. $out/share/${finalAttrs.pname}/web/assets/
-
-    installShellCompletion --cmd gotosocial \
-      --bash <($out/bin/gotosocial completion bash) \
-      --fish <($out/bin/gotosocial completion fish) \
-      --zsh <($out/bin/gotosocial completion zsh)
-  '';
-
   passthru.tests.gotosocial = nixosTests.gotosocial;
 
   meta = with lib; {