VirtualBox

source: vbox/trunk/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec@ 36714

Last change on this file since 36714 was 36714, checked in by vboxsync, 14 years ago

Installer/linux: debian and rpm packaging of VBoxBalloonCtrl

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 16.3 KB
Line 
1#
2# Spec file for creating VirtualBox rpm packages
3#
4
5#
6# Copyright (C) 2006-2011 Oracle Corporation
7#
8# This file is part of VirtualBox Open Source Edition (OSE), as
9# available from http://www.virtualbox.org. This file is free software;
10# you can redistribute it and/or modify it under the terms of the GNU
11# General Public License as published by the Free Software Foundation,
12# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13# distribution. VirtualBox OSE is distributed in the hope that it will
14# be useful, but WITHOUT ANY WARRANTY of any kind.
15#
16
17%define %SPEC% 1
18%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
19
20Summary: Oracle VM VirtualBox
21Name: %NAME%
22Version: %BUILDVER%_%BUILDREL%
23Release: 1
24URL: http://www.virtualbox.org/
25Source: VirtualBox.tar.bz2
26License: GPLv2
27Group: Applications/System
28Vendor: Oracle Corporation
29BuildRoot: %BUILDROOT%
30Requires: %LIBASOUND%
31
32%if %{?rpm_suse:1}%{!?rpm_suse:0}
33%debug_package
34%endif
35
36%MACROSPYTHON%
37
38
39%description
40VirtualBox is a powerful PC virtualization solution allowing
41you to run a wide range of PC operating systems on your Linux
42system. This includes Windows, Linux, FreeBSD, DOS, OpenBSD
43and others. VirtualBox comes with a broad feature set and
44excellent performance, making it the premier virtualization
45software solution on the market.
46
47
48%prep
49%setup -q
50DESTDIR=""
51unset DESTDIR
52
53
54%build
55
56
57%install
58# Mandriva: prevent replacing 'echo' by 'gprintf'
59export DONT_GPRINTIFY=1
60rm -rf $RPM_BUILD_ROOT
61install -m 755 -d $RPM_BUILD_ROOT/sbin
62install -m 755 -d $RPM_BUILD_ROOT%{_initrddir}
63install -m 755 -d $RPM_BUILD_ROOT/lib/modules
64install -m 755 -d $RPM_BUILD_ROOT/etc/vbox
65install -m 755 -d $RPM_BUILD_ROOT/usr/bin
66install -m 755 -d $RPM_BUILD_ROOT/usr/src
67install -m 755 -d $RPM_BUILD_ROOT/usr/share/applications
68install -m 755 -d $RPM_BUILD_ROOT/usr/share/pixmaps
69install -m 755 -d $RPM_BUILD_ROOT/usr/share/icons/hicolor
70install -m 755 -d $RPM_BUILD_ROOT%{_defaultdocdir}/virtualbox
71install -m 755 -d $RPM_BUILD_ROOT/usr/lib/virtualbox
72install -m 755 -d $RPM_BUILD_ROOT/usr/lib/virtualbox/ExtensionPacks
73install -m 755 -d $RPM_BUILD_ROOT/usr/share/virtualbox
74install -m 755 -d $RPM_BUILD_ROOT/usr/share/mime/packages
75mv VBoxEFI32.fd $RPM_BUILD_ROOT/usr/lib/virtualbox || true
76mv VBoxEFI64.fd $RPM_BUILD_ROOT/usr/lib/virtualbox || true
77mv *.gc $RPM_BUILD_ROOT/usr/lib/virtualbox
78mv *.r0 $RPM_BUILD_ROOT/usr/lib/virtualbox
79mv *.rel $RPM_BUILD_ROOT/usr/lib/virtualbox || true
80mv VBoxNetDHCP $RPM_BUILD_ROOT/usr/lib/virtualbox
81mv VBoxNetAdpCtl $RPM_BUILD_ROOT/usr/lib/virtualbox
82mv VBoxXPCOMIPCD $RPM_BUILD_ROOT/usr/lib/virtualbox
83mv components $RPM_BUILD_ROOT/usr/lib/virtualbox/components
84mv *.so $RPM_BUILD_ROOT/usr/lib/virtualbox
85mv *.so.4 $RPM_BUILD_ROOT/usr/lib/virtualbox || true
86mv VBoxTestOGL $RPM_BUILD_ROOT/usr/lib/virtualbox
87mv vboxshell.py $RPM_BUILD_ROOT/usr/lib/virtualbox
88(export VBOX_INSTALL_PATH=/usr/lib/virtualbox && \
89 cd ./sdk/installer && \
90 %{__python} ./vboxapisetup.py install --prefix %{_prefix} --root $RPM_BUILD_ROOT)
91rm -rf sdk/installer
92mv sdk $RPM_BUILD_ROOT/usr/lib/virtualbox
93mv nls $RPM_BUILD_ROOT/usr/share/virtualbox
94cp -a src $RPM_BUILD_ROOT/usr/share/virtualbox
95mv VBox.sh $RPM_BUILD_ROOT/usr/bin/VBox
96mv VBoxSysInfo.sh $RPM_BUILD_ROOT/usr/share/virtualbox
97mv VBoxCreateUSBNode.sh $RPM_BUILD_ROOT/usr/share/virtualbox
98cd icons
99 for i in *; do
100 install -d $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/mimetypes
101 mv $i/* $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/mimetypes
102 rmdir $i
103 done
104cd -
105rmdir icons
106mv virtualbox.xml $RPM_BUILD_ROOT/usr/share/mime/packages
107for i in VBoxManage VBoxSVC VBoxSDL VirtualBox VBoxHeadless VBoxExtPackHelperApp VBoxBalloonCtrl vboxwebsrv webtest; do
108 mv $i $RPM_BUILD_ROOT/usr/lib/virtualbox; done
109for i in VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl; do
110 chmod 4511 $RPM_BUILD_ROOT/usr/lib/virtualbox/$i; done
111mv VBoxTunctl $RPM_BUILD_ROOT/usr/bin
112for d in /lib/modules/*; do
113 if [ -L $d/build ]; then
114 rm -f /tmp/vboxdrv-Module.symvers
115 ./src/vboxhost/vboxdrv/build_in_tmp \
116 --save-module-symvers /tmp/vboxdrv-Module.symvers \
117 KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
118 %INSTMOD%
119 ./src/vboxhost/vboxnetflt/build_in_tmp \
120 --use-module-symvers /tmp/vboxdrv-Module.symvers \
121 KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
122 %INSTMOD%
123 ./src/vboxhost/vboxnetadp/build_in_tmp \
124 --use-module-symvers /tmp/vboxdrv-Module.symvers \
125 KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
126 %INSTMOD%
127 fi
128done
129mv kchmviewer $RPM_BUILD_ROOT/usr/lib/virtualbox
130for i in rdesktop-vrdp.tar.gz rdesktop-vrdp-keymaps additions/VBoxGuestAdditions.iso; do
131 mv $i $RPM_BUILD_ROOT/usr/share/virtualbox; done
132if [ -d accessible ]; then
133 mv accessible $RPM_BUILD_ROOT/usr/lib/virtualbox
134fi
135mv rdesktop-vrdp $RPM_BUILD_ROOT/usr/bin
136install -D -m 755 vboxdrv.init $RPM_BUILD_ROOT%{_initrddir}/vboxdrv
137%if %{?rpm_suse:1}%{!?rpm_suse:0}
138ln -sf ../etc/init.d/vboxdrv $RPM_BUILD_ROOT/sbin/rcvboxdrv
139%endif
140install -D -m 755 vboxballoonctrl-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxballoonctrl-service
141install -D -m 755 vboxweb-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxweb-service
142%if %{?rpm_suse:1}%{!?rpm_suse:0}
143ln -sf ../etc/init.d/vboxballoonctrl-service $RPM_BUILD_ROOT/sbin/rcvboxballoonctrl-service
144ln -sf ../etc/init.d/vboxweb-service $RPM_BUILD_ROOT/sbin/rcvboxweb-service
145%endif
146ln -s VBox $RPM_BUILD_ROOT/usr/bin/VirtualBox
147ln -s VBox $RPM_BUILD_ROOT/usr/bin/virtualbox
148ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxManage
149ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxmanage
150ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxSDL
151ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxsdl
152ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxVRDP
153ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxHeadless
154ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxheadless
155ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxBalloonCtrl
156ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxballoonctrl
157ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxwebsrv
158ln -s /usr/share/virtualbox/src/vboxhost $RPM_BUILD_ROOT/usr/src/vboxhost-%VER%
159mv virtualbox.desktop $RPM_BUILD_ROOT/usr/share/applications/virtualbox.desktop
160mv VBox.png $RPM_BUILD_ROOT/usr/share/pixmaps/VBox.png
161
162
163%pre
164# defaults
165[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
166
167# check for active VMs of the installed (old) package
168VBOXSVC_PID=`pidof VBoxSVC 2>/dev/null || true`
169if [ -n "$VBOXSVC_PID" ]; then
170 # executed before the new package is installed!
171 if [ -f /etc/init.d/vboxballoonctrl-service ]; then
172 # try graceful termination; terminate the balloon control service first
173 /etc/init.d/vboxballoonctrl-service stop 2>/dev/null || true
174 fi
175 if [ -f /etc/init.d/vboxweb-service ]; then
176 # try graceful termination; terminate the webservice first
177 /etc/init.d/vboxweb-service stop 2>/dev/null || true
178 fi
179 # ask the daemon to terminate immediately
180 kill -USR1 $VBOXSVC_PID
181 sleep 1
182 if pidof VBoxSVC > /dev/null 2>&1; then
183 echo "A copy of VirtualBox is currently running. Please close it and try again."
184 echo "Please note that it can take up to ten seconds for VirtualBox (in particular"
185 echo "the VBoxSVC daemon) to finish running."
186 exit 1
187 fi
188fi
189
190# check for old installation
191if [ -r /etc/vbox/vbox.cfg ]; then
192 . /etc/vbox/vbox.cfg
193 if [ "x$INSTALL_DIR" != "x" -a -d "$INSTALL_DIR" ]; then
194 echo "An old installation of VirtualBox was found. To install this package the"
195 echo "old package has to be removed first. Have a look at /etc/vbox/vbox.cfg to"
196 echo "determine the installation directory of the previous installation. After"
197 echo "uninstalling the old package remove the file /etc/vbox/vbox.cfg."
198 exit 1
199 fi
200fi
201
202# XXX remove old modules from previous versions (disable with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox)
203if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
204 find /lib/modules -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
205 find /lib/modules -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
206 find /lib/modules -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
207fi
208
209
210%post
211LOG="/var/log/vbox-install.log"
212
213# defaults
214[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
215
216# remove old cruft
217if [ -f /etc/init.d/vboxdrv.sh ]; then
218 echo "Found old version of /etc/init.d/vboxdrv.sh, removing."
219 rm /etc/init.d/vboxdrv.sh
220fi
221if [ -f /etc/vbox/vbox.cfg ]; then
222 echo "Found old version of /etc/vbox/vbox.cfg, removing."
223 rm /etc/vbox/vbox.cfg
224fi
225rm -f /etc/vbox/module_not_compiled
226
227# install udev rule (disable with INSTALL_NO_UDEV=1 in /etc/default/virtualbox)
228if [ -d /etc/udev/rules.d -a "$INSTALL_NO_UDEV" != "1" ]; then
229 udev_call=""
230 udev_app=`which udevadm 2> /dev/null`
231 if [ $? -eq 0 ]; then
232 udev_call="${udev_app} version 2> /dev/null"
233 else
234 udev_app=`which udevinfo 2> /dev/null`
235 if [ $? -eq 0 ]; then
236 udev_call="${udev_app} -V 2> /dev/null"
237 fi
238 fi
239 udev_fix="="
240 if [ "${udev_call}" != "" ]; then
241 udev_out=`${udev_call}`
242 udev_ver=`expr "$udev_out" : '[^0-9]*\([0-9]*\)'`
243 if [ "$udev_ver" = "" -o "$udev_ver" -lt 55 ]; then
244 udev_fix=""
245 fi
246 fi
247 usb_createnode="/usr/share/virtualbox/VBoxCreateUSBNode.sh"
248 echo "KERNEL=${udev_fix}\"vboxdrv\", NAME=\"vboxdrv\", OWNER=\"root\", GROUP=\"root\", MODE=\"0600\"" \
249 > /etc/udev/rules.d/10-vboxdrv.rules
250 echo "SUBSYSTEM=${udev_fix}\"usb_device\", ACTION=${udev_fix}\"add\", RUN=\"${usb_createnode} \$major \$minor \$attr{bDeviceClass}\"" \
251 >> /etc/udev/rules.d/10-vboxdrv.rules
252 echo "SUBSYSTEM=${udev_fix}\"usb\", ACTION=${udev_fix}\"add\", ENV{DEVTYPE}==\"usb_device\", RUN=\"${usb_createnode} \$major \$minor \$attr{bDeviceClass}\"" \
253 >> /etc/udev/rules.d/10-vboxdrv.rules
254 echo "SUBSYSTEM=${udev_fix}\"usb_device\", ACTION=${udev_fix}\"remove\", RUN=\"${usb_createnode} --remove \$major \$minor\"" \
255 >> /etc/udev/rules.d/10-vboxdrv.rules
256 echo "SUBSYSTEM=${udev_fix}\"usb\", ACTION=${udev_fix}\"remove\", ENV{DEVTYPE}==\"usb_device\", RUN=\"${usb_createnode} --remove \$major \$minor\"" \
257 >> /etc/udev/rules.d/10-vboxdrv.rules
258fi
259# Remove old udev description file
260if [ -f /etc/udev/rules.d/60-vboxdrv.rules ]; then
261 rm -f /etc/udev/rules.d/60-vboxdrv.rules 2> /dev/null
262fi
263# Build our device tree
264for i in /sys/bus/usb/devices/*; do
265 if test -r "$i/dev"; then
266 dev="`cat "$i/dev" 2> /dev/null`"
267 major="`expr "$dev" : '\(.*\):' 2> /dev/null`"
268 minor="`expr "$dev" : '.*:\(.*\)' 2> /dev/null`"
269 class="`cat $i/bDeviceClass 2> /dev/null`"
270 sh ${usb_createnode} "$major" "$minor" "$class" ${usb_group} 2>/dev/null
271 fi
272done
273
274# XXX SELinux: allow text relocation entries
275%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
276if [ -x /usr/bin/chcon ]; then
277 chcon -t texrel_shlib_t /usr/lib/virtualbox/*VBox* > /dev/null 2>&1
278 chcon -t texrel_shlib_t /usr/lib/virtualbox/VirtualBox.so > /dev/null 2>&1
279 chcon -t texrel_shlib_t /usr/lib/virtualbox/VBoxAuth.so > /dev/null 2>&1
280 chcon -t texrel_shlib_t /usr/lib/virtualbox/components/VBox*.so > /dev/null 2>&1
281 chcon -t java_exec_t /usr/lib/virtualbox/VirtualBox > /dev/null 2>&1
282 chcon -t java_exec_t /usr/lib/virtualbox/VBoxSDL > /dev/null 2>&1
283 chcon -t java_exec_t /usr/lib/virtualbox/VBoxHeadless > /dev/null 2>&1
284 chcon -t java_exec_t /usr/lib/virtualbox/VBoxExtPackHelperApp > /dev/null 2>&1
285 chcon -t java_exec_t /usr/lib/virtualbox/VBoxBalloonCtrl > /dev/null 2>&1
286 chcon -t java_exec_t /usr/lib/virtualbox/vboxwebsrv > /dev/null 2>&1
287fi
288%endif
289
290# create users groups (disable with INSTALL_NO_GROUP=1 in /etc/default/virtualbox)
291if [ "$INSTALL_NO_GROUP" != "1" ]; then
292 echo
293 echo "Creating group 'vboxusers'. VM users must be member of that group!"
294 echo
295 groupadd -f vboxusers 2> /dev/null
296fi
297%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
298/sbin/chkconfig --add vboxdrv
299/sbin/chkconfig --add vboxballoonctrl-service
300/sbin/chkconfig --add vboxweb-service
301%endif
302%if %{?rpm_suse:1}%{!?rpm_suse:0}
303%{fillup_and_insserv -f -y -Y vboxdrv vboxballoonctrl-service vboxweb-service}
304%endif
305%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
306/sbin/ldconfig
307%_post_service vboxdrv
308%_post_service vboxballoonctrl-service
309%_post_service vboxweb-service
310%update_menus
311%endif
312update-mime-database /usr/share/mime &> /dev/null || :
313update-desktop-database -q > /dev/null 2>&1 || :
314touch --no-create /usr/share/icons/hicolor
315gtk-update-icon-cache -q /usr/share/icons/hicolor 2> /dev/null || :
316
317# Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
318BUILD_MODULES=0
319REGISTER_MODULES=1
320if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
321 REGISTER_MODULES=0
322 if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
323 # compile problem
324 cat << EOF
325No precompiled module for this kernel found -- trying to build one. Messages
326emitted during module compilation will be logged to $LOG.
327
328EOF
329 BUILD_MODULES=1
330 fi
331fi
332# if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
333if [ "$INSTALL_NO_VBOXDRV" = "1" ]; then
334 rm -f /lib/modules/*/misc/vboxdrv.ko
335 rm -f /lib/modules/*/misc/vboxnetflt.ko
336 rm -f /lib/modules/*/misc/vboxnetadp.ko
337fi
338if [ $BUILD_MODULES -eq 1 ]; then
339 /etc/init.d/vboxdrv setup || true
340else
341 if lsmod | grep -q "vboxdrv[^_-]"; then
342 /etc/init.d/vboxdrv stop || true
343 fi
344 if [ $REGISTER_MODULES -eq 1 ]; then
345 DKMS=`which dkms 2>/dev/null`
346 if [ -n "$DKMS" ]; then
347 $DKMS remove -m vboxhost -v %VER% --all > /dev/null 2>&1 || true
348 fi
349 fi
350 /etc/init.d/vboxdrv start > /dev/null
351fi
352/etc/init.d/vboxballoonctrl-service start > /dev/null
353/etc/init.d/vboxweb-service start > /dev/null
354
355
356%preun
357# $1==0: remove the last version of the package
358# $1==1: install the first time
359# $1>=2: upgrade
360%if %{?rpm_suse:1}%{!?rpm_suse:0}
361%stop_on_removal vboxballoonctrl-service
362%stop_on_removal vboxweb-service
363%endif
364%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
365%_preun_service vboxballoonctrl-service
366%_preun_service vboxweb-service
367%endif
368%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
369if [ "$1" = 0 ]; then
370 /sbin/service vboxballoonctrl-service stop > /dev/null
371 /sbin/chkconfig --del vboxballoonctrl-service
372 /sbin/service vboxweb-service stop > /dev/null
373 /sbin/chkconfig --del vboxweb-service
374fi
375%endif
376
377if [ "$1" = 0 ]; then
378 # check for active VMs
379 VBOXSVC_PID=`pidof VBoxSVC 2>/dev/null || true`
380 if [ -n "$VBOXSVC_PID" ]; then
381 kill -USR1 $VBOXSVC_PID
382 sleep 1
383 if pidof VBoxSVC > /dev/null 2>&1; then
384 echo "A copy of VirtualBox is currently running. Please close it and try again."
385 echo "Please note that it can take up to ten seconds for VirtualBox (in particular"
386 echo "the VBoxSVC daemon) to finish running."
387 exit 1
388 fi
389 fi
390fi
391%if %{?rpm_suse:1}%{!?rpm_suse:0}
392%stop_on_removal vboxdrv
393%endif
394%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
395%_preun_service vboxdrv
396%endif
397if [ "$1" = 0 ]; then
398%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
399 /sbin/service vboxdrv stop > /dev/null
400 /sbin/chkconfig --del vboxdrv
401%endif
402 rm -f /etc/udev/rules.d/10-vboxdrv.rules
403 rm -f /etc/vbox/license_agreed
404 rm -f /etc/vbox/module_not_compiled
405 # remove our USB device tree
406 rm -rf /dev/vboxusb 2> /dev/null
407fi
408DKMS=`which dkms 2>/dev/null`
409if [ -n "$DKMS" ]; then
410 $DKMS remove -m vboxhost -v %VER% --all > /dev/null 2>&1 || true
411fi
412
413
414%postun
415%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
416if [ "$1" -ge 1 ]; then
417 /sbin/service vboxdrv restart > /dev/null 2>&1
418 /sbin/service vboxballoonctrl-service restart > /dev/null 2>&1
419 /sbin/service vboxweb-service restart > /dev/null 2>&1
420fi
421%endif
422%if %{?rpm_suse:1}%{!?rpm_suse:0}
423%restart_on_update vboxdrv vboxballoonctrl-service vboxweb-service
424%insserv_cleanup
425%endif
426%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
427/sbin/ldconfig
428%{clean_desktop_database}
429%clean_menus
430%endif
431update-mime-database /usr/share/mime &> /dev/null || :
432update-desktop-database -q > /dev/null 2>&1 || :
433touch --no-create /usr/share/icons/hicolor
434gtk-update-icon-cache -q /usr/share/icons/hicolor 2> /dev/null || :
435
436
437%clean
438rm -rf $RPM_BUILD_ROOT
439
440
441%files
442%defattr(-,root,root)
443%doc LICENSE
444%doc UserManual*.pdf
445%doc VirtualBox*.chm
446%{_initrddir}/vboxdrv
447%{_initrddir}/vboxballoonctrl-service
448%{_initrddir}/vboxweb-service
449%{?rpm_suse: %{py_sitedir}/*}
450%{!?rpm_suse: %{python_sitelib}/*}
451%{?rpm_suse: /sbin/rcvboxdrv}
452%{?rpm_suse: /sbin/rcvboxballoonctrl-service}
453%{?rpm_suse: /sbin/rcvboxweb-service}
454/lib/modules
455/etc/vbox
456/usr/bin
457/usr/src/vbox*
458/usr/lib/virtualbox
459/usr/share/applications
460/usr/share/icons
461/usr/share/mime/packages
462/usr/share/pixmaps
463/usr/share/virtualbox
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette