summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2021-07-07 14:30:37 +0200
committerSimon Rettberg2021-07-07 14:30:37 +0200
commitb853365eb0c41cf4b7ccc728a74d6af459f0746d (patch)
tree49ee39c4c9772a5158451ba5efd1cfeca9b1a19e
parentsetup_target: Remove mystery overlay target feature (diff)
downloadmltk-b853365eb0c41cf4b7ccc728a74d6af459f0746d.tar.gz
mltk-b853365eb0c41cf4b7ccc728a74d6af459f0746d.tar.xz
mltk-b853365eb0c41cf4b7ccc728a74d6af459f0746d.zip
Add sub-target feature: Targets can contain other targets
Similar to module-links, you can now have symlinks to other targets in a target, and they will be recursively scanned for modules. Dependencies can be declared across targets.
-rwxr-xr-xcore/bin/setup_target82
l---------core/targets/bwlp/cups (renamed from core/targets/stage32-bwlp/cups)0
l---------core/targets/bwlp/cups-sicgs (renamed from core/targets/stage32-bwlp/cups-sicgs)0
l---------core/targets/bwlp/dbus (renamed from core/targets/stage32-bwlp/dbus)0
l---------core/targets/bwlp/dhcpc-busybox (renamed from core/targets/stage32-bwlp/dhcpc-busybox)0
l---------core/targets/bwlp/dnbd3-proxy-mode (renamed from core/targets/stage32-bwlp/dnbd3-proxy-mode)0
l---------core/targets/bwlp/etherwake (renamed from core/targets/stage32-bwlp/etherwake)0
l---------core/targets/bwlp/german (renamed from core/targets/stage32-bwlp/german)0
l---------core/targets/bwlp/iperf (renamed from core/targets/stage32-bwlp/iperf)0
l---------core/targets/bwlp/iptables (renamed from core/targets/stage32-bwlp/iptables)0
l---------core/targets/bwlp/kernel2
l---------core/targets/bwlp/kexec-reboot (renamed from core/targets/stage32-bwlp/kexec-reboot)0
l---------core/targets/bwlp/kiosk-slxbrowser (renamed from core/targets/stage32-bwlp/kiosk-slxbrowser)0
l---------core/targets/bwlp/mgmt-sshd (renamed from core/targets/stage32-bwlp/mgmt-sshd)0
l---------core/targets/bwlp/openbox (renamed from core/targets/stage32-bwlp/openbox)0
l---------core/targets/bwlp/pam-slx-plug (renamed from core/targets/stage32-bwlp/pam-slx-plug)0
l---------core/targets/bwlp/pam-slxlog-session (renamed from core/targets/stage32-bwlp/pam-slxlog-session)0
l---------core/targets/bwlp/parse-edid (renamed from core/targets/stage32-bwlp/parse-edid)0
l---------core/targets/bwlp/qt5core (renamed from core/targets/stage32-bwlp/qt5core)0
l---------core/targets/bwlp/rdns (renamed from core/targets/stage32-bwlp/rdns)0
l---------core/targets/bwlp/remote-access (renamed from core/targets/stage32-bwlp/remote-access)0
l---------core/targets/bwlp/safe-mode (renamed from core/targets/stage32-bwlp/safe-mode)0
l---------core/targets/bwlp/slx-issue (renamed from core/targets/stage32-bwlp/slx-issue)0
l---------core/targets/bwlp/slx-tools (renamed from core/targets/stage32-bwlp/slx-tools)0
l---------core/targets/bwlp/slxbrowser (renamed from core/targets/stage32-bwlp/slxbrowser)0
l---------core/targets/bwlp/slxlog1
l---------core/targets/bwlp/smbclient (renamed from core/targets/stage32-bwlp/smbclient)0
l---------core/targets/bwlp/sshd (renamed from core/targets/stage32-bwlp/sshd)0
l---------core/targets/bwlp/sudo (renamed from core/targets/stage32-bwlp/sudo)0
l---------core/targets/bwlp/system-check (renamed from core/targets/stage32-bwlp/system-check)0
l---------core/targets/bwlp/vmware1
l---------core/targets/bwlp/xscreensaver (renamed from core/targets/stage32-bwlp/xscreensaver)0
l---------core/targets/stage32-bwlp/alsa1
l---------core/targets/stage32-bwlp/apply-slx-vars1
l---------core/targets/stage32-bwlp/beamergui1
l---------core/targets/stage32-bwlp/bwlp1
l---------core/targets/stage32-bwlp/cpugovernor1
l---------core/targets/stage32-bwlp/cron1
l---------core/targets/stage32-bwlp/debug-report-bwlp1
l---------core/targets/stage32-bwlp/distro-logo1
l---------core/targets/stage32-bwlp/dmidecode1
l---------core/targets/stage32-bwlp/dnbd31
l---------core/targets/stage32-bwlp/dunst1
l---------core/targets/stage32-bwlp/hardware-stats1
l---------core/targets/stage32-bwlp/idleaction1
l---------core/targets/stage32-bwlp/iptables-helper1
l---------core/targets/stage32-bwlp/kernel1
l---------core/targets/stage32-bwlp/kiosk-common1
l---------core/targets/stage32-bwlp/lightdm1
l---------core/targets/stage32-bwlp/lightdm-greeter-bwlp1
l---------core/targets/stage32-bwlp/nscd1
l---------core/targets/stage32-bwlp/pam1
l---------core/targets/stage32-bwlp/pam-bwidm1
l---------core/targets/stage32-bwlp/polkit1
l---------core/targets/stage32-bwlp/printergui1
l---------core/targets/stage32-bwlp/pvs21
l---------core/targets/stage32-bwlp/redsocks1
l---------core/targets/stage32-bwlp/rootfs-stage321
l---------core/targets/stage32-bwlp/rsyslogd1
l---------core/targets/stage32-bwlp/run-virt1
l---------core/targets/stage32-bwlp/smartctl1
l---------core/targets/stage32-bwlp/speedcheck1
l---------core/targets/stage32-bwlp/ssh-auth-keys1
l---------core/targets/stage32-bwlp/sssd1
l---------core/targets/stage32-bwlp/stage321
l---------core/targets/stage32-bwlp/systemd1
l---------core/targets/stage32-bwlp/systemd-default-path1
l---------core/targets/stage32-bwlp/vmchooser21
l---------core/targets/stage32-bwlp/x11vnc1
l---------core/targets/stage32-bwlp/xfwm1
l---------core/targets/stage32-bwlp/xorg1
l---------core/targets/stage32/alsa1
l---------core/targets/stage32/cups1
l---------core/targets/stage32/dbus1
l---------core/targets/stage32/dhcpc-busybox1
l---------core/targets/stage32/dmidecode1
l---------core/targets/stage32/dnbd31
l---------core/targets/stage32/german1
l---------core/targets/stage32/kdm1
l---------core/targets/stage32/kernel1
l---------core/targets/stage32/nscd1
l---------core/targets/stage32/openbox1
l---------core/targets/stage32/pam1
l---------core/targets/stage32/redsocks1
l---------core/targets/stage32/run-virt1
l---------core/targets/stage32/smartctl1
l---------core/targets/stage32/sshd1
l---------core/targets/stage32/sssd1
l---------core/targets/stage32/systemd2
l---------core/targets/stage32/vmware-version-check (renamed from core/targets/stage32-bwlp/vmware-version-check)0
l---------core/targets/stage32/xorg1
91 files changed, 61 insertions, 84 deletions
diff --git a/core/bin/setup_target b/core/bin/setup_target
index 1f2327e9..04417efd 100755
--- a/core/bin/setup_target
+++ b/core/bin/setup_target
@@ -51,8 +51,11 @@
# as these will be determined automaticly by the helper function 'get_dynamic_dependencies'
# -----------------------------------------------------------------------------
#
-CORE_DIR="${ROOT_DIR}/core"
-EXPORT_DIR="/export/build"
+# Map modules from their names to path - contains all modules of current target
+declare -A MODULE_PATHS
+declare -rg CORE_DIR="${ROOT_DIR}/core"
+declare -rg TARGETS_BASEDIR="$( readlink -f "${CORE_DIR}/targets" )"
+declare -rg EXPORT_DIR="/export/build"
[ -z "$REMOTE_EXPORT_DIR" ] || EXPORT_DIR=$REMOTE_EXPORT_DIR
initial_checks () {
@@ -272,6 +275,29 @@ prepare_usr_split () {
fi
}
+# Recursively get all modules in the current target
+scan_target() {
+ local dir item base real
+ dir="$1"
+ [ -d "$1" ] || perror "scan_target: $dir is not a directory"
+ for item in "$dir/"*; do
+ [ -L "$item" ] || continue
+ base="$( basename "$item" )"
+ real="$( readlink -f "$item" )"
+ if [ -s "$item/module.conf" ]; then
+ if [ -n "${MODULE_PATHS["$base"]}" ] \
+ && [ "${MODULE_PATHS["$base"]}" != "$real" ]; then
+ perror "$base exists in multiple sub-targets and links to different modules\n1: $real\n2: ${MODULE_PATHS["$base"]}"
+ fi
+ MODULE_PATHS["$base"]="$real"
+ elif [ "${real#$TARGETS_BASEDIR}" != "$real" ]; then
+ scan_target "$real"
+ else
+ perror "Unknown link in target '$dir': '$base' is '$real', neither target nor module"
+ fi
+ done
+}
+
#
#
# main public function. Requires the TARGET to be given as argument.
@@ -285,7 +311,8 @@ generate_target() {
TARGET="$1"
shift
- TARGET_DIR="${CORE_DIR}/targets/${TARGET}"
+ TARGET_DIR="$( readlink -f "${TARGETS_BASEDIR}/${TARGET}" )"
+ scan_target "$TARGET_DIR"
if [[ "$TARGET" == *@* ]]; then
VARNAME="${TARGET#*@}"
TARGET="${TARGET%@*}"
@@ -302,6 +329,7 @@ generate_target() {
generate_target_real() {
# Keep track of processed modules so we don't
# build a module multiple times when following dependencies
+ local item
local PROCESSED_MODULES=
[ -e "${ROOT_DIR}/var/log/${TARGET}.size" ] && . "${ROOT_DIR}/var/log/${TARGET}.size" || echo "declare -A BUILD_SIZE" >> "${ROOT_DIR}/var/log/${TARGET}.size"
@@ -316,16 +344,20 @@ generate_target_real() {
# if no arguments assume all.
if [ "x$1" = "x" -o "x$1" = "xall" ]; then
- MODULES=$( ls "${TARGET_DIR}" )
+ MODULES="${!MODULE_PATHS[@]}"
set -- $MODULES
else
# tools = arguments given
- MODULES=$@
+ MODULES="$@"
fi
pinfo "Activated modules in '${TARGET}':"
pinfo "\t$(echo ${MODULES})"
+ for item in $MODULES; do
+ [ -n "${MODULE_PATHS["$item"]}" ] || perror "Module $item not found in target"
+ done
+
# copy basic libs
pinfo "Copying libc and ld-linux used by ${SHELL}"
tarcopy "$(list_basic_libs)" "${TARGET_BUILD_DIR}"
@@ -357,7 +389,7 @@ process_module() {
[[ "$PROCESSED_MODULES" == *"!${MODULE}!"* ]] && return # Already processed this module
# Set up dirs ans variables
PROCESSED_MODULES="${PROCESSED_MODULES}!${MODULE}!"
- local MODULE_DIR="${TARGET_DIR}/${MODULE}"
+ local MODULE_DIR="${MODULE_PATHS["${MODULE}"]}"
local MODULE_WORK_DIR="${ROOT_DIR}/tmp/work/${MODULE}"
local MODULE_BUILD_DIR="${MODULE_WORK_DIR}/build"
local TOOL_STR="[${MODULE}]"
@@ -490,43 +522,43 @@ post_process_target() {
}
clean_modules() {
-
+ local module
TARGET=$1
shift
- # TODO: what was the idea of target path? presumably something to do with the 'overlays' folder?
- #TARGET_DIR="$(target_path ${TARGET})"
- TARGET_DIR="${CORE_DIR}/targets/${TARGET}"
+ TARGET_DIR="$( readlink -f "${TARGETS_BASEDIR}/${TARGET}" )"
+ scan_target "$TARGET_DIR"
TARGET_BUILD_DIR="${ROOT_DIR}/var/builds/${TARGET}"
[ -d $TARGET_DIR ] || perror "Given target directory does not exist: $TARGET_DIR"
if [ "x$1" = "x" -o "x$1" = "xall" ]; then
- if [ -e "${ROOT_DIR}/var/log/${TARGET}.size" ]; then
- rm "${ROOT_DIR}/var/log/${TARGET}.size" || perror "Could not delete var/log/${TARGET}.size"
- fi
+ rm -f -- "${ROOT_DIR}/var/log/${TARGET}.size" || perror "Could not delete var/log/${TARGET}.size"
if [[ "$TARGET" == *@* ]]; then
rm -rf -- "${TARGET_BUILD_DIR%@*}"@* || perror "Could not delete target build dirs for $TARGET"
else
rm -rf -- "${TARGET_BUILD_DIR}" || perror "Could not delete target build dir for $TARGET"
fi
# exclude kernel on "all"
- set -- $(ls "${TARGET_DIR}" | grep -vE "^kernel$")
+ unset 'MODULE_PATHS[kernel]'
+ set -- "${!MODULE_PATHS[@]}"
fi
- cd "$TARGET_DIR"
- while (( "$#" )); do
- clean_module "${TARGET}:$1"
- shift
+ for module in "$@"; do
+ [ -n "${MODULE_PATHS["$module"]}" ] || perror "Target does not contain module '$module'"
+ done
+ cd "$TARGET_DIR"
+ for module in "$@"; do
+ clean_module "${TARGET}:${module}"
done
cd - &> /dev/null
}
clean_module() {
[ -z "$1" ] && perror "No module given on clean_module()"
- pinfo "## clean_module $1"
+ pinfo "## clean_module $1"
- local TARGET=${1%:*}
+ local TARGET=${1%%:*}
local MODULE=${1#*:}
- local MODULE_DIR="${CORE_DIR}/targets/${TARGET}/${MODULE}"
+ local MODULE_DIR="${MODULE_PATHS["${MODULE}"]}"
local MODULE_WORK_DIR="${ROOT_DIR}/tmp/work/${MODULE}"
if ! [ -d "$MODULE_DIR" ]; then
@@ -582,14 +614,14 @@ calc_size() {
[ ! -z "${BUILD_SIZE[$MODULE]}" ] && local OLD_MODULE_SIZE=${BUILD_SIZE[$MODULE]} || local OLD_MODULE_SIZE=0
local diff=$((CURRENT_BUILD_SIZE-TARGET_BUILD_SIZE+OLD_MODULE_SIZE))
- if [ -z "${BUILD_SIZE[$MODULE]}" ]; then
+ if [ -z "${BUILD_SIZE[$MODULE]}" ]; then
echo "BUILD_SIZE[$MODULE]=${diff}" >> "${ROOT_DIR}/var/log/${TARGET}.size"
else
sed -i "s/^BUILD_SIZE\[${MODULE}\]=.*$/BUILD_SIZE\[${MODULE}\]=${diff}/g" "${ROOT_DIR}/var/log/${TARGET}.size"
fi
-
- MODULE_BUILD_SIZE=$(echo $diff | awk '{ sum=$1; hum[1024^3]="GB"; hum[1024^2]="MB"; hum[1024]="KB";
- for (x=1024^3; x>=1024; x/=1024){
+
+ MODULE_BUILD_SIZE=$(echo $diff | awk '{ sum=$1; hum[1024^3]="GB"; hum[1024^2]="MB"; hum[1024]="KB";
+ for (x=1024^3; x>=1024; x/=1024){
if (sum>=x) { printf "%.2f %s\n",sum/x,hum[x]; break }
}
}')
diff --git a/core/targets/stage32-bwlp/cups b/core/targets/bwlp/cups
index 0ff7101d..0ff7101d 120000
--- a/core/targets/stage32-bwlp/cups
+++ b/core/targets/bwlp/cups
diff --git a/core/targets/stage32-bwlp/cups-sicgs b/core/targets/bwlp/cups-sicgs
index b1a9410a..b1a9410a 120000
--- a/core/targets/stage32-bwlp/cups-sicgs
+++ b/core/targets/bwlp/cups-sicgs
diff --git a/core/targets/stage32-bwlp/dbus b/core/targets/bwlp/dbus
index dd148715..dd148715 120000
--- a/core/targets/stage32-bwlp/dbus
+++ b/core/targets/bwlp/dbus
diff --git a/core/targets/stage32-bwlp/dhcpc-busybox b/core/targets/bwlp/dhcpc-busybox
index ea3634e6..ea3634e6 120000
--- a/core/targets/stage32-bwlp/dhcpc-busybox
+++ b/core/targets/bwlp/dhcpc-busybox
diff --git a/core/targets/stage32-bwlp/dnbd3-proxy-mode b/core/targets/bwlp/dnbd3-proxy-mode
index 41ea3e29..41ea3e29 120000
--- a/core/targets/stage32-bwlp/dnbd3-proxy-mode
+++ b/core/targets/bwlp/dnbd3-proxy-mode
diff --git a/core/targets/stage32-bwlp/etherwake b/core/targets/bwlp/etherwake
index ffab42e9..ffab42e9 120000
--- a/core/targets/stage32-bwlp/etherwake
+++ b/core/targets/bwlp/etherwake
diff --git a/core/targets/stage32-bwlp/german b/core/targets/bwlp/german
index 4469f96e..4469f96e 120000
--- a/core/targets/stage32-bwlp/german
+++ b/core/targets/bwlp/german
diff --git a/core/targets/stage32-bwlp/iperf b/core/targets/bwlp/iperf
index 29aec282..29aec282 120000
--- a/core/targets/stage32-bwlp/iperf
+++ b/core/targets/bwlp/iperf
diff --git a/core/targets/stage32-bwlp/iptables b/core/targets/bwlp/iptables
index 1f5e94e4..1f5e94e4 120000
--- a/core/targets/stage32-bwlp/iptables
+++ b/core/targets/bwlp/iptables
diff --git a/core/targets/bwlp/kernel b/core/targets/bwlp/kernel
index 041dc99f..1369e8ff 120000
--- a/core/targets/bwlp/kernel
+++ b/core/targets/bwlp/kernel
@@ -1 +1 @@
-../../modules/kernel-system \ No newline at end of file
+../../modules/kernel-vanilla \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/kexec-reboot b/core/targets/bwlp/kexec-reboot
index ee22d7f9..ee22d7f9 120000
--- a/core/targets/stage32-bwlp/kexec-reboot
+++ b/core/targets/bwlp/kexec-reboot
diff --git a/core/targets/stage32-bwlp/kiosk-slxbrowser b/core/targets/bwlp/kiosk-slxbrowser
index acbe5acc..acbe5acc 120000
--- a/core/targets/stage32-bwlp/kiosk-slxbrowser
+++ b/core/targets/bwlp/kiosk-slxbrowser
diff --git a/core/targets/stage32-bwlp/mgmt-sshd b/core/targets/bwlp/mgmt-sshd
index 52a1f3f6..52a1f3f6 120000
--- a/core/targets/stage32-bwlp/mgmt-sshd
+++ b/core/targets/bwlp/mgmt-sshd
diff --git a/core/targets/stage32-bwlp/openbox b/core/targets/bwlp/openbox
index 0fb8d86d..0fb8d86d 120000
--- a/core/targets/stage32-bwlp/openbox
+++ b/core/targets/bwlp/openbox
diff --git a/core/targets/stage32-bwlp/pam-slx-plug b/core/targets/bwlp/pam-slx-plug
index 46dc9d79..46dc9d79 120000
--- a/core/targets/stage32-bwlp/pam-slx-plug
+++ b/core/targets/bwlp/pam-slx-plug
diff --git a/core/targets/stage32-bwlp/pam-slxlog-session b/core/targets/bwlp/pam-slxlog-session
index 6b69e710..6b69e710 120000
--- a/core/targets/stage32-bwlp/pam-slxlog-session
+++ b/core/targets/bwlp/pam-slxlog-session
diff --git a/core/targets/stage32-bwlp/parse-edid b/core/targets/bwlp/parse-edid
index b6213669..b6213669 120000
--- a/core/targets/stage32-bwlp/parse-edid
+++ b/core/targets/bwlp/parse-edid
diff --git a/core/targets/stage32-bwlp/qt5core b/core/targets/bwlp/qt5core
index 18ee398d..18ee398d 120000
--- a/core/targets/stage32-bwlp/qt5core
+++ b/core/targets/bwlp/qt5core
diff --git a/core/targets/stage32-bwlp/rdns b/core/targets/bwlp/rdns
index 6fe47dc5..6fe47dc5 120000
--- a/core/targets/stage32-bwlp/rdns
+++ b/core/targets/bwlp/rdns
diff --git a/core/targets/stage32-bwlp/remote-access b/core/targets/bwlp/remote-access
index 228ddbc4..228ddbc4 120000
--- a/core/targets/stage32-bwlp/remote-access
+++ b/core/targets/bwlp/remote-access
diff --git a/core/targets/stage32-bwlp/safe-mode b/core/targets/bwlp/safe-mode
index 86422724..86422724 120000
--- a/core/targets/stage32-bwlp/safe-mode
+++ b/core/targets/bwlp/safe-mode
diff --git a/core/targets/stage32-bwlp/slx-issue b/core/targets/bwlp/slx-issue
index 83768536..83768536 120000
--- a/core/targets/stage32-bwlp/slx-issue
+++ b/core/targets/bwlp/slx-issue
diff --git a/core/targets/stage32-bwlp/slx-tools b/core/targets/bwlp/slx-tools
index 20c7450b..20c7450b 120000
--- a/core/targets/stage32-bwlp/slx-tools
+++ b/core/targets/bwlp/slx-tools
diff --git a/core/targets/stage32-bwlp/slxbrowser b/core/targets/bwlp/slxbrowser
index 033414fa..033414fa 120000
--- a/core/targets/stage32-bwlp/slxbrowser
+++ b/core/targets/bwlp/slxbrowser
diff --git a/core/targets/bwlp/slxlog b/core/targets/bwlp/slxlog
deleted file mode 120000
index ed2687a9..00000000
--- a/core/targets/bwlp/slxlog
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/slxlog/ \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/smbclient b/core/targets/bwlp/smbclient
index 9fed855f..9fed855f 120000
--- a/core/targets/stage32-bwlp/smbclient
+++ b/core/targets/bwlp/smbclient
diff --git a/core/targets/stage32-bwlp/sshd b/core/targets/bwlp/sshd
index 56b4e4b5..56b4e4b5 120000
--- a/core/targets/stage32-bwlp/sshd
+++ b/core/targets/bwlp/sshd
diff --git a/core/targets/stage32-bwlp/sudo b/core/targets/bwlp/sudo
index 5c0a121b..5c0a121b 120000
--- a/core/targets/stage32-bwlp/sudo
+++ b/core/targets/bwlp/sudo
diff --git a/core/targets/stage32-bwlp/system-check b/core/targets/bwlp/system-check
index c1fbcf69..c1fbcf69 120000
--- a/core/targets/stage32-bwlp/system-check
+++ b/core/targets/bwlp/system-check
diff --git a/core/targets/bwlp/vmware b/core/targets/bwlp/vmware
deleted file mode 120000
index 81fa2c91..00000000
--- a/core/targets/bwlp/vmware
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/vmware \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/xscreensaver b/core/targets/bwlp/xscreensaver
index d2f4f1a8..d2f4f1a8 120000
--- a/core/targets/stage32-bwlp/xscreensaver
+++ b/core/targets/bwlp/xscreensaver
diff --git a/core/targets/stage32-bwlp/alsa b/core/targets/stage32-bwlp/alsa
deleted file mode 120000
index 7e13d263..00000000
--- a/core/targets/stage32-bwlp/alsa
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/alsa \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/apply-slx-vars b/core/targets/stage32-bwlp/apply-slx-vars
deleted file mode 120000
index 5406eb3d..00000000
--- a/core/targets/stage32-bwlp/apply-slx-vars
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/apply-slx-vars \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/beamergui b/core/targets/stage32-bwlp/beamergui
deleted file mode 120000
index 5e863316..00000000
--- a/core/targets/stage32-bwlp/beamergui
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/beamergui \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/bwlp b/core/targets/stage32-bwlp/bwlp
new file mode 120000
index 00000000..d956dabe
--- /dev/null
+++ b/core/targets/stage32-bwlp/bwlp
@@ -0,0 +1 @@
+../bwlp \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/cpugovernor b/core/targets/stage32-bwlp/cpugovernor
deleted file mode 120000
index 544c1e19..00000000
--- a/core/targets/stage32-bwlp/cpugovernor
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/cpugovernor \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/cron b/core/targets/stage32-bwlp/cron
deleted file mode 120000
index 39164da5..00000000
--- a/core/targets/stage32-bwlp/cron
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/cron \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/debug-report-bwlp b/core/targets/stage32-bwlp/debug-report-bwlp
deleted file mode 120000
index 54a528ce..00000000
--- a/core/targets/stage32-bwlp/debug-report-bwlp
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/debug-report-bwlp \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/distro-logo b/core/targets/stage32-bwlp/distro-logo
deleted file mode 120000
index ab15c1bf..00000000
--- a/core/targets/stage32-bwlp/distro-logo
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/distro-logo \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/dmidecode b/core/targets/stage32-bwlp/dmidecode
deleted file mode 120000
index 608c2bb5..00000000
--- a/core/targets/stage32-bwlp/dmidecode
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dmidecode \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/dnbd3 b/core/targets/stage32-bwlp/dnbd3
deleted file mode 120000
index fa80b45c..00000000
--- a/core/targets/stage32-bwlp/dnbd3
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dnbd3 \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/dunst b/core/targets/stage32-bwlp/dunst
deleted file mode 120000
index e3927e25..00000000
--- a/core/targets/stage32-bwlp/dunst
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dunst \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/hardware-stats b/core/targets/stage32-bwlp/hardware-stats
deleted file mode 120000
index 3e5e637b..00000000
--- a/core/targets/stage32-bwlp/hardware-stats
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/hardware-stats \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/idleaction b/core/targets/stage32-bwlp/idleaction
deleted file mode 120000
index 09fd9493..00000000
--- a/core/targets/stage32-bwlp/idleaction
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/idleaction \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/iptables-helper b/core/targets/stage32-bwlp/iptables-helper
deleted file mode 120000
index e449282d..00000000
--- a/core/targets/stage32-bwlp/iptables-helper
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/iptables-helper \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/kernel b/core/targets/stage32-bwlp/kernel
deleted file mode 120000
index 1369e8ff..00000000
--- a/core/targets/stage32-bwlp/kernel
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/kernel-vanilla \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/kiosk-common b/core/targets/stage32-bwlp/kiosk-common
deleted file mode 120000
index 885bb3d6..00000000
--- a/core/targets/stage32-bwlp/kiosk-common
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/kiosk-common \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/lightdm b/core/targets/stage32-bwlp/lightdm
deleted file mode 120000
index 05feb71c..00000000
--- a/core/targets/stage32-bwlp/lightdm
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/lightdm \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/lightdm-greeter-bwlp b/core/targets/stage32-bwlp/lightdm-greeter-bwlp
deleted file mode 120000
index 694092d5..00000000
--- a/core/targets/stage32-bwlp/lightdm-greeter-bwlp
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/lightdm-greeter-bwlp \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/nscd b/core/targets/stage32-bwlp/nscd
deleted file mode 120000
index d7e411d2..00000000
--- a/core/targets/stage32-bwlp/nscd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/nscd \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/pam b/core/targets/stage32-bwlp/pam
deleted file mode 120000
index 588acdbf..00000000
--- a/core/targets/stage32-bwlp/pam
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/pam \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/pam-bwidm b/core/targets/stage32-bwlp/pam-bwidm
deleted file mode 120000
index b6847cd8..00000000
--- a/core/targets/stage32-bwlp/pam-bwidm
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/pam-bwidm \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/polkit b/core/targets/stage32-bwlp/polkit
deleted file mode 120000
index 0ad0b111..00000000
--- a/core/targets/stage32-bwlp/polkit
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/polkit \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/printergui b/core/targets/stage32-bwlp/printergui
deleted file mode 120000
index 6ccbb628..00000000
--- a/core/targets/stage32-bwlp/printergui
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/printergui \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/pvs2 b/core/targets/stage32-bwlp/pvs2
deleted file mode 120000
index 01875515..00000000
--- a/core/targets/stage32-bwlp/pvs2
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/pvs2 \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/redsocks b/core/targets/stage32-bwlp/redsocks
deleted file mode 120000
index 0740c53b..00000000
--- a/core/targets/stage32-bwlp/redsocks
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/redsocks \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/rootfs-stage32 b/core/targets/stage32-bwlp/rootfs-stage32
deleted file mode 120000
index 96dcbb86..00000000
--- a/core/targets/stage32-bwlp/rootfs-stage32
+++ /dev/null
@@ -1 +0,0 @@
-../../rootfs/rootfs-stage32 \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/rsyslogd b/core/targets/stage32-bwlp/rsyslogd
deleted file mode 120000
index 339d02f8..00000000
--- a/core/targets/stage32-bwlp/rsyslogd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/rsyslogd \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/run-virt b/core/targets/stage32-bwlp/run-virt
deleted file mode 120000
index 1e4a476c..00000000
--- a/core/targets/stage32-bwlp/run-virt
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/run-virt \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/smartctl b/core/targets/stage32-bwlp/smartctl
deleted file mode 120000
index 3a48434f..00000000
--- a/core/targets/stage32-bwlp/smartctl
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/smartctl \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/speedcheck b/core/targets/stage32-bwlp/speedcheck
deleted file mode 120000
index dfed5b4e..00000000
--- a/core/targets/stage32-bwlp/speedcheck
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/speedcheck \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/ssh-auth-keys b/core/targets/stage32-bwlp/ssh-auth-keys
deleted file mode 120000
index 7dc12941..00000000
--- a/core/targets/stage32-bwlp/ssh-auth-keys
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/ssh-auth-keys \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/sssd b/core/targets/stage32-bwlp/sssd
deleted file mode 120000
index 753208d8..00000000
--- a/core/targets/stage32-bwlp/sssd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/sssd \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/stage32 b/core/targets/stage32-bwlp/stage32
new file mode 120000
index 00000000..3c6a2e60
--- /dev/null
+++ b/core/targets/stage32-bwlp/stage32
@@ -0,0 +1 @@
+../stage32 \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/systemd b/core/targets/stage32-bwlp/systemd
deleted file mode 120000
index 1bd6e273..00000000
--- a/core/targets/stage32-bwlp/systemd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/systemd-distro \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/systemd-default-path b/core/targets/stage32-bwlp/systemd-default-path
deleted file mode 120000
index 753f431f..00000000
--- a/core/targets/stage32-bwlp/systemd-default-path
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/systemd-default-path \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/vmchooser2 b/core/targets/stage32-bwlp/vmchooser2
deleted file mode 120000
index bfdabcb7..00000000
--- a/core/targets/stage32-bwlp/vmchooser2
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/vmchooser2 \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/x11vnc b/core/targets/stage32-bwlp/x11vnc
deleted file mode 120000
index eb755d19..00000000
--- a/core/targets/stage32-bwlp/x11vnc
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/x11vnc \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/xfwm b/core/targets/stage32-bwlp/xfwm
deleted file mode 120000
index 1ad7235e..00000000
--- a/core/targets/stage32-bwlp/xfwm
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/xfwm \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/xorg b/core/targets/stage32-bwlp/xorg
deleted file mode 120000
index a9494860..00000000
--- a/core/targets/stage32-bwlp/xorg
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/xorg \ No newline at end of file
diff --git a/core/targets/stage32/alsa b/core/targets/stage32/alsa
deleted file mode 120000
index 7e13d263..00000000
--- a/core/targets/stage32/alsa
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/alsa \ No newline at end of file
diff --git a/core/targets/stage32/cups b/core/targets/stage32/cups
deleted file mode 120000
index 0ff7101d..00000000
--- a/core/targets/stage32/cups
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/cups \ No newline at end of file
diff --git a/core/targets/stage32/dbus b/core/targets/stage32/dbus
deleted file mode 120000
index dd148715..00000000
--- a/core/targets/stage32/dbus
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dbus \ No newline at end of file
diff --git a/core/targets/stage32/dhcpc-busybox b/core/targets/stage32/dhcpc-busybox
deleted file mode 120000
index ea3634e6..00000000
--- a/core/targets/stage32/dhcpc-busybox
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dhcpc-busybox \ No newline at end of file
diff --git a/core/targets/stage32/dmidecode b/core/targets/stage32/dmidecode
deleted file mode 120000
index 608c2bb5..00000000
--- a/core/targets/stage32/dmidecode
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dmidecode \ No newline at end of file
diff --git a/core/targets/stage32/dnbd3 b/core/targets/stage32/dnbd3
deleted file mode 120000
index fa80b45c..00000000
--- a/core/targets/stage32/dnbd3
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/dnbd3 \ No newline at end of file
diff --git a/core/targets/stage32/german b/core/targets/stage32/german
deleted file mode 120000
index 4469f96e..00000000
--- a/core/targets/stage32/german
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/german \ No newline at end of file
diff --git a/core/targets/stage32/kdm b/core/targets/stage32/kdm
deleted file mode 120000
index 727ed5b5..00000000
--- a/core/targets/stage32/kdm
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/kdm \ No newline at end of file
diff --git a/core/targets/stage32/kernel b/core/targets/stage32/kernel
deleted file mode 120000
index 044f086d..00000000
--- a/core/targets/stage32/kernel
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/kernel \ No newline at end of file
diff --git a/core/targets/stage32/nscd b/core/targets/stage32/nscd
deleted file mode 120000
index d7e411d2..00000000
--- a/core/targets/stage32/nscd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/nscd \ No newline at end of file
diff --git a/core/targets/stage32/openbox b/core/targets/stage32/openbox
deleted file mode 120000
index 0fb8d86d..00000000
--- a/core/targets/stage32/openbox
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/openbox \ No newline at end of file
diff --git a/core/targets/stage32/pam b/core/targets/stage32/pam
deleted file mode 120000
index 588acdbf..00000000
--- a/core/targets/stage32/pam
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/pam \ No newline at end of file
diff --git a/core/targets/stage32/redsocks b/core/targets/stage32/redsocks
deleted file mode 120000
index 0740c53b..00000000
--- a/core/targets/stage32/redsocks
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/redsocks \ No newline at end of file
diff --git a/core/targets/stage32/run-virt b/core/targets/stage32/run-virt
deleted file mode 120000
index 1e4a476c..00000000
--- a/core/targets/stage32/run-virt
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/run-virt \ No newline at end of file
diff --git a/core/targets/stage32/smartctl b/core/targets/stage32/smartctl
deleted file mode 120000
index 3a48434f..00000000
--- a/core/targets/stage32/smartctl
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/smartctl \ No newline at end of file
diff --git a/core/targets/stage32/sshd b/core/targets/stage32/sshd
deleted file mode 120000
index 56b4e4b5..00000000
--- a/core/targets/stage32/sshd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/sshd \ No newline at end of file
diff --git a/core/targets/stage32/sssd b/core/targets/stage32/sssd
deleted file mode 120000
index 753208d8..00000000
--- a/core/targets/stage32/sssd
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/sssd \ No newline at end of file
diff --git a/core/targets/stage32/systemd b/core/targets/stage32/systemd
index 2dc58bd3..1bd6e273 120000
--- a/core/targets/stage32/systemd
+++ b/core/targets/stage32/systemd
@@ -1 +1 @@
-../../modules/systemd \ No newline at end of file
+../../modules/systemd-distro \ No newline at end of file
diff --git a/core/targets/stage32-bwlp/vmware-version-check b/core/targets/stage32/vmware-version-check
index fac1392c..fac1392c 120000
--- a/core/targets/stage32-bwlp/vmware-version-check
+++ b/core/targets/stage32/vmware-version-check
diff --git a/core/targets/stage32/xorg b/core/targets/stage32/xorg
deleted file mode 120000
index a9494860..00000000
--- a/core/targets/stage32/xorg
+++ /dev/null
@@ -1 +0,0 @@
-../../modules/xorg \ No newline at end of file