From 3396df64dbaf0632fcb50d2f4988220d7ca5e3da 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 d8cedf2..6a1c00e 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.52.0 From b15c97cce234d924eb90983564740d820aac975d Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Tue, 12 Nov 2024 10:07:00 +0100 Subject: Link with libnetwork Undefined references to socket/setsockopt/getsockopt,recv diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 09764c9..5ea40c3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -72,6 +72,9 @@ 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.52.0