fix: auto-discover all local recipes in integrate-redbear.sh

Replace 95-line manual symlink list with auto-discovery of all
local/recipes/<category>/<name>/ directories. This fixes 15 missing
symlinks that would have blocked the redbear-full build, including
critical packages: libdrm, qtbase, qtwayland, libinput, libevdev,
seatd, and wayland-protocols.

Special-case aliases preserved:
- kf6-kirigami → kirigami (KDE expects both names)
- wip/wayland/qt6-wayland-smoke (historical WIP path)
This commit is contained in:
2026-05-28 18:31:21 +03:00
parent d26675708e
commit ece9837d15
+31 -93
View File
@@ -134,101 +134,39 @@ echo "Tag: $REDBEAR_TAG"
echo ""
section "Ensuring custom recipe symlinks..."
symlink "../../local/recipes/branding/redbear-release" "recipes/branding/redbear-release"
symlink "../../local/recipes/drivers/linux-kpi" "recipes/drivers/linux-kpi"
symlink "../../local/recipes/drivers/redbear-btusb" "recipes/drivers/redbear-btusb"
symlink "../../local/recipes/drivers/redbear-iwlwifi" "recipes/drivers/redbear-iwlwifi"
symlink "../../local/recipes/drivers/redox-driver-sys" "recipes/drivers/redox-driver-sys"
symlink "../../local/recipes/gpu/amdgpu" "recipes/gpu/amdgpu"
symlink "../../local/recipes/gpu/redox-drm" "recipes/gpu/redox-drm"
symlink "../../local/recipes/libs/libqrencode" "recipes/libs/libqrencode"
symlink "../../local/recipes/system/evdevd" "recipes/system/evdevd"
symlink "../../local/recipes/system/redbear-firmware" "recipes/system/redbear-firmware"
symlink "../../local/recipes/system/firmware-loader" "recipes/system/firmware-loader"
symlink "../../local/recipes/system/iommu" "recipes/system/iommu"
symlink "../../local/recipes/system/redbear-btctl" "recipes/system/redbear-btctl"
symlink "../../local/recipes/system/redbear-info" "recipes/system/redbear-info"
symlink "../../local/recipes/system/redbear-hwutils" "recipes/system/redbear-hwutils"
symlink "../../local/recipes/system/redbear-netstat" "recipes/system/redbear-netstat"
symlink "../../local/recipes/system/redbear-netctl" "recipes/system/redbear-netctl"
symlink "../../local/recipes/system/redbear-netctl-console" "recipes/system/redbear-netctl-console"
symlink "../../local/recipes/system/redbear-wifictl" "recipes/system/redbear-wifictl"
symlink "../../local/recipes/system/redbear-traceroute" "recipes/system/redbear-traceroute"
symlink "../../local/recipes/system/redbear-mtr" "recipes/system/redbear-mtr"
symlink "../../local/recipes/system/redbear-nmap" "recipes/system/redbear-nmap"
symlink "../../local/recipes/system/redbear-meta" "recipes/system/redbear-meta"
symlink "../../local/recipes/system/udev-shim" "recipes/system/udev-shim"
symlink "../../local/recipes/core/ext4d" "recipes/core/ext4d"
symlink "../../local/recipes/tui/mc" "recipes/tui/mc"
symlink "../../local/recipes/system/cub" "recipes/system/cub"
symlink "../../../local/recipes/wayland/qt6-wayland-smoke" "recipes/wip/wayland/qt6-wayland-smoke"
# KDE / Phase 6 recipes
mkdir -p recipes/kde
symlink "../../local/recipes/kde/plasma-desktop" "recipes/kde/plasma-desktop"
symlink "../../local/recipes/kde/plasma-workspace" "recipes/kde/plasma-workspace"
symlink "../../local/recipes/kde/plasma-framework" "recipes/kde/plasma-framework"
symlink "../../local/recipes/kde/plasma-wayland-protocols" "recipes/kde/plasma-wayland-protocols"
symlink "../../local/recipes/kde/kwin" "recipes/kde/kwin"
symlink "../../local/recipes/kde/kirigami" "recipes/kde/kirigami"
# Auto-discover all local/recipes/<category>/<name>/ directories and symlink
# into recipes/<category>/<name>. This replaces the previous 95-line manual
# symlink list which was perpetually out of sync with local/recipes/.
linked_count=0
skipped_count=0
while IFS= read -r -d '' recipe_dir; do
rel_path="${recipe_dir#local/recipes/}"
category="${rel_path%%/*}"
name="${rel_path#*/}"
link="recipes/${category}/${name}"
# Compute relative path from link to target
# recipes/<cat>/<name> → ../../local/recipes/<cat>/<name>
target="../../local/recipes/${rel_path}"
if symlink "$target" "$link"; then
linked_count=$((linked_count + 1))
else
skipped_count=$((skipped_count + 1))
fi
done < <(find local/recipes -mindepth 2 -maxdepth 2 -type d -print0 2>/dev/null | sort -z)
# Special alias: kf6-kirigami → kirigami (KDE expects both names)
symlink "../../local/recipes/kde/kirigami" "recipes/kde/kf6-kirigami"
symlink "../../local/recipes/kde/kdecoration" "recipes/kde/kdecoration"
symlink "../../local/recipes/kde/kf6-extra-cmake-modules" "recipes/kde/kf6-extra-cmake-modules"
symlink "../../local/recipes/kde/kf6-kcoreaddons" "recipes/kde/kf6-kcoreaddons"
symlink "../../local/recipes/kde/kf6-kwidgetsaddons" "recipes/kde/kf6-kwidgetsaddons"
symlink "../../local/recipes/kde/kf6-kconfig" "recipes/kde/kf6-kconfig"
symlink "../../local/recipes/kde/kf6-ki18n" "recipes/kde/kf6-ki18n"
symlink "../../local/recipes/kde/kf6-kcodecs" "recipes/kde/kf6-kcodecs"
symlink "../../local/recipes/kde/kf6-kguiaddons" "recipes/kde/kf6-kguiaddons"
symlink "../../local/recipes/kde/kf6-kcolorscheme" "recipes/kde/kf6-kcolorscheme"
symlink "../../local/recipes/kde/kf6-kauth" "recipes/kde/kf6-kauth"
symlink "../../local/recipes/kde/kf6-kitemmodels" "recipes/kde/kf6-kitemmodels"
symlink "../../local/recipes/kde/kf6-kitemviews" "recipes/kde/kf6-kitemviews"
symlink "../../local/recipes/kde/kf6-attica" "recipes/kde/kf6-attica"
symlink "../../local/recipes/kde/kf6-karchive" "recipes/kde/kf6-karchive"
symlink "../../local/recipes/kde/kf6-kwindowsystem" "recipes/kde/kf6-kwindowsystem"
symlink "../../local/recipes/kde/kf6-knotifications" "recipes/kde/kf6-knotifications"
symlink "../../local/recipes/kde/kf6-kjobwidgets" "recipes/kde/kf6-kjobwidgets"
symlink "../../local/recipes/kde/kf6-kconfigwidgets" "recipes/kde/kf6-kconfigwidgets"
symlink "../../local/recipes/kde/kf6-kcrash" "recipes/kde/kf6-kcrash"
symlink "../../local/recipes/kde/kf6-kdbusaddons" "recipes/kde/kf6-kdbusaddons"
symlink "../../local/recipes/kde/kf6-kglobalaccel" "recipes/kde/kf6-kglobalaccel"
symlink "../../local/recipes/kde/kf6-kservice" "recipes/kde/kf6-kservice"
symlink "../../local/recipes/kde/kf6-kpackage" "recipes/kde/kf6-kpackage"
symlink "../../local/recipes/kde/kf6-kiconthemes" "recipes/kde/kf6-kiconthemes"
symlink "../../local/recipes/kde/kf6-kxmlgui" "recipes/kde/kf6-kxmlgui"
symlink "../../local/recipes/kde/kf6-ktextwidgets" "recipes/kde/kf6-ktextwidgets"
symlink "../../local/recipes/kde/kf6-solid" "recipes/kde/kf6-solid"
symlink "../../local/recipes/kde/kf6-sonnet" "recipes/kde/kf6-sonnet"
symlink "../../local/recipes/kde/kf6-kio" "recipes/kde/kf6-kio"
symlink "../../local/recipes/kde/kf6-kbookmarks" "recipes/kde/kf6-kbookmarks"
symlink "../../local/recipes/kde/kf6-kcompletion" "recipes/kde/kf6-kcompletion"
symlink "../../local/recipes/kde/kf6-kdeclarative" "recipes/kde/kf6-kdeclarative"
symlink "../../local/recipes/kde/kf6-kcmutils" "recipes/kde/kf6-kcmutils"
symlink "../../local/recipes/kde/kf6-kidletime" "recipes/kde/kf6-kidletime"
symlink "../../local/recipes/kde/kf6-kwayland" "recipes/kde/kf6-kwayland"
symlink "../../local/recipes/kde/kf6-knewstuff" "recipes/kde/kf6-knewstuff"
symlink "../../local/recipes/kde/kf6-kwallet" "recipes/kde/kf6-kwallet"
symlink "../../local/recipes/kde/kf6-prison" "recipes/kde/kf6-prison"
symlink "../../local/recipes/kde/breeze" "recipes/kde/breeze"
symlink "../../local/recipes/kde/kde-cli-tools" "recipes/kde/kde-cli-tools"
symlink "../../local/recipes/kde/kdecoration" "recipes/kde/kdecoration"
symlink "../../local/recipes/kde/kirigami" "recipes/kde/kirigami"
symlink "../../local/recipes/kde/kwin" "recipes/kde/kwin"
symlink "../../local/recipes/kde/plasma-desktop" "recipes/kde/plasma-desktop"
symlink "../../local/recipes/kde/plasma-framework" "recipes/kde/plasma-framework"
symlink "../../local/recipes/kde/plasma-workspace" "recipes/kde/plasma-workspace"
symlink "../../local/recipes/kde/plasma-wayland-protocols" "recipes/kde/plasma-wayland-protocols"
symlink "../../local/recipes/kde/kglobalacceld" "recipes/kde/kglobalacceld"
symlink "../../local/recipes/wayland/qt6-wayland-smoke" "recipes/wayland/qt6-wayland-smoke"
symlink "../../local/recipes/wayland/seatd-redox" "recipes/wayland/seatd-redox"
symlink "../../local/recipes/wayland/smallvil" "recipes/wayland/smallvil"
symlink "../../local/recipes/wayland/redbear-compositor" "recipes/wayland/redbear-compositor"
symlink "../../local/recipes/tests/redox-drm-prime-test" "recipes/tests/redox-drm-prime-test"
symlink "../../local/recipes/system/redbear-passwd" "recipes/system/redbear-passwd"
symlink "../../local/recipes/gpu/redox-drm" "recipes/gpu/redox-drm"
symlink "../../local/recipes/gpu/amdgpu" "recipes/gpu/amdgpu"
status "Custom recipe symlinks ready"
# WIP compat: qt6-wayland-smoke lives under wayland/ but historically
# was also linked under recipes/wip/wayland/
mkdir -p recipes/wip/wayland
symlink "../../../../local/recipes/wayland/qt6-wayland-smoke" "recipes/wip/wayland/qt6-wayland-smoke"
status "Custom recipe symlinks ready (${linked_count} linked, ${skipped_count} skipped)"
echo ""
section "Ensuring recipe patch symlinks..."