LMS-Community / slimserver-platforms

Platform-specific build tools for Lyrion Music Server
48 stars 41 forks source link

Debian: Add additional package dependencies #8

Closed mw9 closed 6 years ago

mw9 commented 6 years ago
  1. Sox

The LMS bundled Sox binary (v14.3.1) has been built with OpenMP support, and has a dependency on libgomp1. Sox will fail if this library is not present. This failure is difficult for a user to diagnose.

Sox 14.3.1 was available in Debian Lenny, and specified libgomp1 version >= 4.2.1. So repeating that here.

  1. IO:Socket::SSL

LMS does not include a bundled IO:Socket::SSL. Although LMS operates without the presence of IO:Socket::SSL package, HTTPS streams, etc. will not be available.

Source package is libio-socket-ssl-perl.

  1. Others

libstdc++6 libgcc1

A number of the bundled binaries and CPAN packages depend on these two libraries.

zlib1g

Image::Scale and Audio::Scan require the zlib library.

mw9 commented 6 years ago

Michael,

Possibly there are reasons why these dependencies are not specified in the existing Debian package, I don't know.

The Sox issue caused me grief a while ago before I figured it out.

IO:Sockets:SSL seems like a 'no-brainer', but perhaps there's good reason for not stating it as a dependency.

The others probably have little practical effect, as most systems will have these packages installed anyway.

mherger commented 6 years ago

Thanks @mw9! IO::Socket::SSL just isn't on that list because it's a relatively new requirement. Up until about two years ago it was hardly a requirement. But you're right, as more and more services are moving to using https it would be a good thing to have it installed.

Let's give this a try. I'll ping you if this turns out to be a problem. Thanks again!

mw9 commented 6 years ago

Thanks. IO::Socket::SSL could be moved to 'recommended' packages if it causes problems.

Here's the (successful) result of installing LMS with dpkg (which does not auto-fetch dependencies) on a Raspberry Pi that didn't have libgomp1 on board. Working as intended:

sudo dpkg -i  logitechmediaserver_7.9.1~1518978430_arm.deb
Selecting previously unselected package logitechmediaserver.
(Reading database ... 52260 files and directories currently installed.)
Preparing to unpack logitechmediaserver_7.9.1~1518978430_arm.deb ...
Unpacking logitechmediaserver (7.9.1~1518978430) ...
dpkg: dependency problems prevent configuration of logitechmediaserver:
 logitechmediaserver depends on libgomp1 (>= 4.2.1); however:
  Package libgomp1:armhf is not installed.

dpkg: error processing package logitechmediaserver (--install):
 dependency problems - leaving unconfigured
Processing triggers for systemd (215-17+deb8u7) ...
Errors were encountered while processing:
 logitechmediaserver

Which one can then deal with by:

sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  libgomp1
The following NEW packages will be installed:
  libgomp1
0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded.
1 not fully installed or removed.
Need to get 0 B/34.7 kB of archives.
After this operation, 91.1 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Selecting previously unselected package libgomp1:armhf.
(Reading database ... 56108 files and directories currently installed.)
Preparing to unpack .../libgomp1_4.9.2-10+deb8u1_armhf.deb ...
Unpacking libgomp1:armhf (4.9.2-10+deb8u1) ...
Setting up libgomp1:armhf (4.9.2-10+deb8u1) ...
Setting up logitechmediaserver (7.9.1~1518978430) ...
Adding system user `squeezeboxserver' (UID 113) ...
Adding new user `squeezeboxserver' (UID 113) with group `nogroup' ...
Not creating home directory `/usr/share/squeezeboxserver'.
Processing triggers for libc-bin (2.19-18+deb8u10) ...
Processing triggers for systemd (215-17+deb8u7) ...
mherger commented 6 years ago

Would LMS even start without the additional apt-get install?

mw9 commented 6 years ago

No, it won't start. The -f switch to apt-get is the key. It fixes broken dependencies, and then completes the installation.

I don't know why apt-get hasn't been trained to install .debs directly, but it hasn't.

mherger commented 6 years ago

Hmm... that's good to know... but likely will cause a few users to believe the build was broken. We'll have to figure something out how to communicate the change. Are you on forums.slimdevices.com? You could post to the Linux group there ;-).

mw9 commented 6 years ago

Good idea. I'll try to draft a note this afternoon. I'm 'mrw' there. And 'mrwlists' on the bugzilla.

mw9 commented 6 years ago

http://forums.slimdevices.com/showthread.php?108744-Debian-packages-update-Possible-dpkg-failure

mherger commented 6 years ago

Thanks!

mw9 commented 5 years ago

The Sox dependency on libgomp1 has been removed following this pull request in August 2018:

Update sox and flac to latest source https://github.com/Logitech/slimserver-vendor/pull/58

In particular within this commit: https://github.com/Logitech/slimserver-vendor/commit/19b35e9f54898befd06c9cc7cbfa44f3491b8f20, wherein is added the configure flag --disable-openmp.

So the libgomp1 dependency declaration introduced in this pull request can now be safely removed, although no harm is done by leaving matters as they stand.