mehercule.net
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. If you are impatient or using Ubuntu, then you might prefer Alberto Garcia's backports: http://people.igalia.com/berto/. He currently has:

  • 1.1.3.0 (i386) for Dapper and Sarge (Note: You may have problems skipping songs.)
  • 1.4.1.57486 (i386) for Edgy, Feisty

Changelog

1.5.1.31879.dfsg msk1 patchset (10 July 2008)

  • Added patches:
    - hide-crashreport-option: release builds don't do crash reports.
    - set-firstrun-status: don't re-run the setup wizard on every startup.
  • Changed patches:
    - build-fixes: split into build-fixes and reduce-linkage.
    - save-window-states: reduce its scope and rename to cheaper-save-geometry
    - dirpaths: don't change where to look for plugins.
    - alsa-qdebug => alsa-uses-qdebug
    - no-fingerprint => no-fingerprint-lib
    - no-scrobble-directories => hide-scrobbledir-option
  • Removed patches:
    - translations
  • Sync remaining patches.
The Last.fm 1.5.1.31879.dfsg patchset
These are in the Debian package.
build-fixes.diff Don't compile portAudio output plugin.
reduce-linkage.diff Make sure the binaries only link to the libraries that they need
gcc-4.3.patch Some minor fixes to build on gcc 4.3, courtesy of İsmail Dönmez. Only one header left!
no-fingerprint-lib.diff The Linux client does not do fingerprinting, so I'm not building the library for now. 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.
hide-crashreport-option.diff Release builds do not send crash reports, so hide the option.
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.
cheaper-save-geometry.diff Don't strain the cpu when you move/resize the main window
set-firstrun-status.diff Don't re-run the setup dialog each time the program starts
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.1.31879.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.4.2.58240.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 should also make it easy for outside developers to write their own audio output plugins. Then again, this is currently unsupported by upstream.
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 Last.fm.
  3. tar -xjf last.fm-1.5.1.31879.tar.bz2
  4. cd last.fm-1.5.1.31879
  5. Optional: 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 Alberto or me. Alberto's email can be found on his webpage. I can be reached at jstamp at users.sourceforge.net.


| View Printable Version


 Copyright © 2008 mehercule.net
 All trademarks and copyrights on this page are owned by their respective owners.