X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=NEWS.md;h=fd587fab054dea33124918870b24351b20586fc6;hp=dbf6c45bf70b98c85430945244f6db63212bc601;hb=HEAD;hpb=de9ce9690ac6194e8e7eaacd10baf21d827e42a4 diff --git a/NEWS.md b/NEWS.md index dbf6c45b..d5812289 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,9 +1,456 @@ NEWS ==== ------------------------------------------- -current master branch "cascading gradient" ------------------------------------------- +--------------------------------------------- +0.7.4 (to be announced) "genetic contraction" +--------------------------------------------- + +Downloads: +[tarball](./releases/paraslash-git.tar.xz) + +----------------------------------------- +0.7.3 (2024-03-12) "weighted correctness" +----------------------------------------- + +The highlight of this release is the new "ls --admissible=m/foo" +feature described below. Other user-visible changes include minor +additions to the "ls" and "select" server commands. The release also +includes a fair number of cleanups for the crypto code and the file +descriptor utilities, both without visible effects. Old ssh keys +and outdated openssl library versions are now deprecated and cause +warnings. + +- Old style PEM keys are now deprecated. They still work but their + use results in a run-time warning. The removal of PEM key support is + scheduled for paraslash-0.8.0. +- Version 1.0 of the openssl library has been deprecated. A warning + is printed at compile-time on systems which have this outdated version + because it will no longer be supported once paraslash-0.8.0 comes out. +- A spring cleanup for the senescent code in fd.c. +- The --admissible option of the ls command now takes an optional + argument. When invoked like --admissible=m/foo, only files which are + admissible with respect to mood foo are listed. +- The select server command is now quiet by default, The new --verbose + option can be used to show information about the newly loaded mood + or playlist. +- The ls server command gained the --limit option to force a limit + on the number of files listed. +- Cleanup of the openssl-specific code. + +Downloads: +[tarball](./releases/paraslash-0.7.3.tar.xz), +[signature](./releases/paraslash-0.7.3.tar.xz.asc) + +------------------------------------- +0.7.2 (2023-03-08) "optical friction" +------------------------------------- + +The improved error reporting of afs commands and the two new options +for the sleep subcommand of para_mixer are the most prominent features +of this minor release. The bulk of the changes are cleanups of the +afs and net subsystems, which should both have no user-visible impact. + +- A major cleanup of the audio file selector. +- The client no longer prints error messages from afs commands to + stdout but to stderr. +- The sleep subcommand of para_mixer gained two options to control + the startup mood and the time period before fade-out starts. A bunch + of further improvements for this subcommand went in as well. +- Minor cleanup of the net subsystem. +- The openssl specific code now employs the EVP API to compute hashes. + It should compile without warnings against openssl-3. +- The deprecated syntax for specifying negative offsets in the argument + to the "ff" server command has been removed. + +Downloads: +[tarball](./releases/paraslash-0.7.2.tar.xz), +[signature](./releases/paraslash-0.7.2.tar.xz.asc) + +-------------------------------------- +0.7.1 (2022-10-03) "digital spindrift" +-------------------------------------- + +The two new ll commands and the internal mp4ff library are the most +user-visible changes of this release. On top of that there are two +core changes which aim to improve the robustness of the code but which +are otherwise invisible: the switch from select(2) to poll(2) and the +revised memory allocation API which checks for integer overflows. The +release also comes with a slight change to the build system and the +usual mix of bug fixes and minor improvements not mentioned here. + +- The autogen.sh script now only creates the autoconf specific files + but no longer runs configure, make and the test suite. +- A stripped down copy of the discontinued libmp4ff library has become + part of the paraslash code base. As a result it is no longer necessary + to install faad from source to get support for aac/m4a files. The + faad decoder package must still be installed. +- The log level of the running daemon can now be changed with the + new ll command. It is available for para_server and para_audiod. +- All calls to select(2) have been replaced by calls to poll(2) + to avoid known shortcomings of the select API. +- All allocation functions now check for integer overflow. Since this + requires support from the compiler, the oldest supported gcc version + has been bumped to gcc-5.4 (released in 2015). + +Downloads: +[tarball](./releases/paraslash-0.7.1.tar.xz), +[signature](./releases/paraslash-0.7.1.tar.xz.asc) + +---------------------------------- +0.7.0 (2022-03-12) "seismic orbit" +---------------------------------- + +The major incompatible change which requires to bump the major version +is the switch from sha1 to sha256, see below for details. However, +there are many other improvements, the usual amount of bug fixes and +a couple of new features. + +- Starting with paraslash-0.7.0, the sha256 hash value of each known + audio file is stored in the database while older versions employed the + sha1 hash algorithm which has been considered insecure since 2005 + and should no longer be used today. The switch from sha1 to sha256 + requires users to upgrade their database using the new para_upgrade_db + program, followed by re-adding all files to recompute the hashes. With + this approach all metadata stored in the database (last played date, + num played value, moods, playlists, attributes etc.) are kept. An + simpler alternative is to start over from scratch by running the + "init" command but this will lose these metadata. +- Server and client now hash the session keys with sha256 rather + than sha1 during the initial handshake. This feature is optional and + backwards compatible: old clients can still connect to a new server + (using sha1). Also new clients can connect to an old server (again + using sha1). +- The new "duration" keyword of the mood grammar makes it possible to + impose a constraint on the duration of the admissible files. +- The long deprecated version 1 mood syntax is no longer supported. +- Paraslash writers handle early end-of-file more gracefully. +- The alsa writer no longer warns about spurious underruns. +- The score formula of the audio file selector has been reworked. +- Cleanups of the doubly linked lists code. +- New option for configure: --enable-ubsan to detect and report undefined + behaviour. +- The "tasks" server command has been removed. +- The fancy new logo and a minor overhaul of the web pages. + +Downloads: +[tarball](./releases/paraslash-0.7.0.tar.xz), +[signature](./releases/paraslash-0.7.0.tar.xz.asc) + +-------------------------------------- +0.6.4 (2021-11-04) "fuzzy calibration" +-------------------------------------- + +This point release contains a fair number of fixes but no new features. +This marks the end of the 0.6 development, although paraslash-0.6 will +still be supported for some time and subsequent maintenance releases +may follow. + +- The udp sender no longer crashes when empty chunks are encountered. +- Fix a double-free bug in the exit path of the server. +- The "jmp" command now errors out when given a negative percentage. +- A fix for a bug in para_afh which triggered on the attempt to modify + the tags of an invalid mp4 file. +- A memory leak in para_afh has been fixed. +- The udp sender no longer sends multiple EOF packets. +- Some gcc warnings have been silenced. +- Minor log level adjustments and documentation improvements. + +Downloads: +[tarball](./releases/paraslash-0.6.4.tar.xz), +[signature](./releases/paraslash-0.6.4.tar.xz.asc) + +--------------------------------------- +0.5.9 (2021-11-04) "reversed dimension" +--------------------------------------- + +This release contains a few important fixes which have accumulated in +the maint branch. The paraslash-0.5.x series has now reached its end +of life and will no longer be supported. All users should upgrade to +a more recent version at this point. + +- Fix an issue with the bash completion script. +- Initialize the random seed also when using libgrypt. +- Fix some compiler warnings in the resample filter +- Don't return spurious errors from the ff server command. + +Downloads: +[tarball](./releases/paraslash-0.5.9.tar.bz2), +[signature](./releases/paraslash-0.5.9.tar.bz2.asc) + +---------------------------------------- +0.6.3 (2021-02-18) "generalized activity" +----------------------------------------- + +It has been a while since the last release, but paraslash-0.6.3 +finally has arrived. It contains a fair number of improvements, +features and fixes all over the place. + +- The ff command now accepts a negative argument to instruct the + virtual streaming system to jump backwards in the current audio + stream. The old syntax (e.g., "ff 30-") is still supported but it + is deprecated and no longer documented. The compatibility code is + sheduled for removal after 0.7.0. +- para_afh: New option: --preserve to reset the modification time to + the value of the original file after meta data modification. +- Overhaul of the compress filter code. The refined algorithm should + reduce clipping. The meaning of --aggressiveness has changed, see the + updated and extended documentation of the compress filter for details. +- Cleanup of the audio format handler code. +- We now build the tree using the .ONESHELL feature of GNU make, + which results in a significant speedup. +- Two robustness fixes for FreeBSD. +- para_client now supports RFC4716 private keys as generated with + ssh-keygen -m RFC4716. In fact, this key format has been made the + default, and the former PEM keys will be depreciated at some point. +- The ogg audio format handlers learned to detect holes and now report + the correct duration also if ogg pages are missing in the file. This + affects ogg/vorbis ogg/speex and ogg/opus. +- Robustness improvements for para_mixer. +- A fix for an old bug that could cause the server to crash or report + garbage in its status output. +- New para_play option: --end-of-playlist +- Streaming m4a files over udp has been improved. + +Downloads: +[tarball](./releases/paraslash-0.6.3.tar.xz), +[signature](./releases/paraslash-0.6.3.tar.xz.asc) + +-------------------------------------- +0.6.2 (2018-06-30) "elastic diversity" +-------------------------------------- + +The main new feature of this release is the --listen-address option +for para_server and para_audiod. But there are also a large number of +small improvements and bug fixes all over the place. The user-visible +changes include + +- para_gui no longer waits up to one second to update the screen when + the geometry of the terminal changes. +- Minor documentation improvements. +- Improvements to the crypto subsystem. +- The server subcommand "task" has been deprecated. It still works, + but prints nothing. It will be removed in the next major release. +- Server log output is now serialized, avoiding issues with partial + lines. +- It is now possible to switch to a different afs database by changing + the server configuration and sending SIGHUP to the server process. +- New server options: --listen--address, --http-listen-address and + --dccp-listen-address. These options restrict the set of listening + addresses of the TCP and DCCP sockets of the server process. +- The help commands of server, audiod, play now support --long. By default, + the short help is shown. +- The code which merges the command line options with the config file + options has been consolidated. +- If the current audio file is renamed, the status items are now updated + accordingly. +- After the server process received SIGHUP, changes to the current audio + file did not trigger an update of the status items. This has been fixed. + +Downloads: +[tarball](./releases/paraslash-0.6.2.tar.xz), +[signature](./releases/paraslash-0.6.2.tar.xz.asc) + +---------------------------------------- +0.6.1 (2017-09-23) "segmented iteration" +---------------------------------------- + +The highlight of this release is the version 2 mood parser. But there +is a lot more than that, as summarized in the list below. And of +course we have many small usability improvements and bug fixes not +mentioned here. + +- A more intuitive syntax for moods ("version 2 moods"). The + traditional version 1 moods are still supported but are deprecated + now. Removal of the version 1 mood parser is scheduled for the next + major release. +- Flex and bison are now required to build para_server. +- New sort order for the ls command: -s=h sorts the ls output by hash + value of the audio file. +- autogen.sh now runs the test suite after a successful build. +- The contents of overview.pdf have been integrated into the user + manual. +- Fixed sized audio format headers for ogg/opus streams. +- The doxygen source browser has been disabled temporarily. The + API reference is still online, though. +- Overhaul of the source code documentation. +- The deprecated --full-path option of the ls command has been + removed. It was a no-op since 0.6.0. +- The wma decoder has been cleaned up and its bitstream API made + more robust. +- The image/lyrics ID status items of the current audio file are now + updated on changes. This affects para_gui, which used to report the + old value until EOF. + +Downloads: +[tarball](./releases/paraslash-0.6.1.tar.xz), +[signature](./releases/paraslash-0.6.1.tar.xz.asc) + +--------------------------------------- +0.5.9 (2021-11-04) "reversed dimension" +--------------------------------------- +This release contains a few important fixes which have accumulated in +the maint branch. The paraslash-0.5.x series has now reached its end +of life and will no longer be supported. All users should upgrade to +a more recent version at this point. + +- Fix an issue with the bash completion script. +- Initialize the random seed also when using libgrypt. +- Fix some compiler warnings in the resample filter +- Don't return spurious errors from the ff server command. + +Downloads: +[tarball](./releases/paraslash-0.5.9.tar.bz2), +[signature](./releases/paraslash-0.5.9.tar.bz2.asc) + +--------------------------------------- +0.5.8 (2017-09-23) "branching parabola" +--------------------------------------- + +A couple of fixes for serious old bugs have accummulated in the maint +branch since paraslash-0.5.7 was released nine months ago. So here +is another 0.5.x release. As usual, all commits in the maint branch +have been merged into master, so the upcoming paraslash-0.6.1 also +contains them. For details see the git log. + +Downloads: +[tarball](./releases/paraslash-0.5.8.tar.bz2), +[signature](./releases/paraslash-0.5.8.tar.bz2.asc) + +------------------------------- +0.6.0 (2017-04-28) "fuzzy flux" +------------------------------- + +The highlights of this release are the conversion of all option parsers +to the lopsub library and the improved AAC support. But there are +many other user-visible changes all over the place. Also a lot of +old cruft has been removed, leading to incompatible changes. Hence +the new major version number. + +- Support for Mac OS X has been removed. +- On Linux systems, glibc-2.17 or newer is required to build the + source tree. +- Support for RSA public keys in ASN format (as generated by openssl + genrsa) has been removed. These keys have been deprecated since + 2011, so users should have long switched to keys generated with + ssh-keygen(1). +- If libgcrypt is used as the crypto library, we now require version + 1.5.0 (released in 2011) or later. +- The insecure RC4 stream cipher has been removed. It was superseded + by aes_ctr128 three years ago but the RC4 code had been kept for + backwards compatibility. +- On Linux, abstract unix domain sockets are used unconditionally. +- The "install" target no longer strips executables, the new + install-strip target can be used to get the old behaviour. +- The clean targets have been renamed: clean2 is gone, and the new + mostlyclean removes only the executables and object files. +- New target: check (identical to test). +- The DESTDIR make variable is honored to prepend a path to the + installation directory. This feature is orthogonal to the --prefix + option to configure. +- Minor WMA cleanups. +- The aac audio format handler has been rewritten to use the mp4ff library. + See the manual for how to install the library on your system. +- New status item: max_chunk_size. The value is stored in a previously + unused field of the afhi object of the aft table. Although backwards + compatible, users are encouraged to re-add m4a files to populate + the new field. +- No more chunk tables for aac. Chunk boundaries are determined + dynamically at stream time. +- Release and master branch tarballs are now compressed with xz rather + than bzip2. +- The lopsub package is required to install the paraslash package. + Gengetopt is no longer needed. +- make dep is gone. Dependencies have been created automatically for + a long time and it was never necessary to run make dep manually. +- para_gui lost its --timeout option. +- Most manual pages have been extended to include an overall + description of the command. +- The --stream-delay option of para_audiod has been removed. It had + been a no-op for many years. +- The deprecated --path option of the server ls command has been + removed. The command now prints full paths by default, making + --full-path a no-op. Hence --full-path has been depreacted and is + scheduled for removal in v0.6.1. +- It is now possible to use 'CFLAGS' to override the default compiler + options. +- para_fade has been renamed to para_mixer. The four modes of operation + (set, fade, snooze, sleep) are implemented as subcommands of the + new program. +- The sleep subcommand of para_mixer (former sleep mode of para_fade) + lost its --wake-hour and --wake-min options in favor of the new + --wake-time option which also accepts relative wakeup times like + "+9:30". +- The new --fade-exponent option of para_mixer allows for non-linear + channel fading. +- The new logo. + +Downloads: +[tarball](./releases/paraslash-0.6.0.tar.xz), +[signature](./releases/paraslash-0.6.0.tar.xz.asc) + +------------------------------------- +0.5.7 (2016-12-31) "semantic density" +------------------------------------- + +Mostly a bug fix release, and a bunch of internal improvements. +The only user-visible changes are the sanity checks for the touch +command and the new options to the ls command. + +- Speedup of the base64 decoder. +- One of the two source browsers has been removed from the web pages. + The doxygen API reference still contains an HTML version of each + source file. +- Two race conditions in para_server have been fixed. +- ls -p is now deprecated in favor of -F or -b. See the help text of + the ls command for details. +- The openssl code has been adjusted to work also with openssl-1.1. +- The wma decoder and audio format handler now correctly decodes + files with unusual block sizes. +- We now compile with -Wformat-signedness if possible. +- The touch command now refuses to set an invalid image or lyrics ID. +- New section on contributing for the user manual. +- Major simplification of the error subsystem. + +Downloads: +[tarball](./releases/paraslash-0.5.7.tar.bz2), +[signature](./releases/paraslash-0.5.7.tar.bz2.asc) + +------------------------------------------- +0.4.14 (2016-12-31) "branching oscillation" +------------------------------------------- + +Many fixes for nasty bugs have accumulated over the years since 0.4.13 +was released in 2013. This release contains all of them. It is the +last v0.4.x release, so v0.4.x is now end of life. The maint branch +of the git repository has been forwarded to v0.5.7 and will start to +receive important fixes for 0.5.x, which is now in maintenance mode. + +- Fix for the "double encryption bug" with gcrypt, which caused + garbage to be sent to stat clients. +- The "prev" command of para_play now works as expected. +- Invalid parameters for the begin and end chunk no longer cause + the afh receiver of para_recv to segfault. +- A fix for an assertion that triggered in the FEC slice setup code. +- Closing the terminal with a running para_gui causes the process to + die, rather than using 100% of CPU time. +- para_gui no longer shows stale information about the previous + audio file. +- A fix for a bug in the fec decoder which caused aborts if the buffer + pool filled up. +- The assertion in the buffer tree code no longer triggers. +- The "afs_event: table moods, event 0: key already exists in rbtree" + error no longer occurs on attribute changes. +- A NULL pointer dereference in com_sender() has been fixed. +- The -i option of lsatt works as advertised. +- Various fixes for the build system. + +Downloads: +[tarball](./releases/paraslash-0.4.14.tar.bz2), +[signature](./releases/paraslash-0.4.14.tar.bz2.asc) + +--------------------------------------- +0.5.6 (2016-07-10) "cascading gradient" +--------------------------------------- The highlight of this release is the new -m flag for para_afh which lets it modify the meta tags of the given audio file(s). This feature @@ -25,7 +472,9 @@ not mentioned here have accumulated and are also part of the release. - para_gui no longer reports 100% playing time at the stream start. - Opus cleanups. -Download: [tarball](./releases/paraslash-git.tar.bz2) +Downloads: +[tarball](./releases/paraslash-0.5.6.tar.bz2), +[signature](./releases/paraslash-0.5.6.tar.bz2.asc) -------------------------------------- 0.5.5 (2015-09-20) "magnetic momentum"