[Bug 50036] Remaining issues in Bugs in ntdll-Junction_Points in staging

WineHQ Bugzilla wine-bugs at winehq.org
Sun Nov 22 12:18:39 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=50036

Erich E. Hoover <erich.e.hoover at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #68679|0                           |1
        is obsolete|                            |

--- Comment #11 from Erich E. Hoover <erich.e.hoover at gmail.com> ---
Created attachment 68683
  --> https://bugs.winehq.org/attachment.cgi?id=68683
Basic system dll symlink implementation

Okay, the wife let me spend way more time on this then I thought she would. 
Attached is a patch with a basic implementation allowing the Wine system dlls
to be reparse points.  Please note that this patch requires the staging patches
for reparse point support.

The implementation occurs in three key places:
server/fd.c: ignoring FILE_OPEN_REPARSE_POINT in open_fd
dlls/ntdll/unix/file.c: hiding the symlink in get_file_info
dlls/setupapi/fakedll.c: installing the dlls as a symlink in install_fake_dll

And this results in a rather substantial change in prefix size.
=== before ===
ehoover at lappy:~/src/wine-test$ du --max-depth=0 -h ~/.wine
451M    /home/ehoover/.wine
=== after ===
ehoover at lappy:~/src/wine-test$ du --max-depth=0 -h ~/.wine
136M    /home/ehoover/.wine
===

If you are interested in seeing what happens if you turn the symlink hiding
behavior on/off you can change IO_REPARSE_TAG_WINE to IO_REPARSE_TAG_SYMLINK in
dlls/setupapi/fakedll.c.  An example of how you can see the difference in
behavior is by looking at the directory listing for system32 in wine cmd:
=== IO_REPARSE_TAG_WINE ===
...
11/22/2020   9:56 AM       339,749  xolehlp.dll
11/22/2020   9:56 AM        61,719  xpsprint.dll
11/22/2020   9:56 AM        57,863  xpssvcs.dll
=== IO_REPARSE_TAG_SYMLINK ===
...
11/22/2020  10:50 AM  <SYMLINK>     xolehlp.dll
[Z:\usr\local\lib\wine\xolehlp.dll]
11/22/2020  10:50 AM  <SYMLINK>     xpsprint.dll
[Z:\usr\local\lib\wine\xpsprint.dll]
11/22/2020  10:50 AM  <SYMLINK>     xpssvcs.dll
[Z:\usr\local\lib\wine\xpssvcs.dll]
===

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list