ellert pushed to root (el5). "Update to 5.34.28 (..more)"

notifications at fedoraproject.org notifications at fedoraproject.org
Sat Apr 4 05:24:58 UTC 2015


>From 764ed778347e178b0b949c850312ead7967fa228 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date: Sat, 4 Apr 2015 07:18:09 +0200
Subject: Update to 5.34.28

- Merge emacs support files into main package (guidelines updated)

diff --git a/root-gcc5-1.patch b/root-gcc5-1.patch
new file mode 100644
index 0000000..ab826cb
--- /dev/null
+++ b/root-gcc5-1.patch
@@ -0,0 +1,69 @@
+From 126c993d3c432ed09abc963bdbb1dc18f229a3e3 Mon Sep 17 00:00:00 2001
+From: David Abdurachmanov <davidlt at cern.ch>
+Date: Wed, 11 Mar 2015 11:31:13 +0100
+Subject: [PATCH 1/1] Regenerate iosenum.linuxarm643 for GCC 5
+
+There are two `iosenum.cxx` in ROOT5 source. Previously I used
+`./cint/cint/include/iosenum.cxx` which also generated compiler
+version check. This breaks on GCC 5 based system (e.g, Fedora 22).
+
+This time used `./cint/iosenum/iosenum.cxx` to match the rest of
+`iosenum.h` files in source.
+
+Signed-off-by: David Abdurachmanov <davidlt at cern.ch>
+---
+ cint/iosenum/iosenum.linuxarm643 | 38 ++------------------------------------
+ 1 file changed, 2 insertions(+), 36 deletions(-)
+
+diff --git a/cint/iosenum/iosenum.linuxarm643 b/cint/iosenum/iosenum.linuxarm643
+index 997f30b..0465c64 100644
+--- a/cint/iosenum/iosenum.linuxarm643
++++ b/cint/iosenum/iosenum.linuxarm643
+@@ -1,42 +1,8 @@
+-/* include/iosenum.h
++/* include/platform/iosenum.h
+  *  This file contains platform dependent ios enum value.
+- *  Run 'cint include/iosenum.cxx' to create this file. It is done
++ *  Run 'cint iosenum.cxx' to create this file. It is done
+  *  only once at installation. */
+-#if !defined(G__GNUC) || (G__GNUC!=4)
+-#error $CINTSYSDIR/include/iosenum.h compiler version mismatch. Do'cd $CINTSYSDIR/include; cint iosenum.cxx' to restore
+-#endif
+ #pragma ifndef G__TMPLTIOS
+-static int ios::goodbit=0;
+-static int ios::eofbit=2;
+-static int ios::failbit=4;
+-static int ios::badbit=1;
+-static int ios::in=8;
+-static int ios::out=16;
+-static int ios::ate=2;
+-static int ios::app=1;
+-static int ios::trunc=32;
+-static int ios::binary=4;
+-static int ios::beg=0;
+-static int ios::cur=1;
+-static int ios::end=2;
+-static int ios::boolalpha=1;
+-static int ios::adjustfield=176;
+-static int ios::basefield=74;
+-static int ios::floatfield=260;
+-static int ios::skipws=4096;
+-static int ios::left=32;
+-static int ios::right=128;
+-static int ios::internal=16;
+-static int ios::dec=2;
+-static int ios::oct=64;
+-static int ios::hex=8;
+-static int ios::showbase=512;
+-static int ios::showpoint=1024;
+-static int ios::uppercase=16384;
+-static int ios::showpos=2048;
+-static int ios::scientific=256;
+-static int ios::fixed=4;
+-static int ios::unitbuf=8192;
+ #pragma else
+ static ios_base::fmtflags ios_base::boolalpha=1;
+ static ios_base::fmtflags ios_base::dec=2;
+-- 
+1.8.2
+
diff --git a/root-gcc5-2.patch b/root-gcc5-2.patch
new file mode 100644
index 0000000..6343555
--- /dev/null
+++ b/root-gcc5-2.patch
@@ -0,0 +1,76 @@
+From 7dec562d1d5723b7eea08d08659dc9dc4e79c8ca Mon Sep 17 00:00:00 2001
+From: David Abdurachmanov <davidlt at cern.ch>
+Date: Wed, 11 Mar 2015 11:35:47 +0100
+Subject: [PATCH 1/1] Update CINT CMake and configure scripts for GCC 5
+
+The following is required otherwise `iosenum.h` will be missing causing
+build failures. Needed for Fedora 22.
+
+Signed-off-by: David Abdurachmanov <davidlt at cern.ch>
+---
+ cint/cint/CMakeLists.txt |  4 +---
+ cint/cint/Module.mk      | 12 ++++++++++++
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/cint/cint/CMakeLists.txt b/cint/cint/CMakeLists.txt
+index 705b57d..e7756be 100644
+--- a/cint/cint/CMakeLists.txt
++++ b/cint/cint/CMakeLists.txt
+@@ -61,9 +61,7 @@ set_source_files_properties(loadfile_tmp.cxx  COMPILE_FLAGS "-UR__HAVE_CONFIG -D
+ #---Generate and/or copy the iosenum headerfile to the include directory-------------------------------
+ if(${CLANG_MAJOR} GREATER 2)
+   set(IOSENUM_H ${PROJECT_SOURCE_DIR}/cint/iosenum/iosenum.${ROOT_ARCHITECTURE}3)
+-elseif(${GCC_MAJOR} EQUAL 4)
+-  set(IOSENUM_H ${PROJECT_SOURCE_DIR}/cint/iosenum/iosenum.${ROOT_ARCHITECTURE}3)
+-elseif(${GCC_MAJOR} EQUAL 3)
++elseif(${GCC_MAJOR} GREATER 3)
+   set(IOSENUM_H ${PROJECT_SOURCE_DIR}/cint/iosenum/iosenum.${ROOT_ARCHITECTURE}3)
+ else()
+   set(IOSENUM_H ${PROJECT_SOURCE_DIR}/cint/iosenum/iosenum.${ROOT_ARCHITECTURE})
+diff --git a/cint/cint/Module.mk b/cint/cint/Module.mk
+index 4cfed92..0293321 100644
+--- a/cint/cint/Module.mk
++++ b/cint/cint/Module.mk
+@@ -161,6 +161,10 @@ ifeq ($(GCC_MAJOR),4)
+ CINTS2       := $(filter-out $(MODDIRSD)/libstrm.%,$(CINTS2))
+ CINTS2       += $(MODDIRSD)/gcc4strm.cxx
+ endif
++ifeq ($(GCC_MAJOR),5)
++CINTS2       := $(filter-out $(MODDIRSD)/libstrm.%,$(CINTS2))
++CINTS2       += $(MODDIRSD)/gcc4strm.cxx
++endif
+ ifneq ($(CLANG_MAJOR),)
+ CINTS2       := $(filter-out $(MODDIRSD)/libstrm.%,$(CINTS2))
+ CINTS2       += $(MODDIRSD)/gcc4strm.cxx
+@@ -203,6 +207,9 @@ IOSENUMC     := $(CINTDIRIOSEN)/iosenum.cxx
+ ifneq ($(CLANG_MAJOR),)
+ IOSENUMA     := $(CINTDIRIOSEN)/iosenum.$(ARCH)3
+ else
++ifeq ($(GCC_MAJOR),5)
++IOSENUMA     := $(CINTDIRIOSEN)/iosenum.$(ARCH)3
++else
+ ifeq ($(GCC_MAJOR),4)
+ IOSENUMA     := $(CINTDIRIOSEN)/iosenum.$(ARCH)3
+ else
+@@ -213,6 +220,7 @@ IOSENUMA     := $(CINTDIRIOSEN)/iosenum.$(ARCH)
+ endif
+ endif
+ endif
++endif
+ 
+ # used in the main Makefile
+ ALLHDRS     += $(CINTHT) $(CINTINCLUDES)
+@@ -344,6 +352,10 @@ $(call stripsrc,$(CINTDIRSD)/%strm.o):    CINTCXXFLAGS += -I$(CINTDIRL)/$(notdir
+ ifeq ($(GCC_MAJOR),4)
+ $(call stripsrc,$(CINTDIRSD)/gcc4strm.o): CINTCXXFLAGS += -Wno-strict-aliasing
+ endif
++ifeq ($(GCC_MAJOR),5)
++$(call stripsrc,$(CINTDIRSD)/gcc4strm.o): CINTCXXFLAGS += -Wno-strict-aliasing
++endif
++
+ 
+ $(MAKECINTO) $(CINTO): $(CINTCONF) $(ORDER_) $(CINTINCLUDES)
+ 
+-- 
+1.8.2
+
diff --git a/root-gcc5-3.patch b/root-gcc5-3.patch
new file mode 100644
index 0000000..740561e
--- /dev/null
+++ b/root-gcc5-3.patch
@@ -0,0 +1,34 @@
+From 0a2381e82798f6fad2013d553c76b5f321b8a6a3 Mon Sep 17 00:00:00 2001
+From: David Abdurachmanov <davidlt at cern.ch>
+Date: Wed, 11 Mar 2015 11:37:28 +0100
+Subject: [PATCH 1/1] Disable unsecure gets() in CINT as it's removed in C11
+
+gets() for a long time is considered unsafe, one could use fgets()
+instead. Also gets_s() could be used since C11. GCC 5 and Clang 3.6
+defaults to C11 as default now. glibc still provides gets() only
+if compiling for GNU specifically (_GNU_SOURCE is defined). Other
+libc implementations behavior is unknown to me.
+
+Required for Fedora 22.
+
+Signed-off-by: David Abdurachmanov <davidlt at cern.ch>
+---
+ cint/cint/lib/stdstrct/stdfunc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cint/cint/lib/stdstrct/stdfunc.h b/cint/cint/lib/stdstrct/stdfunc.h
+index 530bc71..f849b13 100644
+--- a/cint/cint/lib/stdstrct/stdfunc.h
++++ b/cint/cint/lib/stdstrct/stdfunc.h
+@@ -70,7 +70,7 @@ size_t fwrite(void *buffer,size_t size,size_t n,FILE *fp);
+ int getc(FILE *fp);
+ int getchar(void);
+ char *getenv(const char *variable);
+-char *gets(char *buffer);
++/* char *gets(char *buffer); */
+ struct tm* gmtime(time_t *caltime);
+ int isalnum(int c);
+ int isalpha(int c);
+-- 
+1.8.2
+
diff --git a/root-gcc5-4.patch b/root-gcc5-4.patch
new file mode 100644
index 0000000..14f8cd9
--- /dev/null
+++ b/root-gcc5-4.patch
@@ -0,0 +1,49 @@
+From 19f4cf3c144c4a2b6e2e758c601fc3976e9baa39 Mon Sep 17 00:00:00 2001
+From: David Abdurachmanov <davidlt at cern.ch>
+Date: Wed, 11 Mar 2015 11:43:02 +0100
+Subject: [PATCH 1/1] Remove `operator void*() const` from CINT if compiled in
+ C++11 mode (GCC 5)
+
+`std::basic_ios` had `operator void*() const` until C++11 and after that
+`explicit operator bool() const`. libstdc++ with GCC 5 finally cleans up
+things to be more compliant with C++11 standard. This is required if ROOT5
+is compiled in C++11 mode (--enable-c++11) on GCC 5.
+
+Signed-off-by: David Abdurachmanov <davidlt at cern.ch>
+---
+ cint/cint/src/dict/gcc4strm.cxx | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/cint/cint/src/dict/gcc4strm.cxx b/cint/cint/src/dict/gcc4strm.cxx
+index 2bc8d43..4db0264 100644
+--- a/cint/cint/src/dict/gcc4strm.cxx
++++ b/cint/cint/src/dict/gcc4strm.cxx
+@@ -1047,11 +1047,14 @@ static int G__G__stream_13_0_8(G__value* result7, G__CONST char* funcname, struc
+    return(1 || funcname || hash || result7 || libp) ;
+ }
+ 
++#if __cplusplus < 201103L
++// operator void*() const is only available until C++11. Starting C++11 it's replaced with explicit operator bool() const
+ static int G__G__stream_13_0_9(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+ {
+       G__letint(result7, 89, (long) ((const basic_ios<char,char_traits<char> >*) G__getstructoffset())->operator void*());
+    return(1 || funcname || hash || result7 || libp) ;
+ }
++#endif
+ 
+ static int G__G__stream_13_0_10(G__value* result7, G__CONST char* funcname, struct G__param* libp, int hash)
+ {
+@@ -4097,7 +4100,10 @@ static void G__setup_memfuncbasic_ioslEcharcOchar_traitslEchargRsPgR(void) {
+    G__memfunc_setup("clear",519,G__G__stream_13_0_6, 121, -1, -1, 0, 1, 1, 1, 0, "i - 'ios_base::iostate' 0 'goodbit' state", (char*)NULL, (void*) NULL, 0);
+    G__memfunc_setup("setstate",877,G__G__stream_13_0_7, 121, -1, -1, 0, 1, 1, 1, 0, "i - 'ios_base::iostate' 0 - state", (char*)NULL, (void*) NULL, 0);
+    G__memfunc_setup("rdstate",759,G__G__stream_13_0_8, 105, -1, G__defined_typename("ios_base::iostate"), 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
++#if __cplusplus < 201103L
++// operator void*() const is only available until C++11. Starting C++11 it's replaced with explicit operator bool() const
+    G__memfunc_setup("operator void*",1384,G__G__stream_13_0_9, 89, -1, -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
++#endif
+    G__memfunc_setup("operator!",909,G__G__stream_13_0_10, 103, -1, -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
+    G__memfunc_setup("good",425,G__G__stream_13_0_11, 103, -1, -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
+    G__memfunc_setup("eof",314,G__G__stream_13_0_12, 103, -1, -1, 0, 0, 1, 1, 8, "", (char*)NULL, (void*) NULL, 0);
+-- 
+1.8.2
+
diff --git a/root-meta.patch b/root-meta.patch
index 6395e3a..02dc37d 100644
--- a/root-meta.patch
+++ b/root-meta.patch
@@ -1,7 +1,7 @@
 diff -ur root-5.32.00.orig/core/meta/src/TCint.cxx root-5.32.00/core/meta/src/TCint.cxx
 --- root-5.32.00.orig/core/meta/src/TCint.cxx	2011-12-02 12:41:50.000000000 +0100
 +++ root-5.32.00/core/meta/src/TCint.cxx	2012-02-18 12:07:12.157520013 +0100
-@@ -320,23 +320,27 @@
+@@ -320,25 +320,29 @@
     ProcessLine("#define ROOT_TError 0");
     ProcessLine("#define ROOT_TGenericClassInfo 0");   
  
@@ -30,6 +30,8 @@ diff -ur root-5.32.00.orig/core/meta/src/TCint.cxx root-5.32.00/core/meta/src/TC
 -      ProcessLine("#include <RtypesCint.h>");
 -      delete[] whichTypesCint;
 -  }
+-  // We cannot autoload this but ROOT needs it (ROOT-7103)
+-  ProcessLine("#include <iostream>");
 +      // Allow the usage of ClassDef and ClassImp in interpreted macros
 +      // if RtypesCint.h can be found (think of static executable without
 +      // include/)
@@ -38,7 +40,9 @@ diff -ur root-5.32.00.orig/core/meta/src/TCint.cxx root-5.32.00/core/meta/src/TC
 +         ProcessLine("#include <RtypesCint.h>");
 +         delete[] whichTypesCint;
 +      }
++      // We cannot autoload this but ROOT needs it (ROOT-7103)
++      ProcessLine("#include <iostream>");
 +   }
- 
  }
  
+ //______________________________________________________________________________
diff --git a/root.spec b/root.spec
index ad2948c..6dd2cac 100644
--- a/root.spec
+++ b/root.spec
@@ -21,20 +21,14 @@
 %endif
 %endif
 
-%if %($(pkg-config emacs) ; echo $?)
-%global emacs_version 21.4
-%global emacs_lispdir %{_datadir}/emacs/site-lisp
-%else
-%global emacs_version %(pkg-config emacs --modversion)
-%global emacs_lispdir %(pkg-config emacs --variable sitepkglispdir)
-%endif
+%{!?_emacs_sitelispdir: %global _emacs_sitelispdir %{_datadir}/emacs/site-lisp}
 
 %global xrootd 1
 
 %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
 
 Name:		root
-Version:	5.34.26
+Version:	5.34.28
 %global libversion %(cut -d. -f 1-2 <<< %{version})
 Release:	1%{?dist}
 Summary:	Numerical data analysis framework
@@ -80,6 +74,11 @@ Patch7:		%{name}-hdfs.patch
 Patch8:		%{name}-dont-link-jvm.patch
 #		Use local copy of input file during documentation generation
 Patch9:		%{name}-usa.patch
+#		Fixes for gcc 5 (from upstream git)
+Patch10:	%{name}-gcc5-1.patch
+Patch11:	%{name}-gcc5-2.patch
+Patch12:	%{name}-gcc5-3.patch
+Patch13:	%{name}-gcc5-4.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 #		The build segfaults on ppc64 during an invocation of cint:
 #		https://savannah.cern.ch/bugs/index.php?70542
@@ -193,6 +192,13 @@ BuildRequires:	font(stixsize1)
 %endif
 %endif
 Requires:	hicolor-icon-theme
+%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7
+Requires:	emacs-filesystem >= %{_emacs_version}
+%endif
+Provides:	emacs-%{name} = %{version}-%{release}
+Provides:	emacs-%{name}-el = %{version}-%{release}
+Obsoletes:	emacs-%{name} < 5.34.28
+Obsoletes:	emacs-%{name}-el < 5.34.28
 
 %description
 The ROOT system provides a set of object oriented frameworks with all
@@ -1119,36 +1125,6 @@ Group:		Applications/Engineering
 %description tree-viewer
 This package contains a plugin for browsing a ROOT tree in ROOT.
 
-%package -n emacs-%{name}
-Summary:	Compiled elisp files to run root under GNU Emacs
-Group:		Applications/Engineering
-%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6
-BuildArch:	noarch
-%endif
-Requires:	%{name} = %{version}-%{release}
-%if %{?rhel}%{!?rhel:0} == 5
-Requires:	emacs >= %{emacs_version}
-%else
-Requires:	emacs(bin) >= %{emacs_version}
-%endif
-
-%description -n emacs-%{name}
-emacs-root is an add-on package for GNU Emacs. It provides integration
-with ROOT.
-
-%package -n emacs-%{name}-el
-Summary:	Elisp source files for root under GNU Emacs
-Group:		Applications/Engineering
-%if %{?fedora}%{!?fedora:0} >= 10 || %{?rhel}%{!?rhel:0} >= 6
-BuildArch:	noarch
-%endif
-Requires:	emacs-%{name} = %{version}-%{release}
-
-%description -n emacs-%{name}-el
-This package contains the elisp source files for root under GNU Emacs. You
-do not need to install this package to run root. Install the emacs-root
-package to use root with GNU Emacs.
-
 %prep
 %setup -q
 if pkg-config --max-version 2.1.2 ftgl ; then
@@ -1163,6 +1139,10 @@ fi
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
 
 find . '(' -name '*.cxx' -o -name '*.cpp' -o -name '*.C' -o -name '*.c' -o \
 	   -name '*.h' -o -name '*.hh' -o -name '*.hi' -o -name '*.py' -o \
@@ -1249,7 +1229,7 @@ unset QTINC
 	    --libdir=%{_libdir}/%{name} \
 	    --etcdir=%{_datadir}/%{name} \
 	    --docdir=%{_pkgdocdir} \
-	    --elispdir=%{emacs_lispdir}/%{name} \
+	    --elispdir=%{_emacs_sitelispdir}/%{name} \
 %if %{?fedora}%{!?fedora:0} >= 13 || %{?rhel}%{!?rhel:0} >= 6
 	    --disable-builtin-afterimage \
 %else
@@ -1376,7 +1356,7 @@ mv %{buildroot}%{_libdir}/%{name}/*.py* %{buildroot}%{python_sitearch}
 
 # Do emacs byte compilation
 emacs -batch -no-site-file -f batch-byte-compile \
-    %{buildroot}%{emacs_lispdir}/%{name}/*.el
+    %{buildroot}%{_emacs_sitelispdir}/%{name}/*.el
 
 # Install desktop entry and icon
 mkdir -p %{buildroot}%{_datadir}/applications
@@ -1867,6 +1847,14 @@ fi
 %{_datadir}/icons/hicolor/48x48/apps/root.png
 %{_datadir}/icons/hicolor/48x48/mimetypes/application-x-root.png
 %{_datadir}/mime/packages/root.xml
+%if %{?fedora}%{!?fedora:0} < 15 && %{?rhel}%{!?rhel:0} < 7
+# No emacs-filesystem package
+%dir %{_datadir}/emacs
+%dir %{_emacs_sitelispdir}
+%endif
+%dir %{_emacs_sitelispdir}/%{name}
+%{_emacs_sitelispdir}/%{name}/*.elc
+%{_emacs_sitelispdir}/%{name}/*.el
 
 %files icons
 %{_datadir}/%{name}/icons
@@ -2412,14 +2400,11 @@ fi
 %{_libdir}/%{name}/libTreeViewer.*
 %{_datadir}/%{name}/plugins/TVirtualTreeViewer/P010_TTreeViewer.C
 
-%files -n emacs-%{name}
-%dir %{emacs_lispdir}/root
-%{emacs_lispdir}/root/*.elc
-
-%files -n emacs-%{name}-el
-%{emacs_lispdir}/root/*.el
-
 %changelog
+* Fri Apr 03 2015 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.34.28-1
+- Update to 5.34.28
+- Merge emacs support files into main package (guidelines updated)
+
 * Tue Feb 24 2015 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.34.26-1
 - Update to 5.34.26
 - Drop patch root-xrdversion.patch
diff --git a/sources b/sources
index 667e107..eb2cd1b 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-baf87e434af88ecbbdfc47ab49608b57  root-5.34.26.tar.xz
+87647e87b2ab5634759e0efe99ec1543  root-5.34.28.tar.xz
 afb35390554c43a7d92576a6d9d3ae8a  usa.root
-- 
cgit v0.10.2


	http://pkgs.fedoraproject.org/cgit/root.git/commit/?h=el5&id=764ed778347e178b0b949c850312ead7967fa228


More information about the scm-commits mailing list