Wpis uzupełniony o paczkę dla architektury x86_64 oraz informacje dotyczące instalacji wtyczki w Debianie dla Rhythmboksa 0.11.6

7/05/2009: Wpis uzupełniony o paczkę dla architektury x86_64 oraz informacje dotyczące instalacji wtyczki w Debianie dla Rhythmboksa 0.12.0

Takich serwisów jak Last.fm nikomu przedstawiać nie trzeba. To jeden z najbardziej udanych (jeśli nie najbardziej w ogóle, po prostu) serwisów łeb dwa zero. Prosta idea, świetne wykonanie, wielojęzyczny interfejs – tak strony, jak i dołączonego do niej odtwarzacza. Wymieć można by dalej, ale przecież każdy użytkownik zna wszystkie wady i zalety tegoż serwisu.

Już od dłuższego czasu jako głównego odtwarzacza w moim systemie używam Rhythmboksa. Cenię sobie jego szybkość działania, dobry mechanizm tworzenia playlist oraz nie najgorsze wsparcie dla podcastów. Oczywiście program ma wtyczkę umożliwiającą scrobblowanie (patrz: audioscrobbler) odtworzonych utworów do serwisu Last.fm, ale… to właściwie wszystko, na co ta wtyczka pozwala. I wiele więcej nie potrzebowałem, brakowało mi jednak możliwości oznaczania „lubię ten kawałek"/“nie znoszę tego kawałka” itd.

Okazało się jednak, że powstała alternatywna wtyczka dla Rhythmboksa wspierająca serwis Last.fm – New Style Last.fm scrobbler. Co ją odróżnia od dotychczasowej wtyczki scrobblującej? Mechanizm. Rhythmbox zaczyna używać programu Last.fm do scrobblowania odsłuchiwanych utworów. Fajne? Fajne.

Jak nietrudno zauważyć, użytkownicy Ubuntu mają gotowe paczki, a nawet repozytoria z przekompilowanym Rhythmboksem zawierającym od razu nową wtyczkę do scrobblowania. A co z użytkownikami innych dystrybucji? Dostępny jest patch, który należy nałożyć na źródła programu. Czyli co, trzeba przekompilować całego Rhythmboksa, żeby mieć wsparcie dla programu Last.fm? Obawiam się, że tak. Ale na całe szczęście można to zrobić via debian-way (:

Pierwsza sprawa to załatwić zależności. Polecam gdzieś zapisać sobie listę paczek, które zostały zainstalowane, żeby później je z systemu wywalić (będą wszak potrzebne wyłącznie do zbudowania paczki):

sudo aptitude build-dep rhythmbox

Dalsza sprawa to pobrać źródła Rhythmboksa (o repozytoriach deb-src w /etc/apt/sources.list nawet nie wspominam bo to oczywista konieczność):

apt-get source rhythmbox

Po wykonaniu powyższej komendy pobrane zostaną trzy pliki (*diff.gz, *dsc, *orig.tar.gz) oraz jeden katalog (rhythmbox-0.11.5). Należy jeszcze pobrać plik scrobbler-v3g.patch z wcześniej wspomnianej strony. Najlepiej zapisać go po prostu w katalogu domowym. Teraz nałożymy patch. Aby to zrobić, trzeba wejść do pobranego via apt-get source katalogu:

cd rhythmbox-0.11.5
patch -NEp1 < ~/scrobbler-v3g.patch

Jeśli wszystko przebiegło pomyślnie, powinno wyświetlić się mniej więcej coś takiego:

patching file configure
patching file configure.ac
patching file plugins/Makefile.am
patching file plugins/Makefile.in
patching file plugins/scrobbler/Makefile.am
patching file plugins/scrobbler/Makefile.in
patching file plugins/scrobbler/rb-scrobbler-plugin.c
patching file plugins/scrobbler/scrobbler.rb-plugin.desktop.in

Teraz wykonam komendę opcjonalną choć szczerze ją polecam. Polega ona na zmianie wersji programu z 0.11.5-5 na 0.11.5-5.1. Zmiana jest drobna, ale uchroni naszego spatchowanego Rhythmboksa przed zaktualizowaniem do wersji nie spatchowanej z repozytorium (przynajmniej do pojawienia się w repozytorium wersji 0.11.6). Aby to zrobić należy (wciąż będąc w katalogu rhythmbox-0.11.5) wydać następujące polecenie:

debchange -v 0.11.5-5.1

W tym momencie wyświetli się nano i plik changelog.dch, w którym trzeba dopisać zmianę, jaką się wykonało. Może to wyglądać np. tak:

* Patched

Treść nie gra wielkiej roli. Po dopisaniu należy wcisnąć kombinację klawiszy Ctrl+o a następnie Ctrl+x.

Teraz pozostało już tylko zbudować paczkę (wciąż będąc w katalogu rhythmbox-0.11.5):

dpkg-buildpackage -rfakeroot

Proces kompilacji może trochę potrwać w zależności od posiadanej machiny. Kiedy skończy wystarczy:

cd ..
dpkg -i rhythmbox_0.11.5-5.1_*.deb

O czym należy pamiętać:

1. Przed zainstalowaniem własnej paczki dobrze jest odinstalować Rhythmboksa, choćby via dpkg:

dpkg -r rhythmbox

2. Do działania Rhythmbox będzie teraz wymagał programu Last.fm, który można zainstalować w poniższy sposób:

sudo aptitude install lastfm

3. Należy wyłączyć w Rhythmboksie (jeśli nie zrobiło się to automatycznie) starą wtyczkę do scrobblowania i włączyć tę nową, która została wkompilowana.

To z grubsza wszystko, poniżej załączam jeszcze paczkę ze spaczowanym Rhytmboksem (wersja 0.11.5-5.1) dla architektury amd64, która została stworzona w sposób opisany powyżej:

Rhythmbox 0.11.5-5.1 AMD64 (~5.5 MB)

Instalacja w Rhythmboksie 0.11.6

Generalnie procedura jest taka sama jak opisana powyżej, opiszę więc wyłącznie zmiany. Chodzi tutaj przede wszystkim o wersję patcha - oznaczenie jest różne dla Ubuntu i Debiana. Problem wynika z wersji Rhythmboksa w Ubuntu, która jest wersją z SVN. Tak więc użytkownicy Ubuntu, którzy sami chcą nałożyć patch, powinni użyć wersji scrobbler-v3h.patch, gdyż ona jest przeznaczona dla wersji svn20081008. Użytkownicy pozostałych dystrybucji (w tym Debiana, rzecz jasna) oraz osoby instalujące Rhythmboksa z oficjalnych źródeł powinny zaś użyć wersji scrobbler-v3i.patch. Tak więc operacja sprowadza się do zaktualizowania kilku kroków, które szerzej opisałem powyżej, tutaj zamieszczam samą esencję (:

aptitude build-dep rhythmbox
apt-get source rhythmbox
wget -c http://blog.blackdown.de/static/rhythmbox/scrobbler-v3i.patch
cd rhythmbox-0.11.6
patch -NEp1 < ../scrobbler-v3i.patch
debchange -v 0.11.6-6.1
dpkg-buildpackage -rfakeroot
dpkg -i ../rhythmbox_0.11.6-6.1_amd64.deb

Poniżej załączam paczkę ze spatchowanym Rhythmboksem (wersja 0.11.6-6.1) dla architektury x86_64, która została stworzona w sposób opisany powyżej:

Rhythmbox 0.11.6-6.1 x86_64 (~5.9 MB)

Instalacja w Rhythmboksie 0.12.0

aptitude build-dep rhythmbox
apt-get source rhythmbox
wget -c http://blog.blackdown.de/static/rhythmbox/scrobbler-v3j.patch
cd rhythmbox-0.12.0/
dch -i
  * New Style Last.fm Scrobbler
ctrl + o (zapis) i ctrl + x (wyjście)
patch -NEp1 < ../scrobbler-v3j.patch
patching file configure
patching file configure.ac
patching file plugins/Makefile.am
patching file plugins/Makefile.in
patching file plugins/scrobbler/Makefile.am
patching file plugins/scrobbler/Makefile.in
patching file plugins/scrobbler/rb-scrobbler-plugin.c
patching file plugins/scrobbler/scrobbler.rb-plugin.desktop.in
dpkg-buildpackage -rfakeroot -us -uc
dpkg -i ../rhythmbox_0.12.0-2.1_amd64.deb

Poniżej załączam paczkę z zaaplikowanym patchem na Rhythmboksie (wersja 0.12.0-2.1) dla architektury x86_64, która została stworzona w sposób opisany powyżej:

Rhythmbox 0.12.0-2.1 x86_64 (~5.0 MB)