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 @@
+
+
+
+
+
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 @@