[globus-core/f19: 2/2] Implement updated packaging guidelines

Mattias Ellert ellert at fedoraproject.org
Sun Jul 28 07:38:58 UTC 2013


commit ac5fcf268463046a3393441cd7ddc83b901f70aa
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date:   Sun Jul 28 04:58:09 2013 +0200

    Implement updated packaging guidelines
    
    - Fix documentation build rules - do not build twice

 globus-core-doc-once.patch     |   50 +++++++++++++++++++
 globus-core-new-docdir.patch   |   14 +++++
 globus-core-spec-creator.patch |  107 +++++++++++++++++++++++++++++++---------
 globus-core.spec               |   25 +++++++--
 4 files changed, 168 insertions(+), 28 deletions(-)
---
diff --git a/globus-core-doc-once.patch b/globus-core-doc-once.patch
new file mode 100644
index 0000000..07f70c6
--- /dev/null
+++ b/globus-core-doc-once.patch
@@ -0,0 +1,50 @@
+diff -ur globus_core-8.9.orig/aclocal/doxygen_Makefile.am globus_core-8.9/aclocal/doxygen_Makefile.am
+--- globus_core-8.9.orig/aclocal/doxygen_Makefile.am	2013-06-04 08:49:59.112119109 +0200
++++ globus_core-8.9/aclocal/doxygen_Makefile.am	2013-06-04 09:50:04.122319249 +0200
+@@ -4,7 +4,7 @@
+ #
+ 
+ doxygen_installdox = @lac_doxygen_installdox@
+-all-local: @DOXYFILE@
++doc-stamp: @DOXYFILE@
+ 	@if test ! -z "@DOXYGEN@"; then \
+ 		@DOXYGEN@  @DOXYFILE@;  \
+ 		if test -n "$(doxygen_installdox)"; then \
+@@ -16,8 +16,11 @@
+ 		    (cd doc/latex ; for f in *.tex ; do sed 's/\\doxyref{p\.}/\\doxyref{}{p\.}/g' $$f > $$f.new ; mv $$f.new $$f ; done ; sed 's/\(latex_count\)=[0-9] /\1=10 /' Makefile > Makefile.new ; mv Makefile.new Makefile ; make) ; \
+ 		fi \
+ 	fi
++	touch $@
+ 
+-install-data-local:
++all-local: doc-stamp
++
++install-data-local: doc-stamp
+ 	@if test ! -z "@DOXYGEN@"; then                     \
+ 		for dir in `find ./doc/{html,man} -type d -print|sed "s,./doc/,,"`; do \
+ 			if test -z "`echo $${dir}|sed -n '/^man/ p'`"; then \
+@@ -43,12 +46,13 @@
+ 		fi \
+ 	fi
+ 
+-clean-data-local:
++clean-local:
+ 	@if test ! -z "@DOXYGEN@"; then \
+ 		rm -rf ./doc*;          \
+ 	fi
++	rm -f doc-stamp
+ 
+-filelist:
++filelist: doc-stamp
+ 	@if test ! -z "@DOXYGEN@"; then \
+                 filelistdir="`echo $(FILELIST_FILE) | sed -e 's!/[^/]*$$!!'`"; \
+ 		find ./doc/{man,html} -type f -print | \
+@@ -62,7 +66,7 @@
+ 		fi \
+ 	fi
+ 
+-dist-hook: all-local
++dist-hook: doc-stamp
+ 	@if test ! -z "@DOXYGEN@"; then \
+ 		if test -d doc; then \
+ 		    cp -r doc $(distdir)/doc ; \
diff --git a/globus-core-new-docdir.patch b/globus-core-new-docdir.patch
new file mode 100644
index 0000000..9d58825
--- /dev/null
+++ b/globus-core-new-docdir.patch
@@ -0,0 +1,14 @@
+diff -ur globus_core-8.5.orig/doxygen/globus-build-doxygen-dependencies.in globus_core-8.5/doxygen/globus-build-doxygen-dependencies.in
+--- globus_core-8.5.orig/doxygen/globus-build-doxygen-dependencies.in	2011-02-08 21:15:57.000000000 +0100
++++ globus_core-8.5/doxygen/globus-build-doxygen-dependencies.in	2012-01-02 09:53:50.919785409 +0100
+@@ -58,9 +58,7 @@
+ 
+ @deps = process_package($srcfile);
+ foreach (@deps) {
+-    my $pkg = new Grid::GPT::V1::Package;
+-    $pkg->read_metadata_file("$datadir/globus/packages/$_/pkg_data_noflavor_doc.gpt");
+-    my $dir = "$_-$pkg->{'Version'}->{'major'}.$pkg->{'Version'}->{'minor'}";
++    my $dir = "$_";
+     $dir =~ s/_/-/g;
+     $_ = "$datadir/doc/$dir/html/$_.tag";
+ }
diff --git a/globus-core-spec-creator.patch b/globus-core-spec-creator.patch
index 4236ba0..2ae5daf 100644
--- a/globus-core-spec-creator.patch
+++ b/globus-core-spec-creator.patch
@@ -1,7 +1,7 @@
 diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/scripts/globus-spec-creator
 --- globus_core-8.9.orig/scripts/globus-spec-creator	2011-10-28 19:24:29.000000000 +0200
-+++ globus_core-8.9/scripts/globus-spec-creator	2013-05-23 07:35:08.982481708 +0200
-@@ -217,7 +217,7 @@
++++ globus_core-8.9/scripts/globus-spec-creator	2013-07-27 07:13:38.009433632 +0200
+@@ -217,12 +217,16 @@
  		      defined $srcdeps{'pgm_runtime'});
  }
  
@@ -10,7 +10,42 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  print "%global flavor gcc64\n";
  print "%else\n";
  print "%global flavor gcc32\n";
-@@ -346,10 +346,19 @@
+ print "%endif\n\n";
+ 
++if ($docpkg) {
++    print "%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}\n\n";
++}
++
+ print "Name:\t\t$name\n";
+ print "%global _name %(tr - _ <<< %{name})\n";
+ print "Version:\t$version\n";
+@@ -299,10 +303,10 @@
+ 	    unless $key eq 'trusted-ca-setup';
+     }
+     print "BuildRequires:\tgrid-packaging-tools >= 3.4\n";
+-    print "BuildRequires:\tglobus-core%{?_isa} >= 8\n";
++    print "BuildRequires:\tglobus-core >= 8\n";
+     while (($key, $value) = each(%{$srcdeps{'compile'}})) {
+ 	if ($key ne "globus-core") {
+-	    print "BuildRequires:\t$key-devel%{?_isa}" .
++	    print "BuildRequires:\t$key-devel" .
+ 		($value > 0 ? " >= $value\n" : "\n");
+ 	}
+     }
+@@ -329,10 +333,10 @@
+ 	    unless $key eq 'trusted-ca-setup';
+     }
+     print "BuildRequires:\tgrid-packaging-tools >= 3.4\n";
+-    print "BuildRequires:\tglobus-core%{?_isa} >= 8\n";
++    print "BuildRequires:\tglobus-core >= 8\n";
+     while (($key, $value) = each(%{$srcdeps{'compile'}})) {
+ 	if ($key ne "globus-core") {
+-	    print "BuildRequires:\t$key-devel%{?_isa}" .
++	    print "BuildRequires:\t$key-devel" .
+ 		($value > 0 ? " >= $value\n" : "\n");
+ 	}
+     }
+@@ -346,10 +350,19 @@
  	print "BuildRequires:\tgraphviz-gd\n";
  	print "%endif\n";
  	print "BuildRequires:\tghostscript\n";
@@ -33,7 +68,32 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  	print "%endif\n";
      }
      if ($progspkg) {
-@@ -548,20 +557,20 @@
+@@ -501,13 +514,13 @@
+ if ($docpkg) {
+     print "
+ %configure --disable-static --with-flavor=%{flavor} \\
+-	   --enable-doxygen --with-docdir=%{_docdir}/%{name}-%{version}
++	   --enable-doxygen --with-docdir=%{_pkgdocdir}
+ ";
+ }
+ else {
+     print "
+ %configure --disable-static --with-flavor=%{flavor} \\
+-	   --with-docdir=%{_docdir}/%{name}-%{version}
++	   --with-docdir=%{_pkgdocdir}
+ ";
+ }
+ 
+@@ -531,7 +544,7 @@
+ 
+ %{_datadir}/globus/globus-bootstrap.sh
+ 
+-%configure --without-flavor --with-docdir=%{_docdir}/%{name}-%{version}
++%configure --without-flavor --with-docdir=%{_pkgdocdir}
+ 
+ make %{?_smp_mflags}
+ 
+@@ -548,20 +561,20 @@
  " if ($docpkg);
  
  print "
@@ -58,7 +118,7 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  \\\$metadata->finish();
  EOF
  
-@@ -571,7 +580,7 @@
+@@ -571,7 +584,7 @@
  " if defined $setupfile;
  
  print "
@@ -67,7 +127,7 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  ";
  
  if (not defined $pkglibs) {
-@@ -579,7 +588,7 @@
+@@ -579,7 +592,7 @@
  # This library is opened using lt_dlopenext, so the libtool archive
  # (.la file) can not be removed - fix the libdir and clear dependency_libs
  # ... and move it to the main package
@@ -76,7 +136,7 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
    sed -e \"s!^libdir=.*!libdir=\\'%{_libdir}\\'!\" \\
        -e \"s!^dependency_libs=.*!dependency_libs=\\'\\'!\" -i \$lib
  done
-@@ -591,7 +600,7 @@
+@@ -591,7 +604,7 @@
  else {
      print "
  # Remove libtool archives (.la files)
@@ -85,7 +145,7 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  sed '/lib.*\\.la\$/d' -i \$GLOBUSPACKAGEDIR/%{_name}/%{flavor}_dev.filelist
  " if ($libs);
  }
-@@ -601,17 +610,11 @@
+@@ -601,17 +614,11 @@
  grep GLOBUS_LICENSE \$GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist \\
    >> \$GLOBUSPACKAGEDIR/%{_name}/%{flavor}_rtl.filelist
  sed /GLOBUS_LICENSE/d -i \$GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist
@@ -100,31 +160,30 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  # Install README file
 -install -m 644 -p %{SOURCE8} \\
 -  \$RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/README
-+install -m 644 -p %{SOURCE8} %{buildroot}%{_docdir}/%{name}-%{version}/README
++install -m 644 -p %{SOURCE8} %{buildroot}%{_pkgdocdir}/README
  
  # Generate package filelists
  ";
-@@ -650,11 +653,6 @@
- }
+@@ -651,7 +658,7 @@
  
  print "
--%clean
+ %clean
 -rm -rf \$RPM_BUILD_ROOT
--";
--
--print "
- %post -p /sbin/ldconfig
++rm -rf %{buildroot}
+ ";
  
- %postun -p /sbin/ldconfig
-@@ -662,7 +660,6 @@
+ print "
+@@ -662,15 +669,13 @@
  
  print "
  %files -f package.filelist
 -%defattr(-,root,root,-)
  %dir %{_datadir}/globus/packages/%{_name}
- %dir %{_docdir}/%{name}-%{version}
- %doc %{_docdir}/%{name}-%{version}/README
-@@ -670,7 +667,6 @@
+-%dir %{_docdir}/%{name}-%{version}
+-%doc %{_docdir}/%{name}-%{version}/README
++%dir %{_pkgdocdir}
++%doc %{_pkgdocdir}/README
+ ";
  
  print "
  %files -f package-progs.filelist progs
@@ -132,7 +191,7 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  " if ($progspkg);
  
  print "%dir %{_datadir}/globus/packages/%{_name}_setup
-@@ -679,12 +675,10 @@
+@@ -679,13 +684,11 @@
  
  print "
  %files -f package-devel.filelist devel
@@ -142,6 +201,8 @@ diff -ur globus_core-8.9.orig/scripts/globus-spec-creator globus_core-8.9/script
  print "
  %files -f package-doc.filelist doc
 -%defattr(-,root,root,-)
- %dir %{_docdir}/%{name}-%{version}/html
+-%dir %{_docdir}/%{name}-%{version}/html
++%dir %{_pkgdocdir}/html
  " if ($docpkg);
  
+ print "
diff --git a/globus-core.spec b/globus-core.spec
index 2723dba..ad96ca3 100644
--- a/globus-core.spec
+++ b/globus-core.spec
@@ -10,10 +10,12 @@
 
 %{!?perl_vendorlib: %global perl_vendorlib %(eval "`perl -V:installvendorlib`"; echo $installvendorlib)}
 
+%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
+
 Name:		globus-core
 %global _name %(tr - _ <<< %{name})
 Version:	8.9
-Release:	7%{?dist}
+Release:	8%{?dist}
 Summary:	Globus Toolkit - Globus Core
 
 Group:		Development/Tools
@@ -27,6 +29,8 @@ Patch1:		%{name}-aarch64-x32.patch
 Patch2:		%{name}-ac.patch
 Patch3:		%{name}-latex-count.patch
 Patch4:		%{name}-force.patch
+Patch5:		%{name}-doc-once.patch
+Patch6:		%{name}-new-docdir.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 Requires:	pkgconfig
@@ -50,6 +54,10 @@ Globus Core
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
+%patch5 -p1
+%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7
+%patch6 -p1
+%endif
 
 sed 's/5.2.0/5.2.4/' -i scripts/globus-spec-creator
 sed 's/ -L$libdir//' -i config/accompiler.m4
@@ -84,7 +92,7 @@ export LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
 	   --with-flavorincludedir='${libdir}/globus/include' \
 	   --with-perlmoduledir=%{perl_vendorlib} \
 	   --with-doxygendir='${datadir}/globus/doxygen' \
-	   --with-docdir=%{_docdir}/%{name}-%{version} \
+	   --with-docdir=%{_pkgdocdir} \
 	   --with-initializer-libdir-based-on-machine-type
 
 # Reduce overlinking
@@ -105,7 +113,7 @@ GLOBUSPACKAGEDIR=%{buildroot}%{_datadir}/globus/packages
 sed 's!/usr/bin/env perl!/usr/bin/perl!' -i %{buildroot}%{_sbindir}/globus-*
 
 # Install README file
-install -m 644 -p %{SOURCE8} %{buildroot}%{_docdir}/%{name}-%{version}/README
+install -m 644 -p %{SOURCE8} %{buildroot}%{_pkgdocdir}/README
 
 # Generate package filelists
 cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist \
@@ -115,6 +123,9 @@ cat $GLOBUSPACKAGEDIR/%{_name}/%{flavor}_pgm.filelist \
 cat $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist \
   | sed -e 's!/man/.*!&*!' -e 's!^!%doc %{_prefix}!' >> package.filelist
 
+%clean
+rm -rf %{buildroot}
+
 %files -f package.filelist
 %dir %{_datadir}/globus
 %dir %{_datadir}/globus/aclocal
@@ -124,10 +135,14 @@ cat $GLOBUSPACKAGEDIR/%{_name}/noflavor_doc.filelist \
 %dir %{_datadir}/globus/packages/%{_name}
 %dir %{_libdir}/globus
 %dir %{_libdir}/globus/include
-%dir %{_docdir}/%{name}-%{version}
-%doc %{_docdir}/%{name}-%{version}/README
+%dir %{_pkgdocdir}
+%doc %{_pkgdocdir}/README
 
 %changelog
+* Sun Jul 28 2013 Mattias Ellert <mattias.ellert at fysast.uu.se> - 8.9-8
+- Implement updated packaging guidelines
+- Fix documentation build rules - do not build twice
+
 * Wed Jul 24 2013 Petr Pisar <ppisar at redhat.com> - 8.9-7
 - Perl 5.18 rebuild
 


More information about the scm-commits mailing list