brezerk / q4wine

Q4Wine is a Qt GUI for W.I.N.E. It will help you manage wine prefixes and installed applications.
http://q4wine.brezblock.org.ua/
GNU General Public License v3.0
208 stars 40 forks source link

First time wizard problem #50

Closed nerijus closed 9 years ago

nerijus commented 9 years ago

If I delete /home/user/.config/q4wine, the first time wizard launches (btw, it is called First startup wizRAd, should be wizARd), in Step 3 the first 3 paths are filled, but wine libs (32 bit) and wine libs (64 bit) are empty. I fill 32 bit as /usr/lib/wine, leave 64 bit empty (my system is 32 bit), but after the wizard finishes it reports:

Error while loading application settings. wine's library path for 32 and 64 bit is not set. Please, go to the q4wine options dialog and set at least one path.

In the Options->General all the paths are empty.

Fedora 21, $ wine --version wine-1.7.33 (Staging)

$ rpm -qa|grep wine|sort mingw32-wine-gecko-2.34-1.fc21.noarch wine-1.7.33-1.fc21.i686 wine-alsa-1.7.33-1.fc21.i686 wine-arial-fonts-1.7.33-1.fc21.noarch wine-capi-1.7.33-1.fc21.i686 wine-cms-1.7.33-1.fc21.i686 wine-common-1.7.33-1.fc21.noarch wine-core-1.7.33-1.fc21.i686 wine-courier-fonts-1.7.33-1.fc21.noarch wine-desktop-1.7.33-1.fc21.i686 wine-filesystem-1.7.33-1.fc21.noarch wine-fixedsys-fonts-1.7.33-1.fc21.noarch wine-fonts-1.7.33-1.fc21.noarch wine-ldap-1.7.33-1.fc21.i686 wine-marlett-fonts-1.7.33-1.fc21.noarch wine-mono-4.5.4-1.fc21.noarch wine-ms-sans-serif-fonts-1.7.33-1.fc21.noarch wine-openal-1.7.33-1.fc21.i686 wine-pulseaudio-1.7.33-1.fc21.i686 wine-symbol-fonts-1.7.33-1.fc21.noarch wine-systemd-1.7.33-1.fc21.noarch wine-system-fonts-1.7.33-1.fc21.noarch wine-small-fonts-1.7.33-1.fc21.noarch wine-tahoma-fonts-1.7.33-1.fc21.noarch wine-twain-1.7.33-1.fc21.i686 wine-wingdings-fonts-1.7.33-1.fc21.noarch wine-wow-1.7.33-1.fc21.i686

brezerk commented 9 years ago

Hi.

Show me files in wine pkg please:

rpm -ql wine
nerijus commented 9 years ago

$ rpm -ql wine (contains no files)

$ rpm -ql wine-common /usr/bin/msiexec /usr/bin/notepad /usr/bin/regedit /usr/bin/regsvr32 /usr/bin/wineboot /usr/bin/winecfg /usr/bin/wineconsole /usr/bin/winedbg /usr/bin/winefile /usr/bin/winemaker /usr/bin/winemine /usr/bin/winepath /usr/share/man/de.UTF-8/man1/wine.1.gz /usr/share/man/de.UTF-8/man1/wineserver.1.gz /usr/share/man/fr.UTF-8/man1/wine.1.gz /usr/share/man/fr.UTF-8/man1/wineserver.1.gz /usr/share/man/man1/msiexec.1.gz /usr/share/man/man1/notepad.1.gz /usr/share/man/man1/regedit.1.gz /usr/share/man/man1/regsvr32.1.gz /usr/share/man/man1/wine.1.gz /usr/share/man/man1/wineboot.1.gz /usr/share/man/man1/winecfg.1.gz /usr/share/man/man1/wineconsole.1.gz /usr/share/man/man1/winefile.1.gz /usr/share/man/man1/winemine.1.gz /usr/share/man/man1/winepath.1.gz /usr/share/man/man1/wineserver.1.gz /usr/share/man/pl.UTF-8/man1/wine.1.gz

$ rpm -ql wine-core /etc/ld.so.conf.d/wine-32.conf /usr/bin/wine /usr/bin/wine-preloader /usr/bin/winedump /usr/lib/libwine.so.1 /usr/lib/libwine.so.1.0 /usr/lib/wine /usr/lib/wine/acledit.dll.so /usr/lib/wine/aclui.dll.so /usr/lib/wine/activeds.dll.so /usr/lib/wine/actxprxy.dll.so /usr/lib/wine/advapi32.dll.so /usr/lib/wine/advpack.dll.so /usr/lib/wine/amstream.dll.so /usr/lib/wine/api-ms-win-core-com-l1-1-0.dll.so ... /usr/lib/wine/apphelp.dll.so /usr/lib/wine/appwiz.cpl.so /usr/lib/wine/arp.exe.so ... /usr/lib/wine/ext-ms-win-gdi-devcaps-l1-1-0.dll.so /usr/lib/wine/extrac32.exe.so /usr/lib/wine/fakedlls /usr/lib/wine/fakedlls/acledit.dll /usr/lib/wine/fakedlls/aclui.dll /usr/lib/wine/fakedlls/activeds.dll /usr/lib/wine/fakedlls/actxprxy.dll /usr/lib/wine/fakedlls/advapi32.dll /usr/lib/wine/fakedlls/advpack.dll /usr/lib/wine/fakedlls/amstream.dll /usr/lib/wine/fakedlls/api-ms-win-core-com-l1-1-0.dll ... /usr/lib/wine/fakedlls/api-ms-win-service-winsvc-l1-2-0.dll /usr/lib/wine/fakedlls/apphelp.dll /usr/lib/wine/fakedlls/appwiz.cpl /usr/lib/wine/fakedlls/arp.exe /usr/lib/wine/fakedlls/aspnet_regiis.exe ... /usr/lib/wine/fakedlls/xpssvcs.dll /usr/lib/wine/faultrep.dll.so ... /usr/lib/wine/xpssvcs.dll.so

lots of files skipped.

nerijus commented 9 years ago

I uploaded all wine-core file listing in http://paste.fedoraproject.org/162947/41953133

brezerk commented 9 years ago

i.c. thanks.

can you post output of ldconfig -p | grep libwine please?

nerijus commented 9 years ago

$ ldconfig -p | grep libwine libwine.so.1 (libc6) => /lib/libwine.so.1 In Fedora /lib is a link to /usr/lib: $ ls -ld /lib lrwxrwxrwx. 1 root root 7 2014-12-10 14:44 /lib -> usr/lib

brezerk commented 9 years ago

i.c. will fix it :)

brezerk commented 9 years ago

hi. Can you try this?

diff --git a/src/q4wine-lib/q4wine-lib.cpp b/src/q4wine-lib/q4wine-lib.cpp
index 62d4104..6552d6c 100644
--- a/src/q4wine-lib/q4wine-lib.cpp
+++ b/src/q4wine-lib/q4wine-lib.cpp
@@ -731,6 +731,12 @@ QStringList corelib::getWineLibsPath(void) {
                 continue;
             }
             QFileInfo file(path);
+
+            if (file.isSymLink()){
+                path = file.symLinkTarget();
+                file.setFile(path);
+            }
+
             if (!file.exists()){
                 qDebug()<<"[EE] File does not exist: " << path;
                 continue;
nerijus commented 9 years ago

Nothing changed.

brezerk commented 9 years ago

did you build and run it locally or with make install? if locally, then -DRELEASE=OFF should be set in order to use libq4wine.so from project directory.

nerijus commented 9 years ago

Tried both. First patched, buillt and then ran from the source dir, then made an rpm package.

brezerk commented 9 years ago

just noticed that you have no .so, only .so.1

ok this should work. try to build it with: -DDEBUG=ON it will produce verbose output to console.

diff --git a/src/q4wine-lib/q4wine-lib.cpp b/src/q4wine-lib/q4wine-lib.cpp
index 62d4104..bf8ef2d 100644
--- a/src/q4wine-lib/q4wine-lib.cpp
+++ b/src/q4wine-lib/q4wine-lib.cpp
@@ -713,11 +713,14 @@ QStringList corelib::getWineLibsPath(void) {
     if (!string.isEmpty()){
         QStringList libs_list = string.split("\n");
 #ifdef _OS_LINUX_
-        QRegExp rx_info(".*\\((.*)\\) => (.*\\.so$)");
+        QRegExp rx_info(".*\\((.*)\\) => (.*\\.so.*$)");
 #else
         QRegExp rx_info("(.*) => (.*\\.so.*)");
 #endif
         foreach (QString lib_info, libs_list){
+#ifdef DEBUG
+            qDebug()<<"[ii] work with: " <<  lib_info;
+#endif
             int pos = rx_info.indexIn(lib_info);
             QString arch, path;
             if (pos > -1) {
@@ -726,11 +729,15 @@ QStringList corelib::getWineLibsPath(void) {
             } else {
                 continue;
             }
+#ifdef DEBUG
+            qDebug()<<"[ii] Found: " <<  arch << " " << path;
+#endif
             if (path.isEmpty()){
                 qDebug()<<"[EE] No winelib.so found in: " << lib_info;
                 continue;
             }
             QFileInfo file(path);
+
             if (!file.exists()){
                 qDebug()<<"[EE] File does not exist: " << path;
                 continue;
nerijus commented 9 years ago

In Step 3 path for Libs (32 bit) is detected as /lib/wine/, but, after finishing wizard and opening Options, all the paths are empty except Libs (32 bit). The default.conf section [wine] is: WineLibs32=/lib/wine/ WineLibs64=

brezerk commented 9 years ago

Ok. This should work since you are using non amd64 system. Try to run something :)

nerijus commented 9 years ago

But there are no such settings: WineBin=/usr/bin/wine ServerBin=/usr/bin/wineserver LoaderBin=/usr/bin/wine WineLibs=/usr/lib/wine

my old default.conf looks like: [wine] WineBin=/usr/bin/wine ServerBin=/usr/bin/wineserver LoaderBin=/usr/bin/wine WineLibs=/usr/lib/wine WineLibs32=/usr/lib/wine WineLibs64=

brezerk commented 9 years ago

O_o

brezerk commented 9 years ago

Does

# which wine
# which wineserver

works for you? anything in q4wine's output?

nerijus commented 9 years ago

$ which wine /usr/bin/wine $ which wineserver /usr/bin/wineserver

As I told before, wine works here, for example, I can run wine notepad or other exe files.

nerijus commented 9 years ago

q4wine output with no config (i.e. running wizard):

$ ./q4wine [ii] i18n path: "/usr/share/q4wine/i18n" [ii] LC_ALL: "lt_LT.utf8" [ii] Lang before split: "lt_LT.utf8" [ii] Lang to load: "q4wine_lt_lt" [EE] Cannot open user selected translation [ii] Check for directory: "/home/user/.config/q4wine/" [ii] Check for directory: "/home/user/.config/q4wine/db" [ii] Check for directory: "/home/user/.config/q4wine/icons" [ii] Check for directory: "/home/user/.config/q4wine/prefixes" [ii] Check for directory: "/home/user/.config/q4wine/tmp" [ii] Check for directory: "/home/user/.config/q4wine/theme" [ii] Check for directory: "/home/user/.config/q4wine/tmp/cache" [ii] Check for directory: "/home/user/.config/q4wine/scripts" [ii] Check for directory: "/home/user/.local/share/wineprefixes" [ii] Init database engine [ii] Loading QSQLITE driver... [ii] Loading database file: "/home/user/.config/q4wine/db/generic.dat" [ii] Check for table: "prefix" [ii] Check for table: "dir" [ii] Check for table: "icon" [ii] Check for table: "images" [ii] Check for table: "last_run_icon" [ii] Check for table: "logging" [ii] Check for table: "providers" [ii] Check for table: "sysconfig" [ii] Check for table: "versions" [ii] " libwine.so.1 (libc6) => /lib/libwine.so.1 " [ii] work with: " libwine.so.1 (libc6) => /lib/libwine.so.1" [ii] Found: "libc6" "/lib/libwine.so.1" [ii] work with: "" [ii] LC_ALL: "lt_LT.utf8" [ii] Lang before split: "lt_LT.utf8" [ii] Lang to load: "q4wine_lt_lt" [ii] Wizard::creating icons [ii] Wizard::done [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default.directory" "/home/user/.local/share/applications/q4wine/Default" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default-system.directory" "/home/user/.local/share/applications/q4wine/Default/system" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default-autostart.directory" "/home/user/.local/share/applications/q4wine/Default/autostart" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default-import.directory" "/home/user/.local/share/applications/q4wine/Default/import" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-q4wine.directory" "/home/user/.local/share/applications/q4wine" [DD] Remove dir "/home/user/.config/q4wine/tmp/cache" [ii] Check for directory: "/home/user/.config/q4wine/tmp" [ii] Check for directory: "/home/user/.config/q4wine/tmp/cache" [ii] Creating Q4Wine socket [ii] Socket file name: "/tmp/q4wine-1000.sock" [ii] " libwine.so.1 (libc6) => /lib/libwine.so.1 " [ii] work with: " libwine.so.1 (libc6) => /lib/libwine.so.1" [ii] Found: "libc6" "/lib/libwine.so.1" [ii] work with: "" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-q4wine.directory" "/home/user/.local/share/applications/q4wine" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default.directory" "/home/user/.local/share/applications/q4wine/Default" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default-system.directory" "/home/user/.local/share/applications/q4wine/Default/system" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default-autostart.directory" "/home/user/.local/share/applications/q4wine/Default/autostart" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-Default-import.directory" "/home/user/.local/share/applications/q4wine/Default/import" [DD] cr_dir_info: "/home/user/.local/share/desktop-directories/q4wine-q4wine.directory" "/home/user/.local/share/applications/q4wine"

(process:6431): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

nerijus commented 9 years ago

After the wizard in Options->General->Wine Settings everything is empty, except Libs (32 bit): /lib/wine/

brezerk commented 9 years ago

Yes. Reproduced rerunning wizard with empty config.

brezerk commented 9 years ago

Hah :) Take a look into Tools -> Version control

nerijus commented 9 years ago

I opened it, it shows: Binary: /usr/bin/wine Server: /usr/bin/wineserver Loader: /usr/bin/wine Libs 32: /lib/wine/ Libs 64: empty and now when I press OK, I get: Path ''is not exists.

brezerk commented 9 years ago

Wine settings was migrated from static cfg file into Version control.

But App Settings was not updated. Will fix it.

Path ''is not exists.

yeah. Lib 64 should be optional.

nerijus commented 9 years ago

So I restored my old config, but when running app I get in the log:

Exec string:
/usr/bin/env  WINEPREFIX='/home/user/.wine'  WINESERVER='/usr/bin/wineserver'  WINELOADER='/usr/bin/wine'  WINEDLLPATH=''  /bin/sh -c "cd '/mnt/ntfs/Program Files/Snowball Interactive/BigRace(Lithuanian)/' &&   '/usr/bin/wine'   'BG_Start.exe'  2>&1 "
Exit code:
10
App STDOUT and STDERR output:
Can't load version information. Check prefix and/or version settings.
nerijus commented 9 years ago

But, when put /usr/lib/wine in Tools->Version Manager, the app launched.

brezerk commented 9 years ago

Ok. Try https://github.com/brezerk/q4wine/commit/9c1383d176051488bb46416dff4464c82a0d53fe

brezerk commented 9 years ago

But, when put /usr/lib/wine in Tools->Version Manager, the app launched.

Did you put it into 64-nit Library filed?

nerijus commented 9 years ago

Yes, I put /usr/lib/wine into 64 bit too, as otherwise I could not close dialog, but after closing and reopening Lib 64 bit was empty. Will try with a new source in a few minutes.

nerijus commented 9 years ago

With a new source everything seems OK - wizard completes successfully, values in Version Manager are OK. When I use old config, I have to enter Libs 32 setting.

nerijus commented 9 years ago

BTW, it would be nice to migrate the old lib setting when the new version is run the first time, otherwise there will be bug reports when people upgrade.

nerijus commented 9 years ago

BTW2, could you please apply the following patch - http://paste.fedoraproject.org/163001/95566391/ ?

brezerk commented 9 years ago

There are migration steps already available. Can you send my old settings and old db please?

brezerk commented 9 years ago
BTW2, could you please apply the following patch - http://paste.fedoraproject.org/163001/95566391/ ?

Applied. Thanks a lot.

btw: do you still need to set Libs 64 settings in order to run apps?

nerijus commented 9 years ago

Old settings are http://sat.lt/q4wine.tgz. No, I don't need Libs 64 settings to run apps.