NEWS 15.4 KB
Newer Older
Moritz Grimm's avatar
Moritz Grimm committed
1
Changes in 1.0.2, released on 2021-02-11:
2
3
4

 * Fix a crash, if metadata placeholders are configured for input files
   that do not contain the respective values. From gui-lux on Github (#16).
5
6
 * Fix a crash in one instance of querying the metadata program. From taku0220
   on Github (#23).
7
8
 * Fix a crash when referencing an unconfigured intake in a stream. From
   Optiqus on Github (#28).
Moritz Grimm's avatar
Moritz Grimm committed
9
 * Minor documentation and example tweaks
10
11
12



Moritz Grimm's avatar
Moritz Grimm committed
13
Changes in 1.0.1, released on 2020-02-22:
Moritz Grimm's avatar
Moritz Grimm committed
14

Moritz Grimm's avatar
Moritz Grimm committed
15
 * Fix a crash, if there is a typo in the <encoder /> setting
Moritz Grimm's avatar
Moritz Grimm committed
16
 * Fix regression setting the stream name. From zygmund2000 on Github.
Moritz Grimm's avatar
Moritz Grimm committed
17
18
19
20
 * Minor example and documentation tweaks



21
Changes in 1.0.0, released on 2020-01-29:
22

23
24
25
 * 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
26
27
28
29
30
 * 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
31
32
33
34
35
36
37
38
39
40
41
42
43
 * 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
44
45


46

47
Changes in 0.6.1, released on 2020-01-29:
Moritz Grimm's avatar
Moritz Grimm committed
48
49
50
51
52
53
54

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



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

57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 * 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.

84
 * src/ezstream.c:
85
   - [FIX]   Prevent certain characters from being interpreted by the shell.
86
87
88
   - [FIX]   Prevent ezstream from entering an infinite loop when stopping to
             send data to standard input. From gquintard.
             (Ticket #2045)
89
90
91
 * various:
   - [NEW]   Add new <metadata_refreshinterval/> feature from Matthew Adams
             (with minor changes plus documentation.) This allows for recurring
92
             and custom metadata updates in between song changes via
93
             <metadata_progname/>.
94
95
96
   - [NEW]   Add new command line option `-m' to disable any active metadata
             updates. Idea from Richard Thomas.
             (Ticket #1620)
97
98
99



100
Changes in 0.5.6, released on 2009-08-31:
101

102
103
104
105
106
107
 * 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.
108
109
110
 * 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
111
112
             and operation will continue until 100 subsequent errors. Based on
             an idea from dhorton.
113
             (Ticket #1585)
114
115
   - [NEW]   New command line option -s: Make ezstream function as a line-
             based shuffling utility.
116
117
118
119
120
 * 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
121
122
 * examples/:
   - [NEW]   Add a real-world example playlist script with logging feature.
123
124


125

moritz's avatar
moritz committed
126
Changes in 0.5.5, released on 2009-08-01:
moritz's avatar
Update.    
moritz committed
127
128
129
130
131

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

132
 * various:
133
134
135
   - [NEW]   New optional <sourceuser/> configuration option, to change the
             username used in authentication with Icecast. Suggested by
             Akos Veres.
moritz's avatar
moritz committed
136
   - [MISC]  Further improvements and minor fixes in the build system.
137

moritz's avatar
Update.    
moritz committed
138
139


140
Changes in 0.5.4, released on 2009-03-28:
141

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

moritz's avatar
Update.    
moritz committed
146
147
148
149
 * 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.
150
151
152
   - [MISC]  Overhaul and modernize the build system. Ezstream is now expected
             to build "out of the box" on more systems without configuration
             tweaks.
153
154
155
156
   - [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)
157
   - [MISC]  Miscellaneous code maintenance and a bit of cleaning up.
moritz's avatar
Update.    
moritz committed
158

159
160


161
Changes in 0.5.3, released on 2007-12-01:
162
163
164
165
166
167
168

 * 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
169
Changes in 0.5.2, released on 2007-11-04:
moritz's avatar
Update.    
moritz committed
170
171
172
173
174
175
176
177

 * 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
178
179
180
181
182
183
184
185
   - [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
186

moritz's avatar
Sync.    
moritz committed
187
188
189
190
191
192
 * 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
193
194


moritz's avatar
moritz committed
195
Changes in 0.5.1, released on 2007-09-16:
moritz's avatar
Update.    
moritz committed
196
197
198

 * src/playlist.c:
   - [FIX]   Fix a segmentation fault in playlist_*_next() when trying to
199
             access empty playlists. (Ticket #1240)
moritz's avatar
Update.    
moritz committed
200
201
202
203
204
205
206
207
208

 * 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
209
Changes in 0.5.0, released on 2007-08-31:
moritz's avatar
Sync.    
moritz committed
210

moritz's avatar
moritz committed
211
 * src/ezstream.c:
moritz's avatar
Sync.    
moritz committed
212
213
   - [FIX]   The special case of streaming MP3 files without reencoding had
             been lost, causing such streams to have no metadata. This has
214
             been fixed. (Ticket #1225)
215
   - [MISC]  Handle SIGINT and SIGTERM to perform a clean shutdown.
216
217

 * various:
moritz's avatar
Sync.    
moritz committed
218
219
   - [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
220
             files come from a broken encoder/tagging program. Disabled
moritz's avatar
Sync.    
moritz committed
221
222
             by default, this feature can be enabled with the new `-n'
             command line parameter.
223
224
225
226
   - [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
227
             iconv() via libc, if available, or GNU libiconv.
228
229
230
   - [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.
231
   - [MISC]  Add new --enable-debug configuration option to the configure
moritz's avatar
Sync.    
moritz committed
232
             script, which enables (also new) memory debugging features.
233
             (Not interesting for non-developers.)
234
   - [MISC]  Various small code cleanups.
235

236
237
238
 * The Windows build of ezstream now supports reading metadata from files
   with TagLib.

239
240


241
242
243
244
245
246
247
248
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.



249
Changes in 0.4.2, released on 2007-07-17:
250
251
252
253
254
255
256

 * 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
257
Changes in 0.4.1, released on 2007-07-15:
moritz's avatar
Update.    
moritz committed
258
259
260
261
262
263
264
265
266

 * 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
267
Changes in 0.4.0, released on 2007-03-11:
moritz's avatar
sync    
moritz committed
268

moritz's avatar
sync    
moritz committed
269
 * src/util.*:
moritz's avatar
sync    
moritz committed
270
271
272
   - [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
273
274
275
 * src/playlist.*:
   - [FIX]   An error compareable to the one about xfree() in src/util.* has
             been fixed.
moritz's avatar
fixes    
moritz committed
276
277
   - [MISC]  Refuse to execute a group- or world-writeable playlist script or
             program.
moritz's avatar
sync    
moritz committed
278

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

moritz's avatar
sync    
moritz committed
283
284
285
286
 * 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
287
 * various:
moritz's avatar
moritz committed
288
   - [NEW]   Allow ezstream to use TagLib for reading metadata from media
moritz's avatar
moritz committed
289
             files. TagLib (libtag_c) is now an optional dependency.
moritz's avatar
moritz committed
290
   - [NEW]   When built with TagLib support, include the song length in the
291
             "real-time" information line, if available.
moritz's avatar
moritz committed
292
   - [NEW]   New <metadata_progname> configuration option, which causes
293
294
             metadata to be read from the output of an external program or
             script.
moritz's avatar
moritz committed
295
   - [NEW]   New runtime control via the SIGUSR2 signal, which triggers reading
296
297
             of fresh metadata information from <metadata_progname> (metadata
             is always read at song changes.)
moritz's avatar
moritz committed
298
   - [NEW]   New <metadata_format> configuration option, to customize metadata
299
             strings when used with the new <metadata_progname> feature.
moritz's avatar
moritz committed
300
   - [NEW]   New '@a@' and '@t@' placeholders for separate artist and title
301
             metadata in de-/encoder commands.
moritz's avatar
moritz committed
302

moritz's avatar
sync    
moritz committed
303
304


305
Changes in 0.3.0, released on 2007-03-05:
306
307
308
309
310
311
312

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

 * New features:
   - Playlist shuffling support, enabled via the new <shuffle> configuration
     option.
313
314
315
   - 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.
316
317
   - New <stream_once> configuration option, which makes ezstream play a media
     file or playlist once and then exit.
318
319
   - New <reconnect_tries> option to restrict the number of reconnection
     attempts to a server in case the connection goes down.
320
321
322
323
324
325
326
327
328
   - 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>.
329
330
   - Playlists may now have the '.txt' filename extension in addition to
     '.m3u'.
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353

 * 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
354
   - New command line option `-V': Print the version number and exit.
355
356
357
358
359



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

moritz's avatar
sync    
moritz committed
360
 * src/ezstream.c:
361
362
363
364
365
366
367
368
369
370
371
   - [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
372
 * src/ezstream.c:
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
398
399
400
401
402
403
404
405
406
407
408
409
410
   - [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.