From ee414d57cfe8222f920662d5288c295a503e9970 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 22 Sep 2004 21:26:44 +0000 Subject: [PATCH] Untested first draft of makefile magic to maintain the branch. --- fedora/Makefile | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ fedora/branch.mk | 4 +++ 2 files changed, 111 insertions(+) create mode 100644 fedora/Makefile create mode 100644 fedora/branch.mk diff --git a/fedora/Makefile b/fedora/Makefile new file mode 100644 index 0000000000..ed748245bc --- /dev/null +++ b/fedora/Makefile @@ -0,0 +1,107 @@ +# Makefile for maintaining glibc fedora-branch and creating Fedora source RPMs. + +tag-prefix := fedora- + +.PHONY: update commit-merge commit patch tag archive finish_archive srpm rpm +FORCE: + +snapshot-date-fmt := +'%Y-%m-%d %H:%M %Z' +snapshot-name-fmt := +'%Y%m%dT%H%M' + +include branch.mk + + +on-branch = $(filter-out HEAD,$(glibc-base)) + +snapshot-date := $($(glibc-branch)-sync-date) +snapshot-name := $(shell date -u -d '$(snapshot-date)' $(snapshot-name-fmt)) + +ifeq ($(glibc-base),HEAD) +tar-name := glibc +select-snapshot = -D '$(snapshot-date)' +snapshot-id = $(glibc-base):$(snapshot-date) +else +tar-name := glibc-$(subst _,.,$(patsubst glibc-%-branch,%,$(glibc-base))) +select-snapshot = -r '$($(glibc-branch)-sync-tag)' +snapshot-id = $($(glibc-branch)-sync-tag) +endif + + +update: + now=`date -u -d $(snapshot-date-fmt)`; \ + name=date -u -d "$$now" $(snapshot-name-fmt)`; \ + $(if $(on-branch),\ + old="$(tag-prefix)$(tar-name)-$$name; \ + new="$(tag-prefix)$(tar-name)$(snapshot-name)"; \ + cvs -Q rtag -r $(glibc-base) $$new libc; \ + , old="$(glibc-base):$(snapshot-date)"; \ + new="$(glibc-base):$$now"; \ + ) \ + (echo '# This file is updated automatically by Makefile.'; \ + echo 'glibc-branch := $(glibc-branch)'; \ + echo 'glibc-base := $(glibc-base)'; \ + echo "$(glibc-branch)-sync-date := $$now"; \ + $(if $(on-branch),echo "$(glibc-branch)-sync-tag := $$new";) \ + ) > branch.mk; \ + cd ..; cvs -q update -d -P -j"$$old" -j"$$new" \ + 2>&1 | tee redhat/update.log + +commit-merge: + cd ..; cvs -Q commit -m"Updated to $(snapshot-id)" + +glibc.spec: glibc.spec.in ../version.h branch.mk + (echo '%define glibcdate $(snapshot-name);' \ + sed -n '/VERSION/s/^.*"\([^"]*\)"$/%define glibcversion \1/p' \ + ../version.h; \ + cat $<) > $@.new + mv -f $@.new $@ + +spec-nvr := $(shell rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}\n' \ + --specfile glibc.spec) +spec-tag = $(subst .,_,$(spec-nvr)) + +tag: glibc.spec + cd ..; cvs -Q tag -c $(tag-prefix)$(spec-tag) + +$(tar-name)-$(snapshot-name)-$(glibc-branch).patch: makepatch.awk glibc.spec \ + FORCE + (cd ..; cvs -q diff -upN \ + $(select-snapshot) -r $(tag-prefix)$(spec-tag)) | \ + awk -v OLDVER=$(tar-name)-$(snapshot-name) \ + -v NEWVER=$(tar-name)-$(snapshot-name)-$(glibc-branch) \ + -f $< > patch.tmp + mv -f patch.tmp + +# makepatch.awk omits these files from the patch; we put them in a tar file. +outside-patch = redhat c_stubs rtkaio glibc-compat \ + localedata/charmaps/GB18030 iconvdata/gb18030.c + +$(tar-name)-$(glibc-branch)-$(snapshot-name).tar.bz2: FORCE + @rm -rf libc + cvs -Q export -r$(tag-prefix)$(spec-tag) \ + $(addprefix libc/,$(outside-patch)) + tar cf - -C libc $(outside-patch) | bzip2 -9 > $@.new + rm -rf libc + mv -f $@.new $@ + +$(tar-name)-$(snapshot-name).tar.bz2: FORCE + @rm -rf $(tar-name)-$(snapshot-name) + cvs -Q export -d $(tar-name)-$(snapshot-name) $(select-snapshot) libc + tar cf - $(tar-name)-$(snapshot-name) | bzip2 -9 > $@.new + rm -rf $(tar-name)-$(snapshot-name) + mv -f $@.new $@ + +archives = $(tar-name)-$(snapshot-name).tar.bz2 \ + $(tar-name)-$(glibc-branch)-$(snapshot-name).tar.bz2 \ + $(tar-name)-$(snapshot-name)-$(glibc-branch).patch +finish_archive: $(archives) + +archive: glibc.spec + $(MAKE) tag finish_archive + +rpm srpm: $(spec-nvr).src.rpm +$(spec-nvr).src.rpm: glibc.spec $(archives) + rpmbuild --define "_sourcedir `pwd`" \ + --define "_specdir `pwd`" \ + --define "_srcrpmdir `pwd`" \ + --nodeps -bs $< diff --git a/fedora/branch.mk b/fedora/branch.mk new file mode 100644 index 0000000000..4cdca39426 --- /dev/null +++ b/fedora/branch.mk @@ -0,0 +1,4 @@ +glibc-branch := fedora +glibc-base := HEAD + +fedora-sync-date := 2004-09-22 05:52 UTC -- 2.11.4.GIT