On Fri, Nov 20, 2020 at 12:17:02AM -0000, GitLab Bridge on behalf of bcrocker wrote:
From: Ben Crocker bcrocker@redhat.com
GIT ?= git
Hi Ben I have some comments, please see them below and inline in the code.
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.
I would split the addition of the dist-dump-variables in a new patch, because it's not related to the git replacement, it's a different topic. The dist-clean-scripts change is related to the dist-dump-variables, so it can be in the same dist-dump-variables new patch.
Add a description of the new dist-self-test target to dist-full-help.
You are adding the dist-self-test help in this patch, instead of patch 2, which really adds the dist-self-test target. I think you should move this to patch 2.
Signed-off-by: Ben Crocker bcrocker@redhat.com
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
This is subject to dist-dump-variables code and should be in the dist-dump-variables.sh patch as I suggested above.
+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
This hunk should be in the dist-dump-variables patch I suggested above.
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'
This hunk should be in patch 2 in current series which is the one which really adds the dist-self-test target, doesn't belong here.
@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@lists.fedoraproject.org To unsubscribe send an email to kernel-leave@lists.fedoraproject.org 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@lists.fedoraproject.org