From: Prarit Bhargava <pra...@redhat.com>

redhat/Makefile: Fix long dist-full-help execution time

@jstancek and @dzickus both noted that the execution time of
dist-full-help was longer than eight seconds.  This happens due to the
long lookup times of the git merge-base command in the localversion
variables code.

The help commands do not need 99.9% of the variable definitions, so wrap
the variable definitions with an ifeq statement to avoid execution for the
help commands.  The include of Makefile.cross and definition of HELP_TYPES
are required by the help commands, so those do remain included.

The dist-git and dist-git-headers must be modified to make the checks for
RHDISTGIT_BRANCH variable local instead of global.

Fix the long dist-full-help execution time by skipping most of the
variable definition code.

Reported-by: Jan Stancek <jstan...@redhat.com>
Reported-by: Don Zickus <dzic...@redhat.com>
Signed-off-by: Prarit Bhargava <pra...@redhat.com>

diff --git a/redhat/Makefile b/redhat/Makefile
index blahblah..blahblah 100644
--- a/redhat/Makefile
+++ b/redhat/Makefile
@@ -6,6 +6,9 @@ include Makefile.variables
 # This section is intentionally left at the top of the Makefile so it won't be 
ignored.
 #
 
+# Variables do not have to be configured for help output.
+ifeq ($(filter dist-full-help dist-help dist-help-% 
dist-helper-%,$(MAKECMDGOALS)),)
+
 # These entries are 'duplicates' of variables specified in Makefile.variables
 # that are used in the SPEC file.  Specifying these with a SPEC prefix 
indicates
 # that the value is passed through to the spec file.
@@ -103,7 +106,6 @@ ifndef RHJOBS
          fi)
 endif
 
-ifeq ($(filter dist-full-help dist-help dist-help-% 
dist-helper-%,$(MAKECMDGOALS)),)
 LOCVERFILE:=../localversion
 # create an empty localversion file if you don't want a local buildid
 ifneq ($(wildcard $(LOCVERFILE)),)
@@ -119,7 +121,6 @@ else
     $(info DISTLOCALVERSION is "$(DISTLOCALVERSION)".)
   endif
 endif
-endif
 
 # options for process_configs.sh script
 ifdef NO_CONFIGCHECKS
@@ -366,6 +367,8 @@ else
   endif
 endif
 
+endif # Variables do not have to be configured for help output.
+
 include Makefile.cross
 
 # different types of help targets (for example, dist-help-misc or 
dist-help-build)
@@ -865,9 +868,10 @@ dist-git-test: export RH_DIST_GIT_TEST="1"
 dist-git-test: dist-git
 
 dist-git: dist-srpm $(KABI_TARBALL) $(KABIDW_TARBALL)
-ifeq ("$(RHDISTGIT_BRANCH)", "")
- $(error RHDISTGIT_BRANCH unset)
-endif
+       @if [ -z "$(RHDISTGIT_BRANCH)" ]; then \
+               echo "RHDISTGIT_BRANCH is unset"; \
+               exit 1; \
+       fi
        $(REDHAT)/scripts/rh-dist-git.sh
 
 dist-headers-srpm:
@@ -878,9 +882,10 @@ dist-headers-srpm:
        $(RPMBUILD) --define "_sourcedir $(SOURCES)" --define "_builddir 
$(RPM)/BUILD" --define "_srcrpmdir $(RPM)/SRPMS" --define "_rpmdir $(RPM)/RPMS" 
--define "_specdir $(RPM)/SPECS" --define "dist $(DIST)" --nodeps -bs 
$(RPM)/SOURCES/kernel-headers.spec
 
 dist-git-headers: dist-headers-srpm
-ifeq ("$(RHDISTGIT_BRANCH)", "")
- $(error RHDISTGIT_BRANCH unset)
-endif
+       @if [ -z "$(RHDISTGIT_BRANCH)" ]; then \
+               echo "RHDISTGIT_BRANCH is unset"; \
+               exit 1; \
+       fi
        SPECPACKAGE_NAME=kernel-headers 
SRPM=$(SRPMS)/kernel-headers-$(BASEVERSION)$(DIST).src.rpm 
$(REDHAT)/scripts/rh-headers-dist-git.sh
 
 dist-git-headers-test: export RH_DIST_GIT_TEST="1"

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3585

-- 
_______________________________________________
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@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
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to