diff --git a/kde-apps/kio-extras/kio_extras24-24.08.0.recipe b/kde-apps/kio-extras/kio_extras24-24.08.0.recipe new file mode 100644 index 000000000..120a2e73a --- /dev/null +++ b/kde-apps/kio-extras/kio_extras24-24.08.0.recipe @@ -0,0 +1,190 @@ +SUMMARY="Additional components to increase the functionality of KIO" +DESCRIPTION="A kioslave is a plugin designed to be intimately familiar with a \ +certain protocol, so that a standardized interface can be used to get at data \ +from any number of places. A few examples are the http and ftp kioslaves, \ +which using nearly identical methods will retrieve data from an http or ftp \ +server respectively. +This package also supports the following protocols: +* fish +* mtp +* sftp +* smb" +HOMEPAGE="https://invent.kde.org/network/kio-extras/" +COPYRIGHT="2010-2024 KDE Organisation" +LICENSE="GNU LGPL v2" +REVISION="1" +SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/kio-extras-$portVersion.tar.xz" +SOURCE_DIR="kio-extras-$portVersion" +CHECKSUM_SHA256="7590f4897962388149c0fec25e7eb8b691597dacfd4aedf3343bbeeb4b98445c" +PATCHES="kio_extras-$portVersion.patchset" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +libVersion="6.1.0" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + kio_extras24$secondaryArchSuffix = $portVersion + lib:libkioarchive6$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libkdsoap$secondaryArchSuffix + lib:libKDSoapWSDiscoveryClient$secondaryArchSuffix + lib:libmtp$secondaryArchSuffix + lib:libphonon4Qt6$secondaryArchSuffix + lib:libsmbclient$secondaryArchSuffix + lib:libssh$secondaryArchSuffix + lib:libssp$secondaryArchSuffix + # KF 6 + lib:libPlasmaActivities$secondaryArchSuffix + lib:libKF6Archive$secondaryArchSuffix + lib:libKF6AuthCore$secondaryArchSuffix + lib:libKF6Bookmarks$secondaryArchSuffix + lib:libKF6Codecs$secondaryArchSuffix + lib:libKF6Completion$secondaryArchSuffix + lib:libKF6ConfigCore$secondaryArchSuffix + lib:libKF6ConfigWidgets$secondaryArchSuffix + lib:libKF6CoreAddons$secondaryArchSuffix + lib:libKF6DBusAddons$secondaryArchSuffix + lib:libKF6DNSSD$secondaryArchSuffix + lib:libKF6GuiAddons$secondaryArchSuffix + lib:libKF6I18n$secondaryArchSuffix + lib:libKF6IconThemes$secondaryArchSuffix + lib:libKF6ItemViews$secondaryArchSuffix + lib:libKF6KIOCore$secondaryArchSuffix + lib:libKF6JobWidgets$secondaryArchSuffix + lib:libKF6Pty$secondaryArchSuffix + lib:libKF6Service$secondaryArchSuffix + lib:libKF6Solid$secondaryArchSuffix + lib:libKF6SyntaxHighlighting$secondaryArchSuffix + lib:libKF6WidgetsAddons$secondaryArchSuffix + lib:libKF6WindowSystem$secondaryArchSuffix + lib:libKF6XmlGui$secondaryArchSuffix + # Qt6 + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6Network$secondaryArchSuffix + " + +PROVIDES_devel=" + kio_extras24${secondaryArchSuffix}_devel = $portVersion + devel:libkioarchive6$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + kio_extras24$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + kdsoap_ws_discovery_client_qt6${secondaryArchSuffix}_devel + devel:libkdsoap_qt6$secondaryArchSuffix + devel:libmtp$secondaryArchSuffix + devel:libphonon4Qt6$secondaryArchSuffix + devel:libQCoro6Core$secondaryArchSuffix + devel:libsmbclient$secondaryArchSuffix + devel:libssh$secondaryArchSuffix + devel:libtag$secondaryArchSuffix + devel:libxml2$secondaryArchSuffix + devel:libz$secondaryArchSuffix + # KF 6 + extra_cmake_modules$secondaryArchSuffix >= 6.0.0 + devel:libPlasmaActivities$secondaryArchSuffix + devel:libPlasmaActivitiesStats$secondaryArchSuffix + devel:libKExiv2Qt6$secondaryArchSuffix + devel:libKF6Archive$secondaryArchSuffix + devel:libKF6AuthCore$secondaryArchSuffix + devel:libKF6Bookmarks$secondaryArchSuffix + devel:libKF6Codecs$secondaryArchSuffix + devel:libKF6ColorScheme$secondaryArchSuffix + devel:libKF6Completion$secondaryArchSuffix + devel:libKF6ConfigCore$secondaryArchSuffix + devel:libKF6ConfigWidgets$secondaryArchSuffix + devel:libKF6CoreAddons$secondaryArchSuffix + devel:libKF6DBusAddons$secondaryArchSuffix + devel:libKF6DNSSD$secondaryArchSuffix + devel:libKF6DocTools$secondaryArchSuffix + devel:libKF6GuiAddons$secondaryArchSuffix + devel:libKF6I18n$secondaryArchSuffix + devel:libKF6IconThemes$secondaryArchSuffix + devel:libKF6ItemViews$secondaryArchSuffix + devel:libKF6JobWidgets$secondaryArchSuffix + devel:libKF6KCMUtils$secondaryArchSuffix + devel:libKF6KIOCore$secondaryArchSuffix + devel:libKF6Pty$secondaryArchSuffix + devel:libKF6Service$secondaryArchSuffix + devel:libKF6Solid$secondaryArchSuffix + devel:libKF6SyntaxHighlighting$secondaryArchSuffix + devel:libKF6TextWidgets$secondaryArchSuffix + devel:libKF6WidgetsAddons$secondaryArchSuffix + devel:libKF6WindowSystem$secondaryArchSuffix + devel:libKF6XmlGui$secondaryArchSuffix + # Qt6 + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Core5Compat$secondaryArchSuffix + devel:libQt6DBus$secondaryArchSuffix + devel:libQt6Gui$secondaryArchSuffix + devel:libQt6Network$secondaryArchSuffix + devel:libQt6Qml$secondaryArchSuffix + devel:libQt6Svg$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:find + cmd:gcc$secondaryArchSuffix + cmd:gperf + cmd:make + cmd:msgfmt + cmd:msgmerge + cmd:pkg_config$secondaryArchSuffix + cmd:update_mime_database$secondaryArchSuffix + " + +PATCH() +{ + sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt + sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt +} + +TEST_REQUIRES=" + qthaikuplugins$secondaryArchSuffix + " + +BUILD() +{ + mkdir -p build + cd build + + cmake .. $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release \ + -DKDE_INSTALL_PLUGINDIR=$addOnsDir/Qt6 \ + -DECM_DIR=/system/data/cmake/Modules/ECM/cmake \ + -DCMAKE_CXX_FLAGS="-fno-stack-protector" + + make $jobArgs +} + +INSTALL() +{ + cd build + make $jobArgs install + + rm -rf $dataDir/mime/{aliases,generic-icons,globs,globs2,icons,magic} + rm -rf $dataDir/mime/{mime.cache,subclasses,treemagic,types,version,XMLnamespaces} + rm -rf $dataDir/applications + + prepareInstalledDevelLib \ + libkioarchive6 \ + + packageEntries devel \ + $developDir \ + $libDir/cmake +} + +TEST() +{ + export LIBRARY_PATH="$sourceDir/build/bin${LIBRARY_PATH:+:$LIBRARY_PATH}" + cd build + make test +} diff --git a/kde-apps/kio-extras/patches/kio_extras-24.08.0.patchset b/kde-apps/kio-extras/patches/kio_extras-24.08.0.patchset new file mode 100644 index 000000000..0742acfeb --- /dev/null +++ b/kde-apps/kio-extras/patches/kio_extras-24.08.0.patchset @@ -0,0 +1,100 @@ +From 4de6d82451ba65987e32929a9083c88b3e3af2ed Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 11 May 2022 10:49:55 +1000 +Subject: Disable shm for haiku + + +diff --git a/thumbnail/thumbnail.cpp b/thumbnail/thumbnail.cpp +index 78b1e5b..c4fb28a 100644 +--- a/thumbnail/thumbnail.cpp ++++ b/thumbnail/thumbnail.cpp +@@ -17,7 +17,9 @@ + #include + #else + #include ++#ifndef Q_OS_HAIKU + #include ++#endif + #include // nice() + #endif + +@@ -297,7 +299,7 @@ KIO::WorkerResult ThumbnailProtocol::get(const QUrl &url) + // qDebug() << "IMAGE TO STREAM"; + stream << img; + } +-#ifndef Q_OS_WIN ++#if !defined(Q_OS_WIN) && !defined(Q_OS_HAIKU) + else { + // qDebug() << "IMAGE TO SHMID"; + void *shmaddr = shmat(shmid.toInt(), nullptr, 0); +-- +2.45.1 + + +From b1b397c94b985470a1bd0d69eaaaa6072478238c Mon Sep 17 00:00:00 2001 +From: Gerasim Troeglazov <3dEyes@gmail.com> +Date: Wed, 11 May 2022 10:50:23 +1000 +Subject: Disable smbclient notify + + +diff --git a/smb/kded/notifier.cpp b/smb/kded/notifier.cpp +index cb11a2d..fec7f03 100644 +--- a/smb/kded/notifier.cpp ++++ b/smb/kded/notifier.cpp +@@ -97,12 +97,14 @@ public: + if (m_url.isEmpty()) { + return; + } ++#ifndef Q_OS_HAIKU + if (action == SMBC_NOTIFY_ACTION_OLD_NAME && url == m_url) { + qCDebug(KIO_SMB_LOG) << "Discarding pending remove because it was followed by a move from the same url" << m_url; + resetWithLock(); + } else { + sendWithLock(); + } ++#endif + } + + private: +@@ -209,12 +211,14 @@ int main(int argc, char **argv) + Frontend frontend; + SMBContext smbcContext(new SMBAuthenticator(frontend)); + ++#ifndef Q_OS_HAIKU + struct NotifyContext { + const QUrl url; + // Modification happens a lot, rate limit the notifications going through dbus. + ModificationLimiter modificationLimiter; + PendingRemove pendingRemove; + }; ++ + NotifyContext context{QUrl(parser.positionalArguments().at(0)), {}, {}}; + + auto notify = [](const struct smbc_notify_callback_action *actions, size_t num_actions, void *private_data) -> int { +@@ -244,7 +248,6 @@ int main(int argc, char **argv) + } + + context->pendingRemove.newEventFor(actions->action, url); +- + switch (actions->action) { + case SMBC_NOTIFY_ACTION_ADDED: + OrgKdeKDirNotifyInterface::emitFilesAdded(context->url /* dir */); +@@ -295,7 +298,6 @@ int main(int argc, char **argv) + // Values @ 2.2.35 SMB2 CHANGE_NOTIFY Request + // https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/598f395a-e7a2-4cc8-afb3-ccb30dd2df7c + // Not subscribing to stream changes see the callback handler for details. +- + const int nh = smbc_notify(dh, + 0 /* not recursive */, + SMBC_NOTIFY_CHANGE_FILE_NAME | SMBC_NOTIFY_CHANGE_DIR_NAME | SMBC_NOTIFY_CHANGE_ATTRIBUTES | SMBC_NOTIFY_CHANGE_SIZE +@@ -309,6 +311,7 @@ int main(int argc, char **argv) + return 2; + } + Q_ASSERT(nh == 0); ++#endif + + return app.exec(); + } +-- +2.45.1 +