---------- Forwarded message ----------
From: Undescribed Horrific Abuse, One Victim & Survivor of Many <gmkarl@gmail.com>
Date: Friday, August 29, 2025
Subject: Re: [spam][crazy][fiction][random] Non-Canon MCBoss Spinoffs
To: "Undescribed Horrific Abuse, One Victim & Survivor of Many" <gmkarl@gmail.com>


dependencies are missing from the time-machine shebang. Two sourcefiles below, pdf attached. 2nd level modules mostly wrap third party functionality and are not included here but easy to add now.

:)

I ended up using google cloud shell (although there are other free vm providers!) and it took a long time, most of which was spent tweaking guix to run effectively un the environment and reinstalling it when the vm reset throughout the day. The single most helpful change was modifying guix's install.sh to resume the tarball download by changing the tmpdir to $HOME/tmp and adding --continue to wget. If archiving /var/guix and /gnu across reruns it seemed best to tar -jc /gnu as it gets corrupt if space exhausts, -J is needlessly slow, and all those .scm files and symlinks compress great. However, I did not try guix's feature of hardlink deduplication. Also, sudo /etc/init.d/guix-daemon stop and verify that /var/guix/db/db.sqlite is closed (no wal files, or fuser) before archiving or it corrupts too. Didn't try bind mounts.

The below files demonstrate how newbiehacked scheme is much prettier and clearer than such bash.

I tried upping the commit but began running into possibly nondeterministic makeinfo failures, and it took a long time to build each guix snapshot. So this renders as rc2. The head commit worked fine too though.

PDF exported from termux via samsung notes app :S

# generate.bash
#!/usr/bin/env -S guix time-machine --commit=v1.4.0 -- shell guix --development guix guile guile-gdbm-ffi -- bash
GUILEPATH=$GUIX_ENVIRONMENT/share/guile/site/3.0
rm -rf modules
mkdir -p modules/guix modules/gnu
ln -sf $GUILEPATH/guix.scm $GUILEPATH/gnu.scm modules
ln -sf $GUILEPATH/guix/*.scm modules/guix
ln -sf $GUILEPATH/gnu/*.scm modules/gnu
pkgs="'($(cd modules; find -L -name '*.scm' | sort | sed 's/\.\/\(.*\)\.scm/(\1)/' | tr /\\n '  '))"
echo "$pkgs"
version="$(guile -L $GUILEPATH -c '(use-modules (guix config)) (display %guix-version)')"
name="$(guile -L $GUILEPATH -c '(use-modules (guix config)) (display %guix-package-name)') topmost-level modules"
guile -L $GUILEPATH ./makedocs.scm "$pkgs" "$name" guixapi.texi "$version" | tee guixapi.texi
makeinfo --pdf guixapi.texi

# makedocs.scm
(use-modules (texinfo serialize))
(use-modules (texinfo reflection))
(define modules (eval-string (cadr (command-line))))
(define name (caddr (command-line)))
(define filename (cadddr (command-line)))
(define category "API Documentstion")
(define description (string-append "Documentation for " name " modules API."))
(define version (cadddr (cdr (command-line))))
(define moduledescriptions (map
(lambda (module)
  (list (string-append
    (string-join (map
   symbol->string
   module))
    ".scm")))
modules))
 
(display (stexi->texi
(package-stexi-documentation
  modules
  name
  filename
  (package-stexi-standard-prologue
    name
    filename
    category
    description
    (package-stexi-standard-copying name version "updated" '() "copyright holder" "permissions")
    (package-stexi-standard-titlepage name version "updated" '())
    (package-stexi-standard-menu name modules moduledescriptions '())
  )
  '()
)
))