Skip to content
This repository was archived by the owner on Sep 26, 2024. It is now read-only.

Bug Fixing Guide

T. H. Wright edited this page May 11, 2022 · 5 revisions

Bug Fixing Guide

Helpful Guides

Git Tutorial - https://www.youtube.com/watch?v=SWYqp7iY_Tc Git 15mins - https://www.youtube.com/watch?v=USjZcfj8yxE Git Cheat Sheet PDF - https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet Solving compiler problems - https://superuser.com/questions/1248542/checking-whether-the-c-compiler-works-no Building wine guide from WineHQ - https://wiki.winehq.org/Building_Biarch_Wine_On_Ubuntu#Build_64-bit_Wine Regression Testing Guide from WineHQ - https://wiki.winehq.org/Regression_Testing Ferion11 scripts - https://github.com/ferion11/LogosLinuxInstaller/releases

Current list of Bugs affecting Logos Bible Software on winehq - https://appdb.winehq.org/objectManager.php?sClass=version&iId=39484

Contact

Telegram: https://t.me/linux_logos Matrix: https://matrix.to/#/#logosbible:matrix.org

Other

Wasta Instructions: https://docs.google.com/document/d/1Gms_Bc2Q_OOH3G5lmP6twXnqiSWxrFFT7lCN3nRyymw/edit

Steps

Step 1 Clone the Wine Git Repository This creates a copy of the code on your system but it has version tracking which means you can easily jump between different versions and track changes.

mkdir $HOME/wine-test
cd $HOME/wine-test
git clone git://source.winehq.org/git/wine.git ~/wine-git

Staging To build staging requires a few extra steps. You have to patch the git source tree with the ‘staging’ patches. As below. From then configure, make and make install as usual.

git clone git://source.winehq.org/git/wine.git ~/wine-test/wine-staging-git
git clone git://github.com/wine-staging/wine-staging.git ~/wine-test/wine-staging-patches-git
cd ~/wine-test/wine-staging-patches-git/patches
/patchinstall.sh DESTDIR=~/wine-test/wine-staging-git --all

Choose which version You choose which version with the git checkout command. It takes commit hashes, tags, branches or releases as an argument. For releases, typically it is wine-ver e.g.

john@ideacentre:~/wine-test/wine-git$ git checkout wine-6.21

A full list is here: https://source.winehq.org/git/?p=wine.git;a=tags

Setup a build environment I was using Kubuntu 21.10. I had to install a few packages to get going.

sudo apt install git build-essential gcc-mingw-w64 libgstreamer1.0-dev libgstreamer-plugins-good1.0-d libgstreamer-plugins-base1.0-dev libusb libusb-dev libjxr-dev libvkd3d-utils libvkd3d-dev libvulkan-dev libfaudio-dev libvkd3d-headers

Also libjpeg62 fixed an issue with no icons appearing.

Build wine Configuring wine

cd $HOME/wine-test/wine-git
../wine-git/configure --enable-win64

Takes about 30secs

Compiling Wine The ‘time’ command can be used to benchmark how long the process takes. This can usually be omitted but gives you an idea how long it will take in future. ‘make’ builds it. ‘-j4’ tells it to run 4 threads. If you have more or less cores on your process adjust accordingly.

time make -j4

wine build complete 22mins on my machine I like to add a notification on the end. E.g. ‘time make -j4 && say completed’ if you have ‘say’ installed. It just gives a handy prompt.

Installing wine We don’t want to install wine to the /usr/local because the build is just for testing. Choose instead a convenient folder. I am using the .PlayOnLinux folder where I also keep other versions of wine for testing.

edit makefile so the prefix line goes to the folder you want. e.g. prefix = /home/john/.PlayOnLinux/wine/linux-amd64/6.21

Then you can run ‘make install’ which will put wine in that folder.

make install

30 secs

Running Logos with your self-built wine Assuming you set up Logos using Daniel’s ferion script, you have a Logos.sh script in your $HOME/LogosBible_Linux_P dir. Edit the wine64 and wineserver -w lines to the full path of your chosen winedir.

i.e., replace

wine64 "${LOGOS_EXE}"
wineserver -w

with

/home/$USER/.PlayOnLinux/wine/linux-amd64/6.21/bin/wine64 "${LOGOS_EXE}"
/home/$USER/.PlayOnLinux/wine/linux-amd64/6.21/bin/wineserver -w

Congrats you are testing Logos on your home built wine binaries.

Applying a Patch

~/wine-test/wine-git$ git apply ../patch.txt

Make a new git branch:

git branch newbranchname
git commit .

Follow steps above to compile and test it.

Return to master branch

git checkout master

Abandon local changes

git reset --hard
git clean -f
git pull origin master

Update tags

git fetch –all
git checkout tags/wine-7.1

Regression Testing Guide https://wiki.winehq.org/Regression_Testing

For the first step you can chain together commands.

time ../wine-git/configure --enable-win64 && time make -j4 && say completed

It shouldn’t be necessary to configure between bisects.

Show diff for a particular regression, e.g.,

git show 8892b79118fde5f2307ecbbdb03a8d0c489c8b3d

Revert a regression

git revert 8892b79118fde5f2307ecbbdb03a8d0c489c8b3d

Creating a Patch Edit code to get desired result.

Build and test Make patch, e.g.,

git diff > ../../popups.patch

Capture debugging information

Output from:

WINEDEBUG=+relay,+winspool,+psdrv,+print,+seh /home/john/wine-versions/linux-amd64/7.0rc2/bin/wine64 "${LOGOS_EXE}" >> /tmp/logoswinedebuglog7.0rc2.txt 2>&1

approx 3mb bzip2

To keep it brief I ran:

echo "****Ready to Click Print - manual marker****" > /tmp/logoswinedebuglog7.0rc2.txt

just before I pressed the print shortcut.

Clone this wiki locally