Hello community, here is the log from the commit of package abcde for openSUSE:Factory checked in at 2017-08-22 11:08:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/abcde (Old) and /work/SRC/openSUSE:Factory/.abcde.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "abcde" Tue Aug 22 11:08:27 2017 rev:25 rq:517504 version:2.8.1 Changes: -------- --- /work/SRC/openSUSE:Factory/abcde/abcde.changes 2016-04-30 23:31:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.abcde.new/abcde.changes 2017-08-22 11:08:30.229878508 +0200 @@ -1,0 +2,51 @@ +Fri Aug 18 07:13:56 UTC 2017 - aloi...@gmx.com + +- Update to version 2.8.1 + * Fix silly error introduced in abcde-musicbrainz-tool when + fixing bug 30. Thanks to Thomas Klausner for the bug/patch. + Closes Issue 52: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=52 + version 2.8: + * Make fdkaac the default for m4a encoding. Faac can still be + selected for m4a encding via ~/.abcde.conf file but best not + to :). + * Split user-definable mungefilename function into + mungetrackname, mungeartistname, and mungealbumname, each of + which default to mungefilename Thanks to Gerald Turner for the + patch and enhancement request. This closes Issue 39: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=39 + * FAQs: Clarify the exit from multi-result CDDB search. + * Fix to allow multiple output formats when aac fallback is + triggered. Thanks to Birk Bremer for the bug report. + This closes Issue 35: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=35 + * Fix for some erroneous error and status logging. Thanks to + Christian Wasem for the bug report and fix. This closes Issue + 32: https://abcde.einval.com/bugzilla/show_bug.cgi?id=32 + * Add support for trying multiple CD lookup services in + order. Thanks to Gabriel Rosenkoetter for the patch. Closes + Issue 42: https://abcde.einval.com/bugzilla/show_bug.cgi?id=42 + * Add Recommends on glyrc and imagemagick in Debian + packaging. Closes Debian Bug #827626 + * Fix up handling of the first few sectors when reading + from a whole-CD flac file or using cdparanoia in one-track + mode. Thanks to Matthias König for the patch. Closes Issue + 44: https://abcde.einval.com/bugzilla/show_bug.cgi?id=44 + * Tweak the fix in musicbrainz for handling sketchy returned + data some more. Hopefully closes Issue 30: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=30 + * Re-enable some commented out cdparanoia/debug code in + do_discid. Closes Issue 14: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=14 + * Add "-a" to lots of grep calls in case of "binary" looking + data, e.g. non-ascii text in track titles! + Closes Issue 24: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=24 + * Add "-L" to default curl options, to follow redirects if + needed. Closes Issue 40: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=40 + Thanks to Gabriel Rosenkoetter for the patch. + * Switch default from "cddb" to "musicbrainz" for track lookup + Closes Debian Bug #842178 + +------------------------------------------------------------------- Old: ---- abcde-2.7.2.tar.gz New: ---- abcde-2.8.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ abcde.spec ++++++ --- /var/tmp/diff_new_pack.9g9ET2/_old 2017-08-22 11:08:31.209740501 +0200 +++ /var/tmp/diff_new_pack.9g9ET2/_new 2017-08-22 11:08:31.221738811 +0200 @@ -1,7 +1,7 @@ # # spec file for package abcde # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,13 +17,13 @@ Name: abcde -Version: 2.7.2 +Version: 2.8.1 Release: 0 Summary: A Better CD Encoder License: GPL-2.0+ Group: Productivity/Multimedia/Sound/Utilities -Url: http://abcde.einval.com/ -Source0: http://abcde.einval.com/download/%{name}-%{version}.tar.gz +Url: https://abcde.einval.com/ +Source0: https://abcde.einval.com/download/%{name}-%{version}.tar.gz # bug 419800 Patch0: abcde-quote.patch Requires: cd-discid ++++++ abcde-2.7.2.tar.gz -> abcde-2.8.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/FAQ new/abcde-2.8.1/FAQ --- old/abcde-2.7.2/FAQ 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/FAQ 2017-01-18 14:56:14.000000000 +0100 @@ -28,12 +28,12 @@ Q. I have a problem, and I reported some time ago. Have you solved it already? A. Maybe. Try downloading the master branch of the development from - http://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git + https://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git Q. When are you going to release a new version? -A. When it is ready. I keep on having new ideas and adding them to the trunk - (stored in the URL above), so I dont release until all the ideas are - finished. +A. When it is ready. :-) We keep on adding new ideas to the trunk + (stored in the URL above) and release periodically when we think + it's due. 2. EXECUTION @@ -82,7 +82,7 @@ Q. (Thanks to Amaya) Where are those options and settings defined? Why dont you include a proper abcde.conf as an example? -A. I do. It should be installed under /etc/abcde.conf and contains more or +A. We do. It should be installed under /etc/abcde.conf and contains more or less all the defaults abcde uses. You can use $(HOME)/.abcde.conf to override those defaults. More information can be obtained from the man page which can be consulted using "man abcde". @@ -120,11 +120,9 @@ it. A. From version 2.2 onwards, abcde includes some checkings with cdparanoia, to try to get this right. - (It is not easy to find a data track on a CD. Right now, I can only think - of getting the track info from CDDB and ask the user for continuing should - a "data" track name is found. But the solution is far from been optimal. - For now, if you find a "data" track and you know the number, restart abcde - specifying the tracks to be encoded, leaving out the data one). + (It is not easy to find a data track on a CD. If you find a "data" + track and you know the number, restart abcde specifying the tracks + to be encoded, leaving out the data one). Q. I am requested to have "eject" when setting the speed although I do not use it for anything. @@ -186,6 +184,17 @@ A. Yes. When asked which one you want to select, use "X,Y" where X and Y are the numbers of the selections you want to find the difference between. +Q. I get stuck at the screen with multiple CDDB results. How do I exit this + screen so I can make my final selection? +A. abcde tries to use the system's default pager to display these results + and thus the actual application used and the method to exit from this + application may vary from system to system. + Many systems will be using the applications 'more' or 'less' as their + pager and the common key to exit this screen is the letter 'q'. If this + does not work on your system you should investigate what your system's + default pager application is and from there learn the correct method of + exiting this screen. + Q. I don't like CDDB/FreeDB. How can I use Musicbrainz instead? A. Set CDDBMETHOD=musicbrainz and try it! @@ -285,6 +294,7 @@ { ARTISTFILE="$(mungefilename "$TRACKARTIST")" ALBUMFILE="$(mungefilename "$DALBUM")" + YEAR=${CDYEAR:-$CDYEAR} if [ "$VARIOUSARTISTS" = "y" ] ; then FINDPATH="$(eval echo "$VAOUTPUTFORMAT")" @@ -351,7 +361,7 @@ and net broadcasters have to pay license fees), some release engineering groups and release management teams have decided not to provide MP3 encoding tools. - These distributions or operative systems have decided to use Ogg/Vorbis as + These distributions or operating systems have decided to use Ogg/Vorbis as the default encoding format, since it contains no (known) patent claims and they are (supposed to be) completely Free (released under a BSD-like license). @@ -374,7 +384,7 @@ support, or by just installing it later from the ports tree. NetBSD : Available in pkgsrc. - Others : Please, help me here. + Others : Please, help us here. Q. Huh! Why is MPPENCODER (with MPP) and .mpc the extension? A. Dunno. You must ask the guys who created and defined the format. The @@ -535,7 +545,7 @@ Q. What happened with normalize? A. Normalize has changed its name under Debian, which is the GNU/Linux distribution for developing abcde (well, is The GNU/Linux Distribution - i only use, at the moment). Now it is called normalize-audio. + Steve uses, at the moment). Now it is called normalize-audio. If you are using some other flavour of OS, you need to change the name of the executable in your abcde.conf file. @@ -563,5 +573,5 @@ UPDATE: KEEPWAVS unselects now the clean action. -- -Jesus Climent <jesus.clim...@hispalinux.es> +Steve McIntyre <93sam@@debian.org> Andrew Strong <andrew.david.str...@gmail.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/Makefile new/abcde-2.8.1/Makefile --- old/abcde-2.7.2/Makefile 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/Makefile 2017-01-18 14:56:14.000000000 +0100 @@ -1,4 +1,4 @@ -abcde_version = abcde-2.7.2 +abcde_version = abcde-2.8.1 INSTALL = /usr/bin/install -c prefix = /usr/local diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/README new/abcde-2.8.1/README --- old/abcde-2.7.2/README 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/README 2017-01-18 14:56:14.000000000 +0100 @@ -22,6 +22,14 @@ MAJOR CHANGES ============= +Changes in 2.8.1 +* Fix for stupid bug introduced in abcde-musicbrainz-tool in 2.8 + +Changes in 2.8 +* Add support for using multiple CD lookup services in order +* Switch from cddb to musicbrainz as the default CD lookup service +* Lots more bugs fixes - see the changes for more details. + Changes in 2.7.2 * Support for output to the Matroska container (mka). * Add id3tag mp3 tagger as this is the tagger available to @@ -257,19 +265,18 @@ * (optional) distmp3, a client/server for distributed mp3 encoding. You can get distmp3 at http://wlug.westbo.se/medlprog/medlprog.html -Abcde's new mailing list is abcde-us...@lists.einval.com. Visit +Abcde's mailing list is abcde-us...@lists.einval.com. Visit - http://lists.einval.com/cgi-bin/mailman/listinfo/abcde-users + https://lists.einval.com/cgi-bin/mailman/listinfo/abcde-users to subscribe. Posts from non-subscribers are moderated to prevent spam. -Abcde's current page is at http://abcde.einval.com/ and the latest -upstream code is in git at http://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git +Abcde's current page is at https://abcde.einval.com/ and the latest +upstream code is in git at https://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git -- -Jesus Climent <jesus.clim...@hispalinux.es> -Colin Tuckley <col...@debian.org> Steve McIntyre <93...@debian.org> +Andrew Strong <andrew.david.str...@gmail.com> abcde was originally created by Robert Woodcock <r...@debian.org> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/abcde new/abcde-2.8.1/abcde --- old/abcde-2.7.2/abcde 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/abcde 2017-01-18 14:56:14.000000000 +0100 @@ -11,7 +11,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -VERSION='2.7.2' +VERSION='2.8.1' usage () { @@ -411,13 +411,13 @@ { case $1 in TRACKNAME1) - TRACKNAME="$(grep ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | head -n 1 | cut -f2- -d= | tr -d \[:cntrl:\] | sed 's/\ \+$//')" + TRACKNAME="$(grep -a ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | head -n 1 | cut -f2- -d= | tr -d \[:cntrl:\] | sed 's/\ \+$//')" ;; TRACKNAME) - TRACKNAME="$(grep ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | cut -f2- -d= | tr -d \[:cntrl:\] | sed 's/\ \+$//')" + TRACKNAME="$(grep -a ^TTITLE$CDDBTRACKNUM= "$CDDBDATA" | cut -f2- -d= | tr -d \[:cntrl:\] | sed 's/\ \+$//')" ;; TRACK-INFO) - grep ^EXTT$CDDBTRACKNUM= "$CDDBDATA" | cut -f2- -d= | tr -d \[:cntrl:\] | sed 's/\\n/\n/g' + grep -a ^EXTT$CDDBTRACKNUM= "$CDDBDATA" | cut -f2- -d= | tr -d \[:cntrl:\] | sed 's/\\n/\n/g' ;; esac } @@ -526,9 +526,9 @@ CDDBTRACKNUM=$(expr $UTRACKNUM - 1) getcddbinfo TRACKNAME splitvarious - TRACKFILE="$(mungefilename "$TRACKNAME")" - ARTISTFILE="$(mungefilename "$TRACKARTIST")" - ALBUMFILE="$(mungefilename "$DALBUM")" + TRACKFILE="$(mungetrackname "$TRACKNAME")" + ARTISTFILE="$(mungeartistname "$TRACKARTIST")" + ALBUMFILE="$(mungealbumname "$DALBUM")" GENRE="$(mungegenre "$GENRE")" YEAR=${CDYEAR:-$CDYEAR} gettracknum @@ -893,7 +893,7 @@ fi ( # These are from - # http://www.xiph.org/vorbis/doc/v-comment.html + # https://www.xiph.org/vorbis/doc/v-comment.html echo ARTIST="$TRACKARTIST" echo ALBUM="$DALBUM" @@ -906,7 +906,7 @@ fi echo TRACKNUMBER=${TRACKNUM:-$1} # TRACKTOTAL is not in the proposed, minimal list of standard field names from - # xiph.org: http://www.xiph.org/vorbis/doc/v-comment.html but is in common usage + # xiph.org: https://www.xiph.org/vorbis/doc/v-comment.html but is in common usage # and read by mediainfo, ffprobe, vlc, Aqualung, ogg123, Foobar. And now abcde :) # The tag is quietly ignored by Audacious, MPlayer, mpv, XMMS.... echo TRACKTOTAL="${TRACKS}" @@ -952,7 +952,7 @@ fi echo TRACKNUMBER="${TRACKNUM:-$1}" # TRACKTOTAL is not in the proposed, minimal list of standard field names from - # xiph.org: http://www.xiph.org/vorbis/doc/v-comment.html but is in common usage + # xiph.org: https://www.xiph.org/vorbis/doc/v-comment.html but is in common usage # and read by mediainfo, ffprobe, vlc, Aqualung, ogg123, Foobar. And now abcde :) # The tag is quietly ignored by Audacious, MPlayer, mpv, XMMS.... echo TRACKTOTAL="${TRACKS}" @@ -1066,7 +1066,7 @@ nice $ENCNICE $MP3ENCODER $MP3ENCODEROPTS --nogap $TRACKFILES RETURN=$? if [ "$RETURN" != "0" ]; then - echo "nogap-encode: $ENCODER returned code $RETURN" >> errors + echo "nogap-encode: $ENCODER returned code $RETURN" >> "$ABCDETEMPDIR/errors" else for UTRACKNUM in $TRACKQUEUE do @@ -1503,11 +1503,11 @@ $NORMALIZER -b $NORMALIZEROPTS $TRACKFILES RETURN=$? if [ "$RETURN" != "0" ]; then - echo "batch-normalize: $NORMALIZER returned code $RETURN" >> errors + echo "batch-normalize: $NORMALIZER returned code $RETURN" >> "$ABCDETEMPDIR/errors" else for UTRACKNUM in $TRACKQUEUE do - echo normalizetrack-$UTRACKNUM >> status + echo "normalizetrack-$UTRACKNUM" >> "$ABCDETEMPDIR/status" done fi ) @@ -1532,11 +1532,11 @@ $NORMALIZER -b $NORMALIZEROPTS $TRACKFILES RETURN=$? if [ "$RETURN" != "0" ]; then - echo "batch-normalize: $NORMALIZER returned code $RETURN" >> errors + echo "batch-normalize: $NORMALIZER returned code $RETURN" >> "$ABCDETEMPDIR/errors" else for UTRACKNUM in $TRACKQUEUE do - echo normalizetrack-$UTRACKNUM >> status + echo "normalizetrack-$UTRACKNUM" >> "$ABCDETEMPDIR/status" done fi ) @@ -1574,9 +1574,9 @@ OUTPUT="$TMPOUTPUT" # Create ALBUMFILE, ARTISTFILE, TRACKFILE - ALBUMFILE="$(mungefilename "$DALBUM")" - ARTISTFILE="$(mungefilename "$TRACKARTIST")" - TRACKFILE="$(mungefilename "$TRACKNAME")" + ALBUMFILE="$(mungealbumname "$DALBUM")" + ARTISTFILE="$(mungeartistname "$TRACKARTIST")" + TRACKFILE="$(mungetrackname "$TRACKNAME")" GENRE="$(mungegenre "$GENRE")" YEAR=${CDYEAR:-$CDYEAR} # If we want to start the tracks with a given number, we need to modify @@ -1707,8 +1707,8 @@ # Create a playlist file for the playlist data to go into. # We used to wipe it out if it existed. Now we request permission if interactive. for LASTTRACK in $TRACKQUEUE; do :; done - ALBUMFILE="$(mungefilename "$DALBUM")" - ARTISTFILE="$(mungefilename "$DARTIST")" + ALBUMFILE="$(mungealbumname "$DALBUM")" + ARTISTFILE="$(mungeartistname "$DARTIST")" GENRE="$(mungegenre "$GENRE")" YEAR=${CDYEAR:-$CDYEAR} if [ "$VARIOUSARTISTS" = "y" ] ; then @@ -1747,9 +1747,9 @@ CDDBTRACKNUM=$(expr $UTRACKNUM - 1) getcddbinfo TRACKNAME splitvarious - TRACKFILE="$(mungefilename "$TRACKNAME")" - ARTISTFILE="$(mungefilename "$TRACKARTIST")" - ALBUMFILE="$(mungefilename "$DALBUM")" + TRACKFILE="$(mungetrackname "$TRACKNAME")" + ARTISTFILE="$(mungeartistname "$TRACKARTIST")" + ALBUMFILE="$(mungealbumname "$DALBUM")" # If we want to start the tracks with a given number, we need to modify the # TRACKNUM value before evaluation gettracknum @@ -1903,9 +1903,9 @@ fi vecho "One track is $ONETRACK" - TRACKFILE="$(mungefilename "$TRACKNAME")" - ARTISTFILE="$(mungefilename "$TRACKARTIST")" - ALBUMFILE="$(mungefilename "$DALBUM")" + TRACKFILE="$(mungetrackname "$TRACKNAME")" + ARTISTFILE="$(mungeartistname "$TRACKARTIST")" + ALBUMFILE="$(mungealbumname "$DALBUM")" if [ "$ONETRACK" = "y" ]; then if [ "$VARIOUSARTISTS" = "y" ]; then CUEWAVFILE="$(eval echo \""$VAONETRACKOUTPUTFORMAT"\" | sed -e 's@^.*/@@').$OUTPUT" @@ -2000,20 +2000,20 @@ exit 1 fi ;; -# cdparanoia|debug) -# CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -Q --verbose 2>&1 )" -# RET=$? -# if [ ! "$RET" = "0" ];then -# log warning "something went wrong while querying the CD... Maybe a DATA CD?" -# fi -# -# TRACKS="$(echo "$CDPARANOIAOUTPUT" | grep -E '^[[:space:]]+[[:digit:]]' | tail -n 1 | get_first | tr -d "." | tr '\n' ' ')" -# CDPARANOIAAUDIOTRACKS="$TRACKS" -# -# LEADOUT="$(echo "$CDPARANOIAOUTPUT" | grep -Eo '^TOTAL[[:space:]]+([[:digit:]]+)' | get_last)" -# OFFSETS="$(echo "$CDPARANOIAOUTPUT" | sed -n -e's/^ .* \([0-9]\+\) \[.*/\1/p')" -# makeids -# ;; + cdparanoia|debug) + CDPARANOIAOUTPUT="$( $CDROMREADER -$CDPARANOIACDROMBUS "$CDROM" -Q --verbose 2>&1 )" + RET=$? + if [ ! "$RET" = "0" ];then + log warning "something went wrong while querying the CD... Maybe a DATA CD?" + fi + + TRACKS="$(echo "$CDPARANOIAOUTPUT" | grep -E '^[[:space:]]+[[:digit:]]' | tail -n 1 | get_first | tr -d "." | tr '\n' ' ')" + CDPARANOIAAUDIOTRACKS="$TRACKS" + + LEADOUT="$(echo "$CDPARANOIAOUTPUT" | grep -Eo '^TOTAL[[:space:]]+([[:digit:]]+)' | get_last)" + OFFSETS="$(echo "$CDPARANOIAOUTPUT" | sed -n -e's/^ .* \([0-9]\+\) \[.*/\1/p')" + makeids + ;; *) case "$CDDBMETHOD" in cddb) TRACKINFO=$($CDDISCID "$CDROM") ;; @@ -2264,9 +2264,9 @@ elif [ "$ONETRACK" = "y" ] && echo "$line" | grep '^FILE "dummy.wav" WAVE' > /dev/null 2>&1 ; then - TRACKFILE="$(mungefilename "$TRACKNAME")" - ARTISTFILE="$(mungefilename "$TRACKARTIST")" - ALBUMFILE="$(mungefilename "$DALBUM")" + TRACKFILE="$(mungetrackname "$TRACKNAME")" + ARTISTFILE="$(mungeartistname "$TRACKARTIST")" + ALBUMFILE="$(mungealbumname "$DALBUM")" if [ "$VARIOUSARTISTS" = "y" ]; then OUTPUTFILE="$(eval echo \""$VAONETRACKOUTPUTFORMAT"\" | sed -e 's@^.*/@@').$OUTPUT" @@ -2297,7 +2297,7 @@ if [ "$ONETRACK" = "y" ]; then vecho "ONETRACK mode selected: displaying only the title of the CD..." fi - echo "---- $(grep DTITLE "${CDDBPARSEFILE}" | cut '-d=' -f2- | tr -d \\r\\n ) ----" + echo "---- $(grep -a DTITLE "${CDDBPARSEFILE}" | cut '-d=' -f2- | tr -d \\r\\n ) ----" if [ X"$SHOWCDDBYEAR" = "Xy" ]; then PARSEDYEAR=$(grep -a DYEAR "${CDDBPARSEFILE}" | cut '-d=' -f2-) if [ ! X"$PARSEDYEAR" = "X" ]; then @@ -2479,7 +2479,7 @@ # Do we have CD-Text on the disc (and can the drive read it?) ${CDTEXT_READER} -J -N -D ${CDDA2WAVCDROM} > "$ABCDETEMPDIR/cd-text" 2>&1 - grep -q '^CD-Text: detected' "$ABCDETEMPDIR/cd-text" + grep -a -q '^CD-Text: detected' "$ABCDETEMPDIR/cd-text" ERRORCODE=$? if [ $ERRORCODE -ne 0 ]; then # No CD-Text found, bail @@ -2532,21 +2532,31 @@ # The helper script will write disc matches out to # cddbread.*. Count how many we have if [ ! -f "${ABCDETEMPDIR}/cddbread.1" ] ; then - # No matches. Use the normal cddb template for the user to - # fill in - echo "No Musicbrainz match." >> "$ABCDETEMPDIR/cddbchoices" - $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0" - # List out disc title/author and contents of template - echo ---- Unknown Artist / Unknown Album ---- >> "$ABCDETEMPDIR/cddbchoices" - UNKNOWNDISK=y - for TRACK in $(f_seq_row 1 $TRACKS) - do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.0" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" - done - echo >> "$ABCDETEMPDIR/cddbchoices" - echo cddb-read-0-complete >> "$ABCDETEMPDIR/status" - echo cddb-choice=0 >> "$ABCDETEMPDIR/status" - echo 503 > "$ABCDETEMPDIR/cddbquery" + if [ $CDDBLASTMETHOD = "y" ] + then + # We're the end of the line. + # + # No matches. Use the normal cddb template for the user to + # fill in + vecho "Unable to find a match with ${CDDBMETHCHOICE}, generating CDDB template." + echo "No Musicbrainz match." >> "$ABCDETEMPDIR/cddbchoices" + $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0" + # List out disc title/author and contents of template + echo ---- Unknown Artist / Unknown Album ---- >> "$ABCDETEMPDIR/cddbchoices" + UNKNOWNDISK=y + for TRACK in $(f_seq_row 1 $TRACKS) + do + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.0" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + done + echo >> "$ABCDETEMPDIR/cddbchoices" + echo cddb-read-0-complete >> "$ABCDETEMPDIR/status" + echo cddb-choice=0 >> "$ABCDETEMPDIR/status" + echo 503 > "$ABCDETEMPDIR/cddbquery" + else + # Neat, we'll let the next guy take care of this CDDB + # file junk. + vecho "Unable to find a match with ${CDDBMETHCHOICE}, moving on to the next option." + fi else # We have some matches NUM_RESPONSES=$(echo "${ABCDETEMPDIR}"/cddbread.* | wc -w) @@ -2556,13 +2566,13 @@ echo "done." >> "$ABCDETEMPDIR/cddbchoices" echo cddb-read-1-complete >> "$ABCDETEMPDIR/status" echo cddb-choice=1 >> "$ABCDETEMPDIR/status" - ATITLE=$(grep -e '^DTITLE=' "${ABCDETEMPDIR}/cddbread.1" | cut -c8- ) + ATITLE=$(grep -a -e '^DTITLE=' "${ABCDETEMPDIR}/cddbread.1" | cut -c8- ) echo "200 none ${ATITLE}" >> "$ABCDETEMPDIR/cddbquery" # List out disc title/author and contents echo ---- ${ATITLE} ---- >> "$ABCDETEMPDIR/cddbchoices" for TRACK in $(f_seq_row 1 $TRACKS) do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" done echo >> "$ABCDETEMPDIR/cddbchoices" else @@ -2572,13 +2582,13 @@ do X=$(echo $file | sed 's/^.*cddbread\.//g') echo cddb-read-$X-complete >> "$ABCDETEMPDIR/status" - ATITLE=$(grep -e '^DTITLE=' "${ABCDETEMPDIR}"/cddbread.$X | cut -c8- ) + ATITLE=$(grep -a -e '^DTITLE=' "${ABCDETEMPDIR}"/cddbread.$X | cut -c8- ) echo "none ${ATITLE}" >> "$ABCDETEMPDIR/cddbquery" # List out disc title/author and contents echo "#$X: ---- ${ATITLE} ----" >> "$ABCDETEMPDIR/cddbchoices" for TRACK in $(f_seq_row 1 $TRACKS) do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.$X" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.$X" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" done echo >> "$ABCDETEMPDIR/cddbchoices" done @@ -2704,7 +2714,7 @@ echo ---- "$(cut '-d ' -f4- "$ABCDETEMPDIR/cddbquery")" ---- >> "$ABCDETEMPDIR/cddbchoices" for TRACK in $(f_seq_row 1 $TRACKS) do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" done echo >> "$ABCDETEMPDIR/cddbchoices" ;; @@ -2712,22 +2722,31 @@ # TODO: Explain these error codes a little more accurately: # http://ftp.freedb.org/pub/freedb/misc/freedb_CDDB_protcoldoc.zip # No match response: - case "$RESPONSECODE" in - 202) echo "No CDDB match." >> "$ABCDETEMPDIR/cddbchoices" ;; - 403|409) echo "CDDB entry is corrupt, or the handshake failed." >> "$ABCDETEMPDIR/cddbchoices" ;; - 500|503) echo "CDDB unavailable." >> "$ABCDETEMPDIR/cddbchoices" ;; - esac - $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0" - # List out disc title/author and contents of template - echo ---- Unknown Artist / Unknown Album ---- >> "$ABCDETEMPDIR/cddbchoices" - UNKNOWNDISK=y - for TRACK in $(f_seq_row 1 $TRACKS) - do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.0" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" - done - echo >> "$ABCDETEMPDIR/cddbchoices" - echo cddb-read-0-complete >> "$ABCDETEMPDIR/status" - echo cddb-choice=0 >> "$ABCDETEMPDIR/status" + if [ $CDDBLASTMETHOD = "y" ] + then + # We're the caboose, so we need to generate the CDDB + # template. + vecho "Unable to find a match with ${CDDBMETHCHOICE}, generating CDDB template." + case "$RESPONSECODE" in + 202) echo "No CDDB match." >> "$ABCDETEMPDIR/cddbchoices" ;; + 403|409) echo "CDDB entry is corrupt, or the handshake failed." >> "$ABCDETEMPDIR/cddbchoices" ;; + 500|503) echo "CDDB unavailable." >> "$ABCDETEMPDIR/cddbchoices" ;; + esac + $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0" + # List out disc title/author and contents of template + echo ---- Unknown Artist / Unknown Album ---- >> "$ABCDETEMPDIR/cddbchoices" + UNKNOWNDISK=y + for TRACK in $(f_seq_row 1 $TRACKS) + do + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.0" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + done + echo >> "$ABCDETEMPDIR/cddbchoices" + echo cddb-read-0-complete >> "$ABCDETEMPDIR/status" + echo cddb-choice=0 >> "$ABCDETEMPDIR/status" + else + # Template's the next chump's job. + vecho "Unable to find a match with ${CDDBMETHCHOICE}, moving on to the next option." + fi ;; 210|211) # Multiple exact, (possibly multiple) inexact matches @@ -2754,7 +2773,7 @@ echo \#$X: ---- "$DISCINFO" ---- >> "$ABCDETEMPDIR/cddbchoices" for TRACK in $(f_seq_row 1 $TRACKS) do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.$X" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.$X" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" done echo >> "$ABCDETEMPDIR/cddbchoices" done ) @@ -2765,7 +2784,7 @@ # Using local copy. for TRACK in $(f_seq_row 1 $TRACKS) do - echo $TRACK: "$(grep ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" + echo $TRACK: "$(grep -a ^TTITLE$(expr $TRACK - 1)= "$ABCDETEMPDIR/cddbread.1" | cut -f2- -d= | tr -d \\r\\n)" >> "$ABCDETEMPDIR/cddbchoices" done echo >> "$ABCDETEMPDIR/cddbchoices" echo cddb-read-1-complete >> "$ABCDETEMPDIR/status" @@ -2796,7 +2815,7 @@ CHOICE=$(checkstatus cddb-choice) if [ -n "$CHOICE" ] ; then case $CDDBCHOICES in - -1) if head -1 "$ABCDETEMPDIR/cddbquery" | grep "^$" > /dev/null 2>&1 ; then + -1) if head -1 "$ABCDETEMPDIR/cddbquery" | grep -a "^$" > /dev/null 2>&1 ; then log error "CDDB query failed!" exit 1 else @@ -2863,7 +2882,7 @@ UNKNOWNDISK=y $CDDBTOOL template $(cat "$ABCDETEMPDIR/discid") > "$ABCDETEMPDIR/cddbread.0" else - echo "Selected: #$CDCHOICENUM ($(grep ^DTITLE= "$ABCDETEMPDIR/cddbread.$CDCHOICENUM" | cut -f2- -d= | tr -d \\r\\n))" >&2 + echo "Selected: #$CDCHOICENUM ($(grep -a ^DTITLE= "$ABCDETEMPDIR/cddbread.$CDCHOICENUM" | cut -f2- -d= | tr -d \\r\\n))" >&2 do_cddbparse "$ABCDETEMPDIR/cddbread.$CDCHOICENUM" fi echo "cddb-choice=$CDCHOICENUM" >> "$ABCDETEMPDIR/status" @@ -2912,7 +2931,7 @@ CDCHOICENUM=1 echo "cddb-choice=$CDCHOICENUM" >> "$ABCDETEMPDIR/status" fi - echo "Selected: #$CDCHOICENUM ($(grep ^DTITLE= "$ABCDETEMPDIR/cddbread.$CDCHOICENUM" | cut -f2- -d= | tr -d \\r\\n))" >&2 + echo "Selected: #$CDCHOICENUM ($(grep -a ^DTITLE= "$ABCDETEMPDIR/cddbread.$CDCHOICENUM" | cut -f2- -d= | tr -d \\r\\n))" >&2 fi fi @@ -2980,7 +2999,7 @@ # Some heuristics first. Look at Disc Title, and if it starts with # "Various", then we'll assume Various Artists - if [ "$(grep ^DTITLE= "$CDDBDATA" | cut -f2- -d= | grep -Eci '^(various|soundtrack|varios|sonora|ost)')" != "0" ]; then + if [ "$(grep -a ^DTITLE= "$CDDBDATA" | cut -f2- -d= | grep -aEci '^(various|soundtrack|varios|sonora|ost)')" != "0" ]; then echo "Looks like a Multi-Artist CD" >&2 VARIOUSARTISTS=y else @@ -2996,14 +3015,14 @@ # Set a default DEFAULTSTYLE=1 # Need NUMTRACKS before cddb-tool will return it: - NUMTRACKS=$(grep -E '^TTITLE[0-9]+=' "$CDDBDATA" | wc -l) - if [ "$(grep -c "^TTITLE.*\/" "$CDDBDATA")" -gt "$(expr $NUMTRACKS / 2 )" ]; then + NUMTRACKS=$(grep -a -E '^TTITLE[0-9]+=' "$CDDBDATA" | wc -l) + if [ "$(grep -ac "^TTITLE.*\/" "$CDDBDATA")" -gt "$(expr $NUMTRACKS / 2 )" ]; then # More than 1/2 tracks contain a "/", so guess forward DEFAULTSTYLE=1 - elif [ "$(grep -c "^TTITLE.*\-" "$CDDBDATA")" -gt "$(expr $NUMTRACKS / 2 )" ]; then + elif [ "$(grep -ac "^TTITLE.*\-" "$CDDBDATA")" -gt "$(expr $NUMTRACKS / 2 )" ]; then # More than 1/2 contain a "-", so guess forward-dash DEFAULTSTYLE=2 - elif [ "$(grep -c "^TTITLE.*(.*)" "$CDDBDATA")" -gt "$(expr $NUMTRACKS / 2 )" ]; then + elif [ "$(grep -ac "^TTITLE.*(.*)" "$CDDBDATA")" -gt "$(expr $NUMTRACKS / 2 )" ]; then # More than 1/2 contain something in parens, so guess trailing-paren DEFAULTSTYLE=6 fi @@ -3108,8 +3127,8 @@ do_getalbumart() { # set variables - ALBUMFILE="$(mungefilename "$DALBUM")" - ARTISTFILE="$(mungefilename "$DARTIST")" + ALBUMFILE="$(mungealbumname "$DALBUM")" + ARTISTFILE="$(mungeartistname "$DARTIST")" GENRE="$(mungegenre "$GENRE")" YEAR=${CDYEAR:-$CDYEAR} # have we got a musicbrainz mbid or amazon asin? @@ -3263,11 +3282,13 @@ LASTTRACK=$(expr $3 + 0) UTRACKNUM=$FIRSTTRACK case "$CDROMREADERSYNTAX" in - flac) READTRACKNUMS="$FIRSTTRACK.1-$(($LASTTRACK + 1)).0" ;; + flac) READTRACKNUMS="-" ;; cdparanoia|libcdio) #XX FIXME XX - # Add a variable to check if tracks are provided in command line and if not, use "0-" to rip the tracks - READTRACKNUMS="$FIRSTTRACK-$LASTTRACK" ;; + # Add a variable to check if tracks are provided in command line and if not, rip the whole CD + # We must make sure to rip from sector 0, both lines below work + # READTRACKNUMS="-- -$LASTTRACK" ;; + READTRACKNUMS="[.0]-" ;; cdda2wav | icedax) READTRACKNUMS="$FIRSTTRACK+$LASTTRACK" ;; pird) READTRACKNUMS="$FIRSTTRACK..$LASTTRACK" ;; *) echo "abcde error: $CDROMREADERSYNTAX does not support ONETRACK mode" @@ -3460,6 +3481,24 @@ echo "$@" | sed -e 's/^\.*//' -e 's/ /_/g' | tr -d ":><|*/\"'?[:cntrl:]" } +# Custom filename munging specific to track names: +mungetrackname () +{ + mungefilename $@ +} + +# Custom filename munging specific to artist names: +mungeartistname () +{ + mungefilename $@ +} + +# Custom filename munging specific to album names: +mungealbumname () +{ + mungefilename $@ +} + # Custom genre munging: mungegenre () { @@ -3496,8 +3535,8 @@ # Builtin defaults # CDDB -# Defaults to FreeDB, but musicbrainz can be used too, via the abcde-musicbrainz-tool script -CDDBMETHOD=cddb +# Currently two supported options ("musicbrainz" and "cddb" for freedb.org) +CDDBMETHOD=musicbrainz CDDBURL="http://freedb.freedb.org/~cddb/cddb.cgi" CDDBSUBMIT=freedb-sub...@freedb.org CDDBPROTO=6 @@ -3507,6 +3546,10 @@ CDDBLOCALRECURSIVE="y" CDDBLOCALDIR="$HOME/.cddb" CDDBUSELOCAL="n" +# pre-declare a variable we'll use if the user provides a +# comma-separated list of CDDBMETHODs +declare -a CDDBMETHODS +CDDBLASTMETHOD="n" # List of fields we parse and show during the CDDB parsing... SHOWCDDBFIELDS="year,genre" @@ -3730,7 +3773,7 @@ # This option is basically for Debian package dependencies: # List of preferred outputs - by default, run with whatever we have in the path -DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:lame,mp3:bladeenc,spx:speex,m4a:faac:opus +DEFAULT_OUTPUT_BINARIES=vorbis:oggenc,flac:flac,mp3:lame,mp3:bladeenc,spx:speex,m4a:fdkaac:opus # List of preferred cdromreaders - by default, run whichever we have in the path DEFAULT_CDROMREADERS="cdparanoia icedax cdda2wav libcdio pird" @@ -3803,7 +3846,7 @@ if [ "$HTTPGETOPTS" = "" ] ; then case $HTTPGET in wget) HTTPGETOPTS="-q -nv -e timestamping=off -O -";; - curl) HTTPGETOPTS="-f -s";; + curl) HTTPGETOPTS="-f -s -L";; fetch)HTTPGETOPTS="-q -o -";; ftp) HTTPGETOPTS="-a -V -o - ";; *) log warning "HTTPGET in non-standard and HTTPGETOPTS are not defined." ;; @@ -4211,7 +4254,7 @@ esac # If nothing has been specified, use oggenc for oggs and lame for mp3s and flac -# for flacs and speexenc for speex and mpcenc for mpcs and faac for m4as and +# for flacs and speexenc for speex and mpcenc for mpcs and fdkaac for m4as and # wavpack for wvs... # Getting ready for multiple output changes @@ -4278,8 +4321,8 @@ # compiled without libmp4v2... Andrew. ;; m4a) - [ "$AACENCODERSYNTAX" = "default" ] && AACENCODERSYNTAX=faac - [ "$DOTAG" = "y" ] && CHECKFAACBUILD=y + [ "$AACENCODERSYNTAX" = "default" ] && AACENCODERSYNTAX=fdkaac + [ "$AACENCODERSYNTAX" = "faac" ] && [ "$DOTAG" = "y" ] && CHECKFAACBUILD=y [ "$AACENCODERSYNTAX" = "neroAacEnc" ] && NEEDNEROAACTAG=y [ "$AACENCODERSYNTAX" = "qaac" ] && NEEDWINE=y [ "$AACENCODERSYNTAX" = "fhgaacenc" ] && NEEDWINE=y && NEEDATOMICPARSLEY=y @@ -4542,6 +4585,23 @@ musicbrainz) ;; esac +# 2016-08-30: adding comma-separated list (in this case, to be used in +# sequence until successful) support ala OUTPUTYPE. -GR +idx=0 +for CDDBCHOICE in $(echo "$CDDBMETHOD" | tr -d ' ' | tr , ' ') +do + # The OUTPUTTYPE code uses bash-specific syntax (var=${var:+var}), + # but then doesn't just use an array to store the output, which seems + # weird. So I'm going to use an array for this...? -GR + CDDBMETHODS[$idx]=$CDDBCHOICE + vvecho "CDDB method $idx: $CDDBCHOICE" + idx=$((idx + 1)) +done + +# Just so CDDBMETHOD is a legible value for functions, in case I +# miss something, set it to the first choice: -GR +CDDBMETHOD=${CDDBMETHODS[0]} + # Check if both OGGEOUTPUTCONTAINER and FLACOUTPUTCONTAINER are the same, and differentiante them if [ X"$OGGOUTPUTCONTAINER" = "Xogg" ] && [ X"$FLACOUTPUTCONTAINER" = "Xogg" ]; then log error "FLAC on an Ogg container is not yet supported" @@ -4706,7 +4766,8 @@ if faac --help 2>&1 | grep -q -F 'MP4 support unavailable.'; then echo "WARNING: Your copy of Faac does not have mp4 support" echo "WARNING: Encoding untagged files to aac..." - OUTPUTTYPE=aac + # Replace m4a with aac for single and multi-output encodes: + OUTPUTTYPE=$(echo "$OUTPUTTYPE" | sed 's/m4a/aac/') else echo "Using Faac to Tag AAC Tracks..." fi @@ -4736,6 +4797,7 @@ # Here it used to say: # One thousand lines in, we can start doing stuff with things # Well, right now we are at line 3737 ;) +# Hey, for grins, as of 2016-08-30 this is now line 4814! -GR # Export needed things so they can be read in this subshell export CDDBTOOL ABCDETEMPDIR TRACKQUEUE LOWDISK EJECTCD EJECT EJECTOPTS @@ -4765,7 +4827,23 @@ : else if [ "$CDDBLOCALSTATUS" = "notfound" ] ; then - case "$CDDBMETHOD" in + for CDDBMETHCHOICE in ${CDDBMETHODS[@]} + do + vecho "Trying CDDB method ${CDDBMETHCHOICE}." + if [ $CDDBLASTMETHOD = "n" ] + then + if [ ${#CDDBMETHODS[@]} -le 1 ] + # (number of items) + then + CDDBLASTMETHOD="y" + else + CDDBMETHODS=("${CDDBMETHODS[@]:1}") + # (performs shift on an array in bash) + fi + else + vvecho "(Last chance before manual entry...)" + fi + case "$CDDBMETHCHOICE" in cddb) do_cddbstat do_cddbquery @@ -4774,7 +4852,13 @@ musicbrainz) do_musicbrainz ;; - esac + esac + if [ -f "$ABCDETEMPDIR/cddbchoices" ] + then + # If this pass found something, we're done. + break + fi + done fi CHOICE=$(checkstatus cddb-choice) if [ "$CHOICE" = 0 ] ; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/abcde-musicbrainz-tool new/abcde-2.8.1/abcde-musicbrainz-tool --- old/abcde-2.7.2/abcde-musicbrainz-tool 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/abcde-musicbrainz-tool 2017-01-18 14:56:14.000000000 +0100 @@ -92,12 +92,12 @@ foreach my $release (@releases) { my $a_artist = $release->artist()->name(); my $va = 0; + my $rel_year = ""; if ($a_artist =~ /Various Artists/) { $va = 1; } - my @events = @{$release->release_event_list()->events()}; - my $rel_year = ""; - if ($release->release_event_list()->count() > 0) { + if ($release->release_event_list()->count() > 0) { + my @events = @{$release->release_event_list()->events()}; $rel_year = substr($events[0]->date(),0,4); } @@ -170,7 +170,7 @@ } } elsif ($command =~ m/calcid/) { # Calculate MusicBrainz ID from disc offsets; see -# http://musicbrainz.org/doc/DiscIDCalculation +# https://musicbrainz.org/doc/DiscIDCalculation if ($#discinfo < 5) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/abcde.1 new/abcde-2.8.1/abcde.1 --- old/abcde-2.7.2/abcde.1 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/abcde.1 2017-01-18 14:56:14.000000000 +0100 @@ -250,10 +250,12 @@ .TP .B CDDBMETHOD Specifies the method we want to use to retrieve the track information. Two -values are recognized: "cddb" and "musicbrainz". The "cddb" value needs the -CDDBURL and HELLOINFO variables described below. The "musicbrainz" value uses -the Perl helper script \fBabcde-musicbrainz-tool\fR to establish a -conversation with the Musicbrainz server for information retrieval. +values are recognized: "cddb" and/or "musicbrainz" which can be given as +a comma delimited list to be tried sequentially in the event of failure +of the first search. The "cddb" value needs the CDDBURL and HELLOINFO +variables described below. The "musicbrainz" value uses the Perl helper +script \fBabcde-musicbrainz-tool\fR to establish a conversation with the +Musicbrainz server for information retrieval. .TP .B CDDBURL Specifies a server to use for CDDB lookups. @@ -333,11 +335,11 @@ point we only have \'mpcenc\' available, from musepack.net. .TP .B AACENCODERSYNTAX -Specifies the style of encoder to use for M4A (AAC) encoder. We support \'faac\' -as \'default\' as well as higher quality audio with neroAacEnc, fdkaac, qaac,fhgaacenc -and FFmpeg or avconv. If qaac, refalac or FFmpeg / avconv are used it is also possible -to generate Apple Lossless Audio Codec (alac) files. Note that qaac, refalac and fhgaacenc -are Windows applications which require Wine to be installed. +Specifies the style of encoder to use for M4A (AAC) encoder. We support \'fdkaac\' +as \'default\' as well as FFmpeg or avconv, neroAacEnc, qaac and fhgaacenc. If qaac, +refalac or FFmpeg / avconv are used it is also possible to generate Apple Lossless +Audio Codec (alac) files. Note that qaac, refalac and fhgaacenc are Windows applications +which require Wine to be installed. .TP .B TTAENCODERSYNTAX Specifies the style of encoder to use for True Audio (tts) encoding. We @@ -545,6 +547,10 @@ slash munging (UNIX cannot store a file with a '/' char in it) as well as the control character munging (NULs can't be in a filename either, and newlines and such in filenames are typically not desirable). +.br +New to abcde 2.7.3 are the user definable functions mungetrackname, mungeartistname +and mungealbumname which default to mungefilename. These permit finer-grained +control of track name, artist name and album name for the ultra-fastidious. .TP .B mungegenre mungegenre () is a shell function used to modify the $GENRE variable. As @@ -602,8 +608,8 @@ .TP .B * An Ogg/Vorbis, MP3, FLAC, Ogg/Speex, MPP/MP+(Musepack), M4A encoder or Opus encoder -(oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mpcenc, faac, -neroAacEnc, fdkaac, wavpack, opusenc). +(oggenc, vorbize, lame, gogo, bladeenc, l3enc, mp3enc, flac, speexenc, mpcenc, +fdkaac, neroAacEnc, faac, wavpack, opusenc). .TP .B * An audio CD reading utility (cdparanoia, icedax, cdda2wav, libcdio (cd-paranoia), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/abcde.conf new/abcde-2.8.1/abcde.conf --- old/abcde-2.7.2/abcde.conf 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/abcde.conf 2017-01-18 14:56:14.000000000 +0100 @@ -1,13 +1,15 @@ -# System defaults for abcde version 2.7.2 +# System defaults for abcde version 2.8.1 # Nothing in this file is uncommented by default. # # If you wish to override these system-wide settings, create your own # .abcde.conf file in your home directory. # CDDB options -# Choose whether you want to use CDDB or Musicbrainz. Default is CDDB -# currently recognized options are 'cddb' and 'musicbrainz' -#CDDBMETHOD=cddb +# Choose whether you want to use "cddb" and/or "musicbrainz". Default +# is "musicbrainz", but both can be specified in a comma delimited list +# to be tried sequentially in the event of failure of the first +# search. +#CDDBMETHOD=musicbrainz # If you wish to use a different CDDB server, edit this line. # If you just wanted to use a proxy server, just set your http_proxy @@ -64,12 +66,12 @@ # mpcenc - encoder for MPCENCODERSYNTAX # wavpack, ffmpeg - encoder for WVENCODERSYNTAX # mac - for APENCODERSYNTAX -# faac, neroAacEnc, fdkaac, qaac, fhgaacenc, ffmpeg - for AACENCODERSYNTAX +# fdkaac, ffmpeg, neroAacEnc, faac, qaac, fhgaacenc - for AACENCODERSYNTAX # opusenc - for OPUSENCODERSYNTAX # twolame, ffmpeg - for MP2ENCODERSYNTAX # tta, ttaenc - for TTAENCODERSYNTAX # default is a valid option for oggenc, lame, flac, speexenc, mpcenc, wavpack, -# faac, opus, twolame and tta. Currently this affects the default location of the +# fdkaac, opus, twolame and tta. Currently this affects the default location of the # binary, the variable to pick encoder command-line options from, and where # the options are given. #MP3ENCODERSYNTAX=default @@ -161,8 +163,8 @@ # "$HOME/.wine/drive_c/Program\ Files/qaac/qaac.exe" is problematic. Try instead: # "$HOME/.wine/drive_c/qaac/qaac.exe" # Installation instructions for qaac, refalac and fhgaacenc here: -# http://www.andrews-corner.org/qaac.html -# http://www.andrews-corner.org/fhgaacenc.html +# http://www.andrews-corner.org/linux/qaac.html +# http://www.andrews-corner.org/linux/fhgaacenc.html # (Hint: Use QAAC=refalac to use the Open Source alac encoder...) #QAAC=qaac #FHGAACENC=fhgaacenc @@ -238,7 +240,8 @@ # to encode with error 'floating point exception'. This is flac # error in get_console_width(), corrected in flac 1.3.1 #FLACOPTS="--silent" - +# Options passed to MetaFlac for ReplayGain tags: +#FLACGAINOPTS="--add-replay-gain" # Speex: #SPEEXENCOPTS= @@ -262,25 +265,27 @@ #APENCOPTS='-c4000' # M4A/AAC -# There are now 5 AAC encoders available to abcde. (FFmpeg -# is also available for the m4a container...) -# Note that the old AACENCOPTS has been rendered obsolete by +# There are now 6 AAC encoders available to abcde, the default being +# fdkaacenc. Note that the old AACENCOPTS has been rendered obsolete by # the following options, new to abcde 2.7: -# 1. faac: see 'faac --long-help' and consider -# using '-q 250' for a good quality encode. -#FAACENCOPTS= -# 2. neroAacEnc: see 'neroAacEnc -help' and -# consider using '-q 0.65' for a good quality encode. -#NEROAACENCOPTS= -# 3. fdkaac: see 'fdkaac --help' and consider using +# 1. fdkaac: see 'fdkaac --help' and consider using # '--profile 2 --bitrate-mode 5 --afterburner 1' # for a good quality encode. #FDKAACENCOPTS='--bitrate 192k' -# 4. qaac: simply run 'wine qaac.exe' to see all options and +# 2. FFmpeg: Use the following to use the FFmpeg native encoder, adding +# -strict -2 if you have an older FFmpeg: +# FFMPEGENCOPTS="-c:a aac -b:a 192k" +# 3. neroAacEnc: see 'neroAacEnc -help' and +# consider using '-q 0.65' for a good quality encode. +#NEROAACENCOPTS= +# 4. faac: see 'faac --long-help' and consider +# using '-q 250' for a good quality encode. +#FAACENCOPTS= +# 5. qaac: simply run 'wine qaac.exe' to see all options and # consider using '--tvbr 100' for a good quality -# encode or '--alac' for Apple Lossless Audio Codec. +# encode or '--alac' for Apple Lossless Audio Codec #QAACENCOPTS= -# 5. fhgaacenc: simply run 'wine fhgaacenc.exe' to see all options. +# 6. fhgaacenc: simply run 'wine fhgaacenc.exe' to see all options. # consider using '--vbr 4' for a decent quality encode. #FHGAACENCOPTS= @@ -463,6 +468,27 @@ #{ # echo "$@" | sed -e 's/^\.*//' -e 's/ /_/g' | tr -d ":><|*/\"'?[:cntrl:]" #} +# +# Custom filename munging specific to track names: +# By default this function will call the mungefilename function. +#mungetrackname () +#{ +# mungefilename $@ +#} +# +# Custom filename munging specific to artist names: +# By default this function will call the mungefilename function. +#mungeartistname () +#{ +# mungefilename $@ +#} +# +# Custom filename munging specific to album names: +# By default this function will call the mungefilename function. +#mungealbumname () +#{ +# mungefilename $@ +#} # Custom genre munging: # By default we just transform uppercase to lowercase. Not much of a fancy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/changelog new/abcde-2.8.1/changelog --- old/abcde-2.7.2/changelog 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/changelog 2017-01-18 14:56:14.000000000 +0100 @@ -1,3 +1,55 @@ +abcde 2.8.1. + + * Fix silly error introduced in abcde-musicbrainz-tool when fixing bug + 30. Thanks to Thomas Klausner for the bug/patch. Closes Issue 52: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=52 + + -- Steve McIntyre <93...@debian.org> Wed, 18 Jan 2017 11:02:38 +0000 + +abcde 2.8 + + * Make fdkaac the default for m4a encoding. Faac can still be selected + for m4a encding via ~/.abcde.conf file but best not to :). + * Split user-definable mungefilename function into mungetrackname, + mungeartistname, and mungealbumname, each of which default to + mungefilename Thanks to Gerald Turner for the patch and enhancement + request. This closes Issue 39: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=39 + * FAQs: Clarify the exit from multi-result CDDB search. + * Fix to allow multiple output formats when aac fallback is triggered. + Thanks to Birk Bremer for the bug report. This closes Issue 35: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=35 + * Fix for some erroneous error and status logging. Thanks to Christian + Wasem for the bug report and fix. This closes Issue 32: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=32 + * Add support for trying multiple CD lookup services in order. Thanks to + Gabriel Rosenkoetter for the patch. Closes Issue 42: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=42 + * Add Recommends on glyrc and imagemagick in Debian packaging. Closes + Debian Bug #827626 + * Fix up handling of the first few sectors when reading + from a whole-CD flac file or using cdparanoia in one-track + mode. Thanks to Matthias König for the patch. Closes Issue 44: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=44 + * Tweak the fix in musicbrainz for handling sketchy returned data + some more. Hopefully closes Issue 30: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=30 + * Re-enable some commented out cdparanoia/debug code in do_discid. + Closes Issue 14: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=14 + * Add "-a" to lots of grep calls in case of "binary" looking data, + e.g. non-ascii text in track titles! + Closes Issue 24: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=24 + * Add "-L" to default curl options, to follow redirects if needed + Closes Issue 40: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=40 + Thanks to Gabriel Rosenkoetter for the patch. + * Switch default from "cddb" to "musicbrainz" for track lookup + Closes Debian Bug #842178 + + -- Steve McIntyre <93...@debian.org> Sat, 14 Jan 2017 00:53:48 +0000 + abcde 2.7.2 * When using musicbrainz, don't assume that there will be release @@ -31,6 +83,8 @@ track is selected. Thanks to Nino Burini for the bug report and also the fix. This closes Issue 25: http://abcde.einval.com/bugzilla/show_bug.cgi?id=25 + + -- Andrew Strong <andrew.david.str...@gmail.com> Wed, 6 Apr 2016 08:47:56 +0000 abcde 2.7.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/debian/changelog new/abcde-2.8.1/debian/changelog --- old/abcde-2.7.2/debian/changelog 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/debian/changelog 2017-01-18 14:56:14.000000000 +0100 @@ -1,3 +1,81 @@ +abcde (2.8-1) unstable; urgency=medium + * New upstream version with various improvements and bugfixes: + + Make fdkaac the default for m4a encoding. Faac can still be selected + for m4a encding via ~/.abcde.conf file but best not to :). + + Split user-definable mungefilename function into mungetrackname, + mungeartistname, and mungealbumname, each of which default to + mungefilename Thanks to Gerald Turner for the patch and enhancement + request. This closes Issue 39: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=39 + + FAQs: Clarify the exit from multi-result CDDB search. + + Fix to allow multiple output formats when aac fallback is triggered. + Thanks to Birk Bremer for the bug report. This closes Issue 35: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=35 + + Fix for some erroneous error and status logging. Thanks to Christian + Wasem for the bug report and fix. This closes Issue 32: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=32 + + Add support for trying multiple CD lookup services in order. Thanks to + Gabriel Rosenkoetter for the patch. Closes Issue 42: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=42 + + Add Recommends on glyrc and imagemagick in Debian packaging. + Closes: #827626 + + Fix up handling of the first few sectors when reading + from a whole-CD flac file or using cdparanoia in one-track + mode. Thanks to Matthias König for the patch. Closes Issue 44: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=44 + + Tweak the fix in musicbrainz for handling sketchy returned data + some more. Hopefully closes Issue 30: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=30 + + Re-enable some commented out cdparanoia/debug code in do_discid. + Closes Issue 14: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=14 + + Add "-a" to lots of grep calls in case of "binary" looking data, + e.g. non-ascii text in track titles! + Closes Issue 24: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=24 + + Add "-L" to default curl options, to follow redirects if needed + Closes Issue 40: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=40 + Thanks to Gabriel Rosenkoetter for the patch. + + Switch default from "cddb" to "musicbrainz" for track lookup + Closes: #842178 + * Update debhelper compat level to 10, and tweak debian/rules to fix + debhelper warnings. + + -- Steve McIntyre <93...@debian.org> Sat, 14 Jan 2016 17:16:20 +0000 + +abcde (2.7.2-1) unstable; urgency=medium + + * New upstream version with various improvements and bugfixes: + + When using musicbrainz, don't assume that there will be release + events attached to a particular CD release. Bug fix for the addition + of year information support in 2.7.1. Thanks to Ed Oehler and Alan W. + Kerr for debugging help. + + Support for output to the Matroska container (mka). Encoder + is FFmpeg (or avconv). Thanks to Shantiq and Fakeoutdoorsman of + the Ubuntu Forums for the idea. + + Add id3tag mp3 tagger as this is the tagger available to + OpenBSD users. Thanks to Christopher Zimmermann for the + notification and patch. + + Allow for cddb response 500. Thanks again to Von Welch for the + bug report and patch. This closes Issue 26: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=26 + + Fix for 'expansion of $REDIR' bug on MacOSX. Thanks to Von Welch + for the bug report. This closes Issue 22: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=22 + + Makefile adjusted to allow the sample abcde.conf file to be + installed by default to /etc rather than $(prefix)/etc. + Thanks to Volker Schmidt from archlinux for the bug report: + https://bugs.archlinux.org/task/46671 + + Allow getalbumart to correctly place cover image when single + track is selected. Thanks to Nino Burini for the bug report + and also the fix. This closes Issue 25: + https://abcde.einval.com/bugzilla/show_bug.cgi?id=25 + * Update the Homepage URL. Closes: #767810 + * Replace various http URLs with https + + -- Steve McIntyre <93...@debian.org> Wed, 13 Apr 2016 23:23:19 +0100 + abcde (2.7.1-1) unstable; urgency=medium * New upstream version, with lots of improvements and bugfixes: @@ -32,7 +110,7 @@ + Grab year information too when using musicbrainz. Thanks to Marco Hoppstaedter for the patch. Closes issue 10: http://abcde.einval.com/bugzilla/show_bug.cgi?id=10 - * Update debian/watch to match tne new upstream home. + * Update debian/watch to match the new upstream home. -- Steve McIntyre <93...@debian.org> Mon, 02 Nov 2015 18:29:19 +0000 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/debian/compat new/abcde-2.8.1/debian/compat --- old/abcde-2.7.2/debian/compat 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/debian/compat 2017-01-18 14:56:14.000000000 +0100 @@ -1 +1 @@ -5 +10 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/debian/control new/abcde-2.8.1/debian/control --- old/abcde-2.7.2/debian/control 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/debian/control 2017-01-18 14:56:14.000000000 +0100 @@ -2,16 +2,16 @@ Section: sound Priority: optional Maintainer: Steve McIntyre <93...@debian.org> -Homepage: http://abcde.einval.com/ +Homepage: https://abcde.einval.com/ Standards-Version: 3.9.6 Build-Depends: debhelper (>= 8) -Vcs-Browser: http://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git;a=summary -Vcs-Git: http://git.einval.com/git/abcde.git +Vcs-Browser: https://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git;a=summary +Vcs-Git: https://git.einval.com/git/abcde.git Package: abcde Architecture: all -Depends: ${misc:Depends}, cd-discid, wget, cdparanoia | icedax, vorbis-tools (>= 1.0beta4-1) | lame | flac | bladeenc | speex | musepack-tools | opus-tools -Recommends: vorbis-tools, libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, bsd-mailx +Depends: ${misc:Depends}, cd-discid, wget, cdparanoia | icedax, vorbis-tools (>= 1.0beta4-1) | lame | flac | speex | musepack-tools | opus-tools +Recommends: vorbis-tools, libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, bsd-mailx, glyrc, imagemagick Suggests: eject, distmp3, id3 (>= 0.12), id3v2, eyed3 (<< 0.7~), normalize-audio, vorbisgain, mkcue, mp3gain, atomicparsley Description: A Better CD Encoder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/debian/copyright new/abcde-2.8.1/debian/copyright --- old/abcde-2.7.2/debian/copyright 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/debian/copyright 2017-01-18 14:56:14.000000000 +0100 @@ -1,7 +1,7 @@ The software was originally developed by Robert Woodcock <r...@debian.org>. It was also debianized by Robert Woodcock on Sun, 21 Feb 1999 18:50:34 -0800. -It is available at: http://abcde.einval.com/wiki/ +It is available at: https://abcde.einval.com/wiki/ Copyright: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/debian/rules new/abcde-2.8.1/debian/rules --- old/abcde-2.7.2/debian/rules 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/debian/rules 2017-01-18 14:56:14.000000000 +0100 @@ -31,7 +31,7 @@ install-stamp: build-stamp dh_testdir dh_testroot - dh_clean -k + dh_prep dh_installdirs # Add here commands to install the package into debian/abcde. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/abcde-2.7.2/debian/watch new/abcde-2.8.1/debian/watch --- old/abcde-2.7.2/debian/watch 2016-04-06 10:47:56.000000000 +0200 +++ new/abcde-2.8.1/debian/watch 2017-01-18 14:56:14.000000000 +0100 @@ -1,2 +1,2 @@ version=3 -http://abcde.einval.com/download/abcde-([0-9.]+).tar.gz +https://abcde.einval.com/download/abcde-([0-9.]+).tar.gz