add new files

This commit is contained in:
Mario Fetka 2011-12-03 12:15:17 +01:00
parent a7bc5860a5
commit 85fe320de5
32 changed files with 2274 additions and 212 deletions

View File

@ -0,0 +1,95 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea6-bin/icedtea6-bin-1.4.1.ebuild,v 1.1 2009/04/19 18:15:33 caster Exp $
EAPI="2"
inherit java-vm-2
dist_arm="http://ftp.disconnected-by-peer.at/armv5/"
DESCRIPTION="A Gentoo-made binary build of the icedtea6 JDK"
SRC_URI="arm? ( ${dist_arm}/${PN}6-core-${PVR}-arm.tar.bz2 )
doc? ( ${dist_arm}/${PN}6-doc-${PVR}.tar.bz2 )
examples? (
arm? ( ${dist_arm}/${PN}6-examples-${PVR}-arm.tar.bz2 )
)
nsplugin? (
arm? ( ${dist_arm}/${PN}6-nsplugin-${PVR}-arm.tar.bz2 )
)
source? ( ${dist_arm}/${PN}6-src-${PVR}.tar.bz2 )"
HOMEPAGE="http://icedtea.classpath.org"
IUSE="X alsa doc examples nsplugin source"
RESTRICT="strip"
LICENSE="GPL-2-with-linking-exception"
SLOT="6"
KEYWORDS="~arm"
S="${WORKDIR}/${PF}"
RDEPEND="
>=sys-libs/glibc-2.8_p20080602-r1
>=media-libs/giflib-4.1.6-r1
>=media-libs/jpeg-6b-r8
media-libs/libpng:1.2
>=sys-libs/zlib-1.2.3-r1
alsa? ( >=media-libs/alsa-lib-1.0.17a )
X? (
>=media-libs/freetype-2.3.8:2
>=media-libs/fontconfig-2.6.0-r2:1.0
>=x11-libs/libXext-1.0.4
>=x11-libs/libXi-1.2.1
>=x11-libs/libXtst-1.0.3
>=x11-libs/libX11-1.1.5
)
nsplugin? (
>=dev-libs/atk-1.24.0
>=dev-libs/glib-2.18.4-r1:2
>=dev-libs/nspr-4.7.3
>=x11-libs/cairo-1.8.6-r1
>=x11-libs/gtk+-2.14.7-r2:2
>=x11-libs/pango-1.22.4
)"
DEPEND=""
QA_EXECSTACK_arm="opt/${P}/jre/lib/arm/server/libjvm.so"
src_install() {
local dest="/opt/${P}"
local ddest="${D}/${dest}"
dodir "${dest}" || die
local arch=${ARCH}
# doins can't handle symlinks.
cp -pRP bin include jre lib man "${ddest}" || die "failed to copy"
dodoc ../doc/{ASSEMBLY_EXCEPTION,THIRD_PARTY_README} || die
if use doc ; then
dohtml -r ../doc/html/* || die "Failed to install documentation"
fi
if use examples; then
cp -pRP share/{demo,sample} "${ddest}" || die
fi
if use source ; then
cp src.zip "${ddest}" || die
fi
if use nsplugin ; then
install_mozilla_plugin "${dest}/jre/lib/${arch}/IcedTeaPlugin.so";
fi
set_java_env
java-vm_revdep-mask
}
pkg_postinst() {
if use nsplugin; then
elog "The icedtea6-bin browser plugin can be enabled using eselect java-nsplugin"
elog "Note that the plugin works only in browsers based on xulrunner-1.9"
elog "such as Firefox 3 or Epiphany 2.24 and not in older versions!"
fi
}

View File

@ -0,0 +1,95 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea6-bin/icedtea6-bin-1.4.1.ebuild,v 1.1 2009/04/19 18:15:33 caster Exp $
EAPI="2"
inherit java-vm-2
dist_arm="http://ftp.disconnected-by-peer.at/armv5/"
DESCRIPTION="A Gentoo-made binary build of the icedtea6 JDK"
SRC_URI="arm? ( ${dist_arm}/${PN}6-core-${PVR}-arm.tar.bz2 )
doc? ( ${dist_arm}/${PN}6-doc-${PVR}.tar.bz2 )
examples? (
arm? ( ${dist_arm}/${PN}6-examples-${PVR}-arm.tar.bz2 )
)
nsplugin? (
arm? ( ${dist_arm}/${PN}6-nsplugin-${PVR}-arm.tar.bz2 )
)
source? ( ${dist_arm}/${PN}6-src-${PVR}.tar.bz2 )"
HOMEPAGE="http://icedtea.classpath.org"
IUSE="X alsa doc examples nsplugin source"
RESTRICT="strip"
LICENSE="GPL-2-with-linking-exception"
SLOT="6"
KEYWORDS="~arm"
S="${WORKDIR}/${PF}"
RDEPEND="
>=sys-libs/glibc-2.8_p20080602-r1
>=media-libs/giflib-4.1.6-r1
media-libs/jpeg:62
media-libs/libpng:1.2
>=sys-libs/zlib-1.2.3-r1
alsa? ( >=media-libs/alsa-lib-1.0.17a )
X? (
>=media-libs/freetype-2.3.8:2
>=media-libs/fontconfig-2.6.0-r2:1.0
>=x11-libs/libXext-1.0.4
>=x11-libs/libXi-1.2.1
>=x11-libs/libXtst-1.0.3
>=x11-libs/libX11-1.1.5
)
nsplugin? (
>=dev-libs/atk-1.24.0
>=dev-libs/glib-2.18.4-r1:2
>=dev-libs/nspr-4.7.3
>=x11-libs/cairo-1.8.6-r1
>=x11-libs/gtk+-2.14.7-r2:2
>=x11-libs/pango-1.22.4
)"
DEPEND=""
QA_EXECSTACK_arm="opt/${P}/jre/lib/arm/server/libjvm.so"
src_install() {
local dest="/opt/${P}"
local ddest="${D}/${dest}"
dodir "${dest}" || die
local arch=${ARCH}
# doins can't handle symlinks.
cp -pRP bin include jre lib man "${ddest}" || die "failed to copy"
dodoc ../doc/{ASSEMBLY_EXCEPTION,THIRD_PARTY_README} || die
if use doc ; then
dohtml -r ../doc/html/* || die "Failed to install documentation"
fi
if use examples; then
cp -pRP share/{demo,sample} "${ddest}" || die
fi
if use source ; then
cp src.zip "${ddest}" || die
fi
if use nsplugin ; then
install_mozilla_plugin "${dest}/jre/lib/${arch}/IcedTeaPlugin.so";
fi
set_java_env
java-vm_revdep-mask
}
pkg_postinst() {
if use nsplugin; then
elog "The icedtea6-bin browser plugin can be enabled using eselect java-nsplugin"
elog "Note that the plugin works only in browsers based on xulrunner-1.9"
elog "such as Firefox 3 or Epiphany 2.24 and not in older versions!"
fi
}

View File

@ -0,0 +1,95 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea6-bin/icedtea6-bin-1.4.1.ebuild,v 1.1 2009/04/19 18:15:33 caster Exp $
EAPI="2"
inherit java-vm-2
dist_arm="http://ftp.disconnected-by-peer.at/armv5/"
DESCRIPTION="A Gentoo-made binary build of the icedtea6 JDK"
SRC_URI="arm? ( ${dist_arm}/${PN}6-core-${PVR}-arm.tar.bz2 )
doc? ( ${dist_arm}/${PN}6-doc-${PVR}.tar.bz2 )
examples? (
arm? ( ${dist_arm}/${PN}6-examples-${PVR}-arm.tar.bz2 )
)
nsplugin? (
arm? ( ${dist_arm}/${PN}6-nsplugin-${PVR}-arm.tar.bz2 )
)
source? ( ${dist_arm}/${PN}6-src-${PVR}.tar.bz2 )"
HOMEPAGE="http://icedtea.classpath.org"
IUSE="X alsa doc examples nsplugin source"
RESTRICT="strip"
LICENSE="GPL-2-with-linking-exception"
SLOT="6"
KEYWORDS="~arm"
S="${WORKDIR}/${PF}"
RDEPEND="
>=sys-libs/glibc-2.8_p20080602-r1
>=media-libs/giflib-4.1.6-r1
media-libs/jpeg:62
media-libs/libpng:1.2
>=sys-libs/zlib-1.2.3-r1
alsa? ( >=media-libs/alsa-lib-1.0.17a )
X? (
>=media-libs/freetype-2.3.8:2
>=media-libs/fontconfig-2.6.0-r2:1.0
>=x11-libs/libXext-1.0.4
>=x11-libs/libXi-1.2.1
>=x11-libs/libXtst-1.0.3
>=x11-libs/libX11-1.1.5
)
nsplugin? (
>=dev-libs/atk-1.24.0
>=dev-libs/glib-2.18.4-r1:2
>=dev-libs/nspr-4.7.3
>=x11-libs/cairo-1.8.6-r1
>=x11-libs/gtk+-2.14.7-r2:2
>=x11-libs/pango-1.22.4
)"
DEPEND=""
QA_EXECSTACK_arm="opt/${P}/jre/lib/arm/server/libjvm.so"
src_install() {
local dest="/opt/${P}"
local ddest="${D}/${dest}"
dodir "${dest}" || die
local arch=${ARCH}
# doins can't handle symlinks.
cp -pRP bin include jre lib man "${ddest}" || die "failed to copy"
dodoc ../doc/{ASSEMBLY_EXCEPTION,THIRD_PARTY_README} || die
if use doc ; then
dohtml -r ../doc/html/* || die "Failed to install documentation"
fi
if use examples; then
cp -pRP share/{demo,sample} "${ddest}" || die
fi
if use source ; then
cp src.zip "${ddest}" || die
fi
if use nsplugin ; then
install_mozilla_plugin "${dest}/jre/lib/${arch}/IcedTeaPlugin.so";
fi
set_java_env
java-vm_revdep-mask
}
pkg_postinst() {
if use nsplugin; then
elog "The icedtea6-bin browser plugin can be enabled using eselect java-nsplugin"
elog "Note that the plugin works only in browsers based on xulrunner-1.9"
elog "such as Firefox 3 or Epiphany 2.24 and not in older versions!"
fi
}

View File

@ -1,44 +0,0 @@
# ChangeLog for dev-java/icedtea6-bin
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea6-bin/ChangeLog,v 1.3 2009/04/19 18:15:33 caster Exp $
18 Oct 2010; Mario Fetka <mario.fetka@gmail.com>
+icedtea6-bin-1.8.2.ebuild:
bump to debian armel packages from sid
18 Oct 2010; Mario Fetka <mario.fetka@gmail.com> icedtea6-bin-1.5.ebuild:
add depend on jpeg:62
18 Oct 2010; Mario Fetka <mario.fetka@gmail.com> +icedtea6-bin-1.5.ebuild:
Bump to Cambridge Software Labs (http://www.camswl.com/openjdk/release.htm)
openjdk 1.5 version
17 Oct 2010; Mario Fetka <mario.fetka@gmail.com>
+icedtea6-bin-1.4.1.ebuild, -icedtea6-bin-1.6.2.ebuild:
downgrade to the real version
12 Jan 2010; Mario Fetka <mario.fetka@gmail.com> Manifest:
bump bins
12 Jan 2010; Mario Fetka <mario.fetka@gmail.com>
-icedtea6-bin-1.4.1.ebuild, +icedtea6-bin-1.6.2.ebuild:
fake update to newest arm binary packages
*icedtea6-bin-1.4.1 (19 Apr 2009)
19 Apr 2009; Vlastimil Babka <caster@gentoo.org>
+icedtea6-bin-1.4.1.ebuild:
Version bump, based on icedtea6-1.4.1-r1 from java-overlay.
*icedtea6-bin-1.4 (09 Feb 2009)
09 Feb 2009; Vlastimil Babka <caster@gentoo.org> +icedtea6-bin-1.4.ebuild:
Version bump, built from icedtea6-1.4 java-overlay r7477. Bug #255493.
*icedtea6-bin-1.3.1-r1 (24 Dec 2008)
24 Dec 2008; Vlastimil Babka <caster@gentoo.org> +files/icedtea6-bin.env,
+metadata.xml, +icedtea6-bin-1.3.1-r1.ebuild:
New package, a Gentoo binary build of icedtea6. Based on icedtea6-r2 from
java-overlay.

View File

@ -1,21 +0,0 @@
AUX icedtea6-bin.env 947 RMD160 8f72b884c823f408755a3b06daea5af7705da488 SHA1 7473e4d987d5b0e9f1dbf48fbf4978e37d2f64b9 SHA256 b0f675b427f42d7fd1bbf1314523144a2bfc9f5ad44f89568adce120929f74e3
DIST icedtea6-bin-core-1.4.1-arm.tar.bz2 36040656 RMD160 3c225e9dcecfb20b6b7bda23f8818794f8319a34 SHA1 9017616d566910a7a8298cb64bda2c683e74b278 SHA256 1ac655609ab9c5bed4c35931467d26f59788102683fada77b6d0cc99670ee757
DIST icedtea6-bin-core-1.5-arm.tar.bz2 37216392 RMD160 5a1cea4f745be331cf45a8dbe7188130682f17d5 SHA1 45bca9aeeab34aeae50be2507555d17d0fb5b784 SHA256 bb00759277ac02ded926e4c0c9899cfbf8163ff6fadd66e487e6442a92afd57c
DIST icedtea6-bin-core-1.8.2-arm.tar.bz2 35479382 RMD160 0d357f4a59a0a709b2e4997bd20118b700215979 SHA1 14a00cd26ed89a5654fc4d97b77da908bd5a7947 SHA256 f1c66ed99865ce165063e097d18a4021ede70ddbfb2a55fcd30c4626c56a1415
DIST icedtea6-bin-doc-1.4.1.tar.bz2 11525550 RMD160 ba87437c743c15876be920118fda4c1af65b02ad SHA1 f085d89b8b8183a2416c947343af27d9deb226fe SHA256 cbf216a6eb54be9f6f3755c9669b911d099ffd74e68cdd537ed0717af5cce58c
DIST icedtea6-bin-doc-1.5.tar.bz2 11525550 RMD160 ba87437c743c15876be920118fda4c1af65b02ad SHA1 f085d89b8b8183a2416c947343af27d9deb226fe SHA256 cbf216a6eb54be9f6f3755c9669b911d099ffd74e68cdd537ed0717af5cce58c
DIST icedtea6-bin-doc-1.8.2.tar.bz2 11525550 RMD160 ba87437c743c15876be920118fda4c1af65b02ad SHA1 f085d89b8b8183a2416c947343af27d9deb226fe SHA256 cbf216a6eb54be9f6f3755c9669b911d099ffd74e68cdd537ed0717af5cce58c
DIST icedtea6-bin-examples-1.4.1-arm.tar.bz2 2191708 RMD160 d629ecb386efc2219659aaa078a639a748296756 SHA1 e10caed440c37b4344e42e72fe3d2106f0af0a03 SHA256 c12cbbd28de0c0f1e74a3a5b7ffb0c799d1103b78e5dd7610f7080e1891d245f
DIST icedtea6-bin-examples-1.5-arm.tar.bz2 2700024 RMD160 d1422133b7557181d4c1353301e5dff1d69d02d5 SHA1 801c4bba47ef96860c1dc34bbf7e626cc831d7b5 SHA256 46af57b33d193f765bd5436e3c1932dd80c14e0406de2016a43060c63b9971ec
DIST icedtea6-bin-examples-1.8.2-arm.tar.bz2 2456259 RMD160 6fe00d3a0fcd83750e782c0f89d00420dc4f6b67 SHA1 f2e62e7cd93215b87f8edd1609f917b0a2f25b3b SHA256 cd044bd1f4e9dac07d9bfecd198f6ead60a027429bb96f20038aa14228a08919
DIST icedtea6-bin-nsplugin-1.4.1-arm.tar.bz2 80456 RMD160 2c2d626d5b6fc3cbb2c850c5a8e4fc5a7d819ba7 SHA1 fbf50b0edb7360ed999f49e2f095d9518c68715a SHA256 a12fe88f41e3be68e7c84bd1ce5afb7e84f32e309e5be3258ad4e477bb745685
DIST icedtea6-bin-nsplugin-1.5-arm.tar.bz2 276821 RMD160 165a560f13145b4fc46e4e05213253d9493a24b1 SHA1 1c9737b1f3433fd44318a4ce45f392ddaf29a972 SHA256 948436b2009eac5d614d05b5dd181cd0d4ace058b17c9b06530c21b69c0bd6cd
DIST icedtea6-bin-nsplugin-1.8.2-arm.tar.bz2 73541 RMD160 bc9bc84226c9a7946f7764492b064fb69a4ff911 SHA1 b60afcba844414c1eabe439e04bc98f655954c83 SHA256 0f5beee7865eb8f1a9ca7f91f39a0005266cca696f9dcfdb05673cf850aebc56
DIST icedtea6-bin-src-1.4.1.tar.bz2 26813820 RMD160 32c17b4a68ae6c9329784ff67c9bffaac646f737 SHA1 e869d9da7fc0ab8d58ca719a6fbfd7dcc9b0d625 SHA256 d64a6fec04ef8e72de4c73d66c553f5a6fc8d9dfaea8718a5d39eec67128028d
DIST icedtea6-bin-src-1.5.tar.bz2 26290807 RMD160 010ebb7b6bfab44aec20d45afd447fa5f149fcf9 SHA1 7e6b73d7c3f944843bb87eb1e92f8fdafe881c45 SHA256 98796ba965a90605aef2a06aaf0ef6fdf9b648c8af14fd6223b7d7131e935640
DIST icedtea6-bin-src-1.8.2.tar.bz2 26826117 RMD160 bcd2673a747394813d24af3159c5bcdfa5b1fadf SHA1 6bcb4b0bd3418c5239aea764488a961e063d8d85 SHA256 492bcea392c07474cb2e20661be19017e9958947909f1eb030895c73bf1b40fe
EBUILD icedtea6-bin-1.4.1.ebuild 2403 RMD160 3f285123d3df073550415ec5732da4ba505dd0e5 SHA1 dc0c390090e106fc900b4a6a6025357729c75ae5 SHA256 f80323dee9f403ee75d5b85e65d929a36bb6a5eb47156ca30cd4aab49c6f2425
EBUILD icedtea6-bin-1.5.ebuild 2398 RMD160 77ccc266d56c5a0a504dfd955ce670c8f96f368d SHA1 c3e4253af67ac56b92313b5df4fb9a638059aace SHA256 2a4cf3eeaa76b8cd8e555270a06ce995493e6e74382c167102309d741a2f9766
EBUILD icedtea6-bin-1.8.2.ebuild 2398 RMD160 77ccc266d56c5a0a504dfd955ce670c8f96f368d SHA1 c3e4253af67ac56b92313b5df4fb9a638059aace SHA256 2a4cf3eeaa76b8cd8e555270a06ce995493e6e74382c167102309d741a2f9766
MISC ChangeLog 1605 RMD160 1f4ef7dfe3de6de91bc7b7c43faeda56cc61fc2a SHA1 6e1afeb524d0d008a8e2d3fb6099fa1462d7488f SHA256 658e2e3f2c3750334c37ddee201c1dde33cbae2fe70580c87a62ef540dd2cdb1
MISC metadata.xml 159 RMD160 7da5c733c224383ffe350605bc36721a3ff2536f SHA1 99c2655c7bbee2cbc8c79edb2d00d481d62faf95 SHA256 a4ced33e98b00e3a3f725c4c40ef8e76c338db53389465ef871105fbe6e8cbbb

View File

@ -1,18 +0,0 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea6-bin/files/icedtea6-bin.env,v 1.1 2008/12/24 22:22:37 caster Exp $
VERSION="IcedTea6-bin @PV@"
JAVA_HOME=/opt/@P@
JDK_HOME=/opt/@P@
JAVAC=${JAVA_HOME}/bin/javac
PATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"
ROOTPATH="${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin"
LDPATH="${JAVA_HOME}/jre/lib/@PLATFORM@/:${JAVA_HOME}/jre/lib/@PLATFORM@/native_threads/:${JAVA_HOME}/jre/lib/@PLATFORM@/xawt/:${JAVA_HOME}/jre/lib/@PLATFORM@/server/"
MANPATH="/opt/@P@/man"
PROVIDES_TYPE="JDK JRE"
PROVIDES_VERSION="1.6"
# Taken from sun.boot.class.path property
BOOTCLASSPATH="${JAVA_HOME}/jre/lib/resources.jar:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/jsse.jar:${JAVA_HOME}/jre/lib/jce.jar:${JAVA_HOME}/jre/lib/charsets.jar"
GENERATION="2"
ENV_VARS="JAVA_HOME JDK_HOME JAVAC PATH ROOTPATH LDPATH MANPATH"

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>java</herd>
</pkgmetadata>

View File

@ -1,18 +1,16 @@
# Copyright 2004-2010 Sabayon Project
# Copyright 2010 Genlink Project
# Copyright 2010 Geos_One's Projekts
# Distributed under the terms of the GNU General Public License v2
# $
# @ECLASS-VARIABLE: K_NASPATCHES_VER
# @DESCRIPTION:
# The version of the nas patches tarball(s) to apply.
# The version of the genlink patches tarball(s) to apply.
# A value of "5" would apply 2.6.12-5 to my-sources-2.6.12.ebuild
# @ECLASS-VARIABLE: K_NASKERNEL_NAME
# @DESCRIPTION:
# The kernel name used by the ebuild, it should be the ending ${PN} part
# for example, of linux-nas it is "${PN/${PN/-*}-}" (nas)
# for example, of linux-genlink it is "${PN/${PN/-*}-}" (genlink)
K_NASKERNEL_NAME="${K_NASKERNEL_NAME:-${PN/${PN/-*}-}}"
# @ECLASS-VARIABLE: K_NASKERNEL_URI_CONFIG
@ -22,6 +20,34 @@ K_NASKERNEL_NAME="${K_NASKERNEL_NAME:-${PN/${PN/-*}-}}"
# leave this option set to "no", otherwise set this to "yes"
K_NASKERNEL_URI_CONFIG="${K_NASKERNEL_URI_CONFIG:-no}"
# @ECLASS-VARIABLE: K_NASKERNEL_SELF_TARBALL_NAME
# @DESCRIPTION:
# If the main kernel sources tarball is generated in-house and available
# on the "genlink" 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_NASKERNEL_URI_CONFIG,
# K_NASPATCHES_VER, K_NASKERNEL_NAME, K_KERNEL_PATCH_VER will be ignored.
# Example:
# K_NASKERNEL_SELF_TARBALL_NAME="genlink"
# This would generate:
# SRC_URI="mirror://genlink/sys-kernel/linux-${PV}+genlink.tar.bz2"
K_NASKERNEL_SELF_TARBALL_NAME="${K_NASKERNEL_SELF_TARBALL_NAME:-}"
# @ECLASS-VARIABLE: K_NASKERNEL_FORCE_SUBLEVEL
# @DESCRIPTION:
# Force the rewrite of SUBLEVEL in kernel sources Makefile
K_NASKERNEL_FORCE_SUBLEVEL="${K_NASKERNEL_FORCE_SUBLEVEL:-}"
# @ECLASS-VARIABLE: K_NASKERNEL_RESET_EXTRAVERSION
# @DESCRIPTION:
# Force the rewrite of EXTRAVERSION in kernel sources Makefile (setting it to "")
K_NASKERNEL_RESET_EXTRAVERSION="${K_NASKERNEL_RESET_EXTRAVERSION:-}"
# @ECLASS-VARIABLE: K_NASKERNEL_LONGTERM
# @DESCRIPTION:
# Consider Kernel stable patchset as longterm (changing URL)
K_NASKERNEL_LONGTERM="${K_NASKERNEL_LONGTERM:-}"
# @ECLASS-VARIABLE: K_KERNEL_SOURCES_PKG
# @DESCRIPTION:
# The kernel sources package used to build this kernel binary
@ -31,6 +57,7 @@ K_KERNEL_SOURCES_PKG="${K_KERNEL_SOURCES_PKG:-${CATEGORY}/${PN/*-}-sources-${PVR
# @DESCRIPTION:
# If set to "3" for example, it applies the upstream kernel
# patch corresponding to patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}.3.bz2
# @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
@ -66,6 +93,11 @@ K_FIRMWARE_PACKAGE="${K_FIRMWARE_PACKAGE:-}"
# 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
@ -73,30 +105,41 @@ K_ONLY_SOURCES="${K_ONLY_SOURCES:-}"
# by linux-openvz and linux-vserver
K_WORKAROUND_SOURCES_COLLISION="${K_WORKAROUND_SOURCES_COLLISION:-}"
# @ECLASS-VARIABLE: K_WORKAROUND_DIFFERENT_EXTRAVERSION
# @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 in order to make linux-mod_pkg_postinst happy
# (update_depmod) by feeding it with valid KV_FULL, that will be
# calculated using EXTRAVERSION in Makefile.
K_WORKAROUND_DIFFERENT_EXTRAVERSION="${K_WORKAROUND_DIFFERENT_EXTRAVERSION:-}"
# this variable and depmod will work correctly.
K_WORKAROUND_USE_REAL_EXTRAVERSION="${K_WORKAROUND_USE_REAL_EXTRAVERSION:-}"
# @ECLASS-VARIABLE: K_GENKERNEL_ARGS
# @DESCRIPTION:
# Provide extra genkernel arguments using K_GENKERNEL_ARGS
K_GENKERNEL_ARGS="${K_GENKERNEL_ARGS-}"
KERN_INITRAMFS_SEARCH_NAME="${KERN_INITRAMFS_SEARCH_NAME:-initramfs-genkernel*${K_NASKERNEL_NAME}}"
# Disable deblobbing feature
K_DEBLOB_AVAILABLE=0
inherit eutils kernel-2 mount-boot linux-mod
inherit eutils kernel-2 mount-boot linux-info
# from kernel-2 eclass
detect_version
detect_arch
DESCRIPTION="NAS Linux kernel functions and phases"
DESCRIPTION="Genlink Linux kernel functions and phases"
K_LONGTERM_URL_STR=""
if [ -n "${K_NASKERNEL_LONGTERM}" ]; then
K_LONGTERM_URL_STR="/longterm/v${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
fi
## kernel-2 eclass settings
if [ -n "${K_NASPATCHES_VER}" ]; then
if [ -n "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
SRC_URI="mirror://genlink/${CATEGORY}/linux-${PVR}+${K_NASKERNEL_SELF_TARBALL_NAME}.tar.bz2"
elif [ -n "${K_NASPATCHES_VER}" ]; then
UNIPATCH_STRICTORDER="yes"
K_NASPATCHES_PKG="nas-patches-${PV}-${K_NASPATCHES_VER}.tar.bz2"
UNIPATCH_LIST="${DISTFILES}/${K_NASPATCHES_PKG}"
@ -106,25 +149,52 @@ else
SRC_URI="${KERNEL_URI}"
fi
if [ -n "${K_KERNEL_PATCH_VER}" ]; then
K_PATCH_NAME="patch-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}.${K_KERNEL_PATCH_VER}.bz2"
SRC_URI="${SRC_URI}
mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}/${K_PATCH_NAME}"
UNIPATCH_LIST="${DISTDIR}/${K_PATCH_NAME}
${UNIPATCH_LIST}"
if [ -z "${K_NASKERNEL_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}.bz2"
SRC_URI="${SRC_URI}
mirror://kernel/linux/kernel/v${KV_MAJOR}.${KV_MINOR}${K_LONGTERM_URL_STR}/${K_PATCH_NAME}
ftp://ftp.servus.at/linux-kernel/${K_PATCH_NAME}"
UNIPATCH_LIST="${DISTDIR}/${K_PATCH_NAME}
${UNIPATCH_LIST}"
fi
fi
if [ -n "${K_KERNEL_PATCH_HOTFIXES}" ]; then
UNIPATCH_LIST="${K_KERNEL_PATCH_HOTFIXES} ${UNIPATCH_LIST}"
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-genlink
# 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_NASKERNEL_NAME, usually replaces
# "linux" with "nas" or "server" or "openvz"
# "linux" with "genlink" or "server" or "openvz"
KV_FULL="${KV_FULL/${PN/-*}/${K_NASKERNEL_NAME}}"
EXTRAVERSION="${EXTRAVERSION/${PN/-*}/${K_NASKERNEL_NAME}}"
# drop -rX if exists
[[ -n "${PR//r0}" ]] && [[ "${K_KERNEL_DISABLE_PR_EXTRAVERSION}" = "1" ]] && \
EXTRAVERSION="${EXTRAVERSION/-r*}" && KV_FULL="${KV_FULL/-r*}" && \
KV="${KV/-r*}"
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-genlink (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}"
@ -137,22 +207,53 @@ 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
}
# provide extra virtual pkg
if [ -z "${K_FIRMWARE_PACKAGE}" ]; then
if _is_kernel_binary; then
PROVIDE="${PROVIDE} virtual/linux-binary"
fi
HOMEPAGE="http://linamh.disconnected-by-peer.at/wiki/Genlink"
if [ "${K_NASKERNEL_URI_CONFIG}" = "yes" ]; then
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
SRC_URI="${SRC_URI}
if [ -n "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
HOMEPAGE="http://git.disconnected-by-peer.at"
else
HOMEPAGE="http://linamh.disconnected-by-peer.at/wiki/Genlink"
fi
# Setup kernel configuration file name
if [ -z "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
if [ "${K_NASKERNEL_URI_CONFIG}" = "yes" ]; then
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
SRC_URI="${SRC_URI}
http://ftp.disconnected-by-peer.at/genlink/${CATEGORY}/linux-nas-patches/config/${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}"
#arm? ( http://ftp.disconnected-by-peer.at/genlink/${CATEGORY}/linux-nas-patches/config/${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm} )"
#use arm && K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
#use arm && K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
else
#use arm && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
fi
else
#use arm && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
K_NASKERNEL_ALT_CONFIG_FILE="${K_NASKERNEL_ALT_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PV}-__ARCH__.config}"
if use amd64; then
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/amd64}
K_NASKERNEL_ALT_CONFIG_FILE=${K_NASKERNEL_ALT_CONFIG_FILE/__ARCH__/amd64}
elif use x86; then
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/x86}
K_NASKERNEL_ALT_CONFIG_FILE=${K_NASKERNEL_ALT_CONFIG_FILE/__ARCH__/x86}
fi
fi
if [ -n "${K_ONLY_SOURCES}" ] || [ -n "${K_FIRMWARE_PACKAGE}" ]; then
@ -160,26 +261,77 @@ if [ -n "${K_ONLY_SOURCES}" ] || [ -n "${K_FIRMWARE_PACKAGE}" ]; then
DEPEND="sys-apps/sed"
RDEPEND="${RDEPEND}"
else
IUSE="dmraid"
DEPEND="sys-apps/sed
app-arch/xz-utils
sys-kernel/genkernel
IUSE="dmraid dracut"
DEPEND="app-arch/xz-utils
sys-apps/sed
sys-devel/make
>=sys-kernel/genkernel-3.4.16-r1
dracut? ( sys-kernel/dracut )
sys-block/devio
dev-embedded/u-boot-tools"
# rdepend app-admin/nas-eselct
RDEPEND="sys-apps/sed
>=sys-kernel/linux-firmwares-${PV}"
# rdepend app-admin/nas-eselct
# FIXME: when grub-legacy will be removed, remove sys-boot/grub-handler
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
nas-kernel_pkg_setup() {
# do not run linux-mod-pkg_setup
if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
einfo "Preparing to build kernel firmwares"
# 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
einfo "Preparing to build the kernel and its modules"
ewarn
ewarn "${KV_OUT_DIR}/System.map not found."
ewarn "You must manually update the kernel module dependencies using depmod."
eend 1
ewarn
fi
}
nas-kernel_pkg_setup() {
if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
einfo "Preparing kernel firmwares"
else
einfo "Preparing kernel and its modules"
fi
}
nas-kernel_src_unpack() {
local okv="${OKV}"
if [ -n "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
OKV="${PVR}+${K_NASKERNEL_SELF_TARBALL_NAME}"
fi
kernel-2_src_unpack
if [ -n "${K_NASKERNEL_FORCE_SUBLEVEL}" ]; then
# patch out Makefile with proper sublevel
sed -i "s:^SUBLEVEL = .*:SUBLEVEL = ${K_NASKERNEL_FORCE_SUBLEVEL}:" \
"${S}/Makefile" || die
fi
if [ -n "${K_NASKERNEL_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}"
}
nas-kernel_src_compile() {
if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
_firmwares_src_compile
@ -203,10 +355,21 @@ _firmwares_src_compile() {
}
_kernel_copy_config() {
if [ "${K_NASKERNEL_URI_CONFIG}" = "no" ]; then
cp "${FILESDIR}/${PF/-r0/}-${ARCH}.config" "${1}" || die "cannot copy kernel config"
if [ -n "${K_NASKERNEL_SELF_TARBALL_NAME}" ]; then
local base_path="${S}/genlink/config"
if [ -f "${base_path}/${K_NASKERNEL_ALT_CONFIG_FILE}" ]; then
# new path, without revision
cp "${base_path}/${K_NASKERNEL_ALT_CONFIG_FILE}" "${1}" || die "cannot copy kernel config"
else
# PVR path (old)
cp "${base_path}/${K_NASKERNEL_CONFIG_FILE}" "${1}" || die "cannot copy kernel config"
fi
else
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" "${1}" || die "cannot copy kernel config"
if [ "${K_NASKERNEL_URI_CONFIG}" = "no" ]; then
cp "${FILESDIR}/${PF/-r0/}-${ARCH}.config" "${1}" || die "cannot copy kernel config"
else
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" "${1}" || die "cannot copy kernel config"
fi
fi
}
@ -215,13 +378,9 @@ _kernel_src_compile() {
export SANDBOX_ON=0
export LDFLAGS=""
# do some cleanup
rm -rf "${WORKDIR}"/lib
rm -rf "${WORKDIR}"/cache
rm -rf "${S}"/temp
# creating workdirs
mkdir -p "${WORKDIR}"/lib/lib/firmware
# 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
mkdir -p "${WORKDIR}"/boot
@ -229,10 +388,15 @@ _kernel_src_compile() {
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
OLDARCH="${ARCH}"
unset ARCH
cd "${S}"
GKARGS="--disklabel"
cd "${S}" || die
GKARGS="--no-save-config --disklabel"
use dracut && GKARGS="${GKARGS} --dracut"
use dmraid && GKARGS="${GKARGS} --dmraid"
export DEFAULT_KERNEL_SOURCE="${S}"
export CMD_KERNEL_DIR="${S}"
@ -242,11 +406,10 @@ _kernel_src_compile() {
break
fi
done
[ -z "${mkopts}" ] && mkopts="-j2"
[ -z "${mkopts}" ] && mkopts="-j3"
DEFAULT_KERNEL_SOURCE="${S}" CMD_KERNEL_DIR="${S}" genkernel ${GKARGS} \
DEFAULT_KERNEL_SOURCE="${S}" CMD_KERNEL_DIR="${S}" genkernel ${GKARGS} ${K_GENKERNEL_ARGS} \
--kerneldir="${S}" \
--arch-override="${OLDARCH}" \
--kernel-config="${WORKDIR}"/config \
--cachedir="${WORKDIR}"/cache \
--makeopts="${mkopts}" \
@ -254,102 +417,102 @@ _kernel_src_compile() {
--logfile="${WORKDIR}"/genkernel.log \
--bootdir="${WORKDIR}"/boot \
--mountboot \
--mdadm \
--module-prefix="${WORKDIR}"/lib \
all || die "genkernel failed"
# --strip=all \
# --lvm \
# --luks \
# --iscsi \
ARCH=${OLDARCH}
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_pro_live" ]; then
devio > foo 'wl 0xe3a01c06,4' 'wl 0xe3811031,4' # Linkstation Pro/Live (2.6.26)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_pro_duo" ]; then
devio > foo 'wl 0xe3a01c07,4' 'wl 0xe3811027,4' # Linkstation Pro Duo (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_xhl" ]; then
devio > foo 'wl 0xe3a01c0a,4' 'wl 0xe3811067,4' # Linkstation XHL/CHLv2 (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_chl" ]; then
devio > foo 'wl 0xe3a01c0B,4' 'wl 0xe3811061,4' # Linkstation Live V3 (2.6.34)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_wxl" ]; then
devio > foo 'wl 0xe3a01c0b,4' 'wl 0xe38110c4,4' # Linkstation WXL (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_hgl" ]; then
devio > foo 'wl 0xe3a01c07,4' 'wl 0xe38110d5,4' # Linkstation HGL (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_mini" ]; then
devio > foo 'wl 0xe3a01c07,4' 'wl 0xe3811042,4' # Linkstation mini (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_vl" ]; then
devio > foo 'wl 0xe3a01c0d,4' 'wl 0xe381100a,4' # Linkstation vl (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
fi
}
nas-kernel_src_install() {
if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
_firmwares_src_install
elif [ -n "${K_ONLY_SOURCES}" ]; then
if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
_firmwares_src_install
elif [ -n "${K_ONLY_SOURCES}" ]; then
_kernel_sources_src_install
else
else
_kernel_src_install
fi
}
@ -357,11 +520,12 @@ nas-kernel_src_install() {
_firmwares_src_install() {
dodir /lib/firmware
keepdir /lib/firmware
( cd "${S}" && emake INSTALL_FW_PATH="${D}/lib/firmware" firmware_install ) || die "cannot install firmwares"
cd "${S}" || die
emake INSTALL_FW_PATH="${D}/lib/firmware" firmware_install || die "cannot install firmwares"
}
_kernel_sources_src_install() {
local version_h_name="usr/src/linux-${KV_FULL}/include/linux"
local version_h_name="${KV_OUT_DIR/\//}/include/linux"
local version_h="${ROOT}${version_h_name}"
if [ -f "${version_h}" ]; then
einfo "Discarding previously installed version.h to avoid collisions"
@ -369,10 +533,10 @@ _kernel_sources_src_install() {
rm -f "${version_h}"
fi
_kernel_copy_config ".config"
kernel-2_src_install
cd "${D}/usr/src/linux-${KV_FULL}"
cd "${D}${KV_OUT_DIR}" || die
local oldarch="${ARCH}"
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" .config || die "cannot copy kernel config"
unset ARCH
if ! use sources_standalone; then
make modules_prepare || die "failed to run modules_prepare"
@ -387,11 +551,7 @@ _kernel_src_install() {
dodir "${KV_OUT_DIR}"
insinto "${KV_OUT_DIR}"
if [ "${K_NASKERNEL_URI_CONFIG}" = "no" ]; then
cp "${FILESDIR}/${PF/-r0/}-${OLDARCH}.config" .config || die "cannot copy kernel config"
else
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" .config || die "cannot copy kernel config"
fi
_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"
@ -399,12 +559,12 @@ _kernel_src_install() {
# NOTE: this is a workaround caused by linux-info.eclass not
# being ported to EAPI=2 yet
local version_h_name="usr/src/linux-${KV_FULL}/include/linux"
local version_h="${ROOT}${version_h_name}/version.h"
local version_h_name="${KV_OUT_DIR/\//}/include/linux"
local version_h="${ROOT}${version_h_name}/version.h"
if [ -f "${version_h}" ]; then
einfo "Discarding previously installed version.h to avoid collisions"
addwrite "${version_h}"
rm -f "${version_h}"
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
@ -426,7 +586,7 @@ _kernel_src_install() {
# 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}"
cd "${S}" || die
# drop ${D}/lib/firmware, virtual/linux-firmwares provides it
rm -rf "${D}/lib/firmware"
@ -435,7 +595,7 @@ _kernel_src_install() {
# Fixing up Makefile collision if already installed by
# openvz-sources
einfo "Workarounding source package collisions"
make_file="usr/src/linux-${KV_FULL}/Makefile"
make_file="${KV_OUT_DIR/\//}/Makefile"
einfo "Makefile: ${make_file}"
if [ -f "${ROOT}/${make_file}" ]; then
elog "Removing ${D}/${make_file}"
@ -443,25 +603,48 @@ _kernel_src_install() {
fi
fi
# Install kernel configuration information
# useful for Entropy kernel-switcher
if _is_kernel_binary; then
# 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}"
fi
}
nas-kernel_pkg_preinst() {
if _is_kernel_binary; then
mount-boot_pkg_preinst
fi
}
_get_real_extraversion() {
make_file="${ROOT}${KV_OUT_DIR}/Makefile"
local extraver=$(grep -r "^EXTRAVERSION" "${make_file}" | cut -d "=" -f 2)
local extraver=$(grep -r "^EXTRAVERSION =" "${make_file}" | cut -d "=" -f 2 | head -n 1)
local trimmed=${extraver%% }
echo ${trimmed## }
}
nas-kernel_pkg_preinst() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
mount-boot_pkg_preinst
linux-mod_pkg_preinst
UPDATE_MODULEDB=false
_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-genlink
# need to add another final .0 to the version part
echo "${KV_FULL/-/.0-}"
else
echo "${KV_FULL}"
fi
}
nas-kernel_pkg_postinst() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
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
@ -470,19 +653,11 @@ nas-kernel_pkg_postinst() {
fi
kernel-2_pkg_postinst
if [ -n "${K_WORKAROUND_DIFFERENT_EXTRAVERSION}" ]; then
UPDATE_DEPMOD="false"
local depmod_r="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}$(_get_real_extraversion)"
einfo "Updating (overridden) modules dependencies using ${depmod_r}"
[[ -r "${KV_OUT_DIR}"/System.map ]] && \
depmod -ae -F "${KV_OUT_DIR}"/System.map -b "${ROOT}" \
-r "${depmod_r}"
fi
linux-mod_pkg_postinst
local depmod_r=$(_get_release_level)
_update_depmod "${depmod_r}"
elog "Please report kernel bugs at:"
elog "http://linamh.disconnected-by-peer.at/report"
elog "using the Ticket Component \"Genlink\""
elog "http://bugs.genlink.org"
elog "The source code of this kernel is located at"
elog "=${K_KERNEL_SOURCES_PKG}."
@ -496,17 +671,17 @@ nas-kernel_pkg_postinst() {
}
nas-kernel_pkg_prerm() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
if _is_kernel_binary; then
mount-boot_pkg_prerm
fi
}
nas-kernel_pkg_postrm() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
linux-mod_pkg_postrm
if _is_kernel_binary; then
mount-boot_pkg_postrm
fi
}
# export all the available functions here
EXPORT_FUNCTIONS pkg_setup src_compile src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm
EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm

View File

@ -0,0 +1,500 @@
# Copyright 2004-2010 Sabayon Project
# Copyright 2010 Genlink Project
# Copyright 2010 Geos_One's Projekts
# Distributed under the terms of the GNU General Public License v2
# $
# @ECLASS-VARIABLE: K_NASPATCHES_VER
# @DESCRIPTION:
# The version of the nas patches tarball(s) to apply.
# A value of "5" would apply 2.6.12-5 to my-sources-2.6.12.ebuild
# @ECLASS-VARIABLE: K_NASKERNEL_NAME
# @DESCRIPTION:
# The kernel name used by the ebuild, it should be the ending ${PN} part
# for example, of linux-nas it is "${PN/${PN/-*}-}" (nas)
K_NASKERNEL_NAME="${K_NASKERNEL_NAME:-${PN/${PN/-*}-}}"
# @ECLASS-VARIABLE: K_NASKERNEL_URI_CONFIG
# @DESCRIPTION:
# Set this either to "no" or "yes" depending on the location of the
# kernel config files. If they are inside FILESDIR (old location)
# leave this option set to "no", otherwise set this to "yes"
K_NASKERNEL_URI_CONFIG="${K_NASKERNEL_URI_CONFIG:-no}"
# @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_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_NASKERNEL_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_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_DIFFERENT_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 in order to make linux-mod_pkg_postinst happy
# (update_depmod) by feeding it with valid KV_FULL, that will be
# calculated using EXTRAVERSION in Makefile.
K_WORKAROUND_DIFFERENT_EXTRAVERSION="${K_WORKAROUND_DIFFERENT_EXTRAVERSION:-}"
KERN_INITRAMFS_SEARCH_NAME="${KERN_INITRAMFS_SEARCH_NAME:-initramfs-genkernel*${K_NASKERNEL_NAME}}"
# Disable deblobbing feature
K_DEBLOB_AVAILABLE=0
KV_PATCH=0
inherit eutils kernel-2 mount-boot linux-mod
# from kernel-2 eclass
detect_version
detect_arch
DESCRIPTION="NAS Linux kernel functions and phases"
## kernel-2 eclass settings
if [ -n "${K_NASPATCHES_VER}" ]; then
UNIPATCH_STRICTORDER="yes"
K_NASPATCHES_PKG="nas-patches-${PV}-${K_NASPATCHES_VER}.tar.bz2"
UNIPATCH_LIST="${DISTFILES}/${K_NASPATCHES_PKG}"
SRC_URI="${KERNEL_URI}
http://ftp.disconnected-by-peer.at/genlink/${CATEGORY}/linux-nas-patches/${K_NASPATCHES_PKG}"
else
SRC_URI="${KERNEL_URI}"
fi
if [ -n "${K_KERNEL_PATCH_HOTFIXES}" ]; then
UNIPATCH_LIST="${K_KERNEL_PATCH_HOTFIXES} ${UNIPATCH_LIST}"
fi
# replace "linux" with K_NASKERNEL_NAME, usually replaces
# "linux" with "nas" or "server" or "openvz"
KV_FULL="${KV_FULL/${PN/-*}/${K_NASKERNEL_NAME}}"
EXTRAVERSION="${EXTRAVERSION/${PN/-*}/${K_NASKERNEL_NAME}}"
# drop -rX if exists
[[ -n "${PR//r0}" ]] && [[ "${K_KERNEL_DISABLE_PR_EXTRAVERSION}" = "1" ]] && \
EXTRAVERSION="${EXTRAVERSION/-r*}" && KV_FULL="${KV_FULL/-r*}" && \
KV="${KV/-r*}"
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}"
else
SLOT="${PV}"
fi
# provide extra virtual pkg
if [ -z "${K_FIRMWARE_PACKAGE}" ]; then
PROVIDE="${PROVIDE} virtual/linux-binary"
fi
HOMEPAGE="http://linamh.disconnected-by-peer.at/wiki/Genlink"
if [ "${K_NASKERNEL_URI_CONFIG}" = "yes" ]; then
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-__ARCH__.config}"
SRC_URI="${SRC_URI}
http://ftp.disconnected-by-peer.at/genlink/${CATEGORY}/linux-nas-patches/config/${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}"
#arm? ( http://ftp.disconnected-by-peer.at/genlink/${CATEGORY}/linux-nas-patches/config/${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm} )"
#use arm && K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
K_NASKERNEL_CONFIG_FILE=${K_NASKERNEL_CONFIG_FILE/__ARCH__/arm}
else
#use arm && K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
K_NASKERNEL_CONFIG_FILE="${K_NASKERNEL_CONFIG_FILE:-${K_NASKERNEL_NAME}-${PVR}-arm.config}"
fi
if [ -n "${K_ONLY_SOURCES}" ] || [ -n "${K_FIRMWARE_PACKAGE}" ]; then
IUSE="${IUSE}"
DEPEND="sys-apps/sed"
RDEPEND="${RDEPEND}"
else
IUSE="dmraid"
DEPEND="sys-apps/sed
app-arch/xz-utils
sys-kernel/genkernel
sys-block/devio
dev-embedded/u-boot-tools"
# rdepend app-admin/nas-eselct
RDEPEND="sys-apps/sed
>=sys-kernel/linux-firmwares-${PV}"
fi
nas-kernel_pkg_setup() {
# do not run linux-mod-pkg_setup
if [ -n "${K_FIRMWARE_PACKAGE}" ]; then
einfo "Preparing to build kernel firmwares"
else
einfo "Preparing to build the kernel and its modules"
fi
}
nas-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() {
if [ "${K_NASKERNEL_URI_CONFIG}" = "no" ]; then
cp "${FILESDIR}/${PF/-r0/}-${ARCH}.config" "${1}" || die "cannot copy kernel config"
else
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" "${1}" || die "cannot copy kernel config"
fi
}
_kernel_src_compile() {
# disable sandbox
export SANDBOX_ON=0
export LDFLAGS=""
# do some cleanup
rm -rf "${WORKDIR}"/lib
rm -rf "${WORKDIR}"/cache
rm -rf "${S}"/temp
# creating workdirs
mkdir -p "${WORKDIR}"/lib/lib/firmware
mkdir "${WORKDIR}"/cache
mkdir "${S}"/temp
mkdir -p "${WORKDIR}"/boot
einfo "Starting to compile kernel..."
_kernel_copy_config "${WORKDIR}"/config
OLDARCH="${ARCH}"
unset ARCH
cd "${S}"
GKARGS="--disklabel"
use dmraid && GKARGS="${GKARGS} --dmraid"
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="-j2"
DEFAULT_KERNEL_SOURCE="${S}" CMD_KERNEL_DIR="${S}" genkernel ${GKARGS} \
--kerneldir="${S}" \
--arch-override="${OLDARCH}" \
--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"
# --strip=all \
# --lvm \
# --luks \
# --iscsi \
ARCH=${OLDARCH}
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_pro_live" ]; then
devio > foo 'wl 0xe3a01c06,4' 'wl 0xe3811031,4' # Linkstation Pro/Live (2.6.26)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_pro_duo" ]; then
devio > foo 'wl 0xe3a01c07,4' 'wl 0xe3811027,4' # Linkstation Pro Duo (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_xhl" ]; then
devio > foo 'wl 0xe3a01c0a,4' 'wl 0xe3811067,4' # Linkstation XHL/CHLv2 (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_chl" ]; then
devio > foo 'wl 0xe3a01c0B,4' 'wl 0xe3811061,4' # Linkstation Live V3 (2.6.34)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_wxl" ]; then
devio > foo 'wl 0xe3a01c0b,4' 'wl 0xe38110c4,4' # Linkstation WXL (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_hgl" ]; then
devio > foo 'wl 0xe3a01c07,4' 'wl 0xe38110d5,4' # Linkstation HGL (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_mini" ]; then
devio > foo 'wl 0xe3a01c07,4' 'wl 0xe3811042,4' # Linkstation mini (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
if [ "${K_NASKERNEL_NAME}" = "buffalo_ls_vl" ]; then
devio > foo 'wl 0xe3a01c0d,4' 'wl 0xe381100a,4' # Linkstation vl (2.6.30)
cat foo "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} > zImage.new
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n uImage-${KV_FULL} \
-d zImage.new "${WORKDIR}"/boot/uImage-genkernel-${ARCH}-${KV_FULL}.buffalo
rm foo zImage.new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initrd-${KV_FULL} \
-d "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initrd-genkernel-${ARCH}-${KV_FULL}.buffalo
rm "${WORKDIR}"/boot/kernel-genkernel-${ARCH}-${KV_FULL} "${WORKDIR}"/boot/initramfs-genkernel-${ARCH}-${KV_FULL}
fi
}
nas-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
}
_firmwares_src_install() {
dodir /lib/firmware
keepdir /lib/firmware
( cd "${S}" && emake INSTALL_FW_PATH="${D}/lib/firmware" firmware_install ) || die "cannot install firmwares"
}
_kernel_sources_src_install() {
local version_h_name="usr/src/linux-${KV_FULL}/include/linux"
local version_h="${ROOT}${version_h_name}"
if [ -f "${version_h}" ]; then
einfo "Discarding previously installed version.h to avoid collisions"
addwrite "/${version_h_name}"
rm -f "${version_h}"
fi
kernel-2_src_install
cd "${D}/usr/src/linux-${KV_FULL}"
local oldarch="${ARCH}"
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" .config || die "cannot copy kernel config"
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 include/linux/version.h || die "cannot remove include/linux/version.h"
fi
ARCH="${oldarch}"
}
_kernel_src_install() {
dodir "${KV_OUT_DIR}"
insinto "${KV_OUT_DIR}"
if [ "${K_NASKERNEL_URI_CONFIG}" = "no" ]; then
cp "${FILESDIR}/${PF/-r0/}-${OLDARCH}.config" .config || die "cannot copy kernel config"
else
cp "${DISTDIR}/${K_NASKERNEL_CONFIG_FILE}" .config || die "cannot copy kernel config"
fi
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_name="usr/src/linux-${KV_FULL}/include/linux"
local version_h="${ROOT}${version_h_name}/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
dodir "${KV_OUT_DIR}/include/linux"
insinto "${KV_OUT_DIR}/include/linux"
doins "${S}/include/linux/version.h" || die "cannot copy version.h"
insinto "/boot"
doins "${WORKDIR}"/boot/*
cp -Rp "${WORKDIR}"/lib/* "${D}/"
# 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}"
# 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="usr/src/linux-${KV_FULL}/Makefile"
einfo "Makefile: ${make_file}"
if [ -f "${ROOT}/${make_file}" ]; then
elog "Removing ${D}/${make_file}"
rm -f "${D}/${make_file}"
fi
fi
}
_get_real_extraversion() {
make_file="${ROOT}${KV_OUT_DIR}/Makefile"
local extraver=$(grep -r "^EXTRAVERSION" "${make_file}" | cut -d "=" -f 2)
local trimmed=${extraver%% }
echo ${trimmed## }
}
nas-kernel_pkg_preinst() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
mount-boot_pkg_preinst
linux-mod_pkg_preinst
UPDATE_MODULEDB=false
fi
}
nas-kernel_pkg_postinst() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; 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
kernel-2_pkg_postinst
if [ -n "${K_WORKAROUND_DIFFERENT_EXTRAVERSION}" ]; then
UPDATE_DEPMOD="false"
local depmod_r="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}$(_get_real_extraversion)"
einfo "Updating (overridden) modules dependencies using ${depmod_r}"
[[ -r "${KV_OUT_DIR}"/System.map ]] && \
depmod -ae -F "${KV_OUT_DIR}"/System.map -b "${ROOT}" \
-r "${depmod_r}"
fi
linux-mod_pkg_postinst
elog "Please report kernel bugs at:"
elog "http://linamh.disconnected-by-peer.at/report"
elog "using the Ticket Component \"Genlink\""
elog "The source code of this kernel is located at"
elog "=${K_KERNEL_SOURCES_PKG}."
elog "Genlink Linux 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 sim_buffalo, etc...)."
else
kernel-2_pkg_postinst
fi
}
nas-kernel_pkg_prerm() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
mount-boot_pkg_prerm
fi
}
nas-kernel_pkg_postrm() {
if [ -z "${K_ONLY_SOURCES}" ] && [ -z "${K_FIRMWARE_PACKAGE}" ]; then
linux-mod_pkg_postrm
fi
}
# export all the available functions here
EXPORT_FUNCTIONS pkg_setup src_compile src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm

240
sys-devel/clang/ChangeLog Normal file
View File

@ -0,0 +1,240 @@
# ChangeLog for sys-devel/clang
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/ChangeLog,v 1.48 2011/11/28 10:56:02 voyageur Exp $
*clang-3.0_rc4 (28 Nov 2011)
28 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0_rc3.ebuild,
+clang-3.0_rc4.ebuild:
Final rc bump
14 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9-r1.ebuild, clang-3.0_rc3.ebuild, clang-9999.ebuild:
gcc-config 1.5 dropped the -X option, thanks Leonid Volnitsky
<leonid@volnitsky.com> in bug #388621
10 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-3.0_rc3.ebuild:
Fix tests (needs full compilation of llvm, remove broken test)
*clang-3.0_rc3 (09 Nov 2011)
09 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-3.0_rc1.ebuild,
+clang-3.0_rc3.ebuild, files/clang-3.0-fix_cxx_include_root.patch,
clang-9999.ebuild:
Update rc ebuild and cxx_include_root patch, some more ebuild cleanups
*clang-3.0_rc1 (09 Nov 2011)
09 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> +clang-3.0_rc1.ebuild,
+files/clang-3.0-fix_cxx_include_root.patch, clang-9999.ebuild:
Add rc release to prepare for 3.0, remove llvm-gcc detection code (not used
in configure anymore). Also fix bug #387309, thanks to Stephan Wezel
<s.wezel@web.de> for the patch
04 Oct 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9-r1.ebuild, clang-9999.ebuild:
Fix forced -O3 -fomit-frame-pointer CFLAGS again, bug #385543
03 Oct 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8-r3.ebuild,
-clang-2.9.ebuild, clang-2.9-r1.ebuild, clang-9999.ebuild, metadata.xml:
Rename alltargets USE flag to multitarget, bug #382307. Drop some versions
*clang-2.9-r1 (16 Aug 2011)
16 Aug 2011; Diego E. Pettenò <flameeyes@gentoo.org> +clang-2.9-r1.ebuild,
+files/clang-2.9-gccversions.patch:
Add patch to check for a few more GCC versions; thanks to Amir Aupov, Richard
and Josh in bug #377949.
08 Jul 2011; Samuli Suominen <ssuominen@gentoo.org> clang-2.8-r3.ebuild,
clang-2.9.ebuild, clang-9999.ebuild:
Convert from "hasq" to "has".
13 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Also use same USE-defaults for live ebuild, spotted by mgorny
06 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Update live ebuild to sync latest ebuild changes, fixes bug #369027
21 Apr 2011; Fabian Groffen <grobian@gentoo.org> clang-2.9.ebuild:
Update install_name reference to libLLVM
*clang-2.9 (07 Apr 2011)
07 Apr 2011; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.9.ebuild,
+files/clang-2.9-darwin-prefix.patch:
Version bump, enable system-cxx-headers by default
28 Mar 2011; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r4.ebuild,
-files/clang-2.7-darwin-prefix.patch:
Drop 2.7 versions
14 Mar 2011; Fabian Groffen <grobian@gentoo.org> clang-2.8-r3.ebuild:
Marked ~x86-linux
26 Jan 2011; Fabian Groffen <grobian@gentoo.org> clang-2.7-r4.ebuild,
clang-2.8-r3.ebuild, clang-9999.ebuild:
Make scan-build utility Prefix-compatible, by Lionel Orry, bug #352809
*clang-2.8-r3 (19 Dec 2010)
19 Dec 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.8-r1.ebuild,
-clang-2.8-r2.ebuild, +clang-2.8-r3.ebuild, +files/clang-2.8-alignof.patch,
+files/clang-2.8-gcc-4.4.4.patch:
Backport to rename alignof, fixes C++'0x compilers support. Also adds gcc
4.4.4 headers support by default, thanks to Bertjan Broeksema
<broeksema@kde.org> in bug #345683
24 Oct 2010; Fabian Groffen <grobian@gentoo.org> clang-2.8-r2.ebuild,
clang-9999.ebuild:
Update reference fixing for Darwin for newer more strict versions of
Portage
24 Oct 2010; Fabian Groffen <grobian@gentoo.org> clang-2.8-r2.ebuild,
+files/clang-2.8-darwin-prefix.patch:
Fix compilation on Darwin, fixes bug #342373, adds back necessary bits for
bug #339922
*clang-2.8-r2 (21 Oct 2010)
21 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r2.ebuild,
-clang-2.8.ebuild, +clang-2.8-r2.ebuild:
Also set GCC C headers path with USE=system-cxx-headers, reported by
Guillaume Chatelet <chatelet.guillaume@gmail.com>, bug #341891, tested
with boost compilation. Clean some versions
*clang-2.8-r1 (12 Oct 2010)
12 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.8-r1.ebuild,
metadata.xml:
Re-enable shared lib, it works now with alltargets USE flag (in sync with
llvm one)
08 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8.ebuild:
Use new llvm 2.8 tarball, just in case
06 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.8.ebuild,
clang-9999.ebuild:
Tests now use an internal framework, dejagnu not needed anymore
*clang-2.8 (06 Oct 2010)
06 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.8.ebuild,
clang-9999.ebuild:
2.8 version bump, drop old 2.6, fix one install line in live ebuild
*clang-2.7-r4 (21 Sep 2010)
21 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r3.ebuild,
+clang-2.7-r4.ebuild, clang-9999.ebuild:
Fix rpath sed and disable shared library use, thanks Nick Bowler
<nbowler@draconx.ca> in bug #338231
*clang-2.7-r3 (17 Sep 2010)
17 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7.ebuild,
+clang-2.7-r3.ebuild:
Enable shared library, move libs and plugins to fix bug #337467
08 Sep 2010; Fabian Groffen <grobian@gentoo.org> clang-2.7-r2.ebuild,
+files/clang-2.7-darwin-prefix.patch:
Fix configurations for (newer) Darwin configurations, thanks Heiko Przybyl
03 Sep 2010; Fabian Groffen <grobian@gentoo.org> clang-2.7-r2.ebuild:
Marked ~amd64-linux
26 Aug 2010; Fabian Groffen <grobian@gentoo.org> clang-2.7-r2.ebuild,
clang-9999.ebuild:
Bump to EAPI=3, make Prefix aware, add support for Darwin platforms, bug
#332605
19 Aug 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
system-cxx-headers was missing in -9999 IUSE, spotted by Jack Lloyd
<lloyd@randombit.net> in bug #331679
*clang-2.7-r2 (27 Jul 2010)
27 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.7-r1.ebuild,
+clang-2.7-r2.ebuild, clang-9999.ebuild, metadata.xml:
Add a USE-flag for system CXX headers, fix for x86. llvm-gcc users should
leave the flag off
*clang-2.7-r1 (20 Jul 2010)
20 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.7-r1.ebuild,
clang-9999.ebuild:
Get C++ headers from active gcc version, bug #327575
20 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6-r3.ebuild,
-files/llvm-2.6-cflags.patch, -files/clang-2.6-fixdoc.patch,
-files/clang-2.6-gcc45.patch:
Drop 2.6 version
02 Jun 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-9999.ebuild:
Set ESVN_REPO_URI to fix subversion_pkg_preinst
*clang-9999 (01 Jun 2010)
01 Jun 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-9999.ebuild:
Add live version, bug #320919
28 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r3.ebuild,
+files/clang-2.6-gcc45.patch:
GCC 4.5 support for 2.6, bug #317467
*clang-2.7 (27 Apr 2010)
27 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6-r2.ebuild,
+clang-2.7.ebuild, +files/clang-2.7-fixdoc.patch:
2.7 official release version bump
*clang-2.6-r3 (26 Apr 2010)
26 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> +clang-2.6-r3.ebuild:
python support enhancements, grabbed from my in-progress 2.7_pre2 ebuild
*clang-2.6-r2 (18 Mar 2010)
18 Mar 2010; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6-r1.ebuild,
+clang-2.6-r2.ebuild, +files/llvm-2.6-cflags.patch:
Remove forced -O3 -fomit-frame-pointer CFLAGS, bug #308145
28 Jan 2010; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r1.ebuild:
vecho -> echo, spotted by tove
07 Dec 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r1.ebuild:
Remove faulty test for 2.6, bug #294689
07 Dec 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6-r1.ebuild:
Fix multilib-strict sed, it broke tests on amd64
30 Nov 2009; Torsten Veller <tove@gentoo.org> clang-2.6-r1.ebuild:
Add missing die: || "die..." -> || die "..."
*clang-2.6-r1 (27 Oct 2009)
27 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> -clang-2.6.ebuild,
+clang-2.6-r1.ebuild:
Install missing files for static analyzer, bug #290697
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6.ebuild:
Add some comments, fix running tests. Now about 50 of them fail not
finding their headers, still looking why
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> clang-2.6.ebuild,
+files/clang-2.6-fixdoc.patch:
Fix documentation Makefile in the same way as llvm
*clang-2.6 (25 Oct 2009)
25 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
-clang-2.6_pre2.ebuild, +clang-2.6.ebuild:
Bump to final 2.6 release
*clang-2.6_pre2 (05 Oct 2009)
05 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
+clang-2.6_pre2.ebuild, +metadata.xml:
Initial commit, based on ebuild by Ravi Pinjala <ravi@p-static.net> in bug
#269651

7
sys-devel/clang/Manifest Normal file
View File

@ -0,0 +1,7 @@
AUX clang-2.7-fixdoc.patch 1977 RMD160 62f52e5580baa396d93c56735c0039c8691b43b6 SHA1 351c1d2cf86b6da75a6ed19083d7a857333f007c SHA256 36c2214e575ed3fd78938279739e82c4f750f8726f8387e1414c18532501314a
AUX clang-3.0-fix_cxx_include_root.patch 1132 RMD160 40f5c11045111212d15ae9e462464360cdf4d1b6 SHA1 8ae4759100e6c7233733a89ae577043ed2d0ee15 SHA256 260f8e36650384304fd0c21f8d742a4b361db4b3a0411c9c74375df95f174898
DIST clang-3.0.tar.gz 7240578 RMD160 640b309116db4357627c0b81ebba5dab824d9eeb SHA1 1fa11f07f957bd9c9de003d1b5a7a9ba1e0055e4 SHA256 b64e72da356d7c3428cfd7ac620d49ec042c84eaee13c26024879f555f4e126d
DIST llvm-3.0.tar.gz 10350539 RMD160 85211cafbed1c5d838ac54669017b5298613f975 SHA1 b683e7294fcf69887c0d709025d4640f5dca755b SHA256 519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477
EBUILD clang-3.0.ebuild 6130 RMD160 5d9fb2eb75d5d6fa5994911e9243a90fb9367dd7 SHA1 ce8e24de670fc05dcd1dadc0c1eaf26578bb1385 SHA256 7d8dbd0b2711092fb048c487bbb13ff74343f6569101a98bd4382d8249bbca7c
MISC ChangeLog 9104 RMD160 505082137be9c74d70c60ad518c5743c71e89d3d SHA1 2075c38dd2a82e78408a6759c76fec71e51c0ea0 SHA256 50294dd68ba24cbb083ced9d23222662c0873765f1e03555ab87b6f9dee53ac8
MISC metadata.xml 1339 RMD160 5f8b76cda96fc95f67fd8ff7f977c116a4f0f28a SHA1 034f922ae098216b179e9d5c78246f9caa95b9d6 SHA256 0ef2f9bcc4f3293dcb69b2c882b93737b9be496e6f8789efa69df6adb2c1edf8

View File

@ -0,0 +1,190 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/clang/clang-3.0_rc4.ebuild,v 1.1 2011/11/28 10:56:02 voyageur Exp $
EAPI=3
RESTRICT_PYTHON_ABIS="3.*"
SUPPORT_PYTHON_ABIS="1"
inherit eutils multilib python
DESCRIPTION="C language family frontend for LLVM"
HOMEPAGE="http://clang.llvm.org/"
# Fetching LLVM as well: see http://llvm.org/bugs/show_bug.cgi?id=4840
SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.tar.gz
http://llvm.org/releases/${PV}/${P}.tar.gz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug multitarget +static-analyzer +system-cxx-headers test"
DEPEND="static-analyzer? ( dev-lang/perl )"
RDEPEND="~sys-devel/llvm-${PV}[multitarget=]"
S=${WORKDIR}/llvm-${PV}.src
src_prepare() {
mv "${WORKDIR}"/clang-${PV}.src "${S}"/tools/clang || die "clang source directory move failed"
# Same as llvm doc patches
epatch "${FILESDIR}"/${PN}-2.7-fixdoc.patch
# multilib-strict
sed -e "/PROJ_headers/s#lib/clang#$(get_libdir)/clang#" \
-i tools/clang/lib/Headers/Makefile \
|| die "clang Makefile failed"
# Fix cxx_include_root path for Gentoo
epatch "${FILESDIR}"/${P/_*}-fix_cxx_include_root.patch
# fix the static analyzer for in-tree install
sed -e 's/import ScanView/from clang \0/' \
-i tools/clang/tools/scan-view/scan-view \
|| die "scan-view sed failed"
sed -e "/scanview.css\|sorttable.js/s#\$RealBin#${EPREFIX}/usr/share/${PN}#" \
-i tools/clang/tools/scan-build/scan-build \
|| die "scan-build sed failed"
# Specify python version
python_convert_shebangs 2 tools/clang/tools/scan-view/scan-view
# From llvm src_prepare
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/llvm, \
-i Makefile.config.in || die "Makefile.config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/llvm, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
# Setup the search path to include the Prefix includes
if use prefix ; then
CONF_FLAGS="${CONF_FLAGS} \
--with-c-include-dirs=${EPREFIX}/usr/include:/usr/include"
fi
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
if use system-cxx-headers; then
# Try to get current gcc headers path
local CXX_PATH=$(gcc-config -L| cut -d: -f1)
CONF_FLAGS="${CONF_FLAGS} --with-c-include-dirs=/usr/include:${CXX_PATH}/include"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-root=${CXX_PATH}/include/g++-v4"
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-arch=$CHOST"
if has_multilib_profile; then
CONF_FLAGS="${CONF_FLAGS} --with-cxx-include-32bit-dir=32"
fi
fi
econf ${CONF_FLAGS} || die "econf failed"
}
src_compile() {
local COMPILE_TARGET
if use test; then
COMPILE_TARGET="all"
else
COMPILE_TARGET="clang-only"
fi
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 \
${COMPILE_TARGET} || die "emake failed"
}
src_test() {
cd "${S}"/test || die "cd failed"
emake site.exp || die "updating llvm site.exp failed"
cd "${S}"/tools/clang || die "cd clang failed"
# Broken test always assuming i386 host with multilib gcc 4.6.0
# http://llvm.org/bugs/show_bug.cgi?id=11094
rm -f test/Driver/linux-ld.c
echo ">>> Test phase [test]: ${CATEGORY}/${PF}"
if ! emake -j1 VERBOSE=1 test; then
has test $FEATURES && die "Make test failed. See above for details."
has test $FEATURES || eerror "Make test failed. See above for details."
fi
}
src_install() {
cd "${S}"/tools/clang || die "cd clang failed"
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
if use static-analyzer ; then
dobin tools/scan-build/ccc-analyzer
dosym ccc-analyzer /usr/bin/c++-analyzer
dobin tools/scan-build/scan-build
insinto /usr/share/${PN}
doins tools/scan-build/scanview.css
doins tools/scan-build/sorttable.js
cd tools/scan-view || die "cd scan-view failed"
dobin scan-view
install-scan-view() {
insinto "$(python_get_sitedir)"/clang
doins Reporter.py Resources ScanView.py startfile.py
touch "${ED}"/"$(python_get_sitedir)"/clang/__init__.py
}
python_execute_function install-scan-view
fi
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in libclang.dylib ; do
ebegin "fixing install_name of $lib"
install_name_tool -id "${EPREFIX}"/usr/lib/llvm/${lib} \
"${ED}"/usr/lib/llvm/${lib}
eend $?
done
for f in usr/bin/{c-index-test,clang} usr/lib/llvm/libclang.dylib ; do
ebegin "fixing references in ${f##*/}"
install_name_tool \
-change "@rpath/libclang.dylib" \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
-change "@executable_path/../lib/libLLVM-${PV}.dylib" \
"${EPREFIX}"/usr/lib/llvm/libLLVM-${PV}.dylib \
-change "${S}"/Release/lib/libclang.dylib \
"${EPREFIX}"/usr/lib/llvm/libclang.dylib \
"${ED}"/$f
eend $?
done
fi
}
pkg_postinst() {
python_mod_optimize clang
if use system-cxx-headers; then
elog "C++ headers search path is hardcoded to the active gcc profile one"
elog "If you change the active gcc profile, or update gcc to a new version,"
elog "you will have to remerge this package to update the search path"
else
elog "If clang++ fails to find C++ headers on your system,"
elog "you can remerge clang with USE=system-cxx-headers to use C++ headers"
elog "from the active gcc profile"
fi
}
pkg_postrm() {
python_mod_cleanup clang
}

View File

@ -0,0 +1,53 @@
diff -Naur llvm-2.7.orig//tools/clang/docs/Makefile llvm-2.7/tools/clang/docs/Makefile
--- llvm-2.7.orig//tools/clang/docs/Makefile 2010-04-26 18:38:45.000000000 +0200
+++ llvm-2.7/tools/clang/docs/Makefile 2010-04-26 18:41:08.000000000 +0200
@@ -46,13 +46,12 @@
# 'make generated BUILD_FOR_WEBSITE=1'
generated:: doxygen
-install-html: $(PROJ_OBJ_DIR)/html.tar.gz
+install-html:
$(Echo) Installing HTML documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/img
$(Verb) $(DataInstall) $(HTML) $(DESTDIR)$(PROJ_docsdir)/html
# $(Verb) $(DataInstall) $(IMAGES) $(DESTDIR)$(PROJ_docsdir)/html/img
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(PROJ_OBJ_DIR)/html.tar.gz: $(HTML)
$(Echo) Packaging HTML documentation
@@ -64,12 +63,11 @@
install-doxygen: doxygen
$(Echo) Installing doxygen documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/doxygen
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(Verb) cd $(PROJ_OBJ_DIR)/doxygen && \
$(FIND) . -type f -exec \
$(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/html/doxygen \;
-doxygen: regendoc $(PROJ_OBJ_DIR)/doxygen.tar.gz
+doxygen: regendoc
regendoc:
$(Echo) Building doxygen documentation
diff -Naur llvm-2.7.orig//tools/clang/docs/tools/Makefile llvm-2.7/tools/clang/docs/tools/Makefile
--- llvm-2.7.orig//tools/clang/docs/tools/Makefile 2010-04-26 18:38:45.000000000 +0200
+++ llvm-2.7/tools/clang/docs/tools/Makefile 2010-04-26 18:41:29.000000000 +0200
@@ -24,7 +24,7 @@
CLANG_VERSION := trunk
# If we are in BUILD_FOR_WEBSITE mode, default to the all target.
-all:: html man ps
+all:: html man
clean:
rm -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
@@ -58,7 +58,7 @@
ifdef ONLY_MAN_DOCS
INSTALL_TARGETS := install-man
else
-INSTALL_TARGETS := install-html install-man install-ps
+INSTALL_TARGETS := install-html install-man
endif
.SUFFIXES:

View File

@ -0,0 +1,21 @@
Bug #387309
--- llvm/tools/clang/lib/Driver/ToolChains.cpp.orig 2011-11-09 23:10:04.000000000 +0100
+++ llvm/tools/clang/lib/Driver/ToolChains.cpp 2011-11-09 23:11:04.000000000 +0100
@@ -1586,12 +1586,13 @@
// This is of the form /foo/bar/include/c++/4.5.2/
if (CxxIncludeRoot.back() == '/')
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the /
+ llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the g++-v4
+ llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the include
StringRef Version = llvm::sys::path::filename(CxxIncludeRoot);
llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the version
- llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the c++
- llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the include
+ llvm::sys::path::remove_filename(CxxIncludeRoot); // remove the ARCH
GccInstallPath = CxxIncludeRoot.str();
- GccInstallPath.append("/lib/gcc/");
+ GccInstallPath.append("/");
GccInstallPath.append(CXX_INCLUDE_ARCH);
GccInstallPath.append("/");
GccInstallPath.append(Version);

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer>
<email>voyageur@gentoo.org</email>
<name>Bernard Cafarelli</name>
</maintainer>
<longdescription>The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.
Features and Goals
Some of the goals for the project include the following:
End-User Features:
Fast compiles and low memory use
Expressive diagnostics
GCC compatibility
Utility and Applications:
Modular library based architecture
Support diverse clients (refactoring, static analysis, code generation, etc)
Allow tight integration with IDEs
Use the LLVM BSD License
Internal Design and Implementation:
A real-world, production quality compiler
A simple and hackable code base
A single unified parser for C, Objective C, C++, and Objective C++
Conformance with C/C++/ObjC and their variants</longdescription>
<use>
<flag name='multitarget'>Build all host targets (default: host only)</flag>
<flag name='static-analyzer'>Install the Clang static analyzer</flag>
<flag name='system-cxx-headers'>By default, clang++ searchs for C++ headers in a series of hardcoded paths. Enabling this flag will force it to use the active gcc profile ones</flag>
</use>
</pkgmetadata>

View File

@ -0,0 +1,20 @@
# ChangeLog for sys-devel/dragonegg
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/dragonegg/ChangeLog,v 1.3 2011/11/30 10:35:01 voyageur Exp $
30 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org>
dragonegg-3.0_rc4.ebuild:
gcc-4.6 has lto by default (and no USE flag), thanks alexxy, bug #392483
*dragonegg-3.0_rc4 (28 Nov 2011)
28 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org>
-dragonegg-3.0_rc3.ebuild, +dragonegg-3.0_rc4.ebuild:
Final rc bump
*dragonegg-3.0_rc3 (10 Nov 2011)
10 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org>
+dragonegg-3.0_rc3.ebuild, +metadata.xml:
Initial commit

View File

@ -0,0 +1,4 @@
DIST dragonegg-3.0.tar.gz 435536 RMD160 93aa8a463b6b5e1fb9cc1ee0a7c4d310a78ea64f SHA1 9be8f055df814e56ea3585156da8c7e457f2cd7b SHA256 72df1fd2e901b254ab8d1b5e7b93c7104751a613aca531f1483f9a637a5f6827
EBUILD dragonegg-3.0.ebuild 1290 RMD160 cc485d6873cc812cd7d572cda495739e256a033e SHA1 e0751456850ddab4f169ee5bb92f449aa456491e SHA256 a8bc6351c712193891099f79f6d6d488935846ee80453a7b712af445c28f54c9
MISC ChangeLog 685 RMD160 53a1b2e6e566a4229279dd093fa27d87e77d6d1b SHA1 5c7dae79e1d80e9922e61c6c52fa2f0bc22f4ec0 SHA256 f7a00c78534b25158202120f399ee5603ad43339b5ea2b929bdf64fc33d35e44
MISC metadata.xml 492 RMD160 7eb430a13ec4ba40fcf67fdde74cf86b5e17028e SHA1 7a0c44e7aeed6d57d509d8b0260f655940281e81 SHA256 30b11ba6c1fb003706253651ad24ef789018d994e3e1d452e6639133a5a0b6f2

View File

@ -0,0 +1,48 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/dragonegg/dragonegg-3.0_rc4.ebuild,v 1.2 2011/11/30 10:35:01 voyageur Exp $
EAPI=4
inherit multilib
DESCRIPTION="GCC plugin that uses LLVM for optimization and code generation"
HOMEPAGE="http://dragonegg.llvm.org/"
SRC_URI="http://llvm.org/releases/${PV}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""
DEPEND="|| ( sys-devel/gcc:4.5[lto]
>=sys-devel/gcc-4.6 )
~sys-devel/llvm-${PV}"
RDEPEND="${DEPEND}"
S=${WORKDIR}/${P}.src
src_prepare() {
# Remove in final 3.0
sed -e "s/\(^REVISION:=\).*/\1${P}/" \
-i Makefile || die "Setting revision failed"
}
src_compile() {
# GCC: compiler to use plugin with
emake CC="$(tc-getCC)" GCC="$(tc-getCC)" CXX="$(tc-getCXX)" VERBOSE=1
}
src_install() {
# Install plugin in llvm lib directory
exeinto /usr/$(get_libdir)/llvm
doexe dragonegg.so
dodoc README
}
pkg_postinst() {
elog "To use dragonegg, run gcc as usual, with an extra command line argument:"
elog " -fplugin=/usr/$(get_libdir)/llvm/dragonegg.so"
elog "If you change the active gcc profile, or update gcc to a new version,"
elog "you will have to remerge this package to update the plugin"
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer>
<email>voyageur@gentoo.org</email>
<name>Bernard Cafarelli</name>
</maintainer>
<longdescription>DragonEgg is a <pkg>sys-devel/gcc</pkg> plugin (dragonegg.so) that replaces gcc's optimizers and code generators with those from the LLVM project. It is a reimplementation of llvm-gcc that works with gcc-4.5 or later.</longdescription>
</pkgmetadata>

251
sys-devel/llvm/ChangeLog Normal file
View File

@ -0,0 +1,251 @@
# ChangeLog for sys-devel/llvm
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/ChangeLog,v 1.54 2011/11/28 23:35:29 chainsaw Exp $
28 Nov 2011; Tony Vroon <chainsaw@gentoo.org> llvm-2.9-r2.ebuild:
Marked stable on AMD64 based on arch testing by Michael Orlitzky, Agostino
"ago" Sarubbo & Elijah "Armageddon" El Lazkani in bug #384709.
*llvm-3.0_rc4 (28 Nov 2011)
28 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> -llvm-3.0_rc3.ebuild,
+llvm-3.0_rc4.ebuild:
Final rc bump
24 Nov 2011; Fabian Groffen <grobian@gentoo.org> llvm-2.8-r2.ebuild,
llvm-9999.ebuild, llvm-2.9-r2.ebuild, llvm-3.0_rc3.ebuild:
Fix install_name pointer to libLLVM-x.y.dylib in a more flexible way to avoid
bugs like #391763
22 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> llvm-3.0_rc3.ebuild,
metadata.xml:
Add support for gold plugin, thanks Matthias Maier in bug #371951
17 Nov 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org> llvm-2.9-r2.ebuild:
x86 stable wrt bug #384709
*llvm-3.0_rc3 (09 Nov 2011)
09 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> -llvm-3.0_rc1.ebuild,
+llvm-3.0_rc3.ebuild:
Update rc, some more ebuild cleanups
*llvm-3.0_rc1 (09 Nov 2011)
09 Nov 2011; Bernard Cafarelli <voyageur@gentoo.org> +llvm-3.0_rc1.ebuild,
llvm-9999.ebuild:
Add rc release to prepare for 3.0, remove llvm-gcc detection code (not used
in configure anymore)
04 Oct 2011; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.8-r2.ebuild,
-llvm-2.8-r4.ebuild, llvm-2.9-r2.ebuild, llvm-9999.ebuild:
Fix forced -O3 -fomit-frame-pointer CFLAGS again, bug #385543
03 Oct 2011; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.8-r1.ebuild,
llvm-2.8-r2.ebuild, llvm-2.8-r4.ebuild, -llvm-2.9-r1.ebuild,
llvm-2.9-r2.ebuild, llvm-9999.ebuild, metadata.xml:
Rename alltargets USE flag to multitarget, bug #382307. Clean bison
dependency, depending only on new enough one. Drop some versions
28 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> metadata.xml:
USE="libffi" is now global USE flag.
15 Jul 2011; Kacper Kowalik <xarthisius@gentoo.org> llvm-2.8-r2.ebuild:
ppc stable wrt #360553
06 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> llvm-9999.ebuild:
Update live ebuild to sync latest ebuild changes (vim-syntax, libffi, ...)
*llvm-2.9-r2 (23 May 2011)
23 May 2011; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.9-r2.ebuild,
+files/llvm-2.9-Operator.h-c++0x.patch:
Fix header for gcc 4.6, bug #365925
21 Apr 2011; Fabian Groffen <grobian@gentoo.org> llvm-2.9-r1.ebuild,
llvm-9999.ebuild:
Fix broken reference that I missed yesterday
20 Apr 2011; Fabian Groffen <grobian@gentoo.org> llvm-2.9-r1.ebuild,
llvm-9999.ebuild:
Fix install_name_tooling
*llvm-2.8-r4 (15 Apr 2011)
15 Apr 2011; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.8-r3.ebuild,
+llvm-2.8-r4.ebuild, -llvm-2.9.ebuild:
Also update 2.8 branch with libffi/debug changes
*llvm-2.9-r1 (15 Apr 2011)
15 Apr 2011; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.9-r1.ebuild:
Fix libffi include search path and debug flags, bugs #363595 and #362567
10 Apr 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org> llvm-2.8-r2.ebuild:
x86 stable wrt bug #360553
*llvm-2.9 (07 Apr 2011)
07 Apr 2011; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.9.ebuild:
Version bump
28 Mar 2011; Christoph Mende <angelos@gentoo.org> llvm-2.8-r2.ebuild:
Stable on amd64 wrt bug #360553
*llvm-2.8-r3 (28 Mar 2011)
28 Mar 2011; Bernard Cafarelli <voyageur@gentoo.org>
-files/llvm-2.6-nodoctargz.patch, -llvm-2.7.ebuild, -llvm-2.7-r2.ebuild,
+llvm-2.8-r3.ebuild:
Install vim syntax files with USE=vim-syntax, bug #360147. Also drop 2.7
versions
14 Mar 2011; Fabian Groffen <grobian@gentoo.org> llvm-2.8-r2.ebuild:
Marked ~x86-linux
28 Feb 2011; Bernard Cafarelli <voyageur@gentoo.org>
+files/llvm-2.9-nodoctargz.patch, llvm-9999.ebuild:
Fix depend on live ebuild, and finally update nodoc patch, bug #348701
14 Feb 2011; Kacper Kowalik <xarthisius@gentoo.org> llvm-2.8-r1.ebuild:
ppc stable wrt #336371
*llvm-2.8-r2 (19 Dec 2010)
19 Dec 2010; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.8-r2.ebuild,
+files/llvm-2.8-alignof.patch:
Backport to rename alignof, fixes C++'0x compilers support
11 Nov 2010; Markos Chandras <hwoarang@gentoo.org> llvm-2.8-r1.ebuild:
Stable on amd64 wrt bug #336371
09 Nov 2010; Thomas Kahle <tomka@gentoo.org> llvm-2.8-r1.ebuild:
x86 stable per bug 336371
24 Oct 2010; Fabian Groffen <grobian@gentoo.org> llvm-2.8-r1.ebuild,
llvm-9999.ebuild:
Update reference fixing for Darwin for newer more strict versions of
Portage
23 Oct 2010; Fabian Groffen <grobian@gentoo.org> llvm-2.8-r1.ebuild,
+files/llvm-2.8-darwin8.patch, llvm-9999.ebuild:
Fix compilation on Mac OS X Tiger (10.4, Darwin 8), fix install_names for
new libs also, bug #342289
*llvm-2.8-r1 (08 Oct 2010)
08 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.8.ebuild,
+llvm-2.8-r1.ebuild:
SRC_URI arrow workaround to fetch updated tarball with correct package
version, thanks Alexey Charkov <alchark@gmail.com> in bug #340106 for
spotting it
06 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.8.ebuild,
llvm-9999.ebuild:
Tests now use an internal framework, dejagnu not needed anymore
*llvm-2.8 (06 Oct 2010)
06 Oct 2010; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.8.ebuild:
2.8 version bump
21 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> llvm-9999.ebuild:
Also fix live ebuild
*llvm-2.7-r2 (21 Sep 2010)
21 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.7-r1.ebuild,
+llvm-2.7-r2.ebuild:
Fix the rpath sed so llvm-* binaries actually find the llvm shared library
20 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.7-r1.ebuild:
udis86 needs pic on amd64, bug #337969
*llvm-2.7-r1 (17 Sep 2010)
17 Sep 2010; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.7-r1.ebuild,
llvm-9999.ebuild:
Enable shared library, move libs and plugins to fix bug #337467
04 Sep 2010; Fabian Groffen <grobian@gentoo.org> llvm-2.7.ebuild:
Also fix libEnhancedDisassembly, which is only built on Darwin 10 (Mac OS
X Snow Leopard)
03 Sep 2010; Fabian Groffen <grobian@gentoo.org> llvm-2.7.ebuild:
Marked ~amd64-linux
26 Aug 2010; Fabian Groffen <grobian@gentoo.org> llvm-2.7.ebuild,
llvm-9999.ebuild:
Bump to EAPI=3, make Prefix aware, add support for Darwin platforms,
bug #333387
20 Jul 2010; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.6-r2.ebuild,
-files/llvm-2.6-cflags.patch:
Drop 2.6 version
*llvm-9999 (01 Jun 2010)
01 Jun 2010; Bernard Cafarelli <voyageur@gentoo.org> +llvm-9999.ebuild:
Add live version, bug #320919
01 Jun 2010; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6-r2.ebuild,
llvm-2.7.ebuild:
Really fix bug #293382, llvm-gcc was still in DEPEND
*llvm-2.7 (27 Apr 2010)
27 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.6-r1.ebuild,
+llvm-2.7.ebuild, +files/llvm-2.7-nodoctargz.patch:
2.7 official release version bump
26 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6-r2.ebuild:
--without-udis86 is broken in configure script
*llvm-2.6-r2 (26 Apr 2010)
26 Apr 2010; Bernard Cafarelli <voyageur@gentoo.org> +llvm-2.6-r2.ebuild,
metadata.xml:
Add udis86 support, thanks to chithanh in bug #317151
*llvm-2.6-r1 (18 Mar 2010)
18 Mar 2010; Bernard Cafarelli <voyageur@gentoo.org> -llvm-2.6.ebuild,
+llvm-2.6-r1.ebuild, +files/llvm-2.6-cflags.patch:
Remove forced -O3 -fomit-frame-pointer CFLAGS, bug #308145
17 Nov 2009; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6.ebuild:
Drop llvm-gcc depend, as it triggers circular dependency on first install
(warn the user if it is not found instead), bug #293382
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
files/llvm-2.6-commandguide-nops.patch:
Fix the patch, after test by flameeyes
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6.ebuild,
+files/llvm-2.6-commandguide-nops.patch:
Disable .ps doc generation, these are just the man pages. Bug #290581
26 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6.ebuild,
metadata.xml:
Fix libffi automagic dependency, bug #289933
*llvm-2.6 (25 Oct 2009)
25 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
-llvm-2.6_pre2.ebuild, +llvm-2.6.ebuild:
Bump to final 2.6 release
07 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6_pre2.ebuild,
+files/llvm-2.6-nodoctargz.patch, -files/llvm-2.6-nohtmltargz.patch:
Add USE flag for ocaml bindings, complete doc patch to fix ocmal doc
failure, see bug #186279
07 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org> llvm-2.6_pre2.ebuild:
Fix llvm-gcc location, work with ${ROOT}
*llvm-2.6_pre2 (05 Oct 2009)
05 Oct 2009; Bernard Cafarelli <voyageur@gentoo.org>
+llvm-2.6_pre2.ebuild, +files/llvm-2.6-nohtmltargz.patch, +metadata.xml:
Initial commit, thanks everyone in bug #186279 and others

6
sys-devel/llvm/Manifest Normal file
View File

@ -0,0 +1,6 @@
AUX llvm-2.6-commandguide-nops.patch 975 RMD160 1178c27a8845c2c86d6d381ba3d95b4b9b627f1e SHA1 41b9d8c3ae0ed1023ec72bf629c53fa8981e0264 SHA256 0e36fb43e020fa380230a8c6f2a79b9a19e12e857e833ef856e2b41aaa283649
AUX llvm-2.9-nodoctargz.patch 1569 RMD160 6589aa0a41f47e915ce93fe6dcf68dd601c3bcdc SHA1 19795ec9c34e6ec5539ec6a77944ceb51abdef72 SHA256 62f1b080364d94e528bb34f0063562d16a59395aa7f97277bba88fbd93e00b84
DIST llvm-3.0.tar.gz 10350539 RMD160 85211cafbed1c5d838ac54669017b5298613f975 SHA1 b683e7294fcf69887c0d709025d4640f5dca755b SHA256 519eb11d3499ce99c6ffdb8718651fc91425ed7690eac91c8d6853474f7c0477
EBUILD llvm-3.0.ebuild 5373 RMD160 ab0ed5585d60212c26fa00363733584fe090a761 SHA1 e3b20ae08c5befbb96d1f1ac9d0de40fcd663bfd SHA256 f2a8f89dc15b3f78715462b12fb0c0e1dec1384839869fc552ec4ebd21a0b85e
MISC ChangeLog 9075 RMD160 7f8572387663eab6fc364b1fa61cf9df5d2ba9ff SHA1 3251911aa15ec053dd0ba300b981b6e036ab2a54 SHA256 e1a3c513d560373e2350a7aa3f11399d84ecade6979be90ae0967b569b38e318
MISC metadata.xml 2290 RMD160 3c36b274b863158d4a53be2c99ea5f42ede2bb80 SHA1 d608d42b2a831a4b9025fa1d2fd68fb11996293b SHA256 fd3cd6846072dbcacb0a3461a3d1a47bb09b858562df26fb9fc0769f0a292bf4

View File

@ -0,0 +1,30 @@
--- docs/CommandGuide/Makefile.orig 2009-10-26 16:54:33.000000000 +0100
+++ docs/CommandGuide/Makefile 2009-10-26 17:32:03.000000000 +0100
@@ -19,7 +19,7 @@
DST_PS_DIR=ps/
# If we are in BUILD_FOR_WEBSITE mode, default to the all target.
-all:: html man ps
+all:: html man
clean:
rm -f pod2htm*.*~~ $(HTML) $(MAN) $(PS)
@@ -81,7 +81,7 @@
MAN_DIR := $(PROJ_mandir)/man1
PS_DIR := $(PROJ_docsdir)/ps
-install-local:: $(HTML) $(INSTALL_MANS) $(PS)
+install-local:: $(HTML) $(INSTALL_MANS)
$(Echo) Installing HTML CommandGuide Documentation
$(Verb) $(MKDIR) $(HTML_DIR)
$(Verb) $(DataInstall) $(HTML) $(HTML_DIR)
@@ -90,9 +90,6 @@
$(Echo) Installing MAN CommandGuide Documentation
$(Verb) $(MKDIR) $(MAN_DIR)
$(Verb) $(DataInstall) $(INSTALL_MANS) $(MAN_DIR)
- $(Echo) Installing PS CommandGuide Documentation
- $(Verb) $(MKDIR) $(PS_DIR)
- $(Verb) $(DataInstall) $(PS) $(PS_DIR)
uninstall-local::
$(Echo) Uninstalling CommandGuide Documentation

View File

@ -0,0 +1,39 @@
--- docs/Makefile.orig 2011-02-28 21:30:46.000000000 +0100
+++ docs/Makefile 2011-02-28 21:35:22.000000000 +0100
@@ -53,13 +53,12 @@
# 'make generated BUILD_FOR_WEBSITE=1'
generated:: $(generated_targets)
-install-html: $(PROJ_OBJ_DIR)/html.tar.gz
+install-html:
$(Echo) Installing HTML documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/img
$(Verb) $(DataInstall) $(HTML) $(DESTDIR)$(PROJ_docsdir)/html
$(Verb) $(DataInstall) $(IMAGES) $(DESTDIR)$(PROJ_docsdir)/html/img
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(PROJ_OBJ_DIR)/html.tar.gz: $(HTML)
$(Echo) Packaging HTML documentation
@@ -71,12 +70,11 @@
install-doxygen: doxygen
$(Echo) Installing doxygen documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/doxygen
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(Verb) cd $(PROJ_OBJ_DIR)/doxygen && \
$(FIND) . -type f -exec \
$(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/html/doxygen \;
-doxygen: regendoc $(PROJ_OBJ_DIR)/doxygen.tar.gz
+doxygen: regendoc
regendoc:
$(Echo) Building doxygen documentation
@@ -102,7 +100,6 @@
install-ocamldoc: ocamldoc
$(Echo) Installing ocamldoc documentation
$(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/ocamldoc/html
- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/ocamldoc.tar.gz $(DESTDIR)$(PROJ_docsdir)
$(Verb) cd $(PROJ_OBJ_DIR)/ocamldoc && \
$(FIND) . -type f -exec \
$(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/ocamldoc/html \;

View File

@ -0,0 +1,165 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/llvm/llvm-3.0_rc4.ebuild,v 1.1 2011/11/28 10:54:12 voyageur Exp $
EAPI="3"
inherit eutils flag-o-matic multilib toolchain-funcs
DESCRIPTION="Low Level Virtual Machine"
HOMEPAGE="http://llvm.org/"
SRC_URI="http://llvm.org/releases/${PV}/${P}.tar.gz"
LICENSE="UoI-NCSA"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="debug gold +libffi multitarget ocaml test udis86 vim-syntax"
DEPEND="dev-lang/perl
>=sys-devel/make-3.79
>=sys-devel/flex-2.5.4
>=sys-devel/bison-1.875d
|| ( >=sys-devel/gcc-3.0 >=sys-devel/gcc-apple-4.2.1 )
|| ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-3.2.3 )
gold? ( >=sys-devel/binutils-2.22 )
libffi? ( dev-util/pkgconfig
virtual/libffi )
ocaml? ( dev-lang/ocaml )
udis86? ( amd64? ( dev-libs/udis86[pic] )
!amd64? ( dev-libs/udis86 ) )"
RDEPEND="dev-lang/perl
libffi? ( virtual/libffi )
vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )"
S=${WORKDIR}/${P}.src
pkg_setup() {
# need to check if the active compiler is ok
broken_gcc=" 3.2.2 3.2.3 3.3.2 4.1.1 "
broken_gcc_x86=" 3.4.0 3.4.2 "
broken_gcc_amd64=" 3.4.6 "
gcc_vers=$(gcc-fullversion)
if [[ ${broken_gcc} == *" ${version} "* ]] ; then
elog "Your version of gcc is known to miscompile llvm."
elog "Check http://www.llvm.org/docs/GettingStarted.html for"
elog "possible solutions."
die "Your currently active version of gcc is known to miscompile llvm"
fi
if [[ ${CHOST} == i*86-* && ${broken_gcc_x86} == *" ${version} "* ]] ; then
elog "Your version of gcc is known to miscompile llvm on x86"
elog "architectures. Check"
elog "http://www.llvm.org/docs/GettingStarted.html for possible"
elog "solutions."
die "Your currently active version of gcc is known to miscompile llvm"
fi
if [[ ${CHOST} == x86_64-* && ${broken_gcc_amd64} == *" ${version} "* ]];
then
elog "Your version of gcc is known to miscompile llvm in amd64"
elog "architectures. Check"
elog "http://www.llvm.org/docs/GettingStarted.html for possible"
elog "solutions."
die "Your currently active version of gcc is known to miscompile llvm"
fi
}
src_prepare() {
# unfortunately ./configure won't listen to --mandir and the-like, so take
# care of this.
einfo "Fixing install dirs"
sed -e 's,^PROJ_docsdir.*,PROJ_docsdir := $(PROJ_prefix)/share/doc/'${PF}, \
-e 's,^PROJ_etcdir.*,PROJ_etcdir := '"${EPREFIX}"'/etc/llvm,' \
-e 's,^PROJ_libdir.*,PROJ_libdir := $(PROJ_prefix)/'$(get_libdir)/${PN}, \
-i Makefile.config.in || die "Makefile.config sed failed"
sed -e 's,$ABS_RUN_DIR/lib,'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
-i tools/llvm-config/llvm-config.in.in || die "llvm-config sed failed"
einfo "Fixing rpath and CFLAGS"
sed -e 's,\$(RPATH) -Wl\,\$(\(ToolDir\|LibDir\)),$(RPATH) -Wl\,'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
-e '/OmitFramePointer/s/-fomit-frame-pointer//' \
-i Makefile.rules || die "rpath sed failed"
if use gold; then
sed -e 's,\$(SharedLibDir),'"${EPREFIX}"/usr/$(get_libdir)/${PN}, \
-i tools/gold/Makefile || die "gold rpath sed failed"
fi
epatch "${FILESDIR}"/${PN}-2.6-commandguide-nops.patch
epatch "${FILESDIR}"/${PN}-2.9-nodoctargz.patch
}
src_configure() {
local CONF_FLAGS="--enable-shared
--with-optimize-option=
$(use_enable !debug optimized)
$(use_enable debug assertions)
$(use_enable debug expensive-checks)"
if use multitarget; then
CONF_FLAGS="${CONF_FLAGS} --enable-targets=all"
else
CONF_FLAGS="${CONF_FLAGS} --enable-targets=host-only"
fi
if use amd64; then
CONF_FLAGS="${CONF_FLAGS} --enable-pic"
fi
if use gold; then
CONF_FLAGS="${CONF_FLAGS} --with-binutils-include=${EPREFIX}/usr/include/"
fi
if use ocaml; then
CONF_FLAGS="${CONF_FLAGS} --enable-bindings=ocaml"
else
CONF_FLAGS="${CONF_FLAGS} --enable-bindings=none"
fi
if use udis86; then
CONF_FLAGS="${CONF_FLAGS} --with-udis86"
fi
if use libffi; then
append-cppflags "$(pkg-config --cflags libffi)"
fi
CONF_FLAGS="${CONF_FLAGS} $(use_enable libffi)"
econf ${CONF_FLAGS} || die "econf failed"
}
src_compile() {
emake VERBOSE=1 KEEP_SYMBOLS=1 REQUIRES_RTTI=1 || die "emake failed"
}
src_install() {
emake KEEP_SYMBOLS=1 DESTDIR="${D}" install || die "install failed"
if use vim-syntax; then
insinto /usr/share/vim/vimfiles/syntax
doins utils/vim/*.vim
fi
# Fix install_names on Darwin. The build system is too complicated
# to just fix this, so we correct it post-install
local lib= f= odylib=
if [[ ${CHOST} == *-darwin* ]] ; then
for lib in lib{EnhancedDisassembly,LLVM-${PV},LTO}.dylib {BugpointPasses,LLVMHello,profile_rt}.dylib ; do
# libEnhancedDisassembly is Darwin10 only, so non-fatal
[[ -f ${ED}/usr/lib/${PN}/${lib} ]] || continue
ebegin "fixing install_name of $lib"
install_name_tool \
-id "${EPREFIX}"/usr/lib/${PN}/${lib} \
"${ED}"/usr/lib/${PN}/${lib}
eend $?
done
for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/${PN}/libLTO.dylib ; do
odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${PV}.dylib)
ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
install_name_tool \
-change "${odylib}" \
"${EPREFIX}"/usr/lib/${PN}/libLLVM-${PV}.dylib \
"${f}"
eend $?
done
fi
}

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer>
<email>voyageur@gentoo.org</email>
<name>Bernard Cafarelli</name>
</maintainer>
<longdescription>Low Level Virtual Machine (LLVM) is:
1. A compilation strategy designed to enable effective program optimization across the entire lifetime of a program. LLVM supports effective optimization at compile time, link-time (particularly interprocedural), run-time and offline (i.e., after software is installed), while remaining transparent to developers and maintaining compatibility with existing build scripts.
2. A virtual instruction set - LLVM is a low-level object code representation that uses simple RISC-like instructions, but provides rich, language-independent, type information and dataflow (SSA) information about operands. This combination enables sophisticated transformations on object code, while remaining light-weight enough to be attached to the executable. This combination is key to allowing link-time, run-time, and offline transformations.
3. A compiler infrastructure - LLVM is also a collection of source code that implements the language and compilation strategy. The primary components of the LLVM infrastructure are a GCC-based C and C++ front-end, a link-time optimization framework with a growing set of global and interprocedural analyses and transformations, static back-ends for many popular (and some obscure) architectures, a back-end which emits portable C code, and a Just-In-Time compilers for several architectures.
4. LLVM does not imply things that you would expect from a high-level virtual machine. It does not require garbage collection or run-time code generation (In fact, LLVM makes a great static compiler!). Note that optional LLVM components can be used to build high-level virtual machines and other systems that need these services.</longdescription>
<use>
<flag name='gold'>Build the gold linker plugin</flag>
<flag name='llvm-gcc'>Build LLVM with <pkg>sys-devel/llvm-gcc</pkg></flag>
<flag name='multitarget'>Build all host targets (default: host only)</flag>
<flag name='udis86'>Enable support for <pkg>dev-libs/udis86</pkg> disassembler library</flag>
</use>
</pkgmetadata>

View File

@ -2,6 +2,12 @@
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
*linux-firmwares-2.6.39.4 (27 Nov 2011)
27 Nov 2011; Mario Fetka <mario.fetka@gmail.com>
+linux-firmwares-2.6.39.4.ebuild:
Bump
*linux-firmwares-2.6.38 (11 Jun 2011)
11 Jun 2011; Mario Fetka <mario.fetka@gmail.com>

View File

@ -0,0 +1,15 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
ETYPE="sources"
K_NASPATCHES_VER="3"
K_KERNEL_PATCH_VER=""
K_NASKERNEL_URI_CONFIG="yes"
# Doesn't make any difference, but a valid kernel .config
# file is required in order to build kernel firmwares
K_FIRMWARE_PACKAGE="1"
inherit nas-kernel
KEYWORDS="~arm"
DESCRIPTION="Linux Kernel firmwares from kernel.org tarballs"
RESTRICT="mirror"

View File

@ -0,0 +1,15 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
ETYPE="sources"
K_NASPATCHES_VER="3"
K_KERNEL_PATCH_VER="8"
K_NASKERNEL_URI_CONFIG="yes"
# Doesn't make any difference, but a valid kernel .config
# file is required in order to build kernel firmwares
K_FIRMWARE_PACKAGE="1"
inherit nas-kernel
KEYWORDS="~arm"
DESCRIPTION="Linux Kernel firmwares from kernel.org tarballs"
RESTRICT="mirror"

View File

@ -0,0 +1,17 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
ETYPE="sources"
K_WANT_GENPATCHES=""
K_GENPATCHES_VER=""
K_NASPATCHES_VER="1"
K_KERNEL_PATCHES_VER=""
K_NASKERNEL_URI_CONFIG="yes"
# Doesn't make any difference, but a valid kernel .config
# file is required in order to build kernel firmwares
K_FIRMWARE_PACKAGE="1"
inherit nas-kernel
KEYWORDS="~arm"
DESCRIPTION="Linux Kernel firmwares from kernel.org tarballs"
RESTRICT="mirror"