winetricks icon indicating copy to clipboard operation
winetricks copied to clipboard

Now that archive.org is dead it would be good to know how to install self downloads with winetricks.

Open lukolszewski opened this issue 1 year ago • 5 comments

As archive.org has been dead for quite few days now many verb installs such as vb6run are not working. But these EXEs can be found elsewhere online. It would be great if there was some description how to use winetricks to install self downloaded files.

lukolszewski avatar Oct 11 '24 10:10 lukolszewski

I wouldn't call it 'dead', but rather temporarily offline [1].

But yeah, I suppose the README for example could mention the path to the cache where the file(s) need(s) to exist.

  1. https://mastodon.archive.org/@internetarchive/113283808411125819

Chiitoo avatar Oct 11 '24 14:10 Chiitoo

Did you find a solution? I tried, but unfortunately it doesn't respond to --file.

EdikGres avatar Oct 12 '24 07:10 EdikGres

The files are cached under $HOME/.cache/winetricks on Linux, not sure about the path on macOS and others.

So for example, vb6run files would go to:

$HOME/.cache/winetricks/vb6run/

Chiitoo avatar Oct 12 '24 09:10 Chiitoo

If took the following approach to have at least a temporary workaround:

  1. Copy .dll files to the target directory
  2. Change winetricks to install only when the file does not exist (maybe we should do this anyway to be more efficient?)

Example for InstMsiW.exe, which is required to install msls31.dll:

Dockerfile:

COPY ./archive/system32/*.dll /opt/wineprefix/dosdevices/c:/windows/system32/
COPY ./archive/winetricks /root/winetricks

winetricks: (row 11839)

load_msls31()
{
    # Needed by native RichEdit and Internet Explorer
    # Originally at https://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe
    # Old mirror at https://ftp.hp.com/pub/softlib/software/msi/InstMsiW.exe
+   if [ ! -f "${W_SYSTEM32_DLLS}/msls31.dll" ]; then
        # https://web.archive.org is down (DDOS attack)
        w_download https://web.archive.org/web/20160710055851if_/http://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe 4c3516c0b5c2b76b88209b22e3bf1cb82d8e2de7116125e97e128952372eed6b

        w_try_cabextract --directory="${W_TMP}" "${W_CACHE}"/msls31/InstMsiW.exe
        w_try_cp_dll "${W_TMP}"/msls31.dll "${W_SYSTEM32_DLLS}"
+   fi
}

wolfgangcolsman avatar Oct 13 '24 22:10 wolfgangcolsman

2. Change winetricks to install only when the file does not exist (maybe we should do this anyway to be more efficient?)

That wouldn't make sense (wine already includes the builtin msls31 dll, so the check would always succeed).

Winetricks already checks if a verb has been installed by checking $WINEPREFIX/winetricks.log and skipping the verb if already installed (unless --force is used).

austin987 avatar Oct 14 '24 02:10 austin987