Hello community, here is the log from the commit of package virtualbox.1250 for openSUSE:12.2:Update checked in at 2013-02-04 13:52:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.2:Update/virtualbox.1250 (Old) and /work/SRC/openSUSE:12.2:Update/.virtualbox.1250.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox.1250", Maintainer is "" Changes: -------- New Changes file: --- /dev/null 2013-01-09 19:40:42.352580873 +0100 +++ /work/SRC/openSUSE:12.2:Update/.virtualbox.1250.new/virtualbox.changes 2013-02-04 13:52:42.000000000 +0100 @@ -0,0 +1,2833 @@ +------------------------------------------------------------------- +Thu Jan 17 10:25:05 UTC 2013 - [email protected] + +- added CVE-2013-0420.diff to fix CVE-2013-0420 (bnc#798776) + +------------------------------------------------------------------- +Fri Sep 21 18:46:29 UTC 2012 - [email protected] + +- update to virtualbox 4.1.22 (fix bnc#780711 VUL-1) + * VMM: fixed a potential host crash triggered by shutting down a VM when another VM was running + * VMM: fixed a potential host crash under a high guest memory pressure (seen with Windows 8 guests) + * VMM: respect RAM preallocation while restoring saved state. + * VMM: fixed handling of task gates if VT-x/AMD-V is disabled + * Storage: fixed audio CD passthrough for certain media players + * USB: don't crash if a USB device is plugged or unplugged when saving or loading the VM state (SMP guests only) + * RTC: fixed a potential corruption of CMOS bank 1 + * Mac OS X hosts: installer fixes for Leopard (4.1.20 regression) + * Windows Additions: fixed memory leak in VBoxTray (bug #10808) +- changes in virtualbox 4.1.20 (maintenance release) + * VMM: fixed a crash under rare circumstances for VMs running without hardware virtualization + * VMM: fixed a code analysis bug for certain displacement instructions for VMs running without hardware virtualization + * VMM: fixed an interpretion bug for TPR read instructions under rare conditions (AMD-V only) + * Snapshots: fixed a crash when restoring an old snapshot when powering off a VM (bugs #9604, #10491) + * VBoxSVC: be more tolerant against environment variables with strange encodings (bug #8780) + * VGA: fixed wrong access check which might cause a crash under certain conditions + * NAT: final fix for crashes under rare conditions (bug #10513) + * Virtio-net: fixed the problem with receiving of GSO packets in Windows XP guests causing packet loss in host-to-VM transfers + * HPET: several fixes (bugs #10170, #10306) + * Clipboard: disable the clipboard by default for new VMs + * BIOS: the PCI BIOS was not properly detected with the chipset type set to ICH9 (bugs #9301, #10327) + * Mac OS X hosts: adaptions to Mountain Lion + * Linux Installer: fixes for Gentoo Linux (bug #10642) + * Linux guests: fixed mouse integration on Fedora 17 guests (bug #2306) + * Linux Additions: compile fixes for RHEL/CentOS 6.3 (bug #10756) + * Linux Additions: compile fixes for Linux 3.5-rc1 and Linux 3.6-rc1 (bug #10709) + * Solaris host: fixed a guru meditation while allocating large pages (bug #10600) + * Solaris host: fixed possible kernel panics while freeing memory + * Solaris Installer: fixed missing icon for menu and desktop shortcuts +- added patch vbox-LIBVNCSERVER_IPv6.diff to fix build + +------------------------------------------------------------------- +Tue Jun 26 14:02:32 UTC 2012 - [email protected] + +- let it build with all versions of openjkd + +------------------------------------------------------------------- +Thu Jun 21 20:01:20 UTC 2012 - [email protected] + +- update to virtualbox 4.1.18 (This is a maintenance release) +* VMM: fixed VERR_REM_VIRTUAL_CPU_ERROR under rare conditions after the guest has been reset (bug #5164 and others) +* VMM: fixed host freezes with 64-bit guests on 32-bit Linux hosts (bug #10528) +* VRDP: added a workaround for rdesktop clients not properly updating the screen size when minimized +* AHCI: fixed a rare bug which can cause a guest memory corruption after the guest storage controler has been reset +* NAT: another attempt to fix crashes under rare conditions (Windows hosts only; bug #10513) +* Mac OS X hosts: addressed issues running Leopard / Snow Leopard (bug #10631) +* Linux hosts / Bridged Networking: fixed the problem with device driver unloading on kernels 3.2.18 and newer due to an invalid reference counter (bug #10624) +* Linux hosts / guests: Linux 3.5-rc1 fixes +* Linux Additions: the guest content was sometimes not properly updated (bug #9887) +* Solaris Additions: installer fix for X.org Server 1.11 and 1.12 + +------------------------------------------------------------------- +Fri Jun 1 20:00:15 UTC 2012 - [email protected] + +- use proper version of vboxvideo xorg driver (vboxvideo_drv_112) + for 12.2 release +- adjust udev rules for vboxuser device on guest machine (file virtualbox-60-vboxguest.rules) + +------------------------------------------------------------------- +Thu May 24 08:37:37 UTC 2012 - [email protected] + +- update to virtualbox 4.1.16 (This is a maintenance release) +* VMM: fixed a Guru Meditation VERR_ACCESS_DENIED with certain guests (bugs #7589, #8247) +* VMM: fixed a Guru Meditation VERR_PAGE_TABLE_NOT_PRESENT with Ubuntu 32-bit guests with nested paging enabled on AMD CPUs (bug #10183) +* VMM: preserve segment limits and attributes when switching to unreal mode required for some legacy guests to work properly (VT-x without unrestricted guest execution only; bug #9941) +* VMM: fixed a VM hang after a resume from pause / savestate with SMP guests in rare cases +* 3D Support: several fixes for the Windows WDDM video driver crash +* NAT: fixed a crash on attempt to process ICMP datagram under some circumstances (bug #10527) +* Host-only Networking: lifted the maximal number of interfaces to 128 on Linux and Mac OS X hosts (there is no such limitation for Solaris and Windows hosts) +* EFI: fixed wrong SEC/PEI Core entry point calculation (bug #10531) +* VRDP: fixed a display update problem (bug #10503) +* Main: set the proper VM state if savestate failed for some reason (bug #6189) +* Main: more useful error message if a medium is inaccessible +* VBoxManage: fixed controlvm savestate if the VM is already paused +* Mac OS X hosts: addressed issues running on Mountain Lion Preview 3 (bug #10267) +* Linux hosts: Linux 3.4 compile fixes +* Linux hosts: fixed wrong help path in some rpm-based packages (bug #10418) +* Guest Additions: fixed handling of custom environment variables during VBoxManage guestcontrol execute (bug #10581) +* Windows Additions: fixed guest driver crash of VBoxSF in certain cases (4.1.10 regression, bug #10408) +* Windows Additions: don't load the WDDM driver if 3D support is not available for Windows 8 guests to keep the guest maintainable in that case (still better to miss some features than providing a blank screen) +* Solaris Additions: added support for X.org Server 1.11 and 1.12 + +------------------------------------------------------------------- +Tue May 15 12:16:30 UTC 2012 - [email protected] + +- modify vboxadd-init-script.diff to fix issues with missing + config file on guest [bnc#761923] + +------------------------------------------------------------------- +Sun Apr 29 16:02:54 UTC 2012 - [email protected] + +- use workaround for issue with kmk_sed and gcc4.7 http://svn.netlabs.org/kbuild/ticket/112, + which breaks build, instead of kmk_sed use /usr/bin/sed + +------------------------------------------------------------------- +Sat Apr 28 19:38:57 UTC 2012 - [email protected] + +- update to virtualbox 4.1.14 (This is a maintenance release): + * Network: fixed the problem with packets larger than MTU-4 when PCnet or PRO/1000 was bridged to certain types of adapters on OS X hosts (bug #3783) + * NAT: fixed a segfault under rare circumstances + * 3D Support: fixed Windows WDDM video driver crash for SMP guests (bugs #10200, #10331) + * Windows Guest Additions, VRDP: fixed occasional text corruption (bug #3001) + +------------------------------------------------------------------- +Sat Apr 21 10:25:41 UTC 2012 - [email protected] + +- drop vbox-config.diff and use LocalConfig.kmk to properly define + lib,app and doc paths (bnc#737525) + +------------------------------------------------------------------- +Wed Apr 4 09:21:39 UTC 2012 - [email protected] + +- deprecated vbox-visibility.diff and vbox-gsoap_ssl.diff +- update to virtualbox 4.1.12 (This is a maintenance release): + * VMM: fixed VERR_NOT_SUPPORTED and VERR_RAW_MODE_INVALID_SMP guru meditation due to an invalid reschedule to raw mode (bug #10370) + * VMM: fixed PDMCritSectLeave guru meditation under rare circumstances with SMP guests + * VMM: proper Math Fault handling with certain legacy guests (bug #9042) + * NAT: fixed a socket leak under certain conditions + * Storage: better sanity check against reading beyond end-of-file + * Audio: fixed a crash in the NUL audio backend (bug #10374; 4.1.10 regression) + * HGCM: fixed a crash during savestate under rare circumstances + * VBoxSVC: several locking fixes + * VBoxManage: return the correct error code if controlvm savestate failed (bug #10134) + * Guest Additions: VBoxService should not crash on exit (bug #10326; 4.1.10 regression) + * Windows Additions: set the correct time stamp when a file is closed (bug #6473) + * Windows Additions: better help if the DirectX backups are not properly installed + * Linux Additions: Linux 3.4-rc1 compile fixes + +------------------------------------------------------------------- +Sun Apr 1 05:48:40 UTC 2012 - [email protected] + +- added vbox-gsoap_ssl.diff to fix building websrv with ssl support +- drop deprecated kernel-3.3.patch +- update to virtualbox 4.1.10 (This is a maintenance release): + * GUI: if 3D support on the host is not available for some reason, do not only disable this VM setting but also uncheck the checkbox + * VMM: fixed a potential problem causing to schedule interrupts during SYSEXIT right after STI + * VMM: fixed a potential guest memory corruption issue with page fusion + * VMM: adjusted the module matching algorithm for page fusion a little, generally resulting in slightly more shared pages + * Main: host interfaces no longer have "defaults" for IP address and network mask attributes + * Main: don't depend on a password for certain guest control operations (bug #10030) + * 3D Support: fixed Windows XP hosts support (4.1.8 regression; bugs #10071 and #10088) + * 3D Support: rendering fixes for Linux hosts with NVIDIA graphics + * 3D Support: fixed saved state issues (4.1.8 regression; bug #10126) + * 3D Support: WDDM driver: fixed powershell_ise crashes (bug #10167), make WPF-based apps work with Aero enabled, fixed additional possible WinSAT crashes + * VRDP: fixed remote clipboard compatibility issues with some clients + * Storage: fixed a possible data corruption when compacting VDI or VHD images with snapshots (32-bit hosts only) + * iSCSI: fixed crash when using incorrect credentials when authenticating with a LIO target (bug #10173) + * Serial: don't abort in host mode under rare error conditions (non-Windows hosts only) + * SDK: actually ship current C bindings + * SDK: fixed the Java glue code for JDK 1.7.0 (bug #9848) + * SDK: added Python example + * Metrics: make metrics collection more robust regarding blocked VMs + * Web service: added SSL/TLS support + * VBoxShell: fixed Guest Additions information lookup + * Solaris installer: fixed dependency checking while installing VirtualBox in a zone + * Linux hosts/guests: Linux 3.3-rc1 compile fixes + * Solaris hosts: fixed debug kernel panics while opening module CTF data (bug #9651) + * Mac OS X hosts: fixed Python support on Lion + * Linux Additions: make 3D passthrough work on OL/RHEL 6.2 (bug #10010) + * Linux Additions: fixed missing implementation when copying shared folder data through kernel high memory (bug #9878) + * Linux Additions: make sure all data is written when closing a memory mapped file on a shared folder + * Linux Additions: added support for X.Org Server 1.12 + * Solaris Additions: fixed guest kernel driver to load properly on guest reboot (4.1.8 regression; bug #10113) + * Solaris Additions: fixed missing 64-bit OpenGL library VBoxOGL.so (bug #10151) + * Solaris Additions: fixed VBoxService import and start for Solaris 11 guests. + * Windows Additions: some Windows 8 adaptions + * Windows Additions: several fixes for shared folders (bug #9753) + * Guest control: miscellaneous bugfixes + +------------------------------------------------------------------- +Sun Mar 18 08:18:34 UTC 2012 - [email protected] + +- use pie/fPIE for setuid binaries (vbox-fpie.diff) (bnc#743143) +- clean up virtualbox-60-vboxdrv.rules and use fillup_only for vbox sysconfig file +- added vbox-vboxweb-init-script.diff to use proper pid file and runlevels in vboxweb initscript + +------------------------------------------------------------------- +Wed Mar 14 20:45:06 UTC 2012 - [email protected] + +- enabled websrv feature, this feature is now provided by new subpackage virtualbox-websrv +- added vbox-visibility.diff to fix websrv build (ommit -fvisibility=hidden gcc flag for gsoap related builds) + +------------------------------------------------------------------- +Thu Mar 8 15:16:01 UTC 2012 - [email protected] + +- Drop unnecessary xorg-x11-libs-32bit buildrequires +- Fix build with linux kernel 3.3 + ++++ 2636 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:12.2:Update/.virtualbox.1250.new/virtualbox.changes New: ---- CVE-2013-0420.diff VirtualBox-4.1.22-patched.tar.bz2 vbox-LIBVNCSERVER_IPv6.diff vbox-default-os-type.diff vbox-disable-updates.diff vbox-fpie.diff vbox-no-build-dates.diff vbox-permissions_warning.diff vbox-python-detection.diff vbox-ret-in-nonvoid-fnc.diff vbox-smc-napa.diff vbox-vboxadd-init-script.diff vbox-vboxdrv-init-script.diff vbox-vboxweb-init-script.diff virtualbox-4.1.22-UserManual.pdf virtualbox-4.1.22-rpmlintrc virtualbox-60-vboxdrv.rules virtualbox-60-vboxguest.rules virtualbox-LocalConfig.kmk virtualbox-default.virtualbox virtualbox-guest-kmp-files virtualbox-guest-preamble virtualbox-host-kmp-files virtualbox-host-preamble virtualbox-patch-source.sh virtualbox-sysconfig.vbox virtualbox-vboxes virtualbox-wrapper.sh virtualbox.changes virtualbox.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virtualbox.spec ++++++ ++++ 818 lines (skipped) ++++++ CVE-2013-0420.diff ++++++ Index: VirtualBox-4.1.22/src/VBox/Devices/Graphics/DevVGA.cpp =================================================================== --- VirtualBox-4.1.22.orig/src/VBox/Devices/Graphics/DevVGA.cpp +++ VirtualBox-4.1.22/src/VBox/Devices/Graphics/DevVGA.cpp @@ -1795,7 +1795,7 @@ static int vga_draw_text(VGAState *s, in cx_max_upd = -1; cx_min_upd = width; - for(cy = 0; cy < height; cy = cy + (1 << dscan)) { + for(cy = 0; cy < (height - dscan); cy = cy + (1 << dscan)) { d1 = dest; src = s1; cx_min = width; ++++++ vbox-LIBVNCSERVER_IPv6.diff ++++++ Index: VirtualBox-4.1.22/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp =================================================================== --- VirtualBox-4.1.22/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp +++ VirtualBox-4.1.22/src/VBox/Frontends/VBoxHeadless/FramebufferVNC.cpp @@ -91,9 +91,6 @@ HRESULT VNCFB::init(const char *pszName) if (mVncPort) { vncServer->port = mVncPort; -#ifdef LIBVNCSERVER_IPv6 - vncServer->ipv6port = mVncPort; -#endif } char *pszDesktopName; rc = RTStrAPrintf(&pszDesktopName, "%s - VirtualBox", pszName); ++++++ vbox-default-os-type.diff ++++++ --- src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp.orig 2010-11-10 21:27:23.000000000 +0100 +++ src/VBox/Frontends/VirtualBox/src/widgets/VBoxOSTypeSelectorWidget.cpp 2010-11-10 21:27:53.000000000 +0100 @@ -199,10 +199,10 @@ if (xpIndex != -1) mCbType->setCurrentIndex (xpIndex); } - /* Or select Ubuntu item for Linux family as default */ + /* Or select openSUSE item for Linux family as default */ else if (familyId == "Linux") { - int ubIndex = mCbType->findData ("Ubuntu", RoleTypeID); + int ubIndex = mCbType->findData ("OpenSUSE", RoleTypeID); if (ubIndex != -1) mCbType->setCurrentIndex (ubIndex); } ++++++ vbox-disable-updates.diff ++++++ --- src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp +++ src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp @@ -63,7 +63,7 @@ void UIGlobalSettingsUpdate::loadToCache void UIGlobalSettingsUpdate::getFromCache() { /* Apply internal variables data to QWidget(s): */ - m_pEnableUpdateCheckbox->setChecked(m_cache.m_fCheckEnabled); + m_pEnableUpdateCheckbox->setChecked(false); if (m_pEnableUpdateCheckbox->isChecked()) { m_pUpdatePeriodCombo->setCurrentIndex(m_cache.m_periodIndex); --- src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h +++ src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h @@ -34,7 +34,6 @@ public: { GLSettingsPage_General = 0, GLSettingsPage_Input, - GLSettingsPage_Update, GLSettingsPage_Language, GLSettingsPage_USB, GLSettingsPage_Network, --- src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp +++ src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp @@ -340,15 +340,6 @@ UISettingsDialogGlobal::UISettingsDialog iPageIndex, "#input", pSettingsPage); break; } - /* Update page: */ - case GLSettingsPage_Update: - { - pSettingsPage = new UIGlobalSettingsUpdate; - addItem(":/refresh_32px.png", ":/refresh_disabled_32px.png", - ":/refresh_16px.png", ":/refresh_disabled_16px.png", - iPageIndex, "#update", pSettingsPage); - break; - } /* Language page: */ case GLSettingsPage_Language: { @@ -481,9 +472,6 @@ void UISettingsDialogGlobal::retranslate /* Input page: */ m_pSelector->setItemText(GLSettingsPage_Input, tr("Input")); - /* Update page: */ - m_pSelector->setItemText(GLSettingsPage_Update, tr("Update")); - /* Language page: */ m_pSelector->setItemText(GLSettingsPage_Language, tr("Language")); ++++++ vbox-fpie.diff ++++++ Index: VirtualBox-4.1.8_OSE/Config.kmk =================================================================== --- VirtualBox-4.1.8_OSE.orig/Config.kmk +++ VirtualBox-4.1.8_OSE/Config.kmk @@ -3368,10 +3368,13 @@ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.darwi ifeq ($(KBUILD_TARGET),linux) # not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp # TEMPLATE_VBOXR3HARDENEDEXE_LIBS += cap + TEMPLATE_VBOXR3HARDENEDEXE_CXXFLAGS.linux = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.linux) -fPIE + TEMPLATE_VBOXR3HARDENEDEXE_CFLAGS.linux = $(TEMPLATE_VBOXR3EXE_CFLAGS.linux) -fPIE + TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(TEMPLATE_VBOXR3EXE_LDFLAGS.linux) -pie endif ifn1of ($(KBUILD_TARGET), win os2) - TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) - TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) + TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) -pie + TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) -pie endif # ++++++ vbox-no-build-dates.diff ++++++ Index: src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp =================================================================== --- src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp.orig +++ src/VBox/Frontends/VBoxBFE/VBoxBFE.cpp @@ -388,7 +388,7 @@ extern "C" DECLEXPORT(int) TrustedMain ( #endif int rc = VINF_SUCCESS; - RTPrintf(VBOX_PRODUCT " Simple SDL GUI built %s %s\n", __DATE__, __TIME__); + RTPrintf(VBOX_PRODUCT " Simple SDL GUI\n"); // less than one parameter is not possible if (argc < 2) @@ -1051,10 +1051,9 @@ DECLCALLBACK(int) VMPowerUpThread(RTTHRE char szNowUct[64]; RTTimeSpecToString(RTTimeNow(&TimeSpec), szNowUct, sizeof(szNowUct)); RTLogRelLogger(pLogger, 0, ~0U, - "VBoxBFE %s (%s %s) release log\n" + "VBoxBFE %s release log\n" "Log opened %s\n", - VBOX_VERSION_STRING, __DATE__, __TIME__, - szNowUct); + VBOX_VERSION_STRING, szNowUct); /* register this logger as the release logger */ RTLogRelSetDefaultInstance(pLogger); Index: src/VBox/Main/src-client/ConsoleImpl.cpp =================================================================== --- src/VBox/Main/src-client/ConsoleImpl.cpp.orig +++ src/VBox/Main/src-client/ConsoleImpl.cpp @@ -6146,13 +6146,13 @@ HRESULT Console::consoleInitReleaseLog(c char szTmp[256]; RTTimeSpecToString(RTTimeNow(&timeSpec), szTmp, sizeof(szTmp)); RTLogRelLogger(pReleaseLogger, 0, ~0U, - "VirtualBox %s r%u %s (%s %s) release log\n" + "VirtualBox %s r%u %s release log\n" #ifdef VBOX_BLEEDING_EDGE "EXPERIMENTAL build " VBOX_BLEEDING_EDGE "\n" #endif "Log opened %s\n", VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + szTmp); vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) Index: src/VBox/Frontends/VBoxFB/VBoxFB.cpp =================================================================== --- src/VBox/Frontends/VBoxFB/VBoxFB.cpp.orig +++ src/VBox/Frontends/VBoxFB/VBoxFB.cpp @@ -62,7 +62,7 @@ int main(int argc, char *argv[]) printf("VirtualBox DirectFB GUI built %s %s\n" "(C) 2004-" VBOX_C_YEAR " " VBOX_VENDOR "\n" - "(C) 2004-2005 secunet Security Networks AG\n", __DATE__, __TIME__); + "(C) 2004-2005 secunet Security Networks AG\n"); for (;;) { Index: src/VBox/Runtime/common/string/uniread.cpp =================================================================== --- src/VBox/Runtime/common/string/uniread.cpp.orig +++ src/VBox/Runtime/common/string/uniread.cpp @@ -979,7 +979,7 @@ int PrintHeader(const char *argv0) " *\n" " * IPRT - Unicode Tables.\n" " *\n" - " * Automatically Generated by %s (" __DATE__ " " __TIME__ ")\n" + " * Automatically Generated by %s\n" " */\n" "\n" "/*\n" Index: src/libs/xpcom18a4/nsprpub/lib/libc/src/plvrsion.c =================================================================== --- src/libs/xpcom18a4/nsprpub/lib/libc/src/plvrsion.c.orig +++ src/libs/xpcom18a4/nsprpub/lib/libc/src/plvrsion.c @@ -42,16 +42,13 @@ /**************************IDENTITY AND VERSIONING***********************/ /************************************************************************/ #include "_pl_bld.h" -#if !defined(_BUILD_TIME) -#ifdef HAVE_LONG_LONG -#define _BUILD_TIME 0 -#else + +#undef _BUILD_TIME #define _BUILD_TIME {0, 0} -#endif -#endif -#if !defined(_BUILD_STRING) + +#undef _BUILD_STRING #define _BUILD_STRING "" -#endif + #if !defined(_PRODUCTION) #define _PRODUCTION "" #endif Index: src/libs/xpcom18a4/nsprpub/pr/src/prvrsion.c =================================================================== --- src/libs/xpcom18a4/nsprpub/pr/src/prvrsion.c.orig +++ src/libs/xpcom18a4/nsprpub/pr/src/prvrsion.c @@ -44,16 +44,10 @@ #ifndef XP_MAC #include "_pr_bld.h" #endif -#if !defined(_BUILD_TIME) -#ifdef HAVE_LONG_LONG -#define _BUILD_TIME 0 -#else +#undef _BUILD_TIME #define _BUILD_TIME {0, 0} -#endif -#endif -#if !defined(_BUILD_STRING) +#undef _BUILD_STRING #define _BUILD_STRING "" -#endif #if !defined(_PRODUCTION) #define _PRODUCTION "" #endif Index: src/libs/xpcom18a4/nsprpub/lib/prstreams/plvrsion.c =================================================================== --- src/libs/xpcom18a4/nsprpub/lib/prstreams/plvrsion.c.orig +++ src/libs/xpcom18a4/nsprpub/lib/prstreams/plvrsion.c @@ -42,16 +42,13 @@ /**************************IDENTITY AND VERSIONING***********************/ /************************************************************************/ #include "_pl_bld.h" -#if !defined(_BUILD_TIME) -#ifdef HAVE_LONG_LONG -#define _BUILD_TIME 0 -#else + +#undef _BUILD_TIME #define _BUILD_TIME {0, 0} -#endif -#endif -#if !defined(_BUILD_STRING) + +#undef _BUILD_STRING #define _BUILD_STRING "" -#endif + #if !defined(_PRODUCTION) #define _PRODUCTION "" #endif Index: src/libs/xpcom18a4/nsprpub/lib/ds/plvrsion.c =================================================================== --- src/libs/xpcom18a4/nsprpub/lib/ds/plvrsion.c.orig +++ src/libs/xpcom18a4/nsprpub/lib/ds/plvrsion.c @@ -42,16 +42,13 @@ /**************************IDENTITY AND VERSIONING***********************/ /************************************************************************/ #include "_pl_bld.h" -#if !defined(_BUILD_TIME) -#ifdef HAVE_LONG_LONG -#define _BUILD_TIME 0 -#else + +#undef _BUILD_TIME #define _BUILD_TIME {0, 0} -#endif -#endif -#if !defined(_BUILD_STRING) + +#undef _BUILD_STRING #define _BUILD_STRING "" -#endif + #if !defined(_PRODUCTION) #define _PRODUCTION "" #endif Index: src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp =================================================================== --- src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp.orig +++ src/VBox/Frontends/VBoxBalloonCtrl/VBoxBalloonCtrl.cpp @@ -1110,7 +1110,7 @@ static void logHeaderFooter(PRTLOGGER pL #endif "Log opened %s\n", VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + "openSUSE", "Buildservice", szTmp); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) Index: src/VBox/Main/src-server/Logging.cpp =================================================================== --- src/VBox/Main/src-server/Logging.cpp.orig +++ src/VBox/Main/src-server/Logging.cpp @@ -51,7 +51,7 @@ static void vboxsvcHeaderFooter(PRTLOGGE #endif "Log opened %s\n", VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + "openSUSE", "Buildservice", szTmp); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) Index: src/VBox/Main/webservice/vboxweb.cpp =================================================================== --- src/VBox/Main/webservice/vboxweb.cpp.orig +++ src/VBox/Main/webservice/vboxweb.cpp @@ -739,7 +739,7 @@ static void WebLogHeaderFooter(PRTLOGGER #endif "Log opened %s\n", VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + "openSUSE", "Buildservice", szTmp); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) Index: src/VBox/Additions/common/VBoxService/VBoxService.cpp =================================================================== --- src/VBox/Additions/common/VBoxService/VBoxService.cpp.orig +++ src/VBox/Additions/common/VBoxService/VBoxService.cpp @@ -157,10 +157,10 @@ static void VBoxServiceLogHeaderFooter(P case RTLOGPHASE_BEGIN: { pfnLog(pLoggerRelease, - "VBoxService %s r%s (verbosity: %d) %s (%s %s) release log\n" + "VBoxService %s r%s (verbosity: %d) %s (%s %s) release log\n" "Log opened %s\n", RTBldCfgVersion(), RTBldCfgRevisionStr(), g_cVerbosity, VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + "openSUSE","Buildservice",szTmp); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) Index: src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp =================================================================== --- src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp.orig +++ src/VBox/HostServices/SharedOpenGL/OpenGLTest/OpenGLTestApp.cpp @@ -148,7 +148,7 @@ static int vboxInitLogging(const char *p #endif "Log opened %s\n", VBOX_VERSION_STRING, RTBldCfgRevision(), VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + "openSUSE", "Buildservice", szTmp); vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) ++++++ vbox-permissions_warning.diff ++++++ Index: VirtualBox-4.1.2_OSE/src/apps/Makefile.kmk =================================================================== --- VirtualBox-4.1.2_OSE.orig/src/apps/Makefile.kmk +++ VirtualBox-4.1.2_OSE/src/apps/Makefile.kmk @@ -34,5 +34,7 @@ if1of ($(KBUILD_TARGET),darwin solaris l endif endif +include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk + include $(KBUILD_PATH)/subfooter.kmk Index: VirtualBox-4.1.2_OSE/src/apps/VBoxPermissionMessage/Makefile.kmk =================================================================== --- /dev/null +++ VirtualBox-4.1.2_OSE/src/apps/VBoxPermissionMessage/Makefile.kmk @@ -0,0 +1,31 @@ +# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $ +## @file +# +# VBoxPermissionMessage is wrapper for suse users +# +# +# Copyright (C) 2009 Oracle Corporation +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# + + +SUB_DEPTH = ../../.. +include $(KBUILD_PATH)/subheader.kmk + +PROGRAMS += VBoxPermissionMessage + +VBoxPermissionMessage_TEMPLATE = VBOXQT4GUIEXE +VBoxPermissionMessage_SOURCES = VBoxPermissionMessage.cpp +VBoxPermissionMessage_QT_MODULES = Core Gui + +#INSTALLS += VBoxPermissionMessage + +include $(KBUILD_PATH)/subfooter.kmk + Index: VirtualBox-4.1.2_OSE/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp =================================================================== --- /dev/null +++ VirtualBox-4.1.2_OSE/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp @@ -0,0 +1,12 @@ +#include <QtGui/QApplication> +#include <QtGui/QMessageBox> +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QMessageBox msgBox; + msgBox.setWindowTitle(QObject::tr("Permissions problem !")); + msgBox.setText(QObject::tr("You are not a member of the \"vboxusers\" group. Please add yourself to this group before starting VirtualBox. You could do it using: Yast / Security and Users / User and Group management. Don't forget re-login your user account!")); + int ret = msgBox.exec(); + app.quit(); + return 0; +} \ No newline at end of file ++++++ vbox-python-detection.diff ++++++ --- VirtualBox-4.0.2_OSE.orig/src/libs/xpcom18a4/python/gen_python_deps.py 2011-01-14 20:15:09.000000000 +0000 +++ VirtualBox-4.0.2_OSE/src/libs/xpcom18a4/python/gen_python_deps.py 2011-02-07 05:36:42.427567000 +0000 @@ -68,7 +68,7 @@ else: multi = 1 - if multi == 0: + if not multi: prefixes = ["/usr"] versions = [str(sys.version_info[0])+'.'+str(sys.version_info[1])] @@ -86,22 +86,23 @@ for v in versions: for p in prefixes: c = checkPair(p, v, dllpre, dllsuff, bitness_magic) - if c is not None: + if c: known[v] = c break - keys = known.keys() - # we want default to be the lowest versioned Python - keys.sort() - d = None # We need separator other than newline, to sneak through $(shell) sep = "|" - for k in keys: - if d is None: - d = k - vers = k.replace('.', '') - print_vars(vers, known[k], sep, bitness_magic) - if d is not None: - print_vars("DEF", known[d], sep, bitness_magic) + + if not known: + # this type of problem should be detected in configure + # print_vars("DEF", defaultpaths, sep, bitness_magic) + pass + if multi: + for ver, paths in known.items(): + print_vars(ver.replace('.', ''), paths, sep, bitness_magic) + else: + ver = versions[0] + paths = known[ver] + print_vars(ver.replace('.', ''), paths, sep, bitness_magic) if __name__ == '__main__': main(sys.argv) ++++++ vbox-ret-in-nonvoid-fnc.diff ++++++ Index: VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/nic.c =================================================================== --- VirtualBox-3.1.4_OSE.orig/src/VBox/Devices/PC/Etherboot-src/core/nic.c +++ VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/nic.c @@ -478,6 +478,7 @@ int eth_load(struct dev *dev __unused) } interruptible_sleep(2); /* lay off the server for a while */ longjmp(restart_etherboot, -1); + return 0; } Index: VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/osloader.c =================================================================== --- VirtualBox-3.1.4_OSE.orig/src/VBox/Devices/PC/Etherboot-src/core/osloader.c +++ VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/osloader.c @@ -81,6 +81,7 @@ dead_download - Restart etherboot if pro **************************************************************************/ static sector_t dead_download ( unsigned char *data __unused, unsigned int len __unused, int eof __unused) { longjmp(restart_etherboot, -2); + return 0; } #ifdef IMAGE_MULTIBOOT ++++++ vbox-smc-napa.diff ++++++ Index: VirtualBox-4.0.0_OSE/src/VBox/Devices/PC/vbox.dsl =================================================================== --- VirtualBox-4.0.0_OSE.orig/src/VBox/Devices/PC/vbox.dsl +++ VirtualBox-4.0.0_OSE/src/VBox/Devices/PC/vbox.dsl @@ -778,7 +778,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, Device (SMC) { Name (_HID, EisaId ("APP0001")) - Name (_CID, "smc-napa") + Name (_CID, "smcnapa") Method (_STA, 0, NotSerialized) { ++++++ vbox-vboxadd-init-script.diff ++++++ Index: src/VBox/Additions/linux/installer/vboxadd.sh =================================================================== --- src/VBox/Additions/linux/installer/vboxadd.sh.orig +++ src/VBox/Additions/linux/installer/vboxadd.sh @@ -21,14 +21,18 @@ # ### BEGIN INIT INFO # Provides: vboxadd -# Required-Start: -# Required-Stop: -# Default-Start: 2 3 4 5 +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Description: VirtualBox Linux Additions kernel modules +# Short-Description: VirtualBox Linux Additions kernel modules ### END INIT INFO -. /var/lib/VBoxGuestAdditions/config +if [ -f /var/lib/VBoxGuestAdditions/config ]; then + . /var/lib/VBoxGuestAdditions/config +fi + export BUILD_TYPE export USERNAME @@ -169,8 +173,6 @@ fi dev=/dev/vboxguest userdev=/dev/vboxuser -owner=vboxadd -group=1 test_for_gcc_and_make() { @@ -256,12 +258,6 @@ do_vboxguest_non_udev() fail "Cannot create device $dev with major $maj and minor $min" } fi - chown $owner:$group $dev 2>/dev/null || { - rm -f $dev 2>/dev/null - rm -f $userdev 2>/dev/null - rmmod vboxguest 2>/dev/null - fail "Cannot change owner $owner:$group for device $dev" - } if [ ! -c $userdev ]; then maj=10 @@ -272,12 +268,6 @@ do_vboxguest_non_udev() rmmod vboxguest 2>/dev/null fail "Cannot create device $userdev with major $maj and minor $min" } - chown $owner:$group $userdev 2>/dev/null || { - rm -f $dev 2>/dev/null - rm -f $userdev 2>/dev/null - rmmod vboxguest 2>/dev/null - fail "Cannot change owner $owner:$group for device $userdev" - } fi fi } @@ -308,8 +298,7 @@ start() do_vboxguest_non_udev;; esac - if [ -n "$BUILDVBOXSF" ]; then - running_vboxsf || { + running_vboxsf || { $MODPROBE vboxsf > /dev/null 2>&1 || { if dmesg | grep "vboxConnect failed" > /dev/null 2>&1; then fail_msg @@ -319,8 +308,7 @@ start() fi fail "modprobe vboxsf failed" } - } - fi + } # Mount all shared folders from /etc/fstab. Normally this is done by some # other startup script but this requires the vboxdrv kernel module loaded. @@ -337,10 +325,8 @@ stop() if ! umount -a -t vboxsf 2>/dev/null; then fail "Cannot unmount vboxsf folders" fi - if [ -n "$BUILDVBOXSF" ]; then - if running_vboxsf; then - rmmod vboxsf 2>/dev/null || fail "Cannot unload module vboxsf" - fi + if running_vboxsf; then + rmmod vboxsf 2>/dev/null || fail "Cannot unload module vboxsf" fi if running_vboxguest; then rmmod vboxguest 2>/dev/null || fail "Cannot unload module vboxguest" @@ -500,16 +486,8 @@ extra_setup() # setup_script setup() { - setup_modules - mod_succ="$?" - extra_setup - if [ "$mod_succ" -eq "0" ]; then - if running_vboxguest || running_vboxadd; then - printf "You should restart your guest to make sure the new modules are actually used\n\n" - else - start - fi - fi + begin "Recompiling VirtualBox kernel module, NOT. It has been packaged." + succ_msg } # cleanup_script ++++++ vbox-vboxdrv-init-script.diff ++++++ Index: src/VBox/Installer/linux/vboxdrv.sh.in =================================================================== --- src/VBox/Installer/linux/vboxdrv.sh.in.orig +++ src/VBox/Installer/linux/vboxdrv.sh.in @@ -19,11 +19,12 @@ # ### BEGIN INIT INFO # Provides: vboxdrv -# Required-Start: $syslog -# Required-Stop: -# Default-Start: 2 3 4 5 +# Required-Start: $syslog $remote_fs +# Required-Stop: $syslog $remote_fs +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Short-Description: VirtualBox Linux kernel module +# Description: VirtualBox Linux kernel module ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH @@ -195,13 +196,6 @@ start() fi fi # ensure permissions - if ! chown :%GROUP% $DEVICE 2>/dev/null; then - rmmod vboxpci 2>/dev/null - rmmod vboxnetadp 2>/dev/null - rmmod vboxnetflt 2>/dev/null - rmmod vboxdrv 2>/dev/null - failure "Cannot change group %GROUP% for device $DEVICE" - fi if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why" fi @@ -299,58 +293,8 @@ stop_vms() # setup_script setup() { - stop - begin_msg "Uninstalling old VirtualBox DKMS kernel modules" - $DODKMS uninstall > $LOG - succ_msg - if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then - begin_msg "Removing old VirtualBox pci kernel module" - find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|xargs rm -f 2>/dev/null - succ_msg - fi - if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then - begin_msg "Removing old VirtualBox netadp kernel module" - find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null - succ_msg - fi - if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then - begin_msg "Removing old VirtualBox netflt kernel module" - find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null - succ_msg - fi - if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then - begin_msg "Removing old VirtualBox kernel module" - find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null - succ_msg - fi - begin_msg "Trying to register the VirtualBox kernel modules using DKMS" - if ! $DODKMS install >> $LOG; then - fail_msg "Failed, trying without DKMS" - begin_msg "Recompiling VirtualBox kernel modules" - if ! $BUILDVBOXDRV \ - --save-module-symvers /tmp/vboxdrv-Module.symvers \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - if ! $BUILDVBOXNETFLT \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - if ! $BUILDVBOXNETADP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - if ! $BUILDVBOXPCI \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - fi - rm -f /etc/vbox/module_not_compiled + begin_msg "Recompiling VirtualBox vboxadd kernel module, NOT. It has been packaged." succ_msg - start } dmnstatus() ++++++ vbox-vboxweb-init-script.diff ++++++ Index: VirtualBox-4.1.8_OSE/src/VBox/Installer/linux/vboxweb-service.sh.in =================================================================== --- VirtualBox-4.1.8_OSE.orig/src/VBox/Installer/linux/vboxweb-service.sh.in +++ VirtualBox-4.1.8_OSE/src/VBox/Installer/linux/vboxweb-service.sh.in @@ -20,7 +20,7 @@ # Provides: vboxweb-service # Required-Start: vboxdrv # Required-Stop: vboxdrv -# Default-Start: 2 3 4 5 +# Default-Start: 2 3 5 # Default-Stop: 0 1 6 # Description: VirtualBox web service API ### END INIT INFO @@ -50,7 +50,7 @@ if [ -f /etc/redhat-release ]; then PIDFILE="/var/lock/subsys/vboxweb-service" elif [ -f /etc/SuSE-release ]; then system=suse - PIDFILE="/var/lock/subsys/vboxweb-service" + PIDFILE="/var/run/vboxweb-service" elif [ -f /etc/debian_version ]; then system=debian PIDFILE="/var/run/vboxweb-service" ++++++ virtualbox-4.1.22-rpmlintrc ++++++ addFilter("incoherent-init-script-name vboxdrv") addFilter("incoherent-init-script-name vboxadd") addFilter("xorg-x11-driver-virtualbox-ose.* shlib-policy-missing-suffix") ++++++ virtualbox-60-vboxdrv.rules ++++++ KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" #these two lines give access permission to vboxusers to properly work with usb nodes, this could be security risk (bnc#664520) !! # #SUBSYSTEM=="usb_device",ATTR{devnum}=="?*",ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}",RUN+="/usr/bin/setfacl -m g:vboxusers:6 /dev/vboxusb/$attr{busnum}/$attr{devnum}" #SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTR{devnum}=="?*",ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}",RUN+="/usr/bin/setfacl -m g:vboxusers:6 /dev/vboxusb/$attr{busnum}/$attr{devnum}" ++++++ virtualbox-60-vboxguest.rules ++++++ KERNEL=="vboxguest", NAME="vboxguest", OWNER="root", MODE="0660" ENV{ID_INPUT}="1", ENV{ID_INPUT_MOUSE}="1" KERNEL=="vboxuser", NAME="vboxuser", OWNER="root", GROUP="users", MODE="0660" ++++++ virtualbox-default.virtualbox ++++++ # /etc/default/virtualbox # # ------------------------------------------------------------------------------------------------- # In the "SHUTDOWN_USERS" list all users for which a check for runnings VMs should be done during # shutdown of "vboxdrv" resp. the server: # SHUTDOWN_USERS="foo bar" # # Set "SHUTDOWN" to one of "poweroff", "acpibutton" or "savestate" depending on which of the # shutdown methods for running VMs are wanted: # SHUTDOWN="poweroff" # SHUTDOWN="acpibutton" # SHUTDOWN="savestate" # ------------------------------------------------------------------------------------------------- # #SHUTDOWN_USERS="foo bar" #SHUTDOWN="savestate" ++++++ virtualbox-guest-kmp-files ++++++ %defattr (-,root,root) %dir /lib/modules/%2-%1/ %dir /lib/modules/%2-%1/updates /lib/modules/%2-%1/updates/vboxsf.ko /lib/modules/%2-%1/updates/vboxvideo.ko /lib/modules/%2-%1/updates/vboxguest.ko ++++++ virtualbox-guest-preamble ++++++ Requires: kernel-%1 Provides: virtualbox-guest-kmp = %version #rename from ose version: Provides: virtualbox-ose-guest-kmp-%1 = %version Obsoletes: virtualbox-ose-guest-kmp-%1 < %version #host (vboxdrv) and guest (vboxguest) kmp exports the same symbol (RTMemFreeEx) #which break loading modules using modprobe (bnc#661740) Conflicts: virtualbox-ose-host-kmp ++++++ virtualbox-host-kmp-files ++++++ %defattr (-,root,root) %dir /lib/modules/%2-%1/ %dir /lib/modules/%2-%1/updates /lib/modules/%2-%1/updates/vboxdrv.ko /lib/modules/%2-%1/updates/vboxnetadp.ko /lib/modules/%2-%1/updates/vboxnetflt.ko /lib/modules/%2-%1/updates/vboxpci.ko ++++++ virtualbox-host-preamble ++++++ Requires: kernel-%1 Provides: virtualbox-host-kmp = %version #rename from ose version: Provides: virtualbox-ose-host-kmp-%1 = %version Obsoletes: virtualbox-ose-host-kmp-%1 < %version #host (vboxdrv) and guest (vboxguest) kmp exports the same symbol (RTMemFreeEx) #which break loading modules using modprobe (bnc#661740) Conflicts: virtualbox-ose-guest-kmp ++++++ virtualbox-patch-source.sh ++++++ #!/bin/bash REMOVE_DIRS=( src/VBox/Additions/WINNT src/VBox/Additions/os2 kBuild/bin kBuild/msgstyles kBuild/tools kBuild/sdks tools/darwin.x86 tools/darwin.amd64 tools/freebsd.x86 tools/os2.x86 tools/solaris.x86 tools/solaris.amd64 tools/win.amd64 tools/win.x86 tools/linux.x86 tools/linux.amd64 ) set -o errexit CMDNAME=${0##*/} SOURCEDIR=${0%$CMDNAME} BASENAME=${1%.tar.bz2} trap "rm -rf \"$BASENAME-patched.tar\" \"$BASENAME-patched.tar.bz2\"" ERR for (( N=0 ; N<${#REMOVE_DIRS[@]} ; N++ )) ; do #REMOVE_DIRS[N]="$BASENAME/${REMOVE_DIRS[N]}" # use a wildcard because VirtualBox-1.6.0-OSE != VirtualBox-1.6.0_OSE REMOVE_DIRS[N]="*/${REMOVE_DIRS[N]}" done cd "$SOURCEDIR" >/dev/null if ! test -f "$BASENAME.tar.bz2" ; then exit 0 fi if test -f "$BASENAME-patched.tar.bz2" ; then if test "$BASENAME.tar.bz2" -ot "$BASENAME-patched.tar.bz2" ; then if test $CMDNAME -ot "$BASENAME-patched.tar.bz2" ; then exit 0 fi fi fi cp -a "$BASENAME.tar.bz2" "$BASENAME-patched.tar.bz2" bunzip2 "$BASENAME-patched.tar.bz2" tar --wildcards --delete -f "$BASENAME-patched.tar" "${REMOVE_DIRS[@]}" bzip2 "$BASENAME-patched.tar" ++++++ virtualbox-sysconfig.vbox ++++++ ## Path: System/Virtual Machines/VBox ## Description: Virtual box machines to autostart during boot ## Type: string ## Default: "" # # Configuration file for the script /etc/init.d/vboxes # # The variable VBOX_AUTOSTART holds the virtual machines to be started during # boot time. One entry must contain the virtual machine name and the # virtual machine owner. They are separated with a ";". Multiple entries # (virtual machines) are separated with a space. # # Examples: # MachineName1;user1 # # One virtual machine: # openSUSE_Factory;vbox # # Multiple virtual machines: # openSUSE_Factory;vbox openSUSE_stable;suse # VBOX_AUTOSTART="" ++++++ virtualbox-vboxes ++++++ #!/bin/sh # # chkconfig: - 91 35 # description: Starts and stops vbox autostart VMs. # Based on # http://www.amiryan.org/2009/11/04/virtualbox-init-d-service-autostart-scriptu # # By Richard Bos <rbos at opensuse dot org> - May 2010 ### BEGIN INIT INFO # Provides: vboxes # Required-Start: $network vboxdrv # Required-Stop: $network $named # Default-Start: 3 5 # Default-Stop: 0 1 2 3 4 5 6 # Short-Description: Autostart Virtual Box VMs # Description: Autostart Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file ### END INIT INFO # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v be verbose in local rc status and clear it afterwards # rc_status -v -r ditto and clear both the local and overall rc status # rc_status -s display "skipped" and exit with status 3 # rc_status -u display "unused" and exit with status 3 # rc_failed set local and overall rc status to failed # rc_failed <num> set local and overall rc status to <num> # rc_reset clear both the local and overall rc status # rc_exit exit appropriate to overall rc status # rc_active checks whether a service is activated by symlinks . /etc/rc.status # Reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - generic or unspecified error # 2 - invalid or excess argument(s) # 3 - unimplemented feature (e.g. "reload") # 4 - user had insufficient privileges # 5 - program is not installed # 6 - program is not configured # 7 - program is not running # 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signaling is not supported) are # considered a success. VBOXMGR_BIN=/usr/lib/virtualbox/VBoxManage if [[ ! -x $VBOXMGR_BIN ]]; then echo "$VBOXMGR_BIN does not exist" if [ "$1" = "stop" ]; then exit 0; else exit 6 fi; fi VBOXHeadLess_BIN=/usr/lib/virtualbox/VBoxHeadless if [[ ! -x $VBOXHeadLess_BIN ]]; then echo "$VBOXHeadLess_BIN does not exist" if [ "$1" = "start" ]; then exit 6; else exit 0 fi; fi PRG=$(basename $0) SERVICE="Virtualbox machines" [ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox start() { N=1 for VBOX in $VBOX_AUTOSTART; do if grep -q \; <<< "$VBOX"; then VBOX_NAME[$N]=$(cut -d\; -f1 <<< "$VBOX") VBOX_USER[$N]=$(cut -d\; -f2 <<< "$VBOX") else VBOX_NAME[$N]="$VBOX" VBOX_USER[$N]="" fi N=$(($N+1)) done VBOXES=${#VBOX_NAME[*]} if [ $VBOXES -eq 0 ]; then # The virtual machines have to be configured in /etc/sysconfig/vbox echo -n "Starting $SERVICE: no virtual machines configured" rc_status -u else N=1 echo -n "Starting $SERVICE: " while [[ $N -le $VBOXES ]]; do if [[ $N -lt $VBOXES ]]; then echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), " else echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})" fi N=$(($N+1)) done N=1 while [[ $N -le $VBOXES ]]; do if [[ -n "${VBOX_USER[$N]}" ]]; then if grep --quiet --word-regexp ${VBOX_USER[$N]} /etc/passwd; then # The tag "Name:" occurs in multiple sections. Require at least 7 blanks # with an additional flexible amount of spaces. At the moment of writing # 13 spaces are needed. VBOX_RUNNING=$(su ${VBOX_USER[$N]} -c "VBoxManage list --long runningvms" | sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}") if [[ -z "$VBOX_RUNNING" ]]; then VBOX_PRESENT=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN list --long vms" | sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}") if [[ -n "$VBOX_PRESENT" ]]; then # VBoxManage startvm does not result in a VM with working networking # su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q startvm "${VBOX_NAME[$N]}" -type headless" > /tmp/$PRG.$$ 2>&1 # Start virtualbox in Headless mode su ${VBOX_USER[$N]} -c "$VBOXHeadLess_BIN --startvm "${VBOX_NAME[$N]}"" > /tmp/$PRG.$$ 2>&1 & RETVAL=$? if [[ $RETVAL == 0 ]]; then echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})" rc_status -v -r else echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) failed with the following output: " rc_failed; rc_status -v -r # Give the VBOXHeadLess_BIN some time to write the output file sleep 2 cat /tmp/$PRG.$$ fi rm /tmp/$PRG.$$ else echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) does not exist" rc_status -s -r fi else echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) is already running" rc_status -v -r fi else echo -n " Virtual machine: ${VBOX_NAME[$N]}, VBOX_USER: ${VBOX_USER[$N]} does not exist" rc_status -s -r fi else echo -n " Virtual machine: ${VBOX_NAME[$N]}: VBOX_USER not configured" rc_status -s -r fi N=$(($N+1)) done fi } stop() { for VBOX in $VBOX_AUTOSTART; do if grep -q \; <<< "$VBOX"; then VBOX_USER=$(cut -d\; -f2 <<< "$VBOX") # Only add the user to the list, if not present yet if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then VBOX_USERS="$VBOX_USERS $VBOX_USER" fi fi done N=1 for VBOX_USER in $VBOX_USERS; do VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" | sed -n 's/^Name:[[:blank:]]\{7\} *//p') for VBOX in $VBOX_RUNNING; do VBOX_NAME[$N]="$VBOX" VBOX_USER[$N]="$VBOX_USER" N=$(($N+1)) done done VBOXES=${#VBOX_NAME[*]} if [[ $VBOXES -eq 0 ]]; then echo -n "Shutting down $SERVICE: no virtual machines running." rc_status -s -r else echo -n "Shutting down $SERVICE: " N=1 while [[ $N -le $VBOXES ]]; do if [[ $N -lt $VBOXES ]]; then echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), " else echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})" fi N=$(($N+1)) done N=1 while [[ $N -le $VBOXES ]]; do echo -n " ${VBOX_NAME[$N]}: " su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q controlvm "${VBOX_NAME[$N]}" savestate" RETVAL=$? echo -n " Shutting down virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})" if [[ $RETVAL == $? ]]; then rc_status -v -r else rc_failed; rc_status -v -r fi N=$(($N+1)) done fi } status() { for VBOX in $VBOX_AUTOSTART; do if grep -q \; <<< "$VBOX"; then VBOX_USER=$(cut -d\; -f2 <<< "$VBOX") # Only add the user to the list, if not present yet if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then VBOX_USERS="$VBOX_USERS $VBOX_USER" fi fi done N=1 for VBOX_USER in $VBOX_USERS; do # The tag "Name:" occurs in multiple sections. Require at least 7 blanks # with an additional flexible amount of spaces. At the moment of writing # 13 spaces are needed. VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" | sed -n 's/^Name:[[:blank:]]\{7\} *//p') for VBOX in $VBOX_RUNNING; do VBOX_NAME[$N]="$VBOX" VBOX_USER[$N]="$VBOX_USER" N=$(($N+1)) done done VBOXES=${#VBOX_NAME[*]} if [[ $VBOXES -eq 0 ]]; then echo -n "$SERVICE: no virtual machines running." rc_status -s -r else N=1 while [[ $N -le $VBOXES ]]; do # The long sed line changes the output from: # running (since 2010-04-25T14:51:57.373000000) # to: # running (since 2010-04-25 14:51:57) # STATE=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN showvminfo "${VBOX_NAME[$N]}"" | sed -n 's/State: *//p' | sed 's/\([0-9][0-9]\)\.[0-9]\{9\}/\1/;s/\([0-9][0-9]\)T\([0-9][0-9]\)/\1 \2/') printf " %-56s %s" "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}):" "$STATE" rc_status -v N=$(($N+1)) done fi } case "$1" in start) start ;; stop) stop ;; restart|force-reload) stop start ;; status) status ;; *) echo "Usage: $PRG {start|stop|restart|force-reload|status}" >&2 exit 3 ;; esac ++++++ virtualbox-wrapper.sh ++++++ #!/bin/bash export QT_NO_KDE_INTEGRATION=1 /usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox $@ -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
