2

How could I install mpd 0.17 or even 0.16 on debian squeeze? It's been suggested to me that I should use backports, but I did not quite understand what I should do in case of unmet dependencies. For instance, mpd 0.17 exists on wheezy-backports but it depends on libraries that are a greater version than what is available in the squeeze repos. Should I install every dependency one-by-one from the ready packages on the backports (if they exist)? Or should I install them from the wheezy repos?

My sources.list file is:

#

# deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official Snapshot amd64 LIVE/INSTALL Binary 20130824-13:07]/ squeeze main non-free

# deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official Snapshot amd64 LIVE/INSTALL Binary 20130824-13:07]/ squeeze main non-free

deb http://ftp.gr.debian.org/debian/ squeeze main
deb-src http://ftp.gr.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main non-free
deb-src http://security.debian.org/ squeeze/updates main non-free

# squeeze-updates, previously known as 'volatile'
deb http://ftp.gr.debian.org/debian/ squeeze-updates main non-free
deb-src http://ftp.gr.debian.org/debian/ squeeze-updates main non-free

# backports
deb http://ftp.gr.debian.org/debian wheezy-backports main contrib non-free
deb http://ftp.gr.debian.org/debian wheezy main contrib non-free
deb http://backports.debian.org/debian-backports/ squeeze-backports main contrib non-free

EDIT: I couldn't get the sources with apt-get source mpd=0.17.6-1~bpo70+1. apt was giving me this error:

E: Ignore unavailable version '0.17.6-1~bpo70+1' of package 'mpd' 
E: Unable to find a source package for mpd

apt-cache showsrc mpd returned the only the squeeze version.

EDIT 2: Trying to install version 0.16 from wheezy. I got the sources but when I ran debuild -uc -us it gave me errors about unmet dependecies. Building the deps with apt-get build-deps mpd=0.16.7-2 returned that it required libmp3lame0 (= 1:3.99.5), and I have 3.98.4+repack2-3~bpo60+1.

  • Read unix.stackexchange.com/q/112157/4671. Short answer to your question - you may or may not need to backport other dependencies; it depends on the situation. Note that Debian may list more recent versions of dependencies are needed when they are not actually needed. May I ask why you are still on squeeze? If you do not need to use it for some reason, I recommend you upgrade to wheezy. – Faheem Mitha Feb 28 '14 at 21:30
  • Wheezy-backports are backports to wheezy. You'd have to grab one from squeeze-backports[-sloppy], but I've already checked, neither have an mpd backport. – derobert Feb 28 '14 at 21:38
  • @Faheem:When I try to apt-get source mpd=0.17.6-1~bpo70+1 it reports E: Ignore unavailable version '0.17.6-1~bpo70+1' of package 'mpd' E: Unable to find a source package for mpd. As for not upgrading to wheezy, I am using OpenMediaVault which is based on squeeze. @derobert: I was thinking I could get the source and build a package for squeeze. – svart Feb 28 '14 at 21:41
  • @trelosae Looking at the build dependencies for mpd for 0.16.7 in wheezy, it looks like it should work. (Note that backporting multimedia packages in general can be problematic because of the number of dependencies and sometimes strong dependencies on specific versions.) See apt-cache showsrc mpd | less. BTW, why do you need a more recent version? As regard apt-get source failing, I think there might be a bug (I recall something like that), but if necessary you can download from the web page. First, tell us which minimal version you require and why. Please post your current sources.list. – Faheem Mitha Feb 28 '14 at 21:52
  • @FaheemMitha I need the findadd feature which if I'm not mistaken was first implemented in 1.6, so I could use 0.16 if need be, but if I can have 0.17 why not? apt-cache showsrc mpd shows only version 0.15.12-1.1 – svart Feb 28 '14 at 21:59
1

This is an answer for the 0.17.6 version of MPD.

trelosae wanted 0.17 or later on Debian squeeze. This is a little tricky, since the MPD version in wheezy is 0.16.7, the version in wheezy backports is 17.6, and the version in testing/unstable is 0.18.8. In testing/unstable the package now uses systemd, which is not available on squeeze, and also Debian has changed to use /run for wheezy (see Release Goals: Run Directory), which does not exist on squeeze. Therefore, building the wheezy backport directly on squeeze was problematic.

After much discussion on chat, (scattered over a couple of days, but follow trelosae's blue icon) the following worked - using the Debian packaging for the 0.16.7 MPD package in wheezy with the 0.17.6 orig tarball from the wheezy backports. I guess the orig tarball could also have been obtained from upstream.

MORE DETAILS: After unpacking both the 0.16.7 and 0.17.6 MPD source directories side by side , rename the debian/ directory in the 0.17.6 source directory to debian.orig/. Then copy the debian/ directory from the 0.16.7 source directory to the 0.17.6 source directory. The only remaining thing to do then is copy the entry for 0.17.6 from the top entry of debian.orig/changelog (the 0.17.6 packaging) to the top of debian/changelog (the 0.16.7 packaging).

Then the build was the same as for the 0.16.7 version. debuild -uc -us as usual. This was easy because (unusually) the Debian packaging does not apply any patches to the upstream code.

1

Alright, I have mpd 0.16 now working on squeeze thanks to @FaheemMitha and @derobert. What I did was grabbed the sources for mpd from the wheezy repos with apt-get source mpd=0.16.7-2. In order to do this you must first add the src repositories in your sources.list file. In case your sources file is like mine you need to change the lines referring to the backports from:

deb http://ftp.gr.debian.org/debian wheezy-backports main contrib non-free
deb http://ftp.gr.debian.org/debian wheezy main contrib non-free

to

deb-src http://ftp.gr.debian.org/debian wheezy-backports main contrib non-free
deb-src http://ftp.gr.debian.org/debian wheezy main contrib non-free

If you didn't have any backports repositories in the sources.list then just add the above two lines (with the appropriate country code). After changing the sources.list file run apt-get update. To verify what you did worked you can run apt-cache showsrc mpd | less and check to see whether version 0.16.7-2 is listed there.

If you cannot see it then something is wrong, go back and double-check your sources. You can always check if there are extra .list files in /etc/apt/sources.list.d/ that may cause problems and comment them out.

Now, go to /usr/local/src and create a directory named mpd and cd into it. This is where you will download the source for the mpd package in order to build it. First run dch -i in order to create a new changelog entry and not create any conflicts or overwrites. The new entry could look like this:

mpd (0.16.7-2.username) UNRELEASED; urgency=low

  * Backport to wheezy.

 -- User <user@domain>  Sat, 01 Mar 2014 22:34:34 +0530

Run apt-get source mpd=0.16.7-2 and this download the tars for the file and unpack them into a new directory mpd-0.16.7.

cd into that directory and run debuild -uc -us. If it returns errors about unmet dependencies then run apt-get build-dep mpd. Most probably the build dependencies for the squeeze version of mpd will suffice. After installing the build-dependencies, run debuild -uc -us again. If it still returns dependencies errors then do apt-get build-dep mpd=0.16.7-2 and try to build the package again with debuild -uc -us.

If this fails too then you can try installing the dependencies manually. If you can't find the dependencies needed in the normal repos you can try installing from the squeeze-backports with apt-get install -t squeeze-backports package. Note: in order to do this you must have squeeze-backports in your sources.list file:

deb http://backports.debian.org/debian-backports/ squeeze-backports main contrib non-free

Now that the dependency problem is presumambly sorted, run debuild -uc -us and this should generate the .deb package in the parent directory (in this case /usr/local/src/mpd/). Now go ahead and cd .. and then run dpkg -i name_of_the_generated_package.deb and this should install the package.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.