From 85fe320de5d57ea6fd761a9817a68ff3d943039d Mon Sep 17 00:00:00 2001 From: Mario Fetka Date: Sat, 3 Dec 2011 12:15:17 +0100 Subject: [PATCH] add new files --- dev-java/icedtea-bin/icedtea-bin-1.4.1.ebuild | 95 ++++ dev-java/icedtea-bin/icedtea-bin-1.5.ebuild | 95 ++++ dev-java/icedtea-bin/icedtea-bin-1.8.2.ebuild | 95 ++++ .../icedtea6-bin-1.4.1.ebuild | 0 .../icedtea6-bin-1.5.ebuild | 0 .../icedtea6-bin-1.8.2.ebuild | 0 dev-java/icedtea6-bin/ChangeLog | 44 -- dev-java/icedtea6-bin/Manifest | 21 - dev-java/icedtea6-bin/files/icedtea6-bin.env | 18 - dev-java/icedtea6-bin/metadata.xml | 5 - eclass/nas-kernel.eclass | 423 ++++++++++----- eclass/nas-old-kernel.eclass | 500 ++++++++++++++++++ sys-devel/clang/ChangeLog | 240 +++++++++ sys-devel/clang/Manifest | 7 + sys-devel/clang/clang-3.0.ebuild | 190 +++++++ sys-devel/clang/files/clang-2.7-fixdoc.patch | 53 ++ .../clang-3.0-fix_cxx_include_root.patch | 21 + sys-devel/clang/metadata.xml | 35 ++ sys-devel/dragonegg/ChangeLog | 20 + sys-devel/dragonegg/Manifest | 4 + sys-devel/dragonegg/dragonegg-3.0.ebuild | 48 ++ sys-devel/dragonegg/metadata.xml | 9 + sys-devel/llvm/ChangeLog | 251 +++++++++ sys-devel/llvm/Manifest | 6 + .../files/llvm-2.6-commandguide-nops.patch | 30 ++ .../llvm/files/llvm-2.9-nodoctargz.patch | 39 ++ sys-devel/llvm/llvm-3.0.ebuild | 165 ++++++ sys-devel/llvm/metadata.xml | 19 + sys-kernel/linux-firmwares/ChangeLog | 6 + .../linux-firmwares-2.6.39.4.ebuild | 15 + .../linux-firmwares-2.6.39.ebuild | 15 + .../linux-firmwares-3.1.3.ebuild | 17 + 32 files changed, 2274 insertions(+), 212 deletions(-) create mode 100644 dev-java/icedtea-bin/icedtea-bin-1.4.1.ebuild create mode 100644 dev-java/icedtea-bin/icedtea-bin-1.5.ebuild create mode 100644 dev-java/icedtea-bin/icedtea-bin-1.8.2.ebuild rename dev-java/{icedtea6-bin => icedtea-bin}/icedtea6-bin-1.4.1.ebuild (100%) rename dev-java/{icedtea6-bin => icedtea-bin}/icedtea6-bin-1.5.ebuild (100%) rename dev-java/{icedtea6-bin => icedtea-bin}/icedtea6-bin-1.8.2.ebuild (100%) delete mode 100644 dev-java/icedtea6-bin/ChangeLog delete mode 100644 dev-java/icedtea6-bin/Manifest delete mode 100644 dev-java/icedtea6-bin/files/icedtea6-bin.env delete mode 100644 dev-java/icedtea6-bin/metadata.xml create mode 100644 eclass/nas-old-kernel.eclass create mode 100644 sys-devel/clang/ChangeLog create mode 100644 sys-devel/clang/Manifest create mode 100644 sys-devel/clang/clang-3.0.ebuild create mode 100644 sys-devel/clang/files/clang-2.7-fixdoc.patch create mode 100644 sys-devel/clang/files/clang-3.0-fix_cxx_include_root.patch create mode 100644 sys-devel/clang/metadata.xml create mode 100644 sys-devel/dragonegg/ChangeLog create mode 100644 sys-devel/dragonegg/Manifest create mode 100644 sys-devel/dragonegg/dragonegg-3.0.ebuild create mode 100644 sys-devel/dragonegg/metadata.xml create mode 100644 sys-devel/llvm/ChangeLog create mode 100644 sys-devel/llvm/Manifest create mode 100644 sys-devel/llvm/files/llvm-2.6-commandguide-nops.patch create mode 100644 sys-devel/llvm/files/llvm-2.9-nodoctargz.patch create mode 100644 sys-devel/llvm/llvm-3.0.ebuild create mode 100644 sys-devel/llvm/metadata.xml create mode 100644 sys-kernel/linux-firmwares/linux-firmwares-2.6.39.4.ebuild create mode 100644 sys-kernel/linux-firmwares/linux-firmwares-2.6.39.ebuild create mode 100644 sys-kernel/linux-firmwares/linux-firmwares-3.1.3.ebuild diff --git a/dev-java/icedtea-bin/icedtea-bin-1.4.1.ebuild b/dev-java/icedtea-bin/icedtea-bin-1.4.1.ebuild new file mode 100644 index 0000000..5fbffcf --- /dev/null +++ b/dev-java/icedtea-bin/icedtea-bin-1.4.1.ebuild @@ -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 +} diff --git a/dev-java/icedtea-bin/icedtea-bin-1.5.ebuild b/dev-java/icedtea-bin/icedtea-bin-1.5.ebuild new file mode 100644 index 0000000..c6babc1 --- /dev/null +++ b/dev-java/icedtea-bin/icedtea-bin-1.5.ebuild @@ -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 +} diff --git a/dev-java/icedtea-bin/icedtea-bin-1.8.2.ebuild b/dev-java/icedtea-bin/icedtea-bin-1.8.2.ebuild new file mode 100644 index 0000000..c6babc1 --- /dev/null +++ b/dev-java/icedtea-bin/icedtea-bin-1.8.2.ebuild @@ -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 +} diff --git a/dev-java/icedtea6-bin/icedtea6-bin-1.4.1.ebuild b/dev-java/icedtea-bin/icedtea6-bin-1.4.1.ebuild similarity index 100% rename from dev-java/icedtea6-bin/icedtea6-bin-1.4.1.ebuild rename to dev-java/icedtea-bin/icedtea6-bin-1.4.1.ebuild diff --git a/dev-java/icedtea6-bin/icedtea6-bin-1.5.ebuild b/dev-java/icedtea-bin/icedtea6-bin-1.5.ebuild similarity index 100% rename from dev-java/icedtea6-bin/icedtea6-bin-1.5.ebuild rename to dev-java/icedtea-bin/icedtea6-bin-1.5.ebuild diff --git a/dev-java/icedtea6-bin/icedtea6-bin-1.8.2.ebuild b/dev-java/icedtea-bin/icedtea6-bin-1.8.2.ebuild similarity index 100% rename from dev-java/icedtea6-bin/icedtea6-bin-1.8.2.ebuild rename to dev-java/icedtea-bin/icedtea6-bin-1.8.2.ebuild diff --git a/dev-java/icedtea6-bin/ChangeLog b/dev-java/icedtea6-bin/ChangeLog deleted file mode 100644 index 53d7915..0000000 --- a/dev-java/icedtea6-bin/ChangeLog +++ /dev/null @@ -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 - +icedtea6-bin-1.8.2.ebuild: - bump to debian armel packages from sid - - 18 Oct 2010; Mario Fetka icedtea6-bin-1.5.ebuild: - add depend on jpeg:62 - - 18 Oct 2010; Mario Fetka +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 - +icedtea6-bin-1.4.1.ebuild, -icedtea6-bin-1.6.2.ebuild: - downgrade to the real version - - 12 Jan 2010; Mario Fetka Manifest: - bump bins - - 12 Jan 2010; Mario Fetka - -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 - +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 +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 +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. - diff --git a/dev-java/icedtea6-bin/Manifest b/dev-java/icedtea6-bin/Manifest deleted file mode 100644 index 7d5353d..0000000 --- a/dev-java/icedtea6-bin/Manifest +++ /dev/null @@ -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 diff --git a/dev-java/icedtea6-bin/files/icedtea6-bin.env b/dev-java/icedtea6-bin/files/icedtea6-bin.env deleted file mode 100644 index c896da5..0000000 --- a/dev-java/icedtea6-bin/files/icedtea6-bin.env +++ /dev/null @@ -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" diff --git a/dev-java/icedtea6-bin/metadata.xml b/dev-java/icedtea6-bin/metadata.xml deleted file mode 100644 index 250f2d1..0000000 --- a/dev-java/icedtea6-bin/metadata.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - java - diff --git a/eclass/nas-kernel.eclass b/eclass/nas-kernel.eclass index af81134..83405d7 100644 --- a/eclass/nas-kernel.eclass +++ b/eclass/nas-kernel.eclass @@ -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 diff --git a/eclass/nas-old-kernel.eclass b/eclass/nas-old-kernel.eclass new file mode 100644 index 0000000..ecbae8a --- /dev/null +++ b/eclass/nas-old-kernel.eclass @@ -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 + diff --git a/sys-devel/clang/ChangeLog b/sys-devel/clang/ChangeLog new file mode 100644 index 0000000..51c1056 --- /dev/null +++ b/sys-devel/clang/ChangeLog @@ -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 -clang-3.0_rc3.ebuild, + +clang-3.0_rc4.ebuild: + Final rc bump + + 14 Nov 2011; Bernard Cafarelli 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 + in bug #388621 + + 10 Nov 2011; Bernard Cafarelli 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 -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 +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 + for the patch + + 04 Oct 2011; Bernard Cafarelli 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 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ò +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 clang-2.8-r3.ebuild, + clang-2.9.ebuild, clang-9999.ebuild: + Convert from "hasq" to "has". + + 13 Jun 2011; Bernard Cafarelli clang-9999.ebuild: + Also use same USE-defaults for live ebuild, spotted by mgorny + + 06 Jun 2011; Bernard Cafarelli clang-9999.ebuild: + Update live ebuild to sync latest ebuild changes, fixes bug #369027 + + 21 Apr 2011; Fabian Groffen clang-2.9.ebuild: + Update install_name reference to libLLVM + +*clang-2.9 (07 Apr 2011) + + 07 Apr 2011; Bernard Cafarelli +clang-2.9.ebuild, + +files/clang-2.9-darwin-prefix.patch: + Version bump, enable system-cxx-headers by default + + 28 Mar 2011; Bernard Cafarelli -clang-2.7-r4.ebuild, + -files/clang-2.7-darwin-prefix.patch: + Drop 2.7 versions + + 14 Mar 2011; Fabian Groffen clang-2.8-r3.ebuild: + Marked ~x86-linux + + 26 Jan 2011; Fabian Groffen 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 -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 + in bug #345683 + + 24 Oct 2010; Fabian Groffen 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 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 -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 , bug #341891, tested + with boost compilation. Clean some versions + +*clang-2.8-r1 (12 Oct 2010) + + 12 Oct 2010; Bernard Cafarelli +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 clang-2.8.ebuild: + Use new llvm 2.8 tarball, just in case + + 06 Oct 2010; Bernard Cafarelli 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 +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 -clang-2.7-r3.ebuild, + +clang-2.7-r4.ebuild, clang-9999.ebuild: + Fix rpath sed and disable shared library use, thanks Nick Bowler + in bug #338231 + +*clang-2.7-r3 (17 Sep 2010) + + 17 Sep 2010; Bernard Cafarelli -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 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 clang-2.7-r2.ebuild: + Marked ~amd64-linux + + 26 Aug 2010; Fabian Groffen 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 clang-9999.ebuild: + system-cxx-headers was missing in -9999 IUSE, spotted by Jack Lloyd + in bug #331679 + +*clang-2.7-r2 (27 Jul 2010) + + 27 Jul 2010; Bernard Cafarelli -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 +clang-2.7-r1.ebuild, + clang-9999.ebuild: + Get C++ headers from active gcc version, bug #327575 + + 20 Jul 2010; Bernard Cafarelli -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 clang-9999.ebuild: + Set ESVN_REPO_URI to fix subversion_pkg_preinst + +*clang-9999 (01 Jun 2010) + + 01 Jun 2010; Bernard Cafarelli +clang-9999.ebuild: + Add live version, bug #320919 + + 28 Apr 2010; Bernard Cafarelli 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 -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 +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 -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 clang-2.6-r1.ebuild: + vecho -> echo, spotted by tove + + 07 Dec 2009; Bernard Cafarelli clang-2.6-r1.ebuild: + Remove faulty test for 2.6, bug #294689 + + 07 Dec 2009; Bernard Cafarelli clang-2.6-r1.ebuild: + Fix multilib-strict sed, it broke tests on amd64 + + 30 Nov 2009; Torsten Veller clang-2.6-r1.ebuild: + Add missing die: || "die..." -> || die "..." + +*clang-2.6-r1 (27 Oct 2009) + + 27 Oct 2009; Bernard Cafarelli -clang-2.6.ebuild, + +clang-2.6-r1.ebuild: + Install missing files for static analyzer, bug #290697 + + 26 Oct 2009; Bernard Cafarelli 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 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 + -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 + +clang-2.6_pre2.ebuild, +metadata.xml: + Initial commit, based on ebuild by Ravi Pinjala in bug + #269651 + diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest new file mode 100644 index 0000000..cb47b73 --- /dev/null +++ b/sys-devel/clang/Manifest @@ -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 diff --git a/sys-devel/clang/clang-3.0.ebuild b/sys-devel/clang/clang-3.0.ebuild new file mode 100644 index 0000000..7b2a9cf --- /dev/null +++ b/sys-devel/clang/clang-3.0.ebuild @@ -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 +} diff --git a/sys-devel/clang/files/clang-2.7-fixdoc.patch b/sys-devel/clang/files/clang-2.7-fixdoc.patch new file mode 100644 index 0000000..8058ec4 --- /dev/null +++ b/sys-devel/clang/files/clang-2.7-fixdoc.patch @@ -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: diff --git a/sys-devel/clang/files/clang-3.0-fix_cxx_include_root.patch b/sys-devel/clang/files/clang-3.0-fix_cxx_include_root.patch new file mode 100644 index 0000000..e1beff3 --- /dev/null +++ b/sys-devel/clang/files/clang-3.0-fix_cxx_include_root.patch @@ -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); diff --git a/sys-devel/clang/metadata.xml b/sys-devel/clang/metadata.xml new file mode 100644 index 0000000..c52116a --- /dev/null +++ b/sys-devel/clang/metadata.xml @@ -0,0 +1,35 @@ + + + + + voyageur@gentoo.org + Bernard Cafarelli + + 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 + + Build all host targets (default: host only) + Install the Clang static analyzer + 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 + + diff --git a/sys-devel/dragonegg/ChangeLog b/sys-devel/dragonegg/ChangeLog new file mode 100644 index 0000000..1d03b2d --- /dev/null +++ b/sys-devel/dragonegg/ChangeLog @@ -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 + 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 + -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 + +dragonegg-3.0_rc3.ebuild, +metadata.xml: + Initial commit + diff --git a/sys-devel/dragonegg/Manifest b/sys-devel/dragonegg/Manifest new file mode 100644 index 0000000..cd76a23 --- /dev/null +++ b/sys-devel/dragonegg/Manifest @@ -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 diff --git a/sys-devel/dragonegg/dragonegg-3.0.ebuild b/sys-devel/dragonegg/dragonegg-3.0.ebuild new file mode 100644 index 0000000..ffe9b73 --- /dev/null +++ b/sys-devel/dragonegg/dragonegg-3.0.ebuild @@ -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" +} diff --git a/sys-devel/dragonegg/metadata.xml b/sys-devel/dragonegg/metadata.xml new file mode 100644 index 0000000..6b1e8db --- /dev/null +++ b/sys-devel/dragonegg/metadata.xml @@ -0,0 +1,9 @@ + + + + + voyageur@gentoo.org + Bernard Cafarelli + + DragonEgg is a sys-devel/gcc 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. + diff --git a/sys-devel/llvm/ChangeLog b/sys-devel/llvm/ChangeLog new file mode 100644 index 0000000..87b17f8 --- /dev/null +++ b/sys-devel/llvm/ChangeLog @@ -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 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 -llvm-3.0_rc3.ebuild, + +llvm-3.0_rc4.ebuild: + Final rc bump + + 24 Nov 2011; Fabian Groffen 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 llvm-3.0_rc3.ebuild, + metadata.xml: + Add support for gold plugin, thanks Matthias Maier in bug #371951 + + 17 Nov 2011; Pawel Hajdan jr llvm-2.9-r2.ebuild: + x86 stable wrt bug #384709 + +*llvm-3.0_rc3 (09 Nov 2011) + + 09 Nov 2011; Bernard Cafarelli -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 +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 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 -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 metadata.xml: + USE="libffi" is now global USE flag. + + 15 Jul 2011; Kacper Kowalik llvm-2.8-r2.ebuild: + ppc stable wrt #360553 + + 06 Jun 2011; Bernard Cafarelli 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 +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 llvm-2.9-r1.ebuild, + llvm-9999.ebuild: + Fix broken reference that I missed yesterday + + 20 Apr 2011; Fabian Groffen llvm-2.9-r1.ebuild, + llvm-9999.ebuild: + Fix install_name_tooling + +*llvm-2.8-r4 (15 Apr 2011) + + 15 Apr 2011; Bernard Cafarelli -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 +llvm-2.9-r1.ebuild: + Fix libffi include search path and debug flags, bugs #363595 and #362567 + + 10 Apr 2011; Pawel Hajdan jr llvm-2.8-r2.ebuild: + x86 stable wrt bug #360553 + +*llvm-2.9 (07 Apr 2011) + + 07 Apr 2011; Bernard Cafarelli +llvm-2.9.ebuild: + Version bump + + 28 Mar 2011; Christoph Mende llvm-2.8-r2.ebuild: + Stable on amd64 wrt bug #360553 + +*llvm-2.8-r3 (28 Mar 2011) + + 28 Mar 2011; Bernard Cafarelli + -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 llvm-2.8-r2.ebuild: + Marked ~x86-linux + + 28 Feb 2011; Bernard Cafarelli + +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 llvm-2.8-r1.ebuild: + ppc stable wrt #336371 + +*llvm-2.8-r2 (19 Dec 2010) + + 19 Dec 2010; Bernard Cafarelli +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 llvm-2.8-r1.ebuild: + Stable on amd64 wrt bug #336371 + + 09 Nov 2010; Thomas Kahle llvm-2.8-r1.ebuild: + x86 stable per bug 336371 + + 24 Oct 2010; Fabian Groffen 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 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 -llvm-2.8.ebuild, + +llvm-2.8-r1.ebuild: + SRC_URI arrow workaround to fetch updated tarball with correct package + version, thanks Alexey Charkov in bug #340106 for + spotting it + + 06 Oct 2010; Bernard Cafarelli 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 +llvm-2.8.ebuild: + 2.8 version bump + + 21 Sep 2010; Bernard Cafarelli llvm-9999.ebuild: + Also fix live ebuild + +*llvm-2.7-r2 (21 Sep 2010) + + 21 Sep 2010; Bernard Cafarelli -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 llvm-2.7-r1.ebuild: + udis86 needs pic on amd64, bug #337969 + +*llvm-2.7-r1 (17 Sep 2010) + + 17 Sep 2010; Bernard Cafarelli +llvm-2.7-r1.ebuild, + llvm-9999.ebuild: + Enable shared library, move libs and plugins to fix bug #337467 + + 04 Sep 2010; Fabian Groffen llvm-2.7.ebuild: + Also fix libEnhancedDisassembly, which is only built on Darwin 10 (Mac OS + X Snow Leopard) + + 03 Sep 2010; Fabian Groffen llvm-2.7.ebuild: + Marked ~amd64-linux + + 26 Aug 2010; Fabian Groffen 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 -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 +llvm-9999.ebuild: + Add live version, bug #320919 + + 01 Jun 2010; Bernard Cafarelli 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 -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 llvm-2.6-r2.ebuild: + --without-udis86 is broken in configure script + +*llvm-2.6-r2 (26 Apr 2010) + + 26 Apr 2010; Bernard Cafarelli +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 -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 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 + files/llvm-2.6-commandguide-nops.patch: + Fix the patch, after test by flameeyes + + 26 Oct 2009; Bernard Cafarelli 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 llvm-2.6.ebuild, + metadata.xml: + Fix libffi automagic dependency, bug #289933 + +*llvm-2.6 (25 Oct 2009) + + 25 Oct 2009; Bernard Cafarelli + -llvm-2.6_pre2.ebuild, +llvm-2.6.ebuild: + Bump to final 2.6 release + + 07 Oct 2009; Bernard Cafarelli 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 llvm-2.6_pre2.ebuild: + Fix llvm-gcc location, work with ${ROOT} + +*llvm-2.6_pre2 (05 Oct 2009) + + 05 Oct 2009; Bernard Cafarelli + +llvm-2.6_pre2.ebuild, +files/llvm-2.6-nohtmltargz.patch, +metadata.xml: + Initial commit, thanks everyone in bug #186279 and others + diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest new file mode 100644 index 0000000..ebb505b --- /dev/null +++ b/sys-devel/llvm/Manifest @@ -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 diff --git a/sys-devel/llvm/files/llvm-2.6-commandguide-nops.patch b/sys-devel/llvm/files/llvm-2.6-commandguide-nops.patch new file mode 100644 index 0000000..583fdf9 --- /dev/null +++ b/sys-devel/llvm/files/llvm-2.6-commandguide-nops.patch @@ -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 diff --git a/sys-devel/llvm/files/llvm-2.9-nodoctargz.patch b/sys-devel/llvm/files/llvm-2.9-nodoctargz.patch new file mode 100644 index 0000000..9507817 --- /dev/null +++ b/sys-devel/llvm/files/llvm-2.9-nodoctargz.patch @@ -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 \; diff --git a/sys-devel/llvm/llvm-3.0.ebuild b/sys-devel/llvm/llvm-3.0.ebuild new file mode 100644 index 0000000..d41b1f1 --- /dev/null +++ b/sys-devel/llvm/llvm-3.0.ebuild @@ -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 +} diff --git a/sys-devel/llvm/metadata.xml b/sys-devel/llvm/metadata.xml new file mode 100644 index 0000000..140a2f8 --- /dev/null +++ b/sys-devel/llvm/metadata.xml @@ -0,0 +1,19 @@ + + + + + voyageur@gentoo.org + Bernard Cafarelli + + 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. + + Build the gold linker plugin + Build LLVM with sys-devel/llvm-gcc + Build all host targets (default: host only) + Enable support for dev-libs/udis86 disassembler library + + diff --git a/sys-kernel/linux-firmwares/ChangeLog b/sys-kernel/linux-firmwares/ChangeLog index e295492..6424184 100644 --- a/sys-kernel/linux-firmwares/ChangeLog +++ b/sys-kernel/linux-firmwares/ChangeLog @@ -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 + +linux-firmwares-2.6.39.4.ebuild: + Bump + *linux-firmwares-2.6.38 (11 Jun 2011) 11 Jun 2011; Mario Fetka diff --git a/sys-kernel/linux-firmwares/linux-firmwares-2.6.39.4.ebuild b/sys-kernel/linux-firmwares/linux-firmwares-2.6.39.4.ebuild new file mode 100644 index 0000000..465cc95 --- /dev/null +++ b/sys-kernel/linux-firmwares/linux-firmwares-2.6.39.4.ebuild @@ -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" diff --git a/sys-kernel/linux-firmwares/linux-firmwares-2.6.39.ebuild b/sys-kernel/linux-firmwares/linux-firmwares-2.6.39.ebuild new file mode 100644 index 0000000..3615f62 --- /dev/null +++ b/sys-kernel/linux-firmwares/linux-firmwares-2.6.39.ebuild @@ -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" diff --git a/sys-kernel/linux-firmwares/linux-firmwares-3.1.3.ebuild b/sys-kernel/linux-firmwares/linux-firmwares-3.1.3.ebuild new file mode 100644 index 0000000..8fdfa96 --- /dev/null +++ b/sys-kernel/linux-firmwares/linux-firmwares-3.1.3.ebuild @@ -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"