aclap-dev / vdhcoapp

Companion application for Video DownloadHelper browser add-on
GNU General Public License v2.0
1.8k stars 290 forks source link

Errors on Fedora 26 (64-bit) both --user and --system installs #5

Closed gaveen closed 6 years ago

gaveen commented 6 years ago

Since I had trouble getting 1.0.7 to work, I removed it and installed 1.0.9. But the same errors persists. Please see below for details.

Environment

Distro: Fedora 26 (64-bit) with all latest updates installed Browser: Firefox Quantum 57.0 (Fedora - 1.0 build)

Error with user-wide install

How to reproduce:

  1. Install latest Video DownloadHelper
  2. Install the Companion App user-wide
  3. Restart Firefox
  4. Try to download an ADP video

Companion App Status:

Companion App installed

Found companion app: VdhCoApp 1.0.9
Companion app binary: /home/xxxxxx/net.downloadhelper.coapp-1.0.9/bin/net.downloadhelper.coapp-linux-64

Error details:

Failed getting info from "Web Video"

Exit code: 127
/home/xxxxxx/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/ffprobe: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory

Additional remarks:

Error with system-wide install

How to reproduce:

  1. Install latest Video DownloadHelper
  2. Install the Companion App user-wide
  3. Restart Firefox
  4. Try to download an ADP video

Companion App Status:

Companion App not installed

Additional remarks:

gaveen commented 6 years ago

Just throwing out an idea here. Would it terribly inconvenience you if the Linux builds of the Co App uses system ffmpeg?

gaveen commented 6 years ago

Please find ldd output below on a user-wide install

$ ldd ~/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/ffprobe 
    linux-vdso.so.1 (0x00007ffc4fbfd000)
    libavdevice.so.56 => not found
    libavfilter.so.5 => not found
    libavformat.so.56 => not found
    libavcodec.so.56 => not found
    libavresample.so.2 => not found
    libpostproc.so.53 => not found
    libswresample.so.1 => not found
    libswscale.so.3 => not found
    libavutil.so.54 => not found
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff216496000)
    libm.so.6 => /lib64/libm.so.6 (0x00007ff216180000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ff215dab000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff2166b5000)

$ ldd ~/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/ffmpeg
    linux-vdso.so.1 (0x00007ffe302ce000)
    libavdevice.so.56 => not found
    libavfilter.so.5 => not found
    libavformat.so.56 => not found
    libavcodec.so.56 => not found
    libavresample.so.2 => not found
    libpostproc.so.53 => not found
    libswresample.so.1 => not found
    libswscale.so.3 => not found
    libavutil.so.54 => not found
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fca50f14000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fca50bfe000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fca50829000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fca51133000)
mi-g commented 6 years ago

Creating a linux release that works on all linux distributions is not a piece of cake :)

Can you find a file libbz2.so.xxx in your system and make a /usr/lib/libbz2.so.1.0 pointing to it ?

Yes, allowing to use an alternative ffmpeg is something that is expected to happen at some point. It's just that for now, this is not the priority.

mi-g commented 6 years ago

Try instead: LD_LIBRARY_PATH=~/net.downloadhelper.coapp-1.0.9/converter/build/linux/64 ldd ~/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/ffprobe. Setting the library path is how those binaries are executed.

gaveen commented 6 years ago

Got it! It seems Fedora doesn't have a libbz2.so.1.0. Still not sure what's wrong about the system-wide install. But I'm perfectly happy with a working user-wide install.

I installed to a custom path (i.e., ~/Apps/net.downloadhelper.coapp-1.0.9/), because I don't like clutter in my $HOME.

This is how it was before:

$ LD_LIBRARY_PATH=~/Apps/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/ ldd ~/Apps/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/ffprobe 
    linux-vdso.so.1 (0x00007ffc0b37c000)
    libavdevice.so.56 => /home/xxxxxx/Apps/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/libavdevice.so.56 (0x00007ffbc5f21000)
        -- snip --
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffbc345a000)
    libm.so.6 => /lib64/libm.so.6 (0x00007ffbc3144000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ffbc2d6f000)
    libXv.so.1 => /lib64/libXv.so.1 (0x00007ffbc2b6a000)
    libX11.so.6 => /lib64/libX11.so.6 (0x00007ffbc282c000)
    libXext.so.6 => /lib64/libXext.so.6 (0x00007ffbc261a000)
    libasound.so.2 => /lib64/libasound.so.2 (0x00007ffbc231d000)
    libSDL-1.2.so.0 => /home/xxxxxx/Apps/net.downloadhelper.coapp-1.0.9/converter/build/linux/64/libSDL-1.2.so.0 (0x00007ffbc20ac000)
    libbz2.so.1.0 => not found
    -- snip --

I had to create a symlink with: $ sudo ln -s /usr/lib64/libbz2.so.1 /usr/lib64/libbz2.so.1.0

And, Bob's your uncle. Thanks! :ok_hand:

mi-g commented 6 years ago

Great ! Congrats

hhyyrylainen commented 6 years ago

I also had to run that symbolic link creation (sudo ln -s /usr/lib64/libbz2.so.1 /usr/lib64/libbz2.so.1.0) on fedora.

Would it make sense for the install to automatically make that link if it detects that libbz2.so.1 exists but no libbz2.so.1.0 is present?

mi-g commented 6 years ago

Yes, but that wouldn't work when installed as user without admin privileges.

It would be better to install libbz2 along with other coapp libraries, like with libz. It means installing libbz2 from source code in converter/get-sources.sh, modify converter/build-apps.sh to make sure it compiles and copy the resulting lib to the build directory.

This is open-source code, any Fedora user with dev knowledge to volunteer ?