GNUupod 0.99.7 Summary ------- I was planning to release GNUpod 1.0, but Heinrich Langos flooded me with patches, many thanks to him: - Fix DBID width in gnupod_search.pl output - Added --bitrate switch to gnupod_search.pl - Added --podcast-files-limit switch to gnupod_addsong.pl - Added Podcast-Date patch (GNUpod now depends on Date::Parse) - Added --unique switch to extractArtwork.pl - Added xescaped() patch. GNUpod will now store non-ascii data escaped in it's GNUtunesDB.xml, however: you can still write UTF8 into the file using a decent editor (Such as Yudit). xescaped is now also a lot faster, giving GNUpod a nice speedup. *** OLD STUFF *** GNUpod 0.99.6 Summary ------- - Fixed M4A-Genre support (for numeric values) - Use udevinfo to find the iPods Firewire-GUID (as /proc/bus/usb/devices is depricated) - Support for iPhone: Edit ~/.gnupodrc and add 'model = iphone' - Some documentation 'fixes', thanks a lot to Toby Cabot - gnupod_addsong.pl: replace wget with curl - Use binmode() more often to help Win32 GNUpod 0.99.5 Summary ------- - Added Artwork-Support for Video, Nano and 2007-Nano iPods You'll need to set the value 'model' in your configuration file. See doc/gnupodrc.example for more details. - Fixed Video-Podcast support for late 2007 iPods - Fixed iPod GUID autodetection on linux. GNUpod 0.99.4 failed if the iPod was the last entry of /proc/bus/usb/devices - The iTunesDB parsing code is now much more flexible and uses callbacks. - Remove UTF8-BOM (Fixes garbage if source was UTF16 encoded) - Removed broken lastfm support GNUpod 0.99.4 Summary ------- - Added README_FIRMWARE.txt file - Added compilation-patch, thanks to Ray Lortie - Rewrote mktunes.pl to be faster and more readable :-) - Added support for 2007-iPods (iPod Classic, iPod Nano-2 and iPod Touch (?) ) Apple attempted to lockout non-iTunes software by implementing an obscure protection using a sha1-hash. This sucked very bad.. for about 36 hours. This GNUpod release is able to overcome the silly protection. Thanks a lot to 'wtbw' for discovering some random numbers and implementing hash58.cpp Feel free to express your feelings about this issue at http://www.apple.com/feedback/ipod.html GNUpod 0.99.3 Summary ------- - Fixed invalid warning about broken mhip header. (tunes2pod.pl) - Less stricter Podcast-Playlist parsing - Reduced MP3::Info false-positives: Empty files are no longer detected as .mp3 files - tools/fwpatch.pl: Support for video iPods added (yeah!) - gnupod_convert_RIFF.pl: Support for new ffmpeg builds (s/aac/libfaac/) - Upgraded from GPLv2 to GPLv3 GNUpod 0.99.2 Summary ------- - Added support for Podcast-Playlists. - Filter out bad chars from '--rename' command. - Added RVA2 (Normalize) patch by Peter Liljenberg - gnupod_INIT.pl: Added --noask option - gnupod_addsong.pl: --playlist can now be used multiple times - gnupod_addsong.pl: added --playlist-is-podcast command - gnupod_addsong.pl: Added workaround for glibc/linux/perl bug/problem (realloc() error) - Raised video-bitrate for on-the-fly converting - Added configuration option 'automktunes'. Setting 'automktunes = 1' inside ~/.gnupodrc eliminates the need to call mktunes.pl after adding/deleting/renaming songs because GNUpod will call mktunes.pl itself. - Many internal changes / bugfixes to iTunesDB.pm like fixing an incorrect written mhip size. Playlist parsing has also been rewritten and cleaned up. - Bugfix: Do not detect PCM files as movies when using --decode GNUpod 0.99.1 - codename 'Klaus ist eine Wurst' Summary ------- - iTunesDB.pm: Added some new fields and SPL-Defs (Removes some warnings while running tunes2pod / gnupod_INIT) - QTFile.pm: Search tracklength inside 'mdhd' as a fallback - Added support for iPod-shuffle 2 GNUpod 0.99 - codename 'Pentarou' Summary ------- - iPod-Video support gnupod_addsong.pl can now read/add .mp4 files Converting .avi (RIFF) files on-the-fly works only IF your ffmpeg binary has AAC Support! (Adding preencoded files works witout ffmpeg) Try: gnupod_addsong.pl --decode=video *.avi - Fixes a playlist problem with iTunes5 (new 100 Mhods) - '--encode' didn't remove tempfiles from /tmp .. works again - Added Support for .ape (MAC - http://sourceforge.net/projects/mac-port/) files (use --decode=foo) - Added 'mediatype' support (for video) and stricter mhit parsing (for very old databases) - Workaround for broken files written by 'Anapod' Set 'tunes2pod.anapodworkaround=1' inside ~/.gnupodrc to enable it. Enabling it slows down tunes2pod.pl (because it deactivates the fast-skip of the (useless) MasterPlaylist) - QTFile.pm: rseek() now refuses to return more than 1024 kb. Fixes possible out-of-memory problems with broken files. - Fixed an obscure gnupod_search.pl bug causing some weird search results. - Added DESTDIR support (make DESTDIR=/tmp/bla install) and removed slackpkg target (obsoleted) GNUpod 0.98.3 - codename 'Socke' Summary ------- - gnupod_addsong.pl can now fetch podcast-rss feeds! Example: 'gnupod_addsong.pl http://www.tagesschau.de/export/podcast' - Added basic support for podcast-rss and podcast-guid in tunes2pod.pl and mktunes.pl - Fixed small bug in FileMagic.pm: UTF16-Tags didn't work. Thanks to Chris Abajian for reporting this issue. - Read TPE2 / TP2 for MP3-Files => Please note: Podcast support is still in BETA and 'real podcasts' are currently not supported GNUpod 0.98.2 - codename "Jigen" Summary ------- - Changed the file-detection-type order of FileMagic.pm from: NonNative > QT > MP3 > PCM ..into.. NonNative > QT > PCM > MP* ..MP3::Info had some false-positives and detected a few PCM-Files as MP3s :-/. The PCM-Detection is much simpler and shouldn't create any false- positives. Thanks to Stefano Vesa for reporting the Problem. - GNUpod had some problems if the $IPOD_MOUNTPOINT contained whitespaces. Switched to File::Glob::bsd_glob() to fix this issue. - iPod-Mini 1.4 Software is broken, avoid using it! -> Apple lowered the Max. Pathlength from 64 to 55. GNUpod will now crop after 49 chars (who knows what Apple will do next time?) ..you can run 'gnupod_check.pl --fixit' to crop songs you added with an older version. -> Looks like Apple also broke the SmartPlaylists Liveupdate Feature. I couldn't get it to work with iTunes and GNUpod. Good job guys! Since GNUpod only supports 'liveupdate-smartplaylists', you can't use any SPL's with GNUpod and iPod-Mini 1.4 . Downgrading to 1.3 helps. - gnupod_check.pl has now a --fixit switch. It will try to fix the found errors itself - Updated documentation: Tell how to extract a Firmware-Image on Linux. (And others? Well, you need HFS+ Support) GNUpod 0.98.1 - codename 'Lupin the 3rd' Summary ------- - Added support for multiple On-The-Go playlists. - gnupod_addsong.pl can now reenocde aac and mp3 'on-the-fly' Usage: gnupod_addsong.pl --reencode 6 *.mp3 This would reenocde everything with 'lame -V 6' Use this if you don't have much space left (iPod Shuffle?!) Note: The Reencode option also changes the quality of files converted with '--decode=' :-) - Added support for m4a 'gnre' tags - Fixed some iPod-Shuffle issues * mktunes.pl removes the iTunesShuffle leftover - Remove TARGET-File if File::Copy() failed for any reason => Better handling of 'disk full' but still not perfect [GNUpod should write a 'sparefile' or something like that] GNUpod 0.98 - codename 'Luna 9' Summary ------- - Support for iPod-Shuffle! (I do not know why Apple uses another Database for this thing!!!) Thanks to: * Chris Scott for testing and providing samples * Jeff Thieleke (From FooPod) * ..and Rodja Trappe (Samples + Testing) - Fixed 'songnum' for ID3V1 Tags .. ouch - Workaround for perl5.6 feature/bug 'addtime' shouldn't be below zero anymore - Write more tags for m4a files.. - Internal Change: Removed the ugly _itop and _x86itop.. I hope i didn't break anything ;) - Switched from Audio::FLAC to Audio::FLAC::Header GNUpod 0.97 - codename guezli Summary ------- - 0.96 didn't write 'tracknum' for OGG Files, fixed now.. Thanks to Ed Wandasiewicz for reporting this bug - Read 'tracknum' on ID3V2 Files with 'TRK' Field - Handle ID3Tags with Charset info - You can now add MIDI files ;-) (with timidity) - Added --set-songnum option for gnupod_addsong.pl - Rewritten ConverterCore.. shouldn't break anything... - gnupod_search.pl can now RENAME/Edit tags. use --rename="artist=New artist Name" - You can now sort playlists: or (reverse) - Do not generate filenames longer than 64 chars.. looks like the iPod Photo has a problem (Thanks to Mathieu Chouquet-Stringer for reporting) - Added tools/fwpatch.pl. Allows you to convert an EU-iPod into an US-iPod (Make it louder) GNUpod 0.96 - codename 'kartoffelsaft' Summary ------- - Changed --decode switch from gnupod_addsong.pl You can now select the output format of --decode -> pcm(old default) / MP3 (using lame) / AAC (using FAAC) Example: # gnupod_addsong.pl --decode=mp3 *.flac (Idea and original patch from ) - GNUpod can now also convert OGG-Vorbis files (Use --decode=XXX, same as FLAC) - Added --playlist=STRING switch to gnupod_addsong.pl This creates the playlist 'STRING' and adds all songs passed to gnupod_addsong.pl to this playlist. (Thanks to Bob Cotton) - Many changes for the M4A parser, should work better now (Searches the SOUND Stream!) - Write tracknum for AAC/ALAC files (doh!) - Support for Bookmarks (Just rename .m4a files into .m4b) - Convert strange Genre-Strings in MP3 Tags ( (17) -> Rock ) - Support for 'Playlist IDs' (Useless feature ATM ;) ) GNUpod 0.95 - codename 'sockentier' Summary ------- - GNUpod has now a configuration file! Read the docs or/and see doc/gnupodrc.example - Added funky SmartPlaylist creator, see doc/mkspl.html (Needs JavaScript + DOM => Mozilla) ** SMARTPLAYLIST SYNTAX CHANGED ** - gnupod_addsong.pl can now add FLAC files. 'flac' needs to be in your $PATH and it's disabled per default. (Enable it using gnupod_addsong.pl --decode or set 'gnupod_addsong.decode=1' in your config) - gnupod_addsong.pl can read ALAC (Apples Loseless Audio Codec) files (iTunes creates normal .m4a files) - Polished Playcounts parser (no hardcoded offsets anymore) - added '--disable-v2' and '--disable-v1' to gnupod_addsong.pl (Disable parsing of ID3TAG version X) - Fixed small bug with .m4a files and added more fields. gnupod_addsong.pl can now read M4A/AAC files from www.allofmp3.com - added tools/m4a-info.pl: Use this tool to read Title/Artist tags from .m4a files (not installed by 'make install') - You can modify the output of gnupod_search.pl using --view (See 'gnupod_search.pl --help') - gnupod_addsong.pl checks for wrong extensions (like a mp3-file called 'test.wav'). The iPod wouldn't play such a file. - Fixed some SmartPlaylist stuff and added support for last playtime - Added gnupod_check.pl, it check's for 'lost' files - I changed the 'build' system. Btw, you can now uninstall GNUpod using 'make uninstall' .. but why? :) - Added manual pages - GNUpod warns about case-sensitive mounted filesystems GNUpod 0.94 - codename 'aspartam' Summary (hmm.. it's a long summary..): -------------------------------------- - Nobody did buy me a 40gb iPod with Firmware 2.x - I bought one myself - gnupod_addsong.pl understands .m4a files (= AAC Files written by iTunes) I don't know if it works with DRM files (.m4p?) I don't have any DRM files and i'm not interested in DRM files... If you like to see support for DRM files, send me a patch ;-) - Added support for On-The-Go playlists! (2.x Firmware-only-feature) - GNUpod can now handle the 'Rating' set on the iPod (2.x Firmware-only-feature) It does also update the Playcounts on v2 iPods - GNUpod checks if the iTunesDB did change and runs tunes2pod.pl if it has to run it - Changed rating-schema to match SPL-Rating -> Rating 5 is now 100 (newrating=oldrating*20) mktunes.pl will drop old (= now invalid) ratings, no autoconvert... sorry.. but does anyone care? - gnupod_addsong.pl understands ID3v2.2 tags - You'll have to install Digest::MD5 - You can also call your GNUtunesDB GNUtunesDB.xml Details: -------- I removed the '-x' and '-i' switch, because it wouldn't work well together with the autosync FooBar.pm: * connect() changed a lot FileMagic.pm: * Stupid bug: We can now also read ID3v2.2 tags - Thanks to David Ranch for the Bugreport * Detect Arrays returned by MP3::Info (no ARRAY(XXX) on the iPod anymore :) ) iTunesDB.pm * Added 'Play Counts' parser (=Rating) * Changed rating Schema * _itop() checks for very big values and dies QTfile.pm * A dirty QuickTime parser gnupod_otgsync.pl * A new tool, don't use it yourself :) It's only used internal. GNUpod 0.93 - codename 'Shorthorn' Summary: -------- - Reading MusicMatch files should work (again) - gnupod_addsong.pl can add WAVE files - Parsing large iTunesDB files should be faster (-> we skip the MainPlayList) Details: -------- iTunesDB.pm and co: * Can read and write Playlist-Elements without child tunes2pod.pl couldn't read files written by (newer) MusicMatch releases.. this should fix the issue :) * Don't parse MasterPlaylists, do a seek() -> Speeds up parsing * Read and Write SamplingRate (Helps audible.com files? ..no) FileMagic.pm * Fixed (Again?) ID3 reading (Charset handling still broken?!) * Read SamplingRate for MP3 Files XMLhelper.pm * Output is sorted GNUpod 0.92 - codename 'frau beyersdorf' -> This version supports SmartPlaylists (BETA!) iTunesDB.pm: * Fixed the very old 'gnupod versus iTunes' bug -> iTunes shouldn't try to 'resort' playlist items anymore (Note: iTunes will ALWAYS re-sort the playlists.. that's a 'feature' of iTunes) * Added 'eq syntax check', you can use (since 0.90) 'eq="#!#NUMBER#!#' to specify the EQ-Setting per song. mktunes.pl will now check if this syntax is correct. (You'll see a warning if it failed) * Fixed get_string() to handle null-size strings correct * Changed some internal things (using hrefs.. etc) * Misc SPL-Related code XMLhelper.pm: * Misc cleanups * Added SPL-Support * Added check for playlist duplicates * Fixed escape bug for Support for LongOpts > Documentation aviable as TexInfo > GNU-Style build system (configure/make) - You can now create (mktunes) and convert (tunes2pod) empty playlists (0 songs) This isn't usefull, but iTunes can do it and we should also be able to do it. - tunes2pod supports now buggy, ehr. funny playlists written by MusicMatch - Playlists are now sorted on the iPod as they are found in the GNUtunesDB - file - mktunes.pl no longer accepts when was not found. - gnupod_addsong.pl handles long filenames now better - Timestamp should now be set correct (utime(undef,undef.. didn't work on every OS..) - new playist keywords. You can now use