[PATCH] Two RPM building improvements

Subsystems: kernel build + files below scripts/ (unless maintained elsewhere), the rest

DORMANTno replies

5 messages, 4 authors, 2016-06-15 · open the first message on its own page

[PATCH] Two RPM building improvements

From: Niels Basjes <hidden>
Date: 2016-06-15 22:46:29

Two RPM building improvements:
  - Building the RPMs can now be done by a non-root user.
  - The additional target all-rpms now builds the RPMs for a multitude of target platforms.

Signed-off-by: Niels Basjes <redacted>
---
 .gitignore |    1 +
 Makefile   |   26 ++++++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1c57d4c..2f2554b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -173,3 +173,4 @@ configure
 tags
 TAGS
 cscope*
+RPM_BUILDING
diff --git a/Makefile b/Makefile
index 7867eac..d9f5e04 100644
--- a/Makefile
+++ b/Makefile
@@ -1564,7 +1564,29 @@ dist: git.spec git-archive$(X) configure
 	gzip -f -9 $(GIT_TARNAME).tar
 
 rpm: dist
-	$(RPMBUILD) -ta $(GIT_TARNAME).tar.gz
+	-@mkdir -p RPM_BUILDING/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+	$(RPMBUILD) --define="_topdir `pwd`/RPM_BUILDING" -ta $(GIT_TARNAME).tar.gz
+	-@echo ""
+	-@echo "================================================================="
+	-@echo "Generated RPMS and SRPMS:"
+	-@find `pwd`/RPM_BUILDING/ -type f -name '$(distdir)*.rpm' | xargs -n 1 -iXXX echo "- XXX"
+	-@echo "================================================================="
+	-@echo ""
+
+all-rpms: dist
+	-@mkdir -p RPM_BUILDING/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+	$(RPMBUILD) --define="_topdir `pwd`/RPM_BUILDING" -ta $(GIT_TARNAME).tar.gz --target i386
+	$(RPMBUILD) --define="_topdir `pwd`/RPM_BUILDING" -ta $(GIT_TARNAME).tar.gz --target i686
+	$(RPMBUILD) --define="_topdir `pwd`/RPM_BUILDING" -ta $(GIT_TARNAME).tar.gz --target x86_64
+	$(RPMBUILD) --define="_topdir `pwd`/RPM_BUILDING" -ta $(GIT_TARNAME).tar.gz --target ia32
+	$(RPMBUILD) --define="_topdir `pwd`/RPM_BUILDING" -ta $(GIT_TARNAME).tar.gz --target ppc
+	-@echo ""
+	-@echo "================================================================="
+	-@echo "Generated RPMS and SRPMS:"
+	-@find `pwd`/RPM_BUILDING/ -type f -name '$(distdir)*.rpm' | xargs -n 1 -iXXX echo "- XXX"
+	-@echo "================================================================="
+	-@echo ""
+
 
 htmldocs = git-htmldocs-$(GIT_VERSION)
 manpages = git-manpages-$(GIT_VERSION)
@@ -1613,7 +1635,7 @@ ifndef NO_TCLTK
 endif
 	$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
 
-.PHONY: all install clean strip
+.PHONY: all install clean strip rpm all-rpms
 .PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
 .PHONY: .FORCE-GIT-VERSION-FILE TAGS tags cscope .FORCE-GIT-CFLAGS
 .PHONY: .FORCE-GIT-BUILD-OPTIONS
-- 
1.6.2

Re: [PATCH] Two RPM building improvements

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:46:29

Niels Basjes [off-list ref] writes:
Two RPM building improvements:
Two _unrelated_ RPM building improvements squashed in one commit.
  - Building the RPMs can now be done by a non-root user.
It was always possible, you only have to configure rpm / rpmbuild,
namely put path to where you want your RPM_BUILDING directory in
~/.rpmmacros as %_topdir, for example:

  $ cat ~/.rpmmacros
  %_topdir        /home/local/builddir

Please RTFM first, before going to solve non-problem in (ugh) fairly
complicated way.
  - The additional target all-rpms now builds the RPMs for a multitude of target platforms.
Please wrap commit messages at 72-76 columns, at most at 80 columns.
No such overly long lines, please.

But the all-rpms target looks like a good idea

-- 
Jakub Narebski
Poland
ShadeHawk on #git

Re: [PATCH] Two RPM building improvements

From: Michael J Gruber <hidden>
Date: 2016-06-15 22:46:29

Jakub Narebski venit, vidit, dixit 27.03.2009 14:50:
Niels Basjes [off-list ref] writes:
quoted
Two RPM building improvements:
Two _unrelated_ RPM building improvements squashed in one commit.
quoted
  - Building the RPMs can now be done by a non-root user.
It was always possible, you only have to configure rpm / rpmbuild,
namely put path to where you want your RPM_BUILDING directory in
~/.rpmmacros as %_topdir, for example:

  $ cat ~/.rpmmacros
  %_topdir        /home/local/builddir

Please RTFM first, before going to solve non-problem in (ugh) fairly
complicated way.
Also, the "solution" from the patch overrides any user choice from
.rpmmacros, AFAICS.
quoted
  - The additional target all-rpms now builds the RPMs for a multitude of target platforms.
Please wrap commit messages at 72-76 columns, at most at 80 columns.
No such overly long lines, please.

But the all-rpms target looks like a good idea

Re: [PATCH] Two RPM building improvements

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:46:29

Jakub Narebski [off-list ref] writes:
Niels Basjes [off-list ref] writes:
quoted
Two RPM building improvements:
Two _unrelated_ RPM building improvements squashed in one commit.
quoted
  - Building the RPMs can now be done by a non-root user.
It was always possible, you only have to configure rpm / rpmbuild,
namely put path to where you want your RPM_BUILDING directory in
~/.rpmmacros as %_topdir, for example:

  $ cat ~/.rpmmacros
  %_topdir        /home/local/builddir

Please RTFM first, before going to solve non-problem in (ugh) fairly
complicated way.
That might be a bit too harsh to somebody who genuinely wished to share
his improvement with others.

Being RPM novice, the first thing I asked around immediately after taking
the maintainership over was the ~/.rpmmacros trick.  We really should
mention it in _our_ documentation, even just a sentence or two would be
sufficient.

Re: [PATCH] Two RPM building improvements

From: Michael J Gruber <hidden>
Date: 2016-06-15 22:46:29

Junio C Hamano venit, vidit, dixit 27.03.2009 17:20:
Jakub Narebski [off-list ref] writes:
quoted
Niels Basjes [off-list ref] writes:
quoted
Two RPM building improvements:
Two _unrelated_ RPM building improvements squashed in one commit.
quoted
  - Building the RPMs can now be done by a non-root user.
It was always possible, you only have to configure rpm / rpmbuild,
namely put path to where you want your RPM_BUILDING directory in
~/.rpmmacros as %_topdir, for example:

  $ cat ~/.rpmmacros
  %_topdir        /home/local/builddir

Please RTFM first, before going to solve non-problem in (ugh) fairly
complicated way.
That might be a bit too harsh to somebody who genuinely wished to share
his improvement with others.

Being RPM novice, the first thing I asked around immediately after taking
the maintainership over was the ~/.rpmmacros trick.  We really should
mention it in _our_ documentation, even just a sentence or two would be
sufficient.
I assumed everyone building rpms would use rpmdev-setuptree from
rpmdevtools, but apparently not ;) I'm not sure whether non-Redhat
rpm-based distros have that, though.

I'm wondering a bit about the all-rpms target. How does this work
without mock? All build requirements installed for all platforms?? I
think it really calls for a mock build/vm (unless i386 on x86_64).

Michael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help