[OS-BUILD PATCHv7 1/5] [redhat] Add GIT macro to Makefile and Makefile.common:

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

 



From: Ben Crocker <bcrocker@xxxxxxxxxx>

GIT ?= git

and replace literal occurrences of 'git' with $(GIT).
This change enables us to override 'git' with, e.g., some
arbitrary shell script that prints additional information
and/or does additional processing before and/or after (or
even instead of) invoking /usr/bin/git.

Add dist-dump-variables for dynamically deriving variables
from Makefile.common and dumping them.

Add a dist-clean-scripts target to clean up generated scripts.

Add a description of the new dist-self-test target to dist-full-help.

Signed-off-by: Ben Crocker <bcrocker@xxxxxxxxxx>
---
 redhat/Makefile        | 42 +++++++++++++++++++++++++++---------------
 redhat/Makefile.common | 16 ++++++++--------
 2 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/redhat/Makefile b/redhat/Makefile
index 834704a1a0a7..fd10ac8f145d 100644
--- a/redhat/Makefile
+++ b/redhat/Makefile
@@ -1,3 +1,4 @@
+GIT ?= git
 include Makefile.common
 include Makefile.rhpkg
 
@@ -32,8 +33,8 @@ endif
 BUILD_TARGET ?= --scratch $(BUILD_SCRATCH_TARGET)
 FLAVOR =
 
-RHGITURL?=$(shell git config rhg.url || git config remote.origin.url)
-RHGITCOMMIT?=$(shell git log -1 --pretty=format:%H)
+RHGITURL?=$(shell $(GIT) config rhg.url || $(GIT) config remote.origin.url)
+RHGITCOMMIT?=$(shell $(GIT) log -1 --pretty=format:%H)
 
 # this section is needed in order to make O= to work
 _OUTPUT := ..
@@ -165,7 +166,10 @@ dist-clean-rpmdirs:
 		rm -rf $$i; \
 	done;
 
-dist-clean: dist-clean-sources dist-clean-configs dist-clean-rpmdirs
+dist-clean-scripts:
+	@if [ -f dist-dump-variables.sh ]; then rm dist-dump-variables.sh; fi
+
+dist-clean: dist-clean-sources dist-clean-configs dist-clean-rpmdirs dist-clean-scripts
 
 dist-stub-key:
 	@echo "Copying pre-generated keys";
@@ -199,7 +203,7 @@ $(KABIDW_TARBALL):
 dist-git-version-check:
 	@# genspec.sh uses pathspec magic that wasn't introduced until version 2.13
 	@IFS=" ."; \
-	set -- $$(git --version); \
+	set -- $$($(GIT) --version); \
 	IFS=; \
 	if [ "$$3" -lt 2 -o \( "$$3" -eq 2 -a "$$4" -lt 13 \) ]; then \
 		echo "ERROR: You need git version 2.13 or newer to run some setup commands"; \
@@ -219,7 +223,7 @@ setup-source: dist-git-version-check dist-clean-sources
 sources-rh: $(TARBALL)
 	@cp -l $(TARBALL) $(SOURCES)/ || cp $(TARBALL) $(SOURCES)/
 	@touch $(TESTPATCH)
-	@git diff --no-renames HEAD > $(TESTPATCH).tmp
+	@$(GIT) diff --no-renames HEAD > $(TESTPATCH).tmp
 	@# 1) filterdiff will return crap from the patches it just filtered,
 	@#    that's why egrep is needed so if there're changes under redhat/
 	@#    but not everywhere else, it will be empty just like
@@ -265,7 +269,7 @@ sources-rh: $(TARBALL)
 dist-sources: setup-source dist-configs-check dist-kabi dist-kabi-dup sources-rh
 
 dist-test-patch:
-	@git diff --no-renames HEAD > $(TESTPATCH);
+	@$(GIT) diff --no-renames HEAD > $(TESTPATCH);
 	@($(FILTERDIFF) $(TESTPATCH) | egrep -v "^index|^diff" >$(TESTPATCH).tmp; true)
 	@mv $(TESTPATCH).tmp $(TESTPATCH);
 
@@ -300,34 +304,34 @@ dist-release-finish: setup-source
 	@cp $(SOURCES)/$(CHANGELOG) $(REDHAT)/$(CHANGELOG)
 	@echo $(MARKER) > $(REDHAT)/marker
 	@# if neither changelog nor marker was updated, skip bumping a release
-	git diff-index --quiet HEAD && (echo "Nothing changed, skipping updates"; exit 0) || true
+	$(GIT) diff-index --quiet HEAD && (echo "Nothing changed, skipping updates"; exit 0) || true
 	$(REDHAT)/scripts/new_release.sh $(REDHAT) $(__YSTREAM) $(__ZSTREAM); \
-	git add $(REDHAT)/$(CHANGELOG); \
-	git add $(REDHAT)/marker; \
-	git commit -s ../Makefile.rhelver $(REDHAT)/marker $(REDHAT)/$(CHANGELOG) $(PACKAGE_NAME).spec.template -m "[redhat] $(PACKAGE_NAME)-$(STAMP_VERSION)-$(PREBUILD)$(BUILD)$(BUILDID)"; \
+	$(GIT) add $(REDHAT)/$(CHANGELOG); \
+	$(GIT) add $(REDHAT)/marker; \
+	$(GIT) commit -s ../Makefile.rhelver $(REDHAT)/marker $(REDHAT)/$(CHANGELOG) $(PACKAGE_NAME).spec.template -m "[redhat] $(PACKAGE_NAME)-$(STAMP_VERSION)-$(PREBUILD)$(BUILD)$(BUILDID)"; \
 
 dist-release: dist-clean-sources
 	@$(MAKE) dist-release-finish
 dist-release-tag:
-	@git tag -a -m "$(PACKAGE_NAME)-$(STAMP_VERSION)-$(PKGRELEASE)" $(PACKAGE_NAME)-$(STAMP_VERSION)-$(PKGRELEASE)
+	@$(GIT) tag -a -m "$(PACKAGE_NAME)-$(STAMP_VERSION)-$(PKGRELEASE)" $(PACKAGE_NAME)-$(STAMP_VERSION)-$(PKGRELEASE)
 
 git-tree-check:
-	@if test -n "$(DIST_PUSH)" && test -z "$(shell git remote get-url gitlab 2>/dev/null)"; then \
+	@if test -n "$(DIST_PUSH)" && test -z "$(shell $(GIT) remote get-url gitlab 2>/dev/null)"; then \
 		echo -e "Please run 'git remote add gitlab <url>' to enable git-push.\n"; \
 		exit 1; \
 	fi
-	@git diff-index --quiet HEAD || \
+	@$(GIT) diff-index --quiet HEAD || \
 		{ echo -e "Dirty tree, please clean before merging.\n"; exit 1; }
 
 DIST_BRANCH ?= "os-build"
 dist-merge-upstream: git-tree-check
-	@if test "$(shell git branch --show-current)" != "$(DIST_BRANCH)"; then \
+	@if test "$(shell $(GIT) branch --show-current)" != "$(DIST_BRANCH)"; then \
 		echo -e "Please checkout $(DIST_BRANCH) branch before merging.\n"; \
 		exit 1; \
 		fi;
 
 	@# If TAG is empty, script defaults to master:HEAD
-	@git checkout $(DIST_BRANCH)
+	$(GIT) checkout $(DIST_BRANCH)
 	@cd ..; $(REDHAT)/scripts/ci/ark-update-configs.sh $(TAG)
 
 dist-merge-upstream-push: export DIST_PUSH="1"
@@ -381,6 +385,13 @@ dist-get-latest:
 dist-os-version:
 	@echo "OSVERSION: $(RHEL_MAJOR).$(RHEL_MINOR)"
 
+.EXPORT_ALL_VARIABLES:
+.PHONY: dist-dump-variables
+dist-dump-variables:
+	grep "^[ 	]*[a-zA-Z_][a-zA-Z_0-9]*[ 	]*[:?]*=" $(REDHAT)/Makefile.common | sed -e 's/[ 	]*\([a-zA-Z_][a-zA-Z_0-9]*\).*/echo "\1=$$\1"/' | sort | uniq > dist-dump-variables.sh
+	chmod +x $(REDHAT)/dist-dump-variables.sh
+	@$(REDHAT)/dist-dump-variables.sh
+
 dist-help:
 	@echo  'Cleaning targets:'
 	@echo  '  dist-clean          - Clean redhat/configs/ and redhat/rpm/ directories.'
@@ -498,4 +509,5 @@ dist-full-help:
 	@echo  '                    development tag.'
 	@echo  '  dist-os-version - Displays the current Red Hat Enterprise Linux versioni'
 	@echo  '                    target used by the current branch/tree.'
+	@echo  '  dist-self-test  - Runs self-tests from the redhat/self-test directory'
 	@echo  ''
diff --git a/redhat/Makefile.common b/redhat/Makefile.common
index b335f3c77c7d..80c3b8dfccd4 100644
--- a/redhat/Makefile.common
+++ b/redhat/Makefile.common
@@ -1,4 +1,4 @@
-TOPDIR:=$(shell git rev-parse --show-toplevel)
+TOPDIR:=$(shell $(GIT) rev-parse --show-toplevel)
 REDHAT:=$(TOPDIR)/redhat
 include $(TOPDIR)/Makefile.rhelver
 
@@ -6,11 +6,11 @@ RPMBUILD := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \
                    else echo rpm; fi)
 
 MACH :=  $(shell uname -m)
-RPMKVERSION:=$(shell git show HEAD:Makefile | sed -ne '/^VERSION\ =\ /{s///;p;q}')
-RPMKPATCHLEVEL:=$(shell git show HEAD:Makefile | sed -ne '/^PATCHLEVEL\ =\ /{s///;p;q}')
-RPMKSUBLEVEL:=$(shell git show HEAD:Makefile | sed -ne '/^SUBLEVEL\ =\ /{s///;p;q}')
-RPMKEXTRAVERSION:=$(shell git show HEAD:Makefile | sed -ne '/^EXTRAVERSION\ =\ /{s///;p;q}')
-GITID:= $(shell git log --max-count=1 --pretty=format:%H)
+RPMKVERSION:=$(shell $(GIT) show HEAD:Makefile | sed -ne '/^VERSION\ =\ /{s///;p;q}')
+RPMKPATCHLEVEL:=$(shell $(GIT) show HEAD:Makefile | sed -ne '/^PATCHLEVEL\ =\ /{s///;p;q}')
+RPMKSUBLEVEL:=$(shell $(GIT) show HEAD:Makefile | sed -ne '/^SUBLEVEL\ =\ /{s///;p;q}')
+RPMKEXTRAVERSION:=$(shell $(GIT) show HEAD:Makefile | sed -ne '/^EXTRAVERSION\ =\ /{s///;p;q}')
+GITID:= $(shell $(GIT) log --max-count=1 --pretty=format:%H)
 # marker is git tag which we base off of for exporting patches
 # Make sure marker uses RPMKPATCHLEVEL and RPMKEXTRAVERSION from the kernel
 # makefile as opposed to any adjusted version for snapshotting.
@@ -42,8 +42,8 @@ else
 endif
 ifeq ($(VERSION_ON_UPSTREAM),1)
   # master is expected to track mainline.
-  MERGE_BASE:=$(shell git merge-base HEAD master)
-  _TAG:=$(shell git describe $(MERGE_BASE))
+  MERGE_BASE:=$(shell $(GIT) merge-base HEAD master)
+  _TAG:=$(shell $(GIT) describe $(MERGE_BASE))
   # a snapshot off of a tagged git is of the form [tag]-[cnt]-g[hash]
   SNAPSHOT:=$(shell echo $(_TAG) | grep -c '\-g')
 else
-- 
GitLab
_______________________________________________
kernel mailing list -- kernel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to kernel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/kernel@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora General Discussion]     [Older Fedora Users Archive]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Coolkey]     [Yum Users]     [Tux]     [Yosemite News]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [USB]     [Asterisk PBX]

  Powered by Linux