magdesign / Vidifold

Wiki and Bug report repo for https://vidifold.com
3 stars 0 forks source link

Dependencies are not detected on Arch Linux #19

Closed dkiziridis closed 4 years ago

dkiziridis commented 4 years ago

2020-06-04_23-58

sh: dpkg-query: command not found

use which to look for packages, Arch Linux does not use dpkg.

ghost commented 4 years ago

Hi @ragouel, cool, thanks for pointing this out, I'll fix it shortly.

ghost commented 4 years ago

Hi @ragouel, that doesn't pick up most of the libraries on my local, only the ffmpeg. Does apt-cache pkgnames return the items in its list on your system? or do you have another suggestion? You can bypass the checks by running ./IQSynth 2 from the command line if that helps

dkiziridis commented 4 years ago

Hello @johnday-github , presumably you could implement a check to identify the distro by reading the contents of /etc/os-release, specifically the ID field. Arch has its' own naming system for some packages. The ones you should check on an Arch system are:

libpng12 ffmpeg sqlite freetype2 libjpeg-turbo

This is a standard /etc/os-release

NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux
ghost commented 4 years ago

Hi @ragouel, ah Arch Linux is an actual distribution. The sub-strings I'm checking for via 'dpkg-query -l' are:

maybe I don't need the #number at the end of some of these, and libjpeg-turbo is jpeg8.

I'm wondering if I could switch from 'dpkg-query -l' to a 'locate' comand, for instance if I use: locate freetype I can see strings with freetype2 but also the libfreetype6 string. Any chance you could see if its the same on your setup?

dkiziridis commented 4 years ago

dpkg is Ubuntu-related, arch uses pacman. locate is a bad option as it's not a standard Linux tool, at least not in Arch Linux anyway.

Checking for the distro and then running

pacman -Q freetype2
if [[ $? -eq 0 ]]; then
    echo "dependency found"
else
    echo "dependency missing"
fi

is a much more straightforward approach imo.

dkiziridis commented 4 years ago

Also, freetype2 provides /usr/lib/libfreetype.so.6, yes.

ghost commented 4 years ago

There's always more to learn!

If I check here https://www.archlinux.org/packages/?sort=&q=locate&maintainer=&flagged= it says locate is in the Core repo findutils package, my reading is it would be available by default on Arch?

Doesn't matter too much as I think your idea of checking the distro name is a good one. Before I try and get a default Arch Linux up and running so I can debug properly. Does it IQSynth work at all if you bypass the tests? can you run a video on it?

dkiziridis commented 4 years ago

Core is for packages that can seriously mess up your system, if an update turns out faulty. locate is provided by mlocate. With the exception of a handful of packages, nothing is standard on Arch Linux.

./IQSynth 2 produces:

Critical error (stage 2) unable to continue, press any key to exit image

I'm guessing a paths issue?

ghost commented 4 years ago

Ah, thanks for sticking with this. Not sure I fully understand but no matter. This is an initialization problem, very likely a OpenGL thing. At this point, could you run './IQSynth 1' please, it should generate a plain text log file (IQSynth-logfile) in the same directory, you can check the contents. Just a note to anyone else reading this, the file gets very big very quickly, its a messy debug so don't do this unless you have to. Please send it to contact@iqsynth.com, please don't post it here. This will hopefully tell me whats happening. Many thanks.

dkiziridis commented 4 years ago

Done.

ghost commented 4 years ago

Oh Wow, it really didn't get very far did it! LOL I'll have a quick look into this, but not looking good.

dkiziridis commented 4 years ago

Yes, I ran it multiple times to make sure. Still, just a few lines. Happy debugging.

ghost commented 4 years ago

no xrandr command... I wonder what the alternative would be on Arch Linux, I'm also wonder what other commands I might be relying on that will cause problems (not too many more, but I'll review this), and what the default display manager would be, etc....

At this point, I think I'd need to setup a working Arch Linux distro to follow through. I'm just going to stick to the Ubuntu setup for now.

I'm afraid I'm not chasing this rabbit, maybe later when the software has settled to a steady state. Sorry about that. Many thanks for the interest.

dkiziridis commented 4 years ago

Default xrandr, probably xorg-xrandr. Not sure why you need a display manager, it's only used for login/out. You probably don't have to setup an Arch system from scratch if you're familiar with Docker. There are many Arch Linux images available there. Either way, no problem.

ghost commented 4 years ago

I use xrandr to get hold of screen/monitor and display details (maybe not the best way but did the job). The Docker idea (think I used one once) is something I've not chased, so far as IQSynth requires access to decent graphic card drivers to run at all, and this seems to be a bit of a specialized setup in Docker, will review this once the software has settled.