Hello community, here is the log from the commit of package virtualbox.5948 for openSUSE:13.1:Update checked in at 2016-12-06 09:24:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.1:Update/virtualbox.5948 (Old) and /work/SRC/openSUSE:13.1:Update/.virtualbox.5948.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox.5948" Changes: -------- New Changes file: --- /dev/null 2016-10-27 01:54:32.792041256 +0200 +++ /work/SRC/openSUSE:13.1:Update/.virtualbox.5948.new/virtualbox.changes 2016-12-06 09:24:47.000000000 +0100 @@ -0,0 +1,3254 @@ +------------------------------------------------------------------- +Thu Nov 12 18:11:24 UTC 2015 - larry.fin...@lwfinger.net + +- Version bump tp 4.2.36 (released 2015-11-11 by Oracle) + + several fixes - Oracle is not more specific + +------------------------------------------------------------------- +Mon Oct 26 05:58:08 UTC 2015 - larry.fin...@lwfinger.net + +- Version bump to 4.2.34 (released 2015-10-20 by Oracle, bsc#951432(CVE-2015-4813 and CVE-2015-4896) + +This is a maintenance release. The following items were fixed and/or added: + + several fixes + Linux hosts: Linux 4.2 fix + Linux hosts: Linux 4.3 compile fixes + Windows hosts: hardening fixes + Linux Additions: Linux 4.2 fixes (bug #14227) + +------------------------------------------------------------------- +Wed Sep 30 16:19:24 UTC 2015 - larry.fin...@lwfinger.net + +- Remove extranious "%fillup_and_insserv -f -y vboxadd-service" in the %post + scriptlet call. Reported by Wolfgang Baur in Comment #13 of boo#936254. + +------------------------------------------------------------------- +Mon Sep 28 15:28:45 UTC 2015 - larry.fin...@lwfinger.net + +- Fix placement of scriptlet call for vboxadd-service. As noted in Comment #10 at + boo#936254, one of the calls was scheduled for the main package rather + than virtualbox-guest-tools. + +------------------------------------------------------------------- +Thu Sep 17 17:00:15 UTC 2015 - larry.fin...@lwfinger.net + +- Add missing creation of the vboxsf group which is necessary for + automount of shared folders to work. + +------------------------------------------------------------------- +Sat Sep 5 19:01:09 UTC 2015 - larry.fin...@lwfinger.net + +- Changes made by Wed May 6 20:35:29 UTC 2015 - tchva...@suse.com + should be in this version as well. +- Create groups properly and also create vboxsf and vboxguest on + guest additions bnc#927708 + +------------------------------------------------------------------- +Thu Sep 3 21:43:16 UTC 2015 - larry.fin...@lwfinger.net + +- Wolfgang Baur <wba...@tmo.at> submitted a number of improvements to the Factory + version of VirtualBox. This commit ports those changes to openSUSE 13.1. +- Install and enable the vboxadd-service init script, to make auto-mounting of shared + folders and time synchronization work +- Install VBoxService to /usr/sbin/ instead of /usr/bin/ so that vboxadd-service can + find it, it cannot be run as user anyway +- Fixes boo#908669 and boo#936254 + +------------------------------------------------------------------- +Sun Aug 9 03:41:44 UTC 2015 - larry.fin...@lwfinger.net + +- Version bump to 4.2.32 bnc#938408 CVE-2015-2594 + * Storage: fixed a crash when taking snapshots (4.2.30 regression) + * ExtPack: don't fail if the TMP directory contains non-latin1 characters (bug #14159) + * Main: implemented dedicated event processing queue + * Linux hosts: fixed a bug which made the netfilter driver ignore certain events (bug #12264) + +------------------------------------------------------------------- +Wed Jun 24 12:17:57 UTC 2015 - tchva...@suse.com + +- Version bump to 4.2.30 bnc#935900 CVE-2015-3456: + * Various small fixes here and there +- Fix the multiinstall on kernel modules to avoid conflicts bnc#925663 +- Drop smap.diff fails to apply to the latest release + +------------------------------------------------------------------- +Wed May 20 13:41:27 UTC 2015 - mplus...@suse.com + +- Fix for boo#931461 + smap.diff +- Provide host-kmp src for use with custom kernels (bnc#925663) + +------------------------------------------------------------------- +Wed Jan 28 10:39:07 UTC 2015 - tchva...@suse.com + +- Version bump to 4.2.28 (bnc#914447): + * CVE-2014-0224 CVE-2015-0377 CVE-2014-6595 CVE-2014-6588 CVE-2014-6589 + * CVE-2014-6590 CVE-2015-0427 CVE-2015-0418 + * For the full changelog please read https://www.virtualbox.org/wiki/Changelog-4.2 + * VMM: fixed a potential misbehavior after restoring the A20 state from a saved + state + * VRDP: fixed a rare crash when using remote audio input + * Floppy: fixed read errors and guest memory corruption when running under + control of QEMM + * Storage: fixed data corruption when resizing VHD images under certain + circumstances + * NAT: fixed handling of the RFC 1533 DHCP PAD option + * X11 hosts: Made the extra key on Brazilian Thinkpads work (bug #8745) + * X11 hosts: fixed a problem of input focus cycles and immediately released key + presses in full screen mode (bug #13238) + * Linux guests: fix a crash in gnome-session (bug #13335) + * Linux Additions: fixed a potential use-after-free when unloading the VBoxGuest + module + * Linux Additions: Linux 3.19 fixes (#13741) + * X11 Additions: support X.Org Server 1.15 (bug #12623) + * X11 guests: Add support for X.Org Server 1.16 (bug #13207) + * X11 guests: fixed a wrong parameter in the video driver which caused problems + with full-screen X11 clients (bug #2748) + * X11 guests: fix a bug handling video driver display properties which prevented + GNOME Shell on Fedora 21 from starting +- Refreshed patches: + * vbox-fpie.diff + * vbox-no-build-dates.diff +- Obsoleted patches: + * vbox-shared-folder.diff + +------------------------------------------------------------------- +Thu Oct 24 23:34:41 UTC 2013 - mgo...@suse.com + +- added vbox-shared-folder.diff to fix shared folders (bnc#841673). + +------------------------------------------------------------------- +Wed Sep 25 11:35:04 UTC 2013 - wba...@tmo.at + +- install udev rules and VBoxCreateUSBNode.sh to the correct + directories (bnc#799741) + +------------------------------------------------------------------- +Sun Sep 15 06:14:34 UTC 2013 - mse...@gmail.com + +- deprecated vbox-linux-3.11.diff +- updated to virtualbox 4.2.18 + * VMM: properly handle NMIs on Linux hosts with X2APIC enabled + * VMM: fixed potential crashes with 64-bit guests on 32-bit hosts (bug #11979) + * GUI / seamless: properly handle mouse wheel scroll events + * GUI, VBoxManage: when unregistering a VM, also unregister the hard disk images which are used exclusively (bug #10311) + * GUI: prevent crashes under certain conditions on X11 hosts + * 3D: multiscreen fixes (incorrect mouse position, flickers) + * 3D Support: several fixes for the Windows WDDM video driver (multiscreen, seamless) + * Snapshots: made live snapshots work again (bug #9255) + * Teleportation: made it work again (bug #9455) + * VBoxManage: on snapshot take, --pause is default and --live is for doing live snapshots + * VBoxSVC: don't crash on systems with many VLAN interfaces (Solaris hosts only) + * Network: after the host resumes from suspend, disconnect and reconnect the virtual network cables to force renewing the DHCP leases for the guests. So far only Mac OS X hosts and Windows hosts (bug #10063). + * NAT: on name server changes force a reconnect of the virtual network cable to notify the guest (Mac OS X hosts only) + * Mac OS X installer: keep previously installed Extension Packs on VirtualBox upgrade + * Linux hosts / guests: Linux 3.11 fixes (bug #12001) + * Solaris hosts: fixed a potential kernel panic caused due to unexpected preemption due to logging. + * Windows hosts: fixed an issue with USB2 devices being inaccessible when plugged into USB3 ports. + * Linux Additions: added PCI device identifier to vboxvideo.ko fixing DRI initialization under certain conditions (bug #11957) + * Linux Additions: fixed udev detection in the init script with Linux 3.x kernels + +------------------------------------------------------------------- +Fri Aug 30 06:50:23 UTC 2013 - mse...@gmail.com + +- added vbox-linux-3.11.diff to fix build (upstream patch : https://www.virtualbox.org/changeset/47588/vbox) + +------------------------------------------------------------------- +Wed Jul 24 07:31:24 UTC 2013 - mse...@gmail.com + +- updated to virtualbox 4.2.16 + * OVF/OVA: don't crash on import if no manifest is used (4.2.14 regression; bug #11895) + * GUI: do not restore the current snapshot if we power-off after a Guru Mediation + * Storage: fixed a crash when hotplugging an empty DVD drive to the VM + * Storage: fixed a crash when a guest read from a DVD drive attached to the SATA controller under certain circumstances + * EFI: don't fail with 64-bit guests on 32-bit hosts (bug #11456) + * Autostart: fixed VM startup on OS X + * Windows hosts: native Windows 8 controls + * Windows hosts: restore native style on Vista 32 + * Windows hosts / guests: Windows 8.1 adaptions (bug #11899) + +------------------------------------------------------------------- +Tue Jul 2 14:53:38 UTC 2013 - sndir...@suse.com + +- install 1.14 vboxvideo driver on openSUSE 13.1 (bnc#826326) + +------------------------------------------------------------------- +Sun Jun 30 11:20:39 UTC 2013 - mse...@gmail.com + +- updated to virtualbox 4.2.14 + * VMM: another TLB invalidation fix for non-present pages + * VMM: fixed a performance regression (4.2.8 regression; bug #11674) + * GUI: fixed a crash on shutdown + * GUI: prevent stuck keys under certain conditions on Windows hosts (bugs #2613, #6171) + * VRDP: fixed a rare crash on the guest screen resize + * VRDP: allow to change VRDP parameters (including enabling/disabling the server) if the VM is paused + * USB: fixed passing through devices on Mac OS X host to a VM with 2 or more virtual CPUs (bug #7462) + * USB: fixed hang during isochronous transfer with certain devices (4.1 regression; Windows hosts only; bug #11839) + * USB: properly handle orphaned URBs (bug #11207) + * BIOS: fixed function for returning the PCI interrupt routing table (fixes NetWare 6.x guests) + * BIOS: don't use the ENTER / LEAVE instructions in the BIOS as these don't work in the real mode as set up by certain guests (e.g. Plan 9 and QNX 4) + * DMI: allow to configure DmiChassisType (bug #11832) + * Storage: fixed lost writes if iSCSI is used with snapshots and asynchronous I/O (bug #11479) + * Storage: fixed accessing certain VHDX images created by Windows 8 (bug #11502) + * Storage: fixed hang when creating a snapshot using Parallels disk images (bug #9617) + * 3D: seamless + 3D fixes (bug #11723) + * 3D: version 4.2.12 was not able to read saved states of older versions under certain conditions (bug #11718) ++++ 3057 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.1:Update/.virtualbox.5948.new/virtualbox.changes New: ---- UserManual.pdf VirtualBox-4.2.36-patched.tar.bz2 _constraints vbox-default-os-type.diff vbox-deprec-gsoap-service-proxies.diff vbox-disable-updates.diff vbox-fpie.diff vbox-gsoapssl-deps.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-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-rpmlintrc virtualbox-sysconfig.vbox virtualbox-vboxes virtualbox-wrapper.sh virtualbox.changes virtualbox.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virtualbox.spec ++++++ ++++ 882 lines (skipped) ++++++ vbox-default-os-type.diff ++++++ Index: src/VBox/Frontends/VirtualBox/src/widgets/UINameAndSystemEditor.cpp =================================================================== --- src/VBox/Frontends/VirtualBox/src/widgets/UINameAndSystemEditor.cpp.orig +++ src/VBox/Frontends/VirtualBox/src/widgets/UINameAndSystemEditor.cpp @@ -198,14 +198,14 @@ void UINameAndSystemEditor::sltFamilyCha { int iIndexWinXP = m_pTypeCombo->findData("WindowsXP", TypeID); if (iIndexWinXP != -1) m_pTypeCombo->setCurrentIndex(iIndexWinXP); } - /* Or select Ubuntu item for Linux family as default: */ + /* Or select OpenSUSE item for Linux family as default: */ else if (strFamilyId == "Linux") { - int iIndexUbuntu = m_pTypeCombo->findData("Ubuntu", TypeID); + int iIndexUbuntu = m_pTypeCombo->findData("OpenSUSE", TypeID); if (iIndexUbuntu != -1) m_pTypeCombo->setCurrentIndex(iIndexUbuntu); } /* Else simply select the first one present: */ else m_pTypeCombo->setCurrentIndex(0); ++++++ vbox-deprec-gsoap-service-proxies.diff ++++++ Index: VirtualBox-4.2.10/src/VBox/Main/webservice/Makefile.kmk =================================================================== --- VirtualBox-4.2.10.orig/src/VBox/Main/webservice/Makefile.kmk +++ VirtualBox-4.2.10/src/VBox/Main/webservice/Makefile.kmk @@ -650,7 +650,7 @@ $(VBOXWEB_OUT_DIR)/gsoap_generate_all_ts : $(VBOXWEB_GSOAPH_FROM_GSOAP) $(VBOXWEB_GSOAPH_FROM_XSLT) $(VBOX_NSMAP) $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@) $(call MSG_GENERATE,,lots of files,$(GSOAPH_RELEVANT)) $(RM) -f $@ - $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT) + $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -z1 -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT) $(APPEND) $@ done # copy the generated headers and stuff. This has to be a separate rule if we ++++++ vbox-disable-updates.diff ++++++ Index: src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp =================================================================== --- src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp.orig +++ 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); Index: src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp =================================================================== --- src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp.orig +++ src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp @@ -342,15 +342,6 @@ UISettingsDialogGlobal::UISettingsDialog iPageIndex, "#input", pSettingsPage); break; } - /* Update page: */ - case GlobalSettingsPageType_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 GlobalSettingsPageType_Language: { @@ -489,9 +480,6 @@ void UISettingsDialogGlobal::retranslate /* Input page: */ m_pSelector->setItemText(GlobalSettingsPageType_Input, tr("Input")); - /* Update page: */ - m_pSelector->setItemText(GlobalSettingsPageType_Update, tr("Update")); - /* Language page: */ m_pSelector->setItemText(GlobalSettingsPageType_Language, tr("Language")); ++++++ vbox-fpie.diff ++++++ Index: VirtualBox-4.2.28/Config.kmk =================================================================== --- VirtualBox-4.2.28.orig/Config.kmk +++ VirtualBox-4.2.28/Config.kmk @@ -3751,6 +3751,9 @@ 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 ifeq ($(KBUILD_TARGET),win) # No CRT! TEMPLATE_VBOXR3HARDENEDEXE_SDKS = VBOX_NTDLL $(TEMPLATE_VBOXR3EXE_SDKS) @@ -3769,8 +3772,8 @@ ifeq ($(KBUILD_TARGET),win) # No CRT! TEMPLATE_VBOXR3HARDENEDEXE_LIBS.x86 = $(NOT_SUCH_VARIABLE) TEMPLATE_VBOXR3HARDENEDEXE_LIBS.amd64 = $(NOT_SUCH_VARIABLE) else ifn1of ($(KBUILD_TARGET), 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-gsoapssl-deps.diff ++++++ Index: VirtualBox-4.2.10/src/VBox/Main/webservice/Makefile.kmk =================================================================== --- VirtualBox-4.2.10.orig/src/VBox/Main/webservice/Makefile.kmk +++ VirtualBox-4.2.10/src/VBox/Main/webservice/Makefile.kmk @@ -298,6 +298,7 @@ endif vboxwebsrv_LIBS += \ $(PATH_STAGE_LIB)/vboxsoap$(VBOX_SUFF_LIB) \ $(VBOX_GSOAP_CXX_LIBS) \ + ssl crypto z \ $(LIB_RUNTIME) vboxwebsrv_LIBS.solaris += socket nsl ifdef VBOX_WITH_WEBSERVICES_SSL @@ -443,6 +444,7 @@ $$(VBOX_JWSSRC_JAR): $$(VBOX_JWS_JAR) | webtest_LIBS += \ $(PATH_STAGE_LIB)/vboxsoap$(VBOX_SUFF_LIB) \ $(VBOX_GSOAP_CXX_LIBS) \ + ssl crypto z \ $(LIB_RUNTIME) webtest_LIBS.solaris += nsl ifdef VBOX_WITH_WEBSERVICES_SSL ++++++ 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/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 @@ -1033,7 +1033,7 @@ int PrintHeader(const char *argv0, const " * IPRT - Unicode Tables.\n" " *\n" " * Automatically Generated from %s\n" - " * by %s (" __DATE__ " " __TIME__ ")\n" + " * 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/Additions/common/VBoxService/VBoxService.cpp =================================================================== --- src/VBox/Additions/common/VBoxService/VBoxService.cpp.orig +++ src/VBox/Additions/common/VBoxService/VBoxService.cpp @@ -158,10 +158,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) Index: src/VBox/Devices/PC/BIOS/bios.c =================================================================== --- src/VBox/Devices/PC/BIOS/bios.c.orig +++ src/VBox/Devices/PC/BIOS/bios.c @@ -151,7 +151,7 @@ void set_mode(uint8_t mode); #define BX_PCIBIOS 1 #define BX_APPNAME "VirtualBox" -#define BIOS_BUILD_DATE __DATE__ +#define BIOS_BUILD_DATE "openSUSE Buildservice" //-------------------------------------------------------------------------- // print_bios_banner // displays a the bios version Index: src/VBox/Main/glue/com.cpp =================================================================== --- src/VBox/Main/glue/com.cpp.orig +++ src/VBox/Main/glue/com.cpp @@ -240,7 +240,7 @@ static void vboxHeaderFooter(PRTLOGGER p #endif "Log opened %s\n", g_pszLogEntity, VBOX_VERSION_STRING, RTBldCfgRevision(), - RTBldCfgTargetDotArch(), __DATE__, __TIME__, szTmp); + RTBldCfgTargetDotArch(), "openSUSE", "Buildservice", szTmp); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) ++++++ vbox-permissions_warning.diff ++++++ Index: VirtualBox-4.2.6/src/apps/Makefile.kmk =================================================================== --- VirtualBox-4.2.6.orig/src/apps/Makefile.kmk +++ VirtualBox-4.2.6/src/apps/Makefile.kmk @@ -39,5 +39,7 @@ ifdef VBOX_WITH_DEVMAPPER endif endif +include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk + include $(FILE_KBUILD_SUB_FOOTER) Index: VirtualBox-4.2.6/src/apps/VBoxPermissionMessage/Makefile.kmk =================================================================== --- /dev/null +++ VirtualBox-4.2.6/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.2.6/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp =================================================================== --- /dev/null +++ VirtualBox-4.2.6/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,11 +21,12 @@ # ### 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 PATH=$PATH:/bin:/sbin:/usr/sbin @@ -255,12 +256,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 @@ -271,12 +266,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 } @@ -284,6 +273,13 @@ do_vboxguest_non_udev() start() { begin "Starting the VirtualBox Guest Additions "; + + if [ -x /usr/bin/systemd-detect-virt ]; then + if [ "x$(systemd-detect-virt)" != "xoracle" ]; then + fail "Not running on a virtualbox guest" + fi + fi + uname -r | grep -q -E '^2\.6|^3' 2>/dev/null && ps -A -o comm | grep -q '/*udevd$' 2>/dev/null || no_udev=1 @@ -491,32 +487,8 @@ extra_setup() # setup_script setup() { - if test -r $config; then - . $config - else - fail "Configuration file $config not found" - fi - test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" || - fail "Configuration file $config not complete" - export BUILD_TYPE - export USERNAME - - MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER" - BUILDINTMP="$MODULE_SRC/build_in_tmp" - DODKMS="$MODULE_SRC/do_dkms" - chcon -t bin_t "$BUILDINTMP" > /dev/null 2>&1 - chcon -t bin_t "$DODKMS" > /dev/null 2>&1 - - 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 +# Short-Description: VirtualBox Linux module +# Description: VirtualBox Linux kernel module ### END INIT INFO PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH @@ -193,13 +194,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 @@ -297,70 +291,8 @@ stop_vms() # setup_script setup() { - stop - DKMS=`which dkms 2>/dev/null` - if [ -n "$DKMS" ]; then - begin_msg "Uninstalling old VirtualBox DKMS kernel modules" - $DODKMS uninstall vboxhost vboxdrv vboxnetflt vboxnetadp > $LOG - succ_msg - fi - 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 - if [ -n "$DKMS" ]; then - begin_msg "Trying to register the VirtualBox kernel modules using DKMS" - if ! $DODKMS install vboxhost $VERSION >> $LOG; then - fail_msg "Failed, trying without DKMS" - DKMS="" - fi - fi - if [ -z "$DKMS" ]; then - begin_msg "Recompiling VirtualBox kernel modules" - if ! $BUILDINTMP \ - --save-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxdrv" \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - if ! $BUILDINTMP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxnetflt" \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - if ! $BUILDINTMP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxnetadp" \ - --no-print-directory install >> $LOG 2>&1; then - failure "Look at $LOG to find out what went wrong" - fi - if ! $BUILDINTMP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxpci" \ - --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 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-60-vboxdrv.rules ++++++ KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" #these lines below give access permission to vboxusers to properly work with usb nodes, but enabling them could be security risk (bnc#664520) !! #SUBSYSTEM=="usb_device", ACTION=="add", RUN+="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" #SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" #SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="VBoxCreateUSBNode.sh --remove $major $minor" #SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="VBoxCreateUSBNode.sh --remove $major $minor" ++++++ 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-rpmlintrc ++++++ addFilter("incoherent-init-script-name vboxdrv") addFilter("incoherent-init-script-name vboxadd") addFilter("xorg-x11-driver-virtualbox-ose.* shlib-policy-missing-suffix") ++++++ 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 $@