f31522130f
Build system (5 gaps hardened): - COOKBOOK_OFFLINE defaults to true (fork-mode) - normalize_patch handles diff -ruN format - New 'repo validate-patches' command (25/25 relibc patches) - 14 patched Qt/Wayland/display recipes added to protected list - relibc archive regenerated with current patch chain Boot fixes (fixable): - Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset) - D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped) - redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped) - daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch) - udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async) - relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs - greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait) - greeter-ui: built and linked (header guard unification, sem_compat stubs removed) - mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps - greeter config: removed stale keymapd dependency from display/greeter services - prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified Unfixable (diagnosed, upstream): - i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort - kded6/greeter-ui: page fault 0x8 — Qt library null deref - Thread panics fd != -1 — Rust std library on Redox - DHCP timeout / eth0 MAC — QEMU user-mode networking - hwrngd/thermald — no hardware RNG/thermal in VM - live preload allocation — BIOS memory fragmentation, continues on demand
101 lines
2.9 KiB
Bash
Executable File
101 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
|
|
script_dir_path=`dirname $0`
|
|
script_dir_path=`(cd "$script_dir_path"; pwd)`
|
|
|
|
# the current directory is the "build tree" or "object tree"
|
|
outpath=`pwd`
|
|
outpathPrefix=$outpath
|
|
|
|
SAVED_IFS=$IFS
|
|
IFS='
|
|
'
|
|
|
|
optfile=""
|
|
determineOptFilePath()
|
|
{
|
|
> "${outpathPrefix}/config.redo.in"
|
|
set -f # suppress globbing in for loop
|
|
for i in "$@"; do
|
|
if [ x"$i" = x"-top-level" ]; then
|
|
continue
|
|
fi
|
|
case $i in
|
|
-redo|--redo)
|
|
optfile=${outpathPrefix}/config.opt
|
|
if ! test -f "$optfile"; then
|
|
echo >&2 "No config.opt present - cannot redo configuration."
|
|
exit 1
|
|
fi
|
|
;;
|
|
*)
|
|
# If redo-ing, write the rest of parameters into the config.redo.in file
|
|
echo \"$i\" >> "${outpathPrefix}/config.redo.in"
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
printUsage()
|
|
{
|
|
cat <<EOF
|
|
Usage: qt-configure-module <module-source-dir> [options]
|
|
|
|
To display the available options for a Qt module, run
|
|
qt-configure-module <module-source-dir> -help
|
|
EOF
|
|
}
|
|
|
|
if [ "$#" -lt 1 ]; then
|
|
printUsage
|
|
exit 1
|
|
fi
|
|
module_root=$1
|
|
# This ensures the repo path does not end up in the config.opt file.
|
|
shift
|
|
|
|
if [ ! -f "$module_root/CMakeLists.txt" ]; then
|
|
echo >&2 "Error: $module_root is not a valid Qt module source directory."
|
|
printUsage
|
|
exit 1
|
|
fi
|
|
|
|
determineOptFilePath "$@"
|
|
|
|
optfilepath=${outpathPrefix}/config.opt
|
|
opttmpfilepath=${outpathPrefix}/config.opt.in
|
|
|
|
redofilepath=${outpathPrefix}/config.redo.last
|
|
redotmpfilepath=${outpathPrefix}/config.redo.in
|
|
|
|
qt_cmake_private_path="$script_dir_path/../@INSTALL_LIBEXECDIR@"
|
|
|
|
fresh_requested_arg=
|
|
if [ -z "$optfile" ]; then # only write optfile if not currently redoing
|
|
cp "$script_dir_path/@__GlobalConfig_relative_path_from_bin_dir_to_cmake_config_dir@/@side_car_file_name@" "$opttmpfilepath"
|
|
> "$redotmpfilepath"
|
|
|
|
for arg in "$@"; do echo \"$arg\" >> "$opttmpfilepath"; done
|
|
|
|
"$qt_cmake_private_path/qt-cmake-private" -DIN_FILE="${opttmpfilepath}" \
|
|
-DOUT_FILE="${optfilepath}" \
|
|
-P "$script_dir_path/@__relative_path_to_cmake_scripts_dir@/QtWriteArgsFile.cmake"
|
|
else
|
|
# Rewriting config.opt into config.opt.in anyway. Allows for direct manipulation of config.opt
|
|
> "$opttmpfilepath"
|
|
for arg in `cat $optfile`; do echo \"$arg\" >> "$opttmpfilepath"; done
|
|
|
|
"$qt_cmake_private_path/qt-cmake-private" -DIN_FILE="${opttmpfilepath}" \
|
|
-DREDO_FILE="${redotmpfilepath}" -DOUT_FILE="${redofilepath}" \
|
|
-P "$script_dir_path/@__relative_path_to_cmake_scripts_dir@/QtWriteArgsFile.cmake"
|
|
optfilepath=${redofilepath}
|
|
fresh_requested_arg=-DFRESH_REQUESTED=TRUE
|
|
fi
|
|
|
|
cmake_script_path="$script_dir_path/@__relative_path_to_cmake_scripts_dir@/QtProcessConfigureArgs.cmake"
|
|
"$qt_cmake_private_path/qt-cmake-private" -DOPTFILE=$optfilepath -DMODULE_ROOT="$module_root" \
|
|
-DCMAKE_COMMAND="$qt_cmake_private_path/qt-cmake-private" -P "$cmake_script_path"
|
|
|
|
IFS=$SAVED_IFS
|