Here all the nasty details: https://gist.github.com/KVonGit/46dd2928aea6066c3d9fab3655677956
To summarize, though:
Harfbuzz is too old (1.4.2)
.And that is where I'm stuck.
Also, for the record, I tried to run the current release as well as my previous build of Squiffy which used to work on Arch Linux just a few months ago before I decided building it from the current source code might help. I had the same problems with libgconf and Harfbuzz.)
Funny thing is, my harfbuzz version is 2.8.0-1; so I am thoroughly confused.
Anyone have any ideas or insight?
I'm going to try it on Linux Mint (which sorta kinda might as well be Ubuntu). Maybe Arch Linux has just gotten too far ahead of everyone else, as Arch is prone to do.
I get the same end result on Linux Mint -- "Harfbuzz too old".
It wasn't as hard to build it on Linux Mint, though. On Linux Mint, the "current" version node-js is version 10.19.0, and it built the editor with no errors. I had to use apt
to install libgconf-2-4 to get past that error, though. And I am finally stuck at the Harfbuzz error.
I entered npm run-script web to run it in my browser on Linux Mint and on Arch Linux, and it loaded, but it wouldn't Run a game. I got an error concerning msgs
being undefined.
On Windows 10, I get this when I use the current version of node-js (14.16.0):
...but...
I can use nvm use 11.15.0
, and build it with node-js v11.15.0. (This is the newest version that doesn't throw the "primordials" error, after trial and error.)
After I ran gulp windows
, the editor opened, but everything was just blank.
I opened the DevTools and saw an error that jquery was missing from the app's "node_modules" folder.
So, I copied the "jquery" folder from "squiffy-editor\bower_components" to "squiffy-editor\Squiffy-win32-ia32\resources\app\node_modules", and now it runs and everything seems to work correctly on Windows 10.
Back on Linux, I can enter npm start
and it will open and work properly.
But I can run gulp linux
and the build won't even open, throwing the the PANGO error concerning Harfbuzz.
Hrmm... I know that I had to manually add the jquery folder to the Windows build . . .
Wait . . .
Nope. I added the "jquery" directory to the Linux build (and it was missing), but I still get the Harfbuzz crap.
Something else has to be missing. Meaning there has to be something that needs to be included in the build that handles something concerning Pango and Harfbuzz, and that something has to be in the main directory -- because that something has to be there for npm start
to successfully run the Squiffy editor. Right?
What am I missing?
Alright!
On Linux, open the gulpfile.js file in a text editor, and on line 11, change the electronVersion
value from "1.8.1" to "4.2.12".
It seems the Electron people fixed this issue with version 4.2.x. (see: https://github.com/electron/electron/issues/20348#issuecomment-538490939)
After that, gulp linux
will build a Squiffy editor that will open! Hurray! Well... you still have to copy the "jquery" directory from "bower_components/" to "Squiffy-linux-x64/resources/app/node_modules/", but it works after that!
On Arch Linux, I do get a Fontconfig warning:
Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs"
...but it still works, and I don't see any font issues (although I haven't really tested things out, as far as fonts are concerned).
I also changed the Electron version in the "package.json" file to "~4.2.12", but you have to change the version in "gulpfile.js" for it to change which version of Electron is used in the build.
On Linux Mint (sorta kinda basically pretty much the same as Ubuntu), I can follow the same steps as on Arch Linux.
In gulpfile.js, I change the electronVersion
variable's value from "1.8.1" to "4.2.12", and in package.json, I changed the Electron version to "~4.2.12".
Those are the only two changes I made to files.
After building with gulp linux
, I have to copy the "jquery" directory from "bower_components" to "resources/app/node_modules/".
After those three extra steps, the build will run on Linux Mint.
NOTE 1: Linux Mint is currently using node-js version 10.19.0.
NOTE 2: Any version of node-js up to 11.15.0 seems to work with the Squiffy editor, but any version more recent than that will throw the error concerning "primordials".
Upgrading Electron to version 4.2.12 in both gulpfile.js and package.json seems to be a good idea.
I've downloaded the squiffy-editor repo, made those changes, and successfully built a working Squiffy editor in Windows 10, Arch Linux, and Linux Mint.
I have to add the "jquery" directory to "resources/app/node_modules" to the build after it builds, no matter what OS I'm using.
After that, though, the Squiffy editor works on every OS I have to test it with.
If someone has a Mac and nvm, node-js, and npm installed, can you (please) try to build the Squiffy editor after making these changes?
https://github.com/textadventures/squiffy-editor
electronVersion
to "1.8.1". Change that to "4.2.12".node --version
.)bower --version
and gulp --version
. If not installed, npm i bower -g
and/or npm i gulp-cli -g
, depending on which you need to install. NOTE that you might need to run this as sudo
, but not if you are using nvm to install node-js.npm install
.bower install
.gulp osx
.After that, I presume you will have a new directory: Squiffy-darwin-x64\.
In that directory, I think you'll find "resources/app/node_modules/". You will need to copy the "jquery" directory from "squiffy-editor/bower_components/" into "squiffy-editor/Squiffy-darwin-x64/resources/app/node_modules". In Linux (which I think is pretty much like this works on a Mac), I do that from the command line by running this command from the "squiffy-editor" directory: cp -R bower_components/jquery Squiffy-darwin-x64/resources/app/node_modules/
I think that's how it works on a Mac, too, but, if you make it that far, surely you don't need my help to copy a directory anyway, now that I think about it. :)