1 | Summary: Kernel-based Virtual Machine |
---|
2 | Summary(ja): カーネルベースの仮想マシン |
---|
3 | Name: kvm |
---|
4 | Version: 83 |
---|
5 | Release: 1%{?_dist_release} |
---|
6 | License: GPLv2+ and LGPLv2+ |
---|
7 | Group: Development/Tools |
---|
8 | URL: http://kvm.qumranet.com/kvmwiki |
---|
9 | Source0: %{name}-%{version}.tar.gz |
---|
10 | Source1: %{name}.modules |
---|
11 | Patch2: %{name}-62-block-rw-range-check.patch |
---|
12 | # patches from upstream qemu |
---|
13 | |
---|
14 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) |
---|
15 | BuildRequires: SDL-devel |
---|
16 | # to build the bios |
---|
17 | BuildRequires: dev86 |
---|
18 | BuildRequires: iasl |
---|
19 | BuildRequires: %{_includedir}/gnu/stubs-32.h |
---|
20 | BuildRequires: zlib-devel |
---|
21 | # TLS / x509 auth in VNC server |
---|
22 | BuildRequires: gnutls-devel |
---|
23 | # for the docs |
---|
24 | BuildRequires: texi2html |
---|
25 | BuildRequires: rsync |
---|
26 | # kvm kernel side is only x86/x86_64 as that's where the hardware is |
---|
27 | ExclusiveArch: %{ix86} x86_64 |
---|
28 | |
---|
29 | %description |
---|
30 | KVM (for Kernel-based Virtual Machine) is a full virtualization solution |
---|
31 | for Linux on x86 hardware. |
---|
32 | |
---|
33 | Using KVM, one can run multiple virtual machines running unmodified Linux |
---|
34 | or Windows images. Each virtual machine has private virtualized hardware: |
---|
35 | a network card, disk, graphics adapter, etc. |
---|
36 | |
---|
37 | %prep |
---|
38 | %setup -q |
---|
39 | %patch2 -p1 |
---|
40 | |
---|
41 | # "configure --kerneldir" looks for this |
---|
42 | # FIXME: kvm-84 or later shouldn't need this anymore, see: |
---|
43 | # http://git.kernel.org/?p=linux/kernel/git/marcelo/kvm-userspace.git;a=commit;h=4f45aa2db |
---|
44 | echo "%{name}-%{version}" > $(pwd)/kernel/.kernelrelease |
---|
45 | |
---|
46 | # we must not use any of the binaries from the qemu/pc-bios/ directory, |
---|
47 | # as they don't have the corresponding sources shipped with them |
---|
48 | rm -f qemu/pc-bios/*.{bin,x,dtb} qemu/pc-bios/openbios-* |
---|
49 | find qemu/pc-bios -exec file {} \; | grep '\(data\|BIOS\|executable\)' && \ |
---|
50 | echo "Found some binary blobs in qemu/pc-bios!" && exit 1 |
---|
51 | |
---|
52 | %build |
---|
53 | # systems like rhel build system does not have a recent enough linker so |
---|
54 | # --build-id works. this option is used fedora 8 onwards for giving info |
---|
55 | # to the debug packages. |
---|
56 | |
---|
57 | build_id_available() { |
---|
58 | echo "int main () { return 0; }" | gcc -x c -Wl,--build-id - 2>/dev/null |
---|
59 | } |
---|
60 | |
---|
61 | if build_id_available; then |
---|
62 | qemuldflags="-Wl,--build-id"; |
---|
63 | else |
---|
64 | qemuldflags=""; |
---|
65 | fi |
---|
66 | |
---|
67 | |
---|
68 | # we need to install the data bits in a different path |
---|
69 | sed -i 's/datasuffix=\"\/share\/qemu\"/datasuffix=\"\/share\/kvm\"/' qemu/configure |
---|
70 | ./configure \ |
---|
71 | --with-patched-kernel \ |
---|
72 | --kerneldir=$(pwd)/kernel \ |
---|
73 | --prefix=%{_prefix} \ |
---|
74 | --qemu-ldflags=$qemuldflags \ |
---|
75 | --disable-blobs \ |
---|
76 | --audio-drv-list=sdl,alsa,oss |
---|
77 | |
---|
78 | # build the bios, and fix it's makefile |
---|
79 | sed -i 's/gcc -m32/gcc/' bios/Makefile |
---|
80 | make bios |
---|
81 | |
---|
82 | make vgabios |
---|
83 | |
---|
84 | # we can't use RPM_OPT_FLAGS for the same reasons as qemu (#208026) for the |
---|
85 | # qemu bits. so let's set it for the other pieces. this requires some |
---|
86 | # manual keeping up of what is in the kvm tree. |
---|
87 | sed -i 's/CFLAGS =/CFLAGS +=/' user/Makefile |
---|
88 | echo "CFLAGS=$RPM_OPT_FLAGS" >> user/config.mak |
---|
89 | make %{?_smp_mflags} |
---|
90 | |
---|
91 | |
---|
92 | %install |
---|
93 | rm -rf $RPM_BUILD_ROOT |
---|
94 | make DESTDIR=$RPM_BUILD_ROOT install |
---|
95 | |
---|
96 | # we have to have our own copies of the bios/keymaps due to incompat with |
---|
97 | # qemu 0.9. include the man page |
---|
98 | mv $RPM_BUILD_ROOT/%{_mandir}/man1/qemu.1* $RPM_BUILD_ROOT/%{_mandir}/man1/qemu-kvm.1 |
---|
99 | rm -rf $RPM_BUILD_ROOT/%{_mandir}/man*/qemu-img* $RPM_BUILD_ROOT/%{_docdir} |
---|
100 | rm -f $RPM_BUILD_ROOT/%{_bindir}/qemu-img |
---|
101 | # no shared lib, static libs |
---|
102 | rm -fr $RPM_BUILD_ROOT/%{_includedir} $RPM_BUILD_ROOT/%{_libdir} |
---|
103 | |
---|
104 | # make install gives it bogus execute permissiions |
---|
105 | chmod -x $RPM_BUILD_ROOT/%{_mandir}/man1/qemu-kvm.1* |
---|
106 | |
---|
107 | install -d $RPM_BUILD_ROOT/%{_datadir}/%{name} |
---|
108 | for i in bios.bin extboot.bin vgabios.bin vgabios-cirrus.bin |
---|
109 | do |
---|
110 | install -m 0644 qemu/pc-bios/$i $RPM_BUILD_ROOT/%{_datadir}/%{name}/$i |
---|
111 | done |
---|
112 | |
---|
113 | mv $RPM_BUILD_ROOT/%{_bindir}/qemu-system-x86_64 $RPM_BUILD_ROOT/%{_bindir}/qemu-kvm |
---|
114 | |
---|
115 | mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/modules |
---|
116 | install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/modules/kvm.modules |
---|
117 | install -m 0755 user/kvmtrace %{buildroot}/%{_bindir}/ |
---|
118 | install -m 0755 user/kvmtrace_format %{buildroot}/%{_bindir}/ |
---|
119 | |
---|
120 | # the pxe etherboot images will be symlinks to the images on |
---|
121 | # /usr/share/etherboot, as KVM doesn't know how to look |
---|
122 | # for other paths, yet. |
---|
123 | pxe_link() { |
---|
124 | ln -s ../etherboot/$2.rom %{buildroot}/usr/share/kvm/pxe-$1.bin |
---|
125 | } |
---|
126 | |
---|
127 | pxe_link e1000 e1000-82542 |
---|
128 | pxe_link ne2k_pci ne |
---|
129 | pxe_link pcnet pcnet32 |
---|
130 | pxe_link rtl8139 rtl8139 |
---|
131 | pxe_link virtio virtio-net |
---|
132 | |
---|
133 | |
---|
134 | %post |
---|
135 | # load kvm modules now, so we can make sure no reboot is needed. |
---|
136 | # If there's already a kvm module installed, we don't mess with it |
---|
137 | sh /%{_sysconfdir}/sysconfig/modules/kvm.modules |
---|
138 | |
---|
139 | |
---|
140 | %clean |
---|
141 | rm -rf $RPM_BUILD_ROOT |
---|
142 | |
---|
143 | |
---|
144 | %files |
---|
145 | %defattr(-,root,root,-) |
---|
146 | %{_bindir}/* |
---|
147 | %{_mandir}/* |
---|
148 | %{_datadir}/%{name} |
---|
149 | %{_sysconfdir}/sysconfig/modules/%{name}.modules |
---|
150 | |
---|
151 | %changelog |
---|
152 | * Mon Jan 19 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 83-1 |
---|
153 | - new upstream release |
---|
154 | - build with gnutls-1.6.3 |
---|
155 | |
---|
156 | * Mon Jul 07 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 70-1 |
---|
157 | - new upstream release |
---|
158 | - import patches from fedora |
---|
159 | |
---|
160 | * Thu Nov 01 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 48-0vl1 |
---|
161 | - initial build for Vine Linux |
---|
162 | - update to kvm-48 |
---|
163 | |
---|
164 | * Mon Oct 15 2007 Daniel P. Berrange <berrange@redhat.com> - 36-7.fc8 |
---|
165 | - Fixed PXE boot when KVM is enabled (rhbz #331191) |
---|
166 | |
---|
167 | * Wed Sep 26 2007 Daniel P. Berrange <berrange@redhat.com> - 36-6.fc8 |
---|
168 | - Fixed rtl8139 checksum calculation for Vista (rhbz #308201) |
---|
169 | |
---|
170 | * Mon Sep 24 2007 Jeremy Katz <katzj@redhat.com> - 36-5 |
---|
171 | - fix build on x86_64 |
---|
172 | |
---|
173 | * Mon Sep 24 2007 Jeremy Katz <katzj@redhat.com> - 36-3 |
---|
174 | - add support for selecting boot device at runtime |
---|
175 | |
---|
176 | * Tue Sep 4 2007 Jeremy Katz <katzj@redhat.com> - 36-2 |
---|
177 | - rebase vnc auth patch |
---|
178 | |
---|
179 | * Tue Sep 4 2007 Jeremy Katz <katzj@redhat.com> - 36-1 |
---|
180 | - update to kvm-36 |
---|
181 | |
---|
182 | * Mon Aug 27 2007 Daniel P. Berrange <berrange@redhat.com> - 35-3.fc8 |
---|
183 | - Added patch for VNC password auth and TLS+x509 cert auth |
---|
184 | |
---|
185 | * Mon Aug 20 2007 Jeremy Katz <katzj@redhat.com> - 35-2 |
---|
186 | - add fix for ATAPI from upstream qemu |
---|
187 | |
---|
188 | * Mon Aug 20 2007 Jeremy Katz <katzj@redhat.com> - 35-1 |
---|
189 | - update to kvm-35 |
---|
190 | - patch to use -Wl,--build-id so that we get debuginfo |
---|
191 | |
---|
192 | * Thu Jul 19 2007 Jeremy Katz <katzj@redhat.com> - 31-1 |
---|
193 | - update to kvm-31 |
---|
194 | |
---|
195 | * Mon Jul 16 2007 Jeremy Katz <katzj@redhat.com> - 28-2 |
---|
196 | - add patch from danpb to fix mac addrs of multiple 8139 nics (#247641) |
---|
197 | |
---|
198 | * Wed Jun 13 2007 Jeremy Katz <katzj@redhat.com> - 28-1 |
---|
199 | - update to kvm-28 |
---|
200 | |
---|
201 | * Sat Jun 9 2007 Jeremy Katz <katzj@redhat.com> - 27-1 |
---|
202 | - update to kvm-27 |
---|
203 | |
---|
204 | * Tue May 29 2007 Jeremy Katz <katzj@redhat.com> - 26-1 |
---|
205 | - update to kvm-26 |
---|
206 | |
---|
207 | * Wed May 16 2007 Jeremy Katz <katzj@redhat.com> - 24-1 |
---|
208 | - update to kvm-24 |
---|
209 | |
---|
210 | * Wed Apr 25 2007 Jeremy Katz <katzj@redhat.com> - 19-2 |
---|
211 | - fix kernel and ramdisk being specified on the command line (#237879) |
---|
212 | |
---|
213 | * Tue Apr 17 2007 Jeremy Katz <katzj@redhat.com> - 19-1 |
---|
214 | - update to kvm-19 |
---|
215 | - use rtl8139 as the default nic emulation instead of ne2k_pci (#236790) |
---|
216 | |
---|
217 | * Mon Mar 26 2007 Jeremy Katz <katzj@redhat.com> - 15-2 |
---|
218 | - add file so that kvm modules get loaded on boot |
---|
219 | |
---|
220 | * Wed Mar 7 2007 Jeremy Katz <katzj@redhat.com> - 15-1 |
---|
221 | - update to kvm-15 |
---|
222 | |
---|
223 | * Mon Feb 26 2007 Jeremy Katz <katzj@redhat.com> - 14-2 |
---|
224 | - use default optflags for non-qemu pieces (#230012) |
---|
225 | |
---|
226 | * Fri Feb 23 2007 Jeremy Katz <katzj@redhat.com> - 14-1 |
---|
227 | - update to kvm-14 |
---|
228 | - note: this requires a kernel that's 2.6.21-rc1 or newer |
---|
229 | |
---|
230 | * Mon Feb 19 2007 Jeremy Katz <katzj@redhat.com> - 12-3 |
---|
231 | - add the buildrequires for the docs to build |
---|
232 | |
---|
233 | * Mon Feb 19 2007 Jeremy Katz <katzj@redhat.com> - 12-2 |
---|
234 | - include bios and keymaps in the kvm package since we need a slightly |
---|
235 | different version for kvm now |
---|
236 | - include man page |
---|
237 | |
---|
238 | * Fri Jan 26 2007 Jeremy Katz <katzj@redhat.com> - 12-1 |
---|
239 | - update to kvm-12 |
---|
240 | - add qemu patch for better ATAPI DMA support (which works with ata_piix) |
---|
241 | |
---|
242 | * Fri Jan 19 2007 Jeremy Katz <katzj@redhat.com> - 11-1 |
---|
243 | - update to kvm-11 |
---|
244 | |
---|
245 | * Fri Jan 5 2007 Jeremy Katz <katzj@redhat.com> - 9-1 |
---|
246 | - update to kvm-9 |
---|
247 | |
---|
248 | * Wed Jan 3 2007 Jeremy Katz <katzj@redhat.com> - 7-4 |
---|
249 | - actually build without -devel... |
---|
250 | |
---|
251 | * Wed Dec 20 2006 Jeremy Katz <katzj@redhat.com> - 7-3 |
---|
252 | - remove the -devel subpackage since there's no shared lib upstream yet |
---|
253 | - direct download link for source |
---|
254 | |
---|
255 | * Tue Dec 19 2006 Jeremy Katz <katzj@redhat.com> - 7-2 |
---|
256 | - BR e2fsprogs-devel |
---|
257 | |
---|
258 | * Tue Dec 19 2006 Jeremy Katz <katzj@redhat.com> - 7-1 |
---|
259 | - Initial build |
---|
260 | |
---|