Files
haikuports/kde-frameworks/kio/kio6-6.25.0.recipe
2026-04-14 08:29:38 +00:00

184 lines
5.8 KiB
Bash

SUMMARY="Network transparent access to files and data"
DESCRIPTION="This framework implements almost all the file management functions you will ever \
need. In fact, the KDE file manager (Dolphin) and the KDE file dialog also uses this to provide \
its network-enabled file management.
It supports accessing files locally as well as via HTTP and FTP out of the box and can be \
extended by plugins to support other protocols as well.
There is a variety of plugins available, e.g. to support access via SSH.
The framework can also be used to bridge a native protocol to a file-based interface.
This makes the data accessible in all applications using the KDE file dialog or any other KIO \
enabled infrastructure."
HOMEPAGE="https://invent.kde.org/frameworks/kio"
COPYRIGHT="2010-2026 KDE Organisation"
LICENSE="GNU LGPL v2"
REVISION="1"
SOURCE_URI="https://download.kde.org/stable/frameworks/${portVersion%.*}/kio-${portVersion}.tar.xz"
CHECKSUM_SHA256="bf71b2227016df6566665cead6cb468726d7cc708059e812daee7ea54f405378"
SOURCE_DIR="kio-$portVersion"
PATCHES="kio6-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
kio6$secondaryArchSuffix = $portVersion
cmd:ktelnetservice6$secondaryArchSuffix = $portVersion
cmd:ktrash6$secondaryArchSuffix = $portVersion
lib:libKF6KIOCore$secondaryArchSuffix = $libVersionCompat
lib:libKF6KIOFileWidgets$secondaryArchSuffix = $libVersionCompat
lib:libKF6KIOGui$secondaryArchSuffix = $libVersionCompat
lib:libKF6KIOWidgets$secondaryArchSuffix = $libVersionCompat
lib:libkuriikwsfiltereng_private$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libKF6AuthCore$secondaryArchSuffix
lib:libKF6Bookmarks$secondaryArchSuffix
lib:libKF6ColorScheme$secondaryArchSuffix
lib:libKF6Completion$secondaryArchSuffix
lib:libKF6ConfigCore$secondaryArchSuffix
lib:libKF6CoreAddons$secondaryArchSuffix
lib:libKF6Crash$secondaryArchSuffix
lib:libKF6GuiAddons$secondaryArchSuffix
lib:libKF6I18n$secondaryArchSuffix
lib:libKF6IconThemes$secondaryArchSuffix
lib:libKF6ItemViews$secondaryArchSuffix
lib:libKF6JobWidgets$secondaryArchSuffix
lib:libKF6Service$secondaryArchSuffix
lib:libKF6Solid$secondaryArchSuffix
lib:libKF6WidgetsAddons$secondaryArchSuffix
lib:libKF6WindowSystem$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
"
PROVIDES_devel="
kio6${secondaryArchSuffix}_devel = $portVersion
devel:libKF6KIOCore$secondaryArchSuffix = $libVersionCompat
devel:libKF6KIOFileWidgets$secondaryArchSuffix = $libVersionCompat
devel:libKF6KIOGui$secondaryArchSuffix = $libVersionCompat
devel:libKF6KIOWidgets$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
kio6$secondaryArchSuffix == $portVersion base
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
"
ARCHITECTURES_doc="any"
PROVIDES_doc="
kio6_doc = $portVersion
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
extra_cmake_modules$secondaryArchSuffix
qt6_tools${secondaryArchSuffix}_devel
# devel:libacl$secondaryArchSuffix
devel:kded6$secondaryArchSuffix
devel:libKF6Archive$secondaryArchSuffix
devel:libKF6AuthCore$secondaryArchSuffix
devel:libKF6Bookmarks$secondaryArchSuffix
devel:libKF6ColorScheme$secondaryArchSuffix
devel:libKF6Completion$secondaryArchSuffix
devel:libKF6ConfigCore$secondaryArchSuffix
devel:libKF6CoreAddons$secondaryArchSuffix
devel:libKF6Crash$secondaryArchSuffix
devel:libKF6GuiAddons$secondaryArchSuffix
devel:libKF6I18n$secondaryArchSuffix
devel:libKF6IconThemes$secondaryArchSuffix
devel:libKF6ItemViews$secondaryArchSuffix
devel:libKF6JobWidgets$secondaryArchSuffix
devel:libKF6Service$secondaryArchSuffix
devel:libKF6Solid$secondaryArchSuffix
devel:libKF6WidgetsAddons$secondaryArchSuffix
devel:libKF6WindowSystem$secondaryArchSuffix
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Qml$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
devel:libxslt$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
BUILD_PREREQUIRES="
kde_qdoc_common
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:make
cmd:msgfmt$secondaryArchSuffix
cmd:msgmerge$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
"
TEST_REQUIRES="
qthaikuplugins$secondaryArchSuffix
"
PATCH()
{
# disable docs generation until libxml package is fixed
sed -e 's/add/#add/g' -i $sourceDir/docs/CMakeLists.txt
sed -e 's/kdoctools/#kdoctool/g' -i $sourceDir/CMakeLists.txt
}
BUILD()
{
export KDE_DOCS="`finddir B_SYSTEM_DATA_DIRECTORY`"/kde-qdoc-common
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
$cmakeDirArgs \
-DKAUTH_HELPER_INSTALL_DIR:PATH=$addOnsDir/Qt6/kauth/helper \
-DCMAKE_SKIP_RPATH=YES \
-DBUILD_TESTING=OFF \
-Wno-dev
make -C build $jobArgs
cmake --build build --target prepare_docs
cmake --build build --target generate_docs
cmake --build build --target generate_qch
}
INSTALL()
{
make -C build install
# cmake --build build --target install_html_docs
cmake --build build --target install_qch_docs
# cleanup
rm -rf $dataDir/applications
prepareInstalledDevelLibs \
libKF6KIOCore \
libKF6KIOFileWidgets \
libKF6KIOGui \
libKF6KIOWidgets
packageEntries devel \
$developDir \
$libDir/cmake
packageEntries doc \
$documentationDir
}
TEST()
{
# 48% tests passed, 32 tests failed out of 61
export LIBRARY_PATH="$sourceDir/build/bin${LIBRARY_PATH:+:$LIBRARY_PATH}"
ctest --test-dir build --output-on-failure
}