VirtualBox

Ticket #19537 (closed defect: fixed)

Opened 2 months ago

Last modified 4 weeks ago

We need dedicated RPM packages for upcoming Fedora 32 release. (fixed with 6.1.10)

Reported by: fbatschu Owned by: fbatschu
Component: installer Version: VirtualBox 6.1.6
Keywords: fedora32 fedora 32 rpm Cc:
Guest type: all Host type: Linux

Description (last modified by fbatschu) (diff)

We need dedicated RPM packages for upcoming Fedora 32 release.

The following had been reported:

i have a issue with
https://download.virtualbox.org/virtualbox/6.1.6/VirtualBox-6.1-6.1.6_137129_fedora31-1.x86_64.rpm
 
The installation of this rpm on Fedora 32 (which will be released
tomorrow) fails with the following message:
 
# dnf install VirtualBox-6.1-6.1.6_137129_fedora31-1.x86_64.rpm
Letzte Prüfung auf abgelaufene Metadaten: vor 2:14:28 am Mo 27 Apr 2020
16:01:09 CEST.
Fehler:
 Problem: conflicting requests
  - nothing provides python(abi) = 3.7 needed by
VirtualBox-6.1-6.1.6_137129_fedora31-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

We need to provide dedicated Fedora 32 RPM packages going forward.

see also #19431 Dependency failure on Fedora 32 - python(abi)

Change History

comment:1 Changed 2 months ago by fbatschu

  • Keywords fedora32 fedora 32 rpm added
  • Owner set to fbatschu
  • Status changed from new to accepted

comment:2 Changed 2 months ago by fbatschu

Step 1, small adjustements we need for rpmbuild:

VBox/Trunk root@lserver trunk # svn diff
Index: src/VBox/Installer/linux/distributions_rpm
===================================================================
--- src/VBox/Installer/linux/distributions_rpm	(revision 137597)
+++ src/VBox/Installer/linux/distributions_rpm	(working copy)
@@ -8,6 +8,7 @@
 sles11.0        = SLES_11_0
 sles10.1        = SLES_10_1
 mdv2011.0       = MANDRIVA_2011_0
+fedora32        = FEDORA_32
 fedora31        = FEDORA_31
 fedora29        = FEDORA_29
 fedora26        = FEDORA_26
Index: src/VBox/Installer/linux/rpm/rules
===================================================================
--- src/VBox/Installer/linux/rpm/rules	(revision 137597)
+++ src/VBox/Installer/linux/rpm/rules	(working copy)
@@ -104,7 +104,7 @@
   $(error Cannot detect package distribution (rpmrel=$(rpmrel)))
  endif
 
- ifeq ($(filter-out el5 el6 el7 el8 fedora18 fedora19 fedora20 fedora21 fedora22 fedora24 fedora25 fedora26 fedora29 fedora31,$(rpmrel)),)
+ ifeq ($(filter-out el5 el6 el7 el8 fedora18 fedora19 fedora20 fedora21 fedora22 fedora24 fedora25 fedora26 fedora29 fedora31 fedora32,$(rpmrel)),)
   rpmspec := rpm_redhat
  endif
  ifeq ($(filter-out openSUSE110 openSUSE111 openSUSE112 openSUSE113 openSUSE114 openSUSE123 openSUSE131 openSUSE132 openSUSE150 openSUSETW,$(rpmrel)),)

Putbacked to trunk in revision r137625

Backported to 6.1 in revision r137627

Backported to 6.0.X in revision r137628

Backported to 5.2.X in revision r137632

Last edited 2 months ago by fbatschu (previous) (diff)

comment:4 Changed 2 months ago by fbatschu

  • Description modified (diff)

comment:5 Changed 2 months ago by fbatschu

the following changesets are requried internally for build purposes on trunk ( r137774 r137761 r137760 r136377 r138328 r138351) and 6.1 ( r137793 r137904 r138060 r138063 r138340 r138377.).

r137760 & r138060 are:
dbgcMachoCpuType: the type and sub-types are int32_t not uint32_t.

Index: trunk/src/VBox/Debugger/DBGCDumpImage.cpp
===================================================================
--- trunk/src/VBox/Debugger/DBGCDumpImage.cpp	(revision 137759)
+++ trunk/src/VBox/Debugger/DBGCDumpImage.cpp	(revision 137760)
@@ -464,16 +464,16 @@
 }
 
 
-static const char *dbgcMachoCpuType(uint32_t uType, uint32_t uSubType)
+static const char *dbgcMachoCpuType(int32_t iType, int32_t iSubType)
 {
-    switch (uType)
+    switch (iType)
     {
         case CPU_TYPE_ANY:          return "CPU_TYPE_ANY";
         case CPU_TYPE_VAX:          return "VAX";
         case CPU_TYPE_MC680x0:      return "MC680x0";
         case CPU_TYPE_X86:          return "X86";
         case CPU_TYPE_X86_64:
-            switch (uSubType)
+            switch (iSubType)
             {
                 case CPU_SUBTYPE_X86_64_ALL:    return "X86_64/ALL64";

r136377 & r138063 are:
VBoxService: Use strncmp rather than strcmp as the ut_user field is only zero terminated if the username has shorter than the size of the field (from the utmp manpage)

Index: trunk/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp
===================================================================
--- trunk/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp	(revision 136376)
+++ trunk/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp	(revision 136377)
@@ -606,7 +606,7 @@
         {
             bool fFound = false;
             for (uint32_t i = 0; i < cUsersInList && !fFound; i++)
-                fFound = strcmp(papszUsers[i], ut_user->ut_user) == 0;
+                fFound = strncmp(papszUsers[i], ut_user->ut_user, sizeof(ut_user->ut_user)) == 0;
 
             if (!fFound)
             {
Last edited 4 weeks ago by fbatschu (previous) (diff)

comment:6 Changed 7 weeks ago by FreddyW

Is there some kind of ETA when we can expect a fedora 32 RPM? I am currently using a test build but would rather use an 'official' released RPM. Thanks in advance.

comment:7 Changed 7 weeks ago by fbatschu

for Fedora32 support we also need to address:

#19583 GUI crashes when using Qt on Xwayland sessions

comment:8 Changed 7 weeks ago by ngrennan

Can you release without fixing the Wayland issue? I am on Fedora 32 and using Xorg, as I have for many Fedora releases. It would work for me as is. The only thing blocking using the 31 rpm, for me, is that it has a dependency on python 3.7 instead of 3.8.

comment:9 Changed 5 weeks ago by fbatschu

with the changesets for Trunk r138351 and for 6.1.X r138377 the shebang line for vboxshell.py will be switched from unspecified python to python3 during the package build for now. That'll allow rpmbuild to create a package on Fedora 32. /usr/bin/pathfix.py is contained within the python3-devel package which is a pre-requisite for a Virtualbox build server.

Index: src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
===================================================================
--- src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec	(revision 138375)
+++ src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec	(working copy)
@@ -220,6 +220,11 @@
 fi
 test -f $RPM_BUILD_ROOT/usr/lib/virtualbox/VBoxSDL && \
   chmod 4511 $RPM_BUILD_ROOT/usr/lib/virtualbox/VBoxSDL
+%if %{?with_python:1}%{!?with_python:0}
+if [ -x /usr/bin/pathfix.py ]; then
+  /usr/bin/pathfix.py -pni "%{__python3} %{py3_shbang_opts}" $RPM_BUILD_ROOT/usr/lib/virtualbox/vboxshell.py
+fi
+%endif

comment:10 Changed 4 weeks ago by robatino

Installed VirtualBox-6.1-6.1.10_138449_fedora32-1.x86_64.rpm on F32. Seems to work fine. Thanks!

comment:11 follow-up: ↓ 12 Changed 4 weeks ago by dude

VirtualBox-6.1-6.1.10_138449_fedora31-1.x86_64.rpm does *not* work on Fedora 32. Same error as 6.1.8:

sudo dnf install VirtualBox-6.1-6.1.10_138449_fedora31-1.x86_64.rpm
Last metadata expiration check: 2:35:35 ago on Sat 06 Jun 2020 11:35:57 AM EDT.
Error: 
 Problem: conflicting requests
  - nothing provides python(abi) = 3.7 needed by VirtualBox-6.1-6.1.10_138449_fedora31-1.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

comment:12 in reply to: ↑ 11 Changed 4 weeks ago by fbatschu

Replying to dude:

VirtualBox-6.1-6.1.10_138449_fedora31-1.x86_64.rpm does *not* work


I have marked your problem for you. Your welcome.

comment:13 Changed 4 weeks ago by fbatschu

  • Status changed from accepted to closed
  • Resolution set to fixed
  • Summary changed from We need dedicated RPM packages for upcoming Fedora 32 release. to We need dedicated RPM packages for upcoming Fedora 32 release. (fixed with 6.1.10)
Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use