dolphin24, add KF6 version (#11116)

This commit is contained in:
Schrijvers Luc
2024-09-13 10:26:43 +02:00
committed by GitHub
parent 84c0c9aa16
commit 011098f4d6
2 changed files with 373 additions and 0 deletions

View File

@@ -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
}

View File

@@ -0,0 +1,139 @@
From 8bc9086dbf3d5e86c3081e3e9b692815df3e249e Mon Sep 17 00:00:00 2001
From: Schrijvers Luc <begasus@gmail.com>
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 <KDirNotify>
+#ifndef __HAIKU__
+ #include <KDirNotify>
+#endif
#include <KIO/StatJob>
#include <KJobWidgets>
#include <KLocalizedString>
@@ -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 <begasus@gmail.com>
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 <unistd.h>
#endif
+#ifdef Q_OS_HAIKU
+#include <QProcess>
+#include <QString>
+#include <QStringList>
+#endif
#include <iostream>
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 <begasus@gmail.com>
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