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

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

 



On Fri, Nov 20, 2020 at 12:17:02AM -0000, GitLab Bridge on behalf of bcrocker wrote:
> From: Ben Crocker <bcrocker@xxxxxxxxxx>
> 
> 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@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

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@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

-- 
[]'s
Herton
_______________________________________________
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