changeset 760:2537f30c2397

Improve version detection for MANIFEST file. Still doesn't detect version for git archive output because git hasn't got any equivalent of mercurial's .hg_archive.txt file.
author Rob Landley <rob@landley.net>
date Tue, 23 Jun 2009 23:18:19 -0500
parents 79baef2e88cc
children 93149f07231f
files sources/functions.sh
diffstat 1 files changed, 34 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/sources/functions.sh	Tue Jun 23 19:39:51 2009 -0500
+++ b/sources/functions.sh	Tue Jun 23 23:18:19 2009 -0500
@@ -232,8 +232,10 @@
       echo "Confirmed $FILENAME"
     fi
 
+    # Preemptively extract source packages?
+
     [ -z "$EXTRACT_ALL" ] && return 0
-    PACKAGE="$(basename "$FILENAME")" extract "$FILENAME"
+    ARCH="" setupfor "$(basename "$FILENAME")"
     return $?
   fi
 
@@ -374,6 +376,9 @@
   cd "${SRCDIR}" &&
   extract "${PACKAGE}-"*.tar* || exit 1
 
+  # If all we want to do is extract source, bail out now.
+  [ -z "$ARCH" ] && return 0
+
   # Set CURSRC
   CURSRC="$PACKAGE"
   if [ ! -z "$3" ]
@@ -443,17 +448,36 @@
 
 function identify_release()
 {
-  if [ -d build/sources/alt-$1/.svn ]
-  then
-    echo subversion rev \
-      $(svn info build/sources/alt-uClibc | sed -n "s/^Revision: //p")
-  elif [ -d build/sources/alt-$1/.hg ]
+  if unstable "$1"
   then
-    echo mercurial rev \
-      $(hg tip | sed -n 's/changeset: *\([0-9]*\).*/\1/p')
-  else
-    echo release version $(get_download_version $1)
+    # Need to extract unstable packages to determine source control version.
+
+    ARCH="" setupfor "$1" >&2
+    DIR="${BUILD}/sources/alt-$1"
+
+    if [ -d "$DIR/.svn" ]
+    then
+      ( cd "$DIR"; echo subversion rev \
+        $(svn info | sed -n "s/^Revision: //p")
+      )
+      return 0
+    elif [ -d "$DIR/.hg" ]
+    then
+      ( echo mercurial rev \
+          $(hg tip | sed -n 's/changeset: *\([0-9]*\).*/\1/p')
+      )
+      return 0
+    elif [ -d "$DIR/.git" ]
+    then
+      ( echo git rev \
+          $(git show master --pretty=format:%H |
+            sed -n '1s/^\(............\).*/\1/p')
+      )
+      return 0
+    fi
   fi
+
+  echo release version $(get_download_version $1)
 }
 
 # Create a README identifying package versions in current build.