From 7854fd8292b917832820370db8eb918cf2c798c4 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Wed, 13 Feb 2019 13:00:36 +0300 Subject: [PATCH] Vala 0.43.90 added. --- dev-lang/vala/Manifest | 2 +- ...vala-0.43.6.ebuild => vala-0.43.90.ebuild} | 8 +- dev-libs/vala-common/Manifest | 2 +- ...43.6.ebuild => vala-common-0.43.90.ebuild} | 4 +- eclass/vala.eclass | 148 ++++++++++++++++++ 5 files changed, 156 insertions(+), 8 deletions(-) rename dev-lang/vala/{vala-0.43.6.ebuild => vala-0.43.90.ebuild} (80%) rename dev-libs/vala-common/{vala-common-0.43.6.ebuild => vala-common-0.43.90.ebuild} (91%) create mode 100644 eclass/vala.eclass diff --git a/dev-lang/vala/Manifest b/dev-lang/vala/Manifest index ebce0347..5fb0f7eb 100644 --- a/dev-lang/vala/Manifest +++ b/dev-lang/vala/Manifest @@ -1 +1 @@ -DIST vala-0.43.6.tar.xz 3316016 SHA256 ba2c77fa924c7de17c625af61ddc0cdbbfcf9a670740b5eda3dc0c78bffa61e0 SHA512 495dd01907911837439c423ab8698622f1b483b1781901f6e0bd1239c861a8f09a56876503a9e7553192a44683884f69acd6ac4481daf558680581843aa15d41 WHIRLPOOL 5f186a67d5ec5bbe6efc7b136b84d9e0b4a45c0a511aff195faeda05a274993a5f4920e4f36713dd3d04fd6e584ca031d61621c7357603f6a6f388cd079c2fb9 +DIST vala-0.43.90.tar.xz 3321328 SHA256 da35a2403aeab4227ae630c6d6ae5a8e2af7aae1868eb3394da8fda8db59cd84 SHA512 2824e82ba9a87f7ccba421bf71ab2d5651b5386ad57d126c8f20c59aa56da310793621ad1f1f790f8da2dcb8c8d30138a6e18328aabe7673b4d5df90bd9fed51 WHIRLPOOL 53463bcf97b41d6977e389e121766b640f1168fa68a1e5a9374c623116ff520789c1ac88a4e53a34763107dc54e307936df91a5f2e059152f0ffb31762ebda7b diff --git a/dev-lang/vala/vala-0.43.6.ebuild b/dev-lang/vala/vala-0.43.90.ebuild similarity index 80% rename from dev-lang/vala/vala-0.43.6.ebuild rename to dev-lang/vala/vala-0.43.90.ebuild index 7bc0a0c0..8c0026bd 100644 --- a/dev-lang/vala/vala-0.43.6.ebuild +++ b/dev-lang/vala/vala-0.43.90.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -7,11 +7,11 @@ inherit gnome2 DESCRIPTION="Compiler for the GObject type system" HOMEPAGE="https://wiki.gnome.org/Projects/Vala" -SRC_URI="https://download.gnome.org/sources/vala/0.40/vala-${PV}.tar.xz" +SRC_URI="https://download.gnome.org/sources/vala/0.43/vala-${PV}.tar.xz" LICENSE="LGPL-2.1" -SLOT="0.40" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux" +SLOT="0.44" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux" IUSE="test" RDEPEND=" diff --git a/dev-libs/vala-common/Manifest b/dev-libs/vala-common/Manifest index ebce0347..5fb0f7eb 100644 --- a/dev-libs/vala-common/Manifest +++ b/dev-libs/vala-common/Manifest @@ -1 +1 @@ -DIST vala-0.43.6.tar.xz 3316016 SHA256 ba2c77fa924c7de17c625af61ddc0cdbbfcf9a670740b5eda3dc0c78bffa61e0 SHA512 495dd01907911837439c423ab8698622f1b483b1781901f6e0bd1239c861a8f09a56876503a9e7553192a44683884f69acd6ac4481daf558680581843aa15d41 WHIRLPOOL 5f186a67d5ec5bbe6efc7b136b84d9e0b4a45c0a511aff195faeda05a274993a5f4920e4f36713dd3d04fd6e584ca031d61621c7357603f6a6f388cd079c2fb9 +DIST vala-0.43.90.tar.xz 3321328 SHA256 da35a2403aeab4227ae630c6d6ae5a8e2af7aae1868eb3394da8fda8db59cd84 SHA512 2824e82ba9a87f7ccba421bf71ab2d5651b5386ad57d126c8f20c59aa56da310793621ad1f1f790f8da2dcb8c8d30138a6e18328aabe7673b4d5df90bd9fed51 WHIRLPOOL 53463bcf97b41d6977e389e121766b640f1168fa68a1e5a9374c623116ff520789c1ac88a4e53a34763107dc54e307936df91a5f2e059152f0ffb31762ebda7b diff --git a/dev-libs/vala-common/vala-common-0.43.6.ebuild b/dev-libs/vala-common/vala-common-0.43.90.ebuild similarity index 91% rename from dev-libs/vala-common/vala-common-0.43.6.ebuild rename to dev-libs/vala-common/vala-common-0.43.90.ebuild index b9d8d421..36de7087 100644 --- a/dev-libs/vala-common/vala-common-0.43.6.ebuild +++ b/dev-libs/vala-common/vala-common-0.43.90.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -11,7 +11,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/Vala" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~x64-macos ~x64-solaris" IUSE="" # Previously ${PN} was part of dev-lang/vala diff --git a/eclass/vala.eclass b/eclass/vala.eclass new file mode 100644 index 00000000..b85478e3 --- /dev/null +++ b/eclass/vala.eclass @@ -0,0 +1,148 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: vala.eclass +# @MAINTAINER: +# gnome@gentoo.org +# @AUTHOR: +# Alexandre Rostovtsev +# @BLURB: Sets up the environment for using a specific version of vala. +# @DESCRIPTION: +# This eclass sets up commonly used environment variables for using a specific +# version of dev-lang/vala to configure and build a package. It is needed for +# packages whose build systems assume the existence of certain unversioned vala +# executables, pkgconfig files, etc., which Gentoo does not provide. +# +# This eclass provides one phase function: src_prepare. + +inherit eutils multilib + +case "${EAPI:-0}" in + 0) die "EAPI=0 is not supported" ;; + 1) ;; + *) EXPORT_FUNCTIONS src_prepare ;; +esac + +# @ECLASS-VARIABLE: VALA_MIN_API_VERSION +# @DESCRIPTION: +# Minimum vala API version (e.g. 0.32). +VALA_MIN_API_VERSION=${VALA_MIN_API_VERSION:-0.32} + +# @ECLASS-VARIABLE: VALA_MAX_API_VERSION +# @DESCRIPTION: +# Maximum vala API version (e.g. 0.44). +VALA_MAX_API_VERSION=${VALA_MAX_API_VERSION:-0.44} + +# @ECLASS-VARIABLE: VALA_USE_DEPEND +# @DEFAULT_UNSET +# @DESCRIPTION: +# USE dependencies that vala must be built with (e.g. vapigen). + +# @FUNCTION: vala_api_versions +# @DESCRIPTION: +# Outputs a list of vala API versions from VALA_MAX_API_VERSION down to +# VALA_MIN_API_VERSION. +vala_api_versions() { + [[ ${VALA_MIN_API_VERSION} =~ ^0\.[[:digit:]]+$ ]] || die "Invalid syntax of VALA_MIN_API_VERSION" + [[ ${VALA_MAX_API_VERSION} =~ ^0\.[[:digit:]]+$ ]] || die "Invalid syntax of VALA_MAX_API_VERSION" + + local minimal_supported_minor_version minor_version + + # Dependency atoms are not generated for Vala versions older than 0.${minimal_supported_minor_version}. + minimal_supported_minor_version="32" + + for ((minor_version = ${VALA_MAX_API_VERSION#*.}; minor_version >= ${VALA_MIN_API_VERSION#*.}; minor_version = minor_version - 2)); do + if ((minor_version >= minimal_supported_minor_version)); then + echo "0.${minor_version}" + fi + done +} + +# @FUNCTION: vala_depend +# @DESCRIPTION: +# Outputs a ||-dependency string on vala from VALA_MAX_API_VERSION down to +# VALA_MIN_API_VERSION +vala_depend() { + local u v versions=$(vala_api_versions) + [[ ${VALA_USE_DEPEND} ]] && u="[${VALA_USE_DEPEND}(+)]" + + echo -n "|| (" + for v in ${versions}; do + echo -n " dev-lang/vala:${v}${u}" + done + echo " )" +} + +# @FUNCTION: vala_best_api_version +# @DESCRIPTION: +# Returns the highest installed vala API version satisfying +# VALA_MAX_API_VERSION, VALA_MIN_API_VERSION, and VALA_USE_DEPEND. +vala_best_api_version() { + local u v + [[ ${VALA_USE_DEPEND} ]] && u="[${VALA_USE_DEPEND}(+)]" + for v in $(vala_api_versions); do + has_version "dev-lang/vala:${v}${u}" && echo "${v}" && return + done +} + +# @FUNCTION: vala_src_prepare +# @USAGE: [--ignore-use] [--vala-api-version api_version] +# @DESCRIPTION: +# Sets up the environment variables and pkgconfig files for the +# specified API version, or, if no version is specified, for the +# highest installed vala API version satisfying +# VALA_MAX_API_VERSION, VALA_MIN_API_VERSION, and VALA_USE_DEPEND. +# Is a no-op if called without --ignore-use when USE=-vala. +# Dies if the USE check is passed (or ignored) and a suitable vala +# version is not available. +vala_src_prepare() { + local p d valafoo version ignore_use + + while [[ $1 ]]; do + case $1 in + "--ignore-use" ) + ignore_use=1 ;; + "--vala-api-version" ) + shift + version=$1 + [[ ${version} ]] || die "'--vala-api-version' option requires API version parameter." + esac + shift + done + + if [[ -z ${ignore_use} ]]; then + in_iuse vala && ! use vala && return 0 + fi + + if [[ ${version} ]]; then + has_version "dev-lang/vala:${version}" || die "No installed vala:${version}" + else + version=$(vala_best_api_version) + [[ ${version} ]] || die "No installed vala in $(vala_depend)" + fi + + export VALAC=$(type -P valac-${version}) + + valafoo=$(type -P vala-gen-introspect-${version}) + [[ ${valafoo} ]] && export VALA_GEN_INTROSPECT="${valafoo}" + + valafoo=$(type -P vapigen-${version}) + [[ ${valafoo} ]] && export VAPIGEN="${valafoo}" + + valafoo="${EPREFIX}/usr/share/vala/Makefile.vapigen" + [[ -e ${valafoo} ]] && export VAPIGEN_MAKEFILE="${valafoo}" + + export VAPIGEN_VAPIDIR="${EPREFIX}/usr/share/vala/vapi" + + mkdir -p "${T}/pkgconfig" || die "mkdir failed" + for p in libvala vapigen; do + for d in "${EPREFIX}/usr/$(get_libdir)/pkgconfig" "${EPREFIX}/usr/share/pkgconfig"; do + if [[ -e ${d}/${p}-${version}.pc ]]; then + ln -s "${d}/${p}-${version}.pc" "${T}/pkgconfig/${p}.pc" || die "ln failed" + break + fi + done + done + : ${PKG_CONFIG_PATH:="${EPREFIX}/usr/$(get_libdir)/pkgconfig:${EPREFIX}/usr/share/pkgconfig"} + export PKG_CONFIG_PATH="${T}/pkgconfig:${PKG_CONFIG_PATH}" +}