vitor251093 / Wine_AppImage_Builder

Script that creates Wine AppImages
2 stars 0 forks source link

Buildscript doesn´t work on Artix Linux (Archlinux based) #1

Open fwn0 opened 2 years ago

fwn0 commented 2 years ago

I did try your buildscript on Artix, but after it has downloaded huge Buster's dependencies, your script did break build process (some dir wasn´t found). I am interested only building wine32 AppImage for Foobar2000 and eventually also for MusicBee, which are 32bit based programs. Can I customize your script for wine32 builds only ? I am running Foobar2000 with (old) a nice 220MB AppImage made by pawitp ( https://github.com/pawitp/wine-appimage ), but I can´t build wine7(x86) under 320MB.

vitor251093 commented 2 years ago

Hello @fwn0 ,

your script did break build process (some dir wasn´t found)

Could you tell me which dir wasn't found specifically, so I can fix the issue? Also, which Wine version (eg. stable) and build (eg. 7.0.0.0) were you trying to build?

Can I customize your script for wine32 builds only ?

You would need to make changes in pkg2appimage first, so you can filter a package by architecture. There is a modified source already inside this project files. It may be a complicated task. I may work on that in the future, but not right now, since the 64 bit AppImages can also create 32 bit prefixes.

vitor251093 commented 2 years ago

Just added a script to build 32 bit engines (build32.sh). I've tested it with Wine Stable 6.0.4 and it produced a 252 Mb AppImage.

fwn0 commented 2 years ago

Hi Vitor, I did try to run your latest script with Bullseye, but it seems you have some typo in the script, or do I need - "sudo dpkg --add-architecture i386" before I run your script ?

bullseye@bullseye:~/Wine_AppImage_Builder$ sudo ./build.sh ./build.sh: line 7: [0: command not found cat: basewine.yml: No such file or directory /home/bullseye/Wine_AppImage_Builder/wine-custom is required to run this script

bullseye@bullseye:~/Wine_AppImage_Builder$ sudo ./build32.sh [sudo] password for bullseye: ./build.sh: line 7: [0: command not found cat: basewine.yml: No such file or directory /home/bullseye/Wine_AppImage_Builder/wine-custom is required to run this script

vitor251093 commented 2 years ago

I did try to run your latest script with Bullseye, but it seems you have some typo in the script

I'm not sure of why that first line appears in the logs, but it appears for me as well. It does not interfere with the execution of the script.

EDIT: Fixed the error log.

or do I need - "sudo dpkg --add-architecture i386" before I run your script ?

No, that's not necessary.

bullseye@bullseye:~/Wine_AppImage_Builder$ sudo ./build.sh

You must provide the flags that specific which Wine version are you trying to build. Check the examples in the README file. It used to have a default value (stable 6.0.4) but I figured that would get old pretty quickly.

Also, that script does not requires sudo. You don't need to use sudo to run it.

vitor251093 commented 2 years ago

Just made a couple of repairs, along with another fix in the parameter count check.

fwn0 commented 2 years ago

Sorry Viktor, but the script still doesn't work: (Buster aka LMDE4-Debbie)

mint@mint-pc:~$ git clone https://github.com/vitor251093/Wine_AppImage_Builder.git

Cloning`` into 'Wine_AppImage_Builder'...

remote:` Enumerating objects: 537, done.

remote: Counting objects: 100% (537/537), done.

remote: Compressing objects: 100% (342/342), done.

remote: Total 537 (delta 157), reused 467 (delta 88), pack-reused 0

Receiving objects: 100% (537/537), 18.87 MiB | 14.01 MiB/s, done.

Resolving deltas: 100% (157/157), done.

mint@mint-pc:~$ cd Wine_AppImage_Builder

mint@mint-pc:~/Wine_AppImage_Builder$ ./build32.sh stable 6.0.4

/home/mint/Wine_AppImage_Builder/wine-stable is required to run this script

mint@mint-pc:~/Wine_AppImage_Builder$ ./build.sh stable 6.0.4

/home/mint/Wine_AppImage_Builder/wine-stable is required to run this script

mint@mint-pc:~/Wine_AppImage_Builder$ ./build.sh stable 6.0.4

/home/mint/Wine_AppImage_Builder/wine-stable` is required to run this script

mint@mint-pc:~/Wine_AppImage_Builder$ ./build.sh devel 7.13

/home/mint/Wine_AppImage_Builder/wine-devel is required to run this script

mint@mint-pc:~/Wine_AppImage_Builder$ ./build.sh staging 6.10

/home/mint/Wine_AppImage_Builder/wine-staging is required to run this script

mint@mint-pc:~/Wine_AppImage_Builder$

vitor251093 commented 2 years ago

Sorry, I broke the script for stable, devel and staging while testing for crossover lol

I will fix it in a minute.

vitor251093 commented 2 years ago

Done. Could you please try again?

fwn0 commented 2 years ago

Thank for update Vitor, your script produce wine.appimage, but it is still not useable. Here is a link to winebuild.log (it is too long for post it here). You can see where are the problems. After building of AppImage, I did try to fresh installation of foobar2000, because my current prefix won't start with your new AppImage, but you can see in log the problems - no success.

https://cloud.multibits.eu/s/fqNoPodj6BQ86oC

vitor251093 commented 2 years ago

This is the most relevant error message

Wine cannot find the FreeType font library. To enable Wine to use TrueType fonts please install a version of FreeType greater than or equal to 2.0.5. http://www.freetype.org

When Freetype failed to load, it broke X11. When X11 broke, Wine couldn't start a new window, and with that, foobar2000 couldn't be opened.

My guess is that, since Freetype is installed in my system, Wine must have loaded the Freetype from my system. I'm gonna need to find a way to make it use the freetype installed inside the AppImage. I will keep you informed.

fwn0 commented 2 years ago

I'll compare my current wine32.appimage from pawitp with your build; his wine.appimage runs totally independent on my all machines with different Linux and BSD OSes. It contains code and patches to build 32-bit Wine with included 32-bit libraries so it can ran on 64-bit systems. This nice piece is compiled from source and de-bloated of unnecessary files and dirs and other junk. I never had trouble with fonts or ld-linux-x86 not found - i386 compatibility on x64 machines (all runs perfect without installation of required libs32 and dpkg --add-architecture i386). If you want, I can send you (as example) my personal foobar2000 with wineprefix, with custom theme (georgia-reborn: https://github.com/TT-ReBORN/Georgia-ReBORN) and with all necessary .dll drivers, deps and frameworks. This portable package is only 287 mb small - one in all and fully independent. ;)

vitor251093 commented 2 years ago

Did some digging.

At first I though it couldn't find libfreetype6 because it was installing the amd64 build instead of i386 build, considering that I can see that the amd64 build was the one installed when I run build.sh, but every tutorial out there mentions the i386 build specifically. Although, that explanation would only apply to 64 bit AppImages, made with build.sh. 32 bit AppImage, like the one you made, use libfreetype:i386, so that's not it.

I'm checking pawitp's repo to see if there is anything important that I may be missing. It may be the patch, but I honestly hope not :P I'm trying to stick with the official builds as much as possible.

If you want, I can send you (as example) my personal foobar2000 with wineprefix, with custom theme (georgia-reborn: https://github.com/TT-ReBORN/Georgia-ReBORN) and with all necessary .dll drivers, deps and frameworks. This portable package is only 287 mb small - one in all and fully independent. ;)

I don't think the wineprefix itself would make much of a difference, but comparing the appimages may produce some results.

vitor251093 commented 2 years ago

I will try adding those lines to the top of the winewrapper file.

export LD_LIBRARY_PATH="$APPDIR/usr/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$APPDIR/usr/lib/i386-linux-gnu":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$APPDIR/lib":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$APPDIR/lib/i386-linux-gnu":$LD_LIBRARY_PATH

#Sound Library
export LD_LIBRARY_PATH="$APPDIR/usr/lib/i386-linux-gnu/pulseaudio":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$APPDIR/usr/lib/i386-linux-gnu/alsa-lib":$LD_LIBRARY_PATH

export FONTCONFIG_PATH="${APPDIR}/etc/fonts"

Since the thread about the patch didn't mention freetype as the cause, even if the patch is still necessary, it was not created to circunvent this specific problem, so it may happening because Wine can't find freetype inside the AppImage.

vitor251093 commented 2 years ago

I'm facing another issue, which seems to be connected with one of his patches. The AppImage won't work in a system without some required 32 bit libs. I'm trying to fix that.