OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /v/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-tools                    Date:   02-Aug-2005 20:29:10
  Branch: HEAD                             Handle: 2005080219290900

  Modified files:
    openpkg-tools/cmd       dev.sh

  Log:
    new feature for "openpkg dev build" now automatically sets release
    header once a locally changed CVS file is detected

  Summary:
    Revision    Changes     Path
    1.42        +90 -61     openpkg-tools/cmd/dev.sh
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-tools/cmd/dev.sh
  ============================================================================
  $ cvs diff -u -r1.41 -r1.42 dev.sh
  --- openpkg-tools/cmd/dev.sh  1 Aug 2005 19:23:29 -0000       1.41
  +++ openpkg-tools/cmd/dev.sh  2 Aug 2005 18:29:09 -0000       1.42
  @@ -580,6 +580,71 @@
       HOME=${OPENPKG_WORK} command cvs ${1+"$@"} | $cvs_colorize
   }
   
  +#   shared code between "build" and "release"
  +_autorel () {
  +    echo "++ determine old version (if any)"
  +    tmpfile="${OPENPKG_TEMP}/${name}${GUID}"
  +    cvs_stat=`builtin cd ${OPENPKG_WORK}; cvs -d ${OPENPKG_REPO} stat 
$S/${name}/${name}.spec 2>/dev/null | grep 'Repository revision:'`
  +    cvs_rev=`echo "${cvs_stat}" | ${AWK} '/Repository revision:/ { print $3; 
}'`
  +    cvs_dead=`echo "${cvs_stat}" | grep '/Attic/'`
  +    if [ ".${cvs_dead}" != . ]; then
  +        cvs_rev="No"
  +    fi
  +    if [ ".${cvs_rev}" != .No ]; then
  +        cvs -d ${OPENPKG_REPO} co -p -r${cvs_rev} 
"${OPENPKG_RMOD}/${name}/${name}.spec" >${tmpfile} 2>/dev/null
  +        rpm_version_old=`rpmE -q --qf "%{VERSION}" --specfile ${tmpfile} 
2>/dev/null`
  +        rpm_release_old=`rpmE -q --qf "%{RELEASE}" --specfile ${tmpfile} 
2>/dev/null`
  +        command rm -f ${tmpfile}
  +        [ ".${rpm_version_old}" = . ] && die "cannot determine old version 
number"
  +        [ ".${rpm_release_old}" = . ] && die "cannot determine old release 
number"
  +    fi
  +
  +    echo "++ determine new version"
  +    rpm_version_new=`rpmE -q --qf "%{VERSION}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  +    rpm_name=`rpmE -q --qf "%{NAME}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  +    rpm_summary=`rpmE -q --qf "%{SUMMARY}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  +    [ ".${rpm_version_new}" = . ] && die "cannot determine new version 
number"
  +
  +    echo "++ determine branch and related release number and upload suffix"
  +    rpm_release_new=`rpmE -q --qf "%{RELEASE}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  +    [ ".${rpm_release_new}" = . ] && die "cannot determine new release 
number"
  +
  +    if [ ".$B" = .HEAD ]; then
  +        BRANCH="HEAD"
  +    else
  +        BRANCH=`echo "$B" | sed -e 's;^OPENPKG_;;' -e 's;_STABLE$;;' -e 
's;SOLID$;;' -e 's;^HEAD$;;' -e 's;_;;g'`
  +        OPMAJORV=`echo ${BRANCH} | cut -c 1`
  +        OPMINORV=`echo ${BRANCH} | cut -c 2`
  +        if [ ".${OPMINORV}" != . ]; then
  +            BRANCH="SOLID"
  +        elif [ ".${OPMAJORV}" != . ]; then
  +            BRANCH="STABLE"
  +        else
  +            BRANCH=""
  +        fi
  +    fi
  +    rpm_release_req=""
  +    upload=""
  +    if [ ".${BRANCH}" = .HEAD ]; then
  +        rpm_release_req=`date '+%Y%m%d'`
  +        upload="current/SRC/"
  +    fi
  +    if [ ".${BRANCH}" = .STABLE ]; then
  +        rpm_release_req="${OPMAJORV}.`date '+%Y%m%d'`"
  +        upload="stable/${OPMAJORV}/SRC/"
  +    fi
  +    if [ ".${BRANCH}" = .SOLID ]; then
  +        update=`echo ${rpm_release_old} | sed -e 's;^.*\.;;'`
  +        if [ ".${update}" = . ]; then
  +            update=0
  +        else
  +            update=`expr ${update} + 1`
  +        fi
  +        rpm_release_req="${OPMAJORV}.${OPMINORV}.${update}"
  +        upload="release/${OPMAJORV}.${OPMINORV}/UPD/00UPLOAD/"
  +    fi
  +}
  +
   setup () {
       #   honor optional parameters [[[spec]ctag]exec]; use "" to specify a 
empty parameter and use it's default
       [ ".$1" != . ] && OPENPKG_SPEC="$1"
  @@ -1555,67 +1620,7 @@
               [ -f "${OPENPKG_WORK}/pkg/src/${rpmfile}.nosrc.rpm" ] && 
ext="nosrc.rpm"
               [ ".$ext" = . ] && die 
"${OPENPKG_WORK}/pkg/src/${rpmfile}.[no]src.rpm not found"
   
  -            echo "++ determine old version (if any)"
  -            tmpfile="${OPENPKG_TEMP}/${name}${GUID}"
  -            cvs_stat=`builtin cd ${OPENPKG_WORK}; cvs -d ${OPENPKG_REPO} 
stat $S/${name}/${name}.spec 2>/dev/null | grep 'Repository revision:'`
  -            cvs_rev=`echo "${cvs_stat}" | ${AWK} '/Repository revision:/ { 
print $3; }'`
  -            cvs_dead=`echo "${cvs_stat}" | grep '/Attic/'`
  -            if [ ".${cvs_dead}" != . ]; then
  -                cvs_rev="No"
  -            fi
  -            if [ ".${cvs_rev}" != .No ]; then
  -                cvs -d ${OPENPKG_REPO} co -p -r${cvs_rev} 
"${OPENPKG_RMOD}/${name}/${name}.spec" >${tmpfile} 2>/dev/null
  -                rpm_version_old=`rpmE -q --qf "%{VERSION}" --specfile 
${tmpfile} 2>/dev/null`
  -                rpm_release_old=`rpmE -q --qf "%{RELEASE}" --specfile 
${tmpfile} 2>/dev/null`
  -                command rm -f ${tmpfile}
  -                [ ".${rpm_version_old}" = . ] && die "cannot determine old 
version number"
  -                [ ".${rpm_release_old}" = . ] && die "cannot determine old 
release number"
  -            fi
  -
  -            echo "++ determine new version"
  -            rpm_version_new=`rpmE -q --qf "%{VERSION}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  -            rpm_release_new=`rpmE -q --qf "%{RELEASE}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  -            rpm_name=`rpmE -q --qf "%{NAME}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  -            rpm_summary=`rpmE -q --qf "%{SUMMARY}" --specfile 
${OPENPKG_WORK}/$S/${name}/${name}.spec`
  -            [ ".${rpm_version_new}" = . ] && die "cannot determine new 
version number"
  -            [ ".${rpm_release_new}" = . ] && die "cannot determine new 
release number"
  -
  -            echo "++ determine branch and related release number and upload 
suffix"
  -            if [ ".$B" = .HEAD ]; then
  -                BRANCH="HEAD"
  -            else
  -                BRANCH=`echo "$B" | sed -e 's;^OPENPKG_;;' -e 's;_STABLE$;;' 
-e 's;SOLID$;;' -e 's;^HEAD$;;' -e 's;_;;g'`
  -                OPMAJORV=`echo ${BRANCH} | cut -c 1`
  -                OPMINORV=`echo ${BRANCH} | cut -c 2`
  -                if [ ".${OPMINORV}" != . ]; then
  -                    BRANCH="SOLID"
  -                elif [ ".${OPMAJORV}" != . ]; then
  -                    BRANCH="STABLE"
  -                else
  -                    BRANCH=""
  -                fi
  -            fi
  -            rpm_release_req=""
  -            upload=""
  -            if [ ".${BRANCH}" = .HEAD ]; then
  -                rpm_release_req=`date '+%Y%m%d'`
  -                upload="current/SRC/"
  -            fi
  -            if [ ".${BRANCH}" = .STABLE ]; then
  -                rpm_release_req="${OPMAJORV}.`date '+%Y%m%d'`"
  -                #upload="stable/${OPMAJORV}/SRC/"
  -                upload="stable/SRC/"
  -            fi
  -            if [ ".${BRANCH}" = .SOLID ]; then
  -                update=`echo ${rpm_release_old} | sed -e 's;^.*\.;;'`
  -                if [ ".${update}" = . ]; then
  -                    update=0
  -                else
  -                    update=`expr ${update} + 1`
  -                fi
  -                rpm_release_req="${OPMAJORV}.${OPMINORV}.${update}"
  -                upload="release/${OPMAJORV}.${OPMINORV}/UPD/00UPLOAD/"
  -            fi
  +            _autorel
   
               if [ ".${OPENPKG_REPO}" = "[EMAIL PROTECTED]:/v/openpkg/cvs" ]; 
then
                   echo "++ checking release number"
  @@ -2063,6 +2068,30 @@
               warn "${OPENPKG_WORK}/$S/${name}/${name}.spec not found"
               continue
           fi
  +
  +        if [ $force -eq 0 -a ".${OPENPKG_REPO}" = "[EMAIL 
PROTECTED]:/v/openpkg/cvs" ]; then
  +            echo "++ checking whether release header was already modified"
  +            (builtin cd ${OPENPKG_WORK}/$S/${name} && command cvs 2>&1 diff 
-u0 ${name}.spec) \
  +            | ${EGREP} '^[+-]Release: +' | wc -l | ${EGREP} '^ *2 *' 
>/dev/null
  +            if [ $? -ne 0 ]; then
  +                echo "++ checking for local added, modified or removed files"
  +                (builtin cd ${OPENPKG_WORK}/$S/${name} && command cvs 2>&1 
stat) \
  +                | ${EGREP} 'Status: *Locally' >/dev/null
  +                if [ $? -eq 0 ]; then
  +                    _autorel
  +                    if [ ".$rpm_release_req" = . ]; then
  +                        die "cannot predict required release number for 
branch $B"
  +                    fi
  +                    if [ ".$rpm_release_new" != ".$rpm_release_req" ]; then
  +                        echo "++ modifying release number"
  +                        (   builtin cd ${OPENPKG_WORK}/$S/${name} \
  +                         && sed -e "s;^\(Release:  
*\).*$;\1$rpm_release_req;" <${name}.spec >${name}.spec.n; \
  +                         mv ${name}.spec.n ${name}.spec)
  +                    fi
  +                fi
  +            fi
  +        fi
  +
           package=`rpmE -q --qf "%{NAME}-%{VERSION}-%{RELEASE}" \
                    --specfile ${OPENPKG_WORK}/$S/${name}/${name}.spec`
           template=`rpmE --eval '%{_rpmfilename}'`
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     openpkg-cvs@openpkg.org

Reply via email to