bump(eclass): sync with upstream

This commit is contained in:
Nick Owens 2016-03-28 10:33:51 -07:00
parent 6a23c3ba1e
commit eb567e5897
15 changed files with 549 additions and 103 deletions

View File

@ -70,11 +70,14 @@ MyP="${MyPN}-${MyPV}"
DOCS="${DOCS} doc/README.md doc/release-notes.md"
OPENSSL_DEPEND="dev-libs/openssl:0[-bindist]"
WALLET_DEPEND="sys-libs/db:$(db_ver_to_slot "${DB_VER}")[cxx]"
LIBEVENT_DEPEND=""
UNIVALUE_DEPEND=""
BITCOINCORE_LJR_NAME=ljr
[ -n "${BITCOINCORE_LJR_PV}" ] || BITCOINCORE_LJR_PV="${PV}"
case "${PV}" in
0.10*)
BITCOINCORE_SERIES="0.10.x"
BITCOINCORE_MINOR=10
LIBSECP256K1_DEPEND="=dev-libs/libsecp256k1-0.0.0_pre20141212"
case "${PVR}" in
0.10.2)
@ -89,7 +92,7 @@ case "${PV}" in
BITCOINCORE_XT_DIFF="047a89831760ff124740fe9f58411d57ee087078...d4084b62c42c38bfe302d712b98909ab26ecce2f"
;;
0.11*)
BITCOINCORE_SERIES="0.11.x"
BITCOINCORE_MINOR=11
LIBSECP256K1_DEPEND="=dev-libs/libsecp256k1-0.0.0_pre20150423"
# RBF is bundled with ljr patchset since 0.11.1
if [ "${PVR}" = "0.11.0" ]; then
@ -97,21 +100,55 @@ case "${PV}" in
BITCOINCORE_RBF_PATCHFILE="${MyPN}-rbf-v0.11.0rc3.patch"
fi
;;
0.12*)
BITCOINCORE_MINOR=12
IUSE="${IUSE} libressl"
OPENSSL_DEPEND="!libressl? ( dev-libs/openssl:0[-bindist] ) libressl? ( dev-libs/libressl )"
if in_bcc_iuse libevent; then
LIBEVENT_DEPEND="libevent? ( dev-libs/libevent )"
else
LIBEVENT_DEPEND="dev-libs/libevent"
fi
LIBSECP256K1_DEPEND="=dev-libs/libsecp256k1-0.0.0_pre20151118[recovery]"
UNIVALUE_DEPEND="dev-libs/univalue"
BITCOINCORE_LJR_NAME=knots
if in_bcc_policy spamfilter; then
REQUIRED_USE="${REQUIRED_USE} bitcoin_policy_spamfilter? ( ljr )"
fi
;;
9999*)
BITCOINCORE_MINOR=9999
BITCOINCORE_SERIES="9999"
LIBEVENT_DEPEND="dev-libs/libevent"
LIBSECP256K1_DEPEND=">dev-libs/libsecp256k1-0.0.0_pre20150422"
UNIVALUE_DEPEND="dev-libs/univalue"
;;
*)
die "Unrecognised version"
;;
esac
LJR_PV() { echo "${BITCOINCORE_LJR_PV}.${1}${BITCOINCORE_LJR_DATE}"; }
[ -n "${BITCOINCORE_SERIES}" ] || BITCOINCORE_SERIES="0.${BITCOINCORE_MINOR}.x"
LJR_PV() {
local testsfx=
if [ -n "${BITCOINCORE_LJR_PREV}" ]; then
if [ "$1" = "dir" ]; then
testsfx="/test/${BITCOINCORE_LJR_PREV}"
else
testsfx=".${BITCOINCORE_LJR_PREV}"
fi
fi
echo "${BITCOINCORE_LJR_PV}.${BITCOINCORE_LJR_NAME}${BITCOINCORE_LJR_DATE}${testsfx}"
}
LJR_PATCHDIR="${MyPN}-$(LJR_PV ljr).patches"
LJR_PATCH() { echo "${WORKDIR}/${LJR_PATCHDIR}/${MyPN}-$(LJR_PV ljr).$@.patch"; }
LJR_PATCH_DESC="http://luke.dashjr.org/programs/${MyPN}/files/${MyPN}d/luke-jr/${BITCOINCORE_SERIES}/$(LJR_PV ljr)/${MyPN}-$(LJR_PV ljr).desc.txt"
if [ "$BITCOINCORE_MINOR" -ge 12 ]; then
LJR_PATCH_DESC="http://bitcoinknots.org/files/${BITCOINCORE_SERIES}/$(LJR_PV dir)/${MyPN}-$(LJR_PV).desc.html"
fi
HOMEPAGE="https://github.com/bitcoin/bitcoin"
HOMEPAGE="http://bitcoincore.org/"
if [ -z "$BITCOINCORE_COMMITHASH" ]; then
EGIT_PROJECT='bitcoin'
@ -119,7 +156,10 @@ if [ -z "$BITCOINCORE_COMMITHASH" ]; then
else
SRC_URI="https://github.com/${MyPN}/${MyPN}/archive/${BITCOINCORE_COMMITHASH}.tar.gz -> ${MyPN}-v${PV}${BITCOINCORE_SRC_SUFFIX}.tgz"
if [ -z "${BITCOINCORE_NO_SYSLIBS}" ]; then
SRC_URI="${SRC_URI} http://luke.dashjr.org/programs/${MyPN}/files/${MyPN}d/luke-jr/${BITCOINCORE_SERIES}/$(LJR_PV ljr)/${LJR_PATCHDIR}.txz -> ${LJR_PATCHDIR}.tar.xz"
SRC_URI="${SRC_URI} http://bitcoinknots.org/files/${BITCOINCORE_SERIES}/$(LJR_PV dir)/${LJR_PATCHDIR}.txz -> ${LJR_PATCHDIR}.tar.xz"
fi
if in_bcc_iuse addrindex; then
SRC_URI="${SRC_URI} addrindex? ( https://github.com/btcdrak/bitcoin/compare/${BITCOINCORE_ADDRINDEX_DIFF}.diff -> ${BITCOINCORE_ADDRINDEX_PATCHFILE} )"
fi
if in_bcc_iuse xt; then
BITCOINXT_PATCHFILE="${MyPN}xt-v${PV}.patch"
@ -152,11 +192,17 @@ fi
BITCOINCORE_COMMON_DEPEND="
${OPENSSL_DEPEND}
"
if ! has libevent ${BITCOINCORE_NO_DEPEND}; then
BITCOINCORE_COMMON_DEPEND="${BITCOINCORE_COMMON_DEPEND} ${LIBEVENT_DEPEND}"
fi
if [ "${BITCOINCORE_NEED_LIBSECP256K1}" = "1" ]; then
BITCOINCORE_COMMON_DEPEND="${BITCOINCORE_COMMON_DEPEND} $LIBSECP256K1_DEPEND"
fi
if [ "${PN}" != "libbitcoinconsensus" ]; then
BITCOINCORE_COMMON_DEPEND="${BITCOINCORE_COMMON_DEPEND} >=dev-libs/boost-1.52.0[threads(+)]"
if [ "${PN}" != "libbitcoinconsensus" ] && ! use_if_iuse test; then
BITCOINCORE_COMMON_DEPEND="${BITCOINCORE_COMMON_DEPEND}
${UNIVALUE_DEPEND}
>=dev-libs/boost-1.52.0[threads(+)]
"
fi
bitcoincore_common_depend_use() {
in_bcc_iuse "$1" || return
@ -173,8 +219,12 @@ DEPEND="${DEPEND} ${BITCOINCORE_COMMON_DEPEND}
if [ "${BITCOINCORE_NEED_LEVELDB}" = "1" ]; then
RDEPEND="${RDEPEND} virtual/bitcoin-leveldb"
fi
if in_bcc_iuse ljr && [ "$BITCOINCORE_SERIES" = "0.10.x" ]; then
DEPEND="${DEPEND} ljr? ( dev-vcs/git )"
if in_bcc_iuse ljr; then
if [ "$BITCOINCORE_SERIES" = "0.10.x" ]; then
DEPEND="${DEPEND} ljr? ( dev-vcs/git )"
elif [ "${BITCOINCORE_LJR_NAME}" = "knots" ]; then
DEPEND="${DEPEND} ljr? ( dev-lang/perl )"
fi
fi
bitcoincore_policymsg() {
@ -190,9 +240,12 @@ bitcoincore_policymsg() {
bitcoincore_pkg_pretend() {
bitcoincore_policymsg_flag=false
if use_if_iuse ljr || use_if_iuse 1stclassmsg || use_if_iuse xt || use_if_iuse zeromq; then
if use_if_iuse ljr || use_if_iuse 1stclassmsg || use_if_iuse addrindex || use_if_iuse xt || { use_if_iuse zeromq && [ "${BITCOINCORE_MINOR}" -lt 12 ]; }; then
einfo "Extra functionality improvements to Bitcoin Core are enabled."
bitcoincore_policymsg_flag=true
if use_if_iuse addrindex addrindex; then
einfo "Please be aware that the addrindex functionality is known to be unreliable."
fi
fi
bitcoincore_policymsg cltv \
"CLTV policy is enabled: Your node will recognise and assist OP_CHECKLOCKTIMEVERIFY (BIP65) transactions." \
@ -212,6 +265,37 @@ bitcoincore_pkg_pretend() {
$bitcoincore_policymsg_flag && einfo "For more information on any of the above, see ${LJR_PATCH_DESC}"
}
bitcoincore_git_apply() {
local patchfile="$1"
einfo "Applying ${patchfile##*/} ..."
git apply --whitespace=nowarn "${patchfile}" || die
}
bitcoincore_predelete_patch() {
local patchfile="$1"
mkdir -p "${WORKDIR}/pdp"
local tmpfile="${WORKDIR}/pdp/${patchfile##*/}"
perl -ne '
newline:
if (m[(^diff .* b/(.*)$)]) {
$a = "$1\n";
$f = $2;
$_ = <>;
if (m[^deleted file]) {
unlink($f) || die;
while (!m[^diff ]) {
$_ = <>
}
goto newline
} else {
print($a)
}
}
print
' <"${patchfile}" >"${tmpfile}" || die
epatch "${tmpfile}"
}
bitcoincore_prepare() {
local mypolicy
if [ -n "${BITCOINCORE_NO_SYSLIBS}" ]; then
@ -222,11 +306,13 @@ bitcoincore_prepare() {
epatch "$(LJR_PATCH syslibs)"
fi
if use_if_iuse ljr; then
if [ "${BITCOINCORE_SERIES}" = "0.10.x" ]; then
if [ "${BITCOINCORE_LJR_NAME}" = "knots" ]; then
epatch "$(LJR_PATCH f)"
bitcoincore_predelete_patch "$(LJR_PATCH branding)"
epatch "$(LJR_PATCH ts)"
elif [ "${BITCOINCORE_SERIES}" = "0.10.x" ]; then
# Regular epatch won't work with binary files
local patchfile="$(LJR_PATCH ljrF)"
einfo "Applying ${patchfile##*/} ..."
git apply --whitespace=nowarn "${patchfile}" || die
bitcoincore_git_apply "$(LJR_PATCH ljrF)"
else
epatch "$(LJR_PATCH ljrF)"
fi
@ -234,12 +320,30 @@ bitcoincore_prepare() {
if use_if_iuse 1stclassmsg; then
epatch "$(LJR_PATCH 1stclassmsg)"
fi
if use_if_iuse addrindex; then
epatch "${DISTDIR}/${BITCOINCORE_ADDRINDEX_PATCHFILE}"
fi
if use_if_iuse xt; then
epatch "${DISTDIR}/${BITCOINXT_PATCHFILE}"
fi
use_if_iuse zeromq && epatch "$(LJR_PATCH zeromq)"
{ use_if_iuse zeromq && [ "${BITCOINCORE_MINOR}" -lt 12 ]; } && epatch "$(LJR_PATCH zeromq)"
for mypolicy in ${BITCOINCORE_POLICY_PATCHES}; do
mypolicy="${mypolicy#[-+]}"
if [ "${BITCOINCORE_MINOR}" -ge 12 ]; then
case "${mypolicy}" in
rbf)
use bitcoin_policy_rbf || sed -i 's/\(DEFAULT_ENABLE_REPLACEMENT = \)true/\1false/' src/main.h
;;
spamfilter)
use bitcoin_policy_spamfilter || sed -i 's/\(DEFAULT_SPAMFILTER = \)true/\1false/' src/main.h
;;
*)
die "Unknown policy ${mypolicy}"
esac
continue
fi
use bitcoin_policy_${mypolicy} || continue
case "${mypolicy}" in
rbf)
@ -284,19 +388,29 @@ bitcoincore_conf() {
else
my_econf="${my_econf} --disable-wallet"
fi
if ! use_if_iuse zeromq; then
# NOTE: Older (pre-0.12) patches would disable ZMQ if --enable-zmq was passed
my_econf="${my_econf} --disable-zmq"
fi
if [ -z "${BITCOINCORE_NO_SYSLIBS}" ]; then
my_econf="${my_econf} --disable-util-cli --disable-util-tx"
else
my_econf="${my_econf} --without-utils"
fi
# Knots 0.12.0 errors if --with-libevent used for bitcoin{d,-cli}, so only disable it when not wanted
if has libevent ${BITCOINCORE_NO_DEPEND} || { in_bcc_iuse libevent && ! use libevent; }; then
my_econf="${my_econf} --without-libevent"
fi
if [ "${BITCOINCORE_NEED_LEVELDB}" = "1" ]; then
# Passing --with-system-leveldb fails if leveldb is not installed, so only use it for targets that use LevelDB
my_econf="${my_econf} --with-system-leveldb"
fi
econf \
--disable-bench \
--disable-ccache \
--disable-static \
--with-system-libsecp256k1 \
--with-system-univalue \
--without-libs \
--without-daemon \
--without-gui \

View File

@ -264,14 +264,14 @@ _cmake_generator_to_use() {
# @DESCRIPTION:
# Comment out an add_subdirectory call in CMakeLists.txt in the current directory
cmake_comment_add_subdirectory() {
if [[ -z ${1} ]]; then
die "comment_add_subdirectory must be passed the directory name to comment"
fi
if [[ -z ${1} ]]; then
die "comment_add_subdirectory must be passed the directory name to comment"
fi
if [[ -e "CMakeLists.txt" ]]; then
sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${1//\//\\/}[[:space:]]*)/I s/^/#DONOTCOMPILE /" \
-i CMakeLists.txt || die "failed to comment add_subdirectory(${1})"
fi
if [[ -e "CMakeLists.txt" ]]; then
sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${1//\//\\/}[[:space:]]*)/I s/^/#DONOTCOMPILE /" \
-i CMakeLists.txt || die "failed to comment add_subdirectory(${1})"
fi
}
# @FUNCTION: comment_add_subdirectory

View File

@ -73,7 +73,7 @@ HASKELL_CABAL_EXPF="pkg_setup src_compile src_test src_install pkg_postinst pkg_
QA_CONFIGURE_OPTIONS+=" --with-compiler --with-hc --with-hc-pkg --with-gcc"
case "${EAPI:-0}" in
2|3|4|5) HASKELL_CABAL_EXPF+=" src_configure" ;;
2|3|4|5|6) HASKELL_CABAL_EXPF+=" src_configure" ;;
*) ;;
esac
@ -185,7 +185,9 @@ cabal-bootstrap() {
elif [[ -f "${S}/Setup.hs" ]]; then
setupmodule="${S}/Setup.hs"
else
die "No Setup.lhs or Setup.hs found"
eqawarn "No Setup.lhs or Setup.hs found. Either add Setup.hs to package or call cabal-mksetup from ebuild"
cabal-mksetup
setupmodule="${S}/Setup.hs"
fi
if [[ -z "${CABAL_BOOTSTRAP}" && -z "${CABAL_FROM_GHC}" ]] && ! ghc-sanecabal "${CABAL_MIN_VERSION}"; then

View File

@ -456,15 +456,12 @@ _calculate_src_uri() {
4.14.10)
# Part of 15.04.3 actually, sigh. Not stable for next release!
SRC_URI="mirror://kde/Attic/applications/15.04.3/src/${_kmname_pv}.tar.xz" ;;
4.14.14)
# Part of 15.08.3 actually, sigh. Not stable for next release!
SRC_URI="mirror://kde/stable/applications/15.08.3/src/${_kmname_pv}.tar.xz" ;;
4.14.15)
# Part of 15.12.0 actually, sigh. Not stable for next release!
SRC_URI="mirror://kde/stable/applications/15.12.0/src/${_kmname_pv}.tar.xz" ;;
4.14.16)
# Part of 15.12.1 actually, sigh. Not stable for next release!
SRC_URI="mirror://kde/stable/applications/15.12.1/src/${_kmname_pv}.tar.xz" ;;
4.14.18)
# Part of 15.12.3 actually, sigh. Not stable for next release!
SRC_URI="mirror://kde/stable/applications/15.12.3/src/${_kmname_pv}.tar.xz" ;;
15.04.3)
# Files moved to Attic
SRC_URI="mirror://kde/Attic/applications/15.04.3/src/${_kmname_pv}.tar.xz" ;;
@ -480,6 +477,7 @@ _calculate_src_uri() {
kdevelop|kdevelop-php*|kdevplatform)
case ${KDEVELOP_VERSION} in
4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.xz" ;;
4.7.3) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
*) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.xz" ;;
esac
;;

View File

@ -17,7 +17,7 @@ inherit toolchain-funcs versionator
# @ECLASS-VARIABLE: EAPI
# @DESCRIPTION:
# Currently EAPI 5 is supported.
# Currently EAPI 5 and 6 is supported.
case ${EAPI} in
5|6) ;;
*) die "EAPI=${EAPI:-0} is not supported" ;;
@ -45,13 +45,9 @@ esac
# @ECLASS-VARIABLE: KDEBASE
# @DESCRIPTION:
# This gets set to a non-zero value when a package is considered a kde or
# This gets set to a non-zero value when a package is considered a
# kdevelop ebuild.
if [[ ${CATEGORY} = kde-base ]]; then
KDEBASE=kde-base
elif [[ ${CATEGORY} = kde-frameworks ]]; then
KDEBASE=kde-frameworks
elif [[ ${KMNAME-${PN}} = kdevelop ]]; then
if [[ ${KMNAME-${PN}} = kdevelop ]]; then
KDEBASE=kdevelop
fi
@ -63,7 +59,7 @@ debug-print "${ECLASS}: ${KDEBASE} ebuild recognized"
: ${KDE_SCM:=git}
case ${KDE_SCM} in
svn|git) ;;
git) ;;
*) die "KDE_SCM: ${KDE_SCM} is not supported" ;;
esac
@ -156,7 +152,7 @@ add_frameworks_dep() {
# @FUNCTION: add_plasma_dep
# @USAGE: <package> [USE flags] [minimum version]
# @DESCRIPTION:
# Create proper dependency for kde-base/ dependencies.
# Create proper dependency for kde-plasma/ dependencies.
# This takes 1 to 4 arguments. The first being the package name, the optional
# second is additional USE flags to append, and the optional third is the
# version to use instead of the automatic version (use sparingly). In addition,
@ -264,7 +260,7 @@ punt_bogus_dep() {
local prefix=${1}
local dep=${2}
pcregrep -Mni "(?s)find_package\s*\(\s*${prefix}.[^)]*?${dep}.*?\)" CMakeLists.txt > "${T}/bogus${dep}"
pcregrep -Mni "(?s)find_package\s*\(\s*${prefix}[^)]*?${dep}.*?\)" CMakeLists.txt > "${T}/bogus${dep}"
# pcregrep returns non-zero on no matches/error
if [[ $? != 0 ]] ; then
@ -278,7 +274,7 @@ punt_bogus_dep() {
sed -e "${first},${last}s/${dep}//" -i CMakeLists.txt || die
if [[ ${length} = 1 ]] ; then
sed -e "/find_package\s*(\s*${prefix}\s*REQUIRED\s*COMPONENTS\s*)/I d" -i CMakeLists.txt || die
sed -e "/find_package\s*(\s*${prefix}\s*\(REQUIRED\)*\s*\(COMPONENTS\)*\s*)/I d" -i CMakeLists.txt || die
fi
}

View File

@ -23,7 +23,6 @@ inherit cmake-utils eutils flag-o-matic gnome2-utils kde5-functions versionator
if [[ ${KDE_BUILD_TYPE} = live ]]; then
case ${KDE_SCM} in
svn) inherit subversion ;;
git) inherit git-r3 ;;
esac
fi
@ -44,7 +43,7 @@ EXPORT_FUNCTIONS pkg_pretend pkg_setup src_unpack src_prepare src_configure src_
# @ECLASS-VARIABLE: KDE_BLOCK_SLOT4
# @DESCRIPTION:
# This variable is used when KDE_AUTODEPS is set.
# If set to "true", add RDEPEND block on kde-{base,apps}/${PN}:4
# If set to "true", add RDEPEND block on kde-apps/${PN}:4
: ${KDE_BLOCK_SLOT4:=true}
# @ECLASS-VARIABLE: KDE_DEBUG
@ -80,6 +79,8 @@ fi
# If set to "false", do nothing.
# Otherwise, add "+handbook" to IUSE, add the appropriate dependency, and
# generate and install KDE handbook.
# If set to "optional", config with -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON
# when USE=!handbook. In case package requires KF5KDELibs4Support, see next:
# If set to "forceoptional", remove a KF5DocTools dependency from the root
# CMakeLists.txt in addition to the above.
: ${KDE_HANDBOOK:=false}
@ -93,6 +94,8 @@ fi
# @DESCRIPTION:
# If set to "false", do nothing.
# For any other value, add test to IUSE and add a dependency on dev-qt/qttest:5.
# If set to "optional", configure with -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=ON
# when USE=!test.
# If set to "forceoptional", remove a Qt5Test dependency from the root
# CMakeLists.txt in addition to the above.
if [[ ${CATEGORY} = kde-frameworks ]]; then
@ -146,7 +149,7 @@ case ${KDE_AUTODEPS} in
DEPEND+=" $(add_frameworks_dep extra-cmake-modules)"
RDEPEND+=" >=kde-frameworks/kf-env-3"
COMMONDEPEND+=" >=dev-qt/qtcore-${QT_MINIMAL}:5"
COMMONDEPEND+=" $(add_qt_dep qtcore)"
if [[ ${CATEGORY} = kde-frameworks || ${CATEGORY} = kde-plasma && ${PN} != polkit-kde-agent ]]; then
RDEPEND+="
@ -198,7 +201,7 @@ case ${KDE_TEST} in
false) ;;
*)
IUSE+=" test"
DEPEND+=" test? ( >=dev-qt/qttest-${QT_MINIMAL}:5 )"
DEPEND+=" test? ( $(add_qt_dep qttest) )"
;;
esac
@ -281,33 +284,6 @@ _calculate_live_repo() {
SRC_URI=""
case ${KDE_SCM} in
svn)
# @ECLASS-VARIABLE: ESVN_MIRROR
# @DESCRIPTION:
# This variable allows easy overriding of default kde mirror service
# (anonsvn) with anything else you might want to use.
ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
local branch_prefix="trunk/KDE"
if [[ ${PV} == ??.??.49.9999 && ${CATEGORY} = kde-apps ]]; then
branch_prefix="branches/Applications/$(get_version_component_range 1-2)"
fi
if [[ ${PV} != 9999 && ${CATEGORY} = kde-plasma ]]; then
branch_prefix="branches/plasma/$(get_version_component_range 1-2)"
fi
local _kmname
if [[ -n ${KMNAME} ]]; then
_kmname=${KMNAME}
else
_kmname=${PN}
fi
ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${_kmname}"
;;
git)
# @ECLASS-VARIABLE: EGIT_MIRROR
# @DESCRIPTION:
@ -378,9 +354,6 @@ kde5_src_unpack() {
if [[ ${KDE_BUILD_TYPE} = live ]]; then
case ${KDE_SCM} in
svn)
subversion_src_unpack
;;
git)
git-r3_src_unpack
;;
@ -418,13 +391,15 @@ kde5_src_prepare() {
if [[ -d po ]] ; then
pushd po > /dev/null || die
for lang in *; do
if ! has ${lang} ${LINGUAS} ; then
if [[ ${lang} != CMakeLists.txt ]] ; then
rm -rf ${lang}
fi
if [[ -d ${lang} ]] && ! has ${lang} ${LINGUAS} ; then
rm -r ${lang} || die
if [[ -e CMakeLists.txt ]] ; then
cmake_comment_add_subdirectory ${lang}
fi
elif ! has ${lang/.po/} ${LINGUAS} ; then
if [[ ${lang} != CMakeLists.txt ]] ; then
rm ${lang} || die
fi
fi
done
popd > /dev/null || die
@ -491,6 +466,14 @@ kde5_src_configure() {
if ! use_if_iuse test ; then
cmakeargs+=( -DBUILD_TESTING=OFF )
if [[ ${KDE_TEST} = optional ]] ; then
cmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=ON )
fi
fi
if ! use_if_iuse handbook && [[ ${KDE_HANDBOOK} = optional ]] ; then
cmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON )
fi
# install mkspecs in the same directory as qt stuff

View File

@ -71,6 +71,13 @@ TEXMF="/usr/share/texmf-site"
# DESCRIPTION above)
SUPPLIER="misc"
# @ECLASS-VARIABLE: LATEX_DOC_ARGUMENTS
# @DESCRIPTION:
# When compiling documentation (.tex/.dtx), this variable will be passed
# to pdflatex as additional argument (e.g. -shell-escape). This variable
# must be set after inherit, as it gets automatically cleared otherwise.
LATEX_DOC_ARGUMENTS=""
# Kept for backwards compatibility
latex-package_has_tetex_3() {
case ${EAPI:-0} in
@ -128,8 +135,8 @@ latex-package_src_doinstall() {
for i in `find . -maxdepth 1 -type f -name "*.${1}"`
do
einfo "Making documentation: $i"
if pdflatex --interaction=batchmode $i &> /dev/null ; then
pdflatex --interaction=batchmode $i &> /dev/null || die
if pdflatex ${LATEX_DOC_ARGUMENTS} --interaction=batchmode $i &> /dev/null ; then
pdflatex ${LATEX_DOC_ARGUMENTS} --interaction=batchmode $i &> /dev/null || die
else
einfo "pdflatex failed, trying texi2dvi"
texi2dvi -q -c --language=latex $i &> /dev/null || die

View File

@ -0,0 +1,346 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
#
# @ECLASS: mozconfig-v6.45.eclass
# @MAINTAINER:
# mozilla team <mozilla@gentoo.org>
# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6
# @DESCRIPTION:
# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey)
# to provide a single common place for the common mozilla engine compoments.
#
# The eclass provides all common dependencies as well as common use flags.
#
# Some use flags which may be optional in particular mozilla packages can be
# supported through setting eclass variables.
#
# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3,
# and so ebuilds inheriting this eclass do not need to inherit that.
case ${EAPI} in
0|1|2|3|4)
die "EAPI=${EAPI} not supported"
;;
5)
# not needed for EAPI6 and above
inherit multilib
;;
esac
inherit flag-o-matic toolchain-funcs mozcoreconf-v3
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI
# @DESCRIPTION:
# Set this variable before the inherit line, when an ebuild needs to provide
# optional necko-wifi support via IUSE="wifi". Currently this would include
# ebuilds for firefox, and potentially seamonkey.
#
# Leave the variable UNSET if necko-wifi support should not be available.
# Set the variable to "enabled" if the use flag should be enabled by default.
# Set the variable to any value if the use flag should exist but not be default-enabled.
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT
# @DESCRIPTION:
# Set this variable before the inherit line, when an ebuild needs to provide
# optional necko-wifi support via IUSE="jit". Currently this would include
# ebuilds for firefox, and potentially seamonkey.
#
# Leave the variable UNSET if optional jit support should not be available.
# Set the variable to "enabled" if the use flag should be enabled by default.
# Set the variable to any value if the use flag should exist but not be default-enabled.
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3
# @DESCRIPTION:
# Set this variable before the inherit line, when an ebuild can provide
# optional gtk3 support via IUSE="gtk3". Currently this would include
# ebuilds for firefox, but thunderbird and seamonkey could follow in the future.
#
# Leave the variable UNSET if gtk3 support should not be available.
# Set the variable to "enabled" if the use flag should be enabled by default.
# Set the variable to any value if the use flag should exist but not be default-enabled.
# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5
# @DESCRIPTION:
# Set this variable before the inherit line, when an ebuild can provide
# optional qt5 support via IUSE="qt5". Currently this would include
# ebuilds for firefox, but thunderbird and seamonkey could follow in the future.
#
# Leave the variable UNSET if qt5 support should not be available.
# Set the variable to "enabled" if the use flag should be enabled by default.
# Set the variable to any value if the use flag should exist but not be default-enabled.
# use-flags common among all mozilla ebuilds
IUSE="${IUSE} dbus debug ffmpeg +gstreamer gstreamer-0 +jemalloc3 neon pulseaudio selinux startup-notification system-cairo
system-icu system-jpeg system-libevent system-sqlite system-libvpx"
# some notes on deps:
# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14
# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau
RDEPEND=">=app-text/hunspell-1.2
dev-libs/atk
dev-libs/expat
>=x11-libs/cairo-1.10[X]
>=x11-libs/gtk+-2.18:2
x11-libs/gdk-pixbuf
>=x11-libs/pango-1.22.0
>=media-libs/libpng-1.6.19:0=[apng]
>=media-libs/mesa-10.2:*
media-libs/fontconfig
>=media-libs/freetype-2.4.10
kernel_linux? ( media-libs/alsa-lib )
pulseaudio? ( media-sound/pulseaudio )
virtual/freedesktop-icon-theme
dbus? ( >=sys-apps/dbus-0.60
>=dev-libs/dbus-glib-0.72 )
startup-notification? ( >=x11-libs/startup-notification-0.8 )
>=dev-libs/glib-2.26:2
>=sys-libs/zlib-1.2.3
>=virtual/libffi-3.0.10
ffmpeg? ( virtual/ffmpeg )
gstreamer? (
>=media-libs/gstreamer-1.4.5:1.0
>=media-libs/gst-plugins-base-1.4.5:1.0
>=media-libs/gst-plugins-good-1.4.5:1.0
>=media-plugins/gst-plugins-libav-1.4.5:1.0
)
gstreamer-0? (
>=media-libs/gstreamer-0.10.25:0.10
media-plugins/gst-plugins-meta:0.10[ffmpeg]
)
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXrender
x11-libs/libXt
system-cairo? ( >=x11-libs/cairo-1.12[X,xcb] >=x11-libs/pixman-0.19.2 )
system-icu? ( >=dev-libs/icu-51.1:= )
system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 )
system-libevent? ( =dev-libs/libevent-2.0*:0= )
system-sqlite? ( >=dev-db/sqlite-3.9.1:3[secure-delete,debug=] )
system-libvpx? ( >=media-libs/libvpx-1.3.0:0=[postproc] )
"
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then
IUSE+=" +gtk3"
else
IUSE+=" gtk3"
fi
RDEPEND+="
gtk3? ( >=x11-libs/gtk+-3.4.0:3 )"
fi
if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then
inherit qmake-utils
if [[ ${MOZCONFIG_OPTIONAL_QT5} = "enabled" ]]; then
IUSE+=" +qt5"
else
IUSE+=" qt5"
fi
RDEPEND+="
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtprintsupport:5
dev-qt/qtwidgets:5
dev-qt/qtxml:5
dev-qt/qtdeclarative:5
)"
fi
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then
if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then
IUSE+=" +wifi"
else
IUSE+=" wifi"
fi
RDEPEND+="
wifi? (
kernel_linux? ( >=sys-apps/dbus-0.60
>=dev-libs/dbus-glib-0.72
net-misc/networkmanager )
)"
fi
if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
if [[ ${MOZCONFIG_OPTIONAL_JIT} = "enabled" ]]; then
IUSE+=" +jit"
else
IUSE+=" jit"
fi
fi
DEPEND="app-arch/zip
app-arch/unzip
>=sys-devel/binutils-2.16.1
${RDEPEND}"
RDEPEND+="
selinux? ( sec-policy/selinux-mozilla )"
# only one of gstreamer and gstreamer-0 can be enabled at a time, so set REQUIRED_USE to signify this
REQUIRED_USE="?? ( gstreamer gstreamer-0 )"
# only one of gtk3 or qt5 should be permitted to be selected, since only one will be used.
[[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]] && [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]] && \
REQUIRED_USE+=" ?? ( gtk3 qt5 )"
# @FUNCTION: mozconfig_config
# @DESCRIPTION:
# Set common configure options for mozilla packages.
# Call this within src_configure() phase, after mozconfig_init
#
# Example:
#
# inherit mozconfig-v5.33
#
# src_configure() {
# mozconfig_init
# mozconfig_config
# # ... misc ebuild-unique settings via calls to
# # ... mozconfig_{annotate,use_with,use_enable}
# mozconfig_final
# }
mozconfig_config() {
# Migrated from mozcoreconf-2
mozconfig_annotate 'system_libs' \
--with-system-zlib \
--enable-pango \
--enable-svg \
--with-system-bz2
if has bindist ${IUSE}; then
mozconfig_use_enable !bindist official-branding
if [[ ${PN} == firefox ]] && use bindist ; then
mozconfig_annotate '' --with-branding=browser/branding/aurora
fi
fi
mozconfig_use_enable debug
mozconfig_use_enable debug tests
if ! use debug ; then
mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols
else
mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols
fi
mozconfig_use_enable startup-notification
if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then
# wifi pulls in dbus so manage both here
mozconfig_use_enable wifi necko-wifi
if use kernel_linux && use wifi && ! use dbus; then
echo "Enabling dbus support due to wifi request"
mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus
else
mozconfig_use_enable dbus
fi
else
mozconfig_use_enable dbus
mozconfig_annotate 'disabled' --disable-necko-wifi
fi
# These are forced-on for webm support
mozconfig_annotate 'required' --enable-ogg
mozconfig_annotate 'required' --enable-wave
if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then
mozconfig_use_enable jit ion
fi
# These are enabled by default in all mozilla applications
mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${EPREFIX}"/usr
mozconfig_annotate '' --with-system-nss --with-nss-prefix="${EPREFIX}"/usr
mozconfig_annotate '' --x-includes="${EPREFIX}"/usr/include --x-libraries="${EPREFIX}"/usr/$(get_libdir)
if use system-libevent; then
mozconfig_annotate '' --with-system-libevent="${EPREFIX}"/usr
fi
mozconfig_annotate '' --prefix="${EPREFIX}"/usr
mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)
mozconfig_annotate 'Gentoo default' --enable-system-hunspell
mozconfig_annotate '' --disable-gnomeui
mozconfig_annotate '' --enable-gio
mozconfig_annotate '' --disable-crashreporter
mozconfig_annotate 'Gentoo default' --with-system-png
mozconfig_annotate '' --enable-system-ffi
mozconfig_annotate 'Gentoo default to honor system linker' --disable-gold
mozconfig_annotate 'Gentoo default' --disable-skia
mozconfig_annotate '' --disable-gconf
mozconfig_annotate '' --with-intl-api
# default toolkit is cairo-gtk2, optional use flags can change this
local toolkit="cairo-gtk2"
local toolkit_comment=""
if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then
if use gtk3; then
toolkit="cairo-gtk3"
toolkit_comment="gtk3 use flag"
fi
fi
if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then
if use qt5; then
toolkit="cairo-qt"
toolkit_comment="qt5 use flag"
# need to specify these vars because the qt5 versions are not found otherwise,
# and setting --with-qtdir overrides the pkg-config include dirs
local i
for i in qmake moc rcc; do
echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \
>> "${S}"/.mozconfig || die
done
echo 'unset QTDIR' >> "${S}"/.mozconfig || die
mozconfig_annotate '+qt5' --disable-gio
fi
fi
mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit}
# Use jemalloc unless libc is not glibc >= 2.4
# at this time the minimum glibc in the tree is 2.9 so we should be safe.
if use elibc_glibc && use jemalloc3; then
# We must force-enable jemalloc 3 via .mozconfig
echo "export MOZ_JEMALLOC3=1" >> "${S}"/.mozconfig || die
mozconfig_annotate '' --enable-jemalloc
mozconfig_annotate '' --enable-replace-malloc
fi
mozconfig_annotate '' --target="${CTARGET:-${CHOST}}"
mozconfig_annotate '' --build="${CTARGET:-${CHOST}}"
use ffmpeg || mozconfig_annotate '-ffmpeg' --disable-ffmpeg
if use gstreamer ; then
use ffmpeg && einfo "${PN} will not use ffmpeg unless gstreamer:1.0 is not available at runtime"
mozconfig_annotate '+gstreamer' --enable-gstreamer=1.0
elif use gstreamer-0 ; then
use ffmpeg && einfo "${PN} will not use ffmpeg unless gstreamer:0.10 is not available at runtime"
mozconfig_annotate '+gstreamer-0' --enable-gstreamer=0.10
else
mozconfig_annotate '' --disable-gstreamer
fi
mozconfig_use_enable pulseaudio
mozconfig_use_enable system-cairo
mozconfig_use_enable system-sqlite
mozconfig_use_with system-jpeg
mozconfig_use_with system-icu
mozconfig_use_with system-libvpx
# Modifications to better support ARM, bug 553364
if use neon ; then
mozconfig_annotate '' --with-fpu=neon
mozconfig_annotate '' --with-thumb=yes
mozconfig_annotate '' --with-thumb-interwork=no
fi
if [[ ${CHOST} == armv* ]] ; then
mozconfig_annotate '' --with-float-abi=hard
mozconfig_annotate '' --enable-skia
if ! use system-libvpx ; then
sed -i -e "s|softfp|hard|" \
"${S}"/media/libvpx/moz.build
fi
fi
}

View File

@ -13,7 +13,7 @@
if [[ ! ${_MOZCORECONF_V3} ]]; then
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='threads,sqlite'
PYTHON_REQ_USE='ncurses,sqlite,ssl,threads'
inherit multilib flag-o-matic python-any-r1 versionator

View File

@ -19,7 +19,7 @@ inherit mozextension
case "${EAPI:-0}" in
0|1)
die "EAPI ${EAPI:-0} does not support the '->' SRC_URI operator";;
2|3|4|5)
2|3|4|5|6)
EXPORT_FUNCTIONS src_unpack src_compile src_install;;
*)
die "EAPI ${EAPI} is not supported, contact eclass maintainers";;

View File

@ -212,7 +212,8 @@ DEPEND="${DEPEND}
# For other stuff to bring us in
# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
PDEPEND="${PDEPEND} perl? ( >=dev-perl/DBD-mysql-2.9004 )
~virtual/mysql-${MYSQL_PV_MAJOR}"
~virtual/mysql-${MYSQL_PV_MAJOR}[embedded=,static=]
virtual/libmysqlclient:${SLOT}[${MULTILIB_USEDEP},static-libs=]"
# my_config.h includes ABI specific data
MULTILIB_WRAPPED_HEADERS=( /usr/include/mysql/my_config.h /usr/include/mysql/private/embedded_priv.h )
@ -400,6 +401,7 @@ multilib_src_configure() {
-DWITH_DEFAULT_COMPILER_OPTIONS=0
-DWITH_DEFAULT_FEATURE_SET=0
-DINSTALL_SYSTEMD_UNITDIR="$(systemd_get_systemunitdir)"
-DENABLE_STATIC_LIBS=$(usex static-libs)
)
if in_iuse systemd ; then

View File

@ -92,15 +92,12 @@ IUSE="cxx multislot multitarget nls static-libs test vanilla"
if version_is_at_least 2.19 ; then
IUSE+=" zlib"
fi
if ! version_is_at_least 2.25 || [[ ${BTYPE} != "rel" ]] || is_cross || use multislot ; then
SLOT="${BVER}"
else
SLOT="0"
fi
SLOT="${BVER}"
RDEPEND=">=sys-devel/binutils-config-3"
in_iuse zlib && RDEPEND+=" zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}
!multislot? ( !<${CATEGORY}/${P} )
test? ( dev-util/dejagnu )
nls? ( sys-devel/gettext )
sys-devel/flex

View File

@ -159,15 +159,7 @@ fi
IUSE+=" ${IUSE_DEF[*]/#/+}"
# Support upgrade paths here or people get pissed
if ! tc_version_is_at_least 4.8 || is_crosscompile || use multislot || [[ ${GCC_PV} == *_alpha* ]] ; then
SLOT="${GCC_CONFIG_VER}"
elif ! tc_version_is_at_least 5.0 ; then
SLOT="${GCC_BRANCH_VER}"
else
# Upstream changed versioning w/gcc-5+, so SLOT matches major only. #555164
SLOT="${GCCMAJOR}"
fi
SLOT="${GCC_CONFIG_VER}"
#---->> DEPEND <<----
@ -1692,10 +1684,12 @@ toolchain_src_install() {
ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER}
fi
done
# Clear out the main go binaries as we don't want to clobber dev-lang/go
# Rename the main go binaries as we don't want to clobber dev-lang/go
# when gcc-config runs. #567806
if tc_version_is_at_least 5 && is_go ; then
rm -f go gofmt
for x in go gofmt; do
mv ${x} ${x}-${GCCMAJOR} || die
done
fi
# Now do the fun stripping stuff

View File

@ -440,6 +440,9 @@ unpacker_src_uri_depends() {
case ${uri} in
*.cpio.*|*.cpio)
d="app-arch/cpio" ;;
*.deb)
# platforms like AIX don't have a good ar
d="kernel_AIX? ( app-arch/deb2targz )" ;;
*.rar|*.RAR)
d="app-arch/unrar" ;;
*.7z)

View File

@ -72,11 +72,15 @@ vmware-bundle_extract-component() {
head -c$((component_manifestSize)) | xsltproc "${T}"/list-component-files.xsl - |
while read -r file_offset file_compressedSize file_uncompressedSize file_path ; do
if [[ ${file_path} ]] ; then
echo -n '.'
file_path="${dest}/${file_path}"
mkdir -p "$(dirname "${file_path}")" || die
tail -c+$((offset+component_dataOffset+file_offset+1)) "${component}" 2> /dev/null |
head -c$((file_compressedSize)) | gzip -cd > "${file_path}" || die
if [[ ${file_compressedSize} -gt 0 ]] ; then
echo -n '.'
tail -c+$((offset+component_dataOffset+file_offset+1)) "${component}" 2> /dev/null |
head -c$((file_compressedSize)) | gzip -cd > "${file_path}" || die
else
echo -n 'x'
fi
fi
done
echo