Gargoyle 2022.1

A new Gargoyle release is (finally) available! It can be downloaded here. There are installers and portable versions for Windows (32- and 64-bit), disk images for macOS (Intel and ARM), and a Linux AppImage.

For most people this will be a generally transparent update, although the default font has been switched to Charis SIL, which is much more similar to the original Bitstream Charter than the previous font (Noto Serif). The main user-facing change, as usual, is updated interpreters. A detailed set of release notes is available at the download site.

For anybody building on Linux, the ancient Gtk2 and SDL1 have been replaced in favor of Qt (5 or 6) and SDL2. This should make it actually usable on modern distributions.

14 Likes

I downloaded gargoyle-2022.1-mac-intel.dmg and tried to open the app on my Mid 2010 Mac Pro, an Intel machine running High Sierra (10.13.6). I got the following mesage:

gargoyle-error

Iā€™ll past the full error report below:

Summary

Process: Gargoyle [5074]
Path: /Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/Gargoyle
Identifier: com.googlecode.garglk.Launcher
Version: 2022.1
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Gargoyle [5074]
User ID: 501

Date/Time: 2022-01-31 21:24:05.043 +1100
OS Version: Mac OS X 10.13.6 (17G14042)
Report Version: 12
Anonymous UUID: 09DAF1E8-373D-0F0D-3361-5D718976B38E

Time Awake Since Boot: 26000 seconds

System Integrity Protection: enabled

Crashed Thread: 0

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Termination Reason: DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
Library not loaded: @executable_path/ā€¦/Frameworks/libfreetype.6.dylib
Referenced from: /Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/Gargoyle
Reason: no suitable image found. Did find:
/Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/ā€¦/Frameworks/libfreetype.6.dylib: cannot load ā€˜libfreetype.6.dylibā€™ (load command 0x80000034 is unknown)
/Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/ā€¦/Frameworks/libfreetype.6.dylib: stat() failed with errno=1
/Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/ā€¦/Frameworks/libfreetype.6.dylib: cannot load ā€˜libfreetype.6.dylibā€™ (load command 0x80000034 is unknown)
/Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/ā€¦/Frameworks/libfreetype.6.dylib: stat() failed with errno=1

Binary Images:
0x1001b9000 - 0x100238fff +com.googlecode.garglk.Launcher (2022.1) <6F59886B-5F6A-31C5-A703-7214B9ABC033> /Applications/Interactive Fiction/Gargoyle 2022-1-intel.app/Contents/MacOS/Gargoyle
0x105aa0000 - 0x105aeaadf dyld (551.5) /usr/lib/dyld

Model: MacPro5,1, BootROM MP51.0084.B00, 8 processors, Quad-Core Intel Xeon, 2.4 GHz, 8 GB, SMC 1.39f11
Graphics: NVIDIA Quadro FX 4800, NVIDIA Quadro FX 4800, PCIe
Memory Module: DIMM 1, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 2, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 3, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 4, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 5, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 6, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 7, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
Memory Module: DIMM 8, 1 GB, DDR3 ECC, 1066 MHz, 0x80CE, 0x4D33393142323837334648302D4348392020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x8E), Broadcom BCM43xx 1.0 (5.106.98.102.30)
Bluetooth: Version 6.0.7f22, 3 services, 18 devices, 1 incoming serial ports
Network Service: Ethernet 1, Ethernet, en0
PCI Card: NVIDIA Quadro FX 4800, Display Controller, Slot-2
Serial ATA Device: HL-DT-ST DVD-RW GH41N
Serial ATA Device: HGST HDN724040ALE640, 4 TB
Serial ATA Device: WDC WD1001FALS-41Y6A0, 1 TB
Serial ATA Device: WDC WD20EARX-00PASB0, 2 TB
USB Device: USB 2.0 Bus
USB Device: Scarlett 2i2 USB
USB Device: USB 2.0 Bus
USB Device: Keyboard Hub
USB Device: Apple Keyboard
USB Device: USB Bus
USB Device: BRCM2046 Hub
USB Device: Bluetooth USB Host Controller
USB Device: USB Bus
USB Device: USB Bus
USB Device: USB Bus
USB Device: Evoluent VerticalMouse 4 Left
USB Device: USB Bus
USB Device: USB Bus
USB Device: USB Optical Mouse
FireWire Device: built-in_hub, Up to 800 Mb/sec
Thunderbolt Bus:

-Wade

Downloaded the Linux version: Works perfectly fine, with only one minor issue: the terp exits to the shell, whose is fine, but sometimes people want to play (or testā€¦) multiple story files; my suggestion is that a switch should be added for returning to the loading window instead of exiting to the shell

(I know that allowing an arbitrary number of story files (and 'terps) to be loaded and run in the same session is a prime recipe for memory leaks, but Iā€™m sure you know how to care about balancing allocation and freeing memory)

Best regards from Italy,
dott. Piergiorgio.

1 Like

I built the Mac Intel Gargoyle on MacOS 12.1. Because of the way itā€™s built (using homebrew libraries), it will only run on MacOS 12 or later. (And in fact iā€™m not sure about 12.0.)

Unfortunately I do not have an earlier Mac to build on. Last time we did this (2019?) I had an old Mac to use, but that machine has been retired.

Itā€™s possible that this could be solved with some kind of virtual Mac building environment, but I donā€™t have that set up.

(This problem is because Gargoyle uses a weird, hacky build path; it relies on libraries that were intended for on the local machine only. Which is to say, my machine. What youā€™re ā€œsupposedā€ to do for apps like this is to build every dependency from source using Xcode. Then you can set the target OS to ā€œ10.9 or laterā€, I believe. But that would be a whole lotta project fiddling.)

Iā€™ve added this as an issue (Add the option to select new stories after interpreters exit Ā· Issue #612 Ā· garglk/garglk Ā· GitHub). Iā€™ll take a look to see how feasible this is.

Iā€™ve built a copy on Mojave (10.14.6). You can get it here and see if it works on High Sierra. It is not signed.

I donā€™t have a High Sierra system available, but if the Mojave build doesnā€™t work, I can at least try to get one running and build there.

I guess I could download it, sign it, and then upload it againā€¦

I built from source on Linux; it went smoothly. To run it, I had to specify LD_LIBRARY_PATH=/usr/local/lib64 to find the libraries (or I could have symlinked from /usr/lib to where they are). And on my HiDPI Gnome Wayland system, I have to use QT_QPA_PLATFORM=wayland to avoid getting a teeny font.

I just installed a High Sierra system and was able to run my Mojave build on it.

CMake defaults to a prefix of /usr/local, and if your distribution doesnā€™t add /usr/local/lib{64,} to the default library path, thatā€™d explain the need for LD_LIBRARY_PATH being set. Linux is also really annoying in that lib64 is used, in some places, for 64-bit libraries, but sometimes itā€™s just lib, and who knows if the proper one is used. Depending on the distribution, you can edit /etc/ld.so.conf or add a file to /etc/ld.so.conf.d, or possibly some other place (the man page for ld.so might have information), and add /usr/local/lib64.

But this is a good argument in favor of statically linking libgarglk. You can pass -DBUILD_SHARED_LIBS=OFF when building to build a static libgarglk, which should completely obviate the need for the linker path.

As for the Wayland issue, Iā€™m not sure why Qt isnā€™t using a Wayland backend by default when Wayland is running (I have neither Wayland nor a HiDPI monitor so I canā€™t test this properly). Did you build against Qt5? If so, you might try Qt6 (pass -DWITH_QT6=ON to CMake). Itā€™s possible that Qt6 has improved default Wayland support.

Just a note: For the same reasons, it is likely that the Apple Silicon / ARM build wonā€™t run on anything older than 12.1 Monterey either. I currently have no way to test this.

Iā€™m having an issue where garglk.ini isnā€™t working on macOS.

Iā€™ve noted a workaround in the issue, but to anybody reading here, if you have this problem, run the following in a terminal:

ln -s $HOME/garglk.ini $HOME/.garglkrc

Iā€™ve always wished it were $HOME/.garglkrc on MacOS anyway!

2 Likes

Does the new 2022.1 version allow command line invocation to specify the game file to launch? With the 2011 version, it was possible to launch a game via the command line by providing the game file as a parameter, e.g.:

gargoyle-free game.ulx

This did not appear to work using version 2019.1.1 (the .deb version from the releases page). The same invocation for that version caused a menu selection screen to appear.

And I can verify that build ran on my High Sierra system. Thanks much.

-Wade

Yes, but then, the 2019.1.1 version is supposed to work that way tooā€¦

The releases page only has .deb files for 2011.1. Is there somewhere else that 2019.1.1 .deb came from? Itā€™s possible it was built/packaged in a way that caused things to not work as they should. For what itā€™s worth, 2019.1.1 on Ubuntu 21.10 (installed via apt) works as expected for me.

@cas, my apologies for the error ā€“ it is apparently an unofficial release that I found somewhere and not, as you say, an official download. (Filename is gargoyle_2019.1-1-1804_1910-x86_64.deb.)

At any rate, thank you for responding and pointing out that it should be working that way. I look forward to upgrading!

If youā€™re willing to do that, Iā€™ll put it up on the releases page so it can be ā€œofficialā€.