diff -Nru abcde-2.7.2/abcde abcde-2.8.1/abcde --- abcde-2.7.2/abcde 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/abcde 2017-01-18 13:56:14.000000000 +0000 @@ -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-submit@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 -Nru abcde-2.7.2/abcde.1 abcde-2.8.1/abcde.1 --- abcde-2.7.2/abcde.1 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/abcde.1 2017-01-18 13:56:14.000000000 +0000 @@ -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 -Nru abcde-2.7.2/abcde.conf abcde-2.8.1/abcde.conf --- abcde-2.7.2/abcde.conf 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/abcde.conf 2017-01-18 13:56:14.000000000 +0000 @@ -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 -Nru abcde-2.7.2/abcde-musicbrainz-tool abcde-2.8.1/abcde-musicbrainz-tool --- abcde-2.7.2/abcde-musicbrainz-tool 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/abcde-musicbrainz-tool 2017-01-18 13:56:14.000000000 +0000 @@ -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 -Nru abcde-2.7.2/changelog abcde-2.8.1/changelog --- abcde-2.7.2/changelog 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/changelog 2017-01-18 13:56:14.000000000 +0000 @@ -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 <93sam@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 <93sam@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 Wed, 6 Apr 2016 08:47:56 +0000 abcde 2.7.1 diff -Nru abcde-2.7.2/debian/changelog abcde-2.8.1/debian/changelog --- abcde-2.7.2/debian/changelog 2017-05-13 14:35:16.000000000 +0000 +++ abcde-2.8.1/debian/changelog 2017-05-13 14:35:16.000000000 +0000 @@ -1,51 +1,97 @@ -abcde (2.7.2-1~ppa2) xenial; urgency=medium +abcde (2.8.1-1~xenial) xenial; urgency=medium - * Tweak control a little more + * For xenial + * Adjust control - -- Doug McMahon Sat, 07 May 2016 12:22:08 -0400 + -- Doug McMahon Sat, 13 May 2017 09:21:20 -0400 -abcde (2.7.2-1~ppa1) xenial; urgency=medium +abcde (2.8.1-1) unstable; urgency=medium - * Adjust control file - - -- Doug McMahon Tue, 12 Apr 2016 09:25:24 -0400 - -abcde (2.7.2-1~ppa) xenial; urgency=medium - - * New 2.7.2 Release - * 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). Typical conf file syntax would be: - - MKAENCODERSYNTAX=ffmpeg - FFMPEG=ffmpeg - FFMPEGENCOPTS="-c:a ac3 -b:a 448k" - OUTPUTTYPE="mka" - - 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: - http://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: - http://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: - http://abcde.einval.com/bugzilla/show_bug.cgi?id=25 + * New upstream version with one last-minute bugfix: + +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 <93sam@debian.org> Wed, 18 Jan 2016 14:06:40 +0000 + +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 <93sam@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 - -- Doug McMahon Sun, 27 Mar 2016 13:29:16 -0400 + -- Steve McIntyre <93sam@debian.org> Wed, 13 Apr 2016 23:23:19 +0100 abcde (2.7.1-1) unstable; urgency=medium @@ -81,7 +127,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 <93sam@debian.org> Mon, 02 Nov 2015 18:29:19 +0000 diff -Nru abcde-2.7.2/debian/compat abcde-2.8.1/debian/compat --- abcde-2.7.2/debian/compat 2017-05-13 14:35:16.000000000 +0000 +++ abcde-2.8.1/debian/compat 2017-01-18 13:56:14.000000000 +0000 @@ -1 +1 @@ -5 +10 diff -Nru abcde-2.7.2/debian/control abcde-2.8.1/debian/control --- abcde-2.7.2/debian/control 2017-05-13 14:35:16.000000000 +0000 +++ abcde-2.8.1/debian/control 2017-05-13 14:35:16.000000000 +0000 @@ -11,7 +11,7 @@ Package: abcde Architecture: all Depends: ${misc:Depends}, cd-discid, wget, libcdio-utils | cdparanoia -Recommends: flac, vorbis-tools (>= 1.0beta4-1), libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, bsd-mailx +Recommends: flac, vorbis-tools (>= 1.0beta4-1), libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, bsd-mailx, glyrc, imagemagick Suggests: lame, fdkaac, opus-tools, musepack-tools, bladeenc, speex, eject, distmp3, id3 (>= 0.12), id3v2, eyed3 (<< 0.7~), normalize-audio, vorbisgain, mkcue, mp3gain, atomicparsley, Description: A Better CD Encoder frontend program to cdparanoia, wget, cd-discid, id3, and your favorite diff -Nru abcde-2.7.2/debian/copyright abcde-2.8.1/debian/copyright --- abcde-2.7.2/debian/copyright 2017-05-13 14:35:16.000000000 +0000 +++ abcde-2.8.1/debian/copyright 2017-01-18 13:56:14.000000000 +0000 @@ -1,7 +1,7 @@ The software was originally developed by Robert Woodcock . 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 -Nru abcde-2.7.2/debian/rules abcde-2.8.1/debian/rules --- abcde-2.7.2/debian/rules 2017-05-13 14:35:16.000000000 +0000 +++ abcde-2.8.1/debian/rules 2017-01-18 13:56:14.000000000 +0000 @@ -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 -Nru abcde-2.7.2/debian/watch abcde-2.8.1/debian/watch --- abcde-2.7.2/debian/watch 2017-05-13 14:35:16.000000000 +0000 +++ abcde-2.8.1/debian/watch 2017-01-18 13:56:14.000000000 +0000 @@ -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 diff -Nru abcde-2.7.2/FAQ abcde-2.8.1/FAQ --- abcde-2.7.2/FAQ 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/FAQ 2017-01-18 13:56:14.000000000 +0000 @@ -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 +Steve McIntyre <93sam@@debian.org> Andrew Strong diff -Nru abcde-2.7.2/.git/config abcde-2.8.1/.git/config --- abcde-2.7.2/.git/config 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/config 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -[core] - repositoryformatversion = 0 - filemode = true - bare = false - logallrefupdates = true -[remote "origin"] - url = https://git.einval.com/git/abcde.git - fetch = +refs/heads/master:refs/remotes/origin/master -[branch "master"] - remote = origin - merge = refs/heads/master diff -Nru abcde-2.7.2/.git/description abcde-2.8.1/.git/description --- abcde-2.7.2/.git/description 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/description 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -Unnamed repository; edit this file 'description' to name the repository. diff -Nru abcde-2.7.2/.git/HEAD abcde-2.8.1/.git/HEAD --- abcde-2.7.2/.git/HEAD 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/HEAD 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ref: refs/heads/master diff -Nru abcde-2.7.2/.git/hooks/applypatch-msg.sample abcde-2.8.1/.git/hooks/applypatch-msg.sample --- abcde-2.7.2/.git/hooks/applypatch-msg.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/applypatch-msg.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/bin/sh -# -# An example hook script to check the commit log message taken by -# applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. The hook is -# allowed to edit the commit message file. -# -# To enable this hook, rename this file to "applypatch-msg". - -. git-sh-setup -commitmsg="$(git rev-parse --git-path hooks/commit-msg)" -test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} -: diff -Nru abcde-2.7.2/.git/hooks/commit-msg.sample abcde-2.8.1/.git/hooks/commit-msg.sample --- abcde-2.7.2/.git/hooks/commit-msg.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/commit-msg.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ -#!/bin/sh -# -# An example hook script to check the commit log message. -# Called by "git commit" with one argument, the name of the file -# that has the commit message. The hook should exit with non-zero -# status after issuing an appropriate message if it wants to stop the -# commit. The hook is allowed to edit the commit message file. -# -# To enable this hook, rename this file to "commit-msg". - -# Uncomment the below to add a Signed-off-by line to the message. -# Doing this in a hook is a bad idea in general, but the prepare-commit-msg -# hook is more suited to it. -# -# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" - -# This example catches duplicate Signed-off-by lines. - -test "" = "$(grep '^Signed-off-by: ' "$1" | - sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { - echo >&2 Duplicate Signed-off-by lines. - exit 1 -} diff -Nru abcde-2.7.2/.git/hooks/post-update.sample abcde-2.8.1/.git/hooks/post-update.sample --- abcde-2.7.2/.git/hooks/post-update.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/post-update.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare a packed repository for use over -# dumb transports. -# -# To enable this hook, rename this file to "post-update". - -exec git update-server-info diff -Nru abcde-2.7.2/.git/hooks/pre-applypatch.sample abcde-2.8.1/.git/hooks/pre-applypatch.sample --- abcde-2.7.2/.git/hooks/pre-applypatch.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/pre-applypatch.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed -# by applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-applypatch". - -. git-sh-setup -precommit="$(git rev-parse --git-path hooks/pre-commit)" -test -x "$precommit" && exec "$precommit" ${1+"$@"} -: diff -Nru abcde-2.7.2/.git/hooks/pre-commit.sample abcde-2.8.1/.git/hooks/pre-commit.sample --- abcde-2.7.2/.git/hooks/pre-commit.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/pre-commit.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed. -# Called by "git commit" with no arguments. The hook should -# exit with non-zero status after issuing an appropriate message if -# it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-commit". - -if git rev-parse --verify HEAD >/dev/null 2>&1 -then - against=HEAD -else - # Initial commit: diff against an empty tree object - against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 -fi - -# If you want to allow non-ASCII filenames set this variable to true. -allownonascii=$(git config --bool hooks.allownonascii) - -# Redirect output to stderr. -exec 1>&2 - -# Cross platform projects tend to avoid non-ASCII filenames; prevent -# them from being added to the repository. We exploit the fact that the -# printable range starts at the space character and ends with tilde. -if [ "$allownonascii" != "true" ] && - # Note that the use of brackets around a tr range is ok here, (it's - # even required, for portability to Solaris 10's /usr/bin/tr), since - # the square bracket bytes happen to fall in the designated range. - test $(git diff --cached --name-only --diff-filter=A -z $against | - LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 -then - cat <<\EOF -Error: Attempt to add a non-ASCII file name. - -This can cause problems if you want to work with people on other platforms. - -To be portable it is advisable to rename the file. - -If you know what you are doing you can disable this check using: - - git config hooks.allownonascii true -EOF - exit 1 -fi - -# If there are whitespace errors, print the offending file names and fail. -exec git diff-index --check --cached $against -- diff -Nru abcde-2.7.2/.git/hooks/prepare-commit-msg.sample abcde-2.8.1/.git/hooks/prepare-commit-msg.sample --- abcde-2.7.2/.git/hooks/prepare-commit-msg.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/prepare-commit-msg.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare the commit log message. -# Called by "git commit" with the name of the file that has the -# commit message, followed by the description of the commit -# message's source. The hook's purpose is to edit the commit -# message file. If the hook fails with a non-zero status, -# the commit is aborted. -# -# To enable this hook, rename this file to "prepare-commit-msg". - -# This hook includes three examples. The first comments out the -# "Conflicts:" part of a merge commit. -# -# The second includes the output of "git diff --name-status -r" -# into the message, just before the "git status" output. It is -# commented because it doesn't cope with --amend or with squashed -# commits. -# -# The third example adds a Signed-off-by line to the message, that can -# still be edited. This is rarely a good idea. - -case "$2,$3" in - merge,) - /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; - -# ,|template,) -# /usr/bin/perl -i.bak -pe ' -# print "\n" . `git diff --cached --name-status -r` -# if /^#/ && $first++ == 0' "$1" ;; - - *) ;; -esac - -# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" diff -Nru abcde-2.7.2/.git/hooks/pre-push.sample abcde-2.8.1/.git/hooks/pre-push.sample --- abcde-2.7.2/.git/hooks/pre-push.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/pre-push.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ -#!/bin/sh - -# An example hook script to verify what is about to be pushed. Called by "git -# push" after it has checked the remote status, but before anything has been -# pushed. If this script exits with a non-zero status nothing will be pushed. -# -# This hook is called with the following parameters: -# -# $1 -- Name of the remote to which the push is being done -# $2 -- URL to which the push is being done -# -# If pushing without using a named remote those arguments will be equal. -# -# Information about the commits which are being pushed is supplied as lines to -# the standard input in the form: -# -# -# -# This sample shows how to prevent push of commits where the log message starts -# with "WIP" (work in progress). - -remote="$1" -url="$2" - -z40=0000000000000000000000000000000000000000 - -while read local_ref local_sha remote_ref remote_sha -do - if [ "$local_sha" = $z40 ] - then - # Handle delete - : - else - if [ "$remote_sha" = $z40 ] - then - # New branch, examine all commits - range="$local_sha" - else - # Update to existing branch, examine new commits - range="$remote_sha..$local_sha" - fi - - # Check for WIP commit - commit=`git rev-list -n 1 --grep '^WIP' "$range"` - if [ -n "$commit" ] - then - echo >&2 "Found WIP commit in $local_ref, not pushing" - exit 1 - fi - fi -done - -exit 0 diff -Nru abcde-2.7.2/.git/hooks/pre-rebase.sample abcde-2.8.1/.git/hooks/pre-rebase.sample --- abcde-2.7.2/.git/hooks/pre-rebase.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/pre-rebase.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2006, 2008 Junio C Hamano -# -# The "pre-rebase" hook is run just before "git rebase" starts doing -# its job, and can prevent the command from running by exiting with -# non-zero status. -# -# The hook is called with the following parameters: -# -# $1 -- the upstream the series was forked from. -# $2 -- the branch being rebased (or empty when rebasing the current branch). -# -# This sample shows how to prevent topic branches that are already -# merged to 'next' branch from getting rebased, because allowing it -# would result in rebasing already published history. - -publish=next -basebranch="$1" -if test "$#" = 2 -then - topic="refs/heads/$2" -else - topic=`git symbolic-ref HEAD` || - exit 0 ;# we do not interrupt rebasing detached HEAD -fi - -case "$topic" in -refs/heads/??/*) - ;; -*) - exit 0 ;# we do not interrupt others. - ;; -esac - -# Now we are dealing with a topic branch being rebased -# on top of master. Is it OK to rebase it? - -# Does the topic really exist? -git show-ref -q "$topic" || { - echo >&2 "No such branch $topic" - exit 1 -} - -# Is topic fully merged to master? -not_in_master=`git rev-list --pretty=oneline ^master "$topic"` -if test -z "$not_in_master" -then - echo >&2 "$topic is fully merged to master; better remove it." - exit 1 ;# we could allow it, but there is no point. -fi - -# Is topic ever merged to next? If so you should not be rebasing it. -only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` -only_next_2=`git rev-list ^master ${publish} | sort` -if test "$only_next_1" = "$only_next_2" -then - not_in_topic=`git rev-list "^$topic" master` - if test -z "$not_in_topic" - then - echo >&2 "$topic is already up-to-date with master" - exit 1 ;# we could allow it, but there is no point. - else - exit 0 - fi -else - not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` - /usr/bin/perl -e ' - my $topic = $ARGV[0]; - my $msg = "* $topic has commits already merged to public branch:\n"; - my (%not_in_next) = map { - /^([0-9a-f]+) /; - ($1 => 1); - } split(/\n/, $ARGV[1]); - for my $elem (map { - /^([0-9a-f]+) (.*)$/; - [$1 => $2]; - } split(/\n/, $ARGV[2])) { - if (!exists $not_in_next{$elem->[0]}) { - if ($msg) { - print STDERR $msg; - undef $msg; - } - print STDERR " $elem->[1]\n"; - } - } - ' "$topic" "$not_in_next" "$not_in_master" - exit 1 -fi - -<<\DOC_END - -This sample hook safeguards topic branches that have been -published from being rewound. - -The workflow assumed here is: - - * Once a topic branch forks from "master", "master" is never - merged into it again (either directly or indirectly). - - * Once a topic branch is fully cooked and merged into "master", - it is deleted. If you need to build on top of it to correct - earlier mistakes, a new topic branch is created by forking at - the tip of the "master". This is not strictly necessary, but - it makes it easier to keep your history simple. - - * Whenever you need to test or publish your changes to topic - branches, merge them into "next" branch. - -The script, being an example, hardcodes the publish branch name -to be "next", but it is trivial to make it configurable via -$GIT_DIR/config mechanism. - -With this workflow, you would want to know: - -(1) ... if a topic branch has ever been merged to "next". Young - topic branches can have stupid mistakes you would rather - clean up before publishing, and things that have not been - merged into other branches can be easily rebased without - affecting other people. But once it is published, you would - not want to rewind it. - -(2) ... if a topic branch has been fully merged to "master". - Then you can delete it. More importantly, you should not - build on top of it -- other people may already want to - change things related to the topic as patches against your - "master", so if you need further changes, it is better to - fork the topic (perhaps with the same name) afresh from the - tip of "master". - -Let's look at this example: - - o---o---o---o---o---o---o---o---o---o "next" - / / / / - / a---a---b A / / - / / / / - / / c---c---c---c B / - / / / \ / - / / / b---b C \ / - / / / / \ / - ---o---o---o---o---o---o---o---o---o---o---o "master" - - -A, B and C are topic branches. - - * A has one fix since it was merged up to "next". - - * B has finished. It has been fully merged up to "master" and "next", - and is ready to be deleted. - - * C has not merged to "next" at all. - -We would want to allow C to be rebased, refuse A, and encourage -B to be deleted. - -To compute (1): - - git rev-list ^master ^topic next - git rev-list ^master next - - if these match, topic has not merged in next at all. - -To compute (2): - - git rev-list master..topic - - if this is empty, it is fully merged to "master". - -DOC_END diff -Nru abcde-2.7.2/.git/hooks/update.sample abcde-2.8.1/.git/hooks/update.sample --- abcde-2.7.2/.git/hooks/update.sample 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/hooks/update.sample 1970-01-01 00:00:00.000000000 +0000 @@ -1,128 +0,0 @@ -#!/bin/sh -# -# An example hook script to block unannotated tags from entering. -# Called by "git receive-pack" with arguments: refname sha1-old sha1-new -# -# To enable this hook, rename this file to "update". -# -# Config -# ------ -# hooks.allowunannotated -# This boolean sets whether unannotated tags will be allowed into the -# repository. By default they won't be. -# hooks.allowdeletetag -# This boolean sets whether deleting tags will be allowed in the -# repository. By default they won't be. -# hooks.allowmodifytag -# This boolean sets whether a tag may be modified after creation. By default -# it won't be. -# hooks.allowdeletebranch -# This boolean sets whether deleting branches will be allowed in the -# repository. By default they won't be. -# hooks.denycreatebranch -# This boolean sets whether remotely creating branches will be denied -# in the repository. By default this is allowed. -# - -# --- Command line -refname="$1" -oldrev="$2" -newrev="$3" - -# --- Safety check -if [ -z "$GIT_DIR" ]; then - echo "Don't run this script from the command line." >&2 - echo " (if you want, you could supply GIT_DIR then run" >&2 - echo " $0 )" >&2 - exit 1 -fi - -if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then - echo "usage: $0 " >&2 - exit 1 -fi - -# --- Config -allowunannotated=$(git config --bool hooks.allowunannotated) -allowdeletebranch=$(git config --bool hooks.allowdeletebranch) -denycreatebranch=$(git config --bool hooks.denycreatebranch) -allowdeletetag=$(git config --bool hooks.allowdeletetag) -allowmodifytag=$(git config --bool hooks.allowmodifytag) - -# check for no description -projectdesc=$(sed -e '1q' "$GIT_DIR/description") -case "$projectdesc" in -"Unnamed repository"* | "") - echo "*** Project description file hasn't been set" >&2 - exit 1 - ;; -esac - -# --- Check types -# if $newrev is 0000...0000, it's a commit to delete a ref. -zero="0000000000000000000000000000000000000000" -if [ "$newrev" = "$zero" ]; then - newrev_type=delete -else - newrev_type=$(git cat-file -t $newrev) -fi - -case "$refname","$newrev_type" in - refs/tags/*,commit) - # un-annotated tag - short_refname=${refname##refs/tags/} - if [ "$allowunannotated" != "true" ]; then - echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 - echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 - exit 1 - fi - ;; - refs/tags/*,delete) - # delete tag - if [ "$allowdeletetag" != "true" ]; then - echo "*** Deleting a tag is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/tags/*,tag) - # annotated tag - if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 - then - echo "*** Tag '$refname' already exists." >&2 - echo "*** Modifying a tag is not allowed in this repository." >&2 - exit 1 - fi - ;; - refs/heads/*,commit) - # branch - if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then - echo "*** Creating a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/heads/*,delete) - # delete branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/remotes/*,commit) - # tracking branch - ;; - refs/remotes/*,delete) - # delete tracking branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a tracking branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - *) - # Anything else (is there anything else?) - echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 - exit 1 - ;; -esac - -# --- Finished -exit 0 Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/index and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/index differ diff -Nru abcde-2.7.2/.git/info/exclude abcde-2.8.1/.git/info/exclude --- abcde-2.7.2/.git/info/exclude 2016-04-12 13:29:53.000000000 +0000 +++ abcde-2.8.1/.git/info/exclude 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -# git ls-files --others --exclude-from=.git/info/exclude -# Lines that start with '#' are comments. -# For a project mostly in C, the following would be a good set of -# exclude patterns (uncomment them if you want to use them): -# *.[oa] -# *~ diff -Nru abcde-2.7.2/.git/logs/HEAD abcde-2.8.1/.git/logs/HEAD --- abcde-2.7.2/.git/logs/HEAD 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/logs/HEAD 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0000000000000000000000000000000000000000 54096f343aa590a1a712aa4770df2217af3196a7 doug 1460467795 -0400 clone: from https://git.einval.com/git/abcde.git diff -Nru abcde-2.7.2/.git/logs/refs/heads/master abcde-2.8.1/.git/logs/refs/heads/master --- abcde-2.7.2/.git/logs/refs/heads/master 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/logs/refs/heads/master 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0000000000000000000000000000000000000000 54096f343aa590a1a712aa4770df2217af3196a7 doug 1460467795 -0400 clone: from https://git.einval.com/git/abcde.git diff -Nru abcde-2.7.2/.git/logs/refs/remotes/origin/HEAD abcde-2.8.1/.git/logs/refs/remotes/origin/HEAD --- abcde-2.7.2/.git/logs/refs/remotes/origin/HEAD 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/logs/refs/remotes/origin/HEAD 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -0000000000000000000000000000000000000000 54096f343aa590a1a712aa4770df2217af3196a7 doug 1460467795 -0400 clone: from https://git.einval.com/git/abcde.git Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/06/901a05dec030155d35efbd8fa9e8bb920e44ae and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/06/901a05dec030155d35efbd8fa9e8bb920e44ae differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/18/488c76de71aa2cf7673cd65e6936d71185b89a and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/18/488c76de71aa2cf7673cd65e6936d71185b89a differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/18/93b83839f861c0f8a134b95e41225a275896f3 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/18/93b83839f861c0f8a134b95e41225a275896f3 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/31/46c1729abd125f741682f155d90a24bfefaaf1 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/31/46c1729abd125f741682f155d90a24bfefaaf1 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/35/92b129364934091b719d2eb02b836496adcdd4 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/35/92b129364934091b719d2eb02b836496adcdd4 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/3d/0d6098f55b726c36d9180862629191d8e5a6ed and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/3d/0d6098f55b726c36d9180862629191d8e5a6ed differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/41/a4c8a288809e9746a8926d46cb5c92b69d14c6 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/41/a4c8a288809e9746a8926d46cb5c92b69d14c6 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/54/096f343aa590a1a712aa4770df2217af3196a7 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/54/096f343aa590a1a712aa4770df2217af3196a7 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/56/5503fd5c3e117ac514c9f621a26a6eb2fae4f5 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/56/5503fd5c3e117ac514c9f621a26a6eb2fae4f5 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/5d/e98986e6cc9fd0ed3d11f1436556d1d5f5fc01 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/5d/e98986e6cc9fd0ed3d11f1436556d1d5f5fc01 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/66/fd55694475f308d5181c76059b44f505734d32 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/66/fd55694475f308d5181c76059b44f505734d32 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/6d/096c2f9cb48a7ba9bf41e8934705efa653dd91 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/6d/096c2f9cb48a7ba9bf41e8934705efa653dd91 differ diff -Nru abcde-2.7.2/.git/objects/73/723ebbf02c7cb5e1d31673ef70391cbf65e659 abcde-2.8.1/.git/objects/73/723ebbf02c7cb5e1d31673ef70391cbf65e659 --- abcde-2.7.2/.git/objects/73/723ebbf02c7cb5e1d31673ef70391cbf65e659 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/objects/73/723ebbf02c7cb5e1d31673ef70391cbf65e659 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -xM10UhqAx8;G|VHt[ĩD/40,s4Ku)죥X0-9%i{b ooH,)㹘7CZY ^y^%w_;T \ No newline at end of file Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/74/32ea86a693eaf851c445ebdd9d9b4b2dddf052 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/74/32ea86a693eaf851c445ebdd9d9b4b2dddf052 differ diff -Nru abcde-2.7.2/.git/objects/79/1e48e6108311931489e562cb2f4f59314f5136 abcde-2.8.1/.git/objects/79/1e48e6108311931489e562cb2f4f59314f5136 --- abcde-2.7.2/.git/objects/79/1e48e6108311931489e562cb2f4f59314f5136 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/objects/79/1e48e6108311931489e562cb2f4f59314f5136 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -xuKk@u~1) -y*tc (nKLLȌ{G6f39=j˰X4cdB"Iz ڙ'joʖ -je`qF g\w:e\NV̓m;!D+|!z|0}Gt^!74d=r|Q"Qc^I;+PB.i oС钽ڽ^X!u \ No newline at end of file Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/7e/d6ff82de6bcc2a78243fc9c54d3ef5ac14da69 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/7e/d6ff82de6bcc2a78243fc9c54d3ef5ac14da69 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/7e/e34d82c704814f29a72cb053f941ec56715fb4 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/7e/e34d82c704814f29a72cb053f941ec56715fb4 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/86/9d940d8d10cdbaa8d8efdac13b77a01860e0fa and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/86/9d940d8d10cdbaa8d8efdac13b77a01860e0fa differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/8b/cc8aeded0e38456ea3e1a1ef6d388da0903f34 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/8b/cc8aeded0e38456ea3e1a1ef6d388da0903f34 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/ab/57f8894e9c921a3a764bd532ef30382ff6fd54 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/ab/57f8894e9c921a3a764bd532ef30382ff6fd54 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/af/3d091416bf32f7ef169e15f0d32c7cf3398577 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/af/3d091416bf32f7ef169e15f0d32c7cf3398577 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/b1/0fb056df73969e25b5020d9345ffb3bd69f72f and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/b1/0fb056df73969e25b5020d9345ffb3bd69f72f differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/bc/fcd8459cbdec2e7c4cb452fb4b932d1134e094 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/bc/fcd8459cbdec2e7c4cb452fb4b932d1134e094 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/be/0b3b1b1b8514f59a2c9ffbca2e68da973f4886 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/be/0b3b1b1b8514f59a2c9ffbca2e68da973f4886 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/bf/3a361338921814a8d27011d540ed2d16d6a124 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/bf/3a361338921814a8d27011d540ed2d16d6a124 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/cd/a18796e93e1ced6a4528eeedfc12f155b1092f and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/cd/a18796e93e1ced6a4528eeedfc12f155b1092f differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/d0/ac4bdb09b6e0d3d2744100a7d7353f9a541a82 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/d0/ac4bdb09b6e0d3d2744100a7d7353f9a541a82 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/d1/59169d1050894d3ea3b98e1c965c4058208fe1 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/d1/59169d1050894d3ea3b98e1c965c4058208fe1 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/dd/5b4da9c740d104909570de425bd8b8e60d6e18 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/dd/5b4da9c740d104909570de425bd8b8e60d6e18 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/dd/bbf41c68155c452220db9d734daf41f1989225 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/dd/bbf41c68155c452220db9d734daf41f1989225 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/ed/a02e1e849e81a61cd827a3b49c7cd66a5bc5dd and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/ed/a02e1e849e81a61cd827a3b49c7cd66a5bc5dd differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/f6/dea6ce5e53877d163aa8643008d20fcc172530 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/f6/dea6ce5e53877d163aa8643008d20fcc172530 differ Binary files /tmp/tmpd12Gpr/CQAh2AKHsM/abcde-2.7.2/.git/objects/fc/565950fa76740cce7b4beba3c8f0ef9fc047b5 and /tmp/tmpd12Gpr/MZxTrKa6ME/abcde-2.8.1/.git/objects/fc/565950fa76740cce7b4beba3c8f0ef9fc047b5 differ diff -Nru abcde-2.7.2/.git/packed-refs abcde-2.8.1/.git/packed-refs --- abcde-2.7.2/.git/packed-refs 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/packed-refs 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -# pack-refs with: peeled fully-peeled -54096f343aa590a1a712aa4770df2217af3196a7 refs/remotes/origin/master diff -Nru abcde-2.7.2/.git/refs/heads/master abcde-2.8.1/.git/refs/heads/master --- abcde-2.7.2/.git/refs/heads/master 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/refs/heads/master 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -54096f343aa590a1a712aa4770df2217af3196a7 diff -Nru abcde-2.7.2/.git/refs/remotes/origin/HEAD abcde-2.8.1/.git/refs/remotes/origin/HEAD --- abcde-2.7.2/.git/refs/remotes/origin/HEAD 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/refs/remotes/origin/HEAD 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -ref: refs/remotes/origin/master diff -Nru abcde-2.7.2/.git/refs/tags/v2.7.2 abcde-2.8.1/.git/refs/tags/v2.7.2 --- abcde-2.7.2/.git/refs/tags/v2.7.2 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/refs/tags/v2.7.2 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -fc565950fa76740cce7b4beba3c8f0ef9fc047b5 diff -Nru abcde-2.7.2/.git/shallow abcde-2.8.1/.git/shallow --- abcde-2.7.2/.git/shallow 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/.git/shallow 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -54096f343aa590a1a712aa4770df2217af3196a7 diff -Nru abcde-2.7.2/Makefile abcde-2.8.1/Makefile --- abcde-2.7.2/Makefile 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/Makefile 2017-01-18 13:56:14.000000000 +0000 @@ -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 -Nru abcde-2.7.2/README abcde-2.8.1/README --- abcde-2.7.2/README 2016-04-12 13:29:55.000000000 +0000 +++ abcde-2.8.1/README 2017-01-18 13:56:14.000000000 +0000 @@ -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-users@lists.einval.com. Visit +Abcde's mailing list is abcde-users@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 -Colin Tuckley Steve McIntyre <93sam@debian.org> +Andrew Strong abcde was originally created by Robert Woodcock