HighPerformanceCoder's Linux Packages

Linux packages for a variety of Linux distros released through here.

Name Changed
Comments 9

Dorji's avatar

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!


Russell Sandish's avatar

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 :).


Dorji's avatar

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.


Dorji's avatar

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)


Russell Sandish's avatar

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.


Dorji's avatar

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


Dorji's avatar

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?


Russell Sandish's avatar

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.


Dorji's avatar

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?

openSUSE Build Service is sponsored by