Last.fm msk Patchset

Description

Summary:

Most of these patches appear in the Debian archive. I'm also hosting them here so folks from other distributions can use them. All of these should be safe no matter what OS you use.

The Last.fm client requires Qt >= 4.3.0, but a patch below lets you build it on etch.

You can get Etch backports from http://backports.org/ These will be updated as new versions arrive in Debian Testing.

Changelog

1.5.4.26862+dfsg msk1 patchset (12 Nov 2009)

  • Removed patches:
    - cheaper-save-geometry: applied upstream
    - gcc-4.3: applied upstream
    - hide-crashreport-option: applied upstream
  • Added patches:
    - build-kfreebsd: Use OSS audio with non-Linux kernels
    - link-to-needed: Provide all needed libraries to the linker
The Last.fm 1.5.4.26862+dfsg patchset
These are in the Debian package.
build-fixes.diff Don't compile portAudio output plugin on Linux.
reduce-linkage.diff Make sure the binaries only link to the libraries that they need
link-to-needed.diff Provide all needed libraries to the linker
no-fingerprint-lib.diff The Linux client does not do fingerprinting, so don't build it. This reduces the client's package dependencies.
alsa-uses-qdebug.diff With a release build, the ALSA output plugin writes noisy messages to the log file. Only make it noisy in a debug build.
check-soundcard-errors.diff Don't segfault: make sure that the audio device is open before we write to it.
tray-icon-size.diff Use 22x22 icons for Linux system tray.
hide-scrobbledir-option.diff Hide the Scrobble Directories group in the options. It's irrelevant on Linux.
tray-volume.diff Control the volume by spinning the mouse wheel over the system tray icon.
set-locale.diff Correctly sets the language when there is no Last.fm.conf file. If you need to change the language after that, you can do so in Tools | Options | Account. Fixes Debian bug #432232.
set-firstrun-status.diff Don't re-run the setup dialog each time the program starts
build-kfreebsd.diff Non-Linux kernels can use the RtAudio plugin for OSS audio. This should let the client work on FreeBSD and Debian kfreebsd-*
qt45.diff Small style when using Qt 4.5
dirpaths.diff Fix up icon installation path for Linux packages. Only use this if building a Linux package.
icons.tar.gz Application icons from 16x16 to 128x128
trayicons22.tar.gz 22x22 icons to use with 02_tray-icon-size.diff
Backporting 1.5.4.26862+dfsg to Etch
etch-backport.diff Patch the client so it can build with Qt 4.2 and libgpod0.
Unsupported patches for Last.fm 1.5.4.26862+dfsg
These are not in the Debian archive because I don't want to turn the Debian package into a big ugly fork. Still, I like them and others might too. Note: I reserve the right to stop maintaining these the instant I get tired of them.
multi-sound.diff This lets the client switch between different audio output plugins. The patch uses alsa-playback for ALSA and RtAudio for OSS support. It makes it possible for third parties to write their own audio output plugins. Then again, this patch is rather hackish.
dbus.diff İsmail Dönmez and I wrote a D-Bus interface for the Linux client. Upstream might eventually apply this, but I'm leaving it out of the package since the interface may change significantly if/when upstream uses it.
tag-cloud.diff This brings back the tag cloud that was present in 1.1.3.0 and that I greatly miss. I also added a handy slider so you can control the number of matches. Here's Last.fm's explanation for why they got rid of it. I'm happy to see that something better will arrive eventually, but in the meantime I'd rather not lose the ability to search for artists or tags. :(
browser-select.diff Explicitly select which browser to use. Set it in Tools | Options | Connection.
no-cruft.diff A lot is compiled into the Linux client that is only used on Windows and Mac. This cleans that out. Upstream won't be applying this because it would be a maintenance nightmare for them. Frankly, I don't know why I still have this here.

Compiling

Building and Running from Source

  1. Install some dev packages:
    - deb-based distros will need libqt4-dev >= 4.3.0, libasound2-dev, libgpod-dev, libmad0-dev
    (Also libfftw3-dev and libsamplerate0-dev if you don't apply no-fingerprint.diff.)
    - rpm-based distros: same, but I guess you folks have a different package naming scheme.
  2. Grab the source from somewhere. Maybe the Debian archive?
  3. tar -xjf lastfm_1.5.4.26862+dfsg.orig.tar.gz
  4. cd last.fm-1.5.4.26862+dfsg
  5. Apply your patches
  6. qmake-qt4 -config release
  7. make
  8. Optional: cd i18n; lrelease-qt4 *.ts; cp *.qm ../bin/data/i18n; cd ..
  9. cd bin; ./last.fm.sh

Contact

If you have problems, please contact me at jstamp at users.sourceforge.net.

|