]> ###&version; - Clarify master switch: No + Apply stops plugin-managed hosts only (not external qemu-nbd). ###2026.08.17ab - Plugins UI: trim embedded CHANGES list. ###2026.08.17aa - Audit harden: UD HeadInline inject only when overlay enabled; marker + stock backup. ###2026.08.16aa - Clean package replace on every upgrade. ###2026.08.15ai - Companion cards match Thunderbolt Net multi-hop wording. ###2026.08.15ah - Full uninstall wipe of plugin flash config. ###2026.08.15ag - Do not wipe Unraid /tmp/plugins working copy during install prepare. ### Older releases - Full changelog: https://github.com/ibigsnet/NBDExport/blob/main/CHANGELOG.md /dev/null || true if [ -f /boot/config/plugins/NBDExport/NbdExport.cfg ] && [ ! -f /boot/config/plugins/NBDExport/NBDExport.cfg ]; then mv /boot/config/plugins/NBDExport/NbdExport.cfg /boot/config/plugins/NBDExport/NBDExport.cfg fi rm -rf /boot/config/plugins/NbdExport echo "NBD Export: migrated flash config NbdExport → NBDExport" fi # Note: do not delete /tmp/plugins/nbd.plg here — Unraid uses it as the install working copy rm -f /boot/config/plugins/install.plg /boot/config/plugins/nbdexport.plg \ /var/log/plugins/install.plg /var/log/plugins/nbdexport.plg 2>/dev/null || true mkdir -p /boot/config/plugins/NBDExport /var/run/nbdexport /var/log/nbdexport # YYYY.MM.DDxx package names: always remove prior installs so upgrades never leave mixed files for p in /var/log/packages/NBDExport-* /var/log/packages/NbdExport-*; do [ -e "$p" ] || continue echo "NBD Export: removing old package $(basename "$p")" removepkg "$(basename "$p")" 2>/dev/null || true done rm -rf /usr/local/emhttp/plugins/NBDExport \ /usr/local/emhttp/plugins/NbdExport \ /usr/local/emhttp/plugins/nbdexport 2>/dev/null || true rm -f /boot/config/plugins/NBDExport/NBDExport-*.txz 2>/dev/null || true echo "NBD Export: ready for package install." ]]> &raw;/archive/&pkgfile;?v=&version; /dev/null || true chmod 755 /usr/local/emhttp/plugins/NBDExport/event/started 2>/dev/null || true if [ ! -f /boot/config/plugins/NBDExport/NBDExport.cfg ] \ && [ -f /usr/local/emhttp/plugins/NBDExport/default.cfg ]; then cp -a /usr/local/emhttp/plugins/NBDExport/default.cfg /boot/config/plugins/NBDExport/NBDExport.cfg echo "NBD Export: created default NBDExport.cfg" fi # Companion marker only. UD HeadInline inject only when user enables overlay (Settings). php -r 'require_once "/usr/local/emhttp/plugins/NBDExport/include/nbd-lib.php"; nbd_write_companion_marker(); $c=nbd_load_cfg(); if (($c["ud_status_overlay"]??"no")==="yes") { nbd_ud_overlay_inject(); } else { nbd_ud_overlay_uninject(); }' 2>/dev/null || true echo "NBD Export: packages now: $(ls /var/log/packages/NBDExport-* 2>/dev/null | xargs -n1 basename 2>/dev/null | tr '\n' ' ')" echo "NBD Export: install complete." echo "NBD Export: Settings → Network Services → NBD" echo "NBD Export: Hard-refresh the browser (Ctrl+Shift+R)." ]]> /dev/null || true fi for f in \ /usr/local/emhttp/webGui/include/DefaultPageLayout/HeadInlineJS.php \ /usr/local/emhttp/plugins/dynamix/include/DefaultPageLayout/HeadInlineJS.php \ /usr/local/emhttp/webGui/include/HeadInclude.php \ /usr/local/emhttp/plugins/dynamix/include/HeadInclude.php do [ -f "$f" ] || continue sed -i '/NBDExport-inject/d;/NBDExport UD overlay/d' "$f" 2>/dev/null || true done # Stop managed exports/jobs if [ -f /usr/local/emhttp/plugins/NBDExport/include/nbd-lib.php ]; then php -r ' require_once "/usr/local/emhttp/plugins/NBDExport/include/nbd-lib.php"; nbd_stop_all_exports(); foreach (nbd_jobs_state() as $j) { if (!empty($j["id"])) { nbd_image_stop($j["id"]); } } ' 2>/dev/null || true fi if [ -d /var/run/nbdexport ]; then for pf in /var/run/nbdexport/*.pid; do [ -f "$pf" ] || continue pid=$(tr -cd '0-9' <"$pf" 2>/dev/null || true) if [ -n "$pid" ] && [ -d "/proc/$pid" ]; then kill "$pid" 2>/dev/null || true sleep 0.2 kill -9 "$pid" 2>/dev/null || true fi done fi rm -rf /var/run/nbdexport /var/log/nbdexport # Package + emhttp for p in /var/log/packages/NBDExport-*; do [ -e "$p" ] || continue removepkg "$(basename "$p")" 2>/dev/null || true done rm -rf /usr/local/emhttp/plugins/NBDExport # Flash (config + cached package); legacy rename dir if any rm -rf /boot/config/plugins/NBDExport /boot/config/plugins/NbdExport rm -f /boot/config/plugins/nbdexport.plg /boot/config/plugins/install.plg 2>/dev/null || true rm -f /tmp/plugins/nbd.txt /tmp/plugins/nbdexport.plg 2>/dev/null || true # Note: do not delete /tmp/plugins/nbd.plg here — Unraid install working copy during remove # Note: do not touch /boot/config/plugins-removed/ (Unraid-owned) # Note: user-exported JSON under /boot/config/nbdexport-config-*.json is left alone (export, not plugin state) echo "NBD Export: removed." ]]>