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