diff --git a/kde-frameworks/kdesu/kdesu6-6.2.0.recipe b/kde-frameworks/kdesu/kdesu6-6.2.0.recipe new file mode 100644 index 000000000..c24c5f4e7 --- /dev/null +++ b/kde-frameworks/kdesu/kdesu6-6.2.0.recipe @@ -0,0 +1,91 @@ +SUMMARY="User interface for running shell commands with root privileges" +DESCRIPTION="KDESU provides functionality for building GUI front ends for (password asking) \ +console mode programs. For example, kdesu and kdessh use it to interface with su and ssh \ +respectively." +HOMEPAGE="https://invent.kde.org/frameworks/kdesu" +COPYRIGHT="2010-2024 KDE Organisation" +LICENSE="GNU LGPL v2" +REVISION="1" +SOURCE_URI="https://download.kde.org/stable/frameworks/${portVersion%.*}/kdesu-$portVersion.tar.xz" +CHECKSUM_SHA256="7c612fea489d9e3e3d3c90cab0d314d98486bdc06014a60f609fdff21505822f" +SOURCE_DIR="kdesu-$portVersion" +PATCHES="kdesu-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="$portVersion" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + kdesu6$secondaryArchSuffix = $portVersion + lib:libKF6Su$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libKF6ConfigCore$secondaryArchSuffix + lib:libKF6CoreAddons$secondaryArchSuffix + lib:libKF6I18n$secondaryArchSuffix + lib:libKF6Pty$secondaryArchSuffix + lib:libQt6Core$secondaryArchSuffix + " + +PROVIDES_devel=" + kdesu6${secondaryArchSuffix}_devel = $portVersion + devel:libKF6Su$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + kdesu6$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + extra_cmake_modules$secondaryArchSuffix >= $portVersion + qt6_tools${secondaryArchSuffix}_devel + devel:libKF6ConfigCore$secondaryArchSuffix == $portVersion + devel:libKF6CoreAddons$secondaryArchSuffix == $portVersion + devel:libKF6I18n$secondaryArchSuffix == $portVersion + devel:libKF6Pty$secondaryArchSuffix == $portVersion + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Qml$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:dot + cmd:doxygen >= 1.9 + cmd:g++$secondaryArchSuffix + cmd:make + cmd:msgfmt + cmd:msgmerge + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + cmake -Bbuild -S. $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release \ + -DECM_DIR=/system/data/cmake/Modules/ECM/cmake \ + -DKDESU_USE_SUDO_DEFAULT=OFF \ + -DBUILD_QCH=ON \ + -DBUILD_TESTING=OFF + make -C build $jobArgs +} + +INSTALL() +{ + make -C build install + + prepareInstalledDevelLib \ + libKF6Su + + packageEntries devel \ + $libDir/cmake \ + $dataDir/doc \ + $developDir +} + +TEST() +{ + export LIBRARY_PATH="$sourceDir/build/bin${LIBRARY_PATH:+:$LIBRARY_PATH}" + make -C build test +} diff --git a/kde-frameworks/kdesu/patches/kdesu-6.2.0.patchset b/kde-frameworks/kdesu/patches/kdesu-6.2.0.patchset new file mode 100644 index 000000000..c280f83e8 --- /dev/null +++ b/kde-frameworks/kdesu/patches/kdesu-6.2.0.patchset @@ -0,0 +1,124 @@ +From c07596c3d925cffab961d35e828dfb101abec396 Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Thu, 7 Mar 2024 17:55:01 +0100 +Subject: Build fixes + + +diff --git a/src/client.cpp b/src/client.cpp +index 79563f3..b101db6 100644 +--- a/src/client.cpp ++++ b/src/client.cpp +@@ -38,7 +38,7 @@ public: + QByteArray sock; + }; + +-#ifndef SUN_LEN ++#if !defined(SUN_LEN) && !defined(Q_OS_HAIKU) + #define SUN_LEN(ptr) ((QT_SOCKLEN_T)(((struct sockaddr_un *)0)->sun_path) + strlen((ptr)->sun_path)) + #endif + +@@ -94,7 +94,7 @@ int Client::connect() + addr.sun_family = AF_UNIX; + strcpy(addr.sun_path, d->sock.constData()); + +- if (QT_SOCKET_CONNECT(d->sockfd, (struct sockaddr *)&addr, SUN_LEN(&addr)) < 0) { ++ if (QT_SOCKET_CONNECT(d->sockfd, (struct sockaddr *)&addr, sizeof(&addr)) < 0) { + qCWarning(KSU_LOG) << "[" << __FILE__ << ":" << __LINE__ << "] " + << "connect():" << strerror(errno); + close(d->sockfd); +diff --git a/src/kdesud/kdesud.cpp b/src/kdesud/kdesud.cpp +index 0d8598d..4b33595 100644 +--- a/src/kdesud/kdesud.cpp ++++ b/src/kdesud/kdesud.cpp +@@ -60,7 +60,7 @@ + + #include + +-#if !HAVE_CLOSE_RANGE ++#if !HAVE_CLOSE_RANGE && !defined(Q_OS_HAIKU) + #include // close_range syscall + #endif + +@@ -258,11 +258,13 @@ int create_socket() + } + } + ++#ifndef Q_OS_HAIKU + sockfd = socket(PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); + if (sockfd < 0) { + qCCritical(KSUD_LOG) << "socket(): " << ERR << "\n"; + return -1; + } ++#endif + + // Ensure socket closed on error + struct fd_ScopeGuard { +@@ -378,9 +380,11 @@ int main(int argc, char *argv[]) + exit(1); + } + ++#ifndef Q_OS_HAIKU + if (sockfd != 3) { + sockfd = dup3(sockfd, 3, O_CLOEXEC); + } ++#endif + if (sockfd < 0) { + qCCritical(KSUD_LOG) << "Failed to set sockfd to fd 3" << ERR << "\n"; + kdesud_cleanup(); +@@ -415,7 +419,9 @@ int main(int argc, char *argv[]) + repo = new Repository; + QList handler; + ++#ifndef Q_OS_HAIKU + pipe2(pipeOfDeath, O_CLOEXEC); ++#endif + maxfd = qMax(maxfd, pipeOfDeath[0]); + + // Signal handlers +-- +2.43.2 + + +From a3302d6e4584d390a5d813a96f25e9fbf7350c6f Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Fri, 17 May 2024 15:57:31 +0200 +Subject: Link with libnetwork + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index d941c83..da02af1 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -72,6 +72,12 @@ target_link_libraries(KF6Su + KF6::ConfigCore # KConfigGroup + ) + ++if(HAIKU) ++target_link_libraries(KF6Su ++ PRIVATE ++ network ++) ++endif() + + ecm_generate_headers(KDESu_CamelCase_HEADERS + HEADER_NAMES +diff --git a/src/kdesud/CMakeLists.txt b/src/kdesud/CMakeLists.txt +index e80a772..395b0c3 100644 +--- a/src/kdesud/CMakeLists.txt ++++ b/src/kdesud/CMakeLists.txt +@@ -25,7 +25,11 @@ ecm_qt_declare_logging_category(kdesud + EXPORT KSU + ) + +-target_link_libraries(kdesud KF6::Su KF6::I18n ${X11_LIBRARIES}) ++if(HAIKU) ++ target_link_libraries(kdesud KF6::Su KF6::I18n network) ++else() ++ target_link_libraries(kdesud KF6::Su KF6::I18n ${X11_LIBRARIES}) ++endif() + if(HAVE_X11) + target_include_directories(kdesud PRIVATE ${X11_X11_INCLUDE_PATH}) + endif() +-- +2.43.2 +