Dependency hell in LXLE

Katie Boundary

New Member
As an arbitrary exercise, I'm trying to build VLC media player from source in LXLE. One of the first things I do after a fresh format and install is copy this from a text file on my Windows partition and paste it into sakura:

Code:
sudo apt-get install git build-essential pkg-config libtool automake autopoint gettext liblua5.2-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev libopenal-dev libsdl2-dev libgtk-3-dev yasm liba52-0.7.4-dev flex bison
I don't quite remember what all of that is for. Some of it is direct dependencies for VLC, some of it is dependencies for ffmpeg (which is a dependency for VLC), and some of it is dependencies for unrelated stuff like PCem, wxWidgets, and WINE.

Then, I download the ffmpeg source, build it, and install it. No problems.

Then when I go to ./configure VLC, it tells me LUA is missing. This shouldn't be the case, since the first thing I did was install liblua5.2-dev, but there's a way around that: "./configure --disable-lua". This gives me a new missing dependency: XCB. And this is where the doo doo really hits the fan. There are no .deb files or online instructions I can find for installing XCB from a repo (at least, none that work), so I'm stuck with compiling XCB from source. This requires XCB-proto ("sudo apt-get install xcb-proto" works), Xau, and pthread-stubs. I can't find any info on installing Xau from a repo, so I'm stuck compiling THAT from source, which Linux From Scratch tells me requires Xorgproto, and there's no information anywhere on installing Xorgproto except on Arch and FreeBSD...

Why is it so damn hard for people to get the libraries that they need?
 


JasKinasis

Well-Known Member
Try running:
Code:
sudo apt build-dep vlc
That should install all of the build dependencies used to build the version of vlc that is in the repos.
And if memory serves, there are one or two additional packages to install if you want to build the QT interface for it.....
There's a thread somewhere here where I helped @blackneos940 build vlc from source. I'll update this post with a link when I've found it!

Edit:
Here it is:

That includes instructions for the missing xcb libs.
For the xau dependency, you will need libxau6 and libxau-dev.

And if you don't want to build the qt interface for vlc - then skip installing the qtquick library and the build-dep's for the vlc-plugin-qt package (referenced in one of the earlier posts in the linked thread!)
 
Last edited:

Katie Boundary

New Member
Try running:
Code:
sudo apt build-dep vlc
"E: You must put some 'source' URIs in your sources.list"

So it seems that after installing the build-deps for vlc and vlc-plugin-qt, you need to install the following packages:
Code:
sudo apt install libxcb-shm0-dev libxcb-xv0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-composite0-dev libx11-xcb-dev qtquickcontrols2-5-dev
That got me through the XCB issue, but now it's complaining about ffmpeg being missing! I know I installeg ffmpeg because I still have the deb file that checkinstall gave me!

attempting to build THAT from source yields:

Code:
[email protected]:~/Desktop/libXau-1.0.9$ make
make  all-recursive
make[1]: Entering directory '/home/wds/Desktop/libXau-1.0.9'
Making all in man
make[2]: Entering directory '/home/wds/Desktop/libXau-1.0.9/man'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/wds/Desktop/libXau-1.0.9/man'
make[2]: Entering directory '/home/wds/Desktop/libXau-1.0.9'
make[2]: Leaving directory '/home/wds/Desktop/libXau-1.0.9'
make[1]: Leaving directory '/home/wds/Desktop/libXau-1.0.9'
 
Last edited:

JasKinasis

Well-Known Member
"E: You must put some 'source' URIs in your sources.list"
Ah, sorry! My bad!

I completely forgot to mention, you need to make sure that you have the source repositories enabled in /etc/apt/sources.list

I forgot to mention it in the other thread too!
@blackneos940 got around this issue by uncommenting the source-repo's in /etc/apt/sources.list using this command:
Code:
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
Then run:
Code:
sudo apt update
To update your package lists before running any apt build-dep commands.
Sorry! I'd forget my head if it wasn't screwed on!

Alternatively - open /etc/apt/sources.list with a text editor (as root) and ensure that your repos deb-src urls are uncommented.
 
Last edited:

JasKinasis

Well-Known Member
@Katie Boundary
Don't worry about building xau, or xcb - if you installed the xcb libs - you don't need it. xau would have been installed when you installed xcb.

From start to finish, I would do this:
1. enable source repositories in /etc/apt/sources.list
2. run sudo apt update to update the package lists
Once the source repos are enabled and the package lists are updated - you can download build deps or source-code for any packages that are available in the repos.

3. install the build-deps for vlc (and optionally the build-deps for any of the vlc plugin packages in the repos)
4. install the missing libs that for some reason don't get pulled in via the build-dep commands (detailed in the link in my initial post - xcb etc...)
5. Enter the vlc source tree and run the bootstrap script, then configure and build.

That should do everything - no need to compile xau, or xcb.

Also - when building software on a debian based system - if you're ever unsure about where to find the package names for library dependencies -the apt search, and/or apt-cache search commands are your best friends and should be your first port of call.

So for example - when you needed the xcb development libraries/packages:
Code:
apt-cache search --names-only xcb | grep dev
That would yield a list of all of the xcb dev packages (and there are a lot of them!)

If searching the repo's for libraries ever draws a blank - that's when you'd need to try to download them from a 3rd party source. But generally speaking - if a piece of software is available in the repos - then all of its build dependencies will also be available to you.
 

Katie Boundary

New Member
I'll see what can be done about some of those instructions. For now, though:

make sure that you have the source repositories enabled in /etc/apt/sources.list
enable source repositories in /etc/apt/sources.list
This would be great if I knew what repositories to add



EDIT: uncommenting the sources.list file DID allow sudo apt build-dep vlc to install stuff. Atempting to compile VLC after that, however, still gave me a complaint about ffmpeg being missing. I tried reconfiguring, recompiling, and reinstalling ffmeg in the hope that one of the new libraries will have helped, and that all went without any error, but now when I try to configure VLC again, it's back to giving me XCB errors.
 
Last edited:

JasKinasis

Well-Known Member
If you installed the xcb dev packages listed in the other thread, it should be there.
Can you post the exact error messages?
 

wizardfromoz

Super Moderator
Staff member
Gold Supporter
"No package 'XCB' found"
Just to be clear here (and welcome to linux.org :))

Is that

"No package 'XCB' found"

or

"No package 'xcb' found"

Cheers

Chris Turner
wizardfromoz
 

blackneos940

Active Member
Ah, sorry! My bad!

I completely forgot to mention, you need to make sure that you have the source repositories enabled in /etc/apt/sources.list

I forgot to mention it in the other thread too!
@blackneos940 got around this issue by uncommenting the source-repo's in /etc/apt/sources.list using this command:
Code:
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
Then run:
Code:
sudo apt update
To update your package lists before running any apt build-dep commands.
Sorry! I'd forget my head if it wasn't screwed on!

Alternatively - open /etc/apt/sources.list with a text editor (as root) and ensure that your repos deb-src urls are uncommented.
Heh, yeah. :3 But I already forgot about that.... That must've been liek 3 YEARS ago now. :3
 

blackneos940

Active Member
As an arbitrary exercise, I'm trying to build VLC media player from source in LXLE. One of the first things I do after a fresh format and install is copy this from a text file on my Windows partition and paste it into sakura:

Code:
sudo apt-get install git build-essential pkg-config libtool automake autopoint gettext liblua5.2-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev libopenal-dev libsdl2-dev libgtk-3-dev yasm liba52-0.7.4-dev flex bison
I don't quite remember what all of that is for. Some of it is direct dependencies for VLC, some of it is dependencies for ffmpeg (which is a dependency for VLC), and some of it is dependencies for unrelated stuff like PCem, wxWidgets, and WINE.

Then, I download the ffmpeg source, build it, and install it. No problems.

Then when I go to ./configure VLC, it tells me LUA is missing. This shouldn't be the case, since the first thing I did was install liblua5.2-dev, but there's a way around that: "./configure --disable-lua". This gives me a new missing dependency: XCB. And this is where the doo doo really hits the fan. There are no .deb files or online instructions I can find for installing XCB from a repo (at least, none that work), so I'm stuck with compiling XCB from source. This requires XCB-proto ("sudo apt-get install xcb-proto" works), Xau, and pthread-stubs. I can't find any info on installing Xau from a repo, so I'm stuck compiling THAT from source, which Linux From Scratch tells me requires Xorgproto, and there's no information anywhere on installing Xorgproto except on Arch and FreeBSD...

Why is it so damn hard for people to get the libraries that they need?
Welcome to the wonderful world of Compiling. :D No, seriously, I know what you mean... I tried Compiling VLC, JUST the CLI portion, and ONLY that, and I seem to remember that I was missing liek a bunch of things relating to QT5, and @JasKinasis had to help me through just what to install from the QT5 Packages... :) And here I was going to install EVERYTHING! :O Do you know how much space that would have taken? :3 Well, how is everything? :3 Did it work out for you? :3
 


Members online



Top