X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=VirtualBox.spec;h=aaed9364f5a150c5614400661ac1caf540192989;hb=76ea5ecb5ab272e5df9379cf1468b6233fa4bf14;hp=179634c4dea91b4a21563a6690b844ea1ba3f75a;hpb=fe3d1798a8f775eabc8ffc97054589741f249759;p=packages%2FVirtualBox.git diff --git a/VirtualBox.spec b/VirtualBox.spec index 179634c..aaed936 100644 --- a/VirtualBox.spec +++ b/VirtualBox.spec @@ -1,10 +1,8 @@ # # TODO: -# - separate udev stuff from kernel package # - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS. # - Package SDK. # - Package utils (and write initscripts ?) for Guest OS. -# - Add udev rule. # - Check License of VBoxGuestAdditions_*.iso, it's propably not GPL v2. # If so check if it is distributable. # @@ -13,48 +11,69 @@ %bcond_without kernel # don't build kernel module %bcond_without userspace # don't build userspace package -%define rel 1 +%define rel 0.1 %if %{without kernel} %undefine with_dist_kernel %endif -Summary: VirtualBox - x86 hardware virtualizer -Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86 -Name: VirtualBox -Version: 1.5.4 +%if "%{_alt_kernel}" != "%{nil}" +%undefine with_userspace +%endif + +%define pname VirtualBox + +Summary: VirtualBox OSE - x86 hardware virtualizer +Summary(pl.UTF-8): VirtualBox OSE - wirtualizator sprzętu x86 +Name: %{pname}%{_alt_kernel} +Version: 1.6.0 Release: %{rel} License: GPL v2 Group: Applications/Emulators -Source0: http://www.virtualbox.org/download/%{version}/%{name}-%{version}_OSE.tar.bz2 -# Source0-md5: fbebb3f04911c4c39aac27b1d3532acc +# Source can't be downloaded directly anymore, you may get it manually from +# http://www.virtualbox.org/wiki/Downloads +Source0: %{pname}-%{version}-OSE.tar.bz2 +# Source0-md5: 44692aa0e7a8cb6bb36f367d67d78d6a Source1: http://www.virtualbox.org/download/%{version}/UserManual.pdf -# Source1-md5: f56f0d904013cbc0940108ed042e539d +# Source1-md5: e21694fd087b42173bca3fc9af068f22 Source2: http://www.virtualbox.org/download/%{version}/VBoxGuestAdditions_%{version}.iso -# Source2-md5: e021a51fc5946659b0789d134b1fd5ff -Source3: %{name}.desktop -Source4: %{name}.sh -Patch0: %{name}-configure.patch -Patch1: %{name}-qt-paths.patch -Patch2: %{name}-shared-libstdc++.patch -Patch3: %{name}-disable-xclient-build.patch +# Source2-md5: e90b718aa806845194fd411e3dbf78ff +Source3: %{pname}.init +Source4: %{pname}.desktop +Source5: %{pname}.sh +Patch0: %{pname}-configure.patch +Patch1: %{pname}-qt-paths.patch +Patch2: %{pname}-shared-libstdc++.patch +Patch3: %{pname}-disable-xclient-build.patch +Patch4: %{pname}-configure-spaces.patch URL: http://www.virtualbox.org/ -BuildRequires: SDL-devel -BuildRequires: alsa-lib-devel +%if %{with userspace} +BuildRequires: SDL-devel >= 1.2.7 +BuildRequires: alsa-lib-devel >= 1.0.6 BuildRequires: bash BuildRequires: bcc BuildRequires: bin86 BuildRequires: gcc >= 5:3.2.3 BuildRequires: iasl -%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.7} +%endif +%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20} +%if %{with userspace} +BuildRequires: Qt3Support-devel BuildRequires: libIDL-devel +BuildRequires: libpng >= 1.2.5 +BuildRequires: libstdc++-static >= 5:3.2.3 BuildRequires: libuuid-devel -BuildRequires: libxslt-progs +BuildRequires: libxml2-devel >= 2.6.26 +BuildRequires: libxslt-devel >= 1.1.17 +BuildRequires: libxslt-progs >= 1.1.17 BuildRequires: pkgconfig -BuildRequires: pulseaudio-devel +BuildRequires: pulseaudio-devel >= 0.9.0 BuildRequires: qt-devel >= 6:3.3.6 BuildRequires: qt-linguist -BuildRequires: rpmbuild(macros) >= 1.329 +BuildRequires: qt4-build >= 4.2.0 +%endif +BuildRequires: rpmbuild(macros) >= 1.379 +%if %{with userspace} BuildRequires: which BuildRequires: xalan-c-devel >= 1.10.0 BuildRequires: xerces-c-devel >= 2.6.0 @@ -62,9 +81,11 @@ BuildRequires: xorg-lib-libXcursor-devel BuildRequires: zlib-devel >= 1.2.1 %ifarch %{x8664} BuildRequires: gcc-multilib +BuildRequires: glibc-devel(i686) BuildRequires: libstdc++-multilib-devel -# TODO: How to add glibc-devel.i686 here ? %endif +%endif +Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd @@ -80,21 +101,21 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %endif %description -InnoTek VirtualBox is a general-purpose full virtualizer for x86 +InnoTek VirtualBox OSE is a general-purpose full virtualizer for x86 hardware. Targeted at server, desktop and embedded use, it is now the only professional-quality virtualization solution that is also Open Source Software. -Some of the features of VirtualBox are: +Some of the features of VirtualBox OSE are: -Modularity: VirtualBox has an extremely modular design with +Modularity: VirtualBox OSE has an extremely modular design with well-defined internal programming interfaces and a client/server design. This makes it easy to control it from several interfaces at once: for example, you can start a virtual machine in a typical virtual machine GUI and then control that machine from the command -line. VirtualBox also comes with a full Software Development Kit: even -though it is Open Source Software, you don't have to hack the source -to write a new interface for VirtualBox. +line. VirtualBox OSE also comes with a full Software Development Kit: +even though it is Open Source Software, you don't have to hack the +source to write a new interface for VirtualBox OSE. Virtual machine descriptions in XML: the configuration settings of virtual machines are stored entirely in XML and are independent of the @@ -102,28 +123,42 @@ local machines. Virtual machine definitions can therefore easily be ported to other computers. %description -l pl.UTF-8 -InnoTek VirtualBox jest emulatorem sprzętu x86. Kierowany do +InnoTek VirtualBox OSE jest emulatorem sprzętu x86. Kierowany do zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako Otwarte Oprogramowanie. Przykładowe cechy VirtualBoksa: -Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z +Modularność: VirtualBox OSE jest wysoce zmodularyzowanym produktem z dobrze zaprojektowanym wewnętrznym interfejsem programowym typu klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z poziomu interfejsu graficznego, a później kontrolować ją z linii -poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co -pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną. +poleceń. VirtualBox OSE dostarcza również pełny pakiet deweloperski, +co pozwala stworzyć dowolny inny interfejs zarządzania maszyną +wirtualną. Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn wirtualnych są w całości przechowywane w XML-u i są niezależne od lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść konfigurację maszyny wirtualnej na inny komputer. +%package udev +Summary: udev rules for VirtualBox OSE kernel modules +Summary(pl.UTF-8): Reguły udev dla modułów jądra Linuksa dla VirtualBoksa +Release: %{rel} +Group: Base/Kernel +Requires: udev + +%description udev +udev rules for VirtualBox OSE kernel modules. + +%description udev -l pl.UTF-8 +Reguły udev dla modułów jądra Linuksa dla VirtualBoksa. + %package -n kernel%{_alt_kernel}-misc-vboxadd -Summary: Linux kernel module for VirtualBox +Summary: Linux kernel module for VirtualBox OSE Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa Release: %{rel}@%{_kernel_ver_str} Group: Base/Kernel @@ -131,18 +166,18 @@ Requires(post,postun): /sbin/depmod Requires: dev >= 2.9.0-7 %if %{with dist_kernel} %requires_releq_kernel -Requires(postun): %releq_kernel +#Requires(postun): %%releq_kernel %endif Provides: kernel(vboxadd) = %{version}-%{rel} %description -n kernel%{_alt_kernel}-misc-vboxadd -Linux kernel module vboxadd for VirtualBox. +Linux kernel module vboxadd for VirtualBox OSE. %description -n kernel%{_alt_kernel}-misc-vboxadd -l pl.UTF-8 Moduł jądra Linuksa vboxadd dla VirtualBoksa. %package -n kernel%{_alt_kernel}-misc-vboxdrv -Summary: Linux kernel module for VirtualBox +Summary: Linux kernel module for VirtualBox OSE Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa Release: %{rel}@%{_kernel_ver_str} Group: Base/Kernel @@ -155,13 +190,13 @@ Requires(postun): %releq_kernel Provides: kernel(vboxdrv) = %{version}-%{rel} %description -n kernel%{_alt_kernel}-misc-vboxdrv -Linux kernel module vboxdrv for VirtualBox. +Linux kernel module vboxdrv for VirtualBox OSE. %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8 Moduł jądra Linuksa vboxdrv dla VirtualBoksa. %package -n kernel%{_alt_kernel}-misc-vboxvfs -Summary: Linux kernel module for VirtualBox +Summary: Linux kernel module for VirtualBox OSE Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa Release: %{rel}@%{_kernel_ver_str} Group: Base/Kernel @@ -174,39 +209,39 @@ Requires(postun): %releq_kernel Provides: kernel(vboxvfs) = %{version}-%{rel} %description -n kernel%{_alt_kernel}-misc-vboxvfs -Linux kernel module vboxvfs for VirtualBox. +Linux kernel module vboxvfs for VirtualBox OSE. %description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8 Moduł jądra Linuksa vboxvfs dla VirtualBoksa. %package -n xorg-driver-input-vboxmouse -Summary: X.org mouse driver for VirtualBox guest OS +Summary: X.org mouse driver for VirtualBox OSE guest OS Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBoksie Release: %{rel} Group: X11/Applications Requires: xorg-xserver-server >= 1.0.99.901 %description -n xorg-driver-input-vboxmouse -X.org mouse driver for VirtualBox guest OS. +X.org mouse driver for VirtualBox OSE guest OS. %description -n xorg-driver-input-vboxmouse -l pl.UTF-8 Sterownik myszy dla systemu gościa w VirtualBoksie. %package -n xorg-driver-video-vboxvideo -Summary: X.org video driver for VirtualBox guest OS +Summary: X.org video driver for VirtualBox OSE guest OS Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie Release: %{rel} Group: X11/Applications Requires: xorg-xserver-server >= 1.0.99.901 %description -n xorg-driver-video-vboxvideo -X.org video driver for VirtualBox guest OS. +X.org video driver for VirtualBox OSE guest OS. %description -n xorg-driver-video-vboxvideo -l pl.UTF-8 Sterownik grafiki dla systemu gościa w VirtualBoksie. %prep -%setup -q -n %{name}-%{version}_OSE +%setup -q -n %{pname}-%{version}_OSE %patch0 -p0 %patch1 -p0 %patch2 -p1 @@ -215,48 +250,41 @@ Sterownik grafiki dla systemu gościa w VirtualBoksie. %patch3 -p1 %endif +%patch4 -p1 + cat <<'EOF' > udev.conf KERNEL=="vboxdrv", NAME="%k", GROUP="vbox", MODE="0660" EOF install %{SOURCE1} . -%build -KDIR="%{_builddir}/%{buildsubdir}/kernel" -mkdir -p $KDIR -cp -Ra %{_kernelsrcdir}/include $KDIR -%ifarch %{x8664} -ln -sf $KDIR/include/asm-x86_64 $KDIR/include/asm -%else -ln -sf $KDIR/include/asm-i386 $KDIR/include/asm -%endif +rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD +../src/VBox/Additions/linux/export_modules modules.tar.gz + tar -zxf modules.tar.gz && rm -f modules.tar.gz +../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \ + tar -zxf modules.tar.gz && rm -f modules.tar.gz -%if %{with dist_kernel} -ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h -%else -ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h +%ifarch %{x8664} +# HACK, is this really safe on x86_64? +sed -i -e '/#.*define.*RTMEMALLOC_EXEC_HEAP/d' vboxadd/r0drv/linux/alloc-r0drv-linux.c vboxvfs/r0drv/linux/alloc-r0drv-linux.c %endif +%build +%if %{with userspace} ./configure \ --with-gcc="%{__cc}" \ --with-g++="%{__cxx}" \ - --with-linux="$KDIR" + --disable-kmods -%if %{with userspace} . ./env.sh && kmk -j1 %endif %if %{with kernel} -rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD - -../src/VBox/HostDrivers/Support/linux/export_modules modules.tar.gz && \ - tar -zxf modules.tar.gz && rm -f modules.tar.gz -../src/VBox/Additions/linux/export_modules modules.tar.gz - tar -zxf modules.tar.gz && rm -f modules.tar.gz - +cd PLD-MODULE-BUILD %build_kernel_modules -m vboxadd -C vboxadd %build_kernel_modules -m vboxdrv -C vboxdrv -%build_kernel_modules -m vboxvfs -C vboxvfs +cp -a vboxadd/Module.symvers vboxvfs +%build_kernel_modules -m vboxvfs -C vboxvfs -c cd .. %endif @@ -267,15 +295,21 @@ rm -rf $RPM_BUILD_ROOT install -d \ $RPM_BUILD_ROOT{%{_bindir},%{_pixmapsdir},%{_desktopdir}} \ $RPM_BUILD_ROOT%{_libdir}/VirtualBox \ - $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers \ - $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input + $RPM_BUILD_ROOT/etc/rc.d/init.d + +install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/virtualbox -install %{SOURCE4} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh +install %{SOURCE5} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/VirtualBox-wrapper.sh for f in {VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox,vditool}; do install out/linux.%{outdir}/release/bin/$f $RPM_BUILD_ROOT%{_libdir}/VirtualBox/$f ln -s %{_libdir}/VirtualBox/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f done +%ifarch %{x8664} +install out/linux.%{outdir}/release/bin/VBox*.rel \ + $RPM_BUILD_ROOT%{_libdir}/VirtualBox +%endif + install out/linux.%{outdir}/release/bin/VBox*.so \ $RPM_BUILD_ROOT%{_libdir}/VirtualBox install out/linux.%{outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \ @@ -291,29 +325,25 @@ cp -a out/linux.%{outdir}/release/bin/nls/* $RPM_BUILD_ROOT%{_libdir}/VirtualBox install out/linux.%{outdir}/release/bin/additions/mountvboxsf \ $RPM_BUILD_ROOT%{_bindir} -install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_71.so \ +%ifnarch %{x8664} +install -d $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,input} +install out/linux.%{outdir}/release/bin/additions/vboxmouse_drv_14.so \ $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so - -install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_71.so \ +install out/linux.%{outdir}/release/bin/additions/vboxvideo_drv_14.so \ $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so +%endif install out/linux.%{outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png -install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop -%endif +install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/%{pname}.desktop -%if %{with kernel} install -d $RPM_BUILD_ROOT/etc/udev/rules.d install udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules +%endif -cd PLD-MODULE-BUILD -for MODULE in *; do - [ ! -d $MODULE ] && continue; - - cd $MODULE - %install_kernel_modules -m $MODULE -d misc - cd .. -done -cd .. +%if %{with kernel} +%install_kernel_modules -m PLD-MODULE-BUILD/vboxadd/vboxadd -d misc +%install_kernel_modules -m PLD-MODULE-BUILD/vboxdrv/vboxdrv -d misc +%install_kernel_modules -m PLD-MODULE-BUILD/vboxvfs/vboxvfs -d misc %endif %clean @@ -322,6 +352,16 @@ rm -rf $RPM_BUILD_ROOT %pre %groupadd -g 221 -r -f vbox +%post +/sbin/chkconfig --add virtualbox +%service virtualbox restart "VirtualBox OSE" + +%preun +if [ "$1" = "0" ]; then + %service virtualbox stop + /sbin/chkconfig --del virtualbox +fi + %postun if [ "$1" = "0" ]; then %groupremove vbox @@ -353,6 +393,7 @@ fi %dir %{_libdir}/VirtualBox/additions %dir %{_libdir}/VirtualBox/components %dir %{_libdir}/VirtualBox/nls +%attr(754,root,root) /etc/rc.d/init.d/virtualbox %attr(755,root,root) %{_bindir}/mountvboxsf %attr(755,root,root) %{_bindir}/vditool %attr(755,root,root) %{_bindir}/VBox* @@ -364,6 +405,9 @@ fi %attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL %attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD %attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so +%ifarch %{x8664} +%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.rel +%endif %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox %attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh %{_libdir}/VirtualBox/*.gc @@ -372,6 +416,7 @@ fi %{_libdir}/VirtualBox/additions/* %{_libdir}/VirtualBox/components/* %lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm +%lang(ca) %{_libdir}/VirtualBox/nls/*_ca.qm %lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm %lang(de) %{_libdir}/VirtualBox/nls/*_de.qm %lang(es) %{_libdir}/VirtualBox/nls/*_es.qm @@ -379,20 +424,28 @@ fi %lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm %lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm %lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm +%lang(id) %{_libdir}/VirtualBox/nls/*_id.qm %lang(it) %{_libdir}/VirtualBox/nls/*_it.qm %lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm %lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm +%lang(nl) %{_libdir}/VirtualBox/nls/*_nl.qm %lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm %lang(pt_BR) %{_libdir}/VirtualBox/nls/*_pt_BR.qm %lang(pt_PT) %{_libdir}/VirtualBox/nls/*_pt_PT.qm %lang(ro) %{_libdir}/VirtualBox/nls/*_ro.qm %lang(ru) %{_libdir}/VirtualBox/nls/*_ru.qm %lang(sk) %{_libdir}/VirtualBox/nls/*_sk.qm +%lang(sr) %{_libdir}/VirtualBox/nls/*_sr.qm %lang(sv) %{_libdir}/VirtualBox/nls/*_sv.qm +%lang(tr) %{_libdir}/VirtualBox/nls/*_tr.qm %lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm %lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm %{_pixmapsdir}/VBox.png -%{_desktopdir}/%{name}.desktop +%{_desktopdir}/%{pname}.desktop + +%files udev +%defattr(644,root,root,755) +%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules # Drivers are for Guest OS, which is 32-bit. %ifnarch %{x8664} @@ -413,7 +466,6 @@ fi %files -n kernel%{_alt_kernel}-misc-vboxdrv %defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko* %files -n kernel%{_alt_kernel}-misc-vboxvfs