Skip to content

Commit d0c9893

Browse files
committed
Add guide to remeber how to fix problem
1 parent a4836c6 commit d0c9893

2 files changed

Lines changed: 268 additions & 23 deletions

File tree

‎index.html‎

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -54,109 +54,113 @@ <h1>Joe Maloney</h1>
5454
<h2>GNUstep &amp; Gershwin Guides</h2>
5555
<ul class="guides">
5656
<li>
57-
<a href="SquashFS-Setup.html?v=20260504">SquashFS Setup Guide for Gershwin Workspace</a>
57+
<a href="SquashFS-Setup.html?v=20260509">SquashFS Setup Guide for Gershwin Workspace</a>
5858
<span class="desc">Building a SquashFS-based workspace on Debian/Linux.</span>
5959
</li>
6060
<li>
61-
<a href="default-browser-setup.html?v=20260504">Setting Chromium as the Default Web Browser</a>
61+
<a href="default-browser-setup.html?v=20260509">Setting Chromium as the Default Web Browser</a>
6262
<span class="desc">Configuring the default browser under GNUstep.</span>
6363
</li>
6464
<li>
65-
<a href="mdns-local-fix.html?v=20260504">Fixing <code>.local</code> (mDNS) Resolution</a>
65+
<a href="mdns-local-fix.html?v=20260509">Fixing <code>.local</code> (mDNS) Resolution</a>
6666
<span class="desc">Getting mDNS name resolution working on Debian/Devuan.</span>
6767
</li>
6868
<li>
69-
<a href="zsh-setup.html?v=20260504">Zsh System-Wide Setup</a>
69+
<a href="zsh-setup.html?v=20260509">Zsh System-Wide Setup</a>
7070
<span class="desc">Configuring zsh as a system-wide shell environment.</span>
7171
</li>
7272
<li>
73-
<a href="devuan-alsa-only.html?v=20260504">ALSA + dmix + apulse Setup</a>
73+
<a href="devuan-alsa-only.html?v=20260509">ALSA + dmix + apulse Setup</a>
7474
<span class="desc">Sharing the sound card via ALSA dmix with apulse, no PulseAudio/PipeWire.</span>
7575
</li>
76+
<li>
77+
<a href="nfs-locking-freeze-investigation.html?v=20260509">NFS Locking Freeze Investigation</a>
78+
<span class="desc">Why Chromium screen-share freezes the X session when <code>$HOME</code> is on NFS: the server doesn't register NLM, SQLite POSIX locks block in <code>fcntl()</code>, and the main thread stops servicing X events. Evidence, root cause, and fix.</span>
79+
</li>
7680
</ul>
7781

7882
<h2>GNUstep Research</h2>
7983
<ul class="guides">
8084
<li>
81-
<a href="menu-rendering-compared.html?v=20260504">How Menus Work: macOS vs GNUstep</a>
85+
<a href="menu-rendering-compared.html?v=20260509">How Menus Work: macOS vs GNUstep</a>
8286
<span class="desc">Comparing menu rendering architecture between macOS and GNUstep.</span>
8387
</li>
8488
<li>
85-
<a href="apple-menu-ownership.html?v=20260504">Who draws the macOS menu bar?</a>
89+
<a href="apple-menu-ownership.html?v=20260509">Who draws the macOS menu bar?</a>
8690
<span class="desc">Ownership and rendering of the macOS menu bar.</span>
8791
</li>
8892
<li>
89-
<a href="WindowServer-Plan.html?v=20260504">WindowServer.app Development Plan</a>
93+
<a href="WindowServer-Plan.html?v=20260509">WindowServer.app Development Plan</a>
9094
<span class="desc">Native GNUstep display server for Linux using KMS/DRM and GPU compositing.</span>
9195
</li>
9296
<li>
93-
<a href="gershwin-windowmanager-qa-plan.html?v=20260504">Gershwin WindowManager QA Plan</a>
97+
<a href="gershwin-windowmanager-qa-plan.html?v=20260509">Gershwin WindowManager QA Plan</a>
9498
<span class="desc">Two-track QA plan: per-PR manual smoke checklist plus a phased automated test suite.</span>
9599
</li>
96100
</ul>
97101

98102
<h2>FreeBSD Research</h2>
99103
<ul class="guides">
100104
<li>
101-
<a href="freebsd-livecd-plan.html?v=20260504">FreeBSD Live ISO &mdash; implementation report &amp; remaining options</a>
105+
<a href="freebsd-livecd-plan.html?v=20260509">FreeBSD Live ISO &mdash; implementation report &amp; remaining options</a>
102106
<span class="desc">Working livecd: cd9660 + mkuzip + gunion overlay + init_chroot pivot. Measured at 396 MiB minimal / 3.8 GiB with KDE Plasma 6. Lessons learned and three concrete paths to RAM-scaled writable headroom.</span>
103107
</li>
104108
<li>
105-
<a href="freebsd-squashfs-research.html?v=20260504">SquashFS on FreeBSD &mdash; architecture research</a>
109+
<a href="freebsd-squashfs-research.html?v=20260509">SquashFS on FreeBSD &mdash; architecture research</a>
106110
<span class="desc">Why a Linux-style squashfs livecd is hard on FreeBSD today: GSoC 2023 kernel work, geom_uzip vs squashfs vs tarfs, gunion vs unionfs, reboot -r vs init_chroot.</span>
107111
</li>
108112
<li>
109-
<a href="freebsd-livecd-gunion-reroot-plan.html?v=20260507">freebsd-livecd-gunion-reroot &mdash; experimental architecture <span class="pill info">DEFERRED</span></a>
113+
<a href="freebsd-livecd-gunion-reroot-plan.html?v=20260509">freebsd-livecd-gunion-reroot &mdash; experimental architecture <span class="pill info">DEFERRED</span></a>
110114
<span class="desc">Combine gunion (block-level RAM overlay) with <code>reboot -r</code> reroot to eliminate the kernel/userspace namespace split. Deferred &mdash; the simpler symlink trick (<code>cdroot/boot/firmware → /sysroot/boot/firmware</code>) verified working on real hardware, addressing the firmware-loading problem without architectural rewrite. Plan preserved as a reference if some future need genuinely requires kernel-and-userspace-share-a-root semantics.</span>
111115
</li>
112116
<li>
113-
<a href="gershwin-livecd-launchd-plan.html?v=20260507e">gershwin-on-freebsd: livecd rework + launchd port &mdash; plan <span class="pill ok">Phase 1 + 2 CI-green</span></a>
117+
<a href="gershwin-livecd-launchd-plan.html?v=20260509e">gershwin-on-freebsd: livecd rework + launchd port &mdash; plan <span class="pill ok">Phase 1 + 2 CI-green</span></a>
114118
<span class="desc">Sequenced integration of freebsd-launchd's work into <a href="https://github.com/pkgdemon/gershwin-on-freebsd">pkgdemon/gershwin-on-freebsd</a>. Phase 1 landed (single-root unionfs + init_chroot pivot, CI boot-test gate, feat/libs-corebase). Phase 2 landed (launchd as PID 1 via Option D, bedrock plists from freebsd-launchd, gershwin-specific dshelper/loginwindow/gdomap plists, dhcpcd swap, no getty — LoginWindow is the login). Phase 3 polish (dbus, kmodloader, gdomap lo0 fix, dshelper daemonization, ASL, single-user) deferred.</span>
115119
</li>
116120
<li>
117-
<a href="freebsd-launchd-plan.html?v=20260505">FreeBSD launchd &mdash; porting plan</a>
121+
<a href="freebsd-launchd-plan.html?v=20260509">FreeBSD launchd &mdash; porting plan</a>
118122
<span class="desc">Replace rc.d on FreeBSD with a non-Mach port of Apple's launchd. Single repo, single build.sh: GNUstep system-domain libs + launchd built inside a livecd staging chroot, boot-tested in qemu, published as a continuous release.</span>
119123
<ul>
120124
<li>
121-
<a href="freebsd-configd-plan.html?v=20260506">FreeBSD configd &mdash; porting plan</a>
125+
<a href="freebsd-configd-plan.html?v=20260509">FreeBSD configd &mdash; porting plan</a>
122126
<span class="desc">Companion to launchd. Ports Apple's configd as <code>netconfigd</code>: one daemon owns network state, hostname, DNS. Drops Mach IPC for GNUstep Distributed Objects; libdispatch for kernel events.</span>
123127
<ul>
124128
<li>
125-
<a href="freebsd-ipconfiguration-plan.html?v=20260506">FreeBSD IPConfiguration &mdash; porting plan</a>
129+
<a href="freebsd-ipconfiguration-plan.html?v=20260509">FreeBSD IPConfiguration &mdash; porting plan</a>
126130
<span class="desc">Eventual replacement for dhcpcd. Ports Apple's IPConfiguration as a netconfigd plugin (DHCPv4 + DHCPv6 + IPv4LL + RA, ~57k LOC, 6-9 person-months). Currently <strong>deferred</strong> &mdash; dhcpcd works, the cost-benefit doesn't justify the port until netconfigd Phase 2-3 ships and a real reason surfaces.</span>
127131
<ul>
128132
<li>
129-
<a href="freebsd-wifi-management.html?v=20260506">FreeBSD WiFi management &mdash; Apple stack research</a>
133+
<a href="freebsd-wifi-management.html?v=20260509">FreeBSD WiFi management &mdash; Apple stack research</a>
130134
<span class="desc">What macOS uses for WiFi (it's not <code>wpa_supplicant</code>): <code>wifid</code> + <code>Apple80211</code> + <code>CoreWLAN</code>, mostly closed source. Only the <code>eap8021x</code> EAP/802.1X code is open. We ship <code>wpa_supplicant</code> from ports; sketches a hypothetical <code>wifid-fbsd</code> wrapper if Apple-shape API symmetry ever matters.</span>
131135
</li>
132136
</ul>
133137
</li>
134138
</ul>
135139
</li>
136140
<li>
137-
<a href="freebsd-kmodloader-plan.html?v=20260506">FreeBSD kmodloader &mdash; porting plan</a>
141+
<a href="freebsd-kmodloader-plan.html?v=20260509">FreeBSD kmodloader &mdash; porting plan</a>
138142
<span class="desc">Apple-shaped clean-room daemon: every hardware-class kmod autoloads at boot or hot-plug. Closes the gap where stock FreeBSD doesn't aggressively bind GPU/NIC/USB drivers without manual <code>kld_list=</code> editing.</span>
139143
<ul>
140144
<li>
141-
<a href="freebsd-gpu-detection-comparison.html?v=20260506">GPU autodetection comparison &mdash; kmodloader vs. GhostBSD xconfig vs. NomadBSD initgfx vs. xlibre vs. Linux</a>
145+
<a href="freebsd-gpu-detection-comparison.html?v=20260509">GPU autodetection comparison &mdash; kmodloader vs. GhostBSD xconfig vs. NomadBSD initgfx vs. xlibre vs. Linux</a>
142146
<span class="desc">Side-by-side comparison of how each system maps GPUs to drivers, handles fallback to scfb/vesa/efifb, and what happens when a DRM kmod loads but the chip is too new to bind. Cites source line:column for the key logic in each.</span>
143147
</li>
144148
</ul>
145149
</li>
146150
<li>
147-
<a href="freebsd-asl-plan.html?v=20260505">FreeBSD ASL &mdash; porting plan</a>
151+
<a href="freebsd-asl-plan.html?v=20260509">FreeBSD ASL &mdash; porting plan</a>
148152
<span class="desc">Apple System Logger replacing FreeBSD's <code>/usr/sbin/syslogd</code>. Structured log records (Sender/Facility/PID/Time queries without grep), binary-store + BSD-text dual output (<code>tail /var/log/messages</code> still works).</span>
149153
</li>
150154
<li>
151-
<a href="freebsd-notifyd-plan.html?v=20260505">FreeBSD notifyd &mdash; porting plan</a>
155+
<a href="freebsd-notifyd-plan.html?v=20260509">FreeBSD notifyd &mdash; porting plan</a>
152156
<span class="desc">Apple's lightweight named-event pub/sub bus (<code>libnotify</code> + <code>notifyd</code>). Cross-process event coordination for gershwin desktop &mdash; theme changes, network state, power events &mdash; via the same C API Apple-derived apps already speak.</span>
153157
</li>
154158
<li>
155-
<a href="freebsd-mdnsresponder-plan.html?v=20260505">FreeBSD mDNSResponder &mdash; porting plan</a>
159+
<a href="freebsd-mdnsresponder-plan.html?v=20260509">FreeBSD mDNSResponder &mdash; porting plan</a>
156160
<span class="desc">Bonjour / zeroconf service discovery: <code>.local</code> hostnames, automatic printer / file-share discovery on the LAN. Surprise win &mdash; Apple's source already has a cross-platform <code>mDNSPosix</code> layer with zero Mach surface; the port is mostly a configuration exercise.</span>
157161
</li>
158162
<li>
159-
<a href="freebsd-disk-arbitration-plan.html?v=20260505">FreeBSD DiskArbitration &mdash; porting plan</a>
163+
<a href="freebsd-disk-arbitration-plan.html?v=20260509">FreeBSD DiskArbitration &mdash; porting plan</a>
160164
<span class="desc">Disk attach/detach events, mount/unmount/eject coordination, mount-policy approvals. Replaces ad-hoc <code>kqueue(EVFILT_FS)</code> polling with Apple's clean event API. Workspace File Viewer's "Devices" sidebar wants this. The hard one: replaces IOKit with <code>libgeom</code> + <code>devctl(4)</code>.</span>
161165
</li>
162166
</ul>

0 commit comments

Comments
 (0)