]> git.pld-linux.org Git - packages/xen.git/blame - xen.spec
- rel 1
[packages/xen.git] / xen.spec
CommitLineData
2f3b83cd 1#
403a0e9f 2# TODO:
263a9ffc
JK
3# - check if other tools/libs are not usable in domU, move them to -guest
4# packages if so
7f699907
JK
5# - pass bconds to qemu configure script (tricky, as the script is called from
6# Xen Makefiles)
9d5c1e3f
JK
7# - fix %doc - some files are installed in docdir both by make install and %d,
8# other are installed once
33ce8ee4 9# - mini-os objects are relinked on install (because of .PHONY rules used to make them)
b650a78f 10#
732e4a65 11# Conditional build:
32d7e160
JB
12%bcond_without qemu_traditional # without qemu-xen-traditional
13%bcond_without opengl # OpenGL support in Xen qemu
14%bcond_without sdl # SDL support in Xen qemu
15%bcond_without bluetooth # bluetooth support in Xen qemu
16%bcond_without brlapi # brlapi support in Xen qemu
17%bcond_without ocaml # Ocaml libraries for Xen tools
18%bcond_without efi # EFI hypervisor
19%bcond_without hypervisor # Xen hypervisor build
20%bcond_without stubdom # stubdom build
21%bcond_without xsm # XSM security module (by default, Flask)
695d15a0
JB
22
23%ifnarch %{x8664} arm
24%undefine with_hypervisor
25%endif
0c4e0eaf 26%ifnarch %{x8664}
2c37e39c
JK
27%undefine with_efi
28%endif
695d15a0
JB
29%ifnarch %{ix86} %{x8664}
30%undefine with_stubdom
31%endif
2c37e39c 32
a32594c7
JK
33# from ./stubdom/configure.ac
34%define polarssl_version 1.1.4
35%define tpm_emulator_version 0.7.4
36%define gmp_version 4.3.2
37
c1281a11 38%define xen_extfiles_url http://xenbits.xensource.com/xen-extfiles
adbb6385 39Summary: Xen - a virtual machine monitor
a1a3c257 40Summary(pl.UTF-8): Xen - monitor maszyny wirtualnej
fda6847b 41Name: xen
0065b9ba 42Version: 4.6.1
0d5ba144 43Release: 1
e6e7d0de 44License: GPL v2, interface parts on BSD-like
129858a4 45Group: Applications/System
98fa2458 46Source0: http://bits.xensource.com/oss-xen/release/%{version}/%{name}-%{version}.tar.gz
0065b9ba 47# Source0-md5: df2d854c3c90ffeefaf71e7f868fb326
c1281a11 48# used by stubdoms
94b34ae4 49Source10: %{xen_extfiles_url}/lwip-1.3.0.tar.gz
c1281a11 50# Source10-md5: 36cc57650cffda9a0269493be2a169bb
94b34ae4 51Source11: %{xen_extfiles_url}/newlib-1.16.0.tar.gz
c1281a11 52# Source11-md5: bf8f1f9e3ca83d732c00a79a6ef29bc4
94b34ae4 53Source12: %{xen_extfiles_url}/zlib-1.2.3.tar.gz
c1281a11 54# Source12-md5: debc62758716a169df9f62e6ab2bc634
94b34ae4 55Source13: %{xen_extfiles_url}/pciutils-2.2.9.tar.bz2
c1281a11 56# Source13-md5: cec05e7785497c5e19da2f114b934ffd
94b34ae4 57Source14: %{xen_extfiles_url}/grub-0.97.tar.gz
c1281a11 58# Source14-md5: cd3f3eb54446be6003156158d51f4884
bf4f47e8
JK
59Source15: http://xenbits.xen.org/xen-extfiles/ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz
60# Source15-md5: 7496268cebf47d5c9ccb0696e3b26065
a32594c7
JK
61Source17: %{xen_extfiles_url}/polarssl-%{polarssl_version}-gpl.tgz
62# Source17-md5: 7b72caf22b01464ee7d6165f2fd85f44
63Source18: http://xenbits.xen.org/xen-extfiles/tpm_emulator-%{tpm_emulator_version}.tar.gz
64# Source18-md5: e26becb8a6a2b6695f6b3e8097593db8
65Source19: ftp://ftp.gmplib.org/pub/gmp-%{gmp_version}/gmp-%{gmp_version}.tar.bz2
66# Source19-md5: dd60683d7057917e34630b4a787932e8
2e8b91a6 67Source35: xenconsoled.sysconfig
2e8b91a6
JR
68Source37: xenstored.sysconfig
69Source38: xenstored.tmpfiles
2e8b91a6 70# sysvinit scripts
40222f4e 71Source46: xen-qemu-dom0-disk-backend.init
2e8b91a6
JR
72Source51: xenconsoled.init
73Source52: xenstored.init
74Source53: xen-watchdog.init
75Source54: xendomains.init
76Source55: xen.logrotate
5c00ee35 77Source56: xen.tmpfiles
06e5dbe4
JK
78Source57: xen.cfg
79Source58: xen.efi-boot-update
2ea512d8 80Source59: vif-openvswitch
e9dbc551
JR
81Source60: xen-init-list
82Source61: xen-toolstack
47d65e01 83Patch0: %{name}-python_scripts.patch
e9753e37
MM
84Patch1: %{name}-symbols.patch
85Patch2: %{name}-curses.patch
7f699907 86Patch3: pygrubfix.patch
bf4f47e8 87# Warning: this disables ingress filtering implemented in xen scripts!
73ec0fdf 88Patch7: %{name}-net-disable-iptables-on-bridge.patch
33ce8ee4 89Patch9: %{name}-gawk.patch
695d15a0 90Patch10: %{name}-qemu.patch
695d15a0
JB
91Patch12: %{name}-doc.patch
92Patch13: %{name}-paths.patch
0f2742aa 93Patch14: %{name}-no_fetcher.patch
2c9ed58f 94Patch15: odd-glib2-fix.patch
05e10f1a 95Patch16: %{name}-gmp-abi.patch
33ce8ee4 96Patch18: %{name}-make.patch
22b846ab 97Patch19: %{name}-no_Werror.patch
364c88c5
JB
98# http://git.alpinelinux.org/cgit/aports/plain/main/xen/gnutls-3.4.0.patch
99Patch20: %{name}-gnutls-3.4.patch
0065b9ba 100Patch21: %{name}-grep-typo.patch
16d5148e 101Patch22: %{name}-stubdom-build.patch
bccfbff0 102Patch23: link.patch
899e28ce 103Patch24: %{name}-systemd.patch
7f699907 104URL: http://www.xen.org/products/xenhyp.html
32d7e160 105BuildRequires: autoconf >= 2.67
1c511a89 106%ifarch %{ix86} %{x8664}
24d6dc2b 107BuildRequires: acpica
2e8b91a6 108BuildRequires: bcc
695d15a0 109BuildRequires: bin86
1c511a89 110%endif
c306fd7f 111%{?with_efi:BuildRequires: binutils >= 3:2.23.51.0.3-2}
1c511a89 112BuildRequires: bzip2-devel
c40b7d13
JK
113%if %{with xsm}
114BuildRequires: checkpolicy
115%endif
32d7e160
JB
116BuildRequires: curl-devel
117BuildRequires: cyrus-sasl-devel >= 2
d9ee3ddc 118BuildRequires: e2fsprogs-devel
695d15a0 119BuildRequires: gcc >= 6:4.1
3bf78b17
JK
120%ifarch %{x8664}
121BuildRequires: gcc-multilib-32 >= 6:4.1
122%endif
77856a37 123BuildRequires: gettext-tools
1c511a89 124BuildRequires: glib2-devel >= 1:2.12
04f24179 125BuildRequires: gnutls-devel
32d7e160 126BuildRequires: keyutils-devel
145a61ab 127BuildRequires: latex2html >= 2008
1c511a89 128BuildRequires: libaio-devel
695d15a0 129BuildRequires: libcap-devel
32d7e160
JB
130%ifarch arm aarch64
131BuildRequires: libfdt-devel
132%endif
1c511a89 133BuildRequires: libjpeg-devel
32d7e160 134BuildRequires: libnl-devel >= 3.2.8
1c511a89
JB
135BuildRequires: libpng-devel
136BuildRequires: libuuid-devel
137BuildRequires: lzo-devel >= 2
403a0e9f 138BuildRequires: ncurses-devel
732e4a65 139%if %{with ocaml}
32d7e160 140BuildRequires: ocaml >= 3.11.0
732e4a65 141BuildRequires: ocaml-findlib
732e4a65 142%endif
1c511a89
JB
143BuildRequires: nss-devel >= 3.12.8
144BuildRequires: openssl-devel
42bff0c7 145BuildRequires: pciutils-devel
1c511a89 146BuildRequires: perl-base
695d15a0 147BuildRequires: perl-tools-pod
abdd4c6d 148BuildRequires: pkgconfig
53503036 149BuildRequires: python-devel
48c47956 150BuildRequires: rpm-pythonprov
5db31b25 151BuildRequires: rpmbuild(macros) >= 1.647
fdc4685d 152BuildRequires: seabios
8505c292 153BuildRequires: texi2html
7f699907 154BuildRequires: texlive-dvips
f03e6adf 155BuildRequires: texlive-latex-psnfss
55fc09d2 156BuildRequires: texlive-xetex
695d15a0 157BuildRequires: transfig
12f352e2 158BuildRequires: which
1c511a89
JB
159# for xfsctl (<xfs/xfs.h>)
160BuildRequires: xfsprogs-devel
32d7e160
JB
161BuildRequires: xz-devel
162BuildRequires: yajl-devel
163BuildRequires: zlib-devel
25d0da1e 164%if %{with qemu_traditional}
32d7e160
JB
165%{?with_opengl:BuildRequires: OpenGL-devel}
166%{?with_sdl:BuildRequires: SDL-devel >= 1.2.1}
167%{?with_bluetooth:BuildRequires: bluez-libs-devel}
168%{?with_brlapi:BuildRequires: brlapi-devel}
169BuildRequires: vde2-devel
04f24179
JB
170BuildRequires: xorg-lib-libX11-devel
171BuildRequires: xorg-lib-libXext-devel
25d0da1e 172%endif
25d0da1e 173%if %{with qemu_traditional}
1c511a89
JB
174# FIXME: see qemu configure comments on top of spec
175%{!?with_opengl:BuildConflicts: OpenGL-devel}
176%{!?with_sdl:BuildConflicts: SDL-devel}
177%{!?with_sdl:BuildConflicts: SDL-devel}
178%{!?with_bluetooth:BuildConflicts: bluez-libs-devel}
179%{!?with_brlapi:BuildConflicts: brlapi-devel}
25d0da1e 180%endif
129858a4 181Requires(post,preun): /sbin/chkconfig
c2ee841b 182Requires(post,preun,postun): systemd-units >= 38
9f9b2612 183Requires: %{name}-libs = %{version}-%{release}
53503036
JB
184Requires: ZopeInterface
185Requires: bridge-utils
e77e45ff
AM
186Requires: coreutils
187Requires: diffutils
d78769bd 188Requires: gawk
e77e45ff 189Requires: iptables
53503036 190Requires: losetup
e77e45ff 191Requires: net-tools
8e6e2740 192Requires: python-%{name} = %{version}-%{release}
129858a4 193Requires: rc-scripts
e77e45ff 194Requires: sed
5db31b25 195Requires: systemd-units >= 38
a674a8b2 196Requires: util-linux
e77e45ff 197Requires: which
263a9ffc 198Requires: %{name}-guest = %{version}-%{release}
cef7399d 199Obsoletes: xen-doc
2e8b91a6 200Obsoletes: xen-udev
32d7e160 201Obsoletes: xen-xend
695d15a0 202ExclusiveArch: %{ix86} %{x8664} arm
25d0da1e
JK
203%ifarch %{ix86} %{x8664}
204# for HVM
205Suggests: qemu-system-x86
206%endif
fda6847b
AM
207BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
208
02272923 209# some PPC/SPARC boot images in ELF format
32d7e160 210%define _noautostrip .*%{_datadir}/\\(xen\\|qemu-xen\\)/qemu/\\(openbios-.*\\|palcode-clipper\\|s390-ccw.img\\)
8f12ec8f 211
fda6847b
AM
212%description
213This package contains the Xen hypervisor and Xen tools, needed to run
214virtual machines on x86 systems, together with the kernel-xen*
215packages. Information on how to use Xen can be found at the Xen
216project pages.
217
218Virtualisation can be used to run multiple versions or multiple Linux
219distributions on one system, or to test untrusted applications in a
220sandboxed environment. Note that the Xen technology is still in
221development, and this RPM has received extremely little testing. Don't
222be surprised if this RPM eats your data, drinks your coffee or makes
223fun of you in front of your friends.
224
d2a30a0d 225%description -l pl.UTF-8
3615a8c8 226Ten pakiet zawiera nadzorcę oraz narzędzia Xen, potrzebne do
adbb6385 227uruchamiania wirtualnych maszyn w systemach x86, wraz z pakietami
3615a8c8 228kernel-xen*. Informacje jak używać Xena można znaleźć na stronach
adbb6385
JB
229projektu.
230
3615a8c8 231Wirtualizacja może być używana do uruchamiania wielu wersji lub wielu
dcba01a0 232dystrybucji Linuksa na jednym systemie lub do testowania nie zaufanych
3615a8c8
ER
233aplikacji w odizolowanym środowisku. Należy zauważyć, że technologia
234Xen jest ciągle rozwijana, a ten RPM był słabo testowany. Nie należy
235być zdziwionym, jeśli ten pakiet zje dane, wypije całą kawę czy będzie
236się wyśmiewał w obecności przyjaciół.
403a0e9f 237
263a9ffc
JK
238%package guest
239Summary: Xen tools for virtual machines
240Summary(pl.UTF-8): Narzędzia Xen dla maszyn virtualnych
241Group: Applications/System
242Requires: %{name}-libs-guest = %{version}-%{release}
243
244%description guest
245Xen utilities for both dom0 and domU virtual domains.
246
247%description guest -l pl.UTF-8
248Narzędzia Xena dla maszyn wirtualnych dom0 i domU.
249
26412ee3 250%package libs
e6e7d0de
JB
251Summary: Xen libraries
252Summary(pl.UTF-8): Biblioteki Xena
26412ee3 253Group: Libraries
a2f5a84a 254Requires: %{name}-libs-guest = %{version}-%{release}
26412ee3
JB
255
256%description libs
e6e7d0de 257Xen libraries.
26412ee3
JB
258
259%description libs -l pl.UTF-8
e6e7d0de 260Biblioteki Xena.
26412ee3 261
263a9ffc
JK
262%package libs-guest
263Summary: Xen libraries for virtual machines
264Summary(pl.UTF-8): Biblioteki Xena dla maszyn wirtualnych
265Group: Libraries
266
267%description libs-guest
268Xen libraries for both dom0 and domU virtual machines.
269
270%description libs-guest -l pl.UTF-8
271Biblioteki Xena dla maszyn wirtualnych dom0 i domU.
272
403a0e9f 273%package devel
e6e7d0de
JB
274Summary: Header files for Xen
275Summary(pl.UTF-8): Pliki nagłówkowe Xena
403a0e9f 276Group: Development/Libraries
9f9b2612 277Requires: %{name}-libs = %{version}-%{release}
403a0e9f
AM
278
279%description devel
e6e7d0de 280Header files for Xen.
6eccf3e8 281
d2a30a0d 282%description devel -l pl.UTF-8
e6e7d0de 283Pliki nagłówkowe Xena.
403a0e9f
AM
284
285%package static
e6e7d0de
JB
286Summary: Static Xen libraries
287Summary(pl.UTF-8): Statyczne biblioteki Xena
403a0e9f 288Group: Development/Libraries
9f9b2612 289Requires: %{name}-devel = %{version}-%{release}
403a0e9f
AM
290
291%description static
e6e7d0de 292Static Xen libraries.
adbb6385 293
d2a30a0d 294%description static -l pl.UTF-8
e6e7d0de 295Statyczne biblioteki Xena.
6eccf3e8 296
e6e7d0de
JB
297%package -n ocaml-xen
298Summary: OCaml bindings for Xen
299Summary(pl.UTF-8): Wiązania OCamla dla Xena
300License: LGPL v2.1 with linking exception
301Group: Libraries
302Requires: %{name}-libs = %{version}-%{release}
1d76ff09 303%if %{with ocaml}
e6e7d0de 304%requires_eq ocaml-runtime
1d76ff09 305%endif
f249176d 306
e6e7d0de
JB
307%description -n ocaml-xen
308OCaml bindings for Xen.
309
310%description -n ocaml-xen -l pl.UTF-8
311Wiązania OCamla dla Xena.
312
313%package -n ocaml-xen-devel
314Summary: OCaml bindings for Xen - development files
315Summary(pl.UTF-8): Wiązania OCamla dla Xena - pliki programistyczne
316License: LGPL v2.1 with linking exception
317Group: Development/Libraries
318Requires: ocaml-xen = %{version}-%{release}
1d76ff09 319%if %{with ocaml}
e6e7d0de 320%requires_eq ocaml
1d76ff09 321%endif
e6e7d0de
JB
322
323%description -n ocaml-xen-devel
324OCaml bindings for Xen - development files.
325
326%description -n ocaml-xen-devel -l pl.UTF-8
327Wiązania OCamla dla Xena - pliki programistyczne.
328
5dd334af 329%package -n python-xen
e6e7d0de
JB
330Summary: Xen Python modules
331Summary(pl.UTF-8): Moduły Pythona dla Xena
5dd334af 332Group: Libraries
e6e7d0de 333Requires: %{name}-libs = %{version}-%{release}
e35fda92 334Conflicts: xen < 3.2.1-0.3
5dd334af
JB
335
336%description -n python-xen
e6e7d0de 337Xen Python modules.
5dd334af
JB
338
339%description -n python-xen -l pl.UTF-8
e6e7d0de 340Moduły Pythona dla Xena.
5dd334af 341
263a9ffc
JK
342%package -n python-xen-guest
343Summary: Xen Python modules for virtual machines
344Summary(pl.UTF-8): Moduły Pythona dla maszyn wirtualnych Xena
345Group: Libraries
346Requires: %{name}-libs-guest = %{version}-%{release}
347Conflicts: xen < 3.2.1-0.3
348
349%description -n python-xen-guest
350Xen Python modules for both dom0 and domU virtual machines.
351
352%description -n python-xen-guest -l pl.UTF-8
353Moduły Pythona dla maszyn wirtualnych dom0 i domU.
354
e9753e37 355%package -n bash-completion-%{name}
32d7e160 356Summary: bash-completion for Xen (xl)
e6e7d0de 357Summary(pl.UTF-8): Bashowe dopełnianie poleceń dla Xena (xl)
32d7e160
JB
358Group: Applications/Shells
359Requires: %{name} = %{version}-%{release}
360Requires: bash-completion
e9753e37
MM
361
362%description -n bash-completion-%{name}
e6e7d0de 363This package provides bash-completion for Xen (xl).
94b34ae4
JB
364
365%description -n bash-completion-%{name} -l pl.UTF-8
e6e7d0de 366Ten pakiet zapewnia bashowe dopełnianie poleceń dla Xena (xl).
e9753e37 367
2c37e39c
JK
368%package efi
369Summary: Xen hypervisor binary for EFI
f8df531d 370Summary(pl.UTF-8): Hipernadzorca Xen dla EFI
2c37e39c
JK
371Group: Applications/System
372Requires: %{name}-libs-guest = %{version}-%{release}
373
374%description efi
375Xen hypervisor EFI binary, which can be booted directly from (U)EFI
376firmware without help from any additional bootloader.
377
378%description efi -l pl.UTF-8
379Nadzorca Xen w postaci, która może być uruchomiona wprost z firmware
380(U)EFI, bez potrzeby oddzielnego bootloadera.
381
fda6847b 382%prep
fdc4685d 383%setup -q
47d65e01 384%patch0 -p1
7f699907
JK
385%patch1 -p1
386%patch2 -p1
387%patch3 -p1
7f699907 388%patch7 -p1
33ce8ee4 389%patch9 -p1
6ca9eddd 390%patch10 -p1
30059e8d 391%patch12 -p1
7abe351d 392%patch13 -p1
0f2742aa 393%patch14 -p1
78fdf904 394%patch15 -p1
53dece81 395%patch16 -p1
33ce8ee4 396%patch18 -p1
22b846ab 397%patch19 -p1
364c88c5 398%patch20 -p1
0065b9ba 399%patch21 -p1
16d5148e 400%patch22 -p1
bccfbff0 401%patch23 -p1
899e28ce 402%patch24 -p1
c1281a11
ER
403
404# stubdom sources
405ln -s %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} stubdom
a32594c7 406ln -s %{SOURCE17} %{SOURCE18} %{SOURCE19} stubdom
c1281a11 407ln -s %{SOURCE15} tools/firmware/etherboot/ipxe.tar.gz
fda6847b 408
7f699907
JK
409# do not allow fetching anything via git
410echo GIT=/bin/false >> Config.mk
411
fda6847b 412%build
0f2742aa
JK
413# based on the 'autoconf.sh' from the sources
414%{__autoconf}
415cd tools
416%{__autoconf}
417%{__autoheader}
418cd ../stubdom
419%{__autoconf}
420cd ../docs
421%{__autoconf}
422cd ..
423
053d5886
JR
424# if gold is used then bioses and grub doesn't build
425install -d our-ld
bb96a194 426ln -f -s /usr/bin/ld.bfd our-ld/ld
053d5886
JR
427export PATH=$(pwd)/our-ld:$PATH
428
2e8b91a6
JR
429export CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
430export CXXFLAGS="%{rpmcflags} -I/usr/include/ncurses"
431
32d7e160
JB
432# NOTE on ac_cv_*:
433# - use openssl (libcrypto) instead of libgcrypt as openssl is obligatory anyway
1c511a89 434# - prevent libiconv from being detected (not needed with glibc)
bf4f47e8 435%configure \
1c511a89 436 CPPFLAGS="%{rpmcppflags} -I/usr/include/ncurses" \
32d7e160 437 ac_cv_lib_gcrypt_gcry_md_hash_buffer=no \
1c511a89 438 ac_cv_lib_iconv_libiconv_open=no \
32d7e160
JB
439 --disable-debug \
440 %{__enable_disable qemu_traditional qemu-traditional} \
fdc4685d 441 --with-system-seabios=/usr/share/seabios/bios.bin \
25d0da1e
JK
442%ifarch %{x8664}
443 --with-system-qemu=/usr/bin/qemu-system-x86_64 \
444%else
445 --with-system-qemu=/usr/bin/qemu-system-i386 \
446%endif
32d7e160 447 --with-systemd=%{systemdunitdir}
bf4f47e8 448
efdb8f06 449%{__make} -j1 dist-xen dist-tools dist-docs \
732e4a65 450 %{!?with_ocaml:OCAML_TOOLS=n} \
25d0da1e 451 XSM_ENABLE=%{?with_xsm:y}%{!?with_xsm:n} \
2e8b91a6 452 CC="%{__cc}" \
04f24179
JB
453 CXX="%{__cxx}" \
454 V=1
2e8b91a6
JR
455
456unset CFLAGS
457unset CXXFLAGS
bf4f47e8 458
695d15a0 459%if %{with stubdom}
2e8b91a6 460%{__make} -j1 dist-stubdom \
732e4a65 461 %{!?with_ocaml:OCAML_TOOLS=n} \
25d0da1e 462 XSM_ENABLE=%{?with_xsm:y}%{!?with_xsm:n} \
403a0e9f 463 CC="%{__cc}" \
7d9b5837
JB
464 CXX="%{__cxx}" \
465 V=1
695d15a0 466%endif
fda6847b
AM
467
468%install
469rm -rf $RPM_BUILD_ROOT
245547b2 470install -d $RPM_BUILD_ROOT/etc/{xen/examples,modules-load.d,logrotate.d} \
695d15a0 471 $RPM_BUILD_ROOT{%{systemdtmpfilesdir},%{systemdunitdir},/var/log/xen/console}
adbb6385 472
695d15a0
JB
473%if %{with efi}
474install -d $RPM_BUILD_ROOT/etc/efi-boot/update.d
475%endif
476
477%{__make} -j1 install-xen install-tools %{?with_stubdom:install-stubdom} install-docs \
732e4a65 478 %{!?with_ocaml:OCAML_TOOLS=n} \
25d0da1e 479 XSM_ENABLE=%{?with_xsm:y}%{!?with_xsm:n} \
9e5cb9d3
JB
480 DESTDIR=$RPM_BUILD_ROOT \
481 HOTPLUGS=install-udev
403a0e9f 482
4a5ac969 483install %{SOURCE35} $RPM_BUILD_ROOT/etc/sysconfig/xenconsoled
4a5ac969 484install %{SOURCE37} $RPM_BUILD_ROOT/etc/sysconfig/xenstored
88d6a3ef 485
2e8b91a6
JR
486# sysvinit scripts
487%{__rm} $RPM_BUILD_ROOT/etc/rc.d/init.d/*
85e6438c 488%{__rm} $RPM_BUILD_ROOT/etc/sysconfig/xencommons
2e8b91a6
JR
489install %{SOURCE51} $RPM_BUILD_ROOT/etc/rc.d/init.d/xenconsoled
490install %{SOURCE52} $RPM_BUILD_ROOT/etc/rc.d/init.d/xenstored
491install %{SOURCE53} $RPM_BUILD_ROOT/etc/rc.d/init.d/xen-watchdog
492install %{SOURCE54} $RPM_BUILD_ROOT/etc/rc.d/init.d/xendomains
b3e9565a 493install %{SOURCE46} $RPM_BUILD_ROOT/etc/rc.d/init.d/xen-qemu-dom0-disk-backend
245547b2 494install %{SOURCE55} $RPM_BUILD_ROOT/etc/logrotate.d/xen
99724523 495install %{SOURCE56} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/xen.conf
32d7e160
JB
496install -d $RPM_BUILD_ROOT/var/run/xenstored
497install %{SOURCE38} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/xenstored.conf
2e8b91a6 498
16d5148e
JR
499install %{SOURCE60} $RPM_BUILD_ROOT%{_libdir}/%{name}/bin/xen-init-list
500install %{SOURCE61} $RPM_BUILD_ROOT%{_libdir}/%{name}/bin/xen-toolstack
e9dbc551 501
06e5dbe4
JK
502%if %{with efi}
503install %{SOURCE57} $RPM_BUILD_ROOT/etc/efi-boot/xen.cfg
504sed -e's;@libdir@;%{_libdir};g' -e's;@target_cpu@;%{_target_cpu};g' \
505 %{SOURCE58} > $RPM_BUILD_ROOT/etc/efi-boot/update.d/xen.conf
506%endif
507
88d6a3ef 508%{__mv} $RPM_BUILD_ROOT/etc/xen/{xlexample*,examples}
fda6847b 509
2ea512d8
JR
510install %{SOURCE59} $RPM_BUILD_ROOT%{_sysconfdir}/xen/scripts/vif-openvswitch
511
7f699907
JK
512# for %%doc
513install -d _doc
16d5148e 514for tool in blktap2 pygrub ; do
7f699907
JK
515 cp -p tools/$tool/README _doc/README.$tool
516done
67494ff6 517
90eccaeb
ER
518%py_comp $RPM_BUILD_ROOT%{py_sitedir}
519%py_ocomp $RPM_BUILD_ROOT%{py_sitedir}
520
521%py_postclean
e9753e37 522
86497794 523# remove unneeded files
695d15a0 524%if %{with hypervisor}
36341d10 525%{__mv} xen/xen-syms $RPM_BUILD_ROOT/boot/%{name}-syms-%{version}
16d5148e 526%{__rm} $RPM_BUILD_ROOT/boot/xen-4.6.gz
e9753e37 527%{__rm} $RPM_BUILD_ROOT/boot/xen-4.gz
695d15a0 528%endif
8641374c 529%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/xen
e9753e37 530%{__rm} $RPM_BUILD_ROOT%{_includedir}/%{name}/COPYING
d26491b9 531
fda6847b
AM
532%clean
533rm -rf $RPM_BUILD_ROOT
534
403a0e9f 535%post
90a21d83 536/sbin/chkconfig --add xen-watchdog
2e8b91a6
JR
537/sbin/chkconfig --add xenconsoled
538/sbin/chkconfig --add xenstored
403a0e9f 539/sbin/chkconfig --add xendomains
b3e9565a 540/sbin/chkconfig --add xen-qemu-dom0-disk-backend
287e6685 541NORESTART=1
b3e9565a 542%systemd_post xen-watchdog.service xenconsoled.service xenstored.service xendomains.service xen-qemu-dom0-disk-backend.service
403a0e9f 543
403a0e9f 544%preun
e9753e37
MM
545if [ "$1" = "0" ]; then
546 %service xendomains stop
547 /sbin/chkconfig --del xendomains
548
2e8b91a6
JR
549 %service xenconsoled stop
550 /sbin/chkconfig --del xenconsoled
551
552 %service xenstored stop
553 /sbin/chkconfig --del xenstored
90a21d83
MM
554
555 %service xen-watchdog stop
556 /sbin/chkconfig --del xen-watchdog
b3e9565a
JK
557
558 %service xen-qemu-dom0-disk-backend stop
559 /sbin/chkconfig --del xen-qemu-dom0-disk-backend
e9753e37 560fi
b3e9565a 561%systemd_preun xen-watchdog.service xenconsoled.service xenstored.service xendomains.service xen-qemu-dom0-disk-backend.service
e9753e37 562
5db31b25
JR
563%postun
564%systemd_reload
565
26412ee3
JB
566%post libs -p /sbin/ldconfig
567%postun libs -p /sbin/ldconfig
568
263a9ffc
JK
569%post libs-guest -p /sbin/ldconfig
570%postun libs-guest -p /sbin/ldconfig
571
f276cc13
JK
572%post efi
573[ -x /sbin/efi-boot-update ] && /sbin/efi-boot-update --auto || :
574
fda6847b
AM
575%files
576%defattr(644,root,root,755)
695d15a0
JB
577%doc COPYING README* docs/misc/* docs/html/* _doc/*
578%if %{with hypervisor}
98fa2458
AM
579/boot/%{name}-syms-%{version}
580/boot/%{name}-%{version}.gz
fda6847b 581/boot/%{name}.gz
695d15a0 582%endif
c40b7d13 583%if %{with xsm}
32d7e160 584/boot/xenpolicy-%{version}
c40b7d13 585%endif
6ca9eddd
JR
586%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/xenconsoled
587%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/xenstored
588%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/xendomains
245547b2 589%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/xen
90a21d83 590%attr(754,root,root) /etc/rc.d/init.d/xen-watchdog
2e8b91a6
JR
591%attr(754,root,root) /etc/rc.d/init.d/xenconsoled
592%attr(754,root,root) /etc/rc.d/init.d/xenstored
e9753e37 593%attr(754,root,root) /etc/rc.d/init.d/xendomains
b3e9565a 594%attr(754,root,root) /etc/rc.d/init.d/xen-qemu-dom0-disk-backend
32d7e160 595%{_prefix}/lib/modules-load.d/xen.conf
2e8b91a6
JR
596%{systemdunitdir}/proc-xen.mount
597%{systemdunitdir}/var-lib-xenstored.mount
32d7e160 598%{systemdunitdir}/xen-init-dom0.service
2e8b91a6
JR
599%{systemdunitdir}/xen-watchdog.service
600%{systemdunitdir}/xenconsoled.service
601%{systemdunitdir}/xenstored.service
32d7e160
JB
602%{systemdunitdir}/xenstored.socket
603%{systemdunitdir}/xenstored_ro.socket
e9dbc551 604%{systemdunitdir}/xendomains.service
b3e9565a 605%{systemdunitdir}/xen-qemu-dom0-disk-backend.service
403a0e9f 606%dir %{_sysconfdir}/xen
403a0e9f 607%dir %{_sysconfdir}/xen/auto
e9753e37 608%dir %{_sysconfdir}/xen/examples
403a0e9f
AM
609%dir %{_sysconfdir}/xen/scripts
610%attr(755,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xen/scripts/*
e9753e37
MM
611%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xen/examples/*
612%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xen/README*
613%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xen/cpupool
614%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xen/xl.conf
94b34ae4 615%attr(755,root,root) %{_bindir}/pygrub
25d0da1e 616%if %{with qemu_traditional}
94b34ae4
JB
617%attr(755,root,root) %{_bindir}/qemu-img-xen
618%attr(755,root,root) %{_bindir}/qemu-nbd-xen
25d0da1e 619%endif
16d5148e 620%attr(755,root,root) %{_bindir}/xenalyze
94b34ae4 621%attr(755,root,root) %{_bindir}/xencons
695d15a0 622%attr(755,root,root) %{_bindir}/xencov_split
16d5148e 623%attr(755,root,root) %{_bindir}/xentrace_format
25d0da1e 624%if %{with xsm}
94b34ae4 625%attr(755,root,root) %{_sbindir}/flask-*
25d0da1e 626%endif
94b34ae4
JB
627%attr(755,root,root) %{_sbindir}/gdbsx
628%attr(755,root,root) %{_sbindir}/gtrace*
629%attr(755,root,root) %{_sbindir}/img2qcow
630%attr(755,root,root) %{_sbindir}/kdd
631%attr(755,root,root) %{_sbindir}/lock-util
632%attr(755,root,root) %{_sbindir}/qcow-create
633%attr(755,root,root) %{_sbindir}/qcow2raw
634%attr(755,root,root) %{_sbindir}/tap-ctl
635%attr(755,root,root) %{_sbindir}/tapdisk*
636%attr(755,root,root) %{_sbindir}/td-util
637%attr(755,root,root) %{_sbindir}/vhd-*
638%attr(755,root,root) %{_sbindir}/xen-*
639%attr(755,root,root) %{_sbindir}/xenbaked
640%attr(755,root,root) %{_sbindir}/xenconsoled
695d15a0 641%attr(755,root,root) %{_sbindir}/xencov
94b34ae4
JB
642%attr(755,root,root) %{_sbindir}/xenlockprof
643%attr(755,root,root) %{_sbindir}/xenmon.py
94b34ae4
JB
644%attr(755,root,root) %{_sbindir}/xenperf
645%attr(755,root,root) %{_sbindir}/xenpm
646%attr(755,root,root) %{_sbindir}/xenpmd
647%attr(755,root,root) %{_sbindir}/xenstored
648%attr(755,root,root) %{_sbindir}/xentop
16d5148e 649%attr(755,root,root) %{_sbindir}/xentrace
94b34ae4 650%attr(755,root,root) %{_sbindir}/xentrace_setmask
16d5148e 651%attr(755,root,root) %{_sbindir}/xentrace_setsize
94b34ae4 652%attr(755,root,root) %{_sbindir}/xenwatchdogd
e9753e37 653%attr(755,root,root) %{_sbindir}/xl
47d65e01
JK
654%dir %{_libdir}/%{name}
655%dir %{_libdir}/%{name}/bin
656%attr(744,root,root) %{_libdir}/%{name}/bin/*
16d5148e 657%dir %{_libdir}/%{name}/boot
695d15a0 658%if %{with stubdom}
25d0da1e 659%if %{with qemu_traditional}
16d5148e 660%{_libdir}/%{name}/boot/ioemu-stubdom.gz
25d0da1e 661%endif
695d15a0 662%ifarch %{ix86} %{x8664}
16d5148e 663%{_libdir}/%{name}/boot/pv-grub-x86_32.gz
695d15a0 664%endif
10a7e15f 665%ifarch %{x8664}
16d5148e 666%{_libdir}/%{name}/boot/pv-grub-x86_64.gz
10a7e15f 667%endif
16d5148e
JR
668%{_libdir}/%{name}/boot/vtpm-stubdom.gz
669%{_libdir}/%{name}/boot/vtpmmgr-stubdom.gz
670%{_libdir}/%{name}/boot/xenstore-stubdom.gz
695d15a0 671%endif
16d5148e 672%attr(744,root,root) %{_libdir}/%{name}/boot/hvmloader
94b34ae4
JB
673%{_mandir}/man1/xentop.1*
674%{_mandir}/man1/xentrace_format.1*
7f699907 675%{_mandir}/man1/xl.1*
7f699907
JK
676%{_mandir}/man5/xl.cfg.5*
677%{_mandir}/man5/xl.conf.5*
678%{_mandir}/man5/xlcpupool.cfg.5*
94b34ae4 679%{_mandir}/man8/xentrace.8*
47d65e01
JK
680%{_sharedstatedir}/xen
681%{_sharedstatedir}/xenstored
47d65e01 682%dir /var/run/xenstored
5c00ee35 683%{systemdtmpfilesdir}/xen.conf
32d7e160 684%{systemdtmpfilesdir}/xenstored.conf
ba7770de
JR
685%dir %attr(0700,root,root) /var/log/xen
686%dir %attr(0700,root,root) /var/log/xen/console
25d0da1e
JK
687%if %{with qemu_traditional}
688%{_datadir}/xen
689%endif
403a0e9f 690
263a9ffc
JK
691%files guest
692%defattr(644,root,root,755)
693%attr(755,root,root) %{_bindir}/xen-detect
88d6a3ef
JR
694%attr(755,root,root) %{_bindir}/xenstore
695%attr(755,root,root) %{_bindir}/xenstore-chmod
696%attr(755,root,root) %{_bindir}/xenstore-control
697%attr(755,root,root) %{_bindir}/xenstore-exists
698%attr(755,root,root) %{_bindir}/xenstore-list
699%attr(755,root,root) %{_bindir}/xenstore-ls
700%attr(755,root,root) %{_bindir}/xenstore-read
701%attr(755,root,root) %{_bindir}/xenstore-rm
702%attr(755,root,root) %{_bindir}/xenstore-watch
703%attr(755,root,root) %{_bindir}/xenstore-write
704%{_mandir}/man1/xenstore.1*
705%{_mandir}/man1/xenstore-chmod.1*
706%{_mandir}/man1/xenstore-ls.1*
263a9ffc 707
26412ee3 708%files libs
403a0e9f 709%defattr(644,root,root,755)
94b34ae4
JB
710%attr(755,root,root) %{_libdir}/libblktapctl.so.*.*.*
711%attr(755,root,root) %ghost %{_libdir}/libblktapctl.so.1.0
94b34ae4
JB
712%attr(755,root,root) %{_libdir}/libfsimage.so.*.*.*
713%attr(755,root,root) %ghost %{_libdir}/libfsimage.so.1.0
714%attr(755,root,root) %{_libdir}/libvhd.so.*.*.*
715%attr(755,root,root) %ghost %{_libdir}/libvhd.so.1.0
716%attr(755,root,root) %{_libdir}/libxenctrl.so.*.*.*
16d5148e 717%attr(755,root,root) %ghost %{_libdir}/libxenctrl.so.4.6
94b34ae4 718%attr(755,root,root) %{_libdir}/libxenguest.so.*.*.*
16d5148e 719%attr(755,root,root) %ghost %{_libdir}/libxenguest.so.4.6
94b34ae4 720%attr(755,root,root) %{_libdir}/libxenlight.so.*.*.*
16d5148e 721%attr(755,root,root) %ghost %{_libdir}/libxenlight.so.4.6
7f699907
JK
722%attr(755,root,root) %{_libdir}/libxenstat.so.*.*
723%attr(755,root,root) %ghost %{_libdir}/libxenstat.so.0
724%attr(755,root,root) %{_libdir}/libxenvchan.so.*.*.*
725%attr(755,root,root) %ghost %{_libdir}/libxenvchan.so.1.0
94b34ae4 726%attr(755,root,root) %{_libdir}/libxlutil.so.*.*.*
16d5148e 727%attr(755,root,root) %ghost %{_libdir}/libxlutil.so.4.6
4015585b 728%dir %{_libdir}/fs
d9ee3ddc 729%dir %{_libdir}/fs/ext2fs-lib
2f3b83cd
AG
730%dir %{_libdir}/fs/fat
731%dir %{_libdir}/fs/iso9660
4015585b 732%dir %{_libdir}/fs/reiserfs
733%dir %{_libdir}/fs/ufs
7f699907 734%dir %{_libdir}/fs/xfs
20aeda6e 735%dir %{_libdir}/fs/zfs
94b34ae4 736%attr(755,root,root) %{_libdir}/fs/*/fsimage.so
26412ee3 737
263a9ffc
JK
738%files libs-guest
739%defattr(644,root,root,755)
740%attr(755,root,root) %{_libdir}/libxenstore.so.*.*.*
741%attr(755,root,root) %ghost %{_libdir}/libxenstore.so.3.0
742
5dd334af
JB
743%files devel
744%defattr(644,root,root,755)
94b34ae4 745%attr(755,root,root) %{_libdir}/libblktapctl.so
94b34ae4
JB
746%attr(755,root,root) %{_libdir}/libfsimage.so
747%attr(755,root,root) %{_libdir}/libvhd.so
748%attr(755,root,root) %{_libdir}/libxenctrl.so
749%attr(755,root,root) %{_libdir}/libxenguest.so
750%attr(755,root,root) %{_libdir}/libxenlight.so
7f699907 751%attr(755,root,root) %{_libdir}/libxenstat.so
94b34ae4 752%attr(755,root,root) %{_libdir}/libxenstore.so
7f699907 753%attr(755,root,root) %{_libdir}/libxenvchan.so
94b34ae4 754%attr(755,root,root) %{_libdir}/libxlutil.so
7f699907 755%{_includedir}/_libxl_list.h
94b34ae4 756%{_includedir}/_libxl_types.h
7f699907 757%{_includedir}/_libxl_types_json.h
94b34ae4 758%{_includedir}/fsimage*.h
7f699907 759%{_includedir}/libxenvchan.h
94b34ae4
JB
760%{_includedir}/libxl*.h
761%{_includedir}/xen*.h
762%{_includedir}/xs*.h
763%{_includedir}/xen
7f699907 764%{_includedir}/xenstore-compat
16d5148e
JR
765%{_npkgconfigdir}/xenlight.pc
766%{_npkgconfigdir}/xlutil.pc
5dd334af
JB
767
768%files static
769%defattr(644,root,root,755)
94b34ae4 770%{_libdir}/libblktapctl.a
94b34ae4
JB
771%{_libdir}/libvhd.a
772%{_libdir}/libxenctrl.a
773%{_libdir}/libxenguest.a
774%{_libdir}/libxenlight.a
7f699907
JK
775%{_libdir}/libxenvchan.a
776%{_libdir}/libxenstat.a
94b34ae4
JB
777%{_libdir}/libxenstore.a
778%{_libdir}/libxlutil.a
5dd334af 779
e6e7d0de
JB
780%if %{with ocaml}
781%files -n ocaml-xen
782%defattr(644,root,root,755)
783%doc tools/ocaml/LICENSE
784%attr(755,root,root) %{_sbindir}/oxenstored
7f699907
JK
785%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xen/oxenstored.conf
786%dir %{_libdir}/ocaml/site-lib/xenbus
787%attr(755,root,root) %{_libdir}/ocaml/site-lib/xenbus/dllxenbus_stubs.so
788%dir %{_libdir}/ocaml/site-lib/xenctrl
789%attr(755,root,root) %{_libdir}/ocaml/site-lib/xenctrl/dllxenctrl_stubs.so
790%dir %{_libdir}/ocaml/site-lib/xeneventchn
791%attr(755,root,root) %{_libdir}/ocaml/site-lib/xeneventchn/dllxeneventchn_stubs.so
792%dir %{_libdir}/ocaml/site-lib/xenlight
793%attr(755,root,root) %{_libdir}/ocaml/site-lib/xenlight/dllxenlight_stubs.so
794%dir %{_libdir}/ocaml/site-lib/xenmmap
795%attr(755,root,root) %{_libdir}/ocaml/site-lib/xenmmap/dllxenmmap_stubs.so
25d0da1e
JK
796%dir %{_libdir}/ocaml/site-lib/xentoollog
797%attr(755,root,root) %{_libdir}/ocaml/site-lib/xentoollog/dllxentoollog_stubs.so
e6e7d0de
JB
798
799%files -n ocaml-xen-devel
800%defattr(644,root,root,755)
7f699907
JK
801%{_libdir}/ocaml/site-lib/xenbus/META
802%{_libdir}/ocaml/site-lib/xenbus/libxenbus_stubs.a
803%{_libdir}/ocaml/site-lib/xenbus/xenbus.a
804%{_libdir}/ocaml/site-lib/xenbus/*.cm[aixo]*
805%{_libdir}/ocaml/site-lib/xenctrl/META
806%{_libdir}/ocaml/site-lib/xenctrl/libxenctrl_stubs.a
807%{_libdir}/ocaml/site-lib/xenctrl/xenctrl.a
808%{_libdir}/ocaml/site-lib/xenctrl/xenctrl.cm[aix]*
809%{_libdir}/ocaml/site-lib/xeneventchn/META
810%{_libdir}/ocaml/site-lib/xeneventchn/libxeneventchn_stubs.a
811%{_libdir}/ocaml/site-lib/xeneventchn/xeneventchn.a
812%{_libdir}/ocaml/site-lib/xeneventchn/xeneventchn.cm[aix]*
813%{_libdir}/ocaml/site-lib/xenmmap/META
814%{_libdir}/ocaml/site-lib/xenmmap/libxenmmap_stubs.a
815%{_libdir}/ocaml/site-lib/xenmmap/xenmmap.a
816%{_libdir}/ocaml/site-lib/xenmmap/xenmmap.cm[aix]*
817%{_libdir}/ocaml/site-lib/xenlight/META
818%{_libdir}/ocaml/site-lib/xenlight/libxenlight_stubs.a
819%{_libdir}/ocaml/site-lib/xenlight/xenlight.a
820%{_libdir}/ocaml/site-lib/xenlight/xenlight.cm[aix]*
821%dir %{_libdir}/ocaml/site-lib/xenstore
822%{_libdir}/ocaml/site-lib/xenstore/META
823%{_libdir}/ocaml/site-lib/xenstore/xenstore.a
824%{_libdir}/ocaml/site-lib/xenstore/*.cm[aixo]*
25d0da1e
JK
825%{_libdir}/ocaml/site-lib/xentoollog/META
826%{_libdir}/ocaml/site-lib/xentoollog/libxentoollog_stubs.a
827%{_libdir}/ocaml/site-lib/xentoollog/xentoollog.a
828%{_libdir}/ocaml/site-lib/xentoollog/*.cm[aixo]*
e6e7d0de
JB
829%endif
830
8e6e2740
ER
831%files -n python-xen
832%defattr(644,root,root,755)
5dd334af 833%attr(755,root,root) %{py_sitedir}/fsimage.so
88d6a3ef 834%dir %{py_sitedir}/xen
32d7e160 835%dir %{py_sitedir}/xen/lowlevel
263a9ffc 836%attr(755,root,root) %{py_sitedir}/xen/lowlevel/xc.so
16d5148e 837%{py_sitedir}/xen/migration
32d7e160 838%{py_sitedir}/grub
8e6e2740 839%if "%{py_ver}" > "2.4"
94b34ae4
JB
840%{py_sitedir}/pygrub-0.3-py*.egg-info
841%{py_sitedir}/xen-3.0-py*.egg-info
8e6e2740 842%endif
e9753e37 843
263a9ffc
JK
844%files -n python-xen-guest
845%defattr(644,root,root,755)
846%dir %{py_sitedir}/xen
847%{py_sitedir}/xen/__init__.py*
848%dir %{py_sitedir}/xen/lowlevel
849%{py_sitedir}/xen/lowlevel/__init__.py*
850%attr(755,root,root) %{py_sitedir}/xen/lowlevel/xs.so
851
e9753e37
MM
852%files -n bash-completion-%{name}
853%defattr(644,root,root,755)
94b34ae4 854/etc/bash_completion.d/xl.sh
2c37e39c
JK
855
856%if %{with efi}
857%files efi
858%defattr(644,root,root,755)
859%dir %{_libdir}/efi
860%{_libdir}/efi/*.efi
06e5dbe4
JK
861%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/efi-boot/xen.cfg
862%attr(644,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/efi-boot/update.d/xen.conf
2c37e39c 863%endif
This page took 0.446646 seconds and 4 git commands to generate.