diff --git a/kde-apps/dolphin/dolphin24-24.08.0.recipe b/kde-apps/dolphin/dolphin24-24.08.0.recipe new file mode 100644 index 000000000..ba3795a8c --- /dev/null +++ b/kde-apps/dolphin/dolphin24-24.08.0.recipe @@ -0,0 +1,234 @@ +SUMMARY="KDE File Manager" +DESCRIPTION="Dolphin is a lightweight file manager. It has been designed with ease of \ +use and simplicity in mind, while still allowing flexibility and customisation. This m\ +eans that you can do your file management exactly the way you want to do it. + +* Simple to use and dedicated file manager +* Focus on usability +* Breadcrumb navigation bar +* Optional panels for convenient navigation and information display +* Remote and pseudo-filesystem file management through KIO +* Tag files and folders, and find files by content, using Baloo + +At first look, this is a simple file manager, but it has many talents. Some features include: + +* Split windows - view and use two directories at the same time +* Viewing attributes can be set (and remembered) independently for each window +* Tabbed browsing +* Use the optional informational panel on the right +* Or elect to have essential attribute information displayed in the window +* Use 'breadcrumb' navigation for speed +* One-click change to editable navigation bar +* Add Folders panel for traditional navigation +* Add a terminal in the directory you are currently browsing +* Many functions controlled by keyboard shortcuts" +HOMEPAGE="https://userbase.kde.org/Dolphin" +COPYRIGHT="2000-2023 KDE" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/dolphin-$portVersion.tar.xz" +CHECKSUM_SHA256="4a9d52dcd6513d2193c0c34944b270b399150f1da4ff37da06a0f8af87f6d8d7" +SOURCE_DIR="dolphin-$portVersion" +PATCHES="dolphin24-$portVersion.patchset" +ADDITIONAL_FILES="dolphin.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +commandSuffix=$secondaryArchSuffix +commandBinDir=$binDir +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +libVersion="$portVersion" +libVersionCompat="$libVersion compat >= ${libVersion%%.*}" + +PROVIDES=" + dolphin24$secondaryArchSuffix = $portVersion + app:Dolphin$secondaryArchSuffix = $portVersion + cmd:dolphin$commandSuffix = $portVersion + cmd:servicemenuinstaller$commandSuffix = $portVersion + lib:libdolphinprivate$secondaryArchSuffix = $libVersionCompat + lib:libdolphinvcs$secondaryArchSuffix = $libVersionCompat + " +REQUIRES=" + haiku$secondaryArchSuffix + cmd:dbus_launch$secondaryArchSuffix + lib:libKF6BalooWidgets$secondaryArchSuffix + lib:libphonon4Qt6$secondaryArchSuffix + lib:libphonon4Qt6experimental$secondaryArchSuffix + lib:libz$secondaryArchSuffix + # KF6 + lib:libGL$secondaryArchSuffix + lib:libKF6Archive$secondaryArchSuffix + lib:libKF6Attica$secondaryArchSuffix + lib:libKF6AuthCore$secondaryArchSuffix + lib:libKF6Baloo$secondaryArchSuffix + lib:libKF6Bookmarks$secondaryArchSuffix + lib:libKF6Codecs$secondaryArchSuffix + lib:libKF6ColorScheme$secondaryArchSuffix + lib:libKF6Completion$secondaryArchSuffix + lib:libKF6ConfigCore$secondaryArchSuffix + lib:libKF6ConfigWidgets$secondaryArchSuffix + lib:libKF6CoreAddons$secondaryArchSuffix + lib:libKF6Crash$secondaryArchSuffix + lib:libKF6DBusAddons$secondaryArchSuffix + lib:libKF6DocTools$secondaryArchSuffix + lib:libKF6FileMetadata$secondaryArchSuffix + lib:libKF6GuiAddons$secondaryArchSuffix + lib:libKF6I18n$secondaryArchSuffix + lib:libKF6IconThemes$secondaryArchSuffix + lib:libKF6ItemViews$secondaryArchSuffix + lib:libKF6JobWidgets$secondaryArchSuffix + lib:libKF6KCMUtils$secondaryArchSuffix + lib:libKF6KIOCore$secondaryArchSuffix + lib:libKF6NewStuffCore$secondaryArchSuffix + lib:libKF6NewStuffCore$secondaryArchSuffix + lib:libKF6Notifications$secondaryArchSuffix + lib:libKF6Package$secondaryArchSuffix + lib:libKF6Parts$secondaryArchSuffix + lib:libKF6Service$secondaryArchSuffix + lib:libKF6Solid$secondaryArchSuffix + lib:libKF6SonnetCore$secondaryArchSuffix + lib:libKF6TextWidgets$secondaryArchSuffix + lib:libKF6UserFeedbackCore$secondaryArchSuffix + lib:libKF6Wallet$secondaryArchSuffix + lib:libKF6WidgetsAddons$secondaryArchSuffix + lib:libKF6WindowSystem$secondaryArchSuffix + lib:libKF6XmlGui$secondaryArchSuffix + lib:libPlasmaActivities$secondaryArchSuffix + # Qt6 + lib:libQt6Core$secondaryArchSuffix + lib:libQt6Gui$secondaryArchSuffix + lib:libQt6PrintSupport$secondaryArchSuffix + lib:libQt6Qml$secondaryArchSuffix + lib:libQt6Widgets$secondaryArchSuffix + " +CONFLICTS=" + dolphin$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libKF6BalooWidgets$secondaryArchSuffix + devel:libPlasmaActivities$secondaryArchSuffix + devel:libphonon4Qt6$secondaryArchSuffix + devel:libz$secondaryArchSuffix + # KF6 + extra_cmake_modules$secondaryArchSuffix + devel:libKF6Archive$secondaryArchSuffix + devel:libKF6Attica$secondaryArchSuffix + devel:libKF6AuthCore$secondaryArchSuffix + devel:libKF6Baloo$secondaryArchSuffix + devel:libKF6Bookmarks$secondaryArchSuffix + devel:libKF6Codecs$secondaryArchSuffix + devel:libKF6ColorScheme$secondaryArchSuffix + devel:libKF6Completion$secondaryArchSuffix + devel:libKF6ConfigCore$secondaryArchSuffix + devel:libKF6ConfigWidgets$secondaryArchSuffix + devel:libKF6CoreAddons$secondaryArchSuffix + devel:libKF6Crash$secondaryArchSuffix + devel:libKF6DBusAddons$secondaryArchSuffix +# devel:libKF6DocTools$secondaryArchSuffix + devel:libKF6FileMetadata$secondaryArchSuffix + devel:libKF6GuiAddons$secondaryArchSuffix + devel:libKF6I18n$secondaryArchSuffix + devel:libKF6IconThemes$secondaryArchSuffix + devel:libKF6ItemViews$secondaryArchSuffix + devel:libKF6JobWidgets$secondaryArchSuffix + devel:libKF6KCMUtils$secondaryArchSuffix + devel:libKF6KIOCore$secondaryArchSuffix + devel:libKF6NewStuffCore$secondaryArchSuffix + devel:libKF6Notifications$secondaryArchSuffix + devel:libKF6Package$secondaryArchSuffix + devel:libKF6Parts$secondaryArchSuffix + devel:libKF6Service$secondaryArchSuffix + devel:libKF6Solid$secondaryArchSuffix + devel:libKF6SonnetCore$secondaryArchSuffix + devel:libKF6TextWidgets$secondaryArchSuffix + devel:libKF6UserFeedbackCore$secondaryArchSuffix + devel:libKF6Wallet$secondaryArchSuffix + devel:libKF6WidgetsAddons$secondaryArchSuffix + devel:libKF6WindowSystem$secondaryArchSuffix + devel:libKF6XmlGui$secondaryArchSuffix + # Qt6 + devel:libQt6Core$secondaryArchSuffix + devel:libQt6Gui$secondaryArchSuffix + devel:libQt6PrintSupport$secondaryArchSuffix + devel:libQt6Qml$secondaryArchSuffix + devel:libQt6Widgets$secondaryArchSuffix + " + +PROVIDES_devel=" + dolphin24${secondaryArchSuffix}_devel = $portVersion + devel:libdolphinprivate$secondaryArchSuffix = $libVersionCompat + devel:libdolphinvcs$secondaryArchSuffix = $libVersionCompat + " +REQUIRES_devel=" + dolphin24$secondaryArchSuffix == $portVersion base + " + +BUILD_PREREQUIRES=" + cmd:cmake + cmd:g++$secondaryArchSuffix + cmd:make + cmd:msgfmt + cmd:msgmerge + " + + +PATCH() +{ + # disable docs + sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt + sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt +} + +BUILD() +{ + cmake -Bbuild -S. $cmakeDirArgs \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_BINDIR=$commandBinDir \ + -DKDE_INSTALL_DATAROOTDIR=$dataDir \ + -DKDE_INSTALL_PLUGINDIR=$addOnsDir/Qt6 \ + -DECM_DIR="/system/data/cmake/Modules/ECM/cmake" \ + -DHAVE_PACKAGEKIT=FALSE -Wno-dev + make -Cbuild $jobArgs +} + +INSTALL() +{ + make -Cbuild install + + # cleanup + rm -rf $libDir/systemd + rm -rf $dataDir/{applications,icons,metainfo} + + mkdir -p "$dataDir/deskbar/menu/Applications/KDE" + + local APP_SIGNATURE="application/x-vnd.kde-dolphin" + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + local LONG_INFO="$SUMMARY" + sed \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + $portDir/additional-files/dolphin.rdef.in > dolphin.rdef + + addResourcesToBinaries dolphin.rdef $commandBinDir/dolphin + addAppDeskbarSymlink $commandBinDir/dolphin "KDE/Dolphin" + + prepareInstalledDevelLibs \ + libdolphinprivate \ + libdolphinvcs + + packageEntries devel \ + $libDir/cmake \ + $developDir +} diff --git a/kde-apps/dolphin/patches/dolphin24-24.08.0.patchset b/kde-apps/dolphin/patches/dolphin24-24.08.0.patchset new file mode 100644 index 000000000..0da84e0f2 --- /dev/null +++ b/kde-apps/dolphin/patches/dolphin24-24.08.0.patchset @@ -0,0 +1,139 @@ +From 8bc9086dbf3d5e86c3081e3e9b692815df3e249e Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Tue, 16 Jul 2024 17:19:06 +0200 +Subject: Build fix + + +diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp +index 02fe3e3..63303a2 100644 +--- a/src/panels/information/informationpanel.cpp ++++ b/src/panels/information/informationpanel.cpp +@@ -8,7 +8,9 @@ + + #include "informationpanelcontent.h" + +-#include ++#ifndef __HAIKU__ ++ #include ++#endif + #include + #include + #include +@@ -406,6 +408,7 @@ void InformationPanel::init() + Q_ASSERT(m_urlChangedTimer->interval() < m_infoTimer->interval()); + Q_ASSERT(m_urlChangedTimer->interval() < m_resetUrlTimer->interval()); + ++#ifndef __HAIKU__ + org::kde::KDirNotify *dirNotify = new org::kde::KDirNotify(QString(), QString(), QDBusConnection::sessionBus(), this); + connect(dirNotify, &OrgKdeKDirNotifyInterface::FileRenamed, this, &InformationPanel::slotFileRenamed); + connect(dirNotify, &OrgKdeKDirNotifyInterface::FilesAdded, this, &InformationPanel::slotFilesAdded); +@@ -413,6 +416,7 @@ void InformationPanel::init() + connect(dirNotify, &OrgKdeKDirNotifyInterface::FilesRemoved, this, &InformationPanel::slotFilesRemoved); + connect(dirNotify, &OrgKdeKDirNotifyInterface::enteredDirectory, this, &InformationPanel::slotEnteredDirectory); + connect(dirNotify, &OrgKdeKDirNotifyInterface::leftDirectory, this, &InformationPanel::slotLeftDirectory); ++#endif + + m_content = new InformationPanelContent(this); + connect(m_content, &InformationPanelContent::urlActivated, this, &InformationPanel::urlActivated); +-- +2.45.2 + + +From 7ec9ca6e8c8b4d6ac3e728c3c4ba5691999bb0ab Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Sun, 25 Aug 2024 18:38:57 +0200 +Subject: Fix for Haiku + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 29eef57..eb62a0c 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -594,7 +594,7 @@ endif() + + if(NOT WIN32) + add_subdirectory(settings/contextmenu/servicemenuinstaller) +- install( FILES settings/contextmenu/servicemenu.knsrc DESTINATION ${KDE_INSTALL_KNSRCDIR} ) ++ install( FILES settings/contextmenu/servicemenu.knsrc DESTINATION ${KDE_INSTALL_DATADIR}/knsrcfiles ) + endif() + + ########### install files ############### +diff --git a/src/main.cpp b/src/main.cpp +index 703161b..36d1453 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -45,6 +45,11 @@ + #ifndef Q_OS_WIN + #include + #endif ++#ifdef Q_OS_HAIKU ++#include ++#include ++#include ++#endif + #include + + constexpr auto dolphinTranslationDomain{"dolphin"}; +@@ -220,6 +225,21 @@ int main(int argc, char **argv) + + mainWindow->show(); + ++#ifdef Q_OS_HAIKU ++ if (getenv("DBUS_SESSION_BUS_PID") == NULL) { ++ QProcess dbusProcess; ++ QString exec = "/bin/dbus-launch"; ++ QStringList params; ++ dbusProcess.start(exec, params); ++ dbusProcess.waitForFinished(); ++ QString output(dbusProcess.readAllStandardOutput()); ++ ++ QStringList list = output.split("\n", Qt::SkipEmptyParts); ++ for (int i = 0; i < list.count(); i++) ++ putenv(list.at(i).toLatin1().data()); ++ } ++#endif ++ + // Allow starting Dolphin on a system that is not running DBus: + KDBusService::StartupOptions serviceOptions = KDBusService::Multiple; + if (!QDBusConnection::sessionBus().isConnected()) { +@@ -270,5 +290,12 @@ int main(int argc, char **argv) + Q_UNUSED(feedbackProvider) + #endif + ++#ifdef Q_OS_HAIKU ++ int status=app.exec(); ++// kwalletProcess.kill(); ++ system("kill -3 $DBUS_SESSION_BUS_PID"); ++ return status; ++#else + return app.exec(); // krazy:exclude=crash; ++#endif + } +-- +2.45.2 + + +From 5c6bcd7a081714e0baf5b718f76c2a63849c075d Mon Sep 17 00:00:00 2001 +From: Schrijvers Luc +Date: Sat, 7 Sep 2024 08:00:04 +0200 +Subject: Disable KICONTHEMES_VERSION, use Haiku icon theme + + +diff --git a/src/main.cpp b/src/main.cpp +index 36d1453..1974230 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -74,8 +74,10 @@ int main(int argc, char **argv) + /** + * trigger initialisation of proper icon theme + */ ++#if !defined(Q_OS_HAIKU) + #if KICONTHEMES_VERSION >= QT_VERSION_CHECK(6, 3, 0) + KIconTheme::initTheme(); ++#endif + #endif + + QApplication app(argc, argv); +-- +2.45.2 +