X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=VirtualBox.spec;h=0001a38136d36505c977c6bf6d416be3ba64e2c0;hb=5877f60538624b0c5171cd3a2303555932ced464;hp=e96ed3739509cadf4ec2267e2eea6d903dade05d;hpb=fd8fc899ef9a99c4e1d4beb6d7833518dae25f40;p=packages%2FVirtualBox.git diff --git a/VirtualBox.spec b/VirtualBox.spec index e96ed37..0001a38 100644 --- a/VirtualBox.spec +++ b/VirtualBox.spec @@ -1,36 +1,39 @@ # # TODO: -# - Doesn't compile without /usr/src/linux/include/linux/autoconf.h so one must -# symlink it before building package. This is because during compilation kernel -# module is being build. Since we are building kernel modules later -# sources/makefiles probably needs some hacking to drop this requirement. -# - Home page says that some addons should be compiled, I don't see any except. -# vboxaddon kernel module and {vboxmouse,vboxvideo)_drv.so. Are they required? -# - BR list was a quickie so it may be incomplete or too big. -# - R list probably required. -# - .desktop file, some wrapper to launch VirtualBox (LD_LIBRARY_PATH must include -# %{_libdir}/VirtualBox), maybe some init script to launch VBoxSVC. -# - Devel stuff is not packaged yet. -# - Now its EA ix86 x8664, but looking into autogenerated env.sh suggests that -# code may be compiled exclusively for i686. -# - use %kernel_build macros +# - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS. +# - Package SDK. +# - Package utils (and write initscripts ?) for Guest OS. +# - Add udev rule. # # Conditional build: %bcond_without dist_kernel # without distribution kernel -%bcond_without smp # without SMP kernel modules -# -%define _snap 20070116 -Summary: VirtualBox -Summary(pl.UTF-8): VirtualBox +%bcond_without kernel # don't build kernel module +%bcond_without userspace # don't build userspace package + +%define _rel 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.3.3 -Release: 0.1 +Version: 1.5.0 +Release: %{_rel} License: GPL v2 Group: Applications/Emulators -Source0: %{name}-%{version}_%{_snap}.tar.bz2 -# Source0-md5: 8554cf552c3ad07b2ae5229c3f8825dc +Source0: http://www.virtualbox.org/download/%{version}/%{name}-%{version}_OSE.tar.bz2 +# Source0-md5: 56c074900260c109ed735c08e726fe81 +Source1: http://www.virtualbox.org/download/UserManual.pdf +# Source1-md5: 2e5458bd5b4b9acd18cc86866e8a7284 +Source2: http://www.virtualbox.org/download/%{version}_OSE/VBoxGuestAdditions_%{version}_OSE.iso +# Source2-md5: ed3ce6537350ab3e3557dc1b1e7e1b5c +Source3: %{name}.desktop +Source4: %{name}.sh Patch0: %{name}-configure.patch Patch1: %{name}-qt-paths.patch +Patch2: %{name}-shared-libstdc++.patch URL: http://www.virtualbox.org/ BuildRequires: SDL-devel BuildRequires: bash @@ -43,12 +46,17 @@ BuildRequires: libIDL-devel BuildRequires: libuuid-devel BuildRequires: libxslt-progs BuildRequires: qt-devel >= 6:3.3.6 +BuildRequires: qt-linguist BuildRequires: rpmbuild(macros) >= 1.329 BuildRequires: xalan-c-devel >= 1.10.0 -#BuildRequires: xcursor-devel BuildRequires: xerces-c-devel >= 2.6.0 BuildRequires: xorg-lib-libXcursor-devel BuildRequires: zlib-devel >= 1.2.1 +Requires(postun): /usr/sbin/groupdel +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Suggests: gxmessage +Provides: group(vbox) ExclusiveArch: %{ix86} %{x8664} BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -101,16 +109,35 @@ 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 -n kernel%{_alt_kernel}-misc-vboxadd +Summary: Linux kernel module for VirtualBox +Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa +Release: %{_rel}@%{_kernel_ver_str} +Group: Base/Kernel +Requires(post,postun): /sbin/depmod +Requires: dev >= 2.9.0-7 +%if %{with dist_kernel} +%requires_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. + +%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(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa +Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa Release: %{_rel}@%{_kernel_ver_str} Group: Base/Kernel Requires(post,postun): /sbin/depmod Requires: dev >= 2.9.0-7 %if %{with dist_kernel} -%requires_releq_kernel_up -Requires(postun): %releq_kernel_up +%requires_releq_kernel +Requires(postun): %releq_kernel %endif Provides: kernel(vboxdrv) = %{version}-%{_rel} @@ -120,118 +147,246 @@ Linux kernel module vboxdrv for VirtualBox. %description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8 Moduł jądra Linuksa vboxdrv dla VirtualBoksa. -%package -n kernel%{_alt_kernel}-smp-misc-vboxdrv -Summary: Linux SMP kernel module for VirtualBox -Summary(pl.UTF-8): Moduł jądra Linuksa SMP dla VirtualBoksa +%package -n kernel%{_alt_kernel}-misc-vboxvfs +Summary: Linux kernel module for VirtualBox +Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa Release: %{_rel}@%{_kernel_ver_str} Group: Base/Kernel Requires(post,postun): /sbin/depmod Requires: dev >= 2.9.0-7 %if %{with dist_kernel} -%requires_releq_kernel_smp -Requires(postun): %releq_kernel_smp +%requires_releq_kernel +Requires(postun): %releq_kernel %endif -Provides: kernel(vboxdrv) = %{version}-%{_rel} +Provides: kernel(vboxvfs) = %{version}-%{_rel} + +%description -n kernel%{_alt_kernel}-misc-vboxvfs +Linux kernel module vboxvfs for VirtualBox. -%description -n kernel%{_alt_kernel}-smp-misc-vboxdrv -Linux SMP kernel module vboxdrv for VirtualBox. +%description -n kernel%{_alt_kernel}-misc-vboxvfs -l pl.UTF-8 +Moduł jądra Linuksa vboxvfs dla VirtualBoksa. -%description -n kernel%{_alt_kernel}-smp-misc-vboxdrv -l pl.UTF-8 -Moduł jądra Linuksa SMP vboxdrv dla VirtualBoksa. +%package -n xorg-driver-input-vboxmouse +Summary: X.org mouse driver for VirtualBox guest OS +Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBox'ie +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. + +%description -n xorg-driver-input-vboxmouse -l pl.UTF-8 +Sterownik myszy dla systemu gościa w VirtualBox'ie. + +%package -n xorg-driver-video-vboxvideo +Summary: X.org video driver for VirtualBox guest OS +Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBox'ie +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. + +%description -n xorg-driver-video-vboxvideo -l pl.UTF-8 +Sterownik grafiki dla systemu gościa w VirtualBox'ie. %prep -%setup -q -n vbox +%setup -q -n %{name}-%{version}_OSE %patch0 -p0 %patch1 -p0 +%patch2 -p1 +install %{SOURCE1} . %build -./configure \ - --with-gcc="%{__cc}" \ - --with-g++="%{__cxx}" -. ./env.sh -kmk - -cd out/linux.%{_outdir}/release/bin/src -for cfg in %{?with_dist_kernel:%{?with_smp:smp} up}%{!?with_dist_kernel:nondist}; do - if [ ! -r "%{_kernelsrcdir}/config-$cfg" ]; then - exit 1 - fi - rm -rf o - install -d o/include/linux - ln -sf %{_kernelsrcdir}/config-$cfg o/.config - ln -sf %{_kernelsrcdir}/Module.symvers-$cfg o/Module.symvers - ln -sf %{_kernelsrcdir}/include/linux/autoconf-$cfg.h o/include/linux/autoconf.h +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 + %if %{with dist_kernel} - %{__make} -j1 -C %{_kernelsrcdir} O=$PWD/o prepare scripts +[ ! -f $KDIR/include/linux/autoconf.h ] && \ + ln -sf $KDIR/include/linux/autoconf-dist.h $KDIR/include/linux/autoconf.h %else - touch o/include/config/MARKER - ln -sf %{_kernelsrcdir}/scripts o/scripts +[ ! -f $KDIR/include/linux/autoconf.h ] && \ + ln -sf $KDIR/include/linux/autoconf-nondist.h $KDIR/include/linux/autoconf.h +%endif + +./configure \ + --with-gcc="%{__cc}" \ + --with-g++="%{__cxx}" \ + --with-linux="$KDIR" + +%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 + +%build_kernel_modules -m vboxadd -C vboxadd +%build_kernel_modules -m vboxdrv -C vboxdrv +%build_kernel_modules -m vboxvfs -C vboxvfs +cd .. %endif - ln -sf ../../include/VBox o/include/VBox - ln -sf ../../include/iprt o/include/iprt - %{__make} -C %{_kernelsrcdir} clean \ - SYSSRC=%{_kernelsrcdir} \ - SYSOUT=$PWD/o \ - M=$PWD O=$PWD/o \ - %{?with_verbose:V=1} - %{__make} -C %{_kernelsrcdir} modules \ - CC="%{__cc}" CPP="%{__cpp}" \ - SYSSRC=%{_kernelsrcdir} \ - SYSOUT=$PWD/o \ - M=$PWD O=$PWD/o \ - %{?with_verbose:V=1} - mv vboxdrv.ko vboxdrv-$cfg.ko -done %install rm -rf $RPM_BUILD_ROOT +%if %{with userspace} install -d \ - $RPM_BUILD_ROOT%{_bindir} \ - $RPM_BUILD_ROOT%{_libdir}/VirtualBox + $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 -install out/linux.%{_outdir}/release/bin/{VBox{BFE,Manage,SDL,SVC,XPCOMIPCD},VirtualBox} \ - $RPM_BUILD_ROOT%{_bindir} -install out/linux.%{_outdir}/release/bin/VBox{DD,DD2,REM,REMImp,RT,VMM,XML,XPCOM,XPCOMIPCC}.so \ +install %{SOURCE4} $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 + +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}} \ +install out/linux.%{_outdir}/release/bin/{VBox{DD,DD2}{GC.gc,R0.r0},VMM{GC.gc,R0.r0},*.xpt} \ $RPM_BUILD_ROOT%{_libdir}/VirtualBox -%if %{with kernel} -install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}{,smp}/misc -%if %{with smp} && %{with dist_kernel} -install out/linux.%{_outdir}/release/bin/src/vboxdrv-smp.ko \ - $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc/vboxdrv.ko +install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions +install -d $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls + +install %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso +cp -a out/linux.%{_outdir}/release/bin/components $RPM_BUILD_ROOT%{_libdir}/VirtualBox +cp -a out/linux.%{_outdir}/release/bin/nls/VirtualBox* $RPM_BUILD_ROOT%{_libdir}/VirtualBox/nls + +install out/linux.%{_outdir}/release/bin/additions/mountvboxsf \ + $RPM_BUILD_ROOT%{_bindir} + +install out/linux.%{_outdir}/release/bin/additions/vboxmouse_drv_71.so \ + $RPM_BUILD_ROOT%{_libdir}/xorg/modules/input/vboxmouse_drv.so + +install out/linux.%{_outdir}/release/bin/additions/vboxvideo_drv_71.so \ + $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so + +install out/linux.%{_outdir}/release/bin/VBox.png $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png +install %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop %endif + +%if %{with kernel} +cd PLD-MODULE-BUILD +for MODULE in *; do + [ ! -d $MODULE ] && continue; + + cd $MODULE + %install_kernel_modules -m $MODULE -d misc + cd .. +done +cd .. %endif %clean rm -rf $RPM_BUILD_ROOT +%pre +%groupadd -g 221 -r -f vbox + +%postun +if [ "$1" = "0" ]; then + %groupremove vbox +fi + +%post -n kernel%{_alt_kernel}-misc-vboxadd +%depmod %{_kernel_ver} + +%postun -n kernel%{_alt_kernel}-misc-vboxadd +%depmod %{_kernel_ver} + %post -n kernel%{_alt_kernel}-misc-vboxdrv %depmod %{_kernel_ver} %postun -n kernel%{_alt_kernel}-misc-vboxdrv %depmod %{_kernel_ver} -%if %{with smp} && %{with dist_kernel} -%post -n kernel%{_alt_kernel}-smp-misc-vboxdrv -%depmod %{_kernel_ver}smp +%post -n kernel%{_alt_kernel}-misc-vboxvfs +%depmod %{_kernel_ver} -%postun -n kernel%{_alt_kernel}-smp-misc-vboxdrv -%depmod %{_kernel_ver}smp -%endif +%postun -n kernel%{_alt_kernel}-misc-vboxvfs +%depmod %{_kernel_ver} +%if %{with userspace} %files %defattr(644,root,root,755) +%doc UserManual.pdf +%dir %{_libdir}/VirtualBox +%dir %{_libdir}/VirtualBox/additions +%dir %{_libdir}/VirtualBox/components +%dir %{_libdir}/VirtualBox/nls +%attr(755,root,root) %{_bindir}/mountvboxsf +%attr(755,root,root) %{_bindir}/vditool %attr(755,root,root) %{_bindir}/VBox* %attr(755,root,root) %{_bindir}/VirtualBox -%{_libdir}/VirtualBox +%attr(755,root,root) %{_libdir}/VirtualBox/vditool +%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC +%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE +%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage +%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL +%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD +%attr(755,root,root) %{_libdir}/VirtualBox/VBox*.so +%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox +%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh +%{_libdir}/VirtualBox/*.gc +%{_libdir}/VirtualBox/*.r0 +%{_libdir}/VirtualBox/*.xpt +%{_libdir}/VirtualBox/additions/* +%{_libdir}/VirtualBox/components/* +%lang(ar) %{_libdir}/VirtualBox/nls/VirtualBox_ar.qm +%lang(cs) %{_libdir}/VirtualBox/nls/VirtualBox_cs.qm +%lang(de) %{_libdir}/VirtualBox/nls/VirtualBox_de.qm +%lang(es) %{_libdir}/VirtualBox/nls/VirtualBox_es.qm +%lang(fi) %{_libdir}/VirtualBox/nls/VirtualBox_fi.qm +%lang(fr) %{_libdir}/VirtualBox/nls/VirtualBox_fr.qm +%lang(hu) %{_libdir}/VirtualBox/nls/VirtualBox_hu.qm +%lang(it) %{_libdir}/VirtualBox/nls/VirtualBox_it.qm +%lang(ja) %{_libdir}/VirtualBox/nls/VirtualBox_ja.qm +%lang(ko) %{_libdir}/VirtualBox/nls/VirtualBox_ko.qm +%lang(pl) %{_libdir}/VirtualBox/nls/VirtualBox_pl.qm +%lang(pt_BR) %{_libdir}/VirtualBox/nls/VirtualBox_pt_BR.qm +%lang(ro) %{_libdir}/VirtualBox/nls/VirtualBox_ro.qm +%lang(ru) %{_libdir}/VirtualBox/nls/VirtualBox_ru.qm +%lang(sv) %{_libdir}/VirtualBox/nls/VirtualBox_sv.qm +%lang(zh_CN) %{_libdir}/VirtualBox/nls/VirtualBox_zh_CN.qm +%lang(zh_TW) %{_libdir}/VirtualBox/nls/VirtualBox_zh_TW.qm +%{_pixmapsdir}/VBox.png +%{_desktopdir}/%{name}.desktop + +%files -n xorg-driver-input-vboxmouse +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/xorg/modules/input/vboxmouse_drv.so + +%files -n xorg-driver-video-vboxvideo +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so +%endif + +%if %{with kernel} +%files -n kernel%{_alt_kernel}-misc-vboxadd +%defattr(644,root,root,755) +/lib/modules/%{_kernel_ver}/misc/vboxadd.ko* -%files -n kernel%{_alt_kernel}-misc-vboxdrv +%files -n kernel%{_alt_kernel}-misc-vboxdrv %defattr(644,root,root,755) +/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko* -%if %{with smp} && %{with dist_kernel} -%files -n kernel%{_alt_kernel}-smp-misc-vboxdrv +%files -n kernel%{_alt_kernel}-misc-vboxvfs %defattr(644,root,root,755) +/lib/modules/%{_kernel_ver}/misc/vboxvfs.ko* %endif