From patchwork Wed Mar 19 11:48:03 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Campbell X-Patchwork-Id: 26556 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ie0-f200.google.com (mail-ie0-f200.google.com [209.85.223.200]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 9CA6820534 for ; Wed, 19 Mar 2014 11:51:03 +0000 (UTC) Received: by mail-ie0-f200.google.com with SMTP id lx4sf30122005iec.11 for ; Wed, 19 Mar 2014 04:51:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:in-reply-to :references:mime-version:cc:subject:precedence:list-id :list-unsubscribe:list-post:list-help:list-subscribe:sender :errors-to:x-original-sender:x-original-authentication-results :mailing-list:list-archive:content-type:content-transfer-encoding; bh=XXdp26hRsB9CFf2UIFDNI5VJKq6KQpYdWjGt7cLHuyI=; b=gYgfaYn9LE0qo/9VRCcixw8f75/ybsDfV0q3MspjvI1wxm3j/kfEct0p0sQpdNQ7wM DzzSGi9v4XEu8H4G4GmGzTw2Fx3IUskdSNRnBgVu7fjKr3TDGwAEpXKrZuEewWdk2KHy 5vn+4dFQNzIJz34zuvr2u3fHn2ZGLVlhKXuKWUaninAy/z5m1XL8A8T7/W7kqyQQde1G UUwueCo0e67d3CfeU1WerG9XNnSHy2ZpMDk0AUe/Yb5tFesuAjxRcj4eiUYYepxJUQzA Er8kjN7uFGfcJT91j/4/125/6r+6rMmDmF1W2D9f9Aq2JGv5g2LCdtMlMUFIzG2LESDb /Ktg== X-Gm-Message-State: ALoCoQm+ZgwPwzcLBm2htc5OlpLHCsSFif+lYOOsoB8rukTPdScjdbATIRR40Ry9sT/4ErDrWlQ0 X-Received: by 10.50.20.71 with SMTP id l7mr10664825ige.5.1395229862955; Wed, 19 Mar 2014 04:51:02 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.95.230 with SMTP id i93ls2484411qge.28.gmail; Wed, 19 Mar 2014 04:51:02 -0700 (PDT) X-Received: by 10.58.238.35 with SMTP id vh3mr29414768vec.16.1395229862659; Wed, 19 Mar 2014 04:51:02 -0700 (PDT) Received: from mail-vc0-f176.google.com (mail-vc0-f176.google.com [209.85.220.176]) by mx.google.com with ESMTPS id fb12si4395616veb.68.2014.03.19.04.51.02 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 19 Mar 2014 04:51:02 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.220.176 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.220.176; Received: by mail-vc0-f176.google.com with SMTP id lc6so8726605vcb.7 for ; Wed, 19 Mar 2014 04:51:02 -0700 (PDT) X-Received: by 10.220.131.210 with SMTP id y18mr30250425vcs.12.1395229862496; Wed, 19 Mar 2014 04:51:02 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.220.78.9 with SMTP id i9csp292225vck; Wed, 19 Mar 2014 04:51:01 -0700 (PDT) X-Received: by 10.220.131.210 with SMTP id y18mr30250374vcs.12.1395229861716; Wed, 19 Mar 2014 04:51:01 -0700 (PDT) Received: from lists.xen.org (lists.xen.org. [50.57.142.19]) by mx.google.com with ESMTPS id fi2si3436691vdb.208.2014.03.19.04.51.01 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 19 Mar 2014 04:51:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of xen-devel-bounces@lists.xen.org designates 50.57.142.19 as permitted sender) client-ip=50.57.142.19; Received: from localhost ([127.0.0.1] helo=lists.xen.org) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WQEyt-0001kw-6A; Wed, 19 Mar 2014 11:48:23 +0000 Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WQEye-0001hr-3a for xen-devel@lists.xen.org; Wed, 19 Mar 2014 11:48:17 +0000 Received: from [193.109.254.147:63578] by server-1.bemta-14.messagelabs.com id C4/06-00839-7F389235; Wed, 19 Mar 2014 11:48:07 +0000 X-Env-Sender: Ian.Campbell@citrix.com X-Msg-Ref: server-4.tower-27.messagelabs.com!1395229684!2720848!1 X-Originating-IP: [66.165.176.89] X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n X-StarScan-Received: X-StarScan-Version: 6.11.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 22445 invoked from network); 19 Mar 2014 11:48:06 -0000 Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89) by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP; 19 Mar 2014 11:48:06 -0000 X-IronPort-AV: E=Sophos;i="4.97,685,1389744000"; d="scan'208";a="112814444" Received: from accessns.citrite.net (HELO FTLPEX01CL03.citrite.net) ([10.9.154.239]) by FTLPIPO01.CITRIX.COM with ESMTP; 19 Mar 2014 11:48:04 +0000 Received: from norwich.cam.xci-test.com (10.80.248.129) by smtprelay.citrix.com (10.13.107.80) with Microsoft SMTP Server id 14.2.342.4; Wed, 19 Mar 2014 07:48:03 -0400 Received: from cosworth.uk.xensource.com ([10.80.16.52] helo=cosworth.uk.xensource.com.) by norwich.cam.xci-test.com with esmtp (Exim 4.72) (envelope-from ) id 1WQEyZ-0006YW-6R; Wed, 19 Mar 2014 11:48:03 +0000 From: Ian Campbell To: Date: Wed, 19 Mar 2014 11:48:03 +0000 Message-ID: <1395229683-27129-1-git-send-email-ian.campbell@citrix.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1395229554.10203.74.camel@kazak.uk.xensource.com> References: <1395229554.10203.74.camel@kazak.uk.xensource.com> MIME-Version: 1.0 X-DLP: MIA2 Cc: Ian Campbell , xen-devel@lists.xen.org Subject: [Xen-devel] [PATCH xen.git 1/1] build: remove Linux kernel build integration. X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Post: , List-Help: , List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: ian.campbell@citrix.com X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.220.176 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Archive: We haven't shipped a XenoLinux kernel for more releases than I can remember. We held onto these because osstest was using them but this is no longer the case. Signed-off-by: Ian Campbell Acked-by: Ian Jackson --- Makefile | 59 +-- buildconfigs/Rules.mk | 42 -- buildconfigs/enable-xen-config | 127 ------ buildconfigs/interface.exclude | 7 - buildconfigs/ketchup | 742 ---------------------------------- buildconfigs/mk.linux-2.6 | 10 - buildconfigs/mk.linux-2.6-common | 154 ------- buildconfigs/mk.linux-2.6-git | 2 - buildconfigs/mk.linux-2.6-mm | 2 - buildconfigs/mk.linux-2.6-native | 5 - buildconfigs/mk.linux-2.6-pvops | 17 - buildconfigs/mk.linux-2.6-rc | 2 - buildconfigs/mk.linux-2.6-tip | 2 - buildconfigs/mk.linux-2.6-tip-latest | 17 - buildconfigs/mk.linux-2.6-xen | 6 - buildconfigs/mk.linux-2.6-xen0 | 2 - buildconfigs/mk.linux-2.6-xenU | 2 - buildconfigs/select-linux-arch | 30 -- buildconfigs/select-linux-image | 33 -- buildconfigs/select-repository | 69 ---- buildconfigs/src.git-clone | 32 -- buildconfigs/src.hg-clone | 32 -- buildconfigs/src.tarball | 19 - config/Linux.mk | 7 - configure | 50 --- configure.ac | 1 - 26 files changed, 10 insertions(+), 1461 deletions(-) delete mode 100644 buildconfigs/Rules.mk delete mode 100644 buildconfigs/enable-xen-config delete mode 100644 buildconfigs/interface.exclude delete mode 100644 buildconfigs/ketchup delete mode 100644 buildconfigs/mk.linux-2.6 delete mode 100644 buildconfigs/mk.linux-2.6-common delete mode 100644 buildconfigs/mk.linux-2.6-git delete mode 100644 buildconfigs/mk.linux-2.6-mm delete mode 100644 buildconfigs/mk.linux-2.6-native delete mode 100644 buildconfigs/mk.linux-2.6-pvops delete mode 100644 buildconfigs/mk.linux-2.6-rc delete mode 100644 buildconfigs/mk.linux-2.6-tip delete mode 100644 buildconfigs/mk.linux-2.6-tip-latest delete mode 100644 buildconfigs/mk.linux-2.6-xen delete mode 100644 buildconfigs/mk.linux-2.6-xen0 delete mode 100644 buildconfigs/mk.linux-2.6-xenU delete mode 100755 buildconfigs/select-linux-arch delete mode 100755 buildconfigs/select-linux-image delete mode 100755 buildconfigs/select-repository delete mode 100644 buildconfigs/src.git-clone delete mode 100644 buildconfigs/src.hg-clone delete mode 100644 buildconfigs/src.tarball diff --git a/Makefile b/Makefile index 91ca280..e46f5f1 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ all: dist -include config/Toplevel.mk -SUBSYSTEMS?=xen kernels tools stubdom docs +SUBSYSTEMS?=xen tools stubdom docs TARGS_DIST=$(patsubst %, dist-%, $(SUBSYSTEMS)) TARGS_INSTALL=$(patsubst %, install-%, $(SUBSYSTEMS)) @@ -15,7 +15,7 @@ export XEN_ROOT=$(CURDIR) include Config.mk SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH)) -export XEN_TARGET_ARCH SUBARCH XEN_SYSTYPE +export XEN_TARGET_ARCH SUBARCH include buildconfigs/Rules.mk # build and install everything into the standard system directories @@ -23,7 +23,7 @@ include buildconfigs/Rules.mk install: $(TARGS_INSTALL) .PHONY: build -build: kernels +build: $(MAKE) -C xen build $(MAKE) -C tools build $(MAKE) -C stubdom build @@ -54,17 +54,12 @@ dist-%: install-% @: # do nothing # Legacy dist targets -.PHONY: xen tools stubdom kernels docs +.PHONY: xen tools stubdom docs xen: dist-xen tools: dist-tools -kernels: dist-kernels stubdom: dist-stubdom docs: dist-docs -.PHONY: prep-kernels -prep-kernels: - for i in $(XKERNELS) ; do $(MAKE) $$i-prep || exit 1; done - .PHONY: install-xen install-xen: $(MAKE) -C xen install @@ -95,10 +90,6 @@ endif install-tools: $(QEMU_TRAD_DIR_TARGET) $(QEMU_XEN_DIR_TARGET) $(MAKE) -C tools install -.PHONY: install-kernels -install-kernels: - for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done - .PHONY: install-stubdom install-stubdom: $(QEMU_TRAD_DIR_TARGET) install-tools $(MAKE) -C stubdom install @@ -122,27 +113,12 @@ install-docs: dev-docs: $(MAKE) -C docs dev-docs -# Build all the various kernels and modules -.PHONY: kbuild -kbuild: kernels - -# Delete the kernel build trees entirely -.PHONY: kdelete -kdelete: - for i in $(XKERNELS) ; do $(MAKE) $$i-delete ; done - -# Clean the kernel build trees -.PHONY: kclean -kclean: - for i in $(XKERNELS) ; do $(MAKE) $$i-clean ; done - -# build xen, the tools, and a domain 0 plus unprivileged linux-xen images, -# and place them in the install directory. 'make install' should then -# copy them to the normal system directories +# build xen and the tools and place them in the install +# directory. 'make install' should then copy them to the normal system +# directories .PHONY: world world: $(MAKE) clean - $(MAKE) kdelete $(MAKE) dist # Package a build in a debball file, that is inside a .deb format @@ -159,7 +135,6 @@ debball: dist rpmball: dist bash ./tools/misc/mkrpm $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory) -# clean doesn't do a kclean .PHONY: clean clean:: $(MAKE) -C xen clean @@ -170,7 +145,7 @@ ifeq (x86_64,$(XEN_TARGET_ARCH)) endif $(MAKE) -C docs clean -# clean, but blow away kernel build tree plus tarballs +# clean, but blow away tarballs .PHONY: distclean distclean: rm -f config/Toplevel.mk @@ -181,9 +156,7 @@ ifeq (x86_64,$(XEN_TARGET_ARCH)) XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom distclean endif $(MAKE) -C docs distclean - rm -rf dist patches/tmp - for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done - rm -rf patches/*/.makedep + rm -rf dist rm -rf config.log config.status config.cache autom4te.cache # Linux name for GNU distclean @@ -203,19 +176,15 @@ help: @echo ' install - build and install everything' @echo ' install-xen - build and install the Xen hypervisor' @echo ' install-tools - build and install the control tools' - @echo ' install-kernels - build and install guest kernels' @echo ' install-stubdom - build and install the stubdomain images' @echo ' install-docs - build and install user documentation' @echo '' @echo 'Building targets:' @echo ' dist - build and install everything into local dist directory' - @echo ' world - clean everything, delete guest kernel build' - @echo ' trees then make dist' + @echo ' world - clean everything then make dist' @echo ' xen - build and install Xen hypervisor' @echo ' tools - build and install tools' @echo ' stubdom - build and install the stubdomain images' - @echo ' kernels - build and install guest kernels' - @echo ' kbuild - synonym for make kernels' @echo ' docs - build and install user documentation' @echo ' dev-docs - build developer-only documentation' @echo '' @@ -223,11 +192,8 @@ help: @echo ' clean - clean the Xen, tools and docs (but not guest kernel trees)' @echo ' distclean - clean plus delete kernel build trees and' @echo ' local downloaded files' - @echo ' kdelete - delete guest kernel build trees' - @echo ' kclean - clean guest kernel build trees' @echo '' @echo 'Miscellaneous targets:' - @echo ' prep-kernels - prepares kernel directories, does not build' @echo ' uninstall - attempt to remove installed Xen tools' @echo ' (use with extreme care!)' @echo @@ -255,11 +221,6 @@ uninstall: make -C tools uninstall rm -rf $(D)/boot/tboot* -# Legacy targets for compatibility -.PHONY: linux26 -linux26: - $(MAKE) 'KERNELS=linux-2.6*' kernels - .PHONY: xenversion xenversion: @$(MAKE) --no-print-directory -C xen xenversion diff --git a/buildconfigs/Rules.mk b/buildconfigs/Rules.mk deleted file mode 100644 index ee61cf6..0000000 --- a/buildconfigs/Rules.mk +++ /dev/null @@ -1,42 +0,0 @@ - -include Config.mk - -export DESTDIR - -ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*)) - -%-install: - $(MAKE) -f buildconfigs/mk.$* build - -%-dist: DESTDIR=$(DISTDIR)/install -%-dist: %-install - @: # do nothing - -# Legacy dist target -%-build: %-dist - @: # do nothing - -%-prep: DESTDIR=$(DISTDIR)/install -%-prep: - $(MAKE) -f buildconfigs/mk.$* prep - -%-config: DESTDIR=$(DISTDIR)/install -%-config: - $(MAKE) -f buildconfigs/mk.$* config - -%-delete: - $(MAKE) -f buildconfigs/mk.$* delete - -%-clean: - $(MAKE) -f buildconfigs/mk.$* clean - -%.patch: - $(MAKE) -f buildconfigs/mk.$* $@ - -%-mrproper: - $(MAKE) -f buildconfigs/mk.$*-xen mrproper - rm -rf pristine-$(*)* ref-$(*)* - rm -rf $*-xen.patch - -# never delete any intermediate files. -.SECONDARY: diff --git a/buildconfigs/enable-xen-config b/buildconfigs/enable-xen-config deleted file mode 100644 index 7ee4d37..0000000 --- a/buildconfigs/enable-xen-config +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/sh - -set -e - -if [ $# -ne 1 ] ; then - echo "Usage $(basename $0) " 1>&2 - exit 1 -fi - -CONFIG=$1 - -setopt() -{ - OPTION=$1 - VALUE=$2 - - # First remove any existing instances of this option - sed -e "s/^# ${OPTION} is not set$//g ; s/^${OPTION}=.*$//g" -i "${CONFIG}" - - # Then append the new value - case ${VALUE} in - n) echo "# ${OPTION} is not set" >> "${CONFIG}" ;; - y|m|*) echo "${OPTION}=${VALUE}" >> "${CONFIG}" ;; - esac -} - -setopt CONFIG_PARAVIRT y -setopt CONFIG_PARAVIRT_DEBUG y -setopt CONFIG_PARAVIRT_GUEST y -setopt CONFIG_PARAVIRT_SPINLOCKS y - -setopt CONFIG_XEN y -setopt CONFIG_XEN_BLKDEV_FRONTEND y -setopt CONFIG_XEN_NETDEV_FRONTEND y -setopt CONFIG_XEN_KBDDEV_FRONTEND y -setopt CONFIG_XEN_FBDEV_FRONTEND y -setopt CONFIG_XEN_PCIDEV_FRONTEND y -setopt CONFIG_XEN_BALLOON y -setopt CONFIG_XEN_SCRUB_PAGES y -setopt CONFIG_XEN_DEV_EVTCHN y -setopt CONFIG_XEN_BACKEND y -setopt CONFIG_XEN_BLKDEV_BACKEND y -setopt CONFIG_XEN_BLKDEV_TAP y -setopt CONFIG_XEN_NETDEV_BACKEND y -setopt CONFIG_XEN_PCIDEV_BACKEND y -setopt CONFIG_XEN_PCIDEV_BACKEND_VPCI y -setopt CONFIG_XEN_PCIDEV_BACKEND_PASS n -setopt CONFIG_XEN_PCIDEV_BACKEND_SLOT n -setopt CONFIG_XEN_PCIDEV_BE_DEBUG n -setopt CONFIG_XENFS y -setopt CONFIG_XEN_COMPAT_XENFS y -setopt CONFIG_XEN_PCI_PASSTHROUGH y -setopt CONFIG_HVC_XEN y -setopt CONFIG_XEN_MAX_DOMAIN_MEMORY 32 -setopt CONFIG_XEN_DEBUG_FS y -setopt CONFIG_XEN_DOM0 y -setopt CONFIG_XEN_SYS_HYPERVISOR y -setopt CONFIG_XEN_GNTDEV y -setopt CONFIG_XEN_PLATFORM_PCI y - -setopt CONFIG_VMI y -setopt CONFIG_TUN y - -setopt CONFIG_KVM y -setopt CONFIG_KVM_INTEL y -setopt CONFIG_KVM_AMD y -setopt CONFIG_KVM_CLOCK y -setopt CONFIG_KVM_GUEST n -setopt CONFIG_KVM_TRACE n - -setopt CONFIG_LGUEST n - -setopt CONFIG_LOCALVERSION_AUTO n - -setopt CONFIG_BRIDGE y - -setopt CONFIG_DEBUG_STACK_USAGE n - -setopt CONFIG_MEMORY_HOTPLUG y -setopt CONFIG_MEMORY_HOTREMOVE y - -setopt CONFIG_MIGRATION n - -setopt CONFIG_ACPI_HOTPLUG_MEMORY n - -# Should all be set one way or another in defconfig but aren't -setopt CONFIG_NUMA n -setopt CONFIG_X86_VSMP n -setopt CONFIG_X86_UV n -setopt CONFIG_CALGARY_IOMMU n -setopt CONFIG_AMD_IOMMU n -setopt CONFIG_MAXSMP n -setopt CONFIG_SPARSEMEM_VMEMMAP n -setopt CONFIG_I7300_IDLE n -setopt CONFIG_DMAR n -setopt CONFIG_INTR_REMAP n -setopt CONFIG_GFS2_FS n -setopt CONFIG_IOMMU_DEBUG n -setopt CONFIG_X86_MCE_INTEL n -setopt CONFIG_X86_MCE_AMD n -setopt CONFIG_CRYPTO_AES_NI_INTEL n -setopt CONFIG_CISS_SCSI_TAPE n - -setopt CONFIG_FUSION y -setopt CONFIG_FUSION_SPI m -setopt CONFIG_FUSION_SAS m -setopt CONFIG_FUSION_FC m -setopt CONFIG_FUSION_MAX_SGE 128 -setopt CONFIG_FUSION_CTL n -setopt CONFIG_FUSION_LOGGING n - -setopt CONFIG_BLK_CPQ_CISS_DA m - -case ${XEN_TARGET_ARCH} in - x86_32) setopt CONFIG_64BIT n ;; - x86_64) - setopt CONFIG_64BIT y - setopt CONFIG_IA32_EMULATION y - setopt CONFIG_IA32_AOUT n - setopt CONFIG_CRYPTO_AES_X86_64 n - setopt CONFIG_CRYPTO_SALSA20_X86_64 n - setopt CONFIG_CRYPTO_TWOFISH_X86_64 n - ;; - *) ;; -esac - -exit 0 diff --git a/buildconfigs/interface.exclude b/buildconfigs/interface.exclude deleted file mode 100644 index 1df89a5..0000000 --- a/buildconfigs/interface.exclude +++ /dev/null @@ -1,7 +0,0 @@ -*.size -*.pyc -checker -checker.c -ia64.h -x86_32.h -x86_64.h diff --git a/buildconfigs/ketchup b/buildconfigs/ketchup deleted file mode 100644 index 8725f7d..0000000 --- a/buildconfigs/ketchup +++ /dev/null @@ -1,742 +0,0 @@ -#!/usr/bin/python -# -# ketchup 0.9.8 -# http://selenic.com/ketchup/wiki -# -# Copyright 2004 Matt Mackall -# -# This software may be used and distributed according to the terms -# of the GNU General Public License, incorporated herein by reference. -# -# Usage: -# -# in an existing kernel directory, run: -# -# ketchup -# -# where version is a complete kernel version, or a branch name to grab -# the latest version -# -# You can override some variables by creating a ~/.ketchuprc file. -# The ~/.ketchuprc is just a Python script, eg. it might look like this: -# -# kernel_url = 'http://kernel.localdomain/pub/linux/kernel' -# archive = os.environ["HOME"] + '/tmp/ketchup-archive' -# gpg = '/weird/path/to/gpg' -# - -import re, sys, urllib, os, getopt, glob, shutil - -def error(*args): - sys.stderr.write("ketchup: ") - for a in args: - sys.stderr.write(str(a)) - sys.stderr.write("\n") - -def qprint(*args): - if not options["quiet"]: - sys.stdout.write(" ".join(map(str, args))) - sys.stdout.write("\n") - -def lprint(*args): - sys.stdout.write(" ".join(map(str, args))) - sys.stdout.write("\n") - - -def fancyopts(args, options, state, syntax=''): - long = [] - short = '' - map = {} - dt = {} - - def help(state, opt, arg, options = options, syntax = syntax): - lprint("Usage: ", syntax) - - for s, l, d, c in options: - opt = ' ' - if s: opt = opt + '-' + s + ' ' - if l: opt = opt + '--' + l + ' ' - if d: opt = opt + '(' + str(d) + ')' - lprint(opt) - if c: lprint(' %s' % c) - sys.exit(0) - - options = [('h', 'help', help, 'Show usage info')] + options - - for s, l, d, c in options: - map['-'+s] = map['--'+l]=l - state[l] = d - dt[l] = type(d) - if not d is None and not type(d) is type(help): s, l = s + ':', l + '=' - if s: short = short + s - if l: long.append(l) - - if os.environ.has_key("KETCHUP_OPTS"): - args = os.environ["KETCHUP_OPTS"].split() + args - - try: - opts, args = getopt.getopt(args, short, long) - except getopt.GetoptError: - help(state, None, args) - sys.exit(-1) - - for opt, arg in opts: - if dt[map[opt]] is type(help): state[map[opt]](state,map[opt],arg) - elif dt[map[opt]] is type(1): state[map[opt]] = int(arg) - elif dt[map[opt]] is type(''): state[map[opt]] = arg - elif dt[map[opt]] is type([]): state[map[opt]].append(arg) - elif dt[map[opt]] is type(None): state[map[opt]] = 1 - - return args - -# Default values -kernel_url = 'http://www.kernel.org/pub/linux/kernel' -archive = os.environ["HOME"] + "/.ketchup" -rename_prefix = 'linux-' -rename_with_localversion = False -wget = "/usr/bin/wget" -gpg = "/usr/bin/gpg" -precommand = postcommand = None -default_tree = None -local_trees = {} - -# Functions to parse version strings - -def tree(ver): - return float(re.match(r'(\d+\.\d+)', ver).group(1)) - -def rev(ver): - p = pre(ver) - r = int(re.match(r'\d+\.\d+\.(\d+)', ver).group(1)) - if p: r = r - 1 - return r - -def pre(ver): - try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(2) - except: return None - -def post(ver): - try: return re.match(r'\d+\.\d+\.\d+\.(\d+)', ver).group(1) - except: return None - -def pretype(ver): - try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(3) - except: return None - -def prenum(ver): - try: return int(re.match(r'\d+\.\d+\.\d+-((rc|pre)(\d+))', ver).group(3)) - except: return None - -def prebase(ver): - return re.match(r'(\d+\.\d+\.\d+((-(rc|pre)|\.)\d+)?)', ver).group(1) - -def revbase(ver): - return "%s.%s" % (tree(ver), rev(ver)) - -def base(ver): - v = revbase(ver) - if post(ver): v += "." + post(ver) - return v - -def forkname(ver): - try: return re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+?)\d+)?', - ver).group(5) - except: return None - -def forknum(ver): - try: return int( - re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+?)(\d+))?', - ver).group(6)) - except: return None - -def fork(ver): - try: return re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+))?', ver).group(4) - except: return None - -def get_ver(makefile): - """ Read the version information from the specified makefile """ - part = {} - parts = "VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION".split(' ') - m = open(makefile) - for l in m.readlines(): - for p in parts: - try: part[p] = re.match(r'%s\s*=\s*(\S+)' % p, l).group(1) - except: pass - - version = "%s.%s.%s" % tuple([part[p] for p in parts[:3]]) - version += part.get("EXTRAVERSION","") - return version - -def get_localversion(): - v = '' - - for name in glob.glob('localversion*'): - try: v += open(name).readline().strip() - except: pass - - try: - c = open('.config').read() - v += re.search(r'^CONFIG_LOCALVERSION="(.+)"', c, re.M).group(1) - except: pass - - return v - -def compare_ver(a, b): - """ - Compare kernel versions a and b - - Note that -pre and -rc versions sort before the version they modify, - -pre sorts before -rc, -bk, -git, and -mm, etc. sort alphabetically. - """ - if a == b: return 0 - - c = cmp(float(tree(a)), float(tree(b))) - if c: return c - c = cmp(rev(a), rev(b)) - if c: return c - c = cmp(int(post(a) or 0), int(post(b) or 0)) - if c: return c - c = cmp(pretype(a), pretype(b)) # pre sorts before rc - if c: return c - c = cmp(prenum(a), prenum(b)) - if c: return c - c = cmp(forkname(a), forkname(b)) - if c: return c - return cmp(forknum(a), forknum(b)) - -def last(url, pat="(.*/)"): - for l in urllib.urlopen(url).readlines(): - m = re.search('(?i)' % pat, l) - if m: n = m.group(1) - return n - -def latest_mm(url, pat): - url = kernel_url + '/people/akpm/patches/2.6/' - url += last(url) - part = last(url) - return part[:-1] - -def latest_ck(url, pat): - url = "http://ck.kolivas.org/patches/2.6/pre-releases/" - url += last(url) - part = last(url) - pre = part[:-1] - - url = "http://ck.kolivas.org/patches/2.6/" - url += last(url,"(2.6.*/)") - part = last(url) - rel = part[:-1] - - l = [pre, rel] - l.sort(compare_ver) - return l[-1] - -def latest_dir(url, pat): - """Find the latest link matching pat at url after sorting""" - p = [] - for l in urllib.urlopen(url).readlines(): - m = re.search('"%s"' % pat, l) - if m: p.append(m.group(1)) - - if not p: return None - - p.sort(compare_ver) - return p[-1] - -# mbligh is lazy and has a bunch of empty directories -def latest_mjb(url, pat): - url = kernel_url + '/people/mbligh/' - - # find the last Linus release and search backwards - l = [find_ver('2.6'), find_ver("2.6-pre")] - l.sort(compare_ver) - linus = l[-1] - - p = [] - for l in urllib.urlopen(url).readlines(): - m = re.search('"(2\.6\..*/)"', l) - if m: - v = m.group(1) - if compare_ver(v, linus) <= 0: - p.append(v) - - p.sort(compare_ver) - p.reverse() - - for ver in p: - mjb = latest_dir(url + ver, pat) - if mjb: return mjb - - return None - -def latest_26_tip(url, pat): - l = [find_ver('2.6'), find_ver('2.6-git'), find_ver('2.6-pre')] - l.sort(compare_ver) - return l[-1] - -def find_info(ver): - b = "%.1f" % tree(ver) - f = forkname(ver) - p = pre(ver) - - s = b - if f: - s = "%s-%s" % (b, f) - elif p: - s = "%s-pre" % b - - return version_info[s] - -def version_urls(ver): - """ Return the URL for the patch associated with the specified version """ - i = find_info(ver)[1] - if type(i) != type([]): - i = [i] - - v = { - 'full': ver, - 'tree': tree(ver), - 'base': base(ver), - 'prebase': prebase(ver) - } - - l = [] - for e in i: - l.append(e % v) - - return l - -def patch_path(ver): - return os.path.join(archive, os.path.basename(version_urls(ver)[0])) - -def download(url, f): - qprint("Downloading %s" % os.path.basename(url)) - if options["dry-run"]: - return 1 - - if not options["wget"]: - p = urllib.urlopen(url).read() - if p.find("404") != -1: - return None - open(f, 'w').write(p) - else: - e = os.system("%s -c -O %s %s" % - (options["wget"], f + ".partial", url)) - if e: - return None - os.rename(f + ".partial", f) - - return 1 - -def verify(url, f, sign): - if options["no-gpg"] or options["dry-run"] or not options["gpg-path"]: - return 1 - - sf = f + sign - if not download(url + sign, sf): - error("signature download failed") - error("removing files...") - os.unlink(f) - return 0 - - qprint("Verifying signature...") - r = os.system("%s --verify %s %s" % (options["gpg-path"], sf, f)) - if r: - error("gpg returned %d" % r) - error("removing files...") - os.unlink(f) - os.unlink(sf) - return 0 - - return 1 - -def trydownload(urls, f, sign): - for url in urls: - if download(url, f): - if not sign or verify(url, f, sign): - return f - if url[-4:] == ".bz2": - f2 = f[:-4] + ".gz" - url2 = url[:-4] + ".gz" - if download(url2, f2): - if not sign or verify(url2, f2, sign): - return f2 - return None - -def get_patch(ver): - """Return the path to patch for given ver, downloading if necessary""" - f = patch_path(ver) - if os.path.exists(f): - return f - if f[-4:] == ".bz2": - f2 = f[:-4] + ".gz" - if os.path.exists(f2): - return f2 - - urls = version_urls(ver) - sign = find_info(ver)[3] - if sign == 1: sign = ".sign" - f = trydownload(urls, f, sign) - if not f: - error("patch download failed") - sys.exit(-1) - - return f - -def apply_patch(ver, reverse = 0): - """Find the patch to upgrade from the predecessor of ver to ver and - apply or reverse it.""" - p = get_patch(ver) - r = "" - if reverse: - r = " -R" - - qprint("Applying %s%s" % (os.path.basename(p), r)) - if options["dry-run"]: - return ver - - def cmd(patch, reverse, dry): - base = "patch -l -p1%s" % reverse - if dry: - base += " --dry-run" - - if p[-4:] == ".bz2": - pipe = "bzcat %s | %s" % (patch, base) - elif p[-3:] == ".gz": - pipe = "zcat %s | %s" % (patch, base) - else: - pipe = "%s < %s" % (base, patch) - - err = os.system(pipe + " > .patchdiag") - if err: - sys.stderr.write(open(".patchdiag").read()) - os.unlink(".patchdiag") - return err - - err = cmd(p, r, 1) - if err: - error("patch %s failed: %d" % (p, err)) - sys.exit(-1) - - err = cmd(p, r, 0) - if err: - error("patch %s failed while it was supposed to apply: %d" % (p, err)) - sys.exit(-1) - -def untar(tarfile): - old = os.getcwd() - os.mkdir("ketchup-tmp") - os.chdir("ketchup-tmp") - - err = os.system("bzcat %s | tar -xf -" % tarfile) - if err: - error("Unpacking failed: ", err) - sys.exit(-1) - - err = os.system("mv linux*/* linux*/.[^.]* ..; rmdir linux*") - if err: - error("Unpacking failed: ", err) - sys.exit(-1) - - os.chdir(old) - shutil.rmtree("ketchup-tmp") - -def install_nearest(ver): - t = tree(ver) - tarballs = glob.glob(archive + "/linux-%s.*.tar.bz2" % t) - list = [] - - for f in tarballs: - m = re.match(r'.*/linux-(.*).tar.bz2$', f) - v = m.group(1) - d = abs(rev(v) - rev(ver)) - list.append((d, f, v)) - list.sort() - - if not list or (options["full-tarball"] and list[0][0]): - f = "linux-%s.tar.bz2" % ver - url = "%s/v%s/%s" % (kernel_url, t, f) - f = archive + "/" + f - - sign = find_info(ver)[3] - if sign == 1: sign = ".sign" - - f = trydownload([url], f, sign) - if not f: - error("Tarball download failed") - sys.exit(-1) - - else: - f = list[0][1] - ver = list[0][2] - - qprint("Unpacking %s" % os.path.basename(f)) - if options["dry-run"]: return ver - untar(f) - - return ver - -def find_ver(ver): - if ver in version_info.keys(): - v = version_info[ver] - d = v[1] - if type(d) is type([]): - d = d[0] - for n in range(5): - return v[0](os.path.dirname(d), v[2]) - error('retrying version lookup for %s' % ver) - else: - return ver - -def transform(a, b): - if a == b: - qprint("Nothing to do!") - return - if not a: - a = install_nearest(base(b)) - t = tree(a) - if t != tree(b): - error("Can't patch %s to %s" % (tree(a), tree(b))) - sys.exit(-1) - if fork(a): - apply_patch(a, 1) - a = prebase(a) - if prebase(a) != prebase(b): - if pre(a): - apply_patch(a, 1) - a = base(a) - - if post(a) and post(a) != post(b): - apply_patch(prebase(a), 1) - - ra, rb = rev(a), rev(b) - if ra > rb: - for r in range(ra, rb, -1): - apply_patch("%s.%s" % (t, r), -1) - if ra < rb: - for r in range(ra + 1, rb + 1): - apply_patch("%s.%s" % (t, r)) - a = revbase(b) - - if post(b) and post(a) != post(b): - apply_patch(prebase(b), 0) - a = base(b) - - if pre(b): - apply_patch(prebase(b)) - a = prebase(b) - - if fork(b): - a = apply_patch(b) - -def rename_dir(v): - """Rename the current directory to linux-v, where v is the function arg""" - if rename_with_localversion: - v += get_localversion() - cwd = os.getcwd() - basedir = os.path.dirname(cwd) - newdir = os.path.join(basedir, rename_prefix + v) - if newdir == cwd: - return - if os.access(newdir, os.F_OK): - error("Cannot rename directory, destination exists: %s", newdir); - return - os.rename(cwd, newdir) - qprint('Current directory renamed to %s' % newdir) - - -# latest lookup function, canonical urls, pattern for lookup function, -# signature flag, description -version_info = { - '2.4': (latest_dir, - kernel_url + "/v2.4" + "/patch-%(base)s.bz2", - r'patch-(.*?).bz2', - 1, "old stable kernel series"), - '2.4-pre': (latest_dir, - kernel_url + "/v2.4" + "/testing/patch-%(prebase)s.bz2", - r'patch-(.*?).bz2', - 1, "old stable kernel series prereleases"), - '2.6': (latest_dir, - kernel_url + "/v2.6" + "/patch-%(prebase)s.bz2", - r'patch-(.*?).bz2', - 1, "current stable kernel series"), - '2.6-rc': (latest_dir, - kernel_url + "/v2.6" + "/testing/patch-%(prebase)s.bz2", - r'patch-(.*?).bz2', - 1, "current stable kernel series prereleases"), - '2.6-pre': (latest_dir, - kernel_url + "/v2.6" + "/testing/patch-%(prebase)s.bz2", - r'patch-(.*?).bz2', - 1, "current stable kernel series prereleases"), - '2.6-git': (latest_dir, - [kernel_url + "/v2.6" + "/snapshots/patch-%(full)s.bz2", - kernel_url + "/v2.6" + "/snapshots/old/patch-%(full)s.bz2"], - r'patch-(.*?).bz2', - 1, "current stable kernel series snapshots"), - '2.6-bk': (latest_dir, - [kernel_url + "/v2.6" + "/snapshots/patch-%(full)s.bz2", - kernel_url + "/v2.6" + "/snapshots/old/patch-%(full)s.bz2"], - r'patch-(.*?).bz2', - 1, "old stable kernel series snapshots"), - '2.6-tip': (latest_26_tip, "", "", 1, - "current stable kernel series tip"), - '2.6-mm': (latest_mm, - kernel_url + "/people/akpm/patches/" + - "%(tree)s/%(prebase)s/%(full)s/%(full)s.bz2", "", - 1, "Andrew Morton's -mm development tree"), - '2.6-tiny': (latest_dir, - "http://www.selenic.com/tiny/%(full)s.patch.bz2", - r'(2.6.*?).patch.bz2', - 1, "Matt Mackall's -tiny tree for small systems"), - '2.6-mjb': (latest_mjb, - kernel_url + "/people/mbligh/%(prebase)s/patch-%(full)s.bz2", - r'patch-(2.6.*?).bz2', - 1, "Martin Bligh's random collection 'o crap"), - '2.6-rt': (latest_dir, - ["http://people.redhat.com/mingo/" + - "realtime-preempt/patch-%(full)s", - "http://people.redhat.com/mingo/" + - "realtime-preempt/older/patch-%(full)s"], - r'patch-(2.6.*?)', - 0, "Ingo Molnar's realtime-preempt kernel"), - '2.6-ck': (latest_ck, - ["http://ck.kolivas.org/patches/2.6/" + - "%(prebase)s/%(full)s/patch-%(full)s.bz2", - "http://ck.kolivas.org/patches/2.6/pre-releases/" + - "%(prebase)s/%(full)s/patch-%(full)s.bz2"], - "", ".sig", - "Con Kolivas' patches for system responsiveness (desktop)"), - '2.6-cks': (latest_dir, - "http://ck.kolivas.org/patches/cks/patch-%(full)s.bz2", - r'patch-(2.6.*?).bz2', ".sig", - "Con Kolivas' patches for system responsiveness (server)") - } - -# Override defaults with ~/.ketchuprc which is just a Python script -rcpath = os.path.expanduser('~/.ketchuprc') -if os.path.isfile(rcpath): - try: - execfile(rcpath) - except Exception, e: - sys.exit('Failed parsing %s\nError was: %s' % (rcpath, e)) - -# Add local trees -for k,v in local_trees.items(): - version_info[k] = v - -# Environment variables override defaults and ketchuprc -kernel_url = os.environ.get("KETCHUP_URL", kernel_url) -archive = os.environ.get("KETCHUP_ARCH", archive) - -# And finally command line overrides everything -if not os.path.exists(wget): wget = "" -if not os.path.exists(gpg): gpg = "" - -options = {} -opts = [ - ('a', 'archive', archive, 'cache directory'), - ('d', 'directory', '.', 'directory to update'), - ('f', 'full-tarball', None, 'if unpacking a tarball, download the latest'), - ('g', 'gpg-path', gpg, 'path for GnuPG'), - ('G', 'no-gpg', None, 'disable GPG signature verification'), - ('k', 'kernel-url', kernel_url, 'base url for kernel.org mirror'), - ('l', 'list-trees', None, 'list supported trees'), - ('m', 'show-makefile', None, 'output version in makefile <arg>'), - ('n', 'dry-run', None, 'don\'t download or apply patches'), - ('p', 'show-previous', None, 'output version previous to <arg>'), - ('q', 'quiet', None, 'reduce output'), - ('r', 'rename-directory', None, 'rename updated directory to %s<v>' - % rename_prefix), - ('s', 'show-latest', None, 'output the latest version of <arg>'), - ('u', 'show-url', None, 'output URL for <arg>'), - ('w', 'wget', wget, 'command to use for wget'), - ] - -args = fancyopts(sys.argv[1:], opts, options, - 'ketchup [options] [ver]') - -archive = options["archive"] -kernel_url = options["kernel-url"] -if options["no-gpg"]: options["gpg-path"] = '' - -# Process args - -if not os.path.exists(options["directory"]): - qprint("Creating target directory", options["directory"]) - os.mkdir(options["directory"]) -os.chdir(options["directory"]) - -if os.path.isfile(".ketchuprc"): - try: - execfile(".ketchuprc") - except Exception, e: - sys.exit('Failed parsing .ketchuprc\nError was: %s' % (e)) - -if options["list-trees"]: - l = version_info.keys() - l.sort() - for tree in l: - if version_info[tree][3] == 0: - lprint(tree, "(unsigned)") - else: - lprint(tree, "(signed)") - lprint(" " + version_info[tree][4]) - sys.exit(0) - -if options["show-makefile"] and len(args) < 2: - if not args: - lprint(get_ver("Makefile")) - else: - lprint(get_ver(args[0])) - sys.exit(0) - -if len(args) == 0 and default_tree: - qprint("Using default tree \"%s\"" % (default_tree)) - args.append(default_tree) - -if len(args) != 1: - error("No version given on command line and no default in configuration") - sys.exit(-1) - -if options["show-latest"]: - lprint(find_ver(args[0])) - sys.exit(0) - -if options["show-url"]: - lprint(version_urls(find_ver(args[0]))[0]) - sys.exit(0) - -if options["show-previous"]: - v = find_ver(args[0]) - p = prebase(v) - if p == v: p = base(v) - if p == v: - if rev(v) > 0: p = "%.1f.%s" % (tree(v), rev(v) -1) - else: p = "unknown" - lprint(p) - sys.exit(0) - -if not os.path.exists(options["archive"]): - qprint("Creating cache directory", options["archive"]) - os.mkdir(options["archive"]) - -if precommand and os.system(precommand): - sys.exit('Precommand "%s" failed!' % precommand) - -try: - a = get_ver('Makefile') -except: - a = None - -if not a and os.listdir("."): - error("Can't find kernel version for non-empty directory") - sys.exit(-1) - -b = find_ver(args[0]) -qprint("%s -> %s" % (a, b)) -transform(a, b) -if options["rename-directory"] and not options["dry-run"]: - rename_dir(b) - -if postcommand and os.system(postcommand): - sys.exit('Postcommand "%s" failed!' % postcommand) diff --git a/buildconfigs/mk.linux-2.6 b/buildconfigs/mk.linux-2.6 deleted file mode 100644 index 6b8d989..0000000 --- a/buildconfigs/mk.linux-2.6 +++ /dev/null @@ -1,10 +0,0 @@ -XEN_LINUX_SOURCE ?= tarball -LINUX_VER ?= 2.6 - -IMAGE_TARGET ?= vmlinux bzImage - -XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config - -EXTRAVERSION ?= - -include buildconfigs/mk.linux-2.6-common diff --git a/buildconfigs/mk.linux-2.6-common b/buildconfigs/mk.linux-2.6-common deleted file mode 100644 index e8e97fb..0000000 --- a/buildconfigs/mk.linux-2.6-common +++ /dev/null @@ -1,154 +0,0 @@ -LINUX_SERIES = 2.6 - -# Linux search path, will be searched for tarballs and mercurial -# repositories. -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 - -ifeq ($(XEN_LINUX_NONINTERACTIVE_CONFIG),y) -__NONINT_CONFIG = yes $$'\n' | -else -__NONINT_CONFIG = -endif - -LINUX_DIR = build-linux-$(LINUX_VER)$(EXTRAVERSION)_$(XEN_TARGET_ARCH) - -IMAGE_TARGET ?= vmlinuz - -LINUX_VER3 := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER))) - -.PHONY: _build -_build: build - --include buildconfigs/src.$(XEN_LINUX_SOURCE) - -LINUX_ARCH = $$(sh buildconfigs/select-linux-arch $(LINUX_SRCDIR)) -IMAGE_PATH = $$(sh buildconfigs/select-linux-image $(LINUX_DIR) $(LINUX_ARCH) $(IMAGE_TARGET)) - -INSTALL_BOOT_PATH := $(DESTDIR)/boot - -# Default to allowing interface mismatch -ifndef XEN_LINUX_ALLOW_INTERFACE_MISMATCH -XEN_LINUX_ALLOW_INTERFACE_MISMATCH := y -endif - -KERNELRELEASE = $(shell $(MAKE) -s --no-print-directory -C $(LINUX_DIR) kernelrelease) - -# The real action starts here! -.PHONY: build -build: $(LINUX_DIR)/include/linux/autoconf.h -ifneq ($(XEN_LINUX_ALLOW_INTERFACE_MISMATCH),y) - @if ! diff -urN -X buildconfigs/interface.exclude \ - $(LINUX_SRCDIR)/include/xen/interface xen/include/public ; then \ - echo "" 1>&2 ; \ - echo " *** $(LINUX_SRCDIR)/include/xen/interface is out of date " 1>&2 ; \ - echo " *** relative to $(XEN_ROOT)/xen/include/public." 1>&2 ; \ - echo "" 1>&2 ; \ - exit 1 ; \ - fi -endif - if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ - $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) modules || exit 1 ; \ - $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \ - fi - $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) $(IMAGE_TARGET) - mkdir -p $(INSTALL_BOOT_PATH) - @cp -v $(IMAGE_PATH) $(INSTALL_BOOT_PATH)/vmlinuz-$(KERNELRELEASE) - @cp -v $(LINUX_DIR)/.config $(INSTALL_BOOT_PATH)/config-$(KERNELRELEASE) - @cp -v $(LINUX_DIR)/System.map $(INSTALL_BOOT_PATH)/System.map-$(KERNELRELEASE) - -$(LINUX_DIR)/include/linux/autoconf.h: CONFIG_FILE=$(CURDIR)/$(LINUX_DIR)/.config -$(LINUX_DIR)/include/linux/autoconf.h: $(LINUX_SRCDIR)/.valid-src - rm -rf $(LINUX_DIR) - mkdir -p $(LINUX_DIR) - # Re-use config from install dir if one exists. Next try to use - # buildconfigs/create_config.sh is one is provided by the source - # tree. Finally attempt to use make defconfig. - set -e ; \ - CONFIG_VERSION=$$(sed -ne 's/$$(XENGUEST)//; s/^EXTRAVERSION = //p' $(LINUX_SRCDIR)/Makefile); \ - if [ ! -z "$(XEN_LINUX_CONFIG)" -a -r "$(XEN_LINUX_CONFIG)" ]; then \ - cp $(XEN_LINUX_CONFIG) $(CONFIG_FILE); \ - elif [ -r $(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION$(EXTRAVERSION) ] ; then \ - cp $(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION$(EXTRAVERSION) $(CONFIG_FILE) ; \ - elif [ -e $(LINUX_SRCDIR)/buildconfigs/create_config.sh ] ; then \ - cd $(LINUX_SRCDIR) && sh buildconfigs/create_config.sh \ - $(CONFIG_FILE) $(EXTRAVERSION) $(XEN_TARGET_ARCH) $(XEN_SYSTYPE) ; \ - echo "Configured $(LINUX_DIR) using create_config.sh" ; \ - elif $(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) defconfig O=$$(/bin/pwd)/$(LINUX_DIR) ; then \ - echo "Configured $(LINUX_DIR) using defconfig" ; \ - else \ - echo "No configuration method found for this kernel" ; \ - fi -ifneq ($(XEN_LINUX_CONFIG_UPDATE),) - echo "Updating $(CONFIG_FILE) using $(XEN_LINUX_CONFIG_UPDATE)" - sh $(XEN_LINUX_CONFIG_UPDATE) $(CONFIG_FILE) -endif -ifeq ($(XEN_TARGET_ARCH),x86_32) - sed -e 's!^CONFIG_HIGHMEM4G=y$$!\# CONFIG_HIGHMEM4G is not set!;s!^\# CONFIG_HIGHMEM64G is not set$$!CONFIG_HIGHMEM64G=y!' $(CONFIG_FILE) > $(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE) -endif -ifneq ($(EXTRAVERSION),) - echo "$(EXTRAVERSION)" >$(LINUX_DIR)/localversion-xen -endif - $(__NONINT_CONFIG) $(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) oldconfig O=$$(/bin/pwd)/$(LINUX_DIR) - @set -e ; if [ ! -f $(LINUX_DIR)/Makefile ] ; then \ - echo "==================================="; \ - echo "oldconfig did not create a Makefile"; \ - echo "Generating $(LINUX_DIR)/Makefile "; \ - echo "==================================="; \ - ( echo "# Automatically generated: don't edit"; \ - echo ""; \ - echo "VERSION = 2"; \ - echo "PATCHLEVEL = 6"; \ - echo ""; \ - echo "KERNELSRC := $(CURDIR)/$(LINUX_SRCDIR)"; \ - echo "KERNELOUTPUT := $(CURDIR)/$(LINUX_DIR)"; \ - echo ""; \ - echo "MAKEFLAGS += --no-print-directory"; \ - echo ""; \ - echo ".PHONY: all \$$(MAKECMDGOALS)"; \ - echo ""; \ - echo "all:"; \ - echo " \$$(MAKE) -C \$$(KERNELSRC) O=\$$(KERNELOUTPUT)"; \ - echo ""; \ - echo "Makefile:;"; \ - echo ""; \ - echo "\$$(filter-out all Makefile,\$$(MAKECMDGOALS)) %/:"; \ - echo " \$$(MAKE) -C \$$(KERNELSRC) O=\$$(KERNELOUTPUT) \$$@"; \ - ) > $(LINUX_DIR)/Makefile ; \ - fi - $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) prepare - -.PHONY: prep -prep: $(LINUX_DIR)/include/linux/autoconf.h - -.PHONY: config -config: CONFIGMODE = menuconfig -config: $(LINUX_DIR)/include/linux/autoconf.h - $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) $(CONFIGMODE) - -.PHONY: clean -clean:: - [ ! -d $(LINUX_DIR) ] || \ - $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) clean - -.PHONY: delete -delete: - rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) $(LINUX_SRCDIR) - -.PHONY: mrproper -mrproper: - rm -rf $(LINUX_SRCDIR) - rm -f linux-$(LINUX_VER).tar.bz2 - -.PHONY: $(LINUX_SRCDIR)/.force-update -$(LINUX_SRCDIR)/.force-update: - @ : diff --git a/buildconfigs/mk.linux-2.6-git b/buildconfigs/mk.linux-2.6-git deleted file mode 100644 index 1a142dd..0000000 --- a/buildconfigs/mk.linux-2.6-git +++ /dev/null @@ -1,2 +0,0 @@ -LINUX_VER ?= 2.6-git -include buildconfigs/mk.linux-2.6 diff --git a/buildconfigs/mk.linux-2.6-mm b/buildconfigs/mk.linux-2.6-mm deleted file mode 100644 index f02e864..0000000 --- a/buildconfigs/mk.linux-2.6-mm +++ /dev/null @@ -1,2 +0,0 @@ -LINUX_VER ?= 2.6-mm -include buildconfigs/mk.linux-2.6 diff --git a/buildconfigs/mk.linux-2.6-native b/buildconfigs/mk.linux-2.6-native deleted file mode 100644 index c7c0949..0000000 --- a/buildconfigs/mk.linux-2.6-native +++ /dev/null @@ -1,5 +0,0 @@ -EXTRAVERSION = -native -IMAGE_TARGET = bzImage -INSTALL_BOOT_PATH = $(DESTDIR)/boot - -include buildconfigs/mk.linux-2.6-common diff --git a/buildconfigs/mk.linux-2.6-pvops b/buildconfigs/mk.linux-2.6-pvops deleted file mode 100644 index 59cae79..0000000 --- a/buildconfigs/mk.linux-2.6-pvops +++ /dev/null @@ -1,17 +0,0 @@ -XEN_LINUX_SOURCE ?= git-clone -LINUX_VER ?= 2.6-pvops - -IMAGE_TARGET ?= bzImage - -XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config - -ifeq ($(GIT_HTTP),y) -XEN_LINUX_GIT_URL ?= http://www.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git -else -XEN_LINUX_GIT_URL ?= git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git -endif -XEN_LINUX_GIT_REMOTEBRANCH ?= xen/stable-2.6.32.x - -EXTRAVERSION ?= - -include buildconfigs/mk.linux-2.6-common diff --git a/buildconfigs/mk.linux-2.6-rc b/buildconfigs/mk.linux-2.6-rc deleted file mode 100644 index 34f4513..0000000 --- a/buildconfigs/mk.linux-2.6-rc +++ /dev/null @@ -1,2 +0,0 @@ -LINUX_VER ?= 2.6-rc -include buildconfigs/mk.linux-2.6 diff --git a/buildconfigs/mk.linux-2.6-tip b/buildconfigs/mk.linux-2.6-tip deleted file mode 100644 index 0588ad2..0000000 --- a/buildconfigs/mk.linux-2.6-tip +++ /dev/null @@ -1,2 +0,0 @@ -LINUX_VER ?= 2.6-tip -include buildconfigs/mk.linux-2.6 diff --git a/buildconfigs/mk.linux-2.6-tip-latest b/buildconfigs/mk.linux-2.6-tip-latest deleted file mode 100644 index 2a0b9af..0000000 --- a/buildconfigs/mk.linux-2.6-tip-latest +++ /dev/null @@ -1,17 +0,0 @@ -XEN_LINUX_SOURCE ?= git-clone -LINUX_VER ?= 2.6-x86-latest - -IMAGE_TARGET ?= bzImage vmlinux - -XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config - -ifeq ($(GIT_HTTP),y) -XEN_LINUX_GIT_URL ?= http://www.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip.git -else -XEN_LINUX_GIT_URL ?= git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip.git -endif -XEN_LINUX_GIT_REMOTEBRANCH ?= auto-latest - -EXTRAVERSION ?= - -include buildconfigs/mk.linux-2.6-common diff --git a/buildconfigs/mk.linux-2.6-xen b/buildconfigs/mk.linux-2.6-xen deleted file mode 100644 index 8594b55..0000000 --- a/buildconfigs/mk.linux-2.6-xen +++ /dev/null @@ -1,6 +0,0 @@ -EXTRAVERSION ?= -xen -LINUX_VER ?= 2.6.18 - -XEN_LINUX_SOURCE ?= hg-clone - -include buildconfigs/mk.linux-2.6-common diff --git a/buildconfigs/mk.linux-2.6-xen0 b/buildconfigs/mk.linux-2.6-xen0 deleted file mode 100644 index 96a5712..0000000 --- a/buildconfigs/mk.linux-2.6-xen0 +++ /dev/null @@ -1,2 +0,0 @@ -EXTRAVERSION = -xen0 -include buildconfigs/mk.linux-2.6-xen diff --git a/buildconfigs/mk.linux-2.6-xenU b/buildconfigs/mk.linux-2.6-xenU deleted file mode 100644 index 02f3e07..0000000 --- a/buildconfigs/mk.linux-2.6-xenU +++ /dev/null @@ -1,2 +0,0 @@ -EXTRAVERSION = -xenU -include buildconfigs/mk.linux-2.6-xen diff --git a/buildconfigs/select-linux-arch b/buildconfigs/select-linux-arch deleted file mode 100755 index a5d0856..0000000 --- a/buildconfigs/select-linux-arch +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh - -ME=$(basename $0) - -if [ $# -lt 1 ] || [ $# -gt 2 ] ; then - echo "usage: $ME <linux-build-directory>" 1>&2 - exit 1; -fi - -LINUX_DIR=$1 - -case ${XEN_TARGET_ARCH} in - x86_32|x86_64) - if [ -d ${LINUX_DIR}/arch/x86 ] ; then - ARCH=x86 - elif [ "${XEN_TARGET_ARCH}" = "x86_32" ] ; then - ARCH=i386 - else - ARCH=x86_64 - fi - ;; - *) - ARCH=${XEN_TARGET_ARCH} - ;; -esac - -echo "$ME: ${ARCH}" 1>&2 -echo ${ARCH} - -exit 0 diff --git a/buildconfigs/select-linux-image b/buildconfigs/select-linux-image deleted file mode 100755 index 07899f8..0000000 --- a/buildconfigs/select-linux-image +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -ME=$(basename $0) - -if [ $# -lt 3 ] ; then - echo "usage: $ME <linux-build-directory> <linux-arch> <linux-targets...>" 1>&2 - exit 1; -fi - -LINUX_DIR=$1 -LINUX_ARCH=$2 -LINUX_TARGET=$3 # We don't care about second and subsequent targets - -case ${XEN_TARGET_ARCH} in - ia64) - IMAGE=${LINUX_DIR}/arch/ia64/hp/sim/boot/vmlinux.gz - ;; - *) - if [ -f ${LINUX_DIR}/arch/${LINUX_ARCH}/boot/${LINUX_TARGET} ] ; then - IMAGE=${LINUX_DIR}/arch/${LINUX_ARCH}/boot/${LINUX_TARGET} - elif [ -f ${LINUX_DIR}/${LINUX_TARGET} ] ; then - IMAGE=${LINUX_DIR}/${LINUX_TARGET} - else - echo "$ME: cannot determine Linux image to use for ${LINUX_ARCH} in ${LINUX_DIR}" 1>&2 - exit 1 - fi - ;; -esac - -echo "$ME: ${IMAGE}" 1>&2 -echo ${IMAGE} - -exit 0 diff --git a/buildconfigs/select-repository b/buildconfigs/select-repository deleted file mode 100755 index 48ae00f..0000000 --- a/buildconfigs/select-repository +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh - -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 - -if [ -d ${XEN_ROOT}/.hgxxx ] ; then - 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"$BASE" = "X" ] ; then - echo "$ME: Unable to determine Xen repository base." 1>&2 - exit 1; - fi - if [ -d "$XEN" ] && [ ! -d "$BASE/$REPO" ] ; then - echo "$ME: No such dir: $BASE/$REPO" 1>&2 - exit 1 - fi - - echo "$ME: Found ${BASE}/${REPO}" 1>&2 - - # If ${BASE}/${REPO} is a local directory then prepend file:// so that - # the test in src.hg-clone will fail and we will clone instead of - # linking this repository. We only want to link repositories which - # were found via LINUX_SRC_PATH. - if [ -d "${BASE}/${REPO}" ] ; then - echo "file://${BASE}/${REPO}" - else - echo ${BASE}/${REPO} - fi -else - echo "Unable to determine path to Linux source tree." 1>&2 - echo "Falling back to linux-2.6.18-xen Mercurial repository." 1>&2 - echo http://xenbits.xen.org/linux-2.6.18-xen.hg -fi - -exit 0 diff --git a/buildconfigs/src.git-clone b/buildconfigs/src.git-clone deleted file mode 100644 index 35865e1..0000000 --- a/buildconfigs/src.git-clone +++ /dev/null @@ -1,32 +0,0 @@ -# Mercurial -GIT ?= git - -LINUX_SRCDIR ?= linux-$(LINUX_VER).git - -# The URL of the remote GIT repository -ifeq ($(XEN_LINUX_GIT_URL),) -.ERROR: XEN_LINUX_GIT_URL not specified -endif - -# The branch in the remote repository -ifeq ($(XEN_LINUX_GIT_REMOTEBRANCH),) -.ERROR: XEN_LINUX_GIT_REMOTEBRANCH not specified -endif - -XEN_GIT_ORIGIN ?= xen - -XEN_LINUX_GIT_LOCALBRANCH ?= $(XEN_LINUX_GIT_REMOTEBRANCH) - -# Set XEN_LINUX_GITREV to update to a particlar revision. -XEN_LINUX_GITREV ?= $(XEN_GIT_ORIGIN)/$(XEN_LINUX_GIT_REMOTEBRANCH) - -$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE) - set -ex; \ - if ! [ -d $(LINUX_SRCDIR) ]; then \ - rm -rf $(LINUX_SRCDIR) $(LINUX_SRCDIR).tmp; \ - mkdir $(LINUX_SRCDIR).tmp; rmdir $(LINUX_SRCDIR).tmp; \ - $(GIT) clone -o $(XEN_GIT_ORIGIN) -n $(XEN_LINUX_GIT_URL) $(LINUX_SRCDIR).tmp; \ - (cd $(LINUX_SRCDIR).tmp; git checkout -b $(XEN_LINUX_GIT_LOCALBRANCH) $(XEN_LINUX_GITREV) ); \ - mv $(LINUX_SRCDIR).tmp $(LINUX_SRCDIR); \ - fi - touch $@ diff --git a/buildconfigs/src.hg-clone b/buildconfigs/src.hg-clone deleted file mode 100644 index 0586bc8..0000000 --- a/buildconfigs/src.hg-clone +++ /dev/null @@ -1,32 +0,0 @@ -# Mercurial -HG ?= hg - -LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg - -# Repository to clone. -XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH)) - -# Set XEN_LINUX_HGREV to update to a particlar revision. -XEN_LINUX_HGREV ?= tip - -$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE) - set -e ; \ - if [ ! -e $(LINUX_SRCDIR)/.hg ] ; then \ - __repo=$(XEN_LINUX_HGREPO) ; \ - if [ -d $${__repo} ] ; then \ - echo "Linking $${__repo} to $(LINUX_SRCDIR)." ; \ - ln -s $${__repo} $(LINUX_SRCDIR) ; \ - else \ - echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \ - $(HG) clone $${__repo#file://} $(LINUX_SRCDIR) ; \ - fi ; \ - else \ - __parent=$$($(HG) -R $(LINUX_SRCDIR) path default) ; \ - echo "Pulling changes from $${__parent} into $(LINUX_SRCDIR)." ; \ - $(HG) -R $(LINUX_SRCDIR) pull $${__parent} ; \ - fi - set -e ; if [ -n "$(XEN_LINUX_HGREV)" ] ; then \ - echo "Updating $(LINUX_SRCDIR) to revision $(XEN_LINUX_HGREV)." ; \ - ( cd $(LINUX_SRCDIR) && $(HG) update $(XEN_LINUX_HGREV) ); \ - fi - touch $@ diff --git a/buildconfigs/src.tarball b/buildconfigs/src.tarball deleted file mode 100644 index 2101e1a..0000000 --- a/buildconfigs/src.tarball +++ /dev/null @@ -1,19 +0,0 @@ -XEN_LINUX_MIRROR ?= http://www.kernel.org/pub/linux/kernel/v2.6/ -XEN_LINUX_TARBALL ?= linux-$(LINUX_VER)-xen.tar.bz2 - -LINUX_SRCDIR ?= linux-$(LINUX_VER) - -KETCHUP ?= python buildconfigs/ketchup - -vpath linux-%.tar.bz2 $(LINUX_SRC_PATH) - -# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH -linux-%.tar.bz2: - @echo "Cannot find $@ in path $(LINUX_SRC_PATH)" - false wget $(XEN_LINUX_MIRROR)/$@ -O./$@ - -# XXX create a pristine tree for diff -Nurp convenience - -%/.valid-src: $(__XEN_LINUX_UPDATE) - $(KETCHUP) -d $(@D) $(LINUX_VER) - touch $@ # update timestamp to avoid rebuild diff --git a/config/Linux.mk b/config/Linux.mk index 10d84af..b421a1c 100644 --- a/config/Linux.mk +++ b/config/Linux.mk @@ -1,8 +1 @@ include $(XEN_ROOT)/config/StdGNU.mk - -# You may use wildcards, e.g. KERNELS=*2.6* -KERNELS ?= - -XKERNELS := $(foreach kernel, $(KERNELS), \ - $(patsubst buildconfigs/mk.%,%, \ - $(wildcard buildconfigs/mk.$(kernel))) ) diff --git a/configure b/configure index c2c724a..d5c8500 100755 --- a/configure +++ b/configure @@ -592,7 +592,6 @@ SUBSYSTEMS docs stubdom tools -kernels xen subdirs host_os @@ -645,7 +644,6 @@ ac_subst_files='' ac_user_opts=' enable_option_checking enable_xen -enable_kernels enable_tools enable_stubdom enable_docs @@ -654,7 +652,6 @@ enable_docs host_alias target_alias' ac_subdirs_all='xen -kernels tools stubdom docs' @@ -1271,7 +1268,6 @@ Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-xen Disable build and install of xen - --disable-kernels Disable build and install of kernels --disable-tools Disable build and install of tools --enable-stubdom Enable build and install of stubdom --disable-docs Disable build and install of docs @@ -1891,52 +1887,6 @@ fi -# Check whether --enable-kernels was given. -if test "${enable_kernels+set}" = set; then : - enableval=$enable_kernels; - -if test "x$enableval" = "xyes"; then : - - -kernels=y -SUBSYSTEMS="$SUBSYSTEMS kernels" - - -else - -if test "x$enableval" = "xno"; then : - - -kernels=n - - -fi - -fi - - -else - - -kernels=y -SUBSYSTEMS="$SUBSYSTEMS kernels" - - -fi - - -if test -e "kernels/configure"; then : - -if test "x$kernels" = "xy" || test "x$kernels" = "x" ; then - subdirs="$subdirs kernels" - -fi - -fi - - - - # Check whether --enable-tools was given. if test "${enable_tools+set}" = set; then : enableval=$enable_tools; diff --git a/configure.ac b/configure.ac index ce06dad..6c14524 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,6 @@ case "$host_cpu" in esac AX_SUBSYSTEM_DEFAULT_ENABLE([xen]) -AX_SUBSYSTEM_DEFAULT_ENABLE([kernels]) AX_SUBSYSTEM_DEFAULT_ENABLE([tools]) AX_SUBSYSTEM_CONDITIONAL([stubdom], $arch_enable_stubdom) AX_SUBSYSTEM_DEFAULT_ENABLE([docs])