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.

svart
  • 55
  • Read http://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
  • @trelosae: the further you get from your version, the harder the backport becomes, but sure, you could try 1.7. If apt-cache showsrc mpd shows only the squeeze version, then something is wrong. Post sources.list in your question, please. – Faheem Mitha Feb 28 '14 at 22:02
  • No, it is not a dupe of the general backport question. This is a specific question about a specific piece of software. So, stop voting to close, please. – Faheem Mitha Feb 28 '14 at 22:03
  • @trelosae your sources.list needs deb-src lines for whatever source versions you want. Personally, I would first try wheezy (though you could also try wheezy-backports, I suppose). You don't need to add the corresponding deb line. Also, don't forget to run apt-get update. – Faheem Mitha Feb 28 '14 at 22:08
  • @FaheemMitha Yes, that fixed it. Now when I build the dependencies for the wheezy version it says it needs libmp3lame0 (= 1:3.99.5-dmo2) and the squeeze backport version is 3.98.4+repack2-3~bpo60+1. Should I do the same thing with mpd until every dependency is met? – svart Feb 28 '14 at 22:24
  • @trelosae funny, I don't see that here. Do you see that error when running debuild -uc -us? If not, try that command, and if you get an error, post it in the question. This has now been closed, but don't worry about it. I've added a reopen vote. – Faheem Mitha Feb 28 '14 at 22:31
  • @trelosae As I have now mentioned in my backports answer, the version dependency is unlikely to be so specific, so in doubt, comment out the relevant version number in debian/control, the build dependency line. If the build really requires such a tight dependency, it will probably error out, hopefully with a complaint about an insufficiently high version number. If you have a sufficiently high rep, you could hop into the unix.sx chat room. This might be easier on chat. – Faheem Mitha Feb 28 '14 at 22:37
  • @trelosae if it says dmo in the versions, that's coming from deb-multimedia.org – derobert Feb 28 '14 at 22:37
  • @derobert makes a good point. Check if you have an deb-multimedia packages installed. If you do, I recommend removing them - they usually cause problems. I don't see any sources for that in your sources.list. – Faheem Mitha Feb 28 '14 at 22:40
  • @trelosae you now have enough rep. so, come over to chat, and we'll try to sort this out, unless you are going to sleep or something. – Faheem Mitha Feb 28 '14 at 22:42
  • The first time I ran debuild -uc -us it gave errors about unmet dependencies, so I ran apt-get build-deps mpd=0.16.7-2 which gave the error. But after running apt-get build-deps mpd I managed to make the package and install it. Thank you so much for your help. I'm now going to try for the 0.17 version and I'll write an answer when I'm done. – svart Feb 28 '14 at 22:52
  • you need to add the deb-src line to the sources.list file, or you will never get the sources. – Braiam Mar 01 '14 at 00:05

2 Answers2

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.

svart
  • 55
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.

Faheem Mitha
  • 35,108