site  contact  subhomenews

Chasing dependencies

July 29, 2019 — BarryK

I thought that it would be a good idea to create some more SFS files for EasyOS, so I downloaded the source tarball for Openshot, a video editor. This is written in Python, and requires 'pyqt5', and then I started to follow the trail of dependencies...

After several hours, at 1am, got to compile Openshot itself, or rather, just run it as it is Python scripts. It reported a module missing, which seems to be due to wrong version of one of the deps. That particular dep was required to be version later that something, and I used the latest version, but that turned out to be a mistake, as the latest version has a change that breaks Openshot.

Grrr. I decided this is a mugs game. Huge waste of time for me to be doing this, when I could be focussed on development of the principles of Easy.

So much more convenient if everything is already compiled. I was planning to base Easy on Slackware binary packages, but I don't know what is happening with the Slackware project.

Decided to have a play with building Easy from Debian Buster binary DEBs. Did a build, got the commandline, but no X. I used a lot of packages from Pyro64, and discovered that they don't work. They are 64-bit, in a 64-bit system, 'ldd' shows their shared libraries are present, but when try to run them, get "No such file or directory". Permissions OK.  Hmmm. 

EDIT 2019-07-29
Yippee, found out why the binaries from Pyro were not working in the Debian Buster build. Running "Easy Buster64" right now.

The Pyro binaries were compiled in my fork of OpenEmbedded, without multi-architecture support, so all libs were in /lib and /usr/lib. Buster is multi-arch, and the 64-bit libs are mostly in /lib/x86_64-linux-gnu and /usr/lib/x86_64-linux-gnu.

The Pyro binaries are hardcoded to expect /lib/ld-linux-x86-64.so.2. I created a symlink to /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2, For good measure, did same for libc.so.6. The Pyro binaries now run. Including SeaMonkey, using now.

I checked out Radky's BusterPup, 32-bit Puppy built from Debian Buster DEBs. He has built with /lib/x86_64-linux-gnu and /usr/lib/x86_64-linux-gnu symlinks to ".", thus all libs will be in /lib and /usr/lib, which completely avoids these kind of problems.

If you want to know more about BusterPup:

http://www.murga-linux.com/puppy/viewtopic.php?t=116570

I will keep the separate multi-arch folders, for maximum compatibility with Debian.

I am seriously thinking of going over to Buster DEBs for future EasyOS releases. One reason, well, the main reason, is all of those packages in the Debian repo, that I won't have to compile, or attempt to compile. Openshot for example!

Thinking that version 1.1 will be the last of the Pyro series, then 2.0 will be the start of the Buster series. 

Tags: easy