[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1108425: marked as done (unblock: wine/10.0~repack-6)



Your message dated Sat, 28 Jun 2025 14:32:13 +0200
with message-id <7332a3b3-8071-400d-bee8-e998ff181eee@debian.org>
and subject line Re: Bug#1108425: unblock: wine/10.0~repack-6
has caused the Debian Bug report #1108425,
regarding unblock: wine/10.0~repack-6
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1108425: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1108425
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package wine


[ Reason ]
Bernhard Übelacker identified the fixes required for #1104317 (an RC
bug on 32-bit architectures), and they have been applied in repack-6.

[ Impact ]
As before, since #1104317 is RC, wine is likely not to ship if the
fixed package doesn't migrate. At least this time this is the only RC
issue…

[ Tests ]
No automated tests in the Debian package, but this has been tested
upstream and I've checked that it works locally, as a Bernhard (see
#1104317).

[ Risks ]
The fix involves a small number of lines, and while it’s not simple,
it makes sense to me. wine is a leaf package with no alternative.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

unblock wine/10.0~repack-6

Regards,

Stephen
diff -Nru wine-10.0~repack/debian/changelog wine-10.0~repack/debian/changelog
--- wine-10.0~repack/debian/changelog	2025-06-11 00:03:42.000000000 +0200
+++ wine-10.0~repack/debian/changelog	2025-06-26 09:00:48.000000000 +0200
@@ -1,3 +1,11 @@
+wine (10.0~repack-6) unstable; urgency=medium
+
+  * Apply upstream patches fixing relocation entry point handling in
+    builtin modules; thanks to Bernhard Übelacker for the investigation!
+    Closes: #1104317.
+
+ -- Stephen Kitt <skitt@debian.org>  Thu, 26 Jun 2025 09:00:48 +0200
+
 wine (10.0~repack-5) unstable; urgency=medium
 
   * Build appropriately for vulkan 1.4 (closes: #1104898).
diff -Nru wine-10.0~repack/debian/patches/fixes/ntdll-398da925.patch wine-10.0~repack/debian/patches/fixes/ntdll-398da925.patch
--- wine-10.0~repack/debian/patches/fixes/ntdll-398da925.patch	1970-01-01 01:00:00.000000000 +0100
+++ wine-10.0~repack/debian/patches/fixes/ntdll-398da925.patch	2025-06-26 08:56:25.000000000 +0200
@@ -0,0 +1,19 @@
+commit 398da92511b51d3ee4ce7c77bfe6d738621bfbfa
+Author: Alexandre Julliard <julliard@winehq.org>
+Date:   Mon Mar 10 11:47:05 2025 +0100
+
+    ntdll: Update the main exe entry point when the module is relocated.
+
+diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+index 06a260cfe3f..a22f6209dd1 100644
+--- a/dlls/ntdll/unix/virtual.c
++++ b/dlls/ntdll/unix/virtual.c
+@@ -3526,6 +3526,8 @@ NTSTATUS virtual_map_module( HANDLE mapping, void **module, SIZE_T *size, SECTIO
+         status = virtual_map_image( mapping, module, size, shared_file, limit_low, limit_high, 0,
+                                     machine, image_info, filename, FALSE );
+         virtual_fill_image_information( image_info, info );
++        if (status == STATUS_IMAGE_NOT_AT_BASE)
++            info->TransferAddress = (char *)*module + image_info->entry_point;
+     }
+     if (shared_file) NtClose( shared_file );
+     free( image_info );
diff -Nru wine-10.0~repack/debian/patches/fixes/ntdll-5c45391e.patch wine-10.0~repack/debian/patches/fixes/ntdll-5c45391e.patch
--- wine-10.0~repack/debian/patches/fixes/ntdll-5c45391e.patch	1970-01-01 01:00:00.000000000 +0100
+++ wine-10.0~repack/debian/patches/fixes/ntdll-5c45391e.patch	2025-06-26 08:56:10.000000000 +0200
@@ -0,0 +1,36 @@
+commit 5c45391e9f79854915c50a15054f2de4888596a2
+Author: Yuxuan Shui <yshui@codeweavers.com>
+Date:   Sat May 3 21:57:23 2025 +0100
+
+    ntdll: Also relocate entry point for builtin modules.
+    
+    Discovered while I was working on ASan support. ASan shadow memory
+    might be placed where the main image is normally loaded, forcing it to
+    relocate.
+
+diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
+index 202894750a0..c797c89952f 100644
+--- a/dlls/ntdll/unix/virtual.c
++++ b/dlls/ntdll/unix/virtual.c
+@@ -3424,10 +3424,11 @@ static NTSTATUS virtual_map_image( HANDLE mapping, void **addr_ptr, SIZE_T *size
+     status = map_image_into_view( view, filename, unix_fd, image_info, machine, shared_fd, needs_close );
+     if (status == STATUS_SUCCESS)
+     {
++        image_info->base = wine_server_client_ptr( view->base );
+         SERVER_START_REQ( map_image_view )
+         {
+             req->mapping = wine_server_obj_handle( mapping );
+-            req->base    = wine_server_client_ptr( view->base );
++            req->base    = image_info->base;
+             req->size    = size;
+             req->entry   = image_info->entry_point;
+             req->machine = image_info->machine;
+@@ -3835,8 +3836,6 @@ NTSTATUS virtual_map_module( HANDLE mapping, void **module, SIZE_T *size, SECTIO
+         status = virtual_map_image( mapping, module, size, shared_file, limit_low, limit_high, 0,
+                                     machine, image_info, filename, FALSE );
+         virtual_fill_image_information( image_info, info );
+-        if (status == STATUS_IMAGE_NOT_AT_BASE)
+-            info->TransferAddress = (char *)*module + image_info->entry_point;
+     }
+     if (shared_file) NtClose( shared_file );
+     free( image_info );
diff -Nru wine-10.0~repack/debian/patches/series wine-10.0~repack/debian/patches/series
--- wine-10.0~repack/debian/patches/series	2025-06-10 23:59:51.000000000 +0200
+++ wine-10.0~repack/debian/patches/series	2025-06-26 08:57:26.000000000 +0200
@@ -27,6 +27,8 @@
 fixes/virtual-protect.patch
 fixes/printer-resolution.patch
 fixes/temporary-directory.patch
+fixes/ntdll-398da925.patch
+fixes/ntdll-5c45391e.patch
 
 arm/1-73ab9ca8.patch
 arm/2-0621c022.patch

--- End Message ---
--- Begin Message ---
Hi,

On 28-06-2025 11:57, Stephen Kitt wrote:
The fix involves a small number of lines, and while it’s not simple,
it makes sense to me. wine is a leaf package with no alternative.


Did I spot it right that the first patch is undone by the second, even though the patch offset would be huge in one of the two cases? I assume you used the first patch to not have to amend the second? Might have been worth mentioning as the amended patch would have been less review.

Anyways, unblocked.

Paul

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


--- End Message ---

Reply to: