summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorBlackNoxis <steven.darklight@gmail.com>2014-10-27 18:38:05 +0200
committerBlackNoxis <steven.darklight@gmail.com>2014-10-27 18:38:05 +0200
commit24934e623441310f644e5f72855b0f2bf9f3cd1a (patch)
treea453939bf58199bc2c3ff27bcf0accf2b221c6c4 /eclass
parent687f45092b4f4ccf33765cee7427f054bae22344 (diff)
Incoming! Moving Rogento.git to kogaion-desktop. Finally
Diffstat (limited to 'eclass')
-rw-r--r--eclass/avahi.eclass15
-rw-r--r--eclass/kde-l10n.eclass9
-rw-r--r--eclass/kogaion-artwork.eclass24
-rw-r--r--eclass/kogaion-kernel.eclass966
-rw-r--r--eclass/libreoffice-l10n-2.eclass42
-rw-r--r--eclass/rogentos-kernel.eclass7
-rw-r--r--eclass/sab-patches.eclass69
-rw-r--r--eclass/sabayon-artwork.eclass5
8 files changed, 1052 insertions, 85 deletions
diff --git a/eclass/avahi.eclass b/eclass/avahi.eclass
index 47164ca3..c9a9876d 100644
--- a/eclass/avahi.eclass
+++ b/eclass/avahi.eclass
@@ -48,7 +48,7 @@ fi
MY_P=${P/-${AVAHI_MODULE}}
-inherit autotools eutils flag-o-matic systemd
+inherit autotools eutils flag-o-matic
DESCRIPTION="avahi ${AVAHI_MODULE} module"
HOMEPAGE="http://avahi.org/"
@@ -57,7 +57,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
+KEYWORDS="~amd64 ~x86"
AVAHI_COMMON_DEPEND=">=dev-util/intltool-0.40.5
>=dev-util/pkgconfig-0.9.0"
@@ -70,12 +70,6 @@ avahi_src_prepare() {
-e "s:\\.\\./\\.\\./\\.\\./doc/avahi-docs/html/:../../../doc/${PF}/html/:" \
doxygen_to_devhelp.xsl || die
- # Drop DEPRECATED flags, bug #384743
- sed -i -e 's:-D[A-Z_]*DISABLE_DEPRECATED=1::g' avahi-ui/Makefile.am || die
-
- # Prevent .pyc files in DESTDIR
- >py-compile
-
for i in ${!AVAHI_PATCHES[@]}; do
epatch "${AVAHI_PATCHES[i]}"
done
@@ -96,14 +90,13 @@ avahi_src_configure() {
--enable-glib
--enable-gobject
--disable-qt3
- $(systemd_with_unitdir)
- ${*}"
+ $@"
econf ${myconf}
}
avahi_src_install-cleanup() {
# Remove .la files
- find "${ED}" -name '*.la' -exec rm -f {} + || die
+ find "${D}" -name '*.la' -exec rm -f {} + || die
}
EXPORT_FUNCTIONS src_prepare src_configure
diff --git a/eclass/kde-l10n.eclass b/eclass/kde-l10n.eclass
index 2974c890..100db755 100644
--- a/eclass/kde-l10n.eclass
+++ b/eclass/kde-l10n.eclass
@@ -1,8 +1,8 @@
-# Copyright 2004-2013 Sabayon
+# Copyright 2004-2012 Sabayon
# Distributed under the terms of the GNU General Public License v2
# $
-inherit kde4-base
+inherit base kde4-base
MY_LANG="${PN/kde-l10n-/}"
@@ -14,14 +14,11 @@ DESCRIPTION="KDE4 ${L10N_NAME} localization package"
HOMEPAGE="http://www.kde.org/"
LICENSE="GPL-2"
-KEYWORDS="~amd64 ~arm ~x86"
+KEYWORDS="~amd64 ~x86"
DEPEND=">=sys-devel/gettext-0.15"
RDEPEND=""
IUSE="+handbook"
-URI_BASE="${SRC_URI/-${MY_LANG}-${PV}.tar.xz/}"
-SRC_URI="${SRC_URI} ${URI_BASE}/${PN}-${PV}.tar.xz"
-
kde-l10n_src_prepare() {
# override kde4-base_src_prepare which
# fails at enable_selected_doc_linguas
diff --git a/eclass/kogaion-artwork.eclass b/eclass/kogaion-artwork.eclass
index e537c9e8..f20a2fd0 100644
--- a/eclass/kogaion-artwork.eclass
+++ b/eclass/kogaion-artwork.eclass
@@ -1,8 +1,5 @@
# Copyright 2004-2009 Sabayon Project
-# Copyright 2012 Rogentos
# Distributed under the terms of the GNU General Public License v2
-# Original Authors: Sabayon Team
-# Maintainer BlackNoxis <stefan.cristian at rogentos.ro>
# $
inherit eutils
@@ -16,15 +13,18 @@ KERN_INITRAMFS_SEARCH_NAME="${KERN_INITRAMFS_SEARCH_NAME:-initramfs-genkernel*}"
# @ECLASS-VARIABLE: GFX_SPLASH_NAME
# @DESCRIPTION:
# Default splash theme name to use
-GFX_SPLASH_NAME="${GFX_SPLASH_NAME:-kogaion}"
+GFX_SPLASH_NAME="${GFX_SPLASH_NAME:-rogentos}"
+
+# @ECLASS-VARIABLE: PLYMOUTH_THEME
+# @DESCRIPTION:
+# Default plymouth theme name to use
+PLYMOUTH_THEME="${PLYMOUTH_THEME:-rogentos}"
# @FUNCTION: update_kernel_initramfs_splash
# @USAGE: update_kernel_initramfs_splash [splash_theme] [splash_file]
# @RETURN: 1, if something went wrong
#
# @MAINTAINER:
-# Brindusa Stefan Cristian
-# @AUTHOR:
# Fabio Erculiani
update_kernel_initramfs_splash() {
@@ -39,16 +39,14 @@ update_kernel_initramfs_splash() {
}
-# @FUNCTION: update_sabayon_kernel_initramfs_splash
-# @USAGE: update_sabayon_kernel_initramfs_splash
+# @FUNCTION: update_kogaion_kernel_initramfs_splash
+# @USAGE: update_kogaion_kernel_initramfs_splash
#
-# @AUTHOR:
-# Fabio Erculiani
# @MAINTAINER:
-# Brindusa Stefan Cristian
-update_sabayon_kernel_initramfs_splash() {
+# Stefan Cristian B.
+update_kogaion_kernel_initramfs_splash() {
local splash_name="${GFX_SPLASH_NAME}"
- local override_splash_file="${ROOT}etc/splash_name"
+ local override_splash_file="${ROOT}etc/oem/splash_name"
if [ -f "${override_splash_file}" ]; then
found_splash_name=$(cat "${override_splash_file}" | cut -d" " -f 1)
if [ -d "/etc/splash/${found_splash_name}" ]; then
diff --git a/eclass/kogaion-kernel.eclass b/eclass/kogaion-kernel.eclass
new file mode 100644
index 00000000..cd296f0c
--- /dev/null
+++ b/eclass/kogaion-kernel.eclass
@@ -0,0 +1,966 @@
+# Copyright 2004-2014 RogentOS Team
+# Distributed under the terms of the GNU General Public License v2
+# $
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_NAME
+# @DESCRIPTION:
+# The kernel name used by the ebuild, it should be the ending ${PN} part
+# for example, of linux-kogaion it is "${PN/${PN/-*}-}" (kogaion)
+K_ROGKERNEL_NAME="${K_ROGKERNEL_NAME:-${PN/${PN/-*}-}}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_SELF_TARBALL_NAME
+# @DESCRIPTION:
+# If the main kernel sources tarball is generated in-house and available
+# on the "kogaion" mirror, set this variable to the extension name (see example
+# below). This will disable ALL the extra/local patches (since they have to
+# be applied inside the tarball). Moreover, K_ROGKERNEL_NAME,
+# K_KERNEL_PATCH_VER will be ignored.
+# Example:
+# K_ROGKERNEL_SELF_TARBALL_NAME="kogaion"
+# This would generate:
+# SRC_URI="mirror://kogaion/sys-kernel/linux-${PV}+kogaion.tar.${K_TARBALL_EXT}"
+K_ROGKERNEL_SELF_TARBALL_NAME="${K_ROGKERNEL_SELF_TARBALL_NAME:-}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_PATCH_UPSTREAM_TARBALL
+# @DESCRIPTION:
+# If set to 1, the ebuild will fetch the upstream kernel tarball and
+# apply the RogentOS patch against it. This strategy avoids the need of
+# creating complete kernel source tarballs. The default value is 0.
+K_ROGKERNEL_PATCH_UPSTREAM_TARBALL="${K_ROGKERNEL_PATCH_UPSTREAM_TARBALL:-0}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_FORCE_SUBLEVEL
+# @DESCRIPTION:
+# Force the rewrite of SUBLEVEL in kernel sources Makefile
+K_ROGKERNEL_FORCE_SUBLEVEL="${K_ROGKERNEL_FORCE_SUBLEVEL:-}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_RESET_EXTRAVERSION
+# @DESCRIPTION:
+# Force the rewrite of EXTRAVERSION in kernel sources Makefile (setting it to "")
+K_ROGKERNEL_RESET_EXTRAVERSION="${K_ROGKERNEL_RESET_EXTRAVERSION:-}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_LONGTERM
+# @DESCRIPTION:
+# Consider Kernel stable patchset as longterm (changing URL)
+K_ROGKERNEL_LONGTERM="${K_ROGKERNEL_LONGTERM:-}"
+
+# @ECLASS-VARIABLE: K_KERNEL_SOURCES_PKG
+# @DESCRIPTION:
+# The kernel sources package used to build this kernel binary
+K_KERNEL_SOURCES_PKG="${K_KERNEL_SOURCES_PKG:-${CATEGORY}/${PN/*-}-sources-${PVR}}"
+
+# @ECLASS-VARIABLE: K_KERNEL_PATCH_VER
+# @DESCRIPTION:
+# If set to "3" for example, it applies the upstream kernel
+# patch corresponding to patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}.3.${K_TARBALL_EXT}
+# @TODO: deprecate and remove once 2.6.x kernels are retired
+K_KERNEL_PATCH_VER="${K_KERNEL_PATCH_VER:-}"
+
+# @ECLASS-VARIABLE: K_KERNEL_PATCH_HOTFIXES
+# @DESCRIPTION:
+# If there is the need to quickly apply patches to the kernel
+# without bumping the kernel patch tarball (for eg. in case
+# of just released security fixes), set this variable in your ebuild
+# pointing to space separated list of patch paths.
+K_KERNEL_PATCH_HOTFIXES="${K_KERNEL_PATCH_HOTFIXES:-}"
+
+# @ECLASS-VARIABLE: K_KERNEL_DISABLE_PR_EXTRAVERSION
+# @DESCRIPTION:
+# Set this to "1" if you want to tell kernel-2 eclass to
+# not use ${PR} in kernel EXTRAVERSION (K_NOUSEPR). Otherwise, set
+# this to "0" to not set K_NOUSEPR at all.
+K_KERNEL_DISABLE_PR_EXTRAVERSION="${K_KERNEL_DISABLE_PR_EXTRAVERSION:-1}"
+
+# @ECLASS-VARIABLE: K_KERNEL_SLOT_USEPVR
+# @DESCRIPTION:
+# Set this to "1" if you want to use ${PVR} in SLOT variable, instead of ${PV}
+# sys-kernel/linux-vserver (vserver-sources) require this. This won't work for
+# firmware pkgs.
+K_KERNEL_SLOT_USEPVR="${K_KERNEL_SLOT_USEPVR:-0}"
+
+# @ECLASS-VARIABLE: K_KERNEL_NEW_VERSIONING
+# @DESCRIPTION:
+# Set this to "1" if your kernel ebuild uses the new Linux kernel upstream
+# versioning and ${PV} contains the stable revision, like 3.7.1.
+# In the example above, this makes the SLOT variable contain only "3.7".
+# The sublevel version can be forced using K_ROGKERNEL_FORCE_SUBLEVEL
+K_KERNEL_NEW_VERSIONING="${K_KERNEL_NEW_VERSIONING:-0}"
+
+# @ECLASS-VARIABLE: K_KERNEL_IMAGE_NAME
+# @DESCRIPTION:
+# Set this to a custom kernel image make target if the default does not
+# fit your needs. This value if set, is passed to genkernel through the
+# --kernel-target= flag.
+K_KERNEL_IMAGE_NAME="${K_KERNEL_IMAGE_NAME:-}"
+
+# @ECLASS-VARIABLE: K_KERNEL_LTS
+# @DESCRIPTION:
+# Set this to 1 to mark the kernel as Long Term Stable. "virtual/linux-binary-lts"
+# shall be appended to ${PROVIDE}.
+K_KERNEL_LTS="${K_KERNEL_LTS:-}"
+
+# @ECLASS-VARIABLE: K_KERNEL_IMAGE_PATH
+# @DESCRIPTION:
+# Set this to a custom relative kernel image path to override the default
+# one. This value if set, is passed to genkernel through the
+# --kernel-binary= flag.
+K_KERNEL_IMAGE_PATH="${K_KERNEL_IMAGE_PATH:-}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_FIRMWARE
+# @DESCRIPTION:
+# Set this to "1" if your ebuild is a kernel firmware package
+K_FIRMWARE_PACKAGE="${K_FIRMWARE_PACKAGE:-}"
+
+# @ECLASS-VARIABLE: K_ONLY_SOURCES
+# @DESCRIPTION:
+# For every kernel binary package, there is a kernel source package associated
+# if your ebuild is one of them, set this to "1"
+K_ONLY_SOURCES="${K_ONLY_SOURCES:-}"
+
+# @ECLASS-VARIABLE: K_REQUIRED_LINUX_FIRMWARE_VER
+# @DESCRIPTION:
+# Minimum required version of sys-kernel/linux-formware package, if any
+K_REQUIRED_LINUX_FIRMWARE_VER="${K_REQUIRED_LINUX_FIRMWARE_VER:-}"
+
+# @ECLASS-VARIABLE: K_WORKAROUND_SOURCES_COLLISION
+# @DESCRIPTION:
+# For kernel binary packages, Workaround file collisions with kernel
+# sources already providing certain files (like Makefile). Used
+# by linux-openvz and linux-vserver
+K_WORKAROUND_SOURCES_COLLISION="${K_WORKAROUND_SOURCES_COLLISION:-}"
+
+# @ECLASS-VARIABLE: K_WORKAROUND_USE_REAL_EXTRAVERSION
+# @DESCRIPTION:
+# Some kernel sources are shipped with their own EXTRAVERSION and
+# we're kindly asked to not touch it, if this is your case, set
+# this variable and depmod will work correctly.
+K_WORKAROUND_USE_REAL_EXTRAVERSION="${K_WORKAROUND_USE_REAL_EXTRAVERSION:-}"
+
+# @ECLASS-VARIABLE: K_ROGKERNEL_ZFS
+# @DESCRIPTION:
+# If set, this kernel features ZFS.
+K_ROGKERNEL_ZFS="${K_ROGKERNEL_ZFS:-}"
+
+# @ECLASS-VARIABLE: K_GENKERNEL_ARGS
+# @DESCRIPTION:
+# Provide extra genkernel arguments using K_GENKERNEL_ARGS
+K_GENKERNEL_ARGS="${K_GENKERNEL_ARGS:-}"
+
+# @ECLASS-VARIABLE: K_MKIMAGE_RAMDISK_ADDRESS
+# @DESCRIPTION:
+# [ARM ONLY] Provide the ramdisk load address to be used with mkimage
+K_MKIMAGE_RAMDISK_ADDRESS="${K_MKIMAGE_RAMDISK_ADDRESS:-}"
+
+# @ECLASS-VARIABLE: K_MKIMAGE_RAMDISK_ENTRYPOINT
+# @DESCRIPTION:
+# [ARM ONLY] Provide the ramdisk entry point address to be used with mkimage
+K_MKIMAGE_RAMDISK_ENTRYPOINT="${K_MKIMAGE_RAMDISK_ENTRYPOINT:-}"
+
+# @ECLASS-VARIABLE: K_MKIMAGE_WRAP_INITRAMFS
+# @DESCRIPTION:
+# [ARM ONLY] Execute mkimage against the generated initramfs Default is yes ("1").
+K_MKIMAGE_WRAP_INITRAMFS="${K_MKIMAGE_WRAP_INITRAMFS:-1}"
+
+# @ECLASS-VARIABLE: K_MKIMAGE_KERNEL_ADDRESS
+# @DESCRIPTION:
+# [ARM ONLY] Provide the kernel load address to be used with mkimage
+K_MKIMAGE_KERNEL_ADDRESS="${K_MKIMAGE_KERNEL_ADDRESS:-}"
+
+KERN_INITRAMFS_SEARCH_NAME="${KERN_INITRAMFS_SEARCH_NAME:-initramfs-genkernel*${K_ROGKERNEL_NAME}}"
+
+# Disable deblobbing feature
+K_DEBLOB_AVAILABLE=0
+ETYPE="sources"
+K_TARBALL_EXT="${K_TARBALL_EXT:-xz}"
+
+inherit versionator
+if [ "${K_KERNEL_NEW_VERSIONING}" = "1" ]; then
+ CKV="$(get_version_component_range 1-2)"
+fi
+
+inherit eutils multilib kernel-2 kogaion-artwork mount-boot linux-info
+
+# from kernel-2 eclass
+detect_version
+detect_arch
+
+DESCRIPTION="Kogaion, Argent and ArgOS linux kernel functions and phases"
+
+
+K_LONGTERM_URL_STR=""
+if [ -n "${K_ROGKERNEL_LONGTERM}" ]; then
+ K_LONGTERM_URL_STR="/longterm/v${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
+fi
+
+## kernel-2 eclass settings
+if [ "${K_ROGKERNEL_PATCH_UPSTREAM_TARBALL}" = "1" ]; then
+ _patch_name="$(get_version_component_range 1-2)-${K_ROGKERNEL_SELF_TARBALL_NAME}-${PVR}.patch.xz"
+ SRC_URI="${KERNEL_URI}"
+ UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${_patch_name}"
+ unset _patch_name
+elif [ -n "${K_ROGKERNEL_SELF_TARBALL_NAME}" ]; then
+ #SRC_URI="mirror://kogaion/${CATEGORY}/linux-${PVR}+${K_ROGKERNEL_SELF_TARBALL_NAME}.tar.${K_TARBALL_EXT}"
+ SRC_URI="http://bpr.bluepink.ro/~rogentos/distro/${CATEGORY}/linux-${PVR}+${K_ROGKERNEL_SELF_TARBALL_NAME}.tar.${K_TARBALL_EXT}"
+else
+ SRC_URI="${KERNEL_URI}"
+fi
+
+if [ -z "${K_ROGKERNEL_SELF_TARBALL_NAME}" ]; then
+ if [ -n "${K_KERNEL_PATCH_VER}" ]; then
+ K_PATCH_NAME="patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}.${K_KERNEL_PATCH_VER}.${K_TARBALL_EXT}"
+ SRC_URI="${SRC_URI}
+ mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}${K_LONGTERM_URL_STR}/${K_PATCH_NAME}"
+ UNIPATCH_LIST="${DISTDIR}/${K_PATCH_NAME}
+ ${UNIPATCH_LIST}"
+ fi
+fi
+if [ -n "${K_KERNEL_PATCH_HOTFIXES}" ]; then
+ UNIPATCH_LIST="${UNIPATCH_LIST} ${K_KERNEL_PATCH_HOTFIXES}"
+fi
+
+_get_real_kv_full() {
+ if [[ "${KV_MAJOR}${KV_MINOR}" -eq 26 ]]; then
+ echo "${ORIGINAL_KV_FULL}"
+ elif [[ "${OKV/.*}" = "3" ]]; then
+ # Linux 3.x support, KV_FULL is set to: 3.0-kogaion
+ # need to add another final .0 to the version part
+ echo "${ORIGINAL_KV_FULL/-/.0-}"
+ else
+ echo "${ORIGINAL_KV_FULL}"
+ fi
+}
+
+# replace "linux" with K_ROGKERNEL_NAME, usually replaces
+# "linux" with "kogaion" or "server" or "openvz"
+KV_FULL="${KV_FULL/${PN/-*}/${K_ROGKERNEL_NAME}}"
+EXTRAVERSION="${EXTRAVERSION/${PN/-*}/${K_ROGKERNEL_NAME}}"
+# drop -rX if exists
+if [[ -n "${PR//r0}" ]] && [[ "${K_KERNEL_DISABLE_PR_EXTRAVERSION}" = "1" ]] \
+ && [[ -z "${K_NOSETEXTRAVERSION}" ]]; then
+ EXTRAVERSION="${EXTRAVERSION%-r*}"
+ KV_FULL="${KV_FULL%-r*}"
+ KV="${KV%-r*}"
+fi
+# rewrite it
+ORIGINAL_KV_FULL="${KV_FULL}"
+KV_FULL="$(_get_real_kv_full)"
+
+# Starting from linux-3.0, we still have to install
+# sources stuff into /usr/src/linux-3.0.0-kogaion (example)
+# where the last part must always match uname -r
+# otherwise kernel-switcher (and RELEASE_LEVEL file)
+# will complain badly
+KV_OUT_DIR="/usr/src/linux-${KV_FULL}"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+
+if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
+ SLOT="0"
+elif [ "${K_KERNEL_SLOT_USEPVR}" = "1" ]; then
+ SLOT="${PVR}"
+elif [ "${K_KERNEL_NEW_VERSIONING}" = "1" ]; then
+ SLOT="$(get_version_component_range 1-2)"
+else
+ SLOT="${PV}"
+fi
+
+_is_kernel_binary() {
+ if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
+ # yes it is
+ return 0
+ else
+ # no it isn't
+ return 1
+ fi
+}
+
+_is_kernel_lts() {
+ local _ver="$(get_version_component_range 1-2)"
+ [ "${_ver}" = "3.0" ] && return 0
+ [ "${_ver}" = "3.2" ] && return 0
+ [ "${_ver}" = "3.4" ] && return 0
+ [ "${_ver}" = "3.10" ] && return 0
+ return 1
+}
+
+# provide extra virtual pkg
+if _is_kernel_binary; then
+ PROVIDE="virtual/linux-binary"
+# LTS support
+ if [ "${K_KERNEL_LTS}" = "1" ] || _is_kernel_lts; then
+ PROVIDE+=" virtual/linux-binary-lts"
+ fi
+fi
+
+if [ -n "${K_ROGKERNEL_SELF_TARBALL_NAME}" ]; then
+ HOMEPAGE="https://github.com/Rogentos/kernel"
+else
+ HOMEPAGE="http://www.kogaion.ro"
+fi
+
+# Returns success if _set_config_file_vars was called.
+_is_config_file_set() {
+ [[ ${_config_file_set} = 1 ]]
+}
+
+# Returns the arm kernel config file extension for the current subarch
+_get_arm_subarch() {
+ local target="${CTARGET:-${CHOST}}"
+ local arm_arch=${target%%-*}
+ if [[ ${arm_arch} == armv7? ]]; then
+ echo "armv7"
+ elif [[ ${arm_arch} == armv6? ]]; then
+ echo "armv6"
+ elif [[ ${arm_arch} == armv5? ]]; then
+ echo "armv5"
+ fi
+}
+
+_get_arch() {
+ if use arm; then
+ _get_arm_subarch
+ elif use amd64; then
+ echo "amd64"
+ elif use x86; then
+ echo "x86"
+ fi
+}
+
+_set_config_file_vars() {
+ # Setup kernel configuration file name
+ local pvr="${PVR}"
+ local pv="${PV}"
+ if [ "${K_KERNEL_NEW_VERSIONING}" = "1" ]; then
+ pvr="$(get_version_component_range 1-2)"
+ pv="${pvr}"
+ if [ "${PR}" != "r0" ]; then
+ pvr+="-${PR}"
+ fi
+ fi
+
+ K_ROGKERNEL_CONFIG_FILES=()
+ K_ROGKERNEL_CONFIG_FILES+=( "${K_ROGKERNEL_NAME}-${pvr}-$(_get_arch).config" )
+ K_ROGKERNEL_CONFIG_FILES+=( "${K_ROGKERNEL_NAME}-${pv}-$(_get_arch).config" )
+ K_ROGKERNEL_CONFIG_FILES+=( "${K_ROGKERNEL_NAME}-$(_get_arch).config" )
+
+ _config_file_set=1
+}
+
+if [ -n "${K_ONLY_SOURCES}" ] || [ -n "${K_FIRMWARE_PACKAGE}" ]; then
+ IUSE="${IUSE}"
+ DEPEND="sys-apps/sed"
+ RDEPEND="${RDEPEND}"
+else
+ IUSE="dmraid dracut iscsi luks lvm mdadm plymouth splash"
+ if [ -n "${K_ROGKERNEL_ZFS}" ]; then
+ IUSE="${IUSE} zfs"
+ fi
+ DEPEND="app-arch/xz-utils
+ sys-apps/sed
+ sys-devel/autoconf
+ sys-devel/make
+ || ( >=sys-kernel/genkernel-next-5 >=sys-kernel/genkernel-3.4.45-r2 )
+ arm? ( dev-embedded/u-boot-tools )
+ amd64? ( sys-apps/v86d )
+ x86? ( sys-apps/v86d )
+ splash? ( x11-themes/rogentos-artwork-core )
+ lvm? ( sys-fs/lvm2 sys-block/thin-provisioning-tools )
+ plymouth? (
+ || ( >=sys-kernel/genkernel-next-5 >=sys-kernel/genkernel-5 )
+ sys-boot/plymouth
+ )
+ dracut? ( sys-apps/v86d sys-kernel/dracut )"
+ RDEPEND="sys-apps/sed
+ sys-kernel/linux-firmware"
+ if [ -n "${K_REQUIRED_LINUX_FIRMWARE_VER}" ]; then
+ RDEPEND+=" >=sys-kernel/linux-firmware-${K_REQUIRED_LINUX_FIRMWARE_VER}"
+ fi
+fi
+
+# internal function
+#
+# FUNCTION: _update_depmod
+# @USAGE: _update_depmod <-r depmod>
+# DESCRIPTION:
+# It updates the modules.dep file for the current kernel.
+# This is more or less the same of linux-mod update_depmod, with the
+# exception of accepting parameter which is passed to depmod -r switch
+_update_depmod() {
+
+ # if we haven't determined the version yet, we need too.
+ get_version;
+
+ ebegin "Updating module dependencies for ${KV_FULL}"
+ if [ -r "${KV_OUT_DIR}"/System.map ]; then
+ depmod -ae -F "${KV_OUT_DIR}"/System.map -b "${ROOT}" -r "${1}"
+ eend $?
+ else
+ ewarn
+ ewarn "${KV_OUT_DIR}/System.map not found."
+ ewarn "You must manually update the kernel module dependencies using depmod."
+ eend 1
+ ewarn
+ fi
+}
+
+kogaion-kernel_pkg_setup() {
+ if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
+ einfo "Preparing kernel firmwares"
+ else
+ einfo "Preparing kernel and its modules"
+ fi
+}
+
+kogaion-kernel_src_unpack() {
+ local okv="${OKV}"
+ if [ -n "${K_ROGKERNEL_SELF_TARBALL_NAME}" ] && [ "${K_ROGKERNEL_PATCH_UPSTREAM_TARBALL}" != "1" ]; then
+ OKV="${PVR}+${K_ROGKERNEL_SELF_TARBALL_NAME}"
+ fi
+ if [ "${K_KERNEL_NEW_VERSIONING}" = "1" ]; then
+ # workaround for kernel-2's universal_unpack assumptions
+ UNIPATCH_LIST_DEFAULT= KV_MAJOR=0 kernel-2_src_unpack
+ else
+ kernel-2_src_unpack
+ fi
+ if [ -n "${K_ROGKERNEL_FORCE_SUBLEVEL}" ]; then
+ # patch out Makefile with proper sublevel
+ sed -i "s:^SUBLEVEL = .*:SUBLEVEL = ${K_ROGKERNEL_FORCE_SUBLEVEL}:" \
+ "${S}/Makefile" || die
+ fi
+ if [ -n "${K_ROGKERNEL_RESET_EXTRAVERSION}" ]; then
+ sed -i "s:^EXTRAVERSION =.*:EXTRAVERSION = :" "${S}/Makefile" || die
+ # some sources could have multiple append-based EXTRAVERSIONs
+ sed -i "s/^EXTRAVERSION :=.*//" "${S}/Makefile" || die
+ fi
+ OKV="${okv}"
+
+ # Let's handle EAPIs 0 and 1...
+ case ${EAPI:-0} in
+ 0|1) kogaion-kernel_src_prepare ;;
+ esac
+}
+
+kogaion-kernel_src_prepare() {
+ _set_config_file_vars
+}
+
+kogaion-kernel_src_compile() {
+ if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
+ _firmwares_src_compile
+ elif [ -n "${K_ONLY_SOURCES}" ]; then
+ kernel-2_src_compile
+ else
+ _kernel_src_compile
+ fi
+}
+
+_firmwares_src_compile() {
+ einfo "Starting to compile firmwares..."
+ _kernel_copy_config "${S}/.config"
+ cd "${S}" || die "cannot find source dir"
+
+ export LDFLAGS=""
+ OLDARCH="${ARCH}"
+ unset ARCH
+ emake firmware || die "cannot compile firmwares"
+ ARCH="${OLDARCH}"
+}
+
+_kernel_copy_config() {
+ _is_config_file_set \
+ || die "Kernel configuration file not set. Was kogaion-kernel_src_prepare() called?"
+
+ local base_path="${DISTDIR}"
+ if [ -n "${K_ROGKERNEL_SELF_TARBALL_NAME}" ]; then
+ base_path="${S}/kogaion/config"
+ fi
+
+ local found= cfg=
+ for cfg in "${K_ROGKERNEL_CONFIG_FILES[@]}"; do
+ cfg="${base_path}/${cfg}"
+ if [ -f "${cfg}" ]; then
+ cp "${cfg}" "${1}" || die "cannot copy kernel config ${cfg} -> ${1}"
+ elog "Using kernel config: ${cfg}"
+ found=1
+ break
+ fi
+ done
+ [[ -z "${found}" ]] && die "cannot find kernel configs among: ${K_ROGKERNEL_CONFIG_FILES[*]}"
+}
+
+_kernel_src_compile() {
+ # disable sandbox
+ export SANDBOX_ON=0
+
+ # needed anyway, even if grub use flag is not used here
+ if use amd64 || use x86; then
+ mkdir -p "${WORKDIR}"/boot/grub
+ else
+ mkdir -p "${WORKDIR}"/boot
+ fi
+
+ einfo "Starting to compile kernel..."
+ _kernel_copy_config "${WORKDIR}"/config
+
+ # do some cleanup
+ rm -rf "${WORKDIR}"/lib
+ rm -rf "${WORKDIR}"/cache
+ rm -rf "${S}"/temp
+
+ # creating workdirs
+ # some kernels fail with make 3.82 if firmware dir is not created
+ mkdir "${WORKDIR}"/lib/lib/firmware -p
+ mkdir "${WORKDIR}"/cache
+ mkdir "${S}"/temp
+
+ cd "${S}" || die
+ local GKARGS=()
+ GKARGS+=( "--no-save-config" "--e2fsprogs" "--udev" )
+ use splash && GKARGS+=( "--splash=rogentos" )
+ use plymouth && GKARGS+=( "--plymouth" "--plymouth-theme=rogentos" )
+ use dmraid && GKARGS+=( "--dmraid" )
+ use iscsi && GKARGS+=( "--iscsi" )
+ use mdadm && GKARGS+=( "--mdadm" )
+ use luks && GKARGS+=( "--luks" )
+ use lvm && GKARGS+=( "--lvm" )
+ if [ -n "${K_ROGKERNEL_ZFS}" ]; then
+ use zfs && GKARGS+=( "--zfs" )
+ fi
+
+ export DEFAULT_KERNEL_SOURCE="${S}"
+ export CMD_KERNEL_DIR="${S}"
+ for opt in ${MAKEOPTS}; do
+ if [ "${opt:0:2}" = "-j" ]; then
+ mkopts="${opt}"
+ break
+ fi
+ done
+ [ -z "${mkopts}" ] && mkopts="-j3"
+
+ if [ -n "${K_KERNEL_IMAGE_NAME}" ]; then
+ GKARGS+=( "--kernel-target=${K_KERNEL_IMAGE_NAME}" )
+ elif use arm; then
+ # backward compat + provide sane defaults.
+ GKARGS+=( "--kernel-target=uImage" )
+ fi
+ if [ -n "${K_KERNEL_IMAGE_PATH}" ]; then
+ GKARGS+=( "--kernel-binary=${K_KERNEL_IMAGE_PATH}" )
+ elif use arm; then
+ # backward compat + provide sane defaults.
+ GKARGS+=( "--kernel-binary=arch/arm/boot/uImage" )
+ fi
+
+ # Workaround bug in splash_geninitramfs corrupting the initramfs
+ # if xz compression is used (newer genkernel >3.4.24)
+ local support_comp=$(genkernel --help | grep compress-initramfs-type)
+ if [ -n "${support_comp}" ]; then
+ GKARGS+=( "--compress-initramfs-type=gzip" )
+ fi
+
+ # Use --disklabel if genkernel supports it
+ local support_disklabel=$(genkernel --help | grep -- --disklabel)
+ if [ -n "${support_disklabel}" ]; then
+ GKARGS+=( "--disklabel" )
+ fi
+
+ if [ -n "${K_MKIMAGE_KERNEL_ADDRESS}" ]; then
+ export LOADADDR="${K_MKIMAGE_KERNEL_ADDRESS}"
+ fi
+ OLDARCH="${ARCH}"
+ unset ARCH
+ unset LDFLAGS
+ DEFAULT_KERNEL_SOURCE="${S}" CMD_KERNEL_DIR="${S}" genkernel "${GKARGS[@]}" ${K_GENKERNEL_ARGS} \
+ --kerneldir="${S}" \
+ --kernel-config="${WORKDIR}"/config \
+ --cachedir="${WORKDIR}"/cache \
+ --makeopts="${mkopts}" \
+ --tempdir="${S}"/temp \
+ --logfile="${WORKDIR}"/genkernel.log \
+ --bootdir="${WORKDIR}"/boot \
+ --mountboot \
+ --module-prefix="${WORKDIR}"/lib \
+ all || die "genkernel failed"
+
+ if [ -n "${K_MKIMAGE_KERNEL_ADDRESS}" ]; then
+ unset LOADADDR
+ fi
+
+ ARCH=${OLDARCH}
+}
+
+_setup_mkimage_ramdisk() {
+ local initramfs=$(ls "${WORKDIR}"/boot/${KERN_INITRAMFS_SEARCH_NAME}* 2> /dev/null)
+ if [ ! -e "${initramfs}" ] || [ ! -f "${initramfs}" ]; then
+ ewarn "No initramfs at ${initramfs}, cannot run mkimage on it!"
+ elif [ "${K_MKIMAGE_WRAP_INITRAMFS}" = "1" ]; then
+ einfo "Setting up u-boot initramfs for: ${initramfs}"
+ mkimage -A arm -O linux -T ramdisk -C none -a \
+ "${K_MKIMAGE_RAMDISK_ADDRESS}" \
+ -e "${K_MKIMAGE_RAMDISK_ENTRYPOINT}" -d "${initramfs}" \
+ "${initramfs}.u-boot" || return 1
+ mv "${initramfs}.u-boot" "${initramfs}" || return 1
+ else
+ einfo "mkimage won't be called for: ${initramfs}"
+ fi
+ return 0
+}
+
+kogaion-kernel_src_install() {
+ if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
+ _firmwares_src_install
+ elif [ -n "${K_ONLY_SOURCES}" ]; then
+ _kernel_sources_src_install
+ else
+ _kernel_src_install
+ fi
+ # File collisions between slots, debug stuff
+ # not really needed for a kernel
+ rm -rf "${D}/usr/lib/debug"
+}
+
+_firmwares_src_install() {
+ dodir /lib/firmware
+ keepdir /lib/firmware
+ cd "${S}" || die
+ emake INSTALL_FW_PATH="${D}/lib/firmware" firmware_install || die "cannot install firmwares"
+}
+
+_kernel_sources_src_install() {
+ _kernel_copy_config ".config"
+ kernel-2_src_install
+ cd "${D}${KV_OUT_DIR}" || die
+ local oldarch="${ARCH}"
+ unset ARCH
+ if ! use sources_standalone; then
+ make modules_prepare || die "failed to run modules_prepare"
+ rm .config || die "cannot remove .config"
+ rm Makefile || die "cannot remove Makefile"
+ rm -f include/linux/version.h
+ rm -f include/generated/uapi/linux/version.h
+ fi
+ ARCH="${oldarch}"
+}
+
+_kernel_src_install() {
+ if use arm; then
+ _setup_mkimage_ramdisk || die "cannot setup mkimage"
+ fi
+
+ dodir "${KV_OUT_DIR}"
+ insinto "${KV_OUT_DIR}"
+
+ _kernel_copy_config ".config"
+ doins ".config" || die "cannot copy kernel config"
+ doins Makefile || die "cannot copy Makefile"
+ doins Module.symvers || die "cannot copy Module.symvers"
+ doins System.map || die "cannot copy System.map"
+
+ # NOTE: this is a workaround caused by linux-info.eclass not
+ # being ported to EAPI=2 yet
+ local version_h_dir="include/linux"
+ local version_h_dir2="include/generated/uapi/linux"
+ local version_h=
+ local version_h_src=
+ for ver_dir in "${version_h_dir}" "${version_h_dir2}"; do
+ version_h="${ROOT}${KV_OUT_DIR/\//}/${ver_dir}/version.h"
+ if [ -f "${version_h}" ]; then
+ einfo "Discarding previously installed version.h to avoid collisions"
+ addwrite "${version_h}"
+ rm -f "${version_h}"
+ fi
+
+ # Include include/linux/version.h to make Portage happy
+ version_h_src="${S}/${ver_dir}/version.h"
+ if [ -f "${version_h_src}" ]; then
+ dodir "${KV_OUT_DIR}/${ver_dir}"
+ insinto "${KV_OUT_DIR}/${ver_dir}"
+ doins "${version_h_src}" || die "cannot copy version.h"
+ fi
+ done
+
+ insinto "/boot"
+ doins "${WORKDIR}"/boot/* || die "cannot copy /boot over"
+ cp -Rp "${WORKDIR}"/lib/* "${D}/" || die "cannot copy /lib over"
+
+ # Install dtbs if found
+ if use arm; then
+ local dtb_dir="/lib/dts/${KV_FULL}"
+ elog "Installing .dtbs (if any) into ${dtb_dir}"
+ insinto "${dtb_dir}"
+ local dtb=
+ for dtb in "${S}/arch/arm/boot/dts"/*.dtb; do
+ if [ -f "${dtb}" ]; then
+ elog "Installing dtb: ${dtb}"
+ doins "${dtb}"
+ fi
+ done
+ fi
+
+ # This doesn't always work because KV_FULL (when K_NOSETEXTRAVERSION=1) doesn't
+ # reflect the real value used in Makefile
+ #dosym "../../..${KV_OUT_DIR}" "/lib/modules/${KV_FULL}/source" || die "cannot install source symlink"
+ #dosym "../../..${KV_OUT_DIR}" "/lib/modules/${KV_FULL}/build" || die "cannot install build symlink"
+ cd "${D}"/lib/modules/* || die "cannot enter /lib/modules directory, more than one element?"
+ # cleanup previous
+ rm -f build source || die
+ # create sane symlinks
+ ln -sf "../../..${KV_OUT_DIR}" source || die "cannot create source symlink"
+ ln -sf "../../..${KV_OUT_DIR}" build || die "cannot create build symlink"
+ cd "${S}" || die
+
+ # drop ${D}/lib/firmware, virtual/linux-firmwares provides it
+ rm -rf "${D}/lib/firmware"
+
+ if [ -n "${K_WORKAROUND_SOURCES_COLLISION}" ]; then
+ # Fixing up Makefile collision if already installed by
+ # openvz-sources
+ einfo "Workarounding source package collisions"
+ make_file="${KV_OUT_DIR/\//}/Makefile"
+ einfo "Makefile: ${make_file}"
+ if [ -f "${ROOT}/${make_file}" ]; then
+ elog "Removing ${D}/${make_file}"
+ rm -f "${D}/${make_file}"
+ fi
+ fi
+
+ # Install kernel configuration information
+ # useful for Entropy kernel-switcher
+ # release level is enough for now
+ base_dir="/etc/kernels/${P}"
+ dodir "${base_dir}"
+ insinto "${base_dir}"
+ echo "${KV_FULL}" > "RELEASE_LEVEL"
+ doins "RELEASE_LEVEL"
+ einfo "Installing ${base_dir}/RELEASE_LEVEL file: ${KV_FULL}"
+
+ use dracut && \
+ _dracut_initramfs_create "${KV_FULL}"
+}
+
+kogaion-kernel_pkg_preinst() {
+ if _is_kernel_binary; then
+ mount-boot_pkg_preinst
+ fi
+}
+kogaion-kernel_grub2_mkconfig() {
+ if [ -x "${ROOT}usr/sbin/grub2-mkconfig" ]; then
+ # Grub 2.00
+ "${ROOT}usr/sbin/grub2-mkconfig" -o "${ROOT}boot/grub/grub.cfg"
+ elif [ -x "${ROOT}sbin/grub-mkconfig" ]; then
+ # Grub 1.99
+ "${ROOT}sbin/grub-mkdevicemap" --device-map="${ROOT}boot/grub/device.map"
+ "${ROOT}sbin/grub-mkconfig" -o "${ROOT}boot/grub/grub.cfg"
+ else
+ echo
+ ewarn "Attention, Grub2 is not installed !!!"
+ ewarn "Grub2 bootloader configuration won't be updated"
+ echo
+ fi
+}
+
+_get_real_extraversion() {
+ make_file="${ROOT}${KV_OUT_DIR}/Makefile"
+ local extraver=$(grep -r "^EXTRAVERSION =" "${make_file}" | cut -d "=" -f 2 | head -n 1)
+ local trimmed=${extraver%% }
+ echo ${trimmed## }
+}
+
+_get_release_level() {
+ if [[ -n "${K_WORKAROUND_USE_REAL_EXTRAVERSION}" ]]; then
+ echo "${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}$(_get_real_extraversion)"
+ elif [[ "${KV_MAJOR}${KV_MINOR}" -eq 26 ]]; then
+ echo "${KV_FULL}"
+ elif [[ "${OKV/.*}" = "3" ]] && [[ "${KV_PATCH}" = "0" ]]; then
+ # Linux 3.x support, KV_FULL is set to: 3.0-kogaion
+ # need to add another final .0 to the version part
+ echo "${KV_FULL/-/.0-}"
+ else
+ echo "${KV_FULL}"
+ fi
+}
+
+kogaion-kernel_uimage_config() {
+ # Two cases here:
+ # 1. /boot/uImage symlink is broken (pkg_postrm)
+ # 2. /boot/uImage symlink doesn't exist (pkg_postinst)
+
+ if ! has_version app-admin/eselect-uimage; then
+ ewarn "app-admin/eselect-uimage not installed"
+ ewarn "If you are using this tool, please install it"
+ return 0
+ fi
+
+ local uimage_file=$(eselect uimage show --quiet 2> /dev/null)
+ if [ -z "${uimage_file}" ]; then
+ # pick the first listed, sorry!
+ local eselect_list=$(eselect uimage list --quiet 2> /dev/null)
+ if [ -n "${eselect_list}" ]; then
+ eselect uimage set 1
+ else
+ echo
+ ewarn "No more kernels available, you won't be able to boot"
+ echo
+ fi
+ else
+ echo
+ elog "If you use eselect-bzimage, you are currently booting with kernel:"
+ elog "${uimage_file}"
+ elog
+ elog "Use 'eselect uimage' in order to switch between the available ones"
+ echo
+ fi
+}
+
+kogaion-kernel_bzimage_config() {
+ # Two cases here:
+ # 1. /boot/bzImage symlink is broken (pkg_postrm)
+ # 2. /boot/bzImage symlink doesn't exist (pkg_postinst)
+ local kern_arch
+ use x86 && kern_arch="x86"
+ use amd64 && kern_arch="x86_64"
+
+ if ! has_version app-admin/eselect-bzimage; then
+ ewarn "app-admin/eselect-bzimage not installed"
+ ewarn "If you are using this tool, please install it"
+ return 0
+ fi
+
+ local bzimage_file=$(eselect bzimage show --quiet 2> /dev/null)
+ if [ -z "${bzimage_file}" ]; then
+ # try to pic what's being installed
+ local eselect_list=$(eselect bzimage list --quiet 2> /dev/null)
+ if [ -n "${eselect_list}" ]; then
+ eselect bzimage set "kernel-genkernel-${kern_arch}-${KV_FULL}"
+ if [ "${?}" != "0" ]; then
+ # pick the first available, sorry!
+ echo
+ eselect bzimage set 1
+ ewarn "Unable to select the right kernel, falling back"
+ ewarn "to the first available entry. You have been warned"
+ echo
+ fi
+ else
+ echo
+ ewarn "No more kernels available, you might not be able to boot"
+ echo
+ fi
+ else
+ echo
+ ewarn "You are currently booting with kernel:"
+ ewarn "${bzimage_file}"
+ ewarn
+ ewarn "Use 'eselect bzimage' in order to switch between the available ones"
+ echo
+ fi
+}
+
+_dracut_initramfs_create() {
+ local kver="${1}"
+
+ elog "Creating dracut initramfs for ${kver}"
+ addpredict /etc/ld.so.cache~
+ dracut -q -N -f --kver="${kver}" "${D}/boot/initramfs-dracut-${kver}"
+}
+
+kogaion-kernel_pkg_postinst() {
+ if _is_kernel_binary; then
+ fstab_file="${ROOT}etc/fstab"
+ einfo "Removing extents option for ext4 drives from ${fstab_file}"
+ # Remove "extents" from /etc/fstab
+ if [ -f "${fstab_file}" ]; then
+ sed -i '/ext4/ s/extents//g' "${fstab_file}"
+ fi
+
+ # Update kernel initramfs to match user customizations
+ update_kogaion_kernel_initramfs_splash
+
+ # Add kernel to grub.conf
+ if use amd64 || use x86; then
+ if use amd64; then
+ local kern_arch="x86_64"
+ else
+ local kern_arch="x86"
+ fi
+ # grub-legacy
+ if [ -x "${ROOT}usr/sbin/grub-handler" ]; then
+ "${ROOT}usr/sbin/grub-handler" add \
+ "/boot/kernel-genkernel-${kern_arch}-${KV_FULL}" \
+ "/boot/initramfs-genkernel-${kern_arch}-${KV_FULL}"
+ fi
+
+ kogaion-kernel_grub2_mkconfig
+ fi
+
+ # Setup newly installed kernel on ARM
+ if use arm; then
+ kogaion-kernel_uimage_config
+ fi
+ # Setup newly installed kernel on x86/amd64
+ # This is quite handy for static grub1/grub2
+ # configurations (like on Amazon EC2)
+ if use x86 || use amd64; then
+ kogaion-kernel_bzimage_config
+ fi
+
+ kernel-2_pkg_postinst
+ local depmod_r=$(_get_release_level)
+ _update_depmod "${depmod_r}"
+
+ elog "Please report kernel bugs at:"
+ elog "http://bugs.kogaion.ro"
+
+ elog "The source code of this kernel is located at"
+ elog "=${K_KERNEL_SOURCES_PKG}."
+ elog "RogentOS Team recommends that portage users install"
+ elog "${K_KERNEL_SOURCES_PKG} if you want"
+ elog "to build any packages that install kernel modules"
+ elog "(such as ati-drivers, nvidia-drivers, virtualbox, etc...)."
+ else
+ kernel-2_pkg_postinst
+ fi
+}
+
+kogaion-kernel_pkg_prerm() {
+ if _is_kernel_binary; then
+ mount-boot_pkg_prerm
+ fi
+}
+
+kogaion-kernel_pkg_postrm() {
+ if _is_kernel_binary; then
+ # Remove kernel from grub.conf
+ if use amd64 || use x86; then
+ if use amd64; then
+ local kern_arch="x86_64"
+ else
+ local kern_arch="x86"
+ fi
+ if [ -x "${ROOT}usr/sbin/grub-handler" ]; then
+ "${ROOT}usr/sbin/grub-handler" remove \
+ "/boot/kernel-genkernel-${kern_arch}-${KV_FULL}" \
+ "/boot/initramfs-genkernel-${kern_arch}-${KV_FULL}"
+ fi
+
+ kogaion-kernel_grub2_mkconfig
+ fi
+
+ # Setup newly installed kernel on ARM
+ if use arm; then
+ kogaion-kernel_uimage_config
+ fi
+ # Setup newly installed kernel on x86/amd64
+ # This is quite handy for static grub1/grub2
+ # configurations (like on Amazon EC2)
+ if use x86 || use amd64; then
+ kogaion-kernel_bzimage_config
+ fi
+ fi
+}
+
+# export all the available functions here
+case ${EAPI:-0} in
+ 0|1) extra_export_funcs= ;;
+ *) extra_export_funcs=src_prepare ;;
+esac
+
+EXPORT_FUNCTIONS pkg_setup src_unpack ${extra_export_funcs} \
+ src_compile src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm
diff --git a/eclass/libreoffice-l10n-2.eclass b/eclass/libreoffice-l10n-2.eclass
index 05a912e8..79d74359 100644
--- a/eclass/libreoffice-l10n-2.eclass
+++ b/eclass/libreoffice-l10n-2.eclass
@@ -36,36 +36,20 @@ LANGPACK_AVAIL="${LANGPACK_AVAIL:-1}"
DESCRIPTION="LibreOffice.org ${L10N_LANG} localisation"
HOMEPAGE="http://www.documentfoundation.org"
-RESTRICT="mirror"
+RESTRICT="nomirror"
L10N_VER="$(get_version_component_range 1-3)"
-L10N_RC_VERSION="$(get_version_component_range 4)"
+L10N_RC_VERSION="rc2"
LO_BRANCH=$(get_version_component_range 1-2)
-if [ -n "${L10N_RC_VERSION}" ]; then
- # this is a RC, thus testing
- BASE_SRC_URI="http://download.documentfoundation.org/libreoffice/testing/${L10N_VER}/rpm"
- TARBALL_VERSION="${L10N_VER}.${L10N_RC_VERSION}"
-else
- BASE_SRC_URI="http://download.documentfoundation.org/libreoffice/stable/${L10N_VER}/rpm"
- TARBALL_VERSION="${L10N_VER}"
-fi
+BASE_SRC_URI="http://download.documentfoundation.org/libreoffice/stable/${L10N_VER}/rpm"
SRC_URI=""
-if [ "$(get_version_component_range 1)" = "3" ]; then
- URI_PREFIX="LibO"
- RPM_SUFFIX_LANG="langpack-rpm"
- RPM_SUFFIX_HELP="helppack-rpm"
-else
- URI_PREFIX="LibreOffice"
- RPM_SUFFIX_LANG="rpm_langpack"
- RPM_SUFFIX_HELP="rpm_helppack"
-fi
# try guessing
if [ "${LANGPACK_AVAIL}" = "1" ]; then
- SRC_URI+="${BASE_SRC_URI}/x86/${URI_PREFIX}_${TARBALL_VERSION}_Linux_x86_${RPM_SUFFIX_LANG}_${MY_LANG}.tar.gz"
+ SRC_URI+="${BASE_SRC_URI}/x86/LibO_${L10N_VER}_Linux_x86_langpack-rpm_${MY_LANG}.tar.gz"
fi
if [ "${HELPPACK_AVAIL}" = "1" ]; then
- SRC_URI+=" ${BASE_SRC_URI}/x86/${URI_PREFIX}_${TARBALL_VERSION}_Linux_x86_${RPM_SUFFIX_HELP}_${MY_LANG}.tar.gz"
+ SRC_URI+=" ${BASE_SRC_URI}/x86/LibO_${L10N_VER}_Linux_x86_helppack-rpm_${MY_LANG}.tar.gz"
fi
IUSE=""
@@ -99,20 +83,22 @@ libreoffice-l10n-2_src_unpack() {
local dir=${lang/_/-}
# for english we provide just helppack, as translation is always there
if [[ "${LANGPACK_AVAIL}" == "1" ]]; then
- rpmdir="${URI_PREFIX}_${TARBALL_VERSION}"*"_Linux_x86_${RPM_SUFFIX_LANG}_${dir}/RPMS/"
+ rpmdir="LibO_${L10N_VER}${L10N_RC_VERSION}_Linux_x86_langpack-rpm_${dir}/RPMS/"
+ [[ -d ${rpmdir} ]] || die "Missing directory: \"${rpmdir}\""
# First remove dictionaries, we want to use system ones.
rm -rf "${S}/${rpmdir}/"*dict*.rpm
einfo "Unpacking Langpack"
- rpm_unpack ./${rpmdir}/*.rpm
+ rpm_unpack "./${rpmdir}/"*.rpm
fi
if [[ "${HELPPACK_AVAIL}" == "1" ]]; then
- rpmdir="${URI_PREFIX}_${TARBALL_VERSION}"*"_Linux_x86_${RPM_SUFFIX_HELP}_${dir}/RPMS/"
+ rpmdir="LibO_${L10N_VER}${L10N_RC_VERSION}_Linux_x86_helppack-rpm_${dir}/RPMS/"
+ [[ -d ${rpmdir} ]] || die "Missing directory: \"${rpmdir}\""
einfo "Unpacking Helppack"
- rpm_unpack ./${rpmdir}/*.rpm
+ rpm_unpack ./"${rpmdir}/"*.rpm
fi
if [[ -n "${TDEPEND}" ]]; then
if use templates; then
- for i in "${OO_EXTENSIONS[@]}"; do
+ for i in ${OO_EXTENSIONS[@]}; do
if [[ ! -f "${S}/${i}" ]]; then
cp -v "${DISTDIR}/${i}" "${S}"
ooextused+=( "${i}" )
@@ -121,8 +107,8 @@ libreoffice-l10n-2_src_unpack() {
fi
fi
OO_EXTENSIONS=()
- for i in "${ooextused[@]}"; do
- OO_EXTENSIONS+=( "${i}" )
+ for i in ${ooextused[@]}; do
+ OO_EXTENSIONS+=( ${i} )
done
}
diff --git a/eclass/rogentos-kernel.eclass b/eclass/rogentos-kernel.eclass
index 7945398e..0af155e7 100644
--- a/eclass/rogentos-kernel.eclass
+++ b/eclass/rogentos-kernel.eclass
@@ -194,13 +194,12 @@ fi
## kernel-2 eclass settings
if [ "${K_ROGKERNEL_PATCH_UPSTREAM_TARBALL}" = "1" ]; then
_patch_name="$(get_version_component_range 1-2)-${K_ROGKERNEL_SELF_TARBALL_NAME}-${PVR}.patch.xz"
- SRC_URI="${KERNEL_URI}
- mirror://rogentos/${CATEGORY}/${_patch_name}
- "
+ SRC_URI="${KERNEL_URI}"
UNIPATCH_LIST="${UNIPATCH_LIST} ${DISTDIR}/${_patch_name}"
unset _patch_name
elif [ -n "${K_ROGKERNEL_SELF_TARBALL_NAME}" ]; then
- SRC_URI="mirror://rogentos/${CATEGORY}/linux-${PVR}+${K_ROGKERNEL_SELF_TARBALL_NAME}.tar.${K_TARBALL_EXT}"
+ #SRC_URI="mirror://rogentos/${CATEGORY}/linux-${PVR}+${K_ROGKERNEL_SELF_TARBALL_NAME}.tar.${K_TARBALL_EXT}"
+ SRC_URI="http://bpr.bluepink.ro/~rogentos/distro/${CATEGORY}/linux-${PVR}+${K_ROGKERNEL_SELF_TARBALL_NAME}.tar.${K_TARBALL_EXT}"
else
SRC_URI="${KERNEL_URI}"
fi
diff --git a/eclass/sab-patches.eclass b/eclass/sab-patches.eclass
index d4e74cef..8511256e 100644
--- a/eclass/sab-patches.eclass
+++ b/eclass/sab-patches.eclass
@@ -7,11 +7,10 @@
# slawomir.nizio@sabayon.org
# @AUTHOR:
# SÅ‚awomir Nizio <slawomir.nizio@sabayon.org>
-# @BLURB: eclass that makes it easier to apply patches from tarballs
+# @BLURB: eclass that makes it easier to apply patches from multiple packages
# @DESCRIPTION:
-# Adds a patch or patches to SRC_URI and makes it easy to apply them.
-# It is intended to work with tarballs containing patches, and is
-# made to make it easier for Sabayon split ebuilds.
+# Adds a patch or patches to SRC_URI and makes it easy to apply them,
+# with the intention to make the task easier for Sabayon split ebuilds.
# (Plain patches kept in a VCS are very nice, but in the case of split
# ebuilds, duplicating the patches is not effective.)
# The eclass does not define any phase function.
@@ -39,18 +38,26 @@ unset _sab_patch
# @FUNCTION: sab-patches_apply_all
# @DESCRIPTION:
-# Applies patches that can be found under
-# ${WORKDIR}/<name of the patch tarball without ext.>, for each tarball.
-# Order of patching is specified by the 'order' file, which must exist in
-# each tarball.
-# Patch names that are listed in SAB_PATCHES_SKIP are skipped
-# by _sab-patches_apply_from_dir.
+# Applies patches specified using SAB_PATCHES_SRC, skipping patches
+# with names matched in SAB_PATCHES_SKIP.
+# Two possible cases are supported.
+# 1. A patch path which is a tarball (assumed file name: *.tar*).
+# Such a tarball must unpack to ${WORKDIR}/<tarball name without *.tar*>
+# and must contain a file 'order,' which is used to determine order
+# of patches to apply.
+# 2. A patch which is not a tarball, which will be simply applied (if
+# it is not skipped).
sab-patches_apply_all() {
local p
for p in "${SAB_PATCHES_SRC[@]}"; do
- local dir=${p##*/}
- dir=${dir%.tar*}
- _sab-patches_apply_from_dir "${WORKDIR}/${dir}"
+ if [[ ${p} = *.tar* ]]; then
+ local dir=${p##*/}
+ dir=${dir%.tar*}
+ _sab-patches_apply_from_dir "${WORKDIR}/${dir}"
+ else
+ local name=${p##*/}
+ _sab-patches_apply_nonskipped "${DISTDIR}" "${name}"
+ fi
done
}
@@ -68,6 +75,36 @@ sab-patches_apply() {
done
}
+# @FUNCTION: _sab-patches_apply_nonskipped
+# @INTERNAL
+# @DESCRIPTION:
+# Apply selected patches - only those which should not be skipped.
+# Arguments are the directory containing the patch, followed by
+# one or more patch names.
+# This function is not intended to be used by ebuilds because there
+# is a better way: use sab-patches_apply and skip the unwanted ones.
+_sab-patches_apply_nonskipped() {
+ if [[ $# -lt 2 ]]; then
+ die "_sab-patches_apply_nonskipped: missing arguments"
+ fi
+
+ local dir=$1
+ shift
+
+ local patch
+ for patch; do
+ if [[ ${patch} = */* ]]; then
+ die "_sab-patches_apply_nonskipped: '${patch}' contains slashes"
+ fi
+
+ if _sab-patches_is_skipped "${patch}"; then
+ einfo "(skipping ${patch})"
+ else
+ epatch "${dir}/${patch}"
+ fi
+ done
+}
+
# @FUNCTION: _sab-patches_apply_from_dir
# @INTERNAL
# @DESCRIPTION:
@@ -90,11 +127,7 @@ _sab-patches_apply_from_dir() {
die "Problems with the patch '${patch}', see ${order_file}."
fi
- if _sab-patches_is_skipped "${patch}"; then
- einfo "(skipping ${patch})"
- else
- epatch "${patch_path}"
- fi
+ _sab-patches_apply_nonskipped "${dir}" "${patch}"
done < "${order_file}"
[[ $? -ne 0 ]] && die "_sab-patches_apply_from_dir: loop failed"
diff --git a/eclass/sabayon-artwork.eclass b/eclass/sabayon-artwork.eclass
index f0aac62d..59d11cca 100644
--- a/eclass/sabayon-artwork.eclass
+++ b/eclass/sabayon-artwork.eclass
@@ -15,11 +15,6 @@ KERN_INITRAMFS_SEARCH_NAME="${KERN_INITRAMFS_SEARCH_NAME:-initramfs-genkernel*}"
# Default splash theme name to use
GFX_SPLASH_NAME="${GFX_SPLASH_NAME:-sabayon}"
-# @ECLASS-VARIABLE: PLYMOUTH_THEME
-# @DESCRIPTION:
-# Default plymouth theme name to use
-PLYMOUTH_THEME="${PLYMOUTH_THEME:-sabayon}"
-
# @FUNCTION: update_kernel_initramfs_splash
# @USAGE: update_kernel_initramfs_splash [splash_theme] [splash_file]
# @RETURN: 1, if something went wrong