[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-API] [PATCH 14 of 14] Hook RPM build into main mk/Makefile
# HG changeset patch # User David Scott <dave.scott@xxxxxxxxxxxxx> # Date 1275056405 -3600 # Node ID 6310f068b5c8143d1fcb82ae169097196ec5d19b # Parent e6aea5fad86ef6f261a3a7cfbc54555f3c2c8c6d Hook RPM build into main mk/Makefile Signed-off-by: David Scott <dave.scott@xxxxxxxxxxxxx> diff -r e6aea5fad86e -r 6310f068b5c8 Makefile --- a/Makefile Fri May 28 15:19:58 2010 +0100 +++ b/Makefile Fri May 28 15:20:05 2010 +0100 @@ -1,6 +1,8 @@ ifdef B_BASE include $(B_BASE)/common.mk +include $(B_BASE)/rpmbuild.mk REPO=$(call hg_loc,xen-dist-ocaml) +DIST=$(CARBON_DISTFILES)/ocaml else MY_OUTPUT_DIR ?= $(CURDIR)/output MY_OBJ_DIR ?= $(CURDIR)/obj @@ -8,10 +10,13 @@ RPM_SPECSDIR?=/usr/src/redhat/SPECS RPM_SRPMSDIR?=/usr/src/redhat/SRPMS -RPM_SOURCEDIR?=/usr/src/redhat/SOURCES -XEN_RELEASE?=unknown +RPM_RPMSDIR?=/usr/src/redhat/RPMS +RPM_SOURCESDIR?=/usr/src/redhat/SOURCES +RPMBUILD?=rpmbuild -CARBON_DISTFILES ?= /data +DIST?=/data + +DOMAIN0_ARCH_OPTIMIZED?=i686 %/.dirstamp: @mkdir -p $* @@ -20,10 +25,7 @@ COMPONENTS=ocaml findlib omake xmlm getopt type-conv PREFIX=/opt/xensource - -.PHONY: build -build: $(MY_OUTPUT_DIR)/ocaml-libs.tar.gz $(MY_SOURCES)/MANIFEST - @ : +XEN_RELEASE?=unknown OCAML_VERSION=3.11.0 FINDLIB_VERSION=1.1.2pl1 @@ -32,101 +34,44 @@ GETOPT_VERSION=20040811 TYPECONV_VERSION=1.6.8 +RPM_BINDIR=$(RPM_RPMSDIR)/$(DOMAIN0_ARCH_OPTIMIZED) + +.PHONY: build +build: srpm $(MY_SOURCES)/MANIFEST + $(RPMBUILD) --target $(DOMAIN0_ARCH_OPTIMIZED) -bb ocaml.spec + $(RPM) -ihv $(RPM_BINDIR)/{ocaml-3*.rpm,ocaml-camlp4*.rpm} || echo ocaml is already installed + $(RPMBUILD) --target $(DOMAIN0_ARCH_OPTIMIZED) -bb findlib.spec + $(RPM) -ihv $(RPM_BINDIR)/ocaml-findlib*.rpm || echo ocaml-findlib is already installed + $(RPMBUILD) --target $(DOMAIN0_ARCH_OPTIMIZED) -bb omake.spec + $(RPM) -ihv $(RPM_BINDIR)/omake* || echo omake is already installed + $(RPMBUILD) --target $(DOMAIN0_ARCH_OPTIMIZED) -bb xmlm.spec getopt.spec type-conv.spec + .PHONY: srpm srpm: - cp $(CARBON_DISTFILES)/ocaml-${OCAML_VERSION}.tar.bz2 $(RPM_SOURCEDIR)/ - cp $(CARBON_DISTFILES)/findlib-${FINDLIB_VERSION}.tar.gz $(RPM_SOURCEDIR)/ - cp $(CARBON_DISTFILES)/omake-${OMAKE_VERSION}.tar.gz $(RPM_SOURCEDIR)/ - cp patches/omake-no-sync $(RPM_SOURCEDIR)/ - cp $(CARBON_DISTFILES)/xmlm-${XMLM_VERSION}.tbz $(RPM_SOURCEDIR)/ - cp $(CARBON_DISTFILES)/getopt-${GETOPT_VERSION}.tar.gz $(RPM_SOURCEDIR)/ - rpmbuild -bs ocaml.spec - cp patches/xmlm-do-not-display-none-dtd-on-output $(RPM_SOURCEDIR)/ - rpmbuild --nodeps -bs findlib.spec - rpmbuild --nodeps -bs omake.spec - rpmbuild --nodeps -bs xmlm.spec - rpmbuild --nodeps -bs getopt.spec - rpmbuild --nodeps -bs type-conv.spec + mkdir -p $(RPM_SRPMSDIR) $(RPM_SPECSDIR) $(RPM_SOURCESDIR) $(RPM_RPMSDIR) + cp $(DIST)/ocaml-${OCAML_VERSION}.tar.bz2 $(RPM_SOURCESDIR)/ + cp $(DIST)/findlib-${FINDLIB_VERSION}.tar.gz $(RPM_SOURCESDIR)/ + cp $(DIST)/omake-${OMAKE_VERSION}.tar.gz $(RPM_SOURCESDIR)/ + cp patches/omake-no-sync $(RPM_SOURCESDIR)/ + cp $(DIST)/xmlm-${XMLM_VERSION}.tbz $(RPM_SOURCESDIR)/ + cp $(DIST)/getopt-${GETOPT_VERSION}.tar.gz $(RPM_SOURCESDIR)/ + cp $(DIST)/type-conv-${TYPECONV_VERSION}.tar.bz2 $(RPM_SOURCESDIR)/ + $(RPMBUILD) -bs ocaml.spec + cp patches/xmlm-do-not-display-none-dtd-on-output $(RPM_SOURCESDIR)/ + $(RPMBUILD) --nodeps -bs findlib.spec + $(RPMBUILD) --nodeps -bs omake.spec + $(RPMBUILD) --nodeps -bs xmlm.spec + $(RPMBUILD) --nodeps -bs getopt.spec + $(RPMBUILD) --nodeps -bs type-conv.spec -$(MY_OUTPUT_DIR)/ocaml-libs.tar.gz: $(MY_OUTPUT_DIR)/.dirstamp - $(MAKE) $(foreach c,$(COMPONENTS),install-$(c)) - rm -rf $(MY_OBJ_DIR)/restage - mkdir $(MY_OBJ_DIR)/restage - for i in $(COMPONENTS); do tar -C $(MY_OBJ_DIR)/restage \ - -zxf $(MY_OUTPUT_DIR)/$$i.tar.gz; done - tar -C $(MY_OBJ_DIR)/restage -zcf $@ . +$(MY_SOURCES)/MANIFEST: $(MY_SOURCES_DIRSTAMP) + rm -f $@ + @for srpm in "$(/bin/ls -1 ${MY_OUTPUT_DIR})"; do \ + path=$(MY_OUTPUT_DIR)/SRPMS/${srpm}; \ + echo "$(${RPM} --qf "%{name}" -qp ${path}) $(${RPM} --qf "%{License}" -qp ${path}) ${path}" >>$@; \ + done -$(MY_SOURCES)/MANIFEST: $(MY_SOURCES_DIRSTAMP) $(MY_OUTPUT_DIR)/ocaml-libs.tar.gz - rm -f $@ - for i in $(COMPONENTS); do \ - cat $(MY_OBJ_DIR)/$$i/.sources >> $@; done - # assemble patch list - $(call mkdir_clean,$(MY_OUTPUT_DIR)/patches) - $(MAKE) --no-print-directory patchlist >> $@ - -define comp_template - -$(1)_BUILT=$(MY_OBJ_DIR)/$(1)/.built -$(1)_DOWNLOADED=$(MY_OBJ_DIR)/$(1)/.downloaded -$(1)_EXTRACTED=$(MY_OBJ_DIR)/$(1)/.extracted -$(1)_CONFIGURED=$(MY_OBJ_DIR)/$(1)/.configured -$(1)_PATCHED=$(MY_OBJ_DIR)/$(1)/.patched -$(1)_FAKED=$(MY_OBJ_DIR)/$(1)/.faked -$(1)_SOURCES=$(MY_OBJ_DIR)/$(1)/.sources - -.PHONY: $(1)-% -$(1)-%: - @mkdir -p $(MY_OBJ_DIR)/$(1) - @$(MAKE) -f $(1).mk MAKEFILES=common.mk OBJDIR=$(MY_OBJ_DIR)/$(1) \ - DESTDIR=$(MY_OBJ_DIR)/$(1)-staging \ - COMPONENT=$(1) SRC_DIR=$(CURDIR)/distfiles/$(1) \ - DISTFILES=$(CARBON_DISTFILES)/ocaml PREFIX=$(PREFIX) \ - BUILT=$$($(1)_BUILT) FAKED=$$($(1)_FAKED) PATCHED=$$($(1)_PATCHED) \ - DOWNLOADED=$$($(1)_DOWNLOADED) EXTRACTED=$$($(1)_EXTRACTED) CONFIGURED=$$($(1)_CONFIGURED) \ - SOURCES=$$($(1)_SOURCES) $$* - -$(MY_OBJ_DIR)/$(1)/.downloaded: - $(MAKE) $(1)-download - @touch $$@ - -$(MY_OBJ_DIR)/$(1)/.built: - rm -rf $(MY_OBJ_DIR)/$(1) - mkdir -p $(MY_OBJ_DIR)/$(1) - $(MAKE) $(1)-build - @touch $$@ - -$(MY_OBJ_DIR)/$(1)/.faked: - rm -rf $(MY_OBJ_DIR)/$(1)-staging - mkdir -p $(MY_OBJ_DIR)/$(1)-staging - $(MAKE) $(1)-fake - @touch $$@ - -$(MY_OUTPUT_DIR)/$(1).tar.gz: $(MY_OBJ_DIR)/$(1)/.faked - tar -C $(MY_OBJ_DIR)/$(1)-staging -zcf $$@ . - -.PHONY: install-$(1) -install-$(1): $(MY_OUTPUT_DIR)/$(1).tar.gz - tar -C / -zxf $$< - -endef - -$(foreach c,$(COMPONENTS),$(eval $(call comp_template,$(c)))) - -.PHONY: patchlist -patchlist: - @$(call mkdir_clean,$(MY_OUTPUT_DIR)/patches) - @mkdir -p $(MY_OUTPUT_DIR)/patches - @for c in $(COMPONENTS); do \ - for p in `$(MAKE) --no-print-directory $$c-patchlist`; do \ - echo $$c gpl file $(MY_OUTPUT_DIR)/patches/$$p; \ - cp $(REPO)/patches/$$p $(MY_OUTPUT_DIR)/patches/$$p; \ - done; \ - done .PHONY: clean clean:: - rm -rf $(foreach c,$(COMPONENTS),$(MY_OBJ_DIR)/$(c) $(MY_OBJ_DIR)/$(c)-staging) - mkdir -p $(foreach c,$(COMPONENTS),$(MY_OBJ_DIR)/$(c) $(MY_OBJ_DIR)/$(c)-staging) - rm -f $(foreach c,$(COMPONENTS),$(MY_OUTPUT_DIR)/$(c).tar.gz) - rm -rf $(MY_OBJ_DIR)/restage - rm -f $(MY_OUTPUT_DIR)/ocaml-libs.tar.gz + rm -rf *.rpm diff -r e6aea5fad86e -r 6310f068b5c8 annot.mk --- a/annot.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -V=r26 - -SRC=$(OBJDIR)/annot-$(V) - -$(EXTRACTED): - tar -C $(OBJDIR) -jxf $(DISTFILES)/annot-$(V).tar.bz2 - @touch $@ - -$(CONFIGURED): $(PATCHED) - cd $(SRC) && ./configure --prefix=$(PREFIX) - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) MAKEFILES= - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) install MAKEFILES= BINDIR=$(DESTDIR)$(PREFIX)/bin \ - MAN1DIR=$(DESTDIR)$(PREFIX)/man/man1 - @touch $@ - -$(SOURCES): - @touch $@ - -clean:: - rm -rf $(SRC) diff -r e6aea5fad86e -r 6310f068b5c8 common.mk --- a/common.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -.PHONY: extract -extract: $(EXTRACTED) - @ : - -.PHONY: patch -patch: $(PATCHED) - @ : - -$(PATCHED): $(EXTRACTED) - cd $(SRC) && for i in $(PATCHES); do \ - patch -b -p1 < $(CURDIR)/patches/$$i; \ - done - @touch $@ - -.PHONY: configure -configure: $(CONFIGURED) - @ : - -.PHONY: build -build: $(BUILT) - @ : - -.PHONY: fake -fake: $(FAKED) $(SOURCES) - @ : - -.PHONY: all -all: $(FAKED) - @ : - -.PHONY: clean -clean:: - rm -f $(EXTRACTED) $(BUILT) $(CONFIGURED) $(FAKED) $(PATCHED) - -.PHONY: patchlist -patchlist: - @echo $(PATCHES) diff -r e6aea5fad86e -r 6310f068b5c8 findlib.mk --- a/findlib.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -V=1.1.2pl1 - -NAME=findlib-$(V) -PACKAGE=$(NAME).tar.gz -URL=http://www.ocaml-programming.de/packages/$(PACKAGE) - -SRC=$(OBJDIR)/$(NAME) - -$(DOWNLOADED): - echo $(SRC_DIR) - @mkdir -p $(SRC_DIR) - bash -c 'if [ ! -e $(SRC_DIR)/$(PACKAGE) ]; then if [ -e $(DISTFILES)/$(PACKAGE) ]; then cp $(DISTFILES)/$(PACKAGE) $(SRC_DIR); else wget $(URL) --output-document=$(SRC_DIR)/$(PACKAGE); fi; fi' - @touch $@ - -$(EXTRACTED): $(DOWNLOADED) - cd $(OBJDIR) && tar -zxf $(SRC_DIR)/$(PACKAGE) - @touch $@ - -$(CONFIGURED): $(PATCHED) - cd $(SRC) && ./configure -bindir $(PREFIX)/bin -mandir $(PREFIX)/man - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) all opt - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) prefix=$(DESTDIR) install - rm -f $(DESTDIR)$(PREFIX)/lib/ocaml - @touch $@ - -$(SOURCES): - @touch $@ - -clean:: - rm -rf $(SRC) diff -r e6aea5fad86e -r 6310f068b5c8 getopt.mk --- a/getopt.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -V=20040811 - -PATCHES=getopt-install - -NAME=getopt-$(V) -PACKAGE=$(NAME).tar.gz -URL=http://www.eleves.ens.fr/home/frisch/info/$(PACKAGE) - -SRC=$(OBJDIR)/$(NAME) - -$(DOWNLOADED): - echo $(SRC_DIR) - @mkdir -p $(SRC_DIR) - bash -c 'if [ ! -e $(SRC_DIR)/$(PACKAGE) ]; then if [ -e $(DISTFILES)/$(PACKAGE) ]; then cp $(DISTFILES)/$(PACKAGE) $(SRC_DIR); else wget $(URL) --output-document=$(SRC_DIR)/$(PACKAGE); fi; fi' - @touch $@ - -$(EXTRACTED): $(DOWNLOADED) - cd $(OBJDIR) && tar -zxf $(SRC_DIR)/$(PACKAGE) - mv $(OBJDIR)/getopt $(OBJDIR)/$(NAME) - @touch $@ - -$(CONFIGURED): $(PATCHED) - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) all allopt - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) install - @touch $@ - -$(SOURCES): - echo ocaml gpl file $(DISTFILES)/$(PACKAGE) > $@ - -clean:: - rm -rf $(SRC) diff -r e6aea5fad86e -r 6310f068b5c8 ocaml.mk --- a/ocaml.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -V=3.11.0 - -NAME=ocaml-$(V) -PACKAGE=$(NAME).tar.bz2 -URL=http://caml.inria.fr/pub/distrib/ocaml-3.11/$(PACKAGE) - -SRC=$(OBJDIR)/$(NAME) - -$(DOWNLOADED): - echo $(SRC_DIR) - @mkdir -p $(SRC_DIR) - bash -c 'if [ ! -e $(SRC_DIR)/$(PACKAGE) ]; then if [ -e $(DISTFILES)/$(PACKAGE) ]; then cp $(DISTFILES)/$(PACKAGE) $(SRC_DIR); else wget $(URL) --output-document=$(SRC_DIR)/$(PACKAGE); fi; fi' - @touch $@ - -$(EXTRACTED): $(DOWNLOADED) - cd $(OBJDIR) && tar -jxf $(SRC_DIR)/$(PACKAGE) - @touch $@ - -$(CONFIGURED): $(PATCHED) - cd $(SRC) && ./configure -prefix $(PREFIX) - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) world.opt - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) PREFIX=$(DESTDIR)$(PREFIX) install - @touch $@ - -$(SOURCES): - echo ocaml gpl file $(DISTFILES)/$(PACKAGE) > $@ - -clean:: - rm -rf $(SRC) diff -r e6aea5fad86e -r 6310f068b5c8 omake.mk --- a/omake.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -V=0.9.6.9 -SUBV=1 - -PATCHES=omake-64bit-build-fixes omake-no-sync - -NAME=omake-$(V) -PACKAGE=$(NAME)-$(SUBV).tar.gz -URL=http://omake.metaprl.org/downloads/$(PACKAGE) - -SRC=$(OBJDIR)/$(NAME) - -$(DOWNLOADED): - echo $(SRC_DIR) - @mkdir -p $(SRC_DIR) - bash -c 'if [ ! -e $(SRC_DIR)/$(PACKAGE) ]; then if [ -e $(DISTFILES)/$(PACKAGE) ]; then cp $(DISTFILES)/$(PACKAGE) $(SRC_DIR); else wget $(URL) --output-document=$(SRC_DIR)/$(PACKAGE); fi; fi' - @touch $@ - -$(EXTRACTED): $(DOWNLOADED) - cd $(OBJDIR) && tar -zxf $(SRC_DIR)/$(PACKAGE) - @touch $@ - -$(CONFIGURED): $(PATCHED) - # this will fail because of bad dependencies - -$(MAKE) -C $(SRC) PREFIX=$(PREFIX) boot - rm -f $(SRC)/boot/Makefile.dep - $(MAKE) -C $(SRC)/boot Makefile.dep - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) PREFIX=$(PREFIX) all - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) PREFIX=$(DESTDIR)$(PREFIX) install - @touch $@ - -$(SOURCES): - @touch $@ - -clean:: - rm -rf $(SRC) diff -r e6aea5fad86e -r 6310f068b5c8 patches/getopt-install --- a/patches/getopt-install Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ ---- getopt/Makefile.orig 2007-01-23 07:45:56.000000000 -0500 -+++ getopt/Makefile 2007-01-23 07:51:07.000000000 -0500 -@@ -22,8 +22,10 @@ - sample: getopt.cma sample.cmo - ocamlc -o sample unix.cma getopt.cma sample.cmo - -+install: SITELIB=$(shell ocamlfind printconf destdir) - install: -- ocamlfind install getopt META getopt.cmi getopt.cma $(wildcard getopt.cmxa) $(wildcard getopt.o) $(wildcard getopt.a) -+ mkdir -p $(DESTDIR)$(SITELIB) -+ ocamlfind install -destdir $(DESTDIR)$(SITELIB) getopt META getopt.cmi getopt.cma $(wildcard getopt.cmxa) $(wildcard getopt.o) $(wildcard getopt.a) - - uninstall: - ocamlfind remove getopt diff -r e6aea5fad86e -r 6310f068b5c8 patches/ocaml-get-backtrace --- a/patches/ocaml-get-backtrace Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -diff -ur ocaml-3.10.0/asmrun/backtrace.c ocaml-3.10.0-modified/asmrun/backtrace.c ---- ocaml-3.10.0/asmrun/backtrace.c 2007-01-29 12:10:52.000000000 +0000 -+++ ocaml-3.10.0-modified/asmrun/backtrace.c 2007-05-31 14:50:33.000000000 +0100 -@@ -97,16 +97,17 @@ - - /* Print a backtrace */ - --static void print_location(int index, frame_descr * d) -+static int print_location(int index, frame_descr * d, char *buffer, size_t bufsize) - { - uintnat infoptr; - uint32 info1, info2, k, n, l, a, b; - char * kind; -+ int ret=0; - - /* If no debugging information available, print nothing. - When everything is compiled with -g, this corresponds to - compiler-inserted re-raise operations. */ -- if ((d->frame_size & 1) == 0) return; -+ if ((d->frame_size & 1) == 0) return -1; - /* Recover debugging info */ - infoptr = ((uintnat) d + - sizeof(char *) + sizeof(short) + sizeof(short) + -@@ -136,14 +137,42 @@ - else - kind = "Called from"; - -- fprintf(stderr, "%s file \"%s\", line %d, characters %d-%d\n", -- kind, ((char *) infoptr) + n, l, a, b); -+ ret=snprintf(buffer, bufsize, "%s file \"%s\", line %d, characters %d-%d\n", -+ kind, ((char *) infoptr) + n, l, a, b); -+ if(ret>bufsize) -+ ret=bufsize; -+ -+ return ret; - } - --void caml_print_exception_backtrace(void) -+CAMLexport size_t caml_get_exception_backtrace(char *buffer, size_t length) - { - int i; -+ size_t n=length; -+ int ret; -+ -+ char *pos=buffer; -+ -+ for(i=0; i<caml_backtrace_pos; i++) -+ { -+ ret = print_location(i, (frame_descr *) caml_backtrace_buffer[i], pos, n); -+ if(ret>0) -+ { -+ pos += ret; -+ n -= ret; -+ } -+ } -+ -+ /* Reset the backtrace buffer now */ -+ -+ caml_backtrace_last_exn=Val_unit; -+ -+ return(size_t)(pos - buffer); -+} - -- for (i = 0; i < caml_backtrace_pos; i++) -- print_location(i, (frame_descr *) caml_backtrace_buffer[i]); -+void caml_print_exception_backtrace(void) -+{ -+ char backtracebuffer[1000]; -+ caml_get_exception_backtrace(backtracebuffer,sizeof(backtracebuffer)); -+ fprintf(stderr,"%s",backtracebuffer); - } -diff -ur ocaml-3.10.0/byterun/alloc.h ocaml-3.10.0-modified/byterun/alloc.h ---- ocaml-3.10.0/byterun/alloc.h 2005-09-22 15:21:50.000000000 +0100 -+++ ocaml-3.10.0-modified/byterun/alloc.h 2007-05-31 10:55:33.000000000 +0100 -@@ -16,6 +16,8 @@ - #ifndef CAML_ALLOC_H - #define CAML_ALLOC_H - -+#define CAML_GOT_GET_BACKTRACE 1 -+ - - #ifndef CAML_NAME_SPACE - #include "compatibility.h" -diff -ur ocaml-3.10.0/byterun/backtrace.c ocaml-3.10.0-modified/byterun/backtrace.c ---- ocaml-3.10.0/byterun/backtrace.c 2007-01-29 12:11:15.000000000 +0000 -+++ ocaml-3.10.0-modified/byterun/backtrace.c 2007-05-31 14:50:11.000000000 +0100 -@@ -97,6 +97,7 @@ - } - } - -+ - /* Read the debugging info contained in the current bytecode executable. - Return a Caml array of Caml lists of debug_event records in "events", - or Val_false on failure. */ -@@ -168,16 +169,17 @@ - - /* Print the location corresponding to the given PC */ - --static void print_location(value events, int index) -+static int print_location(value events, int index, char *buffer, size_t bufsize) - { - code_t pc = caml_backtrace_buffer[index]; - char * info; - value ev; -+ int ret; - - ev = event_for_location(events, pc); - if (caml_is_instruction(*pc, RAISE)) { - /* Ignore compiler-inserted raise */ -- if (ev == Val_false) return; -+ if (ev == Val_false) return -1; - /* Initial raise if index == 0, re-raise otherwise */ - if (index == 0) - info = "Raised at"; -@@ -190,7 +192,7 @@ - info = "Called from"; - } - if (ev == Val_false) { -- fprintf(stderr, "%s unknown location\n", info); -+ ret = snprintf(buffer,bufsize, "%s unknown location\n", info); - } else { - value ev_start = Field (Field (ev, EV_LOC), LOC_START); - char *fname = String_val (Field (ev_start, POS_FNAME)); -@@ -199,24 +201,62 @@ - - Int_val (Field (ev_start, POS_BOL)); - int endchr = Int_val (Field (Field (Field (ev, EV_LOC), LOC_END), POS_CNUM)) - - Int_val (Field (ev_start, POS_BOL)); -- fprintf (stderr, "%s file \"%s\", line %d, characters %d-%d\n", info, fname, -- lnum, startchr, endchr); -+ ret = snprintf (buffer,bufsize, "%s file \"%s\", line %d, characters %d-%d\n", info, fname, -+ lnum, startchr, endchr); - } -+ if (ret>bufsize) -+ ret=bufsize; -+ -+ return ret; - } - - /* Print a backtrace */ - --CAMLexport void caml_print_exception_backtrace(void) -+CAMLexport size_t caml_get_exception_backtrace(char *buffer, size_t length) - { -- value events; -- int i; -+ static value events=0; -+ char *pos; -+ int n,i,ret; -+ -+ if(events==0) -+ events = read_debug_info(); - -- events = read_debug_info(); - if (events == Val_false) { -- fprintf(stderr, -- "(Program not linked with -g, cannot print stack backtrace)\n"); -- return; -- } -+ n=snprintf(buffer,length, -+ "(Program not linked with -g, cannot print stack backtrace)\n"); -+ if(n<0) -+ return 0; -+ -+ if(n>length) -+ return length; -+ -+ return n; -+ } -+ -+ pos=buffer; -+ n=length; -+ - for (i = 0; i < caml_backtrace_pos; i++) -- print_location(events, i); -+ { -+ ret = print_location(events, i, pos, n); -+ -+ if(ret>0) -+ { -+ pos+=ret; -+ n-=ret; -+ } -+ } -+ -+ /* Reset the backtrace buffer now */ -+ -+ caml_backtrace_last_exn=Val_unit; -+ -+ return (size_t)(pos-buffer); -+} -+ -+void caml_print_exception_backtrace(void) -+{ -+ char backtracebuffer[1000]; -+ caml_get_exception_backtrace(backtracebuffer,sizeof(backtracebuffer)); -+ fprintf(stderr,"%s",backtracebuffer); - } diff -r e6aea5fad86e -r 6310f068b5c8 patches/ocaml-inotify-install --- a/patches/ocaml-inotify-install Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ ---- ocaml_inotify-0.5/Makefile 2008-01-06 13:21:02.000000000 +0000 -+++ ocaml_inotify-0.5-fixed/Makefile 2008-01-09 13:55:50.307714000 +0000 -@@ -1,13 +1,14 @@ - CC = gcc --CFLAGS = -Wall -fPIC -O2 -+CFLAGS := -Wall -fPIC -O2 $(CFLAGS) - OCAMLC = ocamlc - OCAMLOPT = ocamlopt - - OCAMLOPTFLAGS = - - OCAMLABI := $(shell ocamlc -version) --OCAMLLIBDIR := $(shell ocamlc -where) --OCAMLDESTDIR ?= $(OCAMLLIBDIR) -+OCAMLLIBDIR ?= $(shell ocamlfind printconf destdir) -+DESTDIR ?= -+OCAMLDESTDIR ?= $(DESTDIR)$(OCAMLLIBDIR) - - OCAML_TEST_INC = -I `ocamlfind query oUnit` - OCAML_TEST_LIB = `ocamlfind query oUnit`/oUnit.cmxa -@@ -15,11 +16,17 @@ - LIBS = inotify.cmi inotify.cmxa inotify.cma - PROGRAMS = test.inotify - -+.PHONY: all - all: $(LIBS) -+ @ : - -+.PHONY: bins - bins: $(PROGRAMS) -+ @ : - -+.PHONY: libs - libs: $(LIBS) -+ @ : - - inotify.cmxa: libinotify_stubs.a inotify_stubs.a inotify.cmx - $(OCAMLOPT) $(OCAMLOPTFLAGS) -a -cclib -linotify_stubs -o $@ inotify.cmx -@@ -48,6 +55,7 @@ - - .PHONY: install - install: $(LIBS) -+ mkdir -p $(OCAMLDESTDIR) - ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore inotify META inotify.cmi inotify.mli inotify.cma inotify.cmxa *.a *.so *.cmx - - uninstall: diff -r e6aea5fad86e -r 6310f068b5c8 patches/osqlite3-install --- a/patches/osqlite3-install Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ ---- ocaml_sqlite3-0.1/Makefile.orig 2007-01-25 10:35:32.000000000 -0500 -+++ ocaml_sqlite3-0.1/Makefile 2007-02-01 23:21:16.000000000 -0500 -@@ -1,5 +1,5 @@ - CC = gcc --CFLAGS = -Wall -fPIC -O2 `pkg-config --cflags sqlite3` -+CFLAGS := -Wall -fPIC -O2 `pkg-config --cflags sqlite3` $(CFLAGS) - OCAMLC = ocamlc - OCAMLOPT = ocamlopt - -@@ -9,8 +9,9 @@ - OCAML_PKG_NAME = sqlite3 - - OCAMLABI := $(shell ocamlc -version) --OCAMLLIBDIR := $(shell ocamlc -where) --OCAMLDESTDIR ?= $(OCAMLLIBDIR) -+OCAMLLIBDIR ?= $(shell ocamlfind printconf destdir) -+DESTDIR ?= -+OCAMLDESTDIR ?= $(DESTDIR)$(OCAMLLIBDIR) - - OCAML_TEST_INC = -I `ocamlfind query oUnit` - OCAML_TEST_LIB = `ocamlfind query oUnit`/oUnit.cmxa -@@ -21,11 +22,17 @@ - - PROGRAMS = test.sqlite3 - -+.PHONY: all - all: check $(LIBS) $(PROGRAMS) -+ @ : - -+.PHONY: bins - bins: $(PROGRAMS) -+ @ : - -+.PHONY: libs - libs: $(LIBS) -+ @ : - - sqlite3.cmxa: libsqlite3_stubs.a sqlite3_stubs.a sqlite3.cmx - $(OCAMLOPT) $(OCAMLOPTFLAGS) -a -cclib -lsqlite3 -cclib -lsqlite3_stubs -o $@ sqlite3.cmx -@@ -60,6 +67,7 @@ - - .PHONY: install - install: $(LIBS) -+ mkdir -p $(OCAMLDESTDIR) - ocamlfind install -destdir $(OCAMLDESTDIR) -ldconf ignore $(OCAML_PKG_NAME) META sqlite3.cmi sqlite3.mli sqlite3.cma sqlite3.cmxa *.a *.so *.cmx - - uninstall: diff -r e6aea5fad86e -r 6310f068b5c8 patches/type-conv-install --- a/patches/type-conv-install Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -diff -r e2f8e057ee2e Makefile ---- a/lib/Makefile Mon Oct 19 15:40:26 2009 +0100 -+++ b/lib/Makefile Mon Oct 19 15:45:06 2009 +0100 -@@ -1,5 +1,6 @@ - RESULT = type-conv - -+SITELIB=$(shell ocamlfind printconf destdir) - OCAMLMAKEFILE = ../OCamlMakefile - OCAMLFLAGS = -w Ae - -@@ -11,7 +12,11 @@ - - LIBINSTALL_FILES = pa_type_conv.cmi pa_type_conv.cmo - --install: libinstall --uninstall: libuninstall -+install: -+ mkdir -p $(DESTDIR)$(SITELIB) -+ ocamlfind install -destdir $(DESTDIR)$(SITELIB) -ldconf ignore $(RESULT) META $(LIBINSTALL_FILES) -+ -+uninstall: -+ ocamlfind remove $(RESULT) - - -include $(OCAMLMAKEFILE) diff -r e6aea5fad86e -r 6310f068b5c8 patches/xml-light-install --- a/patches/xml-light-install Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ ---- xml-light/Makefile.orig 2003-10-12 11:16:12.000000000 -0400 -+++ xml-light/Makefile 2006-10-18 11:58:20.000000000 -0400 -@@ -2,7 +2,6 @@ - # http://tech.motion-twin.com - .SUFFIXES : .ml .mli .cmo .cmx .cmi .mll .mly - --INSTALLDIR=`ocamlc -where` - CFLAGS= - LFLAGS= -a - LIBS= -@@ -11,8 +10,10 @@ - - opt: xml-light.cmxa test_opt.exe - -+install: SITELIB=$(shell ocamlfind printconf destdir) - install: all opt -- cp xml-light.cmxa xml-light.a xml-light.cma xml.mli xmlParser.mli dtd.mli xml.cmi xmlParser.cmi dtd.cmi xml.cmx dtd.cmx xmlParser.cmx $(INSTALLDIR) -+ mkdir -p $(DESTDIR)$(SITELIB) -+ ocamlfind install -destdir $(DESTDIR)$(SITELIB) xml-light META xml.mli xmlParser.mli dtd.mli xml.cmi xmlParser.cmi dtd.cmi xml-light.cma xml-light.cmxa xml-light.a - - doc: - mkdir doc -@@ -30,6 +31,8 @@ - xml-light.cmxa: xml_parser.cmx xml_lexer.cmx dtd.cmx xmlParser.cmx xml.cmx - ocamlopt -o xml-light.cmxa $(LFLAGS) $(LIBS) xml_parser.cmx xml_lexer.cmx dtd.cmx xmlParser.cmx xml.cmx - -+xml_parser.cmi: xml_parser.mli -+ - dtd.cmo: xml.cmi xml_lexer.cmi dtd.cmi - - dtd.cmx: xml.cmi xml_lexer.cmi dtd.cmi diff -r e6aea5fad86e -r 6310f068b5c8 patches/xml-light-meta --- a/patches/xml-light-meta Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -diff -r b6415f24f044 xml-light/META ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/META Wed Jun 14 15:52:54 2006 +0100 -@@ -0,0 +1,4 @@ -+version="2.2" -+archive(byte)="xml-light.cma" -+archive(native)="xml-light.cmxa" -+ diff -r e6aea5fad86e -r 6310f068b5c8 patches/xml-light-parse-fix --- a/patches/xml-light-parse-fix Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -diff -r fd4678359d0c xml-light/xml_lexer.mll ---- a/xml_lexer.mll Fri Jun 09 15:57:54 2006 +0100 -+++ b/xml_lexer.mll Fri Jun 09 15:59:20 2006 +0100 -@@ -109,7 +109,7 @@ let newline = ['\n'] - let newline = ['\n'] - let break = ['\r'] - let space = [' ' '\t'] --let identchar = ['A'-'Z' 'a'-'z' '_' '0'-'9' ':' '-'] -+let identchar = ['A'-'Z' 'a'-'z' '_' '0'-'9' ':' '-' '.'] - let entitychar = ['A'-'Z' 'a'-'z'] - let pcchar = [^ '\r' '\n' '<' '>' '&'] - diff -r e6aea5fad86e -r 6310f068b5c8 type-conv.mk --- a/type-conv.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -V=1.6.8 - -PATCHES=type-conv-install - -NAME=type-conv-$(V) -FILENAME=type-conv-release-$(V) -ARCHIVE=release-$(V).tar.bz2 -PACKAGE=$(NAME).tar.bz2 -URL=http://hg.ocaml.info/release/type-conv/archive/$(ARCHIVE) - -SRC=$(OBJDIR)/$(FILENAME) - -$(DOWNLOADED): - echo $(SRC_DIR) - @mkdir -p $(SRC_DIR) - bash -c 'if [ ! -e $(SRC_DIR)/$(PACKAGE) ]; then if [ -e $(DISTFILES)/$(PACKAGE) ]; then cp $(DISTFILES)/$(PACKAGE) $(SRC_DIR); else wget $(URL) --output-document=$(SRC_DIR)/$(PACKAGE); fi; fi' - @touch $@ - -$(EXTRACTED): $(DOWNLOADED) - cd $(OBJDIR) && tar -jxf $(SRC_DIR)/$(PACKAGE) - @touch $@ - -$(CONFIGURED): $(PATCHED) - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) PREFIX=$(DESTDIR)$(PREFIX) install - @touch $@ - -$(SOURCES): - echo ocaml gpl file $(DISTFILES)/$(PACKAGE) > $@ - -clean:: - rm -rf $(SRC) diff -r e6aea5fad86e -r 6310f068b5c8 xmlm.mk --- a/xmlm.mk Fri May 28 15:19:58 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -V=1.0.1 - -PATCHES=xmlm-install xmlm-do-not-display-none-dtd-on-output - -NAME=xmlm-$(V) -PACKAGE=$(NAME).tbz -URL=http://erratique.ch/software/xmlm/releases/$(PACKAGE) - -SRC=$(OBJDIR)/$(NAME) - -$(DOWNLOADED): - echo $(SRC_DIR) - @mkdir -p $(SRC_DIR) - bash -c 'if [ ! -e $(SRC_DIR)/$(PACKAGE) ]; then if [ -e $(DISTFILES)/$(PACKAGE) ]; then cp $(DISTFILES)/$(PACKAGE) $(SRC_DIR); else wget $(URL) --output-document=$(SRC_DIR)/$(PACKAGE); fi; fi' - @touch $@ - -$(EXTRACTED): $(DOWNLOADED) - rm -rf $(SRC) - cd $(OBJDIR) && tar -jxvf $(SRC_DIR)/$(PACKAGE) - @touch $@ - -$(CONFIGURED): $(PATCHED) - @touch $@ - -$(BUILT): $(CONFIGURED) - $(MAKE) -C $(SRC) default - @touch $@ - -$(FAKED): $(BUILT) - $(MAKE) -C $(SRC) install - @touch $@ - -$(SOURCES): - echo ocaml bsd file $(DISTFILES)/$(PACKAGE) > $@ - -clean:: - rm -rf $(SRC) _______________________________________________ xen-api mailing list xen-api@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/mailman/listinfo/xen-api
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |