Gentoo Archives: gentoo-commits

From: "Daniel Gryniewicz (dang)" <dang@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in app-emulation/kvm: ChangeLog metadata.xml kvm-72.ebuild
Date: Mon, 04 Aug 2008 21:08:04
Message-Id: E1KQ7Hd-0007jG-9V@stork.gentoo.org
1 dang 08/08/04 21:08:01
2
3 Modified: ChangeLog metadata.xml
4 Added: kvm-72.ebuild
5 Log:
6 Bump to 72
7 (Portage version: 2.2_rc6/cvs/Linux 2.6.26-gentoo x86_64)
8
9 Revision Changes Path
10 1.10 app-emulation/kvm/ChangeLog
11
12 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/ChangeLog?rev=1.10&view=markup
13 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/ChangeLog?rev=1.10&content-type=text/plain
14 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/ChangeLog?r1=1.9&r2=1.10
15
16 Index: ChangeLog
17 ===================================================================
18 RCS file: /var/cvsroot/gentoo-x86/app-emulation/kvm/ChangeLog,v
19 retrieving revision 1.9
20 retrieving revision 1.10
21 diff -u -r1.9 -r1.10
22 --- ChangeLog 28 Jul 2008 18:44:47 -0000 1.9
23 +++ ChangeLog 4 Aug 2008 21:08:00 -0000 1.10
24 @@ -1,6 +1,16 @@
25 # ChangeLog for app-emulation/kvm
26 # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
27 -# $Header: /var/cvsroot/gentoo-x86/app-emulation/kvm/ChangeLog,v 1.9 2008/07/28 18:44:47 cardoe Exp $
28 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/kvm/ChangeLog,v 1.10 2008/08/04 21:08:00 dang Exp $
29 +
30 + 04 Aug 2008; Daniel Gryniewicz <dang@g.o> metadata.xml,
31 + +kvm-72.ebuild:
32 + Bump to 72
33 +
34 +*kvm-72 (04 Aug 2008)
35 +
36 + 04 Aug 2008; Daniel Gryniewicz <dang@g.o> metadata.xml,
37 + +kvm-72.ebuild:
38 + Bump to kvm-72
39
40 28 Jul 2008; Doug Goldstein <cardoe@g.o> metadata.xml:
41 add GLEP 56 USE flag desc from use.local.desc
42
43
44
45 1.4 app-emulation/kvm/metadata.xml
46
47 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/metadata.xml?rev=1.4&view=markup
48 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/metadata.xml?rev=1.4&content-type=text/plain
49 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/metadata.xml?r1=1.3&r2=1.4
50
51 Index: metadata.xml
52 ===================================================================
53 RCS file: /var/cvsroot/gentoo-x86/app-emulation/kvm/metadata.xml,v
54 retrieving revision 1.3
55 retrieving revision 1.4
56 diff -u -r1.3 -r1.4
57 --- metadata.xml 28 Jul 2008 18:44:47 -0000 1.3
58 +++ metadata.xml 4 Aug 2008 21:08:00 -0000 1.4
59 @@ -3,13 +3,13 @@
60 <pkgmetadata>
61 <herd>none</herd>
62 <maintainer>
63 - <email>cardoe@g.o</email>
64 - <name>Doug Goldstein</name>
65 - </maintainer>
66 - <maintainer>
67 <email>dang@g.o</email>
68 <name>Daniel Gryniewicz</name>
69 </maintainer>
70 + <maintainer>
71 + <email>cardoe@g.o</email>
72 + <name>Doug Goldstein</name>
73 + </maintainer>
74 <longdescription lang="en">
75 KVM (for Kernel-based Virtual Machine) is a full virtualization solution
76 for Linux on x86 hardware containing virtualization extensions (Intel VT
77
78
79
80 1.1 app-emulation/kvm/kvm-72.ebuild
81
82 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/kvm-72.ebuild?rev=1.1&view=markup
83 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/kvm/kvm-72.ebuild?rev=1.1&content-type=text/plain
84
85 Index: kvm-72.ebuild
86 ===================================================================
87 # Copyright 1999-2008 Gentoo Foundation
88 # Distributed under the terms of the GNU General Public License v2
89 # $Header: /var/cvsroot/gentoo-x86/app-emulation/kvm/kvm-72.ebuild,v 1.1 2008/08/04 21:08:00 dang Exp $
90
91 inherit eutils flag-o-matic toolchain-funcs linux-mod
92
93 # Patchset git repo is at http://github.com/dang/kvm-patches/tree/master
94 PATCHSET="kvm-patches-20080716"
95 SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz
96 mirror://gentoo/${PATCHSET}.tar.gz"
97
98 DESCRIPTION="Kernel-based Virtual Machine userland tools"
99 HOMEPAGE="http://kvm.qumranet.com/kvmwiki"
100
101 LICENSE="GPL-2"
102 SLOT="0"
103 KEYWORDS="-* ~amd64 ~x86"
104 # Add bios back when it builds again
105 IUSE="alsa esd gnutls havekernel ncurses pulseaudio sdl test"
106 RESTRICT="test"
107
108 RDEPEND="sys-libs/zlib
109 alsa? ( >=media-libs/alsa-lib-1.0.13 )
110 esd? ( media-sound/esound )
111 pulseaudio? ( media-sound/pulseaudio )
112 gnutls? ( net-libs/gnutls )
113 ncurses? ( sys-libs/ncurses )
114 sdl? ( >=media-libs/libsdl-1.2.11 )"
115
116 # bios? (
117 # sys-devel/dev86
118 # dev-lang/perl
119 # sys-power/iasl
120 # )
121 DEPEND="${RDEPEND}
122 gnutls? ( dev-util/pkgconfig )
123 app-text/texi2html"
124
125 QA_TEXTRELS="usr/bin/kvm"
126
127 pkg_setup() {
128 # check kernel version
129 if use havekernel ; then
130 ewarn "You have the 'havekernel' use flag set. This means you"
131 ewarn "must ensure you have a compatible kernel on your own."
132 elif kernel_is lt 2 6 22; then
133 eerror "the kvm in your kernel requires an older version of"
134 eerror "kvm as shown in :"
135 eerror " http://kvm.qumranet.com/kvmwiki/Downloads"
136 die "kvm version not compatible"
137 fi
138
139 # check for kvm support
140 if use havekernel ; then
141 ewarn "You have the 'havekernel' use flag set. This means you"
142 ewarn "must ensure your kernel has KVM support enable on your own"
143 elif ! linux_chkconfig_present KVM; then
144 eerror "Please enable KVM support in your kernel, found at:"
145 eerror
146 eerror " Virtualization"
147 eerror " Kernel-based Virtual Machine (KVM) support"
148 die "KVM support not detected!"
149 fi
150
151 enewgroup kvm
152 }
153
154 src_unpack() {
155 unpack ${A}
156
157 cd "${S}"
158 # prevent docs to get automatically installed
159 sed -i '/$(DESTDIR)$(docdir)/d' qemu/Makefile
160 # Alter target makefiles to accept CFLAGS set via flag-o
161 sed -i 's/^\(C\|OP_C\|HELPER_C\)FLAGS=/\1FLAGS+=/' \
162 qemu/Makefile qemu/Makefile.target
163 [[ -x /sbin/paxctl ]] && \
164 sed -i 's/^VL_LDFLAGS=$/VL_LDFLAGS=-Wl,-z,execheap/' \
165 qemu/Makefile.target
166 # avoid strip
167 sed -i 's/$(INSTALL) -m 755 -s/$(INSTALL) -m 755/' qemu/Makefile
168
169 epatch \
170 "${WORKDIR}/${PATCHSET}"/kvm-45-qemu-configure.patch \
171 "${WORKDIR}/${PATCHSET}"/kvm-61-qemu-kvm.patch \
172 "${WORKDIR}/${PATCHSET}"/kvm-57-qemu-kvm-cmdline.patch \
173 "${WORKDIR}/${PATCHSET}"/kvm-57-kernel-longmode.patch \
174 "${WORKDIR}/${PATCHSET}"/kvm-68-libkvm-no-kernel.patch \
175 "${WORKDIR}/${PATCHSET}"/kvm-69-qemu-no-blobs.patch \
176 "${WORKDIR}/${PATCHSET}"/kvm-69-qemu-ifup_ifdown.patch \
177 "${WORKDIR}/${PATCHSET}"/kvm-70-block-rw-range-check.patch \
178 "${WORKDIR}/${PATCHSET}"/kvm-71-qemu-kvm-doc.patch \
179 "${WORKDIR}/${PATCHSET}"/kvm-71-qemu-configure.patch
180 }
181
182 src_compile() {
183 local mycc conf_opts audio_opts
184
185 audio_opts="oss"
186 use gnutls || conf_opts="$conf_opts --disable-vnc-tls"
187 use ncurses || conf_opts="$conf_opts --disable-curses"
188 use sdl || conf_opts="$conf_opts --disable-gfx-check --disable-sdl"
189 use alsa && audio_opts="alsa $audio_opts"
190 use esd && audio_opts="esd $audio_opts"
191 use pulseaudio && audio_opts="pa $audio_opts"
192 use sdl && audio_opts="sdl $audio_opts"
193 conf_opts="$conf_opts --disable-gcc-check"
194 conf_opts="$conf_opts --prefix=/usr"
195 #conf_opts="$conf_opts --audio-drv-list=\"$audio_opts\""
196
197 ./configure ${conf_opts} --audio-drv-list="$audio_opts" || die "econf failed"
198
199 emake libkvm || die "emake libkvm failed"
200
201 if use test; then
202 emake user || die "emake user failed"
203 fi
204
205 mycc=$(cat qemu/config-host.mak | egrep "^CC=" | cut -d "=" -f 2)
206
207 filter-flags -fpie -fstack-protector
208
209 # If using gentoo's compiler set the SPEC to non-hardened
210 if [ ! -z ${GCC_SPECS} -a -f ${GCC_SPECS} ]; then
211 local myccver=$(${mycc} -dumpversion)
212 local gccver=$($(tc-getBUILD_CC) -dumpversion)
213
214 #Is this a SPEC for the right compiler version?
215 myspec="${GCC_SPECS/${gccver}/${myccver}}"
216 if [ "${myspec}" == "${GCC_SPECS}" ]; then
217 shopt -s extglob
218 GCC_SPECS="${GCC_SPECS/%hardened*specs/vanilla.specs}"
219 shopt -u extglob
220 else
221 unset GCC_SPECS
222 fi
223 fi
224
225 # if use bios; then
226 # emake bios || die "emake bios failed"
227 # emake vgabios || die "emake vgabios failed"
228 # fi
229
230 emake qemu || die "emake qemu failed"
231 }
232
233 src_install() {
234 # kcmd so we don't install kernel modules which weren't build
235 emake DESTDIR="${D}" kcmd='#' install || die "make install failed"
236
237 exeinto /usr/bin/
238 doexe "${S}/kvm_stat"
239
240 mv "${D}"/usr/share/man/man1/qemu.1 "${D}"/usr/share/man/man1/kvm.1
241 mv "${D}"/usr/share/man/man1/qemu-img.1 "${D}"/usr/share/man/man1/kvm-img.1
242 mv "${D}"/usr/share/man/man8/qemu-nbd.8 "${D}"/usr/share/man/man8/kvm-nbd.8
243 mv "${D}"/usr/bin/qemu-img "${D}"/usr/bin/kvm-img
244 mv "${D}"/usr/bin/qemu-nbd "${D}"/usr/bin/kvm-nbd
245
246 insinto /etc/udev/rules.d/
247 doins scripts/65-kvm.rules
248
249 insinto /etc/kvm/
250 insopts -m0755
251 newins scripts/qemu-ifup kvm-ifup
252 newins scripts/qemu-ifdown kvm-ifdown
253
254 dodoc qemu/pc-bios/README
255 newdoc qemu/qemu-doc.html kvm-doc.html
256 newdoc qemu/qemu-tech.html kvm-tech.html
257 }
258
259 pkg_postinst() {
260 elog "If you don't have kvm compiled into the kernel, make sure you have"
261 elog "the kernel module loaded before running kvm. The easiest way to"
262 elog "ensure that the kernel module is loaded is to load it on boot."
263 elog "For AMD CPUs the module is called 'kvm-amd'"
264 elog "For Intel CPUs the module is called 'kvm-intel'"
265 elog "Please review /etc/conf.d/modules for how to load these"
266 elog
267 elog "Make sure your user is in the 'kvm' group"
268 elog "Just run 'gpasswd -a <USER> kvm', then have <USER> re-login."
269 elog
270 elog "You will need the Universal TUN/TAP driver compiled into your"
271 elog "kernel or loaded as a module to use the virtual network device"
272 elog "if using -net tap. You will also need support for 802.1d"
273 elog "Ethernet Bridging and a configured bridge if using the provided"
274 elog "kvm-ifup script from /etc/kvm."
275 echo
276 }