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