[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Updates for XEN_LINUX_SOURCE=hg-clone.



# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
# Date 1180619469 -3600
# Node ID f6ff5d42164fb0b2257da5accd1352891629a96c
# Parent  e2ba95ed2b091333984e1cc7283255323db9058f
Updates for XEN_LINUX_SOURCE=hg-clone.

By default search for mercurial repositories in $(LINUX_SRC_PATH)
followed by a location derived from the current Xen repository's
default parent. e.g. A clone of
http://xenbits.xensource.com/xen-unstable.hg will derive
http://xenbits.xensource.com/linux-2.6.18-xen.hg. A specific
repository can be specified by giving XEN_LINUX_HGREPO=<URL or path>
on the make command line.

Add capability to put XEN_LINUX_UPDATE=y on the make command line to
update the Linux repository. Disabled by default since we don't want
to touch a developers repository without permission.

Dropped XEN_LINUX_HGUPDATES since it was unecessary and confusing.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
---
 buildconfigs/mk.linux-2.6-xen  |    4 +++
 buildconfigs/select-repository |   49 +++++++++++++++++++++++++++++++++++++++++
 buildconfigs/src.hg-clone      |   49 +++++++++++++++++++++++++----------------
 buildconfigs/src.sparse        |    2 -
 buildconfigs/src.tarball       |    2 -
 5 files changed, 84 insertions(+), 22 deletions(-)

diff -r e2ba95ed2b09 -r f6ff5d42164f buildconfigs/mk.linux-2.6-xen
--- a/buildconfigs/mk.linux-2.6-xen     Thu May 31 10:58:22 2007 +0100
+++ b/buildconfigs/mk.linux-2.6-xen     Thu May 31 14:51:09 2007 +0100
@@ -2,6 +2,10 @@ LINUX_VER    ?= 2.6.18
 LINUX_VER    ?= 2.6.18
 
 EXTRAVERSION ?= -xen
+
+# Linux search path, will be searched for tarballs and mercurial
+# repositories.
+LINUX_SRC_PATH ?= .:..
 
 XEN_LINUX_SOURCE ?= sparse
 
diff -r e2ba95ed2b09 -r f6ff5d42164f buildconfigs/select-repository
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/select-repository    Thu May 31 14:51:09 2007 +0100
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+ME=$(basename $0)
+
+if [ $# -lt 1 ] || [ $# -gt 2 ] ; then
+    echo "usage: $ME <repository-name> [search-path]" 1>&2
+    exit 1;
+fi
+
+REPO=$1
+LINUX_SRC_PATH=$2
+
+if [ X"${LINUX_SRC_PATH}" != X ] ; then
+    echo "$ME: Searching \`${LINUX_SRC_PATH}' for $REPO" 1>&2
+    IFS_saved="$IFS"
+    IFS=:
+    for i in $LINUX_SRC_PATH ; do
+       # Ignore current directory since we will almost certainly find
+       # the target directory there which breaks updating (there's no
+       # point updating from yourself!).
+       if [ X"." = X"${i}" ] ; then
+           echo "$ME: Ignoring \`.'" 1>&2
+           continue
+       fi
+
+       if [ -d "$i/$REPO/.hg" ] ; then
+           echo "$ME: Found $i/$REPO" 1>&2
+           echo "$i/$REPO"
+           exit 0
+       fi
+    done
+    IFS="$IFS_saved"
+fi
+
+XEN=$(hg -R ${XEN_ROOT} path default)
+if [ $? -ne 0 ] || [ X"$XEN" = "X" ] ; then
+    echo "$ME: Unable to determine Xen repository parent." 1>&2
+    exit 1;
+fi
+
+BASE=$(dirname ${XEN})
+if [ $? -ne 0 ] || [ X"$XEN" = "X" ] ; then
+    echo "$ME: Unable to determine Xen repository parent." 1>&2
+    exit 1;
+fi
+
+echo "$ME: Found ${BASE}/${REPO}" 1>&2
+echo ${BASE}/${REPO}
+exit 0
diff -r e2ba95ed2b09 -r f6ff5d42164f buildconfigs/src.hg-clone
--- a/buildconfigs/src.hg-clone Thu May 31 10:58:22 2007 +0100
+++ b/buildconfigs/src.hg-clone Thu May 31 14:51:09 2007 +0100
@@ -1,26 +1,39 @@
-# Main repository to clone.
-XEN_LINUX_HGREPO ?= http://xenbits.xensource.com/linux-$(LINUX_VER)-xen.hg
-
-# Set this to pull additional changesets from a second source.
-
-# This can be useful if you use a local mirror for XEN_LINUX_HGREPO
-# (to reduce time spent cloning) but still want to pull the very
-# latest changesets from xenbits.
-XEN_LINUX_HGUPDATES ?=
-
-# Set this to update to a particlar revision.
-XEN_LINUX_HGREV  ?=
+# Mercurial
+HG ?= hg
 
 LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg
 
-$(LINUX_SRCDIR)/.valid-src:
+# Repository to clone.
+XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) 
$(LINUX_SRC_PATH))
+
+# The source directory is not automatically updated to avoid blowing
+# away developer's changes. If you want to automatically pull a new
+# version of the Linux tree then add `XEN_LINUX_UPDATE=y' to your make
+# command line.
+ifeq ($(XEN_LINUX_UPDATE),y)
+__XEN_LINUX_UPDATE = $(LINUX_SRCDIR)/.force-update
+else
+__XEN_LINUX_UPDATE =
+endif
+
+# Set XEN_LINUX_HGREV to update to a particlar revision.
+XEN_LINUX_HGREV  ?= tip
+
+$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
+       set -e ; __repo=$(XEN_LINUX_HGREPO) ; \
        if [ ! -d $(LINUX_SRCDIR) ] ; then \
-           hg clone $(XEN_LINUX_HGREPO) $(LINUX_SRCDIR) ; \
-       fi
-       if [ -n "$(XEN_LINUX_HGUPDATES)" ] ; then \
-           hg pull -R $(LINUX_SRCDIR) $(XEN_LINUX_HGUPDATES) ; \
+           echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \
+           $(HG) clone $${__repo} $(LINUX_SRCDIR) ; \
+       else \
+           echo "Pulling changes from $${__repo} into $(LINUX_SRCDIR)." ; \
+           $(HG) -R $(LINUX_SRCDIR) pull $${__repo} ; \
        fi
        if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
-           hg update -R $(LINUX_SRCDIR) $(XEN_LINUX_HGREV) ; \
+           echo "Updating $(LINUX_SRCDIR) to revision $(XEN_LINUX_HGREV)." ; \
+           $(HG) update -R $(LINUX_SRCDIR) $(XEN_LINUX_HGREV) ; \
        fi
        touch $@
+
+.PHONY: $(LINUX_SRCDIR)/.force-update
+$(LINUX_SRCDIR)/.force-update:
+       @ :
diff -r e2ba95ed2b09 -r f6ff5d42164f buildconfigs/src.sparse
--- a/buildconfigs/src.sparse   Thu May 31 10:58:22 2007 +0100
+++ b/buildconfigs/src.sparse   Thu May 31 14:51:09 2007 +0100
@@ -7,8 +7,6 @@ PRISTINE_SRC_PATH       ?= .:..
 PRISTINE_SRC_PATH      ?= .:..
 vpath pristine-% $(PRISTINE_SRC_PATH)
 
-# Setup Linux search path
-LINUX_SRC_PATH ?= .:..
 vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
 vpath patch-%.bz2 $(LINUX_SRC_PATH)
 
diff -r e2ba95ed2b09 -r f6ff5d42164f buildconfigs/src.tarball
--- a/buildconfigs/src.tarball  Thu May 31 10:58:22 2007 +0100
+++ b/buildconfigs/src.tarball  Thu May 31 14:51:09 2007 +0100
@@ -3,8 +3,6 @@ XEN_LINUX_TARBALL ?= linux-$(LINUX_VER)-
 
 LINUX_SRCDIR ?= linux-$(LINUX_VER)
 
-# Setup Linux search path
-LINUX_SRC_PATH ?= .:..
 vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
 
 # download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.