Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37533402
en ru br
Репозитории ALT
S:7.0.10-alt2
5.1: 4.0.12-alt0.M51.1
4.1: 2.1.4-alt0.M41.5
4.0:
+backports:1.6.6-alt0.M40.2
www.altlinux.org/Changes

Группа :: Эмуляторы
Пакет: virtualbox

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

#define rev 2459
%define oldmodname kernel-source-virtualbox
%define oldmodnamenetflt kernel-source-virtualbox-netfilter
%define oldmodnamenetadp kernel-source-virtualbox-netadaptor
%define oldmodnameadd kernel-source-virtualbox-addition
%define oldmodnameguest kernel-source-virtualbox-guest
%define oldmodnamevfs kernel-source-virtualbox-vfs
%define oldmodnamevideo kernel-source-virtualbox-video

%define modname kernel-source-vboxdrv
%define modnamenetflt kernel-source-vboxnetflt
%define modnamenetadp kernel-source-vboxnetadp
%define modnameguest kernel-source-vboxguest
%define modnamevfs kernel-source-vboxsf
%define modnamevideo kernel-source-vboxvideo

%define vboxdir %_libdir/virtualbox
%define vboxdatadir %_datadir/virtualbox
%define vboxadddir %vboxdir/additions

%set_verify_elf_method textrel=relaxed
%add_findprov_lib_path %vboxdir

%define distname VirtualBox

%ifarch %ix86
%define vbox_platform linux.x86
%endif
%ifarch x86_64
%define vbox_platform linux.amd64
%endif
%define build_manual 0
%define build_additions 1
%define build_webservice 0
%def_without java

Name: virtualbox
Version: 4.0.12
Release: alt0.M51.1

Summary: VM VirtualBox OSE - Virtual Machine for x86 hardware
License: GPL
Group: Emulators
Url: http://www.virtualbox.org/

ExclusiveArch: %ix86 x86_64

Packager: Evgeny Sinelnikov <sin at altlinux.ru>

%define distarchive %distname-%{version}_OSE
Source: %distarchive.tar

Source1: %name.control
Source2: %name.init
Source3: %name-addition.rules
Source4: %name.rules
Source5: 60-vboxadd.perms
Source6: vboxadd-service.sysconfig
Source13: http://download.virtualbox.org/%name/%version/UserManual.pdf
Source15: os_altlinux.png
Source16: os_altlinux_64.png
Source17: http://download.virtualbox.org/%name/%version/%distname.chm
Source18: xorg-vboxmouse.rules
Source19: xorg-vboxmouse.conf
Source20: http://download.virtualbox.org/%name/%version/SDKRef.pdf
Source21: %distname-HTML-%{version}_OSE.tar

Patch0: %name-%version-%release.patch

BuildPreReq: dev86 iasl gcc4.3-c++ libstdc++4.3-devel-static
BuildPreReq: libIDL-devel libSDL-devel
BuildPreReq: libXcursor-devel libXext-devel
BuildPreReq: xsltproc
BuildPreReq: kernel-build-tools python-dev
BuildPreReq: libpulseaudio-devel
BuildRequires: libxml2-devel libxslt-devel
BuildRequires: libqt4-devel libalsa-devel
BuildRequires: libcap-devel libcurl-devel
BuildRequires: libXmu-devel libGLU-devel
BuildRequires: libXdamage-devel libXcomposite-devel
BuildRequires: xorg-xf86driproto-devel xorg-glproto-devel
BuildRequires: xorg-sdk
BuildPreReq: yasm kBuild >= 0.1.5.r2274
%if %build_webservice
BuildRequires: libgsoap-devel-static
%endif
BuildRequires: libpam-devel
%if %build_manual
BuildRequires: texlive-latex-recommended
%endif
BuildRequires: rpm-build-xdg

PreReq: %name-common = %version-%release

%description
VirtualBox is a powerful PC virtualization solution allowing
you to run a wide range of PC operating systems on your Linux
system. This includes Windows, Linux, FreeBSD, DOS, OpenBSD
and others. VirtualBox comes with a broad feature set and
excellent performance, making it the premier virtualization
software solution on the market.

%package guest-additions
Summary: Additions for VirtualBox OSE guest systems
Group: Emulators
Requires: xorg-x11-drv-vboxmouse
Requires: xorg-x11-drv-vboxvideo

%description guest-additions
This packages contains additions for VirtualBox OSE guest systems.
It allows to share files with the host system, copy/paste between
guest and host, and sync time with host.

%package -n %modname
Summary: Sources for VirtualBox module
Group: Development/Kernel
BuildArch: noarch
Provides: %oldmodname = %version-%release

%description -n %modname
Sources for VirtualBox kernel module.

%package -n %modnamenetflt
Summary: Sources for VirtualBox module for OSE netfilter
Group: Development/Kernel
BuildArch: noarch
Provides: %oldmodnamenetflt = %version-%release

%description -n %modnamenetflt
Sources for VirtualBox kernel module for OSE netfilter.

%package -n %modnamenetadp
Summary: Sources for VirtualBox module for OSE netadaptor
Group: Development/Kernel
BuildArch: noarch
Provides: %oldmodnamenetadp = %version-%release

%description -n %modnamenetadp
Sources for VirtualBox kernel module for OSE netadaptor.

%package -n %modnameguest
Summary: Sources for VirtualBox module for OSE guest additions
Group: Development/Kernel
BuildArch: noarch
Provides: %oldmodnameadd = %version-%release
Provides: %oldmodnameguest = %version-%release

%description -n %modnameguest
Sources for VirtualBox kernel module for OSE guest additions.

%package -n %modnamevfs
Summary: Sources for VirtualBox module for OSE VFS
Group: Development/Kernel
BuildArch: noarch
Provides: %oldmodnamevfs = %version-%release

%description -n %modnamevfs
Sources for VirtualBox kernel module for OSE VFS.

%package -n %modnamevideo
Summary: Sources for VirtualBox module for OSE Video DRM
Group: Development/Kernel
BuildArch: noarch
Provides: %oldmodnamevideo = %version-%release

%description -n %modnamevideo
Sources for VirtualBox kernel module for OSE Video DRM.

%package -n xorg-x11-drv-vboxmouse
Summary: The X.org driver for mouse in VirtualBox guests
Group: System/X11

%description -n xorg-x11-drv-vboxmouse
The X.org driver for mouse in VirtualBox guests

%package -n xorg-x11-drv-vboxvideo
Summary: The X.org driver for video in VirtualBox guests
Group: System/X11

%description -n xorg-x11-drv-vboxvideo
The X.org driver for video in VirtualBox guests

%package common
Summary: VirtualBox module support files
Group: System/Configuration/Other
BuildArch: noarch
# due to new_summary function and is_builtin_mode bugfix
PreReq: control >= 0.7.2-alt1
PreReq: shadow-utils
# due to /bin/mountpoint
PreReq: sysvinit-utils

%description common
This package contains scripts and other support files which are
required to use the vboxdrv kernel module in the ALT Linux system.
The kernel module itself is not included - you need to install the
appropriate kernel-modules-virtualbox-* package for your kernel.

%package doc
Summary: VirtualBox documentation
Group: Documentation
BuildArch: noarch

%description doc
This package contains VirtualBox User Manual.

%package sdk
Summary: VirtualBox SDK
Group: Development/Other

%description sdk
This package contains VirtualBox SDK.

%prep
%setup -q -n %distarchive
%patch -p1

cp %SOURCE15 %SOURCE16 src/VBox/Frontends/VirtualBox/images

%build
export GCC_VERSION=4.3
./configure --ose \
   --disable-kmods \
%if %build_webservice
   --enable-webservice \
%endif
%if_without java
   --disable-java \
%endif
%if "%build_manual" == "0"
   --disable-docs \
%endif
   --with-qt-dir=%_qt4dir \
   --with-kbuild=%_bindir
%if "%build_additions" == "0"
echo "VBOX_WITH_X11_ADDITIONS    := " >> LocalConfig.kmk
%endif
%if %build_webservice
echo "VBOX_WITHOUT_SPLIT_SOAPC   := 1" >> LocalConfig.kmk
%endif
# don't build testcases to save time, they are not needed for the package
echo "VBOX_WITH_TESTCASES        :=" >> LocalConfig.kmk
echo "VBOX_WITH_TESTSUITE        :=" >> LocalConfig.kmk
# required for VBOX_PATH_APP_PRIVATE_*
echo "VBOX_DOCBOOK_WITH_LATEX    := 1" >> LocalConfig.kmk
echo "KBUILD_MSG_STYLE           := brief" >> LocalConfig.kmk
echo "VBOX_PATH_APP_PRIVATE_ARCH := %vboxdir" >> LocalConfig.kmk
echo "VBOX_PATH_SHARED_LIBS      := \$(VBOX_PATH_APP_PRIVATE_ARCH)" >> LocalConfig.kmk
echo "VBOX_WITH_RUNPATH          := \$(VBOX_PATH_APP_PRIVATE_ARCH)" >> LocalConfig.kmk
echo "VBOX_PATH_APP_PRIVATE      := %vboxdatadir" >> LocalConfig.kmk
echo "VBOX_PATH_APP_DOCS         := %_defaultdocdir/%name-doc-%version" >> LocalConfig.kmk
echo "VBOX_PATH_PACKAGE_DOCS     := \$(VBOX_PATH_APP_DOCS)" >> LocalConfig.kmk
echo "VBOX_VENDOR                := ALT Linux Team" >> LocalConfig.kmk
echo "VBOX_VENDOR_SHORT          := ALT" >> LocalConfig.kmk
echo "VBOX_PRODUCT               := VM VirtualBox OSE" >> LocalConfig.kmk

source env.sh
[ -n "$NPROCS" ] || NPROCS=%__nprocs
kmk -j$NPROCS VBOXDIR=%vboxdir

%install
mkdir -p %buildroot{%_bindir,%_sbindir,%vboxdir/ExtensionPacks,%vboxdatadir,%kernel_src,%_initrddir,%_sysconfdir/udev/rules.d}

# install common

install -Dp %SOURCE1 %buildroot%_controldir/%name
install -Dp %SOURCE2 %buildroot%_initdir/%name
install -Dp -m644 %SOURCE4 \
%buildroot%_sysconfdir/udev/rules.d/90-%name.rules

%if %build_additions
# install additions from src
install -m755 src/VBox/Additions/linux/installer/vboxadd-service.sh %buildroot%_initrddir/vboxadd-service
install -m755 src/VBox/Additions/linux/installer/vboxadd.sh %buildroot%_initrddir/vboxadd
install -Dp -m644 %SOURCE3 %buildroot%_sysconfdir/udev/rules.d/60-vboxadd.rules

install -d %buildroot%_sysconfdir/hal/fdi/policy
install -m644 src/VBox/Additions/linux/installer/90-vboxguest.fdi %buildroot%_sysconfdir/hal/fdi/policy/90-vboxguest.fdi

install -d %buildroot%_sysconfdir/X11/xinit.d
install -m755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %buildroot%_sysconfdir/X11/xinit.d

install -Dp -m644 %SOURCE18 \
%buildroot%_sysconfdir/udev/rules.d/70-xorg-vboxmouse.rules
mkdir -p %buildroot%_x11sysconfdir/xorg.conf.d
install -Dp -m644 %SOURCE19 \
%buildroot%_x11sysconfdir/xorg.conf.d/50-vboxmouse.conf
%endif

# install application

cd out/%vbox_platform/release/bin

#    SUPInstall \

#    SUPUninstall \
#    EfiThunk \
cp -a \
   VBoxBFE \
   VBoxExtPackHelperApp \
   VBoxHeadless \
   VBoxManage \
   VBoxNetAdpCtl \
   VBoxNetDHCP \
   VBoxSDL \
   VBoxSVC \
   VBoxTestOGL \
   VBoxTunctl \
   VBoxXPCOMIPCD \
   VirtualBox \
   xpidl \
   *.gc \
   *.r0 \
   *.so \
   *.fd \
   *.py \
   components/ \
   sdk/ \
   %buildroot%vboxdir

cp -a \
   VBoxCreateUSBNode.sh \
   nls/ \
   %buildroot%vboxdatadir

# create links

for n in VBoxBFE VBoxManage VBoxSDL VirtualBox VBoxTunctl xpidl; do
   ln -s $(relative %vboxdir/$n %_bindir/$n) %buildroot%_bindir
done

# install kernel sources

cp -a src/vboxdrv %buildroot%kernel_src/%modname-%version
cp -a src/vboxnetflt %buildroot%kernel_src/%modnamenetflt-%version
cp -a src/vboxnetadp %buildroot%kernel_src/%modnamenetadp-%version
tar -C %buildroot%kernel_src -c %modname-%version | bzip2 -c > \
   %buildroot%kernel_src/%modname-%version.tar.bz2
rm -rf %buildroot%kernel_src/%modname-%version
tar -C %buildroot%kernel_src -c %modnamenetflt-%version | bzip2 -c > \
   %buildroot%kernel_src/%modnamenetflt-%version.tar.bz2
rm -rf %buildroot%kernel_src/%modnamenetflt-%version
tar -C %buildroot%kernel_src -c %modnamenetadp-%version | bzip2 -c > \
   %buildroot%kernel_src/%modnamenetadp-%version.tar.bz2
rm -rf %buildroot%kernel_src/%modnamenetadp-%version

cd additions >/dev/null
# install additions kernel sources
 cp -a src/vboxguest %buildroot%kernel_src/%modnameguest-%version
 tar -C %buildroot%kernel_src -c %modnameguest-%version | bzip2 -c > \
   %buildroot%kernel_src/%modnameguest-%version.tar.bz2
 rm -rf %buildroot%kernel_src/%modnameguest-%version

# install VFS kernel sources

 cp -a src/vboxsf %buildroot%kernel_src/%modnamevfs-%version
 tar -C %buildroot%kernel_src -c %modnamevfs-%version | bzip2 -c > \
   %buildroot%kernel_src/%modnamevfs-%version.tar.bz2
 rm -rf %buildroot%kernel_src/%modnamevfs-%version

# install VFS kernel sources

 cp -a src/vboxvideo %buildroot%kernel_src/%modnamevideo-%version
 tar -C %buildroot%kernel_src -c %modnamevideo-%version | bzip2 -c > \
   %buildroot%kernel_src/%modnamevideo-%version.tar.bz2
 rm -rf %buildroot%kernel_src/%modnamevideo-%version

%if %build_additions
 mkdir -p %buildroot%vboxadddir

# install additions

 cp -a \
   VBoxClient \
   VBoxControl \
   VBoxService \
   VBox*.so \
   %buildroot%vboxadddir

# create links

 for n in VBoxClient VBoxControl VBoxService; do
   ln -s $(relative %vboxadddir/$n %_bindir/$n) %buildroot%_bindir
 done
 ln -s $(relative %vboxadddir/VBoxService %_sbindir/) %buildroot%_sbindir/vboxadd-service

# install sysconfig for vboxadd-service

 mkdir -p %buildroot%_sysconfdir/sysconfig
 cp %SOURCE6 %buildroot%_sysconfdir/sysconfig/vboxadd-service

# install mount vbox share folder

 install -d %buildroot/sbin
 install -m755 mount.vboxsf %buildroot/sbin/mount.vboxsf

 install -d %buildroot%_sysconfdir/security/console.perms.d/
 install -m644 %SOURCE5 %buildroot%_sysconfdir/security/console.perms.d/

# install x11 drivers

 install -d %buildroot%_x11modulesdir/{input,drivers}
 install vboxmouse_drv.so %buildroot%_x11modulesdir/input/vboxmouse_drv.so
 install vboxvideo_drv.so %buildroot%_x11modulesdir/drivers/vboxvideo_drv.so
%endif
cd - >/dev/null

# install icons

mkdir -p %buildroot%_niconsdir
install -m644 icons/32x32/*.png %buildroot%_niconsdir/
mkdir -p %buildroot%_miconsdir
install -m644 icons/16x16/*.png %buildroot%_miconsdir/
mkdir -p %buildroot%_liconsdir
install -m644 icons/48x48/*.png %buildroot%_liconsdir/
mkdir -p %buildroot%_iconsdir/hicolor/64x64/apps
install -m644 icons/64x64/*.png %buildroot%_iconsdir/hicolor/64x64/apps/
mkdir -p %buildroot%_iconsdir/hicolor/128x128/apps
install -m644 icons/128x128/*.png %buildroot%_iconsdir/hicolor/128x128/apps/

# install mime types

mkdir -p %buildroot%_xdgmimedir/packages
install -m644 virtualbox.xml %buildroot%_xdgmimedir/packages/virtualbox.xml

# install menu entries

mkdir -p %buildroot%_desktopdir
install -m644 virtualbox.desktop %buildroot%_desktopdir/

# install docs

mkdir -p %buildroot%_defaultdocdir/%name-doc-%version
cp %SOURCE13 %SOURCE17 %SOURCE20 %buildroot%_defaultdocdir/%name-doc-%version/
tar -xf %SOURCE21 -C %buildroot%_defaultdocdir/%name-doc-%version/

%pre
%pre_control %name

%post
%post_control -s vboxusers %name

%pre common
/usr/sbin/groupadd -r -f vboxusers

%post common
%post_service %name

%preun common
%preun_service %name

%triggerin common -- dev
# If using static /dev, select the same status again to fix permissions
mountpoint -q /dev || {
status="`/usr/sbin/control %name status`" || status=
[ -n "$status" ] && /usr/sbin/control %name "$status" ||:
}

%pre guest-additions
/usr/sbin/groupadd -r -f vboxadd

%files
%_bindir/*
%exclude %_bindir/xpidl
%if %build_additions
%exclude %_bindir/VBoxClient
%exclude %_bindir/VBoxControl
%exclude %_bindir/VBoxService
%exclude %vboxadddir
%endif
%dir %vboxdir
%dir %vboxdir/ExtensionPacks
%attr(4710,root,vboxusers) %vboxdir/VBoxHeadless
%attr(4710,root,vboxusers) %vboxdir/VBoxNetDHCP
%attr(4710,root,vboxusers) %vboxdir/VBoxNetAdpCtl
%attr(4710,root,vboxusers) %vboxdir/VBoxSDL
%attr(4710,root,vboxusers) %vboxdir/VirtualBox
%vboxdir/*
%exclude %vboxdir/sdk
%exclude %vboxdir/xpidl
%vboxdatadir/nls
%_niconsdir/*.png
%_miconsdir/*.png
%_liconsdir/*.png
%_iconsdir/hicolor/64x64/apps/*.png
%_iconsdir/hicolor/128x128/apps/*.png
%_xdgmimedir/packages/*.xml
%_desktopdir/*.desktop
%_controldir/%name

%files -n %modname
%kernel_src/%modname-%version.tar.bz2

%files -n %modnamenetflt
%kernel_src/%modnamenetflt-%version.tar.bz2

%files -n %modnamenetadp
%kernel_src/%modnamenetadp-%version.tar.bz2

%files -n %modnameguest
%kernel_src/%modnameguest-%version.tar.bz2

%files -n %modnamevfs
%kernel_src/%modnamevfs-%version.tar.bz2

%files -n %modnamevideo
%kernel_src/%modnamevideo-%version.tar.bz2

%if %build_additions
%files -n xorg-x11-drv-vboxmouse
%_x11modulesdir/input/vboxmouse_drv.so

%files -n xorg-x11-drv-vboxvideo
%_x11modulesdir/drivers/vboxvideo_drv.so

%files guest-additions
/sbin/mount.vboxsf
%_initrddir/vboxadd
%_initrddir/vboxadd-service
%config(noreplace) %_sysconfdir/sysconfig/vboxadd-service
%_sbindir/vboxadd-service
%_bindir/VBoxClient
%_bindir/VBoxControl
%_bindir/VBoxService
%dir %vboxadddir
%vboxadddir/*
%_sysconfdir/security/console.perms.d/60-vboxadd.perms
%_sysconfdir/X11/xinit.d/98vboxadd-xclient
%_sysconfdir/hal/fdi/policy/90-vboxguest.fdi
%config %_sysconfdir/udev/rules.d/60-vboxadd.rules
%config %_sysconfdir/udev/rules.d/70-xorg-vboxmouse.rules
%config %_x11sysconfdir/xorg.conf.d/50-vboxmouse.conf
%endif

%files common
%_initdir/%name
%config %_sysconfdir/udev/rules.d/90-%name.rules
%dir %vboxdatadir
%vboxdatadir/VBoxCreateUSBNode.sh

%files doc
%_defaultdocdir/%name-doc-%version

%files sdk
%_bindir/xpidl
%vboxdir/xpidl
%vboxdir/sdk

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin