1
0
forked from pool/virtualbox

Accepting request 1170065 from Virtualization

OBS-URL: https://build.opensuse.org/request/show/1170065
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virtualbox?expand=0&rev=276
This commit is contained in:
Ana Guerrero 2024-04-25 18:47:48 +00:00 committed by Git OBS Bridge
commit ffa9d6acc2
4 changed files with 39 additions and 5 deletions

View File

@ -0,0 +1,22 @@
Index: VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/utils.c
===================================================================
--- VirtualBox-7.0.14.orig/src/VBox/Additions/linux/sharedfolders/utils.c
+++ VirtualBox-7.0.14/src/VBox/Additions/linux/sharedfolders/utils.c
@@ -297,10 +297,14 @@ DECLINLINE(int) sf_file_mode_to_linux(ui
*/
static void vbsf_update_inode_timestamps(struct inode *pInode, PSHFLFSOBJINFO pObjInfo)
{
+/* Oracle has a bad fix for i_atime, etc missing from struct inode. The fix
+ * below produces the correct results, but is not correct either as it references
+ * variables such as __i_atime that are supposed to be hidden. Larry Finger
+ */
#if RTLNX_VER_MIN(6,6,0)
- struct timespec64 ts;
- vbsf_time_to_linux(&ts, &pObjInfo->ChangeTime);
- inode_set_ctime_to_ts(pInode, ts);
+ vbsf_time_to_linux(&pInode->__i_atime, &pObjInfo->AccessTime);
+ vbsf_time_to_linux(&pInode->__i_ctime, &pObjInfo->ChangeTime);
+ vbsf_time_to_linux(&pInode->__i_mtime, &pObjInfo->ModificationTime);
#else
vbsf_time_to_linux(&pInode->i_atime, &pObjInfo->AccessTime);
vbsf_time_to_linux(&pInode->i_ctime, &pObjInfo->ChangeTime);

View File

@ -5,4 +5,5 @@
%{kernel_module_directory}/%2-%1/extra/vboxnetadp.ko %{kernel_module_directory}/%2-%1/extra/vboxnetadp.ko
%{kernel_module_directory}/%2-%1/extra/vboxnetflt.ko %{kernel_module_directory}/%2-%1/extra/vboxnetflt.ko
%{kernel_module_directory}/%2-%1/extra/vboxguest.ko %{kernel_module_directory}/%2-%1/extra/vboxguest.ko
%{kernel_module_directory}/%2-%1/extra/vboxsf.ko
%{kernel_module_directory}/%2-%1/extra/vboxvideo.ko %{kernel_module_directory}/%2-%1/extra/vboxvideo.ko

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Apr 24 14:53:24 UTC 2024 - Larry Finger <Larry.Finger@gmail.com>
- Provide a temporary fix to the problem of wrong timestamp for files
in a shared folder since kernel 6.6. File "fix_shared_folder_time.patch"
is added. This change fixes boo#1220524.
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Apr 19 04:36:59 UTC 2024 - Larry Finger <Larry.Finger@gmail.com> Fri Apr 19 04:36:59 UTC 2024 - Larry Finger <Larry.Finger@gmail.com>

View File

@ -165,6 +165,7 @@ Patch42: kernel-6.8.patch
Patch43: fixes_for_vboxconfig.patch Patch43: fixes_for_vboxconfig.patch
Patch44: kernel-6.9.patch Patch44: kernel-6.9.patch
Patch45: libxml21206.patch Patch45: libxml21206.patch
Patch46: fix_shared_folder_time.patch
# #
# Common BuildRequires for both virtualbox and virtualbox-kmp # Common BuildRequires for both virtualbox and virtualbox-kmp
BuildRequires: %{kernel_module_package_buildreqs} BuildRequires: %{kernel_module_package_buildreqs}
@ -485,6 +486,7 @@ This package contains the kernel-modules that VirtualBox uses to create or run v
%patch -P 43 -p1 %patch -P 43 -p1
%patch -P 44 -p1 %patch -P 44 -p1
%patch -P 45 -p1 %patch -P 45 -p1
%patch -P 46 -p1
### Documents for virtualbox main package ### ### Documents for virtualbox main package ###
%if %{main_package} %if %{main_package}
@ -551,6 +553,7 @@ EOF
cat >> vbox-guest-tools.conf << EOF cat >> vbox-guest-tools.conf << EOF
g vboxguest - - - - g vboxguest - - - -
g vboxsf - - - -
%if 0%{?suse_version} <= 1500 %if 0%{?suse_version} <= 1500
g vboxvideo - - - - g vboxvideo - - - -
%endif %endif
@ -1104,10 +1107,10 @@ rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
# build kernel modules for guest and host (check novel-kmp package as example) # build kernel modules for guest and host (check novel-kmp package as example)
# host modules : vboxdrv,vboxnetflt,vboxnetadp # host modules : vboxdrv,vboxnetflt,vboxnetadp
# guest modules : vboxguest,vboxvideo # guest modules : vboxguest,vboxsf,vboxvideo
echo "build kernel modules" echo "build kernel modules"
for vbox_module in kmp_host/vbox{drv,netflt,netadp} \ for vbox_module in kmp_host/vbox{drv,netflt,netadp} \
kmp_additions/vbox{guest,video}; do kmp_additions/vbox{guest,sf,video}; do
#get the module name from path #get the module name from path
module_name=$(basename "$vbox_module") module_name=$(basename "$vbox_module")
@ -1133,8 +1136,9 @@ for vbox_module in kmp_host/vbox{drv,netflt,netadp} \
$PWD/modules_build_dir/$flavor/$module_name $PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers" SYMBOLS="$PWD/modules_build_dir/$flavor/vboxdrv/Module.symvers"
fi fi
# copy vboxguest (for guest) module symbols which are used by vboxvideo km's: # copy vboxguest (for guest) module symbols which are used by vboxsf and vboxvideo km's:
if [ "$module_name" = "vboxvideo" ] ; then if [ "$module_name" = "vboxsf" -o \
"$module_name" = "vboxvideo" ] ; then
cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \ cp $PWD/modules_build_dir/$flavor/vboxguest/Module.symvers \
$PWD/modules_build_dir/$flavor/$module_name $PWD/modules_build_dir/$flavor/$module_name
SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers" SYMBOLS="$PWD/modules_build_dir/$flavor/vboxguest/Module.symvers"
@ -1149,7 +1153,7 @@ done
export INSTALL_MOD_PATH=%{buildroot} export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=extra export INSTALL_MOD_DIR=extra
#to install modules we use here similar steps like in build phase, go through all the modules : #to install modules we use here similar steps like in build phase, go through all the modules :
for module_name in vbox{drv,netflt,netadp,guest,video} for module_name in vbox{drv,netflt,netadp,guest,sf,video}
do do
#and through all flavors #and through all flavors
for flavor in %{flavors_to_build}; do for flavor in %{flavors_to_build}; do