diff options
author | tcberner <tcberner@FreeBSD.org> | 2016-11-15 00:12:56 +0800 |
---|---|---|
committer | tcberner <tcberner@FreeBSD.org> | 2016-11-15 00:12:56 +0800 |
commit | 6c5965ba9ac4e94e995d4e16a6b052b416a4b6cf (patch) | |
tree | dbe08499461c3eea79dce8b1eca87e2699ef0d1c /Mk | |
parent | bf14630d264a9160dc837c514f487902a2f64259 (diff) | |
download | freebsd-ports-gnome-6c5965ba9ac4e94e995d4e16a6b052b416a4b6cf.tar.gz freebsd-ports-gnome-6c5965ba9ac4e94e995d4e16a6b052b416a4b6cf.tar.zst freebsd-ports-gnome-6c5965ba9ac4e94e995d4e16a6b052b416a4b6cf.zip |
Importing KDE Frameworks into the ports tree (required for newer KDE Desktop and Applications)
KDE Frameworks is a collection of libraries and software frameworks by KDE
that serve as technological foundation for KDE Plasma 5 and KDE Applications
distributed under the GNU Lesser General Public License (LGPL) [1].
The work is based on what we have in the KDE testing repo [2].
This is the next big step in updating the KDE Desktop and its Applications
to anything less dusty.
With this change, `USES=kde:5` is now a valid option. Ports that need to depend
on KDE Framework can now set:
USES=kde:5
USE_KDE=<framework1> <framework2> ... <frameworkX>
For example: www/qupzilla-qt5 can depend on sysutils/kf5-kwallet via:
KWALLET_USE= KDE=wallet
I would like to thank Raphael and Adriaan for reviewing the ports in the testing
repo :)
[1] https://en.wikipedia.org/wiki/KDE_Frameworks
[2] http://src.mouf.net/area51/log/branches/plasma5
Reviewed by: rakuco, mat, groot_kde.org
Approved by: rakuco (maintainer)
Differential Revision: https://reviews.freebsd.org/D8329
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Scripts/qa.sh | 28 | ||||
-rw-r--r-- | Mk/Uses/kde.mk | 300 |
2 files changed, 315 insertions, 13 deletions
diff --git a/Mk/Scripts/qa.sh b/Mk/Scripts/qa.sh index 3edd5c53e751..699c3e82d462 100644 --- a/Mk/Scripts/qa.sh +++ b/Mk/Scripts/qa.sh @@ -68,7 +68,7 @@ shebang() { local f l link rc rc=0 - + while read f; do # No results presents a blank line from heredoc. [ -z "${f}" ] && continue @@ -478,6 +478,32 @@ proxydeps_suggest_uses() { elif [ ${pkg} = "x11/qimageblitz" ]; then warn "you need to use USE_KDE+=qimageblitz" elif [ ${pkg} = "textproc/soprano" ]; then warn "you need to use USE_KDE+=soprano" elif [ ${pkg} = "deskutils/libstreamanalyzer" ]; then warn "you need to use USE_KDE+=strigi" + # KDE Frameworks + elif [ ${pkg} = "devel/kf5-extra-cmake-modules" ]; then warn "you need to use USE_KDE+=ecm" + elif [ ${pkg} = "devel/kf5-kcmutils" ]; then warn "you need to use USE_KDE+=kcmutils" + elif [ ${pkg} = "devel/kf5-kdeclarative" ]; then warn "you need to use USE_KDE+=kdeclarative" + elif [ ${pkg} = "devel/kf5-kfilemetadata" ]; then warn "you need to use USE_KDE+=filemetadata5" + elif [ ${pkg} = "devel/kf5-kio" ]; then warn "you need to use USE_KDE+=kio" + elif [ ${pkg} = "devel/kf5-solid" ]; then warn "you need to use USE_KDE+=solid" + elif [ ${pkg} = "devel/kf5-threadweaver" ]; then warn "you need to use USE_KDE+=threadweaver" + elif [ ${pkg} = "devel/kio-extras-kf5" ]; then warn "you need to use USE_KDE+=kio-extras" + elif [ ${pkg} = "graphics/kf5-kimageformats" ]; then warn "you need to use USE_KDE+=kimageformats" + elif [ ${pkg} = "lang/kf5-kross" ]; then warn "you need to use USE_KDE+=kross" + elif [ ${pkg} = "security/kf5-kdesu" ]; then warn "you need to use USE_KDE+=kdesu" + elif [ ${pkg} = "sysutils/kf5-baloo" ]; then warn "you need to use USE_KDE+=baloo5" + elif [ ${pkg} = "sysutils/kf5-bluez-qt" ]; then warn "you need to use USE_KDE+=bluez-qt" + elif [ ${pkg} = "textproc/kf5-sonnet" ]; then warn "you need to use USE_KDE+=sonnet" + elif [ ${pkg} = "www/kf5-kdewebkit" ]; then warn "you need to use USE_KDE+=kdewebkit" + elif [ ${pkg} = "www/kf5-khtml" ]; then warn "you need to use USE_KDE+=khtml" + elif [ ${pkg} = "x11-themes/kf5-breeze-icons" ]; then warn "you need to use USE_KDE+=breeze-icons" + elif [ ${pkg} = "x11-themes/kf5-oxygen-icons5" ]; then warn "you need to use USE_KDE+=oxygen-icons5" + elif [ ${pkg} = "x11-toolkits/kf5-attica" ]; then warn "you need to use USE_KDE+=attica5" + elif [ ${pkg} = "x11/kf5-frameworkintegration" ]; then warn "you need to use USE_KDE+=frameworkintegration" + elif [ ${pkg} = "x11/kf5-kded" ]; then warn "you need to use USE_KDE+=kded" + elif [ ${pkg} = "x11/kf5-kdelibs4support" ]; then warn "you need to use USE_KDE+=kdelibs4support" + elif [ ${pkg} = "x11/kf5-plasma-framework" ]; then warn "you need to use USE_KDE+=plasma-framework" + elif expr ${pkg} : '.*/kf5-.*' > /dev/null; then + warn "you need USE_KDE+=$(echo ${pkg} | sed -E 's|.*/kf5-k||')" # sdl-related elif [ ${pkg} = 'devel/sdl12' ]; then warn "you need USE_SDL+=sdl" diff --git a/Mk/Uses/kde.mk b/Mk/Uses/kde.mk index 0dbc952882da..973790104b3f 100644 --- a/Mk/Uses/kde.mk +++ b/Mk/Uses/kde.mk @@ -1,25 +1,26 @@ # $FreeBSD$ # -# Provides support for KDE-based ports. +# Provides support for KDE and KF5-based ports. # # Feature: kde -# Usage: USES=kde:ARGS -# Valid ARGS: 4 +# Valid ARGS: 4 5 # -# 4: Depend on KDE4 components and variables. +# 4: Depend on KDE4 components and variables. +# 5: Depend on KDE Frameworks 5 components and variables. # # Variables that can be set by a port: # -# USE_KDE List of KDE4 components (other ports) that this +# USE_KDE List of KDE4/KF5/Plasma5 components (other ports) that this # port depends on. # * foo_build Add a build-time dependency (BUILD_DEPENDS) # * foo_run Add a run-time dependency (RUN_DEPENDS) -# * foo (default) Add both dependencies on component <foo> -# +# * foo (default) Add both dependencies on component <foo>, or +# a LIB_DEPENDS if applicable. # # To simplify the ports, also: # CATEGORIES If the port is part of one of the KDE Software distribution, # it can add, in addition to 'kde' one of the following: +# kde-frameworks: part of frameworks release # kde-kde4: part of kde4 release # this will then set default values for MASTER_SITES and DIST_SUBDIR # as well as CPE_VENDOR and LICENSE. @@ -29,13 +30,12 @@ .if !defined(_INCLUDE_USES_KDE_MK) _INCLUDE_USES_KDE_MK= yes -_KDE_SUPPORTED= 4 +_KDE_SUPPORTED= 4 5 . if empty(kde_ARGS) IGNORE= kde needs a version (${_KDE_SUPPORTED}) . endif -# At the moment we support KDE versions 4. . for ver in ${_KDE_SUPPORTED:O:u} . if ${kde_ARGS:M${ver}} . if !defined(_KDE_VERSION) @@ -64,6 +64,10 @@ KDE4_APPLICATIONS_BRANCH?= Attic KDE4_APPLICATIONS_VERSION?= 15.04.3 KDE4_BRANCH?= stable +# Current KDE desktop. +KDE_FRAMEWORKS_VERSION?= 5.27.0 +KDE_FRAMEWORKS_BRANCH?= stable + # Extended KDE universe applications. CALLIGRA_VERSION?= 2.9.11 CALLIGRA_BRANCH?= stable @@ -75,14 +79,14 @@ KTP_VERSION?= 0.9.0 KTP_BRANCH?= stable # ============================================================================== -# === INSTALLATION PREFIX ====================================================== -# Define installation prefix. +# === INSTALLATION PREFIXES AND HEADER LOCATION ================================ +# Define unversioned prefix variable. KDE_PREFIX= ${LOCALBASE} # ============================================================================== # === CATEGORIES HANDLING -- SETTING DEFAULT VALUES ============================ # Doing MASTER_SITES magic based on the category of the port -_KDE_CATEGORIES_SUPPORTED= kde-kde4 +_KDE_CATEGORIES_SUPPORTED= kde-frameworks kde-kde4 . for cat in ${_KDE_CATEGORIES_SUPPORTED} . if ${CATEGORIES:M${cat}} . if !defined(_KDE_CATEGORY) @@ -106,10 +110,17 @@ CPE_VENDOR?= kde PORTVERSION?= ${KDE4_VERSION} MASTER_SITES?= KDE/${KDE4_BRANCH}/${KDE4_VERSION}/src DIST_SUBDIR?= KDE/${KDE4_VERSION} +. elif ${_KDE_CATEGORY:Mkde-frameworks} +PORTVERSION?= ${KDE_FRAMEWORKS_VERSION} +PKGNAMEPREFIX?= kf5- +MASTER_SITES?= KDE/${KDE_FRAMEWORKS_BRANCH}/frameworks/${KDE_FRAMEWORKS_VERSION:R} \ + KDE/${KDE_FRAMEWORKS_BRANCH}/frameworks/${KDE_FRAMEWORKS_VERSION:R}/portingAids +DIST_SUBDIR?= KDE/frameworks/${KDE_FRAMEWORKS_VERSION} . else IGNORE?= unknown CATEGORY value '${_KDE_CATEGORY}' #' . endif . endif #defined(_KDE_CATEGORY) + # ============================================================================== # ==== SETUP CMAKE ENVIRONMENT ================================================= @@ -118,6 +129,13 @@ CMAKE_ARGS+= -DCMAKE_PREFIX_PATH="${LOCALBASE}" . if ${_KDE_VERSION:M*4*} CMAKE_ARGS+= -DKDE4_BUILD_TESTS:BOOL=OFF +. elif ${_KDE_VERSION:M*5*} +# We set KDE_INSTALL_USE_QT_SYS_PATHS to install mkspecs files, plugins and +# imports to the Qt 5 install directory. +CMAKE_ARGS+= -DBUILD_TESTING:BOOL=OFF \ + -DCMAKE_MODULE_PATH="${LOCALBASE};${KDE_PREFIX}" \ + -DCMAKE_INSTALL_PREFIX="${KDE_PREFIX}" \ + -DKDE_INSTALL_USE_QT_SYS_PATHS:BOOL=TRUE . endif # Set man-page installation prefix. @@ -137,6 +155,8 @@ PLIST_SUB+= KDE4_VERSION="${KDE4_VERSION}" \ KDE4_NON_GENERIC_LIB_VERSION=${KDE4_KDELIBS_VERSION:S,^4,5,} \ KDE4_KDELIBS_VERSION=${KDE4_KDELIBS_VERSION} \ KDE4_NG_KDELIBS_VERSION=${KDE4_KDELIBS_VERSION:S,^4,5,} +. elif ${_KDE_VERSION:M*5*} +PLIST_SUB+= KDE_FRAMEWORKS_VERSION="${KDE_FRAMEWORKS_VERSION}" . endif # ============================================================================== @@ -164,6 +184,51 @@ _USE_KDE4_ALL= baloo baloo-widgets baseapps kactivities kate kdelibs \ _USE_KDE4_ALL+= akonadi attica automoc4 ontologies qimageblitz soprano \ strigi +# List of components of the KDE Frameworks distribution. +# The *_TIER<n> variables are internal, primarily for checking +# that our list of frameworks matches the structure offered upstream. +_USE_FRAMEWORKS_TIER1= apidox archive attica5 breeze-icons codecs config \ + coreaddons dbusaddons dnssd i18n idletime itemmodels \ + itemviews oxygen-icons5 plotting solid sonnet \ + threadweaver widgetsaddons windowsystem +# NOT LISTED TIER1: modemmanagerqt networkmanagerqt (not applicable) +# NOT LISTED TIER1: syntaxhighlighting (new in 5.28) +# NOT LISTED TIER1: wayland (needs graphics/wayland) + +_USE_FRAMEWORKS_TIER2= auth completion crash doctools filemetadata5 \ + kimageformats jobwidgets notifications package \ + pty unitconversion +# NOT LISTED TIER2: activities-stats (runtime requires x11/plasma5-kactivitymanagerd) + +_USE_FRAMEWORKS_TIER3= activities baloo5 bookmarks configwidgets \ + designerplugin emoticons globalaccel guiaddons \ + iconthemes init kcmutils kconfigwidgets kdeclarative \ + kded kdesu kdewebkit kio newstuff notifyconfig parts \ + people plasma-framework runner service texteditor \ + textwidgets wallet xmlgui xmlrpcclient + +_USE_FRAMEWORKS_TIER4= frameworkintegration + +# Porting Aids frameworks provide code and utilities to ease the transition from +# kdelibs 4 to KDE Frameworks 5. Code should aim to port away from this framework, +# new projects should avoid using these libraries. +_USE_FRAMEWORKS_PORTING=js jsembed kdelibs4support khtmlmediaplayer kross + +# These are weird items: not officially released as Frameworks, but +# required by them (and from KDE). +# - kirigami https://dot.kde.org/2016/03/30/kde-proudly-presents-kirigami-ui +_USE_FRAMEWORKS_EXTRA= kirigami + +_USE_FRAMEWORKS_ALL= ecm \ + ${_USE_FRAMEWORKS_TIER1} \ + ${_USE_FRAMEWORKS_TIER2} \ + ${_USE_FRAMEWORKS_TIER3} \ + ${_USE_FRAMEWORKS_TIER4} \ + ${_USE_FRAMEWORKS_PORTING} \ + ${_USE_FRAMEWORKS_EXTRA} + +_USE_KDE5_ALL= ${_USE_FRAMEWORKS_ALL} + # ====================== kde4 components ======================================= baloo_PORT= sysutils/baloo baloo_LIB= libbaloocore.so @@ -295,6 +360,217 @@ strigi_PORT= deskutils/libstreamanalyzer strigi_LIB= libstreamanalyzer.so.0 # ====================== end of kde4 components ================================ +# ====================== frameworks components ================================= +activities_PORT= x11/kf5-kactivities +activities_LIB= libKF5Activities.so + +apidox_PORT= devel/kf5-kapidox +apidox_PATH= ${KDE_PREFIX}/bin/kapidox_generate +apidox_TYPE= run + +archive_PORT= archivers/kf5-karchive +archive_LIB= libKF5Archive.so + +attica5_PORT= x11-toolkits/kf5-attica +attica5_LIB= libKF5Attica.so + +auth_PORT= devel/kf5-kauth +auth_LIB= libKF5Auth.so + +baloo5_PORT= sysutils/kf5-baloo +baloo5_LIB= libKF5Baloo.so + +bookmarks_PORT= devel/kf5-kbookmarks +bookmarks_LIB= libKF5Bookmarks.so + +breeze-icons_PORT= x11-themes/kf5-breeze-icons +breeze-icons_PATH= ${KDE_PREFIX}/share/icons/breeze/index.theme +breeze-icons_TYPE= run + +codecs_PORT= textproc/kf5-kcodecs +codecs_LIB= libKF5Codecs.so + +completion_PORT= x11-toolkits/kf5-kcompletion +completion_LIB= libKF5Completion.so + +config_PORT= devel/kf5-kconfig +config_LIB= libKF5ConfigCore.so + +configwidgets_PORT= x11-toolkits/kf5-kconfigwidgets +configwidgets_LIB= libKF5ConfigWidgets.so + +coreaddons_PORT= devel/kf5-kcoreaddons +coreaddons_LIB= libKF5CoreAddons.so + +crash_PORT= devel/kf5-kcrash +crash_LIB= libKF5Crash.so + +dbusaddons_PORT= devel/kf5-kdbusaddons +dbusaddons_LIB= libKF5DBusAddons.so + +designerplugin_PORT= x11-toolkits/kf5-kdesignerplugin +designerplugin_PATH= ${QT_PLUGINDIR}/designer/kf5widgets.so +designerplugin_TYPE= run + +dnssd_PORT= dns/kf5-kdnssd +dnssd_LIB= libKF5DNSSD.so + +doctools_PORT= devel/kf5-kdoctools +doctools_PATH= ${KDE_PREFIX}/bin/meinproc5 + +ecm_PORT= devel/kf5-extra-cmake-modules +ecm_PATH= ${LOCALBASE}/share/ECM/cmake/ECMConfig.cmake + +emoticons_PORT= x11-themes/kf5-kemoticons +emoticons_LIB= libKF5Emoticons.so + +filemetadata5_PORT= devel/kf5-kfilemetadata +filemetadata5_LIB= libKF5FileMetaData.so + +frameworkintegration_PORT= x11/kf5-frameworkintegration +frameworkintegration_LIB= libKF5Style.so + +globalaccel_PORT= x11/kf5-kglobalaccel +globalaccel_LIB= libKF5GlobalAccel.so + +guiaddons_PORT= x11-toolkits/kf5-kguiaddons +guiaddons_LIB= libKF5GuiAddons.so + +i18n_PORT= devel/kf5-ki18n +i18n_LIB= libKF5I18n.so + +iconthemes_PORT= x11-themes/kf5-kiconthemes +iconthemes_LIB= libKF5IconThemes.so + +idletime_PORT= devel/kf5-kidletime +idletime_LIB= libKF5IdleTime.so + +init_PORT= x11/kf5-kinit +init_PATH= ${KDE_PREFIX}/bin/kdeinit5 + +itemmodels_PORT= devel/kf5-kitemmodels +itemmodels_LIB= libKF5ItemModels.so + +itemviews_PORT= x11-toolkits/kf5-kitemviews +itemviews_LIB= libKF5ItemViews.so + +jobwidgets_PORT= x11-toolkits/kf5-kjobwidgets +jobwidgets_LIB= libKF5JobWidgets.so + +js_PORT= www/kf5-kjs +js_LIB= libKF5JS.so + +jsembed_PORT= www/kf5-kjsembed +jsembed_LIB= libKF5JsEmbed.so + +kcmutils_PORT= devel/kf5-kcmutils +kcmutils_LIB= libKF5KCMUtils.so + +kdeclarative_PORT= devel/kf5-kdeclarative +kdeclarative_LIB= libKF5Declarative.so + +kded_PORT= x11/kf5-kded +kded_LIB= libkdeinit5_kded5.so + +kdelibs4support_PORT= x11/kf5-kdelibs4support +kdelibs4support_LIB= libKF5KDELibs4Support.so + +kdesu_PORT= security/kf5-kdesu +kdesu_LIB= libKF5Su.so + +kdewebkit_PORT= www/kf5-kdewebkit +kdewebkit_LIB= libKF5WebKit.so + +khtml_PORT= www/kf5-khtml +khtml_LIB= libKF5KHtml.so + +kimageformats_PORT= graphics/kf5-kimageformats +kimageformats_PATH= ${QT_PLUGINDIR}/imageformats/kimg_xcf.so +kimageformats_TYPE= run + +kio_PORT= devel/kf5-kio +kio_LIB= libKF5KIOCore.so + +kirigami_PATH= ${QT_QMLDIR}/org/kde/kirigami/libkirigamiplugin.so +kirigami_PORT= x11-toolkits/kirigami + +kross_PORT= lang/kf5-kross +kross_LIB= libKF5KrossCore.so + +mediaplayer_PORT= multimedia/kf5-kmediaplayer +mediaplayer_LIB= libKF5MediaPlayer.so.5 + +newstuff_PORT= devel/kf5-knewstuff +newstuff_LIB= libKF5NewStuff.so + +notifications_PORT= devel/kf5-knotifications +notifications_LIB= libKF5Notifications.so + +notifyconfig_PORT= devel/kf5-knotifyconfig +notifyconfig_LIB= libKF5NotifyConfig.so + +oxygen-icons5_PORT= x11-themes/kf5-oxygen-icons5 +oxygen-icons5_PATH= ${KDE_PREFIX}/share/icons/oxygen/index.theme +oxygen-icons5_TYPE= run + +package_PORT= devel/kf5-kpackage +package_LIB= libKF5Package.so + +parts_PORT= devel/kf5-kparts +parts_LIB= libKF5Parts.so + +people_PORT= devel/kf5-kpeople +people_LIB= libKF5People.so + +plasma-framework_PORT= x11/kf5-plasma-framework +plasma-framework_LIB= libKF5Plasma.so + +plotting_PORT= graphics/kf5-kplotting +plotting_LIB= libKF5Plotting.so + +pty_PORT= devel/kf5-kpty +pty_LIB= libKF5Pty.so + +runner_PORT= x11/kf5-krunner +runner_LIB= libKF5Runner.so + +service_PORT= devel/kf5-kservice +service_PATH= ${KDE_PREFIX}/bin/kbuildsycoca5 + +solid_PORT= devel/kf5-solid +solid_LIB= libKF5Solid.so + +sonnet_PORT= textproc/kf5-sonnet +sonnet_LIB= libKF5SonnetCore.so + +texteditor_PORT= devel/kf5-ktexteditor +texteditor_LIB= libKF5TextEditor.so + +textwidgets_PORT= x11-toolkits/kf5-ktextwidgets +textwidgets_LIB= libKF5TextWidgets.so + +threadweaver_PORT= devel/kf5-threadweaver +threadweaver_LIB= libKF5ThreadWeaver.so + +unitconversion_PORT= devel/kf5-kunitconversion +unitconversion_LIB= libKF5UnitConversion.so + +wallet_PORT= sysutils/kf5-kwallet +wallet_LIB= libKF5Wallet.so + +widgetsaddons_PORT= x11-toolkits/kf5-kwidgetsaddons +widgetsaddons_LIB= libKF5WidgetsAddons.so + +windowsystem_PORT= x11/kf5-kwindowsystem +windowsystem_LIB= libKF5WindowSystem.so + +xmlgui_PORT= x11-toolkits/kf5-kxmlgui +xmlgui_LIB= libKF5XmlGui.so + +xmlrpcclient_PORT= net/kf5-kxmlrpcclient +xmlrpcclient_LIB= libKF5XmlRpcClient.so +# ====================== end of frameworks components ========================== + # end of component list ######################################################## _USE_KDE_ALL= ${_USE_${_KDE_RELNAME}_ALL} |