lmiphay / gentoo.overlay

lmiphay gentoo overlay
4 stars 3 forks source link

Request: Please add net-dns/libidn-compat to the second life viewers #17

Open ntheo1979 opened 2 years ago

ntheo1979 commented 2 years ago

Hello Paul. Would it be possible to add net-dns/libidn-compat as a dependency to Firestorm and the other viewers? It is necessary for voice to work. The package exists in two overlays: https://gpo.zugaina.org/net-dns/libidn-compat. Thank you.

lmiphay commented 2 years ago

From https://github.com/lmiphay/gentoo.overlay/issues/15#issuecomment-1030708802

Wine (sadly) is the safest choice, I would the suggest using the 64 bit slvoice.exe (using FSLinuxEnableWin64VoiceProxy debug)

And that is:

$ 7z e Phoenix-Firestorm-Releasex64-6-4-21-64531_Setup.exe SLVoice.exe
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_IE.utf8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (306C3),ASM,AES-NI)

Scanning the drive for archives:
1 file, 123091053 bytes (118 MiB)

Extracting archive: Phoenix-Firestorm-Releasex64-6-4-21-64531_Setup.exe
--       
Path = Phoenix-Firestorm-Releasex64-6-4-21-64531_Setup.exe
Type = Nsis
Physical Size = 123091053
Method = LZMA:23
Solid = +
Headers Size = 960736
Embedded Stub Size = 409600
SubType = NSIS-3 Unicode BadCmd=11

Everything is Ok  

Size:       104448
Compressed: 123091053
$ ls -l SLVoice.exe 
-rw-r--r-- 1 lmiphay lmiphay 104448 Apr  3  2020 SLVoice.exe
$
ntheo1979 commented 2 years ago

Thanks, I'll try that. Where should I put the SLVoice.exe file, though? Which was the working directory in the process above?

lmiphay commented 2 years ago

Actually there is a 32 bit (it looks like) binary already bundled in the linux tarball:

$ ls -l /opt/firestorm-bin/bin/win32/SLVoice.exe 
-rwxr-xr-x 1 root root 2383360 Jul 21  2021 /opt/firestorm-bin/bin/win32/SLVoice.exe
$ file /opt/firestorm-bin/bin/win32/SLVoice.exe 
/opt/firestorm-bin/bin/win32/SLVoice.exe: PE32 executable (GUI) Intel 80386 (stripped to external PDB), for MS Windows
$

However the one from the MSWin 64 bit FS installer seems to be 64 bit:

$ file SLVoice.exe 
SLVoice.exe: PE32+ executable (GUI) x86-64, for MS Windows

There is also a set of windows DLL's and certificate bundle in that directory which is all presumably needed.

The relevant code is in LLVivoxVoiceClient::startAndLaunchDaemon():

        std::string exe_path = gDirUtilp->getExecutableDir();
        // <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
        //gDirUtilp->append(exe_path, "SLVoice");
        if( !viewerUsesWineForVoice() )
            gDirUtilp->append(exe_path, "SLVoice"); // native version
        else
            gDirUtilp->append(exe_path, "win32/SLVoice.exe"); // use bundled win32 version
        // </FS:ND>

and:

            // vivox executable exists.  Build the command line and launch the daemon.
            LLProcess::Params params;

            // <FS:ND> On Linux the viewer can run SLVoice.exe through wine (https://www.winehq.org/)
            params.executable = exe_path;

            if( !viewerUsesWineForVoice() )
                params.executable = exe_path;
            else
            {
                params.executable = "wine";
                params.args.add( exe_path );
            }
            //</FS:ND>

The fs ticket which originated the voice via wine support: https://jira.firestormviewer.org/browse/FIRE-19663

Nicky-D commented 2 years ago

We package both 32 and 64 Bit windows voice. I think this will only come with 6.5.3 (next release). You will then find a bin/win64 folder with 64 bit voice.

ls -1 bin/win* bin/win32: DbgHelp.dll SLVoice.exe ortp.dll ortp.pdb vivoxsdk.dll vivoxsdk.lib vivoxsdk.pdb zlib1.dll

bin/win64: DbgHelp.dll SLVoice.exe ortp_x64.dll ortp_x64.pdb vivoxsdk_x64.dll vivoxsdk_x64.lib vivoxsdk_x64.pdb

See also https://vcs.firestormviewer.org/phoenix-firestorm/changeset/ef7ee0a17bd5e7fe3bb7d740ecc73d6fed2612ca