Browse Source

Sync with portage [Sat Feb 20 08:53:38 MSK 2016].

mhiretskiy 239
root 7 years ago
parent
commit
f17d6b99c8
  1. 2
      app-admin/conky/conky-1.10.1.ebuild
  2. 13
      app-admin/conky/files/conky-1.10.1-includewlan.patch
  3. 1
      app-admin/consul/consul-0.5.2-r1.ebuild
  4. 1
      app-admin/consul/consul-0.6.3.ebuild
  5. 1
      app-admin/consul/consul-9999.ebuild
  6. 1
      app-editors/tea/Manifest
  7. 57
      app-editors/tea/tea-41.0.0.ebuild
  8. 1
      app-editors/vim-qt/Manifest
  9. 119
      app-editors/vim-qt/vim-qt-20140827-r3.ebuild
  10. 4
      app-editors/vim-qt/vim-qt-20150102-r1.ebuild
  11. 3
      app-emulation/qemu/metadata.xml
  12. 2
      app-emulation/xen-tools/Manifest
  13. 475
      app-emulation/xen-tools/xen-tools-4.5.2-r5.ebuild
  14. 469
      app-emulation/xen-tools/xen-tools-4.6.0-r9.ebuild
  15. 2
      app-emulation/xen/Manifest
  16. 192
      app-emulation/xen/xen-4.5.2-r5.ebuild
  17. 197
      app-emulation/xen/xen-4.6.0-r9.ebuild
  18. 168
      app-office/libreoffice-l10n/Manifest
  19. 89
      app-office/libreoffice-l10n/libreoffice-l10n-5.0.5.2.ebuild
  20. 2
      app-office/libreoffice/Manifest
  21. 608
      app-office/libreoffice/libreoffice-5.0.5.2.ebuild
  22. 1
      app-shells/bash-completion/Manifest
  23. 95
      app-shells/bash-completion/bash-completion-2.1_p20141224-r2.ebuild
  24. 2
      app-shells/posh/Manifest
  25. 37
      app-shells/posh/files/posh-0.12.5-test-perl-fix.patch
  26. 11
      app-shells/posh/posh-0.12.6.ebuild
  27. 4
      app-text/agrep/agrep-2.04-r1.ebuild
  28. 5
      app-text/sigil/sigil-0.9.3.ebuild
  29. 20
      app-text/xapian-omega/files/xapian-omega-1.3.4-fix-lz.patch
  30. 8
      app-text/xapian-omega/xapian-omega-1.3.4.ebuild
  31. 78
      dev-haskell/text/files/text-1.2.2.0-integer-simple.patch
  32. 7
      dev-haskell/text/text-1.2.2.0.ebuild
  33. 1
      dev-java/ant-eclipse-ecj/Manifest
  34. 52
      dev-java/ant-eclipse-ecj/ant-eclipse-ecj-3.7.2.ebuild
  35. 7
      dev-java/ant-eclipse-ecj/files/ecj-3.7
  36. 2
      dev-java/asm/asm-5.0.3.ebuild
  37. 1
      dev-java/cdi-api/Manifest
  38. 42
      dev-java/cdi-api/cdi-api-1.2-r1.ebuild
  39. 1
      dev-java/eclipse-ecj/Manifest
  40. 101
      dev-java/eclipse-ecj/eclipse-ecj-3.7.2-r1.ebuild
  41. 37
      dev-java/hoteqn/hoteqn-4.0.0-r1.ebuild
  42. 1
      dev-java/jdbc-jaybird/Manifest
  43. 12
      dev-java/jdbc-jaybird/files/2.1.6-remove-unused-ant-import.patch
  44. 11
      dev-java/jdbc-jaybird/files/archive-xml-2.1.0.patch
  45. 21
      dev-java/jdbc-jaybird/files/compile_xml-2.1.2.patch
  46. 97
      dev-java/jdbc-jaybird/jdbc-jaybird-2.1.5-r1.ebuild
  47. 1
      dev-java/jempbox/Manifest
  48. 71
      dev-java/jempbox/jempbox-0.2.0.ebuild
  49. 1
      dev-java/jexcelapi/Manifest
  50. 47
      dev-java/jexcelapi/jexcelapi-2.6.8-r2.ebuild
  51. 1
      dev-java/jrexx/Manifest
  52. 24
      dev-java/jrexx/jrexx-1.1.1-r2.ebuild
  53. 35
      dev-java/jzlib/jzlib-1.0.7-r2.ebuild
  54. 7
      dev-java/rat/rat-0.11.ebuild
  55. 2
      dev-java/tomcat-native/Manifest
  56. 58
      dev-java/tomcat-native/tomcat-native-1.1.33-r1.ebuild
  57. 58
      dev-java/tomcat-native/tomcat-native-1.2.3.ebuild
  58. 1
      dev-java/xp/Manifest
  59. 30
      dev-java/xp/files/xp-0.5-fix-jdk-1.7-enum.patch
  60. 36
      dev-java/xp/xp-0.5-r3.ebuild
  61. 2
      dev-lang/xsb/Manifest
  62. 201
      dev-lang/xsb/xsb-3.6.0.ebuild
  63. 2
      dev-libs/qcustomplot/Manifest
  64. 51
      dev-libs/qcustomplot/qcustomplot-1.3.1.ebuild
  65. 3
      dev-php/pecl-radius/Manifest
  66. 8
      dev-php/pecl-radius/pecl-radius-1.3.0.ebuild
  67. 21
      dev-php/pecl-radius/pecl-radius-1.4.0_beta1.ebuild
  68. 46
      dev-python/cssutils/cssutils-0.9.10-r2.ebuild
  69. 4
      dev-python/cssutils/cssutils-1.0.1.ebuild
  70. 4
      dev-python/cssutils/cssutils-1.0.ebuild
  71. 3
      dev-python/d2to1/d2to1-0.2.12_p1.ebuild
  72. 1
      dev-python/jaraco-collections/Manifest
  73. 2
      dev-python/jaraco-collections/jaraco-collections-1.3.1.ebuild
  74. 49
      dev-python/jaraco-collections/jaraco-collections-1.3.2.ebuild
  75. 22
      dev-python/mccabe/mccabe-0.4.0.ebuild
  76. 2
      dev-python/mccabe/metadata.xml
  77. 1
      dev-python/ptyprocess/Manifest
  78. 24
      dev-python/ptyprocess/ptyprocess-0.5.1.ebuild
  79. 1
      dev-python/pyaudio/Manifest
  80. 31
      dev-python/pyaudio/pyaudio-0.2.9.ebuild
  81. 1
      dev-python/pycountry/Manifest
  82. 31
      dev-python/pycountry/pycountry-1.20.ebuild
  83. 1
      dev-python/pygal/Manifest
  84. 19
      dev-python/pygal/pygal-2.1.1.ebuild
  85. 1
      dev-python/pygresql/Manifest
  86. 76
      dev-python/pygresql/pygresql-4.2.ebuild
  87. 1
      dev-python/pyldap/Manifest
  88. 75
      dev-python/pyldap/pyldap-2.4.25.ebuild
  89. 1
      dev-python/pyphen/Manifest
  90. 24
      dev-python/pyphen/pyphen-0.9.4.ebuild
  91. 1
      dev-python/pyquery/Manifest
  92. 42
      dev-python/pyquery/pyquery-1.2.11.ebuild
  93. 1
      dev-python/pyscard/Manifest
  94. 35
      dev-python/pyscard/pyscard-1.9.2.ebuild
  95. 1
      dev-ruby/sawyer/Manifest
  96. 11
      dev-ruby/sawyer/metadata.xml
  97. 22
      dev-ruby/sawyer/sawyer-0.7.0.ebuild
  98. 1
      dev-vcs/hgview/Manifest
  99. 61
      dev-vcs/hgview/hgview-1.8.2.ebuild
  100. 88
      games-roguelike/slashem/ChangeLog-2015

2
app-admin/conky/conky-1.10.1.ebuild

@ -76,6 +76,8 @@ pkg_setup() {
}
src_prepare() {
epatch "${FILESDIR}/${P}-includewlan.patch"
# Allow user patches #478482
epatch_user
}

13
app-admin/conky/files/conky-1.10.1-includewlan.patch

@ -0,0 +1,13 @@
diff -Naur a/cmake/ConkyPlatformChecks.cmake b/cmake/ConkyPlatformChecks.cmake
--- a/cmake/ConkyPlatformChecks.cmake 2015-11-18 20:47:45.000000000 +0500
+++ b/cmake/ConkyPlatformChecks.cmake 2016-01-31 20:04:58.036144590 +0500
@@ -141,7 +141,8 @@
endif(BUILD_MYSQL)
if(BUILD_WLAN)
- check_include_file(iwlib.h IWLIB_H -D_GNU_SOURCE)
+ set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
+ check_include_files(iwlib.h IWLIB_H -D_GNU_SOURCE)
if(NOT IWLIB_H)
message(FATAL_ERROR "Unable to find iwlib.h")
endif(NOT IWLIB_H)

1
app-admin/consul/consul-0.5.2-r1.ebuild

@ -47,6 +47,7 @@ IUSE="test web"
RESTRICT="test"
DEPEND="
app-arch/zip
>=dev-lang/go-1.4:=
dev-go/go-crypto:=
test? ( dev-go/go-tools )

1
app-admin/consul/consul-0.6.3.ebuild

@ -60,6 +60,7 @@ IUSE="test"
RESTRICT="test"
DEPEND="
app-arch/zip
>=dev-lang/go-1.4:=
dev-go/go-crypto:=
>=dev-go/go-tools-0_pre20160121"

1
app-admin/consul/consul-9999.ebuild

@ -21,6 +21,7 @@ IUSE="test web"
RESTRICT="test"
DEPEND="
app-arch/zip
>=dev-lang/go-1.4:=
dev-go/go-crypto:=
test? ( dev-go/go-tools )

1
app-editors/tea/Manifest

@ -1,2 +1 @@
DIST tea-41.0.0.tar.bz2 381891 SHA256 b20bfe3235a4f405bcd984adfabde2302a15cf8512e19f8b97bc43ce9911632b SHA512 aff52922be7650a23fcafe5a8106d5955bc7c68a901ad6a3982b71196ac8856939d3bc61236babbed21a749c2fc205510ef081ac35d7d33fcf2d2700ebb5cbaf WHIRLPOOL ed913f3fb424e47fbbecab445ccd9c34c9ad66befdda950fee05958459b87efad67cfea37548c5ab8456b849c860f0cd3ef59e386aaa99c01b5041dae02c1afc
DIST tea-41.1.0.tar.bz2 381370 SHA256 65ea128739802b7626a5a59de12b0e885dcef7a83f7bcd06b6d3aea830ed8717 SHA512 a46e0cdfce5c7d453c7783c59ad98b2b029847ddcc8ce0655c6e1ae45825426ac1b271ca7ad90f0219d8f796f507f6bdba0f2c764c563c8c23503b94be817eb7 WHIRLPOOL a3d00f5e42a145be2a7f3bf846832bf2a7e95e957abf4c928118be7607adb57fddfb906fbedaf7fa51665b25629beae0fe5b4db40886f42dfcf5c166e43717b5

57
app-editors/tea/tea-41.0.0.ebuild

@ -1,57 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PLOCALES="de fr ru"
inherit eutils l10n qmake-utils
DESCRIPTION="Small, lightweight Qt text editor"
HOMEPAGE="http://semiletov.org/tea/ http://tea.ourproject.org/"
SRC_URI="http://semiletov.org/${PN}/dloads/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~ia64 ~x86 ~x86-fbsd"
IUSE="aspell hunspell"
RDEPEND="
dev-qt/qtcore:4
dev-qt/qtgui:4
sys-libs/zlib
aspell? ( app-text/aspell )
hunspell? ( app-text/hunspell )
"
DEPEND="${RDEPEND}
hunspell? ( virtual/pkgconfig )
"
DOCS=( AUTHORS ChangeLog NEWS TODO )
src_configure() {
eqmake4 src.pro \
$(use aspell || echo CONFIG+=noaspell) \
$(use hunspell || echo CONFIG+=nohunspell)
}
src_install() {
dobin bin/tea
newicon icons/tea-icon-v3-01.png ${PN}.png
make_desktop_entry ${PN} 'Tea Editor'
# translations
insinto /usr/share/qt4/translations
local lang
for lang in $(l10n_get_locales); do
doins translations/${PN}_${lang}.qm
done
# docs
dohtml manuals/en.html
if use linguas_ru; then
dodoc NEWS-RU
dohtml manuals/ru.html
fi
}

1
app-editors/vim-qt/Manifest

@ -1,2 +1 @@
DIST vim-qt-20140827.tar.gz 12251966 SHA256 61eba646bf25fd3caa40943ecd91e5e7a813e11ca71d899e9e844e3f69e97a60 SHA512 0ab352a64f138e68059311908b2e4b0cbbec55c2fa889ff64f863670c3d1ee0022d26877175090d5c256eb1cdfaf7d23d385044a68e2eb8b50b1cdab2a20827f WHIRLPOOL ea397f465902796761c44e6521ab6b2660498d1e3ce4821d3265517ba1c72984b93e580549be921e156771f2ccbb86fce1c830035ad00513eb9e42c1f1ff6abd
DIST vim-qt-20150102.tar.gz 12285083 SHA256 1a3553f491e7990d4256c3c70f2d9d1804c2de5c6ac2c12845b173ff3d531157 SHA512 37434ff6cbac3dd97e3c5cb328a857afa8a8ddc4cea7b3879a06b4dd418e5b7516a68dc5c2b0c9c8b6332d316fc593b120400eab04c444c0065f3b74ae2d682d WHIRLPOOL 60d9838532b25ad8c31638e51ccf82769382dccb420c070068537ad7c15314dbc2b5fd177ed9d57674b3f593937f3c539bdd7a98e305eab40059a29ae4bf2b09

119
app-editors/vim-qt/vim-qt-20140827-r3.ebuild

@ -1,119 +0,0 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python{2_7,3_3,3_4} )
PYTHON_REQ_USE="threads"
inherit eutils fdo-mime flag-o-matic prefix python-single-r1
DESCRIPTION="Qt GUI version of the Vim text editor"
HOMEPAGE="https://bitbucket.org/equalsraf/vim-qt/wiki/Home"
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI=(
"https://bitbucket.org/equalsraf/${PN}.git"
"https://github.com/equalsraf/${PN}.git"
"git://gitorious.org/${PN}/${PN}.git"
)
KEYWORDS=""
else
SRC_URI="https://github.com/equalsraf/${PN}/archive/package-${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${PN}-package-${PV}"
fi
LICENSE="vim"
SLOT="0"
IUSE="acl cscope debug lua luajit nls perl python racket ruby"
REQUIRED_USE="luajit? ( lua )
python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND=">=app-eselect/eselect-vi-1.1.8
>=app-editors/vim-core-7.4.417[acl?]
sys-libs/ncurses
>=dev-qt/qtcore-4.7.0:4
>=dev-qt/qtgui-4.7.0:4
acl? ( kernel_linux? ( sys-apps/acl ) )
cscope? ( dev-util/cscope )
lua? ( luajit? ( dev-lang/luajit )
!luajit? ( dev-lang/lua[deprecated] ) )
nls? ( virtual/libintl )
perl? ( dev-lang/perl:= )
python? ( ${PYTHON_DEPS} )
racket? ( dev-scheme/racket )
ruby? ( || ( dev-lang/ruby:2.0 dev-lang/ruby:1.9 ) )"
DEPEND="${RDEPEND}
dev-util/ctags
sys-devel/autoconf
virtual/pkgconfig
nls? ( sys-devel/gettext )"
pkg_setup() {
export LC_COLLATE="C" # prevent locale brokenness
use python && python-single-r1_pkg_setup
}
src_prepare() {
# Read vimrc from /etc/vim/
echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h
}
src_configure() {
use debug && append-flags "-DDEBUG"
local myconf="--with-features=huge --disable-gpm --enable-multibyte"
myconf+=" $(use_enable acl)"
myconf+=" $(use_enable cscope)"
myconf+=" $(use_enable nls)"
myconf+=" $(use_enable lua luainterp)"
myconf+=" $(use_with luajit)"
myconf+=" $(use_enable perl perlinterp)"
myconf+=" $(use_enable racket mzschemeinterp)"
myconf+=" $(use_enable ruby rubyinterp)"
if ! use cscope ; then
sed -i -e '/# define FEAT_CSCOPE/d' src/feature.h || die 'sed failed'
fi
# keep prefix env contained within the EPREFIX
use prefix && myconf+=" --without-local-dir"
if use python ; then
if [[ ${EPYTHON} == python3* ]] ; then
myconf+=" --enable-python3interp"
export vi_cv_path_python3="${PYTHON}"
else
myconf+=" --enable-pythoninterp"
export vi_cv_path_python="${PYTHON}"
fi
else
myconf+=" --disable-pythoninterp --disable-python3interp"
fi
econf ${myconf} --enable-gui=qt --with-vim-name=qvim --with-modified-by=Gentoo-${PVR}
}
src_install() {
dobin src/qvim
dosym qvim /usr/bin/qvimdiff
dodir /usr/share/man/man1
echo ".so vim.1" > "${ED}"/usr/share/man/man1/qvim.1
echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/qvimdiff.1
# track https://bitbucket.org/equalsraf/vim-qt/issue/93/include-desktop-file-in-source
# for inclusion of desktop file
newmenu "${FILESDIR}"/vim-qt.desktop vim-qt.desktop
doicon -s 64 src/qt/icons/vim-qt.png
}
pkg_postinst() {
fdo-mime_mime_database_update
}
pkg_postrm() {
fdo-mime_mime_database_update
}

4
app-editors/vim-qt/vim-qt-20150102-r1.ebuild

@ -1,4 +1,4 @@
# Copyright 1999-2015 Gentoo Foundation
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
@ -45,7 +45,7 @@ RDEPEND="
perl? ( dev-lang/perl:= )
python? ( ${PYTHON_DEPS} )
racket? ( dev-scheme/racket )
ruby? ( || ( dev-lang/ruby:2.0 dev-lang/ruby:1.9 ) )"
ruby? ( dev-lang/ruby:2.0 )"
DEPEND="${RDEPEND}
dev-util/ctags
sys-devel/autoconf

3
app-emulation/qemu/metadata.xml

@ -13,6 +13,9 @@
<flag name="fdt">Enables firmware device tree support</flag>
<flag name="glusterfs">Enables GlusterFS cluster fileystem via
<pkg>sys-cluster/glusterfs</pkg></flag>
<flag name="gnutls">Enable TLS support for the VNC console server.
For 1.4 and newer this also enables WebSocket support.
For 2.0 through 2.3 also enables disk quorum support.</flag>
<flag name="gtk2">Use gtk-2 instead of gtk-3</flag>
<flag name="iscsi">Enable direct iSCSI support via
<pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux

2
app-emulation/xen-tools/Manifest

@ -14,4 +14,6 @@ DIST xen-qemu-patches-0.tar.gz 3224 SHA256 ff1ac02a6d91e4abdbe069e1bb75d0b798def
DIST xen-security-patches-5.tar.gz 8716 SHA256 afd114f2cb1b623ac1709d75c771006f91b5b2a0a0695f4da3d6aa6f6b340d9f SHA512 f2276759cb418e252052701f5e41e626e1d232098bd7e393e7e58286d356ef33f249c2f9d7b5b1219279de7c4c66832f0d4f761d36bc51e7c10cea973dd9882e WHIRLPOOL 18cb29a0fde10f1bac698c577713db1307c02408778b5d128a4f017ae8be6fba893feb9b8f09fe2d8164dc761d136190d1dbee8a3eb4caa35d8bf976a498d405
DIST xen-security-patches-6.tar.gz 8308 SHA256 b0dc1df6b27073a83b12a17a04a01e74af8c19a1c96d9dda580bb738eaab25f3 SHA512 b9155eef3f18e47288a6a6bb570a073d4c84449fe11fbac4c35cceaa4f7c06624597f63a8768bddd735c345b8c430aeee18b71f43e9b188de3cfa0cbf608dc0a WHIRLPOOL 9933ed07a2419170070a9eedfda200ec5ebef67b6b98c1b435793008c126347cdc8c0ef9ff2cb4fe0b7333ff51211545a3fe2ff726ca7c22d46f231d6d1e82aa
DIST xen-security-patches-7.tar.xz 22604 SHA256 e831c71f830316f452eb8645a5e7ca497264587aa8b353945fd9535f485166e3 SHA512 051769f4118f5c6d5d961759f547526d3fb0e86a4c1dee265a7f0224f10a88e2217b5b5fcf8dbfc706a1ec3c8d1632ab688d3f70dfd89d830261dc7391dd41c2 WHIRLPOOL 8e6dfb4e1700a07e3e3207b67afaddc5d6aa6fd84db9b3e76bd9ff54f682740fed01070e5860bb5378d50903d5777b55dff88eb3444d45bdd63dba657889393d
DIST xen-security-patches-8.tar.gz 9416 SHA256 3c0e6e8428f1890c8dda72ac94244fa3d6611b3612ef59ffed29b59481806a12 SHA512 f5ee325a8b25079ea256cb5a2e039e6738dee999be6d9d91ade875663c36f72a086bcb0bd1bb243483afb921da401c5d7453fea7405323fdaf8cf6e06a221049 WHIRLPOOL c30f14bb8a1a3ad22a962d4050027fa89a373f742c3eb7a161e1490beb186c6221f24247cd84b07e7f266c38aae6ef386f2e4db29a4b43cceaaaa54b644bb4f1
DIST xen-security-patches-9.tar.gz 9793 SHA256 2167d7bc2a631cf13d5b49c9577dbc8d128517e8ecbf90ef85c38f52ab3187aa SHA512 42f4997f35cc06333584a9a3c65366493094b60a6c67928b6165f3fb7d35d3a8f9dc0c3eadd4522de0d99bcc8511afba1d5e543396399b37983eb547abedca44 WHIRLPOOL 8abb68b4ac10fbc2b590c8a29cd2474d5392d3958542dad7f21ba4ad51c7541bb1686ed2629323e214c3e72b0de7212f25a4681f653d4179404c9f4c53e3d83a
DIST xen-upstream-patches-0.tar.gz 2297 SHA256 bf21272ad029391d30bf31896efcadc75267538f6c7de5d239453f19659d58ee SHA512 3f5d60aaebd181bddab4dd02e0064de2f75672f44a687a7331fa40e81d56763fea84504081a449d11403b21ad0ba2dac075f0b1796809ef8d16e244f6be99e3d WHIRLPOOL 4ebe79c8f2ea1c45e88e59941e477ed5639dbca3fe95c9a67e07afb0f4b6fb8b7fea8e58422d7c8f906299e4f37c14b4db15200997e5a92b647df98fa93e10c7

475
app-emulation/xen-tools/xen-tools-4.5.2-r5.ebuild

@ -0,0 +1,475 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
MY_PV=${PV/_/-}
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='xml,threads'
if [[ $PV == *9999 ]]; then
KEYWORDS=""
REPO="xen-unstable.hg"
EHG_REPO_URI="http://xenbits.xensource.com/${REPO}"
S="${WORKDIR}/${REPO}"
live_eclass="mercurial"
else
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
UPSTREAM_VER=
SECURITY_VER=7
# vars set to reflect https://dev.gentoo.org/~idella4/
SEC_VER=8
QEMU_VER=0
# xen-tools's gentoo patches tarball
GENTOO_VER=4
# xen-tools's gentoo patches version which apply to this specific ebuild
GENTOO_GPV=0
# xen-tools ovmf's patches
OVMF_VER=1
SEABIOS_VER=1.7.5
OVMF_PV=20150629
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SEC_VER}.tar.gz
https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-qemu-patches-${QEMU_VER}.tar.gz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz"
[[ -n ${OVMF_VER} ]] && \
OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
SRC_URI="http://bits.xensource.com/oss-xen/release/${MY_PV}/xen-${MY_PV}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/seabios-${SEABIOS_VER}.tar.gz
https://dev.gentoo.org/~dlan/distfiles/seabios-${SEABIOS_VER}.tar.gz
ovmf? ( https://dev.gentoo.org/~dlan/distfiles/ovmf-${OVMF_PV}.tar.bz2
${OVMF_PATCHSET_URI} )
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
S="${WORKDIR}/xen-${MY_PV}"
fi
inherit bash-completion-r1 eutils flag-o-matic multilib python-single-r1 toolchain-funcs udev ${live_eclass}
DESCRIPTION="Xend daemon and tools"
HOMEPAGE="http://xen.org/"
DOCS=( README docs/README.xen-bugtool )
LICENSE="GPL-2"
SLOT="0"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
IUSE="api custom-cflags debug doc flask hvm qemu ocaml ovmf +pam python pygrub screen static-libs system-qemu system-seabios"
REQUIRED_USE="hvm? ( || ( qemu system-qemu ) )
${PYTHON_REQUIRED_USE}
pygrub? ( python )
ovmf? ( hvm )
qemu? ( !system-qemu )"
COMMON_DEPEND="
dev-libs/lzo:2
dev-libs/glib:2
dev-libs/yajl
dev-libs/libaio
dev-libs/libgcrypt:0
sys-libs/zlib
"
DEPEND="${COMMON_DEPEND}
dev-python/lxml[${PYTHON_USEDEP}]
x86? ( sys-devel/dev86
sys-power/iasl )
pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
hvm? ( media-libs/libsdl )
${PYTHON_DEPS}
api? ( dev-libs/libxml2
net-misc/curl )
pygrub? ( $(python_gen_impl_dep ncurses) )
ovmf? ( $(python_gen_impl_dep sqlite) )
!amd64? ( >=sys-apps/dtc-1.4.0 )
amd64? ( sys-devel/bin86
system-seabios? ( sys-firmware/seabios )
sys-firmware/ipxe
sys-devel/dev86
sys-power/iasl )
dev-lang/perl
app-misc/pax-utils
doc? (
app-doc/doxygen
dev-python/markdown[${PYTHON_USEDEP}]
dev-tex/latex2html[png,gif]
media-gfx/graphviz
dev-tex/xcolor
media-gfx/transfig
dev-texlive/texlive-latexextra
virtual/latex-base
dev-tex/latexmk
dev-texlive/texlive-latex
dev-texlive/texlive-pictures
dev-texlive/texlive-latexrecommended
)
hvm? ( x11-proto/xproto
!net-libs/libiscsi )
qemu? ( x11-libs/pixman )
system-qemu? ( app-emulation/qemu[xen] )
ocaml? ( dev-ml/findlib
>=dev-lang/ocaml-4 )"
RDEPEND="${COMMON_DEPEND}
sys-apps/iproute2
net-misc/bridge-utils
screen? (
app-misc/screen
app-admin/logrotate
)
virtual/udev"
# hvmloader is used to bootstrap a fully virtualized kernel
# Approved by QA team in bug #144032
QA_WX_LOAD="usr/lib/xen/boot/hvmloader
usr/share/qemu-xen/qemu/s390-ccw.img"
RESTRICT="test"
pkg_setup() {
python-single-r1_pkg_setup
export "CONFIG_LOMOUNT=y"
#bug 522642, disable compile tools/tests
export "CONFIG_TESTS=n"
if has_version dev-libs/libgcrypt:0; then
export "CONFIG_GCRYPT=y"
fi
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
if use x86 && use amd64; then
die "Confusion! Both x86 and amd64 are set in your use flags!"
elif use x86; then
export XEN_TARGET_ARCH="x86_32"
elif use amd64 ; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
}
src_prepare() {
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
einfo "Try to apply Xen Upstream patcheset"
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
epatch "${WORKDIR}"/patches-upstream
fi
# Security patchset
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patcheset"
source "${WORKDIR}"/patches-security/${PV}.conf
# apply main xen patches
# Two parallel systems, both work
# Over time they may concdense into one. This will suffice for now
EPATCH_SUFFIX="patch"
EPATCH_FORCE="yes"
for i in ${XEN_SECURITY_MAIN}; do
epatch "${WORKDIR}"/patches-security/xen/$i
done
for i in "${WORKDIR}"/xen-sec/xsa*.patch; do
epatch $i
done
# apply qemu-traditional patches
pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
for i in ${XEN_SECURITY_QEMUT}; do
epatch "${WORKDIR}"/patches-security/qemut/$i
done
for i in "${WORKDIR}"/qemu-patches/qemut/xsa*.patch; do
epatch $i
done
popd > /dev/null
# apply qemu-xen/upstream patches
pushd "${S}"/tools/qemu-xen/ > /dev/null
for i in ${XEN_SECURITY_QEMUU}; do
epatch "${WORKDIR}"/patches-security/qemuu/$i
done
for i in "${WORKDIR}"/qemu-patches/qemuu/xsa*.patch; do
epatch $i
done
popd > /dev/null
fi
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
pushd tools/firmware/ > /dev/null
ln -s seabios-dir-remote seabios-dir || die
popd > /dev/null
# Gentoo's patchset
if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
einfo "Try to apply Gentoo specific patch set"
source "${FILESDIR}"/gentoo-patches.conf
_gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
for i in ${!_gpv}; do
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
epatch "${WORKDIR}"/patches-gentoo/$i
done
fi
# Ovmf's patchset
if use ovmf; then
if [[ -n ${OVMF_VER} ]];then
einfo "Try to apply Ovmf patch set"
pushd "${WORKDIR}"/ovmf-*/ > /dev/null
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
epatch "${WORKDIR}"/patches-ovmf
popd > /dev/null
fi
mv ../ovmf-${OVMF_PV} tools/firmware/ovmf-dir-remote || die
fi
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
# Fix texi2html build error with new texi2html, qemu.doc.html
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
-i tools/firmware/Makefile || die
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default cflags
find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
-exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} + || die "failed to re-set custom-cflags"
fi
if ! use pygrub; then
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
fi
if ! use python; then
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
fi
if ! use hvm; then
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
# Bug 351648
elif ! use x86 && ! has x86 $(get_all_abis); then
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
export CPATH="${WORKDIR}"/extra-headers
fi
# Don't bother with qemu, only needed for fully virtualised guests
if ! use qemu; then
sed -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i Makefile || die
fi
# Reset bash completion dir; Bug 472438
sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
-i Config.mk || die
sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
# xencommons, Bug #492332, sed lighter weight than patching
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
-i tools/hotplug/Linux/init.d/xencommons.in || die
# respect multilib, usr/lib/libcacard.so.0.0.0
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
-i tools/qemu-xen/configure || die
#bug 518136, don't build 32bit exactuable for nomultilib profile
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
fi
# use /var instead of /var/lib, consistat with previous ebuild
sed -i -e "/XEN_LOCK_DIR=/s/\$localstatedir/\/var/g" \
m4/paths.m4 configure tools/configure || die
# use /run instead of /var/run
sed -i -e "/XEN_RUN_DIR=/s/\$localstatedir//g" \
m4/paths.m4 configure tools/configure || die
# uncomment lines in xl.conf
sed -e 's:^#autoballoon=:autoballoon=:' \
-e 's:^#lockfile=:lockfile=:' \
-e 's:^#vif.default.script=:vif.default.script=:' \
-i tools/examples/xl.conf || die
epatch_user
}
src_configure() {
local myconf="--prefix=${PREFIX}/usr \
--libdir=${PREFIX}/usr/$(get_libdir) \
--libexecdir=${PREFIX}/usr/libexec \
--disable-werror \
--disable-xen \
--enable-tools \
--enable-docs \
$(use_with system-qemu) \
$(use_enable pam) \
$(use_enable api xenapi) \
$(use_enable ovmf) \
$(use_enable ocaml ocamltools) \
"
use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
use qemu || myconf+=" --with-system-qemu"
use amd64 && myconf+=" --enable-qemu-traditional"
econf ${myconf}
}
src_compile() {
export VARTEXFONTS="${T}/fonts"
local myopt
use debug && myopt="${myopt} debug=y"
use custom-cflags || unset CFLAGS
if test-flag-CC -fno-strict-overflow; then
append-flags -fno-strict-overflow
fi
unset LDFLAGS
unset CFLAGS
emake V=1 CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" -C tools ${myopt}
use doc && emake -C docs txt html
emake -C docs man-pages
}
src_install() {
# Override auto-detection in the build system, bug #382573
export INITD_DIR=/tmp/init.d
export CONFIG_LEAF_DIR=../tmp/default
# Let the build system compile installed Python modules.
local PYTHONDONTWRITEBYTECODE
export PYTHONDONTWRITEBYTECODE
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
XEN_PYTHON_NATIVE_INSTALL=y install-tools
# Fix the remaining Python shebangs.
python_fix_shebang "${D}"
# Remove RedHat-specific stuff
rm -rf "${D}"tmp || die
if use doc; then
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
dohtml -r docs/
docinto pdf
dodoc ${DOCS[@]}
[ -d "${D}"/usr/share/doc/xen ] && mv "${D}"/usr/share/doc/xen/* "${D}"/usr/share/doc/${PF}/html
fi
rm -rf "${D}"/usr/share/doc/xen/
doman docs/man?/*
newconfd "${FILESDIR}"/xendomains.confd xendomains
newconfd "${FILESDIR}"/xenstored.confd xenstored
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
newinitd "${FILESDIR}"/xenstored.initd xenstored
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
newinitd "${FILESDIR}"/xencommons.initd xencommons
newconfd "${FILESDIR}"/xencommons.confd xencommons
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
if use screen; then
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
keepdir /var/log/xen-consoles
fi
# For -static-libs wrt Bug 384355
if ! use static-libs; then
rm -f "${D}"usr/$(get_libdir)/*.a "${D}"usr/$(get_libdir)/ocaml/*/*.a
fi
# for xendomains
keepdir /etc/xen/auto
# Temp QA workaround
dodir "$(get_udevdir)"
mv "${D}"/etc/udev/* "${D}/$(get_udevdir)"
rm -rf "${D}"/etc/udev
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
}
pkg_postinst() {
elog "Official Xen Guide and the offical wiki page:"
elog "https://wiki.gentoo.org/wiki/Xen"
elog "http://wiki.xen.org/wiki/Main_Page"
elog ""
elog "Recommended to utilise the xencommons script to config sytem At boot"
elog "Add by use of rc-update on completion of the install"
# TODO: we need to have the current Python slot here.
if ! has_version "dev-lang/python[ncurses]"; then
echo
ewarn "NB: Your dev-lang/python is built without USE=ncurses."
ewarn "Please rebuild python with USE=ncurses to make use of xenmon.py."
fi
if has_version "sys-apps/iproute2[minimal]"; then
echo
ewarn "Your sys-apps/iproute2 is built with USE=minimal. Networking"
ewarn "will not work until you rebuild iproute2 without USE=minimal."
fi
if ! use hvm; then
echo
elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
elog "support enable the hvm use flag."
elog "An x86 or amd64 system is required to build HVM support."
fi
if use qemu; then
elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
fi
if grep -qsF XENSV= "${ROOT}/etc/conf.d/xend"; then
echo
elog "xensv is broken upstream (Gentoo bug #142011)."
elog "Please remove '${ROOT%/}/etc/conf.d/xend', as it is no longer needed."
fi
}

469
app-emulation/xen-tools/xen-tools-4.6.0-r9.ebuild

@ -0,0 +1,469 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE='ncurses,xml,threads'
inherit eutils bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs versionator
MY_PV=${PV/_/-}
MAJOR_V="$(get_version_component_range 1-2)"
if [[ $PV == *9999 ]]; then
inherit git-r3
KEYWORDS=""
REPO="xen.git"
EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
S="${WORKDIR}/${REPO}"
else
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
UPSTREAM_VER=0
SECURITY_VER=7
# vars set to reflect https://dev.gentoo.org/~idella4/
# first instance of UPS_VER (usptream ver)
UPS_VER=0
SEC_VER=9
QEMU_VER=0
# xen-tools's gentoo patches tarball
GENTOO_VER=4
# xen-tools's gentoo patches version which apply to this specific ebuild
GENTOO_GPV=0
# xen-tools ovmf's patches
OVMF_VER=1
SEABIOS_VER=1.8.2
OVMF_PV=20150629
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz
https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-upstream-patches-${UPS_VER}.tar.gz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SEC_VER}.tar.gz
https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-qemu-patches-${QEMU_VER}.tar.gz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz"
[[ -n ${OVMF_VER} ]] && \
OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
SRC_URI="http://bits.xensource.com/oss-xen/release/${MY_PV}/xen-${MY_PV}.tar.gz
http://code.coreboot.org/p/seabios/downloads/get/seabios-${SEABIOS_VER}.tar.gz
https://dev.gentoo.org/~dlan/distfiles/seabios-${SEABIOS_VER}.tar.gz
ovmf? ( https://dev.gentoo.org/~dlan/distfiles/ovmf-${OVMF_PV}.tar.bz2
${OVMF_PATCHSET_URI} )
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
S="${WORKDIR}/xen-${MY_PV}"
fi
DESCRIPTION="Xen tools including QEMU and xl"
HOMEPAGE="http://xen.org/"
DOCS=( README docs/README.xen-bugtool )
LICENSE="GPL-2"
SLOT="0/${MAJOR_V}"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
IUSE="api custom-cflags debug doc flask hvm qemu ocaml ovmf +pam +qemu-traditional python pygrub screen sdl static-libs system-qemu system-seabios"
REQUIRED_USE="hvm? ( || ( qemu system-qemu ) )
${PYTHON_REQUIRED_USE}
pygrub? ( python )
ovmf? ( hvm )
qemu? ( !system-qemu )"
COMMON_DEPEND="
dev-libs/lzo:2
dev-libs/glib:2
dev-libs/yajl
dev-libs/libaio
dev-libs/libgcrypt:0
sys-libs/zlib
"
DEPEND="${COMMON_DEPEND}
dev-python/lxml[${PYTHON_USEDEP}]
x86? ( sys-devel/dev86
sys-power/iasl )
pam? ( dev-python/pypam[${PYTHON_USEDEP}] )
${PYTHON_DEPS}
api? ( dev-libs/libxml2
net-misc/curl )
ovmf? ( $(python_gen_impl_dep sqlite) )
!amd64? ( >=sys-apps/dtc-1.4.0 )
amd64? ( sys-devel/bin86
system-seabios? ( sys-firmware/seabios )
sys-firmware/ipxe
sys-devel/dev86
sys-power/iasl )
dev-lang/perl
app-misc/pax-utils
doc? (
app-doc/doxygen
dev-python/markdown[${PYTHON_USEDEP}]
dev-tex/latex2html[png,gif]
media-gfx/graphviz
dev-tex/xcolor
media-gfx/transfig
dev-texlive/texlive-latexextra
virtual/latex-base
dev-tex/latexmk
dev-texlive/texlive-latex
dev-texlive/texlive-pictures
dev-texlive/texlive-latexrecommended
)
hvm? ( x11-proto/xproto
!net-libs/libiscsi )
qemu? (
x11-libs/pixman
sdl? ( media-libs/libsdl[X] )
)
system-qemu? ( app-emulation/qemu[xen] )
ocaml? ( dev-ml/findlib
>=dev-lang/ocaml-4 )"
RDEPEND="${COMMON_DEPEND}
sys-apps/iproute2[-minimal]
net-misc/bridge-utils
screen? (
app-misc/screen
app-admin/logrotate
)"
# hvmloader is used to bootstrap a fully virtualized kernel
# Approved by QA team in bug #144032
QA_WX_LOAD="usr/lib/xen/boot/hvmloader
usr/share/qemu-xen/qemu/s390-ccw.img"
RESTRICT="test"
pkg_setup() {
python-single-r1_pkg_setup
export "CONFIG_LOMOUNT=y"
#bug 522642, disable compile tools/tests
export "CONFIG_TESTS=n"
if has_version dev-libs/libgcrypt:0; then
export "CONFIG_GCRYPT=y"
fi
if [[ -z ${XEN_TARGET_ARCH} ]] ; then
if use x86 && use amd64; then
die "Confusion! Both x86 and amd64 are set in your use flags!"
elif use x86; then
export XEN_TARGET_ARCH="x86_32"
elif use amd64 ; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
}
src_prepare() {
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
einfo "Try to apply Xen Upstream patch set"
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
epatch "${WORKDIR}"/patches-upstream \
"${WORKDIR}"/libexec.patch
fi
# Security patchset
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patch set"
source "${WORKDIR}"/patches-security/${PV}.conf
# apply main xen patches
# Two parallel systems, both work side by side
# Over time they may concdense into one. This will suffice for now
EPATCH_SUFFIX="patch"
EPATCH_FORCE="yes"
for i in ${XEN_SECURITY_MAIN}; do
epatch "${WORKDIR}"/patches-security/xen/$i
done
for i in "${WORKDIR}"/xen-sec/xsa*.patch; do
epatch $i
done
# apply qemu-traditional patches
pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
for i in ${XEN_SECURITY_QEMUT}; do
epatch "${WORKDIR}"/patches-security/qemut/$i
done
for i in "${WORKDIR}"/qemu-patches/qemut/xsa*.patch; do
epatch $i
done
popd > /dev/null
# apply qemu-xen/upstream patches
pushd "${S}"/tools/qemu-xen/ > /dev/null
for i in ${XEN_SECURITY_QEMUU}; do
epatch "${WORKDIR}"/patches-security/qemuu/$i
done
for i in "${WORKDIR}"/qemu-patches/qemuu/xsa*.patch; do
epatch $i
done
popd > /dev/null
fi
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
pushd tools/firmware/ > /dev/null
ln -s seabios-dir-remote seabios-dir || die
popd > /dev/null
# Gentoo's patchset
if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
einfo "Try to apply Gentoo specific patch set"
source "${FILESDIR}"/gentoo-patches.conf
_gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
for i in ${!_gpv}; do
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
epatch "${WORKDIR}"/patches-gentoo/$i
done
fi
# Ovmf's patchset
if [[ -n ${OVMF_VER} ]] && use ovmf; then
einfo "Try to apply Ovmf patch set"
pushd "${WORKDIR}"/ovmf-*/ > /dev/null
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
epatch "${WORKDIR}"/patches-ovmf
popd > /dev/null
mv ../ovmf-${OVMF_PV} tools/firmware/ovmf-dir-remote || die
fi
mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
# Fix texi2html build error with new texi2html, qemu.doc.html
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
-i tools/firmware/Makefile || die
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default cflags
find "${S}" \( -name Makefile -o -name Rules.mk -o -name Config.mk \) \
-exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} + || die "failed to re-set custom-cflags"
else
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
unset CPPFLAGS
fi
if ! use pygrub; then
sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
fi
if ! use python; then
sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
fi
if ! use hvm; then
sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
# Bug 351648
elif ! use x86 && ! has x86 $(get_all_abis); then
mkdir -p "${WORKDIR}"/extra-headers/gnu || die
touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
export CPATH="${WORKDIR}"/extra-headers
fi
if use qemu; then
if use sdl; then
sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
tools/Makefile || die
else
sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
tools/qemu-xen-traditional/xen-setup || die
sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
tools/Makefile || die
fi
else
# Don't bother with qemu, only needed for fully virtualised guests
sed -e "s:install-tools\: tools/qemu-xen-traditional-dir:install-tools\: :g" -i Makefile || die
fi
# Reset bash completion dir; Bug 472438
sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
-i Config.mk || die
sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
# xencommons, Bug #492332, sed lighter weight than patching
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
-i tools/hotplug/Linux/init.d/xencommons.in || die
# respect multilib, usr/lib/libcacard.so.0.0.0
sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
-i tools/qemu-xen/configure || die
#bug 518136, don't build 32bit exactuable for nomultilib profile
if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
fi
# use /var instead of /var/lib, consistat with previous ebuild
sed -i -e "/XEN_LOCK_DIR=/s/\$localstatedir/\/var/g" \
m4/paths.m4 configure tools/configure || die
# use /run instead of /var/run
sed -i -e "/XEN_RUN_DIR=/s/\$localstatedir//g" \
m4/paths.m4 configure tools/configure || die
# uncomment lines in xl.conf
sed -e 's:^#autoballoon=:autoballoon=:' \
-e 's:^#lockfile=:lockfile=:' \
-e 's:^#vif.default.script=:vif.default.script=:' \
-i tools/examples/xl.conf || die
epatch_user
}
src_configure() {
local myconf="--prefix=${PREFIX}/usr \
--libdir=${PREFIX}/usr/$(get_libdir) \
--libexecdir=${PREFIX}/usr/libexec \
--disable-werror \
--disable-xen \
--enable-tools \
--enable-docs \
$(use_with system-qemu) \
$(use_enable pam) \
$(use_enable api xenapi) \
$(use_enable ovmf) \
$(use_enable ocaml ocamltools) \
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \
"
use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
use qemu || myconf+=" --with-system-qemu"
use amd64 && myconf+=" $(use_enable qemu-traditional)"
econf ${myconf}
}
src_compile() {
export VARTEXFONTS="${T}/fonts"
local myopt
use debug && myopt="${myopt} debug=y"
if test-flag-CC -fno-strict-overflow; then
append-flags -fno-strict-overflow
fi
emake V=1 CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" -C tools ${myopt}
use doc && emake -C docs txt html
emake -C docs man-pages
}
src_install() {
# Override auto-detection in the build system, bug #382573
export INITD_DIR=/tmp/init.d
export CONFIG_LEAF_DIR=../tmp/default
# Let the build system compile installed Python modules.
local PYTHONDONTWRITEBYTECODE
export PYTHONDONTWRITEBYTECODE
emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
XEN_PYTHON_NATIVE_INSTALL=y install-tools
# Fix the remaining Python shebangs.
python_fix_shebang "${D}"
# Remove RedHat-specific stuff
rm -rf "${D}"tmp || die
if use doc; then
emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
dohtml -r docs/
docinto pdf
dodoc ${DOCS[@]}
[ -d "${D}"/usr/share/doc/xen ] && mv "${D}"/usr/share/doc/xen/* "${D}"/usr/share/doc/${PF}/html
fi
rm -rf "${D}"/usr/share/doc/xen/
doman docs/man?/*
newconfd "${FILESDIR}"/xendomains.confd xendomains
newconfd "${FILESDIR}"/xenstored.confd xenstored
newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
newinitd "${FILESDIR}"/xenstored.initd xenstored
newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
newinitd "${FILESDIR}"/xencommons.initd xencommons
newconfd "${FILESDIR}"/xencommons.confd xencommons
newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
if use screen; then
cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
keepdir /var/log/xen-consoles
fi
# For -static-libs wrt Bug 384355
if ! use static-libs; then
rm -f "${D}"usr/$(get_libdir)/*.a "${D}"usr/$(get_libdir)/ocaml/*/*.a
fi
# for xendomains
keepdir /etc/xen/auto
# Remove files failing QA AFTER emake installs them, avoiding seeking absent files
find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
-o -name openbios-ppc -o -name palcode-clipper \) -delete || die
}
pkg_postinst() {
elog "Official Xen Guide and the offical wiki page:"
elog "https://wiki.gentoo.org/wiki/Xen"
elog "http://wiki.xen.org/wiki/Main_Page"
elog ""
elog "Recommended to utilise the xencommons script to config sytem At boot"
elog "Add by use of rc-update on completion of the install"
if ! use hvm; then
echo
elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
elog "support enable the hvm use flag."
elog "An x86 or amd64 system is required to build HVM support."
fi
if use qemu; then
elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
fi
}

2
app-emulation/xen/Manifest

@ -5,4 +5,6 @@ DIST xen-4.6.1.tar.gz 19693042 SHA256 44cc2fccba1e147ef4c8da0584ce0f24189c8743de
DIST xen-security-patches-0.tar.xz 5944 SHA256 c0456793064185f0781668264a09a2412a25e2ff8c4ce0d332204e37b94d7e96 SHA512 de812e66563e608548b220aa00c8fd71973af748a00cea79959f46a5b6893a38248d2ea455026af43f47e3f5e566d08b5a6f3d18f22e940d75d2a2ca76cec3d3 WHIRLPOOL 3e18d32798bdfe584ee8d102963090b569ec3660fd5723d8c608091e5c7d935c1edced5e258d92bf51fe06975455a3ae33dfedd01702c6076aedf97ea61f2d1b
DIST xen-security-patches-5.tar.gz 8716 SHA256 afd114f2cb1b623ac1709d75c771006f91b5b2a0a0695f4da3d6aa6f6b340d9f SHA512 f2276759cb418e252052701f5e41e626e1d232098bd7e393e7e58286d356ef33f249c2f9d7b5b1219279de7c4c66832f0d4f761d36bc51e7c10cea973dd9882e WHIRLPOOL 18cb29a0fde10f1bac698c577713db1307c02408778b5d128a4f017ae8be6fba893feb9b8f09fe2d8164dc761d136190d1dbee8a3eb4caa35d8bf976a498d405
DIST xen-security-patches-6.tar.gz 8308 SHA256 b0dc1df6b27073a83b12a17a04a01e74af8c19a1c96d9dda580bb738eaab25f3 SHA512 b9155eef3f18e47288a6a6bb570a073d4c84449fe11fbac4c35cceaa4f7c06624597f63a8768bddd735c345b8c430aeee18b71f43e9b188de3cfa0cbf608dc0a WHIRLPOOL 9933ed07a2419170070a9eedfda200ec5ebef67b6b98c1b435793008c126347cdc8c0ef9ff2cb4fe0b7333ff51211545a3fe2ff726ca7c22d46f231d6d1e82aa
DIST xen-security-patches-8.tar.gz 9416 SHA256 3c0e6e8428f1890c8dda72ac94244fa3d6611b3612ef59ffed29b59481806a12 SHA512 f5ee325a8b25079ea256cb5a2e039e6738dee999be6d9d91ade875663c36f72a086bcb0bd1bb243483afb921da401c5d7453fea7405323fdaf8cf6e06a221049 WHIRLPOOL c30f14bb8a1a3ad22a962d4050027fa89a373f742c3eb7a161e1490beb186c6221f24247cd84b07e7f266c38aae6ef386f2e4db29a4b43cceaaaa54b644bb4f1
DIST xen-security-patches-9.tar.gz 9793 SHA256 2167d7bc2a631cf13d5b49c9577dbc8d128517e8ecbf90ef85c38f52ab3187aa SHA512 42f4997f35cc06333584a9a3c65366493094b60a6c67928b6165f3fb7d35d3a8f9dc0c3eadd4522de0d99bcc8511afba1d5e543396399b37983eb547abedca44 WHIRLPOOL 8abb68b4ac10fbc2b590c8a29cd2474d5392d3958542dad7f21ba4ad51c7541bb1686ed2629323e214c3e72b0de7212f25a4681f653d4179404c9f4c53e3d83a
DIST xen-upstream-patches-0.tar.gz 2297 SHA256 bf21272ad029391d30bf31896efcadc75267538f6c7de5d239453f19659d58ee SHA512 3f5d60aaebd181bddab4dd02e0064de2f75672f44a687a7331fa40e81d56763fea84504081a449d11403b21ad0ba2dac075f0b1796809ef8d16e244f6be99e3d WHIRLPOOL 4ebe79c8f2ea1c45e88e59941e477ed5639dbca3fe95c9a67e07afb0f4b6fb8b7fea8e58422d7c8f906299e4f37c14b4db15200997e5a92b647df98fa93e10c7

192
app-emulation/xen/xen-4.5.2-r5.ebuild

@ -0,0 +1,192 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
inherit eutils multilib mount-boot flag-o-matic python-any-r1 toolchain-funcs
MY_PV=${PV/_/-}
MY_P=${PN}-${PV/_/-}
if [[ $PV == *9999 ]]; then
inherit git-r3
KEYWORDS=""
EGIT_REPO_URI="git://xenbits.xen.org/${PN}.git"
SRC_URI=""
else
KEYWORDS="~amd64 ~arm ~arm64 -x86"
UPSTREAM_VER=
SECURITY_VER=0
# var set to reflect https://dev.gentoo.org/~idella4/
SEC_VER=8
GENTOO_VER=
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SEC_VER}.tar.gz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
SRC_URI="http://bits.xensource.com/oss-xen/release/${MY_PV}/${MY_P}.tar.gz
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
fi
DESCRIPTION="The Xen virtual machine monitor"
HOMEPAGE="http://xen.org/"
LICENSE="GPL-2"
SLOT="0"
IUSE="custom-cflags debug efi flask xsm"
DEPEND="${PYTHON_DEPS}
efi? ( >=sys-devel/binutils-2.22[multitarget] )
!efi? ( >=sys-devel/binutils-2.22[-multitarget] )"
RDEPEND=""
PDEPEND="~app-emulation/xen-tools-${PV}"
RESTRICT="test"
# Approved by QA team in bug #144032
QA_WX_LOAD="boot/xen-syms-${PV}"
REQUIRED_USE="flask? ( xsm )
arm? ( debug )"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
python-any-r1_pkg_setup
if [[ -z ${XEN_TARGET_ARCH} ]]; then
if use x86 && use amd64; then
die "Confusion! Both x86 and amd64 are set in your use flags!"
elif use x86; then
export XEN_TARGET_ARCH="x86_32"
elif use amd64; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
if use flask ; then
export "XSM_ENABLE=y"
export "FLASK_ENABLE=y"
elif use xsm ; then
export "XSM_ENABLE=y"
fi
}
src_prepare() {
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
epatch "${WORKDIR}"/patches-upstream
fi
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patcheset"
# apply main xen patches
# Two parallel systems, both work side by side
# Over time they may concdense into one. This will suffice for now
EPATCH_SUFFIX="patch"
EPATCH_FORCE="yes"
for i in ${XEN_SECURITY_MAIN}; do
epatch "${WORKDIR}"/patches-security/xen/$i
done
for i in "${WORKDIR}"/xen-sec/xsa*.patch; do
epatch $i
done
fi
# Gentoo's patchset
if [[ -n ${GENTOO_VER} ]]; then
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
epatch "${WORKDIR}"/patches-gentoo
fi
# Drop .config
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
if use efi; then
epatch "${FILESDIR}"/${PN}-4.5-efi.patch
export EFI_VENDOR="gentoo"
export EFI_MOUNTPOINT="boot"
fi
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default custom-cflags
find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} \; || die "failed to re-set custom-cflags"
fi
# remove -Werror for gcc-4.6's sake
find "${S}" -name 'Makefile*' -o -name '*.mk' -o -name 'common.make' | \
xargs sed -i 's/ *-Werror */ /'
# not strictly necessary to fix this
sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
epatch_user
}
src_configure() {
use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
use debug && myopt="${myopt} debug=y"
if use custom-cflags; then
filter-flags -fPIE -fstack-protector
replace-flags -O3 -O2
else
unset CFLAGS
fi
}
src_compile() {
# Send raw LDFLAGS so that --as-needed works
emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
}
src_install() {
local myopt
use debug && myopt="${myopt} debug=y"
# The 'make install' doesn't 'mkdir -p' the subdirs
if use efi; then
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
fi
emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
}
pkg_postinst() {
elog "Official Xen Guide and the unoffical wiki page:"
elog " https://wiki.gentoo.org/wiki/Xen"
elog " http://en.gentoo-wiki.com/wiki/Xen/"
use efi && einfo "The efi executable is installed in boot/efi/gentoo"
elog "You can optionally block the installation of /boot/xen-syms by an entry"
elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
}

197
app-emulation/xen/xen-4.6.0-r9.ebuild

@ -0,0 +1,197 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
PYTHON_COMPAT=( python2_7 )
inherit eutils multilib mount-boot flag-o-matic python-any-r1 toolchain-funcs
MY_PV=${PV/_/-}
MY_P=${PN}-${PV/_/-}
if [[ $PV == *9999 ]]; then
inherit git-r3
KEYWORDS=""
EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
SRC_URI=""
else
KEYWORDS="~amd64 ~arm ~arm64 -x86"
UPSTREAM_VER=0
SECURITY_VER=0
# var set to reflect https://dev.gentoo.org/~idella4/
# first instance of UPS_VER (usptream ver)
UPS_VER=0
SEC_VER=9
GENTOO_VER=
[[ -n ${UPSTREAM_VER} ]] && \
UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
https://dev.gentoo.org/~idella4/distfiles/${PN}-upstream-patches-${UPS_VER}.tar.gz"
[[ -n ${SECURITY_VER} ]] && \
SECURITY_PATCHSET_URI="https://dev.gentoo.org/~idella4/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
https://dev.gentoo.org/~idella4/distfiles/${PN}-security-patches-${SEC_VER}.tar.gz"
[[ -n ${GENTOO_VER} ]] && \
GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
SRC_URI="http://bits.xensource.com/oss-xen/release/${MY_PV}/${MY_P}.tar.gz
${UPSTREAM_PATCHSET_URI}
${SECURITY_PATCHSET_URI}
${GENTOO_PATCHSET_URI}"
fi
DESCRIPTION="The Xen virtual machine monitor"
HOMEPAGE="http://xen.org/"
LICENSE="GPL-2"
SLOT="0"
IUSE="custom-cflags debug efi flask"
DEPEND="${PYTHON_DEPS}
efi? ( >=sys-devel/binutils-2.22[multitarget] )
!efi? ( >=sys-devel/binutils-2.22 )"
RDEPEND=""
PDEPEND="~app-emulation/xen-tools-${PV}"
# no tests are available for the hypervisor
# prevent the silliness of /usr/lib/debug/usr/lib/debug files
# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
RESTRICT="test splitdebug strip"
# Approved by QA team in bug #144032
QA_WX_LOAD="boot/xen-syms-${PV}"
REQUIRED_USE="arm? ( debug )"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
python-any-r1_pkg_setup
if [[ -z ${XEN_TARGET_ARCH} ]]; then
if use amd64; then
export XEN_TARGET_ARCH="x86_64"
elif use arm; then
export XEN_TARGET_ARCH="arm32"
elif use arm64; then
export XEN_TARGET_ARCH="arm64"
else
die "Unsupported architecture!"
fi
fi
if use flask ; then
export "XSM_ENABLE=y"
export "FLASK_ENABLE=y"
fi
}
src_prepare() {
# Upstream's patchset
if [[ -n ${UPSTREAM_VER} ]]; then
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
EPATCH_OPTS="-p1" \
epatch "${WORKDIR}"/patches-upstream \
"${WORKDIR}"/libexec.patch
fi
if [[ -n ${SECURITY_VER} ]]; then
einfo "Try to apply Xen Security patcheset"
# apply main xen patches
# Two parallel systems, both work side by side
# Over time they may concdense into one. This will suffice for now
EPATCH_SUFFIX="patch"
EPATCH_FORCE="yes"
for i in ${XEN_SECURITY_MAIN}; do
epatch "${WORKDIR}"/patches-security/xen/$i
done
for i in "${WORKDIR}"/xen-sec/xsa*.patch; do
epatch $i
done
fi
# Gentoo's patchset
if [[ -n ${GENTOO_VER} ]]; then
EPATCH_SUFFIX="patch" \
EPATCH_FORCE="yes" \
epatch "${WORKDIR}"/patches-gentoo
fi
epatch "${FILESDIR}"/${PN}-4.6-efi.patch
# Drop .config
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
if use efi; then
export EFI_VENDOR="gentoo"
export EFI_MOUNTPOINT="boot"
fi
# if the user *really* wants to use their own custom-cflags, let them
if use custom-cflags; then
einfo "User wants their own CFLAGS - removing defaults"
# try and remove all the default custom-cflags
find "${S}" -name Makefile -o -name Rules.mk -o -name Config.mk -exec sed \
-e 's/CFLAGS\(.*\)=\(.*\)-O3\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-march=i686\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-fomit-frame-pointer\(.*\)/CFLAGS\1=\2\3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-g3*\s\(.*\)/CFLAGS\1=\2 \3/' \
-e 's/CFLAGS\(.*\)=\(.*\)-O2\(.*\)/CFLAGS\1=\2\3/' \
-i {} \; || die "failed to re-set custom-cflags"
fi
# remove -Werror for gcc-4.6's sake
find "${S}" -name 'Makefile*' -o -name '*.mk' -o -name 'common.make' | \
xargs sed -i 's/ *-Werror */ /'
# not strictly necessary to fix this
sed -i 's/, "-Werror"//' "${S}/tools/python/setup.py" || die "failed to re-set setup.py"
epatch_user
}
src_configure() {
use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
use debug && myopt="${myopt} debug=y"
if use custom-cflags; then
filter-flags -fPIE -fstack-protector
replace-flags -O3 -O2
else
unset CFLAGS
unset LDFLAGS
unset ASFLAGS
fi
}
src_compile() {
# Send raw LDFLAGS so that --as-needed works
emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
}
src_install() {
local myopt
use debug && myopt="${myopt} debug=y"
# The 'make install' doesn't 'mkdir -p' the subdirs
if use efi; then
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
fi
emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
# make install likes to throw in some extra EFI bits if it built
use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
}
pkg_postinst() {
elog "Official Xen Guide and the unoffical wiki page:"
elog " https://wiki.gentoo.org/wiki/Xen"
elog " http://en.gentoo-wiki.com/wiki/Xen/"
use efi && einfo "The efi executable is installed in boot/efi/gentoo"
elog "You can optionally block the installation of /boot/xen-syms by an entry"
elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"