{ lib, pkgsi686Linux, fetchFromGitHub, ... }: # TODO: less hardcoded setup # TODO: insert meta let inherit (pkgsi686Linux) stdenv xorg; in stdenv.mkDerivation rec { pname = "inferno-os"; version = "2025-08-13"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "d7b29f497205f48247d2bab33340bd7ace64de4d"; hash = "sha256-AoFhoNwl8qtpP+OMTfmnEEwdwd71L1YMT2CIz/Q78+o="; fetchSubmodules = true; }; buildInputs = [ libX11 libXext ]; # TODO: move these changes to a patch postPatch = '' sed -i '/types.h/a #include ' ./lib9/create.c sed -i '/#include "limbo.h"/a #include ' ./limbo/limbo.y sed -i '1622s/qcmdcmp/(int(*)(void*,void*))\0/' ./libtk/utils.c sed -i '/if(0){/,/}/d;s/pthread_yield/sched_yield/g' ./emu/port/kproc-pthreads.c sed -i 's/nrand(\([^)]\+\))/rand() % \1/' ./emu/port/devssl.c sed -i '18a\ -fcommon\\' ./mkfiles/mkfile-Linux-386 ''; configurePhase = '' runHook preConfigure sed -i "/^ROOT/s|=.*|=$PWD|;s/Plan9/Linux/;/^OBJTYPE/d;/^#OBJTYPE=/s/^#//" ./mkconfig export PATH="$PATH:$PWD/Linux/386/bin" ./makemk.sh mk nuke runHook postConfigure ''; buildPhase = '' runHook preBuild mk install runHook postBuild ''; installPhase = '' runHook preInstall mkdir "$out" cp -r ./Linux/386/* "$out" runHook postInstall ''; }