commit:     11af3f136acfd105ee6bde6ede126aebf5f9b0c8
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  5 18:40:46 2016 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Wed Oct  5 18:42:32 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11af3f13

kde5.eclass: add overlay-specific logic

While this overlay-specific logic is never expected to actually be used in the
main tree, it makes tracking and merging future updates from the overlay a lot
easier.

 eclass/kde5.eclass | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/eclass/kde5.eclass b/eclass/kde5.eclass
index d41e99d..45065af 100644
--- a/eclass/kde5.eclass
+++ b/eclass/kde5.eclass
@@ -31,7 +31,7 @@ if [[ -v KDE_GCC_MINIMAL ]]; then
        EXPORT_FUNCTIONS pkg_pretend
 fi
 
-EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile 
src_test src_install pkg_preinst pkg_postinst pkg_postrm
+EXPORT_FUNCTIONS pkg_setup pkg_nofetch src_unpack src_prepare src_configure 
src_compile src_test src_install pkg_preinst pkg_postinst pkg_postrm
 
 # @ECLASS-VARIABLE: QT_MINIMAL
 # @DESCRIPTION:
@@ -118,6 +118,14 @@ fi
 # add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND.
 : ${KDE_SELINUX_MODULE:=none}
 
+# @ECLASS-VARIABLE: KDE_UNRELEASED
+# @INTERNAL
+# @DESCRIPTION
+# An array of $CATEGORY-$PV pairs of packages that are unreleased upstream.
+# Any package matching this will have fetch restriction enabled, and receive
+# a proper error message via pkg_nofetch.
+KDE_UNRELEASED=( )
+
 if [[ ${KDEBASE} = kdevelop ]]; then
        HOMEPAGE="https://www.kdevelop.org/";
 elif [[ ${KDEBASE} = kdel10n ]]; then
@@ -241,6 +249,17 @@ if [[ -n ${KDEBASE} && ${KDEBASE} = kdevelop && 
${KDE_BUILD_TYPE} = release ]];
        fi
 fi
 
+_kde_is_unreleased() {
+       local pair
+       for pair in "${KDE_UNRELEASED[@]}" ; do
+               if [[ "${pair}" = "${CATEGORY}-${PV}" ]]; then
+                       return 0
+               fi
+       done
+
+       return 1
+}
+
 # Determine fetch location for released tarballs
 _calculate_src_uri() {
        debug-print-function ${FUNCNAME} "$@"
@@ -328,6 +347,10 @@ _calculate_src_uri() {
                        esac
                done
        fi
+
+       if _kde_is_unreleased ; then
+               RESTRICT+=" fetch"
+       fi
 }
 
 # Determine fetch location for live sources
@@ -395,6 +418,36 @@ kde5_pkg_setup() {
        _check_gcc_version
 }
 
+# @FUNCTION: kde5_pkg_nofetch
+# @DESCRIPTION:
+# Display package publication status
+kde5_pkg_nofetch() {
+       if ! _kde_is_unreleased ; then
+               return
+       fi
+
+       eerror " _   _ _   _ ____  _____ _     _____    _    ____  _____ ____  "
+       eerror "| | | | \ | |  _ \| ____| |   | ____|  / \  / ___|| ____|  _ \ "
+       eerror "| | | |  \| | |_) |  _| | |   |  _|   / _ \ \___ \|  _| | | | |"
+       eerror "| |_| | |\  |  _ <| |___| |___| |___ / ___ \ ___) | |___| |_| |"
+       eerror " \___/|_| \_|_| \_\_____|_____|_____/_/   \_\____/|_____|____/ "
+       eerror "                                                               "
+       eerror " ____   _    ____ _  __    _    ____ _____ "
+       eerror "|  _ \ / \  / ___| |/ /   / \  / ___| ____|"
+       eerror "| |_) / _ \| |   | ' /   / _ \| |  _|  _|  "
+       eerror "|  __/ ___ \ |___| . \  / ___ \ |_| | |___ "
+       eerror "|_| /_/   \_\____|_|\_\/_/   \_\____|_____|"
+       eerror
+       eerror "${CATEGORY}/${P} has not been released to the public yet"
+       eerror "and is only available to packagers right now."
+       eerror ""
+       eerror "This is not a bug. Please do not file bugs or contact upstream 
about this."
+       eerror ""
+       eerror "Please consult the upstream release schedule to see when this "
+       eerror "package is scheduled to be released:"
+       eerror "https://community.kde.org/Schedules";
+}
+
 # @FUNCTION: kde5_src_unpack
 # @DESCRIPTION:
 # Function for unpacking KDE 5.

Reply via email to