From 280e1bbe5e733128a451260685cc8ecd10a042a3 Mon Sep 17 00:00:00 2001 From: Dylan Date: Sat, 17 Oct 2026 21:53:43 +1300 Subject: feat: Dendritic pattern This re-write was done with the help of claude, and still needs a decent amount of changes before it properly follows the dendritic pattern --- modules/my-pkgs/adom.nix | 59 ++++++++++++++++++++++++++++++++++++++ modules/my-pkgs/default.nix | 12 ++++++++ modules/my-pkgs/stk-installers.nix | 44 ++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 modules/my-pkgs/adom.nix create mode 100644 modules/my-pkgs/default.nix create mode 100644 modules/my-pkgs/stk-installers.nix (limited to 'modules/my-pkgs') diff --git a/modules/my-pkgs/adom.nix b/modules/my-pkgs/adom.nix new file mode 100644 index 0000000..0c2ad03 --- /dev/null +++ b/modules/my-pkgs/adom.nix @@ -0,0 +1,59 @@ +{ + perSystem = + { pkgs, ... }: + { + packages.adom = pkgs.callPackage ( + { stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, makeWrapper, ncurses5, libtinfo, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf, luajit} : + + stdenv.mkDerivation rec { + pname = "adom"; + version = "3.3.3"; + src = fetchurl { + url = "https://sjc4.dl.dbolical.com/dl/2019/01/29/adom_noteye_linux_ubuntu_64_${version}.tar.gz?st=PcXL3PZSxDxr6H6v58PFfw==&e=1750223221"; + hash = "sha256-7c39tEPlrpWIL6QH0BIOLLrFFIlhEHPw5F3knMUh+BA="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + ]; + + buildInputs = [ + (ncurses5.override { unicodeSupport = false; }) + ncurses5 + SDL2 + SDL2_image + SDL2_mixer + SDL2_net + SDL2_ttf + luajit + stdenv.cc.cc.lib + ]; + + sourceRoot = "adom"; + installPhase = let desktopEntry = makeDesktopItem { + name = "adom"; + desktopName = "ADOM"; + exec = "OUT_DIR/bin/adom"; + #path = "OUT_DIR/share"; + }; in '' + runHook preInstall + install -m755 -D adom $out/bin/adom + wrapProgram $out/bin/adom \ + --chdir $out/share + install -m644 -D lib/libnoteye.so $out/lib/libnoteye.so + mkdir -p $out/share + cp -r common $out/share/ + cp -r docs $out/share/ + cp -r games $out/share/ + cp -r gfx $out/share/ + cp -r licenses $out/share/ + cp -r sound $out/share/ + mkdir -p $out/share/applications + sed -e "s|OUT_DIR|$out|g" ${desktopEntry}/share/applications/adom.desktop > $out/share/applications/adom.desktop + runHook postInstall +''; + } + ) { }; + }; +} diff --git a/modules/my-pkgs/default.nix b/modules/my-pkgs/default.nix new file mode 100644 index 0000000..fb227d0 --- /dev/null +++ b/modules/my-pkgs/default.nix @@ -0,0 +1,12 @@ +{ inputs, ... }: +{ + flake.modules.nixos.my-pkgs = + { config, pkgs, lib, ... }: + { + nixpkgs.overlays = [ + (final: prev: { + adom = inputs.self.packages.${final.stdenv.hostPlatform.system}.adom; + }) + ]; + }; +} diff --git a/modules/my-pkgs/stk-installers.nix b/modules/my-pkgs/stk-installers.nix new file mode 100644 index 0000000..0558733 --- /dev/null +++ b/modules/my-pkgs/stk-installers.nix @@ -0,0 +1,44 @@ +{ + perSystem = + { pkgs, ... }: + { + packages.stk-installers = pkgs.callPackage ( + { stdenv, fetchurl, lib, writeText, ... }: + stdenv.mkDerivation rec { + pname = "stk-installers"; + version = "0.1.0"; + + srcs = let + releaseHashes = { + #"installer-aarch64.exe" = "sha256-orLoDvW+fUDucqY4KcC0DQ4JbA2LaG3RQtaBEjtG6HU="; + #"installer-i686.exe" = "sha256-knC7XF6OeY/dQ2VnyjYm+IlJxU8g6s/S395Nr4HZ6Jk="; + # "installer-x86_64.exe" = "sha256-oSYOu3PdnaE+w+N/Um8p5JSztmwAwF/XB2ezCkSX2V4="; + # "linux-arm64.tar.gz" = "sha256-lhtLaRtEVHzcrae6OdrRVhpufnZskLIsot8foYqi5Hc="; + #"linux-armv7.tar.gz" = "sha256-jQYR2wkIu1j7c5xEfzdIa9fnQFU1wNKAVq35NZB/BzA="; + # "linux-x86.tar.gz" = "sha256-sT57jnRV7Wa4qC8p1/fOTwXfelM66fRckdfQvqMqOOs="; + "linux-x86_64.tar.gz" = "sha256-VwkLbCFj62kfIBBK6XEiBKy7ToNBBZ3uCl/1MV78QBs="; + # "mac-signed.zip" = "sha256-wmas24pjo/4w9SZS2bdJ9b66Sr655UOC+7k0sAxTswM="; + # "src.tar.gz" = "sha256-M8+IQeT/QILYC5JIAUKVu76mHRRoPobf8QDjq497J8s="; + # "win.zip" = "sha256-nffi1n6FYhJ6O7YzAw8b1O53+p5/CuEQiXRzAlr4rNw="; + }; + in + lib.attrsets.mapAttrsToList (release: hash: fetchurl { + url = "https://github.com/supertuxkart/stk-code/releases/download/1.5/SuperTuxKart-1.5-${release}"; + sha256 = hash; + }) releaseHashes + ++ [(writeText "hashes.txt" (builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (release: hash: "SuperTuxKart-1.5-${release} ${hash}") releaseHashes)))]; + + sourceRoot = "."; + + unpackPhase = ":"; + + installPhase = '' +mkdir -p $out/srv/www +for srcFile in $srcs; do + cp $srcFile "$out/srv/www/$(stripHash $srcFile)" +done +''; + } + ) { }; + }; +} -- cgit v1.3.1