diff --git a/acct-group/sensu/metadata.xml b/acct-group/sensu/metadata.xml new file mode 100644 index 0000000..097975e --- /dev/null +++ b/acct-group/sensu/metadata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/acct-group/sensu/sensu-1.ebuild b/acct-group/sensu/sensu-1.ebuild new file mode 100644 index 0000000..ab09b6a --- /dev/null +++ b/acct-group/sensu/sensu-1.ebuild @@ -0,0 +1,12 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit acct-group + +KEYWORDS="~*" + +DESCRIPTION="Sensu program group" +ACCT_GROUP_ID=499 +SLOT="0" diff --git a/acct-user/sensu/metadata.xml b/acct-user/sensu/metadata.xml new file mode 100644 index 0000000..097975e --- /dev/null +++ b/acct-user/sensu/metadata.xml @@ -0,0 +1,4 @@ + + + + diff --git a/acct-user/sensu/sensu-0.ebuild b/acct-user/sensu/sensu-0.ebuild new file mode 100644 index 0000000..23a5074 --- /dev/null +++ b/acct-user/sensu/sensu-0.ebuild @@ -0,0 +1,14 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit acct-user + +KEYWORDS="~*" + +DESCRIPTION="Sensu Monitoring Framework" +ACCT_USER_ID=60 +ACCT_USER_GROUPS=( sensu ) +acct-user_add_deps +SLOT="0" diff --git a/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild b/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild index 0e14d3f..86d4c02 100644 --- a/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild +++ b/dev-python/ffmpeg-python/ffmpeg-python-0.2.0.ebuild @@ -7,7 +7,7 @@ PYTHON_COMPAT=( python3_{6,7} ) inherit distutils-r1 -DESCRIPTION="Python bindings for FFmpeg - with complex filtering support " +DESCRIPTION="Python bindings for FFmpeg with complex filtering support " HOMEPAGE="https://github.com/kkroening/ffmpeg-python" if [[ "${PV}" == *9999* ]]; then @@ -27,24 +27,20 @@ LICENSE="Apache-2.0" SLOT="0" IUSE="doc test" -COMMON_DEPEND=" - dev-python/pytest-runner[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] -" DEPEND=" - ${COMMON_DEPEND} - doc? ( - >=dev-python/sphinx-2.4.4[${PYTHON_USEDEP}] - ) + >=dev-python/future-0.18.2[${PYTHON_USEDEP}] + >=dev-python/numpy-1.16.5[${PYTHON_USEDEP}] + dev-python/pytest-runner[${PYTHON_USEDEP}] test? ( >=dev-python/pytest-4.6.9[${PYTHON_USEDEP}] >=dev-python/pytest-mock-1.11.2[${PYTHON_USEDEP}] - >=dev-python/tox-3.12.1[${PYTHON_USEDEP}] ) " RDEPEND=" - ${COMMON_DEPEND} - >=dev-python/future-0.18.2[${PYTHON_USEDEP}] - >=dev-python/numpy-1.16.5[${PYTHON_USEDEP}] + ${RDEPEND} media-video/ffmpeg " + +distutils_enable_tests pytest + +distutils_enable_sphinx doc/src diff --git a/dev-python/ffmpeg-python/ffmpeg-python-9999.ebuild b/dev-python/ffmpeg-python/ffmpeg-python-9999.ebuild index 0e14d3f..86d4c02 100644 --- a/dev-python/ffmpeg-python/ffmpeg-python-9999.ebuild +++ b/dev-python/ffmpeg-python/ffmpeg-python-9999.ebuild @@ -7,7 +7,7 @@ PYTHON_COMPAT=( python3_{6,7} ) inherit distutils-r1 -DESCRIPTION="Python bindings for FFmpeg - with complex filtering support " +DESCRIPTION="Python bindings for FFmpeg with complex filtering support " HOMEPAGE="https://github.com/kkroening/ffmpeg-python" if [[ "${PV}" == *9999* ]]; then @@ -27,24 +27,20 @@ LICENSE="Apache-2.0" SLOT="0" IUSE="doc test" -COMMON_DEPEND=" - dev-python/pytest-runner[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] -" DEPEND=" - ${COMMON_DEPEND} - doc? ( - >=dev-python/sphinx-2.4.4[${PYTHON_USEDEP}] - ) + >=dev-python/future-0.18.2[${PYTHON_USEDEP}] + >=dev-python/numpy-1.16.5[${PYTHON_USEDEP}] + dev-python/pytest-runner[${PYTHON_USEDEP}] test? ( >=dev-python/pytest-4.6.9[${PYTHON_USEDEP}] >=dev-python/pytest-mock-1.11.2[${PYTHON_USEDEP}] - >=dev-python/tox-3.12.1[${PYTHON_USEDEP}] ) " RDEPEND=" - ${COMMON_DEPEND} - >=dev-python/future-0.18.2[${PYTHON_USEDEP}] - >=dev-python/numpy-1.16.5[${PYTHON_USEDEP}] + ${RDEPEND} media-video/ffmpeg " + +distutils_enable_tests pytest + +distutils_enable_sphinx doc/src diff --git a/eclass/kernel-2-src-prepare-overlay.eclass b/eclass/kernel-2-src-prepare-overlay.eclass new file mode 100644 index 0000000..955ef95 --- /dev/null +++ b/eclass/kernel-2-src-prepare-overlay.eclass @@ -0,0 +1,1658 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: kernel-2-src-prepare-overlay.eclass +# @MAINTAINER: +# Gentoo Kernel project +# @AUTHOR: +# John Mylchreest +# Mike Pagano +# +# @SUPPORTED_EAPIS: 2 3 4 5 6 +# @BLURB: Eclass for kernel packages +# @DESCRIPTION: +# This is the kernel.eclass rewrite for a clean base regarding the 2.6 +# series of kernel with back-compatibility for 2.4 +# Please direct your bugs to the current eclass maintainer :) +# added functionality: +# unipatch - a flexible, singular method to extract, add and remove patches. + +# @ECLASS-VARIABLE: K_USEPV +# @DEFAULT_UNSET +# @DESCRIPTION: +# When setting the EXTRAVERSION variable, it should +# add PV to the end. +# this is useful for things like wolk. IE: +# EXTRAVERSION would be something like : -wolk-4.19-r1 + +# @ECLASS-VARIABLE: K_NOSETEXTRAVERSION +# @DEFAULT_UNSET +# @DESCRIPTION: +# if this is set then EXTRAVERSION will not be +# automatically set within the kernel Makefile + +# @ECLASS-VARIABLE: K_NOUSENAME +# @DEFAULT_UNSET +# @DESCRIPTION: +# if this is set then EXTRAVERSION will not include the +# first part of ${PN} in EXTRAVERSION + +# @ECLASS-VARIABLE: K_NOUSEPR +# @DEFAULT_UNSET +# @DESCRIPTION: +# if this is set then EXTRAVERSION will not include the +# anything based on ${PR}. + +# @ECLASS-VARIABLE: K_PREPATCHED +# @DEFAULT_UNSET +# @DESCRIPTION: +# if the patchset is prepatched (ie: mm-sources, +# ck-sources, ac-sources) it will use PR (ie: -r5) as +# the patchset version for +# and not use it as a true package revision + +# @ECLASS-VARIABLE: K_EXTRAEINFO +# @DEFAULT_UNSET +# @DESCRIPTION: +# this is a new-line seperated list of einfo displays in +# postinst and can be used to carry additional postinst +# messages + +# @ECLASS-VARIABLE: K_EXTRAELOG +# @DEFAULT_UNSET +# @DESCRIPTION: +# same as K_EXTRAEINFO except using elog instead of einfo + +# @ECLASS-VARIABLE: K_EXTRAEWARN +# @DEFAULT_UNSET +# @DESCRIPTION: +# same as K_EXTRAEINFO except using ewarn instead of einfo + +# @ECLASS-VARIABLE: K_SYMLINK +# @DEFAULT_UNSET +# @DESCRIPTION: +# if this is set, then forcably create symlink anyway + +# @ECLASS-VARIABLE: K_BASE_VER +# @DEFAULT_UNSET +# @DESCRIPTION: +# for git-sources, declare the base version this patch is +# based off of. + +# @ECLASS-VARIABLE: K_DEFCONFIG +# @DEFAULT_UNSET +# @DESCRIPTION: +# Allow specifying a different defconfig target. +# If length zero, defaults to "defconfig". + +# @ECLASS-VARIABLE: K_WANT_GENPATCHES +# @DEFAULT_UNSET +# @DESCRIPTION: +# Apply genpatches to kernel source. Provide any +# combination of "base", "extras" or "experimental". + +# @ECLASS-VARIABLE: K_EXP_GENPATCHES_PULL +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set, we pull "experimental" regardless of the USE FLAG +# but expect the ebuild maintainer to use K_EXP_GENPATCHES_LIST. + +# @ECLASS-VARIABLE: K_EXP_GENPATCHES_NOUSE +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set, no USE flag will be provided for "experimental"; +# as a result the user cannot choose to apply those patches. + +# @ECLASS-VARIABLE: K_EXP_GENPATCHES_LIST +# @DEFAULT_UNSET +# @DESCRIPTION: +# A list of patches to pick from "experimental" to apply when +# the USE flag is unset and K_EXP_GENPATCHES_PULL is set. + +# @ECLASS-VARIABLE: K_FROM_GIT +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set, this variable signals that the kernel sources derives +# from a git tree and special handling will be applied so that +# any patches that are applied will actually apply. + +# @ECLASS-VARIABLE: K_GENPATCHES_VER +# @DEFAULT_UNSET +# @DESCRIPTION: +# The version of the genpatches tarball(s) to apply. +# A value of "5" would apply genpatches-2.6.12-5 to +# my-sources-2.6.12.ebuild + +# @ECLASS-VARIABLE: K_SECURITY_UNSUPPORTED +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set, this kernel is unsupported by Gentoo Security +# to the current eclass maintainer :) + +# @ECLASS-VARIABLE: K_DEBLOB_AVAILABLE +# @DEFAULT_UNSET +# @DESCRIPTION: +# A value of "0" will disable all of the optional deblob +# code. If empty, will be set to "1" if deblobbing is +# possible. Test ONLY for "1". + +# @ECLASS-VARIABLE: K_DEBLOB_TAG +# @DEFAULT_UNSET +# @DESCRIPTION: +# This will be the version of deblob script. It's a upstream SVN tag +# such asw -gnu or -gnu1. + +# @ECLASS-VARIABLE: K_PREDEBLOBBED +# @DEFAULT_UNSET +# @DESCRIPTION: +# This kernel was already deblobbed elsewhere. +# If false, either optional deblobbing will be available +# or the license will note the inclusion of linux-firmware code. + +# @ECLASS-VARIABLE: K_LONGTERM +# @DEFAULT_UNSET +# @DESCRIPTION: +# If set, the eclass will search for the kernel source +# in the long term directories on the upstream servers +# as the location has been changed by upstream + +# @ECLASS-VARIABLE: H_SUPPORTEDARCH +# @DEFAULT_UNSET +# @DESCRIPTION: +# this should be a space separated list of ARCH's which +# can be supported by the headers ebuild + +# @ECLASS-VARIABLE: UNIPATCH_LIST +# @DEFAULT_UNSET +# @DESCRIPTION: +# space delimetered list of patches to be applied to the kernel + +# @ECLASS-VARIABLE: UNIPATCH_EXCLUDE +# @DEFAULT_UNSET +# @DESCRIPTION: +# An addition var to support exlusion based completely +# on "*" and not "_*" +# this should _NOT_ be used from the ebuild as this is +# reserved for end users passing excludes from the cli + +# @ECLASS-VARIABLE: UNIPATCH_DOCS +# @DEFAULT_UNSET +# @DESCRIPTION: +# space delimemeted list of docs to be installed to +# the doc dir + +# @ECLASS-VARIABLE: UNIPATCH_STRICTORDER +# @DEFAULT_UNSET +# @DESCRIPTION: +# if this is set places patches into directories of +# order, so they are applied in the order passed +# Changing any other variable in this eclass is not supported; you can request +# for additional variables to be added by contacting the current maintainer. +# If you do change them, there is a chance that we will not fix resulting bugs; +# that of course does not mean we're not willing to help. + +inherit toolchain-funcs +[[ ${EAPI:-0} == [012345] ]] && inherit epatch +[[ ${EAPI:-0} == [0123456] ]] && inherit estack eapi7-ver +case ${EAPI:-0} in + 2|3|4|5|6) + EXPORT_FUNCTIONS src_{unpack,prepare,compile,install,test} \ + pkg_{setup,preinst,postinst,postrm} ;; + *) die "${ECLASS}: EAPI ${EAPI} not supported" ;; +esac + +# Added by Daniel Ostrow +# This is an ugly hack to get around an issue with a 32-bit userland on ppc64. +# I will remove it when I come up with something more reasonable. +[[ ${PROFILE_ARCH} == "ppc64" ]] && CHOST="powerpc64-${CHOST#*-}" + +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} && ${CATEGORY/cross-} != ${CATEGORY} ]]; then + export CTARGET=${CATEGORY/cross-} +fi + +HOMEPAGE="https://www.kernel.org/ https://wiki.gentoo.org/wiki/Kernel ${HOMEPAGE}" +: ${LICENSE:="GPL-2"} + +# This is the latest KV_PATCH of the deblob tool available from the +# libre-sources upstream. If you bump this, you MUST regenerate the Manifests +# for ALL kernel-2-src-prepare-overlay consumer packages where deblob is available. +: ${DEBLOB_MAX_VERSION:=38} + +# No need to run scanelf/strip on kernel sources/headers (bug #134453). +RESTRICT="binchecks strip" + +# set LINUX_HOSTCFLAGS if not already set +: ${LINUX_HOSTCFLAGS:="-Wall -Wstrict-prototypes -Os -fomit-frame-pointer -I${S}/include"} + + +# @FUNCTION: debug-print-kernel2-variables +# @USAGE: +# @DESCRIPTION: +# this function exists only to help debug kernel-2-src-prepare-overlay.eclass +# if you are adding new functionality in, put a call to it +# at the start of src_unpack, or during SRC_URI/dep generation. + +debug-print-kernel2-variables() { + for v in PVR CKV OKV KV KV_FULL KV_MAJOR KV_MINOR KV_PATCH RELEASETYPE \ + RELEASE UNIPATCH_LIST_DEFAULT UNIPATCH_LIST_GENPATCHES \ + UNIPATCH_LIST S KERNEL_URI K_WANT_GENPATCHES ; do + debug-print "${v}: ${!v}" + done +} + +# @FUNCTION: handle_genpatches +# @USAGE: [--set-unipatch-list] +# @DESCRIPTION: +# add genpatches to list of patches to apply if wanted + +handle_genpatches() { + local tarball want_unipatch_list + [[ -z ${K_WANT_GENPATCHES} || -z ${K_GENPATCHES_VER} ]] && return 1 + + if [[ -n ${1} ]]; then + # set UNIPATCH_LIST_GENPATCHES only on explicit request + # since that requires 'use' call which can be used only in phase + # functions, while the function is also called in global scope + if [[ ${1} == --set-unipatch-list ]]; then + want_unipatch_list=1 + else + die "Usage: ${FUNCNAME} [--set-unipatch-list]" + fi + fi + + debug-print "Inside handle_genpatches" + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + # for > 3.0 kernels, handle genpatches tarball name + # genpatches for 3.0 and 3.0.1 might be named + # genpatches-3.0-1.base.tar.xz and genpatches-3.0-2.base.tar.xz + # respectively. Handle this. + + for i in ${K_WANT_GENPATCHES} ; do + if [[ ${KV_MAJOR} -ge 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + tarball="genpatches-${KV_MAJOR}.${KV_MINOR}-${K_GENPATCHES_VER}.${i}.tar.xz" + else + tarball="genpatches-${KV_MAJOR}.${KV_PATCH}-${K_GENPATCHES_VER}.${i}.tar.xz" + fi + else + tarball="genpatches-${OKV}-${K_GENPATCHES_VER}.${i}.tar.xz" + fi + + local use_cond_start="" use_cond_end="" + + if [[ "${i}" == "experimental" && -z ${K_EXP_GENPATCHES_PULL} && -z ${K_EXP_GENPATCHES_NOUSE} ]] ; then + use_cond_start="experimental? ( " + use_cond_end=" )" + + if [[ -n ${want_unipatch_list} ]] && use experimental ; then + UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}" + debug-print "genpatches tarball: $tarball" + fi + elif [[ -n ${want_unipatch_list} ]]; then + UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}" + debug-print "genpatches tarball: $tarball" + fi + GENPATCHES_URI+=" ${use_cond_start}$(echo https://dev.gentoo.org/~{alicef,mpagano,whissi}/dist/genpatches/${tarball})${use_cond_end}" + done +} + +# @FUNCTION: detect_version +# @USAGE: +# @DESCRIPTION: +# this function will detect and set +# - OKV: Original Kernel Version (2.6.0/2.6.0-test11) +# - KV: Kernel Version (2.6.0-gentoo/2.6.0-test11-gentoo-r1) +# - EXTRAVERSION: The additional version appended to OKV (-gentoo/-gentoo-r1) +detect_version() { + + # We've already run, so nothing to do here. + [[ -n ${KV_FULL} ]] && return 0 + + # CKV is used as a comparison kernel version, which is used when + # PV doesnt reflect the genuine kernel version. + # this gets set to the portage style versioning. ie: + # CKV=2.6.11_rc4 + CKV=${CKV:-${PV}} + OKV=${OKV:-${CKV}} + OKV=${OKV/_beta/-test} + OKV=${OKV/_rc/-rc} + OKV=${OKV/-r*} + OKV=${OKV/_p*} + + KV_MAJOR=$(ver_cut 1 ${OKV}) + # handle if OKV is X.Y or X.Y.Z (e.g. 3.0 or 3.0.1) + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + # if KV_MAJOR >= 3, then we have no more KV_MINOR + #if [[ ${KV_MAJOR} -lt 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + KV_MINOR=$(ver_cut 2 ${OKV}) + KV_PATCH=$(ver_cut 3 ${OKV}) + if [[ ${KV_MAJOR}${KV_MINOR}${KV_PATCH} -ge 269 ]]; then + KV_EXTRA=$(ver_cut 4- ${OKV}) + KV_EXTRA=${KV_EXTRA/[-_]*} + else + KV_PATCH=$(ver_cut 3- ${OKV}) + fi + else + KV_PATCH=$(ver_cut 2 ${OKV}) + KV_EXTRA=$(ver_cut 3- ${OKV}) + KV_EXTRA=${KV_EXTRA/[-_]*} + fi + + debug-print "KV_EXTRA is ${KV_EXTRA}" + + KV_PATCH=${KV_PATCH/[-_]*} + + local v n=0 missing + #if [[ ${KV_MAJOR} -lt 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]]; then + for v in CKV OKV KV_{MAJOR,MINOR,PATCH} ; do + [[ -z ${!v} ]] && n=1 && missing="${missing}${v} "; + done + else + for v in CKV OKV KV_{MAJOR,PATCH} ; do + [[ -z ${!v} ]] && n=1 && missing="${missing}${v} "; + done + fi + + [[ $n -eq 1 ]] && \ + eerror "Missing variables: ${missing}" && \ + die "Failed to extract kernel version (try explicit CKV in ebuild)!" + unset v n missing + +# if [[ ${KV_MAJOR} -ge 3 ]]; then + if [[ ${#OKV_ARRAY[@]} -lt 3 ]]; then + KV_PATCH_ARR=(${KV_PATCH//\./ }) + + # at this point 031412, Linus is putting all 3.x kernels in a + # 3.x directory, may need to revisit when 4.x is released + KERNEL_BASE_URI="https://www.kernel.org/pub/linux/kernel/v${KV_MAJOR}.x" + + [[ -n "${K_LONGTERM}" ]] && + KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_PATCH_ARR}" + else + #KERNEL_BASE_URI="https://www.kernel.org/pub/linux/kernel/v${KV_MAJOR}.0" + #KERNEL_BASE_URI="https://www.kernel.org/pub/linux/kernel/v${KV_MAJOR}.${KV_MINOR}" + if [[ ${KV_MAJOR} -ge 3 ]]; then + KERNEL_BASE_URI="https://www.kernel.org/pub/linux/kernel/v${KV_MAJOR}.x" + else + KERNEL_BASE_URI="https://www.kernel.org/pub/linux/kernel/v${KV_MAJOR}.${KV_MINOR}" + fi + + [[ -n "${K_LONGTERM}" ]] && + #KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm" + KERNEL_BASE_URI="${KERNEL_BASE_URI}/longterm/v${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + fi + + debug-print "KERNEL_BASE_URI is ${KERNEL_BASE_URI}" + + if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then + # handle non genpatch using sources correctly + if [[ -z ${K_WANT_GENPATCHES} && -z ${K_GENPATCHES_VER} && ${KV_PATCH} -gt 0 ]]; then + KERNEL_URI="${KERNEL_BASE_URI}/patch-${OKV}.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz" + fi + KERNEL_URI="${KERNEL_URI} ${KERNEL_BASE_URI}/linux-${KV_MAJOR}.${KV_MINOR}.tar.xz" + else + KERNEL_URI="${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + fi + + RELEASE=${CKV/${OKV}} + RELEASE=${RELEASE/_beta} + RELEASE=${RELEASE/_rc/-rc} + RELEASE=${RELEASE/_pre/-pre} + # We cannot trivally call kernel_is here, because it calls us to detect the + # version + #kernel_is ge 2 6 && RELEASE=${RELEASE/-pre/-git} + [ $(($KV_MAJOR * 1000 + ${KV_MINOR:-0})) -ge 2006 ] && RELEASE=${RELEASE/-pre/-git} + RELEASETYPE=${RELEASE//[0-9]} + + # Now we know that RELEASE is the -rc/-git + # and RELEASETYPE is the same but with its numerics stripped + # we can work on better sorting EXTRAVERSION. + # first of all, we add the release + EXTRAVERSION="${RELEASE}" + debug-print "0 EXTRAVERSION:${EXTRAVERSION}" + [[ -n ${KV_EXTRA} ]] && [[ ${KV_MAJOR} -lt 3 ]] && EXTRAVERSION=".${KV_EXTRA}${EXTRAVERSION}" + + debug-print "1 EXTRAVERSION:${EXTRAVERSION}" + if [[ -n "${K_NOUSEPR}" ]]; then + # Don't add anything based on PR to EXTRAVERSION + debug-print "1.0 EXTRAVERSION:${EXTRAVERSION}" + elif [[ -n ${K_PREPATCHED} ]]; then + debug-print "1.1 EXTRAVERSION:${EXTRAVERSION}" + EXTRAVERSION="${EXTRAVERSION}-${PN/-*}${PR/r}" + elif [[ "${ETYPE}" = "sources" ]]; then + debug-print "1.2 EXTRAVERSION:${EXTRAVERSION}" + # For some sources we want to use the PV in the extra version + # This is because upstream releases with a completely different + # versioning scheme. + case ${PN/-*} in + wolk) K_USEPV=1;; + vserver) K_USEPV=1;; + esac + + [[ -z "${K_NOUSENAME}" ]] && EXTRAVERSION="${EXTRAVERSION}-${PN/-*}" + [[ -n "${K_USEPV}" ]] && EXTRAVERSION="${EXTRAVERSION}-${PV//_/-}" + [[ -n "${PR//r0}" ]] && EXTRAVERSION="${EXTRAVERSION}-${PR}" + fi + debug-print "2 EXTRAVERSION:${EXTRAVERSION}" + + # The only messing around which should actually effect this is for KV_EXTRA + # since this has to limit OKV to MAJ.MIN.PAT and strip EXTRA off else + # KV_FULL evaluates to MAJ.MIN.PAT.EXT.EXT after EXTRAVERSION + + if [[ -n ${KV_EXTRA} ]]; then + if [[ -n ${KV_MINOR} ]]; then + OKV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + else + OKV="${KV_MAJOR}.${KV_PATCH}" + fi + KERNEL_URI="${KERNEL_BASE_URI}/patch-${CKV}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV}.xz" + fi + + # We need to set this using OKV, but we need to set it before we do any + # messing around with OKV based on RELEASETYPE + KV_FULL=${OKV}${EXTRAVERSION} + + # we will set this for backwards compatibility. + S="${WORKDIR}"/linux-${KV_FULL} + KV=${KV_FULL} + + # -rc-git pulls can be achieved by specifying CKV + # for example: + # CKV="2.6.11_rc3_pre2" + # will pull: + # linux-2.6.10.tar.xz & patch-2.6.11-rc3.xz & patch-2.6.11-rc3-git2.xz + + if [[ ${KV_MAJOR}${KV_MINOR} -eq 26 ]]; then + + if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then + OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" + KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz" + fi + + if [[ ${RELEASETYPE} == -git ]]; then + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz" + fi + + if [[ ${RELEASETYPE} == -rc-git ]]; then + OKV="${KV_MAJOR}.${KV_MINOR}.$((${KV_PATCH} - 1))" + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz + ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${RELEASE}.xz" + fi + else + KV_PATCH_ARR=(${KV_PATCH//\./ }) + + # the different majorminor versions have different patch start versions + OKV_DICT=(["2"]="${KV_MAJOR}.$((${KV_PATCH_ARR} - 1))" ["3"]="2.6.39" ["4"]="3.19") + + if [[ ${RELEASETYPE} == -rc ]] || [[ ${RELEASETYPE} == -pre ]]; then + + OKV=${K_BASE_VER:-$OKV_DICT["${KV_MAJOR}"]} + + # as of 12/5/2017, the rc patch is no longer offered as a compressed + # file, and no longer is it mirrored on kernel.org + if ver_test "${KV_MAJOR}.${KV_PATCH}" -ge "4.12"; then + KERNEL_URI="https://git.kernel.org/torvalds/p/v${KV_FULL}/v${OKV} -> patch-${KV_FULL}.patch + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.patch" + else + KERNEL_URI="${KERNEL_BASE_URI}/testing/patch-${CKV//_/-}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${CKV//_/-}.xz" + fi + fi + + if [[ ${RELEASETYPE} == -git ]]; then + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${OKV}${RELEASE}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${OKV}${RELEASE}.xz" + fi + + if [[ ${RELEASETYPE} == -rc-git ]]; then + OKV=${K_BASE_VER:-$OKV_DICT["${KV_MAJOR}"]} + KERNEL_URI="${KERNEL_BASE_URI}/snapshots/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz + ${KERNEL_BASE_URI}/testing/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz + ${KERNEL_BASE_URI}/linux-${OKV}.tar.xz" + + UNIPATCH_LIST_DEFAULT="${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE/-git*}.xz ${DISTDIR}/patch-${KV_MAJOR}.${KV_PATCH}${RELEASE}.xz" + fi + + + fi + + debug-print-kernel2-variables + + handle_genpatches +} + +# @FUNCTION: kernel_is +# @USAGE: +# @DESCRIPTION: +# user for comparing kernel versions +# or just identifying a version +# e.g kernel_is 2 4 +# e.g kernel_is ge 4.8.11 +# Note: duplicated in linux-info.eclass +kernel_is() { + # ALL of these should be set before we can safely continue this function. + # some of the sources have in the past had only one set. + local v n=0 + for v in OKV KV_{MAJOR,MINOR,PATCH} ; do [[ -z ${!v} ]] && n=1 ; done + [[ $n -eq 1 ]] && detect_version + unset v n + + # Now we can continue + local operator test value + + case ${1#-} in + lt) operator="-lt"; shift;; + gt) operator="-gt"; shift;; + le) operator="-le"; shift;; + ge) operator="-ge"; shift;; + eq) operator="-eq"; shift;; + *) operator="-eq";; + esac + [[ $# -gt 3 ]] && die "Error in kernel-2-src-prepare-overlay_kernel_is(): too many parameters" + + : $(( test = (KV_MAJOR << 16) + (KV_MINOR << 8) + KV_PATCH )) + : $(( value = (${1:-${KV_MAJOR}} << 16) + (${2:-${KV_MINOR}} << 8) + ${3:-${KV_PATCH}} )) + [ ${test} ${operator} ${value} ] +} + +# @FUNCTION: kernel_is_2_4 +# @USAGE: +# @DESCRIPTION: +# return true if kernel is version 2.4 +kernel_is_2_4() { + kernel_is 2 4 +} + +# @FUNCTION: kernel_is_2_6 +# @USAGE: +# @DESCRIPTION: +# return true if kernel is version 2.6 +kernel_is_2_6() { + kernel_is 2 6 || kernel_is 2 5 +} + +# Capture the sources type and set DEPENDs +if [[ ${ETYPE} == sources ]]; then + DEPEND="!build? ( + sys-apps/sed + >=sys-devel/binutils-2.11.90.0.31 + sys-devel/bison + sys-devel/flex + )" + RDEPEND="!build? ( + dev-lang/perl + sys-devel/bc + sys-devel/make + >=sys-libs/ncurses-5.2 + virtual/libelf + )" + + SLOT="${PVR}" + DESCRIPTION="Sources based on the Linux Kernel." + IUSE="symlink build" + + # Bug #266157, deblob for libre support + if [[ -z ${K_PREDEBLOBBED} ]] ; then + # Bug #359865, force a call to detect_version if needed + kernel_is ge 2 6 27 && \ + [[ -z "${K_DEBLOB_AVAILABLE}" ]] && \ + kernel_is le 2 6 ${DEBLOB_MAX_VERSION} && \ + K_DEBLOB_AVAILABLE=1 + if [[ ${K_DEBLOB_AVAILABLE} == "1" ]] ; then + PYTHON_COMPAT=( python2_7 ) + + inherit python-any-r1 + + IUSE="${IUSE} deblob" + + # Reflect that kernels contain firmware blobs unless otherwise + # stripped. Starting with version 4.14, the whole firmware + # tree has been dropped from the kernel. + kernel_is lt 4 14 && LICENSE+=" !deblob? ( linux-firmware )" + + DEPEND+=" deblob? ( ${PYTHON_DEPS} )" + + if [[ -n KV_MINOR ]]; then + DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}" + else + DEBLOB_PV="${KV_MAJOR}.${KV_PATCH}" + fi + + if [[ ${KV_MAJOR} -ge 3 ]]; then + DEBLOB_PV="${KV_MAJOR}.${KV_MINOR}" + fi + + # deblob svn tag, default is -gnu, to change, use K_DEBLOB_TAG in ebuild + K_DEBLOB_TAG=${K_DEBLOB_TAG:--gnu} + DEBLOB_A="deblob-${DEBLOB_PV}" + DEBLOB_CHECK_A="deblob-check-${DEBLOB_PV}" + DEBLOB_HOMEPAGE="https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/tags/" + DEBLOB_URI_PATH="${DEBLOB_PV}${K_DEBLOB_TAG}" + DEBLOB_CHECK_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/deblob-check -> ${DEBLOB_CHECK_A}" + DEBLOB_URI="${DEBLOB_HOMEPAGE}/${DEBLOB_URI_PATH}/${DEBLOB_A}" + HOMEPAGE="${HOMEPAGE} ${DEBLOB_HOMEPAGE}" + + KERNEL_URI="${KERNEL_URI} + deblob? ( + ${DEBLOB_URI} + ${DEBLOB_CHECK_URI} + )" + elif kernel_is lt 4 14; then + # Deblobbing is not available, so just mark kernels older + # than 4.14 as tainted with non-libre materials. + LICENSE+=" linux-firmware" + fi + fi + +elif [[ ${ETYPE} == headers ]]; then + DESCRIPTION="Linux system headers" + IUSE="headers-only" + + # Since we should NOT honour KBUILD_OUTPUT in headers + # lets unset it here. + unset KBUILD_OUTPUT + + SLOT="0" +fi + +# Cross-compile support functions + +# @FUNCTION: kernel_header_destdir +# @USAGE: +# @DESCRIPTION: +# return header destination directory +kernel_header_destdir() { + [[ ${CTARGET} == ${CHOST} ]] \ + && echo /usr/include \ + || echo /usr/${CTARGET}/usr/include +} + +# @FUNCTION: cross_pre_c_headers +# @USAGE: +# @DESCRIPTION: +# set use if necessary for cross compile support +cross_pre_c_headers() { + use headers-only && [[ ${CHOST} != ${CTARGET} ]] +} + +# @FUNCTION: env_setup_xmakeopts +# @USAGE: +# @DESCRIPTION: +# set the ARCH/CROSS_COMPILE when cross compiling + +env_setup_xmakeopts() { + # Kernel ARCH != portage ARCH + export KARCH=$(tc-arch-kernel) + + # When cross-compiling, we need to set the ARCH/CROSS_COMPILE + # variables properly or bad things happen ! + xmakeopts="ARCH=${KARCH}" + if [[ ${CTARGET} != ${CHOST} ]] && ! cross_pre_c_headers ; then + xmakeopts="${xmakeopts} CROSS_COMPILE=${CTARGET}-" + elif type -p ${CHOST}-ar > /dev/null ; then + xmakeopts="${xmakeopts} CROSS_COMPILE=${CHOST}-" + fi + export xmakeopts +} + +# @FUNCTION: unpack_2_4 +# @USAGE: +# @DESCRIPTION: +# unpack and generate .config for 2.4 kernels + +unpack_2_4() { + # this file is required for other things to build properly, + # so we autogenerate it + make -s mrproper ${xmakeopts} || die "make mrproper failed" + make -s symlinks ${xmakeopts} || die "make symlinks failed" + make -s include/linux/version.h ${xmakeopts} || die "make include/linux/version.h failed" + echo ">>> version.h compiled successfully." +} + +# @FUNCTION: unpack_2_6 +# @USAGE: +# @DESCRIPTION: +# unpack and generate .config for 2.6 kernels + +unpack_2_6() { + # this file is required for other things to build properly, so we + # autogenerate it ... generate a .config to keep version.h build from + # spitting out an annoying warning + make -s mrproper ${xmakeopts} 2>/dev/null \ + || die "make mrproper failed" + + # quick fix for bug #132152 which triggers when it cannot include linux + # headers (ie, we have not installed it yet) + if ! make -s defconfig ${xmakeopts} &>/dev/null 2>&1 ; then + touch .config + eerror "make defconfig failed." + eerror "assuming you dont have any headers installed yet and continuing" + fi + + make -s include/linux/version.h ${xmakeopts} 2>/dev/null \ + || die "make include/linux/version.h failed" + rm -f .config >/dev/null +} + +# @FUNCTION: universal_unpack +# @USAGE: +# @DESCRIPTION: +# unpack kernel sources + +universal_unpack() { + debug-print "Inside universal_unpack" + + local OKV_ARRAY + IFS="." read -r -a OKV_ARRAY <<<"${OKV}" + + cd "${WORKDIR}" + if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then + unpack linux-${KV_MAJOR}.${KV_MINOR}.tar.xz + else + unpack linux-${OKV}.tar.xz + fi + + if [[ -d "linux" ]]; then + debug-print "Moving linux to linux-${KV_FULL}" + mv linux linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + elif [[ "${OKV}" != "${KV_FULL}" ]]; then + if [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]] && + [[ "${ETYPE}" = "sources" ]]; then + debug-print "moving linux-${KV_MAJOR}.${KV_MINOR} to linux-${KV_FULL} " + mv linux-${KV_MAJOR}.${KV_MINOR} linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + else + debug-print "moving linux-${OKV} to linux-${KV_FULL} " + mv linux-${OKV} linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + fi + elif [[ ${#OKV_ARRAY[@]} -ge 3 ]] && [[ ${KV_MAJOR} -ge 3 ]]; then + mv linux-${KV_MAJOR}.${KV_MINOR} linux-${KV_FULL} \ + || die "Unable to move source tree to ${KV_FULL}." + fi + cd "${S}" + + # remove all backup files + find . -iname "*~" -exec rm {} \; 2> /dev/null + +} + +# @FUNCTION: unpack_set_extraversion +# @USAGE: +# @DESCRIPTION: +# handle EXTRAVERSION + +unpack_set_extraversion() { + cd "${S}" + sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile + cd "${OLDPWD}" +} + +# @FUNCTION: unpack_fix_install_path +# @USAGE: +# @DESCRIPTION: +# Should be done after patches have been applied +# Otherwise patches that modify the same area of Makefile will fail + +unpack_fix_install_path() { + cd "${S}" + sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile +} + +# Compile Functions + +# @FUNCTION: compile_headers +# @USAGE: +# @DESCRIPTION: +# header compilation + +compile_headers() { + env_setup_xmakeopts + + # if we couldnt obtain HOSTCFLAGS from the Makefile, + # then set it to something sane + local HOSTCFLAGS=$(getfilevar HOSTCFLAGS "${S}"/Makefile) + HOSTCFLAGS=${HOSTCFLAGS:--Wall -Wstrict-prototypes -O2 -fomit-frame-pointer} + + if kernel_is 2 4; then + yes "" | make oldconfig ${xmakeopts} + echo ">>> make oldconfig complete" + make dep ${xmakeopts} + elif kernel_is 2 6; then + # 2.6.18 introduces headers_install which means we dont need any + # of this crap anymore :D + kernel_is ge 2 6 18 && return 0 + + # autoconf.h isnt generated unless it already exists. plus, we have + # no guarantee that any headers are installed on the system... + [[ -f ${EROOT}usr/include/linux/autoconf.h ]] \ + || touch include/linux/autoconf.h + + # if K_DEFCONFIG isn't set, force to "defconfig" + # needed by mips + if [[ -z ${K_DEFCONFIG} ]]; then + if kernel_is ge 2 6 16 ; then + case ${CTARGET} in + powerpc64*) K_DEFCONFIG="ppc64_defconfig";; + powerpc*) K_DEFCONFIG="pmac32_defconfig";; + *) K_DEFCONFIG="defconfig";; + esac + else + K_DEFCONFIG="defconfig" + fi + fi + + # if there arent any installed headers, then there also isnt an asm + # symlink in /usr/include/, and make defconfig will fail, so we have + # to force an include path with $S. + HOSTCFLAGS="${HOSTCFLAGS} -I${S}/include/" + ln -sf asm-${KARCH} "${S}"/include/asm || die + cross_pre_c_headers && return 0 + + make ${K_DEFCONFIG} HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "defconfig failed (${K_DEFCONFIG})" + if compile_headers_tweak_config ; then + yes "" | make oldconfig HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "2nd oldconfig failed" + fi + make prepare HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "prepare failed" + make prepare-all HOSTCFLAGS="${HOSTCFLAGS}" ${xmakeopts} || die "prepare failed" + fi +} + +# @FUNCTION: compile_headers_tweak_config +# @USAGE: +# @DESCRIPTION: +# some targets can be very very picky, so let's finesse the +# .config based upon any info we may have + +compile_headers_tweak_config() { + case ${CTARGET} in + sh*) + sed -i '/CONFIG_CPU_SH/d' .config || die + echo "CONFIG_CPU_SH${CTARGET:2:1}=y" >> .config + return 0;; + esac + + # no changes, so lets do nothing + return 1 +} + +# install functions + +# @FUNCTION: install_universal +# @USAGE: +# @DESCRIPTION: +# Fix permissions in tarball + +install_universal() { + cd "${WORKDIR}" + chown -R 0:0 * >& /dev/null + chmod -R a+r-w+X,u+w * + cd ${OLDPWD} +} + +# @FUNCTION: install_headers +# @USAGE: +# @DESCRIPTION: +# Install headers + +install_headers() { + local ddir=$(kernel_header_destdir) + + # 2.6.18 introduces headers_install which means we dont need any + # of this crap anymore :D + if kernel_is ge 2 6 18 ; then + env_setup_xmakeopts + emake headers_install INSTALL_HDR_PATH="${ED}"${ddir}/.. ${xmakeopts} || die + + # let other packages install some of these headers + rm -rf "${ED}"${ddir}/scsi || die #glibc/uclibc/etc... + return 0 + fi + + # Do not use "linux/*" as that can cause problems with very long + # $S values where the cmdline to cp is too long + pushd "${S}" >/dev/null + dodir ${ddir}/linux + cp -pPR "${S}"/include/linux "${ED}"${ddir}/ || die + rm -rf "${ED}"${ddir}/linux/modules || die + + dodir ${ddir}/asm + cp -pPR "${S}"/include/asm/* "${ED}"${ddir}/asm || die + + if kernel_is 2 6 ; then + dodir ${ddir}/asm-generic + cp -pPR "${S}"/include/asm-generic/* "${ED}"${ddir}/asm-generic || die + fi + + # clean up + find "${D}" -name '*.orig' -exec rm -f {} \; + + popd >/dev/null +} + +# @FUNCTION: install_sources +# @USAGE: +# @DESCRIPTION: +# Install sources + +install_sources() { + local file + + cd "${S}" + dodir /usr/src + echo ">>> Copying sources ..." + + file="$(find ${WORKDIR} -iname "docs" -type d)" + if [[ -n ${file} ]]; then + for file in $(find ${file} -type f); do + echo "${file//*docs\/}" >> "${S}"/patches.txt + echo "===================================================" >> "${S}"/patches.txt + cat ${file} >> "${S}"/patches.txt + echo "===================================================" >> "${S}"/patches.txt + echo "" >> "${S}"/patches.txt + done + fi + + mv "${WORKDIR}"/linux* "${ED}"usr/src || die + + if [[ -n "${UNIPATCH_DOCS}" ]] ; then + for i in ${UNIPATCH_DOCS}; do + dodoc "${T}"/${i} + done + fi +} + +# @FUNCTION: preinst_headers +# @USAGE: +# @DESCRIPTION: +# Headers preinst steps + +preinst_headers() { + local ddir=$(kernel_header_destdir) + [[ -L ${EPREFIX}${ddir}/linux ]] && { rm "${EPREFIX}"${ddir}/linux || die; } + [[ -L ${EPREFIX}${ddir}/asm ]] && { rm "${EPREFIX}"${ddir}/asm || die; } +} + +# @FUNCTION: postinst_sources +# @USAGE: +# @DESCRIPTION: +# Sources post installation function. +# see inline comments + +postinst_sources() { + local MAKELINK=0 + + # if we have USE=symlink, then force K_SYMLINK=1 + use symlink && K_SYMLINK=1 + + # We do support security on a deblobbed kernel, bug #555878. + # If some particular kernel version doesn't have security + # supported because of USE=deblob or otherwise, one can still + # set K_SECURITY_UNSUPPORTED on a per ebuild basis. + #[[ $K_DEBLOB_AVAILABLE == 1 ]] && \ + # use deblob && \ + # K_SECURITY_UNSUPPORTED=deblob + + # if we are to forcably symlink, delete it if it already exists first. + if [[ ${K_SYMLINK} > 0 ]]; then + [[ -h ${EROOT}usr/src/linux ]] && { rm "${EROOT}"usr/src/linux || die; } + MAKELINK=1 + fi + + # if the link doesnt exist, lets create it + [[ ! -h ${EROOT}usr/src/linux ]] && MAKELINK=1 + + if [[ ${MAKELINK} == 1 ]]; then + ln -sf linux-${KV_FULL} "${EROOT}"usr/src/linux || die + fi + + # Don't forget to make directory for sysfs + [[ ! -d ${EROOT}sys ]] && kernel_is 2 6 && { mkdir "${EROOT}"sys || die ; } + + echo + elog "If you are upgrading from a previous kernel, you may be interested" + elog "in the following document:" + elog " - General upgrade guide: https://wiki.gentoo.org/wiki/Kernel/Upgrade" + echo + + # if K_EXTRAEINFO is set then lets display it now + if [[ -n ${K_EXTRAEINFO} ]]; then + echo ${K_EXTRAEINFO} | fmt | + while read -s ELINE; do einfo "${ELINE}"; done + fi + + # if K_EXTRAELOG is set then lets display it now + if [[ -n ${K_EXTRAELOG} ]]; then + echo ${K_EXTRAELOG} | fmt | + while read -s ELINE; do elog "${ELINE}"; done + fi + + # if K_EXTRAEWARN is set then lets display it now + if [[ -n ${K_EXTRAEWARN} ]]; then + echo ${K_EXTRAEWARN} | fmt | + while read -s ELINE; do ewarn "${ELINE}"; done + fi + + # optionally display security unsupported message + # Start with why + if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then + ewarn "${PN} is UNSUPPORTED by Gentoo Security." + fi + # And now the general message. + if [[ -n ${K_SECURITY_UNSUPPORTED} ]]; then + ewarn "This means that it is likely to be vulnerable to recent security issues." + echo + ewarn "Upstream kernel developers recommend always running the latest " + ewarn "release of any current long term supported Linux kernel version." + ewarn "To see a list of these versions, their most current release and " + ewarn "long term support status, please go to https://www.kernel.org ." + echo + ewarn "For specific information on why this kernel is unsupported, please read:" + ewarn "https://wiki.gentoo.org/wiki/Project:Kernel_Security" + fi + + # warn sparc users that they need to do cross-compiling with >= 2.6.25(bug #214765) + KV_MAJOR=$(ver_cut 1 ${OKV}) + KV_MINOR=$(ver_cut 2 ${OKV}) + KV_PATCH=$(ver_cut 3 ${OKV}) + if [[ "$(tc-arch)" = "sparc" ]]; then + if [[ $(gcc-major-version) -lt 4 && $(gcc-minor-version) -lt 4 ]]; then + if [[ ${KV_MAJOR} -ge 3 || ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.24 ]] ; then + echo + elog "NOTE: Since 2.6.25 the kernel Makefile has changed in a way that" + elog "you now need to do" + elog " make CROSS_COMPILE=sparc64-unknown-linux-gnu-" + elog "instead of just" + elog " make" + elog "to compile the kernel. For more information please browse to" + elog "https://bugs.gentoo.org/show_bug.cgi?id=214765" + echo + fi + fi + fi +} + +# pkg_setup functions + +# @FUNCTION: setup_headers +# @USAGE: +# @DESCRIPTION: +# Determine if ${PN} supports arch + +setup_headers() { + [[ -z ${H_SUPPORTEDARCH} ]] && H_SUPPORTEDARCH=${PN/-*/} + for i in ${H_SUPPORTEDARCH}; do + [[ $(tc-arch) == "${i}" ]] && H_ACCEPT_ARCH="yes" + done + + if [[ ${H_ACCEPT_ARCH} != "yes" ]]; then + echo + eerror "This version of ${PN} does not support $(tc-arch)." + eerror "Please merge the appropriate sources, in most cases" + eerror "(but not all) this will be called $(tc-arch)-headers." + die "Package unsupported for $(tc-arch)" + fi +} + +# @FUNCTION: unipatch +# @USAGE: +# @DESCRIPTION: +# Universal function that will apply patches to source + +unipatch() { + local i x y z extention PIPE_CMD UNIPATCH_DROP KPATCH_DIR PATCH_DEPTH ELINE + local STRICT_COUNT PATCH_LEVEL myLC_ALL myLANG + + # set to a standard locale to ensure sorts are ordered properly. + myLC_ALL="${LC_ALL}" + myLANG="${LANG}" + LC_ALL="C" + LANG="" + + [ -z "${KPATCH_DIR}" ] && KPATCH_DIR="${WORKDIR}/patches/" + [ ! -d ${KPATCH_DIR} ] && mkdir -p ${KPATCH_DIR} + + # We're gonna need it when doing patches with a predefined patchlevel + eshopts_push -s extglob + + # This function will unpack all passed tarballs, add any passed patches, + # and remove any passed patchnumbers + # usage can be either via an env var or by params + # although due to the nature we pass this within this eclass + # it shall be by param only. + # -z "${UNIPATCH_LIST}" ] && UNIPATCH_LIST="${@}" + UNIPATCH_LIST="${@}" + + #unpack any passed tarballs + for i in ${UNIPATCH_LIST}; do + if echo ${i} | grep -qs -e "\.tar" -e "\.tbz" -e "\.tgz" ; then + if [ -n "${UNIPATCH_STRICTORDER}" ]; then + unset z + STRICT_COUNT=$((10#${STRICT_COUNT} + 1)) + for((y=0; y<$((6 - ${#STRICT_COUNT})); y++)); + do z="${z}0"; + done + PATCH_ORDER="${z}${STRICT_COUNT}" + + mkdir -p "${KPATCH_DIR}/${PATCH_ORDER}" + pushd "${KPATCH_DIR}/${PATCH_ORDER}" >/dev/null + unpack ${i##*/} + popd >/dev/null + else + pushd "${KPATCH_DIR}" >/dev/null + unpack ${i##*/} + popd >/dev/null + fi + + [[ ${i} == *:* ]] && echo ">>> Strict patch levels not currently supported for tarballed patchsets" + else + extention=${i/*./} + extention=${extention/:*/} + PIPE_CMD="" + case ${extention} in + xz) PIPE_CMD="xz -dc";; + lzma) PIPE_CMD="lzma -dc";; + bz2) PIPE_CMD="bzip2 -dc";; + patch*) PIPE_CMD="cat";; + diff) PIPE_CMD="cat";; + gz|Z|z) PIPE_CMD="gzip -dc";; + ZIP|zip) PIPE_CMD="unzip -p";; + *) UNIPATCH_DROP="${UNIPATCH_DROP} ${i/:*/}";; + esac + + PATCH_LEVEL=${i/*([^:])?(:)} + i=${i/:*/} + x=${i/*\//} + x=${x/\.${extention}/} + + if [ -n "${PIPE_CMD}" ]; then + if [ ! -r "${i}" ]; then + echo + eerror "FATAL: unable to locate:" + eerror "${i}" + eerror "for read-only. The file either has incorrect permissions" + eerror "or does not exist." + die Unable to locate ${i} + fi + + if [ -n "${UNIPATCH_STRICTORDER}" ]; then + unset z + STRICT_COUNT=$((10#${STRICT_COUNT} + 1)) + for((y=0; y<$((6 - ${#STRICT_COUNT})); y++)); + do z="${z}0"; + done + PATCH_ORDER="${z}${STRICT_COUNT}" + + mkdir -p ${KPATCH_DIR}/${PATCH_ORDER}/ + $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${PATCH_ORDER}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed" + else + $(${PIPE_CMD} ${i} > ${KPATCH_DIR}/${x}.patch${PATCH_LEVEL}) || die "uncompressing patch failed" + fi + fi + fi + + # If experimental was not chosen by the user, drop experimental patches not in K_EXP_GENPATCHES_LIST. + if [[ "${i}" == *"genpatches-"*".experimental."* && -n ${K_EXP_GENPATCHES_PULL} ]] ; then + if [[ -z ${K_EXP_GENPATCHES_NOUSE} ]] && use experimental; then + continue + fi + + local j + for j in ${KPATCH_DIR}/*/50*_*.patch*; do + for k in ${K_EXP_GENPATCHES_LIST} ; do + [[ "$(basename ${j})" == ${k}* ]] && continue 2 + done + UNIPATCH_DROP+=" $(basename ${j})" + done + else + UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}" + debug-print "genpatches tarball: $tarball" + + local GCC_MAJOR_VER=$(gcc-major-version) + local GCC_MINOR_VER=$(gcc-minor-version) + + # optimization patch for gcc < 8.X and kernel > 4.13 + if kernel_is ge 4 13 ; then + if [[ ${GCC_MAJOR_VER} -lt 8 ]] && [[ ${GCC_MAJOR_VER} -gt 4 ]]; then + UNIPATCH_DROP+=" 5011_enable-cpu-optimizations-for-gcc8.patch" + UNIPATCH_DROP+=" 5012_enable-cpu-optimizations-for-gcc91.patch" + # optimization patch for gcc >= 8 and kernel ge 4.13 + elif [[ "${GCC_MAJOR_VER}" -eq 8 ]]; then + # support old kernels for a period. For now, remove as all gcc versions required are masked + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc.patch" + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch" + UNIPATCH_DROP+=" 5012_enable-cpu-optimizations-for-gcc91.patch" + elif [[ "${GCC_MAJOR_VER}" -eq 9 ]] && [[ ${GCC_MINOR_VER} -ge 1 ]]; then + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc.patch" + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch" + UNIPATCH_DROP+=" 5011_enable-cpu-optimizations-for-gcc8.patch" + else + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc.patch" + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch" + UNIPATCH_DROP+=" 5011_enable-cpu-optimizations-for-gcc8.patch" + UNIPATCH_DROP+=" 5012_enable-cpu-optimizations-for-gcc91.patch" + fi + else + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc.patch" + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch" + UNIPATCH_DROP+=" 5011_enable-cpu-optimizations-for-gcc8.patch" + UNIPATCH_DROP+=" 5012_enable-cpu-optimizations-for-gcc91.patch" + fi + fi + done + + #populate KPATCH_DIRS so we know where to look to remove the excludes + x=${KPATCH_DIR} + KPATCH_DIR="" + for i in $(find ${x} -type d | sort -n); do + KPATCH_DIR="${KPATCH_DIR} ${i}" + done + + # do not apply fbcondecor patch to sparc/sparc64 as it breaks boot + # bug #272676 + if [[ "$(tc-arch)" = "sparc" || "$(tc-arch)" = "sparc64" ]]; then + if [[ ${KV_MAJOR} -ge 3 || ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} > 2.6.28 ]]; then + if [[ ! -z ${K_WANT_GENPATCHES} ]] ; then + UNIPATCH_DROP="${UNIPATCH_DROP} *_fbcondecor*.patch" + echo + ewarn "fbcondecor currently prevents sparc/sparc64 from booting" + ewarn "for kernel versions >= 2.6.29. Removing fbcondecor patch." + ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=272676 for details" + echo + fi + fi + fi + + #so now lets get rid of the patchno's we want to exclude + UNIPATCH_DROP="${UNIPATCH_EXCLUDE} ${UNIPATCH_DROP}" + for i in ${UNIPATCH_DROP}; do + ebegin "Excluding Patch #${i}" + for x in ${KPATCH_DIR}; do rm -f ${x}/${i}* 2>/dev/null; done + eend $? + done + + # and now, finally, we patch it :) + for x in ${KPATCH_DIR}; do + for i in $(find ${x} -maxdepth 1 -iname "*.patch*" -or -iname "*.diff*" | sort -n); do + STDERR_T="${T}/${i/*\//}" + STDERR_T="${STDERR_T/.patch*/.err}" + + [ -z ${i/*.patch*/} ] && PATCH_DEPTH=${i/*.patch/} + #[ -z ${i/*.diff*/} ] && PATCH_DEPTH=${i/*.diff/} + + if [ -z "${PATCH_DEPTH}" ]; then PATCH_DEPTH=0; fi + + #################################################################### + # IMPORTANT: This is temporary code to support Linux git 3.15_rc1! # + # # + # The patch contains a removal of a symlink, followed by addition # + # of a file with the same name as the symlink in the same # + # location; this causes the dry-run to fail, filed bug #507656. # + # # + # https://bugs.gentoo.org/show_bug.cgi?id=507656 # + #################################################################### + if [[ -n ${K_FROM_GIT} ]] ; then + if [[ ${KV_MAJOR} -gt 3 || ( ${KV_MAJOR} -eq 3 && ${KV_PATCH} -gt 15 ) && + ${RELEASETYPE} == -rc ]] ; then + ebegin "Applying ${i/*\//} (-p1)" + if [ $(patch -p1 --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -le 2 ]; then + eend 0 + rm ${STDERR_T} || die + break + else + eend 1 + eerror "Failed to apply patch ${i/*\//}" + eerror "Please attach ${STDERR_T} to any bug you may post." + eshopts_pop + die "Failed to apply ${i/*\//} on patch depth 1." + fi + fi + fi + #################################################################### + + while [ ${PATCH_DEPTH} -lt 5 ]; do + echo "Attempting Dry-run:" >> ${STDERR_T} + echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i}" >> ${STDERR_T} + echo "=======================================================" >> ${STDERR_T} + if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch --dry-run -f < ${i} >> ${STDERR_T}) $? -eq 0 ]; then + ebegin "Applying ${i/*\//} (-p${PATCH_DEPTH})" + echo "Attempting patch:" > ${STDERR_T} + echo "cmd: patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i}" >> ${STDERR_T} + echo "=======================================================" >> ${STDERR_T} + if [ $(patch -p${PATCH_DEPTH} --no-backup-if-mismatch -f < ${i} >> ${STDERR_T}) "$?" -eq 0 ]; then + eend 0 + rm ${STDERR_T} || die + break + else + eend 1 + eerror "Failed to apply patch ${i/*\//}" + eerror "Please attach ${STDERR_T} to any bug you may post." + eshopts_pop + die "Failed to apply ${i/*\//} on patch depth ${PATCH_DEPTH}." + fi + else + PATCH_DEPTH=$((${PATCH_DEPTH} + 1)) + fi + done + if [ ${PATCH_DEPTH} -eq 5 ]; then + eerror "Failed to dry-run patch ${i/*\//}" + eerror "Please attach ${STDERR_T} to any bug you may post." + eshopts_pop + die "Unable to dry-run patch on any patch depth lower than 5." + fi + done + done + + # When genpatches is used, we want to install 0000_README which documents + # the patches that were used; such that the user can see them, bug #301478. + if [[ ! -z ${K_WANT_GENPATCHES} ]] ; then + UNIPATCH_DOCS="${UNIPATCH_DOCS} 0000_README" + fi + + # When files listed in UNIPATCH_DOCS are found in KPATCH_DIR's, we copy it + # to the temporary directory and remember them in UNIPATCH_DOCS to install + # them during the install phase. + local tmp + for x in ${KPATCH_DIR}; do + for i in ${UNIPATCH_DOCS}; do + if [[ -f ${x}/${i} ]] ; then + tmp="${tmp} ${i}" + cp -f "${x}/${i}" "${T}"/ || die + fi + done + done + UNIPATCH_DOCS="${tmp}" + + # clean up KPATCH_DIR's - fixes bug #53610 + for x in ${KPATCH_DIR}; do rm -Rf ${x}; done + + LC_ALL="${myLC_ALL}" + LANG="${myLANG}" + eshopts_pop +} + +# @FUNCTION: getfilevar +# @USAGE: +# @DESCRIPTION: +# pulled from linux-info + +getfilevar() { + local workingdir basefname basedname xarch=$(tc-arch-kernel) + + if [[ -z ${1} ]] && [[ ! -f ${2} ]]; then + echo -e "\n" + eerror "getfilevar requires 2 variables, with the second a valid file." + eerror " getfilevar " + else + workingdir=${PWD} + basefname=$(basename ${2}) + basedname=$(dirname ${2}) + unset ARCH + + cd ${basedname} + echo -e "include ${basefname}\ne:\n\t@echo \$(${1})" | \ + make ${BUILD_FIXES} -s -f - e 2>/dev/null + cd ${workingdir} + + ARCH=${xarch} + fi +} + +# @FUNCTION: detect_arch +# @USAGE: +# @DESCRIPTION: +# This function sets ARCH_URI and ARCH_PATCH +# with the neccessary info for the arch sepecific compatibility +# patchsets. + +detect_arch() { + + local ALL_ARCH LOOP_ARCH LOOP_ARCH_L COMPAT_URI i TC_ARCH_KERNEL + + # COMPAT_URI is the contents of ${ARCH}_URI + # ARCH_URI is the URI for all the ${ARCH}_URI patches + # ARCH_PATCH is ARCH_URI broken into files for UNIPATCH + + ARCH_URI="" + ARCH_PATCH="" + TC_ARCH_KERNEL="" + ALL_ARCH="ALPHA AMD64 ARM HPPA IA64 M68K MIPS PPC PPC64 S390 SH SPARC X86" + + for LOOP_ARCH in ${ALL_ARCH}; do + COMPAT_URI="${LOOP_ARCH}_URI" + COMPAT_URI="${!COMPAT_URI}" + + declare -l LOOP_ARCH_L=${LOOP_ARCH} + + [[ -n ${COMPAT_URI} ]] && \ + ARCH_URI="${ARCH_URI} ${LOOP_ARCH_L}? ( ${COMPAT_URI} )" + + declare -u TC_ARCH_KERNEL=$(tc-arch-kernel) + if [[ ${LOOP_ARCH} == ${TC_ARCH_KERNEL} ]]; then + for i in ${COMPAT_URI}; do + ARCH_PATCH="${ARCH_PATCH} ${DISTDIR}/${i/*\//}" + done + fi + + done +} + +# @FUNCTION: headers___fix +# @USAGE: +# @DESCRIPTION: +# Voodoo to partially fix broken upstream headers. +# note: do not put inline/asm/volatile together (breaks "inline asm volatile") + +headers___fix() { + sed -i \ + -e '/^\#define.*_TYPES_H/{:loop n; bloop}' \ + -e 's:\<\([us]\(8\|16\|32\|64\)\)\>:__\1:g' \ + -e "s/\([[:space:]]\)inline\([[:space:](]\)/\1__inline__\2/g" \ + -e "s/\([[:space:]]\)asm\([[:space:](]\)/\1__asm__\2/g" \ + -e "s/\([[:space:]]\)volatile\([[:space:](]\)/\1__volatile__\2/g" \ + "$@" +} + +# @FUNCTION: kernel-2-src-prepare-overlay_src_unpack +# @USAGE: +# @DESCRIPTION: +# unpack sources, handle genpatches, deblob + +kernel-2-src-prepare-overlay_src_unpack() { + universal_unpack + debug-print "Doing unipatch" + + # request UNIPATCH_LIST_GENPATCHES in phase since it calls 'use' + handle_genpatches --set-unipatch-list + [[ -n ${UNIPATCH_LIST} || -n ${UNIPATCH_LIST_DEFAULT} || -n ${UNIPATCH_LIST_GENPATCHES} ]] && \ + unipatch "${UNIPATCH_LIST_DEFAULT} ${UNIPATCH_LIST_GENPATCHES} ${UNIPATCH_LIST}" + + debug-print "Doing premake" + + # allow ebuilds to massage the source tree after patching but before + # we run misc `make` functions below + [[ $(type -t kernel-2-src-prepare-overlay_hook_premake) == "function" ]] && kernel-2-src-prepare-overlay_hook_premake + + debug-print "Doing unpack_set_extraversion" + + [[ -z ${K_NOSETEXTRAVERSION} ]] && unpack_set_extraversion + unpack_fix_install_path + + # Setup xmakeopts and cd into sourcetree. + env_setup_xmakeopts + cd "${S}" + + # We dont need a version.h for anything other than headers + # at least, I should hope we dont. If this causes problems + # take out the if/fi block and inform me please. + # unpack_2_6 should now be 2.6.17 safe anyways + if [[ ${ETYPE} == headers ]]; then + kernel_is 2 4 && unpack_2_4 + kernel_is 2 6 && unpack_2_6 + fi + + if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then + cp "${DISTDIR}/${DEBLOB_A}" "${T}" || die "cp ${DEBLOB_A} failed" + cp "${DISTDIR}/${DEBLOB_CHECK_A}" "${T}/deblob-check" || die "cp ${DEBLOB_CHECK_A} failed" + chmod +x "${T}/${DEBLOB_A}" "${T}/deblob-check" || die "chmod deblob scripts failed" + fi + + # fix a problem on ppc where TOUT writes to /usr/src/linux breaking sandbox + # only do this for kernel < 2.6.27 since this file does not exist in later + # kernels + if [[ -n ${KV_MINOR} && ${KV_MAJOR}.${KV_MINOR}.${KV_PATCH} < 2.6.27 ]] ; then + sed -i \ + -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \ + "${S}"/arch/ppc/Makefile + else + sed -i \ + -e 's|TOUT := .tmp_gas_check|TOUT := $(T).tmp_gas_check|' \ + "${S}"/arch/powerpc/Makefile + fi +} + +# @FUNCTION: kernel-2-src-prepare-overlay_src_prepare +# @USAGE: +# @DESCRIPTION: +# Apply any user patches + +kernel-2-src-prepare-overlay_src_prepare() { + + debug-print "Applying any user patches" + + # apply any user patches + case ${EAPI:-0} in + 0|1|2|3|4|5) epatch_user ;; + 6) eapply_user ;; + esac +} + +# @FUNCTION: kernel-2-src-prepare-overlay_src_compile +# @USAGE: +# @DESCRIPTION: +# conpile headers or run deblob script + +kernel-2-src-prepare-overlay_src_compile() { + cd "${S}" + [[ ${ETYPE} == headers ]] && compile_headers + + if [[ $K_DEBLOB_AVAILABLE == 1 ]] && use deblob ; then + echo ">>> Running deblob script ..." + python_setup + sh "${T}/${DEBLOB_A}" --force || die "Deblob script failed to run!!!" + fi +} + +# @FUNCTION: kernel-2-src-prepare-overlay_src_test +# @USAGE: +# @DESCRIPTION: +# if you leave it to the default src_test, it will run make to +# find whether test/check targets are present; since "make test" +# actually produces a few support files, they are installed even +# though the package is binchecks-restricted. +# +# Avoid this altogether by making the function moot. +kernel-2-src-prepare-overlay_src_test() { :; } + +# @FUNCTION: kernel-2-src-prepare-overlay_pkg_preinst +# @DESCRIPTION: +# if ETYPE = headers, call preinst_headers + +kernel-2-src-prepare-overlay_pkg_preinst() { + [[ ${ETYPE} == headers ]] && preinst_headers +} + +# @FUNCTION: kernel-2-src-prepare-overlay_src_install +# @USAGE: +# @DESCRIPTION: +# Install headers or sources dependant on ETYPE + +kernel-2-src-prepare-overlay_src_install() { + install_universal + [[ ${ETYPE} == headers ]] && install_headers + [[ ${ETYPE} == sources ]] && install_sources +} + +# @FUNCTION: kernel-2-src-prepare-overlay_pkg_postinst +# @USAGE: +# @DESCRIPTION: +# call postinst_sources for ETYPE = sources + +kernel-2-src-prepare-overlay_pkg_postinst() { + [[ ${ETYPE} == sources ]] && postinst_sources +} + +# @FUNCTION: kernel-2-src-prepare-overlay_pkg_setup +# @USAGE: +# @DESCRIPTION: +# check for supported kernel version, die if ETYPE is unknown, call setup_headers +# if necessary + +kernel-2-src-prepare-overlay_pkg_setup() { + if kernel_is 2 4; then + if [[ $(gcc-major-version) -ge 4 ]] ; then + echo + ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with linux-2.4!" + ewarn "Either switch to another gcc-version (via gcc-config) or use a" + ewarn "newer kernel that supports gcc-4." + echo + ewarn "Also be aware that bugreports about gcc-4 not working" + ewarn "with linux-2.4 based ebuilds will be closed as INVALID!" + echo + fi + fi + + ABI="${KERNEL_ABI}" + if [[ ${ETYPE} != sources ]] && [[ ${ETYPE} != headers ]]; then + eerror "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" + die "Unknown ETYPE=\"${ETYPE}\", must be \"sources\" or \"headers\"" + fi + + [[ ${ETYPE} == headers ]] && setup_headers + [[ ${ETYPE} == sources ]] && echo ">>> Preparing to unpack ..." +} + +# @FUNCTION: kernel-2-src-prepare-overlay_pkg_postrm +# @USAGE: +# @DESCRIPTION: +# Notify the user that after a depclean, there may be sources +# left behind that need to be manually cleaned + +kernel-2-src-prepare-overlay_pkg_postrm() { + # This warning only makes sense for kernel sources. + [[ ${ETYPE} == headers ]] && return 0 + + # If there isn't anything left behind, then don't complain. + [[ -e ${EROOT}usr/src/linux-${KV_FULL} ]] || return 0 + echo + ewarn "Note: Even though you have successfully unmerged " + ewarn "your kernel package, directories in kernel source location: " + ewarn "${EROOT}usr/src/linux-${KV_FULL}" + ewarn "with modified files will remain behind. By design, package managers" + ewarn "will not remove these modified files and the directories they reside in." + echo + ewarn "For more detailed kernel removal instructions, please see: " + ewarn "https://wiki.gentoo.org/wiki/Kernel/Removal" + echo +} diff --git a/media-video/tartube/Manifest b/media-video/tartube/Manifest index 44f5976..af5f362 100644 --- a/media-video/tartube/Manifest +++ b/media-video/tartube/Manifest @@ -1 +1,2 @@ DIST tartube-2.0.0.tar.gz 1726296 BLAKE2B 7d0d0c83845ddc6717457ec3c0f701f818211680bc69cebfc246aba768379e9372786083444d9bfffcde0a382e84171532f7218580bcf93b62ab1e88a4859d88 SHA512 dd5126fb690a49c4cb7d937aa7abc2e6bbc9327eb1cf17fa9bcdbfe865e6a46be0cb7fcafe487ceebcd9c10f0436fd798836e5ed4cb520657777db25749ad403 +DIST tartube-2.1.0.tar.gz 3556615 BLAKE2B c94a4bc818eae077605bd2b6ebe20fedf1f195dd6aa8763976b31811a4739c7964b5373e0ed02ca848e12c06706f1fc3ca9a4f9a9f51721f1e4bb199007145fe SHA512 f08d40cb1c7082b47c6fd28105880d135a3750ef7a763b8bfd3e4d3852d224f23f41f835cfa18cc988b633ad6ea66eca284259fdde122c2753ba02579b13995c diff --git a/media-video/tartube/tartube-2.1.0.ebuild b/media-video/tartube/tartube-2.1.0.ebuild new file mode 100644 index 0000000..23f596b --- /dev/null +++ b/media-video/tartube/tartube-2.1.0.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit distutils-r1 eutils xdg-utils + +DESCRIPTION="A GUI front-end for youtube-dl" +HOMEPAGE="https://tartube.sourceforge.io" + +if [[ "${PV}" == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/axcore/${PN}.git" + KEYWORDS="" +else + SRC_URI="https://github.com/axcore/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64" +fi + +RESTRICT="mirror" +LICENSE="GPL-3" +SLOT="0" +IUSE="+atomicparsley" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + ${PYTHON_DEPS} +" +RDEPEND=" + ${DEPEND} + dev-python/requests[${PYTHON_USEDEP}] + net-misc/youtube-dl + x11-libs/gtk+:3 + atomicparsley? ( media-video/atomicparsley ) +" + +DOCS=( + AUTHORS + CHANGES + README.rst +) + +src_prepare() { + export TARTUBE_PKG_STRICT=1 + distutils-r1_src_prepare +} + +src_install() { + distutils-r1_src_install +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update + elog "You may need to set path to (system) youtube-dl" + elog "in Tartube's System preferences" +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update +} diff --git a/net-analyzer/sensu/Manifest b/net-analyzer/sensu/Manifest new file mode 100644 index 0000000..3dfa4da --- /dev/null +++ b/net-analyzer/sensu/Manifest @@ -0,0 +1,3 @@ +DIST sensu-5.19.3.tar.gz 2823471 BLAKE2B 8f9578285695d2d3890940a61aada03a30ee8649277fd9fa3ce651ddb0eeefae758acdb05247a346488b69e5b21fb41d50c41c868bf663406410d9995c31c663 SHA512 9084bb7ee434d9dcfd291106bc13657590bef943e08be0b7687e26730a125c1ba4ea6045d62cb946e5fa224022fcd029c208b99ce6b95abbf908f3f72b45d0ce +DIST sensu_5.19.3_agent.yml 1379 BLAKE2B b1145ec12c85950c6cae834a666bc9e8186d8072184f56b4129d9c9ab8a98454080effdbbf87bcd777d852c78acf96b53fdf865306e3d984cbdc21a2dee832dc SHA512 d70899325f16231d88ca1c1a5660b4bb2444f42ec12c11b4cb68aabc0f23a2d1e2a068362e711b1fc1b14efdc7db033ca2fc069944b554a40f35a2a160dda353 +DIST sensu_5.19.3_backend.yml 1771 BLAKE2B 4c2745f601a84e4aa444dedd4dbc2445652a94f48a784b7237038864c111b40f0370aefa9cbd7922c9881a437f0cf97d8aecb07a85d2b6723a6af3ce3555e8e2 SHA512 d6adc6180585f1505e5807a7be743b8f2e405a16aab0e54b5de0e1e64276cd8a0d93be66e72ca48f9fb8f2aebf8169b2d70ab17fc1a3aeb81e4b32a4bf757264 diff --git a/net-analyzer/sensu/files/conf.d/sensu-agent b/net-analyzer/sensu/files/conf.d/sensu-agent new file mode 100644 index 0000000..097e6f7 --- /dev/null +++ b/net-analyzer/sensu/files/conf.d/sensu-agent @@ -0,0 +1,6 @@ +# config file for /etc/init.d/sensu-agent + +SENSU_AGENT_CONFIG="/etc/sensu/agent.yml" +SENSU_AGENT_DATADIR="/var/lib/sensu" +SENSU_AGENT_LOGDIR="/var/log/sensu" +SENSU_AGENT_CACHEDIR="/var/cache/sensu" diff --git a/net-analyzer/sensu/files/conf.d/sensu-backend b/net-analyzer/sensu/files/conf.d/sensu-backend new file mode 100644 index 0000000..1867558 --- /dev/null +++ b/net-analyzer/sensu/files/conf.d/sensu-backend @@ -0,0 +1,6 @@ +# config file for /etc/init.d/sensu-backend + +SENSU_BACKEND_CONFIG="/etc/sensu/backend.yml" +SENSU_BACKEND_DATADIR="/var/lib/sensu" +SENSU_BACKEND_LOGDIR="/var/log/sensu" +SENSU_BACKEND_CACHEDIR="/var/cache/sensu" diff --git a/net-analyzer/sensu/files/init.d/sensu-agent b/net-analyzer/sensu/files/init.d/sensu-agent new file mode 100644 index 0000000..435e4c9 --- /dev/null +++ b/net-analyzer/sensu/files/init.d/sensu-agent @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +description="" + +name="Sensu Agent" +command="/usr/sbin/sensu-agent" +command_args="start -c ${SENSU_AGENT_CONFIG}" +command_user="${SENSU_USER:-sensu}" +command_background=true +pidfile="/run/${SVCNAME}.pid" +required_files="${SENSU_AGENT_CONFIG}" +retry=${SENSU_AGENT_TERMTIMEOUT:-"TERM/20/KILL/5"} +start_stop_daemon_args="${SSD_OPTS:-}" + +depend() { + need localmount net +} + +start_pre() { + checkpath -d -m 0750 -o "${command_user}" "${SENSU_AGENT_LOGDIR}" "${SENSU_AGENT_DATADIR}" "${SENSU_AGENT_CACHEDIR}" +} diff --git a/net-analyzer/sensu/files/init.d/sensu-backend b/net-analyzer/sensu/files/init.d/sensu-backend new file mode 100644 index 0000000..b94ae4f --- /dev/null +++ b/net-analyzer/sensu/files/init.d/sensu-backend @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +description="" + +name="Sensu Monitoring Framework" +command="/usr/sbin/sensu-backend" +command_args="start -c ${SENSU_BACKEND_CONFIG}" +command_user="sensu" +command_background=true +pidfile="/run/${SVCNAME}.pid" +required_files="${SENSU_BACKEND_CONFIG}" +retry=${SENSU_BACKEND_TERMTIMEOUT:-"TERM/20/KILL/5"} +start_stop_daemon_args="${SSD_OPTS:-}" + +depend() { + need localmount net +} + +start_pre() { + checkpath -d -m 0750 -o "${command_user}" "${SENSU_BACKEND_LOGDIR}" "${SENSU_BACKEND_DATADIR}" "${SENSU_BACKEND_CACHEDIR}" +} diff --git a/net-analyzer/sensu/metadata.xml b/net-analyzer/sensu/metadata.xml new file mode 100644 index 0000000..7877e5c --- /dev/null +++ b/net-analyzer/sensu/metadata.xml @@ -0,0 +1,18 @@ + + + + + + Installs Sensu agent + + + Install Sensu dashboard and backend server + + + Compile with GCC's Go compiler instead of Google's reference Go compiler (NOT SUPPORTED) + + + Install systemd service units rather than OpenRC init scripts (NOT SUPPORTED) + + + diff --git a/net-analyzer/sensu/sensu-5.19.3.ebuild b/net-analyzer/sensu/sensu-5.19.3.ebuild new file mode 100644 index 0000000..682b656 --- /dev/null +++ b/net-analyzer/sensu/sensu-5.19.3.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +#inherit go-module + +EGO_SUM=( + "github.com/AlecAivazis/survey v1.4.1" + "github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78" + "github.com/NYTimes/gziphandler v0.0.0-20180227021810-5032c8878b9d" + "github.com/StackExchange/wmi v0.0.0-20180725035823-b12b22c5341f" + "github.com/ash2k/stager v0.0.0-20170622123058-6e9c7b0eacd4" + "github.com/atlassian/gostatsd v0.0.0-20180514010436-af796620006e" + "github.com/coreos/bbolt v1.3.3" + "github.com/coreos/etcd v3.3.17+incompatible" + "github.com/coreos/go-semver v0.3.0" + "github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f" + "github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f" + "github.com/dave/jennifer v0.0.0-20171207062344-d8bdbdbee4e1" + "github.com/dgrijalva/jwt-go v3.2.0+incompatible" + "github.com/docker/docker v0.0.0-20180409082103-cbde00b44273" + "github.com/echlebek/crock v1.0.1" + "github.com/echlebek/timeproxy v1.0.0" + "github.com/emicklei/proto v1.1.0" + "github.com/frankban/quicktest v1.7.2" + "github.com/ghodss/yaml v1.0.0" + "github.com/go-ole/go-ole v0.0.0-20170209151332-de8695c8edbf" + "github.com/go-resty/resty/v2 v2.1.0" + "github.com/gogo/protobuf v1.3.1" + "github.com/golang/groupcache v0.0.0-20191002201903-404acd9df4cc" + "github.com/golang/protobuf v1.3.2" + "github.com/google/uuid v1.1.1" + "github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f" + "github.com/gorilla/mux v1.6.2" + "github.com/gorilla/websocket v1.4.1" + "github.com/gotestyourself/gotestyourself v2.2.0+incompatible" + "github.com/graph-gophers/dataloader v0.0.0-20180104184831-78139374585c" + "github.com/graphql-go/graphql v0.7.9-0.20191125031726-2e2b648ecbe4" + "github.com/grpc-ecosystem/go-grpc-middleware v1.1.0" + "github.com/grpc-ecosystem/grpc-gateway v1.11.3" + "github.com/gxed/GoEndian v0.0.0-20160916112711-0f5c6873267e" + "github.com/gxed/eventfd v0.0.0-20160916113412-80a92cca79a8" + "github.com/hashicorp/go-version v1.2.0" + "github.com/ipfs/go-log v0.0.0-20180416040000-7ecd3df29a4a" + "github.com/jbenet/go-reuseport v0.0.0-20180416043609-15a1cd37f050" + "github.com/json-iterator/go v1.1.7" + "github.com/konsorten/go-windows-terminal-sequences v1.0.2" + "github.com/libp2p/go-reuseport v0.0.0-20180416043609-15a1cd37f050" + "github.com/libp2p/go-sockaddr v0.0.0-20180329070516-f3e9f73a53d1" + "github.com/mattn/go-colorable v0.0.9" + "github.com/mattn/go-isatty v0.0.2" + "github.com/mattn/go-runewidth v0.0.2" + "github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b" + "github.com/mholt/archiver/v3 v3.3.1-0.20191129193105-44285f7ed244" + "github.com/mitchellh/go-homedir v1.1.0" + "github.com/mitchellh/mapstructure v1.1.2" + "github.com/olekukonko/tablewriter v0.0.0-20180506121414-d4647c9c7a84" + "github.com/prometheus/client_golang v1.2.0" + "github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4" + "github.com/robertkrimen/otto v0.0.0-20180617131154-15f95af6e78d" + "github.com/robfig/cron/v3 v3.0.0" + "github.com/sensu/lasr v1.2.1" + "github.com/shirou/gopsutil v0.0.0-20180801053943-8048a2e9c577" + "github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4" + "github.com/sirupsen/logrus v1.4.2" + "github.com/spf13/cobra v0.0.5" + "github.com/spf13/pflag v1.0.5" + "github.com/spf13/viper v1.4.0" + "github.com/stretchr/testify v1.4.0" + "github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc" + "github.com/willf/pad v0.0.0-20160331131008-b3d780601022" + "go.etcd.io/bbolt v1.3.2" + "go.uber.org/multierr v1.2.0" + "golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550" + "golang.org/x/net v0.0.0-20191014212845-da9a3fd4c582" + "golang.org/x/sys v0.0.0-20191113165036-4c7a9d0fe056" + "golang.org/x/text v0.3.2" + "golang.org/x/time v0.0.0-20190921001708-c4c64cad1fd0" + "google.golang.org/genproto v0.0.0-20191009194640-548a555dbc03" + "google.golang.org/grpc v1.24.0" + "gopkg.in/AlecAivazis/survey.v1 v1.4.0" + "gopkg.in/h2non/filetype.v1 v1.0.3" + "gopkg.in/sourcemap.v1 v1.0.5" + "gopkg.in/yaml.v2 v2.2.4" + "gotest.tools v2.2.0+incompatible" + "sigs.k8s.io/yaml v1.1.0" +) + +#go-module_set_globals + +DESCRIPTION="Simple. Scalable. Multi-cloud monitoring." +HOMEPAGE="https://sensu.io" +#SRC_URI=" +# https://github.com/${PN}/${PN}-go/archive/v${PV}.tar.gz -> ${P}.tar.gz +# ${EGO_SUM_SRC_URI}" + +MAJOR_MINOR_VERSION="5.19" +SRC_URI=" + https://github.com/${PN}/${PN}-go/archive/v${PV}.tar.gz -> ${P}.tar.gz + backend? ( https://docs.sensu.io/sensu-go/${MAJOR_MINOR_VERSION}/files/backend.yml -> ${PN}_${PV}_backend.yml ) + agent? ( https://docs.sensu.io/sensu-go/${MAJOR_MINOR_VERSION}/files/agent.yml -> ${PN}_${PV}_agent.yml ) +" + +PROPERTIES+=" live" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc64 ~x86" + +IUSE="agent backend gcc systemd" + +BDEPEND+=" + !gcc? ( dev-lang/go ) + gcc? ( sys-devel/gcc[go] ) + sys-apps/coreutils + app-arch/tar + app-arch/gzip +" + +RDEPEND+=" + virtual/libc + acct-group/sensu + acct-user/sensu +" + +#S="${S}/${PN}" +#S="${WORKDIR}/${PN}-go-${PV}" +S="${WORKDIR}" + +src_unpack() { + if [ -z ${I_KNOW_WHAT_IM_DOING} ]; then + local I_KNOW_WHAT_IM_DOING=0 + fi + if use gcc; then + die "Compilation with GCC is not supported yet." + fi + if use systemd; then + die "We don't have systemd unit files yet." + fi + if use backend && (use x86 || use arm) && [ ${I_KNOW_WHAT_IM_DOING} -eq 0 ]; then + die "Backend does not work reliably on 32bit hosts. If you really want this, re-emerge with I_KNOW_WHAT_IM_DOING=1" + fi + tar -xf "${DISTDIR}"/sensu-${PV}.tar.gz + cd ${PN}-go-${PV} + local TODAY=$(date +%Y-%m-%d) + local BUILD_SIGNATURE="-X github.com/sensu/sensu-go/version.Version=${PV} -X github.com/sensu/sensu-go/version.BuildDate=${TODAY}" + if use agent; then + go build -ldflags "${BUILD_SIGNATURE}" -o bin/sensu-agent ./cmd/sensu-agent >/dev/null + cp "${DISTDIR}"/"${PN}"_"${PV}"_agent.yml "${S}"/agent.yml.example + fi + if use backend; then + go build -ldflags "${BUILD_SIGNATURE}" -o bin/sensu-backend ./cmd/sensu-backend >/dev/null + cp "${DISTDIR}"/"${PN}"_"${PV}"_backend.yml "${S}"/backend.yml.example + fi + go build -ldflags "${BUILD_SIGNATURE}" -o bin/sensuctl ./cmd/sensuctl >/dev/null +} + +src_install() { + if use agent; then + doinitd "${FILESDIR}"/init.d/sensu-agent + doconfd "${FILESDIR}"/conf.d/sensu-agent + insinto /etc/sensu + doins agent.yml.example + dosbin "${PN}-go-${PV}"/bin/sensu-agent + fi + if use backend; then + doexe "${FILESDIR}"/init.d/sensu-backend + doins "${FILESDIR}"/conf.d/sensu-backend + insinto /etc/sensu + doins backend.yml.example + dosbin "${PN}-go-${PV}"/bin/sensu-backend + fi + dosbin "${PN}-go-${PV}"/bin/sensuctl +} + +pkg_postinst() { + if use backend; then + elog "If this is your first installation of sensu backend," + elog "you have to initialize your administrative credentials." + elog "Simply run the following: (change admin_user and admin_password)" + elog "su -s /bin/bash - sensu -c 'SENSU_BACKEND_CLUSTER_ADMIN_USERNAME=admin_user SENSU_BACKEND_CLUSTER_ADMIN_PASSWORD=admin_pass sensu-backend init'" + elog "Remember that this command has to be run WHILE sensu-backend service is running." + fi +} diff --git a/sys-kernel/ck-sources/ck-sources-5.4.35.ebuild b/sys-kernel/ck-sources/ck-sources-5.4.35.ebuild index 2e59b98..3ba3b08 100644 --- a/sys-kernel/ck-sources/ck-sources-5.4.35.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.4.35.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="35" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.4.36.ebuild b/sys-kernel/ck-sources/ck-sources-5.4.36.ebuild index 20278a3..b65f94b 100644 --- a/sys-kernel/ck-sources/ck-sources-5.4.36.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.4.36.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="36" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.4.37.ebuild b/sys-kernel/ck-sources/ck-sources-5.4.37.ebuild index e7c3680..008ca7d 100644 --- a/sys-kernel/ck-sources/ck-sources-5.4.37.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.4.37.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="37" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.4.38.ebuild b/sys-kernel/ck-sources/ck-sources-5.4.38.ebuild index 6b7b8b9..33ce3dc 100644 --- a/sys-kernel/ck-sources/ck-sources-5.4.38.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.4.38.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="38" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.4.39.ebuild b/sys-kernel/ck-sources/ck-sources-5.4.39.ebuild index 91b3b88..85ac912 100644 --- a/sys-kernel/ck-sources/ck-sources-5.4.39.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.4.39.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="39" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.5.19.ebuild b/sys-kernel/ck-sources/ck-sources-5.5.19.ebuild index aabe91c..b670c4e 100644 --- a/sys-kernel/ck-sources/ck-sources-5.5.19.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.5.19.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="21" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.6.10.ebuild b/sys-kernel/ck-sources/ck-sources-5.6.10.ebuild index 332e1b0..a23d11e 100644 --- a/sys-kernel/ck-sources/ck-sources-5.6.10.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.6.10.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="13" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.6.11.ebuild b/sys-kernel/ck-sources/ck-sources-5.6.11.ebuild index 107a32f..7d6e387 100644 --- a/sys-kernel/ck-sources/ck-sources-5.6.11.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.6.11.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="15" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.6.7.ebuild b/sys-kernel/ck-sources/ck-sources-5.6.7.ebuild index bcf6450..fbed2f4 100644 --- a/sys-kernel/ck-sources/ck-sources-5.6.7.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.6.7.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="10" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.6.8.ebuild b/sys-kernel/ck-sources/ck-sources-5.6.8.ebuild index bcf6450..fbed2f4 100644 --- a/sys-kernel/ck-sources/ck-sources-5.6.8.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.6.8.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="10" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/ck-sources/ck-sources-5.6.9.ebuild b/sys-kernel/ck-sources/ck-sources-5.6.9.ebuild index aeb82cf..22de397 100644 --- a/sys-kernel/ck-sources/ck-sources-5.6.9.ebuild +++ b/sys-kernel/ck-sources/ck-sources-5.6.9.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="12" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/liquorix-sources/liquorix-sources-5.5.19.ebuild b/sys-kernel/liquorix-sources/liquorix-sources-5.5.19.ebuild index 893a984..421f8ee 100644 --- a/sys-kernel/liquorix-sources/liquorix-sources-5.5.19.ebuild +++ b/sys-kernel/liquorix-sources/liquorix-sources-5.5.19.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="1" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/liquorix-sources/liquorix-sources-5.6.10.ebuild b/sys-kernel/liquorix-sources/liquorix-sources-5.6.10.ebuild index 5a62e37..be5b451 100644 --- a/sys-kernel/liquorix-sources/liquorix-sources-5.6.10.ebuild +++ b/sys-kernel/liquorix-sources/liquorix-sources-5.6.10.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/liquorix-sources/liquorix-sources-5.6.11.ebuild b/sys-kernel/liquorix-sources/liquorix-sources-5.6.11.ebuild index 5a62e37..be5b451 100644 --- a/sys-kernel/liquorix-sources/liquorix-sources-5.6.11.ebuild +++ b/sys-kernel/liquorix-sources/liquorix-sources-5.6.11.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/liquorix-sources/liquorix-sources-5.6.7.ebuild b/sys-kernel/liquorix-sources/liquorix-sources-5.6.7.ebuild index 5a62e37..be5b451 100644 --- a/sys-kernel/liquorix-sources/liquorix-sources-5.6.7.ebuild +++ b/sys-kernel/liquorix-sources/liquorix-sources-5.6.7.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/liquorix-sources/liquorix-sources-5.6.8.ebuild b/sys-kernel/liquorix-sources/liquorix-sources-5.6.8.ebuild index 5a62e37..be5b451 100644 --- a/sys-kernel/liquorix-sources/liquorix-sources-5.6.8.ebuild +++ b/sys-kernel/liquorix-sources/liquorix-sources-5.6.8.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/liquorix-sources/liquorix-sources-5.6.9.ebuild b/sys-kernel/liquorix-sources/liquorix-sources-5.6.9.ebuild index 5a62e37..be5b451 100644 --- a/sys-kernel/liquorix-sources/liquorix-sources-5.6.9.ebuild +++ b/sys-kernel/liquorix-sources/liquorix-sources-5.6.9.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/pf-sources/pf-sources-5.5_p7.ebuild b/sys-kernel/pf-sources/pf-sources-5.5_p7.ebuild index 2a683a5..437f674 100644 --- a/sys-kernel/pf-sources/pf-sources-5.5_p7.ebuild +++ b/sys-kernel/pf-sources/pf-sources-5.5_p7.ebuild @@ -23,7 +23,7 @@ K_SECURITY_UNSUPPORTED="1" # already included in pf-sources K_WANT_GENPATCHES="base extras" -inherit eutils kernel-2 +inherit eutils kernel-2-src-prepare-overlay detect_version DESCRIPTION="Linux kernel fork that includes the pf-kernel patchset and Gentoo's genpatches" diff --git a/sys-kernel/pf-sources/pf-sources-5.5_p8.ebuild b/sys-kernel/pf-sources/pf-sources-5.5_p8.ebuild index 2a683a5..437f674 100644 --- a/sys-kernel/pf-sources/pf-sources-5.5_p8.ebuild +++ b/sys-kernel/pf-sources/pf-sources-5.5_p8.ebuild @@ -23,7 +23,7 @@ K_SECURITY_UNSUPPORTED="1" # already included in pf-sources K_WANT_GENPATCHES="base extras" -inherit eutils kernel-2 +inherit eutils kernel-2-src-prepare-overlay detect_version DESCRIPTION="Linux kernel fork that includes the pf-kernel patchset and Gentoo's genpatches" diff --git a/sys-kernel/xanmod-sources/xanmod-sources-5.5.10.ebuild b/sys-kernel/xanmod-sources/xanmod-sources-5.5.10.ebuild index 457ddbc..ae73605 100644 --- a/sys-kernel/xanmod-sources/xanmod-sources-5.5.10.ebuild +++ b/sys-kernel/xanmod-sources/xanmod-sources-5.5.10.ebuild @@ -6,7 +6,7 @@ K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" XANMOD_VERSION="2" ETYPE="sources" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version DESCRIPTION="A general-purpose kernel with custom settings and new features" @@ -23,6 +23,6 @@ src_prepare() { kernel-2_src_prepare - rm ${S}/.config || die + rm "${S}"/.config || die } diff --git a/sys-kernel/xanmod-sources/xanmod-sources-5.5.13.ebuild b/sys-kernel/xanmod-sources/xanmod-sources-5.5.13.ebuild index 591344a..6081688 100644 --- a/sys-kernel/xanmod-sources/xanmod-sources-5.5.13.ebuild +++ b/sys-kernel/xanmod-sources/xanmod-sources-5.5.13.ebuild @@ -6,7 +6,7 @@ K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" XANMOD_VERSION="1" ETYPE="sources" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version DESCRIPTION="A general-purpose kernel with custom settings and new features" @@ -23,6 +23,6 @@ src_prepare() { kernel-2_src_prepare - rm ${S}/.config || die + rm "${S}"/.config || die } diff --git a/sys-kernel/xanmod-sources/xanmod-sources-5.6.10.ebuild b/sys-kernel/xanmod-sources/xanmod-sources-5.6.10.ebuild index 591344a..6081688 100644 --- a/sys-kernel/xanmod-sources/xanmod-sources-5.6.10.ebuild +++ b/sys-kernel/xanmod-sources/xanmod-sources-5.6.10.ebuild @@ -6,7 +6,7 @@ K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" XANMOD_VERSION="1" ETYPE="sources" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version DESCRIPTION="A general-purpose kernel with custom settings and new features" @@ -23,6 +23,6 @@ src_prepare() { kernel-2_src_prepare - rm ${S}/.config || die + rm "${S}"/.config || die } diff --git a/sys-kernel/xanmod-sources/xanmod-sources-5.6.12.ebuild b/sys-kernel/xanmod-sources/xanmod-sources-5.6.12.ebuild index 591344a..6081688 100644 --- a/sys-kernel/xanmod-sources/xanmod-sources-5.6.12.ebuild +++ b/sys-kernel/xanmod-sources/xanmod-sources-5.6.12.ebuild @@ -6,7 +6,7 @@ K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" XANMOD_VERSION="1" ETYPE="sources" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version DESCRIPTION="A general-purpose kernel with custom settings and new features" @@ -23,6 +23,6 @@ src_prepare() { kernel-2_src_prepare - rm ${S}/.config || die + rm "${S}"/.config || die } diff --git a/sys-kernel/xanmod-sources/xanmod-sources-5.6.6.ebuild b/sys-kernel/xanmod-sources/xanmod-sources-5.6.6.ebuild index 591344a..6081688 100644 --- a/sys-kernel/xanmod-sources/xanmod-sources-5.6.6.ebuild +++ b/sys-kernel/xanmod-sources/xanmod-sources-5.6.6.ebuild @@ -6,7 +6,7 @@ K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" XANMOD_VERSION="1" ETYPE="sources" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version DESCRIPTION="A general-purpose kernel with custom settings and new features" @@ -23,6 +23,6 @@ src_prepare() { kernel-2_src_prepare - rm ${S}/.config || die + rm "${S}"/.config || die } diff --git a/sys-kernel/xanmod-sources/xanmod-sources-5.6.8.ebuild b/sys-kernel/xanmod-sources/xanmod-sources-5.6.8.ebuild index 591344a..6081688 100644 --- a/sys-kernel/xanmod-sources/xanmod-sources-5.6.8.ebuild +++ b/sys-kernel/xanmod-sources/xanmod-sources-5.6.8.ebuild @@ -6,7 +6,7 @@ K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" XANMOD_VERSION="1" ETYPE="sources" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version DESCRIPTION="A general-purpose kernel with custom settings and new features" @@ -23,6 +23,6 @@ src_prepare() { kernel-2_src_prepare - rm ${S}/.config || die + rm "${S}"/.config || die } diff --git a/sys-kernel/zen-sources/Manifest b/sys-kernel/zen-sources/Manifest index 3858865..6f17871 100644 --- a/sys-kernel/zen-sources/Manifest +++ b/sys-kernel/zen-sources/Manifest @@ -3,6 +3,7 @@ DIST genpatches-5.6-2.extras.tar.xz 1744 BLAKE2B 1a7b68366c1b4ea01c670bf88f95624 DIST linux-5.6.tar.xz 111785252 BLAKE2B 8dbe02a8ca7fd3dcf512a15c5d8098c1e7f94257e65173fed43fcc45480e4ab790df8cd39bbbb4e2a21dc9a00385bc9bbe98215a31e7f7e1d9c8f21cd8ace69e SHA512 80846fe2b4e4a7ff471d2dde28a8216ae807a3209f959e93d39ea4fc9a189ea28ec3db9d303b3fe15a28c2cb90e7446876678e93e23353c2d6f262e364a06bc9 DIST v5.6.10-zen1.patch.xz 454024 BLAKE2B 3905c8744c95d79b7dca67a1b9c43801db885a398888a947348087b32d435bbebfeba1fed962e9b55e61b6f132b84314128cc24ae90baa942f170f64a042840c SHA512 40bebf6ee3c5db8a52aa605b730cfa785ef5bce0d15b42358848fbee51147fc04fd5465ea13ca1fbc90c9dd97d81b3805bbc0a49c0bcddc4fb53dec3566e10d1 DIST v5.6.11-zen1.patch.xz 473620 BLAKE2B 318de1bbb4b020362cf6b8174e9b108cf3ba4ce18b81d2580969070bab4ed977952245876329f2a83415f7131235da726ffc30f5833c594483229bb3235aae9b SHA512 dfa14a6ce4d1970f34ea832ad5f50ba712ceaff7304457481ac2313c0b3882d239777235f8518161837a464efdb7cd8cac13990e4e09a60ae5256ea9979260fc +DIST v5.6.12-zen1.patch.xz 488844 BLAKE2B f662c03ca124946f247037f980531bb9c0d56468c1cd18c007aa3efbd5eabd18b0e8e458a2fd9900c4a1fa0a1eb9ca8a632961ed8511a63c796d28ae6b22fef2 SHA512 18c71c0df36c537ee063911981377e7d5ce348fc75d282461475c0801e530a5ecd6547a6fcd861b4d1a08d999e5ce6e32fb39ef90933ec6bf6664ef6df439fdf DIST v5.6.7-zen1.patch.xz 361608 BLAKE2B e129ec27175d6fc1b9e12778174eebfaaca172d5261e611d145f98b90adee0fb751b6ab00683ea3255b081bf1a6b7942739cad908657e0e425e263e9979c8cf2 SHA512 faa8028477560bf53806afa0f8511448a54e8ce14fb6ab69c8f5bc845d388a95a21c9dcecbd70f4cb682b1fb3f8aa89e2886b79582d3106887c6583db119f0e9 DIST v5.6.8-zen1.patch.xz 412196 BLAKE2B 0e30989ac661d611218fcf1e0d7574d62eb2cce9c927c2ed5055457c119a5a6c70724023a4e981de63d036b0ca513112756c485fc8e277ee65f7af67b43aef37 SHA512 618766b0660d03378a8d166bfccec0def4b1b5d89bd87e7ed37837179f7fe4e3dccb83c254ccd9523911f215aa079a31b2cde2db3bab1ef6532a8cc308679a83 DIST v5.6.9-zen1.patch.xz 447224 BLAKE2B 06e665e1da05f1b72ac8615d2b8b4fc4faf6aae6b9e97cec7d6b028f38baa9920cd87c276f319a837437536ecc3ec123e577ea3aca1d22b63f53b21272919846 SHA512 bfbd143b951e63d005009bf362844a2b19f321b5d0674ec9f4a5d1f00cbeb30be0ee26b66ecaa05403da9b23750c7df60264766121fcc901cd61fd5a1dd72ecf diff --git a/sys-kernel/zen-sources/zen-sources-5.6.10.ebuild b/sys-kernel/zen-sources/zen-sources-5.6.10.ebuild index a962d06..1a3ac09 100644 --- a/sys-kernel/zen-sources/zen-sources-5.6.10.ebuild +++ b/sys-kernel/zen-sources/zen-sources-5.6.10.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/zen-sources/zen-sources-5.6.11.ebuild b/sys-kernel/zen-sources/zen-sources-5.6.11.ebuild index a962d06..1a3ac09 100644 --- a/sys-kernel/zen-sources/zen-sources-5.6.11.ebuild +++ b/sys-kernel/zen-sources/zen-sources-5.6.11.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/zen-sources/zen-sources-5.6.12.ebuild b/sys-kernel/zen-sources/zen-sources-5.6.12.ebuild new file mode 100644 index 0000000..1a3ac09 --- /dev/null +++ b/sys-kernel/zen-sources/zen-sources-5.6.12.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" +ETYPE="sources" +K_WANT_GENPATCHES="base extras" +K_GENPATCHES_VER="2" +K_SECURITY_UNSUPPORTED="1" +K_NOSETEXTRAVERSION="1" + +inherit kernel-2-src-prepare-overlay +detect_version +detect_arch + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +HOMEPAGE="https://github.com/zen-kernel" +IUSE="" + +DESCRIPTION="Zen sources including the Gentoo patchsets for the ${KV_MAJOR}.${KV_MINOR} kernel tree" + +ZEN_URI="https://github.com/zen-kernel/zen-kernel/releases/download/v${PV}-zen1/v${PV}-zen1.patch.xz" +SRC_URI="${KERNEL_URI} ${GENPATCHES_URI} ${ARCH_URI} ${ZEN_URI}" + +UNIPATCH_LIST="${DISTDIR}/v${PV}-zen1.patch.xz" +UNIPATCH_STRICTORDER="yes" diff --git a/sys-kernel/zen-sources/zen-sources-5.6.7.ebuild b/sys-kernel/zen-sources/zen-sources-5.6.7.ebuild index a962d06..1a3ac09 100644 --- a/sys-kernel/zen-sources/zen-sources-5.6.7.ebuild +++ b/sys-kernel/zen-sources/zen-sources-5.6.7.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/zen-sources/zen-sources-5.6.8.ebuild b/sys-kernel/zen-sources/zen-sources-5.6.8.ebuild index a962d06..1a3ac09 100644 --- a/sys-kernel/zen-sources/zen-sources-5.6.8.ebuild +++ b/sys-kernel/zen-sources/zen-sources-5.6.8.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/sys-kernel/zen-sources/zen-sources-5.6.9.ebuild b/sys-kernel/zen-sources/zen-sources-5.6.9.ebuild index a962d06..1a3ac09 100644 --- a/sys-kernel/zen-sources/zen-sources-5.6.9.ebuild +++ b/sys-kernel/zen-sources/zen-sources-5.6.9.ebuild @@ -8,7 +8,7 @@ K_GENPATCHES_VER="2" K_SECURITY_UNSUPPORTED="1" K_NOSETEXTRAVERSION="1" -inherit kernel-2 +inherit kernel-2-src-prepare-overlay detect_version detect_arch diff --git a/www-client/icecat/icecat-68.7.0-r1.ebuild b/www-client/icecat/icecat-68.7.0-r1.ebuild index 58d437d..6a96439 100644 --- a/www-client/icecat/icecat-68.7.0-r1.ebuild +++ b/www-client/icecat/icecat-68.7.0-r1.ebuild @@ -17,7 +17,7 @@ PYTHON_REQ_USE='ncurses,sqlite,ssl,threads(+)' #nb-NO nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te #th tr uk ur uz vi xh zh-CN zh-TW ) MOZ_LANGS=() -PROPERTIES+="live" +PROPERTIES+=" live" # Convert the ebuild version to the upstream mozilla version, used by mozlinguas MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI @@ -49,11 +49,11 @@ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" SLOT="0" LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -IUSE="-bindist clang cpu_flags_x86_avx2 dbus debug geckodriver +IUSE="amd64 -bindist clang cpu_flags_x86_avx2 dbus debug geckodriver +gmp-autoupdate hardened hwaccel jack kernel_linux lto cpu_flags_arm_neon pgo pulseaudio +screenshot selinux startup-notification +system-av1 +system-harfbuzz +system-icu +system-jpeg +system-libevent - +system-sqlite +system-libvpx +system-webp test wayland wifi" + +system-sqlite +system-libvpx +system-webp test wayland wifi x86" REQUIRED_USE="pgo? ( lto ) wifi? ( dbus )" diff --git a/www-client/icecat/icecat-68.7.0.ebuild b/www-client/icecat/icecat-68.7.0.ebuild deleted file mode 100644 index 5cf3e04..0000000 --- a/www-client/icecat/icecat-68.7.0.ebuild +++ /dev/null @@ -1,901 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" -COMMIT_SHA="8f9f30e1e9cf2b411ce2747024d4f72edda86904" -VIRTUALX_REQUIRED="pgo" -WANT_AUTOCONF="2.1" -MOZ_ESR="1" - -PYTHON_COMPAT=( python3_{6,7,8} ) -PYTHON_REQ_USE='ncurses,sqlite,ssl,threads(+)' - -# This list can be updated with scripts/get_langs.sh from the mozilla overlay -#MOZ_LANGS=(ach af an ar ast az be bg bn br bs ca cak cs cy da de dsb el en en-CA -#en-GB en-US eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN -#he hi-IN hr hsb hu hy-AM ia id is it ja ka kab kk km kn ko lij lt lv mk mr ms my -#nb-NO nl nn-NO oc pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te -#th tr uk ur uz vi xh zh-CN zh-TW ) -MOZ_LANGS=() -PROPERTIES+="live" - -# Convert the ebuild version to the upstream mozilla version, used by mozlinguas -MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI -MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI -MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI - -if [[ ${MOZ_ESR} == 1 ]] ; then - # ESR releases have slightly different version numbers - MOZ_PV="${MOZ_PV}esr" -fi - -# Patch version -PATCH="firefox-68.0-patches-12" - -MOZ_HTTP_URI="https://git.savannah.gnu.org/cgit/gnuzilla.git" -MOZ_SRC_URI="https://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-${COMMIT_SHA}.tar.gz" - -LLVM_MAX_SLOT=10 - -inherit check-reqs eapi7-ver flag-o-matic toolchain-funcs eutils vcs-snapshot \ - gnome2-utils llvm mozcoreconf-v6 oom-score-adj pax-utils xdg-utils \ - autotools multiprocessing virtualx -#mozlinguas-v2 - -DESCRIPTION="GNU IceCat Web Browser" -HOMEPAGE="https://www.gnu.org/software/gnuzilla/" - -KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" - -SLOT="0" -LICENSE="MPL-2.0 GPL-2 LGPL-2.1" -IUSE="-bindist clang cpu_flags_x86_avx2 dbus debug geckodriver - +gmp-autoupdate hardened hwaccel jack kernel_linux lto cpu_flags_arm_neon - pgo pulseaudio +screenshot selinux startup-notification +system-av1 - +system-harfbuzz +system-icu +system-jpeg +system-libevent - +system-sqlite +system-libvpx +system-webp test wayland wifi" - -REQUIRED_USE="pgo? ( lto ) - wifi? ( dbus )" - -RESTRICT=" - !test? ( test ) -" - -PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c,whissi}/mozilla/patchsets/${PATCH}.tar.xz ) -SRC_URI="${SRC_URI} - ${MOZ_SRC_URI} - ${PATCH_URIS[@]}" - -BDEPEND+=" - dev-perl/File-Rename:0 -" - -CDEPEND=" - >=dev-libs/nss-3.44.3 - >=dev-libs/nspr-4.21 - dev-libs/atk - dev-libs/expat - >=x11-libs/cairo-1.10[X] - >=x11-libs/gtk+-2.18:2 - >=x11-libs/gtk+-3.4.0:3[X] - x11-libs/gdk-pixbuf - >=x11-libs/pango-1.22.0 - >=media-libs/libpng-1.6.35:0=[apng] - >=media-libs/mesa-10.2:* - media-libs/fontconfig - >=media-libs/freetype-2.4.10 - kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) - virtual/freedesktop-icon-theme - dbus? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 ) - startup-notification? ( >=x11-libs/startup-notification-0.8 ) - >=x11-libs/pixman-0.19.2 - >=dev-libs/glib-2.26:2 - >=sys-libs/zlib-1.2.3 - >=dev-libs/libffi-3.0.10:= - virtual/ffmpeg - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXfixes - x11-libs/libXrender - x11-libs/libXt - system-av1? ( - >=media-libs/dav1d-0.3.0:= - >=media-libs/libaom-1.0.0:= - ) - system-harfbuzz? ( >=media-libs/harfbuzz-2.4.0:0= >=media-gfx/graphite2-1.3.13 ) - system-icu? ( >=dev-libs/icu-63.1:= ) - system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) - system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) - system-libvpx? ( =media-libs/libvpx-1.7*:0=[postproc] ) - system-sqlite? ( >=dev-db/sqlite-3.28.0:3[secure-delete,debug=] ) - system-webp? ( >=media-libs/libwebp-1.0.2:0= ) - wifi? ( kernel_linux? ( >=sys-apps/dbus-0.60 - >=dev-libs/dbus-glib-0.72 - net-misc/networkmanager ) ) - jack? ( virtual/jack ) - selinux? ( sec-policy/selinux-mozilla )" - -RDEPEND="${CDEPEND} - jack? ( virtual/jack ) - pulseaudio? ( || ( media-sound/pulseaudio - >=media-sound/apulse-0.1.9 ) ) - selinux? ( sec-policy/selinux-mozilla )" - -DEPEND="${CDEPEND} - app-arch/zip - app-arch/unzip - >=dev-util/cbindgen-0.8.7 - >=net-libs/nodejs-8.11.0 - >=sys-devel/binutils-2.30 - sys-apps/findutils - || ( - ( - sys-devel/clang:10 - !clang? ( sys-devel/llvm:10 ) - clang? ( - =sys-devel/lld-10* - sys-devel/llvm:10[gold] - pgo? ( =sys-libs/compiler-rt-sanitizers-10*[profile] ) - ) - ) - ( - sys-devel/clang:9 - !clang? ( sys-devel/llvm:9 ) - clang? ( - =sys-devel/lld-9* - sys-devel/llvm:9[gold] - pgo? ( =sys-libs/compiler-rt-sanitizers-9*[profile] ) - ) - ) - ( - sys-devel/clang:8 - !clang? ( sys-devel/llvm:8 ) - clang? ( - =sys-devel/lld-8* - sys-devel/llvm:8[gold] - pgo? ( =sys-libs/compiler-rt-sanitizers-8*[profile] ) - ) - ) - ( - sys-devel/clang:7 - !clang? ( sys-devel/llvm:7 ) - clang? ( - =sys-devel/lld-7* - sys-devel/llvm:7[gold] - pgo? ( =sys-libs/compiler-rt-sanitizers-7*[profile] ) - ) - ) - ) - pulseaudio? ( media-sound/pulseaudio ) - >=virtual/rust-1.34.0 - wayland? ( >=x11-libs/gtk+-3.11:3[wayland] ) - amd64? ( >=dev-lang/yasm-1.1 virtual/opengl ) - x86? ( >=dev-lang/yasm-1.1 virtual/opengl ) - !system-av1? ( - amd64? ( >=dev-lang/nasm-2.13 ) - x86? ( >=dev-lang/nasm-2.13 ) - )" - -#S="${WORKDIR}/icecat-${PV%_*}" -S="${WORKDIR}/gnuzilla-${COMMIT_SHA}/output/icecat-${PV%_*}" - -QA_PRESTRIPPED="usr/lib*/${PN}/icecat" - -BUILD_OBJ_DIR="${S}/ff" - -# allow GMP_PLUGIN_LIST to be set in an eclass or -# overridden in the enviromnent (advanced hackers only) -if [[ -z $GMP_PLUGIN_LIST ]] ; then - GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) -fi - -fix_path() { - local value_to_move=${1} - local new_path path_value - IFS=:; local -a path_values=( ${PATH} ) - for path_value in "${path_values[@]}" ; do - if [[ ${path_value} == *"${value_to_move}"* ]] ; then - new_path="${path_value}${new_path:+:}${new_path}" - else - new_path+="${new_path:+:}${path_value}" - fi - done - - echo "${new_path}" -} - -llvm_check_deps() { - if ! has_version --host-root "sys-devel/clang:${LLVM_SLOT}" ; then - ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use clang ; then - if ! has_version --host-root "=sys-devel/lld-${LLVM_SLOT}*" ; then - ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - - if use pgo ; then - if ! has_version --host-root "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}*" ; then - ewarn "=sys-libs/compiler-rt-sanitizers-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2 - return 1 - fi - fi - fi - - einfo "Will use LLVM slot ${LLVM_SLOT}!" >&2 -} - -pkg_pretend() { - if use pgo ; then - if ! has usersandbox $FEATURES ; then - die "You must enable usersandbox as X server can not run as root!" - fi - fi - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug || use test ; then - CHECKREQS_DISK_BUILD="16G" - else - CHECKREQS_DISK_BUILD="12G" - fi - - check-reqs_pkg_pretend -} - -pkg_setup() { - moz_pkgsetup - - # Ensure we have enough disk space to compile - if use pgo || use lto || use debug || use test ; then - CHECKREQS_DISK_BUILD="16G" - else - CHECKREQS_DISK_BUILD="12G" - fi - - check-reqs_pkg_setup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XDG_CACHE_HOME \ - XDG_SESSION_COOKIE \ - XAUTHORITY - - oom_score_adj_allow_write - - llvm_pkg_setup - - # Workaround for #627726 - if has ccache ${FEATURES} ; then - if use clang && use pgo ; then - die "Using FEATURES=ccache with USE=clang and USE=pgo is currently known to be broken (bug #718632)." - fi - - einfo "Fixing PATH for FEATURES=ccache ..." - PATH=$(fix_path 'ccache/bin') - elif has distcc ${FEATURES} ; then - einfo "Fixing PATH for FEATURES=distcc ..." - PATH=$(fix_path 'distcc/bin') - fi -} - -src_unpack() { - default - - # Unpack language packs -# mozlinguas_src_unpack - cd "${WORKDIR}"/gnuzilla-"${COMMIT_SHA}" - "${FILESDIR}"/patch_without_repoman_knowing.sh - ./makeicecat -} - -src_prepare() { - rm "${WORKDIR}"/firefox/2013_avoid_noinline_on_GCC_with_skcms.patch - rm "${WORKDIR}"/firefox/2015_fix_cssparser.patch - cp "${FILESDIR}"/1000_gentoo_preference_file.patch "${WORKDIR}"/firefox - cp "${FILESDIR}"/3000_use_the_Mozilla_location_service_when_no_Google_key_is_available.patch "${WORKDIR}"/firefox - eapply "${WORKDIR}/firefox" - - # Allow user to apply any additional patches without modifing ebuild - eapply_user - - # Make LTO respect MAKEOPTS - sed -i \ - -e "s/multiprocessing.cpu_count()/$(makeopts_jobs)/" \ - "${S}"/build/moz.configure/toolchain.configure \ - || die "sed failed to set num_cores" - - # Enable gnomebreakpad - if use debug ; then - sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \ - "${S}"/build/unix/run-mozilla.sh || die "sed failed!" - fi - - # Drop -Wl,--as-needed related manipulation for ia64 as it causes ld sefgaults, bug #582432 - if use ia64 ; then - sed -i \ - -e '/^OS_LIBS += no_as_needed/d' \ - -e '/^OS_LIBS += as_needed/d' \ - "${S}"/widget/gtk/mozgtk/gtk2/moz.build \ - "${S}"/widget/gtk/mozgtk/gtk3/moz.build \ - || die "sed failed to drop --as-needed for ia64" - fi - - # Fix sandbox violations during make clean, bug 372817 - sed -e "s:\(/no-such-file\):${T}\1:g" \ - -i "${S}"/config/rules.mk \ - -i "${S}"/nsprpub/configure{.in,} \ - || die - - # Don't exit with error when some libs are missing which we have in - # system. - sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \ - -i "${S}"/browser/installer/Makefile.in || die - - # Don't error out when there's no files to be removed: - sed 's@\(xargs rm\)$@\1 -f@' \ - -i "${S}"/toolkit/mozapps/installer/packager.mk || die - - # Keep codebase the same even if not using official branding - sed '/^MOZ_DEV_EDITION=1/d' \ - -i "${S}"/browser/branding/official/configure.sh || die - - # rustfmt, a tool to format Rust code, is optional and not required to build Firefox. - # However, when available, an unsupported version can cause problems, bug #669548 - sed -i -e "s@check_prog('RUSTFMT', add_rustup_path('rustfmt')@check_prog('RUSTFMT', add_rustup_path('rustfmt_do_not_use')@" \ - "${S}"/build/moz.configure/rust.configure || die - - # Autotools configure is now called old-configure.in - # This works because there is still a configure.in that happens to be for the - # shell wrapper configure script - eautoreconf old-configure.in - - # Must run autoconf in js/src - cd "${S}"/js/src || die - eautoconf old-configure.in -} - -src_configure() { - MEXTENSIONS="default" - # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) - # Note: These are for Gentoo Linux use ONLY. For your own distribution, please - # get your own set of keys. - _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc - - # Add information about TERM to output (build.log) to aid debugging - # blessings problems - if [[ -n "${TERM}" ]] ; then - einfo "TERM is set to: \"${TERM}\"" - else - einfo "TERM is unset." - fi - - if use clang && ! tc-is-clang ; then - # Force clang - einfo "Enforcing the use of clang due to USE=clang ..." - CC=${CHOST}-clang - CXX=${CHOST}-clang++ - strip-unsupported-flags - elif ! use clang && ! tc-is-gcc ; then - # Force gcc - einfo "Enforcing the use of gcc due to USE=-clang ..." - CC=${CHOST}-gcc - CXX=${CHOST}-g++ - strip-unsupported-flags - fi - - #################################### - # - # mozconfig, CFLAGS and CXXFLAGS setup - # - #################################### - - mozconfig_init - # common config components - mozconfig_annotate 'system_libs' \ - --with-system-zlib \ - --with-system-bz2 - - # Must pass release in order to properly select linker - mozconfig_annotate 'Enable by Gentoo' --enable-release - - if use pgo ; then - if ! has userpriv $FEATURES ; then - eerror "Building IceCat with USE=pgo and FEATURES=-userpriv is not supported!" - fi - fi - - # Don't let user's LTO flags clash with upstream's flags - filter-flags -flto* - - if use lto ; then - local show_old_compiler_warning= - - if use clang ; then - # At this stage CC is adjusted and the following check will - # will work - if [[ $(clang-major-version) -lt 7 ]] ; then - show_old_compiler_warning=1 - fi - - # Upstream only supports lld when using clang - mozconfig_annotate "forcing ld=lld due to USE=clang and USE=lto" --enable-linker=lld - else - if [[ $(gcc-major-version) -lt 8 ]] ; then - show_old_compiler_warning=1 - fi - - # Bug 689358 - append-cxxflags -flto - - if ! use cpu_flags_x86_avx2 ; then - local _gcc_version_with_ipa_cdtor_fix="8.3" - local _current_gcc_version="$(gcc-major-version).$(gcc-minor-version)" - - if ver_test "${_current_gcc_version}" -lt "${_gcc_version_with_ipa_cdtor_fix}" ; then - # due to a GCC bug, GCC will produce AVX2 instructions - # even if the CPU doesn't support AVX2, https://gcc.gnu.org/ml/gcc-patches/2018-12/msg01142.html - einfo "Disable IPA cdtor due to bug in GCC and missing AVX2 support -- triggered by USE=lto" - append-ldflags -fdisable-ipa-cdtor - else - einfo "No GCC workaround required, GCC version is already patched!" - fi - else - einfo "No GCC workaround required, system supports AVX2" - fi - - # Linking only works when using ld.gold when LTO is enabled - mozconfig_annotate "forcing ld=gold due to USE=lto" --enable-linker=gold - fi - - if [[ -n "${show_old_compiler_warning}" ]] ; then - # Checking compiler's major version uses CC variable. Because we allow - # user to control used compiler via USE=clang flag, we cannot use - # initial value. So this is the earliest stage where we can do this check - # because pkg_pretend is not called in the main phase function sequence - # environment saving is not guaranteed so we don't know if we will have - # correct compiler until now. - ewarn "" - ewarn "USE=lto requires up-to-date compiler (>=gcc-8 or >=clang-7)." - ewarn "You are on your own -- expect build failures. Don't file bugs using that unsupported configuration!" - ewarn "" - sleep 5 - fi - - mozconfig_annotate '+lto' --enable-lto=thin - - if use pgo ; then - mozconfig_annotate '+pgo' MOZ_PGO=1 - fi - else - # Avoid auto-magic on linker - if use clang ; then - # This is upstream's default - mozconfig_annotate "forcing ld=lld due to USE=clang" --enable-linker=lld - elif tc-ld-is-gold ; then - mozconfig_annotate "linker is set to gold" --enable-linker=gold - else - mozconfig_annotate "linker is set to bfd" --enable-linker=bfd - fi - fi - - # It doesn't compile on alpha without this LDFLAGS - use alpha && append-ldflags "-Wl,--no-relax" - - # Add full relro support for hardened - if use hardened ; then - append-ldflags "-Wl,-z,relro,-z,now" - mozconfig_use_enable hardened hardening - fi - - # Modifications to better support ARM, bug 553364 - if use cpu_flags_arm_neon ; then - mozconfig_annotate '' --with-fpu=neon - - if ! tc-is-clang ; then - # thumb options aren't supported when using clang, bug 666966 - mozconfig_annotate '' --with-thumb=yes - mozconfig_annotate '' --with-thumb-interwork=no - fi - fi - - if [[ ${CHOST} == armv*h* ]] ; then - mozconfig_annotate '' --with-float-abi=hard - if ! use system-libvpx ; then - sed -i -e "s|softfp|hard|" \ - "${S}"/media/libvpx/moz.build - fi - fi - - if use bindist; then - die "USE bindist must be turned off for this package." - fi -# mozconfig_use_enable official-branding - - 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 - # These are enabled by default in all mozilla applications - mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr - mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr - mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include \ - --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir) - mozconfig_annotate '' --prefix="${EPREFIX}"/usr - mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir) - mozconfig_annotate '' --disable-crashreporter - mozconfig_annotate 'Gentoo default' --with-system-png - mozconfig_annotate '' --enable-system-ffi - mozconfig_annotate '' --disable-gconf - mozconfig_annotate '' --with-intl-api - mozconfig_annotate '' --enable-system-pixman - # Instead of the standard --build= and --host=, mozilla uses --host instead - # of --build, and --target intstead of --host. - # Note, mozilla also has --build but it does not do what you think it does. - # Set both --target and --host as mozilla uses python to guess values otherwise - mozconfig_annotate '' --target="${CHOST}" - mozconfig_annotate '' --host="${CBUILD:-${CHOST}}" - if use system-libevent ; then - mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr - fi - - if ! use x86 && [[ ${CHOST} != armv*h* ]] ; then - mozconfig_annotate '' --enable-rust-simd - fi - - # use the gtk3 toolkit (the only one supported at this point) - # TODO: Will this result in automagic dependency on x11-libs/gtk+[wayland]? - if use wayland ; then - mozconfig_annotate '' --enable-default-toolkit=cairo-gtk3-wayland - else - mozconfig_annotate '' --enable-default-toolkit=cairo-gtk3 - fi - - mozconfig_use_enable startup-notification - mozconfig_use_enable system-sqlite - mozconfig_use_with system-av1 - mozconfig_use_with system-harfbuzz - mozconfig_use_with system-harfbuzz system-graphite2 - mozconfig_use_with system-icu - mozconfig_use_with system-jpeg - mozconfig_use_with system-libvpx - mozconfig_use_with system-webp - mozconfig_use_enable pulseaudio - # force the deprecated alsa sound code if pulseaudio is disabled - if use kernel_linux && ! use pulseaudio ; then - mozconfig_annotate '-pulseaudio' --enable-alsa - fi - - # Disable built-in ccache support to avoid sandbox violation, #665420 - # Use FEATURES=ccache instead! - mozconfig_annotate '' --without-ccache - sed -i -e 's/ccache_stats = None/return None/' \ - python/mozbuild/mozbuild/controller/building.py || \ - die "Failed to disable ccache stats call" - - mozconfig_use_enable dbus - - mozconfig_use_enable wifi necko-wifi - - mozconfig_use_enable geckodriver - - # enable JACK, bug 600002 - mozconfig_use_enable jack - - # Setup api key for location services and safebrowsing, https://bugzilla.mozilla.org/show_bug.cgi?id=1531176#c34 - echo -n "${_google_api_key}" > "${S}"/google-api-key - mozconfig_annotate '' --with-google-location-service-api-keyfile="${S}/google-api-key" - mozconfig_annotate '' --with-google-safebrowsing-api-keyfile="${S}/google-api-key" - - mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" - - # allow elfhack to work in combination with unstripped binaries - # when they would normally be larger than 2GiB. - append-ldflags "-Wl,--compress-debug-sections=zlib" - - if use clang && ! use arm64; then - # https://bugzilla.mozilla.org/show_bug.cgi?id=1482204 - # https://bugzilla.mozilla.org/show_bug.cgi?id=1483822 - mozconfig_annotate 'elf-hack is broken when using Clang' --disable-elf-hack - fi - - echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig - echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig - - # Finalize and report settings - mozconfig_final - - mkdir -p "${S}"/third_party/rust/libloading/.deps - - # workaround for funky/broken upstream configure... - SHELL="${SHELL:-${EPREFIX}/bin/bash}" MOZ_NOSPAM=1 \ - ./mach configure || die -} - -src_compile() { - local _virtx= - if use pgo ; then - _virtx=virtx - - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - addpredict /root - addpredict /etc/gconf - fi - - GDK_BACKEND=x11 \ - MOZ_MAKE_FLAGS="${MAKEOPTS} -O" \ - SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ - MOZ_NOSPAM=1 \ - ${_virtx} \ - ./mach build --verbose \ - || die -} - -src_install() { - cd "${BUILD_OBJ_DIR}" || die - - # Pax mark xpcshell for hardened support, only used for startupcache creation. - pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell - - # Add our default prefs for IceCat - cp "${FILESDIR}"/gentoo-default-prefs.js-3 \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - - # set dictionary path, to use system hunspell - echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \ - >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die - - # force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it - if use system-harfbuzz ; then - echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \ - >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die - fi - - # force cairo as the canvas renderer on platforms without skia support - if [[ $(tc-endian) == "big" ]] ; then - echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \ - >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die - echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \ - >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" || die - fi - - # Augment this with hwaccel prefs - if use hwaccel ; then - cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - fi - - if ! use screenshot ; then - echo "pref(\"extensions.screenshots.disabled\", true);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - fi - - echo "pref(\"extensions.autoDisableScopes\", 3);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - - local plugin - use gmp-autoupdate || use eme-free || for plugin in "${GMP_PLUGIN_LIST[@]}" ; do - echo "pref(\"media.${plugin}.autoupdate\", false);" >> \ - "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ - || die - done - - cd "${S}" - MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" MOZ_NOSPAM=1 \ - DESTDIR="${D}" ./mach install || die - - if use geckodriver ; then - cp "${BUILD_OBJ_DIR}"/dist/bin/geckodriver "${ED%/}"${MOZILLA_FIVE_HOME} || die - pax-mark m "${ED%/}"${MOZILLA_FIVE_HOME}/geckodriver - - dosym ${MOZILLA_FIVE_HOME}/geckodriver /usr/bin/geckodriver - fi - - # Install language packs -# MOZEXTENSION_TARGET="distribution/extensions" MOZ_INSTALL_L10N_XPIFILE="1" mozlinguas_src_install - - local size sizes icon_path icon name - sizes="16 22 24 32 48 64 128 256" - icon_path="${S}/browser/branding/official" - icon="${PN}" - name="GNU IceCat" - - # Disable built-in auto-update because we update IceCat through package manager - insinto ${MOZILLA_FIVE_HOME}/distribution/ - newins "${FILESDIR}"/disable-auto-update.policy.json policies.json - - # Install icons and .desktop for menu entry - for size in ${sizes} ; do - insinto "/usr/share/icons/hicolor/${size}x${size}/apps" - newins "${icon_path}/default${size}.png" "${icon}.png" - done - # Install a 48x48 icon into /usr/share/pixmaps for legacy DEs - newicon "${icon_path}/default48.png" "${icon}.png" - - # Add StartupNotify=true bug 237317 - local startup_notify="false" - if use startup-notification ; then - startup_notify="true" - fi - - local display_protocols="auto X11" use_wayland="false" - if use wayland ; then - display_protocols+=" Wayland" - use_wayland="true" - fi - - local app_name desktop_filename display_protocol exec_command - for display_protocol in ${display_protocols} ; do - app_name="${name} on ${display_protocol}" - desktop_filename="${PN}-${display_protocol,,}.desktop" - - case ${display_protocol} in - Wayland) - exec_command='icecat-wayland --name icecat-wayland' - newbin "${FILESDIR}"/icecat-wayland.sh icecat-wayland - ;; - X11) - if ! use wayland ; then - # Exit loop here because there's no choice so - # we don't need wrapper/.desktop file for X11. - continue - fi - - exec_command='icecat-x11 --name icecat-x11' - newbin "${FILESDIR}"/icecat-x11.sh icecat-x11 - ;; - *) - app_name="${name}" - desktop_filename="${PN}.desktop" - exec_command='icecat' - ;; - esac - - newmenu "${FILESDIR}/icon/${PN}-r1.desktop" "${desktop_filename}" - sed -i \ - -e "s:@NAME@:${app_name}:" \ - -e "s:@EXEC@:${exec_command}:" \ - -e "s:@ICON@:${icon}:" \ - -e "s:@STARTUP_NOTIFY@:${startup_notify}:" \ - "${ED%/}/usr/share/applications/${desktop_filename}" || die - done - - rm "${ED%/}"/usr/bin/icecat || die - newbin "${FILESDIR}"/icecat.sh icecat - - local wrapper - for wrapper in \ - "${ED%/}"/usr/bin/icecat \ - "${ED%/}"/usr/bin/icecat-x11 \ - "${ED%/}"/usr/bin/icecat-wayland \ - ; do - [[ ! -f "${wrapper}" ]] && continue - - sed -i \ - -e "s:@PREFIX@:${EPREFIX%/}/usr:" \ - -e "s:@DEFAULT_WAYLAND@:${use_wayland}:" \ - "${wrapper}" || die - done - - # Don't install llvm-symbolizer from sys-devel/llvm package - [[ -f "${ED%/}${MOZILLA_FIVE_HOME}/llvm-symbolizer" ]] && \ - rm "${ED%/}${MOZILLA_FIVE_HOME}/llvm-symbolizer" - - # icecat and icecat-bin are identical - rm "${ED%/}"${MOZILLA_FIVE_HOME}/icecat-bin || die - dosym icecat ${MOZILLA_FIVE_HOME}/icecat-bin - - # Required in order to use plugins and even run icecat on hardened. - pax-mark m "${ED%/}"${MOZILLA_FIVE_HOME}/{icecat,plugin-container} -} - -pkg_preinst() { - gnome2_icon_savelist - - # if the apulse libs are available in MOZILLA_FIVE_HOME then apulse - # doesn't need to be forced into the LD_LIBRARY_PATH - if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then - einfo "APULSE found - Generating library symlinks for sound support" - local lib - pushd "${ED}"${MOZILLA_FIVE_HOME} &>/dev/null || die - for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do - # a quickpkg rolled by hand will grab symlinks as part of the package, - # so we need to avoid creating them if they already exist. - if [[ ! -L ${lib##*/} ]] ; then - ln -s "${lib}" ${lib##*/} || die - fi - done - popd &>/dev/null || die - fi -} - -pkg_postinst() { - gnome2_icon_cache_update - xdg_desktop_database_update - - if ! use gmp-autoupdate; then - elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" - elog "installing into new profiles:" - local plugin - for plugin in "${GMP_PLUGIN_LIST[@]}"; do elog "\t ${plugin}" ; done - elog - fi - - if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then - elog "Apulse was detected at merge time on this system and so it will always be" - elog "used for sound. If you wish to use pulseaudio instead please unmerge" - elog "media-sound/apulse." - elog - fi - - local show_doh_information show_normandy_information - - if [[ -z "${REPLACING_VERSIONS}" ]] ; then - # New install; Tell user that DoH is disabled by default - show_doh_information=yes - show_normandy_information=yes - else - local replacing_version - for replacing_version in ${REPLACING_VERSIONS} ; do - if ver_test "${replacing_version}" -lt 68.6.0-r3 ; then - # Tell user only once about our DoH default - show_doh_information=yes - fi - - if ver_test "${replacing_version}" -lt 68.6.0-r3 ; then - # Tell user only once about our Normandy default - show_normandy_information=yes - fi - done - fi - - if [[ -n "${show_doh_information}" ]] ; then - elog - elog "Note regarding Trusted Recursive Resolver aka DNS-over-HTTPS (DoH):" - elog "Due to privacy concerns (encrypting DNS might be a good thing, sending all" - elog "DNS traffic to Cloudflare by default is not a good idea and applications" - elog "should respect OS configured settings), \"network.trr.mode\" was set to 5" - elog "(\"Off by choice\") by default." - elog "You can enable DNS-over-HTTPS in ${PN^}'s preferences." - fi - - # bug 713782 - if [[ -n "${show_normandy_information}" ]] ; then - elog - elog "Upstream operates a service named Normandy which allows Mozilla to" - elog "push changes for default settings or even install new add-ons remotely." - elog "While this can be useful to address problems like 'Armagadd-on 2.0' or" - elog "revert previous decisions to disable TLS 1.0/1.1, privacy and security" - elog "concerns prevail, which is why we have switched off the use of this" - elog "service by default." - elog - elog "To re-enable this service set" - elog - elog " app.normandy.enabled=true" - elog - elog "in about:config." - fi -} - -pkg_postrm() { - gnome2_icon_cache_update - xdg_desktop_database_update -} diff --git a/www-client/icecat/metadata.xml b/www-client/icecat/metadata.xml index 17f13f6..f845c18 100644 --- a/www-client/icecat/metadata.xml +++ b/www-client/icecat/metadata.xml @@ -2,6 +2,7 @@ + You should not be able to see this Use Clang compiler instead of GCC Build with user-specified compiler optimizations (-Os, -O0, -O1, -O2, -O3) from CFLAGS (unsupported) @@ -30,6 +31,7 @@ installation with secure-delete enabled Use the system-wide media-libs/libwebp instead of bundled. + You should not be able to see this