QTads 3.4

QTads is a cross-platform, multimedia interpreter for TADS games. It is fully compatible with HTML TADS (aka “Multimedia TADS.”) It runs on Linux, macOS and Microsoft Windows.

Downloads:

https://realnc.github.io/qtads/#downloads

Changes since 3.4:

  • UNDO buffer sizes have been increased, allowing for more UNDO steps.

  • Quitting a game while its waiting for a keypress (like a MORE prompt) should not longer result in the next loaded game skipping past its first such “wait for keypess” prompt.

  • (Linux) The QTads AppImage is now based on Ubuntu 18.04 and will no longer
    work on Linux distros older than that.

  • (Linux) The QTads AppImage no longer requires libfuse to be installed.

15 Likes

Ha!

I was checking for the latest version earlier today! Amusing coincidence! :smile:

Yes!! This was not a problem on my desktop, but my laptop kept protesting about this. :joy:

Thank you for all you do!!

3 Likes

Thank you! Great to see more forward motion on TADS.

5 Likes

Works fine under Debian, aside the incorporation of libfuse in a static binary led to the wastage of 10 Mbyte:

ls -l qtads*
lrwxrwxrwx 1 root staff        7 20 mar 15.59 qtads -> qtads33
-rwxr-xr-x 1 pigi pigi   3575232 21 gen  2016 qtads2
-rwxr-xr-x 1 pigi pigi  20033512 15 feb  2020 qtads30
-rwxr-xr-x 1 pigi pigi  22312128 16 set  2021 qtads31
-rwxr-xr-x 1 pigi pigi  22471872 25 set  2021 qtads32
-rwxr-xr-x 1 pigi pigi  22475968 19 mag  2022 qtads33
-rwxr-xr-x 1 pigi pigi  32907608 19 mag 02.24 qtads34

Best regards from Italy,
dott. Piergiorgio.

2 Likes

To be fair, I was searching for hours trying to figure out how to get this library installed on my laptop, but couldn’t find anything that worked, so I’ll happily welcome the 10 Mbyte.

1 Like

this is why is an aside ! :smiley:

Best regards from Italy,
dott. Piergiorgio.

1 Like

It builds and runs just fine on FreeBSD 13.2-RELEASE.

3 Likes

On Ubuntu 22.04, and got this error:

qt.network.ssl: Incompatible version of OpenSSL (built with OpenSSL 1.x, runtime version is >= 3.x)

I’m guessing that means I’ll be building this from source, then…? Only an intermediate-skill Linux user; sorry if the question seems dumb. Would be far from the first program I had to build from source, so it wouldn’t be an issue. Just making sure that building from source won’t require libfuse to be on my system is all.

2 Likes

That should not be happening. You’re running the AppImage directly, right? You didn’t extract it or anything?

2 Likes

That’s not due to the static AppImage loader. That barely has an impact. The reason for the larger size is that libicudata (contains Unicode conversion tables and related static data) is now included in the AppImage. That lib is 25MB (the AppImage is compressed so the final increase is about 10MB.) This is a consequence of upgrading the build system to Ubuntu 18.04 from 16.04.

2 Likes

Correct!

2 Likes

And are not using any LD_LIBRARY_PATH environment variable shenanigans?

What happens if you extract the AppImage:

./QTads.AppImage --appimage-extract

Then in the resulting squashfs-root directory, edit the AppRun file and replace everything with:

#! /bin/sh

HERE="$(dirname "$(readlink -f "${0}")")"

# try to make Qt apps more "native looking" on Gtk-based desktops, if possible
# see https://github.com/AppImage/AppImageKit/issues/977#issue-462374883
case "${XDG_CURRENT_DESKTOP}" in
    *GNOME*|*gnome*|*XFCE*)
        export QT_QPA_PLATFORMTHEME=gtk2
        ;;
esac

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${HERE}/usr/openssl"
echo "$LD_LIBRARY_PATH"
file "${HERE}/usr/openssl"

exec "${HERE}/usr/bin/qtads" "$@"

What does it print when you run it with ./squashfs-root/AppRun?

Then replace everything again with:

#! /bin/sh
HERE="$(dirname "$(readlink -f "${0}")")"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${HERE}/usr/openssl"
exec "${HERE}/usr/bin/qtads" "$@"

And check if that works.

1 Like

Will report back once I have my laptop! :grin:

1 Like

Results:

:./squashfs-root/usr/openssl
./squashfs-root/usr/openssl: directory

Nothing was printed to terminal this time, but both times the program ran just fine, and I had the update setting set to “on application launch”.

1 Like

That is weird. Those should be absolute paths. What does the following command print, when inside the squashfs-root directory:

dirname "$(readlink -f ./AppRun)"

Entirely my fault. After poking around some linux forums over the years while trying to find solutions, I noticed people often censor their usernames and such, and I guess I absorbed the habit without realizing.

The full output with the full paths are the following:

jessica@jesstop:~/Desktop/TextAdventures/QTads$ ./squashfs-root/AppRun
:/home/jessica/Desktop/TextAdventures/QTads/squashfs-root/usr/openssl
/home/jessica/Desktop/TextAdventures/QTads/squashfs-root/usr/openssl: directory

My apologies. Likely a deep-rooted habit from a life on the spectrum, now that I think about it.

1 Like

Ah, OK. That part of the script works fine then.

But I’m stumped. If you launch the appimage itself, you get the error. If you extract it and manually launch AppRun, there’s no error. I assume there’s also no error if you just extract the appimage without modifying AppRun and launch that?

1 Like

Results are:

jessica@jesstop:~/Desktop/TextAdventures/QTads$ ./squashfs-root/AppRun
qt.network.ssl: Incompatible version of OpenSSL (built with OpenSSL 1.x, runtime version is >= 3.x)
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
1 Like

But if you just delete this part without modifying anything else:

case "${XDG_CURRENT_DESKTOP}" in
    *GNOME*|*gnome*|*XFCE*)
        export QT_QPA_PLATFORMTHEME=gtk2
        ;;
esac

Then it’s fine?

1 Like

Nope!

Results:

jessica@jesstop:~/Desktop/TextAdventures/QTads$ ./squashfs-root/AppRun
qt.network.ssl: Incompatible version of OpenSSL (built with OpenSSL 1.x, runtime version is >= 3.x)
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed
qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

File looks like this, after removing the part you provided:

#! /bin/sh

HERE="$(dirname "$(readlink -f "${0}")")"

# try to make Qt apps more "native looking" on Gtk-based desktops, if possible
# see https://github.com/AppImage/AppImageKit/issues/977#issue-462374883


# If a system provided openssl library cannot be found, or is not 1.1.x, use the bundled one.
case "$(openssl version -v)" in
    'OpenSSL 1.1.'*)
        true
        ;;
    *)
        export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"${HERE}/usr/openssl"
        ;;
esac

exec "${HERE}/usr/bin/qtads" "$@"
1 Like