Hi Russell, I see an Arch repository but sadly, nothing in it! Could I request you to kindly provide Arch builds?
I've used both the deb and rpm versions as the basis for setting Minsky up on my Arch system, but invariably some dependency is not found. In the case of the rpm builds, it looks for ncurses v. 6.0, but fails to start even when I provide that version.
An Arch user! More power to you. I have used Arch in the past for a little Raspberry Pi system. To be honest, I don't really know what is required to get OBS to build Arch, though. Some of the documentation mentions a PKGBUILD file, but I can't seem to find any documentation about what goes into that file.
Ha ha, indeed I use Arch BTW!
Thank you, I will check out the link you mentioned. I will also explore creating a PKGBUILD file for Arch. For that the main thing I will need is a list of dependencies for minsky.
Error: Could not locate the bindings file. Tried:
→ /usr/lib/minsky/resources/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/compiled/12.18.3/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/addon-build/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/addon-build/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/addon-build/node-addons/minskyRESTService.node
→ /usr/lib/minsky/resources/app.asar/lib/node-addons/minskyRESTService.node
at bindings (/usr/lib/minsky/resources/app.asar/node_modules/bindings/bindings.js:126:9)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:203:42)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:599:77)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:2976:74)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:4579:90)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Module.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:6078:66)
A JavaScript error occurred in the main process
Uncaught Exception:
TypeError: Cannot read property 'setMessageCallback' of null
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:216:13)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:599:77)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:2976:74)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:4579:90)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Module.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:6078:66)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
Minsky-3.x has a Javascript frontend, and a C++ backend, delivered in their own separate packages. The reason for doing it this way is that OBS build servers do not have internet access, so npm installs, builds etc are impossible. So what I do is perform the Javascript compile on my local system (x86_64 only :( ), and load the compiled code into the minsky package, and the C++ backend has a traditional build from source approach (i86 and x86_64 only, because the other architectures (Arm etc), do not have adequate RAM to build Minsky), and is released as minsky-restservice package.
It took a while getting the Arch equivalents for some package names - it was case-sensitive to add to the mix! Anyway, those were my best guesses and makepkg built and installed minsky.
However, on execution it still looks for libncurses.so.6 (I have ncurses 6.3 installed).
$ minsky
17:10:32.394 › Error: libncurses.so.6: cannot open shared object file: No such file or directory
at process.func as dlopen
at Object.Module.extensions..node (internal/modules/cjs/loader.js:1203:18)
at Object.func as .node
at Module.load (internal/modules/cjs/loader.js:992:32)
at Module._load (internal/modules/cjs/loader.js:885:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12633)
at Module.require (internal/modules/cjs/loader.js:1032:19)
at require (internal/modules/cjs/helpers.js:72:18)
at bindings (/usr/lib/minsky/resources/app.asar/node_modules/bindings/bindings.js:112:48)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:203:42)
A JavaScript error occurred in the main process
Uncaught Exception:
TypeError: Cannot read property 'setMessageCallback' of null
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:216:13)
at __webpack_require_ (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:599:77)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:2976:74)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:4579:90)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
at Module.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:6078:66)
at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
18:09:14.806 › Error: libboost_system.so.1.78.0: cannot open shared object file: No such file or directory
...
I have libboost_system.so.1.80.0 on my system.
So... if I have to symlink versions this way for the remaining deps, I think this is going to take too long. :(
Is there anyway we can avoid the hardcoded version references for the deps?
You're doing things the hard way. If you build from source code, you will link to the versions of the dependent libraries installed on your system. Each release of a distro has a different mix of dependent dynamic libs, which is why versions are provided for each individual release of each distro supported. So rather than trying to pick an rpm (which RPM?), build from source code.
Thanks. I tried building with Fedora Rawhide - tried both minsky-3.0.0-10.10.x86_64.rpm and minsky-3.0.0-10.11.src.rpm.
I also built using 'minskyjs-3.0.0.tar.gz' and 'Minsky-3.0.0.tar.gz' from the minsky and minsky-restservice folders above, with the same result.
I'm familiar with cloning git/github repos but here I'm confused as to where the source code I should be using is - could you direct me to the correct location?
Comments 9
Hi Russell, I see an Arch repository but sadly, nothing in it! Could I request you to kindly provide Arch builds?
I've used both the deb and rpm versions as the basis for setting Minsky up on my Arch system, but invariably some dependency is not found. In the case of the rpm builds, it looks for ncurses v. 6.0, but fails to start even when I provide that version.
Thanks!
An Arch user! More power to you. I have used Arch in the past for a little Raspberry Pi system. To be honest, I don't really know what is required to get OBS to build Arch, though. Some of the documentation mentions a PKGBUILD file, but I can't seem to find any documentation about what goes into that file.
You could try building Minsky from source code. Instructions are at https://github.com/highperformancecoder/minsky/blob/master/Compiling.md. But it is fiddly, so I understand if you don't want to do that :).
Ha ha, indeed I use Arch BTW! Thank you, I will check out the link you mentioned. I will also explore creating a PKGBUILD file for Arch. For that the main thing I will need is a list of dependencies for minsky.
So I was able to build minsky using PKGBUILD with:
depends=('gcc' 'tcl' 'tk' 'boost' 'librsvg' 'gsl' 'cairo' 'pango' 'readline' 'xorg-xclipboard' 'openssl')
optdepends=('')
source=('minsky-3.0.0-10.10.x86_64.rpm')
Now I don't get the ncurses error but I get this:
Error: Could not locate the bindings file. Tried: → /usr/lib/minsky/resources/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/compiled/12.18.3/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/addon-build/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/addon-build/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/addon-build/node-addons/minskyRESTService.node → /usr/lib/minsky/resources/app.asar/lib/node-addons/minskyRESTService.node at bindings (/usr/lib/minsky/resources/app.asar/node_modules/bindings/bindings.js:126:9) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:203:42) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:599:77) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:2976:74) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:4579:90) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Module.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:6078:66) A JavaScript error occurred in the main process Uncaught Exception: TypeError: Cannot read property 'setMessageCallback' of null at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:216:13) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:599:77) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:2976:74) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:4579:90) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Module.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:6078:66) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
You also need to depend on minsky-restservice.
Minsky-3.x has a Javascript frontend, and a C++ backend, delivered in their own separate packages. The reason for doing it this way is that OBS build servers do not have internet access, so npm installs, builds etc are impossible. So what I do is perform the Javascript compile on my local system (x86_64 only :( ), and load the compiled code into the minsky package, and the C++ backend has a traditional build from source approach (i86 and x86_64 only, because the other architectures (Arm etc), do not have adequate RAM to build Minsky), and is released as minsky-restservice package.
So I added minsky-restservice as a source file in the PKGBUILD:
pkgname=minsky
pkgver=3.0.0-10.10
pkgrel=1
pkgdesc="Economics dynamical systems simulator"
arch=('x86_64')
depends=('gcc' 'tcl' 'tk' 'boost' 'librsvg' 'gsl' 'cairo' 'pango' 'readline' 'xorg-xclipboard' 'openssl' 'json-spirit' 'glibc' 'libx11' 'libxft' 'mate-settings-daemon' 'subtitleeditor' 'db' 'fontconfig' 'freetype2' 'gdk-pixbuf2' 'glib2' 'harfbuzz' 'ncurses' 'libc++' 'libxcb' 'zlib')
optdepends=('')
source=('minsky-3.0.0-10.10.x86_64.rpm' 'minsky-restservice-3.0.0-2.9.x86_64.rpm')
sha256sums=('SKIP' 'SKIP')
package() { find $srcdir/ -mindepth 1 -maxdepth 1 -type d | xargs cp -r -t "$pkgdir" }
It took a while getting the Arch equivalents for some package names - it was case-sensitive to add to the mix! Anyway, those were my best guesses and makepkg built and installed minsky.
However, on execution it still looks for libncurses.so.6 (I have ncurses 6.3 installed).
$ minsky
17:10:32.394 › Error: libncurses.so.6: cannot open shared object file: No such file or directory at process.func as dlopen at Object.Module.extensions..node (internal/modules/cjs/loader.js:1203:18) at Object.func as .node at Module.load (internal/modules/cjs/loader.js:992:32) at Module._load (internal/modules/cjs/loader.js:885:14) at Function.f._load (electron/js2c/asar_bundle.js:5:12633) at Module.require (internal/modules/cjs/loader.js:1032:19) at require (internal/modules/cjs/helpers.js:72:18) at bindings (/usr/lib/minsky/resources/app.asar/node_modules/bindings/bindings.js:112:48) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:203:42) A JavaScript error occurred in the main process Uncaught Exception: TypeError: Cannot read property 'setMessageCallback' of null at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:216:13) at __webpack_require_ (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:599:77) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:2976:74) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Object.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:4579:90) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30) at Module.<anonymous> (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:6078:66) at webpack_require (/usr/lib/minsky/resources/app.asar/minsky-electron/main.js:20:30)
Any further advice will be appreciated. TIA
I was able to create symlinks which fixed that problem:
$ sudo ln -s /usr/lib/libncursesw.so.6.3 /usr/lib/libncurses.so.6
$ sudo ln -s /usr/lib/libncursesw.so.6.3 /usr/lib/libtinfo.so.6
And then I was served up with:
$ minsky
18:09:14.806 › Error: libboost_system.so.1.78.0: cannot open shared object file: No such file or directory ...
I have libboost_system.so.1.80.0 on my system.
So... if I have to symlink versions this way for the remaining deps, I think this is going to take too long. :( Is there anyway we can avoid the hardcoded version references for the deps?
You're doing things the hard way. If you build from source code, you will link to the versions of the dependent libraries installed on your system. Each release of a distro has a different mix of dependent dynamic libs, which is why versions are provided for each individual release of each distro supported. So rather than trying to pick an rpm (which RPM?), build from source code.
Thanks. I tried building with Fedora Rawhide - tried both minsky-3.0.0-10.10.x86_64.rpm and minsky-3.0.0-10.11.src.rpm.
I also built using 'minskyjs-3.0.0.tar.gz' and 'Minsky-3.0.0.tar.gz' from the minsky and minsky-restservice folders above, with the same result.
I'm familiar with cloning git/github repos but here I'm confused as to where the source code I should be using is - could you direct me to the correct location?