2007-11-10: GMediaServer 0.13.0 released. This project is looking for a new maintainer! Unfortunately I have found it more and more difficult to find time and motivation to continue working on this project. If anyone is interesting taking over development and support for GMediaServer on Savannah, please let me know! Link libmagic with zlib optionally. Link libupnp with pthread optionally - fix for FreeBSD (bug reported by Olaf). Fix bug in parsing of sort criterias (reported by Canola maintainer Gustavo Sverzut Barbieri). Change license to GPLv3. Minor manual updates. Added some supported devices. Added Playstation 3 support (patch from FUKAUMI Naoki, thanks!). Added preliminary DLNA support. Enable large file support in GMediaServer, fixing some weird problems. GMediaServer will now work with libupnp 1.6.1. 2006-09-01: GMediaServer 0.12.0 released. Fix compilation problems by including more headers in various places (from Jan Ceuleers, Sebastian Marek, Mohan Yellaji, and Alejandro Imass). Support libupnp 1.3.x properly by using headers in correct directory (from Jan Ceuleers). Added initial support for file types other than audio. Add support for JPEG images (patch from Jan Ceuleers). Use and depend on libmagic for file type identification. Add --file-types help to --help message. Fix libuuid detection (reported by Wayne Stallwood). Enable searching by adding 'searchable' attribute to containers (reported by Rémi). Minor documentation improvements. Fix bug: GMediaServer would segfault when more than one directory was specified on the command line and one (or more) of them could not be scanned. Fix bugs: GMediaServer would segfault on any search. Output non-printable strings escaped properly. 2006-04-08: GMediaServer 0.11.0 released. Search fixes: Return proper search capabilities (""->"*") (patch from Randy Scott). Correct UPnP return value if search criteria wrong (709->708). Memory leak: Free search criteria memory after Search (Randy Scott). New supported devices: Pinnacle ShowCenter 200 (from Michael Seewald). Philips Streamium SLA5520 (from Bart Küpers). Check for libupnp using pkg-config first (supported by libupnp 1.3.0 and later). Implement sorting for Browse and Search actions (Randy Scott). Support track numbers in output (patch from Randy Scott). Improve and add more output during scanning phase. Add support for FIFO and device files (requested by António Madureira). Fix `make install' bug: include mkinstalldirs (reported by Richard Lapointe). Fix `memory exhausted' error on 64-bit platforms (report and fix from Joerg). The GMediaServer device UDN is now generated using libuuid from e2fsprogs (reported by Arthur Taylor). libuuid (from E2fsprogs 1.38+1.39-WIP-2005.12.31) is included in the source code package. Fix configure bug: Compile even without TagLib. Mention compatibility with Terratec Noxon (from Michael Seewald). Add support for identifying Ogg Vorbis audio. Reformat and reorganize documentation. Get rid of trade marks per GNU Coding Standards. Mention that GMediaServer is in Debian. Added support for reading and displaying duration (from TagLib) (patch from Randy Scott). Detect recursive file scanning (playlists and directories) by remembering and comparing inode values. The complete manual is now on the web (missing files reported by Matthew Underwood). Improve playlist handling: Fix file identification bug (any file would be treated as a m3u play list). Source code has now been imported to CVS on Savannah! Convert backslash to slash in file names. Check file names before continuing scan (deny absolute paths or parent paths). Note that symlinks can still be used to allow scanning outside the given directories. Warn about and ignore empty lines in playlists (would cause endless loop). Revised character set handling: Tags identified with id3lib are now handled correctly as either ISO 8859-1 or UTF-16 (bug reported by Michael Seewald). Tags identified with TagLib are now properly handled as UTF-8. Load tags with TagLib first, then id3lib. TagLib has a cleaner C interface and seems to be better maintained. Rename --in-charset option to --fs-charset, specifying character set used for local file system only. Tags are stored as UTF-8 internally, and player devices are assumed to handle UTF-8 by default. If not, override with the --device-charset option. Most strings are handled as UTF-8 internally. Character encoding for messages printed to standard out and to log file can be specified with --log-charset. 2006-02-18: GMediaServer 0.10.0 released. GMediaServer is now a GNU project. libupnp is now in stable (sarge) (noted by Andy Wild). Link with libupnp correctly on FreeBSD - use PTHREAD_CFLAGS and PTHREAD_LIBS (help from James E. Flemer). Look for libupnp in /usr/local as well as /usr unless prefix path has been specified manually. Fix playlist detection code (reported by Cameron Davidson). Added documentation (texinfo format), dual licensed GPL/GFDL. Added TagLib support (inspired by patch from Jiri Wichern). The manual page is also licensed dual licensed GPL/GFDL. Rename --disable-id3 option to --disable-tags. This option is now always available, no matter if GMediaServer is compiled with or without id3lib or taglib support. Mention compatibility with D-Link DSM-520 (from Darrell Dillman). Mention compatibility with Roku SoundBridge M1000 (from Andy Grover). Mention compatibility with Terratec Noxon2 (from Yann Calderara). Fix build problem regarding Yacc and Lex headers. 2005-12-13: GMediaServer 0.9.0 released. Link with LIBICONV and LIBINTL for proper portability (patch from James E. Flemer). Initialize and deinitialize ContentDirectory service properly, fixing segfaults (reported by Glen Stewart). Mention uShare in Other Links (from Benjamin Zores). Mention SMC EZ Stream(TM) SMCWAA-B among tested devices (from Ben Hall). Changed wording in Dependencies in README. Fix handling of filters in Browse and Search requests (patch from Wolfgan Kless). Fix bug in subscription handling code (patch from Rémi Turboult). 2005-09-16: GMediaServer 0.8.0 released. Implement crude rescanning support - directories are now rescanned when the main process receives the signal USR1. Fix segmentation fault when listing files with partial ID3 tag (patch from Ivo Clarysse). Escape XML characters (such as < and >) in data sent to media player properly (patch from Ivo Clarysse). Accept more filter values for ContentDirectory.Browse, and Search actions (patch from Ivo Clarysse). Added links to other software in the same category as GMediaServer. Fix potentially incorrect error messages caused by free function clobbering errno. Created a mailing list gmediaserver-devel@nongnu.org which is open to everyone Implement UPnP variable request and subscription support. Added SystemUpdateID variable for the ContentDirectory service. Added SourceProtocolInfo, SinkProtocolInfo, and CurrentConnectionIDs variables for the ConnectionManager service. Implemented ContentDirectory SystemUpdateId variable. Fixed README typos (James E. Flemer). Sort scanned entries alphabetically (James E. Flemer). ConnectionManager GetCurrentConnectionIDs action now returns "0" for better standard compliance. Added gnulib module getaddrinfo for improved portability. 2005-08-29: GMediaServer 0.7.0 released. Add transparent support for fetching audio data from remote HTTP and ICY servers (Icecast, Shoutcast etc). This means you can listen to web radio on the media player - GMediaServer acts as a kind of proxy between the remote server and the media player. Get rid of the http file type since this is automaticly supported now. Add support for character set conversion using --in-charset and --device-charset options (suggested by Rémi Turboult). Add Gnulib modules getline, c-ctype for web client support. Add modules hmap and comparison for web client support. Fix bug in code generating response for Browse and Search actions - would not be matched with , same for (reported by Jean-François Remy, James E. Flemer, Ivo Clarysse and Rémi Turboult). Fix compilation problem on FreeBSD - sys/socket.h needed to be included before some other header files (patch from James E. Flemer). Fix compilation problems on FreeBSD by including certain header files (patch from James E. Flemer). Changed profile settings for Omnifi DMS1 (dms1) (patch from James E. Flemer). Fix potential segmentation fault in code handling playlists (patch from James E. Flemer). Add info about FreeBSD port to web site (from James E. Flemer). Parse PLS playlists case insensitively (except header) (patch from James E. Flemer). Abort reading of playlist after 16 incorrect lines/files. Allow case insensitive http:// URLs in playlists (patch from James E. Flemer). Added some more References to documentation. 2005-08-13: GMediaServer 0.6.0 released. Changed type sent by ConnectionManager::ProtocolInfo to http-get:*:*:*. Add support for HTTP URLs found in playlists and specified on the command line. Type is http. This is disabled by default - enable it with --file-type=http,[..]. Add support for PLS, Simple, and Extended M3U playlists (from James E. Flemer). Add References and Trademarks sections to README and website. Mention that UPnP(TM) is a trademark, and that NETGEAR(R), Linksys(R), Philips are registered trademarks. Improved some error messages. Escape non-printable characters in messages printed on screen. Add Gnulib module quote for better error messages. Add Gnulib module getnline for reading files for playlist support. Enable localization by actually setting locale and text domain on startup (doh!). Added MANIFEST.sources file. Clean up some code, resulting in a new module strutil. 2005-08-09: GMediaServer 0.5.0 released. Improve UPnP compliance by assigning the root entry a non-empty name (required by Intel Device Validator, although this name usually isn't seen on the control point). Improve UPnP complience by supporting Filter for Browse and Search. Improve portability by using nstrftime from Gnulib instead of strftime. Add the concept of profiles, specified with --profile. Add profiles mp101 (Netgear MP101), dms1 (Omnify DMS1), and generic. Add Omnifi DMS1 to list of supported devices (reported by James E. Flemer). Return all results when RequestedCount is 0 for ContentDirectory Browse action (reported by Rémi Turboult). Write correct process id to file when using --background (patch submitted by Jochen Friedrich). Improve portability by only assigning struct sigaction.sa_restorer when available (patch submitted by Jochen Friedrich). Improve portability by adding tempfailure.h (defining TEMP_FAILURE_RETRY when not available). Improve portability by including sys/socket.h in interfaces.c (patch submitted by James E. Flemer). Add manual page (partly from Jochen Friedrich). Add --expire-time option to control UPnP device advertisement expire time necessary for Omnifi DMS1 (from James E. Flemer). Add djmount to links section (from Rémi Turboult). Updated FSF address in copyright and license messages. Fix compile bug: Only include id3.h when id3lib is available (patch submitted by James E. Flemer). Added copyright header to various files missing it. Fix UPnP compliance bug: Send in search and browse results, not (patch submitted by James E. Flemer). Improve UPnP compliance by putting slash at end of xmlns attribute of the DIDL-Lite tag (patch submitted by James E. Flemer). Improve UPnP compliance by adding size attribute to res tag in browse and search results (patch submitted by James E. Flemer). Add Gnulib module progname and get rid of program_invocation_name to improve portability (from James E. Flemer). Add Gnulib module sig2str and improve error messages regarding received signals. Add the concept of file types, specified with --file-types. Added support for other file formats: iTunes AAC, RIFF WAVE (patch from James E. Flemer). Update README regarding supported devices. 2005-07-05: Web site updated. Fixed download link for package. 2005-07-04: GMediaServer 0.4.0 released. Added Linksys WMLS11B to Supported Devices. Added Philips Streamium SL300i to Supported Devices. Applied patch from Ivo Clarysse adding support for serving schema files through the UPnP internal web server. GMediaServer now works with Philips RC9800i (and probably others) thanks to this patch. Added note about 1.3.7 firmware requirement for the MP101. 2005-05-22: GMediaServer 0.3.0 released. The home page has been redesigned. Support multiple directories on the command line. Update README: dependency wording, copyright and licensing wording regarding dependencies, overview wording, home page, and supported devices. Added Contributors section to AUTHORS document. Remove intl directory, should be there when we are using gettext externally. Fix --verbose option - it didn't work at all (reported by Daniel Bachfeld). Fix device name as displayed by the control point (was being displayed as "(null)"). Clean up logging (internally). Support localization through GNU gettext. Add initial swedish translation. Use more gnulib modules, including stdbool and stdint. Work around id3lib bug (it defines false and true). Improve error messages and error reporting for UPnP actions. Do not add SessionID to ContentDirectory Browse response. Add support for ContentDirectory Search action. Implement BrowseMetadata mode in ContentDirectory Browse action. Add initial support for ContentDirectory Search action. 2005-04-16: GMediaServer 0.2.0 released. Updated copyright notice at top of intutil.[ch]. Changed README heading: 'web server' => 'http server'. Improved README documentation on dependencies. 2005-04-02: GMediaServer 0.1.0 released. First release.