[root/el5] Update to 5.34.18

Mattias Ellert ellert at fedoraproject.org
Sat Mar 22 11:30:30 UTC 2014


commit 62af349cdfc7bf009a5b11d108094e30a002088f
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date:   Sat Mar 22 12:29:07 2014 +0100

    Update to 5.34.18
    
    - Build GFAL module using libgfal2
    - New sub-package: root-vdt

 root-fontconfig.patch |  825 ++++++++++++++++++++++++++++++-------------------
 root-gfal2.patch      |   72 +++++
 root.spec             |   66 ++--
 sources               |    2 +-
 4 files changed, 618 insertions(+), 347 deletions(-)
---
diff --git a/root-fontconfig.patch b/root-fontconfig.patch
index 98db311..4a5621f 100644
--- a/root-fontconfig.patch
+++ b/root-fontconfig.patch
@@ -1,7 +1,7 @@
-diff -ur root-5.34.09.orig/core/base/src/TApplication.cxx root-5.34.09/core/base/src/TApplication.cxx
---- root-5.34.09.orig/core/base/src/TApplication.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/core/base/src/TApplication.cxx	2013-08-08 07:35:32.435919608 +0200
-@@ -237,22 +237,11 @@
+diff -ur root-5.34.18.orig/core/base/src/TApplication.cxx root-5.34.18/core/base/src/TApplication.cxx
+--- root-5.34.18.orig/core/base/src/TApplication.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/core/base/src/TApplication.cxx	2014-03-15 18:15:22.756445235 +0100
+@@ -265,22 +265,11 @@
     LoadGraphicsLibs();
  
     // Try to load TrueType font renderer. Only try to load if not in batch
@@ -26,7 +26,7 @@ diff -ur root-5.34.09.orig/core/base/src/TApplication.cxx root-5.34.09/core/base
        if (gClassTable->GetDict("TGX11TTF")) {
           // in principle we should not have linked anything against libGX11TTF
           // but with ACLiC this can happen, initialize TGX11TTF by hand
-@@ -266,7 +255,6 @@
+@@ -294,7 +283,6 @@
        }
     }
  #endif
@@ -34,10 +34,10 @@ diff -ur root-5.34.09.orig/core/base/src/TApplication.cxx root-5.34.09/core/base
  
     // Create WM dependent application environment
     if (fAppImp)
-diff -ur root-5.34.09.orig/graf2d/graf/inc/TTF.h root-5.34.09/graf2d/graf/inc/TTF.h
---- root-5.34.09.orig/graf2d/graf/inc/TTF.h	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf2d/graf/inc/TTF.h	2013-08-08 07:35:32.435919608 +0200
-@@ -71,9 +71,8 @@
+diff -ur root-5.34.18.orig/graf2d/graf/inc/TTF.h root-5.34.18/graf2d/graf/inc/TTF.h
+--- root-5.34.18.orig/graf2d/graf/inc/TTF.h	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf2d/graf/inc/TTF.h	2014-03-15 18:15:22.757445223 +0100
+@@ -70,9 +70,8 @@
     static FT_BBox     fgCBox;                  // string control box
     static FT_CharMap  fgCharMap[kTTMaxFonts];  // font character map
     static Int_t       fgCurFontIdx;            // current font index
@@ -48,9 +48,9 @@ diff -ur root-5.34.09.orig/graf2d/graf/inc/TTF.h root-5.34.09/graf2d/graf/inc/TT
     static FT_Face     fgFace[kTTMaxFonts];     // font face
     static TTGlyph     fgGlyphs[kMaxGlyphs];    // glyphs
     static Bool_t      fgHinting;               // use hinting (true by default)
-diff -ur root-5.34.09.orig/graf2d/graf/Module.mk root-5.34.09/graf2d/graf/Module.mk
---- root-5.34.09.orig/graf2d/graf/Module.mk	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf2d/graf/Module.mk	2013-08-08 07:35:32.435919608 +0200
+diff -ur root-5.34.18.orig/graf2d/graf/Module.mk root-5.34.18/graf2d/graf/Module.mk
+--- root-5.34.18.orig/graf2d/graf/Module.mk	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf2d/graf/Module.mk	2014-03-15 18:15:22.757445223 +0100
 @@ -46,7 +46,7 @@
  		@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
  		   "$(SOFLAGS)" libGraf.$(SOEXT) $@ \
@@ -60,9 +60,9 @@ diff -ur root-5.34.09.orig/graf2d/graf/Module.mk root-5.34.09/graf2d/graf/Module
  
  $(GRAFDS):      $(GRAFH) $(GRAFL) $(ROOTCINTTMPDEP)
  		$(MAKEDIR)
-diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/TTF.cxx
---- root-5.34.09.orig/graf2d/graf/src/TTF.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf2d/graf/src/TTF.cxx	2013-08-08 07:35:32.437919624 +0200
+diff -ur root-5.34.18.orig/graf2d/graf/src/TTF.cxx root-5.34.18/graf2d/graf/src/TTF.cxx
+--- root-5.34.18.orig/graf2d/graf/src/TTF.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf2d/graf/src/TTF.cxx	2014-03-20 14:27:01.700346310 +0100
 @@ -17,15 +17,13 @@
  //                                                                      //
  //////////////////////////////////////////////////////////////////////////
@@ -135,53 +135,53 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
 +      SetTextFont(12);
 +   }
 +   else if (strcmp(basename, "timesbd.ttf") == 0 ||
-+	    strcmp(basename, "FreeSerifBold.otf") == 0) {
++            strcmp(basename, "FreeSerifBold.otf") == 0) {
 +      SetTextFont(22);
 +   }
 +   else if (strcmp(basename, "timesbi.ttf") == 0 ||
-+	    strcmp(basename, "FreeSerifBoldItalic.otf") == 0) {
++            strcmp(basename, "FreeSerifBoldItalic.otf") == 0) {
 +      SetTextFont(32);
 +   }
 +   else if (strcmp(basename, "arial.ttf") == 0 ||
-+	    strcmp(basename, "FreeSans.otf") == 0) {
++            strcmp(basename, "FreeSans.otf") == 0) {
 +      SetTextFont(42);
 +   }
 +   else if (strcmp(basename, "ariali.ttf") == 0 ||
-+	    strcmp(basename, "FreeSansOblique.otf") == 0) {
++            strcmp(basename, "FreeSansOblique.otf") == 0) {
 +      SetTextFont(52);
 +   }
 +   else if (strcmp(basename, "arialbd.ttf") == 0 ||
-+	    strcmp(basename, "FreeSansBold.otf") == 0) {
++            strcmp(basename, "FreeSansBold.otf") == 0) {
 +      SetTextFont(62);
 +   }
 +   else if (strcmp(basename, "arialbi.ttf") == 0 ||
-+	    strcmp(basename, "FreeSansBoldOblique.otf") == 0) {
++            strcmp(basename, "FreeSansBoldOblique.otf") == 0) {
 +      SetTextFont(72);
 +   }
 +   else if (strcmp(basename, "cour.ttf") == 0 ||
-+	    strcmp(basename, "FreeMono.otf") == 0) {
++            strcmp(basename, "FreeMono.otf") == 0) {
 +      SetTextFont(82);
 +   }
 +   else if (strcmp(basename, "couri.ttf") == 0 ||
-+	    strcmp(basename, "FreeMonoOblique.otf") == 0) {
++            strcmp(basename, "FreeMonoOblique.otf") == 0) {
 +      SetTextFont(92);
 +   }
 +   else if (strcmp(basename, "courbd.ttf") == 0 ||
-+	    strcmp(basename, "FreeMonoBold.otf") == 0) {
++            strcmp(basename, "FreeMonoBold.otf") == 0) {
 +      SetTextFont(102);
 +   }
 +   else if (strcmp(basename, "courbi.ttf") == 0 ||
-+	    strcmp(basename, "FreeMonoBoldOblique.otf") == 0) {
++            strcmp(basename, "FreeMonoBoldOblique.otf") == 0) {
 +      SetTextFont(112);
 +   }
 +   else if (strcmp(basename, "symbol.ttf") == 0) {
 +      if (italic)
-+	 SetTextFont(152);
++         SetTextFont(152);
 +      else
-+	 SetTextFont(122);
++         SetTextFont(122);
 +   }
 +   else if (strcmp(basename, "times.ttf") == 0 ||
-+	    strcmp(basename, "FreeSerif.otf") == 0) {
++            strcmp(basename, "FreeSerif.otf") == 0) {
 +      SetTextFont(132);
 +   }
 +   else if (strcmp(basename, "wingding.ttf") == 0) {
@@ -255,8 +255,8 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
 +   if (!fgInit) Init();
 +
 +   if (fontid == 0) {
-+     fgCurFontIdx = 0;  // use font 0 (default font, set in ctor)
-+     return;
++      fgCurFontIdx = 0;  // use font 0 (default font, set in ctor)
++      return;
 +   }
 +
     // check if font is in cache
@@ -310,44 +310,44 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
 +      const char *ttpath = "/usr/share/texlive/texmf-dist/fonts/opentype/public/stix";
 +      switch (fontid) {
 +      case 16:
-+	 ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission);
++         break;
 +      case 17:
-+	 ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission);
++         break;
 +      case 18:
-+	 ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission);
++         break;
 +      case 19:
-+	 ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission);
++         break;
 +      case 20:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission);
++         break;
 +      case 21:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission);
++         break;
 +      case 22:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission);
++         break;
 +      case 23:
 +         ttfont = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission);
-+	 break;
++         break;
 +      case 24:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission);
++         break;
 +      case 25:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission);
++         break;
 +      case 26:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission);
++         break;
 +      case 27:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission);
++         break;
 +      case 28:
-+	 ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission);
-+	 break;
++         ttfont = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission);
++         break;
 +      }
 +   }
  
@@ -355,10 +355,6 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
 -      Error("TTF::SetTextFont", "font file %s not found in path", fontname);
 -      if (fgFontCount) {
 -         Warning("TTF::SetTextFont", "using default font %s", fgFontName[0]);
--         fgCurFontIdx = 0;    // use font 0 (default font, set in ctor)
--         return 0;
--      } else {
--         return 1;
 +      FcPattern *pat, *match;
 +      FcCharSet *set = NULL;
 +      FcResult result;
@@ -367,174 +363,177 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
 +
 +      switch (fontid) {
 +      case 1:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 2:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 3:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 4:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 5:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 6:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 7:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 8:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 9:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 10:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 11:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 12:
 +      case 15:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 13:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 14:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 16:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 17:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 18:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 19:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++         break;
 +      case 20:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizeonesym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 // set = FcCharSetCreate ();
-+	 // FcCharSetAddChar (set, 0x239b); // Bracket pieces
-+	 // FcPatternAddCharSet (pat, FC_CHARSET, set);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizeonesym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         // set = FcCharSetCreate ();
++         // FcCharSetAddChar (set, 0x239b); // Bracket pieces
++         // FcPatternAddCharSet (pat, FC_CHARSET, set);
++         break;
 +      case 21:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizeonesym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 // set = FcCharSetCreate ();
-+	 // FcCharSetAddChar (set, 0x239b); // Bracket pieces
-+	 // FcPatternAddCharSet (pat, FC_CHARSET, set);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizeonesym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         // set = FcCharSetCreate ();
++         // FcCharSetAddChar (set, 0x239b); // Bracket pieces
++         // FcPatternAddCharSet (pat, FC_CHARSET, set);
++         break;
 +      case 22:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizetwosym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizetwosym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 23:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizetwosym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizetwosym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 24:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize13");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize13");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 25:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 26:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefoursym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefoursym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 27:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefoursym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefoursym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 28:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefivesym");
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize5");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefivesym");
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize5");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         break;
 +      case 29:
 +      case 30:
 +      case 31:
-+	 FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"droidsansfallback");
-+	 FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+	 FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+	 set = FcCharSetCreate ();
-+	 FcCharSetAddChar (set, 0x0410); // Cyrillic
-+	 FcCharSetAddChar (set, 0x4e00); // CJK
-+	 FcPatternAddCharSet (pat, FC_CHARSET, set);
-+	 break;
++         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"droidsansfallback");
++         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++         set = FcCharSetCreate ();
++         FcCharSetAddChar (set, 0x0410); // Cyrillic
++         FcCharSetAddChar (set, 0x4e00); // CJK
++         FcPatternAddCharSet (pat, FC_CHARSET, set);
++         break;
 +      default:
-+	 Error("TTF::SetTextFont", "font %i not known to ROOT", fontid);
-+	 FcPatternDestroy (pat);
-+	 Warning("TTF::SetTextFont", "using default font");
-+	 fgCurFontIdx = 0;    // use font 0 (default font, set in ctor)
-+	 return;
-+	 break;
++         Error("TTF::SetTextFont", "font %i not known to ROOT", fontid);
++         FcPatternDestroy (pat);
++         Warning("TTF::SetTextFont", "using default font");
+          fgCurFontIdx = 0;    // use font 0 (default font, set in ctor)
+-         return 0;
+-      } else {
+-         return 1;
++         return;
++         break;
        }
 +
 +      FcConfigSubstitute (NULL, pat, FcMatchPattern);
@@ -542,7 +541,7 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
 +      match = FcFontMatch (NULL, pat, &result);
 +      char* ttfnt;
 +      FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt);
-+      ttfont = StrDup(ttfnt);
++      ttfont = StrDup (ttfnt);
 +      FcPatternGetInteger (match, FC_INDEX, 0, &ttindex);
 +      FcPatternDestroy (match);
 +      FcPatternDestroy (pat);
@@ -686,9 +685,9 @@ diff -ur root-5.34.09.orig/graf2d/graf/src/TTF.cxx root-5.34.09/graf2d/graf/src/
  }
  
  //______________________________________________________________________________
-diff -ur root-5.34.09.orig/graf2d/postscript/Module.mk root-5.34.09/graf2d/postscript/Module.mk
---- root-5.34.09.orig/graf2d/postscript/Module.mk	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf2d/postscript/Module.mk	2013-08-08 07:35:32.437919624 +0200
+diff -ur root-5.34.18.orig/graf2d/postscript/Module.mk root-5.34.18/graf2d/postscript/Module.mk
+--- root-5.34.18.orig/graf2d/postscript/Module.mk	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf2d/postscript/Module.mk	2014-03-15 18:15:22.758445211 +0100
 @@ -50,7 +50,7 @@
  		@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
  		   "$(SOFLAGS)" libPostscript.$(SOEXT) $@ \
@@ -698,9 +697,9 @@ diff -ur root-5.34.09.orig/graf2d/postscript/Module.mk root-5.34.09/graf2d/posts
  
  $(POSTSCRIPTDS): $(POSTSCRIPTH) $(POSTSCRIPTL) $(ROOTCINTTMPDEP)
  		$(MAKEDIR)
-diff -ur root-5.34.09.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.09/graf2d/postscript/src/TPostScript.cxx
---- root-5.34.09.orig/graf2d/postscript/src/TPostScript.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf2d/postscript/src/TPostScript.cxx	2013-08-08 07:36:53.709607143 +0200
+diff -ur root-5.34.18.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.18/graf2d/postscript/src/TPostScript.cxx
+--- root-5.34.18.orig/graf2d/postscript/src/TPostScript.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf2d/postscript/src/TPostScript.cxx	2014-03-15 18:15:22.759445199 +0100
 @@ -238,6 +238,7 @@
  #include <string.h>
  #include <ctype.h>
@@ -1052,9 +1051,9 @@ diff -ur root-5.34.09.orig/graf2d/postscript/src/TPostScript.cxx root-5.34.09/gr
  	   { "Root.PSFont.12",            "/Symbol" },
  	   { "Root.PSFont.13",            "/Times-Roman" },
  	   { "Root.PSFont.14",            "/ZapfDingbats" },
-diff -ur root-5.34.09.orig/graf3d/gl/Module.mk root-5.34.09/graf3d/gl/Module.mk
---- root-5.34.09.orig/graf3d/gl/Module.mk	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf3d/gl/Module.mk	2013-08-08 07:35:32.439919641 +0200
+diff -ur root-5.34.18.orig/graf3d/gl/Module.mk root-5.34.18/graf3d/gl/Module.mk
+--- root-5.34.18.orig/graf3d/gl/Module.mk	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf3d/gl/Module.mk	2014-03-15 18:15:22.760445187 +0100
 @@ -78,7 +78,7 @@
  		@$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \
  		   "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \
@@ -1064,9 +1063,9 @@ diff -ur root-5.34.09.orig/graf3d/gl/Module.mk root-5.34.09/graf3d/gl/Module.mk
  
  $(GLDS):	$(GLH2) $(GLL) $(ROOTCINTTMPDEP)
  		$(MAKEDIR)
-diff -ur root-5.34.09.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.09/graf3d/gl/src/TGLFontManager.cxx
---- root-5.34.09.orig/graf3d/gl/src/TGLFontManager.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf3d/gl/src/TGLFontManager.cxx	2013-08-08 07:35:32.440919650 +0200
+diff -ur root-5.34.18.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.18/graf3d/gl/src/TGLFontManager.cxx
+--- root-5.34.18.orig/graf3d/gl/src/TGLFontManager.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf3d/gl/src/TGLFontManager.cxx	2014-03-22 09:22:22.715637375 +0100
 @@ -36,6 +36,7 @@
  # include "FTGLBitmapFont.h"
  #endif
@@ -1075,7 +1074,16 @@ diff -ur root-5.34.09.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.09/graf3d/
  
  //______________________________________________________________________________
  // TGLFont
-@@ -391,17 +392,91 @@
+@@ -413,7 +414,7 @@
+ ClassImp(TGLFontManager);
+ 
+ TObjArray   TGLFontManager::fgFontFileArray;
+-Int_t TGLFontManager::fgExtendedFontStart;
++Int_t TGLFontManager::fgExtendedFontStart = 0;
+ TGLFontManager::FontSizeVec_t TGLFontManager::fgFontSizeArray;
+ Bool_t  TGLFontManager::fgStaticInitDone = kFALSE;
+ 
+@@ -444,19 +445,238 @@
     FontMap_i it = fFontMap.find(TGLFont(size, fileID, mode));
     if (it == fFontMap.end())
     {
@@ -1086,114 +1094,303 @@ diff -ur root-5.34.09.orig/graf3d/gl/src/TGLFontManager.cxx root-5.34.09/graf3d/
 -      ttpath = gEnv->GetValue("Root.TTGLFontPath", "$(ROOTSYS)/fonts");
 -# endif
 -      {
--         char *fp = gSystem->Which(ttpath, ((TObjString*)fgFontFileArray[fileID])->String() + ".ttf");
+-         //For extenede we have both ttf and otf.
+-         char *fp = gSystem->Which(ttpath, fileID < fgExtendedFontStart ?
+-                                   ((TObjString*)fgFontFileArray[fileID])->String() + ".ttf" :
+-                                   ((TObjString*)fgFontFileArray[fileID])->String());
 -         file = fp;
 -         delete [] fp;
-+      const char *fontname = ((TObjString*)fgFontFileArray[fileID])->String().Data();
++      char *file = NULL;
++      int ttindex = 0;
 +
-+      FcPattern *pat, *match;
-+      FcResult result;
-+      char *file;
-+      int ttindex;
++      if (fileID >= 15 && fileID <= 27) {
++         // Use the texlive-stix fonts if they exist
++         // Texlive-stix not packaged correctly - can not be found through fontconfig
++         // Use hardcoded path
++         const char *ttpath = "/usr/share/texlive/texmf-dist/fonts/opentype/public/stix";
++         switch (fileID) {
++         case 15:
++            file = gSystem->Which(ttpath, "STIXGeneral.otf", kReadPermission);
++            break;
++         case 16:
++            file = gSystem->Which(ttpath, "STIXGeneralItalic.otf", kReadPermission);
++            break;
++         case 17:
++            file = gSystem->Which(ttpath, "STIXGeneralBol.otf", kReadPermission);
++            break;
++         case 18:
++            file = gSystem->Which(ttpath, "STIXGeneralBolIta.otf", kReadPermission);
++            break;
++         case 19:
++            file = gSystem->Which(ttpath, "STIXSizOneSymReg.otf", kReadPermission);
++            break;
++         case 20:
++            file = gSystem->Which(ttpath, "STIXSizOneSymBol.otf", kReadPermission);
++            break;
++         case 21:
++            file = gSystem->Which(ttpath, "STIXSizTwoSymReg.otf", kReadPermission);
++            break;
++         case 22:
++            file = gSystem->Which(ttpath, "STIXSizTwoSymBol.otf", kReadPermission);
++            break;
++         case 23:
++            file = gSystem->Which(ttpath, "STIXSizThreeSymReg.otf", kReadPermission);
++            break;
++         case 24:
++            file = gSystem->Which(ttpath, "STIXSizThreeSymBol.otf", kReadPermission);
++            break;
++         case 25:
++            file = gSystem->Which(ttpath, "STIXSizFourSymReg.otf", kReadPermission);
++            break;
++         case 26:
++            file = gSystem->Which(ttpath, "STIXSizFourSymBol.otf", kReadPermission);
++            break;
++         case 27:
++            file = gSystem->Which(ttpath, "STIXSizFiveSymReg.otf", kReadPermission);
++            break;
++         }
++      }
 +
-+      pat = FcPatternCreate ();
++      if (!file) {
++         FcPattern *pat, *match;
++         FcCharSet *set = NULL;
++         FcResult result;
 +
-+      if (strcmp(fontname, /* 1 */ "timesi") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+      }
-+      else if (strcmp(fontname, /* 2 */ "timesbd") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 3 */ "timesbi") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+      }
-+      else if (strcmp(fontname, /* 4 */ "arial") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 5 */ "ariali") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+      }
-+      else if (strcmp(fontname, /* 6 */ "arialbd") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 7 */ "arialbi") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-       }
-+      else if (strcmp(fontname, /* 8 */ "cour") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 9 */ "couri") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+      }
-+      else if (strcmp(fontname, /* 10 */ "courbd") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 11 */ "courbi") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
-+      }
-+      else if (strcmp(fontname, /* 12 */ "symbol") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 13 */ "times") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
-+      else if (strcmp(fontname, /* 14 */ "wingding") == 0) {
-+         FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings");
-+         FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
-+         FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
-+      }
++         pat = FcPatternCreate ();
 +
-+      FcConfigSubstitute (NULL, pat, FcMatchPattern);
-+      FcDefaultSubstitute (pat);
-+      match = FcFontMatch (NULL, pat, &result);
-+      FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&file);
-+      FcPatternGetInteger (match, FC_INDEX, 0, &ttindex);
++         switch (fileID) {
++         case 0:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 1:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 2:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 3:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 4:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 5:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 6:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"arial");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 7:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 8:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 9:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 10:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"courier new");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 11:
++         case 14:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"symbol");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 12:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"times new roman");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 13:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"wingdings");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 15:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 16:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 17:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 18:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixgeneral");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ITALIC);
++            break;
++         case 19:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizeonesym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            // set = FcCharSetCreate ();
++            // FcCharSetAddChar (set, 0x239b); // Bracket pieces
++            // FcPatternAddCharSet (pat, FC_CHARSET, set);
++            break;
++         case 20:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizeonesym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize1");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            // set = FcCharSetCreate ();
++            // FcCharSetAddChar (set, 0x239b); // Bracket pieces
++            // FcPatternAddCharSet (pat, FC_CHARSET, set);
++            break;
++         case 21:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizetwosym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 22:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizetwosym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize2");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 23:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize13");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 24:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizethreesym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize3");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 25:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefoursym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 26:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefoursym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize4");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_BOLD);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 27:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsizefivesym");
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"stixsize5");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            break;
++         case 28:
++         case 29:
++         case 30:
++            FcPatternAddString (pat, FC_FAMILY, (const FcChar8*)"droidsansfallback");
++            FcPatternAddInteger (pat, FC_WEIGHT, FC_WEIGHT_REGULAR);
++            FcPatternAddInteger (pat, FC_SLANT, FC_SLANT_ROMAN);
++            set = FcCharSetCreate ();
++            FcCharSetAddChar (set, 0x0410); // Cyrillic
++            FcCharSetAddChar (set, 0x4e00); // CJK
++            FcPatternAddCharSet (pat, FC_CHARSET, set);
++         }
++
++         FcConfigSubstitute (NULL, pat, FcMatchPattern);
++         FcDefaultSubstitute (pat);
++         match = FcFontMatch (NULL, pat, &result);
++         char* ttfnt;
++         FcPatternGetString (match, FC_FILE, 0, (FcChar8**)&ttfnt);
++         file = StrDup (ttfnt);
++         FcPatternGetInteger (match, FC_INDEX, 0, &ttindex);
++         FcPatternDestroy (match);
++         FcPatternDestroy (pat);
++         if (set) FcCharSetDestroy (set);
+       }
  
        FTFont* ftfont = 0;
-       switch (mode)
-@@ -427,9 +502,13 @@
+@@ -482,10 +702,14 @@
+             ftfont = new FTGLTextureFont(file);
              break;
           default:
-             Error("TGLFontManager::GetFont", "invalid FTGL type");
-+            FcPatternDestroy (match);
-+            FcPatternDestroy (pat);
++            delete [] file;
+             Error("TGLFontManager::RegisterFont", "invalid FTGL type");
              return;
              break;
        }
-+      FcPatternDestroy (match);
-+      FcPatternDestroy (pat);
++
++      delete [] file;
++
        ftfont->FaceSize(size);
        const TGLFont &mf = fFontMap.insert(std::make_pair(TGLFont(size, fileID, mode, ftfont, 0), 1)).first->first;
        out.CopyAttributes(mf);
-diff -ur root-5.34.09.orig/graf3d/gl/src/TGLText.cxx root-5.34.09/graf3d/gl/src/TGLText.cxx
---- root-5.34.09.orig/graf3d/gl/src/TGLText.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/graf3d/gl/src/TGLText.cxx	2013-08-08 07:35:32.441919658 +0200
+@@ -567,8 +791,6 @@
+ {
+    if (fgStaticInitDone == kFALSE) InitStatics();
+ 
+-   assert(fgExtendedFontStart > 0 && "GetExtendedFontStartIndex, invalid index");
+-   
+    return fgExtendedFontStart;
+ }
+ 
+@@ -636,28 +858,6 @@
+    fgFontFileArray.Add(new TObjString("wingding")); // 140
+    fgFontFileArray.Add(new TObjString("symbol"));   // 150
+ 
+-   fgExtendedFontStart = fgFontFileArray.GetEntries();
+-   //"Extended" fonts for gl-pad.
+-   //fgPadFontStart + ...
+-   fgFontFileArray.Add(new TObjString("FreeSerifItalic.otf"));      //  10 (160)
+-   fgFontFileArray.Add(new TObjString("FreeSerifBold.otf"));        //  20 (170)
+-   fgFontFileArray.Add(new TObjString("FreeSerifBoldItalic.otf"));  //  30
+-
+-   fgFontFileArray.Add(new TObjString("FreeSans.otf"));             //  40
+-   fgFontFileArray.Add(new TObjString("FreeSansOblique.otf"));      //  50
+-   fgFontFileArray.Add(new TObjString("FreeSansBold.otf"));         //  60
+-   fgFontFileArray.Add(new TObjString("FreeSansBoldOblique.otf"));  //  70
+-
+-   fgFontFileArray.Add(new TObjString("FreeMono.otf"));             //  80
+-   fgFontFileArray.Add(new TObjString("FreeMonoOblique.otf"));      //  90
+-   fgFontFileArray.Add(new TObjString("FreeMonoBold.otf"));         // 100
+-   fgFontFileArray.Add(new TObjString("FreeMonoBoldOblique.otf"));  // 110
+-
+-   fgFontFileArray.Add(new TObjString("symbol.ttf"));               // 120
+-   fgFontFileArray.Add(new TObjString("FreeSerif.otf"));            // 130
+-   fgFontFileArray.Add(new TObjString("wingding.ttf"));             // 140
+-   fgFontFileArray.Add(new TObjString("symbol.ttf"));               // 150
+-
+    fgFontFileArray.Add(new TObjString("STIXGeneral.otf"));          // 200
+    fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf"));    // 210
+    fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf"));       // 220
+diff -ur root-5.34.18.orig/graf3d/gl/src/TGLText.cxx root-5.34.18/graf3d/gl/src/TGLText.cxx
+--- root-5.34.18.orig/graf3d/gl/src/TGLText.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/graf3d/gl/src/TGLText.cxx	2014-03-22 09:15:17.075732162 +0100
 @@ -34,6 +34,8 @@
  # include "FTGLBitmapFont.h"
  #endif
@@ -1321,17 +1518,21 @@ diff -ur root-5.34.09.orig/graf3d/gl/src/TGLText.cxx root-5.34.09/graf3d/gl/src/
  
     if (fGLTextFont) delete fGLTextFont;
  
-@@ -209,5 +269,6 @@
+@@ -207,7 +267,9 @@
+ 
+    fGLTextFont = new FTGLPolygonFont(ttfont);
  
-    if (!fGLTextFont->FaceSize(1))
-       Error("SetGLTextFont","Cannot set FTGL::FaceSize"),
--   delete [] ttfont;
 +   FcPatternDestroy (match);
 +   FcPatternDestroy (pat);
++
+    if (!fGLTextFont->FaceSize(1))
+-      Error("SetGLTextFont","Cannot set FTGL::FaceSize"),
+-   delete [] ttfont;
++      Error("SetGLTextFont","Cannot set FTGL::FaceSize");
  }
-diff -ur root-5.34.09.orig/gui/gui/src/TGApplication.cxx root-5.34.09/gui/gui/src/TGApplication.cxx
---- root-5.34.09.orig/gui/gui/src/TGApplication.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/gui/gui/src/TGApplication.cxx	2013-08-08 07:35:32.442919667 +0200
+diff -ur root-5.34.18.orig/gui/gui/src/TGApplication.cxx root-5.34.18/gui/gui/src/TGApplication.cxx
+--- root-5.34.18.orig/gui/gui/src/TGApplication.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/gui/gui/src/TGApplication.cxx	2014-03-15 18:15:22.761445175 +0100
 @@ -83,25 +83,12 @@
     gROOT->SetBatch(kFALSE);
  
@@ -1359,9 +1560,9 @@ diff -ur root-5.34.09.orig/gui/gui/src/TGApplication.cxx root-5.34.09/gui/gui/sr
     }
  
     // Create the canvas colors early so they are allocated before
-diff -ur root-5.34.09.orig/gui/gui/src/TGSpeedo.cxx root-5.34.09/gui/gui/src/TGSpeedo.cxx
---- root-5.34.09.orig/gui/gui/src/TGSpeedo.cxx	2013-06-26 17:05:06.000000000 +0200
-+++ root-5.34.09/gui/gui/src/TGSpeedo.cxx	2013-08-08 07:35:32.442919667 +0200
+diff -ur root-5.34.18.orig/gui/gui/src/TGSpeedo.cxx root-5.34.18/gui/gui/src/TGSpeedo.cxx
+--- root-5.34.18.orig/gui/gui/src/TGSpeedo.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/gui/gui/src/TGSpeedo.cxx	2014-03-15 18:15:22.761445175 +0100
 @@ -119,8 +119,7 @@
  
     TString sc;
diff --git a/root-gfal2.patch b/root-gfal2.patch
new file mode 100644
index 0000000..cc1374f
--- /dev/null
+++ b/root-gfal2.patch
@@ -0,0 +1,72 @@
+--- root-5.34.18.orig/configure	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/configure	2014-03-19 09:56:58.943322923 +0100
+@@ -1630,7 +1630,7 @@
+   fitsio             Read images and data from FITS files, requires cfitsio
+   gviz               Graphs visualization support, requires graphviz
+   gdml               GDML writer and reader
+-  gfal               GFAL support, requires libgfal
++  gfal               GFAL support, requires libgfal or libgfal2
+   globus             Globus authentication support, requires Globus toolkit
+   glite              gLite support, requires libglite-api-wrapper v.3 from GSI (https://subversion.gsi.de/trac/dgrid/wiki)
+   gsl-shared         Enable linking against shared libraries for GSL (default no)
+@@ -1719,7 +1719,7 @@
+   gfal-incdir        GFAL support, location of gfal_api.h
+   srm-ifce-incdir    GFAL support, location of gfal_srm_ifce_types.h
+   glib2-incdir       GFAL support, location of glib-2.0 headers
+-  gfal-libdir        GFAL support, location of libgfal
++  gfal-libdir        GFAL support, location of libgfal or libgfal2
+   glew-incdir        GLEW support, location of glew.h
+   glew-libdir        GLEW support, location of libGLEW
+   gsl-incdir         GSL support, location of gsl/gsl_version.h
+@@ -3759,10 +3759,17 @@
+     gfalinc=$found_hdr
+     gfalincdir=$found_dir
+ 
+-    check_library "libgfal" "$enable_shared" "$gfallibdir" \
+-        $GFAL ${GFAL:+$GFAL/lib} \
+-        /opt/lcg/lib /opt/gfal/lib /usr/local/lcg/lib \
+-        /usr/local/gfal/lib
++    if grep -q "GFAL2" $gfalincdir/gfal_api.h ; then
++        check_library "libgfal2" "$enable_shared" "$gfallibdir" \
++            $GFAL ${GFAL:+$GFAL/lib} \
++            /opt/lcg/lib /opt/gfal2/lib /usr/local/lcg/lib \
++            /usr/local/gfal2/lib
++    else
++        check_library "libgfal" "$enable_shared" "$gfallibdir" \
++            $GFAL ${GFAL:+$GFAL/lib} \
++            /opt/lcg/lib /opt/gfal/lib /usr/local/lcg/lib \
++            /usr/local/gfal/lib
++    fi
+     gfallib=$found_lib
+     gfallibdir=$found_dir
+ 
+diff -ur root-5.34.18.orig/io/gfal/src/TGFALFile.cxx root-5.34.18/io/gfal/src/TGFALFile.cxx
+--- root-5.34.18.orig/io/gfal/src/TGFALFile.cxx	2014-03-14 16:21:52.000000000 +0100
++++ root-5.34.18/io/gfal/src/TGFALFile.cxx	2014-03-19 11:48:13.762930884 +0100
+@@ -60,7 +60,6 @@
+ //                                                                      //
+ //////////////////////////////////////////////////////////////////////////
+ 
+-#include "TGFALFile.h"
+ #include "TROOT.h"
+ #include "TUrl.h"
+ 
+@@ -68,6 +67,18 @@
+ #include <gfal_api.h>
+ }
+ 
++// GFAL2 doesn't use special names for 64 bit versions
++#ifdef _GFAL2_API_
++#define gfal_lseek64   gfal_lseek
++#define gfal_open64    gfal_open
++#define gfal_readdir64 gfal_readdir
++#define gfal_stat64    gfal_stat
++#define dirent64       dirent
++#define stat64         stat
++#endif
++
++#include "TGFALFile.h"
++
+ ClassImp(TGFALFile)
+ ClassImp(TGFALSystem)
+ 
diff --git a/root.spec b/root.spec
index 40a1b3c..a5dbd2b 100644
--- a/root.spec
+++ b/root.spec
@@ -7,16 +7,6 @@
 %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
 %endif
 
-%if "%{?rhel}" == "5"
-%ifarch ppc
-%global gfal 0
-%else
-%global gfal 1
-%endif
-%else
-%global gfal 1
-%endif
-
 %{!?ruby_sitearchdir: %global ruby_sitearchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"]' 2>/dev/null)}
 
 %if %{?fedora}%{!?fedora:0} >= 19 || %{?rhel}%{!?rhel:0} >= 7
@@ -42,7 +32,7 @@
 %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}}
 
 Name:		root
-Version:	5.34.17
+Version:	5.34.18
 %global libversion %(cut -d. -f 1-2 <<< %{version})
 Release:	1%{?dist}
 Summary:	Numerical data analysis framework
@@ -88,6 +78,8 @@ Patch8:		%{name}-hdfs.patch
 Patch9:		%{name}-dont-link-jvm.patch
 #		Avoid deprecated __USE_BSD
 Patch10:	%{name}-bsd-misc.patch
+#		Use GFAL2
+Patch11:	%{name}-gfal2.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
@@ -153,10 +145,8 @@ BuildRequires:	xrootd-client-devel >= 1:3.3.5
 BuildRequires:	xrootd-private-devel >= 1:3.3.5
 BuildRequires:	cfitsio-devel
 BuildRequires:	davix-devel >= 0.2.8
-%if %{gfal}
-BuildRequires:	gfal-devel
+BuildRequires:	gfal2-devel
 BuildRequires:	srm-ifce-devel
-%endif
 %if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7
 BuildRequires:	hadoop-devel
 %endif
@@ -672,16 +662,14 @@ Group:		Applications/Engineering
 %description io-dcache
 This package contains the dCache extension for ROOT.
 
-%if %{gfal}
 %package io-gfal
 Summary:	Grid File Access Library input/output library for ROOT
 Group:		Applications/Engineering
 
 %description io-gfal
 This package contains the Grid File Access Library extension for ROOT.
-%endif
 
-%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7
+%if %{?fedora}%{!?fedora:0} >= 20
 %package io-hdfs
 Summary:	Hadoop File System input/output library for ROOT
 Group:		Applications/Engineering
@@ -875,6 +863,15 @@ init-program computes all tables and constants necessary for the
 random variate generation. The sample program can then generate
 variates from the desired distribution.
 
+%package vdt
+Summary:	VDT mathematical library
+Group:		Applications/Engineering
+
+%description vdt
+VDT is a library of mathematical functions, implemented in double and
+single precision. The implementation is fast and with the aid of
+modern compilers (e.g. gcc 4.7) vectorisable.
+
 %package memstat
 Summary:	Memory statistics tool for use with ROOT
 Group:		Applications/Engineering
@@ -1176,6 +1173,7 @@ fi
 %patch8 -p1
 %patch9 -p1
 %patch10 -p1
+%patch11 -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 \
@@ -1284,17 +1282,13 @@ unset QTINC
 	    --enable-fitsio \
 	    --enable-gdml \
 	    --enable-genvector \
-%if %{gfal}
 	    --enable-gfal \
-	      --with-gfal-incdir=%{_includedir} \
+	      --with-gfal-incdir=%{_includedir}/gfal2 \
 	      --with-gfal-libdir=%{_libdir} \
-%else
-	    --disable-gfal \
-%endif
 	    --enable-globus \
 	    --enable-gsl-shared \
 	    --enable-gviz \
-%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7
+%if %{?fedora}%{!?fedora:0} >= 20
 	    --enable-hdfs \
 	      --with-hdfs-incdir=%{_includedir}/hadoop \
 %else
@@ -1336,6 +1330,7 @@ unset QTINC
 	    --enable-table \
 	    --enable-tmva \
 	    --enable-unuran \
+	    --enable-vdt \
 	    --enable-x11 \
 	    --enable-xft \
 	    --enable-xml \
@@ -1363,6 +1358,7 @@ unset QTINC
 	    --disable-rpath \
 	    --disable-sapdb \
 	    --disable-srp \
+	    --disable-vc \
 	    --fail-on-missing
 
 make OPTFLAGS="%{optflags}" \
@@ -1511,12 +1507,9 @@ rm TAFS/P010_TAFS.C
 rm TDataProgressDialog/P010_TDataProgressDialog.C
 rm TDataSetManager/P020_TDataSetManagerAliEn.C
 rm TFile/P030_TCastorFile.C
-%if "%{gfal}" == "0"
-rm TFile/P050_TGFALFile.C
-%endif
 rm TFile/P060_TChirpFile.C
 rm TFile/P070_TAlienFile.C
-%if %{?fedora}%{!?fedora:0} < 20 && %{?rhel}%{!?rhel:0} < 7
+%if %{?fedora}%{!?fedora:0} < 20
 rm TFile/P110_THDFSFile.C
 %endif
 rm TGLManager/P020_TGWin32GLManager.C
@@ -1530,7 +1523,7 @@ rm TImagePlugin/P010_TASPluginGS.C
 rm TSQLServer/P030_TSapDBServer.C
 rm TSQLServer/P040_TOracleServer.C
 rm TSystem/P030_TAlienSystem.C
-%if %{?fedora}%{!?fedora:0} < 20 && %{?rhel}%{!?rhel:0} < 7
+%if %{?fedora}%{!?fedora:0} < 20
 rm TSystem/P060_THDFSSystem.C
 %endif
 rm TViewerX3D/P020_TQtViewerX3D.C
@@ -1754,11 +1747,9 @@ fi
 %postun io -p /sbin/ldconfig
 %post io-dcache -p /sbin/ldconfig
 %postun io-dcache -p /sbin/ldconfig
-%if %{gfal}
 %post io-gfal -p /sbin/ldconfig
 %postun io-gfal -p /sbin/ldconfig
-%endif
-%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7
+%if %{?fedora}%{!?fedora:0} >= 20
 %post io-hdfs -p /sbin/ldconfig
 %postun io-hdfs -p /sbin/ldconfig
 %endif
@@ -2158,13 +2149,11 @@ fi
 %{_datadir}/%{name}/plugins/TFile/P040_TDCacheFile.C
 %{_datadir}/%{name}/plugins/TSystem/P020_TDCacheSystem.C
 
-%if %{gfal}
 %files io-gfal -f includelist-io-gfal
 %{_libdir}/%{name}/libGFAL.*
 %{_datadir}/%{name}/plugins/TFile/P050_TGFALFile.C
-%endif
 
-%if %{?fedora}%{!?fedora:0} >= 20 || %{?rhel}%{!?rhel:0} >= 7
+%if %{?fedora}%{!?fedora:0} >= 20
 %files io-hdfs -f includelist-io-hdfs
 %{_libdir}/%{name}/libHDFS.*
 %{_datadir}/%{name}/plugins/TFile/P110_THDFSFile.C
@@ -2258,6 +2247,10 @@ fi
 %{_libdir}/%{name}/libUnuran.*
 %{_datadir}/%{name}/plugins/ROOT@@Math@@DistSampler/P010_TUnuranSampler.C
 
+%files vdt -f includelist-math-vdt
+%dir %{_includedir}/%{name}/vdt
+%doc math/vdt/Licence.md math/vdt/ReadMe.md math/vdt/ReleaseNotes.txt
+
 %files memstat -f includelist-misc-memstat
 %{_libdir}/%{name}/libMemStat.*
 
@@ -2412,6 +2405,11 @@ fi
 %{emacs_lispdir}/root/*.el
 
 %changelog
+* Sat Mar 22 2014 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.34.18-1
+- Update to 5.34.18
+- Build GFAL module using libgfal2
+- New sub-package: root-vdt
+
 * Wed Feb 26 2014 Mattias Ellert <mattias.ellert at fysast.uu.se> - 5.34.17-1
 - Update to 5.34.17
 
diff --git a/sources b/sources
index 44a4da9..500a62f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-1ebb47511ec93108686b81bc8dce8b1e  root-5.34.17.tar.xz
+56c3603bfc416382f20b3b65dcd41b1e  root-5.34.18.tar.xz


More information about the scm-commits mailing list