diff --git a/automaint b/automaint index 6cc9d0f..b5f0509 100755 --- a/automaint +++ b/automaint @@ -1,6 +1,6 @@ #!/bin/bash # automaint -- batch automatic maintainance tool of the autodist suite -# Copyright (C) 2013-2020 by Silvan Calarco +# Copyright (C) 2013-2021 by Silvan Calarco # # Released under the terms of the GNU GPL release 3 license # @@ -13,7 +13,7 @@ me=(${0##*/} $VERSION "Sat Mar 20 2011") function usage() { echo "\ ${me[0]} ${me[1]} -"$"Copyright (C) 2013 Silvan Calarco "" +"$"Copyright (C) 2013-2021 Silvan Calarco "" "$"Released under the terms of the GNU GPL v3 license" echo " "$"Batch automatic maintainance tool of the autodist suite."" @@ -178,14 +178,17 @@ for p in ${allpkgs}; do [ "$pkgcontinue" ] && continue for a in `seq 1 ${#AUTODIST_ARCHS[*]}`; do + # Get pkg info from port repository get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$PORT_REPOSITORY ${AUTODIST_ARCHS[$a-1]} $p + # If not found get info from main repository if [ ! "$pkg_name" ]; then get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$DEST_REPOSITORY ${AUTODIST_ARCHS[$a-1]} $p fi if [ "$pkg_name" ]; then - spkg_version=$pkg_version - spkg_release=$pkg_release + old_pkg_version=$pkg_version + old_pkg_release=$pkg_release + old_pkg_repository=$pkg_repository break fi done @@ -195,12 +198,12 @@ for p in ${allpkgs}; do continue } - [ "$VERBOSE" ] && echo "$p: old release in $DEST_REPOSITORY is $spkg_version-$spkg_release" + [ "$VERBOSE" ] && echo "$p: old release in $DEST_REPOSITORY is $old_pkg_version-$old_pkg_release" for o in ${needportlist[*]}; do [ "$p" = "$o" ] && { needsport=1; break; } done - [ "$needsport" -a ! "$PORT_REPOSITORY" ] && continue + #[ "$needsport" -a ! "$PORT_REPOSITORY" ] && continue for a in `seq 1 ${#AUTODIST_ARCHS[*]}`; do get_pkg_buildinfo $LOCAL_REPS_BASE_DIR/distromatic/$SOURCE_REPOSITORY ${AUTODIST_ARCHS[$a-1]} $p @@ -214,8 +217,8 @@ for p in ${allpkgs}; do [ "$VERBOSE" ] && echo "$p: new release in $SOURCE_REPOSITORY is $pkg_version-$pkg_release" - if [ "$pkg_version" = "$spkg_version" ]; then - if [ "$pkg_release" = "$spkg_release" ]; then + if [ "$pkg_version" = "$old_pkg_version" ]; then + if [ "$pkg_release" = "$old_pkg_release" ]; then echo "$p: same release as upstream; skipping." continue fi @@ -223,7 +226,7 @@ for p in ${allpkgs}; do else OIFS=$IFS IFS='.' - read -ra SVER <<< "$spkg_version" + read -ra SVER <<< "$old_pkg_version" read -ra VER <<< "$pkg_version" IFS=$OIFS dotdiff=`expr ${#VER[*]} - ${#SVER[*]}` @@ -240,24 +243,26 @@ for p in ${allpkgs}; do elif [ $dotdiff -lt 0 ]; then [ "$VERBOSE" ] && echo "$p: newer version has less dots than older ${#VER[*]} < ${#SVER[*]}; skipping." continue - elif [ "$i" != "${#SVER[*]}" ]; then - # e.g. SVER=0.11 -> VER=1.0 - [ "$VERBOSE" ] && echo "$p: not a minor version update at position $i/${#SVER[*]}: ${SVER[i-1]} != ${VER[i-1]}; skipping." - continue + #elif [ "$i" != "${#SVER[*]}" ]; then + # # e.g. SVER=0.11 -> VER=1.0 + # [ "$VERBOSE" ] && echo "$p: not a minor version update at position $i/${#SVER[*]}: ${SVER[i-1]} != ${VER[i-1]}; skipping." + # continue elif [ "${SVER[i-1]}" = "${VER[i-1]}" -a $dotdiff -ge 1 ]; then # e.g. SVER=0.11.2 -> VER=0.11.2.3 update_type="minor" - else - if [[ 64#${VER[i-1]} -gt 64#89 && 64#${SVER[i-1]} -lt 64#80 ]]; then - [ "$VERBOSE" ] && echo "$p: dubious beta upgrade from ${SVER[i-1]} to ${VER[i-1]}; skipping." - continue - fi - echo "$p: UNEXPECTED CASE - CHECK CODE; skipping." + elif [[ 64#${VER[i-1]} -gt 64#89 && 64#${SVER[i-1]} -lt 64#80 ]]; then + [ "$VERBOSE" ] && echo "$p: dubious beta upgrade from ${SVER[i-1]} to ${VER[i-1]}; skipping." continue + elif [[ 64#${VER[i-1]} -gt 64#${SVER[i-1]} && $i -gt 1 ]]; then + # e.g. SVER=1.0.2 -> VER=1.0.3.dev1234 + update_type="minor" + #else + # [ "$VERBOSE" ] && echo "$p: major version update ${SVER[i-1]} vs ${VER[i-1]}; skipping" + # continue fi fi - if [ "$needsport" -o "$pkg_repository" == "$PORT_REPOSITORY" ]; then - echo "$p: importing from $SOURCE_REPOSITORY to $PORT_REPOSITORY ($pkg_version-$pkg_release -> $spkg_version-$spkg_release)" + if [ "$old_pkg_repository" == "$PORT_REPOSITORY" -o "$old_pkg_repository" == "$DEST_REPOSITORY" ]; then + echo "$p: importing from $SOURCE_REPOSITORY to $PORT_REPOSITORY ($pkg_version-$pkg_release -> $old_pkg_version-$old_pkg_release)" if [ ! "$TESTMODE" ]; then autodist-repository import $SOURCE_REPOSITORY $p -d $PORT_REPOSITORY -y >/dev/null if [ $? -eq 0 -a "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then @@ -265,17 +270,17 @@ for p in ${allpkgs}; do MESSAGE=`cgi_encodevar \"imported $p from $SOURCE_REPOSITORY to $PORT_REPOSITORY for porting\"`" >/dev/null fi fi - elif [ "$pkg_repository" == "$DEST_REPOSITORY" ]; then - echo "$p: importing from $SOURCE_REPOSITORY to $DEST_REPOSITORY ($pkg_version-$pkg_release -> $spkg_version-$spkg_release; update type: $update_type)" - if [ ! "$TESTMODE" ]; then - autodist-repository import $SOURCE_REPOSITORY $p -d $DEST_REPOSITORY -y >/dev/null - if [ $? -eq 0 -a "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then - curl -s "$WEBBUILD_URL?REQUEST=message&USER=$WEBBUILD_USER&SECRET=${WEBBUILD_SECRET}&USER_EMAIL=$WEBBUILD_EMAIL&\ -MESSAGE=`cgi_encodevar \"imported $p from $SOURCE_REPOSITORY to $DEST_REPOSITORY\"`" >/dev/null - fi - fi - else - echo "$p: unexpected upstream package repository; ignoring." + #elif [ "$old_pkg_repository" == "$DEST_REPOSITORY" ]; then + # echo "$p: importing from $SOURCE_REPOSITORY to $DEST_REPOSITORY ($pkg_version-$pkg_release -> $old_pkg_version-$old_pkg_release; update type: $update_type)" + # if [ ! "$TESTMODE" ]; then + # autodist-repository import $SOURCE_REPOSITORY $p -d $DEST_REPOSITORY -y >/dev/null + # if [ $? -eq 0 -a "$WEBBUILD_URL" -a "$WEBBUILD_USER" ]; then + # curl -s "$WEBBUILD_URL?REQUEST=message&USER=$WEBBUILD_USER&SECRET=${WEBBUILD_SECRET}&USER_EMAIL=$WEBBUILD_EMAIL&\ +#MESSAGE=`cgi_encodevar \"imported $p from $SOURCE_REPOSITORY to $DEST_REPOSITORY\"`" >/dev/null +# fi +# fi +# else +# echo "$p: upstream package repository $pkg_repository does not match with $DEST_REPOSITORY; skipping." fi done