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: <playlist .. sort="artist"> or (reverse) <playlist .. sort="reverse title"> - 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 <daniel at kefa.co.uk>) - 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 <playlist name=.. FileMagic.pm * Fixed (?) ID3v2 reading tunes2pod.pl: * Added paranoia checks (stricter parsing) * Added SPL-Read code (BETA!) mktunes.pl * Added SPL-Write support * regex-matches are sorted by id gnupod_addsong.pl: * duplicate-checker displayed the wrong number of the dup, works again GNUpod 0.91 Much changed from 0.90 to 0.91. I removed XML::Simple and use (again) XML::Parser (Event based GNUpod.. .. again) 0.91 needs much less memory... I hope i didn't break anything.. but... gnupod_search.pl: * -d doesn't delete all songs anymore.. hups.. * Playlist-Cleanup works now.. (another stupid bug.. :-/) * Added '--title' switch to usage gnupod_addsong.pl: * Can read from STDIN again (use 'gnupod_addsong.pl -') (I forgot this feature ;) ) gnupod_INIT.pl * Added '--france' switch (Limit volume to 100 db for 1.x Firmware) mktunes.pl * New Playlist-Code.. MUCH faster now (Wow.. again? no.. the code of 0.90 was VERY slow with many files (~3000) and more than ~15 big playlists) * Added '--volume' switch: Adjust the volume on the iPod! Use something like 'mktunes.pl --volume 70' to boost the volume by 70% (same as volume="70" in the GNUtunesDB) XMLhelper.pm * Fixed the cleandoc() bug * Dropped XML::Simple.. it's stupid :-/ ..and.. Changed 'Win' to 'Windows/W32/etc' GNUpod 0.90 - This is a *COMPLETE* rewrite of GNUpod, expect new bugs and some new features ;) Highlights: - Faster (?) - REAL Unicode Support (Perl 5.8 and 5.6, .. i hope!) - Cleaner Code (?) - Support for elements like 'playcount / volume .. etc' (Read the docs) This release isn't perfect but it works nice and i think its good enough to be released :) No Support for AAC (mp4) and SPL (SmartPlayLists) in this release, but AAC Support will be added soon (GNUpod 0.91?) and adding SPL Support is possible ;) gnuPod 0.29-rc1 - Unicode Support!! Use an UNICODE Texteditor to edit the GNUtunesDB.. (Like 'yudit' or the gnome2 texteditor) Your old latin1 GNUtunesDB will get converted to an UTF8 version after running tunes2pod.pl/gnupod_addsong.pl or gnupod_delete.pl UTF8 Support isn't testet very well, and gnuPod 0.28 maybe more Stable for you.. but as you can see: somebody is working on it ;) - 'Rebuild' mode does now *never* check for duplicates - gnupod_delete doesn't kill some playlists if you tried to kill ID 0 gnuPod 0.28 - Rewritten Playlistcode for tunes2pod.pl - tunes2pod.pl doesn't kill your empty GNUtunesDB anymore if it can't find the iTunesDB - mktunes.pl uses now binmode(), maybe this helps RedHat 8 ? .. (and win32 ;) ) - mktunes.pl is now *much* faster!! - the GNUtunesDB written by gnupod_delete.pl looks nicer now :) (id= is now always the first element..) gnuPod 0.27 codename 'codename' - We are now on gnu.org - Fixed 'creating playlists' sample in documentation. - Firmware 1.1.0 can read FAT32, updatet documentation. - gnupod_delete.pl doesn't kill regex playlists anymore (ouch) - gnupod_search.pl supports -g(enre) (Thanks to Johan Ruttenberg) gnuPod 0.26 - We are going to be a GNU package: > 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 <playlist..> when </file> 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 <regex .. to create a playlist using regular expressions. <regex is case sensitive, use <iregex if you want case INsensitive checking gnuPod 0.25 (API-Freeze i think ;) ) - New Syntax (We use getopt) - Many small bugfixes - Fixed mktunes and tunes2pod 'touch' bug - tunes2pod creates now a nicer XML file - 'composer' added to gnupod_addsong.pl - Fixed 'Genere' - 'genre' typo.. args! (Thanks to Guillaume Leclanche) - gnupod_addsong.pl knows now winamp genres (NOT generes!! *doh!*) - gnupod_addsong.pl can now read from stdin, for example: find /blabla/foo | gnupod_addsong.pl -gm /mnt/ipod - (note the -g switch (no need to press ENTER) and '-') (Many thanks to Scott Savarese) gnuPod 0.22 - Bugfix in tunes2pod for Perl 5.8 (Many thanks to Orion Buckminster Montoya) - tunes2pod typo corrected *doh!* (Orion Buckminster Montoya again :) ) - Support for tracknumbers like "01/18" (Many thanks to Darrell Golliher) - Support for 'composer' tag (just in XML/iTunesDB, not ID3) (Thanks to Alexey Marinichev for providing the ID :) ) gnuPod 0.21 - Fixed stupid tunes2pod.pl bug with big iTunesDBs (Thanks to Ciamac Moallemi for reporting and providing a patch) - Support for songnum, songs, cdnum, cds and year gnuPod 0.2 - Changed to XML as file format - Added Playlist support - Support for new iTunes attributes gnuPod 0.1 - First working release!