WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-api

[Xen-API] [PATCH 6 of 6] Hook RPM build into mk/Makefile

To: xen-api@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-API] [PATCH 6 of 6] Hook RPM build into mk/Makefile
From: David Scott <dave.scott@xxxxxxxxxxxxx>
Date: Fri, 28 May 2010 15:26:14 +0100
Delivery-date: Fri, 28 May 2010 07:25:19 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <patchbomb.1275056768@xxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-api-request@lists.xensource.com?subject=help>
List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>
List-post: <mailto:xen-api@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-api>, <mailto:xen-api-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-api>, <mailto:xen-api-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-api-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User David Scott <dave.scott@xxxxxxxxxxxxx>
# Date 1275056756 -3600
# Node ID 6c138bada8993d8261dede260f76a6f28cc6ae3c
# Parent  1709c85adc098e4db1e255268e1b9b471d1ffc00
Hook RPM build into mk/Makefile

Signed-off-by: David Scott <dave.scott@xxxxxxxxxxxxx>

diff -r 1709c85adc09 -r 6c138bada899 mk/Makefile
--- a/mk/Makefile       Fri May 28 15:25:56 2010 +0100
+++ b/mk/Makefile       Fri May 28 15:25:56 2010 +0100
@@ -32,68 +32,53 @@
 export PRODUCT_VERSION
 
 .PHONY: build
-build: $(OUTPUT_XAPI) $(OUTPUT_XAPI_DEVEL) $(OUTPUT_CLI_RT) $(OUTPUT_SDK) 
$(MY_OBJ_DIR)/.rpmbuild.cli.stamp $(MY_SOURCES)/MANIFEST
+build: $(OUTPUT_CLI_RT) $(OUTPUT_SDK) $(MY_SOURCES)/MANIFEST
        $(call mkdir_clean,$(MY_LINUX_CDFILES)/client_install)
-       install -m 755 -o root -g root $(RPM_RPMSDIR)/i386/xe-cli-*.rpm 
$(MY_LINUX_CDFILES)/client_install/
+       install -m 755 -o root -g root 
$(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-xe*.rpm 
$(MY_LINUX_CDFILES)/client_install/
 
 $(MY_SOURCES)/MANIFEST: $(MY_SOURCES_DIRSTAMP) $(OUTPUT_XAPI_SRC)
-       echo api gpl+lgpl-with-linking-exception file $(OUTPUT_XAPI_SRC) > $@
+       rm -f $@
+       @for srpm in "$(/bin/ls -1 ${MY_OUTPUT_DIR}/SRPMS)"; do \
+               path=$(MY_OUTPUT_DIR)/SRPMS/${srpm}; \
+               echo "$(${RPM} --qf "%{name}" -qp ${path}) $(${RPM} --qf 
"%{License}" -qp ${path}) ${path}" >>$@; \
+       done
        echo api gpl file $(JQUERY_PACK_DIST) >> $@
        echo api gpl file $(JQUERY_TV_DIST) >> $@
 
 $(OUTPUT_XAPI_SRC):
        cd $(REPO) && hg archive -t tbz2 $(HG_EXCLUDE) $@
 
-$(OUTPUT_XAPI) $(OUTPUT_XAPI_DEVEL) $(OUTPUT_CLI_RT) $(OUTPUT_SDK): $(call 
hg_req,xen-api) $(MY_MAIN_PACKAGES)/.dirstamp
+$(OUTPUT_CLI_RT) $(OUTPUT_SDK): $(MY_MAIN_PACKAGES)/.dirstamp 
$(RPM_DIRECTORIES)
        $(MAKE) clean
        $(MAKE) -C $(REPO) version
-       $(MAKE) -C $(REPO)
+       $(MAKE) -C $(REPO) srpm
+       mkdir -p $(RPM_RPMSDIR)/$(DOMAIN_ZERO_OPTIMIZED)
+       $(RPMBUILD) --rebuild --target $(DOMAIN0_ARCH_OPTIMIZED) 
$(MY_OUTPUT_DIR)/SRPMS/xapi-*.src.rpm
+       # extract the cli-rt/ binaries from xapi-tests
+       mkdir -p $(MY_OUTPUT_DIR)/tmp
+       (cd $(MY_OUTPUT_DIR); rpm2cpio 
$(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-tests*.rpm | cpio -i 
--make-directories; cd cli-rt; tar -zcf $(OUTPUT_CLI_RT) .)
+       rm -rf $(MY_OUTPUT_DIR)/tmp
 
-       rm -rf $(STAGING) $(STAGING_CLI_RT)
-       $(MAKE) -C $(REPO) install
-       mkdir -p $(MY_MAIN_PACKAGES)
-       tar -C $(STAGING) -jcf $(OUTPUT_XAPI) .
-       mkdir -p $(MY_OUTPUT_DIR)
-       tar -C $(STAGING_CLI_RT) -zcf $(OUTPUT_CLI_RT) .
+       # extract the xapi-docs
+       mkdir -p $(OUTPUT_SDK_DIR)/tmp
+       (cd $(OUTPUT_SDK_DIR)/tmp; rpm2cpio 
$(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-docs*.rpm | cpio -i 
--make-directories; tar -zcf $(OUTPUT_SDK) .;zip -9rv $(OUTPUT_WEBZIP) .)
+       rm -rf $(OUTPUT_SDK_DIR)/tmp
 
-       rm -rf $(STAGING)
-       $(MAKE) -C $(REPO) DESTDIR=$(STAGING) lib-install
-       tar -C $(STAGING) -zcf $(OUTPUT_XAPI_DEVEL) .
+       # Unpack the xapi-datamodel-devel RPM for now
+       rm -rf $(OUTPUT_DATAMODEL_DIR)
+       mkdir -p $(OUTPUT_DATAMODEL_DIR)/tmp
+       (cd $(OUTPUT_DATAMODEL_DIR)/tmp; rpm2cpio 
$(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-datamodel-devel*.rpm | cpio -i 
--make-directories)
+       mv $(OUTPUT_DATAMODEL_DIR)/tmp/usr/lib/ocaml/xapi-datamodel/* 
$(OUTPUT_DATAMODEL_DIR)
+       rm -rf $(OUTPUT_DATAMODEL_DIR)/tmp
 
-       rm -rf $(STAGING)
-       $(MAKE) -C $(REPO) sdk-install
-       $(call mkdir_clean,$(OUTPUT_DOCS))
-       cp $(STAGING)/SDK/README.html $(OUTPUT_DOCS)/
-       cp -a $(STAGING)/SDK/docs $(OUTPUT_DOCS)/
-       cd $(STAGING)/SDKwww && zip -9rv $(OUTPUT_WEBZIP) .
-       mkdir -p $(OUTPUT_SDK_DIR)
-       tar -C $(STAGING) -zcf $(OUTPUT_SDK) .
-
-       rm -rf $(OUTPUT_DATAMODEL_DIR)
-       mkdir -p $(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/datamodel.a 
$(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/datamodel.cmxa 
$(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/datamodel.cmi 
$(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/datamodel_types.cmi 
$(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/datamodel_utils.cmi 
$(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/dm_api.cmi 
$(OUTPUT_DATAMODEL_DIR)
-       install -m 644 -o root -g root $(REPO)/ocaml/idl/api_messages.cmi 
$(OUTPUT_DATAMODEL_DIR)
-
-$(RPM_SOURCESDIR)/xe: $(REPO)/ocaml/xe-cli/xe
-       mkdir -p $(RPM_SOURCESDIR)
-       cp $< $@
-
-$(RPM_SOURCESDIR)/bash-completion: $(REPO)/ocaml/xe-cli/bash-completion
-       mkdir -p $(RPM_SOURCESDIR)
-       cp $< $@
-
-$(RPM_SPECSDIR)/xe.spec: xe.spec.in
-       mkdir -p $(RPM_SPECSDIR)
-       $(call brand,xe.spec.in) > $@
-
-$(MY_OBJ_DIR)/.rpmbuild.cli.stamp: $(RPM_DIRECTORIES) $(RPM_SPECSDIR)/xe.spec 
$(OUTPUT_CLI_RPM_SOURCES)
-       $(RPMBUILD) --target i386 -ba $(RPM_SPECSDIR)/xe.spec
-       touch $@
+       # Make sure the right RPMs appear on the install CD
+       mkdir $(MY_MAIN_PACKAGES)
+       cp $(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-core-*.rpm 
$(MY_MAIN_PACKAGES)
+       cp $(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-squeezed-*.rpm 
$(MY_MAIN_PACKAGES)
+       cp $(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-tests-*.rpm 
$(MY_MAIN_PACKAGES)
+       cp $(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-www-*.rpm 
$(MY_MAIN_PACKAGES)
+       cp $(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-xe-*.rpm 
$(MY_MAIN_PACKAGES)
+       cp $(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED)/xapi-xenops-*.rpm 
$(MY_MAIN_PACKAGES)
 
 .PHONY: clean
 clean:

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api