NEWS 14.9 KB
Newer Older
Moritz Grimm's avatar
Moritz Grimm committed
1
2
3
4
5
6
7
Changes in 1.0.1, released on XXXX-XX-XX:

 * Fix a crash if there is a typo in the <encoder /> setting
 * Minor example and documentation tweaks



8
Changes in 1.0.0, released on 2020-01-29:
9

10
11
12
 * Major feature release with a new configuration file structure
 * New configuration migration tool to help with the upgrade
   (ezstream-cfgmigrate)
Moritz Grimm's avatar
Moritz Grimm committed
13
14
15
16
17
 * Added support for modern libshout functionality:
   - WebM and Matroska media formats
   - ICY and RoarAudio streaming protocols
   - TLS encryption
 * Several bug fixes and an extensive unit test suite
18
19
20
21
22
23
24
25
26
27
28
29
30
 * Support the new '@b@' placeholder for separate album metadata
 * The command line option -p has been added, causing ezstream to write a
   locked PID file to a given location
 * The command line options -m and -n have been removed, and new configuration
   file settings have been added accordingly
 * The real-time status information is now enabled explicitly with the new
   command line option -r
 * The behaviour of the -s command line argument was changed:
   To shuffle lines from standard input, the special file name "-" needs
   to be provided.
 * TagLib (its C wrapper library) is now a mandatory dependency
 * Native support for MS Windows and certain legacy UNIX systems has been
   removed
31
32


33

34
Changes in 0.6.1, released on 2020-01-29:
Moritz Grimm's avatar
Moritz Grimm committed
35
36
37
38
39
40
41

* src/util.c
   - [FIX]   Fix crash on missing <format/> element. From Petr Pisar.
             (Ticket #2208)



Moritz Grimm's avatar
Moritz Grimm committed
42
Changes in 0.6.0, released on 2015-01-18:
43

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 * This release contains a SECURITY FIX for a command injection vulnerability
   that was found and reported by Alexandre Rebert:

   The previous handling of metadata placeholders allowed for arbitrary shell
   commands to be trivially injected and executed as the ezstream user, via
   malicious media files.

   This vulnerability depends on both a configuration using metadata
   placeholders and the user streaming media files from untrusted sources
   without noticing `commands` or $(commands) in artist or title fields.

   While the group of actually affected users may be limited, all users are
   advised to upgrade.

 * This release requires users to ADJUST their CONFIGURATION:

   To protect against the injection vulnerability above, metadata is now
   properly quoted and escaped from the shell. This means that any extra
   quoting must be removed from configuration files.

   Remove all quoting from metadata placeholders in <encode/> and <decode/>
   commands, e.g. replace "@M@" with @M@, and "@T@" with @T@, etc. Without
   these changes, stream metadata will look both wrong and the injection
   vulnerability may be re-introduced.

   Configuration examples have been adjusted accordingly.

71
 * src/ezstream.c:
72
   - [FIX]   Prevent certain characters from being interpreted by the shell.
73
74
75
   - [FIX]   Prevent ezstream from entering an infinite loop when stopping to
             send data to standard input. From gquintard.
             (Ticket #2045)
76
77
78
 * various:
   - [NEW]   Add new <metadata_refreshinterval/> feature from Matthew Adams
             (with minor changes plus documentation.) This allows for recurring
79
             and custom metadata updates in between song changes via
80
             <metadata_progname/>.
81
82
83
   - [NEW]   Add new command line option `-m' to disable any active metadata
             updates. Idea from Richard Thomas.
             (Ticket #1620)
84
85
86



87
Changes in 0.5.6, released on 2009-08-31:
88

89
90
91
92
93
94
 * ezstream-file.sh:
   - [NEW]   Add and install ezstream-file.sh, a new convenience shell script
             that generates configuration and playlist from a template and
             command line, respectively. (Bourne shell and POSIX utilities
             required.)
             See ezstream-file.sh(1) for details.
95
96
97
 * src/ezstream.c:
   - [MISC]  Be more tolerant towards faulty playlists and similar issues.
             Failure to open a resource (e.g. a media file) is no longer fatal
98
99
             and operation will continue until 100 subsequent errors. Based on
             an idea from dhorton.
100
             (Ticket #1585)
101
102
   - [NEW]   New command line option -s: Make ezstream function as a line-
             based shuffling utility.
103
104
105
106
107
 * src/playlist.c:
   - [MISC]  Consider no output from a playlist program to be equivalent to an
             empty line, indicating that the end of the playlist is reached.
   - [FIX]   Do not complain when receiving an empty line from a playlist
             program.
moritz's avatar
moritz committed
108
109
 * examples/:
   - [NEW]   Add a real-world example playlist script with logging feature.
110
111


112

moritz's avatar
moritz committed
113
Changes in 0.5.5, released on 2009-08-01:
moritz's avatar
Update.    
moritz committed
114
115
116
117
118

 * win32/config.h:
   - [FIX]   Re-enable TagLib support in MSVC build. Found by Roman Donchenko.
             (Ticket #1535)

119
 * various:
120
121
122
   - [NEW]   New optional <sourceuser/> configuration option, to change the
             username used in authentication with Icecast. Suggested by
             Akos Veres.
moritz's avatar
moritz committed
123
   - [MISC]  Further improvements and minor fixes in the build system.
124

moritz's avatar
Update.    
moritz committed
125
126


127
Changes in 0.5.4, released on 2009-03-28:
128

moritz's avatar
Update.    
moritz committed
129
 * compat/sys/tree.*:
moritz's avatar
moritz committed
130
   - [MISC]  Update the tree macros to a newer version. The manual, shipped for
131
132
             reference, now has a more friendly 2-clause BSD license.

moritz's avatar
Update.    
moritz committed
133
134
135
136
 * various:
   - [FIX]   Add a missing metadata charset conversion, and add charset
             conversions for filenames. From Roman Donchenko.
   - [FIX]   Fix build on MinGW. From Roman Donchenko.
137
138
139
   - [MISC]  Overhaul and modernize the build system. Ezstream is now expected
             to build "out of the box" on more systems without configuration
             tweaks.
140
141
142
143
   - [FIX]   Adjust the build system to better handle optional dependencies.
             It is now possible to choose between TagLib and libvorbis for
             reading Ogg Vorbis metadata, or no Vorbis metadata support at
             all. (Ticket #1398)
144
   - [MISC]  Miscellaneous code maintenance and a bit of cleaning up.
moritz's avatar
Update.    
moritz committed
145

146
147


148
Changes in 0.5.3, released on 2007-12-01:
149
150
151
152
153
154
155

 * src/ezstream.c:
   - [FIX]   Prevent (very) long-running ezstream processes from dying without
             error message by ignoring SIGPIPE where available.



moritz's avatar
moritz committed
156
Changes in 0.5.2, released on 2007-11-04:
moritz's avatar
Update.    
moritz committed
157
158
159
160
161
162
163
164

 * src/ezstream.c:
   - [FIX]   Fix a crash that occurs when streaming from standard input without
             using a script or program that supplies metadata information.
             (Ticket #1247)
   - [FIX]   Similar to the fix for #1247, properly initialize another
             variable. The result is a cosmetic fix for the "real-time" status
             line when streaming from standard input.
moritz's avatar
Sync.    
moritz committed
165
166
167
168
169
170
171
172
   - [MISC]  Provide a useful error message when there's no more data to read
             from standard input instead of talking about scary, bad file
             descriptors.
   - [MISC]  Further prettify the output to make more sense when streaming from
             standard input.

 * src/xalloc.c:
   - [FIX]   A rare, possible crash has been fixed in an error path.
moritz's avatar
Update.    
moritz committed
173

moritz's avatar
Sync.    
moritz committed
174
175
176
177
178
179
 * examples/*:
   - [NEW]   Add an example configuration for streaming from standard input.
   - [MISC]  Improve reencoding examples to make them more easily usable with
             fewer changes.
   - [MISC]  Reenconding example files have been renamed.

moritz's avatar
Update.    
moritz committed
180
181


moritz's avatar
moritz committed
182
Changes in 0.5.1, released on 2007-09-16:
moritz's avatar
Update.    
moritz committed
183
184
185

 * src/playlist.c:
   - [FIX]   Fix a segmentation fault in playlist_*_next() when trying to
186
             access empty playlists. (Ticket #1240)
moritz's avatar
Update.    
moritz committed
187
188
189
190
191
192
193
194
195

 * src/ezstream.c:
   - [MISC]  Issue a warning in verbose mode when dealing with an empty
             playlist file. This also makes it more obvious what is going on
             when a user makes ezstream spin on an empty playlist with
             <stream_once/> set to 0.



moritz's avatar
moritz committed
196
Changes in 0.5.0, released on 2007-08-31:
moritz's avatar
Sync.    
moritz committed
197

moritz's avatar
moritz committed
198
 * src/ezstream.c:
moritz's avatar
Sync.    
moritz committed
199
200
   - [FIX]   The special case of streaming MP3 files without reencoding had
             been lost, causing such streams to have no metadata. This has
201
             been fixed. (Ticket #1225)
202
   - [MISC]  Handle SIGINT and SIGTERM to perform a clean shutdown.
203
204

 * various:
moritz's avatar
Sync.    
moritz committed
205
206
   - [NEW]   A new convenience feature has been added, to allow automatic
             normalization of metadata strings. Useful if the majority of
moritz's avatar
moritz committed
207
             files come from a broken encoder/tagging program. Disabled
moritz's avatar
Sync.    
moritz committed
208
209
             by default, this feature can be enabled with the new `-n'
             command line parameter.
210
211
212
213
   - [NEW]   Enable Unicode support in TagLib and convert metadata strings
             to the current locale (LC_CTYPE) before displaying them on the
             console. Unsupported characters are displayed as '?', which
             does not affect the actual metadata. This feature requires
214
             iconv() via libc, if available, or GNU libiconv.
215
216
217
   - [NEW]   Support gettimeofday() functionality on all platforms, including
             Windows. The "real-time status line" when using the -q and -v
             parameters is now complete everywhere.
218
   - [MISC]  Add new --enable-debug configuration option to the configure
moritz's avatar
Sync.    
moritz committed
219
             script, which enables (also new) memory debugging features.
220
             (Not interesting for non-developers.)
221
   - [MISC]  Various small code cleanups.
222

223
224
225
 * The Windows build of ezstream now supports reading metadata from files
   with TagLib.

226
227


228
229
230
231
232
233
234
235
Changes in 0.4.3, released on 2007-07-24:

 * src/ezstream.c:
   - [FIX]   Plug the file descriptor leak, partially fixed in version 0.4.1,
             for good - it affected more than just the -q use case.



236
Changes in 0.4.2, released on 2007-07-17:
237
238
239
240
241
242
243

 * src/ezstream.c:
   - [FIX]   Make <stream_once/> work with playlists, too. Problem found by
             Geoff Shang <geoff at quitelikely dot com>.



moritz's avatar
moritz committed
244
Changes in 0.4.1, released on 2007-07-15:
moritz's avatar
Update.    
moritz committed
245
246
247
248
249
250
251
252
253

 * src/ezstream.c:
   - [FIX]   Plug a file descriptor leak when using the -q parameter.

 * Documentation:
   - [FIX]   Minor spelling/consistency fixes.



moritz's avatar
moritz committed
254
Changes in 0.4.0, released on 2007-03-11:
moritz's avatar
sync    
moritz committed
255

moritz's avatar
sync    
moritz committed
256
 * src/util.*:
moritz's avatar
sync    
moritz committed
257
258
259
   - [FIX]   The xfree() function did not work as intended due to a programming
             error. Found, and fix suggested, by Karl Heyes.

moritz's avatar
sync    
moritz committed
260
261
262
 * src/playlist.*:
   - [FIX]   An error compareable to the one about xfree() in src/util.* has
             been fixed.
moritz's avatar
fixes    
moritz committed
263
264
   - [MISC]  Refuse to execute a group- or world-writeable playlist script or
             program.
moritz's avatar
sync    
moritz committed
265

moritz's avatar
sync    
moritz committed
266
 * src/compat.c:
moritz's avatar
moritz committed
267
   - [NEW]   Implement a basename() function for Windows that behaves like the
moritz's avatar
fixes    
moritz committed
268
             ones used on Unix systems.
moritz's avatar
sync    
moritz committed
269

moritz's avatar
sync    
moritz committed
270
271
272
273
 * win32/:
   - [MISC]  Remove the rather ugly HTML version of the man page from the
             distribution, and provide a much better PDF version instead.

moritz's avatar
moritz committed
274
 * various:
moritz's avatar
moritz committed
275
   - [NEW]   Allow ezstream to use TagLib for reading metadata from media
moritz's avatar
moritz committed
276
             files. TagLib (libtag_c) is now an optional dependency.
moritz's avatar
moritz committed
277
   - [NEW]   When built with TagLib support, include the song length in the
278
             "real-time" information line, if available.
moritz's avatar
moritz committed
279
   - [NEW]   New <metadata_progname> configuration option, which causes
280
281
             metadata to be read from the output of an external program or
             script.
moritz's avatar
moritz committed
282
   - [NEW]   New runtime control via the SIGUSR2 signal, which triggers reading
283
284
             of fresh metadata information from <metadata_progname> (metadata
             is always read at song changes.)
moritz's avatar
moritz committed
285
   - [NEW]   New <metadata_format> configuration option, to customize metadata
286
             strings when used with the new <metadata_progname> feature.
moritz's avatar
moritz committed
287
   - [NEW]   New '@a@' and '@t@' placeholders for separate artist and title
288
             metadata in de-/encoder commands.
moritz's avatar
moritz committed
289

moritz's avatar
sync    
moritz committed
290
291


292
Changes in 0.3.0, released on 2007-03-05:
293
294
295
296
297
298
299

 * The original author, Ed Zaleski, hands over ezstream maintainership to
   Moritz Grimm.

 * New features:
   - Playlist shuffling support, enabled via the new <shuffle> configuration
     option.
300
301
302
   - Playlist scripting support: Indicate that the executable in <filename>
     should be run each time to get a new media filename to stream, by setting
     the new <playlist_program> configuration option to 1.
303
304
   - New <stream_once> configuration option, which makes ezstream play a media
     file or playlist once and then exit.
305
306
   - New <reconnect_tries> option to restrict the number of reconnection
     attempts to a server in case the connection goes down.
307
308
309
310
311
312
313
314
315
   - Add feature to skip the currently streaming track, done by sending the
     SIGUSR1 signal to the ezstream process.
   - New command line option `-q': Suppress standard error output from external
     de-/encoders.
   - New command line option `-v': Produce more verbose output.
   - New "real-time" status display of the stream when both -q and -v are given
     on the command line.
   - Thorough configuration file checks with helpful error messages.
   - The @M@ metadata placeholder is now supported in <decode>.
316
317
   - Playlists may now have the '.txt' filename extension in addition to
     '.m3u'.
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340

 * Fixes:
   - At least one stack and one heap overflow have been fixed.
   - Several memory leaks have been fixed.
   - Strict checking of the configuration file prevents unexpected behavior and
     adds another safeguard to prevent crashes.
   - Fixed and more portable signal handling.

 * Miscellaneous, user-visible changes:
   - Improved documentation. Ezstream now has a comprehensive man page and the
     README file has been rewritten.
   - Consistency improvements in the configuration examples. The examples are
     now also installed.
   - The <format/> and <match/> configuration elements, as well as filename
     extension matching to detect playlists in the <filename> element, are
     now case insensitive.
   - Various improvements in the build system and portability fixes.
   - Consistent and more helpful messages from ezstream. By default, ezstream
     no longer clutters the screen with lots of output (some information that
     used to be available needs to be enabled with the new `-v' command line
     parameter.)
   - Tweaked metadata string generation: no more lone " - " dashes at the
     beginning or end of the string.
moritz's avatar
moritz committed
341
   - New command line option `-V': Print the version number and exit.
342
343
344
345
346



Changes in 0.2.1, released on 2005-12-14:

moritz's avatar
sync    
moritz committed
347
 * src/ezstream.c:
348
349
350
351
352
353
354
355
356
357
358
   - [FIX]   Prevent a heap overflow with large ID3v1 tags.
   - [FIX]   Use pclose() on FILE* handles that were opened with popen().



Changes in 0.2.0, released on 2005-01-05:

 * various:
   - [MISC]  Clean up and improve example configuration files, and add more
             examples.

moritz's avatar
sync    
moritz committed
359
 * src/ezstream.c:
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
   - [FIX]   Fix reencoding support on Windows.
   - [ADD]   Attempt to reconnect to a server if the connection goes down
             during streaming.



Changes in 0.1.3, released on 2004-12-22:

 * various:
   - [ADD]   Add support for streaming Ogg Theora.
   - [ADD]   Add reencoding support via external de-/encoders.
   - [ADD]   Support passing through unknown media types.



Changes in 0.1.2, released on 2004-04-21:

 * src/ezstream.c:
   - [ADD]   Add feature to reread the playlist after the currently streaming
             track, done by sending the SIGHUP signal to the ezstream process.



Changes is 0.1.1, released on 2004-02-02:

 * src/ezstream.c:
   - [FIX]   Set read mode to binary for stdin on WIN32.

 * win32/ezstream.dsp:
   - [MISC]  Add libxml to project file.



2004-01-30:

 * Initial import of ezstream 0.1.0 into Xiph.org SVN.

 * Ezstream 0.1.0 released.