protonscr

Bring steamclient dll upstream into wine

protonclosed
ValveSoftware/Proton#724 · opened 2018-08-27 by ghost · updated 2018-08-27 · 7 comments · github
1 matching comments, n / p to jump
?ghost 2018-08-27 github
 build_lsteamclient64
{
    cd "$TOP"
    rm -rf build/lsteamclient.win64
    cp -a lsteamclient build/lsteamclient.win64
    cd "$TOP"/build/lsteamclient.win64/
    $AMD64_WRAPPER "$TOP"/wine/tools/winemaker/winemaker \
        --nosource-fix --nolower-include --nodlls --nomsvcrt \
        -DSTEAM_API_EXPORTS \
        -I"$TOOLS_DIR64"/include/ \
        -I"$TOOLS_DIR64"/include/wine/ \
        -I"$TOOLS_DIR64"/include/wine/windows/ \
        -L"$TOOLS_DIR64"/lib64/ \
        -L"$TOOLS_DIR64"/lib64/wine/ \
        --dll .
    CXXFLAGS="-Wno-attributes -O2" CFLAGS="-O2 -g" PATH="$TOOLS_DIR64/bin:$PATH" $AMD64_WRAPPER make $JOBS
    if [ x"$STRIP" != x ]; then
        $AMD64_WRAPPER $STRIP lsteamclient.dll.so
    fi
    cp -a lsteamclient.dll.so "$DST_DIR"/lib64/wine/
}

function build_lsteamclient32
{
    cd "$TOP"
    rm -rf build/lsteamclient.win32
    cp -a lsteamclient build/lsteamclient.win32
    cd "$TOP"/build/lsteamclient.win32/
    $I386_WRAPPER "$TOP"/wine/tools/winemaker/winemaker \
        --nosource-fix --nolower-include --nodlls --nomsvcrt --wine32 \
        -DSTEAM_API_EXPORTS \
        -I"$TOOLS_DIR32"/include/ \
        -I"$TOOLS_DIR32"/include/wine/ \
        -I"$TOOLS_DIR32"/include/wine/windows/ \
        -L"$TOOLS_DIR32"/lib/ \
        -L"$TOOLS_DIR32"/lib/wine/ \
        --dll .
    CXXFLAGS="-Wno-attributes -O2" CFLAGS="-O2 -g" PATH="$TOOLS_DIR32/bin:$PATH" $I386_WRAPPER make $JOBS
    if [ x"$STRIP" != x ]; then
        $I386_WRAPPER $STRIP lsteamclient.dll.so
    fi
    cp -a lsteamclient.dll.so "$DST_DIR"/lib/wine/
}

If I am reading this right, these are the changes that is allowing WINE to report it is running a steam game back to steam. It would be awesome if this was integrated upstream so Pull requests like #697 could go through without much complex consideration.

?ghost 2018-08-27 github

If someone knows this is wrong information, let me know and we'll close it. I'm just digging through here to try and get #22 and address an issue I saw in #697 resolved.

?ghost 2018-08-27 github

I can make an issue for wine, also. I'm not sure how to push these changes through, though. I'm still digging into code.

ZZero86Sk 2018-08-27 github

It could fix some game issues maybe like Bejeweled Twist

Kkode54 2018-08-27 github

It could also allow one to run games that require wine-staging, while still having them report to Steam itself. It appears it probably also requires the winebus system object to interface with... dbus?

Aaeikum 2018-08-27 github

Wine is definitely not going to be interested in hacks like this. I suggest pulling your desired changes into Proton's Wine and building that, rather than the other way around.

?ghost 2018-08-27 github

@aeikum I'm not following exactly where the issue with the dll being brought into WINE is. Can you explain?

The code block I posted is just how the dll is built currently inside this Proton repository, and is already being built here. I am not proposing any new changes other than suggesting to not build the steam integration dll and have it be able to be natively supported in wine somehow.

?ghost 2018-08-27 github

Nevermind. I think I get what you mean. I'll propose bringing this DLL compiling into at least Valve's version of wine. Might make getting it into other tooling easier.

DLLs