Release:DrJekyll
From XMMS2
Contents |
Release Notes
Hello all music lovers. Another release of XMMS2 is now available. This has been one of the longest release periods in the history of XMMS2. A lot of big changes has been merged, including the long awaited Collections API. We have also switched to a new build-system. The XMMS2 Team would like to extend a big THANK YOU to all who have helped out with this release, a lot of bug testing and bug fixing by new faces has been seen. Hope to you all around for the next release!
Upgrading
Upgrading should be smooth when it comes to the Media Library. But since the API for the Media Library changed dramatically with the introductions of Collections, expect clients to be broken until they have updated their code to the new API.
Noteworthy changes
DrJekyll includes lot of big changes. The first you will notice when installing it is that we have switched build-system from SCons to WAF. There are new procedures to install, don't worry they are easy.
Secondly we monster-merged Collections which is our new concept for querying and manipulating the Media Library. This affects some user visible things like xmms2 mlib functions but mostly it affects the developers.
Playlist plugins (pls, m3u and so on) have been activated again. You can now do xmms2 addpls <playlist> to add it to your current playlist. Note that writing playlists can't be done, and it's not clear when (or even if) this feature will be re-added.
XForms now have a API to pass data between each other (more than just the music data), this has made it possible to separate demuxer from decoder.
Feature additions
- Collections
- Various new playlist plugins including: ASX, RSS, XSPF, CUE
- Various new decoder plugins including: ALAC, DTS, CDDA
- Neuros OSD output plugin
- MusicDNS fingerprint plugin
- Perl Bindings
Bug fixes
So many that it probably doesn't matter.
New platforms
No new platform support are included in this release.
Notes to client authors
- Playlist functions take an extra argument
- sql query does not exist anymore
- c++ api changes
- reading playlist files is possible again, but uses the collections api.
- java bindings were removed
Notes to xform authors
None that we can think of.
Full ChangeLog
Between TEST4 and FINAL
Alexander Botero-Lowry
- 1545: sid plugin fails to configure if resid is not in library searth path
- 1541: xmmsc_playlist_current_active is not bound
Anders Gustafsson
- 1550: Random Crash during Queries
- 1557: PShuffle class can't be instantiated.
- 1559: Some plugin wscripts are missing mandantory=0 on check_library2
- 1558: Crash! (On client disconnect? no idea really)
- 1549: xmms2d crash with missing daap resources
- 1517: Tries to build xmmsclient++ without boost signals.
Between TEST3 and TEST4
Alexander Botero-Lowry
Anders Gustafsson
Daniel Chokola
Erik Massop
Georg Schild
Rainer Wittmaack
Sebastien Cevey
Tilman Sauerbeck
- 1537: xmmsc_coll_attribute_get() will segfault if "values" is NULL
- 1536: Collection#attributes is read-only
- 1534: need to check for Collection object in certain methods
- 1539: Implement Collection#union, intersect and complement in Ruby code
- 1540: Add Collection::Operands, similar to how Collection::Attributes works
Tobias Rundstrom
Between TEST2 and TEST3
Alexander Botero-Lowry
- 1458: py-xmmsclient does not include xmmsc_playlist_create bindings
- 1459: playlist_remove missing cb argument
Algardas Pelakauskas
Anders Gustafsson
- 1465: "fatal: Not a git repository" in snapshots confuses users.
- 1472: xmms2d crashes on some specific movie in the avcodec plugin
Daniel Chokola
Daniel Svensson
- 188: Feature request for a 'toggle' feature, aka play/pause function.
- 1457: xmmms2-launcher man page out of sync
- 1460: python medialib_property_set checks str instead of basestring
Erik Massop
Georg Schild
Jonne Lehtinen
Sebastien Cevey
- 1488: Collparser doesn't detect all errors
- 1469: xmms2 addarg fails if playlist included
- 1495: Remove XMMS_COLLECTION_TYPE_ERROR as it is not used
- 1413: parser handles parenthesis incorrectly
- 1414: collections API needs improvement
- 1486: xmmsc_coll_parse cannot parse numeric-only values
Tilman Sauerbeck
Tobias Rundstrom
Between TEST1 and TEST2
Alexander Botero-Lowry
Daniel Chokola
Erik Massop
Florian Ragwitz
Juho Vähä-Herttua
Tilman Sauerbeck
- 1445: Playlist instantiation is borked
- 1444: ofa plugin broken on little endian systems
- 1443: playlist.entries.notifier causes segfault
- 1442: xmmsclient-ecore builds when checks fail
- 1449: sync.rb is installed to archdir
Tobias Rundstrom
Between DrHouse and TEST1
Alexander Botero-Lowry
Anders Gustafsson
- 1321: Curl says FAIL: xmms_curl_callback_write: assertion `data->bufferlen == 0' failed
- 1343: Doesn't compile with older pyrex.
- 278: remove twisted reactor
- 279: Qt & glib extension/helper modules for python client bindings should be installed
- 1423: Compilation broken on Solaris with waf
- 1422: Exception when using res.value()
- 320: refactor Pythonbindings.
- FEATURE(320): Use spaces in python xmmsclient.propdict
- FEATURE(320): Simplyfy xmmsclient.sync now that it is written in python.
- FEATURE(320): Use explicit imports instead of * in python module __init__
- FEATURE(320): Add a xmmsclient.collections module.
- FEATURE(320): Put constants in a separate module.
- FEATURE(320): Move python PropDict to separate .py file.
- FEATURE(320): Rename pyrex generated file to xmmsapi
- FEATURE(320): Move python XMMS sync into a separate .py file
- FEATURE(320): Move pythonmodule into a directory with __init__.py
- 1378: Truncate output of 'status' of the cli if larger than terminal
- 1316: Support for collections in pythonbindings.
- 1354: DrJ
- 1280: Neuros OSD output plugin
- 1436: Javabindings doesn't build with waf.
- 1434: alsa driver does snd_pcm_avail_update
- 1432: Improve pythonbindings refcounting by using xmmsc_result_notifier_set_full
- 1433: Plugin for musicdns ofa
- 1415: Curl corrupts data
- 1418: Doesn't compile with pyrex 0.9.5.1
- 1419: Don't set samplerate/channels from plugins
- 1380: python bindings crashes in create_coll with PSHUFFLE
- 1381: Missing unlocks on errorpaths in playlist.c
- 1416: Refactor browsing api.
- 1417: xml xform doesn't handle files starting with BOM
Ben Slote
Bernard Pratz
Daniel Chokola
- 1403: ruby collection api
- 1371: ruby plugin types missing XFORM
- 1372: move playlist methods to their own class
- 1275: playlist_volume_set should take Symbol instead of String
- 1370: rdoc: update old XmmsClient stuff to Xmms::Client class
Daniel Svensson
- 1306: asx playlist plugin
- 1282: add realpath support to cli browsing
- 1337: sleep(3) is not portable
- 1273: split statfs.c into multiple files depending on platform
- 1289: create a dummy version of unix signals
- 1288: move signal stuff from main.c to unixsignal.c
- 1332: add wsock support to waf
- 1376: xmmsc_result_get_type should return a xmmsc_result_value_type_t
- 1178: improve the browsing api
David Anderson
- 1179: Research moving the build system to Waf
- FEATURE(1179): Tweak, refactor and clean up some waf stuff.
- FEATURE(1179): Add a plugin helper function that helps reduce the repetition in defining plugins.
- FEATURE(1179): Add --without-plugins, fix the default build that I broke.
- FEATURE(1179): Add a --with-plugins configure option, to explicitely provide a list of wanted plugins.
- FEATURE(1179): Make the build system understand plugins and OSX bundles.
- FEATURE(1179): Preemptively upgrade waf to support osx bundles.
- FEATURE(1179): Make FLAC non-mandatory.
- FEATURE(1179): Fix the dependencies between libs so that the xmms2 cli builds cleanly.
- FEATURE(1179): Fix the mms plugin build rules.
- FEATURE(1179): Make the OSS plugin build.
- FEATURE(1179): Fix the OSS configuration function so that the oss plugin can actually be activated.
- FEATURE(1179): Unbork the build funcs for all the plugins I can build.
- FEATURE(1179): Correct the detection for libmodplug, and make sidplay detect and use builders properly.
- FEATURE(1179): Remove all the now obsolete Plugin files.
- FEATURE(1179): Add wscripts for all plugins. They configure okay on my box, probably don't build yet.
- FEATURE(1179): Refer to the tooldir using an absolute path to avoid breakage in some cases.
- FEATURE(1179): Fix the generator hook to have full dependency tracking across multiple builds.
- FEATURE(1179): Finish configuration support for xmms2d, and add build instructions for it.
- FEATURE(1179): Make the XMMS2 libs all static, readd color support (must work out how to selectively disable).
- FEATURE(1179): Add the missing wscript for the xmms source directory.
- FEATURE(1179): Oops, forgot the new function for gittools that the waf script needs.
- FEATURE(1179): First attempt at a Waf build system. Will currently build both xmms libraries, and configure (but not build) xmms2d.
Erik Massop
- 1291: Add "xmms2 coll queryadd"
- 1313: Waf build system needs a way to exclude things
- 1265: Support a jump-to-playlist-on-finish attribute in the collection Queue operator
Florian Ragwitz
- 1322: add proper error msg when using disconnected client
- 1349: Run ldconfig after shlib installation
- 742: Include perl bindings
- 1327: cli status displays 00:00 as the total played time for all items
- 1162: xmmsc_coll_idlist_insert(xmmsc_coll_t*, uint, uint) has wrong parameter ordering compared to other insert-functions
- 1323: Allow result notifier callback userdata to be freed when the result is freed
- 1340: make xmms2-launcher a separate target
- 666: XSPF playlist plugin
- 1328: Manpages for non-built stuff installed.
- 1329: Manpages not compressed.
- 1420: MP4 plugin has a useless faad.h include
- 1257: Adding items to the playlist by id doesn't validate the id
- 1397: please do not require channel for setting volume
- 1293: sid plugin is linked using rpath, even if not required
- 1031: No mime type reported for files in the medialib.
- 1261: Failure to create client configfile should not be fatal.
- 1390: cli should have a command to remove a property from medialib
- 1353: Rename MATCH/CONTAINS collection operators to EQUALS/MATCH
- 1272: Config file error handling
- 1331: run python scripts from within waf instead of external python
- 1356: Add some #define for the active playlist name
- 1333: plugin waf scripts should append custom builds instead of replace the generic one
- 1396: please add relative volume commands
- 1367: python tries to install stuff to /usr
- 1362: sort on id fails
- 1410: xmms2d does not need to initialize plugins on mlib rehash/addpath/add
Jonne Lehtinen
- 1317: xmmsc_coll_remove should take const char*'s instead of char*'s
- 845: Xmms::List< Dict > operator-> doesn't compile
- 1313: Waf build system needs a way to exclude things
- 1344: flac metadata not read or imported into medialib
- 1126: Xmms::Client::getUserConfDir should be a free function
- 1318: enums still can't end with comma
- 1364: CD Plugin
- 1388: add coverart from xmms2 cli
- 1401: generic_callback handler should trap exceptions.
- 1277: functions which take list of slots are useless for the c++ bindings
- 1290: C++ bindings medialib is missing function(s)
- 1391: xmmsc_result_value_t is missing values
Juho Vähä-Herttua
- 1421: faad plugin rejects some MP4 files
- 1279: Refactor MP4 and ASF into separate demuxer plugins
- FEATURE(1279): Add ALAC support.
- FEATURE(1279): Refactor wma into avformat and avcodec plugins
- FEATURE(1279): Re-enable seeking in mp4 files
- FEATURE(1279): Change offset and duration to be frame based
- FEATURE(1279): Separate mp4 into a demuxer plugin using privdata.
- FEATURE(1279): Fix the waf commit little earlier
- FEATURE(1279): Update waf build scripts
- FEATURE(1279): Remove useless mp4ff files from faad directory
- FEATURE(1279): Refactor MP4 as a separate plugin but keep AAC decoding in it
- 1287: Waf build system breaks totally in Solaris
- 1281: A way to pass data between xforms is needed
- 1429: Enable DTS support in libavcodec
- 908: Does not handle samplerate changes
- 1357: xmms2d doesn't handle seeks correctly if they fail to seek to the exact sample
- 1377: ALAC decoder needed
- 1411: xforms shouldn't set XMMS_MEDIALIB_ENTRY_PROPERTY_SAMPLERATE
Karsten Krispin
Sebastien Cevey
- 1365: playlist_new or playlist_create function needed
- 1339: coll_query_infos: Query result includes includes 'id' even when fields argument is not empty.
- 1023: Musepack file crashes the server
- 1265: Support a jump-to-playlist-on-finish attribute in the collection Queue operator
- 783: Refactoring of the clientlib API
- BUG(783): Fixing xmmsc_result_get_dict_entry_* functions introduced in -devel.
- BUG(783): Moved functions around into correct (possibly new) modules, removed OtherControl module.
- BUG(783): Renamed xmmsc_result_get_dict_entry_int32/uint32/str to xmmsc_result_get_dict_entry_int/uint/string (resp.),
- BUG(783): rename playlist_insert/add to playlist_insert/add_url
Tilman Sauerbeck
- 1335: flac plugin's comment parser is too alloc-happy
- 1334: vorbis plugin's comment parser is too alloc-happy
- 1359: case insensitive magic option
- 1283: FLAC plugin should support new FLAC 1.1.3 API
Tobias Rundstrom
- 1304: remove old plsplugins code
- 1305: add read_line to xform
- 1424: waf builds server plugins without xmms2d installed
- 1427: mac plugin references xmms-defs.h
- 1325: random crap added to the medialib
- 210: Support for CUE-files
- 1303: Playlist plugins are disabled
- 1319: Same CFLAGS used for all bindings and plugins
- 1107: cli can't seek in files without "duration" property.
- 1412: Multiple xmms2d's will clobber log file
- 1394: Add BIG FAT WARNING
when user runs xmms2d as root.
Todd Bayley

