Skip to content

Release:DrDolittle

Erik Massop edited this page Nov 4, 2017 · 1 revision

Release Notes

Holy handgranates! It's release time again! Much earlier than expected and much cooler than the critics claim! XMMS2 Team announces Dr. Doolittle. This release is forged by the wormholes of Stargate, Swedish schlager music, Chilean beaches and a lament for a loved one. DrDoolittle is a minor-feature-addition and bug-fix release instead of the expected major-break-the-world release. We decided that enough critical fixes and small features were available to make a release. You can watch the new Roadmap in order to see what's going on with future releases.

Note that some of the API calls have been changed in this release (details in full release notes) and clients need to be upgraded. The API breaking will (hopefully) stop when Dr. releases end.

XMMS2 Team would like to thank everyone involved in this release, your efforts are appreciated as always.

Upgrading

Due to significant changes to the SQLite schema the medialib will (once again) be totaly removed if you upgrade. Tilman provided a ruby script for moving your old medialib into the new one.

Noteworthy changes

Feature additions

This release will feature a mDNS agent (Bug 455) that will allow you to announce the availability of xmms2 servers on your local network. Client authors are suggested to implement browsing capabillities into their code.

The kind guys at X4X (http://x4x.sf.net) supplied XMMS2 clientlib with Java bindings Bug 198. They are now shipped with the default distribution.

One of the old wishlist bugs has been the abillity to make xmms2d to listen to mulitple sockets Bug 644. This has been implemented by Karsten Krispin. Just semicolon separate the paths in the config and you are ready to go.

Major speedups has been done for the Medialib (Bug 662), especially when importing songs to the Medialib. Please always use xmmsc_medialib_import_path() when mass-adding files, cli command is "xmms2 mlib addpath". Also feedback from sqlite-users mail list was incorporated during RC phase (Bug 716). Thanks to Dr. Richard Hipp and others.

Bug fixes

The following bugs has been flaged as important and fixed.

Bug 631 and Bug 681 fixes two serious misses in the MAD plugin. 631 made some VBR mp3s to have wrong duration and 681 could make xmms2d crash when calculating the duration of errenous mp3s.

Bug 688 - Has been a problem for some time. The mixer events from ALSA wasn't handled properly. This would remove the problems with setting volume in ALSA. The problem was with ALSA documentation and a bugreport has been filed to the alsa team.

Bug 655 Fixes a common crash in the volume broadcast.

Also this additional bugs where found in the RC testing phase:

  • Bug 695 - Fix race when seeking in vorbis.
  • Bug 696 - Update jack plugin to new Volume API
  • Bug 699 - Make sure xmms_output_open() unlocks the API mutex.
  • Bug 703 - Make sure that we check return value of snd_pcm_open() in ALSA plugin
  • Bug 710 - Make OSS format probing work in all cases.
  • Bug 711 - Return NULL instead of assert in volume_get

New platforms

No new platforms has been added to DrDoolittle

Notes to client authors

One function call was renamed: xmmsc_main_status is now called xmmsc_main_stats. See bug Bug 652 for details.

Heaps of new functions was wrapped in Ruby bindings:

  • Bug 653 - Wrap xmmsc_configval_list() in the Ruby bindings.
  • Bug 653 - Wrap xmmsc_medialib_playlist_remove() in the Ruby bindings.
  • Bug 682 - The argument to Xmms::Client#plugin_list is optional now.
  • Bug 653 - Wrap xmmsc_medialib_get_id() in the Ruby bindings

A new function was also added:

  • Bug 630 - Added a medialib_entry_add signal.

And the config functions changed behaviour:

  • Bug 664 - broadcast_configval_changed now uses the config property's key as the dict entry's key and the config property's value as the dict entry's value.
  • Bug 669 - xmmsc_configval_list() now returns a dict that contains the config property's names and values instead of a list of names.

The following database properties was renamed:

  • Bug 684 - Log.value is now named Log.percent.

Notes to plugin authors

The only change that affects plugin authors is the split of name and version in xmms_plugin_new() see bug Bug 650.

Full ChangeLog

Alexander Botero-Lowry

  • Bug 630 - Added a medialib_entry_add signal.
  • Bug 641 - property_remove method

Anders Gustafsson

  • Bug 695 - Fix race when seeking in vorbis.

Chris Morgan

  • Bug 696 - Update jack plugin to new Volume API

Daniel Chokola

  • Bug 649 - Add plugin_list to ruby bindings
  • Bug 655 - Fix crash in volume broadcast
  • Bug 664 - broadcast_configval_changed now uses the config property's key as the dict entry's key and the config property's value as the dict entry's value.
  • Bug 650 - Split plugin "name" string and add plugin versioning
  • Bug 653 - Ruby:: add bindings for xmmsc_main_stats
  • Bug 653 - Wrap xmmsc_io_need_out_set_callback() in the Ruby bindings.
  • Bug 669 - xmmsc_configval_list() now returns a dict that contains the config property's names and values instead of a list of names.
  • Bug 635 - Ruby 1.9 dectection.
  • Bug 648 - Fix error message.
  • Bug 672 - Tweak Ruby module/class names.

Karsten Krispin

  • Bug 644 - Add multiple socket support for xmms2d

Georg Schild

  • Bug 198 - Java bindings.

Sebastien Cevey

  • Bug 616 - format_pretty_list in cli should check $COLUMNS
  • Bug 654 - Support for * wildcard in sources

Tilman Sauerbeck

  • Bug 637 - Added result typification.
  • Bug 630 - Unsuckify the Ruby method.
  • Bug 672 - Update the sample script, too.
  • Bug 653 - Wrap xmmsc_configval_list() in the Ruby bindings.
  • Bug 653 - Wrap xmmsc_medialib_playlist_remove() in the Ruby bindings.
  • Bug 682 - The argument to Xmms::Client#plugin_list is optional now.
  • Bug 685 - Unbreak xmmsc_configval_list(). The bug was introduced by the patch for bug 669.
  • Bug 687 - Fixed the converter.c builder.
  • Bug 685 - Fix bad memory usage in xmms_config_property_register().
  • Bug 653 - Wrap xmmsc_medialib_get_id() in the Ruby bindings. Based on a broken patch by Dan Chokola.
  • Bug 660 - Emit the current volume in broadcast_volume_changed.
  • Bug 689 - Initialize the command argument in xmms_object_emit_f().
  • Bug 690 - Remove output->object_mutex since it's not needed.
  • Bug 688 - snd_mixer_handle_events() returns the number of events that occured on success (this isn't documented), so we need to check for err < 0 to determine if an error occured or not.
  • Bug 699 - Make sure xmms_output_open() unlocks the API mutex.
  • Bug 705 - Fixed a typemap bug in the Java bindings.
  • Bug 707 - Use g_usleep() instead of nanosleep() in the null plugin.

Tobias Rundström

  • Bug 658 - Fix complation for C89 compilers.
  • Bug 652 - rename xmmsc_main_status() -> xmmsc_main_stats()
  • Bug 662 - Optimization for SQLite
  • Bug 455 - Added mDNS agent.
  • Bug 631 - Fix XING headers in MP3 files with CRC headers.
  • Bug 670 - change clientlib functions taking char* where const char* would be sufficient
  • Bug 673 - Remove , at end of enums.
  • Bug 668 - Set error string when asking for a ID that doesn't exsist.
  • Bug 668 - Make sure that medialib id is set before sending signal.
  • Bug 643 - Make quit function in main set a timeout and return.
  • Bug 676 - Fix rubybindings for OSX
  • Bug 681 - Don't FPE in MAD's duration calculation.
  • Bug 675 - Temporary fix for JAVA_HOME for DrDolittle release.
  • Bug 703 - Make sure that we check return value of snd_pcm_open() in ALSA plugin
  • Bug 710 - Make OSS format probing work in all cases.
  • Bug 702 - Fixed crashbug in Jack plugin.
  • Bug 711 - Return NULL instead of assert in volume_get
  • Bug 712 - Don't assert on play when output plugin isn't loaded.
  • Bug 713 - Don't assert if the volume thread isn't running.
  • Bug 716 - Utilize the ANALYZE table to speed up medialib.
  • Bug 684 - Rename Log.value to Log.percent
Clone this wiki locally