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

Re: koji weirdness



>>>>> "JLT" == Jason L Tibbitts <tibbs math uh edu> writes:

JLT> OK, cool, let's hack on Makefile.common a bit....

OK, here's a nasty first-pass hack.  Apply this to Makefile.common,
then do "make chain-queue" in each CVS branch directory where you
would normally do "make build".  (As with building, the directories
must be tagged and such.)  Then after your last chain-queue, run "make
chain-go".  In fact, you probably have to apply this to all of your
Makefile.common files, unless you have them all linked together or
something.  And you'll have to patch after tagging and such, else the
tagging will fail and screw all sorts of nice things up.  It doesn't
seem very easy to have local Makefile.common changes.

"make chain-restart" will clear out the queue.

I did a basic test by chain-building two of my packages, but they
don't really depend on each other so it's not a complete test.

 - J<

? DenyHosts-2.6
Index: common/Makefile.common
===================================================================
RCS file: /cvs/extras/common/Makefile.common,v
retrieving revision 1.58
diff -u -r1.58 Makefile.common
--- common/Makefile.common	18 May 2007 18:25:32 -0000	1.58
+++ common/Makefile.common	29 May 2007 22:44:18 -0000
@@ -139,7 +139,7 @@
 PREP_ARCHES	= $(addprefix prep-,$(ARCHES))
 
 ## list all our bogus targets
-.PHONY :: $(ARCHES) sources uploadsource upload export check build-check plague koji build test-srpm srpm tag force-tag verrel new clean patch prep compile install-short compile-short FORCE local
+.PHONY :: $(ARCHES) sources uploadsource upload export check build-check plague koji build test-srpm srpm tag force-tag verrel new clean patch prep compile install-short compile-short FORCE local chain-restart chain-queue chain-go
 
 # The TARGETS define is meant for local module targets that should be
 # made in addition to the SOURCEFILES whenever needed
@@ -393,6 +393,20 @@
 build: plague
 endif
 
+chain-restart:
+	@rm -f ~/.koji/chain-builds
+	@echo "Queue of chained builds cleared."
+
+chain-queue: build-check $(COMMON_DIR)/branches
+	@if [ ! -x "$(BUILD_CLIENT)" ]; then echo "Must have koji installed - see http://fedoraproject.org/wiki/BuildSystemClientSetup";; exit 1; fi
+	@echo -n 'cvs://cvs.fedoraproject.org/cvs/pkgs?$(CVS_REPOSITORY)#$(TAG) : ' >> ~/.koji/chain-builds
+	@echo "Chained build queued."
+
+chain-go:
+	@if [ ! -s ~/.koji/chain-builds ]; then echo "Must run chain-queue first to queue a chained build"; exit 1; fi
+	@$(BUILD_CLIENT) chain-build $(BUILD_FLAGS) $(TARGET) `cat ~/.koji/chain-builds`
+	@rm -f ~/.koji/chain-builds
+
 # "make new | less" to see what has changed since the last tag was assigned
 new:
 	- cvs diff -u -r$$(cvs log Makefile 2>/dev/null | awk '/^symbolic names:$$/ {getline; sub(/^[ \t]*/, "") ; sub (/:.*$$/, ""); print; exit 0}')

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