Hello community, here is the log from the commit of package virtualbox.5769 for openSUSE:13.2:Update checked in at 2016-10-28 11:56:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:13.2:Update/virtualbox.5769 (Old) and /work/SRC/openSUSE:13.2:Update/.virtualbox.5769.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "virtualbox.5769" Changes: -------- New Changes file: --- /dev/null 2016-10-27 01:54:32.792041256 +0200 +++ /work/SRC/openSUSE:13.2:Update/.virtualbox.5769.new/virtualbox.changes 2016-10-28 11:57:01.000000000 +0200 @@ -0,0 +1,4366 @@ +------------------------------------------------------------------- +Wed Oct 19 17:09:05 UTC 2016 - [email protected] + +- Address CVE-2016-5501,CVE-2016-5538,CVE-2016-5605,CVE-2016-5608,CVE-2016-5610,CVE-2016-5611,CVE-2016-561313. + boo #1005621 + +- Add file "vbox_remove_smp_mflags.patch" to reduce memory needs during build. + +- Version bump to 5.0.28 (released 2016-10-18 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + + NAT: Don't exceed the maximum number of "search" suffixes. Patch from bug #15948. + NAT: fixed parsing of port-forwarding rules with a name which contains a slash (bug #16002) + NAT Network: when the host has only loopback nameserver that cannot be mapped to the guests (e.g. dnsmasq running on 127.0.1.1), make DHCP supply NAT Network DNS proxy as nameserver. + Bridged Network: prevent flooding syslog with packet allocation error messages (bug #15569) + USB: fixed a possible crash when detaching a USB device + Audio: fixes for recording (Mac OS X hosts only) + Audio: now using Audio Queues on Mac OS X hosts + OVF: improve importing of VMs created by VirtualBox 5.1 + VHDX: fixed cloning images with VBoxManage clonehd (bug #14288) + Storage: Fixed broken bandwidth limitation when the limit is very low (bug #14982) + Serial: Fixed high CPU usage with certain USB to serial converters on Linux hosts (bug #7796) + BIOS: fixed 4bpp scanline calculation (bug #15787) + VBoxManage: Don't try to set the medium type if there is no change (bug #13850) + API: fixed initialization of SAS controllers (bug #15972) + Linux hosts: don't use 32-bit legacy capabilities + Linux hosts / guests: fix for kernels with CONFIG_CPUMASK_OFFSTACK set (bug #16020) + Linux Additions: several fixes for X11 guests running non-root X servers + Linux Additions: fix for Linux 4.7 (bug #15769) + Linux Additions: fix for the display kmod driver with Linux 4.8 (bugs #15890 and #15896) + Windows Additions: auto-resizing fixes for Windows 10 guests (bug #15257) + Windows Additions: fixes for arranging the guest screens in multi-screen scenarios + Windows Additions / VGA: if the guest's power management turns a virtual screen off, blank the corresponding VM window rather than hide the VM window + Windows Additions: fixed a generic bug which could lead to freezing shared folders (bug #15662) + +------------------------------------------------------------------- +Mon Oct 17 21:45:14 UTC 2016 - [email protected] + +- Modify virtualbox-guest-preamble and virtualbox-host-preamble to obsolete old versions of the kernel modules. + This change should fix the problem in boo #983629. + +------------------------------------------------------------------- +Tue Sep 6 13:37:37 UTC 2016 - [email protected] + +- Additional changes and comments: + Restrict 32-bit builds to use -j2 switch. This prevents build failure caused by running out of RAM. + This update fixes VUL-0: CVE-2016-3612 (bnc#990369). + This update also fixes CVE-2016-3613 and also addresses CVE-2015-3193, CVE-2015-3194, + CVE-2016-0702, CVE-2016-0797, CVE-2016-0799, CVE-2016-2105, and CVE-2016-2107 (bnc#990370). + Update the host <-> guest KMP conflict dependencies to no longer + refer to the old name (boo#983927). + +------------------------------------------------------------------- +Tue Sep 6 13:32:01 UTC 2016 - [email protected] + +- Version bump to 5.0.26 (released 2016-07-18 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + + VMM: fixed a bug in the task switching code (ticket #15571) + GUI: allow to overwrite an existing file when saving a log file (bug #8034) + GUI: fixed screenshot if the VM is started in separate mode + Audio: improved recording from USB headsets and other sources which might need conversion of captured data + Audio: fixed regression of not having any audio available on Solaris hosts + VGA: fixed an occasional hang when running Windows guests with 3D enabled + Storage: fixed a possible endless reconnect loop for the iSCSI backend if connecting to the target succeeds but further I/O requests cause a disconnect + Storage: fixed a bug when resizing certain VDI images which resulted in using the whole disk on the host (bug #15582) + EFI: fixed access to devices attached to SATA port 2 and higher (bug #15607) + API: fixed video recording with VBoxHeadless (bug #15443) + API: don't crash if there is no graphics controller configured (bug #15628) + VBoxSVC: fixed several memory leaks when handling .dmg images + +Version bump to 5.0.24 (released 2016-06-28 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + + VMM: reverted to the old I/O-APIC code for now to fix certain regressions with 5.0.22 (bug #15529). This means that the networking performance with certain guests will drop to the 5.0.20 level (bug #15295). One workaround is to disable GRO for Linux guests. + Main: when taking a screenshot, don't save garbage for blanked screens + NAT: correctly parse resolv.conf file with multiple separators (5.0.22 regression) + Storage: fixed a possible corruption of stream optimized VMDK images from VMware when opened in read/write mode for the first time + Audio: imlemented dynamic re-attaching of input/output devices on Mac OS X hosts + ACPI: notify the guest when the battery / AC state changes instead of relying on guest polling + Linux hosts: fixed VERR_VMM_SET_JMP_ABORTED_RESUME Guru Meditations on hosts with Linux 4.6 or later (bug #15439) + +Version bump to 5.0.22 (released 2016-06-16 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + + VMM: fixes for certain Intel Atom hosts (bug #14915) + VMM: properly restore the complete FPU state for 32-bit guests on 64-bit hosts on Intel Sandy Bridge and Ivy Bridge CPUs + VMM: new I/O-APIC implementation fixing several bugs and improving the performance under certain conditions (bug #15295 and others) + VMM: fixed a potential Linux guest panic on AMD hosts + VMM: fixed a potential hang with 32-bit EFI guests on Intel CPUs (VT-x without unrestricted guest execution) + GUI: don't allow to start subsequent separate VM instances + GUI: raised upper limit for video capture screen resolution (bug #15432) + GUI: warn if the VM has less than 128MB VRAM configured and 3D enabled + Main: when monitoring DNS configuration changes on Windows hosts avoid false positives from competing DHCP renewals. This should fix NAT link flaps when host has multiple DHCP configured interfaces, in particular when the host uses OpnVPN. + Main: properly display an error message if the VRDE server cannot be enabled at runtime, for example because another service is using the same port + NAT: Initialize guest address guess for wildcard port-forwarding rules with default guest address (bug #15412) + VGA: fix for a problem which made certain legacy guests crash under certain conditions (bug #14811) + OVF: fixed import problems for some appliances using an AHCI controller created by 3rd party applications + SDK: reduced memory usage in the webservice Java bindings + Windows Additions: fixes to retain the guest display layout when resizing or disabling the guest monitors + Linux hosts: EL 6.8 fix (bug #15411) + Linux hosts: Linux 4.7 fix (bug #15459) + Linux Additions: Linux 4.7 fixes (bug #15444) + Linux Additions: fix for certain 32-bit guests (5.0.18 regression; bug #15320) + Linux Additions: fixed mouse pointer offset (5.0.18 regression; bug #15324) + Linux Additions: made old X.Org releases work again with kernels 3.11 and later (5.0.18 regression; bug #15319) + Linux Additions: fixed X.Org crash after hard guest reset (5.0.18 regression; bug #15354) + Linux Additions: don't stop the X11 setup if loading the shared folders module fails (5.0.18 regression) + Linux Additions: don't complain if the Drag and Drop service is not available on the host + Solaris Additions: added support for X.org 1.18 + +------------------------------------------------------------------- +Fri May 13 16:55:31 UTC 2016 - [email protected] + +- Version bump to 5.0.20 (released 2016-04-28 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + + NAT Network: File VBoxNetNAT no longer requires suid + Storage: fixed a regression causing write requests from the BIOS to cause a Guru Meditation with the LsiLogic SCSI controller (5.0.18 regression; bug #15317) + Storage: several emulation fixes in the BusLogic SCSI controller emulation + NAT Network: support TCP in DNS proxy (same problem as in bug #14736 for NAT) + NAT: rework handling of port-forwarding rules (bug #13570) + NAT: rewrite host resolver to handle more query types and make it asynchronous so that a stalled lookup doesn't block all NAT traffic + Snapshots: don't crash when restoring a snapshot which has more network adapters than the current state (ie when the snapshot uses ICH9 and the current state uses PIIX3) + Guest Control: various bugfixes for the copyfrom and copyto commands / API (bug #14336) + VBoxManage: list processor features on list hostinfo (bug #15334) + Linux hosts: fix for Linux 4.5 if CONFIG_NET_CLS_ACT is enabled (bug #15327) + Windows Additions: fixed performance issues with PowerPoint 2010 and the WDDM graphics drivers if Aero is disabled + +------------------------------------------------------------------- +Sun Apr 24 16:07:16 UTC 2016 - [email protected] + +- Apply proper fix for b.o o #964765 that causes guest VMs using NAT Network attachments + to fail to get network access. The basic problem is that file /usr/lib/virtualbox/VBoxNetNAT + needs to have suid privilege, and the spec file was failing to set the appropriate permissions. + +------------------------------------------------------------------- +Fri Apr 22 18:07:55 UTC 2016 - [email protected] + +- Implement VirtualBox version 5.0.18 in openSUSE 13.2. Previous to this point, + oS 13.2 had been using 4.3.X, which was the VB series when 13.2 was released. + This policy has been changed so that a fix for CVE-2016-0678 can be included + in 13.2. Bug report b.o.o #97366 discusses this vulnerability. + + This submission also fixes the bug in VB 5.0.18 that prevents proper operation + for guest VMs configured to use LsiLogic adapter for disks. See ticket: + https://www.virtualbox.org/ticket/15317 for a description of the problem, + and changeset: https://www.virtualbox.org/changeset/60565/vbox for the fix, + which is implemented in file "changeset_60565.diff". + +------------------------------------------------------------------- +Wed Apr 20 05:02:21 UTC 2016 - [email protected] + +- Version bump to 5.0.18 (released 2016-04-18 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + + GUI: position off-screen windows to be fully visible again on relaunch in consistence with default-behavior (bug #15226) + GUI: fixed the View menu / Full-screen Mode behavior on Mac OS X El Capitan + GUI: fixed a test which allowed to encrypt a hard disk with an empty password + GUI: fixed a crash under certain conditions during VM shutdown + GUI: fixed the size of the VM list scrollbar in the VM selector when entering a group + PC speaker passthrough: fixes (Linux hosts only; bug #627) + Drag and drop: several fixes + SATA: fixed hotplug flag handling when EFI is used + Storage: fixed handling of encrypted disk images with SCSI controllers (bug #14812) + Storage: fixed possible crash with Solaris 7 if the BusLogic SCSI controller is used + USB: properly purge non-ASCII characters from USB strings (bugs #8801, #15222) + NAT Network: fixed 100% CPU load in VBoxNetNAT on Mac OS X under certain circumstances (bug #15223) + ACPI: fixed ACPI tables to make the display color management settings available again for older Windows versions (4.3.22 regression) + Guest Control: fixed VBoxManage copyfrom command (bug #14336) + Snapshots: fixed several problems when removing older snapshots (bug #15206) + VBoxManage: fixed --verbose output of the guestcontrol command + Windows hosts: hardening fixes required for recent Windows 10 insider builds (bugs #15245, #15296) + Windows hosts: fixed support of jumbo frames in with bridged networking (5.0.16 regression; bug #15209) + Windows hosts: don't prevent receiving multicast traffic if host-only adapters are installed (bug #8698) + Linux hosts: added support for the new naming scheme of NVME disks when creating raw disks + Solaris hosts / guests: properly sign the kernel modules (bug #12608) + Linux hosts / guests: Linux 4.5 fixes (bug #15251) + Linux hosts / guests: Linux 4.6 fixes (bug #15298) + Linux Additions: added a kernel graphics driver to support graphics when X.Org does not have root rights (bug #14732) + Linux/Solaris Additions: fixed several issues causing Linux/Solatis guests using software rendering when 3D acceleration is available + Windows Additions: fixed a hang with PowerPoint 2010 and the WDDM drivers if Aero is disabled + +------------------------------------------------------------------- +Fri Apr 15 19:17:58 UTC 2016 - [email protected] + +- Fix build error caused by removal of macro page_cache_release() from kernel. + File "vbox-replace-page-cache-release.diff" is used to modify code to use put_page() instead. + +------------------------------------------------------------------- +Mon Apr 4 00:01:12 UTC 2016 - [email protected] ++++ 4169 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:13.2:Update/.virtualbox.5769.new/virtualbox.changes New: ---- UserManual.pdf VirtualBox-5.0.28-patched.tar.bz2 _constraints _service drm-vboxvideo-Add-delayed-update-to-support-fbdev.patch drm-vboxvideo-Initialize-data-needed-to-map-fbdev-memory.patch gcc5-real-support.patch smap.diff 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-smc-napa.diff vbox-usb-warning.diff vbox-vboxadd-init-script.diff vbox-vboxdrv-init-script.diff vbox-vboxweb-init-script.diff vbox_prevent_wrong_SONAME.patch vbox_remove_smp_mflags.patch 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-sed-params.patch virtualbox-snpritnf-buffer-overflow.patch virtualbox-sysconfig.vbox virtualbox-system-x.patch virtualbox-vboxes virtualbox-wrapper.sh virtualbox.changes virtualbox.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ virtualbox.spec ++++++ ++++ 864 lines (skipped) ++++++ _service ++++++ <services> <service name="refresh_patches" mode="disabled"> <param name="changesgenerate">enable</param> </service> </services> ++++++ drm-vboxvideo-Add-delayed-update-to-support-fbdev.patch ++++++ From: Egbert Eich <[email protected]> Date: Mon Apr 25 16:47:41 2016 +0200 Subject: drm/vboxvideo: Add delayed update to support fbdev Patch-mainline: Not yet Git-commit: 0671f61d2a240e26c02d5a4d5cb993e1a446e601 References: boo#977200 Due to the virtrual nature of the emulated hardware, the hardware needs help to know about updates to screen content. The fb layer provides this with 'deferred IO'. This patch adds support for this to the vboxvideo DRM driver. Signed-off-by: Egbert Eich <[email protected]> Signed-off-by: Egbert Eich <[email protected]> --- src/VBox/Additions/linux/drm/vbox_fb.c | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c index 8e0e40d..e8c5a60 100644 --- a/src/VBox/Additions/linux/drm/vbox_fb.c +++ b/src/VBox/Additions/linux/drm/vbox_fb.c @@ -68,6 +68,7 @@ #include <drm/drm_crtc_helper.h> #include "vbox_drv.h" +#define VBOX_DIRTY_DELAY (HZ / 30) /** * Tell the host about dirty rectangles to update. */ @@ -162,6 +163,38 @@ static void vbox_dirty_update(struct vbox_fbdev *fbdev, vbox_bo_unreserve(bo); } +static void vbox_deferred_io(struct fb_info *info, + struct list_head *pagelist) +{ + struct vbox_fbdev *fbdev = info->par; + unsigned long start, end, min, max; + struct page *page; + int y1, y2; + + min = ULONG_MAX; + max = 0; + list_for_each_entry(page, pagelist, lru) { + start = page->index << PAGE_SHIFT; + end = start + PAGE_SIZE - 1; + min = min(min, start); + max = max(max, end); + } + + if (min < max) { + y1 = min / info->fix.line_length; + y2 = (max / info->fix.line_length) + 1; + printk(KERN_INFO "%s: Calling dirty update: 0, %d, %d, %d\n", + __func__, y1, info->var.xres, y2 - y1 - 1); + vbox_dirty_update(fbdev, 0, y1, info->var.xres, y2 - y1 - 1); + } +} + +static struct fb_deferred_io vbox_defio = +{ + .delay = VBOX_DIRTY_DELAY, + .deferred_io = vbox_deferred_io, +}; + static void vbox_fillrect(struct fb_info *info, const struct fb_fillrect *rect) { @@ -324,6 +357,9 @@ static int vboxfb_create(struct drm_fb_helper *helper, info->screen_base = sysram; info->screen_size = size; + info->fbdefio = &vbox_defio; + fb_deferred_io_init(info); + info->pixmap.flags = FB_PIXMAP_SYSTEM; DRM_DEBUG_KMS("allocated %dx%d\n", ++++++ drm-vboxvideo-Initialize-data-needed-to-map-fbdev-memory.patch ++++++ From: Egbert Eich <[email protected]> Date: Mon Apr 25 09:32:04 2016 +0200 Subject: drm/vboxvideo: Initialize data needed to map fbdev memory Patch-mainline: Not yet Git-commit: 4153ec3d267288659638e2397bcae5298e7f5930 References: boo#977200 Due to a missing initialization there was no way to map fbdev memory. Thus for example using the Xserver with the fbdev driver failed. This fix adds initialization for fix.smem_start and fix.smem_len in the fb_info structure, which fixes this problem. Signed-off-by: Egbert Eich <[email protected]> Signed-off-by: Egbert Eich <[email protected]> --- src/VBox/Additions/linux/drm/vbox_drv.h | 1 + src/VBox/Additions/linux/drm/vbox_fb.c | 8 ++++++++ src/VBox/Additions/linux/drm/vbox_mode.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/VBox/Additions/linux/drm/vbox_drv.h b/src/VBox/Additions/linux/drm/vbox_drv.h index fa3eb3c..a9bc156 100644 --- a/src/VBox/Additions/linux/drm/vbox_drv.h +++ b/src/VBox/Additions/linux/drm/vbox_drv.h @@ -227,6 +227,7 @@ int vbox_framebuffer_init(struct drm_device *dev, int vbox_fbdev_init(struct drm_device *dev); void vbox_fbdev_fini(struct drm_device *dev); void vbox_fbdev_set_suspend(struct drm_device *dev, int state); +void vbox_fbdev_set_base(struct vbox_private *vbox, unsigned long gpu_addr); struct vbox_bo { struct ttm_buffer_object bo; diff --git a/src/VBox/Additions/linux/drm/vbox_fb.c b/src/VBox/Additions/linux/drm/vbox_fb.c index a90f11d..8e0e40d 100644 --- a/src/VBox/Additions/linux/drm/vbox_fb.c +++ b/src/VBox/Additions/linux/drm/vbox_fb.c @@ -452,3 +452,11 @@ void vbox_fbdev_set_suspend(struct drm_device *dev, int state) fb_set_suspend(vbox->fbdev->helper.fbdev, state); } + +void vbox_fbdev_set_base(struct vbox_private *vbox, unsigned long gpu_addr) +{ + vbox->fbdev->helper.fbdev->fix.smem_start = + vbox->fbdev->helper.fbdev->apertures->ranges[0].base + + gpu_addr; + vbox->fbdev->helper.fbdev->fix.smem_len = vbox->vram_size - gpu_addr; +} diff --git a/src/VBox/Additions/linux/drm/vbox_mode.c b/src/VBox/Additions/linux/drm/vbox_mode.c index d00ebff..40b6eb0 100644 --- a/src/VBox/Additions/linux/drm/vbox_mode.c +++ b/src/VBox/Additions/linux/drm/vbox_mode.c @@ -224,6 +224,8 @@ static int vbox_crtc_do_set_base(struct drm_crtc *crtc, ret = ttm_bo_kmap(&bo->bo, 0, bo->bo.num_pages, &bo->kmap); if (ret) DRM_ERROR("failed to kmap fbcon\n"); + else + vbox_fbdev_set_base(vbox, gpu_addr); } vbox_bo_unreserve(bo); ++++++ gcc5-real-support.patch ++++++ --- Config.kmk | 2 +- configure | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) --- a/Config.kmk +++ b/Config.kmk @@ -2292,7 +2292,7 @@ else # The reason for this hack is that the windows kmk_ash cannot deal with $((1+1)). # Some versions of gcc (e.g. openSUSE11) return only major.minor on `gcc -dumpversion`. VBOX_GCC_VERSION = $(shell \ - $(1) -dumpversion | $(SED_EXT) 's|\([0-9]\)\.\([0-9]\)\.\{0,1\}\([0-9]\{0,1\}\).*|$$(int-add $$(int-mul 10000, \1), $$(int-mul 100, \2), $$(firstword \3 0))|' ) + $(1) -dumpversion | $(SED_EXT) 's|\([0-9]\)\.\{0,1\}\([0-9]\{0,1\}\)\.\{0,1\}\([0-9]\{0,1\}\).*|$$(int-add $$(int-mul 10000, \1), $$(int-mul 100, $$(firstword \2 0)), $$(firstword \3 0))|' ) endif # Find MinGW cross compilers for EFI on non-windows systems. We need to probe --- a/configure +++ b/configure @@ -409,8 +409,13 @@ check_gcc() log_failure "cannot execute '$CXX -dumpversion'" fail really fi - cc_maj=`echo $cc_ver|cut -d. -f1` - cc_min=`echo $cc_ver|cut -d. -f2` + if echo $cc_ver | grep -q '\.'; then + cc_maj=`echo $cc_ver|cut -d. -f1` + cc_min=`echo $cc_ver|cut -d. -f2` + else + cc_maj=$cc_ver + cc_min=0 + fi if [ "x$cc_ver" != "x$cxx_ver" ]; then log_failure "gcc version $cc_ver does not match g++ version $cxx_ver" fail really ++++++ smap.diff ++++++ Index: VirtualBox-5.0.26/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c =================================================================== --- VirtualBox-5.0.26.orig/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c +++ VirtualBox-5.0.26/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c @@ -50,6 +50,12 @@ # include <iprt/power.h> # define VBOX_WITH_SUSPEND_NOTIFICATION #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 7, 0) +# include <asm/smap.h> +#else +static inline void clac(void) { } +static inline void stac(void) { } +#endif #include <linux/sched.h> #ifdef CONFIG_DEVFS_FS ++++++ vbox-default-os-type.diff ++++++ --- a/src/VBox/Frontends/VirtualBox/src/widgets/UINameAndSystemEditor.cpp 2014-02-25 18:08:58.000000000 +0100 +++ b/src/VBox/Frontends/VirtualBox/src/widgets/UINameAndSystemEditor.cpp 2014-03-03 15:18:07.298245235 +0100 @@ -203,15 +203,15 @@ if (iIndexWin7 != -1) m_pTypeCombo->setCurrentIndex(iIndexWin7); } - /* Or select Ubuntu item for Linux family as default: */ + /* Or select openSUSE item for Linux family as default: */ else if (strFamilyId == "Linux") { - QString strDefaultID = "Ubuntu"; + QString strDefaultID = "openSUSE"; if (ARCH_BITS == 64 && m_fSupportsHWVirtEx && m_fSupportsLongMode) strDefaultID += "_64"; - int iIndexUbuntu = m_pTypeCombo->findData(strDefaultID, TypeID); - if (iIndexUbuntu != -1) - m_pTypeCombo->setCurrentIndex(iIndexUbuntu); + int iIndexopenSUSE = m_pTypeCombo->findData(strDefaultID, TypeID); + if (iIndexopenSUSE != -1) + m_pTypeCombo->setCurrentIndex(iIndexopenSUSE); } /* Else simply select the first one present: */ else m_pTypeCombo->setCurrentIndex(0); ++++++ vbox-deprec-gsoap-service-proxies.diff ++++++ diff -Pdpru VirtualBox-4.3.18.orig/src/VBox/Main/webservice/Makefile.kmk VirtualBox-4.3.18/src/VBox/Main/webservice/Makefile.kmk --- VirtualBox-4.3.18.orig/src/VBox/Main/webservice/Makefile.kmk 2014-10-11 14:07:33.000000000 +0200 +++ VirtualBox-4.3.18/src/VBox/Main/webservice/Makefile.kmk 2014-10-13 17:10:53.689539003 +0200 @@ -683,7 +683,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 was split into a separate rule ++++++ vbox-disable-updates.diff ++++++ diff -urN VirtualBox-5.0.0.old/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp VirtualBox-5.0.0/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp --- VirtualBox-5.0.0.old/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp 2015-07-11 13:17:27.885699492 +0200 +++ VirtualBox-5.0.0/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp 2015-07-11 13:21:56.912197474 +0200 @@ -68,7 +68,7 @@ void UIGlobalSettingsUpdate::getFromCache() { /* Apply internal variables data to QWidget(s): */ - m_pCheckBoxUpdate->setChecked(m_cache.m_fCheckEnabled); + m_pCheckBoxUpdate->setChecked(false); if (m_pCheckBoxUpdate->isChecked()) { m_pComboBoxUpdatePeriod->setCurrentIndex(m_cache.m_periodIndex); diff -urN VirtualBox-5.0.0.old/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp VirtualBox-5.0.0/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp --- VirtualBox-5.0.0.old/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp 2015-07-11 13:17:27.885699492 +0200 +++ VirtualBox-5.0.0/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp 2015-07-11 13:23:13.230338850 +0200 @@ -106,16 +106,6 @@ iPageIndex, "#input", pSettingsPage); break; } -#ifdef VBOX_GUI_WITH_NETWORK_MANAGER - /* Update page: */ - case GlobalSettingsPageType_Update: - { - pSettingsPage = new UIGlobalSettingsUpdate; - addItem(":/refresh_32px.png", ":/refresh_24px.png", ":/refresh_16px.png", - iPageIndex, "#update", pSettingsPage); - break; - } -#endif /* VBOX_GUI_WITH_NETWORK_MANAGER */ /* Language page: */ case GlobalSettingsPageType_Language: { @@ -254,8 +244,6 @@ m_pSelector->setItemText(GlobalSettingsPageType_Input, tr("Input")); #ifdef VBOX_GUI_WITH_NETWORK_MANAGER - /* Update page: */ - m_pSelector->setItemText(GlobalSettingsPageType_Update, tr("Update")); #endif /* VBOX_GUI_WITH_NETWORK_MANAGER */ /* Language page: */ ++++++ vbox-fpie.diff ++++++ Index: VirtualBox-4.3.14/Config.kmk =================================================================== --- VirtualBox-4.3.14.orig/Config.kmk +++ VirtualBox-4.3.14/Config.kmk @@ -3963,6 +3963,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) @@ -3981,8 +3984,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.3.6/src/VBox/Main/webservice/Makefile.kmk =================================================================== --- VirtualBox-4.3.6.orig/src/VBox/Main/webservice/Makefile.kmk +++ VirtualBox-4.3.6/src/VBox/Main/webservice/Makefile.kmk @@ -303,6 +303,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 @@ -480,6 +481,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/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 @@ -1035,7 +1035,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/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 @@ -159,7 +159,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 @@ -292,7 +292,7 @@ static DECLCALLBACK(void) vboxHeaderFoot #endif "Log opened %s\n", g_pszLogEntity, VBOX_VERSION_STRING, RTBldCfgRevision(), - RTBldCfgTargetDotArch(), __DATE__, __TIME__, szTmp); + RTBldCfgTargetDotArch(), "openSUSE", "Buildservice", szTmp); pfnLog(pReleaseLogger, "Build Type: %s\n", KBUILD_TYPE); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); Index: src/VBox/Additions/common/VBoxService/VBoxService.cpp =================================================================== --- src/VBox/Additions/common/VBoxService/VBoxService.cpp.orig +++ src/VBox/Additions/common/VBoxService/VBoxService.cpp @@ -238,7 +238,7 @@ static DECLCALLBACK(void) vgsvcLogHeader "VBoxService %s r%s (verbosity: %u) %s (%s %s) release log\n" "Log opened %s\n", RTBldCfgVersion(), RTBldCfgRevisionStr(), g_cVerbosity, VBOX_BUILD_TARGET, - __DATE__, __TIME__, szTmp); + "openSUSE", "Build Service", szTmp); int vrc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szTmp, sizeof(szTmp)); if (RT_SUCCESS(vrc) || vrc == VERR_BUFFER_OVERFLOW) ++++++ vbox-permissions_warning.diff ++++++ Index: VirtualBox-4.3.6/src/apps/Makefile.kmk =================================================================== --- VirtualBox-4.3.6.orig/src/apps/Makefile.kmk +++ VirtualBox-4.3.6/src/apps/Makefile.kmk @@ -34,5 +34,7 @@ if1of ($(KBUILD_TARGET),darwin solaris l endif endif +include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk + include $(FILE_KBUILD_SUB_FOOTER) Index: VirtualBox-4.3.6/src/apps/VBoxPermissionMessage/Makefile.kmk =================================================================== --- /dev/null +++ VirtualBox-4.3.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.3.6/src/apps/VBoxPermissionMessage/VBoxPermissionMessage.cpp =================================================================== --- /dev/null +++ VirtualBox-4.3.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 ++++++ Index: VirtualBox-5.0.26/src/libs/xpcom18a4/python/gen_python_deps.py =================================================================== --- VirtualBox-5.0.26.orig/src/libs/xpcom18a4/python/gen_python_deps.py +++ VirtualBox-5.0.26/src/libs/xpcom18a4/python/gen_python_deps.py @@ -71,7 +71,7 @@ def main(argv): else: multi = 1 - if multi == 0: + if not multi: prefixes = ["/usr"] versions = [str(sys.version_info[0])+'.'+str(sys.version_info[1])] @@ -92,22 +92,23 @@ def main(argv): 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-smc-napa.diff ++++++ Index: VirtualBox-5.0.26/src/VBox/Devices/PC/vbox.dsl =================================================================== --- VirtualBox-5.0.26.orig/src/VBox/Devices/PC/vbox.dsl +++ VirtualBox-5.0.26/src/VBox/Devices/PC/vbox.dsl @@ -1179,7 +1179,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, Device (SMC) { Name (_HID, EisaId ("APP0001")) - Name (_CID, "smc-napa") + Name (_CID, "smcnapa") Method (_STA, 0, NotSerialized) { ++++++ vbox-usb-warning.diff ++++++ Index: VirtualBox-5.0.26/src/apps/Makefile.kmk =================================================================== --- VirtualBox-5.0.26.orig/src/apps/Makefile.kmk +++ VirtualBox-5.0.26/src/apps/Makefile.kmk @@ -36,5 +36,7 @@ endif include $(PATH_SUB_CURRENT)/VBoxPermissionMessage/Makefile.kmk +include $(PATH_SUB_CURRENT)/VBoxUSB_DevRules/Makefile.kmk + include $(FILE_KBUILD_SUB_FOOTER) Index: VirtualBox-5.0.26/src/apps/VBoxUSB_DevRules/Makefile.kmk =================================================================== --- /dev/null +++ VirtualBox-5.0.26/src/apps/VBoxUSB_DevRules/Makefile.kmk @@ -0,0 +1,29 @@ +# $Id: Makefile.kmk 28800 2010-04-27 08:22:32Z vboxsync $ +## @file +# +# VBoxUSB_DevRules is wrapper for suse users +# +# 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 += VBoxUSB_DevRules + +VBoxUSB_DevRules_TEMPLATE = VBOXQT4GUIEXE +VBoxUSB_DevRules_SOURCES = VBoxUSB_DevRules.cpp +VBoxUSB_DevRules_QT_MODULES = Core Gui + +#INSTALLS += VBoxUSB_DevRules + +include $(KBUILD_PATH)/subfooter.kmk + + Index: VirtualBox-5.0.26/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp =================================================================== --- /dev/null +++ VirtualBox-5.0.26/src/apps/VBoxUSB_DevRules/VBoxUSB_DevRules.cpp @@ -0,0 +1,13 @@ +#include <QtGui/QApplication> +#include <QtGui/QMessageBox> +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QMessageBox msgBox; + msgBox.setWindowTitle(QObject::tr("USB Rules and Permissions !")); + msgBox.setText(QObject::tr("USB passthru opens a security hole. Please read \n\nhttps://bugzilla.novell.com/show_bug.cgi?id=664520\n\nto understand the problem. If you really want/need to use USB passthru, then copy /usr/lib/udev/rules.d/60-vboxdrv.rules to /etc/udev/rules.d/, and modify that file as outlined in the comments.\n\nTo avoid seeing this message every time VirtualBox is started, a dummy file is being created.")); + int ret = msgBox.exec(); + app.quit(); + return 0; +} + ++++++ vbox-vboxadd-init-script.diff ++++++ Index: VirtualBox-5.0.28/src/VBox/Additions/linux/installer/vboxadd.sh =================================================================== --- VirtualBox-5.0.28.orig/src/VBox/Additions/linux/installer/vboxadd.sh +++ VirtualBox-5.0.28/src/VBox/Additions/linux/installer/vboxadd.sh @@ -23,9 +23,12 @@ # Provides: vboxadd # Required-Start: # Required-Stop: -# Default-Start: 2 3 4 5 +# Should-Start: $remote_fs +# Should-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 @@ -154,7 +157,6 @@ fail() dev=/dev/vboxguest userdev=/dev/vboxuser -config=/var/lib/VBoxGuestAdditions/config owner=vboxadd group=1 @@ -232,12 +234,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 @@ -248,12 +244,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 } @@ -261,13 +251,6 @@ do_vboxguest_non_udev() start() { begin "Starting the VirtualBox Guest Additions "; - 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" uname -r | grep -q -E '^2\.6|^3|^4' 2>/dev/null && ps -A -o comm | grep -q '/*udevd$' 2>/dev/null || no_udev=1 @@ -304,7 +287,7 @@ start() } # Put the X.Org driver in place. This is harmless if it is not needed. - /sbin/rcvboxadd-x11 setup +# /sbin/rcvboxadd-x11 setup # Install the guest OpenGL drivers. For now we don't support # multi-architecture installations rm -f /etc/ld.so.conf.d/00vboxvideo.conf @@ -505,13 +488,14 @@ extra_setup() ## @todo 60-vboxadd.rules -> 60-vboxguest.rules ? echo "KERNEL=${udev_fix}\"vboxguest\", NAME=\"vboxguest\", OWNER=\"vboxadd\", MODE=\"0660\"" > /etc/udev/rules.d/60-vboxadd.rules echo "KERNEL=${udev_fix}\"vboxuser\", NAME=\"vboxuser\", OWNER=\"vboxadd\", MODE=\"0666\"" >> /etc/udev/rules.d/60-vboxadd.rules + echo "KERNEL=${udev_fix}\"vboxsf\", NAME=\"vboxsf\", OWNER=\"vboxadd\", MODE=\"0666\"" >> /etc/udev/rules.d/60-vboxadd.rules fi # Put mount.vboxsf in the right place ln -sf "$lib_path/$PACKAGE/mount.vboxsf" /sbin # And an rc file to re-build the kernel modules and re-set-up the X server. ln -sf "$lib_path/$PACKAGE/vboxadd" /sbin/rcvboxadd - ln -sf "$lib_path/$PACKAGE/vboxadd-x11" /sbin/rcvboxadd-x11 +# ln -sf "$lib_path/$PACKAGE/vboxadd-x11" /sbin/rcvboxadd-x11 # SELinux security context for the mount helper. if test -e /etc/selinux/config; then # This is correct. semanage maps this to the real path, and it aborts @@ -527,49 +511,13 @@ 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 - - rm -f $LOG - 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 cleanup() { - if test -r $config; then - . $config - test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" || - fail "Configuration file $config not complete" - DODKMS="$INSTALL_DIR/src/vboxguest-$INSTALL_VER/do_dkms" - elif test -x ./do_dkms; then # Executing as part of the installer... - DODKMS=./do_dkms - else - fail "Configuration file $config not found" - fi - # Delete old versions of VBox modules. cleanup_modules for i in /lib/modules/*; do @@ -582,12 +530,12 @@ cleanup() done # Clean-up X11-related bits - /sbin/rcvboxadd-x11 cleanup +# /sbin/rcvboxadd-x11 cleanup # Remove other files rm /sbin/mount.vboxsf 2>/dev/null rm /sbin/rcvboxadd 2>/dev/null - rm /sbin/rcvboxadd-x11 2>/dev/null +# rm /sbin/rcvboxadd-x11 2>/dev/null rm /etc/udev/rules.d/60-vboxadd.rules 2>/dev/null rm -f /lib/modules/*/initrd/vboxvideo } ++++++ 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 @@ -191,13 +192,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 @@ -295,70 +289,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-5.0.26/src/VBox/Installer/linux/vboxweb-service.sh =================================================================== --- VirtualBox-5.0.26.orig/src/VBox/Installer/linux/vboxweb-service.sh +++ VirtualBox-5.0.26/src/VBox/Installer/linux/vboxweb-service.sh @@ -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" ++++++ vbox_prevent_wrong_SONAME.patch ++++++ Index: VirtualBox-5.0.26/src/VBox/Additions/common/crOpenGL/Makefile.kmk =================================================================== --- VirtualBox-5.0.26.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk +++ VirtualBox-5.0.26/src/VBox/Additions/common/crOpenGL/Makefile.kmk @@ -221,7 +221,7 @@ if1of ($(KBUILD_TARGET), linux solaris f dl endif else - VBoxOGL_SONAME.linux = libGL.so.1 + VBoxOGL_SONAME.linux = VBoxOGL.so.1 VBoxOGL_LDFLAGS.linux += -Wl,-e,LibMain endif endif ++++++ vbox_remove_smp_mflags.patch ++++++ Index: VirtualBox-5.1.8/src/libs/libxml2-2.9.2/libxml.spec.in =================================================================== --- VirtualBox-5.1.8.orig/src/libs/libxml2-2.9.2/libxml.spec.in +++ VirtualBox-5.1.8/src/libs/libxml2-2.9.2/libxml.spec.in @@ -69,7 +69,7 @@ at parse time or later once the document %build %configure -make %{_smp_mflags} +make %install rm -fr %{buildroot} Index: VirtualBox-5.1.8/src/libs/libxml2-2.9.2/libxml2.spec =================================================================== --- VirtualBox-5.1.8.orig/src/libs/libxml2-2.9.2/libxml2.spec +++ VirtualBox-5.1.8/src/libs/libxml2-2.9.2/libxml2.spec @@ -69,7 +69,7 @@ at parse time or later once the document %build %configure -make %{_smp_mflags} +make %install rm -fr %{buildroot} ++++++ virtualbox-60-vboxdrv.rules ++++++ KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660" # #these lines below give access permission to vboxusers to properly work with usb nodes, but enabling them could be security risk (bnc#664520) !! #if you can live with this security problem put these lines below in to the new file /etc/udev/rules.d/60-vboxdrv.rules so they will stay enabled also after package update #SUBSYSTEM=="usb_device", ACTION=="add", RUN+="/usr/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" #SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/udev/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers" #SUBSYSTEM=="usb_device", ACTION=="remove", RUN+="/usr/lib/udev/VBoxCreateUSBNode.sh --remove $major $minor" #SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN+="/usr/lib/udev/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/misc /lib/modules/%2-%1/misc/vboxsf.ko /lib/modules/%2-%1/misc/vboxvideo.ko /lib/modules/%2-%1/misc/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-host-kmp Conflicts: virtualbox-ose-host-kmp # Up to 5.0.17 the kernel modules have been installed to /lib/modules/xxx/updates/ which is preferred over misc (boo#983629) Obsoletes: virtualbox-guest-kmp-%1 < %{version} ++++++ virtualbox-host-kmp-files ++++++ %defattr (-,root,root) %dir /lib/modules/%2-%1/ %dir /lib/modules/%2-%1/misc /lib/modules/%2-%1/misc/vboxdrv.ko /lib/modules/%2-%1/misc/vboxnetadp.ko /lib/modules/%2-%1/misc/vboxnetflt.ko /lib/modules/%2-%1/misc/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-guest-kmp Conflicts: virtualbox-ose-guest-kmp # Up to 5.0.17 the kernel modules have been installed to /lib/modules/xxx/updates/ which is preferred over misc (boo#983629) Obsoletes: virtualbox-host-kmp-%1 <= %{version} ++++++ 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-sed-params.patch ++++++ Index: VirtualBox-5.0.24/src/VBox/Main/Makefile.kmk =================================================================== --- VirtualBox-5.0.24.orig/src/VBox/Main/Makefile.kmk +++ VirtualBox-5.0.24/src/VBox/Main/Makefile.kmk @@ -1223,7 +1223,7 @@ $(VBoxAPIWrap_0_OUTDIR)/VBoxAPI.d.ts \ $(QUIET)$(VBOX_XSLTPROC) --stringparam KBUILD_HOST $(KBUILD_HOST) \ --stringparam generating "dtrace-probes" \ -o "$@" $(VBoxAPIWrap_VBOX_XSLT) $< - $(QUIET)$(SED) -e '' -o "[email protected]" \ + $(QUIET)$(SED) -e '' --output "[email protected]" \ "$(VBOX_PATH_MAIN_SRC)/src-all/VBoxAPI-start.d" \ "$@" \ "$(VBOX_PATH_MAIN_SRC)/src-all/VBoxAPI-end.d" Index: VirtualBox-5.0.24/src/VBox/Devices/Makefile.kmk =================================================================== --- VirtualBox-5.0.24.orig/src/VBox/Devices/Makefile.kmk +++ VirtualBox-5.0.24/src/VBox/Devices/Makefile.kmk @@ -818,8 +818,7 @@ if !defined(VBOX_ONLY_EXTPACKS) $(call MSG_TOOL,iasl,VBoxDD,$<,$@) $(QUIET)$(RM) -f $@ [email protected] [email protected] $(QUIET)$(TOOL_$(VBOX_GCC_TOOL)_CC) -E -P -x c -o [email protected] $< - $(QUIET)$(SED) -e "s/<NL>/\n/g" \ - --output [email protected] [email protected] + $(QUIET)$(SED) -e "s/<NL>/\n/g" [email protected] > [email protected] $(QUIET)$(VBOX_IASLCMD) -tc -vs -p $@ [email protected] $(QUIET)$(MV) -f $@ [email protected] $(QUIET)$(SED) -e "s/AmlCode/AmlCodeSsdtCpuHotPlug/g" \ ++++++ virtualbox-snpritnf-buffer-overflow.patch ++++++ diff -urN VirtualBox-5.0.0.old/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c VirtualBox-5.0.0/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c --- VirtualBox-5.0.0.old/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c 2015-07-14 20:53:12.121479325 +0200 +++ VirtualBox-5.0.0/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_printf.c 2015-07-19 17:11:11.677617929 +0200 @@ -1568,10 +1568,10 @@ width = 0; if (width != 0) - f += snprintf(f, sizeof (format), "%d", ABS(width)); + f += snprintf(f, sizeof (f), "%d", ABS(width)); if (prec > 0) - f += snprintf(f, sizeof (format), ".%d", prec); + f += snprintf(f, sizeof (f), ".%d", prec); (void) strcpy(f, pfd->pfd_fmt); pfd->pfd_rec = rec; diff -urN VirtualBox-5.0.0.old/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c VirtualBox-5.0.0/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c --- VirtualBox-5.0.0.old/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c 2015-07-14 20:53:12.120479323 +0200 +++ VirtualBox-5.0.0/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_subr.c 2015-07-19 17:12:35.554945664 +0200 @@ -866,6 +866,7 @@ x = x + (x >> 32); return (x & 0x7F); #endif + return 0; } /* ++++++ 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-system-x.patch ++++++ Index: VirtualBox-5.0.26/src/VBox/Additions/common/crOpenGL/Makefile.kmk =================================================================== --- VirtualBox-5.0.26.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk +++ VirtualBox-5.0.26/src/VBox/Additions/common/crOpenGL/Makefile.kmk @@ -68,18 +68,12 @@ VBoxOGL_TEMPLATE = VBOXCROGLR3GUES VBoxOGL_INCS = . if1of ($(KBUILD_TARGET), linux solaris freebsd) VBoxOGL_INCS += \ - $(VBOX_PATH_X11_ROOT)/libXdamage-1.1 \ - $(VBOX_PATH_X11_ROOT)/libXcomposite-0.4.0 \ - $(VBOX_PATH_X11_ROOT)/libXext-1.3.1 \ - $(VBOX_PATH_X11_ROOT)/libXfixes-4.0.3 \ - $(VBOX_PATH_X11_ROOT)/damageproto-1.1.0 \ - $(VBOX_PATH_X11_ROOT)/compositeproto-0.4 \ - $(VBOX_PATH_X11_ROOT)/fixesproto-4.0 \ - $(VBOX_PATH_X11_ROOT)/libx11-1.1.5-other \ - $(VBOX_PATH_X11_ROOT)/xextproto-7.1.1 \ - $(VBOX_PATH_X11_ROOT)/xproto-7.0.18 \ + /usr/include/x11 \ + /usr/include/xorg \ + /usr/include/pixman-1 \ $(VBOX_MESA_INCS) \ - $(PATH_ROOT)/src/VBox/Additions/x11/x11include/libdrm-2.4.13 + /usr/include/drm \ + /usr/include/libdrm VBoxOGL_DEFS += VBOX_NO_NATIVEGL endif @@ -214,10 +208,10 @@ VBoxOGL_LIBS.win += \ if1of ($(KBUILD_TARGET), linux solaris freebsd) VBoxOGL_LIBS += \ - $(PATH_STAGE_LIB)/libXcomposite.so \ - $(PATH_STAGE_LIB)/libXdamage.so \ - $(PATH_STAGE_LIB)/libXfixes.so \ - $(PATH_STAGE_LIB)/libXext.so + Xcomposite \ + Xdamage \ + Xfixes \ + Xext ifdef VBoxOGL_FAKEDRI ifeq ($(KBUILD_TARGET), freebsd) VBoxOGL_LIBS += \ Index: VirtualBox-5.0.26/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk =================================================================== --- VirtualBox-5.0.26.orig/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk +++ VirtualBox-5.0.26/src/VBox/Additions/common/VBoxGuestLib/Makefile.kmk @@ -40,8 +40,6 @@ LIBRARIES += \ VBoxGuestR3LibShared ifndef VBOX_ONLY_VALIDATIONKIT if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd) - LIBRARIES += \ - VBoxGuestR3LibXFree86 endif if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) LIBRARIES += \ ++++++ 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 $@
