parent
a300808956
commit
99355b5d62
@ -1,3 +1,2 @@
|
||||
DIST syslog-ng_3.4.2.tar.gz 3354842 SHA256 f2585b42e7341bc53490aa59c5f405df506536bf0672bf71f9567ea78590f381 SHA512 94d1c8008c72a7fb82c86eb4ff666cacee26e2b1d7100f58a0ea5293e4efc74ad9608a7b1e72b217f9e6ead4b6ad82f5cf9e00dfcb230a03d3243f5c51fd5305 WHIRLPOOL ddb721e940e674a74079fb150213e7595f2a52eb8709f1a032bf6def93906b6f93c9a5131991946b1e19a026ca8162c40d7c7e537498f29a3d33b401c678611a
|
||||
DIST syslog-ng_3.4.5.tar.gz 3202771 SHA256 b8a69d8131efc2378d9149ff54e99f91ea1c47c69e0f4629395d910c7ff71bfb SHA512 41662ba0726a78fb55ffd08532c80b43cf8c06c6c207d9e2bc4558d5772531b602e20a6d8c0d2f0c453e757589b80d1942c533c6a5c6249092cfcb209fc94e4b WHIRLPOOL f52a95eaa9346fd383db2c7ca256a1226ceac0d59354f872ac5c047e234e4b3a379e13e18dc36bb91dbc1b6c43f1f916345c2ccde7cd421348bf21922d1767f6
|
||||
DIST syslog-ng_3.4.6.tar.gz 3202600 SHA256 9484abba03a91d093542996deef68b187186a037f4537606a35f548da0199133 SHA512 e21da2efd066f9bbbc7f058f94d6c974946c3017b07c52ce5b3a0631ddd3f470c24a91c2a89dbdd20797039516c5ac0f45dd3d7089d6902c7509679139dd75c1 WHIRLPOOL f121d682bb8f83b351323f087aa0f58c20352bb26057f9a388049a54e4563725708cae6bea3348e49531f5d0d16f2329e9c2ba396ae1d4de63164c10a75b2d58
|
||||
DIST syslog-ng_3.4.7.tar.gz 3203894 SHA256 7b1114ff0bd9d2c52a8ce407f0f59102ea4123ff7efb3f84253961e0de6ac1b0 SHA512 66c1dafaa9441fd909b450e79ec3d1011bd423301602b0eea372e141ff267ddb60aa0280ef49b1f62d24b3f17fc1909a6ce8cc5bea0e3c6708df64815a534279 WHIRLPOOL b3b9aef566cc4577b4ec6ad96f696e29abd84d663205cadca766a50c933d29e3b195b6679cbb8e0edca96cc6995ab10fe409531eb15c90bfeb82a598ad7cf3fe
|
||||
|
@ -1,99 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-admin/syslog-ng/syslog-ng-3.4.6.ebuild,v 1.1 2013/11/29 02:25:01 mr_bones_ Exp $
|
||||
|
||||
EAPI=5
|
||||
inherit eutils multilib systemd
|
||||
|
||||
MY_PV=${PV/_/}
|
||||
DESCRIPTION="syslog replacement with advanced filtering features"
|
||||
HOMEPAGE="http://www.balabit.com/network-security/syslog-ng"
|
||||
SRC_URI="http://www.balabit.com/downloads/files/syslog-ng/sources/${MY_PV}/source/syslog-ng_${MY_PV}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2+ LGPL-2.1+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
|
||||
IUSE="caps dbi geoip ipv6 json mongodb +pcre smtp spoof-source ssl systemd tcpd"
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
pcre? ( dev-libs/libpcre )
|
||||
spoof-source? ( net-libs/libnet:1.1 )
|
||||
ssl? ( dev-libs/openssl:= )
|
||||
smtp? ( net-libs/libesmtp )
|
||||
tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
|
||||
>=dev-libs/eventlog-0.2.12
|
||||
>=dev-libs/glib-2.10.1:2
|
||||
json? ( >=dev-libs/json-c-0.9 )
|
||||
caps? ( sys-libs/libcap )
|
||||
geoip? ( >=dev-libs/geoip-1.5.0 )
|
||||
dbi? ( >=dev-db/libdbi-0.8.3 )
|
||||
systemd? ( sys-apps/systemd )"
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig
|
||||
sys-devel/flex"
|
||||
|
||||
S=${WORKDIR}/${PN}-${MY_PV}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
--with-ivykis=internal \
|
||||
--with-libmongo-client=internal \
|
||||
--sysconfdir=/etc/syslog-ng \
|
||||
--localstatedir=/var/lib/syslog-ng \
|
||||
--with-pidfile-dir=/var/run \
|
||||
--with-module-dir=/usr/$(get_libdir)/syslog-ng \
|
||||
$(systemd_with_unitdir) \
|
||||
$(use_enable systemd) \
|
||||
$(use_enable caps linux-caps) \
|
||||
$(use_enable geoip) \
|
||||
$(use_enable ipv6) \
|
||||
$(use_enable json) \
|
||||
$(use_enable mongodb) \
|
||||
$(use_enable pcre) \
|
||||
$(use_enable smtp) \
|
||||
$(use_enable spoof-source) \
|
||||
$(use_enable dbi sql) \
|
||||
$(use_enable ssl) \
|
||||
$(use_enable tcpd tcp-wrapper)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# -j1 for bug #484470
|
||||
emake -j1 DESTDIR="${D}" install
|
||||
|
||||
dodoc AUTHORS NEWS contrib/syslog-ng.conf* contrib/syslog2ng \
|
||||
"${FILESDIR}/${PV%.*}/syslog-ng.conf.gentoo.hardened" \
|
||||
"${FILESDIR}/syslog-ng.logrotate.hardened" \
|
||||
"${FILESDIR}/README.hardened"
|
||||
|
||||
# Install default configuration
|
||||
insinto /etc/syslog-ng
|
||||
if use userland_BSD ; then
|
||||
newins "${FILESDIR}/${PV%.*}/syslog-ng.conf.gentoo.fbsd" syslog-ng.conf
|
||||
else
|
||||
newins "${FILESDIR}/${PV%.*}/syslog-ng.conf.gentoo" syslog-ng.conf
|
||||
fi
|
||||
|
||||
insinto /etc/logrotate.d
|
||||
newins "${FILESDIR}/syslog-ng.logrotate" syslog-ng
|
||||
|
||||
newinitd "${FILESDIR}/${PV%.*}/syslog-ng.rc6" syslog-ng
|
||||
newconfd "${FILESDIR}/${PV%.*}/syslog-ng.confd" syslog-ng
|
||||
keepdir /etc/syslog-ng/patterndb.d /var/lib/syslog-ng
|
||||
prune_libtool_files --modules
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "For detailed documentation please see the upstream website:"
|
||||
elog "http://www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.4-guides/en/syslog-ng-ose-v3.4-guide-admin/html/index.html"
|
||||
|
||||
# bug #355257
|
||||
if ! has_version app-admin/logrotate ; then
|
||||
echo
|
||||
elog "It is highly recommended that app-admin/logrotate be emerged to"
|
||||
elog "manage the log files. ${PN} installs a file in /etc/logrotate.d"
|
||||
elog "for logrotate to use."
|
||||
echo
|
||||
fi
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-admin/syslog-ng/syslog-ng-3.4.5.ebuild,v 1.1 2013/11/04 17:42:33 mr_bones_ Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-admin/syslog-ng/syslog-ng-3.4.7.ebuild,v 1.1 2013/12/31 08:24:58 mr_bones_ Exp $
|
||||
|
||||
EAPI=5
|
||||
inherit eutils multilib systemd
|
@ -1,2 +1 @@
|
||||
DIST oclHashcat-lite-0.14.7z 2967901 SHA256 faec3c48c1ee9adde97d4f5efad17bb36ce4e69b495eeed80ae89d6faf9db551 SHA512 71fd31947208df6cd1ce26d64b0b68191d479a8142cde936eafe4c256e11905ab955a238a93393f3cf5865c75729d13bb0d496da9109c5f644e326331dca9b08 WHIRLPOOL 4c6972b5c993debbd1590fa0b4fdc59ba409cc9bcee05de2112cf4c79a74bf67c63e5a5abf70047fe0ae4cb1d6f23a57b83b84f3f1ac34e8247e9542da1d7881
|
||||
DIST oclHashcat-lite-0.15.7z 6026598 SHA256 40fd6f5410e1c0d5d5e7c9d60c173d838289025a2fc36b86690fb26657ed5796 SHA512 b70738a40cdbc5062cb72f1de93a2d29cdd824b7f3cb0f5bc42e3a7e83246d2247385040efe230afffa26ddf26823ecefabf16f31b1925c7460e7cd8933342b8 WHIRLPOOL b53ce94f04dd464fd6727641726aa56620ec6dcf5c557887c7346955b08b33f187b59db27debf98210c477299ef13c8f7334e8c3b2234b27edf0fe97b1438235
|
||||
|
@ -1,107 +0,0 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-crypt/oclhashcat-lite-bin/oclhashcat-lite-bin-0.14.ebuild,v 1.1 2013/02/03 02:00:57 zerochaos Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit eutils pax-utils
|
||||
|
||||
DESCRIPTION="An opencl hash cracker"
|
||||
HOMEPAGE="http://hashcat.net/oclhashcat-lite/"
|
||||
MY_P="oclHashcat-lite-${PV}"
|
||||
SRC_URI="http://hashcat.net/files/${MY_P}.7z"
|
||||
|
||||
#license applies to this version per http://hashcat.net/forum/thread-1348.html
|
||||
LICENSE="hashcat"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
|
||||
IUSE_VIDEO_CARDS="video_cards_fglrx
|
||||
video_cards_nvidia"
|
||||
|
||||
IUSE="${IUSE_VIDEO_CARDS}"
|
||||
|
||||
RDEPEND="sys-libs/zlib
|
||||
video_cards_nvidia? ( >=x11-drivers/nvidia-drivers-310.32 )
|
||||
video_cards_fglrx? ( =x11-drivers/ati-drivers-13.1 )"
|
||||
DEPEND="${RDEPEND}
|
||||
app-arch/p7zip"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
RESTRICT="strip"
|
||||
QA_PREBUILT="*Hashcat-lite*.bin"
|
||||
|
||||
src_install() {
|
||||
dodoc docs/*
|
||||
rm -rf *.exe docs || die
|
||||
if use x86; then
|
||||
rm oclHashcat-lite64.bin || die
|
||||
rm cudaHashcat-lite64.bin || die
|
||||
fi
|
||||
if use amd64; then
|
||||
rm oclHashcat-lite32.bin || die
|
||||
rm cudaHashcat-lite32.bin || die
|
||||
fi
|
||||
if ! use video_cards_fglrx; then
|
||||
rm -r kernels/4098 || die
|
||||
rm oclHashcat-lite*.bin || die
|
||||
fi
|
||||
if ! use video_cards_nvidia; then
|
||||
rm -r kernels/4318 || die
|
||||
rm cudaHashcat-lite*.bin || die
|
||||
fi
|
||||
|
||||
#I assume this is needed but I didn't check
|
||||
pax-mark m *Hashcat-lite*.bin
|
||||
|
||||
insinto /opt/${PN}
|
||||
doins -r "${S}"/*
|
||||
|
||||
dodir /opt/bin
|
||||
|
||||
cat <<-EOF > "${ED}"/opt/bin/oclhashcat-lite
|
||||
#! /bin/sh
|
||||
echo "oclHashcat-lite and all related files have been installed in /opt/${PN}"
|
||||
echo "Please run one of the following binaries to use gpu accelerated hashcat:"
|
||||
EOF
|
||||
|
||||
for x in oclHashcat-lite64.bin oclHashcat-lite32.bin cudaHashcat-lite64.bin cudaHashcat-lite32.bin
|
||||
do
|
||||
if [ -f "${ED}"/opt/${PN}/${x} ]
|
||||
then
|
||||
case "${x}" in
|
||||
oclHashcat-lite64.bin)
|
||||
echo "echo '64 bit ATI accelerated \"oclHashcat-lite64.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
|
||||
;;
|
||||
oclHashcat-lite32.bin)
|
||||
echo "echo '32 bit ATI accelerated \"oclHashcat-lite32.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
|
||||
;;
|
||||
cudaHashcat-lite64.bin)
|
||||
echo "echo '64 bit NVIDIA accelerated \"cudaHashcat-lite64.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
|
||||
;;
|
||||
cudaHashcat-lite32.bin)
|
||||
echo "echo '32 bit NVIDIA accelerated \"cudaHashcat-lite32.bin\"'" >> "${ED}"/opt/bin/oclhashcat-lite
|
||||
;;
|
||||
esac
|
||||
|
||||
fperms +x /opt/${PN}/${x}
|
||||
|
||||
cat <<-EOF > "${ED}"/opt/bin/${x}
|
||||
#! /bin/sh
|
||||
cd /opt/${PN}
|
||||
echo "Warning: ${x} is running from /opt/${PN} so be careful of relative paths."
|
||||
exec ./${x} "\$@"
|
||||
EOF
|
||||
|
||||
fperms +x /opt/bin/${x}
|
||||
|
||||
fi
|
||||
done
|
||||
|
||||
fperms +x /opt/bin/oclhashcat-lite
|
||||
fowners root:video /opt/${PN}
|
||||
touch "${ED}"/opt/${PN}/eula.accepted
|
||||
fperms 0660 /opt/${PN}/eula.accepted
|
||||
einfo "oclhashcat-lite can be run as user if you are in the video group"
|
||||
}
|
@ -1,2 +1 @@
|
||||
DIST e3-2.7.1.tar.gz 189422 SHA256 61e16420480b1bef085952c0e5130a9151a617c3432b4c302c23740d5eb5049e SHA512 e10dc5b8fde9ea791809c39a700801f54e8bbe4d998b0fd7329a30171f8f0c6cbeb218f5fb5f3c6913d4913ce53adc3608d24569b76f55f09a0346df44842289 WHIRLPOOL a9aded3981d6b5a1ba91ef1d973e4211c2cc456722afe1b79c8f2130aa0a9e4e3715c5a83dee5989cc2e589e0b5de08f12e786a2e936ed61ec309300a0e05e22
|
||||
DIST e3-2.8.tgz 119939 SHA256 035737d0cc82b287386fdff8682b2c23ef620d7ef97dff7a1b1fe1777e4c4fb7 SHA512 f3443ac558203b6921458761174ebc060936ae9f8a834670044152b9af52e0919075ac8110ba47b4b6f4e8261afa917e9fe49492b8d40d38d69987353ddd5189 WHIRLPOOL 9531a30229fe78bb2f55621d085d561923cae4b7db6c91f46320c81516936389f765fa0ef8bc65c19fefae40a60e50b5541f1e751a03aabf56d6b57dbf4cb165
|
||||
|
@ -1,37 +0,0 @@
|
||||
# Copyright 1999-2010 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-editors/e3/e3-2.7.1.ebuild,v 1.6 2010/03/30 22:39:27 fauli Exp $
|
||||
|
||||
DESCRIPTION="Very tiny editor in ASM with emacs, pico, wordstar, and vi keybindings"
|
||||
HOMEPAGE="http://freshmeat.net/projects/e3/
|
||||
http://mitglied.multimania.de/albkleine/"
|
||||
SRC_URI="http://mitglied.multimania.de/albkleine/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* amd64 x86"
|
||||
IUSE=""
|
||||
RESTRICT="strip"
|
||||
|
||||
DEPEND="x86? ( >=dev-lang/nasm-0.98.39-r3 )
|
||||
amd64? ( >=dev-lang/yasm-0.6.1 )"
|
||||
RDEPEND=""
|
||||
|
||||
src_compile() {
|
||||
local target=""
|
||||
use amd64 && target="yasm64"
|
||||
emake ${target} || die "emake failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin e3 || die "dobin failed"
|
||||
dosym e3 /usr/bin/e3em
|
||||
dosym e3 /usr/bin/e3ne
|
||||
dosym e3 /usr/bin/e3pi
|
||||
dosym e3 /usr/bin/e3vi
|
||||
dosym e3 /usr/bin/e3ws
|
||||
|
||||
newman e3.man e3.1
|
||||
dodoc ChangeLog README
|
||||
dohtml e3.html
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
DIST company-0.4.3.tar.bz2 29751 SHA256 25d3613bb5d8761d43773507e45568c514fecc8c1c1f373a7699f9b995a62fad SHA512 012a918eee3fe6ff5fdebece2fd8cbcc8e14aa0889b6f9ab1ba0036a8b1ae11a5a061a2b47d6e187e3102444d5aa7dc712b78b2d56033ac5d34ee0202a06e93d WHIRLPOOL ac017b3e606b533eb4b8c6986e4babcdafdec23bf87aaa1966b3d05eecdc6d0731f8aabb18f0f891c9f4a238cb679af3ec385721dfcd99dd72dc37d0c1f4e565
|
||||
DIST company-0.5.tar.bz2 32573 SHA256 126eee519bc8ad5934657e51512496a0d2534a0e10daf12b07177409f4cb3999 SHA512 9682d1168e359c1bf00377d380117377b0fbd217a24bd9737c8e230f505b3c1d794df914ce01026f57cc03533523228bc2e7de7f41268facc63acf106444f315 WHIRLPOOL 78d857f5d2b7a1e18126cd81f2f3b51f3c98d5d2d910504030094c01c494631759ffaeba87fe28149baae7435058d3621c2005e4eb7b6d682f59b6d5e839c7e5
|
||||
DIST company-mode-0.6.11.tar.gz 49129 SHA256 7edd6f7aeb70de6a35e108af16b2ca4bfc4965feb1dc53dfe2750433a4b1c7f7 SHA512 67bd5aa7f5814cbac584d0377e2401c42f9f11d67e0351c5853421fa75cd500b8214b4e3205ec8b244f6eefe44c216d0bf5a9e2b943bc28a70a81090b88f1f24 WHIRLPOOL 75f3e0fc27bf1d37fc8d4df4e6a85887df5c60b09cf315d425f532d7b18fc823e960c45bdd3c73dc7afbe3a389d00d915dd72b6915dd25b69db597b8d599d680
|
||||
|
@ -1,29 +1,28 @@
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/company-mode/company-mode-0.4.3.ebuild,v 1.3 2009/08/27 19:41:44 ulm Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/company-mode/company-mode-0.6.11.ebuild,v 1.1 2014/01/01 17:44:25 ulm Exp $
|
||||
|
||||
EAPI=2
|
||||
NEED_EMACS=22
|
||||
EAPI=5
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="In-buffer completion front-end"
|
||||
HOMEPAGE="http://nschum.de/src/emacs/company-mode/"
|
||||
SRC_URI="http://nschum.de/src/emacs/${PN}/company-${PV}.tar.bz2"
|
||||
HOMEPAGE="http://company-mode.github.com/"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
LICENSE="GPL-3+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="ropemacs semantic"
|
||||
IUSE="ropemacs +semantic"
|
||||
|
||||
# Note: company-mode supports many backends, and we refrain from including
|
||||
# them all in RDEPEND. Only depend on things that are needed at build time.
|
||||
DEPEND="|| ( app-emacs/nxml-mode >=virtual/emacs-23 )
|
||||
ropemacs? ( app-emacs/pymacs )
|
||||
semantic? ( app-emacs/cedet )"
|
||||
RDEPEND="${DEPEND}"
|
||||
semantic? ( virtual/emacs-cedet )"
|
||||
RDEPEND="${DEPEND}
|
||||
ropemacs? ( dev-python/ropemacs )"
|
||||
|
||||
S="${WORKDIR}"
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
||||
src_prepare() {
|
@ -1,16 +1,17 @@
|
||||
# Copyright 1999-2010 Gentoo Foundation
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/h4x0r/h4x0r-0.13-r1.ebuild,v 1.6 2010/01/17 19:11:14 ulm Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/h4x0r/h4x0r-0.13-r1.ebuild,v 1.7 2014/01/01 16:51:51 ulm Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="Aid in writing like a script kiddie does"
|
||||
HOMEPAGE="http://www.emacswiki.org/cgi-bin/emacs/EliteSpeech"
|
||||
HOMEPAGE="http://www.emacswiki.org/emacs/EliteSpeech"
|
||||
SRC_URI="mirror://gentoo/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc x86"
|
||||
IUSE=""
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
@ -1 +1,2 @@
|
||||
DIST quilt-el-0.46.2.tar.gz 49753 SHA256 3f3d209df7c4fc217f7be27042006db311658bd028fe00257c3ac5c7b9d62368 SHA512 c8994db9239b08c0c018c8e1bb27cdd648b079fec532384baa133c55cad321a9f59bee8f3e5a87b22545093521c4fdb57953509fc714f953e58a211c8ca3133b WHIRLPOOL 5c43428f69a4897a21d69fbac38ce339318d8fa58a43da13257fc67b03020f4999c60797d3e9325d620751a5eb5e72eb17860b3d941a7ed48453298488614632
|
||||
DIST quilt-el-0.48.0.tar.gz 13147 SHA256 6c7a80d7f121d4958e989ad98065667d328905b893551f2f3e6f56449506ad24 SHA512 0a198ef0f8354c927c4527bb7a3e99fd6d12f17cbe65c736341c527de440d144581205337163912ce04f83749c31833221cc4153d5736ffec060ad4ade73c694 WHIRLPOOL fc083629a622500105315ab8553f81721b9902132bb63ebf0a4132aee8303ba304a6779cdff9a6db282cc01b3cc66fd30ace4a9e27eb4adb5e795ea34d6e997b
|
||||
|
@ -0,0 +1,11 @@
|
||||
--- quilt-el-0.48.0-orig/quilt.el
|
||||
+++ quilt-el-0.48.0/quilt.el
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
(defun quilt-find-dir (fn)
|
||||
"Return the top level dir of quilt from FN."
|
||||
- (if (or (not fn) (equal fn "/"))
|
||||
+ (if (or (not fn) (equal fn (file-name-directory fn)))
|
||||
nil
|
||||
(let ((d (file-name-directory fn)))
|
||||
(if (file-accessible-directory-p (concat d "/.pc"))
|
@ -0,0 +1,22 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/quilt-el/quilt-el-0.48.0.ebuild,v 1.1 2014/01/01 18:11:52 ulm Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit elisp eutils
|
||||
|
||||
DESCRIPTION="Quilt mode for Emacs"
|
||||
HOMEPAGE="http://satoru-takeuchi.org/dev/quilt-el/"
|
||||
SRC_URI="http://satoru-takeuchi.org/dev/${PN}/download/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-1+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86"
|
||||
|
||||
RDEPEND="dev-util/quilt"
|
||||
|
||||
ELISP_PATCHES="${P}-tramp-recursion.patch
|
||||
${PN}-0.45.4-header-window.patch"
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
DOCS="README changelog"
|
@ -1 +1,2 @@
|
||||
DIST typing-1.1.2.tar.bz2 4898 SHA256 adea202fd52e38fe935e6e123eb8517312d028fac191d95d66c7db150d00f31c SHA512 e30e79970bb4eb225e102e8483c2ce8281a20d9d1163722838131e0b6699864b4d1e8b4c212551dead9066b36a7e24fd3ec1f6185bba171aeb47205667346158 WHIRLPOOL f63f53eee63e7de36b4e1c8b56c47ed997e36d0466dccd07dc41b613a3bab770d0ecb47da251b03cacb0e04c47b4f6a6c0825bd96720f0c58380ccb823e18b7b
|
||||
DIST typing-1.1.4.el.xz 5092 SHA256 6f1c812481f21f610599e446ed408b28cb450b9c9a6923e06bbb73bffc13602a SHA512 9033b4ca2d23de98f8721796c708392b97d49b6719544ad4ee6d73f11ef253600d9c2a0d2b8ea89ef58355d1bfa36244ccd527994170ae0f43404c6ac19b62f3 WHIRLPOOL 2b7be549c67b55e9974e1fa40af0364c0554b8bf672225d2be3f43fc04a7f315907f3b54d2d732bcd04c68fcf894af33a9ce2c6a01660446189386b65ea92b09
|
||||
|
@ -1,6 +1,2 @@
|
||||
|
||||
;;; typing site-lisp configuration
|
||||
|
||||
(add-to-list 'load-path "@SITELISP@")
|
||||
|
||||
(autoload 'typing-of-emacs "typing" "The Typing of Emacs, a game." t)
|
||||
(autoload 'typing-of-emacs "typing" "Play the game The Typing Of Emacs." t)
|
||||
|
@ -0,0 +1,17 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/typing/typing-1.1.4.ebuild,v 1.1 2014/01/01 16:28:06 ulm Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="The Typing of Emacs -- an Elisp parody of The Typing of the Dead for Dreamcast"
|
||||
HOMEPAGE="http://www.emacswiki.org/emacs/TypingOfEmacs"
|
||||
SRC_URI="http://dev.gentoo.org/~ulm/distfiles/${P}.el.xz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc64 ~x86"
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
@ -1,21 +1,22 @@
|
||||
# Copyright 1999-2009 Gentoo Foundation
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/volume/volume-1.0.ebuild,v 1.4 2009/03/13 00:11:35 tcunha Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/volume/volume-1.0.ebuild,v 1.5 2014/01/01 16:03:59 ulm Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="Tweak your sound card volume from Emacs"
|
||||
HOMEPAGE="http://www.brockman.se/software/volume-el/"
|
||||
SRC_URI="mirror://gentoo/${P}.el.bz2"
|
||||
HOMEPAGE="https://github.com/dbrock/volume-el"
|
||||
SRC_URI="http://dev.gentoo.org/~ulm/distfiles/${P}.el.bz2"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ppc sparc x86"
|
||||
IUSE=""
|
||||
|
||||
# NOTE we might define the following which volume.el can work with by
|
||||
# default, but volume.el can really work with anything.
|
||||
|
||||
# RDEPEND="|| ( media-sound/aumixer media-sound/alsa-utils )"
|
||||
|
||||
SITEFILE=50${PN}-gentoo.el
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
@ -1,16 +1,17 @@
|
||||
# Copyright 1999-2010 Gentoo Foundation
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/whine/whine-20091222.ebuild,v 1.3 2010/05/21 20:53:02 pacho Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emacs/whine/whine-20091222.ebuild,v 1.4 2014/01/01 16:34:42 ulm Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
inherit elisp
|
||||
|
||||
DESCRIPTION="Complaint generator for GNU Emacs"
|
||||
HOMEPAGE="http://www.emacswiki.org/emacs/Whine"
|
||||
SRC_URI="mirror://gentoo/${P}.tar.bz2"
|
||||
SRC_URI="http://dev.gentoo.org/~ulm/distfiles/${P}.tar.bz2"
|
||||
|
||||
LICENSE="public-domain"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE=""
|
||||
|
||||
SITEFILE="50${PN}-gentoo.el"
|
||||
|
@ -1,31 +0,0 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/files/docker.initd,v 1.1 2013/09/25 03:22:15 gregkh Exp $
|
||||
|
||||
DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
|
||||
DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
|
||||
DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
|
||||
|
||||
start() {
|
||||
touch "$DOCKER_LOGFILE"
|
||||
chown root:docker "$DOCKER_LOGFILE"
|
||||
chmod 0644 "$DOCKER_LOGFILE"
|
||||
|
||||
ebegin "Starting docker daemon"
|
||||
start-stop-daemon --start --background \
|
||||
--exec "$DOCKER_BINARY" \
|
||||
--pidfile "$DOCKER_PIDFILE" \
|
||||
--stdout "$DOCKER_LOGFILE" \
|
||||
--stderr "$DOCKER_LOGFILE" \
|
||||
-- -d -p "$DOCKER_PIDFILE"
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping docker daemon"
|
||||
start-stop-daemon --stop \
|
||||
--exec "$DOCKER_BINARY" \
|
||||
--pidfile "$DOCKER_PIDFILE"
|
||||
eend $?
|
||||
}
|
@ -1,273 +0,0 @@
|
||||
#!/bin/bash
|
||||
# construct.sh
|
||||
# example construction of JRE and JDK directories from the DLJ bundles
|
||||
#
|
||||
# Copyright © 2006 Sun Microsystems, Inc.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
# "Software"), to deal in the Software without restriction, including
|
||||
# without limitation the rights to use, copy, modify, merge, publish,
|
||||
# distribute, sublicense, and/or sell copies of the Software, and to
|
||||
# permit persons to whom the Software is furnished to do so, subject to
|
||||
# the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Sun, Sun Microsystems, the Sun logo and Java, Java HotSpot,
|
||||
# and JVM trademarks or registered trademarks of Sun Microsystems,
|
||||
# Inc. in the U.S. and other countries.
|
||||
|
||||
|
||||
program=`basename $0`
|
||||
|
||||
usage () {
|
||||
echo "usage: ${program} path/to/unbundle-jdk path/to/linux-jdk path/to/linux-jre"
|
||||
}
|
||||
|
||||
getargs() {
|
||||
undir=$1
|
||||
jdkdir=$2
|
||||
jredir=$3
|
||||
if [ ! -d $undir ]; then
|
||||
echo "${program}: unbundle directory not found: $undir"
|
||||
exit 2
|
||||
fi
|
||||
# make sure javahome is the JDK
|
||||
javahome=`echo $undir/*/demo`
|
||||
if [ ! -d $javahome ]; then
|
||||
echo "${program}: unbundle directory incorrect: $undir"
|
||||
echo " expecting $undir/jdk1.5.0_xx"
|
||||
exit 2
|
||||
else
|
||||
javahome=`dirname $javahome`
|
||||
fi
|
||||
# verify JDK dir
|
||||
jdkdirp=`dirname $jdkdir`
|
||||
jdkbase=`basename $jdkdir`
|
||||
if [ ! -d $jdkdirp ]; then
|
||||
echo "${program}: parent directory for JDK does not exist: $jdkdirp"
|
||||
exit 2
|
||||
fi
|
||||
savedir=`pwd`
|
||||
cd $jdkdirp
|
||||
jdkdirp=`pwd`
|
||||
cd $savedir
|
||||
jdkdir=$jdkdirp/$jdkbase
|
||||
# verify JRE dir
|
||||
jredirp=`dirname $jredir`
|
||||
jrebase=`basename $jredir`
|
||||
if [ ! -d $jredirp ]; then
|
||||
echo "${program}: parent directory for JRE does not exist: $jredirp"
|
||||
exit 2
|
||||
fi
|
||||
savedir=`pwd`
|
||||
cd $jredirp
|
||||
jredirp=`pwd`
|
||||
cd $savedir
|
||||
jredir=$jredirp/$jrebase
|
||||
}
|
||||
|
||||
checkfiles() {
|
||||
if [ -r $jdkdir ]; then
|
||||
echo "${program}: directory for JDK already exists: $jdkdir"
|
||||
exit 2
|
||||
fi
|
||||
if [ -r $jredir ]; then
|
||||
echo "${program}: directory for JRE already exists: $jredir"
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
copytree() {
|
||||
echo "copying over the JDK tree..."
|
||||
cp -a $javahome $jdkdir
|
||||
}
|
||||
|
||||
linkrel() {
|
||||
target=$1
|
||||
link=$2
|
||||
# make a softlink from the $link to the $target
|
||||
# make this a relative link
|
||||
targetb=(`echo $target | tr '/' ' '`)
|
||||
linkb=(`echo $link | tr '/' ' '`)
|
||||
(( n = ${#targetb[*]} ))
|
||||
(( m = ${#linkb[*]} ))
|
||||
c=$n # common length
|
||||
if [ $m -lt $c ]; then
|
||||
(( c = m ))
|
||||
fi
|
||||
for (( i = 0 ; i < c ; i++ )); do
|
||||
if [ ${targetb[$i]} != ${linkb[$i]} ]; then
|
||||
# echo components differ, stopping
|
||||
break
|
||||
fi
|
||||
done
|
||||
rel=""
|
||||
for (( j = i + 1; j < m ; j++ )); do
|
||||
if [ -z $rel ]; then
|
||||
rel=".."
|
||||
else
|
||||
rel="$rel/.."
|
||||
fi
|
||||
done
|
||||
for (( j = i; j < n ; j++ )); do
|
||||
if [ -z $rel ]; then
|
||||
rel=${targetb[$j]}
|
||||
else
|
||||
rel="$rel/${targetb[$j]}"
|
||||
fi
|
||||
done
|
||||
ln -s $rel $link
|
||||
}
|
||||
|
||||
createjre() {
|
||||
echo "creating JRE directory..."
|
||||
# absolute link
|
||||
# ln -s $jdkdir/jre $jredir
|
||||
# relative link
|
||||
linkrel $jdkdir/jre $jredir
|
||||
}
|
||||
|
||||
unpackjars() {
|
||||
echo "unpacking jars..."
|
||||
unpack200=$jdkdir/bin/unpack200
|
||||
if [ ! -x $unpack200 ]; then
|
||||
echo "${program}: file missing $unpack200"
|
||||
exit 1
|
||||
fi
|
||||
cd $jdkdir
|
||||
PACKED_JARS=`find . -name '*.pack'`
|
||||
for i in $PACKED_JARS; do
|
||||
# echo $i
|
||||
jdir=`dirname $i`
|
||||
jbase=`basename $i .pack`
|
||||
if ! $unpack200 $jdkdir/$jdir/$jbase.pack $jdkdir/$jdir/$jbase.jar; then
|
||||
echo "${program}: error unpacking $jdkdir/$jdir/$jbase.jar"
|
||||
fi
|
||||
if [ ! -r $jdkdir/$jdir/$jbase.jar ]; then
|
||||
echo "${program}: missing $jdkdir/$jdir/$jbase.jar"
|
||||
else
|
||||
echo " $jdir/$jbase.jar"
|
||||
# remove pack file
|
||||
rm $jdkdir/$jdir/$jbase.pack
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
preparecds() {
|
||||
# if this is a client installation...
|
||||
compiler="`$jdkdir/bin/java -client -version 2>&1 | tail -n +3 | cut -d' ' -f1-4`"
|
||||
if [ "X$compiler" = "XJava HotSpot(TM) Client VM" ]; then
|
||||
# create the CDS archive
|
||||
echo "creating the class data sharing archive..."
|
||||
if ! $jdkdir/bin/java -client -Xshare:dump > /dev/null 2>&1; then
|
||||
echo "returned error code $?"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
jreman () {
|
||||
echo "setting up the JRE man pages..."
|
||||
# note this list is slightly different for OpenSolaris bundles
|
||||
jreman="${T}/jre.man.txt"
|
||||
cat <<EOF > $jreman
|
||||
man/ja_JP.eucJP/man1/java.1
|
||||
man/ja_JP.eucJP/man1/javaws.1
|
||||
man/ja_JP.eucJP/man1/keytool.1
|
||||
man/ja_JP.eucJP/man1/orbd.1
|
||||
man/ja_JP.eucJP/man1/pack200.1
|
||||
man/ja_JP.eucJP/man1/policytool.1
|
||||
man/ja_JP.eucJP/man1/rmid.1
|
||||
man/ja_JP.eucJP/man1/rmiregistry.1
|
||||
man/ja_JP.eucJP/man1/servertool.1
|
||||
man/ja_JP.eucJP/man1/tnameserv.1
|
||||
man/ja_JP.eucJP/man1/unpack200.1
|
||||
man/man1/java.1
|
||||
man/man1/javaws.1
|
||||
man/man1/keytool.1
|
||||
man/man1/orbd.1
|
||||
man/man1/pack200.1
|
||||
man/man1/policytool.1
|
||||
man/man1/rmid.1
|
||||
man/man1/rmiregistry.1
|
||||
man/man1/servertool.1
|
||||
man/man1/tnameserv.1
|
||||
man/man1/unpack200.1
|
||||
EOF
|
||||
# create jre/man directory
|
||||
# mkdir $jdkdir/jre/man
|
||||
# move the real JRE man pages to jre/man
|
||||
# link the JDK JRE man pages to jre/man
|
||||
# real JDK man pages stay where they are
|
||||
for m in `cat $jreman`; do
|
||||
manpath=`dirname $jdkdir/jre/$m`
|
||||
mkdir -p $manpath
|
||||
mv $jdkdir/$m $jdkdir/jre/$m
|
||||
linkrel $jdkdir/jre/$m $jdkdir/$m
|
||||
done
|
||||
# link in Japanese man pages
|
||||
ln -s ja_JP.eucJP $jdkdir/jre/man/ja
|
||||
rm $jreman
|
||||
}
|
||||
|
||||
elimdups() {
|
||||
echo "eliminating duplication between the JDK and JDK/jre..."
|
||||
jdkcomm="${T}/jdk.bin.comm.txt"
|
||||
cat <<EOF > $jdkcomm
|
||||
bin/ControlPanel
|
||||
bin/java
|
||||
bin/javaws
|
||||
bin/keytool
|
||||
bin/orbd
|
||||
bin/pack200
|
||||
bin/policytool
|
||||
bin/rmid
|
||||
bin/rmiregistry
|
||||
bin/servertool
|
||||
bin/tnameserv
|
||||
bin/unpack200
|
||||
EOF
|
||||
# note there is little point in linking these common files
|
||||
# COPYRIGHT
|
||||
# LICENSE
|
||||
# THIRDPARTYLICENSEREADME.txt
|
||||
# And this file is unique to the JDK
|
||||
# README.html
|
||||
# And these files are unique to the JDK/jre/
|
||||
# CHANGES
|
||||
# README
|
||||
# Welcome.html
|
||||
for p in `cat $jdkcomm`; do
|
||||
rm $jdkdir/$p
|
||||
# this is a relative link
|
||||
ln -s ../jre/$p $jdkdir/$p
|
||||
done
|
||||
rm $jdkcomm
|
||||
}
|
||||
|
||||
if [ $# -eq 3 ] ; then
|
||||
getargs $1 $2 $3
|
||||
checkfiles
|
||||
copytree
|
||||
createjre
|
||||
unpackjars
|
||||
#preparecds
|
||||
jreman
|
||||
elimdups
|
||||
else
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
@ -1,138 +0,0 @@
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -75,9 +75,6 @@
|
||||
if HAVE_HASKELL
|
||||
SUBDIRS += haskell
|
||||
endif
|
||||
-if HAVE_PHP
|
||||
-SUBDIRS += php
|
||||
-endif
|
||||
if HAVE_ERLANG
|
||||
SUBDIRS += erlang erlang/examples
|
||||
endif
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -356,6 +356,11 @@
|
||||
DISTRO=UBUNTU
|
||||
fi
|
||||
fi
|
||||
+if test -f /etc/gentoo-release; then
|
||||
+ DISTRO=GENTOO
|
||||
+fi
|
||||
+
|
||||
+
|
||||
if test -f /etc/arch-release; then
|
||||
DISTRO=ARCHLINUX
|
||||
fi
|
||||
@@ -368,6 +373,7 @@
|
||||
AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
|
||||
AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl])
|
||||
])
|
||||
+AS_IF([test "xRPCGEN" = "xno"], [AC_MSG_ERROR([rpcgen not installed])],[])
|
||||
|
||||
dnl Check for Augeas (optional).
|
||||
PKG_CHECK_MODULES([AUGEAS], [augeas],
|
||||
@@ -381,9 +387,11 @@
|
||||
AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
|
||||
LIBS="$old_LIBS"
|
||||
],
|
||||
- [AC_MSG_WARN([augeas not found, some core features will be disabled])])
|
||||
+ [AC_MSG_ERROR([augeas not found, some core features will be disabled])])
|
||||
|
||||
dnl Check for libselinux (optional).
|
||||
+dnl TODO selinux triplet
|
||||
+
|
||||
AC_CHECK_HEADERS([selinux/selinux.h])
|
||||
AC_CHECK_LIB([selinux],[setexeccon],[
|
||||
have_libselinux="$ac_cv_header_selinux_selinux_h"
|
||||
@@ -409,7 +417,7 @@
|
||||
AS_IF([test "x$enable_probes" != "xno"],[
|
||||
dnl http://sourceware.org/systemtap/wiki/AddingUserSpaceProbingToApps
|
||||
AC_CHECK_HEADERS([sys/sdt.h])
|
||||
- dnl AC_CHECK_PROG([DTRACE],[dtrace],[dtrace],[no])
|
||||
+ AC_CHECK_PROG([DTRACE],[dtrace],[dtrace],[no])
|
||||
AS_IF([test "x$ac_cv_header_sys_sdt_h" = "xyes"],[
|
||||
AC_DEFINE([ENABLE_PROBES],[1],[enable systemtap/DTrace userspace probes])
|
||||
])
|
||||
@@ -442,7 +450,7 @@
|
||||
AC_MSG_RESULT([yes])
|
||||
POD2_STDERR_OPTION="--stderr"
|
||||
else
|
||||
- AC_MSG_RESULT([no])
|
||||
+ AC_MSG_RESULT([no]
|
||||
POD2_STDERR_OPTION=""
|
||||
fi
|
||||
AC_SUBST([POD2_STDERR_OPTION])
|
||||
@@ -464,11 +472,20 @@
|
||||
|
||||
dnl Check for optional xmllint.
|
||||
AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
|
||||
+AS_IF([test "xXMLLINT" = "xno"], [AC_MSG_ERROR([xmllint not installed])],[])
|
||||
+
|
||||
AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"])
|
||||
|
||||
dnl po4a for translating man pages and POD files (optional).
|
||||
AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
|
||||
-AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
|
||||
+AC_ARG_ENABLE([doc],
|
||||
+ AS_HELP_STRING([--enable-doc], [Enable generation translating man pages and doc]),
|
||||
+ [enable_doc=no],
|
||||
+ [enable_doc=yes])
|
||||
+AS_IF([test "xPO4A" = "xno"], [AC_MSG_WARN([po4a not installed])],[])
|
||||
+AM_CONDITIONAL([HAVE_PO4A],[test "x$PO4A" != "xno" && test "x$enable_doc" != "xno"])
|
||||
+
|
||||
+
|
||||
|
||||
dnl Check for db_dump, db_load (optional).
|
||||
AC_CHECK_PROGS([DB_DUMP],
|
||||
@@ -641,6 +658,9 @@
|
||||
[])
|
||||
|
||||
dnl Readline.
|
||||
+dnl TODO - add ncurses LDFLGS separately
|
||||
+dnl build --without-redline in fact broken with -lncurses not inherited
|
||||
+
|
||||
AC_ARG_WITH([readline],
|
||||
[AS_HELP_STRING([--with-readline],
|
||||
[support fancy command line editing @<:@default=check@:>@])],
|
||||
@@ -894,11 +914,13 @@
|
||||
[test "x$RAKE" != "xno" && test -n "$HAVE_LIBRUBY"])
|
||||
|
||||
dnl Check for Java.
|
||||
-AC_ARG_WITH(java_home,
|
||||
- [AS_HELP_STRING([--with-java-home],
|
||||
- [specify path to JDK directory @<:@default=check@:>@])],
|
||||
- [],
|
||||
- [with_java_home=check])
|
||||
+AC_ARG_ENABLE([java],
|
||||
+ AS_HELP_STRING([--enable-java], [Disable Java language bindings]),
|
||||
+ [enable_java=no],
|
||||
+ [enable_java=yes])
|
||||
+
|
||||
+AS_IF([test "x$enable_java" = "xyes"],
|
||||
+ [
|
||||
|
||||
if test "x$with_java_home" != "xno"; then
|
||||
if test "x$with_java_home" != "xyes" && test "x$with_java_home" != "xcheck"
|
||||
@@ -1034,7 +1056,9 @@
|
||||
AC_SUBST(JNI_INSTALL_DIR)
|
||||
AC_SUBST(JNI_VERSION_INFO)
|
||||
|
||||
-AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC"])
|
||||
+
|
||||
+])
|
||||
+AM_CONDITIONAL([HAVE_JAVA],[test -n "$JAVAC" && test "x$enable_java" != "xno"])
|
||||
|
||||
dnl Check for Haskell (GHC).
|
||||
GHC=no
|
||||
@@ -1153,7 +1177,7 @@
|
||||
|
||||
dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files
|
||||
dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html
|
||||
-LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
|
||||
+dnl LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
|
||||
AC_SUBST([LIBTOOL])
|
||||
|
||||
dnl Produce output files.
|
@ -1,15 +0,0 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -384,6 +384,11 @@
|
||||
DISTRO=UBUNTU
|
||||
fi
|
||||
fi
|
||||
+
|
||||
+if test -f /etc/gentoo-release; then
|
||||
+ DISTRO=GENTOO
|
||||
+fi
|
||||
+
|
||||
if test -f /etc/arch-release; then
|
||||
DISTRO=ARCHLINUX
|
||||
fi
|
@ -1,34 +0,0 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -422,7 +422,7 @@
|
||||
AC_CHECK_FUNCS([aug_load aug_defvar aug_defnode])
|
||||
LIBS="$old_LIBS"
|
||||
],
|
||||
- [AC_MSG_WARN([augeas not found, some core features will be disabled])])
|
||||
+ [AC_MSG_ERROR([augeas not found, some core features will be disabled])])
|
||||
|
||||
dnl Check for libselinux (optional).
|
||||
AC_CHECK_HEADERS([selinux/selinux.h])
|
||||
@@ -496,11 +496,20 @@
|
||||
|
||||
dnl Check for optional xmllint.
|
||||
AC_CHECK_PROG([XMLLINT],[xmllint],[xmllint],[no])
|
||||
+AS_IF([test "xXMLLINT" = "xno"], [AC_MSG_ERROR([xmllint not installed])],[])
|
||||
+
|
||||
AM_CONDITIONAL([HAVE_XMLLINT],[test "x$XMLLINT" != "xno"])
|
||||
|
||||
dnl po4a for translating man pages and POD files (optional).
|
||||
AC_CHECK_PROG([PO4A],[po4a],[po4a],[no])
|
||||
-AM_CONDITIONAL([HAVE_PO4A], [test "x$PO4A" != "xno"])
|
||||
+
|
||||
+AC_ARG_ENABLE([doc],
|
||||
+ AS_HELP_STRING([--enable-doc], [Enable generation translating man pages and doc]),
|
||||
+ [enable_doc=no],
|
||||
+ [enable_doc=yes])
|
||||
+AS_IF([test "xPO4A" = "xno"], [AC_MSG_WARN([po4a not installed])],[])
|
||||
+AM_CONDITIONAL([HAVE_PO4A],[test "x$PO4A" != "xno" && test "x$enable_doc" != "xno"])
|
||||
+
|
||||
|
||||
dnl Check for db_dump, db_load (optional).
|
||||
AC_CHECK_PROGS([DB_DUMP],
|
@ -1,15 +0,0 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1351,8 +1351,9 @@
|
||||
|
||||
dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files
|
||||
dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html
|
||||
-LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
|
||||
-AC_SUBST([LIBTOOL])
|
||||
+#LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
|
||||
+#AC_SUBST([LIBTOOL])
|
||||
+LT_INIT
|
||||
|
||||
dnl Produce output files.
|
||||
AC_CONFIG_HEADERS([config.h])
|
@ -1,62 +0,0 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -524,29 +524,36 @@
|
||||
fi
|
||||
|
||||
dnl Check for netpbm programs (optional).
|
||||
-AC_CHECK_PROGS([PBMTEXT],[pbmtext],[no])
|
||||
-AC_CHECK_PROGS([PNMTOPNG],[pnmtopng],[no])
|
||||
-AC_CHECK_PROGS([BMPTOPNM],[bmptopnm],[no])
|
||||
-AC_CHECK_PROGS([PAMCUT],[pamcut],[no])
|
||||
-if test "x$PBMTEXT" != "xno"; then
|
||||
- AC_DEFINE_UNQUOTED([PBMTEXT],["$PBMTEXT"],[Name of pbmtext program.])
|
||||
-fi
|
||||
-if test "x$PNMTOPNG" != "xno"; then
|
||||
- AC_DEFINE_UNQUOTED([PNMTOPNG],["$PNMTOPNG"],[Name of pnmtopng program.])
|
||||
-fi
|
||||
-if test "x$BMPTOPNM" != "xno"; then
|
||||
- AC_DEFINE_UNQUOTED([BMPTOPNM],["$BMPTOPNM"],[Name of bmptopnm program.])
|
||||
-fi
|
||||
-if test "x$PAMCUT" != "xno"; then
|
||||
- AC_DEFINE_UNQUOTED([PAMCUT],["$PAMCUT"],[Name of pamcut program.])
|
||||
-fi
|
||||
+AC_ARG_ENABLE([icoutils],
|
||||
+ AS_HELP_STRING([with-icoutils], [ Enable ico and bmp icon file inspection]),
|
||||
+ [enable_icoutils=no],
|
||||
+ [enable_icoutils=yes])
|
||||
+AS_IF([test "enable_icoutils" != "xno"],
|
||||
+ [
|
||||
+ AC_CHECK_PROGS([PBMTEXT],[pbmtext],[no])
|
||||
+ AC_CHECK_PROGS([PNMTOPNG],[pnmtopng],[no])
|
||||
+ AC_CHECK_PROGS([BMPTOPNM],[bmptopnm],[no])
|
||||
+ AC_CHECK_PROGS([PAMCUT],[pamcut],[no])
|
||||
+ if test "x$PBMTEXT" != "xno"; then
|
||||
+ AC_DEFINE_UNQUOTED([PBMTEXT],["$PBMTEXT"],[Name of pbmtext program.])
|
||||
+ fi
|
||||
+ if test "x$PNMTOPNG" != "xno"; then
|
||||
+ AC_DEFINE_UNQUOTED([PNMTOPNG],["$PNMTOPNG"],[Name of pnmtopng program.])
|
||||
+ fi
|
||||
+ if test "x$BMPTOPNM" != "xno"; then
|
||||
+ AC_DEFINE_UNQUOTED([BMPTOPNM],["$BMPTOPNM"],[Name of bmptopnm program.])
|
||||
+ fi
|
||||
+ if test "x$PAMCUT" != "xno"; then
|
||||
+ AC_DEFINE_UNQUOTED([PAMCUT],["$PAMCUT"],[Name of pamcut program.])
|
||||
+ fi
|
||||
|
||||
-dnl Check for icoutils (optional).
|
||||
-AC_CHECK_PROGS([WRESTOOL],[wrestool],[no])
|
||||
-if test "x$WRESTOOL" != "xno"; then
|
||||
- AC_DEFINE_UNQUOTED([WRESTOOL],["$WRESTOOL"],[Name of wrestool program.])
|
||||
-fi
|
||||
-
|
||||
+ dnl Check for icoutils (optional).
|
||||
+ AC_CHECK_PROGS([WRESTOOL],[wrestool],[no])
|
||||
+ if test "x$WRESTOOL" != "xno"; then
|
||||
+ AC_DEFINE_UNQUOTED([WRESTOOL],["$WRESTOOL"],[Name of wrestool program.])
|
||||
+ fi
|
||||
+],
|
||||
+[])
|
||||
dnl Check for QEMU for running binaries on this $host_cpu, fall
|
||||
dnl back to basic 'qemu'. Allow the user to override it.
|
||||
qemu_system="`echo qemu-system-$host_cpu | $SED 's/i@<:@456@:>@86/i386/g'`"
|
@ -1,13 +0,0 @@
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -79,9 +79,6 @@
|
||||
if HAVE_HASKELL
|
||||
SUBDIRS += haskell
|
||||
endif
|
||||
-if HAVE_PHP
|
||||
-SUBDIRS += php
|
||||
-endif
|
||||
if HAVE_ERLANG
|
||||
SUBDIRS += erlang erlang/examples
|
||||
endif
|
@ -1,104 +0,0 @@
|
||||
diff --git a/modules/linux/vmxnet/vmxnet.c b/modules/linux/vmxnet/vmxnet.c
|
||||
index a6f5740..3c75bb2 100644
|
||||
--- a/modules/linux/vmxnet/vmxnet.c
|
||||
+++ b/modules/linux/vmxnet/vmxnet.c
|
||||
@@ -989,7 +989,7 @@ vmxnet_probe_device(struct pci_dev *pdev, // IN: vmxnet PCI device
|
||||
.ndo_start_xmit = &vmxnet_start_tx,
|
||||
.ndo_stop = &vmxnet_close,
|
||||
.ndo_get_stats = &vmxnet_get_stats,
|
||||
- .ndo_set_multicast_list = &vmxnet_set_multicast_list,
|
||||
+ .ndo_set_rx_mode = &vmxnet_set_multicast_list,
|
||||
.ndo_change_mtu = &vmxnet_change_mtu,
|
||||
# ifdef VMW_HAVE_POLL_CONTROLLER
|
||||
.ndo_poll_controller = vmxnet_netpoll,
|
||||
@@ -2033,21 +2033,23 @@ vmxnet_map_pkt(struct sk_buff *skb,
|
||||
offset -= skb_headlen(skb);
|
||||
|
||||
for ( ; nextFrag < skb_shinfo(skb)->nr_frags; nextFrag++){
|
||||
+ int fragSize;
|
||||
frag = &skb_shinfo(skb)->frags[nextFrag];
|
||||
+ fragSize = skb_frag_size(frag);
|
||||
|
||||
// skip those frags that are completely copied
|
||||
- if (offset >= frag->size){
|
||||
- offset -= frag->size;
|
||||
+ if (offset >= fragSize){
|
||||
+ offset -= fragSize;
|
||||
} else {
|
||||
// map the part of the frag that is not copied
|
||||
dma = pci_map_page(lp->pdev,
|
||||
- frag->page,
|
||||
+ frag->page.p,
|
||||
frag->page_offset + offset,
|
||||
- frag->size - offset,
|
||||
+ fragSize - offset,
|
||||
PCI_DMA_TODEVICE);
|
||||
- VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, frag->size - offset);
|
||||
+ VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, fragSize - offset);
|
||||
VMXNET_LOG("vmxnet_map_tx: txRing[%u].sg[%d] -> frag[%d]+%u (%uB)\n",
|
||||
- dd->txDriverNext, nextSg, nextFrag, offset, frag->size - offset);
|
||||
+ dd->txDriverNext, nextSg, nextFrag, offset, fragSize - offset);
|
||||
nextSg++;
|
||||
nextFrag++;
|
||||
|
||||
@@ -2058,11 +2060,14 @@ vmxnet_map_pkt(struct sk_buff *skb,
|
||||
|
||||
// map the remaining frags, we might need to use additional tx entries
|
||||
for ( ; nextFrag < skb_shinfo(skb)->nr_frags; nextFrag++) {
|
||||
+ int fragSize;
|
||||
frag = &skb_shinfo(skb)->frags[nextFrag];
|
||||
+ fragSize = skb_frag_size(frag);
|
||||
+
|
||||
dma = pci_map_page(lp->pdev,
|
||||
- frag->page,
|
||||
+ frag->page.p,
|
||||
frag->page_offset,
|
||||
- frag->size,
|
||||
+ fragSize,
|
||||
PCI_DMA_TODEVICE);
|
||||
|
||||
if (nextSg == VMXNET2_SG_DEFAULT_LENGTH) {
|
||||
@@ -2091,9 +2096,9 @@ vmxnet_map_pkt(struct sk_buff *skb,
|
||||
|
||||
nextSg = 0;
|
||||
}
|
||||
- VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, frag->size);
|
||||
+ VMXNET_FILL_SG(xre->sg.sg[nextSg], dma, fragSize);
|
||||
VMXNET_LOG("vmxnet_map_tx: txRing[%u].sg[%d] -> frag[%d] (%uB)\n",
|
||||
- dd->txDriverNext, nextSg, nextFrag, frag->size);
|
||||
+ dd->txDriverNext, nextSg, nextFrag, fragSize);
|
||||
nextSg++;
|
||||
}
|
||||
|
||||
@@ -2548,7 +2553,7 @@ vmxnet_rx_frags(Vmxnet_Private *lp, struct sk_buff *skb)
|
||||
if (UNLIKELY(newPage == NULL)) {
|
||||
skb_shinfo(skb)->nr_frags = numFrags;
|
||||
skb->len += skb->data_len;
|
||||
- skb->truesize += skb->data_len;
|
||||
+ skb->truesize += PAGE_SIZE;
|
||||
|
||||
compat_dev_kfree_skb(skb, FREE_WRITE);
|
||||
|
||||
@@ -2558,10 +2563,12 @@ vmxnet_rx_frags(Vmxnet_Private *lp, struct sk_buff *skb)
|
||||
}
|
||||
|
||||
pci_unmap_page(pdev, rre2->paddr, PAGE_SIZE, PCI_DMA_FROMDEVICE);
|
||||
- skb_shinfo(skb)->frags[numFrags].page = lp->rxPages[dd->rxDriverNext2];
|
||||
+ __skb_frag_set_page(&skb_shinfo(skb)->frags[numFrags],
|
||||
+ lp->rxPages[dd->rxDriverNext2]);
|
||||
skb_shinfo(skb)->frags[numFrags].page_offset = 0;
|
||||
skb_shinfo(skb)->frags[numFrags].size = rre2->actualLength;
|
||||
skb->data_len += rre2->actualLength;
|
||||
+ skb->truesize += PAGE_SIZE;
|
||||
numFrags++;
|
||||
|
||||
/* refill the buffer */
|
||||
@@ -2579,7 +2586,7 @@ vmxnet_rx_frags(Vmxnet_Private *lp, struct sk_buff *skb)
|
||||
VMXNET_ASSERT(numFrags > 0);
|
||||
skb_shinfo(skb)->nr_frags = numFrags;
|
||||
skb->len += skb->data_len;
|
||||
- skb->truesize += skb->data_len;
|
||||
+ skb->truesize += PAGE_SIZE;
|
||||
VMXNET_LOG("vmxnet_rx: %dB from rxRing[%d](%dB)+rxRing2[%d, %d)(%dB)\n",
|
||||
skb->len, dd->rxDriverNext, skb_headlen(skb),
|
||||
firstFrag, dd->rxDriverNext2, skb->data_len);
|
@ -1,168 +0,0 @@
|
||||
--- makefile.orig 2009-01-04 15:20:55.353840670 +0100
|
||||
+++ makefile 2009-01-04 15:22:32.340991641 +0100
|
||||
@@ -10,7 +10,8 @@
|
||||
else
|
||||
OS_CCDEFS = -D_GNU_SOURCE
|
||||
endif
|
||||
-CC = gcc -std=c99 -O2 -U__STRICT_ANSI__ -g -lm -lrt $(OS_CCDEFS) -I .
|
||||
+CC := $(CC) -std=c99 -U__STRICT_ANSI__ $(OS_CCDEFS) -I. $(CFLAGS)
|
||||
+LIBS = -lm -lrt
|
||||
ifeq ($(USE_NETWORK),)
|
||||
else
|
||||
NETWORK_OPT = -DUSE_NETWORK -DNEED_PCAP_SENDPACKET -lpcap
|
||||
@@ -256,129 +257,129 @@
|
||||
pdp1 : ${BIN}pdp1${EXE}
|
||||
|
||||
${BIN}pdp1${EXE} : ${PDP1} ${SIM}
|
||||
- ${CC} ${PDP1} ${SIM} ${PDP1_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP1} ${SIM} ${PDP1_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp4 : ${BIN}pdp4${EXE}
|
||||
|
||||
${BIN}pdp4${EXE} : ${PDP18B} ${SIM}
|
||||
- ${CC} ${PDP18B} ${SIM} ${PDP4_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP18B} ${SIM} ${PDP4_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp7 : ${BIN}pdp7${EXE}
|
||||
|
||||
${BIN}pdp7${EXE} : ${PDP18B} ${SIM}
|
||||
- ${CC} ${PDP18B} ${SIM} ${PDP7_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP18B} ${SIM} ${PDP7_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp8 : ${BIN}pdp8${EXE}
|
||||
|
||||
${BIN}pdp8${EXE} : ${PDP8} ${SIM}
|
||||
- ${CC} ${PDP8} ${SIM} ${PDP8_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP8} ${SIM} ${PDP8_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp9 : ${BIN}pdp9${EXE}
|
||||
|
||||
${BIN}pdp9${EXE} : ${PDP18B} ${SIM}
|
||||
- ${CC} ${PDP18B} ${SIM} ${PDP9_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP18B} ${SIM} ${PDP9_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp15 : ${BIN}pdp15${EXE}
|
||||
|
||||
${BIN}pdp15${EXE} : ${PDP18B} ${SIM}
|
||||
- ${CC} ${PDP18B} ${SIM} ${PDP15_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP18B} ${SIM} ${PDP15_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp10 : ${BIN}pdp10${EXE}
|
||||
|
||||
${BIN}pdp10${EXE} : ${PDP10} ${SIM}
|
||||
- ${CC} ${PDP10} ${SIM} ${PDP10_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP10} ${SIM} ${PDP10_OPT} -o $@ $(LIBS)
|
||||
|
||||
pdp11 : ${BIN}pdp11${EXE}
|
||||
|
||||
${BIN}pdp11${EXE} : ${PDP11} ${SIM}
|
||||
- ${CC} ${PDP11} ${SIM} ${PDP11_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${PDP11} ${SIM} ${PDP11_OPT} -o $@ $(LIBS)
|
||||
|
||||
vax : ${BIN}vax${EXE}
|
||||
|
||||
${BIN}vax${EXE} : ${VAX} ${SIM}
|
||||
- ${CC} ${VAX} ${SIM} ${VAX_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${VAX} ${SIM} ${VAX_OPT} -o $@ $(LIBS)
|
||||
|
||||
vax780 : ${BIN}vax780${EXE}
|
||||
|
||||
${BIN}vax780${EXE} : ${VAX780} ${SIM}
|
||||
- ${CC} ${VAX780} ${SIM} ${VAX780_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${VAX780} ${SIM} ${VAX780_OPT} -o $@ $(LIBS)
|
||||
|
||||
nova : ${BIN}nova${EXE}
|
||||
|
||||
${BIN}nova${EXE} : ${NOVA} ${SIM}
|
||||
- ${CC} ${NOVA} ${SIM} ${NOVA_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${NOVA} ${SIM} ${NOVA_OPT} -o $@ $(LIBS)
|
||||
|
||||
eclipse : ${BIN}eclipse${EXE}
|
||||
|
||||
${BIN}eclipse${EXE} : ${ECLIPSE} ${SIM}
|
||||
- ${CC} ${ECLIPSE} ${SIM} ${ECLIPSE_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${ECLIPSE} ${SIM} ${ECLIPSE_OPT} -o $@ $(LIBS)
|
||||
|
||||
h316 : ${BIN}h316${EXE}
|
||||
|
||||
${BIN}h316${EXE} : ${H316} ${SIM}
|
||||
- ${CC} ${H316} ${SIM} ${H316_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${H316} ${SIM} ${H316_OPT} -o $@ $(LIBS)
|
||||
|
||||
hp2100 : ${BIN}hp2100${EXE}
|
||||
|
||||
${BIN}hp2100${EXE} : ${HP2100} ${SIM}
|
||||
- ${CC} ${HP2100} ${SIM} ${HP2100_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${HP2100} ${SIM} ${HP2100_OPT} -o $@ $(LIBS)
|
||||
|
||||
i1401 : ${BIN}i1401${EXE}
|
||||
|
||||
${BIN}i1401${EXE} : ${I1401} ${SIM}
|
||||
- ${CC} ${I1401} ${SIM} ${I1401_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${I1401} ${SIM} ${I1401_OPT} -o $@ $(LIBS)
|
||||
|
||||
i1620 : ${BIN}i1620${EXE}
|
||||
|
||||
${BIN}i1620${EXE} : ${I1620} ${SIM}
|
||||
- ${CC} ${I1620} ${SIM} ${I1620_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${I1620} ${SIM} ${I1620_OPT} -o $@ $(LIBS)
|
||||
|
||||
i7094 : ${BIN}i7094${EXE}
|
||||
|
||||
${BIN}i7094${EXE} : ${I7094} ${SIM}
|
||||
- ${CC} ${I7094} ${SIM} ${I7094_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${I7094} ${SIM} ${I7094_OPT} -o $@ $(LIBS)
|
||||
|
||||
ibm1130 : ${BIN}ibm1130${EXE}
|
||||
|
||||
${BIN}ibm1130${EXE} : ${IBM1130}
|
||||
- ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${IBM1130} ${SIM} ${IBM1130_OPT} -o $@ $(LIBS)
|
||||
|
||||
s3 : ${BIN}s3${EXE}
|
||||
|
||||
${BIN}s3${EXE} : ${S3} ${SIM}
|
||||
- ${CC} ${S3} ${SIM} ${S3_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${S3} ${SIM} ${S3_OPT} -o $@ $(LIBS)
|
||||
|
||||
altair : ${BIN}altair${EXE}
|
||||
|
||||
${BIN}altair${EXE} : ${ALTAIR} ${SIM}
|
||||
- ${CC} ${ALTAIR} ${SIM} ${ALTAIR_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${ALTAIR} ${SIM} ${ALTAIR_OPT} -o $@ $(LIBS)
|
||||
|
||||
altairz80 : ${BIN}altairz80${EXE}
|
||||
|
||||
${BIN}altairz80${EXE} : ${ALTAIRZ80} ${SIM}
|
||||
- ${CC} ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} -o $@ $(LIBS)
|
||||
|
||||
gri : ${BIN}gri${EXE}
|
||||
|
||||
${BIN}gri${EXE} : ${GRI} ${SIM}
|
||||
- ${CC} ${GRI} ${SIM} ${GRI_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${GRI} ${SIM} ${GRI_OPT} -o $@ $(LIBS)
|
||||
|
||||
lgp : ${BIN}lgp${EXE}
|
||||
|
||||
${BIN}lgp${EXE} : ${LGP} ${SIM}
|
||||
- ${CC} ${LGP} ${SIM} ${LGP_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${LGP} ${SIM} ${LGP_OPT} -o $@ $(LIBS)
|
||||
|
||||
id16 : ${BIN}id16${EXE}
|
||||
|
||||
${BIN}id16${EXE} : ${ID16} ${SIM}
|
||||
- ${CC} ${ID16} ${SIM} ${ID16_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${ID16} ${SIM} ${ID16_OPT} -o $@ $(LIBS)
|
||||
|
||||
id32 : ${BIN}id32${EXE}
|
||||
|
||||
${BIN}id32${EXE} : ${ID32} ${SIM}
|
||||
- ${CC} ${ID32} ${SIM} ${ID32_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${ID32} ${SIM} ${ID32_OPT} -o $@ $(LIBS)
|
||||
|
||||
sds : ${BIN}sds${EXE}
|
||||
|
||||
${BIN}sds${EXE} : ${SDS} ${SIM}
|
||||
- ${CC} ${SDS} ${SIM} ${SDS_OPT} -o $@ ${LDFLAGS}
|
||||
+ ${CC} $(LDFLAGS) ${SDS} ${SIM} ${SDS_OPT} -o $@ $(LIBS)
|
@ -1,13 +0,0 @@
|
||||
we don't link against libgnome, but we do gtk, so fix the pkg-config call
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -148,7 +148,7 @@ AC_HELP_STRING([--with-gtk],
|
||||
)
|
||||
|
||||
if test "x$with_gtk" = "xyes"; then
|
||||
- PKG_CHECK_MODULES([GSKI], [libglade-2.0 libgnomeui-2.0 >= 1.110.0])
|
||||
+ PKG_CHECK_MODULES([GSKI], [libglade-2.0 gtk+-2.0])
|
||||
AC_DEFINE(HAVE_GTK, 1, [define if you have GTK support])
|
||||
fi
|
||||
AC_SUBST(GSKI_CFLAGS)
|
@ -1,21 +0,0 @@
|
||||
From 2ffbca210033be262fc75e6a73742e0f0e6d5242 Mon Sep 17 00:00:00 2001
|
||||
From: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
Date: Mon, 11 Apr 2011 10:44:10 +0000
|
||||
Subject: controller: add missing spice/types include
|
||||
|
||||
---
|
||||
diff --git a/spice/controller_prot.h b/spice/controller_prot.h
|
||||
index 38329c5..697baa0 100644
|
||||
--- a/spice/controller_prot.h
|
||||
+++ b/spice/controller_prot.h
|
||||
@@ -18,6 +18,8 @@
|
||||
#ifndef _H_CONTROLLER_PROT
|
||||
#define _H_CONTROLLER_PROT
|
||||
|
||||
+#include <spice/types.h>
|
||||
+
|
||||
#define CONTROLLER_MAGIC (*(uint32_t*)"CTRL")
|
||||
#define CONTROLLER_VERSION 1
|
||||
|
||||
--
|
||||
cgit v0.8.3-6-g21f6
|
@ -1,21 +0,0 @@
|
||||
From: Richard Jones <rjones@redhat.com>
|
||||
Date: Wed, 30 Dec 2009 12:15:25 +0000 (+0000)
|
||||
Subject: Install virt-what in $sbindir since the script should only be run by root (suggested...
|
||||
X-Git-Url: http://git.annexia.org/?p=virt-what.git;a=commitdiff_plain;h=25ec46454ca3aec7886d45ee4d99d7db330c34f7
|
||||
|
||||
Install virt-what in $sbindir since the script should only be run by root (suggested by Laurent Léonard)
|
||||
---
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 8efacb9..5f76d8f 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -21,7 +21,7 @@ CLEANFILES = virt-what.1 virt-what.txt
|
||||
|
||||
AM_CPPFLAGS = -Wall
|
||||
|
||||
-bin_SCRIPTS = virt-what
|
||||
+sbin_SCRIPTS = virt-what
|
||||
libexec_PROGRAMS = virt-what-cpuid-helper
|
||||
|
||||
man_MANS = virt-what.1
|
@ -1,40 +0,0 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.initd,v 1.2 2012/01/15 19:42:39 tove Exp $
|
||||
|
||||
depend() {
|
||||
need localmount
|
||||
before xdm
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting VirtualBox guest additions"
|
||||
|
||||
einfo " Loading kernel modules"
|
||||
/sbin/modprobe vboxguest &> /dev/null
|
||||
/sbin/modprobe vboxsf &> /dev/null
|
||||
|
||||
start-stop-daemon --start --make-pidfile \
|
||||
--exec /usr/sbin/vboxguest-service --pidfile /var/run/vboxguest-service.pid \
|
||||
--name vboxguest-service \
|
||||
--background -- \
|
||||
--foreground
|
||||
|
||||
eend $? "Failed to start vboxguest-service"
|
||||
}
|
||||
|
||||
stop() {
|
||||
local retval=1
|
||||
ebegin "Stopping VirtualBox guest additions"
|
||||
|
||||
start-stop-daemon --stop --quiet \
|
||||
--pidfile /var/run/vboxguest-service.pid --name vboxguest-service \
|
||||
&& retval=0
|
||||
|
||||
einfo "Removing kernel modules"
|
||||
/sbin/modprobe -r vboxsf &> /dev/null
|
||||
/sbin/modprobe -r vboxguest &> /dev/null
|
||||
|
||||
eend ${retval} "Failed to stop vboxguest-service"
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Create a virtualbox modules tarball from a VirtualBox binary package.
|
||||
# We cannot download the package by this script because of the unpredictable
|
||||
# build number being in the filename.
|
||||
#
|
||||
# usage: create_vbox_modules_tarball.sh VirtualBox-4.1.18-78361-Linux_amd64.run
|
||||
|
||||
[ -f "$1" ] || exit 1
|
||||
|
||||
VBOX_PACKAGE="$1"
|
||||
VERSION_SUFFIX=""
|
||||
|
||||
if [[ ${VBOX_PACKAGE} = *_BETA* ]] || [[ ${VBOX_PACKAGE} = *_RC* ]] ; then
|
||||
VERSION_SUFFIX="$(echo ${VBOX_PACKAGE} | sed 's@.*VirtualBox-[[:digit:]\.]\+\(_[[:alpha:]]\+[[:digit:]]\).*@\L\1@')"
|
||||
|
||||
fi
|
||||
|
||||
VBOX_VER="$(echo ${VBOX_PACKAGE} | sed 's@.*VirtualBox-\([[:digit:]\.]\+\).*@\1@')${VERSION_SUFFIX}"
|
||||
|
||||
|
||||
sh ${VBOX_PACKAGE} --noexec --keep --nox11 || exit 2
|
||||
cd install || exit 3
|
||||
tar -xaf VirtualBox.tar.bz2 || exit 4
|
||||
cd src/vboxhost || exit 5
|
||||
tar -cvJf ../../../vbox-kernel-module-src-${VBOX_VER}.tar.xz . || exit 6
|
||||
cd ../../.. && rm install -rf
|
||||
|
||||
exit 0
|
@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=VMWare Player
|
||||
Type=Application
|
||||
Comment=Emulate a complete PC on your PC without the usual performance overhead of most emulators
|
||||
MimeType=application/x-vmware-vm-legacy;application/x-vmware-team;application/x-vmware-vm-clone;application/x-vmware-vm;application/x-vmware-vm-clone;application/x-vmware-vm;application/x-vmware-vm-clone;application/x-vmware-vm;application/x-vmware-vmdisk;application/x-vmware-team;application/x-vmware-vmfoundry;application/x-vmware-vm;application/x-vmware-snapshot;
|
||||
Exec=vmplayer
|
||||
TryExec=vmplayer
|
||||
Icon=vmware-player
|
||||
Categories=System;
|
@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=VMWare Workstation
|
||||
Type=Application
|
||||
Comment=Emulate a complete PC on your PC without the usual performance overhead of most emulators
|
||||
MimeType=application/x-vmware-vm-legacy;application/x-vmware-team;application/x-vmware-vm-clone;application/x-vmware-vm;application/x-vmware-vm-clone;application/x-vmware-vm;application/x-vmware-vm-clone;application/x-vmware-vm;application/x-vmware-vmdisk;application/x-vmware-team;application/x-vmware-vmfoundry;application/x-vmware-vm;application/x-vmware-snapshot;
|
||||
Exec=vmware
|
||||
TryExec=vmware
|
||||
Icon=vmware-workstation
|
||||
Categories=System;
|
@ -1,73 +0,0 @@
|
||||
diff --git a/tools/ocaml/libs/xb/partial.ml b/tools/ocaml/libs/xb/partial.ml
|
||||
index 3558889..d4d1c7b 100644
|
||||
--- a/tools/ocaml/libs/xb/partial.ml
|
||||
+++ b/tools/ocaml/libs/xb/partial.ml
|
||||
@@ -27,8 +27,15 @@ external header_size: unit -> int = "stub_header_size"
|
||||
external header_of_string_internal: string -> int * int * int * int
|
||||
= "stub_header_of_string"
|
||||
|
||||
+let xenstore_payload_max = 4096 (* xen/include/public/io/xs_wire.h *)
|
||||
+
|
||||
let of_string s =
|
||||
let tid, rid, opint, dlen = header_of_string_internal s in
|
||||
+ (* A packet which is bigger than xenstore_payload_max is illegal.
|
||||
+ This will leave the guest connection is a bad state and will
|
||||
+ be hard to recover from without restarting the connection
|
||||
+ (ie rebooting the guest) *)
|
||||
+ let dlen = min xenstore_payload_max dlen in
|
||||
{
|
||||
tid = tid;
|
||||
rid = rid;
|
||||
@@ -38,6 +45,7 @@ let of_string s =
|
||||
}
|
||||
|
||||
let append pkt s sz =
|
||||
+ if pkt.len > 4096 then failwith "Buffer.add: cannot grow buffer";
|
||||
Buffer.add_string pkt.buf (String.sub s 0 sz)
|
||||
|
||||
let to_complete pkt =
|
||||
diff --git a/tools/ocaml/libs/xb/xs_ring_stubs.c b/tools/ocaml/libs/xb/xs_ring_stubs.c
|
||||
index 00414c5..4888ac5 100644
|
||||
--- a/tools/ocaml/libs/xb/xs_ring_stubs.c
|
||||
+++ b/tools/ocaml/libs/xb/xs_ring_stubs.c
|
||||
@@ -39,21 +39,23 @@ static int xs_ring_read(struct mmap_interface *interface,
|
||||
char *buffer, int len)
|
||||
{
|
||||
struct xenstore_domain_interface *intf = interface->addr;
|
||||
- XENSTORE_RING_IDX cons, prod;
|
||||
+ XENSTORE_RING_IDX cons, prod; /* offsets only */
|
||||
int to_read;
|
||||
|
||||
- cons = intf->req_cons;
|
||||
- prod = intf->req_prod;
|
||||
+ cons = *(volatile uint32*)&intf->req_cons;
|
||||
+ prod = *(volatile uint32*)&intf->req_prod;
|
||||
xen_mb();
|
||||
+ cons = MASK_XENSTORE_IDX(cons);
|
||||
+ prod = MASK_XENSTORE_IDX(prod);
|
||||
if (prod == cons)
|
||||
return 0;
|
||||
- if (MASK_XENSTORE_IDX(prod) > MASK_XENSTORE_IDX(cons))
|
||||
+ if (prod > cons)
|
||||
to_read = prod - cons;
|
||||
else
|
||||
- to_read = XENSTORE_RING_SIZE - MASK_XENSTORE_IDX(cons);
|
||||
+ to_read = XENSTORE_RING_SIZE - cons;
|
||||
if (to_read < len)
|
||||
len = to_read;
|
||||
- memcpy(buffer, intf->req + MASK_XENSTORE_IDX(cons), len);
|
||||
+ memcpy(buffer, intf->req + cons, len);
|
||||
xen_mb();
|
||||
intf->req_cons += len;
|
||||
return len;
|
||||
@@ -66,8 +68,8 @@ static int xs_ring_write(struct mmap_interface *interface,
|
||||
XENSTORE_RING_IDX cons, prod;
|
||||
int can_write;
|
||||
|
||||
- cons = intf->rsp_cons;
|
||||
- prod = intf->rsp_prod;
|
||||
+ cons = *(volatile uint32*)&intf->rsp_cons;
|
||||
+ prod = *(volatile uint32*)&intf->rsp_prod;
|
||||
xen_mb();
|
||||
if ( (prod - cons) >= XENSTORE_RING_SIZE )
|
||||
return 0;
|
@ -1,293 +0,0 @@
|
||||
x86: fix various issues with handling guest IRQs
|
||||
|
||||
- properly revoke IRQ access in map_domain_pirq() error path
|
||||
- don't permit replacing an in use IRQ
|
||||
- don't accept inputs in the GSI range for MAP_PIRQ_TYPE_MSI
|
||||
- track IRQ access permission in host IRQ terms, not guest IRQ ones
|
||||
(and with that, also disallow Dom0 access to IRQ0)
|
||||
|
||||
This is CVE-2013-1919 / XSA-46.
|
||||
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
|
||||
|
||||
--- a/tools/libxl/libxl_create.c
|
||||
+++ b/tools/libxl/libxl_create.c
|
||||
@@ -968,14 +968,16 @@ static void domcreate_launch_dm(libxl__e
|
||||
}
|
||||
|
||||
for (i = 0; i < d_config->b_info.num_irqs; i++) {
|
||||
- uint32_t irq = d_config->b_info.irqs[i];
|
||||
+ int irq = d_config->b_info.irqs[i];
|
||||
|
||||
- LOG(DEBUG, "dom%d irq %"PRIx32, domid, irq);
|
||||
+ LOG(DEBUG, "dom%d irq %d", domid, irq);
|
||||
|
||||
- ret = xc_domain_irq_permission(CTX->xch, domid, irq, 1);
|
||||
+ ret = irq >= 0 ? xc_physdev_map_pirq(CTX->xch, domid, irq, &irq)
|
||||
+ : -EOVERFLOW;
|
||||
+ if (!ret)
|
||||
+ ret = xc_domain_irq_permission(CTX->xch, domid, irq, 1);
|
||||
if ( ret<0 ){
|
||||
- LOGE(ERROR,
|
||||
- "failed give dom%d access to irq %"PRId32, domid, irq);
|
||||
+ LOGE(ERROR, "failed give dom%d access to irq %d", domid, irq);
|
||||
ret = ERROR_FAIL;
|
||||
}
|
||||
}
|
||||
--- a/tools/python/xen/xend/server/irqif.py
|
||||
+++ b/tools/python/xen/xend/server/irqif.py
|
||||
@@ -73,6 +73,12 @@ class IRQController(DevController):
|
||||
|
||||
pirq = get_param('irq')
|
||||
|
||||
+ rc = xc.physdev_map_pirq(domid = self.getDomid(),
|
||||
+ index = pirq,
|
||||
+ pirq = pirq)
|
||||
+ if rc < 0:
|
||||
+ raise VmError('irq: Failed to map irq %x' % (pirq))
|
||||
+
|
||||
rc = xc.domain_irq_permission(domid = self.getDomid(),
|
||||
pirq = pirq,
|
||||
allow_access = True)
|
||||
@@ -81,12 +87,6 @@ class IRQController(DevController):
|
||||
#todo non-fatal
|
||||
raise VmError(
|
||||
'irq: Failed to configure irq: %d' % (pirq))
|
||||
- rc = xc.physdev_map_pirq(domid = self.getDomid(),
|
||||
- index = pirq,
|
||||
- pirq = pirq)
|
||||
- if rc < 0:
|
||||
- raise VmError(
|
||||
- 'irq: Failed to map irq %x' % (pirq))
|
||||
back = dict([(k, config[k]) for k in self.valid_cfg if k in config])
|
||||
return (self.allocateDeviceID(), back, {})
|
||||
|
||||
--- a/xen/arch/x86/domain_build.c
|
||||
+++ b/xen/arch/x86/domain_build.c
|
||||
@@ -1219,7 +1219,7 @@ int __init construct_dom0(
|
||||
/* DOM0 is permitted full I/O capabilities. */
|
||||
rc |= ioports_permit_access(dom0, 0, 0xFFFF);
|
||||
rc |= iomem_permit_access(dom0, 0UL, ~0UL);
|
||||
- rc |= irqs_permit_access(dom0, 0, d->nr_pirqs - 1);
|
||||
+ rc |= irqs_permit_access(dom0, 1, nr_irqs_gsi - 1);
|
||||
|
||||
/*
|
||||
* Modify I/O port access permissions.
|
||||
--- a/xen/arch/x86/domctl.c
|
||||
+++ b/xen/arch/x86/domctl.c
|
||||
@@ -772,9 +772,13 @@ long arch_do_domctl(
|
||||
goto bind_out;
|
||||
|
||||
ret = -EPERM;
|
||||
- if ( !IS_PRIV(current->domain) &&
|
||||
- !irq_access_permitted(current->domain, bind->machine_irq) )
|
||||
- goto bind_out;
|
||||
+ if ( !IS_PRIV(current->domain) )
|
||||
+ {
|
||||
+ int irq = domain_pirq_to_irq(d, bind->machine_irq);
|
||||
+
|
||||
+ if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
|
||||
+ goto bind_out;
|
||||
+ }
|
||||
|
||||
ret = -ESRCH;
|
||||
if ( iommu_enabled )
|
||||
@@ -803,9 +807,13 @@ long arch_do_domctl(
|
||||
bind = &(domctl->u.bind_pt_irq);
|
||||
|
||||
ret = -EPERM;
|
||||
- if ( !IS_PRIV(current->domain) &&
|
||||
- !irq_access_permitted(current->domain, bind->machine_irq) )
|
||||
- goto unbind_out;
|
||||
+ if ( !IS_PRIV(current->domain) )
|
||||
+ {
|
||||
+ int irq = domain_pirq_to_irq(d, bind->machine_irq);
|
||||
+
|
||||
+ if ( irq <= 0 || !irq_access_permitted(current->domain, irq) )
|
||||
+ goto unbind_out;
|
||||
+ }
|
||||
|
||||
if ( iommu_enabled )
|
||||
{
|
||||
--- a/xen/arch/x86/irq.c
|
||||
+++ b/xen/arch/x86/irq.c
|
||||
@@ -184,6 +184,14 @@ int create_irq(int node)
|
||||
desc->arch.used = IRQ_UNUSED;
|
||||
irq = ret;
|
||||
}
|
||||
+ else if ( dom0 )
|
||||
+ {
|
||||
+ ret = irq_permit_access(dom0, irq);
|
||||
+ if ( ret )
|
||||
+ printk(XENLOG_G_ERR
|
||||
+ "Could not grant Dom0 access to IRQ%d (error %d)\n",
|
||||
+ irq, ret);
|
||||
+ }
|
||||
|
||||
return irq;
|
||||
}
|
||||
@@ -280,6 +288,17 @@ void clear_irq_vector(int irq)
|
||||
void destroy_irq(unsigned int irq)
|
||||
{
|
||||
BUG_ON(!MSI_IRQ(irq));
|
||||
+
|
||||
+ if ( dom0 )
|
||||
+ {
|
||||
+ int err = irq_deny_access(dom0, irq);
|
||||
+
|
||||
+ if ( err )
|
||||
+ printk(XENLOG_G_ERR
|
||||
+ "Could not revoke Dom0 access to IRQ%u (error %d)\n",
|
||||
+ irq, err);
|
||||
+ }
|
||||
+
|
||||
dynamic_irq_cleanup(irq);
|
||||
clear_irq_vector(irq);
|
||||
}
|
||||
@@ -1858,7 +1877,7 @@ int map_domain_pirq(
|
||||
|
||||
if ( !IS_PRIV(current->domain) &&
|
||||
!(IS_PRIV_FOR(current->domain, d) &&
|
||||
- irq_access_permitted(current->domain, pirq)))
|
||||
+ irq_access_permitted(current->domain, irq)))
|
||||
return -EPERM;
|
||||
|
||||
if ( pirq < 0 || pirq >= d->nr_pirqs || irq < 0 || irq >= nr_irqs )
|
||||
@@ -1887,17 +1906,18 @@ int map_domain_pirq(
|
||||
return ret;
|
||||
}
|
||||
|
||||
- ret = irq_permit_access(d, pirq);
|
||||
+ ret = irq_permit_access(d, irq);
|
||||
if ( ret )
|
||||
{
|
||||
- dprintk(XENLOG_G_ERR, "dom%d: could not permit access to irq %d\n",
|
||||
- d->domain_id, pirq);
|
||||
+ printk(XENLOG_G_ERR
|
||||
+ "dom%d: could not permit access to IRQ%d (pirq %d)\n",
|
||||
+ d->domain_id, irq, pirq);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = prepare_domain_irq_pirq(d, irq, pirq, &info);
|
||||
if ( ret )
|
||||
- return ret;
|
||||
+ goto revoke;
|
||||
|
||||
desc = irq_to_desc(irq);
|
||||
|
||||
@@ -1921,8 +1941,14 @@ int map_domain_pirq(
|
||||
spin_lock_irqsave(&desc->lock, flags);
|
||||
|
||||
if ( desc->handler != &no_irq_type )
|
||||
+ {
|
||||
+ spin_unlock_irqrestore(&desc->lock, flags);
|
||||
dprintk(XENLOG_G_ERR, "dom%d: irq %d in use\n",
|
||||
d->domain_id, irq);
|
||||
+ pci_disable_msi(msi_desc);
|
||||
+ ret = -EBUSY;
|
||||
+ goto done;
|
||||
+ }
|
||||
setup_msi_handler(desc, msi_desc);
|
||||
|
||||
if ( opt_irq_vector_map == OPT_IRQ_VECTOR_MAP_PERDEV
|
||||
@@ -1951,7 +1977,14 @@ int map_domain_pirq(
|
||||
|
||||
done:
|
||||
if ( ret )
|
||||
+ {
|
||||
cleanup_domain_irq_pirq(d, irq, info);
|
||||
+ revoke:
|
||||
+ if ( irq_deny_access(d, irq) )
|
||||
+ printk(XENLOG_G_ERR
|
||||
+ "dom%d: could not revoke access to IRQ%d (pirq %d)\n",
|
||||
+ d->domain_id, irq, pirq);
|
||||
+ }
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -2017,10 +2050,11 @@ int unmap_domain_pirq(struct domain *d,
|
||||
if ( !forced_unbind )
|
||||
cleanup_domain_irq_pirq(d, irq, info);
|
||||
|
||||
- ret = irq_deny_access(d, pirq);
|
||||
+ ret = irq_deny_access(d, irq);
|
||||
if ( ret )
|
||||
- dprintk(XENLOG_G_ERR, "dom%d: could not deny access to irq %d\n",
|
||||
- d->domain_id, pirq);
|
||||
+ printk(XENLOG_G_ERR
|
||||
+ "dom%d: could not deny access to IRQ%d (pirq %d)\n",
|
||||
+ d->domain_id, irq, pirq);
|
||||
|
||||
done:
|
||||
return ret;
|
||||
--- a/xen/arch/x86/physdev.c
|
||||
+++ b/xen/arch/x86/physdev.c
|
||||
@@ -147,7 +147,7 @@ int physdev_map_pirq(domid_t domid, int
|
||||
if ( irq == -1 )
|
||||
irq = create_irq(NUMA_NO_NODE);
|
||||
|
||||
- if ( irq < 0 || irq >= nr_irqs )
|
||||
+ if ( irq < nr_irqs_gsi || irq >= nr_irqs )
|
||||
{
|
||||
dprintk(XENLOG_G_ERR, "dom%d: can't create irq for msi!\n",
|
||||
d->domain_id);
|
||||
--- a/xen/common/domctl.c
|
||||
+++ b/xen/common/domctl.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <xen/paging.h>
|
||||
#include <xen/hypercall.h>
|
||||
#include <asm/current.h>
|
||||
+#include <asm/irq.h>
|
||||
#include <asm/page.h>
|
||||
#include <public/domctl.h>
|
||||
#include <xsm/xsm.h>
|
||||
@@ -897,9 +898,9 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
|
||||
else if ( xsm_irq_permission(d, pirq, allow) )
|
||||
ret = -EPERM;
|
||||
else if ( allow )
|
||||
- ret = irq_permit_access(d, pirq);
|
||||
+ ret = pirq_permit_access(d, pirq);
|
||||
else
|
||||
- ret = irq_deny_access(d, pirq);
|
||||
+ ret = pirq_deny_access(d, pirq);
|
||||
|
||||
rcu_unlock_domain(d);
|
||||
}
|
||||
--- a/xen/common/event_channel.c
|
||||
+++ b/xen/common/event_channel.c
|
||||
@@ -369,7 +369,7 @@ static long evtchn_bind_pirq(evtchn_bind
|
||||
if ( (pirq < 0) || (pirq >= d->nr_pirqs) )
|
||||
return -EINVAL;
|
||||
|
||||
- if ( !is_hvm_domain(d) && !irq_access_permitted(d, pirq) )
|
||||
+ if ( !is_hvm_domain(d) && !pirq_access_permitted(d, pirq) )
|
||||
return -EPERM;
|
||||
|
||||
spin_lock(&d->event_lock);
|
||||
--- a/xen/include/xen/iocap.h
|
||||
+++ b/xen/include/xen/iocap.h
|
||||
@@ -28,4 +28,22 @@
|
||||
#define irq_access_permitted(d, i) \
|
||||
rangeset_contains_singleton((d)->irq_caps, i)
|
||||
|
||||
+#define pirq_permit_access(d, i) ({ \
|
||||
+ struct domain *d__ = (d); \
|
||||
+ int i__ = domain_pirq_to_irq(d__, i); \
|
||||
+ i__ > 0 ? rangeset_add_singleton(d__->irq_caps, i__)\
|
||||
+ : -EINVAL; \
|
||||
+})
|
||||
+#define pirq_deny_access(d, i) ({ \
|
||||
+ struct domain *d__ = (d); \
|
||||
+ int i__ = domain_pirq_to_irq(d__, i); \
|
||||
+ i__ > 0 ? rangeset_remove_singleton(d__->irq_caps, i__)\
|
||||
+ : -EINVAL; \
|
||||
+})
|
||||
+#define pirq_access_permitted(d, i) ({ \
|
||||
+ struct domain *d__ = (d); \
|
||||
+ rangeset_contains_singleton(d__->irq_caps, \
|
||||
+ domain_pirq_to_irq(d__, i));\
|
||||
+})
|
||||
+
|
||||
#endif /* __XEN_IOCAP_H__ */
|
@ -1,41 +0,0 @@
|
||||
diff -ur xen-4.2.1.orig/xen/drivers/passthrough/vtd/intremap.c xen-4.2.1/xen/drivers/passthrough/vtd/intremap.c
|
||||
--- xen/drivers/passthrough/vtd/intremap.c 2012-12-17 23:01:55.000000000 +0800
|
||||
+++ xen/drivers/passthrough/vtd/intremap.c 2013-05-15 23:09:06.704546506 +0800
|
||||
@@ -440,16 +440,17 @@
|
||||
type = pdev_type(seg, bus, devfn);
|
||||
switch ( type )
|
||||
{
|
||||
+ case DEV_TYPE_PCIe_ENDPOINT:
|
||||
case DEV_TYPE_PCIe_BRIDGE:
|
||||
case DEV_TYPE_PCIe2PCI_BRIDGE:
|
||||
- case DEV_TYPE_LEGACY_PCI_BRIDGE:
|
||||
- break;
|
||||
|
||||
- case DEV_TYPE_PCIe_ENDPOINT:
|
||||
set_ire_sid(ire, SVT_VERIFY_SID_SQ, SQ_ALL_16, PCI_BDF2(bus, devfn));
|
||||
break;
|
||||
|
||||
case DEV_TYPE_PCI:
|
||||
+ case DEV_TYPE_LEGACY_PCI_BRIDGE:
|
||||
+ /* case DEV_TYPE_PCI2PCIe_BRIDGE: */
|
||||
+
|
||||
ret = find_upstream_bridge(seg, &bus, &devfn, &secbus);
|
||||
if ( ret == 0 ) /* integrated PCI device */
|
||||
{
|
||||
@@ -461,10 +462,15 @@
|
||||
if ( pdev_type(seg, bus, devfn) == DEV_TYPE_PCIe2PCI_BRIDGE )
|
||||
set_ire_sid(ire, SVT_VERIFY_BUS, SQ_ALL_16,
|
||||
(bus << 8) | pdev->bus);
|
||||
- else if ( pdev_type(seg, bus, devfn) == DEV_TYPE_LEGACY_PCI_BRIDGE )
|
||||
+ else
|
||||
set_ire_sid(ire, SVT_VERIFY_BUS, SQ_ALL_16,
|
||||
PCI_BDF2(bus, devfn));
|
||||
}
|
||||
+ else
|
||||
+ dprintk(XENLOG_WARNING VTDPREFIX,
|
||||
+ "d%d: no upstream bridge for %04x:%02x:%02x.%u\n",
|
||||
+ pdev->domain->domain_id,
|
||||
+ seg, bus, PCI_SLOT(devfn), PCI_FUNC(devfn));
|
||||
break;
|
||||
|
||||
default:
|
@ -1,252 +0,0 @@
|
||||
From 3fb6ccf2faccaf5e22e33a3155ccc72d732896d8 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||
Date: Fri, 14 Jun 2013 16:43:18 +0100
|
||||
Subject: [PATCH 14/23] libelf: use C99 bool for booleans
|
||||
|
||||
We want to remove uses of "int" because signed integers have
|
||||
undesirable undefined behaviours on overflow. Malicious compilers can
|
||||
turn apparently-correct code into code with security vulnerabilities
|
||||
etc.
|
||||
|
||||
In this patch we change all the booleans in libelf to C99 bool,
|
||||
from <stdbool.h>.
|
||||
|
||||
For the one visible libelf boolean in libxc's public interface we
|
||||
retain the use of int to avoid changing the ABI; libxc converts it to
|
||||
a bool for consumption by libelf.
|
||||
|
||||
It is OK to change all values only ever used as booleans to _Bool
|
||||
(bool) because conversion from any scalar type to a _Bool works the
|
||||
same as the boolean test in if() or ?: and is always defined (C99
|
||||
6.3.1.2). But we do need to check that all these variables really are
|
||||
only ever used that way. (It is theoretically possible that the old
|
||||
code truncated some 64-bit values to 32-bit ints which might become
|
||||
zero depending on the value, which would mean a behavioural change in
|
||||
this patch, but it seems implausible that treating 0x????????00000000
|
||||
as false could have been intended.)
|
||||
|
||||
This is part of the fix to a security issue, XSA-55.
|
||||
|
||||
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
|
||||
---
|
||||
tools/libxc/xc_dom_elfloader.c | 8 ++++----
|
||||
xen/common/libelf/libelf-dominfo.c | 2 +-
|
||||
xen/common/libelf/libelf-loader.c | 4 ++--
|
||||
xen/common/libelf/libelf-private.h | 2 +-
|
||||
xen/common/libelf/libelf-tools.c | 10 +++++-----
|
||||
xen/include/xen/libelf.h | 18 ++++++++++--------
|
||||
6 files changed, 23 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/tools/libxc/xc_dom_elfloader.c b/tools/libxc/xc_dom_elfloader.c
|
||||
index 4fb4da2..9ba64ae 100644
|
||||
--- a/tools/libxc/xc_dom_elfloader.c
|
||||
+++ b/tools/libxc/xc_dom_elfloader.c
|
||||
@@ -34,7 +34,7 @@
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
static void log_callback(struct elf_binary *elf, void *caller_data,
|
||||
- int iserr, const char *fmt, va_list al) {
|
||||
+ bool iserr, const char *fmt, va_list al) {
|
||||
xc_interface *xch = caller_data;
|
||||
|
||||
xc_reportv(xch,
|
||||
@@ -46,7 +46,7 @@ static void log_callback(struct elf_binary *elf, void *caller_data,
|
||||
|
||||
void xc_elf_set_logfile(xc_interface *xch, struct elf_binary *elf,
|
||||
int verbose) {
|
||||
- elf_set_log(elf, log_callback, xch, verbose);
|
||||
+ elf_set_log(elf, log_callback, xch, verbose /* convert to bool */);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
@@ -84,7 +84,7 @@ static char *xc_dom_guest_type(struct xc_dom_image *dom,
|
||||
/* ------------------------------------------------------------------------ */
|
||||
/* parse elf binary */
|
||||
|
||||
-static int check_elf_kernel(struct xc_dom_image *dom, int verbose)
|
||||
+static int check_elf_kernel(struct xc_dom_image *dom, bool verbose)
|
||||
{
|
||||
if ( dom->kernel_blob == NULL )
|
||||
{
|
||||
@@ -112,7 +112,7 @@ static int xc_dom_probe_elf_kernel(struct xc_dom_image *dom)
|
||||
}
|
||||
|
||||
static int xc_dom_load_elf_symtab(struct xc_dom_image *dom,
|
||||
- struct elf_binary *elf, int load)
|
||||
+ struct elf_binary *elf, bool load)
|
||||
{
|
||||
struct elf_binary syms;
|
||||
ELF_HANDLE_DECL_NONCONST(elf_shdr) shdr; ELF_HANDLE_DECL(elf_shdr) shdr2;
|
||||
diff --git a/xen/common/libelf/libelf-dominfo.c b/xen/common/libelf/libelf-dominfo.c
|
||||
index 98c80dc..12b6c2a 100644
|
||||
--- a/xen/common/libelf/libelf-dominfo.c
|
||||
+++ b/xen/common/libelf/libelf-dominfo.c
|
||||
@@ -101,7 +101,7 @@ int elf_xen_parse_note(struct elf_binary *elf,
|
||||
/* *INDENT-OFF* */
|
||||
static const struct {
|
||||
char *name;
|
||||
- int str;
|
||||
+ bool str;
|
||||
} note_desc[] = {
|
||||
[XEN_ELFNOTE_ENTRY] = { "ENTRY", 0},
|
||||
[XEN_ELFNOTE_HYPERCALL_PAGE] = { "HYPERCALL_PAGE", 0},
|
||||
diff --git a/xen/common/libelf/libelf-loader.c b/xen/common/libelf/libelf-loader.c
|
||||
index f8be635..0dccd4d 100644
|
||||
--- a/xen/common/libelf/libelf-loader.c
|
||||
+++ b/xen/common/libelf/libelf-loader.c
|
||||
@@ -92,7 +92,7 @@ int elf_init(struct elf_binary *elf, const char *image_input, size_t size)
|
||||
}
|
||||
|
||||
#ifndef __XEN__
|
||||
-void elf_call_log_callback(struct elf_binary *elf, int iserr,
|
||||
+void elf_call_log_callback(struct elf_binary *elf, bool iserr,
|
||||
const char *fmt,...) {
|
||||
va_list al;
|
||||
|
||||
@@ -107,7 +107,7 @@ void elf_call_log_callback(struct elf_binary *elf, int iserr,
|
||||
}
|
||||
|
||||
void elf_set_log(struct elf_binary *elf, elf_log_callback *log_callback,
|
||||
- void *log_caller_data, int verbose)
|
||||
+ void *log_caller_data, bool verbose)
|
||||
{
|
||||
elf->log_callback = log_callback;
|
||||
elf->log_caller_data = log_caller_data;
|
||||
diff --git a/xen/common/libelf/libelf-private.h b/xen/common/libelf/libelf-private.h
|
||||
index 280dfd1..277be04 100644
|
||||
--- a/xen/common/libelf/libelf-private.h
|
||||
+++ b/xen/common/libelf/libelf-private.h
|
||||
@@ -77,7 +77,7 @@
|
||||
#define elf_err(elf, fmt, args ... ) \
|
||||
elf_call_log_callback(elf, 1, fmt , ## args );
|
||||
|
||||
-void elf_call_log_callback(struct elf_binary*, int iserr, const char *fmt,...);
|
||||
+void elf_call_log_callback(struct elf_binary*, bool iserr, const char *fmt,...);
|
||||
|
||||
#define safe_strcpy(d,s) \
|
||||
do { strncpy((d),(s),sizeof((d))-1); \
|
||||
diff --git a/xen/common/libelf/libelf-tools.c b/xen/common/libelf/libelf-tools.c
|
||||
index 744027e..fa58f76 100644
|
||||
--- a/xen/common/libelf/libelf-tools.c
|
||||
+++ b/xen/common/libelf/libelf-tools.c
|
||||
@@ -31,7 +31,7 @@ const char *elf_check_broken(const struct elf_binary *elf)
|
||||
return elf->broken;
|
||||
}
|
||||
|
||||
-static int elf_ptrval_in_range(elf_ptrval ptrval, uint64_t size,
|
||||
+static bool elf_ptrval_in_range(elf_ptrval ptrval, uint64_t size,
|
||||
const void *region, uint64_t regionsize)
|
||||
/*
|
||||
* Returns true if the putative memory area [ptrval,ptrval+size>
|
||||
@@ -53,7 +53,7 @@ static int elf_ptrval_in_range(elf_ptrval ptrval, uint64_t size,
|
||||
return 1;
|
||||
}
|
||||
|
||||
-int elf_access_ok(struct elf_binary * elf,
|
||||
+bool elf_access_ok(struct elf_binary * elf,
|
||||
uint64_t ptrval, size_t size)
|
||||
{
|
||||
if ( elf_ptrval_in_range(ptrval, size, elf->image_base, elf->size) )
|
||||
@@ -92,7 +92,7 @@ uint64_t elf_access_unsigned(struct elf_binary * elf, elf_ptrval base,
|
||||
uint64_t moreoffset, size_t size)
|
||||
{
|
||||
elf_ptrval ptrval = base + moreoffset;
|
||||
- int need_swap = elf_swap(elf);
|
||||
+ bool need_swap = elf_swap(elf);
|
||||
const uint8_t *u8;
|
||||
const uint16_t *u16;
|
||||
const uint32_t *u32;
|
||||
@@ -332,7 +332,7 @@ ELF_HANDLE_DECL(elf_note) elf_note_next(struct elf_binary *elf, ELF_HANDLE_DECL(
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
-int elf_is_elfbinary(const void *image_start, size_t image_size)
|
||||
+bool elf_is_elfbinary(const void *image_start, size_t image_size)
|
||||
{
|
||||
const Elf32_Ehdr *ehdr = image_start;
|
||||
|
||||
@@ -342,7 +342,7 @@ int elf_is_elfbinary(const void *image_start, size_t image_size)
|
||||
return IS_ELF(*ehdr);
|
||||
}
|
||||
|
||||
-int elf_phdr_is_loadable(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr) phdr)
|
||||
+bool elf_phdr_is_loadable(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr) phdr)
|
||||
{
|
||||
uint64_t p_type = elf_uval(elf, phdr, p_type);
|
||||
uint64_t p_flags = elf_uval(elf, phdr, p_flags);
|
||||
diff --git a/xen/include/xen/libelf.h b/xen/include/xen/libelf.h
|
||||
index ac93858..951430f 100644
|
||||
--- a/xen/include/xen/libelf.h
|
||||
+++ b/xen/include/xen/libelf.h
|
||||
@@ -29,6 +29,8 @@
|
||||
#error define architectural endianness
|
||||
#endif
|
||||
|
||||
+#include <stdbool.h>
|
||||
+
|
||||
#undef ELFSIZE
|
||||
#include "elfstructs.h"
|
||||
#ifdef __XEN__
|
||||
@@ -42,7 +44,7 @@
|
||||
|
||||
struct elf_binary;
|
||||
typedef void elf_log_callback(struct elf_binary*, void *caller_data,
|
||||
- int iserr, const char *fmt, va_list al);
|
||||
+ bool iserr, const char *fmt, va_list al);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -237,7 +239,7 @@ struct elf_binary {
|
||||
elf_log_callback *log_callback;
|
||||
void *log_caller_data;
|
||||
#endif
|
||||
- int verbose;
|
||||
+ bool verbose;
|
||||
const char *broken;
|
||||
};
|
||||
|
||||
@@ -301,8 +303,8 @@ void elf_memset_safe(struct elf_binary*, elf_ptrval dst, int c, size_t);
|
||||
* outside permitted areas.
|
||||
*/
|
||||
|
||||
-int elf_access_ok(struct elf_binary * elf,
|
||||
- uint64_t ptrval, size_t size);
|
||||
+bool elf_access_ok(struct elf_binary * elf,
|
||||
+ uint64_t ptrval, size_t size);
|
||||
|
||||
#define elf_store_val(elf, type, ptr, val) \
|
||||
({ \
|
||||
@@ -351,9 +353,9 @@ uint64_t elf_note_numeric_array(struct elf_binary *, ELF_HANDLE_DECL(elf_note),
|
||||
ELF_HANDLE_DECL(elf_note) elf_note_next(struct elf_binary *elf, ELF_HANDLE_DECL(elf_note) note);
|
||||
|
||||
/* (Only) checks that the image has the right magic number. */
|
||||
-int elf_is_elfbinary(const void *image_start, size_t image_size);
|
||||
+bool elf_is_elfbinary(const void *image_start, size_t image_size);
|
||||
|
||||
-int elf_phdr_is_loadable(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr) phdr);
|
||||
+bool elf_phdr_is_loadable(struct elf_binary *elf, ELF_HANDLE_DECL(elf_phdr) phdr);
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
/* xc_libelf_loader.c */
|
||||
@@ -367,7 +369,7 @@ int elf_init(struct elf_binary *elf, const char *image, size_t size);
|
||||
void elf_set_verbose(struct elf_binary *elf);
|
||||
#else
|
||||
void elf_set_log(struct elf_binary *elf, elf_log_callback*,
|
||||
- void *log_caller_pointer, int verbose);
|
||||
+ void *log_caller_pointer, bool verbose);
|
||||
#endif
|
||||
|
||||
void elf_parse_binary(struct elf_binary *elf);
|
||||
@@ -419,7 +421,7 @@ struct elf_dom_parms {
|
||||
char xen_ver[16];
|
||||
char loader[16];
|
||||
int pae;
|
||||
- int bsd_symtab;
|
||||
+ bool bsd_symtab;
|
||||
uint64_t virt_base;
|
||||
uint64_t virt_entry;
|
||||
uint64_t virt_hypercall;
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -1,382 +0,0 @@
|
||||
From 77c0829fa751f052f7b8ec08287aef6e7ba97bc5 Mon Sep 17 00:00:00 2001
|
||||
From: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||
Date: Fri, 14 Jun 2013 16:43:19 +0100
|
||||
Subject: [PATCH 19/23] libxc: check failure of xc_dom_*_to_ptr, xc_map_foreign_range
|
||||
|
||||
The return values from xc_dom_*_to_ptr and xc_map_foreign_range are
|
||||
sometimes dereferenced, or subjected to pointer arithmetic, without
|
||||
checking whether the relevant function failed and returned NULL.
|
||||
|
||||
Add an appropriate error check at every call site.
|
||||
|
||||
Changes in the 4.2 backport of this series:
|
||||
* Fix tools/libxc/xc_dom_x86.c:setup_pgtables_x86_32.
|
||||
* Fix tools/libxc/xc_dom_ia64.c:start_info_ia64.
|
||||
* Fix tools/libxc/ia64/xc_ia64_dom_fwloader.c:xc_dom_load_fw_kernel.
|
||||
|
||||
This is part of the fix to a security issue, XSA-55.
|
||||
|
||||
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||
---
|
||||
tools/libxc/ia64/xc_ia64_dom_fwloader.c | 2 +
|
||||
tools/libxc/xc_dom_binloader.c | 6 +++
|
||||
tools/libxc/xc_dom_core.c | 6 +++
|
||||
tools/libxc/xc_dom_elfloader.c | 13 +++++++
|
||||
tools/libxc/xc_dom_ia64.c | 6 +++
|
||||
tools/libxc/xc_dom_x86.c | 55 +++++++++++++++++++++++++++++++
|
||||
tools/libxc/xc_domain_restore.c | 27 +++++++++++++++
|
||||
tools/libxc/xc_offline_page.c | 5 +++
|
||||
8 files changed, 120 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/tools/libxc/ia64/xc_ia64_dom_fwloader.c b/tools/libxc/ia64/xc_ia64_dom_fwloader.c
|
||||
index cdf3333..dbd3349 100644
|
||||
--- a/tools/libxc/ia64/xc_ia64_dom_fwloader.c
|
||||
+++ b/tools/libxc/ia64/xc_ia64_dom_fwloader.c
|
||||
@@ -60,6 +60,8 @@ static int xc_dom_load_fw_kernel(struct xc_dom_image *dom)
|
||||
unsigned long i;
|
||||
|
||||
dest = xc_dom_vaddr_to_ptr(dom, dom->kernel_seg.vstart);
|
||||
+ if ( dest == NULL )
|
||||
+ return -1;
|
||||
memcpy(dest, dom->kernel_blob, FW_SIZE);
|
||||
|
||||
/* Synchronize cache. */
|
||||
diff --git a/tools/libxc/xc_dom_binloader.c b/tools/libxc/xc_dom_binloader.c
|
||||
index 8596a28..553b366 100644
|
||||
--- a/tools/libxc/xc_dom_binloader.c
|
||||
+++ b/tools/libxc/xc_dom_binloader.c
|
||||
@@ -277,6 +277,12 @@ static int xc_dom_load_bin_kernel(struct xc_dom_image *dom)
|
||||
DOMPRINTF(" bss_size: 0x%" PRIx32 "", bss_size);
|
||||
|
||||
dest = xc_dom_vaddr_to_ptr(dom, dom->kernel_seg.vstart, &dest_size);
|
||||
+ if ( dest == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_vaddr_to_ptr(dom, dom->kernel_seg.vstart)"
|
||||
+ " => NULL", __FUNCTION__);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
|
||||
if ( dest_size < text_size ||
|
||||
dest_size - text_size < bss_size )
|
||||
diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
|
||||
index 8913e41..a54ddae 100644
|
||||
--- a/tools/libxc/xc_dom_core.c
|
||||
+++ b/tools/libxc/xc_dom_core.c
|
||||
@@ -868,6 +868,12 @@ int xc_dom_build_image(struct xc_dom_image *dom)
|
||||
ramdisklen) != 0 )
|
||||
goto err;
|
||||
ramdiskmap = xc_dom_seg_to_ptr(dom, &dom->ramdisk_seg);
|
||||
+ if ( ramdiskmap == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_seg_to_ptr(dom, &dom->ramdisk_seg) => NULL",
|
||||
+ __FUNCTION__);
|
||||
+ goto err;
|
||||
+ }
|
||||
if ( unziplen )
|
||||
{
|
||||
if ( xc_dom_do_gunzip(dom->xch,
|
||||
diff --git a/tools/libxc/xc_dom_elfloader.c b/tools/libxc/xc_dom_elfloader.c
|
||||
index 9fc4b94..61b5798 100644
|
||||
--- a/tools/libxc/xc_dom_elfloader.c
|
||||
+++ b/tools/libxc/xc_dom_elfloader.c
|
||||
@@ -139,6 +139,12 @@ static elf_errorstatus xc_dom_load_elf_symtab(struct xc_dom_image *dom,
|
||||
return 0;
|
||||
size = dom->kernel_seg.vend - dom->bsd_symtab_start;
|
||||
hdr_ptr = xc_dom_vaddr_to_ptr(dom, dom->bsd_symtab_start, &allow_size);
|
||||
+ if ( hdr_ptr == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s/load: xc_dom_vaddr_to_ptr(dom,dom->bsd_symtab_start"
|
||||
+ " => NULL", __FUNCTION__);
|
||||
+ return -1;
|
||||
+ }
|
||||
elf->caller_xdest_base = hdr_ptr;
|
||||
elf->caller_xdest_size = allow_size;
|
||||
hdr = ELF_REALPTR2PTRVAL(hdr_ptr);
|
||||
@@ -384,7 +390,14 @@ static elf_errorstatus xc_dom_load_elf_kernel(struct xc_dom_image *dom)
|
||||
xen_pfn_t pages;
|
||||
|
||||
elf->dest_base = xc_dom_seg_to_ptr_pages(dom, &dom->kernel_seg, &pages);
|
||||
+ if ( elf->dest_base == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_vaddr_to_ptr(dom,dom->kernel_seg)"
|
||||
+ " => NULL", __FUNCTION__);
|
||||
+ return -1;
|
||||
+ }
|
||||
elf->dest_size = pages * XC_DOM_PAGE_SIZE(dom);
|
||||
+
|
||||
rc = elf_load_binary(elf);
|
||||
if ( rc < 0 )
|
||||
{
|
||||
diff --git a/tools/libxc/xc_dom_ia64.c b/tools/libxc/xc_dom_ia64.c
|
||||
index dcd1523..7c0eff1 100644
|
||||
--- a/tools/libxc/xc_dom_ia64.c
|
||||
+++ b/tools/libxc/xc_dom_ia64.c
|
||||
@@ -60,6 +60,12 @@ int start_info_ia64(struct xc_dom_image *dom)
|
||||
|
||||
DOMPRINTF_CALLED(dom->xch);
|
||||
|
||||
+ if ( start_info == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_pfn_to_ptr failed on start_info", __FUNCTION__);
|
||||
+ return -1; /* our caller throws away our return value :-/ */
|
||||
+ }
|
||||
+
|
||||
memset(start_info, 0, sizeof(*start_info));
|
||||
sprintf(start_info->magic, dom->guest_type);
|
||||
start_info->flags = dom->flags;
|
||||
diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c
|
||||
index 0cf1687..75d6b83 100644
|
||||
--- a/tools/libxc/xc_dom_x86.c
|
||||
+++ b/tools/libxc/xc_dom_x86.c
|
||||
@@ -144,6 +144,9 @@ static int setup_pgtables_x86_32(struct xc_dom_image *dom)
|
||||
xen_vaddr_t addr;
|
||||
xen_pfn_t pgpfn;
|
||||
|
||||
+ if ( l2tab == NULL )
|
||||
+ goto pfn_error;
|
||||
+
|
||||
for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end;
|
||||
addr += PAGE_SIZE_X86 )
|
||||
{
|
||||
@@ -151,6 +154,8 @@ static int setup_pgtables_x86_32(struct xc_dom_image *dom)
|
||||
{
|
||||
/* get L1 tab, make L2 entry */
|
||||
l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1);
|
||||
+ if ( l1tab == NULL )
|
||||
+ goto pfn_error;
|
||||
l2off = l2_table_offset_i386(addr);
|
||||
l2tab[l2off] =
|
||||
pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT;
|
||||
@@ -169,6 +174,11 @@ static int setup_pgtables_x86_32(struct xc_dom_image *dom)
|
||||
l1tab = NULL;
|
||||
}
|
||||
return 0;
|
||||
+
|
||||
+pfn_error:
|
||||
+ xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
|
||||
+ "%s: xc_dom_pfn_to_ptr failed", __FUNCTION__);
|
||||
+ return -EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -219,6 +229,12 @@ static xen_pfn_t move_l3_below_4G(struct xc_dom_image *dom,
|
||||
goto out;
|
||||
|
||||
l3tab = xc_dom_pfn_to_ptr(dom, l3pfn, 1);
|
||||
+ if ( l3tab == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_pfn_to_ptr(dom, l3pfn, 1) => NULL",
|
||||
+ __FUNCTION__);
|
||||
+ return l3mfn; /* our one call site will call xc_dom_panic and fail */
|
||||
+ }
|
||||
memset(l3tab, 0, XC_DOM_PAGE_SIZE(dom));
|
||||
|
||||
DOMPRINTF("%s: successfully relocated L3 below 4G. "
|
||||
@@ -262,6 +278,8 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom)
|
||||
}
|
||||
|
||||
l3tab = xc_dom_pfn_to_ptr(dom, l3pfn, 1);
|
||||
+ if ( l3tab == NULL )
|
||||
+ goto pfn_error;
|
||||
|
||||
for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end;
|
||||
addr += PAGE_SIZE_X86 )
|
||||
@@ -270,6 +288,8 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom)
|
||||
{
|
||||
/* get L2 tab, make L3 entry */
|
||||
l2tab = xc_dom_pfn_to_ptr(dom, l2pfn, 1);
|
||||
+ if ( l2tab == NULL )
|
||||
+ goto pfn_error;
|
||||
l3off = l3_table_offset_pae(addr);
|
||||
l3tab[l3off] =
|
||||
pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT;
|
||||
@@ -280,6 +300,8 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom)
|
||||
{
|
||||
/* get L1 tab, make L2 entry */
|
||||
l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1);
|
||||
+ if ( l1tab == NULL )
|
||||
+ goto pfn_error;
|
||||
l2off = l2_table_offset_pae(addr);
|
||||
l2tab[l2off] =
|
||||
pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT;
|
||||
@@ -306,6 +328,11 @@ static int setup_pgtables_x86_32_pae(struct xc_dom_image *dom)
|
||||
l3tab[3] = pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT;
|
||||
}
|
||||
return 0;
|
||||
+
|
||||
+pfn_error:
|
||||
+ xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
|
||||
+ "%s: xc_dom_pfn_to_ptr failed", __FUNCTION__);
|
||||
+ return -EINVAL;
|
||||
}
|
||||
|
||||
#undef L1_PROT
|
||||
@@ -344,6 +371,9 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom)
|
||||
uint64_t addr;
|
||||
xen_pfn_t pgpfn;
|
||||
|
||||
+ if ( l4tab == NULL )
|
||||
+ goto pfn_error;
|
||||
+
|
||||
for ( addr = dom->parms.virt_base; addr < dom->virt_pgtab_end;
|
||||
addr += PAGE_SIZE_X86 )
|
||||
{
|
||||
@@ -351,6 +381,8 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom)
|
||||
{
|
||||
/* get L3 tab, make L4 entry */
|
||||
l3tab = xc_dom_pfn_to_ptr(dom, l3pfn, 1);
|
||||
+ if ( l3tab == NULL )
|
||||
+ goto pfn_error;
|
||||
l4off = l4_table_offset_x86_64(addr);
|
||||
l4tab[l4off] =
|
||||
pfn_to_paddr(xc_dom_p2m_guest(dom, l3pfn)) | L4_PROT;
|
||||
@@ -361,6 +393,8 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom)
|
||||
{
|
||||
/* get L2 tab, make L3 entry */
|
||||
l2tab = xc_dom_pfn_to_ptr(dom, l2pfn, 1);
|
||||
+ if ( l2tab == NULL )
|
||||
+ goto pfn_error;
|
||||
l3off = l3_table_offset_x86_64(addr);
|
||||
l3tab[l3off] =
|
||||
pfn_to_paddr(xc_dom_p2m_guest(dom, l2pfn)) | L3_PROT;
|
||||
@@ -373,6 +407,8 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom)
|
||||
{
|
||||
/* get L1 tab, make L2 entry */
|
||||
l1tab = xc_dom_pfn_to_ptr(dom, l1pfn, 1);
|
||||
+ if ( l1tab == NULL )
|
||||
+ goto pfn_error;
|
||||
l2off = l2_table_offset_x86_64(addr);
|
||||
l2tab[l2off] =
|
||||
pfn_to_paddr(xc_dom_p2m_guest(dom, l1pfn)) | L2_PROT;
|
||||
@@ -393,6 +429,11 @@ static int setup_pgtables_x86_64(struct xc_dom_image *dom)
|
||||
l1tab = NULL;
|
||||
}
|
||||
return 0;
|
||||
+
|
||||
+pfn_error:
|
||||
+ xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
|
||||
+ "%s: xc_dom_pfn_to_ptr failed", __FUNCTION__);
|
||||
+ return -EINVAL;
|
||||
}
|
||||
|
||||
#undef L1_PROT
|
||||
@@ -410,6 +451,8 @@ static int alloc_magic_pages(struct xc_dom_image *dom)
|
||||
if ( xc_dom_alloc_segment(dom, &dom->p2m_seg, "phys2mach", 0, p2m_size) )
|
||||
return -1;
|
||||
dom->p2m_guest = xc_dom_seg_to_ptr(dom, &dom->p2m_seg);
|
||||
+ if ( dom->p2m_guest == NULL )
|
||||
+ return -1;
|
||||
|
||||
/* allocate special pages */
|
||||
dom->start_info_pfn = xc_dom_alloc_page(dom, "start info");
|
||||
@@ -434,6 +477,12 @@ static int start_info_x86_32(struct xc_dom_image *dom)
|
||||
|
||||
DOMPRINTF_CALLED(dom->xch);
|
||||
|
||||
+ if ( start_info == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_pfn_to_ptr failed on start_info", __FUNCTION__);
|
||||
+ return -1; /* our caller throws away our return value :-/ */
|
||||
+ }
|
||||
+
|
||||
memset(start_info, 0, sizeof(*start_info));
|
||||
strncpy(start_info->magic, dom->guest_type, sizeof(start_info->magic));
|
||||
start_info->magic[sizeof(start_info->magic) - 1] = '\0';
|
||||
@@ -474,6 +523,12 @@ static int start_info_x86_64(struct xc_dom_image *dom)
|
||||
|
||||
DOMPRINTF_CALLED(dom->xch);
|
||||
|
||||
+ if ( start_info == NULL )
|
||||
+ {
|
||||
+ DOMPRINTF("%s: xc_dom_pfn_to_ptr failed on start_info", __FUNCTION__);
|
||||
+ return -1; /* our caller throws away our return value :-/ */
|
||||
+ }
|
||||
+
|
||||
memset(start_info, 0, sizeof(*start_info));
|
||||
strncpy(start_info->magic, dom->guest_type, sizeof(start_info->magic));
|
||||
start_info->magic[sizeof(start_info->magic) - 1] = '\0';
|
||||
diff --git a/tools/libxc/xc_domain_restore.c b/tools/libxc/xc_domain_restore.c
|
||||
index b4c0b10..3994f8f 100644
|
||||
--- a/tools/libxc/xc_domain_restore.c
|
||||
+++ b/tools/libxc/xc_domain_restore.c
|
||||
@@ -1556,6 +1556,12 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
|
||||
mfn = ctx->p2m[pfn];
|
||||
buf = xc_map_foreign_range(xch, dom, PAGE_SIZE,
|
||||
PROT_READ | PROT_WRITE, mfn);
|
||||
+ if ( buf == NULL )
|
||||
+ {
|
||||
+ ERROR("xc_map_foreign_range for generation id"
|
||||
+ " buffer failed");
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
generationid = *(unsigned long long *)(buf + offset);
|
||||
*(unsigned long long *)(buf + offset) = generationid + 1;
|
||||
@@ -1713,6 +1719,11 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
|
||||
l3tab = (uint64_t *)
|
||||
xc_map_foreign_range(xch, dom, PAGE_SIZE,
|
||||
PROT_READ, ctx->p2m[i]);
|
||||
+ if ( l3tab == NULL )
|
||||
+ {
|
||||
+ PERROR("xc_map_foreign_range failed (for l3tab)");
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
for ( j = 0; j < 4; j++ )
|
||||
l3ptes[j] = l3tab[j];
|
||||
@@ -1739,6 +1750,11 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
|
||||
l3tab = (uint64_t *)
|
||||
xc_map_foreign_range(xch, dom, PAGE_SIZE,
|
||||
PROT_READ | PROT_WRITE, ctx->p2m[i]);
|
||||
+ if ( l3tab == NULL )
|
||||
+ {
|
||||
+ PERROR("xc_map_foreign_range failed (for l3tab, 2nd)");
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
for ( j = 0; j < 4; j++ )
|
||||
l3tab[j] = l3ptes[j];
|
||||
@@ -1909,6 +1925,12 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
|
||||
SET_FIELD(ctxt, user_regs.edx, mfn);
|
||||
start_info = xc_map_foreign_range(
|
||||
xch, dom, PAGE_SIZE, PROT_READ | PROT_WRITE, mfn);
|
||||
+ if ( start_info == NULL )
|
||||
+ {
|
||||
+ PERROR("xc_map_foreign_range failed (for start_info)");
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
SET_FIELD(start_info, nr_pages, dinfo->p2m_size);
|
||||
SET_FIELD(start_info, shared_info, shared_info_frame<<PAGE_SHIFT);
|
||||
SET_FIELD(start_info, flags, 0);
|
||||
@@ -2056,6 +2078,11 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
|
||||
/* Restore contents of shared-info page. No checking needed. */
|
||||
new_shared_info = xc_map_foreign_range(
|
||||
xch, dom, PAGE_SIZE, PROT_WRITE, shared_info_frame);
|
||||
+ if ( new_shared_info == NULL )
|
||||
+ {
|
||||
+ PERROR("xc_map_foreign_range failed (for new_shared_info)");
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
/* restore saved vcpu_info and arch specific info */
|
||||
MEMCPY_FIELD(new_shared_info, old_shared_info, vcpu_info);
|
||||
diff --git a/tools/libxc/xc_offline_page.c b/tools/libxc/xc_offline_page.c
|
||||
index 089a361..36b9812 100644
|
||||
--- a/tools/libxc/xc_offline_page.c
|
||||
+++ b/tools/libxc/xc_offline_page.c
|
||||
@@ -714,6 +714,11 @@ int xc_exchange_page(xc_interface *xch, int domid, xen_pfn_t mfn)
|
||||
|
||||
new_p = xc_map_foreign_range(xch, domid, PAGE_SIZE,
|
||||
PROT_READ|PROT_WRITE, new_mfn);
|
||||
+ if ( new_p == NULL )
|
||||
+ {
|
||||
+ ERROR("failed to map new_p for copy, guest may be broken?");
|
||||
+ goto failed;
|
||||
+ }
|
||||
memcpy(new_p, backup, PAGE_SIZE);
|
||||
munmap(new_p, PAGE_SIZE);
|
||||
mops.arg1.mfn = new_mfn;
|
||||
--
|
||||
1.7.2.5
|
||||
|
@ -1,18 +0,0 @@
|
||||
VT-d: fix interrupt remapping source validation for devices behind legacy bridges
|
||||
Using SVT_VERIFY_BUS here doesn't make sense;
|
||||
|
||||
native Linux also uses SVT_VERIFY_SID_SQ here instead.
|
||||
This is XSA-33 / CVE-2012-5634.
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
--- xen/drivers/passthrough/vtd/intremap.c
|
||||
+++ xen/drivers/passthrough/vtd/intremap.c
|
||||
@@ -466,7 +466,7 @@ static void set_msi_source_id(struct pci_dev *pdev, struct iremap_entry *ire)
|
||||
set_ire_sid(ire, SVT_VERIFY_BUS, SQ_ALL_16,
|
||||
(bus << 8) | pdev->bus);
|
||||
else if ( pdev_type(seg, bus, devfn) == DEV_TYPE_LEGACY_PCI_BRIDGE )
|
||||
- set_ire_sid(ire, SVT_VERIFY_BUS, SQ_ALL_16,
|
||||
+ set_ire_sid(ire, SVT_VERIFY_SID_SQ, SQ_ALL_16,
|
||||
PCI_BDF2(bus, devfn));
|
||||
}
|
||||
break;
|
@ -1,70 +0,0 @@
|
||||
commit 66141b2e068fa39f28bdda6be05882e323663687
|
||||
Author: Michael Young
|
||||
Date: Tue Jan 22 22:22:10 2013 +0000
|
||||
|
||||
Security fix from nested virtualization CVE-2013-0151,
|
||||
restore status option to xend which is used by libvirt
|
||||
#diff --git a/xsa34-4.2.patch b/xsa34-4.2.patch
|
||||
#new file mode 100644
|
||||
#index 0000000..f5328ef
|
||||
#--- /dev/null
|
||||
#+++ xsa34-4.2.patch
|
||||
#@@ -0,0 +1,30 @@
|
||||
#+x86_32: don't allow use of nested HVM
|
||||
#+
|
||||
#+There are (indirect) uses of map_domain_page() in the nested HVM code
|
||||
#+that are unsafe when not just using the 1:1 mapping.
|
||||
#+
|
||||
#+This is XSA-34 / CVE-2013-0151.
|
||||
#+
|
||||
#+Signed-off-by: Jan Beulich
|
||||
#+
|
||||
#diff --git a/xsa35-4.2-with-xsa34.patch b/xsa35-4.2-with-xsa34.patch
|
||||
#new file mode 100644
|
||||
#index 0000000..28c6171
|
||||
#--- /dev/null
|
||||
#+++ xsa35-4.2-with-xsa34.patch
|
||||
#@@ -0,0 +1,24 @@
|
||||
#+xen: Do not allow guests to enable nested HVM on themselves
|
||||
#+
|
||||
#+There is no reason for this and doing so exposes a memory leak to
|
||||
#+guests. Only toolstacks need write access to this HVM param.
|
||||
#+
|
||||
#+This is XSA-35 / CVE-2013-0152.
|
||||
#+
|
||||
#+Signed-off-by: Ian Campbell
|
||||
#+Acked-by: Jan Beulich
|
||||
#+
|
||||
--- xen/arch/x86/hvm/hvm.c
|
||||
+++ xen/arch/x86/hvm/hvm.c
|
||||
@@ -3858,6 +3858,11 @@
|
||||
rc = -EINVAL;
|
||||
break;
|
||||
case HVM_PARAM_NESTEDHVM:
|
||||
+ if ( !IS_PRIV(current->domain) )
|
||||
+ {
|
||||
+ rc = -EPERM;
|
||||
+ break;
|
||||
+ }
|
||||
if ( a.value > 1 )
|
||||
rc = -EINVAL;
|
||||
if ( !is_hvm_domain(d) )
|
||||
@@ -3926,6 +3926,10 @@ long do_hvm_op(unsigned long op, XEN_GUE
|
||||
rc = -EINVAL;
|
||||
break;
|
||||
case HVM_PARAM_NESTEDHVM:
|
||||
+#ifdef __i386__
|
||||
+ if ( a.value )
|
||||
+ rc = -EINVAL;
|
||||
+#else
|
||||
if ( a.value > 1 )
|
||||
rc = -EINVAL;
|
||||
if ( !is_hvm_domain(d) )
|
||||
@@ -3940,6 +3944,7 @@ long do_hvm_op(unsigned long op, XEN_GUE
|
||||
for_each_vcpu(d, v)
|
||||
if ( rc == 0 )
|
||||
rc = nestedhvm_vcpu_initialise(v);
|
||||
+#endif
|
||||
break;
|
||||
case HVM_PARAM_BUFIOREQ_EVTCHN:
|
||||
rc = -EINVAL;
|
@ -1,323 +0,0 @@
|
||||
ACPI: acpi_table_parse() should return handler's error code
|
||||
|
||||
Currently, the error code returned by acpi_table_parse()'s handler
|
||||
is ignored. This patch will propagate handler's return value to
|
||||
acpi_table_parse()'s caller.
|
||||
|
||||
AMD,IOMMU: Clean up old entries in remapping tables when creating new
|
||||
interrupt mapping.
|
||||
|
||||
When changing the affinity of an IRQ associated with a passed
|
||||
through PCI device, clear previous mapping.
|
||||
|
||||
In addition, because some BIOSes may incorrectly program IVRS
|
||||
entries for IOAPIC try to check for entry's consistency. Specifically,
|
||||
if conflicting entries are found disable IOMMU if per-device
|
||||
remapping table is used. If entries refer to bogus IOAPIC IDs
|
||||
disable IOMMU unconditionally
|
||||
|
||||
AMD,IOMMU: Disable IOMMU if SATA Combined mode is on
|
||||
|
||||
AMD's SP5100 chipset can be placed into SATA Combined mode
|
||||
that may cause prevent dom0 from booting when IOMMU is
|
||||
enabled and per-device interrupt remapping table is used.
|
||||
While SP5100 erratum 28 requires BIOSes to disable this mode,
|
||||
some may still use it.
|
||||
|
||||
This patch checks whether this mode is on and, if per-device
|
||||
table is in use, disables IOMMU.
|
||||
|
||||
AMD,IOMMU: Make per-device interrupt remapping table default
|
||||
|
||||
Using global interrupt remapping table may be insecure, as
|
||||
described by XSA-36. This patch makes per-device mode default.
|
||||
|
||||
This is XSA-36 / CVE-2013-0153.
|
||||
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com>
|
||||
|
||||
--- a/xen/arch/x86/irq.c
|
||||
+++ b/xen/arch/x86/irq.c
|
||||
@@ -1942,9 +1942,6 @@ int map_domain_pirq(
|
||||
spin_lock_irqsave(&desc->lock, flags);
|
||||
set_domain_irq_pirq(d, irq, info);
|
||||
spin_unlock_irqrestore(&desc->lock, flags);
|
||||
-
|
||||
- if ( opt_irq_vector_map == OPT_IRQ_VECTOR_MAP_PERDEV )
|
||||
- printk(XENLOG_INFO "Per-device vector maps for GSIs not implemented yet.\n");
|
||||
}
|
||||
|
||||
done:
|
||||
--- a/xen/drivers/acpi/tables.c
|
||||
+++ b/xen/drivers/acpi/tables.c
|
||||
@@ -267,7 +267,7 @@ acpi_table_parse_madt(enum acpi_madt_typ
|
||||
* @handler: handler to run
|
||||
*
|
||||
* Scan the ACPI System Descriptor Table (STD) for a table matching @id,
|
||||
- * run @handler on it. Return 0 if table found, return on if not.
|
||||
+ * run @handler on it.
|
||||
*/
|
||||
int __init acpi_table_parse(char *id, acpi_table_handler handler)
|
||||
{
|
||||
@@ -282,8 +282,7 @@ int __init acpi_table_parse(char *id, ac
|
||||
acpi_get_table(id, 0, &table);
|
||||
|
||||
if (table) {
|
||||
- handler(table);
|
||||
- return 0;
|
||||
+ return handler(table);
|
||||
} else
|
||||
return 1;
|
||||
}
|
||||
--- a/xen/drivers/passthrough/amd/iommu_acpi.c
|
||||
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <xen/errno.h>
|
||||
#include <xen/acpi.h>
|
||||
#include <asm/apicdef.h>
|
||||
+#include <asm/io_apic.h>
|
||||
#include <asm/amd-iommu.h>
|
||||
#include <asm/hvm/svm/amd-iommu-proto.h>
|
||||
|
||||
@@ -635,6 +636,7 @@ static u16 __init parse_ivhd_device_spec
|
||||
u16 header_length, u16 block_length, struct amd_iommu *iommu)
|
||||
{
|
||||
u16 dev_length, bdf;
|
||||
+ int apic;
|
||||
|
||||
dev_length = sizeof(*special);
|
||||
if ( header_length < (block_length + dev_length) )
|
||||
@@ -651,10 +653,59 @@ static u16 __init parse_ivhd_device_spec
|
||||
}
|
||||
|
||||
add_ivrs_mapping_entry(bdf, bdf, special->header.data_setting, iommu);
|
||||
- /* set device id of ioapic */
|
||||
- ioapic_sbdf[special->handle].bdf = bdf;
|
||||
- ioapic_sbdf[special->handle].seg = seg;
|
||||
- return dev_length;
|
||||
+
|
||||
+ if ( special->variety != ACPI_IVHD_IOAPIC )
|
||||
+ {
|
||||
+ if ( special->variety != ACPI_IVHD_HPET )
|
||||
+ printk(XENLOG_ERR "Unrecognized IVHD special variety %#x\n",
|
||||
+ special->variety);
|
||||
+ return dev_length;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Some BIOSes have IOAPIC broken entries so we check for IVRS
|
||||
+ * consistency here --- whether entry's IOAPIC ID is valid and
|
||||
+ * whether there are conflicting/duplicated entries.
|
||||
+ */
|
||||
+ for ( apic = 0; apic < nr_ioapics; apic++ )
|
||||
+ {
|
||||
+ if ( IO_APIC_ID(apic) != special->handle )
|
||||
+ continue;
|
||||
+
|
||||
+ if ( ioapic_sbdf[special->handle].pin_setup )
|
||||
+ {
|
||||
+ if ( ioapic_sbdf[special->handle].bdf == bdf &&
|
||||
+ ioapic_sbdf[special->handle].seg == seg )
|
||||
+ AMD_IOMMU_DEBUG("IVHD Warning: Duplicate IO-APIC %#x entries\n",
|
||||
+ special->handle);
|
||||
+ else
|
||||
+ {
|
||||
+ printk(XENLOG_ERR "IVHD Error: Conflicting IO-APIC %#x entries\n",
|
||||
+ special->handle);
|
||||
+ if ( amd_iommu_perdev_intremap )
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /* set device id of ioapic */
|
||||
+ ioapic_sbdf[special->handle].bdf = bdf;
|
||||
+ ioapic_sbdf[special->handle].seg = seg;
|
||||
+
|
||||
+ ioapic_sbdf[special->handle].pin_setup = xzalloc_array(
|
||||
+ unsigned long, BITS_TO_LONGS(nr_ioapic_entries[apic]));
|
||||
+ if ( nr_ioapic_entries[apic] &&
|
||||
+ !ioapic_sbdf[IO_APIC_ID(apic)].pin_setup )
|
||||
+ {
|
||||
+ printk(XENLOG_ERR "IVHD Error: Out of memory\n");
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+ return dev_length;
|
||||
+ }
|
||||
+
|
||||
+ printk(XENLOG_ERR "IVHD Error: Invalid IO-APIC %#x\n", special->handle);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int __init parse_ivhd_block(const struct acpi_ivrs_hardware *ivhd_block)
|
||||
--- a/xen/drivers/passthrough/amd/iommu_init.c
|
||||
+++ b/xen/drivers/passthrough/amd/iommu_init.c
|
||||
@@ -1126,12 +1126,45 @@ static int __init amd_iommu_setup_device
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/* Check whether SP5100 SATA Combined mode is on */
|
||||
+static bool_t __init amd_sp5100_erratum28(void)
|
||||
+{
|
||||
+ u32 bus, id;
|
||||
+ u16 vendor_id, dev_id;
|
||||
+ u8 byte;
|
||||
+
|
||||
+ for (bus = 0; bus < 256; bus++)
|
||||
+ {
|
||||
+ id = pci_conf_read32(0, bus, 0x14, 0, PCI_VENDOR_ID);
|
||||
+
|
||||
+ vendor_id = id & 0xffff;
|
||||
+ dev_id = (id >> 16) & 0xffff;
|
||||
+
|
||||
+ /* SP5100 SMBus module sets Combined mode on */
|
||||
+ if (vendor_id != 0x1002 || dev_id != 0x4385)
|
||||
+ continue;
|
||||
+
|
||||
+ byte = pci_conf_read8(0, bus, 0x14, 0, 0xad);
|
||||
+ if ( (byte >> 3) & 1 )
|
||||
+ {
|
||||
+ printk(XENLOG_WARNING "AMD-Vi: SP5100 erratum 28 detected, disabling IOMMU.\n"
|
||||
+ "If possible, disable SATA Combined mode in BIOS or contact your vendor for BIOS update.\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
int __init amd_iommu_init(void)
|
||||
{
|
||||
struct amd_iommu *iommu;
|
||||
|
||||
BUG_ON( !iommu_found() );
|
||||
|
||||
+ if ( amd_iommu_perdev_intremap && amd_sp5100_erratum28() )
|
||||
+ goto error_out;
|
||||
+
|
||||
ivrs_bdf_entries = amd_iommu_get_ivrs_dev_entries();
|
||||
|
||||
if ( !ivrs_bdf_entries )
|
||||
--- a/xen/drivers/passthrough/amd/iommu_intr.c
|
||||
+++ b/xen/drivers/passthrough/amd/iommu_intr.c
|
||||
@@ -99,12 +99,12 @@ static void update_intremap_entry(u32* e
|
||||
static void update_intremap_entry_from_ioapic(
|
||||
int bdf,
|
||||
struct amd_iommu *iommu,
|
||||
- struct IO_APIC_route_entry *ioapic_rte)
|
||||
+ const struct IO_APIC_route_entry *rte,
|
||||
+ const struct IO_APIC_route_entry *old_rte)
|
||||
{
|
||||
unsigned long flags;
|
||||
u32* entry;
|
||||
u8 delivery_mode, dest, vector, dest_mode;
|
||||
- struct IO_APIC_route_entry *rte = ioapic_rte;
|
||||
int req_id;
|
||||
spinlock_t *lock;
|
||||
int offset;
|
||||
@@ -120,6 +120,14 @@ static void update_intremap_entry_from_i
|
||||
spin_lock_irqsave(lock, flags);
|
||||
|
||||
offset = get_intremap_offset(vector, delivery_mode);
|
||||
+ if ( old_rte )
|
||||
+ {
|
||||
+ int old_offset = get_intremap_offset(old_rte->vector,
|
||||
+ old_rte->delivery_mode);
|
||||
+
|
||||
+ if ( offset != old_offset )
|
||||
+ free_intremap_entry(iommu->seg, bdf, old_offset);
|
||||
+ }
|
||||
entry = (u32*)get_intremap_entry(iommu->seg, req_id, offset);
|
||||
update_intremap_entry(entry, vector, delivery_mode, dest_mode, dest);
|
||||
|
||||
@@ -188,6 +196,7 @@ int __init amd_iommu_setup_ioapic_remapp
|
||||
amd_iommu_flush_intremap(iommu, req_id);
|
||||
spin_unlock_irqrestore(&iommu->lock, flags);
|
||||
}
|
||||
+ set_bit(pin, ioapic_sbdf[IO_APIC_ID(apic)].pin_setup);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
@@ -199,6 +208,7 @@ void amd_iommu_ioapic_update_ire(
|
||||
struct IO_APIC_route_entry old_rte = { 0 };
|
||||
struct IO_APIC_route_entry new_rte = { 0 };
|
||||
unsigned int rte_lo = (reg & 1) ? reg - 1 : reg;
|
||||
+ unsigned int pin = (reg - 0x10) / 2;
|
||||
int saved_mask, seg, bdf;
|
||||
struct amd_iommu *iommu;
|
||||
|
||||
@@ -236,6 +246,14 @@ void amd_iommu_ioapic_update_ire(
|
||||
*(((u32 *)&new_rte) + 1) = value;
|
||||
}
|
||||
|
||||
+ if ( new_rte.mask &&
|
||||
+ !test_bit(pin, ioapic_sbdf[IO_APIC_ID(apic)].pin_setup) )
|
||||
+ {
|
||||
+ ASSERT(saved_mask);
|
||||
+ __io_apic_write(apic, reg, value);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
/* mask the interrupt while we change the intremap table */
|
||||
if ( !saved_mask )
|
||||
{
|
||||
@@ -244,7 +262,11 @@ void amd_iommu_ioapic_update_ire(
|
||||
}
|
||||
|
||||
/* Update interrupt remapping entry */
|
||||
- update_intremap_entry_from_ioapic(bdf, iommu, &new_rte);
|
||||
+ update_intremap_entry_from_ioapic(
|
||||
+ bdf, iommu, &new_rte,
|
||||
+ test_and_set_bit(pin,
|
||||
+ ioapic_sbdf[IO_APIC_ID(apic)].pin_setup) ? &old_rte
|
||||
+ : NULL);
|
||||
|
||||
/* Forward write access to IO-APIC RTE */
|
||||
__io_apic_write(apic, reg, value);
|
||||
@@ -354,6 +376,12 @@ void amd_iommu_msi_msg_update_ire(
|
||||
return;
|
||||
}
|
||||
|
||||
+ if ( msi_desc->remap_index >= 0 )
|
||||
+ update_intremap_entry_from_msi_msg(iommu, pdev, msi_desc, NULL);
|
||||
+
|
||||
+ if ( !msg )
|
||||
+ return;
|
||||
+
|
||||
update_intremap_entry_from_msi_msg(iommu, pdev, msi_desc, msg);
|
||||
}
|
||||
|
||||
--- a/xen/drivers/passthrough/amd/pci_amd_iommu.c
|
||||
+++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c
|
||||
@@ -205,6 +205,8 @@ int __init amd_iov_detect(void)
|
||||
{
|
||||
printk("AMD-Vi: Not overriding irq_vector_map setting\n");
|
||||
}
|
||||
+ if ( !amd_iommu_perdev_intremap )
|
||||
+ printk(XENLOG_WARNING "AMD-Vi: Using global interrupt remap table is not recommended (see XSA-36)!\n");
|
||||
return scan_pci_devices();
|
||||
}
|
||||
|
||||
--- a/xen/drivers/passthrough/iommu.c
|
||||
+++ b/xen/drivers/passthrough/iommu.c
|
||||
@@ -52,7 +52,7 @@ bool_t __read_mostly iommu_qinval = 1;
|
||||
bool_t __read_mostly iommu_intremap = 1;
|
||||
bool_t __read_mostly iommu_hap_pt_share = 1;
|
||||
bool_t __read_mostly iommu_debug;
|
||||
-bool_t __read_mostly amd_iommu_perdev_intremap;
|
||||
+bool_t __read_mostly amd_iommu_perdev_intremap = 1;
|
||||
|
||||
DEFINE_PER_CPU(bool_t, iommu_dont_flush_iotlb);
|
||||
|
||||
--- a/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h
|
||||
+++ b/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h
|
||||
@@ -100,6 +100,7 @@ void amd_iommu_read_msi_from_ire(
|
||||
|
||||
extern struct ioapic_sbdf {
|
||||
u16 bdf, seg;
|
||||
+ unsigned long *pin_setup;
|
||||
} ioapic_sbdf[MAX_IO_APICS];
|
||||
extern void *shared_intremap_table;
|
||||
|
@ -1,23 +0,0 @@
|
||||
x86: fix assertion in get_page_type()
|
||||
|
||||
c/s 22998:e9fab50d7b61 (and immediately following ones) made it
|
||||
possible that __get_page_type() returns other than -EINVAL, in
|
||||
particular -EBUSY. Consequently, the assertion in get_page_type()
|
||||
should check for only the return values we absolutely don't expect to
|
||||
see there.
|
||||
|
||||
This is XSA-37 / CVE-2013-0154.
|
||||
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
--- xen/arch/x86/mm.c
|
||||
+++ xen/arch/x86/mm.c
|
||||
@@ -2586,7 +2586,7 @@ int get_page_type(struct page_info *page
|
||||
int rc = __get_page_type(page, type, 0);
|
||||
if ( likely(rc == 0) )
|
||||
return 1;
|
||||
- ASSERT(rc == -EINVAL);
|
||||
+ ASSERT(rc != -EINTR && rc != -EAGAIN);
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,77 +0,0 @@
|
||||
x86: clear EFLAGS.NT in SYSENTER entry path
|
||||
|
||||
... as it causes problems if we happen to exit back via IRET: In the
|
||||
course of trying to handle the fault, the hypervisor creates a stack
|
||||
frame by hand, and uses PUSHFQ to set the respective EFLAGS field, but
|
||||
expects to be able to IRET through that stack frame to the second
|
||||
portion of the fixup code (which causes a #GP due to the stored EFLAGS
|
||||
having NT set).
|
||||
|
||||
And even if this worked (e.g if we cleared NT in that path), it would
|
||||
then (through the fail safe callback) cause a #GP in the guest with the
|
||||
SYSENTER handler's first instruction as the source, which in turn would
|
||||
allow guest user mode code to crash the guest kernel.
|
||||
|
||||
Inject a #GP on the fake (NULL) address of the SYSENTER instruction
|
||||
instead, just like in the case where the guest kernel didn't register
|
||||
a corresponding entry point.
|
||||
|
||||
On 32-bit we also need to make sure we clear SYSENTER_CS for all CPUs
|
||||
(neither #RESET nor #INIT guarantee this).
|
||||
|
||||
This is CVE-2013-1917 / XSA-44.
|
||||
|
||||
Reported-by: Andrew Cooper <andrew.cooper3@citirx.com>
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
Tested-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
|
||||
--- a/xen/arch/x86/acpi/suspend.c
|
||||
+++ b/xen/arch/x86/acpi/suspend.c
|
||||
@@ -81,8 +81,12 @@ void restore_rest_processor_state(void)
|
||||
}
|
||||
|
||||
#else /* !defined(CONFIG_X86_64) */
|
||||
- if ( supervisor_mode_kernel && cpu_has_sep )
|
||||
- wrmsr(MSR_IA32_SYSENTER_ESP, &this_cpu(init_tss).esp1, 0);
|
||||
+ if ( cpu_has_sep )
|
||||
+ {
|
||||
+ wrmsr(MSR_IA32_SYSENTER_CS, 0, 0);
|
||||
+ if ( supervisor_mode_kernel )
|
||||
+ wrmsr(MSR_IA32_SYSENTER_ESP, &this_cpu(init_tss).esp1, 0);
|
||||
+ }
|
||||
#endif
|
||||
|
||||
/* Maybe load the debug registers. */
|
||||
--- a/xen/arch/x86/cpu/common.c
|
||||
+++ b/xen/arch/x86/cpu/common.c
|
||||
@@ -655,8 +655,11 @@ void __cpuinit cpu_init(void)
|
||||
#if defined(CONFIG_X86_32)
|
||||
t->ss0 = __HYPERVISOR_DS;
|
||||
t->esp0 = get_stack_bottom();
|
||||
- if ( supervisor_mode_kernel && cpu_has_sep )
|
||||
+ if ( cpu_has_sep ) {
|
||||
+ wrmsr(MSR_IA32_SYSENTER_CS, 0, 0);
|
||||
+ if ( supervisor_mode_kernel )
|
||||
wrmsr(MSR_IA32_SYSENTER_ESP, &t->esp1, 0);
|
||||
+ }
|
||||
#elif defined(CONFIG_X86_64)
|
||||
/* Bottom-of-stack must be 16-byte aligned! */
|
||||
BUG_ON((get_stack_bottom() & 15) != 0);
|
||||
--- a/xen/arch/x86/x86_64/entry.S
|
||||
+++ b/xen/arch/x86/x86_64/entry.S
|
||||
@@ -284,7 +284,14 @@ sysenter_eflags_saved:
|
||||
cmpb $0,VCPU_sysenter_disables_events(%rbx)
|
||||
movq VCPU_sysenter_addr(%rbx),%rax
|
||||
setne %cl
|
||||
+ testl $X86_EFLAGS_NT,UREGS_eflags(%rsp)
|
||||
leaq VCPU_trap_bounce(%rbx),%rdx
|
||||
+UNLIKELY_START(nz, sysenter_nt_set)
|
||||
+ pushfq
|
||||
+ andl $~X86_EFLAGS_NT,(%rsp)
|
||||
+ popfq
|
||||
+ xorl %eax,%eax
|
||||
+UNLIKELY_END(sysenter_nt_set)
|
||||
testq %rax,%rax
|
||||
leal (,%rcx,TBF_INTERRUPT),%ecx
|
||||
UNLIKELY_START(z, sysenter_gpf)
|
@ -0,0 +1,121 @@
|
||||
diff -crB lcd4linux-0.10.1-RC2-orig/drv_BWCT.c lcd4linux-0.10.1-RC2/drv_BWCT.c
|
||||
*** lcd4linux-0.10.1-RC2-orig/drv_BWCT.c 2007-02-25 13:39:09.000000000 +0100
|
||||
--- lcd4linux-0.10.1-RC2/drv_BWCT.c 2013-11-10 21:32:06.119047221 +0100
|
||||
***************
|
||||
*** 72,78 ****
|
||||
static usb_dev_handle *lcd;
|
||||
static int interface;
|
||||
|
||||
- extern int usb_debug;
|
||||
extern int got_signal;
|
||||
|
||||
|
||||
--- 72,77 ----
|
||||
***************
|
||||
*** 89,96 ****
|
||||
|
||||
info("%s: scanning USB for BWCT LCD...", Name);
|
||||
|
||||
- usb_debug = 0;
|
||||
-
|
||||
usb_init();
|
||||
usb_find_busses();
|
||||
usb_find_devices();
|
||||
--- 88,93 ----
|
||||
diff -crB lcd4linux-0.10.1-RC2-orig/drv_LCD2USB.c lcd4linux-0.10.1-RC2/drv_LCD2USB.c
|
||||
*** lcd4linux-0.10.1-RC2-orig/drv_LCD2USB.c 2007-02-25 13:39:10.000000000 +0100
|
||||
--- lcd4linux-0.10.1-RC2/drv_LCD2USB.c 2013-11-10 21:32:15.686677498 +0100
|
||||
***************
|
||||
*** 98,104 ****
|
||||
static usb_dev_handle *lcd;
|
||||
static int controllers = 0;
|
||||
|
||||
- extern int usb_debug;
|
||||
extern int got_signal;
|
||||
|
||||
/****************************************/
|
||||
--- 98,103 ----
|
||||
***************
|
||||
*** 120,127 ****
|
||||
if (device_id != NULL)
|
||||
info("%s: scanning for device id: %s", Name, device_id);
|
||||
|
||||
- usb_debug = 0;
|
||||
-
|
||||
usb_init();
|
||||
usb_find_busses();
|
||||
usb_find_devices();
|
||||
--- 119,124 ----
|
||||
diff -crB lcd4linux-0.10.1-RC2-orig/drv_picoLCD.c lcd4linux-0.10.1-RC2/drv_picoLCD.c
|
||||
*** lcd4linux-0.10.1-RC2-orig/drv_picoLCD.c 2007-02-25 13:39:10.000000000 +0100
|
||||
--- lcd4linux-0.10.1-RC2/drv_picoLCD.c 2013-11-10 21:32:30.102120440 +0100
|
||||
***************
|
||||
*** 75,81 ****
|
||||
static char *BufPtr;
|
||||
|
||||
static usb_dev_handle *lcd;
|
||||
- extern int usb_debug;
|
||||
|
||||
|
||||
|
||||
--- 75,80 ----
|
||||
***************
|
||||
*** 97,104 ****
|
||||
|
||||
info("%s: scanning for picoLCD...", Name);
|
||||
|
||||
- usb_debug = 0;
|
||||
-
|
||||
usb_init();
|
||||
usb_find_busses();
|
||||
usb_find_devices();
|
||||
--- 96,101 ----
|
||||
diff -crB lcd4linux-0.10.1-RC2-orig/drv_Trefon.c lcd4linux-0.10.1-RC2/drv_Trefon.c
|
||||
*** lcd4linux-0.10.1-RC2-orig/drv_Trefon.c 2007-02-25 13:39:10.000000000 +0100
|
||||
--- lcd4linux-0.10.1-RC2/drv_Trefon.c 2013-11-10 21:32:46.441489039 +0100
|
||||
***************
|
||||
*** 72,78 ****
|
||||
static usb_dev_handle *lcd;
|
||||
static int interface;
|
||||
|
||||
- extern int usb_debug;
|
||||
|
||||
|
||||
/****************************************/
|
||||
--- 72,77 ----
|
||||
***************
|
||||
*** 88,95 ****
|
||||
|
||||
info("%s: scanning USB for TREFON LCD...", Name);
|
||||
|
||||
- usb_debug = 0;
|
||||
-
|
||||
usb_init();
|
||||
usb_find_busses();
|
||||
usb_find_devices();
|
||||
--- 87,92 ----
|
||||
diff -crB lcd4linux-0.10.1-RC2-orig/drv_USBLCD.c lcd4linux-0.10.1-RC2/drv_USBLCD.c
|
||||
*** lcd4linux-0.10.1-RC2-orig/drv_USBLCD.c 2007-02-25 13:39:10.000000000 +0100
|
||||
--- lcd4linux-0.10.1-RC2/drv_USBLCD.c 2013-11-10 21:33:01.508906792 +0100
|
||||
***************
|
||||
*** 86,93 ****
|
||||
static usb_dev_handle *lcd;
|
||||
static int interface;
|
||||
|
||||
- extern int usb_debug;
|
||||
-
|
||||
#endif
|
||||
|
||||
|
||||
--- 86,91 ----
|
||||
***************
|
||||
*** 107,114 ****
|
||||
|
||||
info("%s: scanning for USBLCD...", Name);
|
||||
|
||||
- usb_debug = 0;
|
||||
-
|
||||
usb_init();
|
||||
usb_find_busses();
|
||||
usb_find_devices();
|
||||
--- 105,110 ----
|
@ -0,0 +1,175 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-misc/lcd4linux/lcd4linux-0.10.1_rc2-r3.ebuild,v 1.1 2013/12/30 11:10:49 pacho Exp $
|
||||
|
||||
EAPI=5
|
||||
PYTHON_COMPAT=( python2_{6,7} )
|
||||
WANT_AUTOMAKE="1.9"
|
||||
inherit eutils multilib autotools python-single-r1
|
||||
|
||||
MY_P=${P/_rc/-RC}
|
||||
|
||||
DESCRIPTION="Shows system and ISDN information on an external display or in a X11 window"
|
||||
HOMEPAGE="http://ssl.bulix.org/projects/lcd4linux"
|
||||
SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~ppc ~x86"
|
||||
|
||||
IUSE="mysql python iconv mpd"
|
||||
|
||||
# The following array holds the USE_EXPANDed keywords
|
||||
IUSE_LCD_DEVICES=(beckmannegle bwct cfontz ncurses cwlinux
|
||||
ea232 g15 hd44780 hd44780i2c lcd2usb
|
||||
lcdlinux lcdterm ledmatrix lph7508 m50530
|
||||
mtxorb milfordbpk noritake null picolcd
|
||||
png ppm routerboard serdisplib simplelcd
|
||||
t6963 trefon usbhub usblcd wincor
|
||||
X luise)
|
||||
|
||||
# Iterate through the array and add the lcd_devices_* that we support
|
||||
NUM_DEVICES=${#IUSE_LCD_DEVICES[@]}
|
||||
index=0
|
||||
while [ "${index}" -lt "${NUM_DEVICES}" ] ; do
|
||||
IUSE="${IUSE} lcd_devices_${IUSE_LCD_DEVICES[$index]}"
|
||||
let "index = ${index} + 1"
|
||||
done
|
||||
|
||||
DEPEND="
|
||||
mysql? ( virtual/mysql )
|
||||
iconv? ( virtual/libiconv )
|
||||
mpd? ( media-libs/libmpd )
|
||||
|
||||
lcd_devices_bwct? ( =virtual/libusb-0* )
|
||||
lcd_devices_g15? ( =virtual/libusb-0* )
|
||||
lcd_devices_lcd2usb? ( =virtual/libusb-0* )
|
||||
lcd_devices_picolcd? ( =virtual/libusb-0* )
|
||||
lcd_devices_trefon? ( =virtual/libusb-0* )
|
||||
lcd_devices_usbhub? ( =virtual/libusb-0* )
|
||||
lcd_devices_usblcd? ( =virtual/libusb-0* )
|
||||
lcd_devices_luise? ( dev-libs/luise-bin )
|
||||
lcd_devices_ncurses? ( sys-libs/ncurses )
|
||||
lcd_devices_noritake? ( media-libs/gd )
|
||||
lcd_devices_t6963? ( media-libs/gd )
|
||||
lcd_devices_png? ( media-libs/libpng media-libs/gd )
|
||||
lcd_devices_X? ( x11-libs/libX11 media-libs/gd )
|
||||
lcd_devices_serdisplib? ( dev-libs/serdisplib media-libs/gd )
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
pkg_setup() {
|
||||
elog "If you wish to compile only specific plugins, please use"
|
||||
elog "the LCD4LINUX_PLUGINS environment variable. Plugins must be comma separated and can be either of:"
|
||||
elog "apm cpuinfo diskstats dvb exec file i2c_sensors imon isdn kvv loadavg meminfo netdev pop3 ppp proc_stat seti statfs uname uptime wireless"
|
||||
|
||||
use python && python-single-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}/${P}-warnings.patch"
|
||||
epatch "${FILESDIR}/${P}-mpd.patch"
|
||||
epatch "${FILESDIR}/${P}-nordtsc.patch"
|
||||
epatch "${FILESDIR}/${P}-autoconf-2.65.patch"
|
||||
epatch "${FILESDIR}/${P}-missing-header.patch"
|
||||
epatch "${FILESDIR}/${P}-usbdebug.patch"
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# This array contains the driver names required by configure --with-drivers=
|
||||
# The positions must be the same as the corresponding use_expand flags
|
||||
local DEVICE_DRIVERS=(BeckmannEgle BWCT CrystalFontz Curses Cwlinux
|
||||
EA232graphic G15 HD44780 HD44780-I2C LCD2USB
|
||||
LCDLinux LCDTerm LEDMatrix LPH7508 M50530
|
||||
MatrixOrbital MilfordInstruments Noritake NULL picoLCD
|
||||
PNG PPM RouterBoard serdisplib SimpleLCD
|
||||
T6963 Trefon USBHUB USBLCD WincorNixdorf
|
||||
X11 LUIse)
|
||||
|
||||
local myconf myp
|
||||
|
||||
# plugins
|
||||
if [ -n "$LCD4LINUX_PLUGINS" ]; then
|
||||
myp="$LCD4LINUX_PLUGINS"
|
||||
else
|
||||
myp="all,!xmms"
|
||||
fi
|
||||
use iconv || myp="${myp},!iconv"
|
||||
use mpd || myp="${myp},!mpd"
|
||||
use mysql || myp="${myp},!mysql"
|
||||
use python || myp="${myp},!python"
|
||||
elog "Active plugins: ${myp}"
|
||||
|
||||
# Generate comma separated list of drivers
|
||||
local COMMA_DRIVERS
|
||||
local FIRST_DRIVER
|
||||
local index=0
|
||||
local driver
|
||||
|
||||
while [ "${index}" -lt "${NUM_DEVICES}" ] ; do
|
||||
if use "lcd_devices_${IUSE_LCD_DEVICES[$index]}" ; then
|
||||
driver=${DEVICE_DRIVERS[$index]}
|
||||
if [ -z ${COMMA_DRIVERS} ] ; then
|
||||
# First in the list
|
||||
COMMA_DRIVERS="${driver}"
|
||||
FIRST_DRIVER="${driver}"
|
||||
else
|
||||
# Second, third, ... include a comma at the front
|
||||
COMMA_DRIVERS="${COMMA_DRIVERS},${driver}"
|
||||
fi
|
||||
fi
|
||||
let "index = ${index} + 1"
|
||||
done
|
||||
|
||||
# activate at least one driver
|
||||
if [ -z ${COMMA_DRIVERS} ] ; then
|
||||
COMMA_DRIVERS="NULL"
|
||||
fi
|
||||
|
||||
# workaround the build failing because of b0rked settings
|
||||
if use lcd_devices_hd44780 && use lcd_devices_hd44780i2c ; then
|
||||
echo
|
||||
ewarn "Disabling hd44780 LCD_DEVICE as hd44780i2c is set!"
|
||||
echo
|
||||
COMMA_DRIVERS="${COMMA_DRIVERS},!HD44780"
|
||||
fi
|
||||
|
||||
# avoid package brokenness
|
||||
if use lcd_devices_X ; then
|
||||
myconf="--x-libraries=/usr/$(get_libdir) --x-include=/usr/include"
|
||||
else
|
||||
myconf="--without-x"
|
||||
fi
|
||||
|
||||
econf \
|
||||
--sysconfdir=/etc/lcd4linux \
|
||||
--with-drivers="${COMMA_DRIVERS}" \
|
||||
--with-plugins="${myp}" \
|
||||
$(use_with python) \
|
||||
${myconf}
|
||||
|
||||
sed -i.orig -e 's/-L -lX11/ -lX11 /g' Makefile || die "sed fixup failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
newinitd "${FILESDIR}/${P}.initd" ${PN}
|
||||
|
||||
insinto /etc
|
||||
insopts -o root -g root -m 0600
|
||||
newins lcd4linux.conf.sample lcd4linux.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use lcd_devices_lcdlinux; then
|
||||
ewarn "To actually use the lcd-linux devices, you will need to install the lcd-linux kernel module."
|
||||
ewarn "You can either do that yourself, see http://lcd-linux.sf.net or "
|
||||
ewarn "checkout http://overlays.gentoo.org/dev/jokey/browser/trunk and emerge app-misc/lcd-linux"
|
||||
fi
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-misc/nut/nut-19.1.ebuild,v 1.1 2014/01/01 18:56:18 radhermit Exp $
|
||||
|
||||
EAPI=5
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Record what you eat and analyze your nutrient levels"
|
||||
HOMEPAGE="http://nut.sourceforge.net/"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~ppc ~x86"
|
||||
|
||||
src_compile() {
|
||||
emake \
|
||||
CC="$(tc-getCC)" \
|
||||
OPT="${CFLAGS}" FOODDIR=\\\"/usr/share/nut\\\" \
|
||||
nut
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /usr/share/nut
|
||||
doins raw.data/*
|
||||
|
||||
dobin nut
|
||||
doman nut.1
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST dos2unix-6.0.3.tar.gz 77227 SHA256 f5268c5b28a1983537210c72b3fd43f4aad17a8dacb6727b615b56dca2ef9a04 SHA512 00cce5d7fe7c1fcb81b973a1119aa956a0dd648b775a0cc1692270acec7e9b4caefb1c179e5bdf2834cad60622ffdf2a93ff4db5634f39f0545d63e394a03af2 WHIRLPOOL 925082691597946dce07f2b3bfbcae7bd0d944a4868d3d489cf7025fd5a055965fc76c269a62b025eaedb61741a5cc3c70612de547e47030034ea94d79bf9940
|
||||
DIST dos2unix-6.0.4.tar.gz 84848 SHA256 66bd224d4a7fbe13a3b61aa7083b5ef74cf6448a3670606c669f46a84bb9b37a SHA512 6b7e84e42325462205439cb347c14b287be708d6ea5a776ab0875ff00cfb95b9a0379a99c23764e098931dad6b725f064561f433f60e7621eec1b07571cbc651 WHIRLPOOL 2274bad6393a4544e984f3e30afa81c2d880833a465157ced2c95c6f392b7fcca61f41db4ddc1f1421a2067c89726304d129272db13a82032fff96ca5d205329
|
||||
|
@ -0,0 +1,59 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-text/dos2unix/dos2unix-6.0.4.ebuild,v 1.1 2014/01/01 00:39:07 radhermit Exp $
|
||||
|
||||
EAPI=4
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Convert DOS or MAC text files to UNIX format or vice versa"
|
||||
HOMEPAGE="http://www.xs4all.nl/~waterlan/dos2unix.html http://sourceforge.net/projects/dos2unix/"
|
||||
SRC_URI="
|
||||
http://www.xs4all.nl/~waterlan/${PN}/${P}.tar.gz
|
||||
mirror://sourceforge/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris"
|
||||
IUSE="debug nls"
|
||||
|
||||
RDEPEND="
|
||||
!app-text/hd2u
|
||||
!app-text/unix2dos
|
||||
virtual/libintl"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
nls? ( sys-devel/gettext )
|
||||
dev-lang/perl"
|
||||
|
||||
src_prepare() {
|
||||
sed \
|
||||
-e '/^LDFLAGS/s|=|+=|' \
|
||||
-e '/CFLAGS_OS \+=/d' \
|
||||
-e '/LDFLAGS_EXTRA \+=/d' \
|
||||
-e "/^CFLAGS/s|-O2|${CFLAGS}|" \
|
||||
-i Makefile || die
|
||||
|
||||
if use debug ; then
|
||||
sed -e "/^DEBUG/s:0:1:" \
|
||||
-e "/EXTRA_CFLAGS +=/s:-g::" \
|
||||
-i Makefile || die
|
||||
fi
|
||||
|
||||
tc-export CC
|
||||
}
|
||||
|
||||
lintl() {
|
||||
# same logic as from virtual/libintl
|
||||
use !elibc_glibc && use !elibc_uclibc && echo "-lintl"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake prefix="${EPREFIX}/usr" \
|
||||
$(use nls && echo "LDFLAGS_EXTRA=$(lintl)" || echo "ENABLE_NLS=")
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" prefix="${EPREFIX}/usr" \
|
||||
$(use nls || echo "ENABLE_NLS=") install
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST unixODBC-2.3.0.tar.gz 1804749 SHA256 15a7a855a2951a6af7137379bfcdccc15626b869c4804a1d1536cd37e9f3872c SHA512 0be202eca94f43751c7300147039f7c5c5cdaf6714a5d0243e260178c39c4c842d1efa4b5986c0e5dde8f0d89406fc0bb12311198e17b4ec753fffa45d4e1558 WHIRLPOOL 882420667a47497b1c87f1e0b730ea3b272a21b552787f6909d801522fdf1a5310bb7e5ec9083afe36f00ea910e1e82e65f95fa4ee888457a76c2c13594ac62d
|
||||
DIST unixODBC-2.3.1.tar.gz 1813380 SHA256 1f5be3edecff9e31072ef738ea1d8019594c4f0c2e3ab427e6eef153491db6a2 SHA512 682a4c58febb923491aba4cad8d07228330e5dccb7b8969e0a9d99f92cd90757bd931441f3391c8562ade89f3cfc82416bad8c63d6c0e60b55d0101829e8b872 WHIRLPOOL c3bae729f8af2d4a2680768f00e91044ea32fedc4e677230db3c6a321e8e41964b57b3f850aef6d8213c611f3d0b62822d3c68b8f1b9a11877403891d310e32a
|
||||
DIST unixODBC-2.3.2.tar.gz 1849173 SHA256 9c3459742f25df5aa3c10a61429bde51a6d4f11552c03095f1d33d7eb02b5c9a SHA512 31d705bf3dcaff6707d5680235b34e4d265a084b1de9e1b2ed3bbee1e1dfefdb4437fe3e1736b84e446d1927ec7622296d9e9b129052cb35f4b63b0bd79ccd13 WHIRLPOOL 05b8fe927a148a0b7ec7abecbac6f5370e904c669b5b0cc58840f7c2302e1df62901a1a627221057be6d4b8b90772854fe3db6e5fda2a5df02970073416ef5f0
|
||||
|
@ -0,0 +1,49 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-db/unixODBC/unixODBC-2.3.2.ebuild,v 1.1 2013/12/31 18:30:45 neurogeek Exp $
|
||||
|
||||
EAPI=5
|
||||
inherit libtool
|
||||
|
||||
DESCRIPTION="A complete ODBC driver manager"
|
||||
HOMEPAGE="http://www.unixodbc.org/"
|
||||
SRC_URI="http://ftp.unixodbc.org/pub/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="+minimal odbcmanual static-libs unicode"
|
||||
|
||||
RDEPEND=">=sys-devel/libtool-2.2.6b
|
||||
>=sys-libs/readline-6.1
|
||||
>=sys-libs/ncurses-5.7-r7
|
||||
virtual/libiconv"
|
||||
DEPEND="${RDEPEND}
|
||||
sys-devel/flex"
|
||||
|
||||
DOCS="AUTHORS ChangeLog NEWS README"
|
||||
|
||||
src_prepare() {
|
||||
elibtoolize
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# --enable-driver-conf is --enable-driverc as per configure.in
|
||||
econf \
|
||||
--sysconfdir="${EPREFIX}"/etc/${PN} \
|
||||
--enable-iconv \
|
||||
$(use_enable static-libs static) \
|
||||
$(use_enable !minimal drivers) \
|
||||
$(use_enable !minimal driverc) \
|
||||
$(use_with unicode iconv-char-enc UTF8) \
|
||||
$(use_with unicode iconv-ucode-enc UTF16LE)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
use prefix && dodoc README*
|
||||
use odbcmanual && dohtml -a css,gif,html,sql,vsd -r doc/*
|
||||
|
||||
find "${ED}" -name '*.la' -exec sed -i -e "/^dependency_libs/s:=.*:='':" {} +
|
||||
}
|
@ -0,0 +1,107 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-games/cegui/cegui-0.8.3.ebuild,v 1.1 2013/12/30 22:19:19 hasufell Exp $
|
||||
|
||||
EAPI=5
|
||||
|
||||
# TODO: multiple ABI?
|
||||
PYTHON_COMPAT=( python2_6 python2_7 )
|
||||
inherit eutils flag-o-matic cmake-utils python-single-r1
|
||||
|
||||
DESCRIPTION="Crazy Eddie's GUI System"
|
||||
HOMEPAGE="http://www.cegui.org.uk/"
|
||||
SRC_URI="mirror://sourceforge/crayzedsgui/${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 -ppc ~x86"
|
||||
IUSE="bidi debug devil doc freeimage expat irrlicht lua ogre opengl pcre python static-libs tinyxml truetype xerces-c +xml zip"
|
||||
REQUIRED_USE="|| ( expat tinyxml xerces-c xml )
|
||||
${PYTHON_REQUIRED_USE}" # bug 362223
|
||||
|
||||
# gles broken
|
||||
# gles? ( media-libs/mesa[gles1] )
|
||||
# directfb broken
|
||||
# directfb? ( dev-libs/DirectFB )
|
||||
RDEPEND="
|
||||
virtual/libiconv
|
||||
bidi? ( dev-libs/fribidi )
|
||||
devil? ( media-libs/devil )
|
||||
expat? ( dev-libs/expat )
|
||||
freeimage? ( media-libs/freeimage )
|
||||
irrlicht? ( dev-games/irrlicht )
|
||||
lua? (
|
||||
dev-lang/lua
|
||||
dev-lua/toluapp
|
||||
)
|
||||
ogre? ( >=dev-games/ogre-1.7 )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
virtual/glu
|
||||
media-libs/glew
|
||||
)
|
||||
pcre? ( dev-libs/libpcre )
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
dev-libs/boost:=[python,${PYTHON_USEDEP}]
|
||||
)
|
||||
tinyxml? ( dev-libs/tinyxml )
|
||||
truetype? ( media-libs/freetype:2 )
|
||||
xerces-c? ( dev-libs/xerces-c )
|
||||
xml? ( dev-libs/libxml2 )
|
||||
zip? ( sys-libs/zlib[minizip] )"
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen )
|
||||
opengl? ( media-libs/glm )"
|
||||
|
||||
src_configure() {
|
||||
# http://www.cegui.org.uk/mantis/view.php?id=991
|
||||
append-ldflags $(no-as-needed)
|
||||
|
||||
local mycmakeargs=(
|
||||
-DCEGUI_BUILD_IMAGECODEC_CORONA=OFF
|
||||
$(cmake-utils_use devil CEGUI_BUILD_IMAGECODEC_DEVIL)
|
||||
$(cmake-utils_use freeimage CEGUI_BUILD_IMAGECODEC_FREEIMAGE)
|
||||
-DCEGUI_BUILD_IMAGECODEC_PVR=OFF
|
||||
-DCEGUI_BUILD_IMAGECODEC_SILLY=OFF
|
||||
-DCEGUI_BUILD_IMAGECODEC_STB=ON
|
||||
-DCEGUI_BUILD_IMAGECODEC_TGA=ON
|
||||
$(cmake-utils_use lua CEGUI_BUILD_LUA_GENERATOR)
|
||||
$(cmake-utils_use lua CEGUI_BUILD_LUA_MODULE)
|
||||
$(cmake-utils_use python CEGUI_BUILD_PYTHON_MODULES)
|
||||
-DCEGUI_BUILD_RENDERER_DIRECTFB=OFF
|
||||
$(cmake-utils_use irrlicht CEGUI_BUILD_RENDERER_IRRLICHT)
|
||||
-DCEGUI_BUILD_RENDERER_NULL=ON
|
||||
$(cmake-utils_use ogre CEGUI_BUILD_RENDERER_OGRE)
|
||||
$(cmake-utils_use opengl CEGUI_BUILD_RENDERER_OPENGL)
|
||||
$(cmake-utils_use opengl CEGUI_BUILD_RENDERER_OPENGL3)
|
||||
-DCEGUI_BUILD_RENDERER_OPENGLES=OFF
|
||||
$(cmake-utils_use static-libs CEGUI_BUILD_STATIC_CONFIGURATION)
|
||||
-DCEGUI_BUILD_TESTS=OFF
|
||||
$(cmake-utils_use expat CEGUI_BUILD_XMLPARSER_EXPAT)
|
||||
$(cmake-utils_use xml CEGUI_BUILD_XMLPARSER_LIBXML2)
|
||||
-DCEGUI_BUILD_XMLPARSER_RAPIDXML=OFF
|
||||
$(cmake-utils_use tinyxml CEGUI_BUILD_XMLPARSER_TINYXML)
|
||||
$(cmake-utils_use xerces-c CEGUI_BUILD_XMLPARSER_XERCES)
|
||||
$(cmake-utils_use truetype CEGUI_HAS_FREETYPE)
|
||||
$(cmake-utils_use zip CEGUI_HAS_MINIZIP_RESOURCE_PROVIDER)
|
||||
$(cmake-utils_use pcre CEGUI_HAS_PCRE_REGEX)
|
||||
-DCEGUI_SAMPLES_ENABLED=OFF
|
||||
$(cmake-utils_use bidi CEGUI_USE_FRIBIDI)
|
||||
-DCEGUI_USE_MINIBIDI=OFF
|
||||
)
|
||||
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake-utils_src_compile
|
||||
use doc && emake -C "${BUILD_DIR}" html
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake-utils_src_install
|
||||
use doc && dohtml "${BUILD_DIR}"/doc/doxygen/html/*
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST ogre-1.9.0.tar.bz2 128098305 SHA256 3072df52b2bed2a1b52e969f140ae9a4373ec931029d3eaa032e7c609a91ef82 SHA512 b1ea93d80ac0978a7c228460a6714f8d17797450efd5af6765c9fa4402e9060a8ef3a700d2757593a3016fdc32276722c8f4a5d9889a3e2eb424f16162a52bde WHIRLPOOL 625cc09ba5a76757b47764c41583584f538eb9561e5bfd546192e06da504aa3924d7070a7dfbe420c4db3edf5870baf5e8b77cc611aa4185806508f79302d6cd
|
||||
DIST ogre_src_v1-8-1.tar.bz2 88619968 SHA256 da908ac934265d25e378d336d648327afe569a758ef262029acd357d506f6aab SHA512 0bbce593e5a9ebf51e3cb53661f6447d99ae28a53365d7f518c6d408216690527ef7552385160cff8d5c3ef15d3ab5c2520ef2c1f51fda5541d5d4dca4663ae2 WHIRLPOOL 7325effb6421710ff0e21ab0e29443404fed151cc2aeaf481c597fd098278bb6223b9e2115abbd175f305e909491766c2d7b871b028d5b46f8028269b25c161d
|
||||
|
@ -0,0 +1,94 @@
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-games/ogre/ogre-1.9.0.ebuild,v 1.2 2013/12/30 21:30:16 hasufell Exp $
|
||||
|
||||
EAPI=5
|
||||
CMAKE_REMOVE_MODULES="yes"
|
||||
CMAKE_REMOVE_MODULES_LIST="FindFreetype"
|
||||
inherit eutils cmake-utils vcs-snapshot
|
||||
|
||||
DESCRIPTION="Object-oriented Graphics Rendering Engine"
|
||||
HOMEPAGE="http://www.ogre3d.org/"
|
||||
SRC_URI="https://bitbucket.org/sinbad/ogre/get/v${PV//./-}.tar.bz2 -> ${P}.tar.bz2"
|
||||
|
||||
LICENSE="MIT public-domain"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="+boost cg doc double-precision examples +freeimage gles2 ois +opengl poco profile tbb threads tools +zip"
|
||||
REQUIRED_USE="threads? ( ^^ ( boost poco tbb ) )
|
||||
poco? ( threads )
|
||||
tbb? ( threads )"
|
||||
RESTRICT="test" #139905
|
||||
|
||||
RDEPEND="
|
||||
dev-libs/tinyxml
|
||||
media-libs/freetype:2
|
||||
virtual/opengl
|
||||
virtual/glu
|
||||
x11-libs/libX11
|
||||
x11-libs/libXaw
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXt
|
||||
boost? ( dev-libs/boost )
|
||||
cg? ( media-gfx/nvidia-cg-toolkit )
|
||||
freeimage? ( media-libs/freeimage )
|
||||
gles2? ( >=media-libs/mesa-8.0.0[gles2] )
|
||||
ois? ( dev-games/ois )
|
||||
threads? (
|
||||
poco? ( dev-libs/poco )
|
||||
tbb? ( dev-cpp/tbb )
|
||||
)
|
||||
zip? ( sys-libs/zlib dev-libs/zziplib )"
|
||||
# gles1 currently broken wrt bug #418201
|
||||
DEPEND="${RDEPEND}
|
||||
x11-proto/xf86vidmodeproto
|
||||
virtual/pkgconfig
|
||||
doc? ( app-doc/doxygen )"
|
||||
|
||||
src_prepare() {
|
||||
sed -i \
|
||||
-e "s:share/OGRE/docs:share/doc/${PF}:" \
|
||||
Docs/CMakeLists.txt || die
|
||||
# Stupid build system hardcodes release names
|
||||
sed -i \
|
||||
-e '/CONFIGURATIONS/s:CONFIGURATIONS Release.*::' \
|
||||
CMake/Utils/OgreConfigTargets.cmake || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DOGRE_FULL_RPATH=NO
|
||||
$(cmake-utils_use boost OGRE_USE_BOOST)
|
||||
$(cmake-utils_use cg OGRE_BUILD_PLUGIN_CG)
|
||||
$(cmake-utils_use doc OGRE_INSTALL_DOCS)
|
||||
$(cmake-utils_use double-precision OGRE_CONFIG_DOUBLE)
|
||||
$(cmake-utils_use examples OGRE_INSTALL_SAMPLES)
|
||||
$(cmake-utils_use freeimage OGRE_CONFIG_ENABLE_FREEIMAGE)
|
||||
$(cmake-utils_use opengl OGRE_BUILD_RENDERSYSTEM_GL)
|
||||
-DOGRE_BUILD_RENDERSYSTEM_GLES=OFF
|
||||
$(cmake-utils_use gles2 OGRE_BUILD_RENDERSYSTEM_GLES2)
|
||||
$(cmake-utils_use profile OGRE_PROFILING)
|
||||
$(cmake-utils_use examples OGRE_BUILD_SAMPLES)
|
||||
-DOGRE_BUILD_TESTS=FALSE
|
||||
$(usex threads "-DOGRE_CONFIG_THREADS=2" "-DOGRE_CONFIG_THREADS=0")
|
||||
$(cmake-utils_use tools OGRE_BUILD_TOOLS)
|
||||
$(cmake-utils_use zip OGRE_CONFIG_ENABLE_ZIP)
|
||||
)
|
||||
|
||||
if use threads ; then
|
||||
local f
|
||||
for f in boost poco tbb ; do
|
||||
use ${f} || continue
|
||||
mycmakeargs+=( -DOGRE_CONFIG_THREAD_PROVIDER=${f} )
|
||||
break
|
||||
done
|
||||
fi
|
||||
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake-utils_src_install
|
||||
docinto examples
|
||||
dodoc "${CMAKE_BUILD_DIR}"/bin/*.cfg
|
||||
}
|
@ -1,3 +1,2 @@
|
||||
DIST icedtea-web-1.3.1.tar.gz 995777 SHA256 20c7fd1eef6c79cbc6478bb01236a3eb2f0af6184eaed24baca59a3c37eafb56 SHA512 9e014ec1eb93868aeb5409aa79a6adcb07dbcab37f881693d4c8f9b755ed97fee1a53abc852a0483d3966fe4ea4fa0df80935b89db8703fcde8df74f04169dcf WHIRLPOOL d0a91f8b441137a92fb8e76774c5c7c43568f171084e48ef390765a7732d490ea2450c4d5338d6485745665c6228b8dffa06986b8b5441a8b117435ec9d34729
|
||||
DIST icedtea-web-1.3.2.tar.gz 1038957 SHA256 bd25d9a9565271b716e54a19ffe8e34ab339666f72c99da743155320b9ac27f0 SHA512 5bf09819c7ce855c5c05b27589afbef14a209174d9de2e7ad6d1a7c7ee90e98efe5498718becca046c9aca8525d5fea9636819ccc4b9b18f38f15103d66bcd16 WHIRLPOOL 43bb9f1532305c61c456d2f7a81f93f73e4f560bafdeada5d731627fd6c8d2435718d2571e47fa05e8420d306627f7396f59f6dd10961a88df03491032a37817
|
||||
DIST icedtea-web-1.4.1.tar.gz 1376133 SHA256 09100207396a09784e04f2ad40d65212930c1d43839e7fa63b9dffaf8567d77b SHA512 aee04dfd3f5cfdf1b956c500922c62f5b37134be4c17562e42f4368bf1a160954a57e78e5f0ce06e2af21237511c5b8d04c490db12ab11d743b5064523b76e6b WHIRLPOOL e47893f67efcda6b948ac28c443a4c2a51cf92e687ac3ca765fc87ed20e5231dd6d96b751044ac87d85ae1d03fdf608931e2e693ca026b921970a3d804eb89c6
|
||||
|
@ -1,128 +0,0 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/dev-java/icedtea-web/icedtea-web-1.3.1-r7.ebuild,v 1.1 2012/11/14 21:59:24 caster Exp $
|
||||
# Build written by Andrew John Hughes (ahughes@redhat.com)
|
||||
|
||||
EAPI="4"
|
||||
|
||||
inherit autotools eutils java-pkg-2 java-vm-2
|
||||
|
||||
DESCRIPTION="FOSS Java browser plugin and Web Start implementation"
|
||||
HOMEPAGE="http://icedtea.classpath.org"
|
||||
SRC_URI="http://icedtea.classpath.org/download/source/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2 GPL-2-with-linking-exception LGPL-2"
|
||||
SLOT="7"
|
||||
KEYWORDS="~amd64 ~ia64 ~x86"
|
||||
|
||||
IUSE="build doc gtk2 gtk3 javascript +nsplugin test"
|
||||
|
||||
COMMON_DEP="
|
||||
dev-java/icedtea:${SLOT}
|
||||
nsplugin? (
|
||||
>=dev-libs/glib-2.16
|
||||
gtk2? (
|
||||
!gtk3? ( >=x11-libs/gtk+-2.6:2 )
|
||||
gtk3? ( x11-libs/gtk+:3 )
|
||||
)
|
||||
!gtk2? ( x11-libs/gtk+:3 )
|
||||
)"
|
||||
RDEPEND="${COMMON_DEP}"
|
||||
# Need system junit 4.8+. Bug #389795
|
||||
DEPEND="${COMMON_DEP}
|
||||
virtual/pkgconfig
|
||||
javascript? ( dev-java/rhino:1.6 )
|
||||
nsplugin? ( net-misc/npapi-sdk )
|
||||
test? ( >=dev-java/junit-4.8:4 )"
|
||||
|
||||
pkg_setup() {
|
||||
JAVA_PKG_WANT_BUILD_VM="icedtea-${SLOT} icedtea${SLOT}"
|
||||
JAVA_PKG_WANT_SOURCE="1.6"
|
||||
JAVA_PKG_WANT_TARGET="1.6"
|
||||
|
||||
java-vm-2_pkg_setup
|
||||
java-pkg-2_pkg_setup
|
||||
|
||||
VMHANDLE="icedtea-${SLOT}"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# bug #356645
|
||||
epatch "${FILESDIR}"/0002-Respect-LDFLAGS.patch
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local vmhome=$(java-config -O)
|
||||
|
||||
if use build; then
|
||||
icedteadir="${ICEDTEA_BIN_DIR}"
|
||||
[[ -z ${icedteadir} ]] && die "USE=build is an internal flag and should not be enabled"
|
||||
installdir="/opt/icedtea-web-bin-${SLOT}"
|
||||
else
|
||||
icedteadir="/usr/$(get_libdir)/icedtea${SLOT}"
|
||||
installdir="/usr/$(get_libdir)/icedtea${SLOT}-web"
|
||||
[[ "${vmhome}" == "${icedteadir}" ]] \
|
||||
|| die "Unexpected install location of IcedTea ${SLOT} '${vmhome}'"
|
||||
fi
|
||||
|
||||
einfo "Installing IcedTea-Web in '${installdir}'"
|
||||
einfo "Installing IcedTea-Web for IcedTea${SLOT} in '${icedteadir}'"
|
||||
|
||||
local gtk_ver=3
|
||||
use gtk2 && gtk_ver=2
|
||||
use gtk3 && gtk_ver=3
|
||||
|
||||
local myconf=(
|
||||
# we need to override all *dir variables that econf sets.
|
||||
# man page (javaws) is installed directly to icedteadir because it's
|
||||
# easier than symlinking, as we don't know the suffix the man page will
|
||||
# end up compressed with, anyway
|
||||
--prefix="${installdir}"
|
||||
--mandir="${icedteadir}"/man
|
||||
--infodir="${installdir}"/share/info
|
||||
--datadir="${installdir}"/share
|
||||
--with-jdk-home="${icedteadir}"
|
||||
--with-gtk=${gtk_ver}
|
||||
$(use_enable doc docs)
|
||||
$(use_enable nsplugin plugin)
|
||||
$(use_with javascript rhino)
|
||||
)
|
||||
|
||||
unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS
|
||||
econf "${myconf[@]}"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# we need this to override the src_compile from java-pkg-2
|
||||
default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# bug #440906
|
||||
MAKEOPTS+=" -j1" default
|
||||
|
||||
if use nsplugin; then
|
||||
install_mozilla_plugin "${installdir}/$(get_libdir)/IcedTeaPlugin.so";
|
||||
fi
|
||||
|
||||
for binary in javaws itweb-settings; do
|
||||
dosym ${installdir}/bin/${binary} ${icedteadir}/bin/${binary}
|
||||
dosym ${installdir}/bin/${binary} ${icedteadir}/jre/bin/${binary}
|
||||
done
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
java-vm_check-nsplugin
|
||||
java_mozilla_clean_
|
||||
|
||||
if use nsplugin; then
|
||||
elog "The icedtea browser plugin (NPPlugin) can be enabled using eselect java-nsplugin"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_prerm() {
|
||||
# override the java-vm-2 eclass check for removing a system VM, as it
|
||||
# doesn't make sense here.
|
||||
:;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue