diff --git a/local/patches/sddm/01-initial-migration.patch b/local/patches/sddm/01-initial-migration.patch new file mode 100644 index 0000000000..36958ddffd --- /dev/null +++ b/local/patches/sddm/01-initial-migration.patch @@ -0,0 +1,122 @@ +# Initial migration of the inline sed -i chains in +# local/recipes/kde/sddm's [build].script to a durable external +# patch. Captured by local/scripts/migrate-kf6-seds-direct.sh +# on 2026-06-12T23:39:43+03:00. +# +# After applying this patch via cookbook_apply_patches, +# the recipe's [build].script should call: +# REDBEAR_PATCHES_DIR="/home/kellito/Builds/RedBear-OS/local/patches/sddm" +# cookbook_apply_patches "${REDBEAR_PATCHES_DIR}" +# in place of the sed -i chains that produced these edits. + +--- ./src/helper/CMakeLists.txt ++++ ./src/helper/CMakeLists.txt +@@ -3,7 +3,7 @@ + include_directories( + "${CMAKE_SOURCE_DIR}/src/common" + "${CMAKE_SOURCE_DIR}/src/auth" +- ${LIBXAU_INCLUDE_DIRS} ++ + ) + include_directories("${CMAKE_BINARY_DIR}/src/common") + +--- ./src/daemon/CMakeLists.txt ++++ ./src/daemon/CMakeLists.txt +@@ -2,8 +2,7 @@ + "${CMAKE_SOURCE_DIR}/src/common" + "${CMAKE_SOURCE_DIR}/src/auth" + "${CMAKE_BINARY_DIR}/src/common" +- ${LIBXAU_INCLUDE_DIRS} +- "${LIBXCB_INCLUDE_DIR}" ++ + ) + + configure_file(config.h.in config.h IMMEDIATE @ONLY) +@@ -65,7 +64,7 @@ + Qt${QT_MAJOR_VERSION}::Network + Qt${QT_MAJOR_VERSION}::Qml + ${LIBXAU_LINK_LIBRARIES} +- ${LIBXCB_LIBRARIES}) ++ ) + if(PAM_FOUND) + target_link_libraries(sddm ${PAM_LIBRARIES}) + else() +--- ./src/greeter/CMakeLists.txt ++++ ./src/greeter/CMakeLists.txt +@@ -12,7 +12,6 @@ + include_directories( + "${CMAKE_SOURCE_DIR}/src/common" + "${CMAKE_BINARY_DIR}/src/common" +- "${LIBXCB_INCLUDE_DIR}" + ) + + set(GREETER_SOURCES +@@ -42,8 +41,8 @@ + add_executable(${GREETER_TARGET} ${GREETER_SOURCES} ${RESOURCES}) + target_link_libraries(${GREETER_TARGET} + Qt${QT_MAJOR_VERSION}::Quick +- ${LIBXCB_LIBRARIES} +- ${LIBXKB_LIBRARIES}) ++ ++ ) + + if(JOURNALD_FOUND) + target_link_libraries(${GREETER_TARGET} ${JOURNALD_LIBRARIES}) +--- ./CMakeLists.txt ++++ ./CMakeLists.txt +@@ -66,13 +66,13 @@ + find_package(PAM REQUIRED) + + # XAU +-pkg_check_modules(LIBXAU REQUIRED "xau") ++pkg_check_modules(LIBXAU QUIET "xau") + + # XCB +-find_package(XCB REQUIRED) ++find_package(XCB QUIET) + + # XKB +-find_package(XKB REQUIRED) ++find_package(XKB QUIET) + + # Qt + if(BUILD_WITH_QT6) +@@ -83,7 +83,7 @@ + message(STATUS "Building Qt 5 version") + endif() + +-find_package(Qt${QT_MAJOR_VERSION} 5.15.0 CONFIG REQUIRED Core DBus Gui Qml Quick LinguistTools Test QuickTest) ++find_package(Qt${QT_MAJOR_VERSION} 5.15.0 CONFIG REQUIRED Core Network DBus Gui Qml Quick) + + # find qt5 imports dir + get_target_property(QMAKE_EXECUTABLE Qt${QT_MAJOR_VERSION}::qmake LOCATION) +@@ -227,8 +227,6 @@ + add_subdirectory(services) + add_subdirectory(src) + +-enable_testing() +-add_subdirectory(test) + + # Display feature summary + feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) +--- ./data/translations/CMakeLists.txt ++++ ./data/translations/CMakeLists.txt +@@ -45,7 +45,6 @@ + zh_TW.ts + ) + +-qt_add_translation(QM_FILES ${TRANSLATION_FILES}) + + install(FILES ${QM_FILES} DESTINATION "${COMPONENTS_TRANSLATION_DIR}") + +--- ./data/themes/CMakeLists.txt ++++ ./data/themes/CMakeLists.txt +@@ -8,7 +8,6 @@ + + set_source_files_properties(${TRANSLATION_SOURCES} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${TRANSLATIONS_DIR}") + +- qt_add_translation(QM_FILES "${TRANSLATION_SOURCES}") + + install(DIRECTORY "${THEME}" DESTINATION "${DATA_INSTALL_DIR}/themes" PATTERN "${THEME}/*.ts" + EXCLUDE PATTERN "${THEME}/.gitattributes" + diff --git a/local/recipes/kde/sddm/recipe.toml b/local/recipes/kde/sddm/recipe.toml index 7a8cd6ed08..02dd411c6d 100644 --- a/local/recipes/kde/sddm/recipe.toml +++ b/local/recipes/kde/sddm/recipe.toml @@ -45,29 +45,12 @@ fi CROSS_PKGCONFIG="${COOKBOOK_ROOT}/bin/x86_64-unknown-redox-pkg-config" -sed -i 's/find_package(XCB REQUIRED)/find_package(XCB QUIET)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/find_package(XKB REQUIRED)/find_package(XKB QUIET)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/pkg_check_modules(LIBXAU REQUIRED "xau")/pkg_check_modules(LIBXAU QUIET "xau")/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/find_package(Qt${QT_MAJOR_VERSION}.*CONFIG REQUIRED.*/find_package(Qt${QT_MAJOR_VERSION} 5.15.0 CONFIG REQUIRED Core Network DBus Gui Qml Quick)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i 's/find_package(Qt${QT_MAJOR_VERSION}Test)/find_package(Qt${QT_MAJOR_VERSION}Test QUIET)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/add_subdirectory(test)/d' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -sed -i '/enable_testing/d' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null || true -find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i '/qt_add_translation/d' {} + 2>/dev/null || true -find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i '/LIBXCB_INCLUDE_DIR/d' {} + 2>/dev/null || true -find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i 's/${LIBXCB_LIBRARIES}//' {} + 2>/dev/null || true -find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i 's/${LIBXKB_LIBRARIES}//' {} + 2>/dev/null || true -find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i 's/${LIBXAU_LIBRARIES}//' {} + 2>/dev/null || true -find "${COOKBOOK_SOURCE}" -name "CMakeLists.txt" -exec sed -i 's/${LIBXAU_INCLUDE_DIRS}//' {} + 2>/dev/null || true +REDBEAR_PATCHES_DIR="${COOKBOOK_RECIPE}/../../../../local/patches/sddm" +cookbook_apply_patches "${REDBEAR_PATCHES_DIR}" if grep -q 'find_package(LibJournald' "${COOKBOOK_SOURCE}/CMakeLists.txt" 2>/dev/null; then - sed -i 's/find_package(LibJournald REQUIRED)/find_package(LibJournald QUIET)/' "${COOKBOOK_SOURCE}/CMakeLists.txt" fi -sed -i '/XAuth\\.cpp/d' "${COOKBOOK_SOURCE}/src/helper/CMakeLists.txt" 2>/dev/null || true -sed -i 's/${LIBXAU_LINK_LIBRARIES}//' "${COOKBOOK_SOURCE}/src/helper/CMakeLists.txt" 2>/dev/null || true -sed -i 's/ioctl(STDIN_FILENO, TIOCSCTTY)/ioctl(STDIN_FILENO, TIOCSCTTY, NULL)/' "${COOKBOOK_SOURCE}/src/helper/UserSession.cpp" 2>/dev/null || true -sed -i 's/XAuth::writeCookieToFile(display, m_xauthFile.fileName(), cookie)/true/' "${COOKBOOK_SOURCE}/src/helper/UserSession.cpp" 2>/dev/null || true -sed -i '/#include "XAuth.h"/d' "${COOKBOOK_SOURCE}/src/helper/UserSession.cpp" 2>/dev/null || true python3 "${COOKBOOK_RECIPE}/remove-x11user-helper.py" "${COOKBOOK_SOURCE}/src/helper/CMakeLists.txt" cp -r "${COOKBOOK_RECIPE}/stubs/"* "${COOKBOOK_SYSROOT}/usr/include/" diff --git a/local/scripts/edit-kf6-recipes-for-patches.sh b/local/scripts/edit-kf6-recipes-for-patches.sh index c62c47af14..56d5f51bc0 100755 --- a/local/scripts/edit-kf6-recipes-for-patches.sh +++ b/local/scripts/edit-kf6-recipes-for-patches.sh @@ -53,6 +53,7 @@ recipe_dirs=( "local/recipes/kde/kglobalacceld" "local/recipes/kde/kirigami" "local/recipes/kde/konsole" + "local/recipes/kde/sddm" "local/recipes/kde/kwin" "local/recipes/kde/plasma-desktop" "local/recipes/kde/plasma-workspace" diff --git a/local/scripts/migrate-kf6-seds-direct.sh b/local/scripts/migrate-kf6-seds-direct.sh index e084c77a89..d8a5b67709 100755 --- a/local/scripts/migrate-kf6-seds-direct.sh +++ b/local/scripts/migrate-kf6-seds-direct.sh @@ -47,6 +47,7 @@ recipe_dirs=( "local/recipes/kde/kf6-solid" "local/recipes/kde/kf6-sonnet" "local/recipes/kde/kf6-syntaxhighlighting" + "local/recipes/kde/sddm" # 7 unclassified (git-sourced or kde/plasma). Their # pristine state was snapshotted after a successful # `repo fetch`. If the pristine doesn't exist, the