Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • SETUP.md
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(tools): rig-install.sh + SETUP.md — clone the gig onto a new box · 2d51973f
    The install counterpart to rig-doctor.py: the doctor only ever reads,
    this converges. Idempotent by construction — detect, report, act only
    if something is actually missing, never fail the whole run for one
    optional piece. Covers every checked item in rig-doctor.py: system
    packages (printed, pacman+--yes is the only path this script ever
    executes itself), SuperCollider quarks at current HEAD (no lockfile —
    PLN rejected pinning), the mi-UGens extension, the private
    parvagues-synths repo + its link.sh, the two ~/.local/bin shims two
    systemd units silently crash-loop without (nothing in the repo created
    these before now — a top-5 fresh-box breakage), the systemd --user
    units from rig_units.py's one authored table, and the sample carry-on
    bundle (rsync, out of band from git on purpose).
    
    Root-owned installs (perf-audio+sudoers, parvagues-protect, the
    [midiviz-pin] KWin rule) are print-only, always — this script never
    runs sudo. A script that quietly escalates itself is one nobody can
    audit before a gig; `--print-root-steps` shows just those three
    commands and does nothing else.
    
    Every path is resolved at run time from the script's own location,
    $HOME, and $XDG_DATA_HOME — never baked in. This rig's oldest
    recurring bug is a binding resolved once and never re-resolved; an
    installer is exactly the kind of code tempted to commit that bug by
    writing down what it found on its own author's box. For the same
    reason it never repoints an existing systemd-unit or ~/.local/bin
    symlink that already resolves correctly, even to a DIFFERENT checkout
    than this one — only creates what's entirely missing, or repairs a
    dangling link. Tested twice on PLN's own performing laptop (already
    fully provisioned): both runs report "already ok" throughout and
    change no running state, except parvagues-synths/link.sh adopting 18
    already-identical synthdefs as symlinks (its own designed
    no-op-equivalent).
    
    Also regenerates tools/parvagues-rig.target from rig_units.py's
    generator: it had drifted (still Wanted the now-manual lcxl3-driver,
    missing midiviz) since the unit table changed under it.
    
    SETUP.md is the human procedure: the fast path, what rig-install.sh
    does and doesn't do, the LCXL2/LCXL3 hardware-detected split, a
    troubleshooting section keyed off the doctor's real FAIL text, and an
    explicit "known not portable yet" — start_and_midi.scd and
    sample_watch.scd hardcode /home/pln, so a non-pln account gets a rig
    that boots clean with banks and preload silently missing (task #28).
    Named honestly rather than hidden from the next person who hits it.
    PLN (Algolia) authored Sep 06, 2026
    2d51973f
SETUP.md 8.84 KB
EditWeb IDE
×

Replace SETUP.md

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.