Commit Graph
24 Commits
Author SHA1 Message Date
gibandClaude Opus 5 a664cf68f5 Do not prefer a dialog on a machine with nowhere to draw it
config/bash/shell exported SSH_ASKPASS=ksshaskpass with
SSH_ASKPASS_REQUIRE=prefer on every machine. `prefer` means ssh and git reach
for that dialog BEFORE the terminal prompt, so on a headless server the
prompt that would have worked was skipped in favour of a KDE window that
cannot open:

  error: /usr/bin/ksshaskpass died of signal 6
  fatal: could not read Username for 'https://git.gbrown.org'

A push from a server failed to ASK for a username rather than failing to
authenticate. The shell environment is the one half of Panama a server does
install, so nothing downstream was going to catch this.

The export is now conditional on a session existing to draw in, and on the
binary being there to run. The headless branch also CLEARS both variables
rather than merely declining to set them: an askpass inherited from a parent
that had a display, or from a login predating this guard, is exactly as
unusable and a guard that only withholds leaves it in place. A fresh login
shell on the repaired server still reported prefer until it cleared them.

A desktop is unchanged; a server, a serial console and a plain SSH session
fall back to the terminal prompt, which works.

tests/setup/headless-askpass-contract pins every branch, the inherited case
included, and fails against the previous code and against a guard that only
withholds.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-10-01 17:50:14 -04:00
gibandClaude Opus 5 a493fa5584 Open what is shut, and never widen what is already open
setup-server queried --query-port, saw "not open", and blanket-opened 80,
443 and 81. On a machine reaching those ports through rich rules -- one CDN's
address sets, say -- neither appears in --list-ports, so the step read a
deliberate, narrow grant as "closed" and replaced it with a public one. It
did this during `panama update`, which asks nothing and runs unattended, so
there was no prompt and no diff for anyone to read. A production server lost
its firewall posture that way, port 81 and the proxy's admin portal included.

Each port is now checked for existing coverage first -- an open port, an
enabled service, or an accepting rich rule, ranges included -- and left alone
when it has some. The bias stays where it was: only a rule that positively
reads as a grant counts, and anything unrecognised still falls through to
opening the port, because a fresh server that is silently unreachable is the
worse failure. A rule that DROPS a port is not coverage either; reading a
block as a grant would leave the proxy unreachable on a machine nobody
thought to re-check.

A machine that manages its own firewall opts out once, with
`echo manual > ~/.local/state/panama/firewall`, and Panama never touches
firewalld on it again. A file rather than an environment variable, because
the run that needs to respect it is the unattended one.

tests/setup/server-firewall-contract pins all of it, and fails against the
previous code on exactly the cases that cost the posture.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-10-01 17:50:14 -04:00
gibandClaude Opus 5 130137485e Guard the mesa driver swap on its end state
mesa-va-drivers-freeworld Provides mesa-va-drivers, so once the swap has run
once it becomes the only thing providing the name we ask dnf to remove. The
command then resolves to removing and installing the same package in a single
transaction and exits with "conflicting requests", which reported
install-packages as a failed stage on every run after the first even though
the machine was already in the desired state.

The failure also produced misleading output, because dnf explored removing
mesa-dri-drivers and surfaced unrelated complaints from steam, lutris and
tigervnc-server-common.

Check for the freeworld package with rpm -q and skip the swap when it is
already installed.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01TFG55mJBiH2tV38tXcNzJ9
2026-09-18 11:02:35 -04:00
gib 11202d06d9 Add an automatic tmux session when using ssh 2026-06-02 08:22:22 -05:00
gib 210bdbdddc Brought back supermavengit add -A! 2026-04-23 09:21:51 -04:00
gib 47137191dd Update nvim config 2026-04-18 15:29:43 -04:00
gib ef2d49fbaa Fix markdown tabs 2026-04-15 20:00:57 -04:00
gib 065b7747cf Update neovim lsp config to work better with monorepo 2026-04-14 20:04:12 -04:00
gib cfc2b82c06 Update vim stuff 2026-04-07 08:24:08 -04:00
gib e985792472 Update stuff 2026-03-28 15:09:20 -05:00
gib d9ee1ddce4 Changes since using laptop 2026-03-25 10:04:49 -05:00
gib 4fcfb9c45e idk 2026-01-03 11:23:56 -06:00
gib b8ce2aef5c Add gtk files 2025-12-29 15:41:28 -06:00
gib 7c55264138 Update nvim config & add alias for leetcode plugin 2025-12-25 18:22:12 -06:00
gib 6150274903 Neovim is looking sick now 2025-12-22 13:37:33 -06:00
gib c0ba11768a Add stuff to install script & clean up lsp config 2025-12-22 11:47:38 -06:00
gib fba92951f9 Remove copilot 2025-12-22 11:14:10 -06:00
gib 11863984ca More stuff from laptop 2025-12-22 10:51:54 -06:00
gib e4f1fe8e05 Update from work I did on laptop 2025-12-22 10:46:59 -06:00
gib 18cfd8b174 Update config & make sure avante is set up nicely 2025-12-20 02:54:43 -06:00
gib ca7d4e3460 Update script to be really pretty 2025-12-18 21:08:19 +00:00
gib 3bb192238c Update script to be really pretty 2025-12-18 21:03:43 +00:00
gib cba2ca3b1c Update & clean some stuff up 2025-12-18 20:35:11 +00:00
gib 81eefc4f84 Update stuff 2025-12-18 14:17:09 -06:00