antony-jr / updatedeployqt

A simple and powerful tool to deploy auto update for qt applications with a single command. Programming Language Independent.
BSD 3-Clause "New" or "Revised" License
7 stars 0 forks source link

FATAL : cannot determine the qt version #4

Closed probonopd closed 5 years ago

probonopd commented 5 years ago
me@host:~$ wget -c http://subsurface-divelog.org/downloads/Subsurface-4.8.6-x86_64.AppImage

me@host:~$ ./Subsurface-4.8.6-x86_64.AppImage --appimage-extract

me@host:~$ cat > updatedeployqt.json <<EOF
{
   "bridge" : "AppImageUpdater"
  ,"manual-update-check" : {
    "qmenu-name" : "menuHelp"}
}
EOF

me@host:~$Downloads/updatedeployqt-continuous-x86_64.AppImage  squashfs-root/
updatedeployqt git-commit ed09133 , built on Tue Jun  4 18:07:28 2019
Copyright (C) 2019 The Future Shell Laboratory.
[ 21:04:22 ]     INFO  : will be deploying AppImageUpdater bridge.
[ 21:04:22 ]     INFO  : adding manual update check initialization for this application.
[ 21:04:22 ]     INFO  : QMenu object name(menuHelp) is given , 'Check for Update' option will be appended.
[ 21:04:22 ]     INFO  : system library path: /lib/x86_64-linux-gnu.
[ 21:04:22 ]     INFO  : deploy library path: squashfs-root/usr/lib.
[ 21:04:22 ]     INFO  : deploy plugins path: squashfs-root/usr/plugins.
[ 21:04:22 ]     INFO  : QXcb plugin path: squashfs-root/usr/plugins/platforms/libqxcb.so.
[ 21:04:22 ]     INFO  : downloading AppImageUpdater bridge from upstream...
[ 21:04:25 ]     INFO  : deployed bridge successfully!.
sh: 1: qmake: not found
[ 21:04:25 ]    FATAL  : cannot determine the qt version.
[ 21:04:25 ]    FATAL  : qt plugin injection failed.
[ 21:04:25 ]    FATAL  : deploy failed , exiting with errors.

What are you trying to do there? If all you need is the Qt version, then you could use something like (but in Qt rather than bash):

me@host:~$ strings squashfs-root/usr/lib/libQt5Core.so.5 | grep qt_version_tag | sort -V -r | head -n 1
qt_version_tag_5_9
probonopd commented 5 years ago

It does not work when I specify the version either:

me@host:~$ wget -c http://subsurface-divelog.org/downloads/Subsurface-4.8.6-x86_64.AppImage

me@host:~$ ./Subsurface-4.8.6-x86_64.AppImage --appimage-extract

me@host:~$ cat > updatedeployqt.json <<EOF
{
    "qt-version" : "5.9",
   "bridge" : "AppImageUpdater"
  ,"manual-update-check" : {
    "qmenu-name" : "menuHelp"}
}
EOF

me@host:~$ Downloads/updatedeployqt-continuous-x86_64.AppImage  squashfs-root/
updatedeployqt git-commit ed09133 , built on Tue Jun  4 18:07:28 2019
Copyright (C) 2019 The Future Shell Laboratory.
[ 21:09:19 ]     INFO  : will be deploying plugins for qt version 5.9.
[ 21:09:19 ]     INFO  : will be deploying AppImageUpdater bridge.
[ 21:09:19 ]     INFO  : adding manual update check initialization for this application.
[ 21:09:19 ]     INFO  : QMenu object name(menuHelp) is given , 'Check for Update' option will be appended.
[ 21:09:19 ]     INFO  : system library path: /lib/x86_64-linux-gnu.
[ 21:09:19 ]     INFO  : deploy library path: squashfs-root/usr/lib.
[ 21:09:19 ]     INFO  : deploy plugins path: squashfs-root/usr/plugins.
[ 21:09:19 ]     INFO  : QXcb plugin path: squashfs-root/usr/plugins/platforms/libqxcb.so.
[ 21:09:19 ]     INFO  : downloading AppImageUpdater bridge from upstream...
[ 21:09:23 ]     INFO  : deployed bridge successfully!.
[ 21:09:23 ]     INFO  : downloading modified qxcb plugin for qt version 5.9.
[ 21:09:23 ]     INFO  : downloading qt plugin injector from upstream...
[ 21:09:23 ]    FATAL  : cannot write md5sum of the bridge into qxcb plugin.
[ 21:09:23 ]    FATAL  : qt plugin injection failed.
[ 21:09:23 ]    FATAL  : deploy failed , exiting with errors.
antony-jr commented 5 years ago

This is an authentic issue , I will be fixing this soon. For now you have to mention the entire version. Like this ,

 "qt-version" : "5.9.0"

please use that until this is fixed.

probonopd commented 5 years ago

Just to let you know, this is working for me:

# Get and extract the original AppImage
wget -c http://subsurface-divelog.org/downloads/Subsurface-4.8.6-x86_64.AppImage
./Subsurface-4.8.6-x86_64.AppImage --appimage-extract

# Configure
cat > updatedeployqt.json <<EOF
{
    "qt-version" : "5.9.0",
   "bridge" : "AppImageUpdater"
  ,"manual-update-check" : {
    "qmenu-name" : "menuHelp"}
}
EOF

# Get and run updatedeployqt
wget -c "https://github.com/TheFutureShell/updatedeployqt/releases/download/continuous/updatedeployqt-continuous-x86_64.AppImage"
chmod +x ./updatedeployqt-continuous-x86_64.AppImage
./updatedeployqt-continuous-x86_64.AppImage  squashfs-root/

# Recreate AppImage
wget -c "https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage"
chmod +x ./appimagetool-x86_64.AppImage
VERSION=4.8.6 ./appimagetool-x86_64.AppImage squashfs-root/ -u "gh-releases-zsync|Subsurface-divelog|subsurface|latest|Subsurface*-x86_64.AppImage.zsync"

It would still be nice if updatedeployqt could figure out the Qt version on its own, though.

antony-jr commented 5 years ago

It would still be nice if updatedeployqt could figure out the Qt version on its own, though.

I'm working on it now. Please wait.

antony-jr commented 5 years ago

Thank you for the tip on qt_version_tag , Now updatedeployqt handles invalid qt version strings which is optional , and can determine qt version automatically without explicitly defined.

probonopd commented 5 years ago

Thank you.