Question / Help Cannot install obs-studio in Debian buster

elimtaft

New Member
Hi folks,

I would really appreciate some help here. I have two laptops both running Debian buster. One machine installed obs-studio just fine. The other did not, and it finds a different version. They are set up to use all the same apt repos. Even so, the machines are trying to install different versions of the package, which tells me it might have something to do with the architecture (the working on is 64-bit and the non-working one is 32-bit). Please let me know if you have any clues, I've been at this for some hours now.

On the machine that was able to install obs-studio:

Code:
$ uname -a
Linux etx1 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux

$ apt search obs-studio
Sorting... Done
Full Text Search... Done
obs-studio/stable,now 22.0.3+dfsg1-1 amd64 [installed]
  recorder and streamer for live video content

On the machine that cannot install obs-studio:

Code:
$ uname -a
Linux debian-st 4.19.0-9-686-pae #1 SMP Debian 4.19.118-2 (2020-04-29) i686 GNU/Linux

$ apt search obs-studio
Sorting... Done
Full Text Search... Done
obs-studio/unstable 25.0.3+dfsg1-2 i386
  recorder and streamer for live video content

Here is the error during install on the 32-bit machine:

Code:
The following packages have unmet dependencies:
 obs-studio : Depends: obs-plugins (= 25.0.3+dfsg1-2) but it is not going to be installed
              Depends: libobs0 (= 25.0.3+dfsg1-2) but it is not going to be installed
              Depends: libpython3.8 (>= 3.8.2) but it is not going to be installed
              Depends: libqt5core5a (>= 5.12.2) but 5.11.3+dfsg1-1+deb10u3 is to be installed
              Depends: libstdc++6 (>= 9) but 8.3.0-6 is to be installed
              Depends: python3 (>= 3.8~) but 3.7.3-1 is to be installed
              Depends: python3.8 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
 

sirmckee

New Member
Are those dependencies in the repo?

Code:
apt search -n "obs-plugins|libobs0|libqt5core5a|libstdc++6|python3"

If not, what is the repo obs-studio is being pulled from?
 

elimtaft

New Member
Hey sirmckee! Yes, they are dependencies listed in the Debian control file:

Code:
# apt show obs-studio
Package: obs-studio
Version: 25.0.3+dfsg1-2
Priority: optional
Section: video
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Installed-Size: 7,921 kB
Depends: obs-plugins (= 25.0.3+dfsg1-2), libavcodec58 (>= 7:4.0), libavformat58 (>= 7:4.0), libavutil56 (>= 7:4.0), libc6 (>= 2.27), libcurl3-gnutls (>= 7.16.2), libgcc-s1 (>= 4.2), libluajit-5.1-2 (>= 2.0.4+dfsg), libobs0 (= 25.0.3+dfsg1-2), libpython3.8 (>= 3.8.2), libqt5core5a (>= 5.12.2), libqt5gui5 (>= 5.9.0~beta) | libqt5gui5-gles (>= 5.9.0~beta), libqt5svg5 (>= 5.6.0~beta), libqt5widgets5 (>= 5.11.0~rc1), libqt5x11extras5 (>= 5.6.0), libqt5xml5 (>= 5.0.2), libstdc++6 (>= 9), python3 (<< 3.9), python3 (>= 3.8~), python3.8, python3:any
Homepage: https://obsproject.com
Tag: uitoolkit::qt
Download-Size: 1,598 kB
APT-Sources: http://deb.debian.org/debian unstable/main i386 Packages
Description: recorder and streamer for live video content
 OBS Studio is designed for efficiently recording and streaming live video
 content. It supports live RTP streaming to various streaming sites.
 .
 Other features include:
  * Encoding using H264 (x264) and AAC
  * Unlimited number of scenes and sources
  * File output to MP4 or FLV
  * GPU-based game capture for high performance game streaming
  * Bilinear or lanczos3 resampling
 .
 Note that OBS Studio requires an OpenGL 3.2 compatible video card.

It looks like they are being found in the debian unstable repo.

Code:
# apt search obs-studio
Sorting... Done
Full Text Search... Done
obs-studio/unstable 25.0.3+dfsg1-2 i386
  recorder and streamer for live video content

I can't get the install instructions on the site to work either. Trying to add the PPA, I get an error that "no valid OpenPGP data found." When I try to proceed with the install, it still only finds the package in unstable:

Code:
/trustdb.gpg: trustdb created
root@debian-st:~# add-apt-repository ppa:obsproject/obs-studio
 Latest stable release of OBS Studio
 More info: https://launchpad.net/~obsproject/+archive/ubuntu/obs-studio
Press [ENTER] to continue or ctrl-c to cancel adding it

gpg: keybox '/tmp/tmpxuectk30/pubring.gpg' created
gpg: /tmp/tmpxuectk30/trustdb.gpg: trustdb created
gpg: key EFC71127F425E228: public key "Launchpad PPA for obsproject" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no valid OpenPGP data found.

# apt policy obs-studio
obs-studio:
  Installed: (none)
  Candidate: 25.0.3+dfsg1-2
  Version table:
     25.0.3+dfsg1-2 10
         10 http://deb.debian.org/debian unstable/main i386 Packages
 

sirmckee

New Member
I do not doubt that the deps are listed in the package, I mean are they listed in the repo? According to this...

Code:
obs-studio : Depends: obs-plugins (= 25.0.3+dfsg1-2) but it is not going to be installed
              Depends: libobs0 (= 25.0.3+dfsg1-2) but it is not going to be installed
              Depends: libpython3.8 (>= 3.8.2) but it is not going to be installed
              Depends: python3.8 but it is not going to be installed

These are the packages that aren't going to be installed. You could try installing them manually, but the dependency management should be handled by apt so I'm curious if apt says why those aren't going to be installed. It's probably a conflict, or that they are missing from the repo.

Either way, if you can get those four packages installed, obs-studio should also install.
 

elimtaft

New Member
Yes, I have tried manually installing each package, and the reason they don't install is because each of those also have dependencies for other packages that are at a higher version than what would be installed. For example:
Code:
# apt install obs-plugins
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 obs-plugins : Depends: libavcodec58 (>= 7:4.2)
               Depends: libavformat58 (>= 7:4.2) but 7:4.1.4-1~deb10u1 is to be installed
               Depends: libobs0 (= 25.0.3+dfsg1-2) but it is not going to be installed
               Depends: libqt5core5a (>= 5.12.2) but 5.11.3+dfsg1-1+deb10u3 is to be installed
E: Unable to correct problems, you have held broken packages.

# apt install libobs0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libobs0 : Depends: libavcodec58 (>= 7:4.2)
           Depends: libavformat58 (>= 7:4.2) but 7:4.1.4-1~deb10u1 is to be installed
           Depends: libpython3.8 (>= 3.8.2) but it is not going to be installed
           Depends: libx11-xcb1 (>= 2:1.6.9) but 2:1.6.7-1 is to be installed
           Depends: libxcb-xinput0 (>= 1.14) but 1.13.1-2 is to be installed
E: Unable to correct problems, you have held broken packages.
 

sirmckee

New Member
Oh okay it looks like your repo is giving deps that are too old for that package.

Proper solution would be to get a more up to date repo for your installation, you may also be able to manually find/download each of those versions of packages.

A really h4X0r solution would be to modify the deb file to accept older versions.
 

elimtaft

New Member
What I find really odd is that I have the exact same apt repo setup on both of these machines, and yet they don't find the same version of obs-studio. Could this be because one of the machines is 64-bit and the other 32-bit?
 

Tuna

Member
What I find really odd is that I have the exact same apt repo setup on both of these machines, and yet they don't find the same version of obs-studio.
I doubt that. See the debian package db:
https://packages.debian.org/buster/obs-studio

Here you can see obs-studio package is only availabe on amd64. (version 22.0.3)

Only bullseye and sid repos have versions 32-bit (version 25.0.3). So you seem to try to pull obs from one of these repos while the dependencies being checked is from your buster one which is destined to fail.
 

elimtaft

New Member
I doubt that.

It is, in fact, the truth. But perhaps I am not being clear. I have the exact same apt repo setup on both machines. I literally tarred up the entire /etc/apt directory from the working machine and un-tarred it on the other machine just to make absolutely sure this was the case. That being said, both machines have the ability to install packages from either stable, unstable, or stretch-backports. I use apt pinning to make sure stable is always prioritized if a package is found in multiple repos.

You are right, though, that the version 22.0.3 is only compatible with 64-bit. I verified with the link you sent. And that means I'm correct about my assumption that the reason these machines are finding different packages is because the 32-bit machine won't use the 64-bit package from stable. So it finds the 32-bit one from unstable. Looking about at the output of apt search, yes the 32-bit machine is finding the package in the unstable repo. Ok, so that clears that up.

So I guess the remaining issue is why the package from unstable isn't getting installed. I wonder. I think I have an idea. I'm pinning the unstable repo low enough that packages don't get installed automatically from there if they are found in the stable repo. I think this is the problem. When I begin to drill down into the dependencies, for example with libavformat58. obs-studio requires libobs0, but libobs0 won't install for me because it depends on libavformat58 (>= 7:4.2), but 7:4.1.4-1~deb10u1 is to be installed because 7:4.1.4-1~deb10u1 is found in stable and that has priority. But I did verify that the 7:4.2 version exists in unstable. So I could try to go through and install all of these manually, specifying the unstable branch (like 'apt install -t unstable <packagename>'). Or I might just temporarily raise the pin priority so that packages from unstable can be installed automatically. I'm going to try that today at some point and post the results back.
 

elimtaft

New Member
I was able to get it to install! When I explicitly set the repo to unstable, it was able to pull the dependencies from there:

Code:
apt -t unstable install obs-studio

I also changed my apt pinning and made unstable a pin priority of 501, but I don't think that actually made a difference here, I think it was just specifying unstable in the command. WARNING though, this ended up upgrading a LOT of packages on my system to unstable. It's too bad a 32-bit version of this package doesn't exist in stable yet. Thanks for the help and brainstorming guys!
 
Top